diff --git a/base/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.c b/head/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.c
index f015ab5..99a2ab3 100644
--- a/base/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.c
+++ b/head/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.c
@@ -1673,57 +1673,47 @@ void cJSON_DeleteDateParseHandling(struct DateParseHandling * x) {
     }
 }
 
-struct DateTime * cJSON_ParseDateTime(const char * s) {
-    struct DateTime * x = NULL;
+struct Empty * cJSON_ParseEmpty(const char * s) {
+    struct Empty * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDateTimeValue(j);
+            x = cJSON_GetEmptyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DateTime * cJSON_GetDateTimeValue(const cJSON * j) {
-    struct DateTime * x = NULL;
+struct Empty * cJSON_GetEmptyValue(const cJSON * j) {
+    struct Empty * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DateTime)))) {
-            memset(x, 0, sizeof(struct DateTime));
-            if (!cJSON_HasObjectItem(j, "DateTime")) { cJSON_DeleteDateTime(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "DateTime")) {
-                if (!cJSON_IsString(cJSON_GetObjectItemCaseSensitive(j, "DateTime"))) { cJSON_DeleteDateTime(x); return NULL; }
-                x->date_time = strdup(cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(j, "DateTime")));
-            }
-            else {
-                if (NULL != (x->date_time = cJSON_malloc(sizeof(char)))) {
-                    x->date_time[0] = '\0';
-                }
+        if (NULL != (x = cJSON_malloc(sizeof(struct Empty)))) {
+            memset(x, 0, sizeof(struct Empty));
+            if (!cJSON_HasObjectItem(j, "_")) { cJSON_DeleteEmpty(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "_")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_"))) { cJSON_DeleteEmpty(x); return NULL; }
+                x->empty = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDateTime(const struct DateTime * x) {
+cJSON * cJSON_CreateEmpty(const struct Empty * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            if (NULL != x->date_time) {
-                cJSON_AddStringToObject(j, "DateTime", x->date_time);
-            }
-            else {
-                cJSON_AddStringToObject(j, "DateTime", "");
-            }
+            cJSON_AddNumberToObject(j, "_", x->empty);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDateTime(const struct DateTime * x) {
+char * cJSON_PrintEmpty(const struct Empty * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDateTime(x);
+        cJSON * j = cJSON_CreateEmpty(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -1732,56 +1722,53 @@ char * cJSON_PrintDateTime(const struct DateTime * x) {
     return s;
 }
 
-void cJSON_DeleteDateTime(struct DateTime * x) {
+void cJSON_DeleteEmpty(struct Empty * x) {
     if (NULL != x) {
-        if (NULL != x->date_time) {
-            cJSON_free(x->date_time);
-        }
         cJSON_free(x);
     }
 }
 
-struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s) {
-    struct DateTimeStyles * x = NULL;
+struct Obj1BoolClass * cJSON_ParseObj1BoolClass(const char * s) {
+    struct Obj1BoolClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDateTimeStylesValue(j);
+            x = cJSON_GetObj1BoolClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j) {
-    struct DateTimeStyles * x = NULL;
+struct Obj1BoolClass * cJSON_GetObj1BoolClassValue(const cJSON * j) {
+    struct Obj1BoolClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DateTimeStyles)))) {
-            memset(x, 0, sizeof(struct DateTimeStyles));
-            if (!cJSON_HasObjectItem(j, "DateTimeStyles")) { cJSON_DeleteDateTimeStyles(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "DateTimeStyles")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"))) { cJSON_DeleteDateTimeStyles(x); return NULL; }
-                x->date_time_styles = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1BoolClass)))) {
+            memset(x, 0, sizeof(struct Obj1BoolClass));
+            if (!cJSON_HasObjectItem(j, "bool")) { cJSON_DeleteObj1BoolClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "bool")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bool"))) { cJSON_DeleteObj1BoolClass(x); return NULL; }
+                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bool"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x) {
+cJSON * cJSON_CreateObj1BoolClass(const struct Obj1BoolClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "DateTimeStyles", x->date_time_styles);
+            cJSON_AddNumberToObject(j, "bool", x->bool_bool);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x) {
+char * cJSON_PrintObj1BoolClass(const struct Obj1BoolClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDateTimeStyles(x);
+        cJSON * j = cJSON_CreateObj1BoolClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -1790,53 +1777,53 @@ char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x) {
     return s;
 }
 
-void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x) {
+void cJSON_DeleteObj1BoolClass(struct Obj1BoolClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Debugger * cJSON_ParseDebugger(const char * s) {
-    struct Debugger * x = NULL;
+struct Imaginery * cJSON_ParseImaginery(const char * s) {
+    struct Imaginery * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDebuggerValue(j);
+            x = cJSON_GetImagineryValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Debugger * cJSON_GetDebuggerValue(const cJSON * j) {
-    struct Debugger * x = NULL;
+struct Imaginery * cJSON_GetImagineryValue(const cJSON * j) {
+    struct Imaginery * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Debugger)))) {
-            memset(x, 0, sizeof(struct Debugger));
-            if (!cJSON_HasObjectItem(j, "debugger")) { cJSON_DeleteDebugger(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "debugger")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "debugger"))) { cJSON_DeleteDebugger(x); return NULL; }
-                x->debugger = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "debugger"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Imaginery)))) {
+            memset(x, 0, sizeof(struct Imaginery));
+            if (!cJSON_HasObjectItem(j, "_Imaginery")) { cJSON_DeleteImaginery(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "_Imaginery")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_Imaginery"))) { cJSON_DeleteImaginery(x); return NULL; }
+                x->imaginery = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_Imaginery"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDebugger(const struct Debugger * x) {
+cJSON * cJSON_CreateImaginery(const struct Imaginery * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "debugger", x->debugger);
+            cJSON_AddNumberToObject(j, "_Imaginery", x->imaginery);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDebugger(const struct Debugger * x) {
+char * cJSON_PrintImaginery(const struct Imaginery * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDebugger(x);
+        cJSON * j = cJSON_CreateImaginery(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -1845,53 +1832,53 @@ char * cJSON_PrintDebugger(const struct Debugger * x) {
     return s;
 }
 
-void cJSON_DeleteDebugger(struct Debugger * x) {
+void cJSON_DeleteImaginery(struct Imaginery * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Decimal * cJSON_ParseDecimal(const char * s) {
-    struct Decimal * x = NULL;
+struct Alignas * cJSON_ParseAlignas(const char * s) {
+    struct Alignas * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDecimalValue(j);
+            x = cJSON_GetAlignasValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Decimal * cJSON_GetDecimalValue(const cJSON * j) {
-    struct Decimal * x = NULL;
+struct Alignas * cJSON_GetAlignasValue(const cJSON * j) {
+    struct Alignas * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Decimal)))) {
-            memset(x, 0, sizeof(struct Decimal));
-            if (!cJSON_HasObjectItem(j, "decimal")) { cJSON_DeleteDecimal(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decimal")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decimal"))) { cJSON_DeleteDecimal(x); return NULL; }
-                x->decimal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decimal"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Alignas)))) {
+            memset(x, 0, sizeof(struct Alignas));
+            if (!cJSON_HasObjectItem(j, "alignas")) { cJSON_DeleteAlignas(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "alignas")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "alignas"))) { cJSON_DeleteAlignas(x); return NULL; }
+                x->alignas_alignas = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "alignas"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDecimal(const struct Decimal * x) {
+cJSON * cJSON_CreateAlignas(const struct Alignas * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "decimal", x->decimal);
+            cJSON_AddNumberToObject(j, "alignas", x->alignas_alignas);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDecimal(const struct Decimal * x) {
+char * cJSON_PrintAlignas(const struct Alignas * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDecimal(x);
+        cJSON * j = cJSON_CreateAlignas(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -1900,53 +1887,53 @@ char * cJSON_PrintDecimal(const struct Decimal * x) {
     return s;
 }
 
-void cJSON_DeleteDecimal(struct Decimal * x) {
+void cJSON_DeleteAlignas(struct Alignas * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Declare * cJSON_ParseDeclare(const char * s) {
-    struct Declare * x = NULL;
+struct Alignof * cJSON_ParseAlignof(const char * s) {
+    struct Alignof * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeclareValue(j);
+            x = cJSON_GetAlignofValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Declare * cJSON_GetDeclareValue(const cJSON * j) {
-    struct Declare * x = NULL;
+struct Alignof * cJSON_GetAlignofValue(const cJSON * j) {
+    struct Alignof * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Declare)))) {
-            memset(x, 0, sizeof(struct Declare));
-            if (!cJSON_HasObjectItem(j, "declare")) { cJSON_DeleteDeclare(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "declare")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "declare"))) { cJSON_DeleteDeclare(x); return NULL; }
-                x->declare = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "declare"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Alignof)))) {
+            memset(x, 0, sizeof(struct Alignof));
+            if (!cJSON_HasObjectItem(j, "alignof")) { cJSON_DeleteAlignof(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "alignof")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "alignof"))) { cJSON_DeleteAlignof(x); return NULL; }
+                x->alignof_alignof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "alignof"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDeclare(const struct Declare * x) {
+cJSON * cJSON_CreateAlignof(const struct Alignof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "declare", x->declare);
+            cJSON_AddNumberToObject(j, "alignof", x->alignof_alignof);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDeclare(const struct Declare * x) {
+char * cJSON_PrintAlignof(const struct Alignof * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDeclare(x);
+        cJSON * j = cJSON_CreateAlignof(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -1955,53 +1942,53 @@ char * cJSON_PrintDeclare(const struct Declare * x) {
     return s;
 }
 
-void cJSON_DeleteDeclare(struct Declare * x) {
+void cJSON_DeleteAlignof(struct Alignof * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct DecodeString * cJSON_ParseDecodeString(const char * s) {
-    struct DecodeString * x = NULL;
+struct And * cJSON_ParseAnd(const char * s) {
+    struct And * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDecodeStringValue(j);
+            x = cJSON_GetAndValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j) {
-    struct DecodeString * x = NULL;
+struct And * cJSON_GetAndValue(const cJSON * j) {
+    struct And * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DecodeString)))) {
-            memset(x, 0, sizeof(struct DecodeString));
-            if (!cJSON_HasObjectItem(j, "decode_string")) { cJSON_DeleteDecodeString(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decode_string")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decode_string"))) { cJSON_DeleteDecodeString(x); return NULL; }
-                x->decode_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decode_string"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct And)))) {
+            memset(x, 0, sizeof(struct And));
+            if (!cJSON_HasObjectItem(j, "and")) { cJSON_DeleteAnd(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "and")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "and"))) { cJSON_DeleteAnd(x); return NULL; }
+                x->and_and = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "and"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDecodeString(const struct DecodeString * x) {
+cJSON * cJSON_CreateAnd(const struct And * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "decode_string", x->decode_string);
+            cJSON_AddNumberToObject(j, "and", x->and_and);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDecodeString(const struct DecodeString * x) {
+char * cJSON_PrintAnd(const struct And * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDecodeString(x);
+        cJSON * j = cJSON_CreateAnd(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2010,53 +1997,53 @@ char * cJSON_PrintDecodeString(const struct DecodeString * x) {
     return s;
 }
 
-void cJSON_DeleteDecodeString(struct DecodeString * x) {
+void cJSON_DeleteAnd(struct And * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Empty * cJSON_ParseEmpty(const char * s) {
-    struct Empty * x = NULL;
+struct AndEq * cJSON_ParseAndEq(const char * s) {
+    struct AndEq * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEmptyValue(j);
+            x = cJSON_GetAndEqValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Empty * cJSON_GetEmptyValue(const cJSON * j) {
-    struct Empty * x = NULL;
+struct AndEq * cJSON_GetAndEqValue(const cJSON * j) {
+    struct AndEq * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Empty)))) {
-            memset(x, 0, sizeof(struct Empty));
-            if (!cJSON_HasObjectItem(j, "_")) { cJSON_DeleteEmpty(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "_")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_"))) { cJSON_DeleteEmpty(x); return NULL; }
-                x->empty = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct AndEq)))) {
+            memset(x, 0, sizeof(struct AndEq));
+            if (!cJSON_HasObjectItem(j, "and_eq")) { cJSON_DeleteAndEq(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "and_eq")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "and_eq"))) { cJSON_DeleteAndEq(x); return NULL; }
+                x->and_eq_and_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "and_eq"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEmpty(const struct Empty * x) {
+cJSON * cJSON_CreateAndEq(const struct AndEq * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "_", x->empty);
+            cJSON_AddNumberToObject(j, "and_eq", x->and_eq_and_eq);
         }
     }
     return j;
 }
 
-char * cJSON_PrintEmpty(const struct Empty * x) {
+char * cJSON_PrintAndEq(const struct AndEq * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEmpty(x);
+        cJSON * j = cJSON_CreateAndEq(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2065,53 +2052,53 @@ char * cJSON_PrintEmpty(const struct Empty * x) {
     return s;
 }
 
-void cJSON_DeleteEmpty(struct Empty * x) {
+void cJSON_DeleteAndEq(struct AndEq * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Obj1BoolClass * cJSON_ParseObj1BoolClass(const char * s) {
-    struct Obj1BoolClass * x = NULL;
+struct AnyClass * cJSON_ParseAnyClass(const char * s) {
+    struct AnyClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObj1BoolClassValue(j);
+            x = cJSON_GetAnyClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Obj1BoolClass * cJSON_GetObj1BoolClassValue(const cJSON * j) {
-    struct Obj1BoolClass * x = NULL;
+struct AnyClass * cJSON_GetAnyClassValue(const cJSON * j) {
+    struct AnyClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1BoolClass)))) {
-            memset(x, 0, sizeof(struct Obj1BoolClass));
-            if (!cJSON_HasObjectItem(j, "bool")) { cJSON_DeleteObj1BoolClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "bool")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bool"))) { cJSON_DeleteObj1BoolClass(x); return NULL; }
-                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bool"));
-            }
-        }
-    }
+        if (NULL != (x = cJSON_malloc(sizeof(struct AnyClass)))) {
+            memset(x, 0, sizeof(struct AnyClass));
+            if (!cJSON_HasObjectItem(j, "any")) { cJSON_DeleteAnyClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "any")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "any"))) { cJSON_DeleteAnyClass(x); return NULL; }
+                x->any = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "any"));
+            }
+        }
+    }
     return x;
 }
 
-cJSON * cJSON_CreateObj1BoolClass(const struct Obj1BoolClass * x) {
+cJSON * cJSON_CreateAnyClass(const struct AnyClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "bool", x->bool_bool);
+            cJSON_AddNumberToObject(j, "any", x->any);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObj1BoolClass(const struct Obj1BoolClass * x) {
+char * cJSON_PrintAnyClass(const struct AnyClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObj1BoolClass(x);
+        cJSON * j = cJSON_CreateAnyClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2120,53 +2107,53 @@ char * cJSON_PrintObj1BoolClass(const struct Obj1BoolClass * x) {
     return s;
 }
 
-void cJSON_DeleteObj1BoolClass(struct Obj1BoolClass * x) {
+void cJSON_DeleteAnyClass(struct AnyClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Imaginery * cJSON_ParseImaginery(const char * s) {
-    struct Imaginery * x = NULL;
+struct Asm * cJSON_ParseAsm(const char * s) {
+    struct Asm * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImagineryValue(j);
+            x = cJSON_GetAsmValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Imaginery * cJSON_GetImagineryValue(const cJSON * j) {
-    struct Imaginery * x = NULL;
+struct Asm * cJSON_GetAsmValue(const cJSON * j) {
+    struct Asm * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Imaginery)))) {
-            memset(x, 0, sizeof(struct Imaginery));
-            if (!cJSON_HasObjectItem(j, "_Imaginery")) { cJSON_DeleteImaginery(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "_Imaginery")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_Imaginery"))) { cJSON_DeleteImaginery(x); return NULL; }
-                x->imaginery = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_Imaginery"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Asm)))) {
+            memset(x, 0, sizeof(struct Asm));
+            if (!cJSON_HasObjectItem(j, "asm")) { cJSON_DeleteAsm(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "asm")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "asm"))) { cJSON_DeleteAsm(x); return NULL; }
+                x->asm_asm = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "asm"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImaginery(const struct Imaginery * x) {
+cJSON * cJSON_CreateAsm(const struct Asm * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "_Imaginery", x->imaginery);
+            cJSON_AddNumberToObject(j, "asm", x->asm_asm);
         }
     }
     return j;
 }
 
-char * cJSON_PrintImaginery(const struct Imaginery * x) {
+char * cJSON_PrintAsm(const struct Asm * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImaginery(x);
+        cJSON * j = cJSON_CreateAsm(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2175,53 +2162,53 @@ char * cJSON_PrintImaginery(const struct Imaginery * x) {
     return s;
 }
 
-void cJSON_DeleteImaginery(struct Imaginery * x) {
+void cJSON_DeleteAsm(struct Asm * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Alignas * cJSON_ParseAlignas(const char * s) {
-    struct Alignas * x = NULL;
+struct AtomicCancel * cJSON_ParseAtomicCancel(const char * s) {
+    struct AtomicCancel * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAlignasValue(j);
+            x = cJSON_GetAtomicCancelValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Alignas * cJSON_GetAlignasValue(const cJSON * j) {
-    struct Alignas * x = NULL;
+struct AtomicCancel * cJSON_GetAtomicCancelValue(const cJSON * j) {
+    struct AtomicCancel * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Alignas)))) {
-            memset(x, 0, sizeof(struct Alignas));
-            if (!cJSON_HasObjectItem(j, "alignas")) { cJSON_DeleteAlignas(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "alignas")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "alignas"))) { cJSON_DeleteAlignas(x); return NULL; }
-                x->alignas_alignas = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "alignas"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicCancel)))) {
+            memset(x, 0, sizeof(struct AtomicCancel));
+            if (!cJSON_HasObjectItem(j, "atomic_cancel")) { cJSON_DeleteAtomicCancel(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "atomic_cancel")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_cancel"))) { cJSON_DeleteAtomicCancel(x); return NULL; }
+                x->atomic_cancel_atomic_cancel = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_cancel"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAlignas(const struct Alignas * x) {
+cJSON * cJSON_CreateAtomicCancel(const struct AtomicCancel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "alignas", x->alignas_alignas);
+            cJSON_AddNumberToObject(j, "atomic_cancel", x->atomic_cancel_atomic_cancel);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAlignas(const struct Alignas * x) {
+char * cJSON_PrintAtomicCancel(const struct AtomicCancel * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAlignas(x);
+        cJSON * j = cJSON_CreateAtomicCancel(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2230,53 +2217,53 @@ char * cJSON_PrintAlignas(const struct Alignas * x) {
     return s;
 }
 
-void cJSON_DeleteAlignas(struct Alignas * x) {
+void cJSON_DeleteAtomicCancel(struct AtomicCancel * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Alignof * cJSON_ParseAlignof(const char * s) {
-    struct Alignof * x = NULL;
+struct AtomicCommit * cJSON_ParseAtomicCommit(const char * s) {
+    struct AtomicCommit * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAlignofValue(j);
+            x = cJSON_GetAtomicCommitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Alignof * cJSON_GetAlignofValue(const cJSON * j) {
-    struct Alignof * x = NULL;
+struct AtomicCommit * cJSON_GetAtomicCommitValue(const cJSON * j) {
+    struct AtomicCommit * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Alignof)))) {
-            memset(x, 0, sizeof(struct Alignof));
-            if (!cJSON_HasObjectItem(j, "alignof")) { cJSON_DeleteAlignof(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "alignof")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "alignof"))) { cJSON_DeleteAlignof(x); return NULL; }
-                x->alignof_alignof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "alignof"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicCommit)))) {
+            memset(x, 0, sizeof(struct AtomicCommit));
+            if (!cJSON_HasObjectItem(j, "atomic_commit")) { cJSON_DeleteAtomicCommit(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "atomic_commit")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_commit"))) { cJSON_DeleteAtomicCommit(x); return NULL; }
+                x->atomic_commit_atomic_commit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_commit"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAlignof(const struct Alignof * x) {
+cJSON * cJSON_CreateAtomicCommit(const struct AtomicCommit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "alignof", x->alignof_alignof);
+            cJSON_AddNumberToObject(j, "atomic_commit", x->atomic_commit_atomic_commit);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAlignof(const struct Alignof * x) {
+char * cJSON_PrintAtomicCommit(const struct AtomicCommit * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAlignof(x);
+        cJSON * j = cJSON_CreateAtomicCommit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2285,53 +2272,53 @@ char * cJSON_PrintAlignof(const struct Alignof * x) {
     return s;
 }
 
-void cJSON_DeleteAlignof(struct Alignof * x) {
+void cJSON_DeleteAtomicCommit(struct AtomicCommit * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct And * cJSON_ParseAnd(const char * s) {
-    struct And * x = NULL;
+struct AtomicNoexcept * cJSON_ParseAtomicNoexcept(const char * s) {
+    struct AtomicNoexcept * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAndValue(j);
+            x = cJSON_GetAtomicNoexceptValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct And * cJSON_GetAndValue(const cJSON * j) {
-    struct And * x = NULL;
+struct AtomicNoexcept * cJSON_GetAtomicNoexceptValue(const cJSON * j) {
+    struct AtomicNoexcept * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct And)))) {
-            memset(x, 0, sizeof(struct And));
-            if (!cJSON_HasObjectItem(j, "and")) { cJSON_DeleteAnd(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "and")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "and"))) { cJSON_DeleteAnd(x); return NULL; }
-                x->and_and = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "and"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicNoexcept)))) {
+            memset(x, 0, sizeof(struct AtomicNoexcept));
+            if (!cJSON_HasObjectItem(j, "atomic_noexcept")) { cJSON_DeleteAtomicNoexcept(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "atomic_noexcept")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_noexcept"))) { cJSON_DeleteAtomicNoexcept(x); return NULL; }
+                x->atomic_noexcept_atomic_noexcept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_noexcept"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAnd(const struct And * x) {
+cJSON * cJSON_CreateAtomicNoexcept(const struct AtomicNoexcept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "and", x->and_and);
+            cJSON_AddNumberToObject(j, "atomic_noexcept", x->atomic_noexcept_atomic_noexcept);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAnd(const struct And * x) {
+char * cJSON_PrintAtomicNoexcept(const struct AtomicNoexcept * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAnd(x);
+        cJSON * j = cJSON_CreateAtomicNoexcept(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2340,53 +2327,53 @@ char * cJSON_PrintAnd(const struct And * x) {
     return s;
 }
 
-void cJSON_DeleteAnd(struct And * x) {
+void cJSON_DeleteAtomicNoexcept(struct AtomicNoexcept * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct AndEq * cJSON_ParseAndEq(const char * s) {
-    struct AndEq * x = NULL;
+struct Auto * cJSON_ParseAuto(const char * s) {
+    struct Auto * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAndEqValue(j);
+            x = cJSON_GetAutoValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct AndEq * cJSON_GetAndEqValue(const cJSON * j) {
-    struct AndEq * x = NULL;
+struct Auto * cJSON_GetAutoValue(const cJSON * j) {
+    struct Auto * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct AndEq)))) {
-            memset(x, 0, sizeof(struct AndEq));
-            if (!cJSON_HasObjectItem(j, "and_eq")) { cJSON_DeleteAndEq(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "and_eq")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "and_eq"))) { cJSON_DeleteAndEq(x); return NULL; }
-                x->and_eq_and_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "and_eq"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Auto)))) {
+            memset(x, 0, sizeof(struct Auto));
+            if (!cJSON_HasObjectItem(j, "auto")) { cJSON_DeleteAuto(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "auto")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "auto"))) { cJSON_DeleteAuto(x); return NULL; }
+                x->auto_auto = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "auto"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAndEq(const struct AndEq * x) {
+cJSON * cJSON_CreateAuto(const struct Auto * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "and_eq", x->and_eq_and_eq);
+            cJSON_AddNumberToObject(j, "auto", x->auto_auto);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAndEq(const struct AndEq * x) {
+char * cJSON_PrintAuto(const struct Auto * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAndEq(x);
+        cJSON * j = cJSON_CreateAuto(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2395,53 +2382,53 @@ char * cJSON_PrintAndEq(const struct AndEq * x) {
     return s;
 }
 
-void cJSON_DeleteAndEq(struct AndEq * x) {
+void cJSON_DeleteAuto(struct Auto * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct AnyClass * cJSON_ParseAnyClass(const char * s) {
-    struct AnyClass * x = NULL;
+struct Bitand * cJSON_ParseBitand(const char * s) {
+    struct Bitand * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAnyClassValue(j);
+            x = cJSON_GetBitandValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct AnyClass * cJSON_GetAnyClassValue(const cJSON * j) {
-    struct AnyClass * x = NULL;
+struct Bitand * cJSON_GetBitandValue(const cJSON * j) {
+    struct Bitand * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct AnyClass)))) {
-            memset(x, 0, sizeof(struct AnyClass));
-            if (!cJSON_HasObjectItem(j, "any")) { cJSON_DeleteAnyClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "any")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "any"))) { cJSON_DeleteAnyClass(x); return NULL; }
-                x->any = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "any"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Bitand)))) {
+            memset(x, 0, sizeof(struct Bitand));
+            if (!cJSON_HasObjectItem(j, "bitand")) { cJSON_DeleteBitand(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "bitand")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bitand"))) { cJSON_DeleteBitand(x); return NULL; }
+                x->bitand_bitand = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bitand"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAnyClass(const struct AnyClass * x) {
+cJSON * cJSON_CreateBitand(const struct Bitand * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "any", x->any);
+            cJSON_AddNumberToObject(j, "bitand", x->bitand_bitand);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAnyClass(const struct AnyClass * x) {
+char * cJSON_PrintBitand(const struct Bitand * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAnyClass(x);
+        cJSON * j = cJSON_CreateBitand(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2450,53 +2437,53 @@ char * cJSON_PrintAnyClass(const struct AnyClass * x) {
     return s;
 }
 
-void cJSON_DeleteAnyClass(struct AnyClass * x) {
+void cJSON_DeleteBitand(struct Bitand * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Asm * cJSON_ParseAsm(const char * s) {
-    struct Asm * x = NULL;
+struct Bitor * cJSON_ParseBitor(const char * s) {
+    struct Bitor * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAsmValue(j);
+            x = cJSON_GetBitorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Asm * cJSON_GetAsmValue(const cJSON * j) {
-    struct Asm * x = NULL;
+struct Bitor * cJSON_GetBitorValue(const cJSON * j) {
+    struct Bitor * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Asm)))) {
-            memset(x, 0, sizeof(struct Asm));
-            if (!cJSON_HasObjectItem(j, "asm")) { cJSON_DeleteAsm(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "asm")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "asm"))) { cJSON_DeleteAsm(x); return NULL; }
-                x->asm_asm = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "asm"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Bitor)))) {
+            memset(x, 0, sizeof(struct Bitor));
+            if (!cJSON_HasObjectItem(j, "bitor")) { cJSON_DeleteBitor(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "bitor")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bitor"))) { cJSON_DeleteBitor(x); return NULL; }
+                x->bitor_bitor = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bitor"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAsm(const struct Asm * x) {
+cJSON * cJSON_CreateBitor(const struct Bitor * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "asm", x->asm_asm);
+            cJSON_AddNumberToObject(j, "bitor", x->bitor_bitor);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAsm(const struct Asm * x) {
+char * cJSON_PrintBitor(const struct Bitor * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAsm(x);
+        cJSON * j = cJSON_CreateBitor(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2505,53 +2492,53 @@ char * cJSON_PrintAsm(const struct Asm * x) {
     return s;
 }
 
-void cJSON_DeleteAsm(struct Asm * x) {
+void cJSON_DeleteBitor(struct Bitor * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct AtomicCancel * cJSON_ParseAtomicCancel(const char * s) {
-    struct AtomicCancel * x = NULL;
+struct BoolClass * cJSON_ParseBoolClass(const char * s) {
+    struct BoolClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAtomicCancelValue(j);
+            x = cJSON_GetBoolClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct AtomicCancel * cJSON_GetAtomicCancelValue(const cJSON * j) {
-    struct AtomicCancel * x = NULL;
+struct BoolClass * cJSON_GetBoolClassValue(const cJSON * j) {
+    struct BoolClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicCancel)))) {
-            memset(x, 0, sizeof(struct AtomicCancel));
-            if (!cJSON_HasObjectItem(j, "atomic_cancel")) { cJSON_DeleteAtomicCancel(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "atomic_cancel")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_cancel"))) { cJSON_DeleteAtomicCancel(x); return NULL; }
-                x->atomic_cancel_atomic_cancel = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_cancel"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct BoolClass)))) {
+            memset(x, 0, sizeof(struct BoolClass));
+            if (!cJSON_HasObjectItem(j, "BOOL")) { cJSON_DeleteBoolClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "BOOL")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "BOOL"))) { cJSON_DeleteBoolClass(x); return NULL; }
+                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "BOOL"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAtomicCancel(const struct AtomicCancel * x) {
+cJSON * cJSON_CreateBoolClass(const struct BoolClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "atomic_cancel", x->atomic_cancel_atomic_cancel);
+            cJSON_AddNumberToObject(j, "BOOL", x->bool_bool);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAtomicCancel(const struct AtomicCancel * x) {
+char * cJSON_PrintBoolClass(const struct BoolClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAtomicCancel(x);
+        cJSON * j = cJSON_CreateBoolClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2560,53 +2547,53 @@ char * cJSON_PrintAtomicCancel(const struct AtomicCancel * x) {
     return s;
 }
 
-void cJSON_DeleteAtomicCancel(struct AtomicCancel * x) {
+void cJSON_DeleteBoolClass(struct BoolClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct AtomicCommit * cJSON_ParseAtomicCommit(const char * s) {
-    struct AtomicCommit * x = NULL;
+struct Break * cJSON_ParseBreak(const char * s) {
+    struct Break * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAtomicCommitValue(j);
+            x = cJSON_GetBreakValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct AtomicCommit * cJSON_GetAtomicCommitValue(const cJSON * j) {
-    struct AtomicCommit * x = NULL;
+struct Break * cJSON_GetBreakValue(const cJSON * j) {
+    struct Break * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicCommit)))) {
-            memset(x, 0, sizeof(struct AtomicCommit));
-            if (!cJSON_HasObjectItem(j, "atomic_commit")) { cJSON_DeleteAtomicCommit(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "atomic_commit")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_commit"))) { cJSON_DeleteAtomicCommit(x); return NULL; }
-                x->atomic_commit_atomic_commit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_commit"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Break)))) {
+            memset(x, 0, sizeof(struct Break));
+            if (!cJSON_HasObjectItem(j, "break")) { cJSON_DeleteBreak(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "break")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "break"))) { cJSON_DeleteBreak(x); return NULL; }
+                x->break_break = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "break"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAtomicCommit(const struct AtomicCommit * x) {
+cJSON * cJSON_CreateBreak(const struct Break * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "atomic_commit", x->atomic_commit_atomic_commit);
+            cJSON_AddNumberToObject(j, "break", x->break_break);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAtomicCommit(const struct AtomicCommit * x) {
+char * cJSON_PrintBreak(const struct Break * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAtomicCommit(x);
+        cJSON * j = cJSON_CreateBreak(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2615,53 +2602,53 @@ char * cJSON_PrintAtomicCommit(const struct AtomicCommit * x) {
     return s;
 }
 
-void cJSON_DeleteAtomicCommit(struct AtomicCommit * x) {
+void cJSON_DeleteBreak(struct Break * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct AtomicNoexcept * cJSON_ParseAtomicNoexcept(const char * s) {
-    struct AtomicNoexcept * x = NULL;
+struct Case * cJSON_ParseCase(const char * s) {
+    struct Case * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAtomicNoexceptValue(j);
+            x = cJSON_GetCaseValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct AtomicNoexcept * cJSON_GetAtomicNoexceptValue(const cJSON * j) {
-    struct AtomicNoexcept * x = NULL;
+struct Case * cJSON_GetCaseValue(const cJSON * j) {
+    struct Case * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct AtomicNoexcept)))) {
-            memset(x, 0, sizeof(struct AtomicNoexcept));
-            if (!cJSON_HasObjectItem(j, "atomic_noexcept")) { cJSON_DeleteAtomicNoexcept(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "atomic_noexcept")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "atomic_noexcept"))) { cJSON_DeleteAtomicNoexcept(x); return NULL; }
-                x->atomic_noexcept_atomic_noexcept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "atomic_noexcept"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Case)))) {
+            memset(x, 0, sizeof(struct Case));
+            if (!cJSON_HasObjectItem(j, "case")) { cJSON_DeleteCase(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "case")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "case"))) { cJSON_DeleteCase(x); return NULL; }
+                x->case_case = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "case"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAtomicNoexcept(const struct AtomicNoexcept * x) {
+cJSON * cJSON_CreateCase(const struct Case * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "atomic_noexcept", x->atomic_noexcept_atomic_noexcept);
+            cJSON_AddNumberToObject(j, "case", x->case_case);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAtomicNoexcept(const struct AtomicNoexcept * x) {
+char * cJSON_PrintCase(const struct Case * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAtomicNoexcept(x);
+        cJSON * j = cJSON_CreateCase(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2670,53 +2657,53 @@ char * cJSON_PrintAtomicNoexcept(const struct AtomicNoexcept * x) {
     return s;
 }
 
-void cJSON_DeleteAtomicNoexcept(struct AtomicNoexcept * x) {
+void cJSON_DeleteCase(struct Case * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Auto * cJSON_ParseAuto(const char * s) {
-    struct Auto * x = NULL;
+struct Catch * cJSON_ParseCatch(const char * s) {
+    struct Catch * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAutoValue(j);
+            x = cJSON_GetCatchValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Auto * cJSON_GetAutoValue(const cJSON * j) {
-    struct Auto * x = NULL;
+struct Catch * cJSON_GetCatchValue(const cJSON * j) {
+    struct Catch * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Auto)))) {
-            memset(x, 0, sizeof(struct Auto));
-            if (!cJSON_HasObjectItem(j, "auto")) { cJSON_DeleteAuto(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "auto")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "auto"))) { cJSON_DeleteAuto(x); return NULL; }
-                x->auto_auto = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "auto"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Catch)))) {
+            memset(x, 0, sizeof(struct Catch));
+            if (!cJSON_HasObjectItem(j, "catch")) { cJSON_DeleteCatch(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "catch")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "catch"))) { cJSON_DeleteCatch(x); return NULL; }
+                x->catch_catch = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "catch"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAuto(const struct Auto * x) {
+cJSON * cJSON_CreateCatch(const struct Catch * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "auto", x->auto_auto);
+            cJSON_AddNumberToObject(j, "catch", x->catch_catch);
         }
     }
     return j;
 }
 
-char * cJSON_PrintAuto(const struct Auto * x) {
+char * cJSON_PrintCatch(const struct Catch * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAuto(x);
+        cJSON * j = cJSON_CreateCatch(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2725,53 +2712,53 @@ char * cJSON_PrintAuto(const struct Auto * x) {
     return s;
 }
 
-void cJSON_DeleteAuto(struct Auto * x) {
+void cJSON_DeleteCatch(struct Catch * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Bitand * cJSON_ParseBitand(const char * s) {
-    struct Bitand * x = NULL;
+struct Char * cJSON_ParseChar(const char * s) {
+    struct Char * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBitandValue(j);
+            x = cJSON_GetCharValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Bitand * cJSON_GetBitandValue(const cJSON * j) {
-    struct Bitand * x = NULL;
+struct Char * cJSON_GetCharValue(const cJSON * j) {
+    struct Char * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Bitand)))) {
-            memset(x, 0, sizeof(struct Bitand));
-            if (!cJSON_HasObjectItem(j, "bitand")) { cJSON_DeleteBitand(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "bitand")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bitand"))) { cJSON_DeleteBitand(x); return NULL; }
-                x->bitand_bitand = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bitand"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Char)))) {
+            memset(x, 0, sizeof(struct Char));
+            if (!cJSON_HasObjectItem(j, "char")) { cJSON_DeleteChar(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "char")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char"))) { cJSON_DeleteChar(x); return NULL; }
+                x->char_char = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBitand(const struct Bitand * x) {
+cJSON * cJSON_CreateChar(const struct Char * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "bitand", x->bitand_bitand);
+            cJSON_AddNumberToObject(j, "char", x->char_char);
         }
     }
     return j;
 }
 
-char * cJSON_PrintBitand(const struct Bitand * x) {
+char * cJSON_PrintChar(const struct Char * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBitand(x);
+        cJSON * j = cJSON_CreateChar(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2780,53 +2767,53 @@ char * cJSON_PrintBitand(const struct Bitand * x) {
     return s;
 }
 
-void cJSON_DeleteBitand(struct Bitand * x) {
+void cJSON_DeleteChar(struct Char * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Bitor * cJSON_ParseBitor(const char * s) {
-    struct Bitor * x = NULL;
+struct Char16T * cJSON_ParseChar16T(const char * s) {
+    struct Char16T * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBitorValue(j);
+            x = cJSON_GetChar16TValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Bitor * cJSON_GetBitorValue(const cJSON * j) {
-    struct Bitor * x = NULL;
+struct Char16T * cJSON_GetChar16TValue(const cJSON * j) {
+    struct Char16T * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Bitor)))) {
-            memset(x, 0, sizeof(struct Bitor));
-            if (!cJSON_HasObjectItem(j, "bitor")) { cJSON_DeleteBitor(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "bitor")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "bitor"))) { cJSON_DeleteBitor(x); return NULL; }
-                x->bitor_bitor = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "bitor"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Char16T)))) {
+            memset(x, 0, sizeof(struct Char16T));
+            if (!cJSON_HasObjectItem(j, "char16_t")) { cJSON_DeleteChar16T(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "char16_t")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char16_t"))) { cJSON_DeleteChar16T(x); return NULL; }
+                x->char16_t_char16_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char16_t"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBitor(const struct Bitor * x) {
+cJSON * cJSON_CreateChar16T(const struct Char16T * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "bitor", x->bitor_bitor);
+            cJSON_AddNumberToObject(j, "char16_t", x->char16_t_char16_t);
         }
     }
     return j;
 }
 
-char * cJSON_PrintBitor(const struct Bitor * x) {
+char * cJSON_PrintChar16T(const struct Char16T * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBitor(x);
+        cJSON * j = cJSON_CreateChar16T(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2835,53 +2822,53 @@ char * cJSON_PrintBitor(const struct Bitor * x) {
     return s;
 }
 
-void cJSON_DeleteBitor(struct Bitor * x) {
+void cJSON_DeleteChar16T(struct Char16T * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct BoolClass * cJSON_ParseBoolClass(const char * s) {
-    struct BoolClass * x = NULL;
+struct Char32T * cJSON_ParseChar32T(const char * s) {
+    struct Char32T * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBoolClassValue(j);
+            x = cJSON_GetChar32TValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct BoolClass * cJSON_GetBoolClassValue(const cJSON * j) {
-    struct BoolClass * x = NULL;
+struct Char32T * cJSON_GetChar32TValue(const cJSON * j) {
+    struct Char32T * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct BoolClass)))) {
-            memset(x, 0, sizeof(struct BoolClass));
-            if (!cJSON_HasObjectItem(j, "BOOL")) { cJSON_DeleteBoolClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "BOOL")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "BOOL"))) { cJSON_DeleteBoolClass(x); return NULL; }
-                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "BOOL"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Char32T)))) {
+            memset(x, 0, sizeof(struct Char32T));
+            if (!cJSON_HasObjectItem(j, "char32_t")) { cJSON_DeleteChar32T(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "char32_t")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char32_t"))) { cJSON_DeleteChar32T(x); return NULL; }
+                x->char32_t_char32_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char32_t"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBoolClass(const struct BoolClass * x) {
+cJSON * cJSON_CreateChar32T(const struct Char32T * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "BOOL", x->bool_bool);
+            cJSON_AddNumberToObject(j, "char32_t", x->char32_t_char32_t);
         }
     }
     return j;
 }
 
-char * cJSON_PrintBoolClass(const struct BoolClass * x) {
+char * cJSON_PrintChar32T(const struct Char32T * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBoolClass(x);
+        cJSON * j = cJSON_CreateChar32T(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2890,53 +2877,53 @@ char * cJSON_PrintBoolClass(const struct BoolClass * x) {
     return s;
 }
 
-void cJSON_DeleteBoolClass(struct BoolClass * x) {
+void cJSON_DeleteChar32T(struct Char32T * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Break * cJSON_ParseBreak(const char * s) {
-    struct Break * x = NULL;
+struct Class * cJSON_ParseClass(const char * s) {
+    struct Class * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBreakValue(j);
+            x = cJSON_GetClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Break * cJSON_GetBreakValue(const cJSON * j) {
-    struct Break * x = NULL;
+struct Class * cJSON_GetClassValue(const cJSON * j) {
+    struct Class * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Break)))) {
-            memset(x, 0, sizeof(struct Break));
-            if (!cJSON_HasObjectItem(j, "break")) { cJSON_DeleteBreak(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "break")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "break"))) { cJSON_DeleteBreak(x); return NULL; }
-                x->break_break = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "break"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Class)))) {
+            memset(x, 0, sizeof(struct Class));
+            if (!cJSON_HasObjectItem(j, "Class")) { cJSON_DeleteClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Class")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Class"))) { cJSON_DeleteClass(x); return NULL; }
+                x->class_class = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Class"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBreak(const struct Break * x) {
+cJSON * cJSON_CreateClass(const struct Class * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "break", x->break_break);
+            cJSON_AddNumberToObject(j, "Class", x->class_class);
         }
     }
     return j;
 }
 
-char * cJSON_PrintBreak(const struct Break * x) {
+char * cJSON_PrintClass(const struct Class * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBreak(x);
+        cJSON * j = cJSON_CreateClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -2945,53 +2932,53 @@ char * cJSON_PrintBreak(const struct Break * x) {
     return s;
 }
 
-void cJSON_DeleteBreak(struct Break * x) {
+void cJSON_DeleteClass(struct Class * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Case * cJSON_ParseCase(const char * s) {
-    struct Case * x = NULL;
+struct CoAwait * cJSON_ParseCoAwait(const char * s) {
+    struct CoAwait * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCaseValue(j);
+            x = cJSON_GetCoAwaitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Case * cJSON_GetCaseValue(const cJSON * j) {
-    struct Case * x = NULL;
+struct CoAwait * cJSON_GetCoAwaitValue(const cJSON * j) {
+    struct CoAwait * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Case)))) {
-            memset(x, 0, sizeof(struct Case));
-            if (!cJSON_HasObjectItem(j, "case")) { cJSON_DeleteCase(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "case")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "case"))) { cJSON_DeleteCase(x); return NULL; }
-                x->case_case = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "case"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct CoAwait)))) {
+            memset(x, 0, sizeof(struct CoAwait));
+            if (!cJSON_HasObjectItem(j, "co_await")) { cJSON_DeleteCoAwait(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "co_await")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_await"))) { cJSON_DeleteCoAwait(x); return NULL; }
+                x->co_await_co_await = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_await"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCase(const struct Case * x) {
+cJSON * cJSON_CreateCoAwait(const struct CoAwait * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "case", x->case_case);
+            cJSON_AddNumberToObject(j, "co_await", x->co_await_co_await);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCase(const struct Case * x) {
+char * cJSON_PrintCoAwait(const struct CoAwait * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCase(x);
+        cJSON * j = cJSON_CreateCoAwait(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3000,53 +2987,53 @@ char * cJSON_PrintCase(const struct Case * x) {
     return s;
 }
 
-void cJSON_DeleteCase(struct Case * x) {
+void cJSON_DeleteCoAwait(struct CoAwait * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Catch * cJSON_ParseCatch(const char * s) {
-    struct Catch * x = NULL;
+struct CoReturn * cJSON_ParseCoReturn(const char * s) {
+    struct CoReturn * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCatchValue(j);
+            x = cJSON_GetCoReturnValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Catch * cJSON_GetCatchValue(const cJSON * j) {
-    struct Catch * x = NULL;
+struct CoReturn * cJSON_GetCoReturnValue(const cJSON * j) {
+    struct CoReturn * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Catch)))) {
-            memset(x, 0, sizeof(struct Catch));
-            if (!cJSON_HasObjectItem(j, "catch")) { cJSON_DeleteCatch(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "catch")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "catch"))) { cJSON_DeleteCatch(x); return NULL; }
-                x->catch_catch = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "catch"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct CoReturn)))) {
+            memset(x, 0, sizeof(struct CoReturn));
+            if (!cJSON_HasObjectItem(j, "co_return")) { cJSON_DeleteCoReturn(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "co_return")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_return"))) { cJSON_DeleteCoReturn(x); return NULL; }
+                x->co_return_co_return = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_return"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCatch(const struct Catch * x) {
+cJSON * cJSON_CreateCoReturn(const struct CoReturn * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "catch", x->catch_catch);
+            cJSON_AddNumberToObject(j, "co_return", x->co_return_co_return);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCatch(const struct Catch * x) {
+char * cJSON_PrintCoReturn(const struct CoReturn * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCatch(x);
+        cJSON * j = cJSON_CreateCoReturn(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3055,53 +3042,53 @@ char * cJSON_PrintCatch(const struct Catch * x) {
     return s;
 }
 
-void cJSON_DeleteCatch(struct Catch * x) {
+void cJSON_DeleteCoReturn(struct CoReturn * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Char * cJSON_ParseChar(const char * s) {
-    struct Char * x = NULL;
+struct CoYield * cJSON_ParseCoYield(const char * s) {
+    struct CoYield * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCharValue(j);
+            x = cJSON_GetCoYieldValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Char * cJSON_GetCharValue(const cJSON * j) {
-    struct Char * x = NULL;
+struct CoYield * cJSON_GetCoYieldValue(const cJSON * j) {
+    struct CoYield * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Char)))) {
-            memset(x, 0, sizeof(struct Char));
-            if (!cJSON_HasObjectItem(j, "char")) { cJSON_DeleteChar(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "char")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char"))) { cJSON_DeleteChar(x); return NULL; }
-                x->char_char = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct CoYield)))) {
+            memset(x, 0, sizeof(struct CoYield));
+            if (!cJSON_HasObjectItem(j, "co_yield")) { cJSON_DeleteCoYield(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "co_yield")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_yield"))) { cJSON_DeleteCoYield(x); return NULL; }
+                x->co_yield_co_yield = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_yield"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateChar(const struct Char * x) {
+cJSON * cJSON_CreateCoYield(const struct CoYield * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "char", x->char_char);
+            cJSON_AddNumberToObject(j, "co_yield", x->co_yield_co_yield);
         }
     }
     return j;
 }
 
-char * cJSON_PrintChar(const struct Char * x) {
+char * cJSON_PrintCoYield(const struct CoYield * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateChar(x);
+        cJSON * j = cJSON_CreateCoYield(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3110,53 +3097,53 @@ char * cJSON_PrintChar(const struct Char * x) {
     return s;
 }
 
-void cJSON_DeleteChar(struct Char * x) {
+void cJSON_DeleteCoYield(struct CoYield * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Char16T * cJSON_ParseChar16T(const char * s) {
-    struct Char16T * x = NULL;
+struct Compl * cJSON_ParseCompl(const char * s) {
+    struct Compl * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetChar16TValue(j);
+            x = cJSON_GetComplValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Char16T * cJSON_GetChar16TValue(const cJSON * j) {
-    struct Char16T * x = NULL;
+struct Compl * cJSON_GetComplValue(const cJSON * j) {
+    struct Compl * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Char16T)))) {
-            memset(x, 0, sizeof(struct Char16T));
-            if (!cJSON_HasObjectItem(j, "char16_t")) { cJSON_DeleteChar16T(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "char16_t")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char16_t"))) { cJSON_DeleteChar16T(x); return NULL; }
-                x->char16_t_char16_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char16_t"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Compl)))) {
+            memset(x, 0, sizeof(struct Compl));
+            if (!cJSON_HasObjectItem(j, "compl")) { cJSON_DeleteCompl(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "compl")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "compl"))) { cJSON_DeleteCompl(x); return NULL; }
+                x->compl_compl = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "compl"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateChar16T(const struct Char16T * x) {
+cJSON * cJSON_CreateCompl(const struct Compl * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "char16_t", x->char16_t_char16_t);
+            cJSON_AddNumberToObject(j, "compl", x->compl_compl);
         }
     }
     return j;
 }
 
-char * cJSON_PrintChar16T(const struct Char16T * x) {
+char * cJSON_PrintCompl(const struct Compl * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateChar16T(x);
+        cJSON * j = cJSON_CreateCompl(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3165,53 +3152,53 @@ char * cJSON_PrintChar16T(const struct Char16T * x) {
     return s;
 }
 
-void cJSON_DeleteChar16T(struct Char16T * x) {
+void cJSON_DeleteCompl(struct Compl * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Char32T * cJSON_ParseChar32T(const char * s) {
-    struct Char32T * x = NULL;
+struct Concept * cJSON_ParseConcept(const char * s) {
+    struct Concept * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetChar32TValue(j);
+            x = cJSON_GetConceptValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Char32T * cJSON_GetChar32TValue(const cJSON * j) {
-    struct Char32T * x = NULL;
+struct Concept * cJSON_GetConceptValue(const cJSON * j) {
+    struct Concept * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Char32T)))) {
-            memset(x, 0, sizeof(struct Char32T));
-            if (!cJSON_HasObjectItem(j, "char32_t")) { cJSON_DeleteChar32T(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "char32_t")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "char32_t"))) { cJSON_DeleteChar32T(x); return NULL; }
-                x->char32_t_char32_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "char32_t"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Concept)))) {
+            memset(x, 0, sizeof(struct Concept));
+            if (!cJSON_HasObjectItem(j, "concept")) { cJSON_DeleteConcept(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "concept")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "concept"))) { cJSON_DeleteConcept(x); return NULL; }
+                x->concept_concept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "concept"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateChar32T(const struct Char32T * x) {
+cJSON * cJSON_CreateConcept(const struct Concept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "char32_t", x->char32_t_char32_t);
+            cJSON_AddNumberToObject(j, "concept", x->concept_concept);
         }
     }
     return j;
 }
 
-char * cJSON_PrintChar32T(const struct Char32T * x) {
+char * cJSON_PrintConcept(const struct Concept * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateChar32T(x);
+        cJSON * j = cJSON_CreateConcept(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3220,53 +3207,53 @@ char * cJSON_PrintChar32T(const struct Char32T * x) {
     return s;
 }
 
-void cJSON_DeleteChar32T(struct Char32T * x) {
+void cJSON_DeleteConcept(struct Concept * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Class * cJSON_ParseClass(const char * s) {
-    struct Class * x = NULL;
+struct Const * cJSON_ParseConst(const char * s) {
+    struct Const * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetClassValue(j);
+            x = cJSON_GetConstValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Class * cJSON_GetClassValue(const cJSON * j) {
-    struct Class * x = NULL;
+struct Const * cJSON_GetConstValue(const cJSON * j) {
+    struct Const * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Class)))) {
-            memset(x, 0, sizeof(struct Class));
-            if (!cJSON_HasObjectItem(j, "Class")) { cJSON_DeleteClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Class")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Class"))) { cJSON_DeleteClass(x); return NULL; }
-                x->class_class = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Class"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Const)))) {
+            memset(x, 0, sizeof(struct Const));
+            if (!cJSON_HasObjectItem(j, "const")) { cJSON_DeleteConst(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "const")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "const"))) { cJSON_DeleteConst(x); return NULL; }
+                x->const_const = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "const"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateClass(const struct Class * x) {
+cJSON * cJSON_CreateConst(const struct Const * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "Class", x->class_class);
+            cJSON_AddNumberToObject(j, "const", x->const_const);
         }
     }
     return j;
 }
 
-char * cJSON_PrintClass(const struct Class * x) {
+char * cJSON_PrintConst(const struct Const * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateClass(x);
+        cJSON * j = cJSON_CreateConst(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3275,53 +3262,53 @@ char * cJSON_PrintClass(const struct Class * x) {
     return s;
 }
 
-void cJSON_DeleteClass(struct Class * x) {
+void cJSON_DeleteConst(struct Const * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct CoAwait * cJSON_ParseCoAwait(const char * s) {
-    struct CoAwait * x = NULL;
+struct ConstCast * cJSON_ParseConstCast(const char * s) {
+    struct ConstCast * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCoAwaitValue(j);
+            x = cJSON_GetConstCastValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct CoAwait * cJSON_GetCoAwaitValue(const cJSON * j) {
-    struct CoAwait * x = NULL;
+struct ConstCast * cJSON_GetConstCastValue(const cJSON * j) {
+    struct ConstCast * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct CoAwait)))) {
-            memset(x, 0, sizeof(struct CoAwait));
-            if (!cJSON_HasObjectItem(j, "co_await")) { cJSON_DeleteCoAwait(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "co_await")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_await"))) { cJSON_DeleteCoAwait(x); return NULL; }
-                x->co_await_co_await = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_await"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ConstCast)))) {
+            memset(x, 0, sizeof(struct ConstCast));
+            if (!cJSON_HasObjectItem(j, "const_cast")) { cJSON_DeleteConstCast(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "const_cast")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "const_cast"))) { cJSON_DeleteConstCast(x); return NULL; }
+                x->const_cast_const_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "const_cast"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCoAwait(const struct CoAwait * x) {
+cJSON * cJSON_CreateConstCast(const struct ConstCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "co_await", x->co_await_co_await);
+            cJSON_AddNumberToObject(j, "const_cast", x->const_cast_const_cast);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCoAwait(const struct CoAwait * x) {
+char * cJSON_PrintConstCast(const struct ConstCast * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCoAwait(x);
+        cJSON * j = cJSON_CreateConstCast(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3330,53 +3317,53 @@ char * cJSON_PrintCoAwait(const struct CoAwait * x) {
     return s;
 }
 
-void cJSON_DeleteCoAwait(struct CoAwait * x) {
+void cJSON_DeleteConstCast(struct ConstCast * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct CoReturn * cJSON_ParseCoReturn(const char * s) {
-    struct CoReturn * x = NULL;
+struct Constexpr * cJSON_ParseConstexpr(const char * s) {
+    struct Constexpr * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCoReturnValue(j);
+            x = cJSON_GetConstexprValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct CoReturn * cJSON_GetCoReturnValue(const cJSON * j) {
-    struct CoReturn * x = NULL;
+struct Constexpr * cJSON_GetConstexprValue(const cJSON * j) {
+    struct Constexpr * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct CoReturn)))) {
-            memset(x, 0, sizeof(struct CoReturn));
-            if (!cJSON_HasObjectItem(j, "co_return")) { cJSON_DeleteCoReturn(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "co_return")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_return"))) { cJSON_DeleteCoReturn(x); return NULL; }
-                x->co_return_co_return = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_return"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Constexpr)))) {
+            memset(x, 0, sizeof(struct Constexpr));
+            if (!cJSON_HasObjectItem(j, "constexpr")) { cJSON_DeleteConstexpr(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "constexpr")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "constexpr"))) { cJSON_DeleteConstexpr(x); return NULL; }
+                x->constexpr_constexpr = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "constexpr"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCoReturn(const struct CoReturn * x) {
+cJSON * cJSON_CreateConstexpr(const struct Constexpr * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "co_return", x->co_return_co_return);
+            cJSON_AddNumberToObject(j, "constexpr", x->constexpr_constexpr);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCoReturn(const struct CoReturn * x) {
+char * cJSON_PrintConstexpr(const struct Constexpr * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCoReturn(x);
+        cJSON * j = cJSON_CreateConstexpr(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3385,53 +3372,53 @@ char * cJSON_PrintCoReturn(const struct CoReturn * x) {
     return s;
 }
 
-void cJSON_DeleteCoReturn(struct CoReturn * x) {
+void cJSON_DeleteConstexpr(struct Constexpr * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct CoYield * cJSON_ParseCoYield(const char * s) {
-    struct CoYield * x = NULL;
+struct Continue * cJSON_ParseContinue(const char * s) {
+    struct Continue * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCoYieldValue(j);
+            x = cJSON_GetContinueValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct CoYield * cJSON_GetCoYieldValue(const cJSON * j) {
-    struct CoYield * x = NULL;
+struct Continue * cJSON_GetContinueValue(const cJSON * j) {
+    struct Continue * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct CoYield)))) {
-            memset(x, 0, sizeof(struct CoYield));
-            if (!cJSON_HasObjectItem(j, "co_yield")) { cJSON_DeleteCoYield(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "co_yield")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "co_yield"))) { cJSON_DeleteCoYield(x); return NULL; }
-                x->co_yield_co_yield = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "co_yield"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Continue)))) {
+            memset(x, 0, sizeof(struct Continue));
+            if (!cJSON_HasObjectItem(j, "continue")) { cJSON_DeleteContinue(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "continue")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "continue"))) { cJSON_DeleteContinue(x); return NULL; }
+                x->continue_continue = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "continue"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCoYield(const struct CoYield * x) {
+cJSON * cJSON_CreateContinue(const struct Continue * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "co_yield", x->co_yield_co_yield);
+            cJSON_AddNumberToObject(j, "continue", x->continue_continue);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCoYield(const struct CoYield * x) {
+char * cJSON_PrintContinue(const struct Continue * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCoYield(x);
+        cJSON * j = cJSON_CreateContinue(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3440,53 +3427,53 @@ char * cJSON_PrintCoYield(const struct CoYield * x) {
     return s;
 }
 
-void cJSON_DeleteCoYield(struct CoYield * x) {
+void cJSON_DeleteContinue(struct Continue * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Compl * cJSON_ParseCompl(const char * s) {
-    struct Compl * x = NULL;
+struct Obj1Bool * cJSON_ParseObj1Bool(const char * s) {
+    struct Obj1Bool * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetComplValue(j);
+            x = cJSON_GetObj1BoolValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Compl * cJSON_GetComplValue(const cJSON * j) {
-    struct Compl * x = NULL;
+struct Obj1Bool * cJSON_GetObj1BoolValue(const cJSON * j) {
+    struct Obj1Bool * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Compl)))) {
-            memset(x, 0, sizeof(struct Compl));
-            if (!cJSON_HasObjectItem(j, "compl")) { cJSON_DeleteCompl(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "compl")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "compl"))) { cJSON_DeleteCompl(x); return NULL; }
-                x->compl_compl = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "compl"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1Bool)))) {
+            memset(x, 0, sizeof(struct Obj1Bool));
+            if (!cJSON_HasObjectItem(j, "_Bool")) { cJSON_DeleteObj1Bool(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "_Bool")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_Bool"))) { cJSON_DeleteObj1Bool(x); return NULL; }
+                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_Bool"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateCompl(const struct Compl * x) {
+cJSON * cJSON_CreateObj1Bool(const struct Obj1Bool * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "compl", x->compl_compl);
+            cJSON_AddNumberToObject(j, "_Bool", x->bool_bool);
         }
     }
     return j;
 }
 
-char * cJSON_PrintCompl(const struct Compl * x) {
+char * cJSON_PrintObj1Bool(const struct Obj1Bool * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateCompl(x);
+        cJSON * j = cJSON_CreateObj1Bool(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3495,53 +3482,53 @@ char * cJSON_PrintCompl(const struct Compl * x) {
     return s;
 }
 
-void cJSON_DeleteCompl(struct Compl * x) {
+void cJSON_DeleteObj1Bool(struct Obj1Bool * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Concept * cJSON_ParseConcept(const char * s) {
-    struct Concept * x = NULL;
+struct ClassClass * cJSON_ParseClassClass(const char * s) {
+    struct ClassClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConceptValue(j);
+            x = cJSON_GetClassClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Concept * cJSON_GetConceptValue(const cJSON * j) {
-    struct Concept * x = NULL;
+struct ClassClass * cJSON_GetClassClassValue(const cJSON * j) {
+    struct ClassClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Concept)))) {
-            memset(x, 0, sizeof(struct Concept));
-            if (!cJSON_HasObjectItem(j, "concept")) { cJSON_DeleteConcept(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "concept")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "concept"))) { cJSON_DeleteConcept(x); return NULL; }
-                x->concept_concept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "concept"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ClassClass)))) {
+            memset(x, 0, sizeof(struct ClassClass));
+            if (!cJSON_HasObjectItem(j, "class")) { cJSON_DeleteClassClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "class")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "class"))) { cJSON_DeleteClassClass(x); return NULL; }
+                x->class_class = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "class"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConcept(const struct Concept * x) {
+cJSON * cJSON_CreateClassClass(const struct ClassClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "concept", x->concept_concept);
+            cJSON_AddNumberToObject(j, "class", x->class_class);
         }
     }
     return j;
 }
 
-char * cJSON_PrintConcept(const struct Concept * x) {
+char * cJSON_PrintClassClass(const struct ClassClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConcept(x);
+        cJSON * j = cJSON_CreateClassClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -3550,431 +3537,46 @@ char * cJSON_PrintConcept(const struct Concept * x) {
     return s;
 }
 
-void cJSON_DeleteConcept(struct Concept * x) {
+void cJSON_DeleteClassClass(struct ClassClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Const * cJSON_ParseConst(const char * s) {
-    struct Const * x = NULL;
+struct Obj1 * cJSON_ParseObj1(const char * s) {
+    struct Obj1 * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConstValue(j);
+            x = cJSON_GetObj1Value(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Const * cJSON_GetConstValue(const cJSON * j) {
-    struct Const * x = NULL;
+struct Obj1 * cJSON_GetObj1Value(const cJSON * j) {
+    struct Obj1 * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Const)))) {
-            memset(x, 0, sizeof(struct Const));
-            if (!cJSON_HasObjectItem(j, "const")) { cJSON_DeleteConst(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "const")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "const"))) { cJSON_DeleteConst(x); return NULL; }
-                x->const_const = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "const"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1)))) {
+            memset(x, 0, sizeof(struct Obj1));
+            if (!cJSON_HasObjectItem(j, "abstract")) { cJSON_DeleteObj1(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "abstract")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "abstract"))) { cJSON_DeleteObj1(x); return NULL; }
+                x->abstract = cJSON_GetAbstractValue(cJSON_GetObjectItemCaseSensitive(j, "abstract"));
+                if (NULL == x->abstract) { cJSON_DeleteObj1(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateConst(const struct Const * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "const", x->const_const);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintConst(const struct Const * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateConst(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteConst(struct Const * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct ConstCast * cJSON_ParseConstCast(const char * s) {
-    struct ConstCast * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetConstCastValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct ConstCast * cJSON_GetConstCastValue(const cJSON * j) {
-    struct ConstCast * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ConstCast)))) {
-            memset(x, 0, sizeof(struct ConstCast));
-            if (!cJSON_HasObjectItem(j, "const_cast")) { cJSON_DeleteConstCast(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "const_cast")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "const_cast"))) { cJSON_DeleteConstCast(x); return NULL; }
-                x->const_cast_const_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "const_cast"));
+            if (!cJSON_HasObjectItem(j, "Any")) { cJSON_DeleteObj1(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Any")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Any"))) { cJSON_DeleteObj1(x); return NULL; }
+                x->any = cJSON_GetAnyValue(cJSON_GetObjectItemCaseSensitive(j, "Any"));
+                if (NULL == x->any) { cJSON_DeleteObj1(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateConstCast(const struct ConstCast * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "const_cast", x->const_cast_const_cast);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintConstCast(const struct ConstCast * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateConstCast(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteConstCast(struct ConstCast * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Constexpr * cJSON_ParseConstexpr(const char * s) {
-    struct Constexpr * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetConstexprValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Constexpr * cJSON_GetConstexprValue(const cJSON * j) {
-    struct Constexpr * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Constexpr)))) {
-            memset(x, 0, sizeof(struct Constexpr));
-            if (!cJSON_HasObjectItem(j, "constexpr")) { cJSON_DeleteConstexpr(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "constexpr")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "constexpr"))) { cJSON_DeleteConstexpr(x); return NULL; }
-                x->constexpr_constexpr = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "constexpr"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateConstexpr(const struct Constexpr * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "constexpr", x->constexpr_constexpr);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintConstexpr(const struct Constexpr * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateConstexpr(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteConstexpr(struct Constexpr * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Continue * cJSON_ParseContinue(const char * s) {
-    struct Continue * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetContinueValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Continue * cJSON_GetContinueValue(const cJSON * j) {
-    struct Continue * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Continue)))) {
-            memset(x, 0, sizeof(struct Continue));
-            if (!cJSON_HasObjectItem(j, "continue")) { cJSON_DeleteContinue(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "continue")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "continue"))) { cJSON_DeleteContinue(x); return NULL; }
-                x->continue_continue = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "continue"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateContinue(const struct Continue * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "continue", x->continue_continue);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintContinue(const struct Continue * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateContinue(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteContinue(struct Continue * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Decltype * cJSON_ParseDecltype(const char * s) {
-    struct Decltype * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetDecltypeValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Decltype * cJSON_GetDecltypeValue(const cJSON * j) {
-    struct Decltype * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Decltype)))) {
-            memset(x, 0, sizeof(struct Decltype));
-            if (!cJSON_HasObjectItem(j, "decltype")) { cJSON_DeleteDecltype(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decltype")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decltype"))) { cJSON_DeleteDecltype(x); return NULL; }
-                x->decltype_decltype = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decltype"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateDecltype(const struct Decltype * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "decltype", x->decltype_decltype);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintDecltype(const struct Decltype * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateDecltype(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteDecltype(struct Decltype * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj1Bool * cJSON_ParseObj1Bool(const char * s) {
-    struct Obj1Bool * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj1BoolValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj1Bool * cJSON_GetObj1BoolValue(const cJSON * j) {
-    struct Obj1Bool * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1Bool)))) {
-            memset(x, 0, sizeof(struct Obj1Bool));
-            if (!cJSON_HasObjectItem(j, "_Bool")) { cJSON_DeleteObj1Bool(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "_Bool")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "_Bool"))) { cJSON_DeleteObj1Bool(x); return NULL; }
-                x->bool_bool = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "_Bool"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateObj1Bool(const struct Obj1Bool * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "_Bool", x->bool_bool);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintObj1Bool(const struct Obj1Bool * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateObj1Bool(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteObj1Bool(struct Obj1Bool * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct ClassClass * cJSON_ParseClassClass(const char * s) {
-    struct ClassClass * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetClassClassValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct ClassClass * cJSON_GetClassClassValue(const cJSON * j) {
-    struct ClassClass * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ClassClass)))) {
-            memset(x, 0, sizeof(struct ClassClass));
-            if (!cJSON_HasObjectItem(j, "class")) { cJSON_DeleteClassClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "class")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "class"))) { cJSON_DeleteClassClass(x); return NULL; }
-                x->class_class = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "class"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateClassClass(const struct ClassClass * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "class", x->class_class);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintClassClass(const struct ClassClass * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateClassClass(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteClassClass(struct ClassClass * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj1 * cJSON_ParseObj1(const char * s) {
-    struct Obj1 * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj1Value(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj1 * cJSON_GetObj1Value(const cJSON * j) {
-    struct Obj1 * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj1)))) {
-            memset(x, 0, sizeof(struct Obj1));
-            if (!cJSON_HasObjectItem(j, "abstract")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "abstract")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "abstract"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->abstract = cJSON_GetAbstractValue(cJSON_GetObjectItemCaseSensitive(j, "abstract"));
-                if (NULL == x->abstract) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "Any")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Any")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Any"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->any = cJSON_GetAnyValue(cJSON_GetObjectItemCaseSensitive(j, "Any"));
-                if (NULL == x->any) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "array")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "array")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "array"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->array = cJSON_GetArrayClassValue(cJSON_GetObjectItemCaseSensitive(j, "array"));
-                if (NULL == x->array) { cJSON_DeleteObj1(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "array")) { cJSON_DeleteObj1(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "array")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "array"))) { cJSON_DeleteObj1(x); return NULL; }
+                x->array = cJSON_GetArrayClassValue(cJSON_GetObjectItemCaseSensitive(j, "array"));
+                if (NULL == x->array) { cJSON_DeleteObj1(x); return NULL; }
             }
             if (!cJSON_HasObjectItem(j, "as")) { cJSON_DeleteObj1(x); return NULL; }
             if (cJSON_HasObjectItem(j, "as")) {
@@ -4138,42 +3740,6 @@ struct Obj1 * cJSON_GetObj1Value(const cJSON * j) {
                 x->date_parse_handling = cJSON_GetDateParseHandlingValue(cJSON_GetObjectItemCaseSensitive(j, "date_parse_handling"));
                 if (NULL == x->date_parse_handling) { cJSON_DeleteObj1(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "DateTime")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "DateTime")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "DateTime"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->date_time = cJSON_GetDateTimeValue(cJSON_GetObjectItemCaseSensitive(j, "DateTime"));
-                if (NULL == x->date_time) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "DateTimeStyles")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "DateTimeStyles")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->date_time_styles = cJSON_GetDateTimeStylesValue(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"));
-                if (NULL == x->date_time_styles) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "debugger")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "debugger")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "debugger"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->debugger = cJSON_GetDebuggerValue(cJSON_GetObjectItemCaseSensitive(j, "debugger"));
-                if (NULL == x->debugger) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "decimal")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decimal")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decimal"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->decimal = cJSON_GetDecimalValue(cJSON_GetObjectItemCaseSensitive(j, "decimal"));
-                if (NULL == x->decimal) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "declare")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "declare")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "declare"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->declare = cJSON_GetDeclareValue(cJSON_GetObjectItemCaseSensitive(j, "declare"));
-                if (NULL == x->declare) { cJSON_DeleteObj1(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "decode_string")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decode_string")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decode_string"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->decode_string = cJSON_GetDecodeStringValue(cJSON_GetObjectItemCaseSensitive(j, "decode_string"));
-                if (NULL == x->decode_string) { cJSON_DeleteObj1(x); return NULL; }
-            }
             if (!cJSON_HasObjectItem(j, "dummy")) { cJSON_DeleteObj1(x); return NULL; }
             if (cJSON_HasObjectItem(j, "dummy")) {
                 if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj1(x); return NULL; }
@@ -4371,12 +3937,6 @@ struct Obj1 * cJSON_GetObj1Value(const cJSON * j) {
                 x->obj1_continue = cJSON_GetContinueValue(cJSON_GetObjectItemCaseSensitive(j, "continue"));
                 if (NULL == x->obj1_continue) { cJSON_DeleteObj1(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "decltype")) { cJSON_DeleteObj1(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "decltype")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decltype"))) { cJSON_DeleteObj1(x); return NULL; }
-                x->obj1_decltype = cJSON_GetDecltypeValue(cJSON_GetObjectItemCaseSensitive(j, "decltype"));
-                if (NULL == x->obj1_decltype) { cJSON_DeleteObj1(x); return NULL; }
-            }
             if (!cJSON_HasObjectItem(j, "_Bool")) { cJSON_DeleteObj1(x); return NULL; }
             if (cJSON_HasObjectItem(j, "_Bool")) {
                 if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "_Bool"))) { cJSON_DeleteObj1(x); return NULL; }
@@ -4428,12 +3988,6 @@ cJSON * cJSON_CreateObj1(const struct Obj1 * x) {
             cJSON_AddItemToObject(j, "DateOnly", cJSON_CreateDateOnly(x->date_only));
             cJSON_AddItemToObject(j, "DateOnlyConverter", cJSON_CreateDateOnlyConverter(x->date_only_converter));
             cJSON_AddItemToObject(j, "date_parse_handling", cJSON_CreateDateParseHandling(x->date_parse_handling));
-            cJSON_AddItemToObject(j, "DateTime", cJSON_CreateDateTime(x->date_time));
-            cJSON_AddItemToObject(j, "DateTimeStyles", cJSON_CreateDateTimeStyles(x->date_time_styles));
-            cJSON_AddItemToObject(j, "debugger", cJSON_CreateDebugger(x->debugger));
-            cJSON_AddItemToObject(j, "decimal", cJSON_CreateDecimal(x->decimal));
-            cJSON_AddItemToObject(j, "declare", cJSON_CreateDeclare(x->declare));
-            cJSON_AddItemToObject(j, "decode_string", cJSON_CreateDecodeString(x->decode_string));
             cJSON_AddNumberToObject(j, "dummy", x->dummy);
             cJSON_AddItemToObject(j, "_", cJSON_CreateEmpty(x->empty));
             cJSON_AddItemToObject(j, "bool", cJSON_CreateObj1BoolClass(x->fluffy_bool));
@@ -4467,7 +4021,6 @@ cJSON * cJSON_CreateObj1(const struct Obj1 * x) {
             cJSON_AddItemToObject(j, "const_cast", cJSON_CreateConstCast(x->obj1_const_cast));
             cJSON_AddItemToObject(j, "constexpr", cJSON_CreateConstexpr(x->obj1_constexpr));
             cJSON_AddItemToObject(j, "continue", cJSON_CreateContinue(x->obj1_continue));
-            cJSON_AddItemToObject(j, "decltype", cJSON_CreateDecltype(x->obj1_decltype));
             cJSON_AddItemToObject(j, "_Bool", cJSON_CreateObj1Bool(x->purple_bool));
             cJSON_AddItemToObject(j, "class", cJSON_CreateClassClass(x->purple_class));
         }
@@ -4579,24 +4132,6 @@ void cJSON_DeleteObj1(struct Obj1 * x) {
         if (NULL != x->date_parse_handling) {
             cJSON_DeleteDateParseHandling(x->date_parse_handling);
         }
-        if (NULL != x->date_time) {
-            cJSON_DeleteDateTime(x->date_time);
-        }
-        if (NULL != x->date_time_styles) {
-            cJSON_DeleteDateTimeStyles(x->date_time_styles);
-        }
-        if (NULL != x->debugger) {
-            cJSON_DeleteDebugger(x->debugger);
-        }
-        if (NULL != x->decimal) {
-            cJSON_DeleteDecimal(x->decimal);
-        }
-        if (NULL != x->declare) {
-            cJSON_DeleteDeclare(x->declare);
-        }
-        if (NULL != x->decode_string) {
-            cJSON_DeleteDecodeString(x->decode_string);
-        }
         if (NULL != x->empty) {
             cJSON_DeleteEmpty(x->empty);
         }
@@ -4693,9 +4228,6 @@ void cJSON_DeleteObj1(struct Obj1 * x) {
         if (NULL != x->obj1_continue) {
             cJSON_DeleteContinue(x->obj1_continue);
         }
-        if (NULL != x->obj1_decltype) {
-            cJSON_DeleteDecltype(x->obj1_decltype);
-        }
         if (NULL != x->purple_bool) {
             cJSON_DeleteObj1Bool(x->purple_bool);
         }
@@ -4706,47 +4238,57 @@ void cJSON_DeleteObj1(struct Obj1 * x) {
     }
 }
 
-struct Def * cJSON_ParseDef(const char * s) {
-    struct Def * x = NULL;
+struct DateTime * cJSON_ParseDateTime(const char * s) {
+    struct DateTime * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDefValue(j);
+            x = cJSON_GetDateTimeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Def * cJSON_GetDefValue(const cJSON * j) {
-    struct Def * x = NULL;
+struct DateTime * cJSON_GetDateTimeValue(const cJSON * j) {
+    struct DateTime * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Def)))) {
-            memset(x, 0, sizeof(struct Def));
-            if (!cJSON_HasObjectItem(j, "def")) { cJSON_DeleteDef(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "def")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "def"))) { cJSON_DeleteDef(x); return NULL; }
-                x->def = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "def"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateTime)))) {
+            memset(x, 0, sizeof(struct DateTime));
+            if (!cJSON_HasObjectItem(j, "DateTime")) { cJSON_DeleteDateTime(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "DateTime")) {
+                if (!cJSON_IsString(cJSON_GetObjectItemCaseSensitive(j, "DateTime"))) { cJSON_DeleteDateTime(x); return NULL; }
+                x->date_time = strdup(cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(j, "DateTime")));
+            }
+            else {
+                if (NULL != (x->date_time = cJSON_malloc(sizeof(char)))) {
+                    x->date_time[0] = '\0';
+                }
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDef(const struct Def * x) {
+cJSON * cJSON_CreateDateTime(const struct DateTime * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "def", x->def);
+            if (NULL != x->date_time) {
+                cJSON_AddStringToObject(j, "DateTime", x->date_time);
+            }
+            else {
+                cJSON_AddStringToObject(j, "DateTime", "");
+            }
         }
     }
     return j;
 }
 
-char * cJSON_PrintDef(const struct Def * x) {
+char * cJSON_PrintDateTime(const struct DateTime * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDef(x);
+        cJSON * j = cJSON_CreateDateTime(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -4755,53 +4297,56 @@ char * cJSON_PrintDef(const struct Def * x) {
     return s;
 }
 
-void cJSON_DeleteDef(struct Def * x) {
+void cJSON_DeleteDateTime(struct DateTime * x) {
     if (NULL != x) {
+        if (NULL != x->date_time) {
+            cJSON_free(x->date_time);
+        }
         cJSON_free(x);
     }
 }
 
-struct Defer * cJSON_ParseDefer(const char * s) {
-    struct Defer * x = NULL;
+struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s) {
+    struct DateTimeStyles * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeferValue(j);
+            x = cJSON_GetDateTimeStylesValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Defer * cJSON_GetDeferValue(const cJSON * j) {
-    struct Defer * x = NULL;
+struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j) {
+    struct DateTimeStyles * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Defer)))) {
-            memset(x, 0, sizeof(struct Defer));
-            if (!cJSON_HasObjectItem(j, "defer")) { cJSON_DeleteDefer(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "defer")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "defer"))) { cJSON_DeleteDefer(x); return NULL; }
-                x->defer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "defer"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateTimeStyles)))) {
+            memset(x, 0, sizeof(struct DateTimeStyles));
+            if (!cJSON_HasObjectItem(j, "DateTimeStyles")) { cJSON_DeleteDateTimeStyles(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "DateTimeStyles")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"))) { cJSON_DeleteDateTimeStyles(x); return NULL; }
+                x->date_time_styles = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDefer(const struct Defer * x) {
+cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "defer", x->defer);
+            cJSON_AddNumberToObject(j, "DateTimeStyles", x->date_time_styles);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDefer(const struct Defer * x) {
+char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDefer(x);
+        cJSON * j = cJSON_CreateDateTimeStyles(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -4810,53 +4355,53 @@ char * cJSON_PrintDefer(const struct Defer * x) {
     return s;
 }
 
-void cJSON_DeleteDefer(struct Defer * x) {
+void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Deinit * cJSON_ParseDeinit(const char * s) {
-    struct Deinit * x = NULL;
+struct Debugger * cJSON_ParseDebugger(const char * s) {
+    struct Debugger * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeinitValue(j);
+            x = cJSON_GetDebuggerValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Deinit * cJSON_GetDeinitValue(const cJSON * j) {
-    struct Deinit * x = NULL;
+struct Debugger * cJSON_GetDebuggerValue(const cJSON * j) {
+    struct Debugger * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Deinit)))) {
-            memset(x, 0, sizeof(struct Deinit));
-            if (!cJSON_HasObjectItem(j, "deinit")) { cJSON_DeleteDeinit(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "deinit")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "deinit"))) { cJSON_DeleteDeinit(x); return NULL; }
-                x->deinit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "deinit"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Debugger)))) {
+            memset(x, 0, sizeof(struct Debugger));
+            if (!cJSON_HasObjectItem(j, "debugger")) { cJSON_DeleteDebugger(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "debugger")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "debugger"))) { cJSON_DeleteDebugger(x); return NULL; }
+                x->debugger = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "debugger"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDeinit(const struct Deinit * x) {
+cJSON * cJSON_CreateDebugger(const struct Debugger * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "deinit", x->deinit);
+            cJSON_AddNumberToObject(j, "debugger", x->debugger);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDeinit(const struct Deinit * x) {
+char * cJSON_PrintDebugger(const struct Debugger * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDeinit(x);
+        cJSON * j = cJSON_CreateDebugger(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -4865,53 +4410,53 @@ char * cJSON_PrintDeinit(const struct Deinit * x) {
     return s;
 }
 
-void cJSON_DeleteDeinit(struct Deinit * x) {
+void cJSON_DeleteDebugger(struct Debugger * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Del * cJSON_ParseDel(const char * s) {
-    struct Del * x = NULL;
+struct Decimal * cJSON_ParseDecimal(const char * s) {
+    struct Decimal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDelValue(j);
+            x = cJSON_GetDecimalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Del * cJSON_GetDelValue(const cJSON * j) {
-    struct Del * x = NULL;
+struct Decimal * cJSON_GetDecimalValue(const cJSON * j) {
+    struct Decimal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Del)))) {
-            memset(x, 0, sizeof(struct Del));
-            if (!cJSON_HasObjectItem(j, "del")) { cJSON_DeleteDel(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "del")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "del"))) { cJSON_DeleteDel(x); return NULL; }
-                x->del = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "del"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Decimal)))) {
+            memset(x, 0, sizeof(struct Decimal));
+            if (!cJSON_HasObjectItem(j, "decimal")) { cJSON_DeleteDecimal(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decimal")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decimal"))) { cJSON_DeleteDecimal(x); return NULL; }
+                x->decimal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decimal"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDel(const struct Del * x) {
+cJSON * cJSON_CreateDecimal(const struct Decimal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "del", x->del);
+            cJSON_AddNumberToObject(j, "decimal", x->decimal);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDel(const struct Del * x) {
+char * cJSON_PrintDecimal(const struct Decimal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDel(x);
+        cJSON * j = cJSON_CreateDecimal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -4920,53 +4465,53 @@ char * cJSON_PrintDel(const struct Del * x) {
     return s;
 }
 
-void cJSON_DeleteDel(struct Del * x) {
+void cJSON_DeleteDecimal(struct Decimal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Delegate * cJSON_ParseDelegate(const char * s) {
-    struct Delegate * x = NULL;
+struct Declare * cJSON_ParseDeclare(const char * s) {
+    struct Declare * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDelegateValue(j);
+            x = cJSON_GetDeclareValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Delegate * cJSON_GetDelegateValue(const cJSON * j) {
-    struct Delegate * x = NULL;
+struct Declare * cJSON_GetDeclareValue(const cJSON * j) {
+    struct Declare * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Delegate)))) {
-            memset(x, 0, sizeof(struct Delegate));
-            if (!cJSON_HasObjectItem(j, "delegate")) { cJSON_DeleteDelegate(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "delegate")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "delegate"))) { cJSON_DeleteDelegate(x); return NULL; }
-                x->delegate = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "delegate"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Declare)))) {
+            memset(x, 0, sizeof(struct Declare));
+            if (!cJSON_HasObjectItem(j, "declare")) { cJSON_DeleteDeclare(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "declare")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "declare"))) { cJSON_DeleteDeclare(x); return NULL; }
+                x->declare = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "declare"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDelegate(const struct Delegate * x) {
+cJSON * cJSON_CreateDeclare(const struct Declare * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "delegate", x->delegate);
+            cJSON_AddNumberToObject(j, "declare", x->declare);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDelegate(const struct Delegate * x) {
+char * cJSON_PrintDeclare(const struct Declare * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDelegate(x);
+        cJSON * j = cJSON_CreateDeclare(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -4975,53 +4520,53 @@ char * cJSON_PrintDelegate(const struct Delegate * x) {
     return s;
 }
 
-void cJSON_DeleteDelegate(struct Delegate * x) {
+void cJSON_DeleteDeclare(struct Declare * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dict * cJSON_ParseDict(const char * s) {
-    struct Dict * x = NULL;
+struct DecodeString * cJSON_ParseDecodeString(const char * s) {
+    struct DecodeString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDictValue(j);
+            x = cJSON_GetDecodeStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dict * cJSON_GetDictValue(const cJSON * j) {
-    struct Dict * x = NULL;
+struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j) {
+    struct DecodeString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dict)))) {
-            memset(x, 0, sizeof(struct Dict));
-            if (!cJSON_HasObjectItem(j, "dict")) { cJSON_DeleteDict(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "dict")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dict"))) { cJSON_DeleteDict(x); return NULL; }
-                x->dict = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dict"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DecodeString)))) {
+            memset(x, 0, sizeof(struct DecodeString));
+            if (!cJSON_HasObjectItem(j, "decode_string")) { cJSON_DeleteDecodeString(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decode_string")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decode_string"))) { cJSON_DeleteDecodeString(x); return NULL; }
+                x->decode_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decode_string"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDict(const struct Dict * x) {
+cJSON * cJSON_CreateDecodeString(const struct DecodeString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "dict", x->dict);
+            cJSON_AddNumberToObject(j, "decode_string", x->decode_string);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDict(const struct Dict * x) {
+char * cJSON_PrintDecodeString(const struct DecodeString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDict(x);
+        cJSON * j = cJSON_CreateDecodeString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5030,53 +4575,53 @@ char * cJSON_PrintDict(const struct Dict * x) {
     return s;
 }
 
-void cJSON_DeleteDict(struct Dict * x) {
+void cJSON_DeleteDecodeString(struct DecodeString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dictionary * cJSON_ParseDictionary(const char * s) {
-    struct Dictionary * x = NULL;
+struct Def * cJSON_ParseDef(const char * s) {
+    struct Def * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDictionaryValue(j);
+            x = cJSON_GetDefValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dictionary * cJSON_GetDictionaryValue(const cJSON * j) {
-    struct Dictionary * x = NULL;
+struct Def * cJSON_GetDefValue(const cJSON * j) {
+    struct Def * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dictionary)))) {
-            memset(x, 0, sizeof(struct Dictionary));
-            if (!cJSON_HasObjectItem(j, "dictionary")) { cJSON_DeleteDictionary(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "dictionary")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dictionary"))) { cJSON_DeleteDictionary(x); return NULL; }
-                x->dictionary = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dictionary"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Def)))) {
+            memset(x, 0, sizeof(struct Def));
+            if (!cJSON_HasObjectItem(j, "def")) { cJSON_DeleteDef(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "def")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "def"))) { cJSON_DeleteDef(x); return NULL; }
+                x->def = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "def"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDictionary(const struct Dictionary * x) {
+cJSON * cJSON_CreateDef(const struct Def * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "dictionary", x->dictionary);
+            cJSON_AddNumberToObject(j, "def", x->def);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDictionary(const struct Dictionary * x) {
+char * cJSON_PrintDef(const struct Def * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDictionary(x);
+        cJSON * j = cJSON_CreateDef(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5085,53 +4630,53 @@ char * cJSON_PrintDictionary(const struct Dictionary * x) {
     return s;
 }
 
-void cJSON_DeleteDictionary(struct Dictionary * x) {
+void cJSON_DeleteDef(struct Def * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct DidSet * cJSON_ParseDidSet(const char * s) {
-    struct DidSet * x = NULL;
+struct Defer * cJSON_ParseDefer(const char * s) {
+    struct Defer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDidSetValue(j);
+            x = cJSON_GetDeferValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DidSet * cJSON_GetDidSetValue(const cJSON * j) {
-    struct DidSet * x = NULL;
+struct Defer * cJSON_GetDeferValue(const cJSON * j) {
+    struct Defer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DidSet)))) {
-            memset(x, 0, sizeof(struct DidSet));
-            if (!cJSON_HasObjectItem(j, "didSet")) { cJSON_DeleteDidSet(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "didSet")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "didSet"))) { cJSON_DeleteDidSet(x); return NULL; }
-                x->did_set = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "didSet"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Defer)))) {
+            memset(x, 0, sizeof(struct Defer));
+            if (!cJSON_HasObjectItem(j, "defer")) { cJSON_DeleteDefer(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "defer")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "defer"))) { cJSON_DeleteDefer(x); return NULL; }
+                x->defer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "defer"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDidSet(const struct DidSet * x) {
+cJSON * cJSON_CreateDefer(const struct Defer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "didSet", x->did_set);
+            cJSON_AddNumberToObject(j, "defer", x->defer);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDidSet(const struct DidSet * x) {
+char * cJSON_PrintDefer(const struct Defer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDidSet(x);
+        cJSON * j = cJSON_CreateDefer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5140,53 +4685,53 @@ char * cJSON_PrintDidSet(const struct DidSet * x) {
     return s;
 }
 
-void cJSON_DeleteDidSet(struct DidSet * x) {
+void cJSON_DeleteDefer(struct Defer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dynamic * cJSON_ParseDynamic(const char * s) {
-    struct Dynamic * x = NULL;
+struct Deinit * cJSON_ParseDeinit(const char * s) {
+    struct Deinit * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDynamicValue(j);
+            x = cJSON_GetDeinitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dynamic * cJSON_GetDynamicValue(const cJSON * j) {
-    struct Dynamic * x = NULL;
+struct Deinit * cJSON_GetDeinitValue(const cJSON * j) {
+    struct Deinit * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dynamic)))) {
-            memset(x, 0, sizeof(struct Dynamic));
-            if (!cJSON_HasObjectItem(j, "dynamic")) { cJSON_DeleteDynamic(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "dynamic")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dynamic"))) { cJSON_DeleteDynamic(x); return NULL; }
-                x->dynamic = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dynamic"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Deinit)))) {
+            memset(x, 0, sizeof(struct Deinit));
+            if (!cJSON_HasObjectItem(j, "deinit")) { cJSON_DeleteDeinit(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "deinit")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "deinit"))) { cJSON_DeleteDeinit(x); return NULL; }
+                x->deinit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "deinit"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDynamic(const struct Dynamic * x) {
+cJSON * cJSON_CreateDeinit(const struct Deinit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "dynamic", x->dynamic);
+            cJSON_AddNumberToObject(j, "deinit", x->deinit);
         }
     }
     return j;
 }
 
-char * cJSON_PrintDynamic(const struct Dynamic * x) {
+char * cJSON_PrintDeinit(const struct Deinit * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDynamic(x);
+        cJSON * j = cJSON_CreateDeinit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5195,53 +4740,53 @@ char * cJSON_PrintDynamic(const struct Dynamic * x) {
     return s;
 }
 
-void cJSON_DeleteDynamic(struct Dynamic * x) {
+void cJSON_DeleteDeinit(struct Deinit * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Elif * cJSON_ParseElif(const char * s) {
-    struct Elif * x = NULL;
+struct Del * cJSON_ParseDel(const char * s) {
+    struct Del * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetElifValue(j);
+            x = cJSON_GetDelValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Elif * cJSON_GetElifValue(const cJSON * j) {
-    struct Elif * x = NULL;
+struct Del * cJSON_GetDelValue(const cJSON * j) {
+    struct Del * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Elif)))) {
-            memset(x, 0, sizeof(struct Elif));
-            if (!cJSON_HasObjectItem(j, "elif")) { cJSON_DeleteElif(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "elif")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "elif"))) { cJSON_DeleteElif(x); return NULL; }
-                x->elif = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "elif"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Del)))) {
+            memset(x, 0, sizeof(struct Del));
+            if (!cJSON_HasObjectItem(j, "del")) { cJSON_DeleteDel(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "del")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "del"))) { cJSON_DeleteDel(x); return NULL; }
+                x->del = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "del"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateElif(const struct Elif * x) {
+cJSON * cJSON_CreateDel(const struct Del * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "elif", x->elif);
+            cJSON_AddNumberToObject(j, "del", x->del);
         }
     }
     return j;
 }
 
-char * cJSON_PrintElif(const struct Elif * x) {
+char * cJSON_PrintDel(const struct Del * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateElif(x);
+        cJSON * j = cJSON_CreateDel(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5250,53 +4795,53 @@ char * cJSON_PrintElif(const struct Elif * x) {
     return s;
 }
 
-void cJSON_DeleteElif(struct Elif * x) {
+void cJSON_DeleteDel(struct Del * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct EncodeQuickType * cJSON_ParseEncodeQuickType(const char * s) {
-    struct EncodeQuickType * x = NULL;
+struct Delegate * cJSON_ParseDelegate(const char * s) {
+    struct Delegate * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEncodeQuickTypeValue(j);
+            x = cJSON_GetDelegateValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct EncodeQuickType * cJSON_GetEncodeQuickTypeValue(const cJSON * j) {
-    struct EncodeQuickType * x = NULL;
+struct Delegate * cJSON_GetDelegateValue(const cJSON * j) {
+    struct Delegate * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct EncodeQuickType)))) {
-            memset(x, 0, sizeof(struct EncodeQuickType));
-            if (!cJSON_HasObjectItem(j, "encode_quick_type")) { cJSON_DeleteEncodeQuickType(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "encode_quick_type")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "encode_quick_type"))) { cJSON_DeleteEncodeQuickType(x); return NULL; }
-                x->encode_quick_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "encode_quick_type"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Delegate)))) {
+            memset(x, 0, sizeof(struct Delegate));
+            if (!cJSON_HasObjectItem(j, "delegate")) { cJSON_DeleteDelegate(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "delegate")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "delegate"))) { cJSON_DeleteDelegate(x); return NULL; }
+                x->delegate = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "delegate"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x) {
+cJSON * cJSON_CreateDelegate(const struct Delegate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "encode_quick_type", x->encode_quick_type);
+            cJSON_AddNumberToObject(j, "delegate", x->delegate);
         }
     }
     return j;
 }
 
-char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
+char * cJSON_PrintDelegate(const struct Delegate * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEncodeQuickType(x);
+        cJSON * j = cJSON_CreateDelegate(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5305,77 +4850,53 @@ char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
     return s;
 }
 
-void cJSON_DeleteEncodeQuickType(struct EncodeQuickType * x) {
+void cJSON_DeleteDelegate(struct Delegate * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct EnumValues * cJSON_ParseEnumValues(const char * s) {
-    struct EnumValues * x = NULL;
+struct Dict * cJSON_ParseDict(const char * s) {
+    struct Dict * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEnumValuesValue(j);
+            x = cJSON_GetDictValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct EnumValues * cJSON_GetEnumValuesValue(const cJSON * j) {
-    struct EnumValues * x = NULL;
+struct Dict * cJSON_GetDictValue(const cJSON * j) {
+    struct Dict * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct EnumValues)))) {
-            memset(x, 0, sizeof(struct EnumValues));
-            if (!cJSON_HasObjectItem(j, "EnumValues")) { cJSON_DeleteEnumValues(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "EnumValues")) {
-                if (!cJSON_IsArray(cJSON_GetObjectItemCaseSensitive(j, "EnumValues"))) { cJSON_DeleteEnumValues(x); return NULL; }
-                list_t * x1 = list_create(false, NULL);
-                if (NULL != x1) {
-                    cJSON * e1 = NULL;
-                    cJSON * j1 = cJSON_GetObjectItemCaseSensitive(j, "EnumValues");
-                    cJSON_ArrayForEach(e1, j1) {
-                        enum EnumValue * tmp = cJSON_malloc(sizeof(enum EnumValue));
-                        if (NULL != tmp) {
-                            * tmp = cJSON_GetEnumValueValue(e1);
-                            list_add_tail(x1, tmp, sizeof(enum EnumValue *));
-                        }
-                    }
-                    x->enum_values = x1;
-                }
-            }
-            else {
-                x->enum_values = list_create(false, NULL);
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dict)))) {
+            memset(x, 0, sizeof(struct Dict));
+            if (!cJSON_HasObjectItem(j, "dict")) { cJSON_DeleteDict(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "dict")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dict"))) { cJSON_DeleteDict(x); return NULL; }
+                x->dict = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dict"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEnumValues(const struct EnumValues * x) {
+cJSON * cJSON_CreateDict(const struct Dict * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            if (NULL != x->enum_values) {
-                cJSON * j1 = cJSON_AddArrayToObject(j, "EnumValues");
-                if (NULL != j1) {
-                    enum EnumValue * x1 = list_get_head(x->enum_values);
-                    while (NULL != x1) {
-                        cJSON_AddItemToArray(j1, cJSON_CreateEnumValue(*x1));
-                        x1 = list_get_next(x->enum_values);
-                    }
-                }
-            }
+            cJSON_AddNumberToObject(j, "dict", x->dict);
         }
     }
     return j;
 }
 
-char * cJSON_PrintEnumValues(const struct EnumValues * x) {
+char * cJSON_PrintDict(const struct Dict * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEnumValues(x);
+        cJSON * j = cJSON_CreateDict(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5384,61 +4905,53 @@ char * cJSON_PrintEnumValues(const struct EnumValues * x) {
     return s;
 }
 
-void cJSON_DeleteEnumValues(struct EnumValues * x) {
+void cJSON_DeleteDict(struct Dict * x) {
     if (NULL != x) {
-        if (NULL != x->enum_values) {
-            enum EnumValue * x1 = list_get_head(x->enum_values);
-            while (NULL != x1) {
-                cJSON_free(x1);
-                x1 = list_get_next(x->enum_values);
-            }
-            list_release(x->enum_values);
-        }
         cJSON_free(x);
     }
 }
 
-struct EqualityContract * cJSON_ParseEqualityContract(const char * s) {
-    struct EqualityContract * x = NULL;
+struct Dictionary * cJSON_ParseDictionary(const char * s) {
+    struct Dictionary * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEqualityContractValue(j);
+            x = cJSON_GetDictionaryValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct EqualityContract * cJSON_GetEqualityContractValue(const cJSON * j) {
-    struct EqualityContract * x = NULL;
+struct Dictionary * cJSON_GetDictionaryValue(const cJSON * j) {
+    struct Dictionary * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct EqualityContract)))) {
-            memset(x, 0, sizeof(struct EqualityContract));
-            if (!cJSON_HasObjectItem(j, "equalityContract")) { cJSON_DeleteEqualityContract(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "equalityContract")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"))) { cJSON_DeleteEqualityContract(x); return NULL; }
-                x->equality_contract = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dictionary)))) {
+            memset(x, 0, sizeof(struct Dictionary));
+            if (!cJSON_HasObjectItem(j, "dictionary")) { cJSON_DeleteDictionary(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "dictionary")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dictionary"))) { cJSON_DeleteDictionary(x); return NULL; }
+                x->dictionary = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dictionary"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEqualityContract(const struct EqualityContract * x) {
+cJSON * cJSON_CreateDictionary(const struct Dictionary * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "equalityContract", x->equality_contract);
+            cJSON_AddNumberToObject(j, "dictionary", x->dictionary);
         }
     }
     return j;
 }
 
-char * cJSON_PrintEqualityContract(const struct EqualityContract * x) {
+char * cJSON_PrintDictionary(const struct Dictionary * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEqualityContract(x);
+        cJSON * j = cJSON_CreateDictionary(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5447,53 +4960,53 @@ char * cJSON_PrintEqualityContract(const struct EqualityContract * x) {
     return s;
 }
 
-void cJSON_DeleteEqualityContract(struct EqualityContract * x) {
+void cJSON_DeleteDictionary(struct Dictionary * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Event * cJSON_ParseEvent(const char * s) {
-    struct Event * x = NULL;
+struct DidSet * cJSON_ParseDidSet(const char * s) {
+    struct DidSet * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEventValue(j);
+            x = cJSON_GetDidSetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Event * cJSON_GetEventValue(const cJSON * j) {
-    struct Event * x = NULL;
+struct DidSet * cJSON_GetDidSetValue(const cJSON * j) {
+    struct DidSet * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Event)))) {
-            memset(x, 0, sizeof(struct Event));
-            if (!cJSON_HasObjectItem(j, "event")) { cJSON_DeleteEvent(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "event")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "event"))) { cJSON_DeleteEvent(x); return NULL; }
-                x->event = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "event"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DidSet)))) {
+            memset(x, 0, sizeof(struct DidSet));
+            if (!cJSON_HasObjectItem(j, "didSet")) { cJSON_DeleteDidSet(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "didSet")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "didSet"))) { cJSON_DeleteDidSet(x); return NULL; }
+                x->did_set = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "didSet"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEvent(const struct Event * x) {
+cJSON * cJSON_CreateDidSet(const struct DidSet * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "event", x->event);
+            cJSON_AddNumberToObject(j, "didSet", x->did_set);
         }
     }
     return j;
 }
 
-char * cJSON_PrintEvent(const struct Event * x) {
+char * cJSON_PrintDidSet(const struct DidSet * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEvent(x);
+        cJSON * j = cJSON_CreateDidSet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5502,53 +5015,53 @@ char * cJSON_PrintEvent(const struct Event * x) {
     return s;
 }
 
-void cJSON_DeleteEvent(struct Event * x) {
+void cJSON_DeleteDidSet(struct DidSet * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Except * cJSON_ParseExcept(const char * s) {
-    struct Except * x = NULL;
+struct Dynamic * cJSON_ParseDynamic(const char * s) {
+    struct Dynamic * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExceptValue(j);
+            x = cJSON_GetDynamicValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Except * cJSON_GetExceptValue(const cJSON * j) {
-    struct Except * x = NULL;
+struct Dynamic * cJSON_GetDynamicValue(const cJSON * j) {
+    struct Dynamic * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Except)))) {
-            memset(x, 0, sizeof(struct Except));
-            if (!cJSON_HasObjectItem(j, "except")) { cJSON_DeleteExcept(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "except")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "except"))) { cJSON_DeleteExcept(x); return NULL; }
-                x->except = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "except"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dynamic)))) {
+            memset(x, 0, sizeof(struct Dynamic));
+            if (!cJSON_HasObjectItem(j, "dynamic")) { cJSON_DeleteDynamic(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "dynamic")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dynamic"))) { cJSON_DeleteDynamic(x); return NULL; }
+                x->dynamic = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dynamic"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExcept(const struct Except * x) {
+cJSON * cJSON_CreateDynamic(const struct Dynamic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "except", x->except);
+            cJSON_AddNumberToObject(j, "dynamic", x->dynamic);
         }
     }
     return j;
 }
 
-char * cJSON_PrintExcept(const struct Except * x) {
+char * cJSON_PrintDynamic(const struct Dynamic * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExcept(x);
+        cJSON * j = cJSON_CreateDynamic(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5557,53 +5070,53 @@ char * cJSON_PrintExcept(const struct Except * x) {
     return s;
 }
 
-void cJSON_DeleteExcept(struct Except * x) {
+void cJSON_DeleteDynamic(struct Dynamic * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Exception * cJSON_ParseException(const char * s) {
-    struct Exception * x = NULL;
+struct Elif * cJSON_ParseElif(const char * s) {
+    struct Elif * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExceptionValue(j);
+            x = cJSON_GetElifValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Exception * cJSON_GetExceptionValue(const cJSON * j) {
-    struct Exception * x = NULL;
+struct Elif * cJSON_GetElifValue(const cJSON * j) {
+    struct Elif * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Exception)))) {
-            memset(x, 0, sizeof(struct Exception));
-            if (!cJSON_HasObjectItem(j, "exception")) { cJSON_DeleteException(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "exception")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "exception"))) { cJSON_DeleteException(x); return NULL; }
-                x->exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "exception"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Elif)))) {
+            memset(x, 0, sizeof(struct Elif));
+            if (!cJSON_HasObjectItem(j, "elif")) { cJSON_DeleteElif(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "elif")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "elif"))) { cJSON_DeleteElif(x); return NULL; }
+                x->elif = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "elif"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateException(const struct Exception * x) {
+cJSON * cJSON_CreateElif(const struct Elif * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "exception", x->exception);
+            cJSON_AddNumberToObject(j, "elif", x->elif);
         }
     }
     return j;
 }
 
-char * cJSON_PrintException(const struct Exception * x) {
+char * cJSON_PrintElif(const struct Elif * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateException(x);
+        cJSON * j = cJSON_CreateElif(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5612,53 +5125,53 @@ char * cJSON_PrintException(const struct Exception * x) {
     return s;
 }
 
-void cJSON_DeleteException(struct Exception * x) {
+void cJSON_DeleteElif(struct Elif * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Exposing * cJSON_ParseExposing(const char * s) {
-    struct Exposing * x = NULL;
+struct EncodeQuickType * cJSON_ParseEncodeQuickType(const char * s) {
+    struct EncodeQuickType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExposingValue(j);
+            x = cJSON_GetEncodeQuickTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Exposing * cJSON_GetExposingValue(const cJSON * j) {
-    struct Exposing * x = NULL;
+struct EncodeQuickType * cJSON_GetEncodeQuickTypeValue(const cJSON * j) {
+    struct EncodeQuickType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Exposing)))) {
-            memset(x, 0, sizeof(struct Exposing));
-            if (!cJSON_HasObjectItem(j, "exposing")) { cJSON_DeleteExposing(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "exposing")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "exposing"))) { cJSON_DeleteExposing(x); return NULL; }
-                x->exposing = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "exposing"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EncodeQuickType)))) {
+            memset(x, 0, sizeof(struct EncodeQuickType));
+            if (!cJSON_HasObjectItem(j, "encode_quick_type")) { cJSON_DeleteEncodeQuickType(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "encode_quick_type")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "encode_quick_type"))) { cJSON_DeleteEncodeQuickType(x); return NULL; }
+                x->encode_quick_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "encode_quick_type"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExposing(const struct Exposing * x) {
+cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "exposing", x->exposing);
+            cJSON_AddNumberToObject(j, "encode_quick_type", x->encode_quick_type);
         }
     }
     return j;
 }
 
-char * cJSON_PrintExposing(const struct Exposing * x) {
+char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExposing(x);
+        cJSON * j = cJSON_CreateEncodeQuickType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5667,53 +5180,77 @@ char * cJSON_PrintExposing(const struct Exposing * x) {
     return s;
 }
 
-void cJSON_DeleteExposing(struct Exposing * x) {
+void cJSON_DeleteEncodeQuickType(struct EncodeQuickType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Extends * cJSON_ParseExtends(const char * s) {
-    struct Extends * x = NULL;
+struct EnumValues * cJSON_ParseEnumValues(const char * s) {
+    struct EnumValues * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExtendsValue(j);
+            x = cJSON_GetEnumValuesValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Extends * cJSON_GetExtendsValue(const cJSON * j) {
-    struct Extends * x = NULL;
+struct EnumValues * cJSON_GetEnumValuesValue(const cJSON * j) {
+    struct EnumValues * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Extends)))) {
-            memset(x, 0, sizeof(struct Extends));
-            if (!cJSON_HasObjectItem(j, "extends")) { cJSON_DeleteExtends(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "extends")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "extends"))) { cJSON_DeleteExtends(x); return NULL; }
-                x->extends = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "extends"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EnumValues)))) {
+            memset(x, 0, sizeof(struct EnumValues));
+            if (!cJSON_HasObjectItem(j, "EnumValues")) { cJSON_DeleteEnumValues(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "EnumValues")) {
+                if (!cJSON_IsArray(cJSON_GetObjectItemCaseSensitive(j, "EnumValues"))) { cJSON_DeleteEnumValues(x); return NULL; }
+                list_t * x1 = list_create(false, NULL);
+                if (NULL != x1) {
+                    cJSON * e1 = NULL;
+                    cJSON * j1 = cJSON_GetObjectItemCaseSensitive(j, "EnumValues");
+                    cJSON_ArrayForEach(e1, j1) {
+                        enum EnumValue * tmp = cJSON_malloc(sizeof(enum EnumValue));
+                        if (NULL != tmp) {
+                            * tmp = cJSON_GetEnumValueValue(e1);
+                            list_add_tail(x1, tmp, sizeof(enum EnumValue *));
+                        }
+                    }
+                    x->enum_values = x1;
+                }
+            }
+            else {
+                x->enum_values = list_create(false, NULL);
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExtends(const struct Extends * x) {
+cJSON * cJSON_CreateEnumValues(const struct EnumValues * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "extends", x->extends);
+            if (NULL != x->enum_values) {
+                cJSON * j1 = cJSON_AddArrayToObject(j, "EnumValues");
+                if (NULL != j1) {
+                    enum EnumValue * x1 = list_get_head(x->enum_values);
+                    while (NULL != x1) {
+                        cJSON_AddItemToArray(j1, cJSON_CreateEnumValue(*x1));
+                        x1 = list_get_next(x->enum_values);
+                    }
+                }
+            }
         }
     }
     return j;
 }
 
-char * cJSON_PrintExtends(const struct Extends * x) {
+char * cJSON_PrintEnumValues(const struct EnumValues * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExtends(x);
+        cJSON * j = cJSON_CreateEnumValues(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5722,53 +5259,61 @@ char * cJSON_PrintExtends(const struct Extends * x) {
     return s;
 }
 
-void cJSON_DeleteExtends(struct Extends * x) {
+void cJSON_DeleteEnumValues(struct EnumValues * x) {
     if (NULL != x) {
+        if (NULL != x->enum_values) {
+            enum EnumValue * x1 = list_get_head(x->enum_values);
+            while (NULL != x1) {
+                cJSON_free(x1);
+                x1 = list_get_next(x->enum_values);
+            }
+            list_release(x->enum_values);
+        }
         cJSON_free(x);
     }
 }
 
-struct Extension * cJSON_ParseExtension(const char * s) {
-    struct Extension * x = NULL;
+struct EqualityContract * cJSON_ParseEqualityContract(const char * s) {
+    struct EqualityContract * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExtensionValue(j);
+            x = cJSON_GetEqualityContractValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Extension * cJSON_GetExtensionValue(const cJSON * j) {
-    struct Extension * x = NULL;
+struct EqualityContract * cJSON_GetEqualityContractValue(const cJSON * j) {
+    struct EqualityContract * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Extension)))) {
-            memset(x, 0, sizeof(struct Extension));
-            if (!cJSON_HasObjectItem(j, "extension")) { cJSON_DeleteExtension(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "extension")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "extension"))) { cJSON_DeleteExtension(x); return NULL; }
-                x->extension = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "extension"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EqualityContract)))) {
+            memset(x, 0, sizeof(struct EqualityContract));
+            if (!cJSON_HasObjectItem(j, "equalityContract")) { cJSON_DeleteEqualityContract(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "equalityContract")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"))) { cJSON_DeleteEqualityContract(x); return NULL; }
+                x->equality_contract = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExtension(const struct Extension * x) {
+cJSON * cJSON_CreateEqualityContract(const struct EqualityContract * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "extension", x->extension);
+            cJSON_AddNumberToObject(j, "equalityContract", x->equality_contract);
         }
     }
     return j;
 }
 
-char * cJSON_PrintExtension(const struct Extension * x) {
+char * cJSON_PrintEqualityContract(const struct EqualityContract * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExtension(x);
+        cJSON * j = cJSON_CreateEqualityContract(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5777,53 +5322,53 @@ char * cJSON_PrintExtension(const struct Extension * x) {
     return s;
 }
 
-void cJSON_DeleteExtension(struct Extension * x) {
+void cJSON_DeleteEqualityContract(struct EqualityContract * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fallthrough * cJSON_ParseFallthrough(const char * s) {
-    struct Fallthrough * x = NULL;
+struct Event * cJSON_ParseEvent(const char * s) {
+    struct Event * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFallthroughValue(j);
+            x = cJSON_GetEventValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fallthrough * cJSON_GetFallthroughValue(const cJSON * j) {
-    struct Fallthrough * x = NULL;
+struct Event * cJSON_GetEventValue(const cJSON * j) {
+    struct Event * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fallthrough)))) {
-            memset(x, 0, sizeof(struct Fallthrough));
-            if (!cJSON_HasObjectItem(j, "fallthrough")) { cJSON_DeleteFallthrough(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "fallthrough")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fallthrough"))) { cJSON_DeleteFallthrough(x); return NULL; }
-                x->fallthrough = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fallthrough"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Event)))) {
+            memset(x, 0, sizeof(struct Event));
+            if (!cJSON_HasObjectItem(j, "event")) { cJSON_DeleteEvent(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "event")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "event"))) { cJSON_DeleteEvent(x); return NULL; }
+                x->event = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "event"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFallthrough(const struct Fallthrough * x) {
+cJSON * cJSON_CreateEvent(const struct Event * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "fallthrough", x->fallthrough);
+            cJSON_AddNumberToObject(j, "event", x->event);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
+char * cJSON_PrintEvent(const struct Event * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFallthrough(x);
+        cJSON * j = cJSON_CreateEvent(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5832,53 +5377,53 @@ char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
     return s;
 }
 
-void cJSON_DeleteFallthrough(struct Fallthrough * x) {
+void cJSON_DeleteEvent(struct Event * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fileprivate * cJSON_ParseFileprivate(const char * s) {
-    struct Fileprivate * x = NULL;
+struct Except * cJSON_ParseExcept(const char * s) {
+    struct Except * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFileprivateValue(j);
+            x = cJSON_GetExceptValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fileprivate * cJSON_GetFileprivateValue(const cJSON * j) {
-    struct Fileprivate * x = NULL;
+struct Except * cJSON_GetExceptValue(const cJSON * j) {
+    struct Except * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fileprivate)))) {
-            memset(x, 0, sizeof(struct Fileprivate));
-            if (!cJSON_HasObjectItem(j, "fileprivate")) { cJSON_DeleteFileprivate(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "fileprivate")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fileprivate"))) { cJSON_DeleteFileprivate(x); return NULL; }
-                x->fileprivate = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fileprivate"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Except)))) {
+            memset(x, 0, sizeof(struct Except));
+            if (!cJSON_HasObjectItem(j, "except")) { cJSON_DeleteExcept(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "except")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "except"))) { cJSON_DeleteExcept(x); return NULL; }
+                x->except = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "except"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFileprivate(const struct Fileprivate * x) {
+cJSON * cJSON_CreateExcept(const struct Except * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "fileprivate", x->fileprivate);
+            cJSON_AddNumberToObject(j, "except", x->except);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
+char * cJSON_PrintExcept(const struct Except * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFileprivate(x);
+        cJSON * j = cJSON_CreateExcept(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5887,53 +5432,53 @@ char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
     return s;
 }
 
-void cJSON_DeleteFileprivate(struct Fileprivate * x) {
+void cJSON_DeleteExcept(struct Except * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Finally * cJSON_ParseFinally(const char * s) {
-    struct Finally * x = NULL;
+struct Exception * cJSON_ParseException(const char * s) {
+    struct Exception * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFinallyValue(j);
+            x = cJSON_GetExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Finally * cJSON_GetFinallyValue(const cJSON * j) {
-    struct Finally * x = NULL;
+struct Exception * cJSON_GetExceptionValue(const cJSON * j) {
+    struct Exception * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Finally)))) {
-            memset(x, 0, sizeof(struct Finally));
-            if (!cJSON_HasObjectItem(j, "finally")) { cJSON_DeleteFinally(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "finally")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "finally"))) { cJSON_DeleteFinally(x); return NULL; }
-                x->finally = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "finally"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Exception)))) {
+            memset(x, 0, sizeof(struct Exception));
+            if (!cJSON_HasObjectItem(j, "exception")) { cJSON_DeleteException(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "exception")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "exception"))) { cJSON_DeleteException(x); return NULL; }
+                x->exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "exception"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFinally(const struct Finally * x) {
+cJSON * cJSON_CreateException(const struct Exception * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "finally", x->finally);
+            cJSON_AddNumberToObject(j, "exception", x->exception);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFinally(const struct Finally * x) {
+char * cJSON_PrintException(const struct Exception * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFinally(x);
+        cJSON * j = cJSON_CreateException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5942,53 +5487,53 @@ char * cJSON_PrintFinally(const struct Finally * x) {
     return s;
 }
 
-void cJSON_DeleteFinally(struct Finally * x) {
+void cJSON_DeleteException(struct Exception * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fixed * cJSON_ParseFixed(const char * s) {
-    struct Fixed * x = NULL;
+struct Exposing * cJSON_ParseExposing(const char * s) {
+    struct Exposing * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFixedValue(j);
+            x = cJSON_GetExposingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fixed * cJSON_GetFixedValue(const cJSON * j) {
-    struct Fixed * x = NULL;
+struct Exposing * cJSON_GetExposingValue(const cJSON * j) {
+    struct Exposing * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fixed)))) {
-            memset(x, 0, sizeof(struct Fixed));
-            if (!cJSON_HasObjectItem(j, "fixed")) { cJSON_DeleteFixed(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "fixed")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fixed"))) { cJSON_DeleteFixed(x); return NULL; }
-                x->fixed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fixed"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Exposing)))) {
+            memset(x, 0, sizeof(struct Exposing));
+            if (!cJSON_HasObjectItem(j, "exposing")) { cJSON_DeleteExposing(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "exposing")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "exposing"))) { cJSON_DeleteExposing(x); return NULL; }
+                x->exposing = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "exposing"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFixed(const struct Fixed * x) {
+cJSON * cJSON_CreateExposing(const struct Exposing * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "fixed", x->fixed);
+            cJSON_AddNumberToObject(j, "exposing", x->exposing);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFixed(const struct Fixed * x) {
+char * cJSON_PrintExposing(const struct Exposing * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFixed(x);
+        cJSON * j = cJSON_CreateExposing(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -5997,53 +5542,53 @@ char * cJSON_PrintFixed(const struct Fixed * x) {
     return s;
 }
 
-void cJSON_DeleteFixed(struct Fixed * x) {
+void cJSON_DeleteExposing(struct Exposing * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Foreach * cJSON_ParseForeach(const char * s) {
-    struct Foreach * x = NULL;
+struct Extends * cJSON_ParseExtends(const char * s) {
+    struct Extends * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetForeachValue(j);
+            x = cJSON_GetExtendsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Foreach * cJSON_GetForeachValue(const cJSON * j) {
-    struct Foreach * x = NULL;
+struct Extends * cJSON_GetExtendsValue(const cJSON * j) {
+    struct Extends * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Foreach)))) {
-            memset(x, 0, sizeof(struct Foreach));
-            if (!cJSON_HasObjectItem(j, "foreach")) { cJSON_DeleteForeach(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "foreach")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "foreach"))) { cJSON_DeleteForeach(x); return NULL; }
-                x->foreach = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "foreach"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Extends)))) {
+            memset(x, 0, sizeof(struct Extends));
+            if (!cJSON_HasObjectItem(j, "extends")) { cJSON_DeleteExtends(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "extends")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "extends"))) { cJSON_DeleteExtends(x); return NULL; }
+                x->extends = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "extends"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateForeach(const struct Foreach * x) {
+cJSON * cJSON_CreateExtends(const struct Extends * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "foreach", x->foreach);
+            cJSON_AddNumberToObject(j, "extends", x->extends);
         }
     }
     return j;
 }
 
-char * cJSON_PrintForeach(const struct Foreach * x) {
+char * cJSON_PrintExtends(const struct Extends * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateForeach(x);
+        cJSON * j = cJSON_CreateExtends(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6052,53 +5597,53 @@ char * cJSON_PrintForeach(const struct Foreach * x) {
     return s;
 }
 
-void cJSON_DeleteForeach(struct Foreach * x) {
+void cJSON_DeleteExtends(struct Extends * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct FormatException * cJSON_ParseFormatException(const char * s) {
-    struct FormatException * x = NULL;
+struct Extension * cJSON_ParseExtension(const char * s) {
+    struct Extension * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFormatExceptionValue(j);
+            x = cJSON_GetExtensionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct FormatException * cJSON_GetFormatExceptionValue(const cJSON * j) {
-    struct FormatException * x = NULL;
+struct Extension * cJSON_GetExtensionValue(const cJSON * j) {
+    struct Extension * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct FormatException)))) {
-            memset(x, 0, sizeof(struct FormatException));
-            if (!cJSON_HasObjectItem(j, "FormatException")) { cJSON_DeleteFormatException(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "FormatException")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "FormatException"))) { cJSON_DeleteFormatException(x); return NULL; }
-                x->format_exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "FormatException"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Extension)))) {
+            memset(x, 0, sizeof(struct Extension));
+            if (!cJSON_HasObjectItem(j, "extension")) { cJSON_DeleteExtension(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "extension")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "extension"))) { cJSON_DeleteExtension(x); return NULL; }
+                x->extension = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "extension"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFormatException(const struct FormatException * x) {
+cJSON * cJSON_CreateExtension(const struct Extension * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "FormatException", x->format_exception);
+            cJSON_AddNumberToObject(j, "extension", x->extension);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFormatException(const struct FormatException * x) {
+char * cJSON_PrintExtension(const struct Extension * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFormatException(x);
+        cJSON * j = cJSON_CreateExtension(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6107,53 +5652,53 @@ char * cJSON_PrintFormatException(const struct FormatException * x) {
     return s;
 }
 
-void cJSON_DeleteFormatException(struct FormatException * x) {
+void cJSON_DeleteExtension(struct Extension * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct From * cJSON_ParseFrom(const char * s) {
-    struct From * x = NULL;
+struct Fallthrough * cJSON_ParseFallthrough(const char * s) {
+    struct Fallthrough * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFromValue(j);
+            x = cJSON_GetFallthroughValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct From * cJSON_GetFromValue(const cJSON * j) {
-    struct From * x = NULL;
+struct Fallthrough * cJSON_GetFallthroughValue(const cJSON * j) {
+    struct Fallthrough * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct From)))) {
-            memset(x, 0, sizeof(struct From));
-            if (!cJSON_HasObjectItem(j, "from")) { cJSON_DeleteFrom(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "from")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "from"))) { cJSON_DeleteFrom(x); return NULL; }
-                x->from = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "from"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fallthrough)))) {
+            memset(x, 0, sizeof(struct Fallthrough));
+            if (!cJSON_HasObjectItem(j, "fallthrough")) { cJSON_DeleteFallthrough(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "fallthrough")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fallthrough"))) { cJSON_DeleteFallthrough(x); return NULL; }
+                x->fallthrough = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fallthrough"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFrom(const struct From * x) {
+cJSON * cJSON_CreateFallthrough(const struct Fallthrough * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "from", x->from);
+            cJSON_AddNumberToObject(j, "fallthrough", x->fallthrough);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFrom(const struct From * x) {
+char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFrom(x);
+        cJSON * j = cJSON_CreateFallthrough(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6162,53 +5707,53 @@ char * cJSON_PrintFrom(const struct From * x) {
     return s;
 }
 
-void cJSON_DeleteFrom(struct From * x) {
+void cJSON_DeleteFallthrough(struct Fallthrough * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct FromJson * cJSON_ParseFromJson(const char * s) {
-    struct FromJson * x = NULL;
+struct Fileprivate * cJSON_ParseFileprivate(const char * s) {
+    struct Fileprivate * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFromJsonValue(j);
+            x = cJSON_GetFileprivateValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct FromJson * cJSON_GetFromJsonValue(const cJSON * j) {
-    struct FromJson * x = NULL;
+struct Fileprivate * cJSON_GetFileprivateValue(const cJSON * j) {
+    struct Fileprivate * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct FromJson)))) {
-            memset(x, 0, sizeof(struct FromJson));
-            if (!cJSON_HasObjectItem(j, "from_json")) { cJSON_DeleteFromJson(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "from_json")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "from_json"))) { cJSON_DeleteFromJson(x); return NULL; }
-                x->from_json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "from_json"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fileprivate)))) {
+            memset(x, 0, sizeof(struct Fileprivate));
+            if (!cJSON_HasObjectItem(j, "fileprivate")) { cJSON_DeleteFileprivate(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "fileprivate")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fileprivate"))) { cJSON_DeleteFileprivate(x); return NULL; }
+                x->fileprivate = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fileprivate"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFromJson(const struct FromJson * x) {
+cJSON * cJSON_CreateFileprivate(const struct Fileprivate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "from_json", x->from_json);
+            cJSON_AddNumberToObject(j, "fileprivate", x->fileprivate);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFromJson(const struct FromJson * x) {
+char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFromJson(x);
+        cJSON * j = cJSON_CreateFileprivate(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6217,53 +5762,53 @@ char * cJSON_PrintFromJson(const struct FromJson * x) {
     return s;
 }
 
-void cJSON_DeleteFromJson(struct FromJson * x) {
+void cJSON_DeleteFileprivate(struct Fileprivate * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Func * cJSON_ParseFunc(const char * s) {
-    struct Func * x = NULL;
+struct Finally * cJSON_ParseFinally(const char * s) {
+    struct Finally * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFuncValue(j);
+            x = cJSON_GetFinallyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Func * cJSON_GetFuncValue(const cJSON * j) {
-    struct Func * x = NULL;
+struct Finally * cJSON_GetFinallyValue(const cJSON * j) {
+    struct Finally * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Func)))) {
-            memset(x, 0, sizeof(struct Func));
-            if (!cJSON_HasObjectItem(j, "func")) { cJSON_DeleteFunc(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "func")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "func"))) { cJSON_DeleteFunc(x); return NULL; }
-                x->func = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "func"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Finally)))) {
+            memset(x, 0, sizeof(struct Finally));
+            if (!cJSON_HasObjectItem(j, "finally")) { cJSON_DeleteFinally(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "finally")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "finally"))) { cJSON_DeleteFinally(x); return NULL; }
+                x->finally = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "finally"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFunc(const struct Func * x) {
+cJSON * cJSON_CreateFinally(const struct Finally * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "func", x->func);
+            cJSON_AddNumberToObject(j, "finally", x->finally);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFunc(const struct Func * x) {
+char * cJSON_PrintFinally(const struct Finally * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFunc(x);
+        cJSON * j = cJSON_CreateFinally(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6272,53 +5817,53 @@ char * cJSON_PrintFunc(const struct Func * x) {
     return s;
 }
 
-void cJSON_DeleteFunc(struct Func * x) {
+void cJSON_DeleteFinally(struct Finally * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Function * cJSON_ParseFunction(const char * s) {
-    struct Function * x = NULL;
+struct Fixed * cJSON_ParseFixed(const char * s) {
+    struct Fixed * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFunctionValue(j);
+            x = cJSON_GetFixedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Function * cJSON_GetFunctionValue(const cJSON * j) {
-    struct Function * x = NULL;
+struct Fixed * cJSON_GetFixedValue(const cJSON * j) {
+    struct Fixed * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Function)))) {
-            memset(x, 0, sizeof(struct Function));
-            if (!cJSON_HasObjectItem(j, "function")) { cJSON_DeleteFunction(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "function")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "function"))) { cJSON_DeleteFunction(x); return NULL; }
-                x->function = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "function"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fixed)))) {
+            memset(x, 0, sizeof(struct Fixed));
+            if (!cJSON_HasObjectItem(j, "fixed")) { cJSON_DeleteFixed(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "fixed")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "fixed"))) { cJSON_DeleteFixed(x); return NULL; }
+                x->fixed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "fixed"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFunction(const struct Function * x) {
+cJSON * cJSON_CreateFixed(const struct Fixed * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "function", x->function);
+            cJSON_AddNumberToObject(j, "fixed", x->fixed);
         }
     }
     return j;
 }
 
-char * cJSON_PrintFunction(const struct Function * x) {
+char * cJSON_PrintFixed(const struct Fixed * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFunction(x);
+        cJSON * j = cJSON_CreateFixed(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6327,53 +5872,53 @@ char * cJSON_PrintFunction(const struct Function * x) {
     return s;
 }
 
-void cJSON_DeleteFunction(struct Function * x) {
+void cJSON_DeleteFixed(struct Fixed * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Get * cJSON_ParseGet(const char * s) {
-    struct Get * x = NULL;
+struct Foreach * cJSON_ParseForeach(const char * s) {
+    struct Foreach * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGetValue(j);
+            x = cJSON_GetForeachValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Get * cJSON_GetGetValue(const cJSON * j) {
-    struct Get * x = NULL;
+struct Foreach * cJSON_GetForeachValue(const cJSON * j) {
+    struct Foreach * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Get)))) {
-            memset(x, 0, sizeof(struct Get));
-            if (!cJSON_HasObjectItem(j, "get")) { cJSON_DeleteGet(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "get")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "get"))) { cJSON_DeleteGet(x); return NULL; }
-                x->get = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "get"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Foreach)))) {
+            memset(x, 0, sizeof(struct Foreach));
+            if (!cJSON_HasObjectItem(j, "foreach")) { cJSON_DeleteForeach(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "foreach")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "foreach"))) { cJSON_DeleteForeach(x); return NULL; }
+                x->foreach = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "foreach"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGet(const struct Get * x) {
+cJSON * cJSON_CreateForeach(const struct Foreach * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "get", x->get);
+            cJSON_AddNumberToObject(j, "foreach", x->foreach);
         }
     }
     return j;
 }
 
-char * cJSON_PrintGet(const struct Get * x) {
+char * cJSON_PrintForeach(const struct Foreach * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGet(x);
+        cJSON * j = cJSON_CreateForeach(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6382,53 +5927,53 @@ char * cJSON_PrintGet(const struct Get * x) {
     return s;
 }
 
-void cJSON_DeleteGet(struct Get * x) {
+void cJSON_DeleteForeach(struct Foreach * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Global * cJSON_ParseGlobal(const char * s) {
-    struct Global * x = NULL;
+struct FormatException * cJSON_ParseFormatException(const char * s) {
+    struct FormatException * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGlobalValue(j);
+            x = cJSON_GetFormatExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Global * cJSON_GetGlobalValue(const cJSON * j) {
-    struct Global * x = NULL;
+struct FormatException * cJSON_GetFormatExceptionValue(const cJSON * j) {
+    struct FormatException * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Global)))) {
-            memset(x, 0, sizeof(struct Global));
-            if (!cJSON_HasObjectItem(j, "global")) { cJSON_DeleteGlobal(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "global")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "global"))) { cJSON_DeleteGlobal(x); return NULL; }
-                x->global = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "global"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct FormatException)))) {
+            memset(x, 0, sizeof(struct FormatException));
+            if (!cJSON_HasObjectItem(j, "FormatException")) { cJSON_DeleteFormatException(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "FormatException")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "FormatException"))) { cJSON_DeleteFormatException(x); return NULL; }
+                x->format_exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "FormatException"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGlobal(const struct Global * x) {
+cJSON * cJSON_CreateFormatException(const struct FormatException * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "global", x->global);
+            cJSON_AddNumberToObject(j, "FormatException", x->format_exception);
         }
     }
     return j;
 }
 
-char * cJSON_PrintGlobal(const struct Global * x) {
+char * cJSON_PrintFormatException(const struct FormatException * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGlobal(x);
+        cJSON * j = cJSON_CreateFormatException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6437,53 +5982,53 @@ char * cJSON_PrintGlobal(const struct Global * x) {
     return s;
 }
 
-void cJSON_DeleteGlobal(struct Global * x) {
+void cJSON_DeleteFormatException(struct FormatException * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Go * cJSON_ParseGo(const char * s) {
-    struct Go * x = NULL;
+struct From * cJSON_ParseFrom(const char * s) {
+    struct From * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGoValue(j);
+            x = cJSON_GetFromValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Go * cJSON_GetGoValue(const cJSON * j) {
-    struct Go * x = NULL;
+struct From * cJSON_GetFromValue(const cJSON * j) {
+    struct From * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Go)))) {
-            memset(x, 0, sizeof(struct Go));
-            if (!cJSON_HasObjectItem(j, "go")) { cJSON_DeleteGo(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "go")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "go"))) { cJSON_DeleteGo(x); return NULL; }
-                x->go = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "go"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct From)))) {
+            memset(x, 0, sizeof(struct From));
+            if (!cJSON_HasObjectItem(j, "from")) { cJSON_DeleteFrom(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "from")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "from"))) { cJSON_DeleteFrom(x); return NULL; }
+                x->from = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "from"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGo(const struct Go * x) {
+cJSON * cJSON_CreateFrom(const struct From * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "go", x->go);
+            cJSON_AddNumberToObject(j, "from", x->from);
         }
     }
     return j;
 }
 
-char * cJSON_PrintGo(const struct Go * x) {
+char * cJSON_PrintFrom(const struct From * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGo(x);
+        cJSON * j = cJSON_CreateFrom(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6492,53 +6037,53 @@ char * cJSON_PrintGo(const struct Go * x) {
     return s;
 }
 
-void cJSON_DeleteGo(struct Go * x) {
+void cJSON_DeleteFrom(struct From * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Guard * cJSON_ParseGuard(const char * s) {
-    struct Guard * x = NULL;
+struct FromJson * cJSON_ParseFromJson(const char * s) {
+    struct FromJson * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGuardValue(j);
+            x = cJSON_GetFromJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Guard * cJSON_GetGuardValue(const cJSON * j) {
-    struct Guard * x = NULL;
+struct FromJson * cJSON_GetFromJsonValue(const cJSON * j) {
+    struct FromJson * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Guard)))) {
-            memset(x, 0, sizeof(struct Guard));
-            if (!cJSON_HasObjectItem(j, "guard")) { cJSON_DeleteGuard(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "guard")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "guard"))) { cJSON_DeleteGuard(x); return NULL; }
-                x->guard = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "guard"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct FromJson)))) {
+            memset(x, 0, sizeof(struct FromJson));
+            if (!cJSON_HasObjectItem(j, "from_json")) { cJSON_DeleteFromJson(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "from_json")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "from_json"))) { cJSON_DeleteFromJson(x); return NULL; }
+                x->from_json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "from_json"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGuard(const struct Guard * x) {
+cJSON * cJSON_CreateFromJson(const struct FromJson * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "guard", x->guard);
+            cJSON_AddNumberToObject(j, "from_json", x->from_json);
         }
     }
     return j;
 }
 
-char * cJSON_PrintGuard(const struct Guard * x) {
+char * cJSON_PrintFromJson(const struct FromJson * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGuard(x);
+        cJSON * j = cJSON_CreateFromJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6547,53 +6092,53 @@ char * cJSON_PrintGuard(const struct Guard * x) {
     return s;
 }
 
-void cJSON_DeleteGuard(struct Guard * x) {
+void cJSON_DeleteFromJson(struct FromJson * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct HasOwnProperty * cJSON_ParseHasOwnProperty(const char * s) {
-    struct HasOwnProperty * x = NULL;
+struct Func * cJSON_ParseFunc(const char * s) {
+    struct Func * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetHasOwnPropertyValue(j);
+            x = cJSON_GetFuncValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct HasOwnProperty * cJSON_GetHasOwnPropertyValue(const cJSON * j) {
-    struct HasOwnProperty * x = NULL;
+struct Func * cJSON_GetFuncValue(const cJSON * j) {
+    struct Func * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct HasOwnProperty)))) {
-            memset(x, 0, sizeof(struct HasOwnProperty));
-            if (!cJSON_HasObjectItem(j, "hasOwnProperty")) { cJSON_DeleteHasOwnProperty(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "hasOwnProperty")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"))) { cJSON_DeleteHasOwnProperty(x); return NULL; }
-                x->has_own_property = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Func)))) {
+            memset(x, 0, sizeof(struct Func));
+            if (!cJSON_HasObjectItem(j, "func")) { cJSON_DeleteFunc(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "func")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "func"))) { cJSON_DeleteFunc(x); return NULL; }
+                x->func = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "func"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x) {
+cJSON * cJSON_CreateFunc(const struct Func * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "hasOwnProperty", x->has_own_property);
+            cJSON_AddNumberToObject(j, "func", x->func);
         }
     }
     return j;
 }
 
-char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
+char * cJSON_PrintFunc(const struct Func * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateHasOwnProperty(x);
+        cJSON * j = cJSON_CreateFunc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6602,53 +6147,53 @@ char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
     return s;
 }
 
-void cJSON_DeleteHasOwnProperty(struct HasOwnProperty * x) {
+void cJSON_DeleteFunc(struct Func * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct HashCode * cJSON_ParseHashCode(const char * s) {
-    struct HashCode * x = NULL;
+struct Function * cJSON_ParseFunction(const char * s) {
+    struct Function * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetHashCodeValue(j);
+            x = cJSON_GetFunctionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct HashCode * cJSON_GetHashCodeValue(const cJSON * j) {
-    struct HashCode * x = NULL;
+struct Function * cJSON_GetFunctionValue(const cJSON * j) {
+    struct Function * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct HashCode)))) {
-            memset(x, 0, sizeof(struct HashCode));
-            if (!cJSON_HasObjectItem(j, "hashCode")) { cJSON_DeleteHashCode(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "hashCode")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "hashCode"))) { cJSON_DeleteHashCode(x); return NULL; }
-                x->hash_code = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "hashCode"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Function)))) {
+            memset(x, 0, sizeof(struct Function));
+            if (!cJSON_HasObjectItem(j, "function")) { cJSON_DeleteFunction(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "function")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "function"))) { cJSON_DeleteFunction(x); return NULL; }
+                x->function = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "function"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateHashCode(const struct HashCode * x) {
+cJSON * cJSON_CreateFunction(const struct Function * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "hashCode", x->hash_code);
+            cJSON_AddNumberToObject(j, "function", x->function);
         }
     }
     return j;
 }
 
-char * cJSON_PrintHashCode(const struct HashCode * x) {
+char * cJSON_PrintFunction(const struct Function * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateHashCode(x);
+        cJSON * j = cJSON_CreateFunction(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6657,53 +6202,53 @@ char * cJSON_PrintHashCode(const struct HashCode * x) {
     return s;
 }
 
-void cJSON_DeleteHashCode(struct HashCode * x) {
+void cJSON_DeleteFunction(struct Function * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Id * cJSON_ParseId(const char * s) {
-    struct Id * x = NULL;
+struct Get * cJSON_ParseGet(const char * s) {
+    struct Get * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIdValue(j);
+            x = cJSON_GetGetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Id * cJSON_GetIdValue(const cJSON * j) {
-    struct Id * x = NULL;
+struct Get * cJSON_GetGetValue(const cJSON * j) {
+    struct Get * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Id)))) {
-            memset(x, 0, sizeof(struct Id));
-            if (!cJSON_HasObjectItem(j, "id")) { cJSON_DeleteId(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "id")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "id"))) { cJSON_DeleteId(x); return NULL; }
-                x->id = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "id"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Get)))) {
+            memset(x, 0, sizeof(struct Get));
+            if (!cJSON_HasObjectItem(j, "get")) { cJSON_DeleteGet(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "get")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "get"))) { cJSON_DeleteGet(x); return NULL; }
+                x->get = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "get"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateId(const struct Id * x) {
+cJSON * cJSON_CreateGet(const struct Get * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "id", x->id);
+            cJSON_AddNumberToObject(j, "get", x->get);
         }
     }
     return j;
 }
 
-char * cJSON_PrintId(const struct Id * x) {
+char * cJSON_PrintGet(const struct Get * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateId(x);
+        cJSON * j = cJSON_CreateGet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6712,53 +6257,53 @@ char * cJSON_PrintId(const struct Id * x) {
     return s;
 }
 
-void cJSON_DeleteId(struct Id * x) {
+void cJSON_DeleteGet(struct Get * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Imp * cJSON_ParseImp(const char * s) {
-    struct Imp * x = NULL;
+struct Global * cJSON_ParseGlobal(const char * s) {
+    struct Global * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImpValue(j);
+            x = cJSON_GetGlobalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Imp * cJSON_GetImpValue(const cJSON * j) {
-    struct Imp * x = NULL;
+struct Global * cJSON_GetGlobalValue(const cJSON * j) {
+    struct Global * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Imp)))) {
-            memset(x, 0, sizeof(struct Imp));
-            if (!cJSON_HasObjectItem(j, "IMP")) { cJSON_DeleteImp(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "IMP")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "IMP"))) { cJSON_DeleteImp(x); return NULL; }
-                x->imp = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "IMP"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Global)))) {
+            memset(x, 0, sizeof(struct Global));
+            if (!cJSON_HasObjectItem(j, "global")) { cJSON_DeleteGlobal(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "global")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "global"))) { cJSON_DeleteGlobal(x); return NULL; }
+                x->global = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "global"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImp(const struct Imp * x) {
+cJSON * cJSON_CreateGlobal(const struct Global * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "IMP", x->imp);
+            cJSON_AddNumberToObject(j, "global", x->global);
         }
     }
     return j;
 }
 
-char * cJSON_PrintImp(const struct Imp * x) {
+char * cJSON_PrintGlobal(const struct Global * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImp(x);
+        cJSON * j = cJSON_CreateGlobal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6767,53 +6312,53 @@ char * cJSON_PrintImp(const struct Imp * x) {
     return s;
 }
 
-void cJSON_DeleteImp(struct Imp * x) {
+void cJSON_DeleteGlobal(struct Global * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Implements * cJSON_ParseImplements(const char * s) {
-    struct Implements * x = NULL;
+struct Go * cJSON_ParseGo(const char * s) {
+    struct Go * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImplementsValue(j);
+            x = cJSON_GetGoValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Implements * cJSON_GetImplementsValue(const cJSON * j) {
-    struct Implements * x = NULL;
+struct Go * cJSON_GetGoValue(const cJSON * j) {
+    struct Go * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Implements)))) {
-            memset(x, 0, sizeof(struct Implements));
-            if (!cJSON_HasObjectItem(j, "implements")) { cJSON_DeleteImplements(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "implements")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "implements"))) { cJSON_DeleteImplements(x); return NULL; }
-                x->implements = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "implements"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Go)))) {
+            memset(x, 0, sizeof(struct Go));
+            if (!cJSON_HasObjectItem(j, "go")) { cJSON_DeleteGo(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "go")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "go"))) { cJSON_DeleteGo(x); return NULL; }
+                x->go = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "go"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImplements(const struct Implements * x) {
+cJSON * cJSON_CreateGo(const struct Go * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "implements", x->implements);
+            cJSON_AddNumberToObject(j, "go", x->go);
         }
     }
     return j;
 }
 
-char * cJSON_PrintImplements(const struct Implements * x) {
+char * cJSON_PrintGo(const struct Go * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImplements(x);
+        cJSON * j = cJSON_CreateGo(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6822,53 +6367,53 @@ char * cJSON_PrintImplements(const struct Implements * x) {
     return s;
 }
 
-void cJSON_DeleteImplements(struct Implements * x) {
+void cJSON_DeleteGo(struct Go * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Implicit * cJSON_ParseImplicit(const char * s) {
-    struct Implicit * x = NULL;
+struct Guard * cJSON_ParseGuard(const char * s) {
+    struct Guard * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImplicitValue(j);
+            x = cJSON_GetGuardValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Implicit * cJSON_GetImplicitValue(const cJSON * j) {
-    struct Implicit * x = NULL;
+struct Guard * cJSON_GetGuardValue(const cJSON * j) {
+    struct Guard * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Implicit)))) {
-            memset(x, 0, sizeof(struct Implicit));
-            if (!cJSON_HasObjectItem(j, "implicit")) { cJSON_DeleteImplicit(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "implicit")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "implicit"))) { cJSON_DeleteImplicit(x); return NULL; }
-                x->implicit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "implicit"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Guard)))) {
+            memset(x, 0, sizeof(struct Guard));
+            if (!cJSON_HasObjectItem(j, "guard")) { cJSON_DeleteGuard(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "guard")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "guard"))) { cJSON_DeleteGuard(x); return NULL; }
+                x->guard = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "guard"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImplicit(const struct Implicit * x) {
+cJSON * cJSON_CreateGuard(const struct Guard * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "implicit", x->implicit);
+            cJSON_AddNumberToObject(j, "guard", x->guard);
         }
     }
     return j;
 }
 
-char * cJSON_PrintImplicit(const struct Implicit * x) {
+char * cJSON_PrintGuard(const struct Guard * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImplicit(x);
+        cJSON * j = cJSON_CreateGuard(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6877,53 +6422,53 @@ char * cJSON_PrintImplicit(const struct Implicit * x) {
     return s;
 }
 
-void cJSON_DeleteImplicit(struct Implicit * x) {
+void cJSON_DeleteGuard(struct Guard * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct In * cJSON_ParseIn(const char * s) {
-    struct In * x = NULL;
+struct HasOwnProperty * cJSON_ParseHasOwnProperty(const char * s) {
+    struct HasOwnProperty * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInValue(j);
+            x = cJSON_GetHasOwnPropertyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct In * cJSON_GetInValue(const cJSON * j) {
-    struct In * x = NULL;
+struct HasOwnProperty * cJSON_GetHasOwnPropertyValue(const cJSON * j) {
+    struct HasOwnProperty * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct In)))) {
-            memset(x, 0, sizeof(struct In));
-            if (!cJSON_HasObjectItem(j, "in")) { cJSON_DeleteIn(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "in")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "in"))) { cJSON_DeleteIn(x); return NULL; }
-                x->in = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "in"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct HasOwnProperty)))) {
+            memset(x, 0, sizeof(struct HasOwnProperty));
+            if (!cJSON_HasObjectItem(j, "hasOwnProperty")) { cJSON_DeleteHasOwnProperty(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "hasOwnProperty")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"))) { cJSON_DeleteHasOwnProperty(x); return NULL; }
+                x->has_own_property = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIn(const struct In * x) {
+cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "in", x->in);
+            cJSON_AddNumberToObject(j, "hasOwnProperty", x->has_own_property);
         }
     }
     return j;
 }
 
-char * cJSON_PrintIn(const struct In * x) {
+char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIn(x);
+        cJSON * j = cJSON_CreateHasOwnProperty(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6932,53 +6477,53 @@ char * cJSON_PrintIn(const struct In * x) {
     return s;
 }
 
-void cJSON_DeleteIn(struct In * x) {
+void cJSON_DeleteHasOwnProperty(struct HasOwnProperty * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Indirect * cJSON_ParseIndirect(const char * s) {
-    struct Indirect * x = NULL;
+struct HashCode * cJSON_ParseHashCode(const char * s) {
+    struct HashCode * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIndirectValue(j);
+            x = cJSON_GetHashCodeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Indirect * cJSON_GetIndirectValue(const cJSON * j) {
-    struct Indirect * x = NULL;
+struct HashCode * cJSON_GetHashCodeValue(const cJSON * j) {
+    struct HashCode * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Indirect)))) {
-            memset(x, 0, sizeof(struct Indirect));
-            if (!cJSON_HasObjectItem(j, "indirect")) { cJSON_DeleteIndirect(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "indirect")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "indirect"))) { cJSON_DeleteIndirect(x); return NULL; }
-                x->indirect = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "indirect"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct HashCode)))) {
+            memset(x, 0, sizeof(struct HashCode));
+            if (!cJSON_HasObjectItem(j, "hashCode")) { cJSON_DeleteHashCode(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "hashCode")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "hashCode"))) { cJSON_DeleteHashCode(x); return NULL; }
+                x->hash_code = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "hashCode"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIndirect(const struct Indirect * x) {
+cJSON * cJSON_CreateHashCode(const struct HashCode * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "indirect", x->indirect);
+            cJSON_AddNumberToObject(j, "hashCode", x->hash_code);
         }
     }
     return j;
 }
 
-char * cJSON_PrintIndirect(const struct Indirect * x) {
+char * cJSON_PrintHashCode(const struct HashCode * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIndirect(x);
+        cJSON * j = cJSON_CreateHashCode(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -6987,53 +6532,53 @@ char * cJSON_PrintIndirect(const struct Indirect * x) {
     return s;
 }
 
-void cJSON_DeleteIndirect(struct Indirect * x) {
+void cJSON_DeleteHashCode(struct HashCode * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Infix * cJSON_ParseInfix(const char * s) {
-    struct Infix * x = NULL;
+struct Id * cJSON_ParseId(const char * s) {
+    struct Id * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInfixValue(j);
+            x = cJSON_GetIdValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Infix * cJSON_GetInfixValue(const cJSON * j) {
-    struct Infix * x = NULL;
+struct Id * cJSON_GetIdValue(const cJSON * j) {
+    struct Id * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Infix)))) {
-            memset(x, 0, sizeof(struct Infix));
-            if (!cJSON_HasObjectItem(j, "infix")) { cJSON_DeleteInfix(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "infix")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "infix"))) { cJSON_DeleteInfix(x); return NULL; }
-                x->infix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "infix"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Id)))) {
+            memset(x, 0, sizeof(struct Id));
+            if (!cJSON_HasObjectItem(j, "id")) { cJSON_DeleteId(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "id")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "id"))) { cJSON_DeleteId(x); return NULL; }
+                x->id = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "id"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInfix(const struct Infix * x) {
+cJSON * cJSON_CreateId(const struct Id * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "infix", x->infix);
+            cJSON_AddNumberToObject(j, "id", x->id);
         }
     }
     return j;
 }
 
-char * cJSON_PrintInfix(const struct Infix * x) {
+char * cJSON_PrintId(const struct Id * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInfix(x);
+        cJSON * j = cJSON_CreateId(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -7042,53 +6587,53 @@ char * cJSON_PrintInfix(const struct Infix * x) {
     return s;
 }
 
-void cJSON_DeleteInfix(struct Infix * x) {
+void cJSON_DeleteId(struct Id * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Init * cJSON_ParseInit(const char * s) {
-    struct Init * x = NULL;
+struct Imp * cJSON_ParseImp(const char * s) {
+    struct Imp * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInitValue(j);
+            x = cJSON_GetImpValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Init * cJSON_GetInitValue(const cJSON * j) {
-    struct Init * x = NULL;
+struct Imp * cJSON_GetImpValue(const cJSON * j) {
+    struct Imp * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Init)))) {
-            memset(x, 0, sizeof(struct Init));
-            if (!cJSON_HasObjectItem(j, "init")) { cJSON_DeleteInit(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "init")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "init"))) { cJSON_DeleteInit(x); return NULL; }
-                x->init = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "init"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Imp)))) {
+            memset(x, 0, sizeof(struct Imp));
+            if (!cJSON_HasObjectItem(j, "IMP")) { cJSON_DeleteImp(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "IMP")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "IMP"))) { cJSON_DeleteImp(x); return NULL; }
+                x->imp = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "IMP"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInit(const struct Init * x) {
+cJSON * cJSON_CreateImp(const struct Imp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "init", x->init);
+            cJSON_AddNumberToObject(j, "IMP", x->imp);
         }
     }
     return j;
 }
 
-char * cJSON_PrintInit(const struct Init * x) {
+char * cJSON_PrintImp(const struct Imp * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInit(x);
+        cJSON * j = cJSON_CreateImp(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -7097,53 +6642,53 @@ char * cJSON_PrintInit(const struct Init * x) {
     return s;
 }
 
-void cJSON_DeleteInit(struct Init * x) {
+void cJSON_DeleteImp(struct Imp * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Inout * cJSON_ParseInout(const char * s) {
-    struct Inout * x = NULL;
+struct Implements * cJSON_ParseImplements(const char * s) {
+    struct Implements * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInoutValue(j);
+            x = cJSON_GetImplementsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Inout * cJSON_GetInoutValue(const cJSON * j) {
-    struct Inout * x = NULL;
+struct Implements * cJSON_GetImplementsValue(const cJSON * j) {
+    struct Implements * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Inout)))) {
-            memset(x, 0, sizeof(struct Inout));
-            if (!cJSON_HasObjectItem(j, "inout")) { cJSON_DeleteInout(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "inout")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "inout"))) { cJSON_DeleteInout(x); return NULL; }
-                x->inout = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "inout"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Implements)))) {
+            memset(x, 0, sizeof(struct Implements));
+            if (!cJSON_HasObjectItem(j, "implements")) { cJSON_DeleteImplements(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "implements")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "implements"))) { cJSON_DeleteImplements(x); return NULL; }
+                x->implements = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "implements"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInout(const struct Inout * x) {
+cJSON * cJSON_CreateImplements(const struct Implements * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "inout", x->inout);
+            cJSON_AddNumberToObject(j, "implements", x->implements);
         }
     }
     return j;
 }
 
-char * cJSON_PrintInout(const struct Inout * x) {
+char * cJSON_PrintImplements(const struct Implements * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInout(x);
+        cJSON * j = cJSON_CreateImplements(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -7152,108 +6697,53 @@ char * cJSON_PrintInout(const struct Inout * x) {
     return s;
 }
 
-void cJSON_DeleteInout(struct Inout * x) {
+void cJSON_DeleteImplements(struct Implements * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Instanceof * cJSON_ParseInstanceof(const char * s) {
-    struct Instanceof * x = NULL;
+struct Implicit * cJSON_ParseImplicit(const char * s) {
+    struct Implicit * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInstanceofValue(j);
+            x = cJSON_GetImplicitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j) {
-    struct Instanceof * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Instanceof)))) {
-            memset(x, 0, sizeof(struct Instanceof));
-            if (!cJSON_HasObjectItem(j, "instanceof")) { cJSON_DeleteInstanceof(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "instanceof")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "instanceof"))) { cJSON_DeleteInstanceof(x); return NULL; }
-                x->instanceof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "instanceof"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateInstanceof(const struct Instanceof * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "instanceof", x->instanceof);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintInstanceof(const struct Instanceof * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateInstanceof(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteInstanceof(struct Instanceof * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Interface * cJSON_ParseInterface(const char * s) {
-    struct Interface * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetInterfaceValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Interface * cJSON_GetInterfaceValue(const cJSON * j) {
-    struct Interface * x = NULL;
+struct Implicit * cJSON_GetImplicitValue(const cJSON * j) {
+    struct Implicit * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Interface)))) {
-            memset(x, 0, sizeof(struct Interface));
-            if (!cJSON_HasObjectItem(j, "interface")) { cJSON_DeleteInterface(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "interface")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "interface"))) { cJSON_DeleteInterface(x); return NULL; }
-                x->interface = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "interface"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Implicit)))) {
+            memset(x, 0, sizeof(struct Implicit));
+            if (!cJSON_HasObjectItem(j, "implicit")) { cJSON_DeleteImplicit(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "implicit")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "implicit"))) { cJSON_DeleteImplicit(x); return NULL; }
+                x->implicit = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "implicit"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInterface(const struct Interface * x) {
+cJSON * cJSON_CreateImplicit(const struct Implicit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "interface", x->interface);
+            cJSON_AddNumberToObject(j, "implicit", x->implicit);
         }
     }
     return j;
 }
 
-char * cJSON_PrintInterface(const struct Interface * x) {
+char * cJSON_PrintImplicit(const struct Implicit * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInterface(x);
+        cJSON * j = cJSON_CreateImplicit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -7262,53 +6752,53 @@ char * cJSON_PrintInterface(const struct Interface * x) {
     return s;
 }
 
-void cJSON_DeleteInterface(struct Interface * x) {
+void cJSON_DeleteImplicit(struct Implicit * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Internal * cJSON_ParseInternal(const char * s) {
-    struct Internal * x = NULL;
+struct Decltype * cJSON_ParseDecltype(const char * s) {
+    struct Decltype * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInternalValue(j);
+            x = cJSON_GetDecltypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Internal * cJSON_GetInternalValue(const cJSON * j) {
-    struct Internal * x = NULL;
+struct Decltype * cJSON_GetDecltypeValue(const cJSON * j) {
+    struct Decltype * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Internal)))) {
-            memset(x, 0, sizeof(struct Internal));
-            if (!cJSON_HasObjectItem(j, "internal")) { cJSON_DeleteInternal(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "internal")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "internal"))) { cJSON_DeleteInternal(x); return NULL; }
-                x->internal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "internal"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Decltype)))) {
+            memset(x, 0, sizeof(struct Decltype));
+            if (!cJSON_HasObjectItem(j, "decltype")) { cJSON_DeleteDecltype(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decltype")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "decltype"))) { cJSON_DeleteDecltype(x); return NULL; }
+                x->decltype_decltype = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "decltype"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInternal(const struct Internal * x) {
+cJSON * cJSON_CreateDecltype(const struct Decltype * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "internal", x->internal);
+            cJSON_AddNumberToObject(j, "decltype", x->decltype_decltype);
         }
     }
     return j;
 }
 
-char * cJSON_PrintInternal(const struct Internal * x) {
+char * cJSON_PrintDecltype(const struct Decltype * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInternal(x);
+        cJSON * j = cJSON_CreateDecltype(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -7317,7 +6807,7 @@ char * cJSON_PrintInternal(const struct Internal * x) {
     return s;
 }
 
-void cJSON_DeleteInternal(struct Internal * x) {
+void cJSON_DeleteDecltype(struct Decltype * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
@@ -8258,47 +7748,47 @@ void cJSON_DeleteIf(struct If * x) {
     }
 }
 
-struct Import * cJSON_ParseImport(const char * s) {
-    struct Import * x = NULL;
+struct Obj2False * cJSON_ParseObj2False(const char * s) {
+    struct Obj2False * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImportValue(j);
+            x = cJSON_GetObj2FalseValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Import * cJSON_GetImportValue(const cJSON * j) {
-    struct Import * x = NULL;
+struct Obj2False * cJSON_GetObj2FalseValue(const cJSON * j) {
+    struct Obj2False * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Import)))) {
-            memset(x, 0, sizeof(struct Import));
-            if (!cJSON_HasObjectItem(j, "import")) { cJSON_DeleteImport(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "import")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "import"))) { cJSON_DeleteImport(x); return NULL; }
-                x->import_import = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "import"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj2False)))) {
+            memset(x, 0, sizeof(struct Obj2False));
+            if (!cJSON_HasObjectItem(j, "false")) { cJSON_DeleteObj2False(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "false")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "false"))) { cJSON_DeleteObj2False(x); return NULL; }
+                x->false_false = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "false"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImport(const struct Import * x) {
+cJSON * cJSON_CreateObj2False(const struct Obj2False * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "import", x->import_import);
+            cJSON_AddNumberToObject(j, "false", x->false_false);
         }
     }
     return j;
 }
 
-char * cJSON_PrintImport(const struct Import * x) {
+char * cJSON_PrintObj2False(const struct Obj2False * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImport(x);
+        cJSON * j = cJSON_CreateObj2False(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -8307,194 +7797,65 @@ char * cJSON_PrintImport(const struct Import * x) {
     return s;
 }
 
-void cJSON_DeleteImport(struct Import * x) {
+void cJSON_DeleteObj2False(struct Obj2False * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Inline * cJSON_ParseInline(const char * s) {
-    struct Inline * x = NULL;
+struct Obj2 * cJSON_ParseObj2(const char * s) {
+    struct Obj2 * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInlineValue(j);
+            x = cJSON_GetObj2Value(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Inline * cJSON_GetInlineValue(const cJSON * j) {
-    struct Inline * x = NULL;
+struct Obj2 * cJSON_GetObj2Value(const cJSON * j) {
+    struct Obj2 * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Inline)))) {
-            memset(x, 0, sizeof(struct Inline));
-            if (!cJSON_HasObjectItem(j, "inline")) { cJSON_DeleteInline(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "inline")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "inline"))) { cJSON_DeleteInline(x); return NULL; }
-                x->inline_inline = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "inline"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj2)))) {
+            memset(x, 0, sizeof(struct Obj2));
+            if (!cJSON_HasObjectItem(j, "DateTime")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "DateTime")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "DateTime"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->date_time = cJSON_GetDateTimeValue(cJSON_GetObjectItemCaseSensitive(j, "DateTime"));
+                if (NULL == x->date_time) { cJSON_DeleteObj2(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateInline(const struct Inline * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "inline", x->inline_inline);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintInline(const struct Inline * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateInline(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteInline(struct Inline * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Int * cJSON_ParseInt(const char * s) {
-    struct Int * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetIntValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Int * cJSON_GetIntValue(const cJSON * j) {
-    struct Int * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Int)))) {
-            memset(x, 0, sizeof(struct Int));
-            if (!cJSON_HasObjectItem(j, "int")) { cJSON_DeleteInt(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "int")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "int"))) { cJSON_DeleteInt(x); return NULL; }
-                x->int_int = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "int"));
+            if (!cJSON_HasObjectItem(j, "DateTimeStyles")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "DateTimeStyles")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->date_time_styles = cJSON_GetDateTimeStylesValue(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"));
+                if (NULL == x->date_time_styles) { cJSON_DeleteObj2(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateInt(const struct Int * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "int", x->int_int);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintInt(const struct Int * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateInt(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteInt(struct Int * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj2False * cJSON_ParseObj2False(const char * s) {
-    struct Obj2False * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj2FalseValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj2False * cJSON_GetObj2FalseValue(const cJSON * j) {
-    struct Obj2False * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj2False)))) {
-            memset(x, 0, sizeof(struct Obj2False));
-            if (!cJSON_HasObjectItem(j, "false")) { cJSON_DeleteObj2False(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "false")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "false"))) { cJSON_DeleteObj2False(x); return NULL; }
-                x->false_false = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "false"));
+            if (!cJSON_HasObjectItem(j, "debugger")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "debugger")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "debugger"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->debugger = cJSON_GetDebuggerValue(cJSON_GetObjectItemCaseSensitive(j, "debugger"));
+                if (NULL == x->debugger) { cJSON_DeleteObj2(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "decimal")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decimal")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decimal"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->decimal = cJSON_GetDecimalValue(cJSON_GetObjectItemCaseSensitive(j, "decimal"));
+                if (NULL == x->decimal) { cJSON_DeleteObj2(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "declare")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "declare")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "declare"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->declare = cJSON_GetDeclareValue(cJSON_GetObjectItemCaseSensitive(j, "declare"));
+                if (NULL == x->declare) { cJSON_DeleteObj2(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "decode_string")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decode_string")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decode_string"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->decode_string = cJSON_GetDecodeStringValue(cJSON_GetObjectItemCaseSensitive(j, "decode_string"));
+                if (NULL == x->decode_string) { cJSON_DeleteObj2(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateObj2False(const struct Obj2False * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "false", x->false_false);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintObj2False(const struct Obj2False * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateObj2False(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteObj2False(struct Obj2False * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj2 * cJSON_ParseObj2(const char * s) {
-    struct Obj2 * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj2Value(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj2 * cJSON_GetObj2Value(const cJSON * j) {
-    struct Obj2 * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj2)))) {
-            memset(x, 0, sizeof(struct Obj2));
             if (!cJSON_HasObjectItem(j, "def")) { cJSON_DeleteObj2(x); return NULL; }
             if (cJSON_HasObjectItem(j, "def")) {
                 if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "def"))) { cJSON_DeleteObj2(x); return NULL; }
@@ -8734,53 +8095,11 @@ struct Obj2 * cJSON_GetObj2Value(const cJSON * j) {
                 x->implicit = cJSON_GetImplicitValue(cJSON_GetObjectItemCaseSensitive(j, "implicit"));
                 if (NULL == x->implicit) { cJSON_DeleteObj2(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "in")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "in")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "in"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->in = cJSON_GetInValue(cJSON_GetObjectItemCaseSensitive(j, "in"));
-                if (NULL == x->in) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "indirect")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "indirect")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "indirect"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->indirect = cJSON_GetIndirectValue(cJSON_GetObjectItemCaseSensitive(j, "indirect"));
-                if (NULL == x->indirect) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "infix")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "infix")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "infix"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->infix = cJSON_GetInfixValue(cJSON_GetObjectItemCaseSensitive(j, "infix"));
-                if (NULL == x->infix) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "init")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "init")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "init"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->init = cJSON_GetInitValue(cJSON_GetObjectItemCaseSensitive(j, "init"));
-                if (NULL == x->init) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "inout")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "inout")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "inout"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->inout = cJSON_GetInoutValue(cJSON_GetObjectItemCaseSensitive(j, "inout"));
-                if (NULL == x->inout) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "instanceof")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "instanceof")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "instanceof"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->instanceof = cJSON_GetInstanceofValue(cJSON_GetObjectItemCaseSensitive(j, "instanceof"));
-                if (NULL == x->instanceof) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "interface")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "interface")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "interface"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->interface = cJSON_GetInterfaceValue(cJSON_GetObjectItemCaseSensitive(j, "interface"));
-                if (NULL == x->interface) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "internal")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "internal")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "internal"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->internal = cJSON_GetInternalValue(cJSON_GetObjectItemCaseSensitive(j, "internal"));
-                if (NULL == x->internal) { cJSON_DeleteObj2(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "decltype")) { cJSON_DeleteObj2(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "decltype")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "decltype"))) { cJSON_DeleteObj2(x); return NULL; }
+                x->obj2_decltype = cJSON_GetDecltypeValue(cJSON_GetObjectItemCaseSensitive(j, "decltype"));
+                if (NULL == x->obj2_decltype) { cJSON_DeleteObj2(x); return NULL; }
             }
             if (!cJSON_HasObjectItem(j, "default")) { cJSON_DeleteObj2(x); return NULL; }
             if (cJSON_HasObjectItem(j, "default")) {
@@ -8884,24 +8203,6 @@ struct Obj2 * cJSON_GetObj2Value(const cJSON * j) {
                 x->obj2_if = cJSON_GetIfValue(cJSON_GetObjectItemCaseSensitive(j, "if"));
                 if (NULL == x->obj2_if) { cJSON_DeleteObj2(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "import")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "import")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "import"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->obj2_import = cJSON_GetImportValue(cJSON_GetObjectItemCaseSensitive(j, "import"));
-                if (NULL == x->obj2_import) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "inline")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "inline")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "inline"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->obj2_inline = cJSON_GetInlineValue(cJSON_GetObjectItemCaseSensitive(j, "inline"));
-                if (NULL == x->obj2_inline) { cJSON_DeleteObj2(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "int")) { cJSON_DeleteObj2(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "int")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "int"))) { cJSON_DeleteObj2(x); return NULL; }
-                x->obj2_int = cJSON_GetIntValue(cJSON_GetObjectItemCaseSensitive(j, "int"));
-                if (NULL == x->obj2_int) { cJSON_DeleteObj2(x); return NULL; }
-            }
             if (!cJSON_HasObjectItem(j, "false")) { cJSON_DeleteObj2(x); return NULL; }
             if (cJSON_HasObjectItem(j, "false")) {
                 if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "false"))) { cJSON_DeleteObj2(x); return NULL; }
@@ -8917,6 +8218,12 @@ cJSON * cJSON_CreateObj2(const struct Obj2 * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddItemToObject(j, "DateTime", cJSON_CreateDateTime(x->date_time));
+            cJSON_AddItemToObject(j, "DateTimeStyles", cJSON_CreateDateTimeStyles(x->date_time_styles));
+            cJSON_AddItemToObject(j, "debugger", cJSON_CreateDebugger(x->debugger));
+            cJSON_AddItemToObject(j, "decimal", cJSON_CreateDecimal(x->decimal));
+            cJSON_AddItemToObject(j, "declare", cJSON_CreateDeclare(x->declare));
+            cJSON_AddItemToObject(j, "decode_string", cJSON_CreateDecodeString(x->decode_string));
             cJSON_AddItemToObject(j, "def", cJSON_CreateDef(x->def));
             cJSON_AddItemToObject(j, "defer", cJSON_CreateDefer(x->defer));
             cJSON_AddItemToObject(j, "deinit", cJSON_CreateDeinit(x->deinit));
@@ -8957,14 +8264,7 @@ cJSON * cJSON_CreateObj2(const struct Obj2 * x) {
             cJSON_AddItemToObject(j, "IMP", cJSON_CreateImp(x->imp));
             cJSON_AddItemToObject(j, "implements", cJSON_CreateImplements(x->implements));
             cJSON_AddItemToObject(j, "implicit", cJSON_CreateImplicit(x->implicit));
-            cJSON_AddItemToObject(j, "in", cJSON_CreateIn(x->in));
-            cJSON_AddItemToObject(j, "indirect", cJSON_CreateIndirect(x->indirect));
-            cJSON_AddItemToObject(j, "infix", cJSON_CreateInfix(x->infix));
-            cJSON_AddItemToObject(j, "init", cJSON_CreateInit(x->init));
-            cJSON_AddItemToObject(j, "inout", cJSON_CreateInout(x->inout));
-            cJSON_AddItemToObject(j, "instanceof", cJSON_CreateInstanceof(x->instanceof));
-            cJSON_AddItemToObject(j, "interface", cJSON_CreateInterface(x->interface));
-            cJSON_AddItemToObject(j, "internal", cJSON_CreateInternal(x->internal));
+            cJSON_AddItemToObject(j, "decltype", cJSON_CreateDecltype(x->obj2_decltype));
             cJSON_AddItemToObject(j, "default", cJSON_CreateDefault(x->obj2_default));
             cJSON_AddItemToObject(j, "delete", cJSON_CreateDelete(x->obj2_delete));
             cJSON_AddItemToObject(j, "do", cJSON_CreateDo(x->obj2_do));
@@ -8982,9 +8282,6 @@ cJSON * cJSON_CreateObj2(const struct Obj2 * x) {
             cJSON_AddItemToObject(j, "friend", cJSON_CreateFriend(x->obj2_friend));
             cJSON_AddItemToObject(j, "goto", cJSON_CreateGoto(x->obj2_goto));
             cJSON_AddItemToObject(j, "if", cJSON_CreateIf(x->obj2_if));
-            cJSON_AddItemToObject(j, "import", cJSON_CreateImport(x->obj2_import));
-            cJSON_AddItemToObject(j, "inline", cJSON_CreateInline(x->obj2_inline));
-            cJSON_AddItemToObject(j, "int", cJSON_CreateInt(x->obj2_int));
             cJSON_AddItemToObject(j, "false", cJSON_CreateObj2False(x->purple_false));
         }
     }
@@ -9005,6 +8302,24 @@ char * cJSON_PrintObj2(const struct Obj2 * x) {
 
 void cJSON_DeleteObj2(struct Obj2 * x) {
     if (NULL != x) {
+        if (NULL != x->date_time) {
+            cJSON_DeleteDateTime(x->date_time);
+        }
+        if (NULL != x->date_time_styles) {
+            cJSON_DeleteDateTimeStyles(x->date_time_styles);
+        }
+        if (NULL != x->debugger) {
+            cJSON_DeleteDebugger(x->debugger);
+        }
+        if (NULL != x->decimal) {
+            cJSON_DeleteDecimal(x->decimal);
+        }
+        if (NULL != x->declare) {
+            cJSON_DeleteDeclare(x->declare);
+        }
+        if (NULL != x->decode_string) {
+            cJSON_DeleteDecodeString(x->decode_string);
+        }
         if (NULL != x->def) {
             cJSON_DeleteDef(x->def);
         }
@@ -9122,29 +8437,8 @@ void cJSON_DeleteObj2(struct Obj2 * x) {
         if (NULL != x->implicit) {
             cJSON_DeleteImplicit(x->implicit);
         }
-        if (NULL != x->in) {
-            cJSON_DeleteIn(x->in);
-        }
-        if (NULL != x->indirect) {
-            cJSON_DeleteIndirect(x->indirect);
-        }
-        if (NULL != x->infix) {
-            cJSON_DeleteInfix(x->infix);
-        }
-        if (NULL != x->init) {
-            cJSON_DeleteInit(x->init);
-        }
-        if (NULL != x->inout) {
-            cJSON_DeleteInout(x->inout);
-        }
-        if (NULL != x->instanceof) {
-            cJSON_DeleteInstanceof(x->instanceof);
-        }
-        if (NULL != x->interface) {
-            cJSON_DeleteInterface(x->interface);
-        }
-        if (NULL != x->internal) {
-            cJSON_DeleteInternal(x->internal);
+        if (NULL != x->obj2_decltype) {
+            cJSON_DeleteDecltype(x->obj2_decltype);
         }
         if (NULL != x->obj2_default) {
             cJSON_DeleteDefault(x->obj2_default);
@@ -9197,15 +8491,6 @@ void cJSON_DeleteObj2(struct Obj2 * x) {
         if (NULL != x->obj2_if) {
             cJSON_DeleteIf(x->obj2_if);
         }
-        if (NULL != x->obj2_import) {
-            cJSON_DeleteImport(x->obj2_import);
-        }
-        if (NULL != x->obj2_inline) {
-            cJSON_DeleteInline(x->obj2_inline);
-        }
-        if (NULL != x->obj2_int) {
-            cJSON_DeleteInt(x->obj2_int);
-        }
         if (NULL != x->purple_false) {
             cJSON_DeleteObj2False(x->purple_false);
         }
@@ -9213,47 +8498,47 @@ void cJSON_DeleteObj2(struct Obj2 * x) {
     }
 }
 
-struct Is * cJSON_ParseIs(const char * s) {
-    struct Is * x = NULL;
+struct In * cJSON_ParseIn(const char * s) {
+    struct In * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIsValue(j);
+            x = cJSON_GetInValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Is * cJSON_GetIsValue(const cJSON * j) {
-    struct Is * x = NULL;
+struct In * cJSON_GetInValue(const cJSON * j) {
+    struct In * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Is)))) {
-            memset(x, 0, sizeof(struct Is));
-            if (!cJSON_HasObjectItem(j, "is")) { cJSON_DeleteIs(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "is")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "is"))) { cJSON_DeleteIs(x); return NULL; }
-                x->is = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "is"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct In)))) {
+            memset(x, 0, sizeof(struct In));
+            if (!cJSON_HasObjectItem(j, "in")) { cJSON_DeleteIn(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "in")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "in"))) { cJSON_DeleteIn(x); return NULL; }
+                x->in = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "in"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIs(const struct Is * x) {
+cJSON * cJSON_CreateIn(const struct In * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "is", x->is);
+            cJSON_AddNumberToObject(j, "in", x->in);
         }
     }
     return j;
 }
 
-char * cJSON_PrintIs(const struct Is * x) {
+char * cJSON_PrintIn(const struct In * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIs(x);
+        cJSON * j = cJSON_CreateIn(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9262,53 +8547,53 @@ char * cJSON_PrintIs(const struct Is * x) {
     return s;
 }
 
-void cJSON_DeleteIs(struct Is * x) {
+void cJSON_DeleteIn(struct In * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct IsoDateTimeOffsetConverter * cJSON_ParseIsoDateTimeOffsetConverter(const char * s) {
-    struct IsoDateTimeOffsetConverter * x = NULL;
+struct Indirect * cJSON_ParseIndirect(const char * s) {
+    struct Indirect * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIsoDateTimeOffsetConverterValue(j);
+            x = cJSON_GetIndirectValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct IsoDateTimeOffsetConverter * cJSON_GetIsoDateTimeOffsetConverterValue(const cJSON * j) {
-    struct IsoDateTimeOffsetConverter * x = NULL;
+struct Indirect * cJSON_GetIndirectValue(const cJSON * j) {
+    struct Indirect * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct IsoDateTimeOffsetConverter)))) {
-            memset(x, 0, sizeof(struct IsoDateTimeOffsetConverter));
-            if (!cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) { cJSON_DeleteIsoDateTimeOffsetConverter(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"))) { cJSON_DeleteIsoDateTimeOffsetConverter(x); return NULL; }
-                x->iso_date_time_offset_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Indirect)))) {
+            memset(x, 0, sizeof(struct Indirect));
+            if (!cJSON_HasObjectItem(j, "indirect")) { cJSON_DeleteIndirect(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "indirect")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "indirect"))) { cJSON_DeleteIndirect(x); return NULL; }
+                x->indirect = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "indirect"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
+cJSON * cJSON_CreateIndirect(const struct Indirect * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "IsoDateTimeOffsetConverter", x->iso_date_time_offset_converter);
+            cJSON_AddNumberToObject(j, "indirect", x->indirect);
         }
     }
     return j;
 }
 
-char * cJSON_PrintIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
+char * cJSON_PrintIndirect(const struct Indirect * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIsoDateTimeOffsetConverter(x);
+        cJSON * j = cJSON_CreateIndirect(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9317,53 +8602,53 @@ char * cJSON_PrintIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConve
     return s;
 }
 
-void cJSON_DeleteIsoDateTimeOffsetConverter(struct IsoDateTimeOffsetConverter * x) {
+void cJSON_DeleteIndirect(struct Indirect * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Iterable * cJSON_ParseIterable(const char * s) {
-    struct Iterable * x = NULL;
+struct Infix * cJSON_ParseInfix(const char * s) {
+    struct Infix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIterableValue(j);
+            x = cJSON_GetInfixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Iterable * cJSON_GetIterableValue(const cJSON * j) {
-    struct Iterable * x = NULL;
+struct Infix * cJSON_GetInfixValue(const cJSON * j) {
+    struct Infix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Iterable)))) {
-            memset(x, 0, sizeof(struct Iterable));
-            if (!cJSON_HasObjectItem(j, "iterable")) { cJSON_DeleteIterable(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "iterable")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "iterable"))) { cJSON_DeleteIterable(x); return NULL; }
-                x->iterable = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "iterable"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Infix)))) {
+            memset(x, 0, sizeof(struct Infix));
+            if (!cJSON_HasObjectItem(j, "infix")) { cJSON_DeleteInfix(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "infix")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "infix"))) { cJSON_DeleteInfix(x); return NULL; }
+                x->infix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "infix"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIterable(const struct Iterable * x) {
+cJSON * cJSON_CreateInfix(const struct Infix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "iterable", x->iterable);
+            cJSON_AddNumberToObject(j, "infix", x->infix);
         }
     }
     return j;
 }
 
-char * cJSON_PrintIterable(const struct Iterable * x) {
+char * cJSON_PrintInfix(const struct Infix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIterable(x);
+        cJSON * j = cJSON_CreateInfix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9372,53 +8657,53 @@ char * cJSON_PrintIterable(const struct Iterable * x) {
     return s;
 }
 
-void cJSON_DeleteIterable(struct Iterable * x) {
+void cJSON_DeleteInfix(struct Infix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jdec * cJSON_ParseJdec(const char * s) {
-    struct Jdec * x = NULL;
+struct Init * cJSON_ParseInit(const char * s) {
+    struct Init * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJdecValue(j);
+            x = cJSON_GetInitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jdec * cJSON_GetJdecValue(const cJSON * j) {
-    struct Jdec * x = NULL;
+struct Init * cJSON_GetInitValue(const cJSON * j) {
+    struct Init * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jdec)))) {
-            memset(x, 0, sizeof(struct Jdec));
-            if (!cJSON_HasObjectItem(j, "jdec")) { cJSON_DeleteJdec(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jdec")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jdec"))) { cJSON_DeleteJdec(x); return NULL; }
-                x->jdec = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jdec"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Init)))) {
+            memset(x, 0, sizeof(struct Init));
+            if (!cJSON_HasObjectItem(j, "init")) { cJSON_DeleteInit(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "init")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "init"))) { cJSON_DeleteInit(x); return NULL; }
+                x->init = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "init"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJdec(const struct Jdec * x) {
+cJSON * cJSON_CreateInit(const struct Init * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "jdec", x->jdec);
+            cJSON_AddNumberToObject(j, "init", x->init);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJdec(const struct Jdec * x) {
+char * cJSON_PrintInit(const struct Init * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJdec(x);
+        cJSON * j = cJSON_CreateInit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9427,53 +8712,53 @@ char * cJSON_PrintJdec(const struct Jdec * x) {
     return s;
 }
 
-void cJSON_DeleteJdec(struct Jdec * x) {
+void cJSON_DeleteInit(struct Init * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jenc * cJSON_ParseJenc(const char * s) {
-    struct Jenc * x = NULL;
+struct Inout * cJSON_ParseInout(const char * s) {
+    struct Inout * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJencValue(j);
+            x = cJSON_GetInoutValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jenc * cJSON_GetJencValue(const cJSON * j) {
-    struct Jenc * x = NULL;
+struct Inout * cJSON_GetInoutValue(const cJSON * j) {
+    struct Inout * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jenc)))) {
-            memset(x, 0, sizeof(struct Jenc));
-            if (!cJSON_HasObjectItem(j, "jenc")) { cJSON_DeleteJenc(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jenc")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jenc"))) { cJSON_DeleteJenc(x); return NULL; }
-                x->jenc = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jenc"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Inout)))) {
+            memset(x, 0, sizeof(struct Inout));
+            if (!cJSON_HasObjectItem(j, "inout")) { cJSON_DeleteInout(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "inout")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "inout"))) { cJSON_DeleteInout(x); return NULL; }
+                x->inout = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "inout"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJenc(const struct Jenc * x) {
+cJSON * cJSON_CreateInout(const struct Inout * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "jenc", x->jenc);
+            cJSON_AddNumberToObject(j, "inout", x->inout);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJenc(const struct Jenc * x) {
+char * cJSON_PrintInout(const struct Inout * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJenc(x);
+        cJSON * j = cJSON_CreateInout(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9482,53 +8767,53 @@ char * cJSON_PrintJenc(const struct Jenc * x) {
     return s;
 }
 
-void cJSON_DeleteJenc(struct Jenc * x) {
+void cJSON_DeleteInout(struct Inout * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jpipe * cJSON_ParseJpipe(const char * s) {
-    struct Jpipe * x = NULL;
+struct Instanceof * cJSON_ParseInstanceof(const char * s) {
+    struct Instanceof * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJpipeValue(j);
+            x = cJSON_GetInstanceofValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jpipe * cJSON_GetJpipeValue(const cJSON * j) {
-    struct Jpipe * x = NULL;
+struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j) {
+    struct Instanceof * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jpipe)))) {
-            memset(x, 0, sizeof(struct Jpipe));
-            if (!cJSON_HasObjectItem(j, "jpipe")) { cJSON_DeleteJpipe(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jpipe")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jpipe"))) { cJSON_DeleteJpipe(x); return NULL; }
-                x->jpipe = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jpipe"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Instanceof)))) {
+            memset(x, 0, sizeof(struct Instanceof));
+            if (!cJSON_HasObjectItem(j, "instanceof")) { cJSON_DeleteInstanceof(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "instanceof")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "instanceof"))) { cJSON_DeleteInstanceof(x); return NULL; }
+                x->instanceof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "instanceof"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJpipe(const struct Jpipe * x) {
+cJSON * cJSON_CreateInstanceof(const struct Instanceof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "jpipe", x->jpipe);
+            cJSON_AddNumberToObject(j, "instanceof", x->instanceof);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJpipe(const struct Jpipe * x) {
+char * cJSON_PrintInstanceof(const struct Instanceof * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJpipe(x);
+        cJSON * j = cJSON_CreateInstanceof(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9537,53 +8822,53 @@ char * cJSON_PrintJpipe(const struct Jpipe * x) {
     return s;
 }
 
-void cJSON_DeleteJpipe(struct Jpipe * x) {
+void cJSON_DeleteInstanceof(struct Instanceof * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Json * cJSON_ParseJson(const char * s) {
-    struct Json * x = NULL;
+struct Interface * cJSON_ParseInterface(const char * s) {
+    struct Interface * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonValue(j);
+            x = cJSON_GetInterfaceValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Json * cJSON_GetJsonValue(const cJSON * j) {
-    struct Json * x = NULL;
+struct Interface * cJSON_GetInterfaceValue(const cJSON * j) {
+    struct Interface * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Json)))) {
-            memset(x, 0, sizeof(struct Json));
-            if (!cJSON_HasObjectItem(j, "json")) { cJSON_DeleteJson(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json"))) { cJSON_DeleteJson(x); return NULL; }
-                x->json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Interface)))) {
+            memset(x, 0, sizeof(struct Interface));
+            if (!cJSON_HasObjectItem(j, "interface")) { cJSON_DeleteInterface(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "interface")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "interface"))) { cJSON_DeleteInterface(x); return NULL; }
+                x->interface = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "interface"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJson(const struct Json * x) {
+cJSON * cJSON_CreateInterface(const struct Interface * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "json", x->json);
+            cJSON_AddNumberToObject(j, "interface", x->interface);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJson(const struct Json * x) {
+char * cJSON_PrintInterface(const struct Interface * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJson(x);
+        cJSON * j = cJSON_CreateInterface(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9592,56 +8877,53 @@ char * cJSON_PrintJson(const struct Json * x) {
     return s;
 }
 
-void cJSON_DeleteJson(struct Json * x) {
+void cJSON_DeleteInterface(struct Interface * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonAny * cJSON_ParseJsonAny(const char * s) {
-    struct JsonAny * x = NULL;
+struct Internal * cJSON_ParseInternal(const char * s) {
+    struct Internal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonAnyValue(j);
+            x = cJSON_GetInternalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonAny * cJSON_GetJsonAnyValue(const cJSON * j) {
-    struct JsonAny * x = NULL;
+struct Internal * cJSON_GetInternalValue(const cJSON * j) {
+    struct Internal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonAny)))) {
-            memset(x, 0, sizeof(struct JsonAny));
-            if (!cJSON_HasObjectItem(j, "JSONAny")) { cJSON_DeleteJsonAny(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONAny")) {
-                if (!cJSON_IsNull(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"))) { cJSON_DeleteJsonAny(x); return NULL; }
-                x->json_any = (void *)0xDEADBEEF;
-            }
-            else {
-                x->json_any = (void *)0xDEADBEEF;
+        if (NULL != (x = cJSON_malloc(sizeof(struct Internal)))) {
+            memset(x, 0, sizeof(struct Internal));
+            if (!cJSON_HasObjectItem(j, "internal")) { cJSON_DeleteInternal(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "internal")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "internal"))) { cJSON_DeleteInternal(x); return NULL; }
+                x->internal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "internal"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonAny(const struct JsonAny * x) {
+cJSON * cJSON_CreateInternal(const struct Internal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNullToObject(j, "JSONAny");
+            cJSON_AddNumberToObject(j, "internal", x->internal);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonAny(const struct JsonAny * x) {
+char * cJSON_PrintInternal(const struct Internal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonAny(x);
+        cJSON * j = cJSON_CreateInternal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9650,53 +8932,53 @@ char * cJSON_PrintJsonAny(const struct JsonAny * x) {
     return s;
 }
 
-void cJSON_DeleteJsonAny(struct JsonAny * x) {
+void cJSON_DeleteInternal(struct Internal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonCodingKey * cJSON_ParseJsonCodingKey(const char * s) {
-    struct JsonCodingKey * x = NULL;
+struct Is * cJSON_ParseIs(const char * s) {
+    struct Is * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonCodingKeyValue(j);
+            x = cJSON_GetIsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonCodingKey * cJSON_GetJsonCodingKeyValue(const cJSON * j) {
-    struct JsonCodingKey * x = NULL;
+struct Is * cJSON_GetIsValue(const cJSON * j) {
+    struct Is * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonCodingKey)))) {
-            memset(x, 0, sizeof(struct JsonCodingKey));
-            if (!cJSON_HasObjectItem(j, "JSONCodingKey")) { cJSON_DeleteJsonCodingKey(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONCodingKey")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"))) { cJSON_DeleteJsonCodingKey(x); return NULL; }
-                x->json_coding_key = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Is)))) {
+            memset(x, 0, sizeof(struct Is));
+            if (!cJSON_HasObjectItem(j, "is")) { cJSON_DeleteIs(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "is")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "is"))) { cJSON_DeleteIs(x); return NULL; }
+                x->is = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "is"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonCodingKey(const struct JsonCodingKey * x) {
+cJSON * cJSON_CreateIs(const struct Is * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JSONCodingKey", x->json_coding_key);
+            cJSON_AddNumberToObject(j, "is", x->is);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonCodingKey(const struct JsonCodingKey * x) {
+char * cJSON_PrintIs(const struct Is * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonCodingKey(x);
+        cJSON * j = cJSON_CreateIs(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9705,53 +8987,53 @@ char * cJSON_PrintJsonCodingKey(const struct JsonCodingKey * x) {
     return s;
 }
 
-void cJSON_DeleteJsonCodingKey(struct JsonCodingKey * x) {
+void cJSON_DeleteIs(struct Is * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonConverter * cJSON_ParseJsonConverter(const char * s) {
-    struct JsonConverter * x = NULL;
+struct IsoDateTimeOffsetConverter * cJSON_ParseIsoDateTimeOffsetConverter(const char * s) {
+    struct IsoDateTimeOffsetConverter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonConverterValue(j);
+            x = cJSON_GetIsoDateTimeOffsetConverterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonConverter * cJSON_GetJsonConverterValue(const cJSON * j) {
-    struct JsonConverter * x = NULL;
+struct IsoDateTimeOffsetConverter * cJSON_GetIsoDateTimeOffsetConverterValue(const cJSON * j) {
+    struct IsoDateTimeOffsetConverter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonConverter)))) {
-            memset(x, 0, sizeof(struct JsonConverter));
-            if (!cJSON_HasObjectItem(j, "json_converter")) { cJSON_DeleteJsonConverter(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json_converter")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_converter"))) { cJSON_DeleteJsonConverter(x); return NULL; }
-                x->json_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_converter"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct IsoDateTimeOffsetConverter)))) {
+            memset(x, 0, sizeof(struct IsoDateTimeOffsetConverter));
+            if (!cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) { cJSON_DeleteIsoDateTimeOffsetConverter(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"))) { cJSON_DeleteIsoDateTimeOffsetConverter(x); return NULL; }
+                x->iso_date_time_offset_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x) {
+cJSON * cJSON_CreateIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "json_converter", x->json_converter);
+            cJSON_AddNumberToObject(j, "IsoDateTimeOffsetConverter", x->iso_date_time_offset_converter);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
+char * cJSON_PrintIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonConverter(x);
+        cJSON * j = cJSON_CreateIsoDateTimeOffsetConverter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9760,53 +9042,53 @@ char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
     return s;
 }
 
-void cJSON_DeleteJsonConverter(struct JsonConverter * x) {
+void cJSON_DeleteIsoDateTimeOffsetConverter(struct IsoDateTimeOffsetConverter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonDecoder * cJSON_ParseJsonDecoder(const char * s) {
-    struct JsonDecoder * x = NULL;
+struct Iterable * cJSON_ParseIterable(const char * s) {
+    struct Iterable * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonDecoderValue(j);
+            x = cJSON_GetIterableValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonDecoder * cJSON_GetJsonDecoderValue(const cJSON * j) {
-    struct JsonDecoder * x = NULL;
+struct Iterable * cJSON_GetIterableValue(const cJSON * j) {
+    struct Iterable * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonDecoder)))) {
-            memset(x, 0, sizeof(struct JsonDecoder));
-            if (!cJSON_HasObjectItem(j, "JSONDecoder")) { cJSON_DeleteJsonDecoder(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONDecoder")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"))) { cJSON_DeleteJsonDecoder(x); return NULL; }
-                x->json_decoder = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"));
-            }
-        }
-    }
-    return x;
-}
+        if (NULL != (x = cJSON_malloc(sizeof(struct Iterable)))) {
+            memset(x, 0, sizeof(struct Iterable));
+            if (!cJSON_HasObjectItem(j, "iterable")) { cJSON_DeleteIterable(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "iterable")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "iterable"))) { cJSON_DeleteIterable(x); return NULL; }
+                x->iterable = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "iterable"));
+            }
+        }
+    }
+    return x;
+}
 
-cJSON * cJSON_CreateJsonDecoder(const struct JsonDecoder * x) {
+cJSON * cJSON_CreateIterable(const struct Iterable * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JSONDecoder", x->json_decoder);
+            cJSON_AddNumberToObject(j, "iterable", x->iterable);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonDecoder(const struct JsonDecoder * x) {
+char * cJSON_PrintIterable(const struct Iterable * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonDecoder(x);
+        cJSON * j = cJSON_CreateIterable(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9815,53 +9097,53 @@ char * cJSON_PrintJsonDecoder(const struct JsonDecoder * x) {
     return s;
 }
 
-void cJSON_DeleteJsonDecoder(struct JsonDecoder * x) {
+void cJSON_DeleteIterable(struct Iterable * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonEncoder * cJSON_ParseJsonEncoder(const char * s) {
-    struct JsonEncoder * x = NULL;
+struct Jdec * cJSON_ParseJdec(const char * s) {
+    struct Jdec * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonEncoderValue(j);
+            x = cJSON_GetJdecValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonEncoder * cJSON_GetJsonEncoderValue(const cJSON * j) {
-    struct JsonEncoder * x = NULL;
+struct Jdec * cJSON_GetJdecValue(const cJSON * j) {
+    struct Jdec * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonEncoder)))) {
-            memset(x, 0, sizeof(struct JsonEncoder));
-            if (!cJSON_HasObjectItem(j, "JSONEncoder")) { cJSON_DeleteJsonEncoder(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONEncoder")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"))) { cJSON_DeleteJsonEncoder(x); return NULL; }
-                x->json_encoder = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jdec)))) {
+            memset(x, 0, sizeof(struct Jdec));
+            if (!cJSON_HasObjectItem(j, "jdec")) { cJSON_DeleteJdec(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jdec")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jdec"))) { cJSON_DeleteJdec(x); return NULL; }
+                x->jdec = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jdec"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonEncoder(const struct JsonEncoder * x) {
+cJSON * cJSON_CreateJdec(const struct Jdec * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JSONEncoder", x->json_encoder);
+            cJSON_AddNumberToObject(j, "jdec", x->jdec);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonEncoder(const struct JsonEncoder * x) {
+char * cJSON_PrintJdec(const struct Jdec * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonEncoder(x);
+        cJSON * j = cJSON_CreateJdec(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9870,53 +9152,53 @@ char * cJSON_PrintJsonEncoder(const struct JsonEncoder * x) {
     return s;
 }
 
-void cJSON_DeleteJsonEncoder(struct JsonEncoder * x) {
+void cJSON_DeleteJdec(struct Jdec * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonException * cJSON_ParseJsonException(const char * s) {
-    struct JsonException * x = NULL;
+struct Jenc * cJSON_ParseJenc(const char * s) {
+    struct Jenc * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonExceptionValue(j);
+            x = cJSON_GetJencValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonException * cJSON_GetJsonExceptionValue(const cJSON * j) {
-    struct JsonException * x = NULL;
+struct Jenc * cJSON_GetJencValue(const cJSON * j) {
+    struct Jenc * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonException)))) {
-            memset(x, 0, sizeof(struct JsonException));
-            if (!cJSON_HasObjectItem(j, "JsonException")) { cJSON_DeleteJsonException(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonException")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonException"))) { cJSON_DeleteJsonException(x); return NULL; }
-                x->json_exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonException"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jenc)))) {
+            memset(x, 0, sizeof(struct Jenc));
+            if (!cJSON_HasObjectItem(j, "jenc")) { cJSON_DeleteJenc(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jenc")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jenc"))) { cJSON_DeleteJenc(x); return NULL; }
+                x->jenc = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jenc"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonException(const struct JsonException * x) {
+cJSON * cJSON_CreateJenc(const struct Jenc * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonException", x->json_exception);
+            cJSON_AddNumberToObject(j, "jenc", x->jenc);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonException(const struct JsonException * x) {
+char * cJSON_PrintJenc(const struct Jenc * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonException(x);
+        cJSON * j = cJSON_CreateJenc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9925,53 +9207,53 @@ char * cJSON_PrintJsonException(const struct JsonException * x) {
     return s;
 }
 
-void cJSON_DeleteJsonException(struct JsonException * x) {
+void cJSON_DeleteJenc(struct Jenc * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonGenerator * cJSON_ParseJsonGenerator(const char * s) {
-    struct JsonGenerator * x = NULL;
+struct Jpipe * cJSON_ParseJpipe(const char * s) {
+    struct Jpipe * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonGeneratorValue(j);
+            x = cJSON_GetJpipeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonGenerator * cJSON_GetJsonGeneratorValue(const cJSON * j) {
-    struct JsonGenerator * x = NULL;
+struct Jpipe * cJSON_GetJpipeValue(const cJSON * j) {
+    struct Jpipe * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonGenerator)))) {
-            memset(x, 0, sizeof(struct JsonGenerator));
-            if (!cJSON_HasObjectItem(j, "JsonGenerator")) { cJSON_DeleteJsonGenerator(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonGenerator")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"))) { cJSON_DeleteJsonGenerator(x); return NULL; }
-                x->json_generator = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jpipe)))) {
+            memset(x, 0, sizeof(struct Jpipe));
+            if (!cJSON_HasObjectItem(j, "jpipe")) { cJSON_DeleteJpipe(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jpipe")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "jpipe"))) { cJSON_DeleteJpipe(x); return NULL; }
+                x->jpipe = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "jpipe"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonGenerator(const struct JsonGenerator * x) {
+cJSON * cJSON_CreateJpipe(const struct Jpipe * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonGenerator", x->json_generator);
+            cJSON_AddNumberToObject(j, "jpipe", x->jpipe);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonGenerator(const struct JsonGenerator * x) {
+char * cJSON_PrintJpipe(const struct Jpipe * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonGenerator(x);
+        cJSON * j = cJSON_CreateJpipe(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -9980,53 +9262,53 @@ char * cJSON_PrintJsonGenerator(const struct JsonGenerator * x) {
     return s;
 }
 
-void cJSON_DeleteJsonGenerator(struct JsonGenerator * x) {
+void cJSON_DeleteJpipe(struct Jpipe * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonNode * cJSON_ParseJsonNode(const char * s) {
-    struct JsonNode * x = NULL;
+struct Json * cJSON_ParseJson(const char * s) {
+    struct Json * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonNodeValue(j);
+            x = cJSON_GetJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonNode * cJSON_GetJsonNodeValue(const cJSON * j) {
-    struct JsonNode * x = NULL;
+struct Json * cJSON_GetJsonValue(const cJSON * j) {
+    struct Json * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNode)))) {
-            memset(x, 0, sizeof(struct JsonNode));
-            if (!cJSON_HasObjectItem(j, "JsonNode")) { cJSON_DeleteJsonNode(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonNode")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"))) { cJSON_DeleteJsonNode(x); return NULL; }
-                x->json_node = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Json)))) {
+            memset(x, 0, sizeof(struct Json));
+            if (!cJSON_HasObjectItem(j, "json")) { cJSON_DeleteJson(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json"))) { cJSON_DeleteJson(x); return NULL; }
+                x->json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonNode(const struct JsonNode * x) {
+cJSON * cJSON_CreateJson(const struct Json * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonNode", x->json_node);
+            cJSON_AddNumberToObject(j, "json", x->json);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonNode(const struct JsonNode * x) {
+char * cJSON_PrintJson(const struct Json * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonNode(x);
+        cJSON * j = cJSON_CreateJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10035,53 +9317,56 @@ char * cJSON_PrintJsonNode(const struct JsonNode * x) {
     return s;
 }
 
-void cJSON_DeleteJsonNode(struct JsonNode * x) {
+void cJSON_DeleteJson(struct Json * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonNull * cJSON_ParseJsonNull(const char * s) {
-    struct JsonNull * x = NULL;
+struct JsonAny * cJSON_ParseJsonAny(const char * s) {
+    struct JsonAny * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonNullValue(j);
+            x = cJSON_GetJsonAnyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonNull * cJSON_GetJsonNullValue(const cJSON * j) {
-    struct JsonNull * x = NULL;
+struct JsonAny * cJSON_GetJsonAnyValue(const cJSON * j) {
+    struct JsonAny * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNull)))) {
-            memset(x, 0, sizeof(struct JsonNull));
-            if (!cJSON_HasObjectItem(j, "JSONNull")) { cJSON_DeleteJsonNull(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONNull")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"))) { cJSON_DeleteJsonNull(x); return NULL; }
-                x->json_null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonAny)))) {
+            memset(x, 0, sizeof(struct JsonAny));
+            if (!cJSON_HasObjectItem(j, "JSONAny")) { cJSON_DeleteJsonAny(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONAny")) {
+                if (!cJSON_IsNull(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"))) { cJSON_DeleteJsonAny(x); return NULL; }
+                x->json_any = (void *)0xDEADBEEF;
+            }
+            else {
+                x->json_any = (void *)0xDEADBEEF;
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonNull(const struct JsonNull * x) {
+cJSON * cJSON_CreateJsonAny(const struct JsonAny * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JSONNull", x->json_null);
+            cJSON_AddNullToObject(j, "JSONAny");
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonNull(const struct JsonNull * x) {
+char * cJSON_PrintJsonAny(const struct JsonAny * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonNull(x);
+        cJSON * j = cJSON_CreateJsonAny(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10090,53 +9375,53 @@ char * cJSON_PrintJsonNull(const struct JsonNull * x) {
     return s;
 }
 
-void cJSON_DeleteJsonNull(struct JsonNull * x) {
+void cJSON_DeleteJsonAny(struct JsonAny * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonParser * cJSON_ParseJsonParser(const char * s) {
-    struct JsonParser * x = NULL;
+struct JsonCodingKey * cJSON_ParseJsonCodingKey(const char * s) {
+    struct JsonCodingKey * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonParserValue(j);
+            x = cJSON_GetJsonCodingKeyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonParser * cJSON_GetJsonParserValue(const cJSON * j) {
-    struct JsonParser * x = NULL;
+struct JsonCodingKey * cJSON_GetJsonCodingKeyValue(const cJSON * j) {
+    struct JsonCodingKey * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonParser)))) {
-            memset(x, 0, sizeof(struct JsonParser));
-            if (!cJSON_HasObjectItem(j, "JsonParser")) { cJSON_DeleteJsonParser(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonParser")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"))) { cJSON_DeleteJsonParser(x); return NULL; }
-                x->json_parser = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonCodingKey)))) {
+            memset(x, 0, sizeof(struct JsonCodingKey));
+            if (!cJSON_HasObjectItem(j, "JSONCodingKey")) { cJSON_DeleteJsonCodingKey(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONCodingKey")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"))) { cJSON_DeleteJsonCodingKey(x); return NULL; }
+                x->json_coding_key = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonParser(const struct JsonParser * x) {
+cJSON * cJSON_CreateJsonCodingKey(const struct JsonCodingKey * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonParser", x->json_parser);
+            cJSON_AddNumberToObject(j, "JSONCodingKey", x->json_coding_key);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonParser(const struct JsonParser * x) {
+char * cJSON_PrintJsonCodingKey(const struct JsonCodingKey * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonParser(x);
+        cJSON * j = cJSON_CreateJsonCodingKey(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10145,53 +9430,53 @@ char * cJSON_PrintJsonParser(const struct JsonParser * x) {
     return s;
 }
 
-void cJSON_DeleteJsonParser(struct JsonParser * x) {
+void cJSON_DeleteJsonCodingKey(struct JsonCodingKey * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonReader * cJSON_ParseJsonReader(const char * s) {
-    struct JsonReader * x = NULL;
+struct JsonConverter * cJSON_ParseJsonConverter(const char * s) {
+    struct JsonConverter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonReaderValue(j);
+            x = cJSON_GetJsonConverterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonReader * cJSON_GetJsonReaderValue(const cJSON * j) {
-    struct JsonReader * x = NULL;
+struct JsonConverter * cJSON_GetJsonConverterValue(const cJSON * j) {
+    struct JsonConverter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonReader)))) {
-            memset(x, 0, sizeof(struct JsonReader));
-            if (!cJSON_HasObjectItem(j, "JsonReader")) { cJSON_DeleteJsonReader(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonReader")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"))) { cJSON_DeleteJsonReader(x); return NULL; }
-                x->json_reader = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonConverter)))) {
+            memset(x, 0, sizeof(struct JsonConverter));
+            if (!cJSON_HasObjectItem(j, "json_converter")) { cJSON_DeleteJsonConverter(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json_converter")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_converter"))) { cJSON_DeleteJsonConverter(x); return NULL; }
+                x->json_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_converter"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonReader(const struct JsonReader * x) {
+cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonReader", x->json_reader);
+            cJSON_AddNumberToObject(j, "json_converter", x->json_converter);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonReader(const struct JsonReader * x) {
+char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonReader(x);
+        cJSON * j = cJSON_CreateJsonConverter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10200,53 +9485,53 @@ char * cJSON_PrintJsonReader(const struct JsonReader * x) {
     return s;
 }
 
-void cJSON_DeleteJsonReader(struct JsonReader * x) {
+void cJSON_DeleteJsonConverter(struct JsonConverter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonSerializer * cJSON_ParseJsonSerializer(const char * s) {
-    struct JsonSerializer * x = NULL;
+struct JsonDecoder * cJSON_ParseJsonDecoder(const char * s) {
+    struct JsonDecoder * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonSerializerValue(j);
+            x = cJSON_GetJsonDecoderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonSerializer * cJSON_GetJsonSerializerValue(const cJSON * j) {
-    struct JsonSerializer * x = NULL;
+struct JsonDecoder * cJSON_GetJsonDecoderValue(const cJSON * j) {
+    struct JsonDecoder * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonSerializer)))) {
-            memset(x, 0, sizeof(struct JsonSerializer));
-            if (!cJSON_HasObjectItem(j, "json_serializer")) { cJSON_DeleteJsonSerializer(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json_serializer")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_serializer"))) { cJSON_DeleteJsonSerializer(x); return NULL; }
-                x->json_serializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_serializer"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonDecoder)))) {
+            memset(x, 0, sizeof(struct JsonDecoder));
+            if (!cJSON_HasObjectItem(j, "JSONDecoder")) { cJSON_DeleteJsonDecoder(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONDecoder")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"))) { cJSON_DeleteJsonDecoder(x); return NULL; }
+                x->json_decoder = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x) {
+cJSON * cJSON_CreateJsonDecoder(const struct JsonDecoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "json_serializer", x->json_serializer);
+            cJSON_AddNumberToObject(j, "JSONDecoder", x->json_decoder);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
+char * cJSON_PrintJsonDecoder(const struct JsonDecoder * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonSerializer(x);
+        cJSON * j = cJSON_CreateJsonDecoder(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10255,53 +9540,53 @@ char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
     return s;
 }
 
-void cJSON_DeleteJsonSerializer(struct JsonSerializer * x) {
+void cJSON_DeleteJsonDecoder(struct JsonDecoder * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonToken * cJSON_ParseJsonToken(const char * s) {
-    struct JsonToken * x = NULL;
+struct JsonEncoder * cJSON_ParseJsonEncoder(const char * s) {
+    struct JsonEncoder * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonTokenValue(j);
+            x = cJSON_GetJsonEncoderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonToken * cJSON_GetJsonTokenValue(const cJSON * j) {
-    struct JsonToken * x = NULL;
+struct JsonEncoder * cJSON_GetJsonEncoderValue(const cJSON * j) {
+    struct JsonEncoder * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonToken)))) {
-            memset(x, 0, sizeof(struct JsonToken));
-            if (!cJSON_HasObjectItem(j, "json_token")) { cJSON_DeleteJsonToken(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json_token")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_token"))) { cJSON_DeleteJsonToken(x); return NULL; }
-                x->json_token = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_token"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonEncoder)))) {
+            memset(x, 0, sizeof(struct JsonEncoder));
+            if (!cJSON_HasObjectItem(j, "JSONEncoder")) { cJSON_DeleteJsonEncoder(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONEncoder")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"))) { cJSON_DeleteJsonEncoder(x); return NULL; }
+                x->json_encoder = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonToken(const struct JsonToken * x) {
+cJSON * cJSON_CreateJsonEncoder(const struct JsonEncoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "json_token", x->json_token);
+            cJSON_AddNumberToObject(j, "JSONEncoder", x->json_encoder);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonToken(const struct JsonToken * x) {
+char * cJSON_PrintJsonEncoder(const struct JsonEncoder * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonToken(x);
+        cJSON * j = cJSON_CreateJsonEncoder(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10310,53 +9595,53 @@ char * cJSON_PrintJsonToken(const struct JsonToken * x) {
     return s;
 }
 
-void cJSON_DeleteJsonToken(struct JsonToken * x) {
+void cJSON_DeleteJsonEncoder(struct JsonEncoder * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonTokenType * cJSON_ParseJsonTokenType(const char * s) {
-    struct JsonTokenType * x = NULL;
+struct JsonException * cJSON_ParseJsonException(const char * s) {
+    struct JsonException * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonTokenTypeValue(j);
+            x = cJSON_GetJsonExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonTokenType * cJSON_GetJsonTokenTypeValue(const cJSON * j) {
-    struct JsonTokenType * x = NULL;
+struct JsonException * cJSON_GetJsonExceptionValue(const cJSON * j) {
+    struct JsonException * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonTokenType)))) {
-            memset(x, 0, sizeof(struct JsonTokenType));
-            if (!cJSON_HasObjectItem(j, "JsonTokenType")) { cJSON_DeleteJsonTokenType(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JsonTokenType")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"))) { cJSON_DeleteJsonTokenType(x); return NULL; }
-                x->json_token_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonException)))) {
+            memset(x, 0, sizeof(struct JsonException));
+            if (!cJSON_HasObjectItem(j, "JsonException")) { cJSON_DeleteJsonException(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonException")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonException"))) { cJSON_DeleteJsonException(x); return NULL; }
+                x->json_exception = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonException"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonTokenType(const struct JsonTokenType * x) {
+cJSON * cJSON_CreateJsonException(const struct JsonException * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "JsonTokenType", x->json_token_type);
+            cJSON_AddNumberToObject(j, "JsonException", x->json_exception);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonTokenType(const struct JsonTokenType * x) {
+char * cJSON_PrintJsonException(const struct JsonException * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonTokenType(x);
+        cJSON * j = cJSON_CreateJsonException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10365,53 +9650,53 @@ char * cJSON_PrintJsonTokenType(const struct JsonTokenType * x) {
     return s;
 }
 
-void cJSON_DeleteJsonTokenType(struct JsonTokenType * x) {
+void cJSON_DeleteJsonException(struct JsonException * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonWriter * cJSON_ParseJsonWriter(const char * s) {
-    struct JsonWriter * x = NULL;
+struct JsonGenerator * cJSON_ParseJsonGenerator(const char * s) {
+    struct JsonGenerator * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonWriterValue(j);
+            x = cJSON_GetJsonGeneratorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonWriter * cJSON_GetJsonWriterValue(const cJSON * j) {
-    struct JsonWriter * x = NULL;
+struct JsonGenerator * cJSON_GetJsonGeneratorValue(const cJSON * j) {
+    struct JsonGenerator * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonWriter)))) {
-            memset(x, 0, sizeof(struct JsonWriter));
-            if (!cJSON_HasObjectItem(j, "json_writer")) { cJSON_DeleteJsonWriter(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json_writer")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_writer"))) { cJSON_DeleteJsonWriter(x); return NULL; }
-                x->json_writer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_writer"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonGenerator)))) {
+            memset(x, 0, sizeof(struct JsonGenerator));
+            if (!cJSON_HasObjectItem(j, "JsonGenerator")) { cJSON_DeleteJsonGenerator(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonGenerator")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"))) { cJSON_DeleteJsonGenerator(x); return NULL; }
+                x->json_generator = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x) {
+cJSON * cJSON_CreateJsonGenerator(const struct JsonGenerator * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "json_writer", x->json_writer);
+            cJSON_AddNumberToObject(j, "JsonGenerator", x->json_generator);
         }
     }
     return j;
 }
 
-char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
+char * cJSON_PrintJsonGenerator(const struct JsonGenerator * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonWriter(x);
+        cJSON * j = cJSON_CreateJsonGenerator(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10420,53 +9705,53 @@ char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
     return s;
 }
 
-void cJSON_DeleteJsonWriter(struct JsonWriter * x) {
+void cJSON_DeleteJsonGenerator(struct JsonGenerator * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lambda * cJSON_ParseLambda(const char * s) {
-    struct Lambda * x = NULL;
+struct JsonNode * cJSON_ParseJsonNode(const char * s) {
+    struct JsonNode * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLambdaValue(j);
+            x = cJSON_GetJsonNodeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lambda * cJSON_GetLambdaValue(const cJSON * j) {
-    struct Lambda * x = NULL;
+struct JsonNode * cJSON_GetJsonNodeValue(const cJSON * j) {
+    struct JsonNode * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lambda)))) {
-            memset(x, 0, sizeof(struct Lambda));
-            if (!cJSON_HasObjectItem(j, "lambda")) { cJSON_DeleteLambda(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "lambda")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lambda"))) { cJSON_DeleteLambda(x); return NULL; }
-                x->lambda = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lambda"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNode)))) {
+            memset(x, 0, sizeof(struct JsonNode));
+            if (!cJSON_HasObjectItem(j, "JsonNode")) { cJSON_DeleteJsonNode(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonNode")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"))) { cJSON_DeleteJsonNode(x); return NULL; }
+                x->json_node = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLambda(const struct Lambda * x) {
+cJSON * cJSON_CreateJsonNode(const struct JsonNode * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "lambda", x->lambda);
+            cJSON_AddNumberToObject(j, "JsonNode", x->json_node);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLambda(const struct Lambda * x) {
+char * cJSON_PrintJsonNode(const struct JsonNode * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLambda(x);
+        cJSON * j = cJSON_CreateJsonNode(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10475,53 +9760,53 @@ char * cJSON_PrintLambda(const struct Lambda * x) {
     return s;
 }
 
-void cJSON_DeleteLambda(struct Lambda * x) {
+void cJSON_DeleteJsonNode(struct JsonNode * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lazy * cJSON_ParseLazy(const char * s) {
-    struct Lazy * x = NULL;
+struct JsonNull * cJSON_ParseJsonNull(const char * s) {
+    struct JsonNull * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLazyValue(j);
+            x = cJSON_GetJsonNullValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lazy * cJSON_GetLazyValue(const cJSON * j) {
-    struct Lazy * x = NULL;
+struct JsonNull * cJSON_GetJsonNullValue(const cJSON * j) {
+    struct JsonNull * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lazy)))) {
-            memset(x, 0, sizeof(struct Lazy));
-            if (!cJSON_HasObjectItem(j, "lazy")) { cJSON_DeleteLazy(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "lazy")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lazy"))) { cJSON_DeleteLazy(x); return NULL; }
-                x->lazy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lazy"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNull)))) {
+            memset(x, 0, sizeof(struct JsonNull));
+            if (!cJSON_HasObjectItem(j, "JSONNull")) { cJSON_DeleteJsonNull(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONNull")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"))) { cJSON_DeleteJsonNull(x); return NULL; }
+                x->json_null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLazy(const struct Lazy * x) {
+cJSON * cJSON_CreateJsonNull(const struct JsonNull * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "lazy", x->lazy);
+            cJSON_AddNumberToObject(j, "JSONNull", x->json_null);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLazy(const struct Lazy * x) {
+char * cJSON_PrintJsonNull(const struct JsonNull * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLazy(x);
+        cJSON * j = cJSON_CreateJsonNull(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10530,53 +9815,53 @@ char * cJSON_PrintLazy(const struct Lazy * x) {
     return s;
 }
 
-void cJSON_DeleteLazy(struct Lazy * x) {
+void cJSON_DeleteJsonNull(struct JsonNull * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Left * cJSON_ParseLeft(const char * s) {
-    struct Left * x = NULL;
+struct JsonParser * cJSON_ParseJsonParser(const char * s) {
+    struct JsonParser * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLeftValue(j);
+            x = cJSON_GetJsonParserValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Left * cJSON_GetLeftValue(const cJSON * j) {
-    struct Left * x = NULL;
+struct JsonParser * cJSON_GetJsonParserValue(const cJSON * j) {
+    struct JsonParser * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Left)))) {
-            memset(x, 0, sizeof(struct Left));
-            if (!cJSON_HasObjectItem(j, "left")) { cJSON_DeleteLeft(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "left")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "left"))) { cJSON_DeleteLeft(x); return NULL; }
-                x->left = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "left"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonParser)))) {
+            memset(x, 0, sizeof(struct JsonParser));
+            if (!cJSON_HasObjectItem(j, "JsonParser")) { cJSON_DeleteJsonParser(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonParser")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"))) { cJSON_DeleteJsonParser(x); return NULL; }
+                x->json_parser = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLeft(const struct Left * x) {
+cJSON * cJSON_CreateJsonParser(const struct JsonParser * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "left", x->left);
+            cJSON_AddNumberToObject(j, "JsonParser", x->json_parser);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLeft(const struct Left * x) {
+char * cJSON_PrintJsonParser(const struct JsonParser * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLeft(x);
+        cJSON * j = cJSON_CreateJsonParser(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10585,53 +9870,53 @@ char * cJSON_PrintLeft(const struct Left * x) {
     return s;
 }
 
-void cJSON_DeleteLeft(struct Left * x) {
+void cJSON_DeleteJsonParser(struct JsonParser * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Let * cJSON_ParseLet(const char * s) {
-    struct Let * x = NULL;
+struct JsonReader * cJSON_ParseJsonReader(const char * s) {
+    struct JsonReader * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLetValue(j);
+            x = cJSON_GetJsonReaderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Let * cJSON_GetLetValue(const cJSON * j) {
-    struct Let * x = NULL;
+struct JsonReader * cJSON_GetJsonReaderValue(const cJSON * j) {
+    struct JsonReader * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Let)))) {
-            memset(x, 0, sizeof(struct Let));
-            if (!cJSON_HasObjectItem(j, "let")) { cJSON_DeleteLet(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "let")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "let"))) { cJSON_DeleteLet(x); return NULL; }
-                x->let = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "let"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonReader)))) {
+            memset(x, 0, sizeof(struct JsonReader));
+            if (!cJSON_HasObjectItem(j, "JsonReader")) { cJSON_DeleteJsonReader(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonReader")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"))) { cJSON_DeleteJsonReader(x); return NULL; }
+                x->json_reader = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLet(const struct Let * x) {
+cJSON * cJSON_CreateJsonReader(const struct JsonReader * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "let", x->let);
+            cJSON_AddNumberToObject(j, "JsonReader", x->json_reader);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLet(const struct Let * x) {
+char * cJSON_PrintJsonReader(const struct JsonReader * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLet(x);
+        cJSON * j = cJSON_CreateJsonReader(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10640,53 +9925,53 @@ char * cJSON_PrintLet(const struct Let * x) {
     return s;
 }
 
-void cJSON_DeleteLet(struct Let * x) {
+void cJSON_DeleteJsonReader(struct JsonReader * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct List * cJSON_ParseList(const char * s) {
-    struct List * x = NULL;
+struct JsonSerializer * cJSON_ParseJsonSerializer(const char * s) {
+    struct JsonSerializer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetListValue(j);
+            x = cJSON_GetJsonSerializerValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct List * cJSON_GetListValue(const cJSON * j) {
-    struct List * x = NULL;
+struct JsonSerializer * cJSON_GetJsonSerializerValue(const cJSON * j) {
+    struct JsonSerializer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct List)))) {
-            memset(x, 0, sizeof(struct List));
-            if (!cJSON_HasObjectItem(j, "list")) { cJSON_DeleteList(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "list")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "list"))) { cJSON_DeleteList(x); return NULL; }
-                x->list = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "list"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonSerializer)))) {
+            memset(x, 0, sizeof(struct JsonSerializer));
+            if (!cJSON_HasObjectItem(j, "json_serializer")) { cJSON_DeleteJsonSerializer(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json_serializer")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_serializer"))) { cJSON_DeleteJsonSerializer(x); return NULL; }
+                x->json_serializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_serializer"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateList(const struct List * x) {
+cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "list", x->list);
+            cJSON_AddNumberToObject(j, "json_serializer", x->json_serializer);
         }
     }
     return j;
 }
 
-char * cJSON_PrintList(const struct List * x) {
+char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateList(x);
+        cJSON * j = cJSON_CreateJsonSerializer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10695,53 +9980,53 @@ char * cJSON_PrintList(const struct List * x) {
     return s;
 }
 
-void cJSON_DeleteList(struct List * x) {
+void cJSON_DeleteJsonSerializer(struct JsonSerializer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lock * cJSON_ParseLock(const char * s) {
-    struct Lock * x = NULL;
+struct JsonToken * cJSON_ParseJsonToken(const char * s) {
+    struct JsonToken * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLockValue(j);
+            x = cJSON_GetJsonTokenValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lock * cJSON_GetLockValue(const cJSON * j) {
-    struct Lock * x = NULL;
+struct JsonToken * cJSON_GetJsonTokenValue(const cJSON * j) {
+    struct JsonToken * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lock)))) {
-            memset(x, 0, sizeof(struct Lock));
-            if (!cJSON_HasObjectItem(j, "lock")) { cJSON_DeleteLock(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "lock")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lock"))) { cJSON_DeleteLock(x); return NULL; }
-                x->lock = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lock"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonToken)))) {
+            memset(x, 0, sizeof(struct JsonToken));
+            if (!cJSON_HasObjectItem(j, "json_token")) { cJSON_DeleteJsonToken(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json_token")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_token"))) { cJSON_DeleteJsonToken(x); return NULL; }
+                x->json_token = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_token"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLock(const struct Lock * x) {
+cJSON * cJSON_CreateJsonToken(const struct JsonToken * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "lock", x->lock);
+            cJSON_AddNumberToObject(j, "json_token", x->json_token);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLock(const struct Lock * x) {
+char * cJSON_PrintJsonToken(const struct JsonToken * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLock(x);
+        cJSON * j = cJSON_CreateJsonToken(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10750,53 +10035,53 @@ char * cJSON_PrintLock(const struct Lock * x) {
     return s;
 }
 
-void cJSON_DeleteLock(struct Lock * x) {
+void cJSON_DeleteJsonToken(struct JsonToken * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Map * cJSON_ParseMap(const char * s) {
-    struct Map * x = NULL;
+struct JsonTokenType * cJSON_ParseJsonTokenType(const char * s) {
+    struct JsonTokenType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMapValue(j);
+            x = cJSON_GetJsonTokenTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Map * cJSON_GetMapValue(const cJSON * j) {
-    struct Map * x = NULL;
+struct JsonTokenType * cJSON_GetJsonTokenTypeValue(const cJSON * j) {
+    struct JsonTokenType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Map)))) {
-            memset(x, 0, sizeof(struct Map));
-            if (!cJSON_HasObjectItem(j, "map")) { cJSON_DeleteMap(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "map")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "map"))) { cJSON_DeleteMap(x); return NULL; }
-                x->map = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "map"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonTokenType)))) {
+            memset(x, 0, sizeof(struct JsonTokenType));
+            if (!cJSON_HasObjectItem(j, "JsonTokenType")) { cJSON_DeleteJsonTokenType(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JsonTokenType")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"))) { cJSON_DeleteJsonTokenType(x); return NULL; }
+                x->json_token_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMap(const struct Map * x) {
+cJSON * cJSON_CreateJsonTokenType(const struct JsonTokenType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "map", x->map);
+            cJSON_AddNumberToObject(j, "JsonTokenType", x->json_token_type);
         }
     }
     return j;
 }
 
-char * cJSON_PrintMap(const struct Map * x) {
+char * cJSON_PrintJsonTokenType(const struct JsonTokenType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMap(x);
+        cJSON * j = cJSON_CreateJsonTokenType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10805,53 +10090,53 @@ char * cJSON_PrintMap(const struct Map * x) {
     return s;
 }
 
-void cJSON_DeleteMap(struct Map * x) {
+void cJSON_DeleteJsonTokenType(struct JsonTokenType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct MetadataPropertyHandling * cJSON_ParseMetadataPropertyHandling(const char * s) {
-    struct MetadataPropertyHandling * x = NULL;
+struct JsonWriter * cJSON_ParseJsonWriter(const char * s) {
+    struct JsonWriter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMetadataPropertyHandlingValue(j);
+            x = cJSON_GetJsonWriterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct MetadataPropertyHandling * cJSON_GetMetadataPropertyHandlingValue(const cJSON * j) {
-    struct MetadataPropertyHandling * x = NULL;
+struct JsonWriter * cJSON_GetJsonWriterValue(const cJSON * j) {
+    struct JsonWriter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct MetadataPropertyHandling)))) {
-            memset(x, 0, sizeof(struct MetadataPropertyHandling));
-            if (!cJSON_HasObjectItem(j, "metadata_property_handling")) { cJSON_DeleteMetadataPropertyHandling(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "metadata_property_handling")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "metadata_property_handling"))) { cJSON_DeleteMetadataPropertyHandling(x); return NULL; }
-                x->metadata_property_handling = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "metadata_property_handling"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonWriter)))) {
+            memset(x, 0, sizeof(struct JsonWriter));
+            if (!cJSON_HasObjectItem(j, "json_writer")) { cJSON_DeleteJsonWriter(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json_writer")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "json_writer"))) { cJSON_DeleteJsonWriter(x); return NULL; }
+                x->json_writer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "json_writer"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
+cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "metadata_property_handling", x->metadata_property_handling);
+            cJSON_AddNumberToObject(j, "json_writer", x->json_writer);
         }
     }
     return j;
 }
 
-char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
+char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMetadataPropertyHandling(x);
+        cJSON * j = cJSON_CreateJsonWriter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10860,53 +10145,53 @@ char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling
     return s;
 }
 
-void cJSON_DeleteMetadataPropertyHandling(struct MetadataPropertyHandling * x) {
+void cJSON_DeleteJsonWriter(struct JsonWriter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Mutating * cJSON_ParseMutating(const char * s) {
-    struct Mutating * x = NULL;
+struct Lambda * cJSON_ParseLambda(const char * s) {
+    struct Lambda * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMutatingValue(j);
+            x = cJSON_GetLambdaValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Mutating * cJSON_GetMutatingValue(const cJSON * j) {
-    struct Mutating * x = NULL;
+struct Lambda * cJSON_GetLambdaValue(const cJSON * j) {
+    struct Lambda * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Mutating)))) {
-            memset(x, 0, sizeof(struct Mutating));
-            if (!cJSON_HasObjectItem(j, "mutating")) { cJSON_DeleteMutating(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "mutating")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "mutating"))) { cJSON_DeleteMutating(x); return NULL; }
-                x->mutating = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "mutating"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lambda)))) {
+            memset(x, 0, sizeof(struct Lambda));
+            if (!cJSON_HasObjectItem(j, "lambda")) { cJSON_DeleteLambda(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "lambda")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lambda"))) { cJSON_DeleteLambda(x); return NULL; }
+                x->lambda = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lambda"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMutating(const struct Mutating * x) {
+cJSON * cJSON_CreateLambda(const struct Lambda * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "mutating", x->mutating);
+            cJSON_AddNumberToObject(j, "lambda", x->lambda);
         }
     }
     return j;
 }
 
-char * cJSON_PrintMutating(const struct Mutating * x) {
+char * cJSON_PrintLambda(const struct Lambda * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMutating(x);
+        cJSON * j = cJSON_CreateLambda(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10915,53 +10200,53 @@ char * cJSON_PrintMutating(const struct Mutating * x) {
     return s;
 }
 
-void cJSON_DeleteMutating(struct Mutating * x) {
+void cJSON_DeleteLambda(struct Lambda * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Native * cJSON_ParseNative(const char * s) {
-    struct Native * x = NULL;
+struct Lazy * cJSON_ParseLazy(const char * s) {
+    struct Lazy * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNativeValue(j);
+            x = cJSON_GetLazyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Native * cJSON_GetNativeValue(const cJSON * j) {
-    struct Native * x = NULL;
+struct Lazy * cJSON_GetLazyValue(const cJSON * j) {
+    struct Lazy * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Native)))) {
-            memset(x, 0, sizeof(struct Native));
-            if (!cJSON_HasObjectItem(j, "native")) { cJSON_DeleteNative(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "native")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "native"))) { cJSON_DeleteNative(x); return NULL; }
-                x->native = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "native"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lazy)))) {
+            memset(x, 0, sizeof(struct Lazy));
+            if (!cJSON_HasObjectItem(j, "lazy")) { cJSON_DeleteLazy(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "lazy")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lazy"))) { cJSON_DeleteLazy(x); return NULL; }
+                x->lazy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lazy"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNative(const struct Native * x) {
+cJSON * cJSON_CreateLazy(const struct Lazy * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "native", x->native);
+            cJSON_AddNumberToObject(j, "lazy", x->lazy);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNative(const struct Native * x) {
+char * cJSON_PrintLazy(const struct Lazy * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNative(x);
+        cJSON * j = cJSON_CreateLazy(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -10970,53 +10255,53 @@ char * cJSON_PrintNative(const struct Native * x) {
     return s;
 }
 
-void cJSON_DeleteNative(struct Native * x) {
+void cJSON_DeleteLazy(struct Lazy * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Newtonsoft * cJSON_ParseNewtonsoft(const char * s) {
-    struct Newtonsoft * x = NULL;
+struct Left * cJSON_ParseLeft(const char * s) {
+    struct Left * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNewtonsoftValue(j);
+            x = cJSON_GetLeftValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Newtonsoft * cJSON_GetNewtonsoftValue(const cJSON * j) {
-    struct Newtonsoft * x = NULL;
+struct Left * cJSON_GetLeftValue(const cJSON * j) {
+    struct Left * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Newtonsoft)))) {
-            memset(x, 0, sizeof(struct Newtonsoft));
-            if (!cJSON_HasObjectItem(j, "newtonsoft")) { cJSON_DeleteNewtonsoft(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "newtonsoft")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "newtonsoft"))) { cJSON_DeleteNewtonsoft(x); return NULL; }
-                x->newtonsoft = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "newtonsoft"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Left)))) {
+            memset(x, 0, sizeof(struct Left));
+            if (!cJSON_HasObjectItem(j, "left")) { cJSON_DeleteLeft(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "left")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "left"))) { cJSON_DeleteLeft(x); return NULL; }
+                x->left = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "left"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNewtonsoft(const struct Newtonsoft * x) {
+cJSON * cJSON_CreateLeft(const struct Left * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "newtonsoft", x->newtonsoft);
+            cJSON_AddNumberToObject(j, "left", x->left);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
+char * cJSON_PrintLeft(const struct Left * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNewtonsoft(x);
+        cJSON * j = cJSON_CreateLeft(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11025,53 +10310,53 @@ char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
     return s;
 }
 
-void cJSON_DeleteNewtonsoft(struct Newtonsoft * x) {
+void cJSON_DeleteLeft(struct Left * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nil * cJSON_ParseNil(const char * s) {
-    struct Nil * x = NULL;
+struct Let * cJSON_ParseLet(const char * s) {
+    struct Let * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNilValue(j);
+            x = cJSON_GetLetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nil * cJSON_GetNilValue(const cJSON * j) {
-    struct Nil * x = NULL;
+struct Let * cJSON_GetLetValue(const cJSON * j) {
+    struct Let * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nil)))) {
-            memset(x, 0, sizeof(struct Nil));
-            if (!cJSON_HasObjectItem(j, "nil")) { cJSON_DeleteNil(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "nil")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nil"))) { cJSON_DeleteNil(x); return NULL; }
-                x->nil = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nil"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Let)))) {
+            memset(x, 0, sizeof(struct Let));
+            if (!cJSON_HasObjectItem(j, "let")) { cJSON_DeleteLet(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "let")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "let"))) { cJSON_DeleteLet(x); return NULL; }
+                x->let = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "let"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNil(const struct Nil * x) {
+cJSON * cJSON_CreateLet(const struct Let * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "nil", x->nil);
+            cJSON_AddNumberToObject(j, "let", x->let);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNil(const struct Nil * x) {
+char * cJSON_PrintLet(const struct Let * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNil(x);
+        cJSON * j = cJSON_CreateLet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11080,53 +10365,53 @@ char * cJSON_PrintNil(const struct Nil * x) {
     return s;
 }
 
-void cJSON_DeleteNil(struct Nil * x) {
+void cJSON_DeleteLet(struct Let * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct No * cJSON_ParseNo(const char * s) {
-    struct No * x = NULL;
+struct List * cJSON_ParseList(const char * s) {
+    struct List * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoValue(j);
+            x = cJSON_GetListValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct No * cJSON_GetNoValue(const cJSON * j) {
-    struct No * x = NULL;
+struct List * cJSON_GetListValue(const cJSON * j) {
+    struct List * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct No)))) {
-            memset(x, 0, sizeof(struct No));
-            if (!cJSON_HasObjectItem(j, "NO")) { cJSON_DeleteNo(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "NO")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NO"))) { cJSON_DeleteNo(x); return NULL; }
-                x->no = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NO"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct List)))) {
+            memset(x, 0, sizeof(struct List));
+            if (!cJSON_HasObjectItem(j, "list")) { cJSON_DeleteList(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "list")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "list"))) { cJSON_DeleteList(x); return NULL; }
+                x->list = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "list"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNo(const struct No * x) {
+cJSON * cJSON_CreateList(const struct List * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "NO", x->no);
+            cJSON_AddNumberToObject(j, "list", x->list);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNo(const struct No * x) {
+char * cJSON_PrintList(const struct List * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNo(x);
+        cJSON * j = cJSON_CreateList(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11135,53 +10420,53 @@ char * cJSON_PrintNo(const struct No * x) {
     return s;
 }
 
-void cJSON_DeleteNo(struct No * x) {
+void cJSON_DeleteList(struct List * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NoSuchMethod * cJSON_ParseNoSuchMethod(const char * s) {
-    struct NoSuchMethod * x = NULL;
+struct Lock * cJSON_ParseLock(const char * s) {
+    struct Lock * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoSuchMethodValue(j);
+            x = cJSON_GetLockValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NoSuchMethod * cJSON_GetNoSuchMethodValue(const cJSON * j) {
-    struct NoSuchMethod * x = NULL;
+struct Lock * cJSON_GetLockValue(const cJSON * j) {
+    struct Lock * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NoSuchMethod)))) {
-            memset(x, 0, sizeof(struct NoSuchMethod));
-            if (!cJSON_HasObjectItem(j, "noSuchMethod")) { cJSON_DeleteNoSuchMethod(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "noSuchMethod")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"))) { cJSON_DeleteNoSuchMethod(x); return NULL; }
-                x->no_such_method = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lock)))) {
+            memset(x, 0, sizeof(struct Lock));
+            if (!cJSON_HasObjectItem(j, "lock")) { cJSON_DeleteLock(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "lock")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "lock"))) { cJSON_DeleteLock(x); return NULL; }
+                x->lock = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "lock"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNoSuchMethod(const struct NoSuchMethod * x) {
+cJSON * cJSON_CreateLock(const struct Lock * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "noSuchMethod", x->no_such_method);
+            cJSON_AddNumberToObject(j, "lock", x->lock);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNoSuchMethod(const struct NoSuchMethod * x) {
+char * cJSON_PrintLock(const struct Lock * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNoSuchMethod(x);
+        cJSON * j = cJSON_CreateLock(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11190,53 +10475,53 @@ char * cJSON_PrintNoSuchMethod(const struct NoSuchMethod * x) {
     return s;
 }
 
-void cJSON_DeleteNoSuchMethod(struct NoSuchMethod * x) {
+void cJSON_DeleteLock(struct Lock * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonatomic * cJSON_ParseNonatomic(const char * s) {
-    struct Nonatomic * x = NULL;
+struct Map * cJSON_ParseMap(const char * s) {
+    struct Map * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonatomicValue(j);
+            x = cJSON_GetMapValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonatomic * cJSON_GetNonatomicValue(const cJSON * j) {
-    struct Nonatomic * x = NULL;
+struct Map * cJSON_GetMapValue(const cJSON * j) {
+    struct Map * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonatomic)))) {
-            memset(x, 0, sizeof(struct Nonatomic));
-            if (!cJSON_HasObjectItem(j, "nonatomic")) { cJSON_DeleteNonatomic(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "nonatomic")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonatomic"))) { cJSON_DeleteNonatomic(x); return NULL; }
-                x->nonatomic = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonatomic"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Map)))) {
+            memset(x, 0, sizeof(struct Map));
+            if (!cJSON_HasObjectItem(j, "map")) { cJSON_DeleteMap(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "map")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "map"))) { cJSON_DeleteMap(x); return NULL; }
+                x->map = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "map"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x) {
+cJSON * cJSON_CreateMap(const struct Map * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "nonatomic", x->nonatomic);
+            cJSON_AddNumberToObject(j, "map", x->map);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
+char * cJSON_PrintMap(const struct Map * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonatomic(x);
+        cJSON * j = cJSON_CreateMap(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11245,53 +10530,53 @@ char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
     return s;
 }
 
-void cJSON_DeleteNonatomic(struct Nonatomic * x) {
+void cJSON_DeleteMap(struct Map * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct None * cJSON_ParseNone(const char * s) {
-    struct None * x = NULL;
+struct MetadataPropertyHandling * cJSON_ParseMetadataPropertyHandling(const char * s) {
+    struct MetadataPropertyHandling * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoneValue(j);
+            x = cJSON_GetMetadataPropertyHandlingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct None * cJSON_GetNoneValue(const cJSON * j) {
-    struct None * x = NULL;
+struct MetadataPropertyHandling * cJSON_GetMetadataPropertyHandlingValue(const cJSON * j) {
+    struct MetadataPropertyHandling * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct None)))) {
-            memset(x, 0, sizeof(struct None));
-            if (!cJSON_HasObjectItem(j, "None")) { cJSON_DeleteNone(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "None")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "None"))) { cJSON_DeleteNone(x); return NULL; }
-                x->none = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "None"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct MetadataPropertyHandling)))) {
+            memset(x, 0, sizeof(struct MetadataPropertyHandling));
+            if (!cJSON_HasObjectItem(j, "metadata_property_handling")) { cJSON_DeleteMetadataPropertyHandling(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "metadata_property_handling")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "metadata_property_handling"))) { cJSON_DeleteMetadataPropertyHandling(x); return NULL; }
+                x->metadata_property_handling = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "metadata_property_handling"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNone(const struct None * x) {
+cJSON * cJSON_CreateMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "None", x->none);
+            cJSON_AddNumberToObject(j, "metadata_property_handling", x->metadata_property_handling);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNone(const struct None * x) {
+char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNone(x);
+        cJSON * j = cJSON_CreateMetadataPropertyHandling(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11300,53 +10585,53 @@ char * cJSON_PrintNone(const struct None * x) {
     return s;
 }
 
-void cJSON_DeleteNone(struct None * x) {
+void cJSON_DeleteMetadataPropertyHandling(struct MetadataPropertyHandling * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonlocal * cJSON_ParseNonlocal(const char * s) {
-    struct Nonlocal * x = NULL;
+struct Mutating * cJSON_ParseMutating(const char * s) {
+    struct Mutating * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonlocalValue(j);
+            x = cJSON_GetMutatingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonlocal * cJSON_GetNonlocalValue(const cJSON * j) {
-    struct Nonlocal * x = NULL;
+struct Mutating * cJSON_GetMutatingValue(const cJSON * j) {
+    struct Mutating * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonlocal)))) {
-            memset(x, 0, sizeof(struct Nonlocal));
-            if (!cJSON_HasObjectItem(j, "nonlocal")) { cJSON_DeleteNonlocal(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "nonlocal")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonlocal"))) { cJSON_DeleteNonlocal(x); return NULL; }
-                x->nonlocal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonlocal"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Mutating)))) {
+            memset(x, 0, sizeof(struct Mutating));
+            if (!cJSON_HasObjectItem(j, "mutating")) { cJSON_DeleteMutating(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "mutating")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "mutating"))) { cJSON_DeleteMutating(x); return NULL; }
+                x->mutating = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "mutating"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonlocal(const struct Nonlocal * x) {
+cJSON * cJSON_CreateMutating(const struct Mutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "nonlocal", x->nonlocal);
+            cJSON_AddNumberToObject(j, "mutating", x->mutating);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
+char * cJSON_PrintMutating(const struct Mutating * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonlocal(x);
+        cJSON * j = cJSON_CreateMutating(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11355,53 +10640,53 @@ char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
     return s;
 }
 
-void cJSON_DeleteNonlocal(struct Nonlocal * x) {
+void cJSON_DeleteMutating(struct Mutating * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonmutating * cJSON_ParseNonmutating(const char * s) {
-    struct Nonmutating * x = NULL;
+struct Native * cJSON_ParseNative(const char * s) {
+    struct Native * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonmutatingValue(j);
+            x = cJSON_GetNativeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonmutating * cJSON_GetNonmutatingValue(const cJSON * j) {
-    struct Nonmutating * x = NULL;
+struct Native * cJSON_GetNativeValue(const cJSON * j) {
+    struct Native * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonmutating)))) {
-            memset(x, 0, sizeof(struct Nonmutating));
-            if (!cJSON_HasObjectItem(j, "nonmutating")) { cJSON_DeleteNonmutating(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "nonmutating")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonmutating"))) { cJSON_DeleteNonmutating(x); return NULL; }
-                x->nonmutating = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonmutating"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Native)))) {
+            memset(x, 0, sizeof(struct Native));
+            if (!cJSON_HasObjectItem(j, "native")) { cJSON_DeleteNative(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "native")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "native"))) { cJSON_DeleteNative(x); return NULL; }
+                x->native = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "native"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x) {
+cJSON * cJSON_CreateNative(const struct Native * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "nonmutating", x->nonmutating);
+            cJSON_AddNumberToObject(j, "native", x->native);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
+char * cJSON_PrintNative(const struct Native * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonmutating(x);
+        cJSON * j = cJSON_CreateNative(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11410,53 +10695,53 @@ char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
     return s;
 }
 
-void cJSON_DeleteNonmutating(struct Nonmutating * x) {
+void cJSON_DeleteNative(struct Native * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NsError * cJSON_ParseNsError(const char * s) {
-    struct NsError * x = NULL;
+struct Newtonsoft * cJSON_ParseNewtonsoft(const char * s) {
+    struct Newtonsoft * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNsErrorValue(j);
+            x = cJSON_GetNewtonsoftValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NsError * cJSON_GetNsErrorValue(const cJSON * j) {
-    struct NsError * x = NULL;
+struct Newtonsoft * cJSON_GetNewtonsoftValue(const cJSON * j) {
+    struct Newtonsoft * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NsError)))) {
-            memset(x, 0, sizeof(struct NsError));
-            if (!cJSON_HasObjectItem(j, "NSError")) { cJSON_DeleteNsError(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "NSError")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NSError"))) { cJSON_DeleteNsError(x); return NULL; }
-                x->ns_error = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NSError"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Newtonsoft)))) {
+            memset(x, 0, sizeof(struct Newtonsoft));
+            if (!cJSON_HasObjectItem(j, "newtonsoft")) { cJSON_DeleteNewtonsoft(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "newtonsoft")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "newtonsoft"))) { cJSON_DeleteNewtonsoft(x); return NULL; }
+                x->newtonsoft = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "newtonsoft"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNsError(const struct NsError * x) {
+cJSON * cJSON_CreateNewtonsoft(const struct Newtonsoft * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "NSError", x->ns_error);
+            cJSON_AddNumberToObject(j, "newtonsoft", x->newtonsoft);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNsError(const struct NsError * x) {
+char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNsError(x);
+        cJSON * j = cJSON_CreateNewtonsoft(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11465,53 +10750,53 @@ char * cJSON_PrintNsError(const struct NsError * x) {
     return s;
 }
 
-void cJSON_DeleteNsError(struct NsError * x) {
+void cJSON_DeleteNewtonsoft(struct Newtonsoft * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NsString * cJSON_ParseNsString(const char * s) {
-    struct NsString * x = NULL;
+struct Nil * cJSON_ParseNil(const char * s) {
+    struct Nil * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNsStringValue(j);
+            x = cJSON_GetNilValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NsString * cJSON_GetNsStringValue(const cJSON * j) {
-    struct NsString * x = NULL;
+struct Nil * cJSON_GetNilValue(const cJSON * j) {
+    struct Nil * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NsString)))) {
-            memset(x, 0, sizeof(struct NsString));
-            if (!cJSON_HasObjectItem(j, "NSString")) { cJSON_DeleteNsString(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "NSString")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NSString"))) { cJSON_DeleteNsString(x); return NULL; }
-                x->ns_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NSString"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nil)))) {
+            memset(x, 0, sizeof(struct Nil));
+            if (!cJSON_HasObjectItem(j, "nil")) { cJSON_DeleteNil(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "nil")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nil"))) { cJSON_DeleteNil(x); return NULL; }
+                x->nil = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nil"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNsString(const struct NsString * x) {
+cJSON * cJSON_CreateNil(const struct Nil * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "NSString", x->ns_string);
+            cJSON_AddNumberToObject(j, "nil", x->nil);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNsString(const struct NsString * x) {
+char * cJSON_PrintNil(const struct Nil * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNsString(x);
+        cJSON * j = cJSON_CreateNil(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11520,53 +10805,53 @@ char * cJSON_PrintNsString(const struct NsString * x) {
     return s;
 }
 
-void cJSON_DeleteNsString(struct NsString * x) {
+void cJSON_DeleteNil(struct Nil * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NullClass * cJSON_ParseNullClass(const char * s) {
-    struct NullClass * x = NULL;
+struct No * cJSON_ParseNo(const char * s) {
+    struct No * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNullClassValue(j);
+            x = cJSON_GetNoValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NullClass * cJSON_GetNullClassValue(const cJSON * j) {
-    struct NullClass * x = NULL;
+struct No * cJSON_GetNoValue(const cJSON * j) {
+    struct No * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NullClass)))) {
-            memset(x, 0, sizeof(struct NullClass));
-            if (!cJSON_HasObjectItem(j, "NULL")) { cJSON_DeleteNullClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "NULL")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NULL"))) { cJSON_DeleteNullClass(x); return NULL; }
-                x->null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NULL"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct No)))) {
+            memset(x, 0, sizeof(struct No));
+            if (!cJSON_HasObjectItem(j, "NO")) { cJSON_DeleteNo(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "NO")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NO"))) { cJSON_DeleteNo(x); return NULL; }
+                x->no = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NO"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNullClass(const struct NullClass * x) {
+cJSON * cJSON_CreateNo(const struct No * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "NULL", x->null);
+            cJSON_AddNumberToObject(j, "NO", x->no);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNullClass(const struct NullClass * x) {
+char * cJSON_PrintNo(const struct No * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNullClass(x);
+        cJSON * j = cJSON_CreateNo(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11575,53 +10860,53 @@ char * cJSON_PrintNullClass(const struct NullClass * x) {
     return s;
 }
 
-void cJSON_DeleteNullClass(struct NullClass * x) {
+void cJSON_DeleteNo(struct No * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NumberClass * cJSON_ParseNumberClass(const char * s) {
-    struct NumberClass * x = NULL;
+struct NoSuchMethod * cJSON_ParseNoSuchMethod(const char * s) {
+    struct NoSuchMethod * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNumberClassValue(j);
+            x = cJSON_GetNoSuchMethodValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j) {
-    struct NumberClass * x = NULL;
+struct NoSuchMethod * cJSON_GetNoSuchMethodValue(const cJSON * j) {
+    struct NoSuchMethod * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NumberClass)))) {
-            memset(x, 0, sizeof(struct NumberClass));
-            if (!cJSON_HasObjectItem(j, "number")) { cJSON_DeleteNumberClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "number")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "number"))) { cJSON_DeleteNumberClass(x); return NULL; }
-                x->number = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "number"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NoSuchMethod)))) {
+            memset(x, 0, sizeof(struct NoSuchMethod));
+            if (!cJSON_HasObjectItem(j, "noSuchMethod")) { cJSON_DeleteNoSuchMethod(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "noSuchMethod")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"))) { cJSON_DeleteNoSuchMethod(x); return NULL; }
+                x->no_such_method = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNumberClass(const struct NumberClass * x) {
+cJSON * cJSON_CreateNoSuchMethod(const struct NoSuchMethod * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "number", x->number);
+            cJSON_AddNumberToObject(j, "noSuchMethod", x->no_such_method);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNumberClass(const struct NumberClass * x) {
+char * cJSON_PrintNoSuchMethod(const struct NoSuchMethod * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNumberClass(x);
+        cJSON * j = cJSON_CreateNoSuchMethod(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11630,53 +10915,53 @@ char * cJSON_PrintNumberClass(const struct NumberClass * x) {
     return s;
 }
 
-void cJSON_DeleteNumberClass(struct NumberClass * x) {
+void cJSON_DeleteNoSuchMethod(struct NoSuchMethod * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Long * cJSON_ParseLong(const char * s) {
-    struct Long * x = NULL;
+struct Nonatomic * cJSON_ParseNonatomic(const char * s) {
+    struct Nonatomic * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLongValue(j);
+            x = cJSON_GetNonatomicValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Long * cJSON_GetLongValue(const cJSON * j) {
-    struct Long * x = NULL;
+struct Nonatomic * cJSON_GetNonatomicValue(const cJSON * j) {
+    struct Nonatomic * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Long)))) {
-            memset(x, 0, sizeof(struct Long));
-            if (!cJSON_HasObjectItem(j, "long")) { cJSON_DeleteLong(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "long")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "long"))) { cJSON_DeleteLong(x); return NULL; }
-                x->long_long = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "long"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonatomic)))) {
+            memset(x, 0, sizeof(struct Nonatomic));
+            if (!cJSON_HasObjectItem(j, "nonatomic")) { cJSON_DeleteNonatomic(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "nonatomic")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonatomic"))) { cJSON_DeleteNonatomic(x); return NULL; }
+                x->nonatomic = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonatomic"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLong(const struct Long * x) {
+cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "long", x->long_long);
+            cJSON_AddNumberToObject(j, "nonatomic", x->nonatomic);
         }
     }
     return j;
 }
 
-char * cJSON_PrintLong(const struct Long * x) {
+char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLong(x);
+        cJSON * j = cJSON_CreateNonatomic(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11685,53 +10970,53 @@ char * cJSON_PrintLong(const struct Long * x) {
     return s;
 }
 
-void cJSON_DeleteLong(struct Long * x) {
+void cJSON_DeleteNonatomic(struct Nonatomic * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Module * cJSON_ParseModule(const char * s) {
-    struct Module * x = NULL;
+struct None * cJSON_ParseNone(const char * s) {
+    struct None * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetModuleValue(j);
+            x = cJSON_GetNoneValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Module * cJSON_GetModuleValue(const cJSON * j) {
-    struct Module * x = NULL;
+struct None * cJSON_GetNoneValue(const cJSON * j) {
+    struct None * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Module)))) {
-            memset(x, 0, sizeof(struct Module));
-            if (!cJSON_HasObjectItem(j, "module")) { cJSON_DeleteModule(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "module")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "module"))) { cJSON_DeleteModule(x); return NULL; }
-                x->module_module = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "module"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct None)))) {
+            memset(x, 0, sizeof(struct None));
+            if (!cJSON_HasObjectItem(j, "None")) { cJSON_DeleteNone(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "None")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "None"))) { cJSON_DeleteNone(x); return NULL; }
+                x->none = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "None"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateModule(const struct Module * x) {
+cJSON * cJSON_CreateNone(const struct None * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "module", x->module_module);
+            cJSON_AddNumberToObject(j, "None", x->none);
         }
     }
     return j;
 }
 
-char * cJSON_PrintModule(const struct Module * x) {
+char * cJSON_PrintNone(const struct None * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateModule(x);
+        cJSON * j = cJSON_CreateNone(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11740,53 +11025,53 @@ char * cJSON_PrintModule(const struct Module * x) {
     return s;
 }
 
-void cJSON_DeleteModule(struct Module * x) {
+void cJSON_DeleteNone(struct None * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Mutable * cJSON_ParseMutable(const char * s) {
-    struct Mutable * x = NULL;
+struct Nonlocal * cJSON_ParseNonlocal(const char * s) {
+    struct Nonlocal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMutableValue(j);
+            x = cJSON_GetNonlocalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Mutable * cJSON_GetMutableValue(const cJSON * j) {
-    struct Mutable * x = NULL;
+struct Nonlocal * cJSON_GetNonlocalValue(const cJSON * j) {
+    struct Nonlocal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Mutable)))) {
-            memset(x, 0, sizeof(struct Mutable));
-            if (!cJSON_HasObjectItem(j, "mutable")) { cJSON_DeleteMutable(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "mutable")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "mutable"))) { cJSON_DeleteMutable(x); return NULL; }
-                x->mutable_mutable = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "mutable"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonlocal)))) {
+            memset(x, 0, sizeof(struct Nonlocal));
+            if (!cJSON_HasObjectItem(j, "nonlocal")) { cJSON_DeleteNonlocal(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "nonlocal")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonlocal"))) { cJSON_DeleteNonlocal(x); return NULL; }
+                x->nonlocal = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonlocal"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMutable(const struct Mutable * x) {
+cJSON * cJSON_CreateNonlocal(const struct Nonlocal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "mutable", x->mutable_mutable);
+            cJSON_AddNumberToObject(j, "nonlocal", x->nonlocal);
         }
     }
     return j;
 }
 
-char * cJSON_PrintMutable(const struct Mutable * x) {
+char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMutable(x);
+        cJSON * j = cJSON_CreateNonlocal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11795,53 +11080,53 @@ char * cJSON_PrintMutable(const struct Mutable * x) {
     return s;
 }
 
-void cJSON_DeleteMutable(struct Mutable * x) {
+void cJSON_DeleteNonlocal(struct Nonlocal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Namespace * cJSON_ParseNamespace(const char * s) {
-    struct Namespace * x = NULL;
+struct Nonmutating * cJSON_ParseNonmutating(const char * s) {
+    struct Nonmutating * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNamespaceValue(j);
+            x = cJSON_GetNonmutatingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Namespace * cJSON_GetNamespaceValue(const cJSON * j) {
-    struct Namespace * x = NULL;
+struct Nonmutating * cJSON_GetNonmutatingValue(const cJSON * j) {
+    struct Nonmutating * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Namespace)))) {
-            memset(x, 0, sizeof(struct Namespace));
-            if (!cJSON_HasObjectItem(j, "namespace")) { cJSON_DeleteNamespace(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "namespace")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "namespace"))) { cJSON_DeleteNamespace(x); return NULL; }
-                x->namespace_namespace = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "namespace"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonmutating)))) {
+            memset(x, 0, sizeof(struct Nonmutating));
+            if (!cJSON_HasObjectItem(j, "nonmutating")) { cJSON_DeleteNonmutating(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "nonmutating")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nonmutating"))) { cJSON_DeleteNonmutating(x); return NULL; }
+                x->nonmutating = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nonmutating"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNamespace(const struct Namespace * x) {
+cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "namespace", x->namespace_namespace);
+            cJSON_AddNumberToObject(j, "nonmutating", x->nonmutating);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNamespace(const struct Namespace * x) {
+char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNamespace(x);
+        cJSON * j = cJSON_CreateNonmutating(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11850,53 +11135,53 @@ char * cJSON_PrintNamespace(const struct Namespace * x) {
     return s;
 }
 
-void cJSON_DeleteNamespace(struct Namespace * x) {
+void cJSON_DeleteNonmutating(struct Nonmutating * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct New * cJSON_ParseNew(const char * s) {
-    struct New * x = NULL;
+struct NsError * cJSON_ParseNsError(const char * s) {
+    struct NsError * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNewValue(j);
+            x = cJSON_GetNsErrorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct New * cJSON_GetNewValue(const cJSON * j) {
-    struct New * x = NULL;
+struct NsError * cJSON_GetNsErrorValue(const cJSON * j) {
+    struct NsError * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct New)))) {
-            memset(x, 0, sizeof(struct New));
-            if (!cJSON_HasObjectItem(j, "new")) { cJSON_DeleteNew(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "new")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "new"))) { cJSON_DeleteNew(x); return NULL; }
-                x->new_new = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "new"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NsError)))) {
+            memset(x, 0, sizeof(struct NsError));
+            if (!cJSON_HasObjectItem(j, "NSError")) { cJSON_DeleteNsError(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "NSError")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NSError"))) { cJSON_DeleteNsError(x); return NULL; }
+                x->ns_error = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NSError"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNew(const struct New * x) {
+cJSON * cJSON_CreateNsError(const struct NsError * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "new", x->new_new);
+            cJSON_AddNumberToObject(j, "NSError", x->ns_error);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNew(const struct New * x) {
+char * cJSON_PrintNsError(const struct NsError * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNew(x);
+        cJSON * j = cJSON_CreateNsError(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11905,53 +11190,53 @@ char * cJSON_PrintNew(const struct New * x) {
     return s;
 }
 
-void cJSON_DeleteNew(struct New * x) {
+void cJSON_DeleteNsError(struct NsError * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Noexcept * cJSON_ParseNoexcept(const char * s) {
-    struct Noexcept * x = NULL;
+struct NsString * cJSON_ParseNsString(const char * s) {
+    struct NsString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoexceptValue(j);
+            x = cJSON_GetNsStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Noexcept * cJSON_GetNoexceptValue(const cJSON * j) {
-    struct Noexcept * x = NULL;
+struct NsString * cJSON_GetNsStringValue(const cJSON * j) {
+    struct NsString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Noexcept)))) {
-            memset(x, 0, sizeof(struct Noexcept));
-            if (!cJSON_HasObjectItem(j, "noexcept")) { cJSON_DeleteNoexcept(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "noexcept")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "noexcept"))) { cJSON_DeleteNoexcept(x); return NULL; }
-                x->noexcept_noexcept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "noexcept"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NsString)))) {
+            memset(x, 0, sizeof(struct NsString));
+            if (!cJSON_HasObjectItem(j, "NSString")) { cJSON_DeleteNsString(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "NSString")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NSString"))) { cJSON_DeleteNsString(x); return NULL; }
+                x->ns_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NSString"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNoexcept(const struct Noexcept * x) {
+cJSON * cJSON_CreateNsString(const struct NsString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "noexcept", x->noexcept_noexcept);
+            cJSON_AddNumberToObject(j, "NSString", x->ns_string);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNoexcept(const struct Noexcept * x) {
+char * cJSON_PrintNsString(const struct NsString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNoexcept(x);
+        cJSON * j = cJSON_CreateNsString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -11960,53 +11245,53 @@ char * cJSON_PrintNoexcept(const struct Noexcept * x) {
     return s;
 }
 
-void cJSON_DeleteNoexcept(struct Noexcept * x) {
+void cJSON_DeleteNsString(struct NsString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NoneClass * cJSON_ParseNoneClass(const char * s) {
-    struct NoneClass * x = NULL;
+struct NullClass * cJSON_ParseNullClass(const char * s) {
+    struct NullClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoneClassValue(j);
+            x = cJSON_GetNullClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NoneClass * cJSON_GetNoneClassValue(const cJSON * j) {
-    struct NoneClass * x = NULL;
+struct NullClass * cJSON_GetNullClassValue(const cJSON * j) {
+    struct NullClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NoneClass)))) {
-            memset(x, 0, sizeof(struct NoneClass));
-            if (!cJSON_HasObjectItem(j, "none")) { cJSON_DeleteNoneClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "none")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "none"))) { cJSON_DeleteNoneClass(x); return NULL; }
-                x->none = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "none"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NullClass)))) {
+            memset(x, 0, sizeof(struct NullClass));
+            if (!cJSON_HasObjectItem(j, "NULL")) { cJSON_DeleteNullClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "NULL")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "NULL"))) { cJSON_DeleteNullClass(x); return NULL; }
+                x->null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "NULL"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNoneClass(const struct NoneClass * x) {
+cJSON * cJSON_CreateNullClass(const struct NullClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "none", x->none);
+            cJSON_AddNumberToObject(j, "NULL", x->null);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNoneClass(const struct NoneClass * x) {
+char * cJSON_PrintNullClass(const struct NullClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNoneClass(x);
+        cJSON * j = cJSON_CreateNullClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12015,53 +11300,53 @@ char * cJSON_PrintNoneClass(const struct NoneClass * x) {
     return s;
 }
 
-void cJSON_DeleteNoneClass(struct NoneClass * x) {
+void cJSON_DeleteNullClass(struct NullClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Not * cJSON_ParseNot(const char * s) {
-    struct Not * x = NULL;
+struct Import * cJSON_ParseImport(const char * s) {
+    struct Import * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNotValue(j);
+            x = cJSON_GetImportValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Not * cJSON_GetNotValue(const cJSON * j) {
-    struct Not * x = NULL;
+struct Import * cJSON_GetImportValue(const cJSON * j) {
+    struct Import * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Not)))) {
-            memset(x, 0, sizeof(struct Not));
-            if (!cJSON_HasObjectItem(j, "not")) { cJSON_DeleteNot(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "not")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "not"))) { cJSON_DeleteNot(x); return NULL; }
-                x->not_not = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "not"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Import)))) {
+            memset(x, 0, sizeof(struct Import));
+            if (!cJSON_HasObjectItem(j, "import")) { cJSON_DeleteImport(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "import")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "import"))) { cJSON_DeleteImport(x); return NULL; }
+                x->import_import = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "import"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNot(const struct Not * x) {
+cJSON * cJSON_CreateImport(const struct Import * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "not", x->not_not);
+            cJSON_AddNumberToObject(j, "import", x->import_import);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNot(const struct Not * x) {
+char * cJSON_PrintImport(const struct Import * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNot(x);
+        cJSON * j = cJSON_CreateImport(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12070,53 +11355,53 @@ char * cJSON_PrintNot(const struct Not * x) {
     return s;
 }
 
-void cJSON_DeleteNot(struct Not * x) {
+void cJSON_DeleteImport(struct Import * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NotEq * cJSON_ParseNotEq(const char * s) {
-    struct NotEq * x = NULL;
+struct Inline * cJSON_ParseInline(const char * s) {
+    struct Inline * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNotEqValue(j);
+            x = cJSON_GetInlineValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NotEq * cJSON_GetNotEqValue(const cJSON * j) {
-    struct NotEq * x = NULL;
+struct Inline * cJSON_GetInlineValue(const cJSON * j) {
+    struct Inline * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NotEq)))) {
-            memset(x, 0, sizeof(struct NotEq));
-            if (!cJSON_HasObjectItem(j, "not_eq")) { cJSON_DeleteNotEq(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "not_eq")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "not_eq"))) { cJSON_DeleteNotEq(x); return NULL; }
-                x->not_eq_not_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "not_eq"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Inline)))) {
+            memset(x, 0, sizeof(struct Inline));
+            if (!cJSON_HasObjectItem(j, "inline")) { cJSON_DeleteInline(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "inline")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "inline"))) { cJSON_DeleteInline(x); return NULL; }
+                x->inline_inline = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "inline"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNotEq(const struct NotEq * x) {
+cJSON * cJSON_CreateInline(const struct Inline * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "not_eq", x->not_eq_not_eq);
+            cJSON_AddNumberToObject(j, "inline", x->inline_inline);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNotEq(const struct NotEq * x) {
+char * cJSON_PrintInline(const struct Inline * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNotEq(x);
+        cJSON * j = cJSON_CreateInline(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12125,53 +11410,53 @@ char * cJSON_PrintNotEq(const struct NotEq * x) {
     return s;
 }
 
-void cJSON_DeleteNotEq(struct NotEq * x) {
+void cJSON_DeleteInline(struct Inline * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Obj3Null * cJSON_ParseObj3Null(const char * s) {
-    struct Obj3Null * x = NULL;
+struct Int * cJSON_ParseInt(const char * s) {
+    struct Int * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObj3NullValue(j);
+            x = cJSON_GetIntValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Obj3Null * cJSON_GetObj3NullValue(const cJSON * j) {
-    struct Obj3Null * x = NULL;
+struct Int * cJSON_GetIntValue(const cJSON * j) {
+    struct Int * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj3Null)))) {
-            memset(x, 0, sizeof(struct Obj3Null));
-            if (!cJSON_HasObjectItem(j, "null")) { cJSON_DeleteObj3Null(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "null")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "null"))) { cJSON_DeleteObj3Null(x); return NULL; }
-                x->null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "null"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Int)))) {
+            memset(x, 0, sizeof(struct Int));
+            if (!cJSON_HasObjectItem(j, "int")) { cJSON_DeleteInt(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "int")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "int"))) { cJSON_DeleteInt(x); return NULL; }
+                x->int_int = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "int"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObj3Null(const struct Obj3Null * x) {
+cJSON * cJSON_CreateInt(const struct Int * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "null", x->null);
+            cJSON_AddNumberToObject(j, "int", x->int_int);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObj3Null(const struct Obj3Null * x) {
+char * cJSON_PrintInt(const struct Int * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObj3Null(x);
+        cJSON * j = cJSON_CreateInt(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12180,53 +11465,53 @@ char * cJSON_PrintObj3Null(const struct Obj3Null * x) {
     return s;
 }
 
-void cJSON_DeleteObj3Null(struct Obj3Null * x) {
+void cJSON_DeleteInt(struct Int * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nullptr * cJSON_ParseNullptr(const char * s) {
-    struct Nullptr * x = NULL;
+struct Long * cJSON_ParseLong(const char * s) {
+    struct Long * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNullptrValue(j);
+            x = cJSON_GetLongValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nullptr * cJSON_GetNullptrValue(const cJSON * j) {
-    struct Nullptr * x = NULL;
+struct Long * cJSON_GetLongValue(const cJSON * j) {
+    struct Long * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nullptr)))) {
-            memset(x, 0, sizeof(struct Nullptr));
-            if (!cJSON_HasObjectItem(j, "nullptr")) { cJSON_DeleteNullptr(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "nullptr")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nullptr"))) { cJSON_DeleteNullptr(x); return NULL; }
-                x->nullptr_nullptr = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nullptr"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Long)))) {
+            memset(x, 0, sizeof(struct Long));
+            if (!cJSON_HasObjectItem(j, "long")) { cJSON_DeleteLong(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "long")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "long"))) { cJSON_DeleteLong(x); return NULL; }
+                x->long_long = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "long"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNullptr(const struct Nullptr * x) {
+cJSON * cJSON_CreateLong(const struct Long * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "nullptr", x->nullptr_nullptr);
+            cJSON_AddNumberToObject(j, "long", x->long_long);
         }
     }
     return j;
 }
 
-char * cJSON_PrintNullptr(const struct Nullptr * x) {
+char * cJSON_PrintLong(const struct Long * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNullptr(x);
+        cJSON * j = cJSON_CreateLong(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12235,53 +11520,53 @@ char * cJSON_PrintNullptr(const struct Nullptr * x) {
     return s;
 }
 
-void cJSON_DeleteNullptr(struct Nullptr * x) {
+void cJSON_DeleteLong(struct Long * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Operator * cJSON_ParseOperator(const char * s) {
-    struct Operator * x = NULL;
+struct Module * cJSON_ParseModule(const char * s) {
+    struct Module * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOperatorValue(j);
+            x = cJSON_GetModuleValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Operator * cJSON_GetOperatorValue(const cJSON * j) {
-    struct Operator * x = NULL;
+struct Module * cJSON_GetModuleValue(const cJSON * j) {
+    struct Module * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Operator)))) {
-            memset(x, 0, sizeof(struct Operator));
-            if (!cJSON_HasObjectItem(j, "operator")) { cJSON_DeleteOperator(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "operator")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "operator"))) { cJSON_DeleteOperator(x); return NULL; }
-                x->operator_operator = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "operator"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Module)))) {
+            memset(x, 0, sizeof(struct Module));
+            if (!cJSON_HasObjectItem(j, "module")) { cJSON_DeleteModule(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "module")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "module"))) { cJSON_DeleteModule(x); return NULL; }
+                x->module_module = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "module"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOperator(const struct Operator * x) {
+cJSON * cJSON_CreateModule(const struct Module * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "operator", x->operator_operator);
+            cJSON_AddNumberToObject(j, "module", x->module_module);
         }
     }
     return j;
 }
 
-char * cJSON_PrintOperator(const struct Operator * x) {
+char * cJSON_PrintModule(const struct Module * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOperator(x);
+        cJSON * j = cJSON_CreateModule(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12290,53 +11575,53 @@ char * cJSON_PrintOperator(const struct Operator * x) {
     return s;
 }
 
-void cJSON_DeleteOperator(struct Operator * x) {
+void cJSON_DeleteModule(struct Module * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Or * cJSON_ParseOr(const char * s) {
-    struct Or * x = NULL;
+struct Mutable * cJSON_ParseMutable(const char * s) {
+    struct Mutable * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOrValue(j);
+            x = cJSON_GetMutableValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Or * cJSON_GetOrValue(const cJSON * j) {
-    struct Or * x = NULL;
+struct Mutable * cJSON_GetMutableValue(const cJSON * j) {
+    struct Mutable * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Or)))) {
-            memset(x, 0, sizeof(struct Or));
-            if (!cJSON_HasObjectItem(j, "or")) { cJSON_DeleteOr(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "or")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "or"))) { cJSON_DeleteOr(x); return NULL; }
-                x->or_or = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "or"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Mutable)))) {
+            memset(x, 0, sizeof(struct Mutable));
+            if (!cJSON_HasObjectItem(j, "mutable")) { cJSON_DeleteMutable(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "mutable")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "mutable"))) { cJSON_DeleteMutable(x); return NULL; }
+                x->mutable_mutable = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "mutable"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOr(const struct Or * x) {
+cJSON * cJSON_CreateMutable(const struct Mutable * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "or", x->or_or);
+            cJSON_AddNumberToObject(j, "mutable", x->mutable_mutable);
         }
     }
     return j;
 }
 
-char * cJSON_PrintOr(const struct Or * x) {
+char * cJSON_PrintMutable(const struct Mutable * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOr(x);
+        cJSON * j = cJSON_CreateMutable(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12345,53 +11630,53 @@ char * cJSON_PrintOr(const struct Or * x) {
     return s;
 }
 
-void cJSON_DeleteOr(struct Or * x) {
+void cJSON_DeleteMutable(struct Mutable * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct OrEq * cJSON_ParseOrEq(const char * s) {
-    struct OrEq * x = NULL;
+struct Namespace * cJSON_ParseNamespace(const char * s) {
+    struct Namespace * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOrEqValue(j);
+            x = cJSON_GetNamespaceValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct OrEq * cJSON_GetOrEqValue(const cJSON * j) {
-    struct OrEq * x = NULL;
+struct Namespace * cJSON_GetNamespaceValue(const cJSON * j) {
+    struct Namespace * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct OrEq)))) {
-            memset(x, 0, sizeof(struct OrEq));
-            if (!cJSON_HasObjectItem(j, "or_eq")) { cJSON_DeleteOrEq(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "or_eq")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "or_eq"))) { cJSON_DeleteOrEq(x); return NULL; }
-                x->or_eq_or_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "or_eq"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Namespace)))) {
+            memset(x, 0, sizeof(struct Namespace));
+            if (!cJSON_HasObjectItem(j, "namespace")) { cJSON_DeleteNamespace(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "namespace")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "namespace"))) { cJSON_DeleteNamespace(x); return NULL; }
+                x->namespace_namespace = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "namespace"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOrEq(const struct OrEq * x) {
+cJSON * cJSON_CreateNamespace(const struct Namespace * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "or_eq", x->or_eq_or_eq);
+            cJSON_AddNumberToObject(j, "namespace", x->namespace_namespace);
         }
     }
     return j;
 }
 
-char * cJSON_PrintOrEq(const struct OrEq * x) {
+char * cJSON_PrintNamespace(const struct Namespace * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOrEq(x);
+        cJSON * j = cJSON_CreateNamespace(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12400,53 +11685,53 @@ char * cJSON_PrintOrEq(const struct OrEq * x) {
     return s;
 }
 
-void cJSON_DeleteOrEq(struct OrEq * x) {
+void cJSON_DeleteNamespace(struct Namespace * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Override * cJSON_ParseOverride(const char * s) {
-    struct Override * x = NULL;
+struct New * cJSON_ParseNew(const char * s) {
+    struct New * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOverrideValue(j);
+            x = cJSON_GetNewValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Override * cJSON_GetOverrideValue(const cJSON * j) {
-    struct Override * x = NULL;
+struct New * cJSON_GetNewValue(const cJSON * j) {
+    struct New * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Override)))) {
-            memset(x, 0, sizeof(struct Override));
-            if (!cJSON_HasObjectItem(j, "override")) { cJSON_DeleteOverride(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "override")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "override"))) { cJSON_DeleteOverride(x); return NULL; }
-                x->override_override = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "override"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct New)))) {
+            memset(x, 0, sizeof(struct New));
+            if (!cJSON_HasObjectItem(j, "new")) { cJSON_DeleteNew(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "new")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "new"))) { cJSON_DeleteNew(x); return NULL; }
+                x->new_new = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "new"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOverride(const struct Override * x) {
+cJSON * cJSON_CreateNew(const struct New * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "override", x->override_override);
+            cJSON_AddNumberToObject(j, "new", x->new_new);
         }
     }
     return j;
 }
 
-char * cJSON_PrintOverride(const struct Override * x) {
+char * cJSON_PrintNew(const struct New * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOverride(x);
+        cJSON * j = cJSON_CreateNew(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12455,53 +11740,53 @@ char * cJSON_PrintOverride(const struct Override * x) {
     return s;
 }
 
-void cJSON_DeleteOverride(struct Override * x) {
+void cJSON_DeleteNew(struct New * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Private * cJSON_ParsePrivate(const char * s) {
-    struct Private * x = NULL;
+struct Noexcept * cJSON_ParseNoexcept(const char * s) {
+    struct Noexcept * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPrivateValue(j);
+            x = cJSON_GetNoexceptValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Private * cJSON_GetPrivateValue(const cJSON * j) {
-    struct Private * x = NULL;
+struct Noexcept * cJSON_GetNoexceptValue(const cJSON * j) {
+    struct Noexcept * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Private)))) {
-            memset(x, 0, sizeof(struct Private));
-            if (!cJSON_HasObjectItem(j, "private")) { cJSON_DeletePrivate(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "private")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "private"))) { cJSON_DeletePrivate(x); return NULL; }
-                x->private_private = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "private"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Noexcept)))) {
+            memset(x, 0, sizeof(struct Noexcept));
+            if (!cJSON_HasObjectItem(j, "noexcept")) { cJSON_DeleteNoexcept(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "noexcept")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "noexcept"))) { cJSON_DeleteNoexcept(x); return NULL; }
+                x->noexcept_noexcept = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "noexcept"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePrivate(const struct Private * x) {
+cJSON * cJSON_CreateNoexcept(const struct Noexcept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "private", x->private_private);
+            cJSON_AddNumberToObject(j, "noexcept", x->noexcept_noexcept);
         }
     }
     return j;
 }
 
-char * cJSON_PrintPrivate(const struct Private * x) {
+char * cJSON_PrintNoexcept(const struct Noexcept * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePrivate(x);
+        cJSON * j = cJSON_CreateNoexcept(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12510,53 +11795,53 @@ char * cJSON_PrintPrivate(const struct Private * x) {
     return s;
 }
 
-void cJSON_DeletePrivate(struct Private * x) {
+void cJSON_DeleteNoexcept(struct Noexcept * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Protected * cJSON_ParseProtected(const char * s) {
-    struct Protected * x = NULL;
+struct NoneClass * cJSON_ParseNoneClass(const char * s) {
+    struct NoneClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetProtectedValue(j);
+            x = cJSON_GetNoneClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Protected * cJSON_GetProtectedValue(const cJSON * j) {
-    struct Protected * x = NULL;
+struct NoneClass * cJSON_GetNoneClassValue(const cJSON * j) {
+    struct NoneClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Protected)))) {
-            memset(x, 0, sizeof(struct Protected));
-            if (!cJSON_HasObjectItem(j, "protected")) { cJSON_DeleteProtected(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "protected")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "protected"))) { cJSON_DeleteProtected(x); return NULL; }
-                x->protected_protected = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "protected"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NoneClass)))) {
+            memset(x, 0, sizeof(struct NoneClass));
+            if (!cJSON_HasObjectItem(j, "none")) { cJSON_DeleteNoneClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "none")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "none"))) { cJSON_DeleteNoneClass(x); return NULL; }
+                x->none = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "none"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateProtected(const struct Protected * x) {
+cJSON * cJSON_CreateNoneClass(const struct NoneClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "protected", x->protected_protected);
+            cJSON_AddNumberToObject(j, "none", x->none);
         }
     }
     return j;
 }
 
-char * cJSON_PrintProtected(const struct Protected * x) {
+char * cJSON_PrintNoneClass(const struct NoneClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateProtected(x);
+        cJSON * j = cJSON_CreateNoneClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12565,53 +11850,53 @@ char * cJSON_PrintProtected(const struct Protected * x) {
     return s;
 }
 
-void cJSON_DeleteProtected(struct Protected * x) {
+void cJSON_DeleteNoneClass(struct NoneClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ProtocolClass * cJSON_ParseProtocolClass(const char * s) {
-    struct ProtocolClass * x = NULL;
+struct Not * cJSON_ParseNot(const char * s) {
+    struct Not * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetProtocolClassValue(j);
+            x = cJSON_GetNotValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ProtocolClass * cJSON_GetProtocolClassValue(const cJSON * j) {
-    struct ProtocolClass * x = NULL;
+struct Not * cJSON_GetNotValue(const cJSON * j) {
+    struct Not * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ProtocolClass)))) {
-            memset(x, 0, sizeof(struct ProtocolClass));
-            if (!cJSON_HasObjectItem(j, "protocol")) { cJSON_DeleteProtocolClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "protocol")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "protocol"))) { cJSON_DeleteProtocolClass(x); return NULL; }
-                x->protocol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "protocol"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Not)))) {
+            memset(x, 0, sizeof(struct Not));
+            if (!cJSON_HasObjectItem(j, "not")) { cJSON_DeleteNot(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "not")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "not"))) { cJSON_DeleteNot(x); return NULL; }
+                x->not_not = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "not"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateProtocolClass(const struct ProtocolClass * x) {
+cJSON * cJSON_CreateNot(const struct Not * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "protocol", x->protocol);
+            cJSON_AddNumberToObject(j, "not", x->not_not);
         }
     }
     return j;
 }
 
-char * cJSON_PrintProtocolClass(const struct ProtocolClass * x) {
+char * cJSON_PrintNot(const struct Not * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateProtocolClass(x);
+        cJSON * j = cJSON_CreateNot(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12620,53 +11905,53 @@ char * cJSON_PrintProtocolClass(const struct ProtocolClass * x) {
     return s;
 }
 
-void cJSON_DeleteProtocolClass(struct ProtocolClass * x) {
+void cJSON_DeleteNot(struct Not * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ObjectClass * cJSON_ParseObjectClass(const char * s) {
-    struct ObjectClass * x = NULL;
+struct NotEq * cJSON_ParseNotEq(const char * s) {
+    struct NotEq * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObjectClassValue(j);
+            x = cJSON_GetNotEqValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ObjectClass * cJSON_GetObjectClassValue(const cJSON * j) {
-    struct ObjectClass * x = NULL;
+struct NotEq * cJSON_GetNotEqValue(const cJSON * j) {
+    struct NotEq * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectClass)))) {
-            memset(x, 0, sizeof(struct ObjectClass));
-            if (!cJSON_HasObjectItem(j, "object")) { cJSON_DeleteObjectClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "object")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "object"))) { cJSON_DeleteObjectClass(x); return NULL; }
-                x->object = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "object"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NotEq)))) {
+            memset(x, 0, sizeof(struct NotEq));
+            if (!cJSON_HasObjectItem(j, "not_eq")) { cJSON_DeleteNotEq(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "not_eq")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "not_eq"))) { cJSON_DeleteNotEq(x); return NULL; }
+                x->not_eq_not_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "not_eq"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x) {
+cJSON * cJSON_CreateNotEq(const struct NotEq * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "object", x->object);
+            cJSON_AddNumberToObject(j, "not_eq", x->not_eq_not_eq);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
+char * cJSON_PrintNotEq(const struct NotEq * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObjectClass(x);
+        cJSON * j = cJSON_CreateNotEq(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12675,53 +11960,53 @@ char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
     return s;
 }
 
-void cJSON_DeleteObjectClass(struct ObjectClass * x) {
+void cJSON_DeleteNotEq(struct NotEq * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ObjectMapper * cJSON_ParseObjectMapper(const char * s) {
-    struct ObjectMapper * x = NULL;
+struct Obj3Null * cJSON_ParseObj3Null(const char * s) {
+    struct Obj3Null * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObjectMapperValue(j);
+            x = cJSON_GetObj3NullValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ObjectMapper * cJSON_GetObjectMapperValue(const cJSON * j) {
-    struct ObjectMapper * x = NULL;
+struct Obj3Null * cJSON_GetObj3NullValue(const cJSON * j) {
+    struct Obj3Null * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectMapper)))) {
-            memset(x, 0, sizeof(struct ObjectMapper));
-            if (!cJSON_HasObjectItem(j, "ObjectMapper")) { cJSON_DeleteObjectMapper(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ObjectMapper")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"))) { cJSON_DeleteObjectMapper(x); return NULL; }
-                x->object_mapper = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj3Null)))) {
+            memset(x, 0, sizeof(struct Obj3Null));
+            if (!cJSON_HasObjectItem(j, "null")) { cJSON_DeleteObj3Null(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "null")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "null"))) { cJSON_DeleteObj3Null(x); return NULL; }
+                x->null = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "null"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObjectMapper(const struct ObjectMapper * x) {
+cJSON * cJSON_CreateObj3Null(const struct Obj3Null * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "ObjectMapper", x->object_mapper);
+            cJSON_AddNumberToObject(j, "null", x->null);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObjectMapper(const struct ObjectMapper * x) {
+char * cJSON_PrintObj3Null(const struct Obj3Null * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObjectMapper(x);
+        cJSON * j = cJSON_CreateObj3Null(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12730,1187 +12015,135 @@ char * cJSON_PrintObjectMapper(const struct ObjectMapper * x) {
     return s;
 }
 
-void cJSON_DeleteObjectMapper(struct ObjectMapper * x) {
+void cJSON_DeleteObj3Null(struct Obj3Null * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Of * cJSON_ParseOf(const char * s) {
-    struct Of * x = NULL;
+struct Obj3 * cJSON_ParseObj3(const char * s) {
+    struct Obj3 * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOfValue(j);
+            x = cJSON_GetObj3Value(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Of * cJSON_GetOfValue(const cJSON * j) {
-    struct Of * x = NULL;
+struct Obj3 * cJSON_GetObj3Value(const cJSON * j) {
+    struct Obj3 * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Of)))) {
-            memset(x, 0, sizeof(struct Of));
-            if (!cJSON_HasObjectItem(j, "of")) { cJSON_DeleteOf(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "of")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "of"))) { cJSON_DeleteOf(x); return NULL; }
-                x->of = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "of"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj3)))) {
+            memset(x, 0, sizeof(struct Obj3));
+            if (!cJSON_HasObjectItem(j, "dummy")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "dummy")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->dummy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dummy"));
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateOf(const struct Of * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "of", x->of);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintOf(const struct Of * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateOf(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteOf(struct Of * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Oneway * cJSON_ParseOneway(const char * s) {
-    struct Oneway * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetOnewayValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Oneway * cJSON_GetOnewayValue(const cJSON * j) {
-    struct Oneway * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Oneway)))) {
-            memset(x, 0, sizeof(struct Oneway));
-            if (!cJSON_HasObjectItem(j, "oneway")) { cJSON_DeleteOneway(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "oneway")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "oneway"))) { cJSON_DeleteOneway(x); return NULL; }
-                x->oneway = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "oneway"));
+            if (!cJSON_HasObjectItem(j, "in")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "in")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "in"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->in = cJSON_GetInValue(cJSON_GetObjectItemCaseSensitive(j, "in"));
+                if (NULL == x->in) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateOneway(const struct Oneway * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "oneway", x->oneway);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintOneway(const struct Oneway * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateOneway(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteOneway(struct Oneway * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Open * cJSON_ParseOpen(const char * s) {
-    struct Open * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetOpenValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Open * cJSON_GetOpenValue(const cJSON * j) {
-    struct Open * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Open)))) {
-            memset(x, 0, sizeof(struct Open));
-            if (!cJSON_HasObjectItem(j, "open")) { cJSON_DeleteOpen(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "open")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "open"))) { cJSON_DeleteOpen(x); return NULL; }
-                x->open = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "open"));
+            if (!cJSON_HasObjectItem(j, "indirect")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "indirect")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "indirect"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->indirect = cJSON_GetIndirectValue(cJSON_GetObjectItemCaseSensitive(j, "indirect"));
+                if (NULL == x->indirect) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateOpen(const struct Open * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "open", x->open);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintOpen(const struct Open * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateOpen(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteOpen(struct Open * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Optional * cJSON_ParseOptional(const char * s) {
-    struct Optional * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetOptionalValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Optional * cJSON_GetOptionalValue(const cJSON * j) {
-    struct Optional * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Optional)))) {
-            memset(x, 0, sizeof(struct Optional));
-            if (!cJSON_HasObjectItem(j, "optional")) { cJSON_DeleteOptional(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "optional")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "optional"))) { cJSON_DeleteOptional(x); return NULL; }
-                x->optional = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "optional"));
+            if (!cJSON_HasObjectItem(j, "infix")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "infix")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "infix"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->infix = cJSON_GetInfixValue(cJSON_GetObjectItemCaseSensitive(j, "infix"));
+                if (NULL == x->infix) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateOptional(const struct Optional * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "optional", x->optional);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintOptional(const struct Optional * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateOptional(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteOptional(struct Optional * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Out * cJSON_ParseOut(const char * s) {
-    struct Out * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetOutValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Out * cJSON_GetOutValue(const cJSON * j) {
-    struct Out * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Out)))) {
-            memset(x, 0, sizeof(struct Out));
-            if (!cJSON_HasObjectItem(j, "out")) { cJSON_DeleteOut(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "out")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "out"))) { cJSON_DeleteOut(x); return NULL; }
-                x->out = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "out"));
+            if (!cJSON_HasObjectItem(j, "init")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "init")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "init"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->init = cJSON_GetInitValue(cJSON_GetObjectItemCaseSensitive(j, "init"));
+                if (NULL == x->init) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateOut(const struct Out * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "out", x->out);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintOut(const struct Out * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateOut(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteOut(struct Out * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Package * cJSON_ParsePackage(const char * s) {
-    struct Package * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPackageValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Package * cJSON_GetPackageValue(const cJSON * j) {
-    struct Package * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Package)))) {
-            memset(x, 0, sizeof(struct Package));
-            if (!cJSON_HasObjectItem(j, "package")) { cJSON_DeletePackage(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "package")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "package"))) { cJSON_DeletePackage(x); return NULL; }
-                x->package = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "package"));
+            if (!cJSON_HasObjectItem(j, "inout")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "inout")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "inout"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->inout = cJSON_GetInoutValue(cJSON_GetObjectItemCaseSensitive(j, "inout"));
+                if (NULL == x->inout) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePackage(const struct Package * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "package", x->package);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPackage(const struct Package * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePackage(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePackage(struct Package * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Params * cJSON_ParseParams(const char * s) {
-    struct Params * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetParamsValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Params * cJSON_GetParamsValue(const cJSON * j) {
-    struct Params * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Params)))) {
-            memset(x, 0, sizeof(struct Params));
-            if (!cJSON_HasObjectItem(j, "params")) { cJSON_DeleteParams(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "params")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "params"))) { cJSON_DeleteParams(x); return NULL; }
-                x->params = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "params"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateParams(const struct Params * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "params", x->params);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintParams(const struct Params * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateParams(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteParams(struct Params * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Pass * cJSON_ParsePass(const char * s) {
-    struct Pass * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPassValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Pass * cJSON_GetPassValue(const cJSON * j) {
-    struct Pass * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Pass)))) {
-            memset(x, 0, sizeof(struct Pass));
-            if (!cJSON_HasObjectItem(j, "pass")) { cJSON_DeletePass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "pass")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "pass"))) { cJSON_DeletePass(x); return NULL; }
-                x->pass = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "pass"));
+            if (!cJSON_HasObjectItem(j, "instanceof")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "instanceof")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "instanceof"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->instanceof = cJSON_GetInstanceofValue(cJSON_GetObjectItemCaseSensitive(j, "instanceof"));
+                if (NULL == x->instanceof) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePass(const struct Pass * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "pass", x->pass);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPass(const struct Pass * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePass(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePass(struct Pass * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Port * cJSON_ParsePort(const char * s) {
-    struct Port * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPortValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Port * cJSON_GetPortValue(const cJSON * j) {
-    struct Port * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Port)))) {
-            memset(x, 0, sizeof(struct Port));
-            if (!cJSON_HasObjectItem(j, "port")) { cJSON_DeletePort(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "port")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "port"))) { cJSON_DeletePort(x); return NULL; }
-                x->port = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "port"));
+            if (!cJSON_HasObjectItem(j, "interface")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "interface")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "interface"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->interface = cJSON_GetInterfaceValue(cJSON_GetObjectItemCaseSensitive(j, "interface"));
+                if (NULL == x->interface) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePort(const struct Port * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "port", x->port);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPort(const struct Port * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePort(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePort(struct Port * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Postfix * cJSON_ParsePostfix(const char * s) {
-    struct Postfix * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPostfixValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Postfix * cJSON_GetPostfixValue(const cJSON * j) {
-    struct Postfix * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Postfix)))) {
-            memset(x, 0, sizeof(struct Postfix));
-            if (!cJSON_HasObjectItem(j, "postfix")) { cJSON_DeletePostfix(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "postfix")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "postfix"))) { cJSON_DeletePostfix(x); return NULL; }
-                x->postfix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "postfix"));
+            if (!cJSON_HasObjectItem(j, "internal")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "internal")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "internal"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->internal = cJSON_GetInternalValue(cJSON_GetObjectItemCaseSensitive(j, "internal"));
+                if (NULL == x->internal) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePostfix(const struct Postfix * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "postfix", x->postfix);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPostfix(const struct Postfix * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePostfix(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePostfix(struct Postfix * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Precedence * cJSON_ParsePrecedence(const char * s) {
-    struct Precedence * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPrecedenceValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Precedence * cJSON_GetPrecedenceValue(const cJSON * j) {
-    struct Precedence * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Precedence)))) {
-            memset(x, 0, sizeof(struct Precedence));
-            if (!cJSON_HasObjectItem(j, "precedence")) { cJSON_DeletePrecedence(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "precedence")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "precedence"))) { cJSON_DeletePrecedence(x); return NULL; }
-                x->precedence = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "precedence"));
+            if (!cJSON_HasObjectItem(j, "is")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "is")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "is"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->is = cJSON_GetIsValue(cJSON_GetObjectItemCaseSensitive(j, "is"));
+                if (NULL == x->is) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePrecedence(const struct Precedence * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "precedence", x->precedence);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPrecedence(const struct Precedence * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePrecedence(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePrecedence(struct Precedence * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Prefix * cJSON_ParsePrefix(const char * s) {
-    struct Prefix * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPrefixValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Prefix * cJSON_GetPrefixValue(const cJSON * j) {
-    struct Prefix * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Prefix)))) {
-            memset(x, 0, sizeof(struct Prefix));
-            if (!cJSON_HasObjectItem(j, "prefix")) { cJSON_DeletePrefix(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "prefix")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "prefix"))) { cJSON_DeletePrefix(x); return NULL; }
-                x->prefix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "prefix"));
+            if (!cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->iso_date_time_offset_converter = cJSON_GetIsoDateTimeOffsetConverterValue(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"));
+                if (NULL == x->iso_date_time_offset_converter) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePrefix(const struct Prefix * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "prefix", x->prefix);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPrefix(const struct Prefix * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePrefix(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePrefix(struct Prefix * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Print * cJSON_ParsePrint(const char * s) {
-    struct Print * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPrintValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Print * cJSON_GetPrintValue(const cJSON * j) {
-    struct Print * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Print)))) {
-            memset(x, 0, sizeof(struct Print));
-            if (!cJSON_HasObjectItem(j, "print")) { cJSON_DeletePrint(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "print")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "print"))) { cJSON_DeletePrint(x); return NULL; }
-                x->print = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "print"));
+            if (!cJSON_HasObjectItem(j, "iterable")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "iterable")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "iterable"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->iterable = cJSON_GetIterableValue(cJSON_GetObjectItemCaseSensitive(j, "iterable"));
+                if (NULL == x->iterable) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePrint(const struct Print * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "print", x->print);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPrint(const struct Print * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePrint(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePrint(struct Print * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct PrintMembers * cJSON_ParsePrintMembers(const char * s) {
-    struct PrintMembers * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPrintMembersValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct PrintMembers * cJSON_GetPrintMembersValue(const cJSON * j) {
-    struct PrintMembers * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct PrintMembers)))) {
-            memset(x, 0, sizeof(struct PrintMembers));
-            if (!cJSON_HasObjectItem(j, "printMembers")) { cJSON_DeletePrintMembers(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "printMembers")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "printMembers"))) { cJSON_DeletePrintMembers(x); return NULL; }
-                x->print_members = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "printMembers"));
+            if (!cJSON_HasObjectItem(j, "jdec")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jdec")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jdec"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->jdec = cJSON_GetJdecValue(cJSON_GetObjectItemCaseSensitive(j, "jdec"));
+                if (NULL == x->jdec) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePrintMembers(const struct PrintMembers * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "printMembers", x->print_members);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPrintMembers(const struct PrintMembers * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePrintMembers(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePrintMembers(struct PrintMembers * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Printf * cJSON_ParsePrintf(const char * s) {
-    struct Printf * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetPrintfValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Printf * cJSON_GetPrintfValue(const cJSON * j) {
-    struct Printf * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Printf)))) {
-            memset(x, 0, sizeof(struct Printf));
-            if (!cJSON_HasObjectItem(j, "printf")) { cJSON_DeletePrintf(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "printf")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "printf"))) { cJSON_DeletePrintf(x); return NULL; }
-                x->printf = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "printf"));
+            if (!cJSON_HasObjectItem(j, "jenc")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jenc")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jenc"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->jenc = cJSON_GetJencValue(cJSON_GetObjectItemCaseSensitive(j, "jenc"));
+                if (NULL == x->jenc) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreatePrintf(const struct Printf * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "printf", x->printf);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintPrintf(const struct Printf * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreatePrintf(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeletePrintf(struct Printf * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Protocol * cJSON_ParseProtocol(const char * s) {
-    struct Protocol * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetProtocolValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Protocol * cJSON_GetProtocolValue(const cJSON * j) {
-    struct Protocol * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Protocol)))) {
-            memset(x, 0, sizeof(struct Protocol));
-            if (!cJSON_HasObjectItem(j, "Protocol")) { cJSON_DeleteProtocol(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Protocol")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Protocol"))) { cJSON_DeleteProtocol(x); return NULL; }
-                x->protocol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Protocol"));
+            if (!cJSON_HasObjectItem(j, "jpipe")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "jpipe")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jpipe"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->jpipe = cJSON_GetJpipeValue(cJSON_GetObjectItemCaseSensitive(j, "jpipe"));
+                if (NULL == x->jpipe) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateProtocol(const struct Protocol * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "Protocol", x->protocol);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintProtocol(const struct Protocol * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateProtocol(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteProtocol(struct Protocol * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s) {
-    struct SerializerProvider * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSerializerProviderValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j) {
-    struct SerializerProvider * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct SerializerProvider)))) {
-            memset(x, 0, sizeof(struct SerializerProvider));
-            if (!cJSON_HasObjectItem(j, "SerializerProvider")) { cJSON_DeleteSerializerProvider(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "SerializerProvider")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"))) { cJSON_DeleteSerializerProvider(x); return NULL; }
-                x->serializer_provider = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"));
+            if (!cJSON_HasObjectItem(j, "json")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "json")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "json"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->json = cJSON_GetJsonValue(cJSON_GetObjectItemCaseSensitive(j, "json"));
+                if (NULL == x->json) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "SerializerProvider", x->serializer_provider);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSerializerProvider(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSerializerProvider(struct SerializerProvider * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct SimpleModule * cJSON_ParseSimpleModule(const char * s) {
-    struct SimpleModule * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSimpleModuleValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j) {
-    struct SimpleModule * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct SimpleModule)))) {
-            memset(x, 0, sizeof(struct SimpleModule));
-            if (!cJSON_HasObjectItem(j, "SimpleModule")) { cJSON_DeleteSimpleModule(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "SimpleModule")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"))) { cJSON_DeleteSimpleModule(x); return NULL; }
-                x->simple_module = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"));
+            if (!cJSON_HasObjectItem(j, "JSONAny")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONAny")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->json_any = cJSON_GetJsonAnyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"));
+                if (NULL == x->json_any) { cJSON_DeleteObj3(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "SimpleModule", x->simple_module);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSimpleModule(const struct SimpleModule * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSimpleModule(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSimpleModule(struct SimpleModule * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s) {
-    struct StdDeserializer * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetStdDeserializerValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j) {
-    struct StdDeserializer * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct StdDeserializer)))) {
-            memset(x, 0, sizeof(struct StdDeserializer));
-            if (!cJSON_HasObjectItem(j, "StdDeserializer")) { cJSON_DeleteStdDeserializer(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "StdDeserializer")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"))) { cJSON_DeleteStdDeserializer(x); return NULL; }
-                x->std_deserializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "StdDeserializer", x->std_deserializer);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateStdDeserializer(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteStdDeserializer(struct StdDeserializer * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct StdSerializer * cJSON_ParseStdSerializer(const char * s) {
-    struct StdSerializer * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetStdSerializerValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j) {
-    struct StdSerializer * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct StdSerializer)))) {
-            memset(x, 0, sizeof(struct StdSerializer));
-            if (!cJSON_HasObjectItem(j, "StdSerializer")) { cJSON_DeleteStdSerializer(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "StdSerializer")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"))) { cJSON_DeleteStdSerializer(x); return NULL; }
-                x->std_serializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"));
-            }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "StdSerializer", x->std_serializer);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintStdSerializer(const struct StdSerializer * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateStdSerializer(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteStdSerializer(struct StdSerializer * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj3 * cJSON_ParseObj3(const char * s) {
-    struct Obj3 * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj3Value(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj3 * cJSON_GetObj3Value(const cJSON * j) {
-    struct Obj3 * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj3)))) {
-            memset(x, 0, sizeof(struct Obj3));
-            if (!cJSON_HasObjectItem(j, "dummy")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "dummy")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->dummy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dummy"));
-            }
-            if (!cJSON_HasObjectItem(j, "is")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "is")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "is"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->is = cJSON_GetIsValue(cJSON_GetObjectItemCaseSensitive(j, "is"));
-                if (NULL == x->is) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->iso_date_time_offset_converter = cJSON_GetIsoDateTimeOffsetConverterValue(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"));
-                if (NULL == x->iso_date_time_offset_converter) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "iterable")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "iterable")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "iterable"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->iterable = cJSON_GetIterableValue(cJSON_GetObjectItemCaseSensitive(j, "iterable"));
-                if (NULL == x->iterable) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "jdec")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jdec")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jdec"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->jdec = cJSON_GetJdecValue(cJSON_GetObjectItemCaseSensitive(j, "jdec"));
-                if (NULL == x->jdec) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "jenc")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jenc")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jenc"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->jenc = cJSON_GetJencValue(cJSON_GetObjectItemCaseSensitive(j, "jenc"));
-                if (NULL == x->jenc) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "jpipe")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "jpipe")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "jpipe"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->jpipe = cJSON_GetJpipeValue(cJSON_GetObjectItemCaseSensitive(j, "jpipe"));
-                if (NULL == x->jpipe) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "json")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "json")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "json"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->json = cJSON_GetJsonValue(cJSON_GetObjectItemCaseSensitive(j, "json"));
-                if (NULL == x->json) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "JSONAny")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONAny")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->json_any = cJSON_GetJsonAnyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"));
-                if (NULL == x->json_any) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "JSONCodingKey")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "JSONCodingKey")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->json_coding_key = cJSON_GetJsonCodingKeyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"));
-                if (NULL == x->json_coding_key) { cJSON_DeleteObj3(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "JSONCodingKey")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "JSONCodingKey")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->json_coding_key = cJSON_GetJsonCodingKeyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"));
+                if (NULL == x->json_coding_key) { cJSON_DeleteObj3(x); return NULL; }
             }
             if (!cJSON_HasObjectItem(j, "json_converter")) { cJSON_DeleteObj3(x); return NULL; }
             if (cJSON_HasObjectItem(j, "json_converter")) {
@@ -14116,11 +12349,23 @@ struct Obj3 * cJSON_GetObj3Value(const cJSON * j) {
                 x->null = cJSON_GetNullClassValue(cJSON_GetObjectItemCaseSensitive(j, "NULL"));
                 if (NULL == x->null) { cJSON_DeleteObj3(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "number")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "number")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "number"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->number = cJSON_GetNumberClassValue(cJSON_GetObjectItemCaseSensitive(j, "number"));
-                if (NULL == x->number) { cJSON_DeleteObj3(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "import")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "import")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "import"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->obj3_import = cJSON_GetImportValue(cJSON_GetObjectItemCaseSensitive(j, "import"));
+                if (NULL == x->obj3_import) { cJSON_DeleteObj3(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "inline")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "inline")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "inline"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->obj3_inline = cJSON_GetInlineValue(cJSON_GetObjectItemCaseSensitive(j, "inline"));
+                if (NULL == x->obj3_inline) { cJSON_DeleteObj3(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "int")) { cJSON_DeleteObj3(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "int")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "int"))) { cJSON_DeleteObj3(x); return NULL; }
+                x->obj3_int = cJSON_GetIntValue(cJSON_GetObjectItemCaseSensitive(j, "int"));
+                if (NULL == x->obj3_int) { cJSON_DeleteObj3(x); return NULL; }
             }
             if (!cJSON_HasObjectItem(j, "long")) { cJSON_DeleteObj3(x); return NULL; }
             if (cJSON_HasObjectItem(j, "long")) {
@@ -14182,289 +12427,1051 @@ struct Obj3 * cJSON_GetObj3Value(const cJSON * j) {
                 x->obj3_null = cJSON_GetObj3NullValue(cJSON_GetObjectItemCaseSensitive(j, "null"));
                 if (NULL == x->obj3_null) { cJSON_DeleteObj3(x); return NULL; }
             }
-            if (!cJSON_HasObjectItem(j, "nullptr")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateObj3(const struct Obj3 * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "dummy", x->dummy);
+            cJSON_AddItemToObject(j, "in", cJSON_CreateIn(x->in));
+            cJSON_AddItemToObject(j, "indirect", cJSON_CreateIndirect(x->indirect));
+            cJSON_AddItemToObject(j, "infix", cJSON_CreateInfix(x->infix));
+            cJSON_AddItemToObject(j, "init", cJSON_CreateInit(x->init));
+            cJSON_AddItemToObject(j, "inout", cJSON_CreateInout(x->inout));
+            cJSON_AddItemToObject(j, "instanceof", cJSON_CreateInstanceof(x->instanceof));
+            cJSON_AddItemToObject(j, "interface", cJSON_CreateInterface(x->interface));
+            cJSON_AddItemToObject(j, "internal", cJSON_CreateInternal(x->internal));
+            cJSON_AddItemToObject(j, "is", cJSON_CreateIs(x->is));
+            cJSON_AddItemToObject(j, "IsoDateTimeOffsetConverter", cJSON_CreateIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter));
+            cJSON_AddItemToObject(j, "iterable", cJSON_CreateIterable(x->iterable));
+            cJSON_AddItemToObject(j, "jdec", cJSON_CreateJdec(x->jdec));
+            cJSON_AddItemToObject(j, "jenc", cJSON_CreateJenc(x->jenc));
+            cJSON_AddItemToObject(j, "jpipe", cJSON_CreateJpipe(x->jpipe));
+            cJSON_AddItemToObject(j, "json", cJSON_CreateJson(x->json));
+            cJSON_AddItemToObject(j, "JSONAny", cJSON_CreateJsonAny(x->json_any));
+            cJSON_AddItemToObject(j, "JSONCodingKey", cJSON_CreateJsonCodingKey(x->json_coding_key));
+            cJSON_AddItemToObject(j, "json_converter", cJSON_CreateJsonConverter(x->json_converter));
+            cJSON_AddItemToObject(j, "JSONDecoder", cJSON_CreateJsonDecoder(x->json_decoder));
+            cJSON_AddItemToObject(j, "JSONEncoder", cJSON_CreateJsonEncoder(x->json_encoder));
+            cJSON_AddItemToObject(j, "JsonException", cJSON_CreateJsonException(x->json_exception));
+            cJSON_AddItemToObject(j, "JsonGenerator", cJSON_CreateJsonGenerator(x->json_generator));
+            cJSON_AddItemToObject(j, "JsonNode", cJSON_CreateJsonNode(x->json_node));
+            cJSON_AddItemToObject(j, "JSONNull", cJSON_CreateJsonNull(x->json_null));
+            cJSON_AddItemToObject(j, "JsonParser", cJSON_CreateJsonParser(x->json_parser));
+            cJSON_AddItemToObject(j, "JsonReader", cJSON_CreateJsonReader(x->json_reader));
+            cJSON_AddItemToObject(j, "json_serializer", cJSON_CreateJsonSerializer(x->json_serializer));
+            cJSON_AddItemToObject(j, "json_token", cJSON_CreateJsonToken(x->json_token));
+            cJSON_AddItemToObject(j, "JsonTokenType", cJSON_CreateJsonTokenType(x->json_token_type));
+            cJSON_AddItemToObject(j, "json_writer", cJSON_CreateJsonWriter(x->json_writer));
+            cJSON_AddItemToObject(j, "lambda", cJSON_CreateLambda(x->lambda));
+            cJSON_AddItemToObject(j, "lazy", cJSON_CreateLazy(x->lazy));
+            cJSON_AddItemToObject(j, "left", cJSON_CreateLeft(x->left));
+            cJSON_AddItemToObject(j, "let", cJSON_CreateLet(x->let));
+            cJSON_AddItemToObject(j, "list", cJSON_CreateList(x->list));
+            cJSON_AddItemToObject(j, "lock", cJSON_CreateLock(x->lock));
+            cJSON_AddItemToObject(j, "map", cJSON_CreateMap(x->map));
+            cJSON_AddItemToObject(j, "metadata_property_handling", cJSON_CreateMetadataPropertyHandling(x->metadata_property_handling));
+            cJSON_AddItemToObject(j, "mutating", cJSON_CreateMutating(x->mutating));
+            cJSON_AddItemToObject(j, "native", cJSON_CreateNative(x->native));
+            cJSON_AddItemToObject(j, "newtonsoft", cJSON_CreateNewtonsoft(x->newtonsoft));
+            cJSON_AddItemToObject(j, "nil", cJSON_CreateNil(x->nil));
+            cJSON_AddItemToObject(j, "NO", cJSON_CreateNo(x->no));
+            cJSON_AddItemToObject(j, "noSuchMethod", cJSON_CreateNoSuchMethod(x->no_such_method));
+            cJSON_AddItemToObject(j, "nonatomic", cJSON_CreateNonatomic(x->nonatomic));
+            cJSON_AddItemToObject(j, "None", cJSON_CreateNone(x->none));
+            cJSON_AddItemToObject(j, "nonlocal", cJSON_CreateNonlocal(x->nonlocal));
+            cJSON_AddItemToObject(j, "nonmutating", cJSON_CreateNonmutating(x->nonmutating));
+            cJSON_AddItemToObject(j, "NSError", cJSON_CreateNsError(x->ns_error));
+            cJSON_AddItemToObject(j, "NSString", cJSON_CreateNsString(x->ns_string));
+            cJSON_AddItemToObject(j, "NULL", cJSON_CreateNullClass(x->null));
+            cJSON_AddItemToObject(j, "import", cJSON_CreateImport(x->obj3_import));
+            cJSON_AddItemToObject(j, "inline", cJSON_CreateInline(x->obj3_inline));
+            cJSON_AddItemToObject(j, "int", cJSON_CreateInt(x->obj3_int));
+            cJSON_AddItemToObject(j, "long", cJSON_CreateLong(x->obj3_long));
+            cJSON_AddItemToObject(j, "module", cJSON_CreateModule(x->obj3_module));
+            cJSON_AddItemToObject(j, "mutable", cJSON_CreateMutable(x->obj3_mutable));
+            cJSON_AddItemToObject(j, "namespace", cJSON_CreateNamespace(x->obj3_namespace));
+            cJSON_AddItemToObject(j, "new", cJSON_CreateNew(x->obj3_new));
+            cJSON_AddItemToObject(j, "noexcept", cJSON_CreateNoexcept(x->obj3_noexcept));
+            cJSON_AddItemToObject(j, "none", cJSON_CreateNoneClass(x->obj3_none));
+            cJSON_AddItemToObject(j, "not", cJSON_CreateNot(x->obj3_not));
+            cJSON_AddItemToObject(j, "not_eq", cJSON_CreateNotEq(x->obj3_not_eq));
+            cJSON_AddItemToObject(j, "null", cJSON_CreateObj3Null(x->obj3_null));
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintObj3(const struct Obj3 * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateObj3(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteObj3(struct Obj3 * x) {
+    if (NULL != x) {
+        if (NULL != x->in) {
+            cJSON_DeleteIn(x->in);
+        }
+        if (NULL != x->indirect) {
+            cJSON_DeleteIndirect(x->indirect);
+        }
+        if (NULL != x->infix) {
+            cJSON_DeleteInfix(x->infix);
+        }
+        if (NULL != x->init) {
+            cJSON_DeleteInit(x->init);
+        }
+        if (NULL != x->inout) {
+            cJSON_DeleteInout(x->inout);
+        }
+        if (NULL != x->instanceof) {
+            cJSON_DeleteInstanceof(x->instanceof);
+        }
+        if (NULL != x->interface) {
+            cJSON_DeleteInterface(x->interface);
+        }
+        if (NULL != x->internal) {
+            cJSON_DeleteInternal(x->internal);
+        }
+        if (NULL != x->is) {
+            cJSON_DeleteIs(x->is);
+        }
+        if (NULL != x->iso_date_time_offset_converter) {
+            cJSON_DeleteIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter);
+        }
+        if (NULL != x->iterable) {
+            cJSON_DeleteIterable(x->iterable);
+        }
+        if (NULL != x->jdec) {
+            cJSON_DeleteJdec(x->jdec);
+        }
+        if (NULL != x->jenc) {
+            cJSON_DeleteJenc(x->jenc);
+        }
+        if (NULL != x->jpipe) {
+            cJSON_DeleteJpipe(x->jpipe);
+        }
+        if (NULL != x->json) {
+            cJSON_DeleteJson(x->json);
+        }
+        if (NULL != x->json_any) {
+            cJSON_DeleteJsonAny(x->json_any);
+        }
+        if (NULL != x->json_coding_key) {
+            cJSON_DeleteJsonCodingKey(x->json_coding_key);
+        }
+        if (NULL != x->json_converter) {
+            cJSON_DeleteJsonConverter(x->json_converter);
+        }
+        if (NULL != x->json_decoder) {
+            cJSON_DeleteJsonDecoder(x->json_decoder);
+        }
+        if (NULL != x->json_encoder) {
+            cJSON_DeleteJsonEncoder(x->json_encoder);
+        }
+        if (NULL != x->json_exception) {
+            cJSON_DeleteJsonException(x->json_exception);
+        }
+        if (NULL != x->json_generator) {
+            cJSON_DeleteJsonGenerator(x->json_generator);
+        }
+        if (NULL != x->json_node) {
+            cJSON_DeleteJsonNode(x->json_node);
+        }
+        if (NULL != x->json_null) {
+            cJSON_DeleteJsonNull(x->json_null);
+        }
+        if (NULL != x->json_parser) {
+            cJSON_DeleteJsonParser(x->json_parser);
+        }
+        if (NULL != x->json_reader) {
+            cJSON_DeleteJsonReader(x->json_reader);
+        }
+        if (NULL != x->json_serializer) {
+            cJSON_DeleteJsonSerializer(x->json_serializer);
+        }
+        if (NULL != x->json_token) {
+            cJSON_DeleteJsonToken(x->json_token);
+        }
+        if (NULL != x->json_token_type) {
+            cJSON_DeleteJsonTokenType(x->json_token_type);
+        }
+        if (NULL != x->json_writer) {
+            cJSON_DeleteJsonWriter(x->json_writer);
+        }
+        if (NULL != x->lambda) {
+            cJSON_DeleteLambda(x->lambda);
+        }
+        if (NULL != x->lazy) {
+            cJSON_DeleteLazy(x->lazy);
+        }
+        if (NULL != x->left) {
+            cJSON_DeleteLeft(x->left);
+        }
+        if (NULL != x->let) {
+            cJSON_DeleteLet(x->let);
+        }
+        if (NULL != x->list) {
+            cJSON_DeleteList(x->list);
+        }
+        if (NULL != x->lock) {
+            cJSON_DeleteLock(x->lock);
+        }
+        if (NULL != x->map) {
+            cJSON_DeleteMap(x->map);
+        }
+        if (NULL != x->metadata_property_handling) {
+            cJSON_DeleteMetadataPropertyHandling(x->metadata_property_handling);
+        }
+        if (NULL != x->mutating) {
+            cJSON_DeleteMutating(x->mutating);
+        }
+        if (NULL != x->native) {
+            cJSON_DeleteNative(x->native);
+        }
+        if (NULL != x->newtonsoft) {
+            cJSON_DeleteNewtonsoft(x->newtonsoft);
+        }
+        if (NULL != x->nil) {
+            cJSON_DeleteNil(x->nil);
+        }
+        if (NULL != x->no) {
+            cJSON_DeleteNo(x->no);
+        }
+        if (NULL != x->no_such_method) {
+            cJSON_DeleteNoSuchMethod(x->no_such_method);
+        }
+        if (NULL != x->nonatomic) {
+            cJSON_DeleteNonatomic(x->nonatomic);
+        }
+        if (NULL != x->none) {
+            cJSON_DeleteNone(x->none);
+        }
+        if (NULL != x->nonlocal) {
+            cJSON_DeleteNonlocal(x->nonlocal);
+        }
+        if (NULL != x->nonmutating) {
+            cJSON_DeleteNonmutating(x->nonmutating);
+        }
+        if (NULL != x->ns_error) {
+            cJSON_DeleteNsError(x->ns_error);
+        }
+        if (NULL != x->ns_string) {
+            cJSON_DeleteNsString(x->ns_string);
+        }
+        if (NULL != x->null) {
+            cJSON_DeleteNullClass(x->null);
+        }
+        if (NULL != x->obj3_import) {
+            cJSON_DeleteImport(x->obj3_import);
+        }
+        if (NULL != x->obj3_inline) {
+            cJSON_DeleteInline(x->obj3_inline);
+        }
+        if (NULL != x->obj3_int) {
+            cJSON_DeleteInt(x->obj3_int);
+        }
+        if (NULL != x->obj3_long) {
+            cJSON_DeleteLong(x->obj3_long);
+        }
+        if (NULL != x->obj3_module) {
+            cJSON_DeleteModule(x->obj3_module);
+        }
+        if (NULL != x->obj3_mutable) {
+            cJSON_DeleteMutable(x->obj3_mutable);
+        }
+        if (NULL != x->obj3_namespace) {
+            cJSON_DeleteNamespace(x->obj3_namespace);
+        }
+        if (NULL != x->obj3_new) {
+            cJSON_DeleteNew(x->obj3_new);
+        }
+        if (NULL != x->obj3_noexcept) {
+            cJSON_DeleteNoexcept(x->obj3_noexcept);
+        }
+        if (NULL != x->obj3_none) {
+            cJSON_DeleteNoneClass(x->obj3_none);
+        }
+        if (NULL != x->obj3_not) {
+            cJSON_DeleteNot(x->obj3_not);
+        }
+        if (NULL != x->obj3_not_eq) {
+            cJSON_DeleteNotEq(x->obj3_not_eq);
+        }
+        if (NULL != x->obj3_null) {
+            cJSON_DeleteObj3Null(x->obj3_null);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct NumberClass * cJSON_ParseNumberClass(const char * s) {
+    struct NumberClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetNumberClassValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j) {
+    struct NumberClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct NumberClass)))) {
+            memset(x, 0, sizeof(struct NumberClass));
+            if (!cJSON_HasObjectItem(j, "number")) { cJSON_DeleteNumberClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "number")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "number"))) { cJSON_DeleteNumberClass(x); return NULL; }
+                x->number = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "number"));
+            }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateNumberClass(const struct NumberClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "number", x->number);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintNumberClass(const struct NumberClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateNumberClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteNumberClass(struct NumberClass * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Nullptr * cJSON_ParseNullptr(const char * s) {
+    struct Nullptr * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetNullptrValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Nullptr * cJSON_GetNullptrValue(const cJSON * j) {
+    struct Nullptr * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nullptr)))) {
+            memset(x, 0, sizeof(struct Nullptr));
+            if (!cJSON_HasObjectItem(j, "nullptr")) { cJSON_DeleteNullptr(x); return NULL; }
             if (cJSON_HasObjectItem(j, "nullptr")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "nullptr"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_nullptr = cJSON_GetNullptrValue(cJSON_GetObjectItemCaseSensitive(j, "nullptr"));
-                if (NULL == x->obj3_nullptr) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "nullptr"))) { cJSON_DeleteNullptr(x); return NULL; }
+                x->nullptr_nullptr = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "nullptr"));
             }
-            if (!cJSON_HasObjectItem(j, "operator")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateNullptr(const struct Nullptr * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "nullptr", x->nullptr_nullptr);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintNullptr(const struct Nullptr * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateNullptr(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteNullptr(struct Nullptr * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Operator * cJSON_ParseOperator(const char * s) {
+    struct Operator * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetOperatorValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Operator * cJSON_GetOperatorValue(const cJSON * j) {
+    struct Operator * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Operator)))) {
+            memset(x, 0, sizeof(struct Operator));
+            if (!cJSON_HasObjectItem(j, "operator")) { cJSON_DeleteOperator(x); return NULL; }
             if (cJSON_HasObjectItem(j, "operator")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "operator"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_operator = cJSON_GetOperatorValue(cJSON_GetObjectItemCaseSensitive(j, "operator"));
-                if (NULL == x->obj3_operator) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "operator"))) { cJSON_DeleteOperator(x); return NULL; }
+                x->operator_operator = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "operator"));
             }
-            if (!cJSON_HasObjectItem(j, "or")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateOperator(const struct Operator * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "operator", x->operator_operator);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintOperator(const struct Operator * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateOperator(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteOperator(struct Operator * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Or * cJSON_ParseOr(const char * s) {
+    struct Or * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetOrValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Or * cJSON_GetOrValue(const cJSON * j) {
+    struct Or * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Or)))) {
+            memset(x, 0, sizeof(struct Or));
+            if (!cJSON_HasObjectItem(j, "or")) { cJSON_DeleteOr(x); return NULL; }
             if (cJSON_HasObjectItem(j, "or")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "or"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_or = cJSON_GetOrValue(cJSON_GetObjectItemCaseSensitive(j, "or"));
-                if (NULL == x->obj3_or) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "or"))) { cJSON_DeleteOr(x); return NULL; }
+                x->or_or = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "or"));
             }
-            if (!cJSON_HasObjectItem(j, "or_eq")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateOr(const struct Or * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "or", x->or_or);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintOr(const struct Or * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateOr(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteOr(struct Or * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct OrEq * cJSON_ParseOrEq(const char * s) {
+    struct OrEq * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetOrEqValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct OrEq * cJSON_GetOrEqValue(const cJSON * j) {
+    struct OrEq * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct OrEq)))) {
+            memset(x, 0, sizeof(struct OrEq));
+            if (!cJSON_HasObjectItem(j, "or_eq")) { cJSON_DeleteOrEq(x); return NULL; }
             if (cJSON_HasObjectItem(j, "or_eq")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "or_eq"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_or_eq = cJSON_GetOrEqValue(cJSON_GetObjectItemCaseSensitive(j, "or_eq"));
-                if (NULL == x->obj3_or_eq) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "or_eq"))) { cJSON_DeleteOrEq(x); return NULL; }
+                x->or_eq_or_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "or_eq"));
             }
-            if (!cJSON_HasObjectItem(j, "override")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateOrEq(const struct OrEq * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "or_eq", x->or_eq_or_eq);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintOrEq(const struct OrEq * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateOrEq(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteOrEq(struct OrEq * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Override * cJSON_ParseOverride(const char * s) {
+    struct Override * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetOverrideValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Override * cJSON_GetOverrideValue(const cJSON * j) {
+    struct Override * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Override)))) {
+            memset(x, 0, sizeof(struct Override));
+            if (!cJSON_HasObjectItem(j, "override")) { cJSON_DeleteOverride(x); return NULL; }
             if (cJSON_HasObjectItem(j, "override")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "override"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_override = cJSON_GetOverrideValue(cJSON_GetObjectItemCaseSensitive(j, "override"));
-                if (NULL == x->obj3_override) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "override"))) { cJSON_DeleteOverride(x); return NULL; }
+                x->override_override = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "override"));
             }
-            if (!cJSON_HasObjectItem(j, "private")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateOverride(const struct Override * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "override", x->override_override);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintOverride(const struct Override * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateOverride(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteOverride(struct Override * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Private * cJSON_ParsePrivate(const char * s) {
+    struct Private * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetPrivateValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Private * cJSON_GetPrivateValue(const cJSON * j) {
+    struct Private * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Private)))) {
+            memset(x, 0, sizeof(struct Private));
+            if (!cJSON_HasObjectItem(j, "private")) { cJSON_DeletePrivate(x); return NULL; }
             if (cJSON_HasObjectItem(j, "private")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "private"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_private = cJSON_GetPrivateValue(cJSON_GetObjectItemCaseSensitive(j, "private"));
-                if (NULL == x->obj3_private) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "private"))) { cJSON_DeletePrivate(x); return NULL; }
+                x->private_private = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "private"));
             }
-            if (!cJSON_HasObjectItem(j, "protected")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreatePrivate(const struct Private * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "private", x->private_private);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintPrivate(const struct Private * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreatePrivate(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeletePrivate(struct Private * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Protected * cJSON_ParseProtected(const char * s) {
+    struct Protected * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetProtectedValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Protected * cJSON_GetProtectedValue(const cJSON * j) {
+    struct Protected * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Protected)))) {
+            memset(x, 0, sizeof(struct Protected));
+            if (!cJSON_HasObjectItem(j, "protected")) { cJSON_DeleteProtected(x); return NULL; }
             if (cJSON_HasObjectItem(j, "protected")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "protected"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_protected = cJSON_GetProtectedValue(cJSON_GetObjectItemCaseSensitive(j, "protected"));
-                if (NULL == x->obj3_protected) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "protected"))) { cJSON_DeleteProtected(x); return NULL; }
+                x->protected_protected = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "protected"));
             }
-            if (!cJSON_HasObjectItem(j, "protocol")) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateProtected(const struct Protected * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "protected", x->protected_protected);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintProtected(const struct Protected * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateProtected(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteProtected(struct Protected * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct ProtocolClass * cJSON_ParseProtocolClass(const char * s) {
+    struct ProtocolClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetProtocolClassValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct ProtocolClass * cJSON_GetProtocolClassValue(const cJSON * j) {
+    struct ProtocolClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct ProtocolClass)))) {
+            memset(x, 0, sizeof(struct ProtocolClass));
+            if (!cJSON_HasObjectItem(j, "protocol")) { cJSON_DeleteProtocolClass(x); return NULL; }
             if (cJSON_HasObjectItem(j, "protocol")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "protocol"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->obj3_protocol = cJSON_GetProtocolClassValue(cJSON_GetObjectItemCaseSensitive(j, "protocol"));
-                if (NULL == x->obj3_protocol) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "object")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "object")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "object"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->object = cJSON_GetObjectClassValue(cJSON_GetObjectItemCaseSensitive(j, "object"));
-                if (NULL == x->object) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "ObjectMapper")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ObjectMapper")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->object_mapper = cJSON_GetObjectMapperValue(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"));
-                if (NULL == x->object_mapper) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "of")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "of")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "of"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->of = cJSON_GetOfValue(cJSON_GetObjectItemCaseSensitive(j, "of"));
-                if (NULL == x->of) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "oneway")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "oneway")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "oneway"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->oneway = cJSON_GetOnewayValue(cJSON_GetObjectItemCaseSensitive(j, "oneway"));
-                if (NULL == x->oneway) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "open")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "open")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "open"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->open = cJSON_GetOpenValue(cJSON_GetObjectItemCaseSensitive(j, "open"));
-                if (NULL == x->open) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "optional")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "optional")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "optional"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->optional = cJSON_GetOptionalValue(cJSON_GetObjectItemCaseSensitive(j, "optional"));
-                if (NULL == x->optional) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "out")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "out")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "out"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->out = cJSON_GetOutValue(cJSON_GetObjectItemCaseSensitive(j, "out"));
-                if (NULL == x->out) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "package")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "package")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "package"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->package = cJSON_GetPackageValue(cJSON_GetObjectItemCaseSensitive(j, "package"));
-                if (NULL == x->package) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "params")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "params")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "params"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->params = cJSON_GetParamsValue(cJSON_GetObjectItemCaseSensitive(j, "params"));
-                if (NULL == x->params) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "pass")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "pass")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "pass"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->pass = cJSON_GetPassValue(cJSON_GetObjectItemCaseSensitive(j, "pass"));
-                if (NULL == x->pass) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "port")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "port")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "port"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->port = cJSON_GetPortValue(cJSON_GetObjectItemCaseSensitive(j, "port"));
-                if (NULL == x->port) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "postfix")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "postfix")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "postfix"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->postfix = cJSON_GetPostfixValue(cJSON_GetObjectItemCaseSensitive(j, "postfix"));
-                if (NULL == x->postfix) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "precedence")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "precedence")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "precedence"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->precedence = cJSON_GetPrecedenceValue(cJSON_GetObjectItemCaseSensitive(j, "precedence"));
-                if (NULL == x->precedence) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "prefix")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "prefix")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "prefix"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->prefix = cJSON_GetPrefixValue(cJSON_GetObjectItemCaseSensitive(j, "prefix"));
-                if (NULL == x->prefix) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "print")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "print")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "print"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->print = cJSON_GetPrintValue(cJSON_GetObjectItemCaseSensitive(j, "print"));
-                if (NULL == x->print) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "printMembers")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "printMembers")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "printMembers"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->print_members = cJSON_GetPrintMembersValue(cJSON_GetObjectItemCaseSensitive(j, "printMembers"));
-                if (NULL == x->print_members) { cJSON_DeleteObj3(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "printf")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "printf")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "printf"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->printf = cJSON_GetPrintfValue(cJSON_GetObjectItemCaseSensitive(j, "printf"));
-                if (NULL == x->printf) { cJSON_DeleteObj3(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "protocol"))) { cJSON_DeleteProtocolClass(x); return NULL; }
+                x->protocol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "protocol"));
             }
-            if (!cJSON_HasObjectItem(j, "Protocol")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Protocol")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Protocol"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->protocol = cJSON_GetProtocolValue(cJSON_GetObjectItemCaseSensitive(j, "Protocol"));
-                if (NULL == x->protocol) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateProtocolClass(const struct ProtocolClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "protocol", x->protocol);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintProtocolClass(const struct ProtocolClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateProtocolClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteProtocolClass(struct ProtocolClass * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Public * cJSON_ParsePublic(const char * s) {
+    struct Public * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetPublicValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Public * cJSON_GetPublicValue(const cJSON * j) {
+    struct Public * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Public)))) {
+            memset(x, 0, sizeof(struct Public));
+            if (!cJSON_HasObjectItem(j, "public")) { cJSON_DeletePublic(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "public")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "public"))) { cJSON_DeletePublic(x); return NULL; }
+                x->public_public = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "public"));
             }
-            if (!cJSON_HasObjectItem(j, "SerializerProvider")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "SerializerProvider")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->serializer_provider = cJSON_GetSerializerProviderValue(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"));
-                if (NULL == x->serializer_provider) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreatePublic(const struct Public * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "public", x->public_public);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintPublic(const struct Public * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreatePublic(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeletePublic(struct Public * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Register * cJSON_ParseRegister(const char * s) {
+    struct Register * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetRegisterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Register * cJSON_GetRegisterValue(const cJSON * j) {
+    struct Register * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Register)))) {
+            memset(x, 0, sizeof(struct Register));
+            if (!cJSON_HasObjectItem(j, "register")) { cJSON_DeleteRegister(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "register")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "register"))) { cJSON_DeleteRegister(x); return NULL; }
+                x->register_register = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "register"));
             }
-            if (!cJSON_HasObjectItem(j, "SimpleModule")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "SimpleModule")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->simple_module = cJSON_GetSimpleModuleValue(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"));
-                if (NULL == x->simple_module) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateRegister(const struct Register * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "register", x->register_register);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintRegister(const struct Register * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateRegister(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteRegister(struct Register * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct ReinterpretCast * cJSON_ParseReinterpretCast(const char * s) {
+    struct ReinterpretCast * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetReinterpretCastValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct ReinterpretCast * cJSON_GetReinterpretCastValue(const cJSON * j) {
+    struct ReinterpretCast * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct ReinterpretCast)))) {
+            memset(x, 0, sizeof(struct ReinterpretCast));
+            if (!cJSON_HasObjectItem(j, "reinterpret_cast")) { cJSON_DeleteReinterpretCast(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "reinterpret_cast")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"))) { cJSON_DeleteReinterpretCast(x); return NULL; }
+                x->reinterpret_cast_reinterpret_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"));
             }
-            if (!cJSON_HasObjectItem(j, "StdDeserializer")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "StdDeserializer")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->std_deserializer = cJSON_GetStdDeserializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"));
-                if (NULL == x->std_deserializer) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateReinterpretCast(const struct ReinterpretCast * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "reinterpret_cast", x->reinterpret_cast_reinterpret_cast);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintReinterpretCast(const struct ReinterpretCast * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateReinterpretCast(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteReinterpretCast(struct ReinterpretCast * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Requires * cJSON_ParseRequires(const char * s) {
+    struct Requires * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetRequiresValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Requires * cJSON_GetRequiresValue(const cJSON * j) {
+    struct Requires * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Requires)))) {
+            memset(x, 0, sizeof(struct Requires));
+            if (!cJSON_HasObjectItem(j, "requires")) { cJSON_DeleteRequires(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "requires")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "requires"))) { cJSON_DeleteRequires(x); return NULL; }
+                x->requires_requires = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "requires"));
             }
-            if (!cJSON_HasObjectItem(j, "StdSerializer")) { cJSON_DeleteObj3(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "StdSerializer")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"))) { cJSON_DeleteObj3(x); return NULL; }
-                x->std_serializer = cJSON_GetStdSerializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"));
-                if (NULL == x->std_serializer) { cJSON_DeleteObj3(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateRequires(const struct Requires * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "requires", x->requires_requires);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintRequires(const struct Requires * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateRequires(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteRequires(struct Requires * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Restrict * cJSON_ParseRestrict(const char * s) {
+    struct Restrict * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetRestrictValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Restrict * cJSON_GetRestrictValue(const cJSON * j) {
+    struct Restrict * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Restrict)))) {
+            memset(x, 0, sizeof(struct Restrict));
+            if (!cJSON_HasObjectItem(j, "restrict")) { cJSON_DeleteRestrict(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "restrict")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "restrict"))) { cJSON_DeleteRestrict(x); return NULL; }
+                x->restrict_restrict = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "restrict"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObj3(const struct Obj3 * x) {
+cJSON * cJSON_CreateRestrict(const struct Restrict * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "dummy", x->dummy);
-            cJSON_AddItemToObject(j, "is", cJSON_CreateIs(x->is));
-            cJSON_AddItemToObject(j, "IsoDateTimeOffsetConverter", cJSON_CreateIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter));
-            cJSON_AddItemToObject(j, "iterable", cJSON_CreateIterable(x->iterable));
-            cJSON_AddItemToObject(j, "jdec", cJSON_CreateJdec(x->jdec));
-            cJSON_AddItemToObject(j, "jenc", cJSON_CreateJenc(x->jenc));
-            cJSON_AddItemToObject(j, "jpipe", cJSON_CreateJpipe(x->jpipe));
-            cJSON_AddItemToObject(j, "json", cJSON_CreateJson(x->json));
-            cJSON_AddItemToObject(j, "JSONAny", cJSON_CreateJsonAny(x->json_any));
-            cJSON_AddItemToObject(j, "JSONCodingKey", cJSON_CreateJsonCodingKey(x->json_coding_key));
-            cJSON_AddItemToObject(j, "json_converter", cJSON_CreateJsonConverter(x->json_converter));
-            cJSON_AddItemToObject(j, "JSONDecoder", cJSON_CreateJsonDecoder(x->json_decoder));
-            cJSON_AddItemToObject(j, "JSONEncoder", cJSON_CreateJsonEncoder(x->json_encoder));
-            cJSON_AddItemToObject(j, "JsonException", cJSON_CreateJsonException(x->json_exception));
-            cJSON_AddItemToObject(j, "JsonGenerator", cJSON_CreateJsonGenerator(x->json_generator));
-            cJSON_AddItemToObject(j, "JsonNode", cJSON_CreateJsonNode(x->json_node));
-            cJSON_AddItemToObject(j, "JSONNull", cJSON_CreateJsonNull(x->json_null));
-            cJSON_AddItemToObject(j, "JsonParser", cJSON_CreateJsonParser(x->json_parser));
-            cJSON_AddItemToObject(j, "JsonReader", cJSON_CreateJsonReader(x->json_reader));
-            cJSON_AddItemToObject(j, "json_serializer", cJSON_CreateJsonSerializer(x->json_serializer));
-            cJSON_AddItemToObject(j, "json_token", cJSON_CreateJsonToken(x->json_token));
-            cJSON_AddItemToObject(j, "JsonTokenType", cJSON_CreateJsonTokenType(x->json_token_type));
-            cJSON_AddItemToObject(j, "json_writer", cJSON_CreateJsonWriter(x->json_writer));
-            cJSON_AddItemToObject(j, "lambda", cJSON_CreateLambda(x->lambda));
-            cJSON_AddItemToObject(j, "lazy", cJSON_CreateLazy(x->lazy));
-            cJSON_AddItemToObject(j, "left", cJSON_CreateLeft(x->left));
-            cJSON_AddItemToObject(j, "let", cJSON_CreateLet(x->let));
-            cJSON_AddItemToObject(j, "list", cJSON_CreateList(x->list));
-            cJSON_AddItemToObject(j, "lock", cJSON_CreateLock(x->lock));
-            cJSON_AddItemToObject(j, "map", cJSON_CreateMap(x->map));
-            cJSON_AddItemToObject(j, "metadata_property_handling", cJSON_CreateMetadataPropertyHandling(x->metadata_property_handling));
-            cJSON_AddItemToObject(j, "mutating", cJSON_CreateMutating(x->mutating));
-            cJSON_AddItemToObject(j, "native", cJSON_CreateNative(x->native));
-            cJSON_AddItemToObject(j, "newtonsoft", cJSON_CreateNewtonsoft(x->newtonsoft));
-            cJSON_AddItemToObject(j, "nil", cJSON_CreateNil(x->nil));
-            cJSON_AddItemToObject(j, "NO", cJSON_CreateNo(x->no));
-            cJSON_AddItemToObject(j, "noSuchMethod", cJSON_CreateNoSuchMethod(x->no_such_method));
-            cJSON_AddItemToObject(j, "nonatomic", cJSON_CreateNonatomic(x->nonatomic));
-            cJSON_AddItemToObject(j, "None", cJSON_CreateNone(x->none));
-            cJSON_AddItemToObject(j, "nonlocal", cJSON_CreateNonlocal(x->nonlocal));
-            cJSON_AddItemToObject(j, "nonmutating", cJSON_CreateNonmutating(x->nonmutating));
-            cJSON_AddItemToObject(j, "NSError", cJSON_CreateNsError(x->ns_error));
-            cJSON_AddItemToObject(j, "NSString", cJSON_CreateNsString(x->ns_string));
-            cJSON_AddItemToObject(j, "NULL", cJSON_CreateNullClass(x->null));
-            cJSON_AddItemToObject(j, "number", cJSON_CreateNumberClass(x->number));
-            cJSON_AddItemToObject(j, "long", cJSON_CreateLong(x->obj3_long));
-            cJSON_AddItemToObject(j, "module", cJSON_CreateModule(x->obj3_module));
-            cJSON_AddItemToObject(j, "mutable", cJSON_CreateMutable(x->obj3_mutable));
-            cJSON_AddItemToObject(j, "namespace", cJSON_CreateNamespace(x->obj3_namespace));
-            cJSON_AddItemToObject(j, "new", cJSON_CreateNew(x->obj3_new));
-            cJSON_AddItemToObject(j, "noexcept", cJSON_CreateNoexcept(x->obj3_noexcept));
-            cJSON_AddItemToObject(j, "none", cJSON_CreateNoneClass(x->obj3_none));
-            cJSON_AddItemToObject(j, "not", cJSON_CreateNot(x->obj3_not));
-            cJSON_AddItemToObject(j, "not_eq", cJSON_CreateNotEq(x->obj3_not_eq));
-            cJSON_AddItemToObject(j, "null", cJSON_CreateObj3Null(x->obj3_null));
-            cJSON_AddItemToObject(j, "nullptr", cJSON_CreateNullptr(x->obj3_nullptr));
-            cJSON_AddItemToObject(j, "operator", cJSON_CreateOperator(x->obj3_operator));
-            cJSON_AddItemToObject(j, "or", cJSON_CreateOr(x->obj3_or));
-            cJSON_AddItemToObject(j, "or_eq", cJSON_CreateOrEq(x->obj3_or_eq));
-            cJSON_AddItemToObject(j, "override", cJSON_CreateOverride(x->obj3_override));
-            cJSON_AddItemToObject(j, "private", cJSON_CreatePrivate(x->obj3_private));
-            cJSON_AddItemToObject(j, "protected", cJSON_CreateProtected(x->obj3_protected));
-            cJSON_AddItemToObject(j, "protocol", cJSON_CreateProtocolClass(x->obj3_protocol));
-            cJSON_AddItemToObject(j, "object", cJSON_CreateObjectClass(x->object));
-            cJSON_AddItemToObject(j, "ObjectMapper", cJSON_CreateObjectMapper(x->object_mapper));
-            cJSON_AddItemToObject(j, "of", cJSON_CreateOf(x->of));
-            cJSON_AddItemToObject(j, "oneway", cJSON_CreateOneway(x->oneway));
-            cJSON_AddItemToObject(j, "open", cJSON_CreateOpen(x->open));
-            cJSON_AddItemToObject(j, "optional", cJSON_CreateOptional(x->optional));
-            cJSON_AddItemToObject(j, "out", cJSON_CreateOut(x->out));
-            cJSON_AddItemToObject(j, "package", cJSON_CreatePackage(x->package));
-            cJSON_AddItemToObject(j, "params", cJSON_CreateParams(x->params));
-            cJSON_AddItemToObject(j, "pass", cJSON_CreatePass(x->pass));
-            cJSON_AddItemToObject(j, "port", cJSON_CreatePort(x->port));
-            cJSON_AddItemToObject(j, "postfix", cJSON_CreatePostfix(x->postfix));
-            cJSON_AddItemToObject(j, "precedence", cJSON_CreatePrecedence(x->precedence));
-            cJSON_AddItemToObject(j, "prefix", cJSON_CreatePrefix(x->prefix));
-            cJSON_AddItemToObject(j, "print", cJSON_CreatePrint(x->print));
-            cJSON_AddItemToObject(j, "printMembers", cJSON_CreatePrintMembers(x->print_members));
-            cJSON_AddItemToObject(j, "printf", cJSON_CreatePrintf(x->printf));
-            cJSON_AddItemToObject(j, "Protocol", cJSON_CreateProtocol(x->protocol));
-            cJSON_AddItemToObject(j, "SerializerProvider", cJSON_CreateSerializerProvider(x->serializer_provider));
-            cJSON_AddItemToObject(j, "SimpleModule", cJSON_CreateSimpleModule(x->simple_module));
-            cJSON_AddItemToObject(j, "StdDeserializer", cJSON_CreateStdDeserializer(x->std_deserializer));
-            cJSON_AddItemToObject(j, "StdSerializer", cJSON_CreateStdSerializer(x->std_serializer));
+            cJSON_AddNumberToObject(j, "restrict", x->restrict_restrict);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObj3(const struct Obj3 * x) {
+char * cJSON_PrintRestrict(const struct Restrict * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObj3(x);
+        cJSON * j = cJSON_CreateRestrict(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14473,305 +13480,493 @@ char * cJSON_PrintObj3(const struct Obj3 * x) {
     return s;
 }
 
-void cJSON_DeleteObj3(struct Obj3 * x) {
+void cJSON_DeleteRestrict(struct Restrict * x) {
     if (NULL != x) {
-        if (NULL != x->is) {
-            cJSON_DeleteIs(x->is);
-        }
-        if (NULL != x->iso_date_time_offset_converter) {
-            cJSON_DeleteIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter);
-        }
-        if (NULL != x->iterable) {
-            cJSON_DeleteIterable(x->iterable);
-        }
-        if (NULL != x->jdec) {
-            cJSON_DeleteJdec(x->jdec);
-        }
-        if (NULL != x->jenc) {
-            cJSON_DeleteJenc(x->jenc);
-        }
-        if (NULL != x->jpipe) {
-            cJSON_DeleteJpipe(x->jpipe);
-        }
-        if (NULL != x->json) {
-            cJSON_DeleteJson(x->json);
-        }
-        if (NULL != x->json_any) {
-            cJSON_DeleteJsonAny(x->json_any);
-        }
-        if (NULL != x->json_coding_key) {
-            cJSON_DeleteJsonCodingKey(x->json_coding_key);
-        }
-        if (NULL != x->json_converter) {
-            cJSON_DeleteJsonConverter(x->json_converter);
-        }
-        if (NULL != x->json_decoder) {
-            cJSON_DeleteJsonDecoder(x->json_decoder);
-        }
-        if (NULL != x->json_encoder) {
-            cJSON_DeleteJsonEncoder(x->json_encoder);
-        }
-        if (NULL != x->json_exception) {
-            cJSON_DeleteJsonException(x->json_exception);
-        }
-        if (NULL != x->json_generator) {
-            cJSON_DeleteJsonGenerator(x->json_generator);
-        }
-        if (NULL != x->json_node) {
-            cJSON_DeleteJsonNode(x->json_node);
-        }
-        if (NULL != x->json_null) {
-            cJSON_DeleteJsonNull(x->json_null);
-        }
-        if (NULL != x->json_parser) {
-            cJSON_DeleteJsonParser(x->json_parser);
-        }
-        if (NULL != x->json_reader) {
-            cJSON_DeleteJsonReader(x->json_reader);
-        }
-        if (NULL != x->json_serializer) {
-            cJSON_DeleteJsonSerializer(x->json_serializer);
-        }
-        if (NULL != x->json_token) {
-            cJSON_DeleteJsonToken(x->json_token);
-        }
-        if (NULL != x->json_token_type) {
-            cJSON_DeleteJsonTokenType(x->json_token_type);
-        }
-        if (NULL != x->json_writer) {
-            cJSON_DeleteJsonWriter(x->json_writer);
-        }
-        if (NULL != x->lambda) {
-            cJSON_DeleteLambda(x->lambda);
-        }
-        if (NULL != x->lazy) {
-            cJSON_DeleteLazy(x->lazy);
-        }
-        if (NULL != x->left) {
-            cJSON_DeleteLeft(x->left);
-        }
-        if (NULL != x->let) {
-            cJSON_DeleteLet(x->let);
-        }
-        if (NULL != x->list) {
-            cJSON_DeleteList(x->list);
-        }
-        if (NULL != x->lock) {
-            cJSON_DeleteLock(x->lock);
-        }
-        if (NULL != x->map) {
-            cJSON_DeleteMap(x->map);
-        }
-        if (NULL != x->metadata_property_handling) {
-            cJSON_DeleteMetadataPropertyHandling(x->metadata_property_handling);
-        }
-        if (NULL != x->mutating) {
-            cJSON_DeleteMutating(x->mutating);
-        }
-        if (NULL != x->native) {
-            cJSON_DeleteNative(x->native);
-        }
-        if (NULL != x->newtonsoft) {
-            cJSON_DeleteNewtonsoft(x->newtonsoft);
-        }
-        if (NULL != x->nil) {
-            cJSON_DeleteNil(x->nil);
-        }
-        if (NULL != x->no) {
-            cJSON_DeleteNo(x->no);
-        }
-        if (NULL != x->no_such_method) {
-            cJSON_DeleteNoSuchMethod(x->no_such_method);
-        }
-        if (NULL != x->nonatomic) {
-            cJSON_DeleteNonatomic(x->nonatomic);
-        }
-        if (NULL != x->none) {
-            cJSON_DeleteNone(x->none);
-        }
-        if (NULL != x->nonlocal) {
-            cJSON_DeleteNonlocal(x->nonlocal);
-        }
-        if (NULL != x->nonmutating) {
-            cJSON_DeleteNonmutating(x->nonmutating);
-        }
-        if (NULL != x->ns_error) {
-            cJSON_DeleteNsError(x->ns_error);
-        }
-        if (NULL != x->ns_string) {
-            cJSON_DeleteNsString(x->ns_string);
-        }
-        if (NULL != x->null) {
-            cJSON_DeleteNullClass(x->null);
-        }
-        if (NULL != x->number) {
-            cJSON_DeleteNumberClass(x->number);
-        }
-        if (NULL != x->obj3_long) {
-            cJSON_DeleteLong(x->obj3_long);
-        }
-        if (NULL != x->obj3_module) {
-            cJSON_DeleteModule(x->obj3_module);
-        }
-        if (NULL != x->obj3_mutable) {
-            cJSON_DeleteMutable(x->obj3_mutable);
-        }
-        if (NULL != x->obj3_namespace) {
-            cJSON_DeleteNamespace(x->obj3_namespace);
-        }
-        if (NULL != x->obj3_new) {
-            cJSON_DeleteNew(x->obj3_new);
-        }
-        if (NULL != x->obj3_noexcept) {
-            cJSON_DeleteNoexcept(x->obj3_noexcept);
-        }
-        if (NULL != x->obj3_none) {
-            cJSON_DeleteNoneClass(x->obj3_none);
-        }
-        if (NULL != x->obj3_not) {
-            cJSON_DeleteNot(x->obj3_not);
-        }
-        if (NULL != x->obj3_not_eq) {
-            cJSON_DeleteNotEq(x->obj3_not_eq);
+        cJSON_free(x);
+    }
+}
+
+struct Return * cJSON_ParseReturn(const char * s) {
+    struct Return * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetReturnValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->obj3_null) {
-            cJSON_DeleteObj3Null(x->obj3_null);
+    }
+    return x;
+}
+
+struct Return * cJSON_GetReturnValue(const cJSON * j) {
+    struct Return * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Return)))) {
+            memset(x, 0, sizeof(struct Return));
+            if (!cJSON_HasObjectItem(j, "return")) { cJSON_DeleteReturn(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "return")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "return"))) { cJSON_DeleteReturn(x); return NULL; }
+                x->return_return = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "return"));
+            }
         }
-        if (NULL != x->obj3_nullptr) {
-            cJSON_DeleteNullptr(x->obj3_nullptr);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateReturn(const struct Return * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "return", x->return_return);
         }
-        if (NULL != x->obj3_operator) {
-            cJSON_DeleteOperator(x->obj3_operator);
+    }
+    return j;
+}
+
+char * cJSON_PrintReturn(const struct Return * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateReturn(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->obj3_or) {
-            cJSON_DeleteOr(x->obj3_or);
+    }
+    return s;
+}
+
+void cJSON_DeleteReturn(struct Return * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct SelfClass * cJSON_ParseSelfClass(const char * s) {
+    struct SelfClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSelfClassValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->obj3_or_eq) {
-            cJSON_DeleteOrEq(x->obj3_or_eq);
+    }
+    return x;
+}
+
+struct SelfClass * cJSON_GetSelfClassValue(const cJSON * j) {
+    struct SelfClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct SelfClass)))) {
+            memset(x, 0, sizeof(struct SelfClass));
+            if (!cJSON_HasObjectItem(j, "self")) { cJSON_DeleteSelfClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "self")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "self"))) { cJSON_DeleteSelfClass(x); return NULL; }
+                x->self = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "self"));
+            }
         }
-        if (NULL != x->obj3_override) {
-            cJSON_DeleteOverride(x->obj3_override);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSelfClass(const struct SelfClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "self", x->self);
         }
-        if (NULL != x->obj3_private) {
-            cJSON_DeletePrivate(x->obj3_private);
+    }
+    return j;
+}
+
+char * cJSON_PrintSelfClass(const struct SelfClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSelfClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->obj3_protected) {
-            cJSON_DeleteProtected(x->obj3_protected);
+    }
+    return s;
+}
+
+void cJSON_DeleteSelfClass(struct SelfClass * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Short * cJSON_ParseShort(const char * s) {
+    struct Short * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetShortValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->obj3_protocol) {
-            cJSON_DeleteProtocolClass(x->obj3_protocol);
+    }
+    return x;
+}
+
+struct Short * cJSON_GetShortValue(const cJSON * j) {
+    struct Short * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Short)))) {
+            memset(x, 0, sizeof(struct Short));
+            if (!cJSON_HasObjectItem(j, "short")) { cJSON_DeleteShort(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "short")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "short"))) { cJSON_DeleteShort(x); return NULL; }
+                x->short_short = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "short"));
+            }
         }
-        if (NULL != x->object) {
-            cJSON_DeleteObjectClass(x->object);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateShort(const struct Short * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "short", x->short_short);
         }
-        if (NULL != x->object_mapper) {
-            cJSON_DeleteObjectMapper(x->object_mapper);
+    }
+    return j;
+}
+
+char * cJSON_PrintShort(const struct Short * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateShort(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->of) {
-            cJSON_DeleteOf(x->of);
+    }
+    return s;
+}
+
+void cJSON_DeleteShort(struct Short * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Signed * cJSON_ParseSigned(const char * s) {
+    struct Signed * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSignedValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->oneway) {
-            cJSON_DeleteOneway(x->oneway);
+    }
+    return x;
+}
+
+struct Signed * cJSON_GetSignedValue(const cJSON * j) {
+    struct Signed * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Signed)))) {
+            memset(x, 0, sizeof(struct Signed));
+            if (!cJSON_HasObjectItem(j, "signed")) { cJSON_DeleteSigned(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "signed")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "signed"))) { cJSON_DeleteSigned(x); return NULL; }
+                x->signed_signed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "signed"));
+            }
         }
-        if (NULL != x->open) {
-            cJSON_DeleteOpen(x->open);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSigned(const struct Signed * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "signed", x->signed_signed);
         }
-        if (NULL != x->optional) {
-            cJSON_DeleteOptional(x->optional);
+    }
+    return j;
+}
+
+char * cJSON_PrintSigned(const struct Signed * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSigned(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->out) {
-            cJSON_DeleteOut(x->out);
+    }
+    return s;
+}
+
+void cJSON_DeleteSigned(struct Signed * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Sizeof * cJSON_ParseSizeof(const char * s) {
+    struct Sizeof * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSizeofValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->package) {
-            cJSON_DeletePackage(x->package);
+    }
+    return x;
+}
+
+struct Sizeof * cJSON_GetSizeofValue(const cJSON * j) {
+    struct Sizeof * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sizeof)))) {
+            memset(x, 0, sizeof(struct Sizeof));
+            if (!cJSON_HasObjectItem(j, "sizeof")) { cJSON_DeleteSizeof(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "sizeof")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sizeof"))) { cJSON_DeleteSizeof(x); return NULL; }
+                x->sizeof_sizeof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sizeof"));
+            }
         }
-        if (NULL != x->params) {
-            cJSON_DeleteParams(x->params);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSizeof(const struct Sizeof * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "sizeof", x->sizeof_sizeof);
         }
-        if (NULL != x->pass) {
-            cJSON_DeletePass(x->pass);
+    }
+    return j;
+}
+
+char * cJSON_PrintSizeof(const struct Sizeof * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSizeof(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->port) {
-            cJSON_DeletePort(x->port);
+    }
+    return s;
+}
+
+void cJSON_DeleteSizeof(struct Sizeof * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Static * cJSON_ParseStatic(const char * s) {
+    struct Static * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStaticValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->postfix) {
-            cJSON_DeletePostfix(x->postfix);
+    }
+    return x;
+}
+
+struct Static * cJSON_GetStaticValue(const cJSON * j) {
+    struct Static * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Static)))) {
+            memset(x, 0, sizeof(struct Static));
+            if (!cJSON_HasObjectItem(j, "static")) { cJSON_DeleteStatic(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static"))) { cJSON_DeleteStatic(x); return NULL; }
+                x->static_static = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static"));
+            }
         }
-        if (NULL != x->precedence) {
-            cJSON_DeletePrecedence(x->precedence);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStatic(const struct Static * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "static", x->static_static);
         }
-        if (NULL != x->prefix) {
-            cJSON_DeletePrefix(x->prefix);
+    }
+    return j;
+}
+
+char * cJSON_PrintStatic(const struct Static * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStatic(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->print) {
-            cJSON_DeletePrint(x->print);
+    }
+    return s;
+}
+
+void cJSON_DeleteStatic(struct Static * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct StaticAssert * cJSON_ParseStaticAssert(const char * s) {
+    struct StaticAssert * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStaticAssertValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->print_members) {
-            cJSON_DeletePrintMembers(x->print_members);
+    }
+    return x;
+}
+
+struct StaticAssert * cJSON_GetStaticAssertValue(const cJSON * j) {
+    struct StaticAssert * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct StaticAssert)))) {
+            memset(x, 0, sizeof(struct StaticAssert));
+            if (!cJSON_HasObjectItem(j, "static_assert")) { cJSON_DeleteStaticAssert(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static_assert")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static_assert"))) { cJSON_DeleteStaticAssert(x); return NULL; }
+                x->static_assert_static_assert = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static_assert"));
+            }
         }
-        if (NULL != x->printf) {
-            cJSON_DeletePrintf(x->printf);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStaticAssert(const struct StaticAssert * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "static_assert", x->static_assert_static_assert);
         }
-        if (NULL != x->protocol) {
-            cJSON_DeleteProtocol(x->protocol);
+    }
+    return j;
+}
+
+char * cJSON_PrintStaticAssert(const struct StaticAssert * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStaticAssert(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->serializer_provider) {
-            cJSON_DeleteSerializerProvider(x->serializer_provider);
+    }
+    return s;
+}
+
+void cJSON_DeleteStaticAssert(struct StaticAssert * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct ObjectClass * cJSON_ParseObjectClass(const char * s) {
+    struct ObjectClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetObjectClassValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->simple_module) {
-            cJSON_DeleteSimpleModule(x->simple_module);
+    }
+    return x;
+}
+
+struct ObjectClass * cJSON_GetObjectClassValue(const cJSON * j) {
+    struct ObjectClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectClass)))) {
+            memset(x, 0, sizeof(struct ObjectClass));
+            if (!cJSON_HasObjectItem(j, "object")) { cJSON_DeleteObjectClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "object")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "object"))) { cJSON_DeleteObjectClass(x); return NULL; }
+                x->object = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "object"));
+            }
         }
-        if (NULL != x->std_deserializer) {
-            cJSON_DeleteStdDeserializer(x->std_deserializer);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "object", x->object);
         }
-        if (NULL != x->std_serializer) {
-            cJSON_DeleteStdSerializer(x->std_serializer);
+    }
+    return j;
+}
+
+char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateObjectClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
+    }
+    return s;
+}
+
+void cJSON_DeleteObjectClass(struct ObjectClass * x) {
+    if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Public * cJSON_ParsePublic(const char * s) {
-    struct Public * x = NULL;
+struct ObjectMapper * cJSON_ParseObjectMapper(const char * s) {
+    struct ObjectMapper * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPublicValue(j);
+            x = cJSON_GetObjectMapperValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Public * cJSON_GetPublicValue(const cJSON * j) {
-    struct Public * x = NULL;
+struct ObjectMapper * cJSON_GetObjectMapperValue(const cJSON * j) {
+    struct ObjectMapper * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Public)))) {
-            memset(x, 0, sizeof(struct Public));
-            if (!cJSON_HasObjectItem(j, "public")) { cJSON_DeletePublic(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "public")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "public"))) { cJSON_DeletePublic(x); return NULL; }
-                x->public_public = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "public"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectMapper)))) {
+            memset(x, 0, sizeof(struct ObjectMapper));
+            if (!cJSON_HasObjectItem(j, "ObjectMapper")) { cJSON_DeleteObjectMapper(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ObjectMapper")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"))) { cJSON_DeleteObjectMapper(x); return NULL; }
+                x->object_mapper = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePublic(const struct Public * x) {
+cJSON * cJSON_CreateObjectMapper(const struct ObjectMapper * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "public", x->public_public);
+            cJSON_AddNumberToObject(j, "ObjectMapper", x->object_mapper);
         }
     }
     return j;
 }
 
-char * cJSON_PrintPublic(const struct Public * x) {
+char * cJSON_PrintObjectMapper(const struct ObjectMapper * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePublic(x);
+        cJSON * j = cJSON_CreateObjectMapper(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14780,53 +13975,53 @@ char * cJSON_PrintPublic(const struct Public * x) {
     return s;
 }
 
-void cJSON_DeletePublic(struct Public * x) {
+void cJSON_DeleteObjectMapper(struct ObjectMapper * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Register * cJSON_ParseRegister(const char * s) {
-    struct Register * x = NULL;
+struct Of * cJSON_ParseOf(const char * s) {
+    struct Of * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRegisterValue(j);
+            x = cJSON_GetOfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Register * cJSON_GetRegisterValue(const cJSON * j) {
-    struct Register * x = NULL;
+struct Of * cJSON_GetOfValue(const cJSON * j) {
+    struct Of * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Register)))) {
-            memset(x, 0, sizeof(struct Register));
-            if (!cJSON_HasObjectItem(j, "register")) { cJSON_DeleteRegister(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "register")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "register"))) { cJSON_DeleteRegister(x); return NULL; }
-                x->register_register = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "register"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Of)))) {
+            memset(x, 0, sizeof(struct Of));
+            if (!cJSON_HasObjectItem(j, "of")) { cJSON_DeleteOf(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "of")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "of"))) { cJSON_DeleteOf(x); return NULL; }
+                x->of = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "of"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRegister(const struct Register * x) {
+cJSON * cJSON_CreateOf(const struct Of * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "register", x->register_register);
+            cJSON_AddNumberToObject(j, "of", x->of);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRegister(const struct Register * x) {
+char * cJSON_PrintOf(const struct Of * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRegister(x);
+        cJSON * j = cJSON_CreateOf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14835,53 +14030,53 @@ char * cJSON_PrintRegister(const struct Register * x) {
     return s;
 }
 
-void cJSON_DeleteRegister(struct Register * x) {
+void cJSON_DeleteOf(struct Of * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ReinterpretCast * cJSON_ParseReinterpretCast(const char * s) {
-    struct ReinterpretCast * x = NULL;
+struct Oneway * cJSON_ParseOneway(const char * s) {
+    struct Oneway * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetReinterpretCastValue(j);
+            x = cJSON_GetOnewayValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ReinterpretCast * cJSON_GetReinterpretCastValue(const cJSON * j) {
-    struct ReinterpretCast * x = NULL;
+struct Oneway * cJSON_GetOnewayValue(const cJSON * j) {
+    struct Oneway * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ReinterpretCast)))) {
-            memset(x, 0, sizeof(struct ReinterpretCast));
-            if (!cJSON_HasObjectItem(j, "reinterpret_cast")) { cJSON_DeleteReinterpretCast(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "reinterpret_cast")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"))) { cJSON_DeleteReinterpretCast(x); return NULL; }
-                x->reinterpret_cast_reinterpret_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Oneway)))) {
+            memset(x, 0, sizeof(struct Oneway));
+            if (!cJSON_HasObjectItem(j, "oneway")) { cJSON_DeleteOneway(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "oneway")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "oneway"))) { cJSON_DeleteOneway(x); return NULL; }
+                x->oneway = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "oneway"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateReinterpretCast(const struct ReinterpretCast * x) {
+cJSON * cJSON_CreateOneway(const struct Oneway * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "reinterpret_cast", x->reinterpret_cast_reinterpret_cast);
+            cJSON_AddNumberToObject(j, "oneway", x->oneway);
         }
     }
     return j;
 }
 
-char * cJSON_PrintReinterpretCast(const struct ReinterpretCast * x) {
+char * cJSON_PrintOneway(const struct Oneway * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateReinterpretCast(x);
+        cJSON * j = cJSON_CreateOneway(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14890,53 +14085,53 @@ char * cJSON_PrintReinterpretCast(const struct ReinterpretCast * x) {
     return s;
 }
 
-void cJSON_DeleteReinterpretCast(struct ReinterpretCast * x) {
+void cJSON_DeleteOneway(struct Oneway * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Requires * cJSON_ParseRequires(const char * s) {
-    struct Requires * x = NULL;
+struct Open * cJSON_ParseOpen(const char * s) {
+    struct Open * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRequiresValue(j);
+            x = cJSON_GetOpenValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Requires * cJSON_GetRequiresValue(const cJSON * j) {
-    struct Requires * x = NULL;
+struct Open * cJSON_GetOpenValue(const cJSON * j) {
+    struct Open * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Requires)))) {
-            memset(x, 0, sizeof(struct Requires));
-            if (!cJSON_HasObjectItem(j, "requires")) { cJSON_DeleteRequires(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "requires")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "requires"))) { cJSON_DeleteRequires(x); return NULL; }
-                x->requires_requires = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "requires"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Open)))) {
+            memset(x, 0, sizeof(struct Open));
+            if (!cJSON_HasObjectItem(j, "open")) { cJSON_DeleteOpen(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "open")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "open"))) { cJSON_DeleteOpen(x); return NULL; }
+                x->open = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "open"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRequires(const struct Requires * x) {
+cJSON * cJSON_CreateOpen(const struct Open * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "requires", x->requires_requires);
+            cJSON_AddNumberToObject(j, "open", x->open);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRequires(const struct Requires * x) {
+char * cJSON_PrintOpen(const struct Open * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRequires(x);
+        cJSON * j = cJSON_CreateOpen(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14945,53 +14140,53 @@ char * cJSON_PrintRequires(const struct Requires * x) {
     return s;
 }
 
-void cJSON_DeleteRequires(struct Requires * x) {
+void cJSON_DeleteOpen(struct Open * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Restrict * cJSON_ParseRestrict(const char * s) {
-    struct Restrict * x = NULL;
+struct Optional * cJSON_ParseOptional(const char * s) {
+    struct Optional * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRestrictValue(j);
+            x = cJSON_GetOptionalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Restrict * cJSON_GetRestrictValue(const cJSON * j) {
-    struct Restrict * x = NULL;
+struct Optional * cJSON_GetOptionalValue(const cJSON * j) {
+    struct Optional * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Restrict)))) {
-            memset(x, 0, sizeof(struct Restrict));
-            if (!cJSON_HasObjectItem(j, "restrict")) { cJSON_DeleteRestrict(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "restrict")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "restrict"))) { cJSON_DeleteRestrict(x); return NULL; }
-                x->restrict_restrict = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "restrict"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Optional)))) {
+            memset(x, 0, sizeof(struct Optional));
+            if (!cJSON_HasObjectItem(j, "optional")) { cJSON_DeleteOptional(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "optional")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "optional"))) { cJSON_DeleteOptional(x); return NULL; }
+                x->optional = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "optional"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRestrict(const struct Restrict * x) {
+cJSON * cJSON_CreateOptional(const struct Optional * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "restrict", x->restrict_restrict);
+            cJSON_AddNumberToObject(j, "optional", x->optional);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRestrict(const struct Restrict * x) {
+char * cJSON_PrintOptional(const struct Optional * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRestrict(x);
+        cJSON * j = cJSON_CreateOptional(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15000,53 +14195,53 @@ char * cJSON_PrintRestrict(const struct Restrict * x) {
     return s;
 }
 
-void cJSON_DeleteRestrict(struct Restrict * x) {
+void cJSON_DeleteOptional(struct Optional * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Return * cJSON_ParseReturn(const char * s) {
-    struct Return * x = NULL;
+struct Out * cJSON_ParseOut(const char * s) {
+    struct Out * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetReturnValue(j);
+            x = cJSON_GetOutValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Return * cJSON_GetReturnValue(const cJSON * j) {
-    struct Return * x = NULL;
+struct Out * cJSON_GetOutValue(const cJSON * j) {
+    struct Out * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Return)))) {
-            memset(x, 0, sizeof(struct Return));
-            if (!cJSON_HasObjectItem(j, "return")) { cJSON_DeleteReturn(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "return")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "return"))) { cJSON_DeleteReturn(x); return NULL; }
-                x->return_return = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "return"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Out)))) {
+            memset(x, 0, sizeof(struct Out));
+            if (!cJSON_HasObjectItem(j, "out")) { cJSON_DeleteOut(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "out")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "out"))) { cJSON_DeleteOut(x); return NULL; }
+                x->out = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "out"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateReturn(const struct Return * x) {
+cJSON * cJSON_CreateOut(const struct Out * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "return", x->return_return);
+            cJSON_AddNumberToObject(j, "out", x->out);
         }
     }
     return j;
 }
 
-char * cJSON_PrintReturn(const struct Return * x) {
+char * cJSON_PrintOut(const struct Out * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateReturn(x);
+        cJSON * j = cJSON_CreateOut(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15055,53 +14250,53 @@ char * cJSON_PrintReturn(const struct Return * x) {
     return s;
 }
 
-void cJSON_DeleteReturn(struct Return * x) {
+void cJSON_DeleteOut(struct Out * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct SelfClass * cJSON_ParseSelfClass(const char * s) {
-    struct SelfClass * x = NULL;
+struct Package * cJSON_ParsePackage(const char * s) {
+    struct Package * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSelfClassValue(j);
+            x = cJSON_GetPackageValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct SelfClass * cJSON_GetSelfClassValue(const cJSON * j) {
-    struct SelfClass * x = NULL;
+struct Package * cJSON_GetPackageValue(const cJSON * j) {
+    struct Package * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct SelfClass)))) {
-            memset(x, 0, sizeof(struct SelfClass));
-            if (!cJSON_HasObjectItem(j, "self")) { cJSON_DeleteSelfClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "self")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "self"))) { cJSON_DeleteSelfClass(x); return NULL; }
-                x->self = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "self"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Package)))) {
+            memset(x, 0, sizeof(struct Package));
+            if (!cJSON_HasObjectItem(j, "package")) { cJSON_DeletePackage(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "package")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "package"))) { cJSON_DeletePackage(x); return NULL; }
+                x->package = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "package"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSelfClass(const struct SelfClass * x) {
+cJSON * cJSON_CreatePackage(const struct Package * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "self", x->self);
+            cJSON_AddNumberToObject(j, "package", x->package);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSelfClass(const struct SelfClass * x) {
+char * cJSON_PrintPackage(const struct Package * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSelfClass(x);
+        cJSON * j = cJSON_CreatePackage(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15110,53 +14305,53 @@ char * cJSON_PrintSelfClass(const struct SelfClass * x) {
     return s;
 }
 
-void cJSON_DeleteSelfClass(struct SelfClass * x) {
+void cJSON_DeletePackage(struct Package * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Short * cJSON_ParseShort(const char * s) {
-    struct Short * x = NULL;
+struct Params * cJSON_ParseParams(const char * s) {
+    struct Params * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetShortValue(j);
+            x = cJSON_GetParamsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Short * cJSON_GetShortValue(const cJSON * j) {
-    struct Short * x = NULL;
+struct Params * cJSON_GetParamsValue(const cJSON * j) {
+    struct Params * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Short)))) {
-            memset(x, 0, sizeof(struct Short));
-            if (!cJSON_HasObjectItem(j, "short")) { cJSON_DeleteShort(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "short")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "short"))) { cJSON_DeleteShort(x); return NULL; }
-                x->short_short = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "short"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Params)))) {
+            memset(x, 0, sizeof(struct Params));
+            if (!cJSON_HasObjectItem(j, "params")) { cJSON_DeleteParams(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "params")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "params"))) { cJSON_DeleteParams(x); return NULL; }
+                x->params = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "params"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateShort(const struct Short * x) {
+cJSON * cJSON_CreateParams(const struct Params * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "short", x->short_short);
+            cJSON_AddNumberToObject(j, "params", x->params);
         }
     }
     return j;
 }
 
-char * cJSON_PrintShort(const struct Short * x) {
+char * cJSON_PrintParams(const struct Params * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateShort(x);
+        cJSON * j = cJSON_CreateParams(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15165,53 +14360,53 @@ char * cJSON_PrintShort(const struct Short * x) {
     return s;
 }
 
-void cJSON_DeleteShort(struct Short * x) {
+void cJSON_DeleteParams(struct Params * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Signed * cJSON_ParseSigned(const char * s) {
-    struct Signed * x = NULL;
+struct Pass * cJSON_ParsePass(const char * s) {
+    struct Pass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSignedValue(j);
+            x = cJSON_GetPassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Signed * cJSON_GetSignedValue(const cJSON * j) {
-    struct Signed * x = NULL;
+struct Pass * cJSON_GetPassValue(const cJSON * j) {
+    struct Pass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Signed)))) {
-            memset(x, 0, sizeof(struct Signed));
-            if (!cJSON_HasObjectItem(j, "signed")) { cJSON_DeleteSigned(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "signed")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "signed"))) { cJSON_DeleteSigned(x); return NULL; }
-                x->signed_signed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "signed"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Pass)))) {
+            memset(x, 0, sizeof(struct Pass));
+            if (!cJSON_HasObjectItem(j, "pass")) { cJSON_DeletePass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "pass")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "pass"))) { cJSON_DeletePass(x); return NULL; }
+                x->pass = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "pass"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSigned(const struct Signed * x) {
+cJSON * cJSON_CreatePass(const struct Pass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "signed", x->signed_signed);
+            cJSON_AddNumberToObject(j, "pass", x->pass);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSigned(const struct Signed * x) {
+char * cJSON_PrintPass(const struct Pass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSigned(x);
+        cJSON * j = cJSON_CreatePass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15220,53 +14415,53 @@ char * cJSON_PrintSigned(const struct Signed * x) {
     return s;
 }
 
-void cJSON_DeleteSigned(struct Signed * x) {
+void cJSON_DeletePass(struct Pass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Sizeof * cJSON_ParseSizeof(const char * s) {
-    struct Sizeof * x = NULL;
+struct Port * cJSON_ParsePort(const char * s) {
+    struct Port * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSizeofValue(j);
+            x = cJSON_GetPortValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Sizeof * cJSON_GetSizeofValue(const cJSON * j) {
-    struct Sizeof * x = NULL;
+struct Port * cJSON_GetPortValue(const cJSON * j) {
+    struct Port * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sizeof)))) {
-            memset(x, 0, sizeof(struct Sizeof));
-            if (!cJSON_HasObjectItem(j, "sizeof")) { cJSON_DeleteSizeof(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "sizeof")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sizeof"))) { cJSON_DeleteSizeof(x); return NULL; }
-                x->sizeof_sizeof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sizeof"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Port)))) {
+            memset(x, 0, sizeof(struct Port));
+            if (!cJSON_HasObjectItem(j, "port")) { cJSON_DeletePort(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "port")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "port"))) { cJSON_DeletePort(x); return NULL; }
+                x->port = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "port"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSizeof(const struct Sizeof * x) {
+cJSON * cJSON_CreatePort(const struct Port * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "sizeof", x->sizeof_sizeof);
+            cJSON_AddNumberToObject(j, "port", x->port);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSizeof(const struct Sizeof * x) {
+char * cJSON_PrintPort(const struct Port * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSizeof(x);
+        cJSON * j = cJSON_CreatePort(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15275,53 +14470,53 @@ char * cJSON_PrintSizeof(const struct Sizeof * x) {
     return s;
 }
 
-void cJSON_DeleteSizeof(struct Sizeof * x) {
+void cJSON_DeletePort(struct Port * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Static * cJSON_ParseStatic(const char * s) {
-    struct Static * x = NULL;
+struct Postfix * cJSON_ParsePostfix(const char * s) {
+    struct Postfix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStaticValue(j);
+            x = cJSON_GetPostfixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Static * cJSON_GetStaticValue(const cJSON * j) {
-    struct Static * x = NULL;
+struct Postfix * cJSON_GetPostfixValue(const cJSON * j) {
+    struct Postfix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Static)))) {
-            memset(x, 0, sizeof(struct Static));
-            if (!cJSON_HasObjectItem(j, "static")) { cJSON_DeleteStatic(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static"))) { cJSON_DeleteStatic(x); return NULL; }
-                x->static_static = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Postfix)))) {
+            memset(x, 0, sizeof(struct Postfix));
+            if (!cJSON_HasObjectItem(j, "postfix")) { cJSON_DeletePostfix(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "postfix")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "postfix"))) { cJSON_DeletePostfix(x); return NULL; }
+                x->postfix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "postfix"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStatic(const struct Static * x) {
+cJSON * cJSON_CreatePostfix(const struct Postfix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "static", x->static_static);
+            cJSON_AddNumberToObject(j, "postfix", x->postfix);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStatic(const struct Static * x) {
+char * cJSON_PrintPostfix(const struct Postfix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStatic(x);
+        cJSON * j = cJSON_CreatePostfix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15330,53 +14525,53 @@ char * cJSON_PrintStatic(const struct Static * x) {
     return s;
 }
 
-void cJSON_DeleteStatic(struct Static * x) {
+void cJSON_DeletePostfix(struct Postfix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct StaticAssert * cJSON_ParseStaticAssert(const char * s) {
-    struct StaticAssert * x = NULL;
+struct Precedence * cJSON_ParsePrecedence(const char * s) {
+    struct Precedence * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStaticAssertValue(j);
+            x = cJSON_GetPrecedenceValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct StaticAssert * cJSON_GetStaticAssertValue(const cJSON * j) {
-    struct StaticAssert * x = NULL;
+struct Precedence * cJSON_GetPrecedenceValue(const cJSON * j) {
+    struct Precedence * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct StaticAssert)))) {
-            memset(x, 0, sizeof(struct StaticAssert));
-            if (!cJSON_HasObjectItem(j, "static_assert")) { cJSON_DeleteStaticAssert(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static_assert")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static_assert"))) { cJSON_DeleteStaticAssert(x); return NULL; }
-                x->static_assert_static_assert = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static_assert"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Precedence)))) {
+            memset(x, 0, sizeof(struct Precedence));
+            if (!cJSON_HasObjectItem(j, "precedence")) { cJSON_DeletePrecedence(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "precedence")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "precedence"))) { cJSON_DeletePrecedence(x); return NULL; }
+                x->precedence = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "precedence"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStaticAssert(const struct StaticAssert * x) {
+cJSON * cJSON_CreatePrecedence(const struct Precedence * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "static_assert", x->static_assert_static_assert);
+            cJSON_AddNumberToObject(j, "precedence", x->precedence);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStaticAssert(const struct StaticAssert * x) {
+char * cJSON_PrintPrecedence(const struct Precedence * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStaticAssert(x);
+        cJSON * j = cJSON_CreatePrecedence(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15385,53 +14580,53 @@ char * cJSON_PrintStaticAssert(const struct StaticAssert * x) {
     return s;
 }
 
-void cJSON_DeleteStaticAssert(struct StaticAssert * x) {
+void cJSON_DeletePrecedence(struct Precedence * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct StaticCast * cJSON_ParseStaticCast(const char * s) {
-    struct StaticCast * x = NULL;
+struct Prefix * cJSON_ParsePrefix(const char * s) {
+    struct Prefix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStaticCastValue(j);
+            x = cJSON_GetPrefixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct StaticCast * cJSON_GetStaticCastValue(const cJSON * j) {
-    struct StaticCast * x = NULL;
+struct Prefix * cJSON_GetPrefixValue(const cJSON * j) {
+    struct Prefix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct StaticCast)))) {
-            memset(x, 0, sizeof(struct StaticCast));
-            if (!cJSON_HasObjectItem(j, "static_cast")) { cJSON_DeleteStaticCast(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static_cast")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static_cast"))) { cJSON_DeleteStaticCast(x); return NULL; }
-                x->static_cast_static_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static_cast"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Prefix)))) {
+            memset(x, 0, sizeof(struct Prefix));
+            if (!cJSON_HasObjectItem(j, "prefix")) { cJSON_DeletePrefix(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "prefix")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "prefix"))) { cJSON_DeletePrefix(x); return NULL; }
+                x->prefix = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "prefix"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStaticCast(const struct StaticCast * x) {
+cJSON * cJSON_CreatePrefix(const struct Prefix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "static_cast", x->static_cast_static_cast);
+            cJSON_AddNumberToObject(j, "prefix", x->prefix);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStaticCast(const struct StaticCast * x) {
+char * cJSON_PrintPrefix(const struct Prefix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStaticCast(x);
+        cJSON * j = cJSON_CreatePrefix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15440,53 +14635,53 @@ char * cJSON_PrintStaticCast(const struct StaticCast * x) {
     return s;
 }
 
-void cJSON_DeleteStaticCast(struct StaticCast * x) {
+void cJSON_DeletePrefix(struct Prefix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Struct * cJSON_ParseStruct(const char * s) {
-    struct Struct * x = NULL;
+struct Print * cJSON_ParsePrint(const char * s) {
+    struct Print * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStructValue(j);
+            x = cJSON_GetPrintValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Struct * cJSON_GetStructValue(const cJSON * j) {
-    struct Struct * x = NULL;
+struct Print * cJSON_GetPrintValue(const cJSON * j) {
+    struct Print * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Struct)))) {
-            memset(x, 0, sizeof(struct Struct));
-            if (!cJSON_HasObjectItem(j, "struct")) { cJSON_DeleteStruct(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "struct")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "struct"))) { cJSON_DeleteStruct(x); return NULL; }
-                x->struct_struct = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "struct"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Print)))) {
+            memset(x, 0, sizeof(struct Print));
+            if (!cJSON_HasObjectItem(j, "print")) { cJSON_DeletePrint(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "print")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "print"))) { cJSON_DeletePrint(x); return NULL; }
+                x->print = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "print"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStruct(const struct Struct * x) {
+cJSON * cJSON_CreatePrint(const struct Print * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "struct", x->struct_struct);
+            cJSON_AddNumberToObject(j, "print", x->print);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStruct(const struct Struct * x) {
+char * cJSON_PrintPrint(const struct Print * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStruct(x);
+        cJSON * j = cJSON_CreatePrint(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15495,53 +14690,53 @@ char * cJSON_PrintStruct(const struct Struct * x) {
     return s;
 }
 
-void cJSON_DeleteStruct(struct Struct * x) {
+void cJSON_DeletePrint(struct Print * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Switch * cJSON_ParseSwitch(const char * s) {
-    struct Switch * x = NULL;
+struct PrintMembers * cJSON_ParsePrintMembers(const char * s) {
+    struct PrintMembers * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSwitchValue(j);
+            x = cJSON_GetPrintMembersValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Switch * cJSON_GetSwitchValue(const cJSON * j) {
-    struct Switch * x = NULL;
+struct PrintMembers * cJSON_GetPrintMembersValue(const cJSON * j) {
+    struct PrintMembers * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Switch)))) {
-            memset(x, 0, sizeof(struct Switch));
-            if (!cJSON_HasObjectItem(j, "switch")) { cJSON_DeleteSwitch(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "switch")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "switch"))) { cJSON_DeleteSwitch(x); return NULL; }
-                x->switch_switch = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "switch"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct PrintMembers)))) {
+            memset(x, 0, sizeof(struct PrintMembers));
+            if (!cJSON_HasObjectItem(j, "printMembers")) { cJSON_DeletePrintMembers(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "printMembers")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "printMembers"))) { cJSON_DeletePrintMembers(x); return NULL; }
+                x->print_members = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "printMembers"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSwitch(const struct Switch * x) {
+cJSON * cJSON_CreatePrintMembers(const struct PrintMembers * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "switch", x->switch_switch);
+            cJSON_AddNumberToObject(j, "printMembers", x->print_members);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSwitch(const struct Switch * x) {
+char * cJSON_PrintPrintMembers(const struct PrintMembers * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSwitch(x);
+        cJSON * j = cJSON_CreatePrintMembers(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15550,53 +14745,53 @@ char * cJSON_PrintSwitch(const struct Switch * x) {
     return s;
 }
 
-void cJSON_DeleteSwitch(struct Switch * x) {
+void cJSON_DeletePrintMembers(struct PrintMembers * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Synchronized * cJSON_ParseSynchronized(const char * s) {
-    struct Synchronized * x = NULL;
+struct Printf * cJSON_ParsePrintf(const char * s) {
+    struct Printf * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSynchronizedValue(j);
+            x = cJSON_GetPrintfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Synchronized * cJSON_GetSynchronizedValue(const cJSON * j) {
-    struct Synchronized * x = NULL;
+struct Printf * cJSON_GetPrintfValue(const cJSON * j) {
+    struct Printf * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Synchronized)))) {
-            memset(x, 0, sizeof(struct Synchronized));
-            if (!cJSON_HasObjectItem(j, "synchronized")) { cJSON_DeleteSynchronized(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "synchronized")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "synchronized"))) { cJSON_DeleteSynchronized(x); return NULL; }
-                x->synchronized_synchronized = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "synchronized"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Printf)))) {
+            memset(x, 0, sizeof(struct Printf));
+            if (!cJSON_HasObjectItem(j, "printf")) { cJSON_DeletePrintf(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "printf")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "printf"))) { cJSON_DeletePrintf(x); return NULL; }
+                x->printf = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "printf"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSynchronized(const struct Synchronized * x) {
+cJSON * cJSON_CreatePrintf(const struct Printf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "synchronized", x->synchronized_synchronized);
+            cJSON_AddNumberToObject(j, "printf", x->printf);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSynchronized(const struct Synchronized * x) {
+char * cJSON_PrintPrintf(const struct Printf * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSynchronized(x);
+        cJSON * j = cJSON_CreatePrintf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15605,53 +14800,53 @@ char * cJSON_PrintSynchronized(const struct Synchronized * x) {
     return s;
 }
 
-void cJSON_DeleteSynchronized(struct Synchronized * x) {
+void cJSON_DeletePrintf(struct Printf * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Template * cJSON_ParseTemplate(const char * s) {
-    struct Template * x = NULL;
+struct Protocol * cJSON_ParseProtocol(const char * s) {
+    struct Protocol * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTemplateValue(j);
+            x = cJSON_GetProtocolValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Template * cJSON_GetTemplateValue(const cJSON * j) {
-    struct Template * x = NULL;
+struct Protocol * cJSON_GetProtocolValue(const cJSON * j) {
+    struct Protocol * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Template)))) {
-            memset(x, 0, sizeof(struct Template));
-            if (!cJSON_HasObjectItem(j, "template")) { cJSON_DeleteTemplate(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "template")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "template"))) { cJSON_DeleteTemplate(x); return NULL; }
-                x->template_template = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "template"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Protocol)))) {
+            memset(x, 0, sizeof(struct Protocol));
+            if (!cJSON_HasObjectItem(j, "Protocol")) { cJSON_DeleteProtocol(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Protocol")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Protocol"))) { cJSON_DeleteProtocol(x); return NULL; }
+                x->protocol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Protocol"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTemplate(const struct Template * x) {
+cJSON * cJSON_CreateProtocol(const struct Protocol * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "template", x->template_template);
+            cJSON_AddNumberToObject(j, "Protocol", x->protocol);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTemplate(const struct Template * x) {
+char * cJSON_PrintProtocol(const struct Protocol * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTemplate(x);
+        cJSON * j = cJSON_CreateProtocol(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15660,53 +14855,53 @@ char * cJSON_PrintTemplate(const struct Template * x) {
     return s;
 }
 
-void cJSON_DeleteTemplate(struct Template * x) {
+void cJSON_DeleteProtocol(struct Protocol * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct This * cJSON_ParseThis(const char * s) {
-    struct This * x = NULL;
+struct Quicktype * cJSON_ParseQuicktype(const char * s) {
+    struct Quicktype * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThisValue(j);
+            x = cJSON_GetQuicktypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct This * cJSON_GetThisValue(const cJSON * j) {
-    struct This * x = NULL;
+struct Quicktype * cJSON_GetQuicktypeValue(const cJSON * j) {
+    struct Quicktype * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct This)))) {
-            memset(x, 0, sizeof(struct This));
-            if (!cJSON_HasObjectItem(j, "this")) { cJSON_DeleteThis(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "this")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "this"))) { cJSON_DeleteThis(x); return NULL; }
-                x->this_this = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "this"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Quicktype)))) {
+            memset(x, 0, sizeof(struct Quicktype));
+            if (!cJSON_HasObjectItem(j, "quicktype")) { cJSON_DeleteQuicktype(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "quicktype")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "quicktype"))) { cJSON_DeleteQuicktype(x); return NULL; }
+                x->quicktype = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "quicktype"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThis(const struct This * x) {
+cJSON * cJSON_CreateQuicktype(const struct Quicktype * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "this", x->this_this);
+            cJSON_AddNumberToObject(j, "quicktype", x->quicktype);
         }
     }
     return j;
 }
 
-char * cJSON_PrintThis(const struct This * x) {
+char * cJSON_PrintQuicktype(const struct Quicktype * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThis(x);
+        cJSON * j = cJSON_CreateQuicktype(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15715,53 +14910,53 @@ char * cJSON_PrintThis(const struct This * x) {
     return s;
 }
 
-void cJSON_DeleteThis(struct This * x) {
+void cJSON_DeleteQuicktype(struct Quicktype * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ThreadLocal * cJSON_ParseThreadLocal(const char * s) {
-    struct ThreadLocal * x = NULL;
+struct Raise * cJSON_ParseRaise(const char * s) {
+    struct Raise * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThreadLocalValue(j);
+            x = cJSON_GetRaiseValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ThreadLocal * cJSON_GetThreadLocalValue(const cJSON * j) {
-    struct ThreadLocal * x = NULL;
+struct Raise * cJSON_GetRaiseValue(const cJSON * j) {
+    struct Raise * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ThreadLocal)))) {
-            memset(x, 0, sizeof(struct ThreadLocal));
-            if (!cJSON_HasObjectItem(j, "thread_local")) { cJSON_DeleteThreadLocal(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "thread_local")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "thread_local"))) { cJSON_DeleteThreadLocal(x); return NULL; }
-                x->thread_local_thread_local = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "thread_local"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Raise)))) {
+            memset(x, 0, sizeof(struct Raise));
+            if (!cJSON_HasObjectItem(j, "raise")) { cJSON_DeleteRaise(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "raise")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "raise"))) { cJSON_DeleteRaise(x); return NULL; }
+                x->raise = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "raise"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThreadLocal(const struct ThreadLocal * x) {
+cJSON * cJSON_CreateRaise(const struct Raise * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "thread_local", x->thread_local_thread_local);
+            cJSON_AddNumberToObject(j, "raise", x->raise);
         }
     }
     return j;
 }
 
-char * cJSON_PrintThreadLocal(const struct ThreadLocal * x) {
+char * cJSON_PrintRaise(const struct Raise * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThreadLocal(x);
+        cJSON * j = cJSON_CreateRaise(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15770,53 +14965,53 @@ char * cJSON_PrintThreadLocal(const struct ThreadLocal * x) {
     return s;
 }
 
-void cJSON_DeleteThreadLocal(struct ThreadLocal * x) {
+void cJSON_DeleteRaise(struct Raise * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Throw * cJSON_ParseThrow(const char * s) {
-    struct Throw * x = NULL;
+struct Range * cJSON_ParseRange(const char * s) {
+    struct Range * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThrowValue(j);
+            x = cJSON_GetRangeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Throw * cJSON_GetThrowValue(const cJSON * j) {
-    struct Throw * x = NULL;
+struct Range * cJSON_GetRangeValue(const cJSON * j) {
+    struct Range * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Throw)))) {
-            memset(x, 0, sizeof(struct Throw));
-            if (!cJSON_HasObjectItem(j, "throw")) { cJSON_DeleteThrow(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "throw")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "throw"))) { cJSON_DeleteThrow(x); return NULL; }
-                x->throw_throw = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "throw"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Range)))) {
+            memset(x, 0, sizeof(struct Range));
+            if (!cJSON_HasObjectItem(j, "range")) { cJSON_DeleteRange(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "range")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "range"))) { cJSON_DeleteRange(x); return NULL; }
+                x->range = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "range"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThrow(const struct Throw * x) {
+cJSON * cJSON_CreateRange(const struct Range * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "throw", x->throw_throw);
+            cJSON_AddNumberToObject(j, "range", x->range);
         }
     }
     return j;
 }
 
-char * cJSON_PrintThrow(const struct Throw * x) {
+char * cJSON_PrintRange(const struct Range * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThrow(x);
+        cJSON * j = cJSON_CreateRange(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15825,53 +15020,53 @@ char * cJSON_PrintThrow(const struct Throw * x) {
     return s;
 }
 
-void cJSON_DeleteThrow(struct Throw * x) {
+void cJSON_DeleteRange(struct Range * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct TrueClass * cJSON_ParseTrueClass(const char * s) {
-    struct TrueClass * x = NULL;
+struct Readonly * cJSON_ParseReadonly(const char * s) {
+    struct Readonly * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTrueClassValue(j);
+            x = cJSON_GetReadonlyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct TrueClass * cJSON_GetTrueClassValue(const cJSON * j) {
-    struct TrueClass * x = NULL;
+struct Readonly * cJSON_GetReadonlyValue(const cJSON * j) {
+    struct Readonly * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct TrueClass)))) {
-            memset(x, 0, sizeof(struct TrueClass));
-            if (!cJSON_HasObjectItem(j, "True")) { cJSON_DeleteTrueClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "True")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "True"))) { cJSON_DeleteTrueClass(x); return NULL; }
-                x->true_true = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "True"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Readonly)))) {
+            memset(x, 0, sizeof(struct Readonly));
+            if (!cJSON_HasObjectItem(j, "readonly")) { cJSON_DeleteReadonly(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "readonly")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "readonly"))) { cJSON_DeleteReadonly(x); return NULL; }
+                x->readonly = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "readonly"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTrueClass(const struct TrueClass * x) {
+cJSON * cJSON_CreateReadonly(const struct Readonly * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "True", x->true_true);
+            cJSON_AddNumberToObject(j, "readonly", x->readonly);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTrueClass(const struct TrueClass * x) {
+char * cJSON_PrintReadonly(const struct Readonly * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTrueClass(x);
+        cJSON * j = cJSON_CreateReadonly(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15880,53 +15075,53 @@ char * cJSON_PrintTrueClass(const struct TrueClass * x) {
     return s;
 }
 
-void cJSON_DeleteTrueClass(struct TrueClass * x) {
+void cJSON_DeleteReadonly(struct Readonly * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Try * cJSON_ParseTry(const char * s) {
-    struct Try * x = NULL;
+struct Ref * cJSON_ParseRef(const char * s) {
+    struct Ref * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTryValue(j);
+            x = cJSON_GetRefValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Try * cJSON_GetTryValue(const cJSON * j) {
-    struct Try * x = NULL;
+struct Ref * cJSON_GetRefValue(const cJSON * j) {
+    struct Ref * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Try)))) {
-            memset(x, 0, sizeof(struct Try));
-            if (!cJSON_HasObjectItem(j, "try")) { cJSON_DeleteTry(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "try")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "try"))) { cJSON_DeleteTry(x); return NULL; }
-                x->try_try = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "try"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Ref)))) {
+            memset(x, 0, sizeof(struct Ref));
+            if (!cJSON_HasObjectItem(j, "ref")) { cJSON_DeleteRef(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ref")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ref"))) { cJSON_DeleteRef(x); return NULL; }
+                x->ref = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ref"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTry(const struct Try * x) {
+cJSON * cJSON_CreateRef(const struct Ref * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "try", x->try_try);
+            cJSON_AddNumberToObject(j, "ref", x->ref);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTry(const struct Try * x) {
+char * cJSON_PrintRef(const struct Ref * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTry(x);
+        cJSON * j = cJSON_CreateRef(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15935,53 +15130,63 @@ char * cJSON_PrintTry(const struct Try * x) {
     return s;
 }
 
-void cJSON_DeleteTry(struct Try * x) {
+void cJSON_DeleteRef(struct Ref * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct TypeClass * cJSON_ParseTypeClass(const char * s) {
-    struct TypeClass * x = NULL;
+struct RegExp * cJSON_ParseRegExp(const char * s) {
+    struct RegExp * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypeClassValue(j);
+            x = cJSON_GetRegExpValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct TypeClass * cJSON_GetTypeClassValue(const cJSON * j) {
-    struct TypeClass * x = NULL;
+struct RegExp * cJSON_GetRegExpValue(const cJSON * j) {
+    struct RegExp * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct TypeClass)))) {
-            memset(x, 0, sizeof(struct TypeClass));
-            if (!cJSON_HasObjectItem(j, "type")) { cJSON_DeleteTypeClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "type")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "type"))) { cJSON_DeleteTypeClass(x); return NULL; }
-                x->type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "type"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct RegExp)))) {
+            memset(x, 0, sizeof(struct RegExp));
+            if (!cJSON_HasObjectItem(j, "RegExp")) { cJSON_DeleteRegExp(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "RegExp")) {
+                if (!cJSON_IsString(cJSON_GetObjectItemCaseSensitive(j, "RegExp"))) { cJSON_DeleteRegExp(x); return NULL; }
+                x->reg_exp = strdup(cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(j, "RegExp")));
+            }
+            else {
+                if (NULL != (x->reg_exp = cJSON_malloc(sizeof(char)))) {
+                    x->reg_exp[0] = '\0';
+                }
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypeClass(const struct TypeClass * x) {
+cJSON * cJSON_CreateRegExp(const struct RegExp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "type", x->type);
+            if (NULL != x->reg_exp) {
+                cJSON_AddStringToObject(j, "RegExp", x->reg_exp);
+            }
+            else {
+                cJSON_AddStringToObject(j, "RegExp", "");
+            }
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypeClass(const struct TypeClass * x) {
+char * cJSON_PrintRegExp(const struct RegExp * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypeClass(x);
+        cJSON * j = cJSON_CreateRegExp(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15990,53 +15195,56 @@ char * cJSON_PrintTypeClass(const struct TypeClass * x) {
     return s;
 }
 
-void cJSON_DeleteTypeClass(struct TypeClass * x) {
+void cJSON_DeleteRegExp(struct RegExp * x) {
     if (NULL != x) {
+        if (NULL != x->reg_exp) {
+            cJSON_free(x->reg_exp);
+        }
         cJSON_free(x);
     }
 }
 
-struct Typedef * cJSON_ParseTypedef(const char * s) {
-    struct Typedef * x = NULL;
+struct Repeat * cJSON_ParseRepeat(const char * s) {
+    struct Repeat * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypedefValue(j);
+            x = cJSON_GetRepeatValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Typedef * cJSON_GetTypedefValue(const cJSON * j) {
-    struct Typedef * x = NULL;
+struct Repeat * cJSON_GetRepeatValue(const cJSON * j) {
+    struct Repeat * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Typedef)))) {
-            memset(x, 0, sizeof(struct Typedef));
-            if (!cJSON_HasObjectItem(j, "typedef")) { cJSON_DeleteTypedef(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typedef")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typedef"))) { cJSON_DeleteTypedef(x); return NULL; }
-                x->typedef_typedef = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typedef"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Repeat)))) {
+            memset(x, 0, sizeof(struct Repeat));
+            if (!cJSON_HasObjectItem(j, "repeat")) { cJSON_DeleteRepeat(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "repeat")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "repeat"))) { cJSON_DeleteRepeat(x); return NULL; }
+                x->repeat = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "repeat"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypedef(const struct Typedef * x) {
+cJSON * cJSON_CreateRepeat(const struct Repeat * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "typedef", x->typedef_typedef);
+            cJSON_AddNumberToObject(j, "repeat", x->repeat);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypedef(const struct Typedef * x) {
+char * cJSON_PrintRepeat(const struct Repeat * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypedef(x);
+        cJSON * j = cJSON_CreateRepeat(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16045,53 +15253,53 @@ char * cJSON_PrintTypedef(const struct Typedef * x) {
     return s;
 }
 
-void cJSON_DeleteTypedef(struct Typedef * x) {
+void cJSON_DeleteRepeat(struct Repeat * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Typeid * cJSON_ParseTypeid(const char * s) {
-    struct Typeid * x = NULL;
+struct Require * cJSON_ParseRequire(const char * s) {
+    struct Require * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypeidValue(j);
+            x = cJSON_GetRequireValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Typeid * cJSON_GetTypeidValue(const cJSON * j) {
-    struct Typeid * x = NULL;
+struct Require * cJSON_GetRequireValue(const cJSON * j) {
+    struct Require * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Typeid)))) {
-            memset(x, 0, sizeof(struct Typeid));
-            if (!cJSON_HasObjectItem(j, "typeid")) { cJSON_DeleteTypeid(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typeid")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typeid"))) { cJSON_DeleteTypeid(x); return NULL; }
-                x->typeid_typeid = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typeid"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Require)))) {
+            memset(x, 0, sizeof(struct Require));
+            if (!cJSON_HasObjectItem(j, "require")) { cJSON_DeleteRequire(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "require")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "require"))) { cJSON_DeleteRequire(x); return NULL; }
+                x->require = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "require"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypeid(const struct Typeid * x) {
+cJSON * cJSON_CreateRequire(const struct Require * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "typeid", x->typeid_typeid);
+            cJSON_AddNumberToObject(j, "require", x->require);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypeid(const struct Typeid * x) {
+char * cJSON_PrintRequire(const struct Require * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypeid(x);
+        cJSON * j = cJSON_CreateRequire(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16100,53 +15308,53 @@ char * cJSON_PrintTypeid(const struct Typeid * x) {
     return s;
 }
 
-void cJSON_DeleteTypeid(struct Typeid * x) {
+void cJSON_DeleteRequire(struct Require * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Typename * cJSON_ParseTypename(const char * s) {
-    struct Typename * x = NULL;
+struct Required * cJSON_ParseRequired(const char * s) {
+    struct Required * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypenameValue(j);
+            x = cJSON_GetRequiredValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Typename * cJSON_GetTypenameValue(const cJSON * j) {
-    struct Typename * x = NULL;
+struct Required * cJSON_GetRequiredValue(const cJSON * j) {
+    struct Required * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Typename)))) {
-            memset(x, 0, sizeof(struct Typename));
-            if (!cJSON_HasObjectItem(j, "typename")) { cJSON_DeleteTypename(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typename")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typename"))) { cJSON_DeleteTypename(x); return NULL; }
-                x->typename_typename = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typename"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Required)))) {
+            memset(x, 0, sizeof(struct Required));
+            if (!cJSON_HasObjectItem(j, "required")) { cJSON_DeleteRequired(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "required")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "required"))) { cJSON_DeleteRequired(x); return NULL; }
+                x->required = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "required"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypename(const struct Typename * x) {
+cJSON * cJSON_CreateRequired(const struct Required * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "typename", x->typename_typename);
+            cJSON_AddNumberToObject(j, "required", x->required);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypename(const struct Typename * x) {
+char * cJSON_PrintRequired(const struct Required * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypename(x);
+        cJSON * j = cJSON_CreateRequired(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16155,53 +15363,53 @@ char * cJSON_PrintTypename(const struct Typename * x) {
     return s;
 }
 
-void cJSON_DeleteTypename(struct Typename * x) {
+void cJSON_DeleteRequired(struct Required * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Typeof * cJSON_ParseTypeof(const char * s) {
-    struct Typeof * x = NULL;
+struct Retain * cJSON_ParseRetain(const char * s) {
+    struct Retain * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypeofValue(j);
+            x = cJSON_GetRetainValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Typeof * cJSON_GetTypeofValue(const cJSON * j) {
-    struct Typeof * x = NULL;
+struct Retain * cJSON_GetRetainValue(const cJSON * j) {
+    struct Retain * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Typeof)))) {
-            memset(x, 0, sizeof(struct Typeof));
-            if (!cJSON_HasObjectItem(j, "typeof")) { cJSON_DeleteTypeof(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typeof")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typeof"))) { cJSON_DeleteTypeof(x); return NULL; }
-                x->typeof_typeof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typeof"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Retain)))) {
+            memset(x, 0, sizeof(struct Retain));
+            if (!cJSON_HasObjectItem(j, "retain")) { cJSON_DeleteRetain(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "retain")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "retain"))) { cJSON_DeleteRetain(x); return NULL; }
+                x->retain = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "retain"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypeof(const struct Typeof * x) {
+cJSON * cJSON_CreateRetain(const struct Retain * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "typeof", x->typeof_typeof);
+            cJSON_AddNumberToObject(j, "retain", x->retain);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypeof(const struct Typeof * x) {
+char * cJSON_PrintRetain(const struct Retain * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypeof(x);
+        cJSON * j = cJSON_CreateRetain(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16210,53 +15418,53 @@ char * cJSON_PrintTypeof(const struct Typeof * x) {
     return s;
 }
 
-void cJSON_DeleteTypeof(struct Typeof * x) {
+void cJSON_DeleteRetain(struct Retain * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Obj4True * cJSON_ParseObj4True(const char * s) {
-    struct Obj4True * x = NULL;
+struct Rethrows * cJSON_ParseRethrows(const char * s) {
+    struct Rethrows * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObj4TrueValue(j);
+            x = cJSON_GetRethrowsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Obj4True * cJSON_GetObj4TrueValue(const cJSON * j) {
-    struct Obj4True * x = NULL;
+struct Rethrows * cJSON_GetRethrowsValue(const cJSON * j) {
+    struct Rethrows * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj4True)))) {
-            memset(x, 0, sizeof(struct Obj4True));
-            if (!cJSON_HasObjectItem(j, "true")) { cJSON_DeleteObj4True(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "true")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "true"))) { cJSON_DeleteObj4True(x); return NULL; }
-                x->true_true = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "true"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Rethrows)))) {
+            memset(x, 0, sizeof(struct Rethrows));
+            if (!cJSON_HasObjectItem(j, "rethrows")) { cJSON_DeleteRethrows(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "rethrows")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "rethrows"))) { cJSON_DeleteRethrows(x); return NULL; }
+                x->rethrows = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "rethrows"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObj4True(const struct Obj4True * x) {
+cJSON * cJSON_CreateRethrows(const struct Rethrows * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "true", x->true_true);
+            cJSON_AddNumberToObject(j, "rethrows", x->rethrows);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObj4True(const struct Obj4True * x) {
+char * cJSON_PrintRethrows(const struct Rethrows * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObj4True(x);
+        cJSON * j = cJSON_CreateRethrows(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16265,53 +15473,53 @@ char * cJSON_PrintObj4True(const struct Obj4True * x) {
     return s;
 }
 
-void cJSON_DeleteObj4True(struct Obj4True * x) {
+void cJSON_DeleteRethrows(struct Rethrows * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Quicktype * cJSON_ParseQuicktype(const char * s) {
-    struct Quicktype * x = NULL;
+struct Right * cJSON_ParseRight(const char * s) {
+    struct Right * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetQuicktypeValue(j);
+            x = cJSON_GetRightValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Quicktype * cJSON_GetQuicktypeValue(const cJSON * j) {
-    struct Quicktype * x = NULL;
+struct Right * cJSON_GetRightValue(const cJSON * j) {
+    struct Right * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Quicktype)))) {
-            memset(x, 0, sizeof(struct Quicktype));
-            if (!cJSON_HasObjectItem(j, "quicktype")) { cJSON_DeleteQuicktype(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "quicktype")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "quicktype"))) { cJSON_DeleteQuicktype(x); return NULL; }
-                x->quicktype = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "quicktype"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Right)))) {
+            memset(x, 0, sizeof(struct Right));
+            if (!cJSON_HasObjectItem(j, "right")) { cJSON_DeleteRight(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "right")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "right"))) { cJSON_DeleteRight(x); return NULL; }
+                x->right = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "right"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateQuicktype(const struct Quicktype * x) {
+cJSON * cJSON_CreateRight(const struct Right * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "quicktype", x->quicktype);
+            cJSON_AddNumberToObject(j, "right", x->right);
         }
     }
     return j;
 }
 
-char * cJSON_PrintQuicktype(const struct Quicktype * x) {
+char * cJSON_PrintRight(const struct Right * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateQuicktype(x);
+        cJSON * j = cJSON_CreateRight(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16320,53 +15528,53 @@ char * cJSON_PrintQuicktype(const struct Quicktype * x) {
     return s;
 }
 
-void cJSON_DeleteQuicktype(struct Quicktype * x) {
+void cJSON_DeleteRight(struct Right * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Raise * cJSON_ParseRaise(const char * s) {
-    struct Raise * x = NULL;
+struct RuntimeType * cJSON_ParseRuntimeType(const char * s) {
+    struct RuntimeType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRaiseValue(j);
+            x = cJSON_GetRuntimeTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Raise * cJSON_GetRaiseValue(const cJSON * j) {
-    struct Raise * x = NULL;
+struct RuntimeType * cJSON_GetRuntimeTypeValue(const cJSON * j) {
+    struct RuntimeType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Raise)))) {
-            memset(x, 0, sizeof(struct Raise));
-            if (!cJSON_HasObjectItem(j, "raise")) { cJSON_DeleteRaise(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "raise")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "raise"))) { cJSON_DeleteRaise(x); return NULL; }
-                x->raise = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "raise"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct RuntimeType)))) {
+            memset(x, 0, sizeof(struct RuntimeType));
+            if (!cJSON_HasObjectItem(j, "runtimeType")) { cJSON_DeleteRuntimeType(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "runtimeType")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"))) { cJSON_DeleteRuntimeType(x); return NULL; }
+                x->runtime_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRaise(const struct Raise * x) {
+cJSON * cJSON_CreateRuntimeType(const struct RuntimeType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "raise", x->raise);
+            cJSON_AddNumberToObject(j, "runtimeType", x->runtime_type);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRaise(const struct Raise * x) {
+char * cJSON_PrintRuntimeType(const struct RuntimeType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRaise(x);
+        cJSON * j = cJSON_CreateRuntimeType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16375,53 +15583,53 @@ char * cJSON_PrintRaise(const struct Raise * x) {
     return s;
 }
 
-void cJSON_DeleteRaise(struct Raise * x) {
+void cJSON_DeleteRuntimeType(struct RuntimeType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Range * cJSON_ParseRange(const char * s) {
-    struct Range * x = NULL;
+struct S * cJSON_ParseS(const char * s) {
+    struct S * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRangeValue(j);
+            x = cJSON_GetSValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Range * cJSON_GetRangeValue(const cJSON * j) {
-    struct Range * x = NULL;
+struct S * cJSON_GetSValue(const cJSON * j) {
+    struct S * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Range)))) {
-            memset(x, 0, sizeof(struct Range));
-            if (!cJSON_HasObjectItem(j, "range")) { cJSON_DeleteRange(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "range")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "range"))) { cJSON_DeleteRange(x); return NULL; }
-                x->range = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "range"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct S)))) {
+            memset(x, 0, sizeof(struct S));
+            if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteS(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "s")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteS(x); return NULL; }
+                x->s = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "s"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRange(const struct Range * x) {
+cJSON * cJSON_CreateS(const struct S * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "range", x->range);
+            cJSON_AddNumberToObject(j, "s", x->s);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRange(const struct Range * x) {
+char * cJSON_PrintS(const struct S * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRange(x);
+        cJSON * j = cJSON_CreateS(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16430,53 +15638,53 @@ char * cJSON_PrintRange(const struct Range * x) {
     return s;
 }
 
-void cJSON_DeleteRange(struct Range * x) {
+void cJSON_DeleteS(struct S * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Readonly * cJSON_ParseReadonly(const char * s) {
-    struct Readonly * x = NULL;
+struct Sbyte * cJSON_ParseSbyte(const char * s) {
+    struct Sbyte * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetReadonlyValue(j);
+            x = cJSON_GetSbyteValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Readonly * cJSON_GetReadonlyValue(const cJSON * j) {
-    struct Readonly * x = NULL;
+struct Sbyte * cJSON_GetSbyteValue(const cJSON * j) {
+    struct Sbyte * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Readonly)))) {
-            memset(x, 0, sizeof(struct Readonly));
-            if (!cJSON_HasObjectItem(j, "readonly")) { cJSON_DeleteReadonly(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "readonly")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "readonly"))) { cJSON_DeleteReadonly(x); return NULL; }
-                x->readonly = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "readonly"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sbyte)))) {
+            memset(x, 0, sizeof(struct Sbyte));
+            if (!cJSON_HasObjectItem(j, "sbyte")) { cJSON_DeleteSbyte(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "sbyte")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteSbyte(x); return NULL; }
+                x->sbyte = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sbyte"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateReadonly(const struct Readonly * x) {
+cJSON * cJSON_CreateSbyte(const struct Sbyte * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "readonly", x->readonly);
+            cJSON_AddNumberToObject(j, "sbyte", x->sbyte);
         }
     }
     return j;
 }
 
-char * cJSON_PrintReadonly(const struct Readonly * x) {
+char * cJSON_PrintSbyte(const struct Sbyte * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateReadonly(x);
+        cJSON * j = cJSON_CreateSbyte(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16485,53 +15693,53 @@ char * cJSON_PrintReadonly(const struct Readonly * x) {
     return s;
 }
 
-void cJSON_DeleteReadonly(struct Readonly * x) {
+void cJSON_DeleteSbyte(struct Sbyte * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Ref * cJSON_ParseRef(const char * s) {
-    struct Ref * x = NULL;
+struct Sealed * cJSON_ParseSealed(const char * s) {
+    struct Sealed * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRefValue(j);
+            x = cJSON_GetSealedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Ref * cJSON_GetRefValue(const cJSON * j) {
-    struct Ref * x = NULL;
+struct Sealed * cJSON_GetSealedValue(const cJSON * j) {
+    struct Sealed * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Ref)))) {
-            memset(x, 0, sizeof(struct Ref));
-            if (!cJSON_HasObjectItem(j, "ref")) { cJSON_DeleteRef(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ref")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ref"))) { cJSON_DeleteRef(x); return NULL; }
-                x->ref = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ref"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sealed)))) {
+            memset(x, 0, sizeof(struct Sealed));
+            if (!cJSON_HasObjectItem(j, "sealed")) { cJSON_DeleteSealed(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "sealed")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sealed"))) { cJSON_DeleteSealed(x); return NULL; }
+                x->sealed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sealed"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRef(const struct Ref * x) {
+cJSON * cJSON_CreateSealed(const struct Sealed * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "ref", x->ref);
+            cJSON_AddNumberToObject(j, "sealed", x->sealed);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRef(const struct Ref * x) {
+char * cJSON_PrintSealed(const struct Sealed * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRef(x);
+        cJSON * j = cJSON_CreateSealed(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16540,63 +15748,53 @@ char * cJSON_PrintRef(const struct Ref * x) {
     return s;
 }
 
-void cJSON_DeleteRef(struct Ref * x) {
+void cJSON_DeleteSealed(struct Sealed * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct RegExp * cJSON_ParseRegExp(const char * s) {
-    struct RegExp * x = NULL;
+struct Sel * cJSON_ParseSel(const char * s) {
+    struct Sel * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRegExpValue(j);
+            x = cJSON_GetSelValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct RegExp * cJSON_GetRegExpValue(const cJSON * j) {
-    struct RegExp * x = NULL;
+struct Sel * cJSON_GetSelValue(const cJSON * j) {
+    struct Sel * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct RegExp)))) {
-            memset(x, 0, sizeof(struct RegExp));
-            if (!cJSON_HasObjectItem(j, "RegExp")) { cJSON_DeleteRegExp(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "RegExp")) {
-                if (!cJSON_IsString(cJSON_GetObjectItemCaseSensitive(j, "RegExp"))) { cJSON_DeleteRegExp(x); return NULL; }
-                x->reg_exp = strdup(cJSON_GetStringValue(cJSON_GetObjectItemCaseSensitive(j, "RegExp")));
-            }
-            else {
-                if (NULL != (x->reg_exp = cJSON_malloc(sizeof(char)))) {
-                    x->reg_exp[0] = '\0';
-                }
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sel)))) {
+            memset(x, 0, sizeof(struct Sel));
+            if (!cJSON_HasObjectItem(j, "SEL")) { cJSON_DeleteSel(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "SEL")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SEL"))) { cJSON_DeleteSel(x); return NULL; }
+                x->sel = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SEL"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRegExp(const struct RegExp * x) {
+cJSON * cJSON_CreateSel(const struct Sel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            if (NULL != x->reg_exp) {
-                cJSON_AddStringToObject(j, "RegExp", x->reg_exp);
-            }
-            else {
-                cJSON_AddStringToObject(j, "RegExp", "");
-            }
+            cJSON_AddNumberToObject(j, "SEL", x->sel);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRegExp(const struct RegExp * x) {
+char * cJSON_PrintSel(const struct Sel * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRegExp(x);
+        cJSON * j = cJSON_CreateSel(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16605,56 +15803,53 @@ char * cJSON_PrintRegExp(const struct RegExp * x) {
     return s;
 }
 
-void cJSON_DeleteRegExp(struct RegExp * x) {
+void cJSON_DeleteSel(struct Sel * x) {
     if (NULL != x) {
-        if (NULL != x->reg_exp) {
-            cJSON_free(x->reg_exp);
-        }
         cJSON_free(x);
     }
 }
 
-struct Repeat * cJSON_ParseRepeat(const char * s) {
-    struct Repeat * x = NULL;
+struct Select * cJSON_ParseSelect(const char * s) {
+    struct Select * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRepeatValue(j);
+            x = cJSON_GetSelectValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Repeat * cJSON_GetRepeatValue(const cJSON * j) {
-    struct Repeat * x = NULL;
+struct Select * cJSON_GetSelectValue(const cJSON * j) {
+    struct Select * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Repeat)))) {
-            memset(x, 0, sizeof(struct Repeat));
-            if (!cJSON_HasObjectItem(j, "repeat")) { cJSON_DeleteRepeat(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "repeat")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "repeat"))) { cJSON_DeleteRepeat(x); return NULL; }
-                x->repeat = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "repeat"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Select)))) {
+            memset(x, 0, sizeof(struct Select));
+            if (!cJSON_HasObjectItem(j, "select")) { cJSON_DeleteSelect(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "select")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "select"))) { cJSON_DeleteSelect(x); return NULL; }
+                x->select = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "select"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRepeat(const struct Repeat * x) {
+cJSON * cJSON_CreateSelect(const struct Select * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "repeat", x->repeat);
+            cJSON_AddNumberToObject(j, "select", x->select);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRepeat(const struct Repeat * x) {
+char * cJSON_PrintSelect(const struct Select * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRepeat(x);
+        cJSON * j = cJSON_CreateSelect(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16663,53 +15858,53 @@ char * cJSON_PrintRepeat(const struct Repeat * x) {
     return s;
 }
 
-void cJSON_DeleteRepeat(struct Repeat * x) {
+void cJSON_DeleteSelect(struct Select * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Require * cJSON_ParseRequire(const char * s) {
-    struct Require * x = NULL;
+struct Self * cJSON_ParseSelf(const char * s) {
+    struct Self * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRequireValue(j);
+            x = cJSON_GetSelfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Require * cJSON_GetRequireValue(const cJSON * j) {
-    struct Require * x = NULL;
+struct Self * cJSON_GetSelfValue(const cJSON * j) {
+    struct Self * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Require)))) {
-            memset(x, 0, sizeof(struct Require));
-            if (!cJSON_HasObjectItem(j, "require")) { cJSON_DeleteRequire(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "require")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "require"))) { cJSON_DeleteRequire(x); return NULL; }
-                x->require = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "require"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Self)))) {
+            memset(x, 0, sizeof(struct Self));
+            if (!cJSON_HasObjectItem(j, "Self")) { cJSON_DeleteSelf(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Self")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Self"))) { cJSON_DeleteSelf(x); return NULL; }
+                x->self = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Self"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRequire(const struct Require * x) {
+cJSON * cJSON_CreateSelf(const struct Self * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "require", x->require);
+            cJSON_AddNumberToObject(j, "Self", x->self);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRequire(const struct Require * x) {
+char * cJSON_PrintSelf(const struct Self * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRequire(x);
+        cJSON * j = cJSON_CreateSelf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16718,53 +15913,53 @@ char * cJSON_PrintRequire(const struct Require * x) {
     return s;
 }
 
-void cJSON_DeleteRequire(struct Require * x) {
+void cJSON_DeleteSelf(struct Self * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Required * cJSON_ParseRequired(const char * s) {
-    struct Required * x = NULL;
+struct Serialize * cJSON_ParseSerialize(const char * s) {
+    struct Serialize * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRequiredValue(j);
+            x = cJSON_GetSerializeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Required * cJSON_GetRequiredValue(const cJSON * j) {
-    struct Required * x = NULL;
+struct Serialize * cJSON_GetSerializeValue(const cJSON * j) {
+    struct Serialize * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Required)))) {
-            memset(x, 0, sizeof(struct Required));
-            if (!cJSON_HasObjectItem(j, "required")) { cJSON_DeleteRequired(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "required")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "required"))) { cJSON_DeleteRequired(x); return NULL; }
-                x->required = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "required"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Serialize)))) {
+            memset(x, 0, sizeof(struct Serialize));
+            if (!cJSON_HasObjectItem(j, "serialize")) { cJSON_DeleteSerialize(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "serialize")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "serialize"))) { cJSON_DeleteSerialize(x); return NULL; }
+                x->serialize = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "serialize"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRequired(const struct Required * x) {
+cJSON * cJSON_CreateSerialize(const struct Serialize * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "required", x->required);
+            cJSON_AddNumberToObject(j, "serialize", x->serialize);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRequired(const struct Required * x) {
+char * cJSON_PrintSerialize(const struct Serialize * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRequired(x);
+        cJSON * j = cJSON_CreateSerialize(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16773,53 +15968,53 @@ char * cJSON_PrintRequired(const struct Required * x) {
     return s;
 }
 
-void cJSON_DeleteRequired(struct Required * x) {
+void cJSON_DeleteSerialize(struct Serialize * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Retain * cJSON_ParseRetain(const char * s) {
-    struct Retain * x = NULL;
+struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s) {
+    struct SerializerProvider * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRetainValue(j);
+            x = cJSON_GetSerializerProviderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Retain * cJSON_GetRetainValue(const cJSON * j) {
-    struct Retain * x = NULL;
+struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j) {
+    struct SerializerProvider * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Retain)))) {
-            memset(x, 0, sizeof(struct Retain));
-            if (!cJSON_HasObjectItem(j, "retain")) { cJSON_DeleteRetain(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "retain")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "retain"))) { cJSON_DeleteRetain(x); return NULL; }
-                x->retain = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "retain"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct SerializerProvider)))) {
+            memset(x, 0, sizeof(struct SerializerProvider));
+            if (!cJSON_HasObjectItem(j, "SerializerProvider")) { cJSON_DeleteSerializerProvider(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "SerializerProvider")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"))) { cJSON_DeleteSerializerProvider(x); return NULL; }
+                x->serializer_provider = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRetain(const struct Retain * x) {
+cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "retain", x->retain);
+            cJSON_AddNumberToObject(j, "SerializerProvider", x->serializer_provider);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRetain(const struct Retain * x) {
+char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRetain(x);
+        cJSON * j = cJSON_CreateSerializerProvider(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16828,53 +16023,53 @@ char * cJSON_PrintRetain(const struct Retain * x) {
     return s;
 }
 
-void cJSON_DeleteRetain(struct Retain * x) {
+void cJSON_DeleteSerializerProvider(struct SerializerProvider * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Rethrows * cJSON_ParseRethrows(const char * s) {
-    struct Rethrows * x = NULL;
+struct Set * cJSON_ParseSet(const char * s) {
+    struct Set * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRethrowsValue(j);
+            x = cJSON_GetSetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Rethrows * cJSON_GetRethrowsValue(const cJSON * j) {
-    struct Rethrows * x = NULL;
+struct Set * cJSON_GetSetValue(const cJSON * j) {
+    struct Set * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Rethrows)))) {
-            memset(x, 0, sizeof(struct Rethrows));
-            if (!cJSON_HasObjectItem(j, "rethrows")) { cJSON_DeleteRethrows(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "rethrows")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "rethrows"))) { cJSON_DeleteRethrows(x); return NULL; }
-                x->rethrows = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "rethrows"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Set)))) {
+            memset(x, 0, sizeof(struct Set));
+            if (!cJSON_HasObjectItem(j, "set")) { cJSON_DeleteSet(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "set")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "set"))) { cJSON_DeleteSet(x); return NULL; }
+                x->set = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "set"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRethrows(const struct Rethrows * x) {
+cJSON * cJSON_CreateSet(const struct Set * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "rethrows", x->rethrows);
+            cJSON_AddNumberToObject(j, "set", x->set);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRethrows(const struct Rethrows * x) {
+char * cJSON_PrintSet(const struct Set * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRethrows(x);
+        cJSON * j = cJSON_CreateSet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16883,53 +16078,53 @@ char * cJSON_PrintRethrows(const struct Rethrows * x) {
     return s;
 }
 
-void cJSON_DeleteRethrows(struct Rethrows * x) {
+void cJSON_DeleteSet(struct Set * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Right * cJSON_ParseRight(const char * s) {
-    struct Right * x = NULL;
+struct SimpleModule * cJSON_ParseSimpleModule(const char * s) {
+    struct SimpleModule * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRightValue(j);
+            x = cJSON_GetSimpleModuleValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Right * cJSON_GetRightValue(const cJSON * j) {
-    struct Right * x = NULL;
+struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j) {
+    struct SimpleModule * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Right)))) {
-            memset(x, 0, sizeof(struct Right));
-            if (!cJSON_HasObjectItem(j, "right")) { cJSON_DeleteRight(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "right")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "right"))) { cJSON_DeleteRight(x); return NULL; }
-                x->right = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "right"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct SimpleModule)))) {
+            memset(x, 0, sizeof(struct SimpleModule));
+            if (!cJSON_HasObjectItem(j, "SimpleModule")) { cJSON_DeleteSimpleModule(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "SimpleModule")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"))) { cJSON_DeleteSimpleModule(x); return NULL; }
+                x->simple_module = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRight(const struct Right * x) {
+cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "right", x->right);
+            cJSON_AddNumberToObject(j, "SimpleModule", x->simple_module);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRight(const struct Right * x) {
+char * cJSON_PrintSimpleModule(const struct SimpleModule * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRight(x);
+        cJSON * j = cJSON_CreateSimpleModule(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16938,53 +16133,53 @@ char * cJSON_PrintRight(const struct Right * x) {
     return s;
 }
 
-void cJSON_DeleteRight(struct Right * x) {
+void cJSON_DeleteSimpleModule(struct SimpleModule * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct RuntimeType * cJSON_ParseRuntimeType(const char * s) {
-    struct RuntimeType * x = NULL;
+struct Stackalloc * cJSON_ParseStackalloc(const char * s) {
+    struct Stackalloc * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRuntimeTypeValue(j);
+            x = cJSON_GetStackallocValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct RuntimeType * cJSON_GetRuntimeTypeValue(const cJSON * j) {
-    struct RuntimeType * x = NULL;
+struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j) {
+    struct Stackalloc * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct RuntimeType)))) {
-            memset(x, 0, sizeof(struct RuntimeType));
-            if (!cJSON_HasObjectItem(j, "runtimeType")) { cJSON_DeleteRuntimeType(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "runtimeType")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"))) { cJSON_DeleteRuntimeType(x); return NULL; }
-                x->runtime_type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Stackalloc)))) {
+            memset(x, 0, sizeof(struct Stackalloc));
+            if (!cJSON_HasObjectItem(j, "stackalloc")) { cJSON_DeleteStackalloc(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "stackalloc")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"))) { cJSON_DeleteStackalloc(x); return NULL; }
+                x->stackalloc = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRuntimeType(const struct RuntimeType * x) {
+cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "runtimeType", x->runtime_type);
+            cJSON_AddNumberToObject(j, "stackalloc", x->stackalloc);
         }
     }
     return j;
 }
 
-char * cJSON_PrintRuntimeType(const struct RuntimeType * x) {
+char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRuntimeType(x);
+        cJSON * j = cJSON_CreateStackalloc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16993,53 +16188,53 @@ char * cJSON_PrintRuntimeType(const struct RuntimeType * x) {
     return s;
 }
 
-void cJSON_DeleteRuntimeType(struct RuntimeType * x) {
+void cJSON_DeleteStackalloc(struct Stackalloc * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct S * cJSON_ParseS(const char * s) {
-    struct S * x = NULL;
+struct Standards * cJSON_ParseStandards(const char * s) {
+    struct Standards * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSValue(j);
+            x = cJSON_GetStandardsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct S * cJSON_GetSValue(const cJSON * j) {
-    struct S * x = NULL;
+struct Standards * cJSON_GetStandardsValue(const cJSON * j) {
+    struct Standards * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct S)))) {
-            memset(x, 0, sizeof(struct S));
-            if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteS(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "s")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteS(x); return NULL; }
-                x->s = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "s"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Standards)))) {
+            memset(x, 0, sizeof(struct Standards));
+            if (!cJSON_HasObjectItem(j, "Standards")) { cJSON_DeleteStandards(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Standards")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Standards"))) { cJSON_DeleteStandards(x); return NULL; }
+                x->standards = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Standards"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateS(const struct S * x) {
+cJSON * cJSON_CreateStandards(const struct Standards * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "s", x->s);
+            cJSON_AddNumberToObject(j, "Standards", x->standards);
         }
     }
     return j;
 }
 
-char * cJSON_PrintS(const struct S * x) {
+char * cJSON_PrintStandards(const struct Standards * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateS(x);
+        cJSON * j = cJSON_CreateStandards(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17048,328 +16243,748 @@ char * cJSON_PrintS(const struct S * x) {
     return s;
 }
 
-void cJSON_DeleteS(struct S * x) {
+void cJSON_DeleteStandards(struct Standards * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Sbyte * cJSON_ParseSbyte(const char * s) {
-    struct Sbyte * x = NULL;
+struct Obj4 * cJSON_ParseObj4(const char * s) {
+    struct Obj4 * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSbyteValue(j);
+            x = cJSON_GetObj4Value(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Sbyte * cJSON_GetSbyteValue(const cJSON * j) {
-    struct Sbyte * x = NULL;
+struct Obj4 * cJSON_GetObj4Value(const cJSON * j) {
+    struct Obj4 * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sbyte)))) {
-            memset(x, 0, sizeof(struct Sbyte));
-            if (!cJSON_HasObjectItem(j, "sbyte")) { cJSON_DeleteSbyte(x); return NULL; }
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj4)))) {
+            memset(x, 0, sizeof(struct Obj4));
+            if (!cJSON_HasObjectItem(j, "dummy")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "dummy")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->dummy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dummy"));
+            }
+            if (!cJSON_HasObjectItem(j, "number")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "number")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "number"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->number = cJSON_GetNumberClassValue(cJSON_GetObjectItemCaseSensitive(j, "number"));
+                if (NULL == x->number) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "nullptr")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "nullptr")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "nullptr"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_nullptr = cJSON_GetNullptrValue(cJSON_GetObjectItemCaseSensitive(j, "nullptr"));
+                if (NULL == x->obj4_nullptr) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "operator")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "operator")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "operator"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_operator = cJSON_GetOperatorValue(cJSON_GetObjectItemCaseSensitive(j, "operator"));
+                if (NULL == x->obj4_operator) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "or")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "or")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "or"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_or = cJSON_GetOrValue(cJSON_GetObjectItemCaseSensitive(j, "or"));
+                if (NULL == x->obj4_or) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "or_eq")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "or_eq")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "or_eq"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_or_eq = cJSON_GetOrEqValue(cJSON_GetObjectItemCaseSensitive(j, "or_eq"));
+                if (NULL == x->obj4_or_eq) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "override")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "override")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "override"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_override = cJSON_GetOverrideValue(cJSON_GetObjectItemCaseSensitive(j, "override"));
+                if (NULL == x->obj4_override) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "private")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "private")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "private"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_private = cJSON_GetPrivateValue(cJSON_GetObjectItemCaseSensitive(j, "private"));
+                if (NULL == x->obj4_private) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "protected")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "protected")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "protected"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_protected = cJSON_GetProtectedValue(cJSON_GetObjectItemCaseSensitive(j, "protected"));
+                if (NULL == x->obj4_protected) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "protocol")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "protocol")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "protocol"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_protocol = cJSON_GetProtocolClassValue(cJSON_GetObjectItemCaseSensitive(j, "protocol"));
+                if (NULL == x->obj4_protocol) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "public")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "public")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "public"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_public = cJSON_GetPublicValue(cJSON_GetObjectItemCaseSensitive(j, "public"));
+                if (NULL == x->obj4_public) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "register")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "register")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "register"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_register = cJSON_GetRegisterValue(cJSON_GetObjectItemCaseSensitive(j, "register"));
+                if (NULL == x->obj4_register) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "reinterpret_cast")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "reinterpret_cast")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_reinterpret_cast = cJSON_GetReinterpretCastValue(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"));
+                if (NULL == x->obj4_reinterpret_cast) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "requires")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "requires")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "requires"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_requires = cJSON_GetRequiresValue(cJSON_GetObjectItemCaseSensitive(j, "requires"));
+                if (NULL == x->obj4_requires) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "restrict")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "restrict")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "restrict"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_restrict = cJSON_GetRestrictValue(cJSON_GetObjectItemCaseSensitive(j, "restrict"));
+                if (NULL == x->obj4_restrict) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "return")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "return")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "return"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_return = cJSON_GetReturnValue(cJSON_GetObjectItemCaseSensitive(j, "return"));
+                if (NULL == x->obj4_return) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "self")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "self")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "self"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_self = cJSON_GetSelfClassValue(cJSON_GetObjectItemCaseSensitive(j, "self"));
+                if (NULL == x->obj4_self) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "short")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "short")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "short"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_short = cJSON_GetShortValue(cJSON_GetObjectItemCaseSensitive(j, "short"));
+                if (NULL == x->obj4_short) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "signed")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "signed")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "signed"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_signed = cJSON_GetSignedValue(cJSON_GetObjectItemCaseSensitive(j, "signed"));
+                if (NULL == x->obj4_signed) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "sizeof")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "sizeof")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sizeof"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_sizeof = cJSON_GetSizeofValue(cJSON_GetObjectItemCaseSensitive(j, "sizeof"));
+                if (NULL == x->obj4_sizeof) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "static")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_static = cJSON_GetStaticValue(cJSON_GetObjectItemCaseSensitive(j, "static"));
+                if (NULL == x->obj4_static) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "static_assert")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static_assert")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static_assert"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->obj4_static_assert = cJSON_GetStaticAssertValue(cJSON_GetObjectItemCaseSensitive(j, "static_assert"));
+                if (NULL == x->obj4_static_assert) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "object")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "object")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "object"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->object = cJSON_GetObjectClassValue(cJSON_GetObjectItemCaseSensitive(j, "object"));
+                if (NULL == x->object) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "ObjectMapper")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ObjectMapper")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->object_mapper = cJSON_GetObjectMapperValue(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"));
+                if (NULL == x->object_mapper) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "of")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "of")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "of"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->of = cJSON_GetOfValue(cJSON_GetObjectItemCaseSensitive(j, "of"));
+                if (NULL == x->of) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "oneway")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "oneway")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "oneway"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->oneway = cJSON_GetOnewayValue(cJSON_GetObjectItemCaseSensitive(j, "oneway"));
+                if (NULL == x->oneway) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "open")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "open")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "open"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->open = cJSON_GetOpenValue(cJSON_GetObjectItemCaseSensitive(j, "open"));
+                if (NULL == x->open) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "optional")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "optional")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "optional"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->optional = cJSON_GetOptionalValue(cJSON_GetObjectItemCaseSensitive(j, "optional"));
+                if (NULL == x->optional) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "out")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "out")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "out"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->out = cJSON_GetOutValue(cJSON_GetObjectItemCaseSensitive(j, "out"));
+                if (NULL == x->out) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "package")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "package")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "package"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->package = cJSON_GetPackageValue(cJSON_GetObjectItemCaseSensitive(j, "package"));
+                if (NULL == x->package) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "params")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "params")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "params"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->params = cJSON_GetParamsValue(cJSON_GetObjectItemCaseSensitive(j, "params"));
+                if (NULL == x->params) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "pass")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "pass")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "pass"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->pass = cJSON_GetPassValue(cJSON_GetObjectItemCaseSensitive(j, "pass"));
+                if (NULL == x->pass) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "port")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "port")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "port"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->port = cJSON_GetPortValue(cJSON_GetObjectItemCaseSensitive(j, "port"));
+                if (NULL == x->port) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "postfix")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "postfix")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "postfix"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->postfix = cJSON_GetPostfixValue(cJSON_GetObjectItemCaseSensitive(j, "postfix"));
+                if (NULL == x->postfix) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "precedence")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "precedence")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "precedence"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->precedence = cJSON_GetPrecedenceValue(cJSON_GetObjectItemCaseSensitive(j, "precedence"));
+                if (NULL == x->precedence) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "prefix")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "prefix")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "prefix"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->prefix = cJSON_GetPrefixValue(cJSON_GetObjectItemCaseSensitive(j, "prefix"));
+                if (NULL == x->prefix) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "print")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "print")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "print"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->print = cJSON_GetPrintValue(cJSON_GetObjectItemCaseSensitive(j, "print"));
+                if (NULL == x->print) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "printMembers")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "printMembers")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "printMembers"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->print_members = cJSON_GetPrintMembersValue(cJSON_GetObjectItemCaseSensitive(j, "printMembers"));
+                if (NULL == x->print_members) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "printf")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "printf")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "printf"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->printf = cJSON_GetPrintfValue(cJSON_GetObjectItemCaseSensitive(j, "printf"));
+                if (NULL == x->printf) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "Protocol")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Protocol")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Protocol"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->protocol = cJSON_GetProtocolValue(cJSON_GetObjectItemCaseSensitive(j, "Protocol"));
+                if (NULL == x->protocol) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "quicktype")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "quicktype")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "quicktype"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->quicktype = cJSON_GetQuicktypeValue(cJSON_GetObjectItemCaseSensitive(j, "quicktype"));
+                if (NULL == x->quicktype) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "raise")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "raise")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "raise"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->raise = cJSON_GetRaiseValue(cJSON_GetObjectItemCaseSensitive(j, "raise"));
+                if (NULL == x->raise) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "range")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "range")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "range"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->range = cJSON_GetRangeValue(cJSON_GetObjectItemCaseSensitive(j, "range"));
+                if (NULL == x->range) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "readonly")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "readonly")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "readonly"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->readonly = cJSON_GetReadonlyValue(cJSON_GetObjectItemCaseSensitive(j, "readonly"));
+                if (NULL == x->readonly) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "ref")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ref")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ref"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->ref = cJSON_GetRefValue(cJSON_GetObjectItemCaseSensitive(j, "ref"));
+                if (NULL == x->ref) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "RegExp")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "RegExp")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "RegExp"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->reg_exp = cJSON_GetRegExpValue(cJSON_GetObjectItemCaseSensitive(j, "RegExp"));
+                if (NULL == x->reg_exp) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "repeat")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "repeat")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "repeat"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->repeat = cJSON_GetRepeatValue(cJSON_GetObjectItemCaseSensitive(j, "repeat"));
+                if (NULL == x->repeat) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "require")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "require")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "require"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->require = cJSON_GetRequireValue(cJSON_GetObjectItemCaseSensitive(j, "require"));
+                if (NULL == x->require) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "required")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "required")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "required"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->required = cJSON_GetRequiredValue(cJSON_GetObjectItemCaseSensitive(j, "required"));
+                if (NULL == x->required) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "retain")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "retain")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "retain"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->retain = cJSON_GetRetainValue(cJSON_GetObjectItemCaseSensitive(j, "retain"));
+                if (NULL == x->retain) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "rethrows")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "rethrows")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "rethrows"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->rethrows = cJSON_GetRethrowsValue(cJSON_GetObjectItemCaseSensitive(j, "rethrows"));
+                if (NULL == x->rethrows) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "right")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "right")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "right"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->right = cJSON_GetRightValue(cJSON_GetObjectItemCaseSensitive(j, "right"));
+                if (NULL == x->right) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "runtimeType")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "runtimeType")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->runtime_type = cJSON_GetRuntimeTypeValue(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"));
+                if (NULL == x->runtime_type) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "s")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->s = cJSON_GetSValue(cJSON_GetObjectItemCaseSensitive(j, "s"));
+                if (NULL == x->s) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "sbyte")) { cJSON_DeleteObj4(x); return NULL; }
             if (cJSON_HasObjectItem(j, "sbyte")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteSbyte(x); return NULL; }
-                x->sbyte = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sbyte"));
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->sbyte = cJSON_GetSbyteValue(cJSON_GetObjectItemCaseSensitive(j, "sbyte"));
+                if (NULL == x->sbyte) { cJSON_DeleteObj4(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSbyte(const struct Sbyte * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "sbyte", x->sbyte);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSbyte(const struct Sbyte * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSbyte(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSbyte(struct Sbyte * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Sealed * cJSON_ParseSealed(const char * s) {
-    struct Sealed * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSealedValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Sealed * cJSON_GetSealedValue(const cJSON * j) {
-    struct Sealed * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sealed)))) {
-            memset(x, 0, sizeof(struct Sealed));
-            if (!cJSON_HasObjectItem(j, "sealed")) { cJSON_DeleteSealed(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "sealed")) { cJSON_DeleteObj4(x); return NULL; }
             if (cJSON_HasObjectItem(j, "sealed")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "sealed"))) { cJSON_DeleteSealed(x); return NULL; }
-                x->sealed = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "sealed"));
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sealed"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->sealed = cJSON_GetSealedValue(cJSON_GetObjectItemCaseSensitive(j, "sealed"));
+                if (NULL == x->sealed) { cJSON_DeleteObj4(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSealed(const struct Sealed * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "sealed", x->sealed);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSealed(const struct Sealed * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSealed(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSealed(struct Sealed * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Sel * cJSON_ParseSel(const char * s) {
-    struct Sel * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSelValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Sel * cJSON_GetSelValue(const cJSON * j) {
-    struct Sel * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sel)))) {
-            memset(x, 0, sizeof(struct Sel));
-            if (!cJSON_HasObjectItem(j, "SEL")) { cJSON_DeleteSel(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "SEL")) { cJSON_DeleteObj4(x); return NULL; }
             if (cJSON_HasObjectItem(j, "SEL")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "SEL"))) { cJSON_DeleteSel(x); return NULL; }
-                x->sel = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "SEL"));
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SEL"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->sel = cJSON_GetSelValue(cJSON_GetObjectItemCaseSensitive(j, "SEL"));
+                if (NULL == x->sel) { cJSON_DeleteObj4(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSel(const struct Sel * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "SEL", x->sel);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSel(const struct Sel * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSel(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSel(struct Sel * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Select * cJSON_ParseSelect(const char * s) {
-    struct Select * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSelectValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Select * cJSON_GetSelectValue(const cJSON * j) {
-    struct Select * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Select)))) {
-            memset(x, 0, sizeof(struct Select));
-            if (!cJSON_HasObjectItem(j, "select")) { cJSON_DeleteSelect(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "select")) { cJSON_DeleteObj4(x); return NULL; }
             if (cJSON_HasObjectItem(j, "select")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "select"))) { cJSON_DeleteSelect(x); return NULL; }
-                x->select = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "select"));
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "select"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->select = cJSON_GetSelectValue(cJSON_GetObjectItemCaseSensitive(j, "select"));
+                if (NULL == x->select) { cJSON_DeleteObj4(x); return NULL; }
             }
-        }
-    }
-    return x;
-}
-
-cJSON * cJSON_CreateSelect(const struct Select * x) {
-    cJSON * j = NULL;
-    if (NULL != x) {
-        if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "select", x->select);
-        }
-    }
-    return j;
-}
-
-char * cJSON_PrintSelect(const struct Select * x) {
-    char * s = NULL;
-    if (NULL != x) {
-        cJSON * j = cJSON_CreateSelect(x);
-        if (NULL != j) {
-            s = cJSON_Print(j);
-            cJSON_Delete(j);
-        }
-    }
-    return s;
-}
-
-void cJSON_DeleteSelect(struct Select * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Self * cJSON_ParseSelf(const char * s) {
-    struct Self * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetSelfValue(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Self * cJSON_GetSelfValue(const cJSON * j) {
-    struct Self * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Self)))) {
-            memset(x, 0, sizeof(struct Self));
-            if (!cJSON_HasObjectItem(j, "Self")) { cJSON_DeleteSelf(x); return NULL; }
+            if (!cJSON_HasObjectItem(j, "Self")) { cJSON_DeleteObj4(x); return NULL; }
             if (cJSON_HasObjectItem(j, "Self")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Self"))) { cJSON_DeleteSelf(x); return NULL; }
-                x->self = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Self"));
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Self"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->self = cJSON_GetSelfValue(cJSON_GetObjectItemCaseSensitive(j, "Self"));
+                if (NULL == x->self) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "serialize")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "serialize")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "serialize"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->serialize = cJSON_GetSerializeValue(cJSON_GetObjectItemCaseSensitive(j, "serialize"));
+                if (NULL == x->serialize) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "SerializerProvider")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "SerializerProvider")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->serializer_provider = cJSON_GetSerializerProviderValue(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"));
+                if (NULL == x->serializer_provider) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "set")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "set")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "set"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->set = cJSON_GetSetValue(cJSON_GetObjectItemCaseSensitive(j, "set"));
+                if (NULL == x->set) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "SimpleModule")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "SimpleModule")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->simple_module = cJSON_GetSimpleModuleValue(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"));
+                if (NULL == x->simple_module) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "stackalloc")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "stackalloc")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->stackalloc = cJSON_GetStackallocValue(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"));
+                if (NULL == x->stackalloc) { cJSON_DeleteObj4(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "Standards")) { cJSON_DeleteObj4(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Standards")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Standards"))) { cJSON_DeleteObj4(x); return NULL; }
+                x->standards = cJSON_GetStandardsValue(cJSON_GetObjectItemCaseSensitive(j, "Standards"));
+                if (NULL == x->standards) { cJSON_DeleteObj4(x); return NULL; }
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSelf(const struct Self * x) {
+cJSON * cJSON_CreateObj4(const struct Obj4 * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "Self", x->self);
+            cJSON_AddNumberToObject(j, "dummy", x->dummy);
+            cJSON_AddItemToObject(j, "number", cJSON_CreateNumberClass(x->number));
+            cJSON_AddItemToObject(j, "nullptr", cJSON_CreateNullptr(x->obj4_nullptr));
+            cJSON_AddItemToObject(j, "operator", cJSON_CreateOperator(x->obj4_operator));
+            cJSON_AddItemToObject(j, "or", cJSON_CreateOr(x->obj4_or));
+            cJSON_AddItemToObject(j, "or_eq", cJSON_CreateOrEq(x->obj4_or_eq));
+            cJSON_AddItemToObject(j, "override", cJSON_CreateOverride(x->obj4_override));
+            cJSON_AddItemToObject(j, "private", cJSON_CreatePrivate(x->obj4_private));
+            cJSON_AddItemToObject(j, "protected", cJSON_CreateProtected(x->obj4_protected));
+            cJSON_AddItemToObject(j, "protocol", cJSON_CreateProtocolClass(x->obj4_protocol));
+            cJSON_AddItemToObject(j, "public", cJSON_CreatePublic(x->obj4_public));
+            cJSON_AddItemToObject(j, "register", cJSON_CreateRegister(x->obj4_register));
+            cJSON_AddItemToObject(j, "reinterpret_cast", cJSON_CreateReinterpretCast(x->obj4_reinterpret_cast));
+            cJSON_AddItemToObject(j, "requires", cJSON_CreateRequires(x->obj4_requires));
+            cJSON_AddItemToObject(j, "restrict", cJSON_CreateRestrict(x->obj4_restrict));
+            cJSON_AddItemToObject(j, "return", cJSON_CreateReturn(x->obj4_return));
+            cJSON_AddItemToObject(j, "self", cJSON_CreateSelfClass(x->obj4_self));
+            cJSON_AddItemToObject(j, "short", cJSON_CreateShort(x->obj4_short));
+            cJSON_AddItemToObject(j, "signed", cJSON_CreateSigned(x->obj4_signed));
+            cJSON_AddItemToObject(j, "sizeof", cJSON_CreateSizeof(x->obj4_sizeof));
+            cJSON_AddItemToObject(j, "static", cJSON_CreateStatic(x->obj4_static));
+            cJSON_AddItemToObject(j, "static_assert", cJSON_CreateStaticAssert(x->obj4_static_assert));
+            cJSON_AddItemToObject(j, "object", cJSON_CreateObjectClass(x->object));
+            cJSON_AddItemToObject(j, "ObjectMapper", cJSON_CreateObjectMapper(x->object_mapper));
+            cJSON_AddItemToObject(j, "of", cJSON_CreateOf(x->of));
+            cJSON_AddItemToObject(j, "oneway", cJSON_CreateOneway(x->oneway));
+            cJSON_AddItemToObject(j, "open", cJSON_CreateOpen(x->open));
+            cJSON_AddItemToObject(j, "optional", cJSON_CreateOptional(x->optional));
+            cJSON_AddItemToObject(j, "out", cJSON_CreateOut(x->out));
+            cJSON_AddItemToObject(j, "package", cJSON_CreatePackage(x->package));
+            cJSON_AddItemToObject(j, "params", cJSON_CreateParams(x->params));
+            cJSON_AddItemToObject(j, "pass", cJSON_CreatePass(x->pass));
+            cJSON_AddItemToObject(j, "port", cJSON_CreatePort(x->port));
+            cJSON_AddItemToObject(j, "postfix", cJSON_CreatePostfix(x->postfix));
+            cJSON_AddItemToObject(j, "precedence", cJSON_CreatePrecedence(x->precedence));
+            cJSON_AddItemToObject(j, "prefix", cJSON_CreatePrefix(x->prefix));
+            cJSON_AddItemToObject(j, "print", cJSON_CreatePrint(x->print));
+            cJSON_AddItemToObject(j, "printMembers", cJSON_CreatePrintMembers(x->print_members));
+            cJSON_AddItemToObject(j, "printf", cJSON_CreatePrintf(x->printf));
+            cJSON_AddItemToObject(j, "Protocol", cJSON_CreateProtocol(x->protocol));
+            cJSON_AddItemToObject(j, "quicktype", cJSON_CreateQuicktype(x->quicktype));
+            cJSON_AddItemToObject(j, "raise", cJSON_CreateRaise(x->raise));
+            cJSON_AddItemToObject(j, "range", cJSON_CreateRange(x->range));
+            cJSON_AddItemToObject(j, "readonly", cJSON_CreateReadonly(x->readonly));
+            cJSON_AddItemToObject(j, "ref", cJSON_CreateRef(x->ref));
+            cJSON_AddItemToObject(j, "RegExp", cJSON_CreateRegExp(x->reg_exp));
+            cJSON_AddItemToObject(j, "repeat", cJSON_CreateRepeat(x->repeat));
+            cJSON_AddItemToObject(j, "require", cJSON_CreateRequire(x->require));
+            cJSON_AddItemToObject(j, "required", cJSON_CreateRequired(x->required));
+            cJSON_AddItemToObject(j, "retain", cJSON_CreateRetain(x->retain));
+            cJSON_AddItemToObject(j, "rethrows", cJSON_CreateRethrows(x->rethrows));
+            cJSON_AddItemToObject(j, "right", cJSON_CreateRight(x->right));
+            cJSON_AddItemToObject(j, "runtimeType", cJSON_CreateRuntimeType(x->runtime_type));
+            cJSON_AddItemToObject(j, "s", cJSON_CreateS(x->s));
+            cJSON_AddItemToObject(j, "sbyte", cJSON_CreateSbyte(x->sbyte));
+            cJSON_AddItemToObject(j, "sealed", cJSON_CreateSealed(x->sealed));
+            cJSON_AddItemToObject(j, "SEL", cJSON_CreateSel(x->sel));
+            cJSON_AddItemToObject(j, "select", cJSON_CreateSelect(x->select));
+            cJSON_AddItemToObject(j, "Self", cJSON_CreateSelf(x->self));
+            cJSON_AddItemToObject(j, "serialize", cJSON_CreateSerialize(x->serialize));
+            cJSON_AddItemToObject(j, "SerializerProvider", cJSON_CreateSerializerProvider(x->serializer_provider));
+            cJSON_AddItemToObject(j, "set", cJSON_CreateSet(x->set));
+            cJSON_AddItemToObject(j, "SimpleModule", cJSON_CreateSimpleModule(x->simple_module));
+            cJSON_AddItemToObject(j, "stackalloc", cJSON_CreateStackalloc(x->stackalloc));
+            cJSON_AddItemToObject(j, "Standards", cJSON_CreateStandards(x->standards));
         }
     }
     return j;
 }
 
-char * cJSON_PrintSelf(const struct Self * x) {
+char * cJSON_PrintObj4(const struct Obj4 * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSelf(x);
+        cJSON * j = cJSON_CreateObj4(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
         }
-    }
-    return s;
-}
-
-void cJSON_DeleteSelf(struct Self * x) {
-    if (NULL != x) {
+    }
+    return s;
+}
+
+void cJSON_DeleteObj4(struct Obj4 * x) {
+    if (NULL != x) {
+        if (NULL != x->number) {
+            cJSON_DeleteNumberClass(x->number);
+        }
+        if (NULL != x->obj4_nullptr) {
+            cJSON_DeleteNullptr(x->obj4_nullptr);
+        }
+        if (NULL != x->obj4_operator) {
+            cJSON_DeleteOperator(x->obj4_operator);
+        }
+        if (NULL != x->obj4_or) {
+            cJSON_DeleteOr(x->obj4_or);
+        }
+        if (NULL != x->obj4_or_eq) {
+            cJSON_DeleteOrEq(x->obj4_or_eq);
+        }
+        if (NULL != x->obj4_override) {
+            cJSON_DeleteOverride(x->obj4_override);
+        }
+        if (NULL != x->obj4_private) {
+            cJSON_DeletePrivate(x->obj4_private);
+        }
+        if (NULL != x->obj4_protected) {
+            cJSON_DeleteProtected(x->obj4_protected);
+        }
+        if (NULL != x->obj4_protocol) {
+            cJSON_DeleteProtocolClass(x->obj4_protocol);
+        }
+        if (NULL != x->obj4_public) {
+            cJSON_DeletePublic(x->obj4_public);
+        }
+        if (NULL != x->obj4_register) {
+            cJSON_DeleteRegister(x->obj4_register);
+        }
+        if (NULL != x->obj4_reinterpret_cast) {
+            cJSON_DeleteReinterpretCast(x->obj4_reinterpret_cast);
+        }
+        if (NULL != x->obj4_requires) {
+            cJSON_DeleteRequires(x->obj4_requires);
+        }
+        if (NULL != x->obj4_restrict) {
+            cJSON_DeleteRestrict(x->obj4_restrict);
+        }
+        if (NULL != x->obj4_return) {
+            cJSON_DeleteReturn(x->obj4_return);
+        }
+        if (NULL != x->obj4_self) {
+            cJSON_DeleteSelfClass(x->obj4_self);
+        }
+        if (NULL != x->obj4_short) {
+            cJSON_DeleteShort(x->obj4_short);
+        }
+        if (NULL != x->obj4_signed) {
+            cJSON_DeleteSigned(x->obj4_signed);
+        }
+        if (NULL != x->obj4_sizeof) {
+            cJSON_DeleteSizeof(x->obj4_sizeof);
+        }
+        if (NULL != x->obj4_static) {
+            cJSON_DeleteStatic(x->obj4_static);
+        }
+        if (NULL != x->obj4_static_assert) {
+            cJSON_DeleteStaticAssert(x->obj4_static_assert);
+        }
+        if (NULL != x->object) {
+            cJSON_DeleteObjectClass(x->object);
+        }
+        if (NULL != x->object_mapper) {
+            cJSON_DeleteObjectMapper(x->object_mapper);
+        }
+        if (NULL != x->of) {
+            cJSON_DeleteOf(x->of);
+        }
+        if (NULL != x->oneway) {
+            cJSON_DeleteOneway(x->oneway);
+        }
+        if (NULL != x->open) {
+            cJSON_DeleteOpen(x->open);
+        }
+        if (NULL != x->optional) {
+            cJSON_DeleteOptional(x->optional);
+        }
+        if (NULL != x->out) {
+            cJSON_DeleteOut(x->out);
+        }
+        if (NULL != x->package) {
+            cJSON_DeletePackage(x->package);
+        }
+        if (NULL != x->params) {
+            cJSON_DeleteParams(x->params);
+        }
+        if (NULL != x->pass) {
+            cJSON_DeletePass(x->pass);
+        }
+        if (NULL != x->port) {
+            cJSON_DeletePort(x->port);
+        }
+        if (NULL != x->postfix) {
+            cJSON_DeletePostfix(x->postfix);
+        }
+        if (NULL != x->precedence) {
+            cJSON_DeletePrecedence(x->precedence);
+        }
+        if (NULL != x->prefix) {
+            cJSON_DeletePrefix(x->prefix);
+        }
+        if (NULL != x->print) {
+            cJSON_DeletePrint(x->print);
+        }
+        if (NULL != x->print_members) {
+            cJSON_DeletePrintMembers(x->print_members);
+        }
+        if (NULL != x->printf) {
+            cJSON_DeletePrintf(x->printf);
+        }
+        if (NULL != x->protocol) {
+            cJSON_DeleteProtocol(x->protocol);
+        }
+        if (NULL != x->quicktype) {
+            cJSON_DeleteQuicktype(x->quicktype);
+        }
+        if (NULL != x->raise) {
+            cJSON_DeleteRaise(x->raise);
+        }
+        if (NULL != x->range) {
+            cJSON_DeleteRange(x->range);
+        }
+        if (NULL != x->readonly) {
+            cJSON_DeleteReadonly(x->readonly);
+        }
+        if (NULL != x->ref) {
+            cJSON_DeleteRef(x->ref);
+        }
+        if (NULL != x->reg_exp) {
+            cJSON_DeleteRegExp(x->reg_exp);
+        }
+        if (NULL != x->repeat) {
+            cJSON_DeleteRepeat(x->repeat);
+        }
+        if (NULL != x->require) {
+            cJSON_DeleteRequire(x->require);
+        }
+        if (NULL != x->required) {
+            cJSON_DeleteRequired(x->required);
+        }
+        if (NULL != x->retain) {
+            cJSON_DeleteRetain(x->retain);
+        }
+        if (NULL != x->rethrows) {
+            cJSON_DeleteRethrows(x->rethrows);
+        }
+        if (NULL != x->right) {
+            cJSON_DeleteRight(x->right);
+        }
+        if (NULL != x->runtime_type) {
+            cJSON_DeleteRuntimeType(x->runtime_type);
+        }
+        if (NULL != x->s) {
+            cJSON_DeleteS(x->s);
+        }
+        if (NULL != x->sbyte) {
+            cJSON_DeleteSbyte(x->sbyte);
+        }
+        if (NULL != x->sealed) {
+            cJSON_DeleteSealed(x->sealed);
+        }
+        if (NULL != x->sel) {
+            cJSON_DeleteSel(x->sel);
+        }
+        if (NULL != x->select) {
+            cJSON_DeleteSelect(x->select);
+        }
+        if (NULL != x->self) {
+            cJSON_DeleteSelf(x->self);
+        }
+        if (NULL != x->serialize) {
+            cJSON_DeleteSerialize(x->serialize);
+        }
+        if (NULL != x->serializer_provider) {
+            cJSON_DeleteSerializerProvider(x->serializer_provider);
+        }
+        if (NULL != x->set) {
+            cJSON_DeleteSet(x->set);
+        }
+        if (NULL != x->simple_module) {
+            cJSON_DeleteSimpleModule(x->simple_module);
+        }
+        if (NULL != x->stackalloc) {
+            cJSON_DeleteStackalloc(x->stackalloc);
+        }
+        if (NULL != x->standards) {
+            cJSON_DeleteStandards(x->standards);
+        }
         cJSON_free(x);
     }
 }
 
-struct Serialize * cJSON_ParseSerialize(const char * s) {
-    struct Serialize * x = NULL;
+struct StaticCast * cJSON_ParseStaticCast(const char * s) {
+    struct StaticCast * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSerializeValue(j);
+            x = cJSON_GetStaticCastValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Serialize * cJSON_GetSerializeValue(const cJSON * j) {
-    struct Serialize * x = NULL;
+struct StaticCast * cJSON_GetStaticCastValue(const cJSON * j) {
+    struct StaticCast * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Serialize)))) {
-            memset(x, 0, sizeof(struct Serialize));
-            if (!cJSON_HasObjectItem(j, "serialize")) { cJSON_DeleteSerialize(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "serialize")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "serialize"))) { cJSON_DeleteSerialize(x); return NULL; }
-                x->serialize = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "serialize"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct StaticCast)))) {
+            memset(x, 0, sizeof(struct StaticCast));
+            if (!cJSON_HasObjectItem(j, "static_cast")) { cJSON_DeleteStaticCast(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static_cast")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "static_cast"))) { cJSON_DeleteStaticCast(x); return NULL; }
+                x->static_cast_static_cast = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "static_cast"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSerialize(const struct Serialize * x) {
+cJSON * cJSON_CreateStaticCast(const struct StaticCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "serialize", x->serialize);
+            cJSON_AddNumberToObject(j, "static_cast", x->static_cast_static_cast);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSerialize(const struct Serialize * x) {
+char * cJSON_PrintStaticCast(const struct StaticCast * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSerialize(x);
+        cJSON * j = cJSON_CreateStaticCast(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17378,53 +16993,53 @@ char * cJSON_PrintSerialize(const struct Serialize * x) {
     return s;
 }
 
-void cJSON_DeleteSerialize(struct Serialize * x) {
+void cJSON_DeleteStaticCast(struct StaticCast * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Set * cJSON_ParseSet(const char * s) {
-    struct Set * x = NULL;
+struct Struct * cJSON_ParseStruct(const char * s) {
+    struct Struct * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSetValue(j);
+            x = cJSON_GetStructValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Set * cJSON_GetSetValue(const cJSON * j) {
-    struct Set * x = NULL;
+struct Struct * cJSON_GetStructValue(const cJSON * j) {
+    struct Struct * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Set)))) {
-            memset(x, 0, sizeof(struct Set));
-            if (!cJSON_HasObjectItem(j, "set")) { cJSON_DeleteSet(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "set")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "set"))) { cJSON_DeleteSet(x); return NULL; }
-                x->set = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "set"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Struct)))) {
+            memset(x, 0, sizeof(struct Struct));
+            if (!cJSON_HasObjectItem(j, "struct")) { cJSON_DeleteStruct(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "struct")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "struct"))) { cJSON_DeleteStruct(x); return NULL; }
+                x->struct_struct = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "struct"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSet(const struct Set * x) {
+cJSON * cJSON_CreateStruct(const struct Struct * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "set", x->set);
+            cJSON_AddNumberToObject(j, "struct", x->struct_struct);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSet(const struct Set * x) {
+char * cJSON_PrintStruct(const struct Struct * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSet(x);
+        cJSON * j = cJSON_CreateStruct(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17433,53 +17048,53 @@ char * cJSON_PrintSet(const struct Set * x) {
     return s;
 }
 
-void cJSON_DeleteSet(struct Set * x) {
+void cJSON_DeleteStruct(struct Struct * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Stackalloc * cJSON_ParseStackalloc(const char * s) {
-    struct Stackalloc * x = NULL;
+struct Switch * cJSON_ParseSwitch(const char * s) {
+    struct Switch * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStackallocValue(j);
+            x = cJSON_GetSwitchValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j) {
-    struct Stackalloc * x = NULL;
+struct Switch * cJSON_GetSwitchValue(const cJSON * j) {
+    struct Switch * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Stackalloc)))) {
-            memset(x, 0, sizeof(struct Stackalloc));
-            if (!cJSON_HasObjectItem(j, "stackalloc")) { cJSON_DeleteStackalloc(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "stackalloc")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"))) { cJSON_DeleteStackalloc(x); return NULL; }
-                x->stackalloc = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Switch)))) {
+            memset(x, 0, sizeof(struct Switch));
+            if (!cJSON_HasObjectItem(j, "switch")) { cJSON_DeleteSwitch(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "switch")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "switch"))) { cJSON_DeleteSwitch(x); return NULL; }
+                x->switch_switch = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "switch"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x) {
+cJSON * cJSON_CreateSwitch(const struct Switch * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "stackalloc", x->stackalloc);
+            cJSON_AddNumberToObject(j, "switch", x->switch_switch);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
+char * cJSON_PrintSwitch(const struct Switch * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStackalloc(x);
+        cJSON * j = cJSON_CreateSwitch(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17488,53 +17103,53 @@ char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
     return s;
 }
 
-void cJSON_DeleteStackalloc(struct Stackalloc * x) {
+void cJSON_DeleteSwitch(struct Switch * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Standards * cJSON_ParseStandards(const char * s) {
-    struct Standards * x = NULL;
+struct Synchronized * cJSON_ParseSynchronized(const char * s) {
+    struct Synchronized * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStandardsValue(j);
+            x = cJSON_GetSynchronizedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Standards * cJSON_GetStandardsValue(const cJSON * j) {
-    struct Standards * x = NULL;
+struct Synchronized * cJSON_GetSynchronizedValue(const cJSON * j) {
+    struct Synchronized * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Standards)))) {
-            memset(x, 0, sizeof(struct Standards));
-            if (!cJSON_HasObjectItem(j, "Standards")) { cJSON_DeleteStandards(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Standards")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Standards"))) { cJSON_DeleteStandards(x); return NULL; }
-                x->standards = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Standards"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Synchronized)))) {
+            memset(x, 0, sizeof(struct Synchronized));
+            if (!cJSON_HasObjectItem(j, "synchronized")) { cJSON_DeleteSynchronized(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "synchronized")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "synchronized"))) { cJSON_DeleteSynchronized(x); return NULL; }
+                x->synchronized_synchronized = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "synchronized"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStandards(const struct Standards * x) {
+cJSON * cJSON_CreateSynchronized(const struct Synchronized * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "Standards", x->standards);
+            cJSON_AddNumberToObject(j, "synchronized", x->synchronized_synchronized);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStandards(const struct Standards * x) {
+char * cJSON_PrintSynchronized(const struct Synchronized * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStandards(x);
+        cJSON * j = cJSON_CreateSynchronized(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17543,53 +17158,53 @@ char * cJSON_PrintStandards(const struct Standards * x) {
     return s;
 }
 
-void cJSON_DeleteStandards(struct Standards * x) {
+void cJSON_DeleteSynchronized(struct Synchronized * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Strictfp * cJSON_ParseStrictfp(const char * s) {
-    struct Strictfp * x = NULL;
+struct Template * cJSON_ParseTemplate(const char * s) {
+    struct Template * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStrictfpValue(j);
+            x = cJSON_GetTemplateValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Strictfp * cJSON_GetStrictfpValue(const cJSON * j) {
-    struct Strictfp * x = NULL;
+struct Template * cJSON_GetTemplateValue(const cJSON * j) {
+    struct Template * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Strictfp)))) {
-            memset(x, 0, sizeof(struct Strictfp));
-            if (!cJSON_HasObjectItem(j, "strictfp")) { cJSON_DeleteStrictfp(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "strictfp")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "strictfp"))) { cJSON_DeleteStrictfp(x); return NULL; }
-                x->strictfp = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "strictfp"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Template)))) {
+            memset(x, 0, sizeof(struct Template));
+            if (!cJSON_HasObjectItem(j, "template")) { cJSON_DeleteTemplate(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "template")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "template"))) { cJSON_DeleteTemplate(x); return NULL; }
+                x->template_template = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "template"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStrictfp(const struct Strictfp * x) {
+cJSON * cJSON_CreateTemplate(const struct Template * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "strictfp", x->strictfp);
+            cJSON_AddNumberToObject(j, "template", x->template_template);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStrictfp(const struct Strictfp * x) {
+char * cJSON_PrintTemplate(const struct Template * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStrictfp(x);
+        cJSON * j = cJSON_CreateTemplate(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17598,53 +17213,53 @@ char * cJSON_PrintStrictfp(const struct Strictfp * x) {
     return s;
 }
 
-void cJSON_DeleteStrictfp(struct Strictfp * x) {
+void cJSON_DeleteTemplate(struct Template * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct StringClass * cJSON_ParseStringClass(const char * s) {
-    struct StringClass * x = NULL;
+struct This * cJSON_ParseThis(const char * s) {
+    struct This * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStringClassValue(j);
+            x = cJSON_GetThisValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct StringClass * cJSON_GetStringClassValue(const cJSON * j) {
-    struct StringClass * x = NULL;
+struct This * cJSON_GetThisValue(const cJSON * j) {
+    struct This * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct StringClass)))) {
-            memset(x, 0, sizeof(struct StringClass));
-            if (!cJSON_HasObjectItem(j, "string")) { cJSON_DeleteStringClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "string")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "string"))) { cJSON_DeleteStringClass(x); return NULL; }
-                x->string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "string"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct This)))) {
+            memset(x, 0, sizeof(struct This));
+            if (!cJSON_HasObjectItem(j, "this")) { cJSON_DeleteThis(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "this")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "this"))) { cJSON_DeleteThis(x); return NULL; }
+                x->this_this = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "this"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStringClass(const struct StringClass * x) {
+cJSON * cJSON_CreateThis(const struct This * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "string", x->string);
+            cJSON_AddNumberToObject(j, "this", x->this_this);
         }
     }
     return j;
 }
 
-char * cJSON_PrintStringClass(const struct StringClass * x) {
+char * cJSON_PrintThis(const struct This * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStringClass(x);
+        cJSON * j = cJSON_CreateThis(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17653,53 +17268,53 @@ char * cJSON_PrintStringClass(const struct StringClass * x) {
     return s;
 }
 
-void cJSON_DeleteStringClass(struct StringClass * x) {
+void cJSON_DeleteThis(struct This * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Subscript * cJSON_ParseSubscript(const char * s) {
-    struct Subscript * x = NULL;
+struct ThreadLocal * cJSON_ParseThreadLocal(const char * s) {
+    struct ThreadLocal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSubscriptValue(j);
+            x = cJSON_GetThreadLocalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Subscript * cJSON_GetSubscriptValue(const cJSON * j) {
-    struct Subscript * x = NULL;
+struct ThreadLocal * cJSON_GetThreadLocalValue(const cJSON * j) {
+    struct ThreadLocal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Subscript)))) {
-            memset(x, 0, sizeof(struct Subscript));
-            if (!cJSON_HasObjectItem(j, "subscript")) { cJSON_DeleteSubscript(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "subscript")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "subscript"))) { cJSON_DeleteSubscript(x); return NULL; }
-                x->subscript = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "subscript"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ThreadLocal)))) {
+            memset(x, 0, sizeof(struct ThreadLocal));
+            if (!cJSON_HasObjectItem(j, "thread_local")) { cJSON_DeleteThreadLocal(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "thread_local")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "thread_local"))) { cJSON_DeleteThreadLocal(x); return NULL; }
+                x->thread_local_thread_local = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "thread_local"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSubscript(const struct Subscript * x) {
+cJSON * cJSON_CreateThreadLocal(const struct ThreadLocal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "subscript", x->subscript);
+            cJSON_AddNumberToObject(j, "thread_local", x->thread_local_thread_local);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSubscript(const struct Subscript * x) {
+char * cJSON_PrintThreadLocal(const struct ThreadLocal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSubscript(x);
+        cJSON * j = cJSON_CreateThreadLocal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17708,53 +17323,53 @@ char * cJSON_PrintSubscript(const struct Subscript * x) {
     return s;
 }
 
-void cJSON_DeleteSubscript(struct Subscript * x) {
+void cJSON_DeleteThreadLocal(struct ThreadLocal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Super * cJSON_ParseSuper(const char * s) {
-    struct Super * x = NULL;
+struct Throw * cJSON_ParseThrow(const char * s) {
+    struct Throw * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSuperValue(j);
+            x = cJSON_GetThrowValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Super * cJSON_GetSuperValue(const cJSON * j) {
-    struct Super * x = NULL;
+struct Throw * cJSON_GetThrowValue(const cJSON * j) {
+    struct Throw * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Super)))) {
-            memset(x, 0, sizeof(struct Super));
-            if (!cJSON_HasObjectItem(j, "super")) { cJSON_DeleteSuper(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "super")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "super"))) { cJSON_DeleteSuper(x); return NULL; }
-                x->super = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "super"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Throw)))) {
+            memset(x, 0, sizeof(struct Throw));
+            if (!cJSON_HasObjectItem(j, "throw")) { cJSON_DeleteThrow(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "throw")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "throw"))) { cJSON_DeleteThrow(x); return NULL; }
+                x->throw_throw = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "throw"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSuper(const struct Super * x) {
+cJSON * cJSON_CreateThrow(const struct Throw * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "super", x->super);
+            cJSON_AddNumberToObject(j, "throw", x->throw_throw);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSuper(const struct Super * x) {
+char * cJSON_PrintThrow(const struct Throw * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSuper(x);
+        cJSON * j = cJSON_CreateThrow(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17763,53 +17378,53 @@ char * cJSON_PrintSuper(const struct Super * x) {
     return s;
 }
 
-void cJSON_DeleteSuper(struct Super * x) {
+void cJSON_DeleteThrow(struct Throw * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Symbol * cJSON_ParseSymbol(const char * s) {
-    struct Symbol * x = NULL;
+struct TrueClass * cJSON_ParseTrueClass(const char * s) {
+    struct TrueClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSymbolValue(j);
+            x = cJSON_GetTrueClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Symbol * cJSON_GetSymbolValue(const cJSON * j) {
-    struct Symbol * x = NULL;
+struct TrueClass * cJSON_GetTrueClassValue(const cJSON * j) {
+    struct TrueClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Symbol)))) {
-            memset(x, 0, sizeof(struct Symbol));
-            if (!cJSON_HasObjectItem(j, "symbol")) { cJSON_DeleteSymbol(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "symbol")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "symbol"))) { cJSON_DeleteSymbol(x); return NULL; }
-                x->symbol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "symbol"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct TrueClass)))) {
+            memset(x, 0, sizeof(struct TrueClass));
+            if (!cJSON_HasObjectItem(j, "True")) { cJSON_DeleteTrueClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "True")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "True"))) { cJSON_DeleteTrueClass(x); return NULL; }
+                x->true_true = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "True"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSymbol(const struct Symbol * x) {
+cJSON * cJSON_CreateTrueClass(const struct TrueClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "symbol", x->symbol);
+            cJSON_AddNumberToObject(j, "True", x->true_true);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSymbol(const struct Symbol * x) {
+char * cJSON_PrintTrueClass(const struct TrueClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSymbol(x);
+        cJSON * j = cJSON_CreateTrueClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17818,53 +17433,53 @@ char * cJSON_PrintSymbol(const struct Symbol * x) {
     return s;
 }
 
-void cJSON_DeleteSymbol(struct Symbol * x) {
+void cJSON_DeleteTrueClass(struct TrueClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct System * cJSON_ParseSystem(const char * s) {
-    struct System * x = NULL;
+struct Try * cJSON_ParseTry(const char * s) {
+    struct Try * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSystemValue(j);
+            x = cJSON_GetTryValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct System * cJSON_GetSystemValue(const cJSON * j) {
-    struct System * x = NULL;
+struct Try * cJSON_GetTryValue(const cJSON * j) {
+    struct Try * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct System)))) {
-            memset(x, 0, sizeof(struct System));
-            if (!cJSON_HasObjectItem(j, "system")) { cJSON_DeleteSystem(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "system")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "system"))) { cJSON_DeleteSystem(x); return NULL; }
-                x->system = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "system"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Try)))) {
+            memset(x, 0, sizeof(struct Try));
+            if (!cJSON_HasObjectItem(j, "try")) { cJSON_DeleteTry(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "try")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "try"))) { cJSON_DeleteTry(x); return NULL; }
+                x->try_try = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "try"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSystem(const struct System * x) {
+cJSON * cJSON_CreateTry(const struct Try * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "system", x->system);
+            cJSON_AddNumberToObject(j, "try", x->try_try);
         }
     }
     return j;
 }
 
-char * cJSON_PrintSystem(const struct System * x) {
+char * cJSON_PrintTry(const struct Try * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSystem(x);
+        cJSON * j = cJSON_CreateTry(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17873,53 +17488,53 @@ char * cJSON_PrintSystem(const struct System * x) {
     return s;
 }
 
-void cJSON_DeleteSystem(struct System * x) {
+void cJSON_DeleteTry(struct Try * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Then * cJSON_ParseThen(const char * s) {
-    struct Then * x = NULL;
+struct TypeClass * cJSON_ParseTypeClass(const char * s) {
+    struct TypeClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThenValue(j);
+            x = cJSON_GetTypeClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Then * cJSON_GetThenValue(const cJSON * j) {
-    struct Then * x = NULL;
+struct TypeClass * cJSON_GetTypeClassValue(const cJSON * j) {
+    struct TypeClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Then)))) {
-            memset(x, 0, sizeof(struct Then));
-            if (!cJSON_HasObjectItem(j, "then")) { cJSON_DeleteThen(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "then")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "then"))) { cJSON_DeleteThen(x); return NULL; }
-                x->then = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "then"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct TypeClass)))) {
+            memset(x, 0, sizeof(struct TypeClass));
+            if (!cJSON_HasObjectItem(j, "type")) { cJSON_DeleteTypeClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "type")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "type"))) { cJSON_DeleteTypeClass(x); return NULL; }
+                x->type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "type"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThen(const struct Then * x) {
+cJSON * cJSON_CreateTypeClass(const struct TypeClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "then", x->then);
+            cJSON_AddNumberToObject(j, "type", x->type);
         }
     }
     return j;
 }
 
-char * cJSON_PrintThen(const struct Then * x) {
+char * cJSON_PrintTypeClass(const struct TypeClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThen(x);
+        cJSON * j = cJSON_CreateTypeClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17928,53 +17543,53 @@ char * cJSON_PrintThen(const struct Then * x) {
     return s;
 }
 
-void cJSON_DeleteThen(struct Then * x) {
+void cJSON_DeleteTypeClass(struct TypeClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Throws * cJSON_ParseThrows(const char * s) {
-    struct Throws * x = NULL;
+struct Typedef * cJSON_ParseTypedef(const char * s) {
+    struct Typedef * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThrowsValue(j);
+            x = cJSON_GetTypedefValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Throws * cJSON_GetThrowsValue(const cJSON * j) {
-    struct Throws * x = NULL;
+struct Typedef * cJSON_GetTypedefValue(const cJSON * j) {
+    struct Typedef * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Throws)))) {
-            memset(x, 0, sizeof(struct Throws));
-            if (!cJSON_HasObjectItem(j, "throws")) { cJSON_DeleteThrows(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "throws")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "throws"))) { cJSON_DeleteThrows(x); return NULL; }
-                x->throws = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "throws"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Typedef)))) {
+            memset(x, 0, sizeof(struct Typedef));
+            if (!cJSON_HasObjectItem(j, "typedef")) { cJSON_DeleteTypedef(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typedef")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typedef"))) { cJSON_DeleteTypedef(x); return NULL; }
+                x->typedef_typedef = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typedef"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThrows(const struct Throws * x) {
+cJSON * cJSON_CreateTypedef(const struct Typedef * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "throws", x->throws);
+            cJSON_AddNumberToObject(j, "typedef", x->typedef_typedef);
         }
     }
     return j;
 }
 
-char * cJSON_PrintThrows(const struct Throws * x) {
+char * cJSON_PrintTypedef(const struct Typedef * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThrows(x);
+        cJSON * j = cJSON_CreateTypedef(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17983,53 +17598,53 @@ char * cJSON_PrintThrows(const struct Throws * x) {
     return s;
 }
 
-void cJSON_DeleteThrows(struct Throws * x) {
+void cJSON_DeleteTypedef(struct Typedef * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct TimeOnly * cJSON_ParseTimeOnly(const char * s) {
-    struct TimeOnly * x = NULL;
+struct Typeid * cJSON_ParseTypeid(const char * s) {
+    struct Typeid * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTimeOnlyValue(j);
+            x = cJSON_GetTypeidValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct TimeOnly * cJSON_GetTimeOnlyValue(const cJSON * j) {
-    struct TimeOnly * x = NULL;
+struct Typeid * cJSON_GetTypeidValue(const cJSON * j) {
+    struct Typeid * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnly)))) {
-            memset(x, 0, sizeof(struct TimeOnly));
-            if (!cJSON_HasObjectItem(j, "TimeOnly")) { cJSON_DeleteTimeOnly(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "TimeOnly")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"))) { cJSON_DeleteTimeOnly(x); return NULL; }
-                x->time_only = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Typeid)))) {
+            memset(x, 0, sizeof(struct Typeid));
+            if (!cJSON_HasObjectItem(j, "typeid")) { cJSON_DeleteTypeid(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typeid")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typeid"))) { cJSON_DeleteTypeid(x); return NULL; }
+                x->typeid_typeid = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typeid"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTimeOnly(const struct TimeOnly * x) {
+cJSON * cJSON_CreateTypeid(const struct Typeid * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "TimeOnly", x->time_only);
+            cJSON_AddNumberToObject(j, "typeid", x->typeid_typeid);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTimeOnly(const struct TimeOnly * x) {
+char * cJSON_PrintTypeid(const struct Typeid * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTimeOnly(x);
+        cJSON * j = cJSON_CreateTypeid(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18038,53 +17653,53 @@ char * cJSON_PrintTimeOnly(const struct TimeOnly * x) {
     return s;
 }
 
-void cJSON_DeleteTimeOnly(struct TimeOnly * x) {
+void cJSON_DeleteTypeid(struct Typeid * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct TimeOnlyConverter * cJSON_ParseTimeOnlyConverter(const char * s) {
-    struct TimeOnlyConverter * x = NULL;
+struct Typename * cJSON_ParseTypename(const char * s) {
+    struct Typename * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTimeOnlyConverterValue(j);
+            x = cJSON_GetTypenameValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct TimeOnlyConverter * cJSON_GetTimeOnlyConverterValue(const cJSON * j) {
-    struct TimeOnlyConverter * x = NULL;
+struct Typename * cJSON_GetTypenameValue(const cJSON * j) {
+    struct Typename * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnlyConverter)))) {
-            memset(x, 0, sizeof(struct TimeOnlyConverter));
-            if (!cJSON_HasObjectItem(j, "TimeOnlyConverter")) { cJSON_DeleteTimeOnlyConverter(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "TimeOnlyConverter")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"))) { cJSON_DeleteTimeOnlyConverter(x); return NULL; }
-                x->time_only_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Typename)))) {
+            memset(x, 0, sizeof(struct Typename));
+            if (!cJSON_HasObjectItem(j, "typename")) { cJSON_DeleteTypename(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typename")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typename"))) { cJSON_DeleteTypename(x); return NULL; }
+                x->typename_typename = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typename"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+cJSON * cJSON_CreateTypename(const struct Typename * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "TimeOnlyConverter", x->time_only_converter);
+            cJSON_AddNumberToObject(j, "typename", x->typename_typename);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+char * cJSON_PrintTypename(const struct Typename * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTimeOnlyConverter(x);
+        cJSON * j = cJSON_CreateTypename(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18093,53 +17708,53 @@ char * cJSON_PrintTimeOnlyConverter(const struct TimeOnlyConverter * x) {
     return s;
 }
 
-void cJSON_DeleteTimeOnlyConverter(struct TimeOnlyConverter * x) {
+void cJSON_DeleteTypename(struct Typename * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ToJson * cJSON_ParseToJson(const char * s) {
-    struct ToJson * x = NULL;
+struct Typeof * cJSON_ParseTypeof(const char * s) {
+    struct Typeof * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetToJsonValue(j);
+            x = cJSON_GetTypeofValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ToJson * cJSON_GetToJsonValue(const cJSON * j) {
-    struct ToJson * x = NULL;
+struct Typeof * cJSON_GetTypeofValue(const cJSON * j) {
+    struct Typeof * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ToJson)))) {
-            memset(x, 0, sizeof(struct ToJson));
-            if (!cJSON_HasObjectItem(j, "to_json")) { cJSON_DeleteToJson(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "to_json")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "to_json"))) { cJSON_DeleteToJson(x); return NULL; }
-                x->to_json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "to_json"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Typeof)))) {
+            memset(x, 0, sizeof(struct Typeof));
+            if (!cJSON_HasObjectItem(j, "typeof")) { cJSON_DeleteTypeof(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typeof")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typeof"))) { cJSON_DeleteTypeof(x); return NULL; }
+                x->typeof_typeof = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typeof"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateToJson(const struct ToJson * x) {
+cJSON * cJSON_CreateTypeof(const struct Typeof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "to_json", x->to_json);
+            cJSON_AddNumberToObject(j, "typeof", x->typeof_typeof);
         }
     }
     return j;
 }
 
-char * cJSON_PrintToJson(const struct ToJson * x) {
+char * cJSON_PrintTypeof(const struct Typeof * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateToJson(x);
+        cJSON * j = cJSON_CreateTypeof(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18148,53 +17763,53 @@ char * cJSON_PrintToJson(const struct ToJson * x) {
     return s;
 }
 
-void cJSON_DeleteToJson(struct ToJson * x) {
+void cJSON_DeleteTypeof(struct Typeof * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ToString * cJSON_ParseToString(const char * s) {
-    struct ToString * x = NULL;
+struct Union * cJSON_ParseUnion(const char * s) {
+    struct Union * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetToStringValue(j);
+            x = cJSON_GetUnionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ToString * cJSON_GetToStringValue(const cJSON * j) {
-    struct ToString * x = NULL;
+struct Union * cJSON_GetUnionValue(const cJSON * j) {
+    struct Union * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ToString)))) {
-            memset(x, 0, sizeof(struct ToString));
-            if (!cJSON_HasObjectItem(j, "toString")) { cJSON_DeleteToString(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "toString")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "toString"))) { cJSON_DeleteToString(x); return NULL; }
-                x->to_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "toString"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Union)))) {
+            memset(x, 0, sizeof(struct Union));
+            if (!cJSON_HasObjectItem(j, "union")) { cJSON_DeleteUnion(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "union")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "union"))) { cJSON_DeleteUnion(x); return NULL; }
+                x->union_union = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "union"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateToString(const struct ToString * x) {
+cJSON * cJSON_CreateUnion(const struct Union * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "toString", x->to_string);
+            cJSON_AddNumberToObject(j, "union", x->union_union);
         }
     }
     return j;
 }
 
-char * cJSON_PrintToString(const struct ToString * x) {
+char * cJSON_PrintUnion(const struct Union * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateToString(x);
+        cJSON * j = cJSON_CreateUnion(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18203,53 +17818,53 @@ char * cJSON_PrintToString(const struct ToString * x) {
     return s;
 }
 
-void cJSON_DeleteToString(struct ToString * x) {
+void cJSON_DeleteUnion(struct Union * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct TopLevelClass * cJSON_ParseTopLevelClass(const char * s) {
-    struct TopLevelClass * x = NULL;
+struct Unsigned * cJSON_ParseUnsigned(const char * s) {
+    struct Unsigned * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTopLevelClassValue(j);
+            x = cJSON_GetUnsignedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct TopLevelClass * cJSON_GetTopLevelClassValue(const cJSON * j) {
-    struct TopLevelClass * x = NULL;
+struct Unsigned * cJSON_GetUnsignedValue(const cJSON * j) {
+    struct Unsigned * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct TopLevelClass)))) {
-            memset(x, 0, sizeof(struct TopLevelClass));
-            if (!cJSON_HasObjectItem(j, "top_level")) { cJSON_DeleteTopLevelClass(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "top_level")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "top_level"))) { cJSON_DeleteTopLevelClass(x); return NULL; }
-                x->top_level = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "top_level"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Unsigned)))) {
+            memset(x, 0, sizeof(struct Unsigned));
+            if (!cJSON_HasObjectItem(j, "unsigned")) { cJSON_DeleteUnsigned(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "unsigned")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "unsigned"))) { cJSON_DeleteUnsigned(x); return NULL; }
+                x->unsigned_unsigned = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "unsigned"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTopLevelClass(const struct TopLevelClass * x) {
+cJSON * cJSON_CreateUnsigned(const struct Unsigned * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "top_level", x->top_level);
+            cJSON_AddNumberToObject(j, "unsigned", x->unsigned_unsigned);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTopLevelClass(const struct TopLevelClass * x) {
+char * cJSON_PrintUnsigned(const struct Unsigned * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTopLevelClass(x);
+        cJSON * j = cJSON_CreateUnsigned(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18258,53 +17873,53 @@ char * cJSON_PrintTopLevelClass(const struct TopLevelClass * x) {
     return s;
 }
 
-void cJSON_DeleteTopLevelClass(struct TopLevelClass * x) {
+void cJSON_DeleteUnsigned(struct Unsigned * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Transient * cJSON_ParseTransient(const char * s) {
-    struct Transient * x = NULL;
+struct Using * cJSON_ParseUsing(const char * s) {
+    struct Using * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTransientValue(j);
+            x = cJSON_GetUsingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Transient * cJSON_GetTransientValue(const cJSON * j) {
-    struct Transient * x = NULL;
+struct Using * cJSON_GetUsingValue(const cJSON * j) {
+    struct Using * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Transient)))) {
-            memset(x, 0, sizeof(struct Transient));
-            if (!cJSON_HasObjectItem(j, "transient")) { cJSON_DeleteTransient(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "transient")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "transient"))) { cJSON_DeleteTransient(x); return NULL; }
-                x->transient = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "transient"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Using)))) {
+            memset(x, 0, sizeof(struct Using));
+            if (!cJSON_HasObjectItem(j, "using")) { cJSON_DeleteUsing(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "using")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "using"))) { cJSON_DeleteUsing(x); return NULL; }
+                x->using_using = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "using"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTransient(const struct Transient * x) {
+cJSON * cJSON_CreateUsing(const struct Using * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "transient", x->transient);
+            cJSON_AddNumberToObject(j, "using", x->using_using);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTransient(const struct Transient * x) {
+char * cJSON_PrintUsing(const struct Using * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTransient(x);
+        cJSON * j = cJSON_CreateUsing(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18313,53 +17928,53 @@ char * cJSON_PrintTransient(const struct Transient * x) {
     return s;
 }
 
-void cJSON_DeleteTransient(struct Transient * x) {
+void cJSON_DeleteUsing(struct Using * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Type * cJSON_ParseType(const char * s) {
-    struct Type * x = NULL;
+struct Virtual * cJSON_ParseVirtual(const char * s) {
+    struct Virtual * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypeValue(j);
+            x = cJSON_GetVirtualValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Type * cJSON_GetTypeValue(const cJSON * j) {
-    struct Type * x = NULL;
+struct Virtual * cJSON_GetVirtualValue(const cJSON * j) {
+    struct Virtual * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Type)))) {
-            memset(x, 0, sizeof(struct Type));
-            if (!cJSON_HasObjectItem(j, "Type")) { cJSON_DeleteType(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Type")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Type"))) { cJSON_DeleteType(x); return NULL; }
-                x->type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Type"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Virtual)))) {
+            memset(x, 0, sizeof(struct Virtual));
+            if (!cJSON_HasObjectItem(j, "virtual")) { cJSON_DeleteVirtual(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "virtual")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "virtual"))) { cJSON_DeleteVirtual(x); return NULL; }
+                x->virtual_virtual = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "virtual"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateType(const struct Type * x) {
+cJSON * cJSON_CreateVirtual(const struct Virtual * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "Type", x->type);
+            cJSON_AddNumberToObject(j, "virtual", x->virtual_virtual);
         }
     }
     return j;
 }
 
-char * cJSON_PrintType(const struct Type * x) {
+char * cJSON_PrintVirtual(const struct Virtual * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateType(x);
+        cJSON * j = cJSON_CreateVirtual(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18368,53 +17983,53 @@ char * cJSON_PrintType(const struct Type * x) {
     return s;
 }
 
-void cJSON_DeleteType(struct Type * x) {
+void cJSON_DeleteVirtual(struct Virtual * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Typealias * cJSON_ParseTypealias(const char * s) {
-    struct Typealias * x = NULL;
+struct Void * cJSON_ParseVoid(const char * s) {
+    struct Void * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetTypealiasValue(j);
+            x = cJSON_GetVoidValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Typealias * cJSON_GetTypealiasValue(const cJSON * j) {
-    struct Typealias * x = NULL;
+struct Void * cJSON_GetVoidValue(const cJSON * j) {
+    struct Void * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Typealias)))) {
-            memset(x, 0, sizeof(struct Typealias));
-            if (!cJSON_HasObjectItem(j, "typealias")) { cJSON_DeleteTypealias(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typealias")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typealias"))) { cJSON_DeleteTypealias(x); return NULL; }
-                x->typealias = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typealias"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Void)))) {
+            memset(x, 0, sizeof(struct Void));
+            if (!cJSON_HasObjectItem(j, "void")) { cJSON_DeleteVoid(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "void")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "void"))) { cJSON_DeleteVoid(x); return NULL; }
+                x->void_void = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "void"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateTypealias(const struct Typealias * x) {
+cJSON * cJSON_CreateVoid(const struct Void * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "typealias", x->typealias);
+            cJSON_AddNumberToObject(j, "void", x->void_void);
         }
     }
     return j;
 }
 
-char * cJSON_PrintTypealias(const struct Typealias * x) {
+char * cJSON_PrintVoid(const struct Void * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateTypealias(x);
+        cJSON * j = cJSON_CreateVoid(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18423,53 +18038,53 @@ char * cJSON_PrintTypealias(const struct Typealias * x) {
     return s;
 }
 
-void cJSON_DeleteTypealias(struct Typealias * x) {
+void cJSON_DeleteVoid(struct Void * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Uint * cJSON_ParseUint(const char * s) {
-    struct Uint * x = NULL;
+struct Volatile * cJSON_ParseVolatile(const char * s) {
+    struct Volatile * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUintValue(j);
+            x = cJSON_GetVolatileValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Uint * cJSON_GetUintValue(const cJSON * j) {
-    struct Uint * x = NULL;
+struct Volatile * cJSON_GetVolatileValue(const cJSON * j) {
+    struct Volatile * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Uint)))) {
-            memset(x, 0, sizeof(struct Uint));
-            if (!cJSON_HasObjectItem(j, "uint")) { cJSON_DeleteUint(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "uint")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "uint"))) { cJSON_DeleteUint(x); return NULL; }
-                x->uint = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "uint"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Volatile)))) {
+            memset(x, 0, sizeof(struct Volatile));
+            if (!cJSON_HasObjectItem(j, "volatile")) { cJSON_DeleteVolatile(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "volatile")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "volatile"))) { cJSON_DeleteVolatile(x); return NULL; }
+                x->volatile_volatile = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "volatile"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUint(const struct Uint * x) {
+cJSON * cJSON_CreateVolatile(const struct Volatile * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "uint", x->uint);
+            cJSON_AddNumberToObject(j, "volatile", x->volatile_volatile);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUint(const struct Uint * x) {
+char * cJSON_PrintVolatile(const struct Volatile * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUint(x);
+        cJSON * j = cJSON_CreateVolatile(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18478,53 +18093,53 @@ char * cJSON_PrintUint(const struct Uint * x) {
     return s;
 }
 
-void cJSON_DeleteUint(struct Uint * x) {
+void cJSON_DeleteVolatile(struct Volatile * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Ulong * cJSON_ParseUlong(const char * s) {
-    struct Ulong * x = NULL;
+struct WcharT * cJSON_ParseWcharT(const char * s) {
+    struct WcharT * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUlongValue(j);
+            x = cJSON_GetWcharTValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Ulong * cJSON_GetUlongValue(const cJSON * j) {
-    struct Ulong * x = NULL;
+struct WcharT * cJSON_GetWcharTValue(const cJSON * j) {
+    struct WcharT * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Ulong)))) {
-            memset(x, 0, sizeof(struct Ulong));
-            if (!cJSON_HasObjectItem(j, "ulong")) { cJSON_DeleteUlong(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ulong")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ulong"))) { cJSON_DeleteUlong(x); return NULL; }
-                x->ulong = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ulong"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct WcharT)))) {
+            memset(x, 0, sizeof(struct WcharT));
+            if (!cJSON_HasObjectItem(j, "wchar_t")) { cJSON_DeleteWcharT(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "wchar_t")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "wchar_t"))) { cJSON_DeleteWcharT(x); return NULL; }
+                x->wchar_t_wchar_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "wchar_t"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUlong(const struct Ulong * x) {
+cJSON * cJSON_CreateWcharT(const struct WcharT * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "ulong", x->ulong);
+            cJSON_AddNumberToObject(j, "wchar_t", x->wchar_t_wchar_t);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUlong(const struct Ulong * x) {
+char * cJSON_PrintWcharT(const struct WcharT * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUlong(x);
+        cJSON * j = cJSON_CreateWcharT(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18533,53 +18148,53 @@ char * cJSON_PrintUlong(const struct Ulong * x) {
     return s;
 }
 
-void cJSON_DeleteUlong(struct Ulong * x) {
+void cJSON_DeleteWcharT(struct WcharT * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Unchecked * cJSON_ParseUnchecked(const char * s) {
-    struct Unchecked * x = NULL;
+struct While * cJSON_ParseWhile(const char * s) {
+    struct While * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUncheckedValue(j);
+            x = cJSON_GetWhileValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Unchecked * cJSON_GetUncheckedValue(const cJSON * j) {
-    struct Unchecked * x = NULL;
+struct While * cJSON_GetWhileValue(const cJSON * j) {
+    struct While * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Unchecked)))) {
-            memset(x, 0, sizeof(struct Unchecked));
-            if (!cJSON_HasObjectItem(j, "unchecked")) { cJSON_DeleteUnchecked(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "unchecked")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "unchecked"))) { cJSON_DeleteUnchecked(x); return NULL; }
-                x->unchecked = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "unchecked"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct While)))) {
+            memset(x, 0, sizeof(struct While));
+            if (!cJSON_HasObjectItem(j, "while")) { cJSON_DeleteWhile(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "while")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "while"))) { cJSON_DeleteWhile(x); return NULL; }
+                x->while_while = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "while"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnchecked(const struct Unchecked * x) {
+cJSON * cJSON_CreateWhile(const struct While * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "unchecked", x->unchecked);
+            cJSON_AddNumberToObject(j, "while", x->while_while);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUnchecked(const struct Unchecked * x) {
+char * cJSON_PrintWhile(const struct While * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnchecked(x);
+        cJSON * j = cJSON_CreateWhile(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18588,53 +18203,53 @@ char * cJSON_PrintUnchecked(const struct Unchecked * x) {
     return s;
 }
 
-void cJSON_DeleteUnchecked(struct Unchecked * x) {
+void cJSON_DeleteWhile(struct While * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Undefined * cJSON_ParseUndefined(const char * s) {
-    struct Undefined * x = NULL;
+struct Xor * cJSON_ParseXor(const char * s) {
+    struct Xor * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUndefinedValue(j);
+            x = cJSON_GetXorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Undefined * cJSON_GetUndefinedValue(const cJSON * j) {
-    struct Undefined * x = NULL;
+struct Xor * cJSON_GetXorValue(const cJSON * j) {
+    struct Xor * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Undefined)))) {
-            memset(x, 0, sizeof(struct Undefined));
-            if (!cJSON_HasObjectItem(j, "undefined")) { cJSON_DeleteUndefined(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "undefined")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "undefined"))) { cJSON_DeleteUndefined(x); return NULL; }
-                x->undefined = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "undefined"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Xor)))) {
+            memset(x, 0, sizeof(struct Xor));
+            if (!cJSON_HasObjectItem(j, "xor")) { cJSON_DeleteXor(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "xor")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "xor"))) { cJSON_DeleteXor(x); return NULL; }
+                x->xor_xor = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "xor"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUndefined(const struct Undefined * x) {
+cJSON * cJSON_CreateXor(const struct Xor * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "undefined", x->undefined);
+            cJSON_AddNumberToObject(j, "xor", x->xor_xor);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUndefined(const struct Undefined * x) {
+char * cJSON_PrintXor(const struct Xor * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUndefined(x);
+        cJSON * j = cJSON_CreateXor(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18643,550 +18258,713 @@ char * cJSON_PrintUndefined(const struct Undefined * x) {
     return s;
 }
 
-void cJSON_DeleteUndefined(struct Undefined * x) {
-    if (NULL != x) {
-        cJSON_free(x);
-    }
-}
-
-struct Obj4 * cJSON_ParseObj4(const char * s) {
-    struct Obj4 * x = NULL;
-    if (NULL != s) {
-        cJSON * j = cJSON_Parse(s);
-        if (NULL != j) {
-            x = cJSON_GetObj4Value(j);
-            cJSON_Delete(j);
-        }
-    }
-    return x;
-}
-
-struct Obj4 * cJSON_GetObj4Value(const cJSON * j) {
-    struct Obj4 * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Obj4)))) {
-            memset(x, 0, sizeof(struct Obj4));
-            if (!cJSON_HasObjectItem(j, "dummy")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "dummy")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->dummy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dummy"));
-            }
-            if (!cJSON_HasObjectItem(j, "public")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "public")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "public"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_public = cJSON_GetPublicValue(cJSON_GetObjectItemCaseSensitive(j, "public"));
-                if (NULL == x->obj4_public) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "register")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "register")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "register"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_register = cJSON_GetRegisterValue(cJSON_GetObjectItemCaseSensitive(j, "register"));
-                if (NULL == x->obj4_register) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "reinterpret_cast")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "reinterpret_cast")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_reinterpret_cast = cJSON_GetReinterpretCastValue(cJSON_GetObjectItemCaseSensitive(j, "reinterpret_cast"));
-                if (NULL == x->obj4_reinterpret_cast) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "requires")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "requires")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "requires"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_requires = cJSON_GetRequiresValue(cJSON_GetObjectItemCaseSensitive(j, "requires"));
-                if (NULL == x->obj4_requires) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "restrict")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "restrict")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "restrict"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_restrict = cJSON_GetRestrictValue(cJSON_GetObjectItemCaseSensitive(j, "restrict"));
-                if (NULL == x->obj4_restrict) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "return")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "return")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "return"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_return = cJSON_GetReturnValue(cJSON_GetObjectItemCaseSensitive(j, "return"));
-                if (NULL == x->obj4_return) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "self")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "self")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "self"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_self = cJSON_GetSelfClassValue(cJSON_GetObjectItemCaseSensitive(j, "self"));
-                if (NULL == x->obj4_self) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "short")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "short")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "short"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_short = cJSON_GetShortValue(cJSON_GetObjectItemCaseSensitive(j, "short"));
-                if (NULL == x->obj4_short) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "signed")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "signed")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "signed"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_signed = cJSON_GetSignedValue(cJSON_GetObjectItemCaseSensitive(j, "signed"));
-                if (NULL == x->obj4_signed) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "sizeof")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "sizeof")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sizeof"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_sizeof = cJSON_GetSizeofValue(cJSON_GetObjectItemCaseSensitive(j, "sizeof"));
-                if (NULL == x->obj4_sizeof) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "static")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_static = cJSON_GetStaticValue(cJSON_GetObjectItemCaseSensitive(j, "static"));
-                if (NULL == x->obj4_static) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "static_assert")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static_assert")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static_assert"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_static_assert = cJSON_GetStaticAssertValue(cJSON_GetObjectItemCaseSensitive(j, "static_assert"));
-                if (NULL == x->obj4_static_assert) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "static_cast")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "static_cast")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static_cast"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_static_cast = cJSON_GetStaticCastValue(cJSON_GetObjectItemCaseSensitive(j, "static_cast"));
-                if (NULL == x->obj4_static_cast) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "struct")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "struct")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "struct"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_struct = cJSON_GetStructValue(cJSON_GetObjectItemCaseSensitive(j, "struct"));
-                if (NULL == x->obj4_struct) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "switch")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "switch")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "switch"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_switch = cJSON_GetSwitchValue(cJSON_GetObjectItemCaseSensitive(j, "switch"));
-                if (NULL == x->obj4_switch) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "synchronized")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "synchronized")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "synchronized"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_synchronized = cJSON_GetSynchronizedValue(cJSON_GetObjectItemCaseSensitive(j, "synchronized"));
-                if (NULL == x->obj4_synchronized) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "template")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "template")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "template"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_template = cJSON_GetTemplateValue(cJSON_GetObjectItemCaseSensitive(j, "template"));
-                if (NULL == x->obj4_template) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "this")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "this")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "this"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_this = cJSON_GetThisValue(cJSON_GetObjectItemCaseSensitive(j, "this"));
-                if (NULL == x->obj4_this) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "thread_local")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "thread_local")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "thread_local"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_thread_local = cJSON_GetThreadLocalValue(cJSON_GetObjectItemCaseSensitive(j, "thread_local"));
-                if (NULL == x->obj4_thread_local) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "throw")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "throw")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "throw"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_throw = cJSON_GetThrowValue(cJSON_GetObjectItemCaseSensitive(j, "throw"));
-                if (NULL == x->obj4_throw) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "True")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "True")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "True"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_true = cJSON_GetTrueClassValue(cJSON_GetObjectItemCaseSensitive(j, "True"));
-                if (NULL == x->obj4_true) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "try")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "try")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "try"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_try = cJSON_GetTryValue(cJSON_GetObjectItemCaseSensitive(j, "try"));
-                if (NULL == x->obj4_try) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "type")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "type")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "type"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_type = cJSON_GetTypeClassValue(cJSON_GetObjectItemCaseSensitive(j, "type"));
-                if (NULL == x->obj4_type) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "typedef")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typedef")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typedef"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_typedef = cJSON_GetTypedefValue(cJSON_GetObjectItemCaseSensitive(j, "typedef"));
-                if (NULL == x->obj4_typedef) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "typeid")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typeid")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typeid"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_typeid = cJSON_GetTypeidValue(cJSON_GetObjectItemCaseSensitive(j, "typeid"));
-                if (NULL == x->obj4_typeid) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "typename")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typename")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typename"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_typename = cJSON_GetTypenameValue(cJSON_GetObjectItemCaseSensitive(j, "typename"));
-                if (NULL == x->obj4_typename) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "typeof")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typeof")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typeof"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->obj4_typeof = cJSON_GetTypeofValue(cJSON_GetObjectItemCaseSensitive(j, "typeof"));
-                if (NULL == x->obj4_typeof) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "true")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "true")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "true"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->purple_true = cJSON_GetObj4TrueValue(cJSON_GetObjectItemCaseSensitive(j, "true"));
-                if (NULL == x->purple_true) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "quicktype")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "quicktype")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "quicktype"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->quicktype = cJSON_GetQuicktypeValue(cJSON_GetObjectItemCaseSensitive(j, "quicktype"));
-                if (NULL == x->quicktype) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "raise")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "raise")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "raise"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->raise = cJSON_GetRaiseValue(cJSON_GetObjectItemCaseSensitive(j, "raise"));
-                if (NULL == x->raise) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "range")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "range")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "range"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->range = cJSON_GetRangeValue(cJSON_GetObjectItemCaseSensitive(j, "range"));
-                if (NULL == x->range) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "readonly")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "readonly")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "readonly"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->readonly = cJSON_GetReadonlyValue(cJSON_GetObjectItemCaseSensitive(j, "readonly"));
-                if (NULL == x->readonly) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "ref")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ref")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ref"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->ref = cJSON_GetRefValue(cJSON_GetObjectItemCaseSensitive(j, "ref"));
-                if (NULL == x->ref) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "RegExp")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "RegExp")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "RegExp"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->reg_exp = cJSON_GetRegExpValue(cJSON_GetObjectItemCaseSensitive(j, "RegExp"));
-                if (NULL == x->reg_exp) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "repeat")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "repeat")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "repeat"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->repeat = cJSON_GetRepeatValue(cJSON_GetObjectItemCaseSensitive(j, "repeat"));
-                if (NULL == x->repeat) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "require")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "require")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "require"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->require = cJSON_GetRequireValue(cJSON_GetObjectItemCaseSensitive(j, "require"));
-                if (NULL == x->require) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "required")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "required")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "required"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->required = cJSON_GetRequiredValue(cJSON_GetObjectItemCaseSensitive(j, "required"));
-                if (NULL == x->required) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "retain")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "retain")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "retain"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->retain = cJSON_GetRetainValue(cJSON_GetObjectItemCaseSensitive(j, "retain"));
-                if (NULL == x->retain) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "rethrows")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "rethrows")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "rethrows"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->rethrows = cJSON_GetRethrowsValue(cJSON_GetObjectItemCaseSensitive(j, "rethrows"));
-                if (NULL == x->rethrows) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "right")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "right")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "right"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->right = cJSON_GetRightValue(cJSON_GetObjectItemCaseSensitive(j, "right"));
-                if (NULL == x->right) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "runtimeType")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "runtimeType")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->runtime_type = cJSON_GetRuntimeTypeValue(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"));
-                if (NULL == x->runtime_type) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "s")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "s")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->s = cJSON_GetSValue(cJSON_GetObjectItemCaseSensitive(j, "s"));
-                if (NULL == x->s) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "sbyte")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "sbyte")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->sbyte = cJSON_GetSbyteValue(cJSON_GetObjectItemCaseSensitive(j, "sbyte"));
-                if (NULL == x->sbyte) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "sealed")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "sealed")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "sealed"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->sealed = cJSON_GetSealedValue(cJSON_GetObjectItemCaseSensitive(j, "sealed"));
-                if (NULL == x->sealed) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "SEL")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "SEL")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "SEL"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->sel = cJSON_GetSelValue(cJSON_GetObjectItemCaseSensitive(j, "SEL"));
-                if (NULL == x->sel) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "select")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "select")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "select"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->select = cJSON_GetSelectValue(cJSON_GetObjectItemCaseSensitive(j, "select"));
-                if (NULL == x->select) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "Self")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Self")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Self"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->self = cJSON_GetSelfValue(cJSON_GetObjectItemCaseSensitive(j, "Self"));
-                if (NULL == x->self) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "serialize")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "serialize")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "serialize"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->serialize = cJSON_GetSerializeValue(cJSON_GetObjectItemCaseSensitive(j, "serialize"));
-                if (NULL == x->serialize) { cJSON_DeleteObj4(x); return NULL; }
+void cJSON_DeleteXor(struct Xor * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct XorEq * cJSON_ParseXorEq(const char * s) {
+    struct XorEq * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetXorEqValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct XorEq * cJSON_GetXorEqValue(const cJSON * j) {
+    struct XorEq * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct XorEq)))) {
+            memset(x, 0, sizeof(struct XorEq));
+            if (!cJSON_HasObjectItem(j, "xor_eq")) { cJSON_DeleteXorEq(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "xor_eq")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "xor_eq"))) { cJSON_DeleteXorEq(x); return NULL; }
+                x->xor_eq_xor_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "xor_eq"));
             }
-            if (!cJSON_HasObjectItem(j, "set")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "set")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "set"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->set = cJSON_GetSetValue(cJSON_GetObjectItemCaseSensitive(j, "set"));
-                if (NULL == x->set) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateXorEq(const struct XorEq * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "xor_eq", x->xor_eq_xor_eq);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintXorEq(const struct XorEq * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateXorEq(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteXorEq(struct XorEq * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Obj5True * cJSON_ParseObj5True(const char * s) {
+    struct Obj5True * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetObj5TrueValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Obj5True * cJSON_GetObj5TrueValue(const cJSON * j) {
+    struct Obj5True * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Obj5True)))) {
+            memset(x, 0, sizeof(struct Obj5True));
+            if (!cJSON_HasObjectItem(j, "true")) { cJSON_DeleteObj5True(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "true")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "true"))) { cJSON_DeleteObj5True(x); return NULL; }
+                x->true_true = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "true"));
             }
-            if (!cJSON_HasObjectItem(j, "stackalloc")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "stackalloc")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->stackalloc = cJSON_GetStackallocValue(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"));
-                if (NULL == x->stackalloc) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateObj5True(const struct Obj5True * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "true", x->true_true);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintObj5True(const struct Obj5True * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateObj5True(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteObj5True(struct Obj5True * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s) {
+    struct StdDeserializer * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStdDeserializerValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j) {
+    struct StdDeserializer * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct StdDeserializer)))) {
+            memset(x, 0, sizeof(struct StdDeserializer));
+            if (!cJSON_HasObjectItem(j, "StdDeserializer")) { cJSON_DeleteStdDeserializer(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "StdDeserializer")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"))) { cJSON_DeleteStdDeserializer(x); return NULL; }
+                x->std_deserializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"));
             }
-            if (!cJSON_HasObjectItem(j, "Standards")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Standards")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Standards"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->standards = cJSON_GetStandardsValue(cJSON_GetObjectItemCaseSensitive(j, "Standards"));
-                if (NULL == x->standards) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "StdDeserializer", x->std_deserializer);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStdDeserializer(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteStdDeserializer(struct StdDeserializer * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct StdSerializer * cJSON_ParseStdSerializer(const char * s) {
+    struct StdSerializer * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStdSerializerValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j) {
+    struct StdSerializer * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct StdSerializer)))) {
+            memset(x, 0, sizeof(struct StdSerializer));
+            if (!cJSON_HasObjectItem(j, "StdSerializer")) { cJSON_DeleteStdSerializer(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "StdSerializer")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"))) { cJSON_DeleteStdSerializer(x); return NULL; }
+                x->std_serializer = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"));
             }
-            if (!cJSON_HasObjectItem(j, "strictfp")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "StdSerializer", x->std_serializer);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintStdSerializer(const struct StdSerializer * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStdSerializer(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteStdSerializer(struct StdSerializer * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Strictfp * cJSON_ParseStrictfp(const char * s) {
+    struct Strictfp * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStrictfpValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Strictfp * cJSON_GetStrictfpValue(const cJSON * j) {
+    struct Strictfp * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Strictfp)))) {
+            memset(x, 0, sizeof(struct Strictfp));
+            if (!cJSON_HasObjectItem(j, "strictfp")) { cJSON_DeleteStrictfp(x); return NULL; }
             if (cJSON_HasObjectItem(j, "strictfp")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "strictfp"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->strictfp = cJSON_GetStrictfpValue(cJSON_GetObjectItemCaseSensitive(j, "strictfp"));
-                if (NULL == x->strictfp) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "strictfp"))) { cJSON_DeleteStrictfp(x); return NULL; }
+                x->strictfp = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "strictfp"));
             }
-            if (!cJSON_HasObjectItem(j, "string")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStrictfp(const struct Strictfp * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "strictfp", x->strictfp);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintStrictfp(const struct Strictfp * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStrictfp(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteStrictfp(struct Strictfp * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct StringClass * cJSON_ParseStringClass(const char * s) {
+    struct StringClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetStringClassValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct StringClass * cJSON_GetStringClassValue(const cJSON * j) {
+    struct StringClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct StringClass)))) {
+            memset(x, 0, sizeof(struct StringClass));
+            if (!cJSON_HasObjectItem(j, "string")) { cJSON_DeleteStringClass(x); return NULL; }
             if (cJSON_HasObjectItem(j, "string")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "string"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->string = cJSON_GetStringClassValue(cJSON_GetObjectItemCaseSensitive(j, "string"));
-                if (NULL == x->string) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "string"))) { cJSON_DeleteStringClass(x); return NULL; }
+                x->string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "string"));
             }
-            if (!cJSON_HasObjectItem(j, "subscript")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateStringClass(const struct StringClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "string", x->string);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintStringClass(const struct StringClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateStringClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteStringClass(struct StringClass * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Subscript * cJSON_ParseSubscript(const char * s) {
+    struct Subscript * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSubscriptValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Subscript * cJSON_GetSubscriptValue(const cJSON * j) {
+    struct Subscript * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Subscript)))) {
+            memset(x, 0, sizeof(struct Subscript));
+            if (!cJSON_HasObjectItem(j, "subscript")) { cJSON_DeleteSubscript(x); return NULL; }
             if (cJSON_HasObjectItem(j, "subscript")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "subscript"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->subscript = cJSON_GetSubscriptValue(cJSON_GetObjectItemCaseSensitive(j, "subscript"));
-                if (NULL == x->subscript) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "subscript"))) { cJSON_DeleteSubscript(x); return NULL; }
+                x->subscript = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "subscript"));
             }
-            if (!cJSON_HasObjectItem(j, "super")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSubscript(const struct Subscript * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "subscript", x->subscript);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintSubscript(const struct Subscript * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSubscript(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteSubscript(struct Subscript * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Super * cJSON_ParseSuper(const char * s) {
+    struct Super * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSuperValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Super * cJSON_GetSuperValue(const cJSON * j) {
+    struct Super * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Super)))) {
+            memset(x, 0, sizeof(struct Super));
+            if (!cJSON_HasObjectItem(j, "super")) { cJSON_DeleteSuper(x); return NULL; }
             if (cJSON_HasObjectItem(j, "super")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "super"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->super = cJSON_GetSuperValue(cJSON_GetObjectItemCaseSensitive(j, "super"));
-                if (NULL == x->super) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "super"))) { cJSON_DeleteSuper(x); return NULL; }
+                x->super = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "super"));
             }
-            if (!cJSON_HasObjectItem(j, "symbol")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSuper(const struct Super * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "super", x->super);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintSuper(const struct Super * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSuper(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteSuper(struct Super * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Symbol * cJSON_ParseSymbol(const char * s) {
+    struct Symbol * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSymbolValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Symbol * cJSON_GetSymbolValue(const cJSON * j) {
+    struct Symbol * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Symbol)))) {
+            memset(x, 0, sizeof(struct Symbol));
+            if (!cJSON_HasObjectItem(j, "symbol")) { cJSON_DeleteSymbol(x); return NULL; }
             if (cJSON_HasObjectItem(j, "symbol")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "symbol"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->symbol = cJSON_GetSymbolValue(cJSON_GetObjectItemCaseSensitive(j, "symbol"));
-                if (NULL == x->symbol) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "symbol"))) { cJSON_DeleteSymbol(x); return NULL; }
+                x->symbol = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "symbol"));
             }
-            if (!cJSON_HasObjectItem(j, "system")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSymbol(const struct Symbol * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "symbol", x->symbol);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintSymbol(const struct Symbol * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSymbol(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteSymbol(struct Symbol * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct System * cJSON_ParseSystem(const char * s) {
+    struct System * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetSystemValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct System * cJSON_GetSystemValue(const cJSON * j) {
+    struct System * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct System)))) {
+            memset(x, 0, sizeof(struct System));
+            if (!cJSON_HasObjectItem(j, "system")) { cJSON_DeleteSystem(x); return NULL; }
             if (cJSON_HasObjectItem(j, "system")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "system"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->system = cJSON_GetSystemValue(cJSON_GetObjectItemCaseSensitive(j, "system"));
-                if (NULL == x->system) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "system"))) { cJSON_DeleteSystem(x); return NULL; }
+                x->system = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "system"));
             }
-            if (!cJSON_HasObjectItem(j, "then")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateSystem(const struct System * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "system", x->system);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintSystem(const struct System * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateSystem(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteSystem(struct System * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Then * cJSON_ParseThen(const char * s) {
+    struct Then * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetThenValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Then * cJSON_GetThenValue(const cJSON * j) {
+    struct Then * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Then)))) {
+            memset(x, 0, sizeof(struct Then));
+            if (!cJSON_HasObjectItem(j, "then")) { cJSON_DeleteThen(x); return NULL; }
             if (cJSON_HasObjectItem(j, "then")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "then"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->then = cJSON_GetThenValue(cJSON_GetObjectItemCaseSensitive(j, "then"));
-                if (NULL == x->then) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "then"))) { cJSON_DeleteThen(x); return NULL; }
+                x->then = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "then"));
             }
-            if (!cJSON_HasObjectItem(j, "throws")) { cJSON_DeleteObj4(x); return NULL; }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateThen(const struct Then * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "then", x->then);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintThen(const struct Then * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateThen(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteThen(struct Then * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Throws * cJSON_ParseThrows(const char * s) {
+    struct Throws * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetThrowsValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Throws * cJSON_GetThrowsValue(const cJSON * j) {
+    struct Throws * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Throws)))) {
+            memset(x, 0, sizeof(struct Throws));
+            if (!cJSON_HasObjectItem(j, "throws")) { cJSON_DeleteThrows(x); return NULL; }
             if (cJSON_HasObjectItem(j, "throws")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "throws"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->throws = cJSON_GetThrowsValue(cJSON_GetObjectItemCaseSensitive(j, "throws"));
-                if (NULL == x->throws) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "TimeOnly")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "TimeOnly")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->time_only = cJSON_GetTimeOnlyValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"));
-                if (NULL == x->time_only) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "TimeOnlyConverter")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "TimeOnlyConverter")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->time_only_converter = cJSON_GetTimeOnlyConverterValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"));
-                if (NULL == x->time_only_converter) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "to_json")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "to_json")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "to_json"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->to_json = cJSON_GetToJsonValue(cJSON_GetObjectItemCaseSensitive(j, "to_json"));
-                if (NULL == x->to_json) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "toString")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "toString")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "toString"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->to_string = cJSON_GetToStringValue(cJSON_GetObjectItemCaseSensitive(j, "toString"));
-                if (NULL == x->to_string) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "top_level")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "top_level")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "top_level"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->top_level = cJSON_GetTopLevelClassValue(cJSON_GetObjectItemCaseSensitive(j, "top_level"));
-                if (NULL == x->top_level) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "transient")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "transient")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "transient"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->transient = cJSON_GetTransientValue(cJSON_GetObjectItemCaseSensitive(j, "transient"));
-                if (NULL == x->transient) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "Type")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "Type")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Type"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->type = cJSON_GetTypeValue(cJSON_GetObjectItemCaseSensitive(j, "Type"));
-                if (NULL == x->type) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "typealias")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "typealias")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typealias"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->typealias = cJSON_GetTypealiasValue(cJSON_GetObjectItemCaseSensitive(j, "typealias"));
-                if (NULL == x->typealias) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "uint")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "uint")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "uint"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->uint = cJSON_GetUintValue(cJSON_GetObjectItemCaseSensitive(j, "uint"));
-                if (NULL == x->uint) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "ulong")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "ulong")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ulong"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->ulong = cJSON_GetUlongValue(cJSON_GetObjectItemCaseSensitive(j, "ulong"));
-                if (NULL == x->ulong) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "unchecked")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "unchecked")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "unchecked"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->unchecked = cJSON_GetUncheckedValue(cJSON_GetObjectItemCaseSensitive(j, "unchecked"));
-                if (NULL == x->unchecked) { cJSON_DeleteObj4(x); return NULL; }
-            }
-            if (!cJSON_HasObjectItem(j, "undefined")) { cJSON_DeleteObj4(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "undefined")) {
-                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "undefined"))) { cJSON_DeleteObj4(x); return NULL; }
-                x->undefined = cJSON_GetUndefinedValue(cJSON_GetObjectItemCaseSensitive(j, "undefined"));
-                if (NULL == x->undefined) { cJSON_DeleteObj4(x); return NULL; }
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "throws"))) { cJSON_DeleteThrows(x); return NULL; }
+                x->throws = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "throws"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObj4(const struct Obj4 * x) {
+cJSON * cJSON_CreateThrows(const struct Throws * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "dummy", x->dummy);
-            cJSON_AddItemToObject(j, "public", cJSON_CreatePublic(x->obj4_public));
-            cJSON_AddItemToObject(j, "register", cJSON_CreateRegister(x->obj4_register));
-            cJSON_AddItemToObject(j, "reinterpret_cast", cJSON_CreateReinterpretCast(x->obj4_reinterpret_cast));
-            cJSON_AddItemToObject(j, "requires", cJSON_CreateRequires(x->obj4_requires));
-            cJSON_AddItemToObject(j, "restrict", cJSON_CreateRestrict(x->obj4_restrict));
-            cJSON_AddItemToObject(j, "return", cJSON_CreateReturn(x->obj4_return));
-            cJSON_AddItemToObject(j, "self", cJSON_CreateSelfClass(x->obj4_self));
-            cJSON_AddItemToObject(j, "short", cJSON_CreateShort(x->obj4_short));
-            cJSON_AddItemToObject(j, "signed", cJSON_CreateSigned(x->obj4_signed));
-            cJSON_AddItemToObject(j, "sizeof", cJSON_CreateSizeof(x->obj4_sizeof));
-            cJSON_AddItemToObject(j, "static", cJSON_CreateStatic(x->obj4_static));
-            cJSON_AddItemToObject(j, "static_assert", cJSON_CreateStaticAssert(x->obj4_static_assert));
-            cJSON_AddItemToObject(j, "static_cast", cJSON_CreateStaticCast(x->obj4_static_cast));
-            cJSON_AddItemToObject(j, "struct", cJSON_CreateStruct(x->obj4_struct));
-            cJSON_AddItemToObject(j, "switch", cJSON_CreateSwitch(x->obj4_switch));
-            cJSON_AddItemToObject(j, "synchronized", cJSON_CreateSynchronized(x->obj4_synchronized));
-            cJSON_AddItemToObject(j, "template", cJSON_CreateTemplate(x->obj4_template));
-            cJSON_AddItemToObject(j, "this", cJSON_CreateThis(x->obj4_this));
-            cJSON_AddItemToObject(j, "thread_local", cJSON_CreateThreadLocal(x->obj4_thread_local));
-            cJSON_AddItemToObject(j, "throw", cJSON_CreateThrow(x->obj4_throw));
-            cJSON_AddItemToObject(j, "True", cJSON_CreateTrueClass(x->obj4_true));
-            cJSON_AddItemToObject(j, "try", cJSON_CreateTry(x->obj4_try));
-            cJSON_AddItemToObject(j, "type", cJSON_CreateTypeClass(x->obj4_type));
-            cJSON_AddItemToObject(j, "typedef", cJSON_CreateTypedef(x->obj4_typedef));
-            cJSON_AddItemToObject(j, "typeid", cJSON_CreateTypeid(x->obj4_typeid));
-            cJSON_AddItemToObject(j, "typename", cJSON_CreateTypename(x->obj4_typename));
-            cJSON_AddItemToObject(j, "typeof", cJSON_CreateTypeof(x->obj4_typeof));
-            cJSON_AddItemToObject(j, "true", cJSON_CreateObj4True(x->purple_true));
-            cJSON_AddItemToObject(j, "quicktype", cJSON_CreateQuicktype(x->quicktype));
-            cJSON_AddItemToObject(j, "raise", cJSON_CreateRaise(x->raise));
-            cJSON_AddItemToObject(j, "range", cJSON_CreateRange(x->range));
-            cJSON_AddItemToObject(j, "readonly", cJSON_CreateReadonly(x->readonly));
-            cJSON_AddItemToObject(j, "ref", cJSON_CreateRef(x->ref));
-            cJSON_AddItemToObject(j, "RegExp", cJSON_CreateRegExp(x->reg_exp));
-            cJSON_AddItemToObject(j, "repeat", cJSON_CreateRepeat(x->repeat));
-            cJSON_AddItemToObject(j, "require", cJSON_CreateRequire(x->require));
-            cJSON_AddItemToObject(j, "required", cJSON_CreateRequired(x->required));
-            cJSON_AddItemToObject(j, "retain", cJSON_CreateRetain(x->retain));
-            cJSON_AddItemToObject(j, "rethrows", cJSON_CreateRethrows(x->rethrows));
-            cJSON_AddItemToObject(j, "right", cJSON_CreateRight(x->right));
-            cJSON_AddItemToObject(j, "runtimeType", cJSON_CreateRuntimeType(x->runtime_type));
-            cJSON_AddItemToObject(j, "s", cJSON_CreateS(x->s));
-            cJSON_AddItemToObject(j, "sbyte", cJSON_CreateSbyte(x->sbyte));
-            cJSON_AddItemToObject(j, "sealed", cJSON_CreateSealed(x->sealed));
-            cJSON_AddItemToObject(j, "SEL", cJSON_CreateSel(x->sel));
-            cJSON_AddItemToObject(j, "select", cJSON_CreateSelect(x->select));
-            cJSON_AddItemToObject(j, "Self", cJSON_CreateSelf(x->self));
-            cJSON_AddItemToObject(j, "serialize", cJSON_CreateSerialize(x->serialize));
-            cJSON_AddItemToObject(j, "set", cJSON_CreateSet(x->set));
-            cJSON_AddItemToObject(j, "stackalloc", cJSON_CreateStackalloc(x->stackalloc));
-            cJSON_AddItemToObject(j, "Standards", cJSON_CreateStandards(x->standards));
-            cJSON_AddItemToObject(j, "strictfp", cJSON_CreateStrictfp(x->strictfp));
-            cJSON_AddItemToObject(j, "string", cJSON_CreateStringClass(x->string));
-            cJSON_AddItemToObject(j, "subscript", cJSON_CreateSubscript(x->subscript));
-            cJSON_AddItemToObject(j, "super", cJSON_CreateSuper(x->super));
-            cJSON_AddItemToObject(j, "symbol", cJSON_CreateSymbol(x->symbol));
-            cJSON_AddItemToObject(j, "system", cJSON_CreateSystem(x->system));
-            cJSON_AddItemToObject(j, "then", cJSON_CreateThen(x->then));
-            cJSON_AddItemToObject(j, "throws", cJSON_CreateThrows(x->throws));
-            cJSON_AddItemToObject(j, "TimeOnly", cJSON_CreateTimeOnly(x->time_only));
-            cJSON_AddItemToObject(j, "TimeOnlyConverter", cJSON_CreateTimeOnlyConverter(x->time_only_converter));
-            cJSON_AddItemToObject(j, "to_json", cJSON_CreateToJson(x->to_json));
-            cJSON_AddItemToObject(j, "toString", cJSON_CreateToString(x->to_string));
-            cJSON_AddItemToObject(j, "top_level", cJSON_CreateTopLevelClass(x->top_level));
-            cJSON_AddItemToObject(j, "transient", cJSON_CreateTransient(x->transient));
-            cJSON_AddItemToObject(j, "Type", cJSON_CreateType(x->type));
-            cJSON_AddItemToObject(j, "typealias", cJSON_CreateTypealias(x->typealias));
-            cJSON_AddItemToObject(j, "uint", cJSON_CreateUint(x->uint));
-            cJSON_AddItemToObject(j, "ulong", cJSON_CreateUlong(x->ulong));
-            cJSON_AddItemToObject(j, "unchecked", cJSON_CreateUnchecked(x->unchecked));
-            cJSON_AddItemToObject(j, "undefined", cJSON_CreateUndefined(x->undefined));
+            cJSON_AddNumberToObject(j, "throws", x->throws);
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintThrows(const struct Throws * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateThrows(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteThrows(struct Throws * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct TimeOnly * cJSON_ParseTimeOnly(const char * s) {
+    struct TimeOnly * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetTimeOnlyValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct TimeOnly * cJSON_GetTimeOnlyValue(const cJSON * j) {
+    struct TimeOnly * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnly)))) {
+            memset(x, 0, sizeof(struct TimeOnly));
+            if (!cJSON_HasObjectItem(j, "TimeOnly")) { cJSON_DeleteTimeOnly(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "TimeOnly")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"))) { cJSON_DeleteTimeOnly(x); return NULL; }
+                x->time_only = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"));
+            }
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateTimeOnly(const struct TimeOnly * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "TimeOnly", x->time_only);
         }
     }
     return j;
 }
 
-char * cJSON_PrintObj4(const struct Obj4 * x) {
+char * cJSON_PrintTimeOnly(const struct TimeOnly * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObj4(x);
+        cJSON * j = cJSON_CreateTimeOnly(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19195,266 +18973,108 @@ char * cJSON_PrintObj4(const struct Obj4 * x) {
     return s;
 }
 
-void cJSON_DeleteObj4(struct Obj4 * x) {
+void cJSON_DeleteTimeOnly(struct TimeOnly * x) {
     if (NULL != x) {
-        if (NULL != x->obj4_public) {
-            cJSON_DeletePublic(x->obj4_public);
-        }
-        if (NULL != x->obj4_register) {
-            cJSON_DeleteRegister(x->obj4_register);
-        }
-        if (NULL != x->obj4_reinterpret_cast) {
-            cJSON_DeleteReinterpretCast(x->obj4_reinterpret_cast);
-        }
-        if (NULL != x->obj4_requires) {
-            cJSON_DeleteRequires(x->obj4_requires);
-        }
-        if (NULL != x->obj4_restrict) {
-            cJSON_DeleteRestrict(x->obj4_restrict);
-        }
-        if (NULL != x->obj4_return) {
-            cJSON_DeleteReturn(x->obj4_return);
-        }
-        if (NULL != x->obj4_self) {
-            cJSON_DeleteSelfClass(x->obj4_self);
-        }
-        if (NULL != x->obj4_short) {
-            cJSON_DeleteShort(x->obj4_short);
-        }
-        if (NULL != x->obj4_signed) {
-            cJSON_DeleteSigned(x->obj4_signed);
-        }
-        if (NULL != x->obj4_sizeof) {
-            cJSON_DeleteSizeof(x->obj4_sizeof);
-        }
-        if (NULL != x->obj4_static) {
-            cJSON_DeleteStatic(x->obj4_static);
-        }
-        if (NULL != x->obj4_static_assert) {
-            cJSON_DeleteStaticAssert(x->obj4_static_assert);
-        }
-        if (NULL != x->obj4_static_cast) {
-            cJSON_DeleteStaticCast(x->obj4_static_cast);
-        }
-        if (NULL != x->obj4_struct) {
-            cJSON_DeleteStruct(x->obj4_struct);
-        }
-        if (NULL != x->obj4_switch) {
-            cJSON_DeleteSwitch(x->obj4_switch);
-        }
-        if (NULL != x->obj4_synchronized) {
-            cJSON_DeleteSynchronized(x->obj4_synchronized);
-        }
-        if (NULL != x->obj4_template) {
-            cJSON_DeleteTemplate(x->obj4_template);
-        }
-        if (NULL != x->obj4_this) {
-            cJSON_DeleteThis(x->obj4_this);
-        }
-        if (NULL != x->obj4_thread_local) {
-            cJSON_DeleteThreadLocal(x->obj4_thread_local);
-        }
-        if (NULL != x->obj4_throw) {
-            cJSON_DeleteThrow(x->obj4_throw);
-        }
-        if (NULL != x->obj4_true) {
-            cJSON_DeleteTrueClass(x->obj4_true);
-        }
-        if (NULL != x->obj4_try) {
-            cJSON_DeleteTry(x->obj4_try);
-        }
-        if (NULL != x->obj4_type) {
-            cJSON_DeleteTypeClass(x->obj4_type);
-        }
-        if (NULL != x->obj4_typedef) {
-            cJSON_DeleteTypedef(x->obj4_typedef);
-        }
-        if (NULL != x->obj4_typeid) {
-            cJSON_DeleteTypeid(x->obj4_typeid);
-        }
-        if (NULL != x->obj4_typename) {
-            cJSON_DeleteTypename(x->obj4_typename);
-        }
-        if (NULL != x->obj4_typeof) {
-            cJSON_DeleteTypeof(x->obj4_typeof);
-        }
-        if (NULL != x->purple_true) {
-            cJSON_DeleteObj4True(x->purple_true);
-        }
-        if (NULL != x->quicktype) {
-            cJSON_DeleteQuicktype(x->quicktype);
-        }
-        if (NULL != x->raise) {
-            cJSON_DeleteRaise(x->raise);
-        }
-        if (NULL != x->range) {
-            cJSON_DeleteRange(x->range);
-        }
-        if (NULL != x->readonly) {
-            cJSON_DeleteReadonly(x->readonly);
-        }
-        if (NULL != x->ref) {
-            cJSON_DeleteRef(x->ref);
-        }
-        if (NULL != x->reg_exp) {
-            cJSON_DeleteRegExp(x->reg_exp);
-        }
-        if (NULL != x->repeat) {
-            cJSON_DeleteRepeat(x->repeat);
-        }
-        if (NULL != x->require) {
-            cJSON_DeleteRequire(x->require);
-        }
-        if (NULL != x->required) {
-            cJSON_DeleteRequired(x->required);
-        }
-        if (NULL != x->retain) {
-            cJSON_DeleteRetain(x->retain);
-        }
-        if (NULL != x->rethrows) {
-            cJSON_DeleteRethrows(x->rethrows);
-        }
-        if (NULL != x->right) {
-            cJSON_DeleteRight(x->right);
-        }
-        if (NULL != x->runtime_type) {
-            cJSON_DeleteRuntimeType(x->runtime_type);
-        }
-        if (NULL != x->s) {
-            cJSON_DeleteS(x->s);
-        }
-        if (NULL != x->sbyte) {
-            cJSON_DeleteSbyte(x->sbyte);
-        }
-        if (NULL != x->sealed) {
-            cJSON_DeleteSealed(x->sealed);
-        }
-        if (NULL != x->sel) {
-            cJSON_DeleteSel(x->sel);
-        }
-        if (NULL != x->select) {
-            cJSON_DeleteSelect(x->select);
-        }
-        if (NULL != x->self) {
-            cJSON_DeleteSelf(x->self);
-        }
-        if (NULL != x->serialize) {
-            cJSON_DeleteSerialize(x->serialize);
-        }
-        if (NULL != x->set) {
-            cJSON_DeleteSet(x->set);
-        }
-        if (NULL != x->stackalloc) {
-            cJSON_DeleteStackalloc(x->stackalloc);
-        }
-        if (NULL != x->standards) {
-            cJSON_DeleteStandards(x->standards);
-        }
-        if (NULL != x->strictfp) {
-            cJSON_DeleteStrictfp(x->strictfp);
-        }
-        if (NULL != x->string) {
-            cJSON_DeleteStringClass(x->string);
-        }
-        if (NULL != x->subscript) {
-            cJSON_DeleteSubscript(x->subscript);
-        }
-        if (NULL != x->super) {
-            cJSON_DeleteSuper(x->super);
-        }
-        if (NULL != x->symbol) {
-            cJSON_DeleteSymbol(x->symbol);
-        }
-        if (NULL != x->system) {
-            cJSON_DeleteSystem(x->system);
-        }
-        if (NULL != x->then) {
-            cJSON_DeleteThen(x->then);
-        }
-        if (NULL != x->throws) {
-            cJSON_DeleteThrows(x->throws);
-        }
-        if (NULL != x->time_only) {
-            cJSON_DeleteTimeOnly(x->time_only);
-        }
-        if (NULL != x->time_only_converter) {
-            cJSON_DeleteTimeOnlyConverter(x->time_only_converter);
-        }
-        if (NULL != x->to_json) {
-            cJSON_DeleteToJson(x->to_json);
-        }
-        if (NULL != x->to_string) {
-            cJSON_DeleteToString(x->to_string);
-        }
-        if (NULL != x->top_level) {
-            cJSON_DeleteTopLevelClass(x->top_level);
-        }
-        if (NULL != x->transient) {
-            cJSON_DeleteTransient(x->transient);
-        }
-        if (NULL != x->type) {
-            cJSON_DeleteType(x->type);
-        }
-        if (NULL != x->typealias) {
-            cJSON_DeleteTypealias(x->typealias);
-        }
-        if (NULL != x->uint) {
-            cJSON_DeleteUint(x->uint);
+        cJSON_free(x);
+    }
+}
+
+struct TimeOnlyConverter * cJSON_ParseTimeOnlyConverter(const char * s) {
+    struct TimeOnlyConverter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetTimeOnlyConverterValue(j);
+            cJSON_Delete(j);
         }
-        if (NULL != x->ulong) {
-            cJSON_DeleteUlong(x->ulong);
+    }
+    return x;
+}
+
+struct TimeOnlyConverter * cJSON_GetTimeOnlyConverterValue(const cJSON * j) {
+    struct TimeOnlyConverter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnlyConverter)))) {
+            memset(x, 0, sizeof(struct TimeOnlyConverter));
+            if (!cJSON_HasObjectItem(j, "TimeOnlyConverter")) { cJSON_DeleteTimeOnlyConverter(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "TimeOnlyConverter")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"))) { cJSON_DeleteTimeOnlyConverter(x); return NULL; }
+                x->time_only_converter = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"));
+            }
         }
-        if (NULL != x->unchecked) {
-            cJSON_DeleteUnchecked(x->unchecked);
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+            cJSON_AddNumberToObject(j, "TimeOnlyConverter", x->time_only_converter);
         }
-        if (NULL != x->undefined) {
-            cJSON_DeleteUndefined(x->undefined);
+    }
+    return j;
+}
+
+char * cJSON_PrintTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateTimeOnlyConverter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
+    }
+    return s;
+}
+
+void cJSON_DeleteTimeOnlyConverter(struct TimeOnlyConverter * x) {
+    if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Union * cJSON_ParseUnion(const char * s) {
-    struct Union * x = NULL;
+struct ToJson * cJSON_ParseToJson(const char * s) {
+    struct ToJson * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnionValue(j);
+            x = cJSON_GetToJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Union * cJSON_GetUnionValue(const cJSON * j) {
-    struct Union * x = NULL;
+struct ToJson * cJSON_GetToJsonValue(const cJSON * j) {
+    struct ToJson * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Union)))) {
-            memset(x, 0, sizeof(struct Union));
-            if (!cJSON_HasObjectItem(j, "union")) { cJSON_DeleteUnion(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "union")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "union"))) { cJSON_DeleteUnion(x); return NULL; }
-                x->union_union = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "union"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ToJson)))) {
+            memset(x, 0, sizeof(struct ToJson));
+            if (!cJSON_HasObjectItem(j, "to_json")) { cJSON_DeleteToJson(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "to_json")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "to_json"))) { cJSON_DeleteToJson(x); return NULL; }
+                x->to_json = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "to_json"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnion(const struct Union * x) {
+cJSON * cJSON_CreateToJson(const struct ToJson * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "union", x->union_union);
+            cJSON_AddNumberToObject(j, "to_json", x->to_json);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUnion(const struct Union * x) {
+char * cJSON_PrintToJson(const struct ToJson * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnion(x);
+        cJSON * j = cJSON_CreateToJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19463,53 +19083,53 @@ char * cJSON_PrintUnion(const struct Union * x) {
     return s;
 }
 
-void cJSON_DeleteUnion(struct Union * x) {
+void cJSON_DeleteToJson(struct ToJson * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Unsigned * cJSON_ParseUnsigned(const char * s) {
-    struct Unsigned * x = NULL;
+struct ToString * cJSON_ParseToString(const char * s) {
+    struct ToString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnsignedValue(j);
+            x = cJSON_GetToStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Unsigned * cJSON_GetUnsignedValue(const cJSON * j) {
-    struct Unsigned * x = NULL;
+struct ToString * cJSON_GetToStringValue(const cJSON * j) {
+    struct ToString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Unsigned)))) {
-            memset(x, 0, sizeof(struct Unsigned));
-            if (!cJSON_HasObjectItem(j, "unsigned")) { cJSON_DeleteUnsigned(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "unsigned")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "unsigned"))) { cJSON_DeleteUnsigned(x); return NULL; }
-                x->unsigned_unsigned = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "unsigned"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ToString)))) {
+            memset(x, 0, sizeof(struct ToString));
+            if (!cJSON_HasObjectItem(j, "toString")) { cJSON_DeleteToString(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "toString")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "toString"))) { cJSON_DeleteToString(x); return NULL; }
+                x->to_string = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "toString"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnsigned(const struct Unsigned * x) {
+cJSON * cJSON_CreateToString(const struct ToString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "unsigned", x->unsigned_unsigned);
+            cJSON_AddNumberToObject(j, "toString", x->to_string);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUnsigned(const struct Unsigned * x) {
+char * cJSON_PrintToString(const struct ToString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnsigned(x);
+        cJSON * j = cJSON_CreateToString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19518,53 +19138,53 @@ char * cJSON_PrintUnsigned(const struct Unsigned * x) {
     return s;
 }
 
-void cJSON_DeleteUnsigned(struct Unsigned * x) {
+void cJSON_DeleteToString(struct ToString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Using * cJSON_ParseUsing(const char * s) {
-    struct Using * x = NULL;
+struct TopLevelClass * cJSON_ParseTopLevelClass(const char * s) {
+    struct TopLevelClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUsingValue(j);
+            x = cJSON_GetTopLevelClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Using * cJSON_GetUsingValue(const cJSON * j) {
-    struct Using * x = NULL;
+struct TopLevelClass * cJSON_GetTopLevelClassValue(const cJSON * j) {
+    struct TopLevelClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Using)))) {
-            memset(x, 0, sizeof(struct Using));
-            if (!cJSON_HasObjectItem(j, "using")) { cJSON_DeleteUsing(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "using")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "using"))) { cJSON_DeleteUsing(x); return NULL; }
-                x->using_using = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "using"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct TopLevelClass)))) {
+            memset(x, 0, sizeof(struct TopLevelClass));
+            if (!cJSON_HasObjectItem(j, "top_level")) { cJSON_DeleteTopLevelClass(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "top_level")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "top_level"))) { cJSON_DeleteTopLevelClass(x); return NULL; }
+                x->top_level = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "top_level"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUsing(const struct Using * x) {
+cJSON * cJSON_CreateTopLevelClass(const struct TopLevelClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "using", x->using_using);
+            cJSON_AddNumberToObject(j, "top_level", x->top_level);
         }
     }
     return j;
 }
 
-char * cJSON_PrintUsing(const struct Using * x) {
+char * cJSON_PrintTopLevelClass(const struct TopLevelClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUsing(x);
+        cJSON * j = cJSON_CreateTopLevelClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19573,53 +19193,53 @@ char * cJSON_PrintUsing(const struct Using * x) {
     return s;
 }
 
-void cJSON_DeleteUsing(struct Using * x) {
+void cJSON_DeleteTopLevelClass(struct TopLevelClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Virtual * cJSON_ParseVirtual(const char * s) {
-    struct Virtual * x = NULL;
+struct Transient * cJSON_ParseTransient(const char * s) {
+    struct Transient * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetVirtualValue(j);
+            x = cJSON_GetTransientValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Virtual * cJSON_GetVirtualValue(const cJSON * j) {
-    struct Virtual * x = NULL;
+struct Transient * cJSON_GetTransientValue(const cJSON * j) {
+    struct Transient * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Virtual)))) {
-            memset(x, 0, sizeof(struct Virtual));
-            if (!cJSON_HasObjectItem(j, "virtual")) { cJSON_DeleteVirtual(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "virtual")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "virtual"))) { cJSON_DeleteVirtual(x); return NULL; }
-                x->virtual_virtual = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "virtual"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Transient)))) {
+            memset(x, 0, sizeof(struct Transient));
+            if (!cJSON_HasObjectItem(j, "transient")) { cJSON_DeleteTransient(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "transient")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "transient"))) { cJSON_DeleteTransient(x); return NULL; }
+                x->transient = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "transient"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateVirtual(const struct Virtual * x) {
+cJSON * cJSON_CreateTransient(const struct Transient * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "virtual", x->virtual_virtual);
+            cJSON_AddNumberToObject(j, "transient", x->transient);
         }
     }
     return j;
 }
 
-char * cJSON_PrintVirtual(const struct Virtual * x) {
+char * cJSON_PrintTransient(const struct Transient * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateVirtual(x);
+        cJSON * j = cJSON_CreateTransient(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19628,53 +19248,53 @@ char * cJSON_PrintVirtual(const struct Virtual * x) {
     return s;
 }
 
-void cJSON_DeleteVirtual(struct Virtual * x) {
+void cJSON_DeleteTransient(struct Transient * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Void * cJSON_ParseVoid(const char * s) {
-    struct Void * x = NULL;
+struct Type * cJSON_ParseType(const char * s) {
+    struct Type * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetVoidValue(j);
+            x = cJSON_GetTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Void * cJSON_GetVoidValue(const cJSON * j) {
-    struct Void * x = NULL;
+struct Type * cJSON_GetTypeValue(const cJSON * j) {
+    struct Type * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Void)))) {
-            memset(x, 0, sizeof(struct Void));
-            if (!cJSON_HasObjectItem(j, "void")) { cJSON_DeleteVoid(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "void")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "void"))) { cJSON_DeleteVoid(x); return NULL; }
-                x->void_void = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "void"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Type)))) {
+            memset(x, 0, sizeof(struct Type));
+            if (!cJSON_HasObjectItem(j, "Type")) { cJSON_DeleteType(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Type")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "Type"))) { cJSON_DeleteType(x); return NULL; }
+                x->type = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "Type"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateVoid(const struct Void * x) {
+cJSON * cJSON_CreateType(const struct Type * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "void", x->void_void);
+            cJSON_AddNumberToObject(j, "Type", x->type);
         }
     }
     return j;
 }
 
-char * cJSON_PrintVoid(const struct Void * x) {
+char * cJSON_PrintType(const struct Type * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateVoid(x);
+        cJSON * j = cJSON_CreateType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19683,53 +19303,53 @@ char * cJSON_PrintVoid(const struct Void * x) {
     return s;
 }
 
-void cJSON_DeleteVoid(struct Void * x) {
+void cJSON_DeleteType(struct Type * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Volatile * cJSON_ParseVolatile(const char * s) {
-    struct Volatile * x = NULL;
+struct Typealias * cJSON_ParseTypealias(const char * s) {
+    struct Typealias * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetVolatileValue(j);
+            x = cJSON_GetTypealiasValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Volatile * cJSON_GetVolatileValue(const cJSON * j) {
-    struct Volatile * x = NULL;
+struct Typealias * cJSON_GetTypealiasValue(const cJSON * j) {
+    struct Typealias * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Volatile)))) {
-            memset(x, 0, sizeof(struct Volatile));
-            if (!cJSON_HasObjectItem(j, "volatile")) { cJSON_DeleteVolatile(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "volatile")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "volatile"))) { cJSON_DeleteVolatile(x); return NULL; }
-                x->volatile_volatile = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "volatile"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Typealias)))) {
+            memset(x, 0, sizeof(struct Typealias));
+            if (!cJSON_HasObjectItem(j, "typealias")) { cJSON_DeleteTypealias(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typealias")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "typealias"))) { cJSON_DeleteTypealias(x); return NULL; }
+                x->typealias = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "typealias"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateVolatile(const struct Volatile * x) {
+cJSON * cJSON_CreateTypealias(const struct Typealias * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "volatile", x->volatile_volatile);
+            cJSON_AddNumberToObject(j, "typealias", x->typealias);
         }
     }
     return j;
 }
 
-char * cJSON_PrintVolatile(const struct Volatile * x) {
+char * cJSON_PrintTypealias(const struct Typealias * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateVolatile(x);
+        cJSON * j = cJSON_CreateTypealias(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19738,53 +19358,53 @@ char * cJSON_PrintVolatile(const struct Volatile * x) {
     return s;
 }
 
-void cJSON_DeleteVolatile(struct Volatile * x) {
+void cJSON_DeleteTypealias(struct Typealias * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct WcharT * cJSON_ParseWcharT(const char * s) {
-    struct WcharT * x = NULL;
+struct Uint * cJSON_ParseUint(const char * s) {
+    struct Uint * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetWcharTValue(j);
+            x = cJSON_GetUintValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct WcharT * cJSON_GetWcharTValue(const cJSON * j) {
-    struct WcharT * x = NULL;
+struct Uint * cJSON_GetUintValue(const cJSON * j) {
+    struct Uint * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct WcharT)))) {
-            memset(x, 0, sizeof(struct WcharT));
-            if (!cJSON_HasObjectItem(j, "wchar_t")) { cJSON_DeleteWcharT(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "wchar_t")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "wchar_t"))) { cJSON_DeleteWcharT(x); return NULL; }
-                x->wchar_t_wchar_t = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "wchar_t"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Uint)))) {
+            memset(x, 0, sizeof(struct Uint));
+            if (!cJSON_HasObjectItem(j, "uint")) { cJSON_DeleteUint(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "uint")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "uint"))) { cJSON_DeleteUint(x); return NULL; }
+                x->uint = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "uint"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateWcharT(const struct WcharT * x) {
+cJSON * cJSON_CreateUint(const struct Uint * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "wchar_t", x->wchar_t_wchar_t);
+            cJSON_AddNumberToObject(j, "uint", x->uint);
         }
     }
     return j;
 }
 
-char * cJSON_PrintWcharT(const struct WcharT * x) {
+char * cJSON_PrintUint(const struct Uint * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateWcharT(x);
+        cJSON * j = cJSON_CreateUint(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19793,53 +19413,53 @@ char * cJSON_PrintWcharT(const struct WcharT * x) {
     return s;
 }
 
-void cJSON_DeleteWcharT(struct WcharT * x) {
+void cJSON_DeleteUint(struct Uint * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct While * cJSON_ParseWhile(const char * s) {
-    struct While * x = NULL;
+struct Ulong * cJSON_ParseUlong(const char * s) {
+    struct Ulong * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetWhileValue(j);
+            x = cJSON_GetUlongValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct While * cJSON_GetWhileValue(const cJSON * j) {
-    struct While * x = NULL;
+struct Ulong * cJSON_GetUlongValue(const cJSON * j) {
+    struct Ulong * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct While)))) {
-            memset(x, 0, sizeof(struct While));
-            if (!cJSON_HasObjectItem(j, "while")) { cJSON_DeleteWhile(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "while")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "while"))) { cJSON_DeleteWhile(x); return NULL; }
-                x->while_while = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "while"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Ulong)))) {
+            memset(x, 0, sizeof(struct Ulong));
+            if (!cJSON_HasObjectItem(j, "ulong")) { cJSON_DeleteUlong(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ulong")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "ulong"))) { cJSON_DeleteUlong(x); return NULL; }
+                x->ulong = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "ulong"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateWhile(const struct While * x) {
+cJSON * cJSON_CreateUlong(const struct Ulong * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "while", x->while_while);
+            cJSON_AddNumberToObject(j, "ulong", x->ulong);
         }
     }
     return j;
 }
 
-char * cJSON_PrintWhile(const struct While * x) {
+char * cJSON_PrintUlong(const struct Ulong * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateWhile(x);
+        cJSON * j = cJSON_CreateUlong(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19848,53 +19468,53 @@ char * cJSON_PrintWhile(const struct While * x) {
     return s;
 }
 
-void cJSON_DeleteWhile(struct While * x) {
+void cJSON_DeleteUlong(struct Ulong * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Xor * cJSON_ParseXor(const char * s) {
-    struct Xor * x = NULL;
+struct Unchecked * cJSON_ParseUnchecked(const char * s) {
+    struct Unchecked * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetXorValue(j);
+            x = cJSON_GetUncheckedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
-}
-
-struct Xor * cJSON_GetXorValue(const cJSON * j) {
-    struct Xor * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Xor)))) {
-            memset(x, 0, sizeof(struct Xor));
-            if (!cJSON_HasObjectItem(j, "xor")) { cJSON_DeleteXor(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "xor")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "xor"))) { cJSON_DeleteXor(x); return NULL; }
-                x->xor_xor = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "xor"));
+}
+
+struct Unchecked * cJSON_GetUncheckedValue(const cJSON * j) {
+    struct Unchecked * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Unchecked)))) {
+            memset(x, 0, sizeof(struct Unchecked));
+            if (!cJSON_HasObjectItem(j, "unchecked")) { cJSON_DeleteUnchecked(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "unchecked")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "unchecked"))) { cJSON_DeleteUnchecked(x); return NULL; }
+                x->unchecked = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "unchecked"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateXor(const struct Xor * x) {
+cJSON * cJSON_CreateUnchecked(const struct Unchecked * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "xor", x->xor_xor);
+            cJSON_AddNumberToObject(j, "unchecked", x->unchecked);
         }
     }
     return j;
 }
 
-char * cJSON_PrintXor(const struct Xor * x) {
+char * cJSON_PrintUnchecked(const struct Unchecked * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateXor(x);
+        cJSON * j = cJSON_CreateUnchecked(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19903,53 +19523,53 @@ char * cJSON_PrintXor(const struct Xor * x) {
     return s;
 }
 
-void cJSON_DeleteXor(struct Xor * x) {
+void cJSON_DeleteUnchecked(struct Unchecked * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct XorEq * cJSON_ParseXorEq(const char * s) {
-    struct XorEq * x = NULL;
+struct Undefined * cJSON_ParseUndefined(const char * s) {
+    struct Undefined * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetXorEqValue(j);
+            x = cJSON_GetUndefinedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct XorEq * cJSON_GetXorEqValue(const cJSON * j) {
-    struct XorEq * x = NULL;
+struct Undefined * cJSON_GetUndefinedValue(const cJSON * j) {
+    struct Undefined * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct XorEq)))) {
-            memset(x, 0, sizeof(struct XorEq));
-            if (!cJSON_HasObjectItem(j, "xor_eq")) { cJSON_DeleteXorEq(x); return NULL; }
-            if (cJSON_HasObjectItem(j, "xor_eq")) {
-                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "xor_eq"))) { cJSON_DeleteXorEq(x); return NULL; }
-                x->xor_eq_xor_eq = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "xor_eq"));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Undefined)))) {
+            memset(x, 0, sizeof(struct Undefined));
+            if (!cJSON_HasObjectItem(j, "undefined")) { cJSON_DeleteUndefined(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "undefined")) {
+                if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "undefined"))) { cJSON_DeleteUndefined(x); return NULL; }
+                x->undefined = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "undefined"));
             }
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateXorEq(const struct XorEq * x) {
+cJSON * cJSON_CreateUndefined(const struct Undefined * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
-            cJSON_AddNumberToObject(j, "xor_eq", x->xor_eq_xor_eq);
+            cJSON_AddNumberToObject(j, "undefined", x->undefined);
         }
     }
     return j;
 }
 
-char * cJSON_PrintXorEq(const struct XorEq * x) {
+char * cJSON_PrintUndefined(const struct Undefined * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateXorEq(x);
+        cJSON * j = cJSON_CreateUndefined(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19958,7 +19578,7 @@ char * cJSON_PrintXorEq(const struct XorEq * x) {
     return s;
 }
 
-void cJSON_DeleteXorEq(struct XorEq * x) {
+void cJSON_DeleteUndefined(struct Undefined * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
@@ -20701,6 +20321,96 @@ struct Obj5 * cJSON_GetObj5Value(const cJSON * j) {
                 if (!quicktype_cJSON_IsInteger(cJSON_GetObjectItemCaseSensitive(j, "dummy"))) { cJSON_DeleteObj5(x); return NULL; }
                 x->dummy = cJSON_GetNumberValue(cJSON_GetObjectItemCaseSensitive(j, "dummy"));
             }
+            if (!cJSON_HasObjectItem(j, "static_cast")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "static_cast")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "static_cast"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_static_cast = cJSON_GetStaticCastValue(cJSON_GetObjectItemCaseSensitive(j, "static_cast"));
+                if (NULL == x->obj5_static_cast) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "struct")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "struct")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "struct"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_struct = cJSON_GetStructValue(cJSON_GetObjectItemCaseSensitive(j, "struct"));
+                if (NULL == x->obj5_struct) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "switch")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "switch")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "switch"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_switch = cJSON_GetSwitchValue(cJSON_GetObjectItemCaseSensitive(j, "switch"));
+                if (NULL == x->obj5_switch) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "synchronized")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "synchronized")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "synchronized"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_synchronized = cJSON_GetSynchronizedValue(cJSON_GetObjectItemCaseSensitive(j, "synchronized"));
+                if (NULL == x->obj5_synchronized) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "template")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "template")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "template"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_template = cJSON_GetTemplateValue(cJSON_GetObjectItemCaseSensitive(j, "template"));
+                if (NULL == x->obj5_template) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "this")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "this")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "this"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_this = cJSON_GetThisValue(cJSON_GetObjectItemCaseSensitive(j, "this"));
+                if (NULL == x->obj5_this) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "thread_local")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "thread_local")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "thread_local"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_thread_local = cJSON_GetThreadLocalValue(cJSON_GetObjectItemCaseSensitive(j, "thread_local"));
+                if (NULL == x->obj5_thread_local) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "throw")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "throw")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "throw"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_throw = cJSON_GetThrowValue(cJSON_GetObjectItemCaseSensitive(j, "throw"));
+                if (NULL == x->obj5_throw) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "True")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "True")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "True"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_true = cJSON_GetTrueClassValue(cJSON_GetObjectItemCaseSensitive(j, "True"));
+                if (NULL == x->obj5_true) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "try")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "try")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "try"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_try = cJSON_GetTryValue(cJSON_GetObjectItemCaseSensitive(j, "try"));
+                if (NULL == x->obj5_try) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "type")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "type")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "type"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_type = cJSON_GetTypeClassValue(cJSON_GetObjectItemCaseSensitive(j, "type"));
+                if (NULL == x->obj5_type) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "typedef")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typedef")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typedef"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_typedef = cJSON_GetTypedefValue(cJSON_GetObjectItemCaseSensitive(j, "typedef"));
+                if (NULL == x->obj5_typedef) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "typeid")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typeid")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typeid"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_typeid = cJSON_GetTypeidValue(cJSON_GetObjectItemCaseSensitive(j, "typeid"));
+                if (NULL == x->obj5_typeid) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "typename")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typename")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typename"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_typename = cJSON_GetTypenameValue(cJSON_GetObjectItemCaseSensitive(j, "typename"));
+                if (NULL == x->obj5_typename) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "typeof")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typeof")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typeof"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->obj5_typeof = cJSON_GetTypeofValue(cJSON_GetObjectItemCaseSensitive(j, "typeof"));
+                if (NULL == x->obj5_typeof) { cJSON_DeleteObj5(x); return NULL; }
+            }
             if (!cJSON_HasObjectItem(j, "union")) { cJSON_DeleteObj5(x); return NULL; }
             if (cJSON_HasObjectItem(j, "union")) {
                 if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "union"))) { cJSON_DeleteObj5(x); return NULL; }
@@ -20761,6 +20471,144 @@ struct Obj5 * cJSON_GetObj5Value(const cJSON * j) {
                 x->obj5_xor_eq = cJSON_GetXorEqValue(cJSON_GetObjectItemCaseSensitive(j, "xor_eq"));
                 if (NULL == x->obj5_xor_eq) { cJSON_DeleteObj5(x); return NULL; }
             }
+            if (!cJSON_HasObjectItem(j, "true")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "true")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "true"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->purple_true = cJSON_GetObj5TrueValue(cJSON_GetObjectItemCaseSensitive(j, "true"));
+                if (NULL == x->purple_true) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "StdDeserializer")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "StdDeserializer")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->std_deserializer = cJSON_GetStdDeserializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"));
+                if (NULL == x->std_deserializer) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "StdSerializer")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "StdSerializer")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->std_serializer = cJSON_GetStdSerializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"));
+                if (NULL == x->std_serializer) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "strictfp")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "strictfp")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "strictfp"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->strictfp = cJSON_GetStrictfpValue(cJSON_GetObjectItemCaseSensitive(j, "strictfp"));
+                if (NULL == x->strictfp) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "string")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "string")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "string"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->string = cJSON_GetStringClassValue(cJSON_GetObjectItemCaseSensitive(j, "string"));
+                if (NULL == x->string) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "subscript")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "subscript")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "subscript"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->subscript = cJSON_GetSubscriptValue(cJSON_GetObjectItemCaseSensitive(j, "subscript"));
+                if (NULL == x->subscript) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "super")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "super")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "super"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->super = cJSON_GetSuperValue(cJSON_GetObjectItemCaseSensitive(j, "super"));
+                if (NULL == x->super) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "symbol")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "symbol")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "symbol"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->symbol = cJSON_GetSymbolValue(cJSON_GetObjectItemCaseSensitive(j, "symbol"));
+                if (NULL == x->symbol) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "system")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "system")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "system"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->system = cJSON_GetSystemValue(cJSON_GetObjectItemCaseSensitive(j, "system"));
+                if (NULL == x->system) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "then")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "then")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "then"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->then = cJSON_GetThenValue(cJSON_GetObjectItemCaseSensitive(j, "then"));
+                if (NULL == x->then) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "throws")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "throws")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "throws"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->throws = cJSON_GetThrowsValue(cJSON_GetObjectItemCaseSensitive(j, "throws"));
+                if (NULL == x->throws) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "TimeOnly")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "TimeOnly")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->time_only = cJSON_GetTimeOnlyValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"));
+                if (NULL == x->time_only) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "TimeOnlyConverter")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "TimeOnlyConverter")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->time_only_converter = cJSON_GetTimeOnlyConverterValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"));
+                if (NULL == x->time_only_converter) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "to_json")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "to_json")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "to_json"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->to_json = cJSON_GetToJsonValue(cJSON_GetObjectItemCaseSensitive(j, "to_json"));
+                if (NULL == x->to_json) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "toString")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "toString")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "toString"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->to_string = cJSON_GetToStringValue(cJSON_GetObjectItemCaseSensitive(j, "toString"));
+                if (NULL == x->to_string) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "top_level")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "top_level")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "top_level"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->top_level = cJSON_GetTopLevelClassValue(cJSON_GetObjectItemCaseSensitive(j, "top_level"));
+                if (NULL == x->top_level) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "transient")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "transient")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "transient"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->transient = cJSON_GetTransientValue(cJSON_GetObjectItemCaseSensitive(j, "transient"));
+                if (NULL == x->transient) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "Type")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "Type")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "Type"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->type = cJSON_GetTypeValue(cJSON_GetObjectItemCaseSensitive(j, "Type"));
+                if (NULL == x->type) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "typealias")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "typealias")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "typealias"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->typealias = cJSON_GetTypealiasValue(cJSON_GetObjectItemCaseSensitive(j, "typealias"));
+                if (NULL == x->typealias) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "uint")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "uint")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "uint"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->uint = cJSON_GetUintValue(cJSON_GetObjectItemCaseSensitive(j, "uint"));
+                if (NULL == x->uint) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "ulong")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "ulong")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "ulong"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->ulong = cJSON_GetUlongValue(cJSON_GetObjectItemCaseSensitive(j, "ulong"));
+                if (NULL == x->ulong) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "unchecked")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "unchecked")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "unchecked"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->unchecked = cJSON_GetUncheckedValue(cJSON_GetObjectItemCaseSensitive(j, "unchecked"));
+                if (NULL == x->unchecked) { cJSON_DeleteObj5(x); return NULL; }
+            }
+            if (!cJSON_HasObjectItem(j, "undefined")) { cJSON_DeleteObj5(x); return NULL; }
+            if (cJSON_HasObjectItem(j, "undefined")) {
+                if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "undefined"))) { cJSON_DeleteObj5(x); return NULL; }
+                x->undefined = cJSON_GetUndefinedValue(cJSON_GetObjectItemCaseSensitive(j, "undefined"));
+                if (NULL == x->undefined) { cJSON_DeleteObj5(x); return NULL; }
+            }
             if (!cJSON_HasObjectItem(j, "unowned")) { cJSON_DeleteObj5(x); return NULL; }
             if (cJSON_HasObjectItem(j, "unowned")) {
                 if (!cJSON_IsObject(cJSON_GetObjectItemCaseSensitive(j, "unowned"))) { cJSON_DeleteObj5(x); return NULL; }
@@ -20849,6 +20697,21 @@ cJSON * cJSON_CreateObj5(const struct Obj5 * x) {
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
             cJSON_AddNumberToObject(j, "dummy", x->dummy);
+            cJSON_AddItemToObject(j, "static_cast", cJSON_CreateStaticCast(x->obj5_static_cast));
+            cJSON_AddItemToObject(j, "struct", cJSON_CreateStruct(x->obj5_struct));
+            cJSON_AddItemToObject(j, "switch", cJSON_CreateSwitch(x->obj5_switch));
+            cJSON_AddItemToObject(j, "synchronized", cJSON_CreateSynchronized(x->obj5_synchronized));
+            cJSON_AddItemToObject(j, "template", cJSON_CreateTemplate(x->obj5_template));
+            cJSON_AddItemToObject(j, "this", cJSON_CreateThis(x->obj5_this));
+            cJSON_AddItemToObject(j, "thread_local", cJSON_CreateThreadLocal(x->obj5_thread_local));
+            cJSON_AddItemToObject(j, "throw", cJSON_CreateThrow(x->obj5_throw));
+            cJSON_AddItemToObject(j, "True", cJSON_CreateTrueClass(x->obj5_true));
+            cJSON_AddItemToObject(j, "try", cJSON_CreateTry(x->obj5_try));
+            cJSON_AddItemToObject(j, "type", cJSON_CreateTypeClass(x->obj5_type));
+            cJSON_AddItemToObject(j, "typedef", cJSON_CreateTypedef(x->obj5_typedef));
+            cJSON_AddItemToObject(j, "typeid", cJSON_CreateTypeid(x->obj5_typeid));
+            cJSON_AddItemToObject(j, "typename", cJSON_CreateTypename(x->obj5_typename));
+            cJSON_AddItemToObject(j, "typeof", cJSON_CreateTypeof(x->obj5_typeof));
             cJSON_AddItemToObject(j, "union", cJSON_CreateUnion(x->obj5_union));
             cJSON_AddItemToObject(j, "unsigned", cJSON_CreateUnsigned(x->obj5_unsigned));
             cJSON_AddItemToObject(j, "using", cJSON_CreateUsing(x->obj5_using));
@@ -20859,6 +20722,29 @@ cJSON * cJSON_CreateObj5(const struct Obj5 * x) {
             cJSON_AddItemToObject(j, "while", cJSON_CreateWhile(x->obj5_while));
             cJSON_AddItemToObject(j, "xor", cJSON_CreateXor(x->obj5_xor));
             cJSON_AddItemToObject(j, "xor_eq", cJSON_CreateXorEq(x->obj5_xor_eq));
+            cJSON_AddItemToObject(j, "true", cJSON_CreateObj5True(x->purple_true));
+            cJSON_AddItemToObject(j, "StdDeserializer", cJSON_CreateStdDeserializer(x->std_deserializer));
+            cJSON_AddItemToObject(j, "StdSerializer", cJSON_CreateStdSerializer(x->std_serializer));
+            cJSON_AddItemToObject(j, "strictfp", cJSON_CreateStrictfp(x->strictfp));
+            cJSON_AddItemToObject(j, "string", cJSON_CreateStringClass(x->string));
+            cJSON_AddItemToObject(j, "subscript", cJSON_CreateSubscript(x->subscript));
+            cJSON_AddItemToObject(j, "super", cJSON_CreateSuper(x->super));
+            cJSON_AddItemToObject(j, "symbol", cJSON_CreateSymbol(x->symbol));
+            cJSON_AddItemToObject(j, "system", cJSON_CreateSystem(x->system));
+            cJSON_AddItemToObject(j, "then", cJSON_CreateThen(x->then));
+            cJSON_AddItemToObject(j, "throws", cJSON_CreateThrows(x->throws));
+            cJSON_AddItemToObject(j, "TimeOnly", cJSON_CreateTimeOnly(x->time_only));
+            cJSON_AddItemToObject(j, "TimeOnlyConverter", cJSON_CreateTimeOnlyConverter(x->time_only_converter));
+            cJSON_AddItemToObject(j, "to_json", cJSON_CreateToJson(x->to_json));
+            cJSON_AddItemToObject(j, "toString", cJSON_CreateToString(x->to_string));
+            cJSON_AddItemToObject(j, "top_level", cJSON_CreateTopLevelClass(x->top_level));
+            cJSON_AddItemToObject(j, "transient", cJSON_CreateTransient(x->transient));
+            cJSON_AddItemToObject(j, "Type", cJSON_CreateType(x->type));
+            cJSON_AddItemToObject(j, "typealias", cJSON_CreateTypealias(x->typealias));
+            cJSON_AddItemToObject(j, "uint", cJSON_CreateUint(x->uint));
+            cJSON_AddItemToObject(j, "ulong", cJSON_CreateUlong(x->ulong));
+            cJSON_AddItemToObject(j, "unchecked", cJSON_CreateUnchecked(x->unchecked));
+            cJSON_AddItemToObject(j, "undefined", cJSON_CreateUndefined(x->undefined));
             cJSON_AddItemToObject(j, "unowned", cJSON_CreateUnowned(x->unowned));
             cJSON_AddItemToObject(j, "unsafe", cJSON_CreateUnsafe(x->unsafe));
             cJSON_AddItemToObject(j, "ushort", cJSON_CreateUshort(x->ushort));
@@ -20891,6 +20777,51 @@ char * cJSON_PrintObj5(const struct Obj5 * x) {
 
 void cJSON_DeleteObj5(struct Obj5 * x) {
     if (NULL != x) {
+        if (NULL != x->obj5_static_cast) {
+            cJSON_DeleteStaticCast(x->obj5_static_cast);
+        }
+        if (NULL != x->obj5_struct) {
+            cJSON_DeleteStruct(x->obj5_struct);
+        }
+        if (NULL != x->obj5_switch) {
+            cJSON_DeleteSwitch(x->obj5_switch);
+        }
+        if (NULL != x->obj5_synchronized) {
+            cJSON_DeleteSynchronized(x->obj5_synchronized);
+        }
+        if (NULL != x->obj5_template) {
+            cJSON_DeleteTemplate(x->obj5_template);
+        }
+        if (NULL != x->obj5_this) {
+            cJSON_DeleteThis(x->obj5_this);
+        }
+        if (NULL != x->obj5_thread_local) {
+            cJSON_DeleteThreadLocal(x->obj5_thread_local);
+        }
+        if (NULL != x->obj5_throw) {
+            cJSON_DeleteThrow(x->obj5_throw);
+        }
+        if (NULL != x->obj5_true) {
+            cJSON_DeleteTrueClass(x->obj5_true);
+        }
+        if (NULL != x->obj5_try) {
+            cJSON_DeleteTry(x->obj5_try);
+        }
+        if (NULL != x->obj5_type) {
+            cJSON_DeleteTypeClass(x->obj5_type);
+        }
+        if (NULL != x->obj5_typedef) {
+            cJSON_DeleteTypedef(x->obj5_typedef);
+        }
+        if (NULL != x->obj5_typeid) {
+            cJSON_DeleteTypeid(x->obj5_typeid);
+        }
+        if (NULL != x->obj5_typename) {
+            cJSON_DeleteTypename(x->obj5_typename);
+        }
+        if (NULL != x->obj5_typeof) {
+            cJSON_DeleteTypeof(x->obj5_typeof);
+        }
         if (NULL != x->obj5_union) {
             cJSON_DeleteUnion(x->obj5_union);
         }
@@ -20921,6 +20852,75 @@ void cJSON_DeleteObj5(struct Obj5 * x) {
         if (NULL != x->obj5_xor_eq) {
             cJSON_DeleteXorEq(x->obj5_xor_eq);
         }
+        if (NULL != x->purple_true) {
+            cJSON_DeleteObj5True(x->purple_true);
+        }
+        if (NULL != x->std_deserializer) {
+            cJSON_DeleteStdDeserializer(x->std_deserializer);
+        }
+        if (NULL != x->std_serializer) {
+            cJSON_DeleteStdSerializer(x->std_serializer);
+        }
+        if (NULL != x->strictfp) {
+            cJSON_DeleteStrictfp(x->strictfp);
+        }
+        if (NULL != x->string) {
+            cJSON_DeleteStringClass(x->string);
+        }
+        if (NULL != x->subscript) {
+            cJSON_DeleteSubscript(x->subscript);
+        }
+        if (NULL != x->super) {
+            cJSON_DeleteSuper(x->super);
+        }
+        if (NULL != x->symbol) {
+            cJSON_DeleteSymbol(x->symbol);
+        }
+        if (NULL != x->system) {
+            cJSON_DeleteSystem(x->system);
+        }
+        if (NULL != x->then) {
+            cJSON_DeleteThen(x->then);
+        }
+        if (NULL != x->throws) {
+            cJSON_DeleteThrows(x->throws);
+        }
+        if (NULL != x->time_only) {
+            cJSON_DeleteTimeOnly(x->time_only);
+        }
+        if (NULL != x->time_only_converter) {
+            cJSON_DeleteTimeOnlyConverter(x->time_only_converter);
+        }
+        if (NULL != x->to_json) {
+            cJSON_DeleteToJson(x->to_json);
+        }
+        if (NULL != x->to_string) {
+            cJSON_DeleteToString(x->to_string);
+        }
+        if (NULL != x->top_level) {
+            cJSON_DeleteTopLevelClass(x->top_level);
+        }
+        if (NULL != x->transient) {
+            cJSON_DeleteTransient(x->transient);
+        }
+        if (NULL != x->type) {
+            cJSON_DeleteType(x->type);
+        }
+        if (NULL != x->typealias) {
+            cJSON_DeleteTypealias(x->typealias);
+        }
+        if (NULL != x->uint) {
+            cJSON_DeleteUint(x->uint);
+        }
+        if (NULL != x->ulong) {
+            cJSON_DeleteUlong(x->ulong);
+        }
+        if (NULL != x->unchecked) {
+            cJSON_DeleteUnchecked(x->unchecked);
+        }
+        if (NULL != x->undefined) {
+            cJSON_DeleteUndefined(x->undefined);
+        }
         if (NULL != x->unowned) {
             cJSON_DeleteUnowned(x->unowned);
         }
diff --git a/base/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.h b/head/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.h
index 344e7da..abd629e 100644
--- a/base/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.h
+++ b/head/cjson/test/inputs/json/priority/keywords.json/default/TopLevel.h
@@ -158,30 +158,6 @@ struct DateParseHandling {
     int64_t date_parse_handling;
 };
 
-struct DateTime {
-    char * date_time;
-};
-
-struct DateTimeStyles {
-    int64_t date_time_styles;
-};
-
-struct Debugger {
-    int64_t debugger;
-};
-
-struct Decimal {
-    int64_t decimal;
-};
-
-struct Declare {
-    int64_t declare;
-};
-
-struct DecodeString {
-    int64_t decode_string;
-};
-
 struct Empty {
     int64_t empty;
 };
@@ -310,10 +286,6 @@ struct Continue {
     int64_t continue_continue;
 };
 
-struct Decltype {
-    int64_t decltype_decltype;
-};
-
 struct Obj1Bool {
     int64_t bool_bool;
 };
@@ -353,12 +325,6 @@ struct Obj1 {
     struct DateOnly * date_only;
     struct DateOnlyConverter * date_only_converter;
     struct DateParseHandling * date_parse_handling;
-    struct DateTime * date_time;
-    struct DateTimeStyles * date_time_styles;
-    struct Debugger * debugger;
-    struct Decimal * decimal;
-    struct Declare * declare;
-    struct DecodeString * decode_string;
     int64_t dummy;
     struct Empty * empty;
     struct Obj1BoolClass * fluffy_bool;
@@ -392,11 +358,34 @@ struct Obj1 {
     struct ConstCast * obj1_const_cast;
     struct Constexpr * obj1_constexpr;
     struct Continue * obj1_continue;
-    struct Decltype * obj1_decltype;
     struct Obj1Bool * purple_bool;
     struct ClassClass * purple_class;
 };
 
+struct DateTime {
+    char * date_time;
+};
+
+struct DateTimeStyles {
+    int64_t date_time_styles;
+};
+
+struct Debugger {
+    int64_t debugger;
+};
+
+struct Decimal {
+    int64_t decimal;
+};
+
+struct Declare {
+    int64_t declare;
+};
+
+struct DecodeString {
+    int64_t decode_string;
+};
+
 struct Def {
     int64_t def;
 };
@@ -558,36 +547,8 @@ struct Implicit {
     int64_t implicit;
 };
 
-struct In {
-    int64_t in;
-};
-
-struct Indirect {
-    int64_t indirect;
-};
-
-struct Infix {
-    int64_t infix;
-};
-
-struct Init {
-    int64_t init;
-};
-
-struct Inout {
-    int64_t inout;
-};
-
-struct Instanceof {
-    int64_t instanceof;
-};
-
-struct Interface {
-    int64_t interface;
-};
-
-struct Internal {
-    int64_t internal;
+struct Decltype {
+    int64_t decltype_decltype;
 };
 
 struct Default {
@@ -658,23 +619,17 @@ struct If {
     int64_t if_if;
 };
 
-struct Import {
-    int64_t import_import;
-};
-
-struct Inline {
-    int64_t inline_inline;
-};
-
-struct Int {
-    int64_t int_int;
-};
-
 struct Obj2False {
     int64_t false_false;
 };
 
 struct Obj2 {
+    struct DateTime * date_time;
+    struct DateTimeStyles * date_time_styles;
+    struct Debugger * debugger;
+    struct Decimal * decimal;
+    struct Declare * declare;
+    struct DecodeString * decode_string;
     struct Def * def;
     struct Defer * defer;
     struct Deinit * deinit;
@@ -715,14 +670,7 @@ struct Obj2 {
     struct Imp * imp;
     struct Implements * implements;
     struct Implicit * implicit;
-    struct In * in;
-    struct Indirect * indirect;
-    struct Infix * infix;
-    struct Init * init;
-    struct Inout * inout;
-    struct Instanceof * instanceof;
-    struct Interface * interface;
-    struct Internal * internal;
+    struct Decltype * obj2_decltype;
     struct Default * obj2_default;
     struct Delete * obj2_delete;
     struct Do * obj2_do;
@@ -740,12 +688,41 @@ struct Obj2 {
     struct Friend * obj2_friend;
     struct Goto * obj2_goto;
     struct If * obj2_if;
-    struct Import * obj2_import;
-    struct Inline * obj2_inline;
-    struct Int * obj2_int;
     struct Obj2False * purple_false;
 };
 
+struct In {
+    int64_t in;
+};
+
+struct Indirect {
+    int64_t indirect;
+};
+
+struct Infix {
+    int64_t infix;
+};
+
+struct Init {
+    int64_t init;
+};
+
+struct Inout {
+    int64_t inout;
+};
+
+struct Instanceof {
+    int64_t instanceof;
+};
+
+struct Interface {
+    int64_t interface;
+};
+
+struct Internal {
+    int64_t internal;
+};
+
 struct Is {
     int64_t is;
 };
@@ -918,8 +895,16 @@ struct NullClass {
     int64_t null;
 };
 
-struct NumberClass {
-    int64_t number;
+struct Import {
+    int64_t import_import;
+};
+
+struct Inline {
+    int64_t inline_inline;
+};
+
+struct Int {
+    int64_t int_int;
 };
 
 struct Long {
@@ -962,6 +947,78 @@ struct Obj3Null {
     int64_t null;
 };
 
+struct Obj3 {
+    int64_t dummy;
+    struct In * in;
+    struct Indirect * indirect;
+    struct Infix * infix;
+    struct Init * init;
+    struct Inout * inout;
+    struct Instanceof * instanceof;
+    struct Interface * interface;
+    struct Internal * internal;
+    struct Is * is;
+    struct IsoDateTimeOffsetConverter * iso_date_time_offset_converter;
+    struct Iterable * iterable;
+    struct Jdec * jdec;
+    struct Jenc * jenc;
+    struct Jpipe * jpipe;
+    struct Json * json;
+    struct JsonAny * json_any;
+    struct JsonCodingKey * json_coding_key;
+    struct JsonConverter * json_converter;
+    struct JsonDecoder * json_decoder;
+    struct JsonEncoder * json_encoder;
+    struct JsonException * json_exception;
+    struct JsonGenerator * json_generator;
+    struct JsonNode * json_node;
+    struct JsonNull * json_null;
+    struct JsonParser * json_parser;
+    struct JsonReader * json_reader;
+    struct JsonSerializer * json_serializer;
+    struct JsonToken * json_token;
+    struct JsonTokenType * json_token_type;
+    struct JsonWriter * json_writer;
+    struct Lambda * lambda;
+    struct Lazy * lazy;
+    struct Left * left;
+    struct Let * let;
+    struct List * list;
+    struct Lock * lock;
+    struct Map * map;
+    struct MetadataPropertyHandling * metadata_property_handling;
+    struct Mutating * mutating;
+    struct Native * native;
+    struct Newtonsoft * newtonsoft;
+    struct Nil * nil;
+    struct No * no;
+    struct NoSuchMethod * no_such_method;
+    struct Nonatomic * nonatomic;
+    struct None * none;
+    struct Nonlocal * nonlocal;
+    struct Nonmutating * nonmutating;
+    struct NsError * ns_error;
+    struct NsString * ns_string;
+    struct NullClass * null;
+    struct Import * obj3_import;
+    struct Inline * obj3_inline;
+    struct Int * obj3_int;
+    struct Long * obj3_long;
+    struct Module * obj3_module;
+    struct Mutable * obj3_mutable;
+    struct Namespace * obj3_namespace;
+    struct New * obj3_new;
+    struct Noexcept * obj3_noexcept;
+    struct NoneClass * obj3_none;
+    struct Not * obj3_not;
+    struct NotEq * obj3_not_eq;
+    struct Obj3Null * obj3_null;
+};
+
+struct NumberClass {
+    int64_t number;
+};
+
 struct Nullptr {
     int64_t nullptr_nullptr;
 };
@@ -994,204 +1051,28 @@ struct ProtocolClass {
     int64_t protocol;
 };
 
-struct ObjectClass {
-    int64_t object;
+struct Public {
+    int64_t public_public;
 };
 
-struct ObjectMapper {
-    int64_t object_mapper;
+struct Register {
+    int64_t register_register;
 };
 
-struct Of {
-    int64_t of;
+struct ReinterpretCast {
+    int64_t reinterpret_cast_reinterpret_cast;
 };
 
-struct Oneway {
-    int64_t oneway;
+struct Requires {
+    int64_t requires_requires;
 };
 
-struct Open {
-    int64_t open;
+struct Restrict {
+    int64_t restrict_restrict;
 };
 
-struct Optional {
-    int64_t optional;
-};
-
-struct Out {
-    int64_t out;
-};
-
-struct Package {
-    int64_t package;
-};
-
-struct Params {
-    int64_t params;
-};
-
-struct Pass {
-    int64_t pass;
-};
-
-struct Port {
-    int64_t port;
-};
-
-struct Postfix {
-    int64_t postfix;
-};
-
-struct Precedence {
-    int64_t precedence;
-};
-
-struct Prefix {
-    int64_t prefix;
-};
-
-struct Print {
-    int64_t print;
-};
-
-struct PrintMembers {
-    int64_t print_members;
-};
-
-struct Printf {
-    int64_t printf;
-};
-
-struct Protocol {
-    int64_t protocol;
-};
-
-struct SerializerProvider {
-    int64_t serializer_provider;
-};
-
-struct SimpleModule {
-    int64_t simple_module;
-};
-
-struct StdDeserializer {
-    int64_t std_deserializer;
-};
-
-struct StdSerializer {
-    int64_t std_serializer;
-};
-
-struct Obj3 {
-    int64_t dummy;
-    struct Is * is;
-    struct IsoDateTimeOffsetConverter * iso_date_time_offset_converter;
-    struct Iterable * iterable;
-    struct Jdec * jdec;
-    struct Jenc * jenc;
-    struct Jpipe * jpipe;
-    struct Json * json;
-    struct JsonAny * json_any;
-    struct JsonCodingKey * json_coding_key;
-    struct JsonConverter * json_converter;
-    struct JsonDecoder * json_decoder;
-    struct JsonEncoder * json_encoder;
-    struct JsonException * json_exception;
-    struct JsonGenerator * json_generator;
-    struct JsonNode * json_node;
-    struct JsonNull * json_null;
-    struct JsonParser * json_parser;
-    struct JsonReader * json_reader;
-    struct JsonSerializer * json_serializer;
-    struct JsonToken * json_token;
-    struct JsonTokenType * json_token_type;
-    struct JsonWriter * json_writer;
-    struct Lambda * lambda;
-    struct Lazy * lazy;
-    struct Left * left;
-    struct Let * let;
-    struct List * list;
-    struct Lock * lock;
-    struct Map * map;
-    struct MetadataPropertyHandling * metadata_property_handling;
-    struct Mutating * mutating;
-    struct Native * native;
-    struct Newtonsoft * newtonsoft;
-    struct Nil * nil;
-    struct No * no;
-    struct NoSuchMethod * no_such_method;
-    struct Nonatomic * nonatomic;
-    struct None * none;
-    struct Nonlocal * nonlocal;
-    struct Nonmutating * nonmutating;
-    struct NsError * ns_error;
-    struct NsString * ns_string;
-    struct NullClass * null;
-    struct NumberClass * number;
-    struct Long * obj3_long;
-    struct Module * obj3_module;
-    struct Mutable * obj3_mutable;
-    struct Namespace * obj3_namespace;
-    struct New * obj3_new;
-    struct Noexcept * obj3_noexcept;
-    struct NoneClass * obj3_none;
-    struct Not * obj3_not;
-    struct NotEq * obj3_not_eq;
-    struct Obj3Null * obj3_null;
-    struct Nullptr * obj3_nullptr;
-    struct Operator * obj3_operator;
-    struct Or * obj3_or;
-    struct OrEq * obj3_or_eq;
-    struct Override * obj3_override;
-    struct Private * obj3_private;
-    struct Protected * obj3_protected;
-    struct ProtocolClass * obj3_protocol;
-    struct ObjectClass * object;
-    struct ObjectMapper * object_mapper;
-    struct Of * of;
-    struct Oneway * oneway;
-    struct Open * open;
-    struct Optional * optional;
-    struct Out * out;
-    struct Package * package;
-    struct Params * params;
-    struct Pass * pass;
-    struct Port * port;
-    struct Postfix * postfix;
-    struct Precedence * precedence;
-    struct Prefix * prefix;
-    struct Print * print;
-    struct PrintMembers * print_members;
-    struct Printf * printf;
-    struct Protocol * protocol;
-    struct SerializerProvider * serializer_provider;
-    struct SimpleModule * simple_module;
-    struct StdDeserializer * std_deserializer;
-    struct StdSerializer * std_serializer;
-};
-
-struct Public {
-    int64_t public_public;
-};
-
-struct Register {
-    int64_t register_register;
-};
-
-struct ReinterpretCast {
-    int64_t reinterpret_cast_reinterpret_cast;
-};
-
-struct Requires {
-    int64_t requires_requires;
-};
-
-struct Restrict {
-    int64_t restrict_restrict;
-};
-
-struct Return {
-    int64_t return_return;
+struct Return {
+    int64_t return_return;
 };
 
 struct SelfClass {
@@ -1218,68 +1099,76 @@ struct StaticAssert {
     int64_t static_assert_static_assert;
 };
 
-struct StaticCast {
-    int64_t static_cast_static_cast;
+struct ObjectClass {
+    int64_t object;
 };
 
-struct Struct {
-    int64_t struct_struct;
+struct ObjectMapper {
+    int64_t object_mapper;
 };
 
-struct Switch {
-    int64_t switch_switch;
+struct Of {
+    int64_t of;
 };
 
-struct Synchronized {
-    int64_t synchronized_synchronized;
+struct Oneway {
+    int64_t oneway;
 };
 
-struct Template {
-    int64_t template_template;
+struct Open {
+    int64_t open;
 };
 
-struct This {
-    int64_t this_this;
+struct Optional {
+    int64_t optional;
 };
 
-struct ThreadLocal {
-    int64_t thread_local_thread_local;
+struct Out {
+    int64_t out;
 };
 
-struct Throw {
-    int64_t throw_throw;
+struct Package {
+    int64_t package;
 };
 
-struct TrueClass {
-    int64_t true_true;
+struct Params {
+    int64_t params;
 };
 
-struct Try {
-    int64_t try_try;
+struct Pass {
+    int64_t pass;
 };
 
-struct TypeClass {
-    int64_t type;
+struct Port {
+    int64_t port;
 };
 
-struct Typedef {
-    int64_t typedef_typedef;
+struct Postfix {
+    int64_t postfix;
 };
 
-struct Typeid {
-    int64_t typeid_typeid;
+struct Precedence {
+    int64_t precedence;
 };
 
-struct Typename {
-    int64_t typename_typename;
+struct Prefix {
+    int64_t prefix;
 };
 
-struct Typeof {
-    int64_t typeof_typeof;
+struct Print {
+    int64_t print;
 };
 
-struct Obj4True {
-    int64_t true_true;
+struct PrintMembers {
+    int64_t print_members;
+};
+
+struct Printf {
+    int64_t printf;
+};
+
+struct Protocol {
+    int64_t protocol;
 };
 
 struct Quicktype {
@@ -1362,10 +1251,18 @@ struct Serialize {
     int64_t serialize;
 };
 
+struct SerializerProvider {
+    int64_t serializer_provider;
+};
+
 struct Set {
     int64_t set;
 };
 
+struct SimpleModule {
+    int64_t simple_module;
+};
+
 struct Stackalloc {
     int64_t stackalloc;
 };
@@ -1374,88 +1271,17 @@ struct Standards {
     int64_t standards;
 };
 
-struct Strictfp {
-    int64_t strictfp;
-};
-
-struct StringClass {
-    int64_t string;
-};
-
-struct Subscript {
-    int64_t subscript;
-};
-
-struct Super {
-    int64_t super;
-};
-
-struct Symbol {
-    int64_t symbol;
-};
-
-struct System {
-    int64_t system;
-};
-
-struct Then {
-    int64_t then;
-};
-
-struct Throws {
-    int64_t throws;
-};
-
-struct TimeOnly {
-    int64_t time_only;
-};
-
-struct TimeOnlyConverter {
-    int64_t time_only_converter;
-};
-
-struct ToJson {
-    int64_t to_json;
-};
-
-struct ToString {
-    int64_t to_string;
-};
-
-struct TopLevelClass {
-    int64_t top_level;
-};
-
-struct Transient {
-    int64_t transient;
-};
-
-struct Type {
-    int64_t type;
-};
-
-struct Typealias {
-    int64_t typealias;
-};
-
-struct Uint {
-    int64_t uint;
-};
-
-struct Ulong {
-    int64_t ulong;
-};
-
-struct Unchecked {
-    int64_t unchecked;
-};
-
-struct Undefined {
-    int64_t undefined;
-};
-
 struct Obj4 {
     int64_t dummy;
+    struct NumberClass * number;
+    struct Nullptr * obj4_nullptr;
+    struct Operator * obj4_operator;
+    struct Or * obj4_or;
+    struct OrEq * obj4_or_eq;
+    struct Override * obj4_override;
+    struct Private * obj4_private;
+    struct Protected * obj4_protected;
+    struct ProtocolClass * obj4_protocol;
     struct Public * obj4_public;
     struct Register * obj4_register;
     struct ReinterpretCast * obj4_reinterpret_cast;
@@ -1468,22 +1294,24 @@ struct Obj4 {
     struct Sizeof * obj4_sizeof;
     struct Static * obj4_static;
     struct StaticAssert * obj4_static_assert;
-    struct StaticCast * obj4_static_cast;
-    struct Struct * obj4_struct;
-    struct Switch * obj4_switch;
-    struct Synchronized * obj4_synchronized;
-    struct Template * obj4_template;
-    struct This * obj4_this;
-    struct ThreadLocal * obj4_thread_local;
-    struct Throw * obj4_throw;
-    struct TrueClass * obj4_true;
-    struct Try * obj4_try;
-    struct TypeClass * obj4_type;
-    struct Typedef * obj4_typedef;
-    struct Typeid * obj4_typeid;
-    struct Typename * obj4_typename;
-    struct Typeof * obj4_typeof;
-    struct Obj4True * purple_true;
+    struct ObjectClass * object;
+    struct ObjectMapper * object_mapper;
+    struct Of * of;
+    struct Oneway * oneway;
+    struct Open * open;
+    struct Optional * optional;
+    struct Out * out;
+    struct Package * package;
+    struct Params * params;
+    struct Pass * pass;
+    struct Port * port;
+    struct Postfix * postfix;
+    struct Precedence * precedence;
+    struct Prefix * prefix;
+    struct Print * print;
+    struct PrintMembers * print_members;
+    struct Printf * printf;
+    struct Protocol * protocol;
     struct Quicktype * quicktype;
     struct Raise * raise;
     struct Range * range;
@@ -1504,29 +1332,71 @@ struct Obj4 {
     struct Select * select;
     struct Self * self;
     struct Serialize * serialize;
+    struct SerializerProvider * serializer_provider;
     struct Set * set;
+    struct SimpleModule * simple_module;
     struct Stackalloc * stackalloc;
     struct Standards * standards;
-    struct Strictfp * strictfp;
-    struct StringClass * string;
-    struct Subscript * subscript;
-    struct Super * super;
-    struct Symbol * symbol;
-    struct System * system;
-    struct Then * then;
-    struct Throws * throws;
-    struct TimeOnly * time_only;
-    struct TimeOnlyConverter * time_only_converter;
-    struct ToJson * to_json;
-    struct ToString * to_string;
-    struct TopLevelClass * top_level;
-    struct Transient * transient;
-    struct Type * type;
-    struct Typealias * typealias;
-    struct Uint * uint;
-    struct Ulong * ulong;
-    struct Unchecked * unchecked;
-    struct Undefined * undefined;
+};
+
+struct StaticCast {
+    int64_t static_cast_static_cast;
+};
+
+struct Struct {
+    int64_t struct_struct;
+};
+
+struct Switch {
+    int64_t switch_switch;
+};
+
+struct Synchronized {
+    int64_t synchronized_synchronized;
+};
+
+struct Template {
+    int64_t template_template;
+};
+
+struct This {
+    int64_t this_this;
+};
+
+struct ThreadLocal {
+    int64_t thread_local_thread_local;
+};
+
+struct Throw {
+    int64_t throw_throw;
+};
+
+struct TrueClass {
+    int64_t true_true;
+};
+
+struct Try {
+    int64_t try_try;
+};
+
+struct TypeClass {
+    int64_t type;
+};
+
+struct Typedef {
+    int64_t typedef_typedef;
+};
+
+struct Typeid {
+    int64_t typeid_typeid;
+};
+
+struct Typename {
+    int64_t typename_typename;
+};
+
+struct Typeof {
+    int64_t typeof_typeof;
 };
 
 struct Union {
@@ -1569,92 +1439,222 @@ struct XorEq {
     int64_t xor_eq_xor_eq;
 };
 
-struct Unowned {
-    int64_t unowned;
+struct Obj5True {
+    int64_t true_true;
 };
 
-struct Unsafe {
-    int64_t unsafe;
+struct StdDeserializer {
+    int64_t std_deserializer;
 };
 
-struct Ushort {
-    int64_t ushort;
+struct StdSerializer {
+    int64_t std_serializer;
 };
 
-struct Utf8JsonReader {
-    int64_t utf8_json_reader;
+struct Strictfp {
+    int64_t strictfp;
 };
 
-struct Utf8JsonWriter {
-    int64_t utf8_json_writer;
+struct StringClass {
+    int64_t string;
 };
 
-struct Uuid {
-    int64_t uuid;
+struct Subscript {
+    int64_t subscript;
 };
 
-struct Var {
-    int64_t var;
+struct Super {
+    int64_t super;
 };
 
-struct Weak {
-    int64_t weak;
+struct Symbol {
+    int64_t symbol;
 };
 
-struct Where {
-    int64_t where;
+struct System {
+    int64_t system;
 };
 
-struct WillSet {
-    int64_t will_set;
+struct Then {
+    int64_t then;
 };
 
-struct With {
-    int64_t with;
+struct Throws {
+    int64_t throws;
 };
 
-struct Yes {
-    int64_t yes;
+struct TimeOnly {
+    int64_t time_only;
 };
 
-struct Yield {
-    int64_t yield;
+struct TimeOnlyConverter {
+    int64_t time_only_converter;
 };
 
-struct Obj5 {
-    int64_t dummy;
-    struct Union * obj5_union;
-    struct Unsigned * obj5_unsigned;
-    struct Using * obj5_using;
-    struct Virtual * obj5_virtual;
-    struct Void * obj5_void;
-    struct Volatile * obj5_volatile;
-    struct WcharT * obj5_wchar_t;
-    struct While * obj5_while;
-    struct Xor * obj5_xor;
-    struct XorEq * obj5_xor_eq;
-    struct Unowned * unowned;
-    struct Unsafe * unsafe;
-    struct Ushort * ushort;
-    struct Utf8JsonReader * utf8_json_reader;
-    struct Utf8JsonWriter * utf8_json_writer;
-    struct Uuid * uuid;
-    struct Var * var;
-    struct Weak * weak;
-    struct Where * where;
-    struct WillSet * will_set;
-    struct With * with;
-    struct Yes * yes;
-    struct Yield * yield;
+struct ToJson {
+    int64_t to_json;
 };
 
-struct TopLevel {
-    int64_t dummy;
-    struct Obj1 * obj1;
-    struct Obj2 * obj2;
-    struct Obj3 * obj3;
-    struct Obj4 * obj4;
-    struct Obj5 * obj5;
+struct ToString {
+    int64_t to_string;
+};
+
+struct TopLevelClass {
+    int64_t top_level;
+};
+
+struct Transient {
+    int64_t transient;
+};
+
+struct Type {
+    int64_t type;
+};
+
+struct Typealias {
+    int64_t typealias;
+};
+
+struct Uint {
+    int64_t uint;
+};
+
+struct Ulong {
+    int64_t ulong;
+};
+
+struct Unchecked {
+    int64_t unchecked;
+};
+
+struct Undefined {
+    int64_t undefined;
+};
+
+struct Unowned {
+    int64_t unowned;
+};
+
+struct Unsafe {
+    int64_t unsafe;
+};
+
+struct Ushort {
+    int64_t ushort;
+};
+
+struct Utf8JsonReader {
+    int64_t utf8_json_reader;
+};
+
+struct Utf8JsonWriter {
+    int64_t utf8_json_writer;
+};
+
+struct Uuid {
+    int64_t uuid;
+};
+
+struct Var {
+    int64_t var;
+};
+
+struct Weak {
+    int64_t weak;
+};
+
+struct Where {
+    int64_t where;
+};
+
+struct WillSet {
+    int64_t will_set;
+};
+
+struct With {
+    int64_t with;
+};
+
+struct Yes {
+    int64_t yes;
+};
+
+struct Yield {
+    int64_t yield;
+};
+
+struct Obj5 {
+    int64_t dummy;
+    struct StaticCast * obj5_static_cast;
+    struct Struct * obj5_struct;
+    struct Switch * obj5_switch;
+    struct Synchronized * obj5_synchronized;
+    struct Template * obj5_template;
+    struct This * obj5_this;
+    struct ThreadLocal * obj5_thread_local;
+    struct Throw * obj5_throw;
+    struct TrueClass * obj5_true;
+    struct Try * obj5_try;
+    struct TypeClass * obj5_type;
+    struct Typedef * obj5_typedef;
+    struct Typeid * obj5_typeid;
+    struct Typename * obj5_typename;
+    struct Typeof * obj5_typeof;
+    struct Union * obj5_union;
+    struct Unsigned * obj5_unsigned;
+    struct Using * obj5_using;
+    struct Virtual * obj5_virtual;
+    struct Void * obj5_void;
+    struct Volatile * obj5_volatile;
+    struct WcharT * obj5_wchar_t;
+    struct While * obj5_while;
+    struct Xor * obj5_xor;
+    struct XorEq * obj5_xor_eq;
+    struct Obj5True * purple_true;
+    struct StdDeserializer * std_deserializer;
+    struct StdSerializer * std_serializer;
+    struct Strictfp * strictfp;
+    struct StringClass * string;
+    struct Subscript * subscript;
+    struct Super * super;
+    struct Symbol * symbol;
+    struct System * system;
+    struct Then * then;
+    struct Throws * throws;
+    struct TimeOnly * time_only;
+    struct TimeOnlyConverter * time_only_converter;
+    struct ToJson * to_json;
+    struct ToString * to_string;
+    struct TopLevelClass * top_level;
+    struct Transient * transient;
+    struct Type * type;
+    struct Typealias * typealias;
+    struct Uint * uint;
+    struct Ulong * ulong;
+    struct Unchecked * unchecked;
+    struct Undefined * undefined;
+    struct Unowned * unowned;
+    struct Unsafe * unsafe;
+    struct Ushort * ushort;
+    struct Utf8JsonReader * utf8_json_reader;
+    struct Utf8JsonWriter * utf8_json_writer;
+    struct Uuid * uuid;
+    struct Var * var;
+    struct Weak * weak;
+    struct Where * where;
+    struct WillSet * will_set;
+    struct With * with;
+    struct Yes * yes;
+    struct Yield * yield;
+};
+
+struct TopLevel {
+    int64_t dummy;
+    struct Obj1 * obj1;
+    struct Obj2 * obj2;
+    struct Obj3 * obj3;
+    struct Obj4 * obj4;
+    struct Obj5 * obj5;
 };
 
 enum EnumValue cJSON_GetEnumValueValue(const cJSON * j);
@@ -1840,42 +1840,6 @@ cJSON * cJSON_CreateDateParseHandling(const struct DateParseHandling * x);
 char * cJSON_PrintDateParseHandling(const struct DateParseHandling * x);
 void cJSON_DeleteDateParseHandling(struct DateParseHandling * x);
 
-struct DateTime * cJSON_ParseDateTime(const char * s);
-struct DateTime * cJSON_GetDateTimeValue(const cJSON * j);
-cJSON * cJSON_CreateDateTime(const struct DateTime * x);
-char * cJSON_PrintDateTime(const struct DateTime * x);
-void cJSON_DeleteDateTime(struct DateTime * x);
-
-struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s);
-struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j);
-cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x);
-char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x);
-void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x);
-
-struct Debugger * cJSON_ParseDebugger(const char * s);
-struct Debugger * cJSON_GetDebuggerValue(const cJSON * j);
-cJSON * cJSON_CreateDebugger(const struct Debugger * x);
-char * cJSON_PrintDebugger(const struct Debugger * x);
-void cJSON_DeleteDebugger(struct Debugger * x);
-
-struct Decimal * cJSON_ParseDecimal(const char * s);
-struct Decimal * cJSON_GetDecimalValue(const cJSON * j);
-cJSON * cJSON_CreateDecimal(const struct Decimal * x);
-char * cJSON_PrintDecimal(const struct Decimal * x);
-void cJSON_DeleteDecimal(struct Decimal * x);
-
-struct Declare * cJSON_ParseDeclare(const char * s);
-struct Declare * cJSON_GetDeclareValue(const cJSON * j);
-cJSON * cJSON_CreateDeclare(const struct Declare * x);
-char * cJSON_PrintDeclare(const struct Declare * x);
-void cJSON_DeleteDeclare(struct Declare * x);
-
-struct DecodeString * cJSON_ParseDecodeString(const char * s);
-struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j);
-cJSON * cJSON_CreateDecodeString(const struct DecodeString * x);
-char * cJSON_PrintDecodeString(const struct DecodeString * x);
-void cJSON_DeleteDecodeString(struct DecodeString * x);
-
 struct Empty * cJSON_ParseEmpty(const char * s);
 struct Empty * cJSON_GetEmptyValue(const cJSON * j);
 cJSON * cJSON_CreateEmpty(const struct Empty * x);
@@ -2068,12 +2032,6 @@ cJSON * cJSON_CreateContinue(const struct Continue * x);
 char * cJSON_PrintContinue(const struct Continue * x);
 void cJSON_DeleteContinue(struct Continue * x);
 
-struct Decltype * cJSON_ParseDecltype(const char * s);
-struct Decltype * cJSON_GetDecltypeValue(const cJSON * j);
-cJSON * cJSON_CreateDecltype(const struct Decltype * x);
-char * cJSON_PrintDecltype(const struct Decltype * x);
-void cJSON_DeleteDecltype(struct Decltype * x);
-
 struct Obj1Bool * cJSON_ParseObj1Bool(const char * s);
 struct Obj1Bool * cJSON_GetObj1BoolValue(const cJSON * j);
 cJSON * cJSON_CreateObj1Bool(const struct Obj1Bool * x);
@@ -2092,6 +2050,42 @@ cJSON * cJSON_CreateObj1(const struct Obj1 * x);
 char * cJSON_PrintObj1(const struct Obj1 * x);
 void cJSON_DeleteObj1(struct Obj1 * x);
 
+struct DateTime * cJSON_ParseDateTime(const char * s);
+struct DateTime * cJSON_GetDateTimeValue(const cJSON * j);
+cJSON * cJSON_CreateDateTime(const struct DateTime * x);
+char * cJSON_PrintDateTime(const struct DateTime * x);
+void cJSON_DeleteDateTime(struct DateTime * x);
+
+struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s);
+struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j);
+cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x);
+char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x);
+void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x);
+
+struct Debugger * cJSON_ParseDebugger(const char * s);
+struct Debugger * cJSON_GetDebuggerValue(const cJSON * j);
+cJSON * cJSON_CreateDebugger(const struct Debugger * x);
+char * cJSON_PrintDebugger(const struct Debugger * x);
+void cJSON_DeleteDebugger(struct Debugger * x);
+
+struct Decimal * cJSON_ParseDecimal(const char * s);
+struct Decimal * cJSON_GetDecimalValue(const cJSON * j);
+cJSON * cJSON_CreateDecimal(const struct Decimal * x);
+char * cJSON_PrintDecimal(const struct Decimal * x);
+void cJSON_DeleteDecimal(struct Decimal * x);
+
+struct Declare * cJSON_ParseDeclare(const char * s);
+struct Declare * cJSON_GetDeclareValue(const cJSON * j);
+cJSON * cJSON_CreateDeclare(const struct Declare * x);
+char * cJSON_PrintDeclare(const struct Declare * x);
+void cJSON_DeleteDeclare(struct Declare * x);
+
+struct DecodeString * cJSON_ParseDecodeString(const char * s);
+struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j);
+cJSON * cJSON_CreateDecodeString(const struct DecodeString * x);
+char * cJSON_PrintDecodeString(const struct DecodeString * x);
+void cJSON_DeleteDecodeString(struct DecodeString * x);
+
 struct Def * cJSON_ParseDef(const char * s);
 struct Def * cJSON_GetDefValue(const cJSON * j);
 cJSON * cJSON_CreateDef(const struct Def * x);
@@ -2326,65 +2320,23 @@ cJSON * cJSON_CreateImplicit(const struct Implicit * x);
 char * cJSON_PrintImplicit(const struct Implicit * x);
 void cJSON_DeleteImplicit(struct Implicit * x);
 
-struct In * cJSON_ParseIn(const char * s);
-struct In * cJSON_GetInValue(const cJSON * j);
-cJSON * cJSON_CreateIn(const struct In * x);
-char * cJSON_PrintIn(const struct In * x);
-void cJSON_DeleteIn(struct In * x);
-
-struct Indirect * cJSON_ParseIndirect(const char * s);
-struct Indirect * cJSON_GetIndirectValue(const cJSON * j);
-cJSON * cJSON_CreateIndirect(const struct Indirect * x);
-char * cJSON_PrintIndirect(const struct Indirect * x);
-void cJSON_DeleteIndirect(struct Indirect * x);
+struct Decltype * cJSON_ParseDecltype(const char * s);
+struct Decltype * cJSON_GetDecltypeValue(const cJSON * j);
+cJSON * cJSON_CreateDecltype(const struct Decltype * x);
+char * cJSON_PrintDecltype(const struct Decltype * x);
+void cJSON_DeleteDecltype(struct Decltype * x);
 
-struct Infix * cJSON_ParseInfix(const char * s);
-struct Infix * cJSON_GetInfixValue(const cJSON * j);
-cJSON * cJSON_CreateInfix(const struct Infix * x);
-char * cJSON_PrintInfix(const struct Infix * x);
-void cJSON_DeleteInfix(struct Infix * x);
+struct Default * cJSON_ParseDefault(const char * s);
+struct Default * cJSON_GetDefaultValue(const cJSON * j);
+cJSON * cJSON_CreateDefault(const struct Default * x);
+char * cJSON_PrintDefault(const struct Default * x);
+void cJSON_DeleteDefault(struct Default * x);
 
-struct Init * cJSON_ParseInit(const char * s);
-struct Init * cJSON_GetInitValue(const cJSON * j);
-cJSON * cJSON_CreateInit(const struct Init * x);
-char * cJSON_PrintInit(const struct Init * x);
-void cJSON_DeleteInit(struct Init * x);
-
-struct Inout * cJSON_ParseInout(const char * s);
-struct Inout * cJSON_GetInoutValue(const cJSON * j);
-cJSON * cJSON_CreateInout(const struct Inout * x);
-char * cJSON_PrintInout(const struct Inout * x);
-void cJSON_DeleteInout(struct Inout * x);
-
-struct Instanceof * cJSON_ParseInstanceof(const char * s);
-struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j);
-cJSON * cJSON_CreateInstanceof(const struct Instanceof * x);
-char * cJSON_PrintInstanceof(const struct Instanceof * x);
-void cJSON_DeleteInstanceof(struct Instanceof * x);
-
-struct Interface * cJSON_ParseInterface(const char * s);
-struct Interface * cJSON_GetInterfaceValue(const cJSON * j);
-cJSON * cJSON_CreateInterface(const struct Interface * x);
-char * cJSON_PrintInterface(const struct Interface * x);
-void cJSON_DeleteInterface(struct Interface * x);
-
-struct Internal * cJSON_ParseInternal(const char * s);
-struct Internal * cJSON_GetInternalValue(const cJSON * j);
-cJSON * cJSON_CreateInternal(const struct Internal * x);
-char * cJSON_PrintInternal(const struct Internal * x);
-void cJSON_DeleteInternal(struct Internal * x);
-
-struct Default * cJSON_ParseDefault(const char * s);
-struct Default * cJSON_GetDefaultValue(const cJSON * j);
-cJSON * cJSON_CreateDefault(const struct Default * x);
-char * cJSON_PrintDefault(const struct Default * x);
-void cJSON_DeleteDefault(struct Default * x);
-
-struct Delete * cJSON_ParseDelete(const char * s);
-struct Delete * cJSON_GetDeleteValue(const cJSON * j);
-cJSON * cJSON_CreateDelete(const struct Delete * x);
-char * cJSON_PrintDelete(const struct Delete * x);
-void cJSON_DeleteDelete(struct Delete * x);
+struct Delete * cJSON_ParseDelete(const char * s);
+struct Delete * cJSON_GetDeleteValue(const cJSON * j);
+cJSON * cJSON_CreateDelete(const struct Delete * x);
+char * cJSON_PrintDelete(const struct Delete * x);
+void cJSON_DeleteDelete(struct Delete * x);
 
 struct Do * cJSON_ParseDo(const char * s);
 struct Do * cJSON_GetDoValue(const cJSON * j);
@@ -2476,24 +2428,6 @@ cJSON * cJSON_CreateIf(const struct If * x);
 char * cJSON_PrintIf(const struct If * x);
 void cJSON_DeleteIf(struct If * x);
 
-struct Import * cJSON_ParseImport(const char * s);
-struct Import * cJSON_GetImportValue(const cJSON * j);
-cJSON * cJSON_CreateImport(const struct Import * x);
-char * cJSON_PrintImport(const struct Import * x);
-void cJSON_DeleteImport(struct Import * x);
-
-struct Inline * cJSON_ParseInline(const char * s);
-struct Inline * cJSON_GetInlineValue(const cJSON * j);
-cJSON * cJSON_CreateInline(const struct Inline * x);
-char * cJSON_PrintInline(const struct Inline * x);
-void cJSON_DeleteInline(struct Inline * x);
-
-struct Int * cJSON_ParseInt(const char * s);
-struct Int * cJSON_GetIntValue(const cJSON * j);
-cJSON * cJSON_CreateInt(const struct Int * x);
-char * cJSON_PrintInt(const struct Int * x);
-void cJSON_DeleteInt(struct Int * x);
-
 struct Obj2False * cJSON_ParseObj2False(const char * s);
 struct Obj2False * cJSON_GetObj2FalseValue(const cJSON * j);
 cJSON * cJSON_CreateObj2False(const struct Obj2False * x);
@@ -2506,6 +2440,54 @@ cJSON * cJSON_CreateObj2(const struct Obj2 * x);
 char * cJSON_PrintObj2(const struct Obj2 * x);
 void cJSON_DeleteObj2(struct Obj2 * x);
 
+struct In * cJSON_ParseIn(const char * s);
+struct In * cJSON_GetInValue(const cJSON * j);
+cJSON * cJSON_CreateIn(const struct In * x);
+char * cJSON_PrintIn(const struct In * x);
+void cJSON_DeleteIn(struct In * x);
+
+struct Indirect * cJSON_ParseIndirect(const char * s);
+struct Indirect * cJSON_GetIndirectValue(const cJSON * j);
+cJSON * cJSON_CreateIndirect(const struct Indirect * x);
+char * cJSON_PrintIndirect(const struct Indirect * x);
+void cJSON_DeleteIndirect(struct Indirect * x);
+
+struct Infix * cJSON_ParseInfix(const char * s);
+struct Infix * cJSON_GetInfixValue(const cJSON * j);
+cJSON * cJSON_CreateInfix(const struct Infix * x);
+char * cJSON_PrintInfix(const struct Infix * x);
+void cJSON_DeleteInfix(struct Infix * x);
+
+struct Init * cJSON_ParseInit(const char * s);
+struct Init * cJSON_GetInitValue(const cJSON * j);
+cJSON * cJSON_CreateInit(const struct Init * x);
+char * cJSON_PrintInit(const struct Init * x);
+void cJSON_DeleteInit(struct Init * x);
+
+struct Inout * cJSON_ParseInout(const char * s);
+struct Inout * cJSON_GetInoutValue(const cJSON * j);
+cJSON * cJSON_CreateInout(const struct Inout * x);
+char * cJSON_PrintInout(const struct Inout * x);
+void cJSON_DeleteInout(struct Inout * x);
+
+struct Instanceof * cJSON_ParseInstanceof(const char * s);
+struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j);
+cJSON * cJSON_CreateInstanceof(const struct Instanceof * x);
+char * cJSON_PrintInstanceof(const struct Instanceof * x);
+void cJSON_DeleteInstanceof(struct Instanceof * x);
+
+struct Interface * cJSON_ParseInterface(const char * s);
+struct Interface * cJSON_GetInterfaceValue(const cJSON * j);
+cJSON * cJSON_CreateInterface(const struct Interface * x);
+char * cJSON_PrintInterface(const struct Interface * x);
+void cJSON_DeleteInterface(struct Interface * x);
+
+struct Internal * cJSON_ParseInternal(const char * s);
+struct Internal * cJSON_GetInternalValue(const cJSON * j);
+cJSON * cJSON_CreateInternal(const struct Internal * x);
+char * cJSON_PrintInternal(const struct Internal * x);
+void cJSON_DeleteInternal(struct Internal * x);
+
 struct Is * cJSON_ParseIs(const char * s);
 struct Is * cJSON_GetIsValue(const cJSON * j);
 cJSON * cJSON_CreateIs(const struct Is * x);
@@ -2764,11 +2746,23 @@ cJSON * cJSON_CreateNullClass(const struct NullClass * x);
 char * cJSON_PrintNullClass(const struct NullClass * x);
 void cJSON_DeleteNullClass(struct NullClass * x);
 
-struct NumberClass * cJSON_ParseNumberClass(const char * s);
-struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j);
-cJSON * cJSON_CreateNumberClass(const struct NumberClass * x);
-char * cJSON_PrintNumberClass(const struct NumberClass * x);
-void cJSON_DeleteNumberClass(struct NumberClass * x);
+struct Import * cJSON_ParseImport(const char * s);
+struct Import * cJSON_GetImportValue(const cJSON * j);
+cJSON * cJSON_CreateImport(const struct Import * x);
+char * cJSON_PrintImport(const struct Import * x);
+void cJSON_DeleteImport(struct Import * x);
+
+struct Inline * cJSON_ParseInline(const char * s);
+struct Inline * cJSON_GetInlineValue(const cJSON * j);
+cJSON * cJSON_CreateInline(const struct Inline * x);
+char * cJSON_PrintInline(const struct Inline * x);
+void cJSON_DeleteInline(struct Inline * x);
+
+struct Int * cJSON_ParseInt(const char * s);
+struct Int * cJSON_GetIntValue(const cJSON * j);
+cJSON * cJSON_CreateInt(const struct Int * x);
+char * cJSON_PrintInt(const struct Int * x);
+void cJSON_DeleteInt(struct Int * x);
 
 struct Long * cJSON_ParseLong(const char * s);
 struct Long * cJSON_GetLongValue(const cJSON * j);
@@ -2830,6 +2824,18 @@ cJSON * cJSON_CreateObj3Null(const struct Obj3Null * x);
 char * cJSON_PrintObj3Null(const struct Obj3Null * x);
 void cJSON_DeleteObj3Null(struct Obj3Null * x);
 
+struct Obj3 * cJSON_ParseObj3(const char * s);
+struct Obj3 * cJSON_GetObj3Value(const cJSON * j);
+cJSON * cJSON_CreateObj3(const struct Obj3 * x);
+char * cJSON_PrintObj3(const struct Obj3 * x);
+void cJSON_DeleteObj3(struct Obj3 * x);
+
+struct NumberClass * cJSON_ParseNumberClass(const char * s);
+struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j);
+cJSON * cJSON_CreateNumberClass(const struct NumberClass * x);
+char * cJSON_PrintNumberClass(const struct NumberClass * x);
+void cJSON_DeleteNumberClass(struct NumberClass * x);
+
 struct Nullptr * cJSON_ParseNullptr(const char * s);
 struct Nullptr * cJSON_GetNullptrValue(const cJSON * j);
 cJSON * cJSON_CreateNullptr(const struct Nullptr * x);
@@ -2878,6 +2884,78 @@ cJSON * cJSON_CreateProtocolClass(const struct ProtocolClass * x);
 char * cJSON_PrintProtocolClass(const struct ProtocolClass * x);
 void cJSON_DeleteProtocolClass(struct ProtocolClass * x);
 
+struct Public * cJSON_ParsePublic(const char * s);
+struct Public * cJSON_GetPublicValue(const cJSON * j);
+cJSON * cJSON_CreatePublic(const struct Public * x);
+char * cJSON_PrintPublic(const struct Public * x);
+void cJSON_DeletePublic(struct Public * x);
+
+struct Register * cJSON_ParseRegister(const char * s);
+struct Register * cJSON_GetRegisterValue(const cJSON * j);
+cJSON * cJSON_CreateRegister(const struct Register * x);
+char * cJSON_PrintRegister(const struct Register * x);
+void cJSON_DeleteRegister(struct Register * x);
+
+struct ReinterpretCast * cJSON_ParseReinterpretCast(const char * s);
+struct ReinterpretCast * cJSON_GetReinterpretCastValue(const cJSON * j);
+cJSON * cJSON_CreateReinterpretCast(const struct ReinterpretCast * x);
+char * cJSON_PrintReinterpretCast(const struct ReinterpretCast * x);
+void cJSON_DeleteReinterpretCast(struct ReinterpretCast * x);
+
+struct Requires * cJSON_ParseRequires(const char * s);
+struct Requires * cJSON_GetRequiresValue(const cJSON * j);
+cJSON * cJSON_CreateRequires(const struct Requires * x);
+char * cJSON_PrintRequires(const struct Requires * x);
+void cJSON_DeleteRequires(struct Requires * x);
+
+struct Restrict * cJSON_ParseRestrict(const char * s);
+struct Restrict * cJSON_GetRestrictValue(const cJSON * j);
+cJSON * cJSON_CreateRestrict(const struct Restrict * x);
+char * cJSON_PrintRestrict(const struct Restrict * x);
+void cJSON_DeleteRestrict(struct Restrict * x);
+
+struct Return * cJSON_ParseReturn(const char * s);
+struct Return * cJSON_GetReturnValue(const cJSON * j);
+cJSON * cJSON_CreateReturn(const struct Return * x);
+char * cJSON_PrintReturn(const struct Return * x);
+void cJSON_DeleteReturn(struct Return * x);
+
+struct SelfClass * cJSON_ParseSelfClass(const char * s);
+struct SelfClass * cJSON_GetSelfClassValue(const cJSON * j);
+cJSON * cJSON_CreateSelfClass(const struct SelfClass * x);
+char * cJSON_PrintSelfClass(const struct SelfClass * x);
+void cJSON_DeleteSelfClass(struct SelfClass * x);
+
+struct Short * cJSON_ParseShort(const char * s);
+struct Short * cJSON_GetShortValue(const cJSON * j);
+cJSON * cJSON_CreateShort(const struct Short * x);
+char * cJSON_PrintShort(const struct Short * x);
+void cJSON_DeleteShort(struct Short * x);
+
+struct Signed * cJSON_ParseSigned(const char * s);
+struct Signed * cJSON_GetSignedValue(const cJSON * j);
+cJSON * cJSON_CreateSigned(const struct Signed * x);
+char * cJSON_PrintSigned(const struct Signed * x);
+void cJSON_DeleteSigned(struct Signed * x);
+
+struct Sizeof * cJSON_ParseSizeof(const char * s);
+struct Sizeof * cJSON_GetSizeofValue(const cJSON * j);
+cJSON * cJSON_CreateSizeof(const struct Sizeof * x);
+char * cJSON_PrintSizeof(const struct Sizeof * x);
+void cJSON_DeleteSizeof(struct Sizeof * x);
+
+struct Static * cJSON_ParseStatic(const char * s);
+struct Static * cJSON_GetStaticValue(const cJSON * j);
+cJSON * cJSON_CreateStatic(const struct Static * x);
+char * cJSON_PrintStatic(const struct Static * x);
+void cJSON_DeleteStatic(struct Static * x);
+
+struct StaticAssert * cJSON_ParseStaticAssert(const char * s);
+struct StaticAssert * cJSON_GetStaticAssertValue(const cJSON * j);
+cJSON * cJSON_CreateStaticAssert(const struct StaticAssert * x);
+char * cJSON_PrintStaticAssert(const struct StaticAssert * x);
+void cJSON_DeleteStaticAssert(struct StaticAssert * x);
+
 struct ObjectClass * cJSON_ParseObjectClass(const char * s);
 struct ObjectClass * cJSON_GetObjectClassValue(const cJSON * j);
 cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x);
@@ -2975,214 +3053,16 @@ char * cJSON_PrintPrintMembers(const struct PrintMembers * x);
 void cJSON_DeletePrintMembers(struct PrintMembers * x);
 
 struct Printf * cJSON_ParsePrintf(const char * s);
-struct Printf * cJSON_GetPrintfValue(const cJSON * j);
-cJSON * cJSON_CreatePrintf(const struct Printf * x);
-char * cJSON_PrintPrintf(const struct Printf * x);
-void cJSON_DeletePrintf(struct Printf * x);
-
-struct Protocol * cJSON_ParseProtocol(const char * s);
-struct Protocol * cJSON_GetProtocolValue(const cJSON * j);
-cJSON * cJSON_CreateProtocol(const struct Protocol * x);
-char * cJSON_PrintProtocol(const struct Protocol * x);
-void cJSON_DeleteProtocol(struct Protocol * x);
-
-struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s);
-struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j);
-cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x);
-char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x);
-void cJSON_DeleteSerializerProvider(struct SerializerProvider * x);
-
-struct SimpleModule * cJSON_ParseSimpleModule(const char * s);
-struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j);
-cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x);
-char * cJSON_PrintSimpleModule(const struct SimpleModule * x);
-void cJSON_DeleteSimpleModule(struct SimpleModule * x);
-
-struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s);
-struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j);
-cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x);
-char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x);
-void cJSON_DeleteStdDeserializer(struct StdDeserializer * x);
-
-struct StdSerializer * cJSON_ParseStdSerializer(const char * s);
-struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j);
-cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x);
-char * cJSON_PrintStdSerializer(const struct StdSerializer * x);
-void cJSON_DeleteStdSerializer(struct StdSerializer * x);
-
-struct Obj3 * cJSON_ParseObj3(const char * s);
-struct Obj3 * cJSON_GetObj3Value(const cJSON * j);
-cJSON * cJSON_CreateObj3(const struct Obj3 * x);
-char * cJSON_PrintObj3(const struct Obj3 * x);
-void cJSON_DeleteObj3(struct Obj3 * x);
-
-struct Public * cJSON_ParsePublic(const char * s);
-struct Public * cJSON_GetPublicValue(const cJSON * j);
-cJSON * cJSON_CreatePublic(const struct Public * x);
-char * cJSON_PrintPublic(const struct Public * x);
-void cJSON_DeletePublic(struct Public * x);
-
-struct Register * cJSON_ParseRegister(const char * s);
-struct Register * cJSON_GetRegisterValue(const cJSON * j);
-cJSON * cJSON_CreateRegister(const struct Register * x);
-char * cJSON_PrintRegister(const struct Register * x);
-void cJSON_DeleteRegister(struct Register * x);
-
-struct ReinterpretCast * cJSON_ParseReinterpretCast(const char * s);
-struct ReinterpretCast * cJSON_GetReinterpretCastValue(const cJSON * j);
-cJSON * cJSON_CreateReinterpretCast(const struct ReinterpretCast * x);
-char * cJSON_PrintReinterpretCast(const struct ReinterpretCast * x);
-void cJSON_DeleteReinterpretCast(struct ReinterpretCast * x);
-
-struct Requires * cJSON_ParseRequires(const char * s);
-struct Requires * cJSON_GetRequiresValue(const cJSON * j);
-cJSON * cJSON_CreateRequires(const struct Requires * x);
-char * cJSON_PrintRequires(const struct Requires * x);
-void cJSON_DeleteRequires(struct Requires * x);
-
-struct Restrict * cJSON_ParseRestrict(const char * s);
-struct Restrict * cJSON_GetRestrictValue(const cJSON * j);
-cJSON * cJSON_CreateRestrict(const struct Restrict * x);
-char * cJSON_PrintRestrict(const struct Restrict * x);
-void cJSON_DeleteRestrict(struct Restrict * x);
-
-struct Return * cJSON_ParseReturn(const char * s);
-struct Return * cJSON_GetReturnValue(const cJSON * j);
-cJSON * cJSON_CreateReturn(const struct Return * x);
-char * cJSON_PrintReturn(const struct Return * x);
-void cJSON_DeleteReturn(struct Return * x);
-
-struct SelfClass * cJSON_ParseSelfClass(const char * s);
-struct SelfClass * cJSON_GetSelfClassValue(const cJSON * j);
-cJSON * cJSON_CreateSelfClass(const struct SelfClass * x);
-char * cJSON_PrintSelfClass(const struct SelfClass * x);
-void cJSON_DeleteSelfClass(struct SelfClass * x);
-
-struct Short * cJSON_ParseShort(const char * s);
-struct Short * cJSON_GetShortValue(const cJSON * j);
-cJSON * cJSON_CreateShort(const struct Short * x);
-char * cJSON_PrintShort(const struct Short * x);
-void cJSON_DeleteShort(struct Short * x);
-
-struct Signed * cJSON_ParseSigned(const char * s);
-struct Signed * cJSON_GetSignedValue(const cJSON * j);
-cJSON * cJSON_CreateSigned(const struct Signed * x);
-char * cJSON_PrintSigned(const struct Signed * x);
-void cJSON_DeleteSigned(struct Signed * x);
-
-struct Sizeof * cJSON_ParseSizeof(const char * s);
-struct Sizeof * cJSON_GetSizeofValue(const cJSON * j);
-cJSON * cJSON_CreateSizeof(const struct Sizeof * x);
-char * cJSON_PrintSizeof(const struct Sizeof * x);
-void cJSON_DeleteSizeof(struct Sizeof * x);
-
-struct Static * cJSON_ParseStatic(const char * s);
-struct Static * cJSON_GetStaticValue(const cJSON * j);
-cJSON * cJSON_CreateStatic(const struct Static * x);
-char * cJSON_PrintStatic(const struct Static * x);
-void cJSON_DeleteStatic(struct Static * x);
-
-struct StaticAssert * cJSON_ParseStaticAssert(const char * s);
-struct StaticAssert * cJSON_GetStaticAssertValue(const cJSON * j);
-cJSON * cJSON_CreateStaticAssert(const struct StaticAssert * x);
-char * cJSON_PrintStaticAssert(const struct StaticAssert * x);
-void cJSON_DeleteStaticAssert(struct StaticAssert * x);
-
-struct StaticCast * cJSON_ParseStaticCast(const char * s);
-struct StaticCast * cJSON_GetStaticCastValue(const cJSON * j);
-cJSON * cJSON_CreateStaticCast(const struct StaticCast * x);
-char * cJSON_PrintStaticCast(const struct StaticCast * x);
-void cJSON_DeleteStaticCast(struct StaticCast * x);
-
-struct Struct * cJSON_ParseStruct(const char * s);
-struct Struct * cJSON_GetStructValue(const cJSON * j);
-cJSON * cJSON_CreateStruct(const struct Struct * x);
-char * cJSON_PrintStruct(const struct Struct * x);
-void cJSON_DeleteStruct(struct Struct * x);
-
-struct Switch * cJSON_ParseSwitch(const char * s);
-struct Switch * cJSON_GetSwitchValue(const cJSON * j);
-cJSON * cJSON_CreateSwitch(const struct Switch * x);
-char * cJSON_PrintSwitch(const struct Switch * x);
-void cJSON_DeleteSwitch(struct Switch * x);
-
-struct Synchronized * cJSON_ParseSynchronized(const char * s);
-struct Synchronized * cJSON_GetSynchronizedValue(const cJSON * j);
-cJSON * cJSON_CreateSynchronized(const struct Synchronized * x);
-char * cJSON_PrintSynchronized(const struct Synchronized * x);
-void cJSON_DeleteSynchronized(struct Synchronized * x);
-
-struct Template * cJSON_ParseTemplate(const char * s);
-struct Template * cJSON_GetTemplateValue(const cJSON * j);
-cJSON * cJSON_CreateTemplate(const struct Template * x);
-char * cJSON_PrintTemplate(const struct Template * x);
-void cJSON_DeleteTemplate(struct Template * x);
-
-struct This * cJSON_ParseThis(const char * s);
-struct This * cJSON_GetThisValue(const cJSON * j);
-cJSON * cJSON_CreateThis(const struct This * x);
-char * cJSON_PrintThis(const struct This * x);
-void cJSON_DeleteThis(struct This * x);
-
-struct ThreadLocal * cJSON_ParseThreadLocal(const char * s);
-struct ThreadLocal * cJSON_GetThreadLocalValue(const cJSON * j);
-cJSON * cJSON_CreateThreadLocal(const struct ThreadLocal * x);
-char * cJSON_PrintThreadLocal(const struct ThreadLocal * x);
-void cJSON_DeleteThreadLocal(struct ThreadLocal * x);
-
-struct Throw * cJSON_ParseThrow(const char * s);
-struct Throw * cJSON_GetThrowValue(const cJSON * j);
-cJSON * cJSON_CreateThrow(const struct Throw * x);
-char * cJSON_PrintThrow(const struct Throw * x);
-void cJSON_DeleteThrow(struct Throw * x);
-
-struct TrueClass * cJSON_ParseTrueClass(const char * s);
-struct TrueClass * cJSON_GetTrueClassValue(const cJSON * j);
-cJSON * cJSON_CreateTrueClass(const struct TrueClass * x);
-char * cJSON_PrintTrueClass(const struct TrueClass * x);
-void cJSON_DeleteTrueClass(struct TrueClass * x);
-
-struct Try * cJSON_ParseTry(const char * s);
-struct Try * cJSON_GetTryValue(const cJSON * j);
-cJSON * cJSON_CreateTry(const struct Try * x);
-char * cJSON_PrintTry(const struct Try * x);
-void cJSON_DeleteTry(struct Try * x);
-
-struct TypeClass * cJSON_ParseTypeClass(const char * s);
-struct TypeClass * cJSON_GetTypeClassValue(const cJSON * j);
-cJSON * cJSON_CreateTypeClass(const struct TypeClass * x);
-char * cJSON_PrintTypeClass(const struct TypeClass * x);
-void cJSON_DeleteTypeClass(struct TypeClass * x);
-
-struct Typedef * cJSON_ParseTypedef(const char * s);
-struct Typedef * cJSON_GetTypedefValue(const cJSON * j);
-cJSON * cJSON_CreateTypedef(const struct Typedef * x);
-char * cJSON_PrintTypedef(const struct Typedef * x);
-void cJSON_DeleteTypedef(struct Typedef * x);
-
-struct Typeid * cJSON_ParseTypeid(const char * s);
-struct Typeid * cJSON_GetTypeidValue(const cJSON * j);
-cJSON * cJSON_CreateTypeid(const struct Typeid * x);
-char * cJSON_PrintTypeid(const struct Typeid * x);
-void cJSON_DeleteTypeid(struct Typeid * x);
-
-struct Typename * cJSON_ParseTypename(const char * s);
-struct Typename * cJSON_GetTypenameValue(const cJSON * j);
-cJSON * cJSON_CreateTypename(const struct Typename * x);
-char * cJSON_PrintTypename(const struct Typename * x);
-void cJSON_DeleteTypename(struct Typename * x);
-
-struct Typeof * cJSON_ParseTypeof(const char * s);
-struct Typeof * cJSON_GetTypeofValue(const cJSON * j);
-cJSON * cJSON_CreateTypeof(const struct Typeof * x);
-char * cJSON_PrintTypeof(const struct Typeof * x);
-void cJSON_DeleteTypeof(struct Typeof * x);
+struct Printf * cJSON_GetPrintfValue(const cJSON * j);
+cJSON * cJSON_CreatePrintf(const struct Printf * x);
+char * cJSON_PrintPrintf(const struct Printf * x);
+void cJSON_DeletePrintf(struct Printf * x);
 
-struct Obj4True * cJSON_ParseObj4True(const char * s);
-struct Obj4True * cJSON_GetObj4TrueValue(const cJSON * j);
-cJSON * cJSON_CreateObj4True(const struct Obj4True * x);
-char * cJSON_PrintObj4True(const struct Obj4True * x);
-void cJSON_DeleteObj4True(struct Obj4True * x);
+struct Protocol * cJSON_ParseProtocol(const char * s);
+struct Protocol * cJSON_GetProtocolValue(const cJSON * j);
+cJSON * cJSON_CreateProtocol(const struct Protocol * x);
+char * cJSON_PrintProtocol(const struct Protocol * x);
+void cJSON_DeleteProtocol(struct Protocol * x);
 
 struct Quicktype * cJSON_ParseQuicktype(const char * s);
 struct Quicktype * cJSON_GetQuicktypeValue(const cJSON * j);
@@ -3304,12 +3184,24 @@ cJSON * cJSON_CreateSerialize(const struct Serialize * x);
 char * cJSON_PrintSerialize(const struct Serialize * x);
 void cJSON_DeleteSerialize(struct Serialize * x);
 
+struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s);
+struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j);
+cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x);
+char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x);
+void cJSON_DeleteSerializerProvider(struct SerializerProvider * x);
+
 struct Set * cJSON_ParseSet(const char * s);
 struct Set * cJSON_GetSetValue(const cJSON * j);
 cJSON * cJSON_CreateSet(const struct Set * x);
 char * cJSON_PrintSet(const struct Set * x);
 void cJSON_DeleteSet(struct Set * x);
 
+struct SimpleModule * cJSON_ParseSimpleModule(const char * s);
+struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j);
+cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x);
+char * cJSON_PrintSimpleModule(const struct SimpleModule * x);
+void cJSON_DeleteSimpleModule(struct SimpleModule * x);
+
 struct Stackalloc * cJSON_ParseStackalloc(const char * s);
 struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j);
 cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x);
@@ -3322,6 +3214,180 @@ cJSON * cJSON_CreateStandards(const struct Standards * x);
 char * cJSON_PrintStandards(const struct Standards * x);
 void cJSON_DeleteStandards(struct Standards * x);
 
+struct Obj4 * cJSON_ParseObj4(const char * s);
+struct Obj4 * cJSON_GetObj4Value(const cJSON * j);
+cJSON * cJSON_CreateObj4(const struct Obj4 * x);
+char * cJSON_PrintObj4(const struct Obj4 * x);
+void cJSON_DeleteObj4(struct Obj4 * x);
+
+struct StaticCast * cJSON_ParseStaticCast(const char * s);
+struct StaticCast * cJSON_GetStaticCastValue(const cJSON * j);
+cJSON * cJSON_CreateStaticCast(const struct StaticCast * x);
+char * cJSON_PrintStaticCast(const struct StaticCast * x);
+void cJSON_DeleteStaticCast(struct StaticCast * x);
+
+struct Struct * cJSON_ParseStruct(const char * s);
+struct Struct * cJSON_GetStructValue(const cJSON * j);
+cJSON * cJSON_CreateStruct(const struct Struct * x);
+char * cJSON_PrintStruct(const struct Struct * x);
+void cJSON_DeleteStruct(struct Struct * x);
+
+struct Switch * cJSON_ParseSwitch(const char * s);
+struct Switch * cJSON_GetSwitchValue(const cJSON * j);
+cJSON * cJSON_CreateSwitch(const struct Switch * x);
+char * cJSON_PrintSwitch(const struct Switch * x);
+void cJSON_DeleteSwitch(struct Switch * x);
+
+struct Synchronized * cJSON_ParseSynchronized(const char * s);
+struct Synchronized * cJSON_GetSynchronizedValue(const cJSON * j);
+cJSON * cJSON_CreateSynchronized(const struct Synchronized * x);
+char * cJSON_PrintSynchronized(const struct Synchronized * x);
+void cJSON_DeleteSynchronized(struct Synchronized * x);
+
+struct Template * cJSON_ParseTemplate(const char * s);
+struct Template * cJSON_GetTemplateValue(const cJSON * j);
+cJSON * cJSON_CreateTemplate(const struct Template * x);
+char * cJSON_PrintTemplate(const struct Template * x);
+void cJSON_DeleteTemplate(struct Template * x);
+
+struct This * cJSON_ParseThis(const char * s);
+struct This * cJSON_GetThisValue(const cJSON * j);
+cJSON * cJSON_CreateThis(const struct This * x);
+char * cJSON_PrintThis(const struct This * x);
+void cJSON_DeleteThis(struct This * x);
+
+struct ThreadLocal * cJSON_ParseThreadLocal(const char * s);
+struct ThreadLocal * cJSON_GetThreadLocalValue(const cJSON * j);
+cJSON * cJSON_CreateThreadLocal(const struct ThreadLocal * x);
+char * cJSON_PrintThreadLocal(const struct ThreadLocal * x);
+void cJSON_DeleteThreadLocal(struct ThreadLocal * x);
+
+struct Throw * cJSON_ParseThrow(const char * s);
+struct Throw * cJSON_GetThrowValue(const cJSON * j);
+cJSON * cJSON_CreateThrow(const struct Throw * x);
+char * cJSON_PrintThrow(const struct Throw * x);
+void cJSON_DeleteThrow(struct Throw * x);
+
+struct TrueClass * cJSON_ParseTrueClass(const char * s);
+struct TrueClass * cJSON_GetTrueClassValue(const cJSON * j);
+cJSON * cJSON_CreateTrueClass(const struct TrueClass * x);
+char * cJSON_PrintTrueClass(const struct TrueClass * x);
+void cJSON_DeleteTrueClass(struct TrueClass * x);
+
+struct Try * cJSON_ParseTry(const char * s);
+struct Try * cJSON_GetTryValue(const cJSON * j);
+cJSON * cJSON_CreateTry(const struct Try * x);
+char * cJSON_PrintTry(const struct Try * x);
+void cJSON_DeleteTry(struct Try * x);
+
+struct TypeClass * cJSON_ParseTypeClass(const char * s);
+struct TypeClass * cJSON_GetTypeClassValue(const cJSON * j);
+cJSON * cJSON_CreateTypeClass(const struct TypeClass * x);
+char * cJSON_PrintTypeClass(const struct TypeClass * x);
+void cJSON_DeleteTypeClass(struct TypeClass * x);
+
+struct Typedef * cJSON_ParseTypedef(const char * s);
+struct Typedef * cJSON_GetTypedefValue(const cJSON * j);
+cJSON * cJSON_CreateTypedef(const struct Typedef * x);
+char * cJSON_PrintTypedef(const struct Typedef * x);
+void cJSON_DeleteTypedef(struct Typedef * x);
+
+struct Typeid * cJSON_ParseTypeid(const char * s);
+struct Typeid * cJSON_GetTypeidValue(const cJSON * j);
+cJSON * cJSON_CreateTypeid(const struct Typeid * x);
+char * cJSON_PrintTypeid(const struct Typeid * x);
+void cJSON_DeleteTypeid(struct Typeid * x);
+
+struct Typename * cJSON_ParseTypename(const char * s);
+struct Typename * cJSON_GetTypenameValue(const cJSON * j);
+cJSON * cJSON_CreateTypename(const struct Typename * x);
+char * cJSON_PrintTypename(const struct Typename * x);
+void cJSON_DeleteTypename(struct Typename * x);
+
+struct Typeof * cJSON_ParseTypeof(const char * s);
+struct Typeof * cJSON_GetTypeofValue(const cJSON * j);
+cJSON * cJSON_CreateTypeof(const struct Typeof * x);
+char * cJSON_PrintTypeof(const struct Typeof * x);
+void cJSON_DeleteTypeof(struct Typeof * x);
+
+struct Union * cJSON_ParseUnion(const char * s);
+struct Union * cJSON_GetUnionValue(const cJSON * j);
+cJSON * cJSON_CreateUnion(const struct Union * x);
+char * cJSON_PrintUnion(const struct Union * x);
+void cJSON_DeleteUnion(struct Union * x);
+
+struct Unsigned * cJSON_ParseUnsigned(const char * s);
+struct Unsigned * cJSON_GetUnsignedValue(const cJSON * j);
+cJSON * cJSON_CreateUnsigned(const struct Unsigned * x);
+char * cJSON_PrintUnsigned(const struct Unsigned * x);
+void cJSON_DeleteUnsigned(struct Unsigned * x);
+
+struct Using * cJSON_ParseUsing(const char * s);
+struct Using * cJSON_GetUsingValue(const cJSON * j);
+cJSON * cJSON_CreateUsing(const struct Using * x);
+char * cJSON_PrintUsing(const struct Using * x);
+void cJSON_DeleteUsing(struct Using * x);
+
+struct Virtual * cJSON_ParseVirtual(const char * s);
+struct Virtual * cJSON_GetVirtualValue(const cJSON * j);
+cJSON * cJSON_CreateVirtual(const struct Virtual * x);
+char * cJSON_PrintVirtual(const struct Virtual * x);
+void cJSON_DeleteVirtual(struct Virtual * x);
+
+struct Void * cJSON_ParseVoid(const char * s);
+struct Void * cJSON_GetVoidValue(const cJSON * j);
+cJSON * cJSON_CreateVoid(const struct Void * x);
+char * cJSON_PrintVoid(const struct Void * x);
+void cJSON_DeleteVoid(struct Void * x);
+
+struct Volatile * cJSON_ParseVolatile(const char * s);
+struct Volatile * cJSON_GetVolatileValue(const cJSON * j);
+cJSON * cJSON_CreateVolatile(const struct Volatile * x);
+char * cJSON_PrintVolatile(const struct Volatile * x);
+void cJSON_DeleteVolatile(struct Volatile * x);
+
+struct WcharT * cJSON_ParseWcharT(const char * s);
+struct WcharT * cJSON_GetWcharTValue(const cJSON * j);
+cJSON * cJSON_CreateWcharT(const struct WcharT * x);
+char * cJSON_PrintWcharT(const struct WcharT * x);
+void cJSON_DeleteWcharT(struct WcharT * x);
+
+struct While * cJSON_ParseWhile(const char * s);
+struct While * cJSON_GetWhileValue(const cJSON * j);
+cJSON * cJSON_CreateWhile(const struct While * x);
+char * cJSON_PrintWhile(const struct While * x);
+void cJSON_DeleteWhile(struct While * x);
+
+struct Xor * cJSON_ParseXor(const char * s);
+struct Xor * cJSON_GetXorValue(const cJSON * j);
+cJSON * cJSON_CreateXor(const struct Xor * x);
+char * cJSON_PrintXor(const struct Xor * x);
+void cJSON_DeleteXor(struct Xor * x);
+
+struct XorEq * cJSON_ParseXorEq(const char * s);
+struct XorEq * cJSON_GetXorEqValue(const cJSON * j);
+cJSON * cJSON_CreateXorEq(const struct XorEq * x);
+char * cJSON_PrintXorEq(const struct XorEq * x);
+void cJSON_DeleteXorEq(struct XorEq * x);
+
+struct Obj5True * cJSON_ParseObj5True(const char * s);
+struct Obj5True * cJSON_GetObj5TrueValue(const cJSON * j);
+cJSON * cJSON_CreateObj5True(const struct Obj5True * x);
+char * cJSON_PrintObj5True(const struct Obj5True * x);
+void cJSON_DeleteObj5True(struct Obj5True * x);
+
+struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s);
+struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j);
+cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x);
+char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x);
+void cJSON_DeleteStdDeserializer(struct StdDeserializer * x);
+
+struct StdSerializer * cJSON_ParseStdSerializer(const char * s);
+struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j);
+cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x);
+char * cJSON_PrintStdSerializer(const struct StdSerializer * x);
+void cJSON_DeleteStdSerializer(struct StdSerializer * x);
+
 struct Strictfp * cJSON_ParseStrictfp(const char * s);
 struct Strictfp * cJSON_GetStrictfpValue(const cJSON * j);
 cJSON * cJSON_CreateStrictfp(const struct Strictfp * x);
@@ -3442,72 +3508,6 @@ cJSON * cJSON_CreateUndefined(const struct Undefined * x);
 char * cJSON_PrintUndefined(const struct Undefined * x);
 void cJSON_DeleteUndefined(struct Undefined * x);
 
-struct Obj4 * cJSON_ParseObj4(const char * s);
-struct Obj4 * cJSON_GetObj4Value(const cJSON * j);
-cJSON * cJSON_CreateObj4(const struct Obj4 * x);
-char * cJSON_PrintObj4(const struct Obj4 * x);
-void cJSON_DeleteObj4(struct Obj4 * x);
-
-struct Union * cJSON_ParseUnion(const char * s);
-struct Union * cJSON_GetUnionValue(const cJSON * j);
-cJSON * cJSON_CreateUnion(const struct Union * x);
-char * cJSON_PrintUnion(const struct Union * x);
-void cJSON_DeleteUnion(struct Union * x);
-
-struct Unsigned * cJSON_ParseUnsigned(const char * s);
-struct Unsigned * cJSON_GetUnsignedValue(const cJSON * j);
-cJSON * cJSON_CreateUnsigned(const struct Unsigned * x);
-char * cJSON_PrintUnsigned(const struct Unsigned * x);
-void cJSON_DeleteUnsigned(struct Unsigned * x);
-
-struct Using * cJSON_ParseUsing(const char * s);
-struct Using * cJSON_GetUsingValue(const cJSON * j);
-cJSON * cJSON_CreateUsing(const struct Using * x);
-char * cJSON_PrintUsing(const struct Using * x);
-void cJSON_DeleteUsing(struct Using * x);
-
-struct Virtual * cJSON_ParseVirtual(const char * s);
-struct Virtual * cJSON_GetVirtualValue(const cJSON * j);
-cJSON * cJSON_CreateVirtual(const struct Virtual * x);
-char * cJSON_PrintVirtual(const struct Virtual * x);
-void cJSON_DeleteVirtual(struct Virtual * x);
-
-struct Void * cJSON_ParseVoid(const char * s);
-struct Void * cJSON_GetVoidValue(const cJSON * j);
-cJSON * cJSON_CreateVoid(const struct Void * x);
-char * cJSON_PrintVoid(const struct Void * x);
-void cJSON_DeleteVoid(struct Void * x);
-
-struct Volatile * cJSON_ParseVolatile(const char * s);
-struct Volatile * cJSON_GetVolatileValue(const cJSON * j);
-cJSON * cJSON_CreateVolatile(const struct Volatile * x);
-char * cJSON_PrintVolatile(const struct Volatile * x);
-void cJSON_DeleteVolatile(struct Volatile * x);
-
-struct WcharT * cJSON_ParseWcharT(const char * s);
-struct WcharT * cJSON_GetWcharTValue(const cJSON * j);
-cJSON * cJSON_CreateWcharT(const struct WcharT * x);
-char * cJSON_PrintWcharT(const struct WcharT * x);
-void cJSON_DeleteWcharT(struct WcharT * x);
-
-struct While * cJSON_ParseWhile(const char * s);
-struct While * cJSON_GetWhileValue(const cJSON * j);
-cJSON * cJSON_CreateWhile(const struct While * x);
-char * cJSON_PrintWhile(const struct While * x);
-void cJSON_DeleteWhile(struct While * x);
-
-struct Xor * cJSON_ParseXor(const char * s);
-struct Xor * cJSON_GetXorValue(const cJSON * j);
-cJSON * cJSON_CreateXor(const struct Xor * x);
-char * cJSON_PrintXor(const struct Xor * x);
-void cJSON_DeleteXor(struct Xor * x);
-
-struct XorEq * cJSON_ParseXorEq(const char * s);
-struct XorEq * cJSON_GetXorEqValue(const cJSON * j);
-cJSON * cJSON_CreateXorEq(const struct XorEq * x);
-char * cJSON_PrintXorEq(const struct XorEq * x);
-void cJSON_DeleteXorEq(struct XorEq * x);
-
 struct Unowned * cJSON_ParseUnowned(const char * s);
 struct Unowned * cJSON_GetUnownedValue(const cJSON * j);
 cJSON * cJSON_CreateUnowned(const struct Unowned * x);
diff --git a/base/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
index 7df8741..e8fdc92 100644
--- a/base/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
@@ -451,90 +451,6 @@ namespace quicktype {
         void set_date_parse_handling(const int64_t & value) { this->date_parse_handling = value; }
     };
 
-    class DateTime {
-        public:
-        DateTime() = default;
-        virtual ~DateTime() = default;
-
-        private:
-        std::string date_time;
-
-        public:
-        const std::string & get_date_time() const { return date_time; }
-        std::string & get_mutable_date_time() { return date_time; }
-        void set_date_time(const std::string & value) { this->date_time = value; }
-    };
-
-    class DateTimeStyles {
-        public:
-        DateTimeStyles() = default;
-        virtual ~DateTimeStyles() = default;
-
-        private:
-        int64_t date_time_styles;
-
-        public:
-        const int64_t & get_date_time_styles() const { return date_time_styles; }
-        int64_t & get_mutable_date_time_styles() { return date_time_styles; }
-        void set_date_time_styles(const int64_t & value) { this->date_time_styles = value; }
-    };
-
-    class Debugger {
-        public:
-        Debugger() = default;
-        virtual ~Debugger() = default;
-
-        private:
-        int64_t debugger;
-
-        public:
-        const int64_t & get_debugger() const { return debugger; }
-        int64_t & get_mutable_debugger() { return debugger; }
-        void set_debugger(const int64_t & value) { this->debugger = value; }
-    };
-
-    class Decimal {
-        public:
-        Decimal() = default;
-        virtual ~Decimal() = default;
-
-        private:
-        int64_t decimal;
-
-        public:
-        const int64_t & get_decimal() const { return decimal; }
-        int64_t & get_mutable_decimal() { return decimal; }
-        void set_decimal(const int64_t & value) { this->decimal = value; }
-    };
-
-    class Declare {
-        public:
-        Declare() = default;
-        virtual ~Declare() = default;
-
-        private:
-        int64_t declare;
-
-        public:
-        const int64_t & get_declare() const { return declare; }
-        int64_t & get_mutable_declare() { return declare; }
-        void set_declare(const int64_t & value) { this->declare = value; }
-    };
-
-    class DecodeString {
-        public:
-        DecodeString() = default;
-        virtual ~DecodeString() = default;
-
-        private:
-        int64_t decode_string;
-
-        public:
-        const int64_t & get_decode_string() const { return decode_string; }
-        int64_t & get_mutable_decode_string() { return decode_string; }
-        void set_decode_string(const int64_t & value) { this->decode_string = value; }
-    };
-
     class Empty {
         public:
         Empty() = default;
@@ -983,20 +899,6 @@ namespace quicktype {
         void set_continue_continue(const int64_t & value) { this->continue_continue = value; }
     };
 
-    class Decltype {
-        public:
-        Decltype() = default;
-        virtual ~Decltype() = default;
-
-        private:
-        int64_t decltype_decltype;
-
-        public:
-        const int64_t & get_decltype_decltype() const { return decltype_decltype; }
-        int64_t & get_mutable_decltype_decltype() { return decltype_decltype; }
-        void set_decltype_decltype(const int64_t & value) { this->decltype_decltype = value; }
-    };
-
     class BoolClass {
         public:
         BoolClass() = default;
@@ -1061,12 +963,6 @@ namespace quicktype {
         DateOnly date_only;
         DateOnlyConverter date_only_converter;
         DateParseHandling date_parse_handling;
-        DateTime date_time;
-        DateTimeStyles date_time_styles;
-        Debugger debugger;
-        Decimal decimal;
-        Declare declare;
-        DecodeString decode_string;
         int64_t dummy;
         Empty empty;
         Obj1Bool fluffy_bool;
@@ -1100,7 +996,6 @@ namespace quicktype {
         ConstCast obj1_const_cast;
         Constexpr obj1_constexpr;
         Continue obj1_continue;
-        Decltype obj1_decltype;
         BoolClass purple_bool;
         ClassClass purple_class;
 
@@ -1225,30 +1120,6 @@ namespace quicktype {
         DateParseHandling & get_mutable_date_parse_handling() { return date_parse_handling; }
         void set_date_parse_handling(const DateParseHandling & value) { this->date_parse_handling = value; }
 
-        const DateTime & get_date_time() const { return date_time; }
-        DateTime & get_mutable_date_time() { return date_time; }
-        void set_date_time(const DateTime & value) { this->date_time = value; }
-
-        const DateTimeStyles & get_date_time_styles() const { return date_time_styles; }
-        DateTimeStyles & get_mutable_date_time_styles() { return date_time_styles; }
-        void set_date_time_styles(const DateTimeStyles & value) { this->date_time_styles = value; }
-
-        const Debugger & get_debugger() const { return debugger; }
-        Debugger & get_mutable_debugger() { return debugger; }
-        void set_debugger(const Debugger & value) { this->debugger = value; }
-
-        const Decimal & get_decimal() const { return decimal; }
-        Decimal & get_mutable_decimal() { return decimal; }
-        void set_decimal(const Decimal & value) { this->decimal = value; }
-
-        const Declare & get_declare() const { return declare; }
-        Declare & get_mutable_declare() { return declare; }
-        void set_declare(const Declare & value) { this->declare = value; }
-
-        const DecodeString & get_decode_string() const { return decode_string; }
-        DecodeString & get_mutable_decode_string() { return decode_string; }
-        void set_decode_string(const DecodeString & value) { this->decode_string = value; }
-
         const int64_t & get_dummy() const { return dummy; }
         int64_t & get_mutable_dummy() { return dummy; }
         void set_dummy(const int64_t & value) { this->dummy = value; }
@@ -1381,10 +1252,6 @@ namespace quicktype {
         Continue & get_mutable_obj1_continue() { return obj1_continue; }
         void set_obj1_continue(const Continue & value) { this->obj1_continue = value; }
 
-        const Decltype & get_obj1_decltype() const { return obj1_decltype; }
-        Decltype & get_mutable_obj1_decltype() { return obj1_decltype; }
-        void set_obj1_decltype(const Decltype & value) { this->obj1_decltype = value; }
-
         const BoolClass & get_purple_bool() const { return purple_bool; }
         BoolClass & get_mutable_purple_bool() { return purple_bool; }
         void set_purple_bool(const BoolClass & value) { this->purple_bool = value; }
@@ -1394,6 +1261,90 @@ namespace quicktype {
         void set_purple_class(const ClassClass & value) { this->purple_class = value; }
     };
 
+    class DateTime {
+        public:
+        DateTime() = default;
+        virtual ~DateTime() = default;
+
+        private:
+        std::string date_time;
+
+        public:
+        const std::string & get_date_time() const { return date_time; }
+        std::string & get_mutable_date_time() { return date_time; }
+        void set_date_time(const std::string & value) { this->date_time = value; }
+    };
+
+    class DateTimeStyles {
+        public:
+        DateTimeStyles() = default;
+        virtual ~DateTimeStyles() = default;
+
+        private:
+        int64_t date_time_styles;
+
+        public:
+        const int64_t & get_date_time_styles() const { return date_time_styles; }
+        int64_t & get_mutable_date_time_styles() { return date_time_styles; }
+        void set_date_time_styles(const int64_t & value) { this->date_time_styles = value; }
+    };
+
+    class Debugger {
+        public:
+        Debugger() = default;
+        virtual ~Debugger() = default;
+
+        private:
+        int64_t debugger;
+
+        public:
+        const int64_t & get_debugger() const { return debugger; }
+        int64_t & get_mutable_debugger() { return debugger; }
+        void set_debugger(const int64_t & value) { this->debugger = value; }
+    };
+
+    class Decimal {
+        public:
+        Decimal() = default;
+        virtual ~Decimal() = default;
+
+        private:
+        int64_t decimal;
+
+        public:
+        const int64_t & get_decimal() const { return decimal; }
+        int64_t & get_mutable_decimal() { return decimal; }
+        void set_decimal(const int64_t & value) { this->decimal = value; }
+    };
+
+    class Declare {
+        public:
+        Declare() = default;
+        virtual ~Declare() = default;
+
+        private:
+        int64_t declare;
+
+        public:
+        const int64_t & get_declare() const { return declare; }
+        int64_t & get_mutable_declare() { return declare; }
+        void set_declare(const int64_t & value) { this->declare = value; }
+    };
+
+    class DecodeString {
+        public:
+        DecodeString() = default;
+        virtual ~DecodeString() = default;
+
+        private:
+        int64_t decode_string;
+
+        public:
+        const int64_t & get_decode_string() const { return decode_string; }
+        int64_t & get_mutable_decode_string() { return decode_string; }
+        void set_decode_string(const int64_t & value) { this->decode_string = value; }
+    };
+
     class Def {
         public:
         Def() = default;
@@ -1942,144 +1893,46 @@ namespace quicktype {
         void set_implicit(const int64_t & value) { this->implicit = value; }
     };
 
-    class In {
+    class Decltype {
         public:
-        In() = default;
-        virtual ~In() = default;
+        Decltype() = default;
+        virtual ~Decltype() = default;
 
         private:
-        int64_t in;
+        int64_t decltype_decltype;
 
         public:
-        const int64_t & get_in() const { return in; }
-        int64_t & get_mutable_in() { return in; }
-        void set_in(const int64_t & value) { this->in = value; }
+        const int64_t & get_decltype_decltype() const { return decltype_decltype; }
+        int64_t & get_mutable_decltype_decltype() { return decltype_decltype; }
+        void set_decltype_decltype(const int64_t & value) { this->decltype_decltype = value; }
     };
 
-    class Indirect {
+    class Default {
         public:
-        Indirect() = default;
-        virtual ~Indirect() = default;
+        Default() = default;
+        virtual ~Default() = default;
 
         private:
-        int64_t indirect;
+        int64_t default_default;
 
         public:
-        const int64_t & get_indirect() const { return indirect; }
-        int64_t & get_mutable_indirect() { return indirect; }
-        void set_indirect(const int64_t & value) { this->indirect = value; }
+        const int64_t & get_default_default() const { return default_default; }
+        int64_t & get_mutable_default_default() { return default_default; }
+        void set_default_default(const int64_t & value) { this->default_default = value; }
     };
 
-    class Infix {
+    class Delete {
         public:
-        Infix() = default;
-        virtual ~Infix() = default;
+        Delete() = default;
+        virtual ~Delete() = default;
 
         private:
-        int64_t infix;
+        int64_t delete_delete;
 
         public:
-        const int64_t & get_infix() const { return infix; }
-        int64_t & get_mutable_infix() { return infix; }
-        void set_infix(const int64_t & value) { this->infix = value; }
-    };
-
-    class Init {
-        public:
-        Init() = default;
-        virtual ~Init() = default;
-
-        private:
-        int64_t init;
-
-        public:
-        const int64_t & get_init() const { return init; }
-        int64_t & get_mutable_init() { return init; }
-        void set_init(const int64_t & value) { this->init = value; }
-    };
-
-    class Inout {
-        public:
-        Inout() = default;
-        virtual ~Inout() = default;
-
-        private:
-        int64_t inout;
-
-        public:
-        const int64_t & get_inout() const { return inout; }
-        int64_t & get_mutable_inout() { return inout; }
-        void set_inout(const int64_t & value) { this->inout = value; }
-    };
-
-    class Instanceof {
-        public:
-        Instanceof() = default;
-        virtual ~Instanceof() = default;
-
-        private:
-        int64_t instanceof;
-
-        public:
-        const int64_t & get_instanceof() const { return instanceof; }
-        int64_t & get_mutable_instanceof() { return instanceof; }
-        void set_instanceof(const int64_t & value) { this->instanceof = value; }
-    };
-
-    class Interface {
-        public:
-        Interface() = default;
-        virtual ~Interface() = default;
-
-        private:
-        int64_t interface;
-
-        public:
-        const int64_t & get_interface() const { return interface; }
-        int64_t & get_mutable_interface() { return interface; }
-        void set_interface(const int64_t & value) { this->interface = value; }
-    };
-
-    class Internal {
-        public:
-        Internal() = default;
-        virtual ~Internal() = default;
-
-        private:
-        int64_t internal;
-
-        public:
-        const int64_t & get_internal() const { return internal; }
-        int64_t & get_mutable_internal() { return internal; }
-        void set_internal(const int64_t & value) { this->internal = value; }
-    };
-
-    class Default {
-        public:
-        Default() = default;
-        virtual ~Default() = default;
-
-        private:
-        int64_t default_default;
-
-        public:
-        const int64_t & get_default_default() const { return default_default; }
-        int64_t & get_mutable_default_default() { return default_default; }
-        void set_default_default(const int64_t & value) { this->default_default = value; }
-    };
-
-    class Delete {
-        public:
-        Delete() = default;
-        virtual ~Delete() = default;
-
-        private:
-        int64_t delete_delete;
-
-        public:
-        const int64_t & get_delete_delete() const { return delete_delete; }
-        int64_t & get_mutable_delete_delete() { return delete_delete; }
-        void set_delete_delete(const int64_t & value) { this->delete_delete = value; }
+        const int64_t & get_delete_delete() const { return delete_delete; }
+        int64_t & get_mutable_delete_delete() { return delete_delete; }
+        void set_delete_delete(const int64_t & value) { this->delete_delete = value; }
     };
 
     class Do {
@@ -2292,48 +2145,6 @@ namespace quicktype {
         void set_if_if(const int64_t & value) { this->if_if = value; }
     };
 
-    class Import {
-        public:
-        Import() = default;
-        virtual ~Import() = default;
-
-        private:
-        int64_t import_import;
-
-        public:
-        const int64_t & get_import_import() const { return import_import; }
-        int64_t & get_mutable_import_import() { return import_import; }
-        void set_import_import(const int64_t & value) { this->import_import = value; }
-    };
-
-    class Inline {
-        public:
-        Inline() = default;
-        virtual ~Inline() = default;
-
-        private:
-        int64_t inline_inline;
-
-        public:
-        const int64_t & get_inline_inline() const { return inline_inline; }
-        int64_t & get_mutable_inline_inline() { return inline_inline; }
-        void set_inline_inline(const int64_t & value) { this->inline_inline = value; }
-    };
-
-    class Int {
-        public:
-        Int() = default;
-        virtual ~Int() = default;
-
-        private:
-        int64_t int_int;
-
-        public:
-        const int64_t & get_int_int() const { return int_int; }
-        int64_t & get_mutable_int_int() { return int_int; }
-        void set_int_int(const int64_t & value) { this->int_int = value; }
-    };
-
     class FalseClass {
         public:
         FalseClass() = default;
@@ -2354,6 +2165,12 @@ namespace quicktype {
         virtual ~Obj2() = default;
 
         private:
+        DateTime date_time;
+        DateTimeStyles date_time_styles;
+        Debugger debugger;
+        Decimal decimal;
+        Declare declare;
+        DecodeString decode_string;
         Def def;
         Defer defer;
         Deinit deinit;
@@ -2394,14 +2211,7 @@ namespace quicktype {
         Imp imp;
         Implements implements;
         Implicit implicit;
-        In in;
-        Indirect indirect;
-        Infix infix;
-        Init init;
-        Inout inout;
-        Instanceof instanceof;
-        Interface interface;
-        Internal internal;
+        Decltype obj2_decltype;
         Default obj2_default;
         Delete obj2_delete;
         Do obj2_do;
@@ -2419,12 +2229,33 @@ namespace quicktype {
         Friend obj2_friend;
         Goto obj2_goto;
         If obj2_if;
-        Import obj2_import;
-        Inline obj2_inline;
-        Int obj2_int;
         FalseClass purple_false;
 
         public:
+        const DateTime & get_date_time() const { return date_time; }
+        DateTime & get_mutable_date_time() { return date_time; }
+        void set_date_time(const DateTime & value) { this->date_time = value; }
+
+        const DateTimeStyles & get_date_time_styles() const { return date_time_styles; }
+        DateTimeStyles & get_mutable_date_time_styles() { return date_time_styles; }
+        void set_date_time_styles(const DateTimeStyles & value) { this->date_time_styles = value; }
+
+        const Debugger & get_debugger() const { return debugger; }
+        Debugger & get_mutable_debugger() { return debugger; }
+        void set_debugger(const Debugger & value) { this->debugger = value; }
+
+        const Decimal & get_decimal() const { return decimal; }
+        Decimal & get_mutable_decimal() { return decimal; }
+        void set_decimal(const Decimal & value) { this->decimal = value; }
+
+        const Declare & get_declare() const { return declare; }
+        Declare & get_mutable_declare() { return declare; }
+        void set_declare(const Declare & value) { this->declare = value; }
+
+        const DecodeString & get_decode_string() const { return decode_string; }
+        DecodeString & get_mutable_decode_string() { return decode_string; }
+        void set_decode_string(const DecodeString & value) { this->decode_string = value; }
+
         const Def & get_def() const { return def; }
         Def & get_mutable_def() { return def; }
         void set_def(const Def & value) { this->def = value; }
@@ -2585,37 +2416,9 @@ namespace quicktype {
         Implicit & get_mutable_implicit() { return implicit; }
         void set_implicit(const Implicit & value) { this->implicit = value; }
 
-        const In & get_in() const { return in; }
-        In & get_mutable_in() { return in; }
-        void set_in(const In & value) { this->in = value; }
-
-        const Indirect & get_indirect() const { return indirect; }
-        Indirect & get_mutable_indirect() { return indirect; }
-        void set_indirect(const Indirect & value) { this->indirect = value; }
-
-        const Infix & get_infix() const { return infix; }
-        Infix & get_mutable_infix() { return infix; }
-        void set_infix(const Infix & value) { this->infix = value; }
-
-        const Init & get_init() const { return init; }
-        Init & get_mutable_init() { return init; }
-        void set_init(const Init & value) { this->init = value; }
-
-        const Inout & get_inout() const { return inout; }
-        Inout & get_mutable_inout() { return inout; }
-        void set_inout(const Inout & value) { this->inout = value; }
-
-        const Instanceof & get_instanceof() const { return instanceof; }
-        Instanceof & get_mutable_instanceof() { return instanceof; }
-        void set_instanceof(const Instanceof & value) { this->instanceof = value; }
-
-        const Interface & get_interface() const { return interface; }
-        Interface & get_mutable_interface() { return interface; }
-        void set_interface(const Interface & value) { this->interface = value; }
-
-        const Internal & get_internal() const { return internal; }
-        Internal & get_mutable_internal() { return internal; }
-        void set_internal(const Internal & value) { this->internal = value; }
+        const Decltype & get_obj2_decltype() const { return obj2_decltype; }
+        Decltype & get_mutable_obj2_decltype() { return obj2_decltype; }
+        void set_obj2_decltype(const Decltype & value) { this->obj2_decltype = value; }
 
         const Default & get_obj2_default() const { return obj2_default; }
         Default & get_mutable_obj2_default() { return obj2_default; }
@@ -2685,68 +2488,168 @@ namespace quicktype {
         If & get_mutable_obj2_if() { return obj2_if; }
         void set_obj2_if(const If & value) { this->obj2_if = value; }
 
-        const Import & get_obj2_import() const { return obj2_import; }
-        Import & get_mutable_obj2_import() { return obj2_import; }
-        void set_obj2_import(const Import & value) { this->obj2_import = value; }
-
-        const Inline & get_obj2_inline() const { return obj2_inline; }
-        Inline & get_mutable_obj2_inline() { return obj2_inline; }
-        void set_obj2_inline(const Inline & value) { this->obj2_inline = value; }
-
-        const Int & get_obj2_int() const { return obj2_int; }
-        Int & get_mutable_obj2_int() { return obj2_int; }
-        void set_obj2_int(const Int & value) { this->obj2_int = value; }
-
         const FalseClass & get_purple_false() const { return purple_false; }
         FalseClass & get_mutable_purple_false() { return purple_false; }
         void set_purple_false(const FalseClass & value) { this->purple_false = value; }
     };
 
-    class Is {
+    class In {
         public:
-        Is() = default;
-        virtual ~Is() = default;
+        In() = default;
+        virtual ~In() = default;
 
         private:
-        int64_t is;
+        int64_t in;
 
         public:
-        const int64_t & get_is() const { return is; }
-        int64_t & get_mutable_is() { return is; }
-        void set_is(const int64_t & value) { this->is = value; }
+        const int64_t & get_in() const { return in; }
+        int64_t & get_mutable_in() { return in; }
+        void set_in(const int64_t & value) { this->in = value; }
     };
 
-    class IsoDateTimeOffsetConverter {
+    class Indirect {
         public:
-        IsoDateTimeOffsetConverter() = default;
-        virtual ~IsoDateTimeOffsetConverter() = default;
+        Indirect() = default;
+        virtual ~Indirect() = default;
 
         private:
-        int64_t iso_date_time_offset_converter;
+        int64_t indirect;
 
         public:
-        const int64_t & get_iso_date_time_offset_converter() const { return iso_date_time_offset_converter; }
-        int64_t & get_mutable_iso_date_time_offset_converter() { return iso_date_time_offset_converter; }
-        void set_iso_date_time_offset_converter(const int64_t & value) { this->iso_date_time_offset_converter = value; }
+        const int64_t & get_indirect() const { return indirect; }
+        int64_t & get_mutable_indirect() { return indirect; }
+        void set_indirect(const int64_t & value) { this->indirect = value; }
     };
 
-    class Iterable {
+    class Infix {
         public:
-        Iterable() = default;
-        virtual ~Iterable() = default;
+        Infix() = default;
+        virtual ~Infix() = default;
 
         private:
-        int64_t iterable;
+        int64_t infix;
 
         public:
-        const int64_t & get_iterable() const { return iterable; }
-        int64_t & get_mutable_iterable() { return iterable; }
-        void set_iterable(const int64_t & value) { this->iterable = value; }
+        const int64_t & get_infix() const { return infix; }
+        int64_t & get_mutable_infix() { return infix; }
+        void set_infix(const int64_t & value) { this->infix = value; }
     };
 
-    class Jdec {
+    class Init {
         public:
-        Jdec() = default;
+        Init() = default;
+        virtual ~Init() = default;
+
+        private:
+        int64_t init;
+
+        public:
+        const int64_t & get_init() const { return init; }
+        int64_t & get_mutable_init() { return init; }
+        void set_init(const int64_t & value) { this->init = value; }
+    };
+
+    class Inout {
+        public:
+        Inout() = default;
+        virtual ~Inout() = default;
+
+        private:
+        int64_t inout;
+
+        public:
+        const int64_t & get_inout() const { return inout; }
+        int64_t & get_mutable_inout() { return inout; }
+        void set_inout(const int64_t & value) { this->inout = value; }
+    };
+
+    class Instanceof {
+        public:
+        Instanceof() = default;
+        virtual ~Instanceof() = default;
+
+        private:
+        int64_t instanceof;
+
+        public:
+        const int64_t & get_instanceof() const { return instanceof; }
+        int64_t & get_mutable_instanceof() { return instanceof; }
+        void set_instanceof(const int64_t & value) { this->instanceof = value; }
+    };
+
+    class Interface {
+        public:
+        Interface() = default;
+        virtual ~Interface() = default;
+
+        private:
+        int64_t interface;
+
+        public:
+        const int64_t & get_interface() const { return interface; }
+        int64_t & get_mutable_interface() { return interface; }
+        void set_interface(const int64_t & value) { this->interface = value; }
+    };
+
+    class Internal {
+        public:
+        Internal() = default;
+        virtual ~Internal() = default;
+
+        private:
+        int64_t internal;
+
+        public:
+        const int64_t & get_internal() const { return internal; }
+        int64_t & get_mutable_internal() { return internal; }
+        void set_internal(const int64_t & value) { this->internal = value; }
+    };
+
+    class Is {
+        public:
+        Is() = default;
+        virtual ~Is() = default;
+
+        private:
+        int64_t is;
+
+        public:
+        const int64_t & get_is() const { return is; }
+        int64_t & get_mutable_is() { return is; }
+        void set_is(const int64_t & value) { this->is = value; }
+    };
+
+    class IsoDateTimeOffsetConverter {
+        public:
+        IsoDateTimeOffsetConverter() = default;
+        virtual ~IsoDateTimeOffsetConverter() = default;
+
+        private:
+        int64_t iso_date_time_offset_converter;
+
+        public:
+        const int64_t & get_iso_date_time_offset_converter() const { return iso_date_time_offset_converter; }
+        int64_t & get_mutable_iso_date_time_offset_converter() { return iso_date_time_offset_converter; }
+        void set_iso_date_time_offset_converter(const int64_t & value) { this->iso_date_time_offset_converter = value; }
+    };
+
+    class Iterable {
+        public:
+        Iterable() = default;
+        virtual ~Iterable() = default;
+
+        private:
+        int64_t iterable;
+
+        public:
+        const int64_t & get_iterable() const { return iterable; }
+        int64_t & get_mutable_iterable() { return iterable; }
+        void set_iterable(const int64_t & value) { this->iterable = value; }
+    };
+
+    class Jdec {
+        public:
+        Jdec() = default;
         virtual ~Jdec() = default;
 
         private:
@@ -3304,18 +3207,46 @@ namespace quicktype {
         void set_null(const int64_t & value) { this->null = value; }
     };
 
-    class Number {
+    class Import {
         public:
-        Number() = default;
-        virtual ~Number() = default;
+        Import() = default;
+        virtual ~Import() = default;
 
         private:
-        int64_t number;
+        int64_t import_import;
 
         public:
-        const int64_t & get_number() const { return number; }
-        int64_t & get_mutable_number() { return number; }
-        void set_number(const int64_t & value) { this->number = value; }
+        const int64_t & get_import_import() const { return import_import; }
+        int64_t & get_mutable_import_import() { return import_import; }
+        void set_import_import(const int64_t & value) { this->import_import = value; }
+    };
+
+    class Inline {
+        public:
+        Inline() = default;
+        virtual ~Inline() = default;
+
+        private:
+        int64_t inline_inline;
+
+        public:
+        const int64_t & get_inline_inline() const { return inline_inline; }
+        int64_t & get_mutable_inline_inline() { return inline_inline; }
+        void set_inline_inline(const int64_t & value) { this->inline_inline = value; }
+    };
+
+    class Int {
+        public:
+        Int() = default;
+        virtual ~Int() = default;
+
+        private:
+        int64_t int_int;
+
+        public:
+        const int64_t & get_int_int() const { return int_int; }
+        int64_t & get_mutable_int_int() { return int_int; }
+        void set_int_int(const int64_t & value) { this->int_int = value; }
     };
 
     class Long {
@@ -3458,522 +3389,114 @@ namespace quicktype {
         void set_null(const int64_t & value) { this->null = value; }
     };
 
-    class Nullptr {
+    class Obj3 {
         public:
-        Nullptr() = default;
-        virtual ~Nullptr() = default;
+        Obj3() = default;
+        virtual ~Obj3() = default;
 
         private:
-        int64_t nullptr_nullptr;
-
-        public:
-        const int64_t & get_nullptr_nullptr() const { return nullptr_nullptr; }
-        int64_t & get_mutable_nullptr_nullptr() { return nullptr_nullptr; }
-        void set_nullptr_nullptr(const int64_t & value) { this->nullptr_nullptr = value; }
-    };
+        int64_t dummy;
+        In in;
+        Indirect indirect;
+        Infix infix;
+        Init init;
+        Inout inout;
+        Instanceof instanceof;
+        Interface interface;
+        Internal internal;
+        Is is;
+        IsoDateTimeOffsetConverter iso_date_time_offset_converter;
+        Iterable iterable;
+        Jdec jdec;
+        Jenc jenc;
+        Jpipe jpipe;
+        Json json;
+        JsonAny json_any;
+        JsonCodingKey json_coding_key;
+        JsonConverter json_converter;
+        JsonDecoder json_decoder;
+        JsonEncoder json_encoder;
+        JsonException json_exception;
+        JsonGenerator json_generator;
+        JsonNode json_node;
+        JsonNull json_null;
+        JsonParser json_parser;
+        JsonReader json_reader;
+        JsonSerializer json_serializer;
+        JsonToken json_token;
+        JsonTokenType json_token_type;
+        JsonWriter json_writer;
+        Lambda lambda;
+        Lazy lazy;
+        Left left;
+        Let let;
+        List list;
+        Lock lock;
+        Map map;
+        MetadataPropertyHandling metadata_property_handling;
+        Mutating mutating;
+        Native native;
+        Newtonsoft newtonsoft;
+        Nil nil;
+        No no;
+        NoSuchMethod no_such_method;
+        Nonatomic nonatomic;
+        None none;
+        Nonlocal nonlocal;
+        Nonmutating nonmutating;
+        NsError ns_error;
+        NsString ns_string;
+        Null null;
+        Import obj3_import;
+        Inline obj3_inline;
+        Int obj3_int;
+        Long obj3_long;
+        Module obj3_module;
+        Mutable obj3_mutable;
+        Namespace obj3_namespace;
+        New obj3_new;
+        Noexcept obj3_noexcept;
+        NoneClass obj3_none;
+        Not obj3_not;
+        NotEq obj3_not_eq;
+        NullClass obj3_null;
 
-    class Operator {
         public:
-        Operator() = default;
-        virtual ~Operator() = default;
+        const int64_t & get_dummy() const { return dummy; }
+        int64_t & get_mutable_dummy() { return dummy; }
+        void set_dummy(const int64_t & value) { this->dummy = value; }
 
-        private:
-        int64_t operator_operator;
+        const In & get_in() const { return in; }
+        In & get_mutable_in() { return in; }
+        void set_in(const In & value) { this->in = value; }
 
-        public:
-        const int64_t & get_operator_operator() const { return operator_operator; }
-        int64_t & get_mutable_operator_operator() { return operator_operator; }
-        void set_operator_operator(const int64_t & value) { this->operator_operator = value; }
-    };
+        const Indirect & get_indirect() const { return indirect; }
+        Indirect & get_mutable_indirect() { return indirect; }
+        void set_indirect(const Indirect & value) { this->indirect = value; }
 
-    class Or {
-        public:
-        Or() = default;
-        virtual ~Or() = default;
+        const Infix & get_infix() const { return infix; }
+        Infix & get_mutable_infix() { return infix; }
+        void set_infix(const Infix & value) { this->infix = value; }
 
-        private:
-        int64_t or_or;
-
-        public:
-        const int64_t & get_or_or() const { return or_or; }
-        int64_t & get_mutable_or_or() { return or_or; }
-        void set_or_or(const int64_t & value) { this->or_or = value; }
-    };
-
-    class OrEq {
-        public:
-        OrEq() = default;
-        virtual ~OrEq() = default;
-
-        private:
-        int64_t or_eq_or_eq;
-
-        public:
-        const int64_t & get_or_eq_or_eq() const { return or_eq_or_eq; }
-        int64_t & get_mutable_or_eq_or_eq() { return or_eq_or_eq; }
-        void set_or_eq_or_eq(const int64_t & value) { this->or_eq_or_eq = value; }
-    };
-
-    class Override {
-        public:
-        Override() = default;
-        virtual ~Override() = default;
-
-        private:
-        int64_t override_override;
-
-        public:
-        const int64_t & get_override_override() const { return override_override; }
-        int64_t & get_mutable_override_override() { return override_override; }
-        void set_override_override(const int64_t & value) { this->override_override = value; }
-    };
-
-    class Private {
-        public:
-        Private() = default;
-        virtual ~Private() = default;
-
-        private:
-        int64_t private_private;
-
-        public:
-        const int64_t & get_private_private() const { return private_private; }
-        int64_t & get_mutable_private_private() { return private_private; }
-        void set_private_private(const int64_t & value) { this->private_private = value; }
-    };
-
-    class Protected {
-        public:
-        Protected() = default;
-        virtual ~Protected() = default;
-
-        private:
-        int64_t protected_protected;
-
-        public:
-        const int64_t & get_protected_protected() const { return protected_protected; }
-        int64_t & get_mutable_protected_protected() { return protected_protected; }
-        void set_protected_protected(const int64_t & value) { this->protected_protected = value; }
-    };
-
-    class ProtocolClass {
-        public:
-        ProtocolClass() = default;
-        virtual ~ProtocolClass() = default;
-
-        private:
-        int64_t protocol;
-
-        public:
-        const int64_t & get_protocol() const { return protocol; }
-        int64_t & get_mutable_protocol() { return protocol; }
-        void set_protocol(const int64_t & value) { this->protocol = value; }
-    };
-
-    class Object {
-        public:
-        Object() = default;
-        virtual ~Object() = default;
-
-        private:
-        int64_t object;
-
-        public:
-        const int64_t & get_object() const { return object; }
-        int64_t & get_mutable_object() { return object; }
-        void set_object(const int64_t & value) { this->object = value; }
-    };
-
-    class ObjectMapper {
-        public:
-        ObjectMapper() = default;
-        virtual ~ObjectMapper() = default;
-
-        private:
-        int64_t object_mapper;
-
-        public:
-        const int64_t & get_object_mapper() const { return object_mapper; }
-        int64_t & get_mutable_object_mapper() { return object_mapper; }
-        void set_object_mapper(const int64_t & value) { this->object_mapper = value; }
-    };
-
-    class Of {
-        public:
-        Of() = default;
-        virtual ~Of() = default;
-
-        private:
-        int64_t of;
-
-        public:
-        const int64_t & get_of() const { return of; }
-        int64_t & get_mutable_of() { return of; }
-        void set_of(const int64_t & value) { this->of = value; }
-    };
-
-    class Oneway {
-        public:
-        Oneway() = default;
-        virtual ~Oneway() = default;
-
-        private:
-        int64_t oneway;
-
-        public:
-        const int64_t & get_oneway() const { return oneway; }
-        int64_t & get_mutable_oneway() { return oneway; }
-        void set_oneway(const int64_t & value) { this->oneway = value; }
-    };
-
-    class Open {
-        public:
-        Open() = default;
-        virtual ~Open() = default;
-
-        private:
-        int64_t open;
-
-        public:
-        const int64_t & get_open() const { return open; }
-        int64_t & get_mutable_open() { return open; }
-        void set_open(const int64_t & value) { this->open = value; }
-    };
-
-    class Optional {
-        public:
-        Optional() = default;
-        virtual ~Optional() = default;
-
-        private:
-        int64_t optional;
-
-        public:
-        const int64_t & get_optional() const { return optional; }
-        int64_t & get_mutable_optional() { return optional; }
-        void set_optional(const int64_t & value) { this->optional = value; }
-    };
-
-    class Out {
-        public:
-        Out() = default;
-        virtual ~Out() = default;
-
-        private:
-        int64_t out;
-
-        public:
-        const int64_t & get_out() const { return out; }
-        int64_t & get_mutable_out() { return out; }
-        void set_out(const int64_t & value) { this->out = value; }
-    };
-
-    class Package {
-        public:
-        Package() = default;
-        virtual ~Package() = default;
-
-        private:
-        int64_t package;
-
-        public:
-        const int64_t & get_package() const { return package; }
-        int64_t & get_mutable_package() { return package; }
-        void set_package(const int64_t & value) { this->package = value; }
-    };
-
-    class Params {
-        public:
-        Params() = default;
-        virtual ~Params() = default;
-
-        private:
-        int64_t params;
-
-        public:
-        const int64_t & get_params() const { return params; }
-        int64_t & get_mutable_params() { return params; }
-        void set_params(const int64_t & value) { this->params = value; }
-    };
-
-    class Pass {
-        public:
-        Pass() = default;
-        virtual ~Pass() = default;
-
-        private:
-        int64_t pass;
-
-        public:
-        const int64_t & get_pass() const { return pass; }
-        int64_t & get_mutable_pass() { return pass; }
-        void set_pass(const int64_t & value) { this->pass = value; }
-    };
-
-    class Port {
-        public:
-        Port() = default;
-        virtual ~Port() = default;
-
-        private:
-        int64_t port;
-
-        public:
-        const int64_t & get_port() const { return port; }
-        int64_t & get_mutable_port() { return port; }
-        void set_port(const int64_t & value) { this->port = value; }
-    };
-
-    class Postfix {
-        public:
-        Postfix() = default;
-        virtual ~Postfix() = default;
-
-        private:
-        int64_t postfix;
-
-        public:
-        const int64_t & get_postfix() const { return postfix; }
-        int64_t & get_mutable_postfix() { return postfix; }
-        void set_postfix(const int64_t & value) { this->postfix = value; }
-    };
-
-    class Precedence {
-        public:
-        Precedence() = default;
-        virtual ~Precedence() = default;
-
-        private:
-        int64_t precedence;
-
-        public:
-        const int64_t & get_precedence() const { return precedence; }
-        int64_t & get_mutable_precedence() { return precedence; }
-        void set_precedence(const int64_t & value) { this->precedence = value; }
-    };
-
-    class Prefix {
-        public:
-        Prefix() = default;
-        virtual ~Prefix() = default;
-
-        private:
-        int64_t prefix;
-
-        public:
-        const int64_t & get_prefix() const { return prefix; }
-        int64_t & get_mutable_prefix() { return prefix; }
-        void set_prefix(const int64_t & value) { this->prefix = value; }
-    };
-
-    class Print {
-        public:
-        Print() = default;
-        virtual ~Print() = default;
-
-        private:
-        int64_t print;
-
-        public:
-        const int64_t & get_print() const { return print; }
-        int64_t & get_mutable_print() { return print; }
-        void set_print(const int64_t & value) { this->print = value; }
-    };
-
-    class PrintMembers {
-        public:
-        PrintMembers() = default;
-        virtual ~PrintMembers() = default;
-
-        private:
-        int64_t print_members;
-
-        public:
-        const int64_t & get_print_members() const { return print_members; }
-        int64_t & get_mutable_print_members() { return print_members; }
-        void set_print_members(const int64_t & value) { this->print_members = value; }
-    };
-
-    class Printf {
-        public:
-        Printf() = default;
-        virtual ~Printf() = default;
-
-        private:
-        int64_t printf;
-
-        public:
-        const int64_t & get_printf() const { return printf; }
-        int64_t & get_mutable_printf() { return printf; }
-        void set_printf(const int64_t & value) { this->printf = value; }
-    };
-
-    class Protocol {
-        public:
-        Protocol() = default;
-        virtual ~Protocol() = default;
-
-        private:
-        int64_t protocol;
-
-        public:
-        const int64_t & get_protocol() const { return protocol; }
-        int64_t & get_mutable_protocol() { return protocol; }
-        void set_protocol(const int64_t & value) { this->protocol = value; }
-    };
-
-    class SerializerProvider {
-        public:
-        SerializerProvider() = default;
-        virtual ~SerializerProvider() = default;
-
-        private:
-        int64_t serializer_provider;
-
-        public:
-        const int64_t & get_serializer_provider() const { return serializer_provider; }
-        int64_t & get_mutable_serializer_provider() { return serializer_provider; }
-        void set_serializer_provider(const int64_t & value) { this->serializer_provider = value; }
-    };
-
-    class SimpleModule {
-        public:
-        SimpleModule() = default;
-        virtual ~SimpleModule() = default;
-
-        private:
-        int64_t simple_module;
-
-        public:
-        const int64_t & get_simple_module() const { return simple_module; }
-        int64_t & get_mutable_simple_module() { return simple_module; }
-        void set_simple_module(const int64_t & value) { this->simple_module = value; }
-    };
-
-    class StdDeserializer {
-        public:
-        StdDeserializer() = default;
-        virtual ~StdDeserializer() = default;
-
-        private:
-        int64_t std_deserializer;
-
-        public:
-        const int64_t & get_std_deserializer() const { return std_deserializer; }
-        int64_t & get_mutable_std_deserializer() { return std_deserializer; }
-        void set_std_deserializer(const int64_t & value) { this->std_deserializer = value; }
-    };
-
-    class StdSerializer {
-        public:
-        StdSerializer() = default;
-        virtual ~StdSerializer() = default;
-
-        private:
-        int64_t std_serializer;
-
-        public:
-        const int64_t & get_std_serializer() const { return std_serializer; }
-        int64_t & get_mutable_std_serializer() { return std_serializer; }
-        void set_std_serializer(const int64_t & value) { this->std_serializer = value; }
-    };
-
-    class Obj3 {
-        public:
-        Obj3() = default;
-        virtual ~Obj3() = default;
-
-        private:
-        int64_t dummy;
-        Is is;
-        IsoDateTimeOffsetConverter iso_date_time_offset_converter;
-        Iterable iterable;
-        Jdec jdec;
-        Jenc jenc;
-        Jpipe jpipe;
-        Json json;
-        JsonAny json_any;
-        JsonCodingKey json_coding_key;
-        JsonConverter json_converter;
-        JsonDecoder json_decoder;
-        JsonEncoder json_encoder;
-        JsonException json_exception;
-        JsonGenerator json_generator;
-        JsonNode json_node;
-        JsonNull json_null;
-        JsonParser json_parser;
-        JsonReader json_reader;
-        JsonSerializer json_serializer;
-        JsonToken json_token;
-        JsonTokenType json_token_type;
-        JsonWriter json_writer;
-        Lambda lambda;
-        Lazy lazy;
-        Left left;
-        Let let;
-        List list;
-        Lock lock;
-        Map map;
-        MetadataPropertyHandling metadata_property_handling;
-        Mutating mutating;
-        Native native;
-        Newtonsoft newtonsoft;
-        Nil nil;
-        No no;
-        NoSuchMethod no_such_method;
-        Nonatomic nonatomic;
-        None none;
-        Nonlocal nonlocal;
-        Nonmutating nonmutating;
-        NsError ns_error;
-        NsString ns_string;
-        Null null;
-        Number number;
-        Long obj3_long;
-        Module obj3_module;
-        Mutable obj3_mutable;
-        Namespace obj3_namespace;
-        New obj3_new;
-        Noexcept obj3_noexcept;
-        NoneClass obj3_none;
-        Not obj3_not;
-        NotEq obj3_not_eq;
-        NullClass obj3_null;
-        Nullptr obj3_nullptr;
-        Operator obj3_operator;
-        Or obj3_or;
-        OrEq obj3_or_eq;
-        Override obj3_override;
-        Private obj3_private;
-        Protected obj3_protected;
-        ProtocolClass obj3_protocol;
-        Object object;
-        ObjectMapper object_mapper;
-        Of of;
-        Oneway oneway;
-        Open open;
-        Optional optional;
-        Out out;
-        Package package;
-        Params params;
-        Pass pass;
-        Port port;
-        Postfix postfix;
-        Precedence precedence;
-        Prefix prefix;
-        Print print;
-        PrintMembers print_members;
-        Printf printf;
-        Protocol protocol;
-        SerializerProvider serializer_provider;
-        SimpleModule simple_module;
-        StdDeserializer std_deserializer;
-        StdSerializer std_serializer;
+        const Init & get_init() const { return init; }
+        Init & get_mutable_init() { return init; }
+        void set_init(const Init & value) { this->init = value; }
 
-        public:
-        const int64_t & get_dummy() const { return dummy; }
-        int64_t & get_mutable_dummy() { return dummy; }
-        void set_dummy(const int64_t & value) { this->dummy = value; }
+        const Inout & get_inout() const { return inout; }
+        Inout & get_mutable_inout() { return inout; }
+        void set_inout(const Inout & value) { this->inout = value; }
+
+        const Instanceof & get_instanceof() const { return instanceof; }
+        Instanceof & get_mutable_instanceof() { return instanceof; }
+        void set_instanceof(const Instanceof & value) { this->instanceof = value; }
+
+        const Interface & get_interface() const { return interface; }
+        Interface & get_mutable_interface() { return interface; }
+        void set_interface(const Interface & value) { this->interface = value; }
+
+        const Internal & get_internal() const { return internal; }
+        Internal & get_mutable_internal() { return internal; }
+        void set_internal(const Internal & value) { this->internal = value; }
 
         const Is & get_is() const { return is; }
         Is & get_mutable_is() { return is; }
@@ -4095,1215 +3618,1005 @@ namespace quicktype {
         MetadataPropertyHandling & get_mutable_metadata_property_handling() { return metadata_property_handling; }
         void set_metadata_property_handling(const MetadataPropertyHandling & value) { this->metadata_property_handling = value; }
 
-        const Mutating & get_mutating() const { return mutating; }
-        Mutating & get_mutable_mutating() { return mutating; }
-        void set_mutating(const Mutating & value) { this->mutating = value; }
-
-        const Native & get_native() const { return native; }
-        Native & get_mutable_native() { return native; }
-        void set_native(const Native & value) { this->native = value; }
-
-        const Newtonsoft & get_newtonsoft() const { return newtonsoft; }
-        Newtonsoft & get_mutable_newtonsoft() { return newtonsoft; }
-        void set_newtonsoft(const Newtonsoft & value) { this->newtonsoft = value; }
-
-        const Nil & get_nil() const { return nil; }
-        Nil & get_mutable_nil() { return nil; }
-        void set_nil(const Nil & value) { this->nil = value; }
-
-        const No & get_no() const { return no; }
-        No & get_mutable_no() { return no; }
-        void set_no(const No & value) { this->no = value; }
-
-        const NoSuchMethod & get_no_such_method() const { return no_such_method; }
-        NoSuchMethod & get_mutable_no_such_method() { return no_such_method; }
-        void set_no_such_method(const NoSuchMethod & value) { this->no_such_method = value; }
-
-        const Nonatomic & get_nonatomic() const { return nonatomic; }
-        Nonatomic & get_mutable_nonatomic() { return nonatomic; }
-        void set_nonatomic(const Nonatomic & value) { this->nonatomic = value; }
-
-        const None & get_none() const { return none; }
-        None & get_mutable_none() { return none; }
-        void set_none(const None & value) { this->none = value; }
-
-        const Nonlocal & get_nonlocal() const { return nonlocal; }
-        Nonlocal & get_mutable_nonlocal() { return nonlocal; }
-        void set_nonlocal(const Nonlocal & value) { this->nonlocal = value; }
-
-        const Nonmutating & get_nonmutating() const { return nonmutating; }
-        Nonmutating & get_mutable_nonmutating() { return nonmutating; }
-        void set_nonmutating(const Nonmutating & value) { this->nonmutating = value; }
-
-        const NsError & get_ns_error() const { return ns_error; }
-        NsError & get_mutable_ns_error() { return ns_error; }
-        void set_ns_error(const NsError & value) { this->ns_error = value; }
-
-        const NsString & get_ns_string() const { return ns_string; }
-        NsString & get_mutable_ns_string() { return ns_string; }
-        void set_ns_string(const NsString & value) { this->ns_string = value; }
-
-        const Null & get_null() const { return null; }
-        Null & get_mutable_null() { return null; }
-        void set_null(const Null & value) { this->null = value; }
-
-        const Number & get_number() const { return number; }
-        Number & get_mutable_number() { return number; }
-        void set_number(const Number & value) { this->number = value; }
-
-        const Long & get_obj3_long() const { return obj3_long; }
-        Long & get_mutable_obj3_long() { return obj3_long; }
-        void set_obj3_long(const Long & value) { this->obj3_long = value; }
-
-        const Module & get_obj3_module() const { return obj3_module; }
-        Module & get_mutable_obj3_module() { return obj3_module; }
-        void set_obj3_module(const Module & value) { this->obj3_module = value; }
-
-        const Mutable & get_obj3_mutable() const { return obj3_mutable; }
-        Mutable & get_mutable_obj3_mutable() { return obj3_mutable; }
-        void set_obj3_mutable(const Mutable & value) { this->obj3_mutable = value; }
-
-        const Namespace & get_obj3_namespace() const { return obj3_namespace; }
-        Namespace & get_mutable_obj3_namespace() { return obj3_namespace; }
-        void set_obj3_namespace(const Namespace & value) { this->obj3_namespace = value; }
-
-        const New & get_obj3_new() const { return obj3_new; }
-        New & get_mutable_obj3_new() { return obj3_new; }
-        void set_obj3_new(const New & value) { this->obj3_new = value; }
-
-        const Noexcept & get_obj3_noexcept() const { return obj3_noexcept; }
-        Noexcept & get_mutable_obj3_noexcept() { return obj3_noexcept; }
-        void set_obj3_noexcept(const Noexcept & value) { this->obj3_noexcept = value; }
-
-        const NoneClass & get_obj3_none() const { return obj3_none; }
-        NoneClass & get_mutable_obj3_none() { return obj3_none; }
-        void set_obj3_none(const NoneClass & value) { this->obj3_none = value; }
-
-        const Not & get_obj3_not() const { return obj3_not; }
-        Not & get_mutable_obj3_not() { return obj3_not; }
-        void set_obj3_not(const Not & value) { this->obj3_not = value; }
-
-        const NotEq & get_obj3_not_eq() const { return obj3_not_eq; }
-        NotEq & get_mutable_obj3_not_eq() { return obj3_not_eq; }
-        void set_obj3_not_eq(const NotEq & value) { this->obj3_not_eq = value; }
-
-        const NullClass & get_obj3_null() const { return obj3_null; }
-        NullClass & get_mutable_obj3_null() { return obj3_null; }
-        void set_obj3_null(const NullClass & value) { this->obj3_null = value; }
-
-        const Nullptr & get_obj3_nullptr() const { return obj3_nullptr; }
-        Nullptr & get_mutable_obj3_nullptr() { return obj3_nullptr; }
-        void set_obj3_nullptr(const Nullptr & value) { this->obj3_nullptr = value; }
-
-        const Operator & get_obj3_operator() const { return obj3_operator; }
-        Operator & get_mutable_obj3_operator() { return obj3_operator; }
-        void set_obj3_operator(const Operator & value) { this->obj3_operator = value; }
-
-        const Or & get_obj3_or() const { return obj3_or; }
-        Or & get_mutable_obj3_or() { return obj3_or; }
-        void set_obj3_or(const Or & value) { this->obj3_or = value; }
-
-        const OrEq & get_obj3_or_eq() const { return obj3_or_eq; }
-        OrEq & get_mutable_obj3_or_eq() { return obj3_or_eq; }
-        void set_obj3_or_eq(const OrEq & value) { this->obj3_or_eq = value; }
-
-        const Override & get_obj3_override() const { return obj3_override; }
-        Override & get_mutable_obj3_override() { return obj3_override; }
-        void set_obj3_override(const Override & value) { this->obj3_override = value; }
-
-        const Private & get_obj3_private() const { return obj3_private; }
-        Private & get_mutable_obj3_private() { return obj3_private; }
-        void set_obj3_private(const Private & value) { this->obj3_private = value; }
-
-        const Protected & get_obj3_protected() const { return obj3_protected; }
-        Protected & get_mutable_obj3_protected() { return obj3_protected; }
-        void set_obj3_protected(const Protected & value) { this->obj3_protected = value; }
-
-        const ProtocolClass & get_obj3_protocol() const { return obj3_protocol; }
-        ProtocolClass & get_mutable_obj3_protocol() { return obj3_protocol; }
-        void set_obj3_protocol(const ProtocolClass & value) { this->obj3_protocol = value; }
-
-        const Object & get_object() const { return object; }
-        Object & get_mutable_object() { return object; }
-        void set_object(const Object & value) { this->object = value; }
-
-        const ObjectMapper & get_object_mapper() const { return object_mapper; }
-        ObjectMapper & get_mutable_object_mapper() { return object_mapper; }
-        void set_object_mapper(const ObjectMapper & value) { this->object_mapper = value; }
-
-        const Of & get_of() const { return of; }
-        Of & get_mutable_of() { return of; }
-        void set_of(const Of & value) { this->of = value; }
-
-        const Oneway & get_oneway() const { return oneway; }
-        Oneway & get_mutable_oneway() { return oneway; }
-        void set_oneway(const Oneway & value) { this->oneway = value; }
-
-        const Open & get_open() const { return open; }
-        Open & get_mutable_open() { return open; }
-        void set_open(const Open & value) { this->open = value; }
-
-        const Optional & get_optional() const { return optional; }
-        Optional & get_mutable_optional() { return optional; }
-        void set_optional(const Optional & value) { this->optional = value; }
-
-        const Out & get_out() const { return out; }
-        Out & get_mutable_out() { return out; }
-        void set_out(const Out & value) { this->out = value; }
-
-        const Package & get_package() const { return package; }
-        Package & get_mutable_package() { return package; }
-        void set_package(const Package & value) { this->package = value; }
-
-        const Params & get_params() const { return params; }
-        Params & get_mutable_params() { return params; }
-        void set_params(const Params & value) { this->params = value; }
-
-        const Pass & get_pass() const { return pass; }
-        Pass & get_mutable_pass() { return pass; }
-        void set_pass(const Pass & value) { this->pass = value; }
-
-        const Port & get_port() const { return port; }
-        Port & get_mutable_port() { return port; }
-        void set_port(const Port & value) { this->port = value; }
-
-        const Postfix & get_postfix() const { return postfix; }
-        Postfix & get_mutable_postfix() { return postfix; }
-        void set_postfix(const Postfix & value) { this->postfix = value; }
-
-        const Precedence & get_precedence() const { return precedence; }
-        Precedence & get_mutable_precedence() { return precedence; }
-        void set_precedence(const Precedence & value) { this->precedence = value; }
-
-        const Prefix & get_prefix() const { return prefix; }
-        Prefix & get_mutable_prefix() { return prefix; }
-        void set_prefix(const Prefix & value) { this->prefix = value; }
-
-        const Print & get_print() const { return print; }
-        Print & get_mutable_print() { return print; }
-        void set_print(const Print & value) { this->print = value; }
-
-        const PrintMembers & get_print_members() const { return print_members; }
-        PrintMembers & get_mutable_print_members() { return print_members; }
-        void set_print_members(const PrintMembers & value) { this->print_members = value; }
-
-        const Printf & get_printf() const { return printf; }
-        Printf & get_mutable_printf() { return printf; }
-        void set_printf(const Printf & value) { this->printf = value; }
-
-        const Protocol & get_protocol() const { return protocol; }
-        Protocol & get_mutable_protocol() { return protocol; }
-        void set_protocol(const Protocol & value) { this->protocol = value; }
-
-        const SerializerProvider & get_serializer_provider() const { return serializer_provider; }
-        SerializerProvider & get_mutable_serializer_provider() { return serializer_provider; }
-        void set_serializer_provider(const SerializerProvider & value) { this->serializer_provider = value; }
+        const Mutating & get_mutating() const { return mutating; }
+        Mutating & get_mutable_mutating() { return mutating; }
+        void set_mutating(const Mutating & value) { this->mutating = value; }
 
-        const SimpleModule & get_simple_module() const { return simple_module; }
-        SimpleModule & get_mutable_simple_module() { return simple_module; }
-        void set_simple_module(const SimpleModule & value) { this->simple_module = value; }
+        const Native & get_native() const { return native; }
+        Native & get_mutable_native() { return native; }
+        void set_native(const Native & value) { this->native = value; }
 
-        const StdDeserializer & get_std_deserializer() const { return std_deserializer; }
-        StdDeserializer & get_mutable_std_deserializer() { return std_deserializer; }
-        void set_std_deserializer(const StdDeserializer & value) { this->std_deserializer = value; }
+        const Newtonsoft & get_newtonsoft() const { return newtonsoft; }
+        Newtonsoft & get_mutable_newtonsoft() { return newtonsoft; }
+        void set_newtonsoft(const Newtonsoft & value) { this->newtonsoft = value; }
 
-        const StdSerializer & get_std_serializer() const { return std_serializer; }
-        StdSerializer & get_mutable_std_serializer() { return std_serializer; }
-        void set_std_serializer(const StdSerializer & value) { this->std_serializer = value; }
-    };
+        const Nil & get_nil() const { return nil; }
+        Nil & get_mutable_nil() { return nil; }
+        void set_nil(const Nil & value) { this->nil = value; }
 
-    class Public {
-        public:
-        Public() = default;
-        virtual ~Public() = default;
+        const No & get_no() const { return no; }
+        No & get_mutable_no() { return no; }
+        void set_no(const No & value) { this->no = value; }
 
-        private:
-        int64_t public_public;
+        const NoSuchMethod & get_no_such_method() const { return no_such_method; }
+        NoSuchMethod & get_mutable_no_such_method() { return no_such_method; }
+        void set_no_such_method(const NoSuchMethod & value) { this->no_such_method = value; }
 
-        public:
-        const int64_t & get_public_public() const { return public_public; }
-        int64_t & get_mutable_public_public() { return public_public; }
-        void set_public_public(const int64_t & value) { this->public_public = value; }
-    };
+        const Nonatomic & get_nonatomic() const { return nonatomic; }
+        Nonatomic & get_mutable_nonatomic() { return nonatomic; }
+        void set_nonatomic(const Nonatomic & value) { this->nonatomic = value; }
 
-    class Register {
-        public:
-        Register() = default;
-        virtual ~Register() = default;
+        const None & get_none() const { return none; }
+        None & get_mutable_none() { return none; }
+        void set_none(const None & value) { this->none = value; }
 
-        private:
-        int64_t register_register;
+        const Nonlocal & get_nonlocal() const { return nonlocal; }
+        Nonlocal & get_mutable_nonlocal() { return nonlocal; }
+        void set_nonlocal(const Nonlocal & value) { this->nonlocal = value; }
 
-        public:
-        const int64_t & get_register_register() const { return register_register; }
-        int64_t & get_mutable_register_register() { return register_register; }
-        void set_register_register(const int64_t & value) { this->register_register = value; }
-    };
+        const Nonmutating & get_nonmutating() const { return nonmutating; }
+        Nonmutating & get_mutable_nonmutating() { return nonmutating; }
+        void set_nonmutating(const Nonmutating & value) { this->nonmutating = value; }
 
-    class ReinterpretCast {
-        public:
-        ReinterpretCast() = default;
-        virtual ~ReinterpretCast() = default;
+        const NsError & get_ns_error() const { return ns_error; }
+        NsError & get_mutable_ns_error() { return ns_error; }
+        void set_ns_error(const NsError & value) { this->ns_error = value; }
 
-        private:
-        int64_t reinterpret_cast_reinterpret_cast;
+        const NsString & get_ns_string() const { return ns_string; }
+        NsString & get_mutable_ns_string() { return ns_string; }
+        void set_ns_string(const NsString & value) { this->ns_string = value; }
 
-        public:
-        const int64_t & get_reinterpret_cast_reinterpret_cast() const { return reinterpret_cast_reinterpret_cast; }
-        int64_t & get_mutable_reinterpret_cast_reinterpret_cast() { return reinterpret_cast_reinterpret_cast; }
-        void set_reinterpret_cast_reinterpret_cast(const int64_t & value) { this->reinterpret_cast_reinterpret_cast = value; }
-    };
+        const Null & get_null() const { return null; }
+        Null & get_mutable_null() { return null; }
+        void set_null(const Null & value) { this->null = value; }
 
-    class Requires {
-        public:
-        Requires() = default;
-        virtual ~Requires() = default;
+        const Import & get_obj3_import() const { return obj3_import; }
+        Import & get_mutable_obj3_import() { return obj3_import; }
+        void set_obj3_import(const Import & value) { this->obj3_import = value; }
 
-        private:
-        int64_t requires_requires;
+        const Inline & get_obj3_inline() const { return obj3_inline; }
+        Inline & get_mutable_obj3_inline() { return obj3_inline; }
+        void set_obj3_inline(const Inline & value) { this->obj3_inline = value; }
 
-        public:
-        const int64_t & get_requires_requires() const { return requires_requires; }
-        int64_t & get_mutable_requires_requires() { return requires_requires; }
-        void set_requires_requires(const int64_t & value) { this->requires_requires = value; }
-    };
+        const Int & get_obj3_int() const { return obj3_int; }
+        Int & get_mutable_obj3_int() { return obj3_int; }
+        void set_obj3_int(const Int & value) { this->obj3_int = value; }
 
-    class Return {
-        public:
-        Return() = default;
-        virtual ~Return() = default;
+        const Long & get_obj3_long() const { return obj3_long; }
+        Long & get_mutable_obj3_long() { return obj3_long; }
+        void set_obj3_long(const Long & value) { this->obj3_long = value; }
 
-        private:
-        int64_t return_return;
+        const Module & get_obj3_module() const { return obj3_module; }
+        Module & get_mutable_obj3_module() { return obj3_module; }
+        void set_obj3_module(const Module & value) { this->obj3_module = value; }
 
-        public:
-        const int64_t & get_return_return() const { return return_return; }
-        int64_t & get_mutable_return_return() { return return_return; }
-        void set_return_return(const int64_t & value) { this->return_return = value; }
-    };
+        const Mutable & get_obj3_mutable() const { return obj3_mutable; }
+        Mutable & get_mutable_obj3_mutable() { return obj3_mutable; }
+        void set_obj3_mutable(const Mutable & value) { this->obj3_mutable = value; }
 
-    class SelfClass {
-        public:
-        SelfClass() = default;
-        virtual ~SelfClass() = default;
+        const Namespace & get_obj3_namespace() const { return obj3_namespace; }
+        Namespace & get_mutable_obj3_namespace() { return obj3_namespace; }
+        void set_obj3_namespace(const Namespace & value) { this->obj3_namespace = value; }
 
-        private:
-        int64_t self;
+        const New & get_obj3_new() const { return obj3_new; }
+        New & get_mutable_obj3_new() { return obj3_new; }
+        void set_obj3_new(const New & value) { this->obj3_new = value; }
 
-        public:
-        const int64_t & get_self() const { return self; }
-        int64_t & get_mutable_self() { return self; }
-        void set_self(const int64_t & value) { this->self = value; }
-    };
+        const Noexcept & get_obj3_noexcept() const { return obj3_noexcept; }
+        Noexcept & get_mutable_obj3_noexcept() { return obj3_noexcept; }
+        void set_obj3_noexcept(const Noexcept & value) { this->obj3_noexcept = value; }
 
-    class Short {
-        public:
-        Short() = default;
-        virtual ~Short() = default;
+        const NoneClass & get_obj3_none() const { return obj3_none; }
+        NoneClass & get_mutable_obj3_none() { return obj3_none; }
+        void set_obj3_none(const NoneClass & value) { this->obj3_none = value; }
 
-        private:
-        int64_t short_short;
+        const Not & get_obj3_not() const { return obj3_not; }
+        Not & get_mutable_obj3_not() { return obj3_not; }
+        void set_obj3_not(const Not & value) { this->obj3_not = value; }
 
-        public:
-        const int64_t & get_short_short() const { return short_short; }
-        int64_t & get_mutable_short_short() { return short_short; }
-        void set_short_short(const int64_t & value) { this->short_short = value; }
+        const NotEq & get_obj3_not_eq() const { return obj3_not_eq; }
+        NotEq & get_mutable_obj3_not_eq() { return obj3_not_eq; }
+        void set_obj3_not_eq(const NotEq & value) { this->obj3_not_eq = value; }
+
+        const NullClass & get_obj3_null() const { return obj3_null; }
+        NullClass & get_mutable_obj3_null() { return obj3_null; }
+        void set_obj3_null(const NullClass & value) { this->obj3_null = value; }
     };
 
-    class Signed {
+    class Number {
         public:
-        Signed() = default;
-        virtual ~Signed() = default;
+        Number() = default;
+        virtual ~Number() = default;
 
         private:
-        int64_t signed_signed;
+        int64_t number;
 
         public:
-        const int64_t & get_signed_signed() const { return signed_signed; }
-        int64_t & get_mutable_signed_signed() { return signed_signed; }
-        void set_signed_signed(const int64_t & value) { this->signed_signed = value; }
+        const int64_t & get_number() const { return number; }
+        int64_t & get_mutable_number() { return number; }
+        void set_number(const int64_t & value) { this->number = value; }
     };
 
-    class Sizeof {
+    class Nullptr {
         public:
-        Sizeof() = default;
-        virtual ~Sizeof() = default;
+        Nullptr() = default;
+        virtual ~Nullptr() = default;
 
         private:
-        int64_t sizeof_sizeof;
+        int64_t nullptr_nullptr;
 
         public:
-        const int64_t & get_sizeof_sizeof() const { return sizeof_sizeof; }
-        int64_t & get_mutable_sizeof_sizeof() { return sizeof_sizeof; }
-        void set_sizeof_sizeof(const int64_t & value) { this->sizeof_sizeof = value; }
+        const int64_t & get_nullptr_nullptr() const { return nullptr_nullptr; }
+        int64_t & get_mutable_nullptr_nullptr() { return nullptr_nullptr; }
+        void set_nullptr_nullptr(const int64_t & value) { this->nullptr_nullptr = value; }
     };
 
-    class Static {
+    class Operator {
         public:
-        Static() = default;
-        virtual ~Static() = default;
+        Operator() = default;
+        virtual ~Operator() = default;
 
         private:
-        int64_t static_static;
+        int64_t operator_operator;
 
         public:
-        const int64_t & get_static_static() const { return static_static; }
-        int64_t & get_mutable_static_static() { return static_static; }
-        void set_static_static(const int64_t & value) { this->static_static = value; }
+        const int64_t & get_operator_operator() const { return operator_operator; }
+        int64_t & get_mutable_operator_operator() { return operator_operator; }
+        void set_operator_operator(const int64_t & value) { this->operator_operator = value; }
     };
 
-    class StaticAssert {
+    class Or {
         public:
-        StaticAssert() = default;
-        virtual ~StaticAssert() = default;
+        Or() = default;
+        virtual ~Or() = default;
 
         private:
-        int64_t static_assert_static_assert;
+        int64_t or_or;
 
         public:
-        const int64_t & get_static_assert_static_assert() const { return static_assert_static_assert; }
-        int64_t & get_mutable_static_assert_static_assert() { return static_assert_static_assert; }
-        void set_static_assert_static_assert(const int64_t & value) { this->static_assert_static_assert = value; }
+        const int64_t & get_or_or() const { return or_or; }
+        int64_t & get_mutable_or_or() { return or_or; }
+        void set_or_or(const int64_t & value) { this->or_or = value; }
     };
 
-    class StaticCast {
+    class OrEq {
         public:
-        StaticCast() = default;
-        virtual ~StaticCast() = default;
+        OrEq() = default;
+        virtual ~OrEq() = default;
 
         private:
-        int64_t static_cast_static_cast;
+        int64_t or_eq_or_eq;
 
         public:
-        const int64_t & get_static_cast_static_cast() const { return static_cast_static_cast; }
-        int64_t & get_mutable_static_cast_static_cast() { return static_cast_static_cast; }
-        void set_static_cast_static_cast(const int64_t & value) { this->static_cast_static_cast = value; }
+        const int64_t & get_or_eq_or_eq() const { return or_eq_or_eq; }
+        int64_t & get_mutable_or_eq_or_eq() { return or_eq_or_eq; }
+        void set_or_eq_or_eq(const int64_t & value) { this->or_eq_or_eq = value; }
     };
 
-    class Struct {
+    class Override {
         public:
-        Struct() = default;
-        virtual ~Struct() = default;
+        Override() = default;
+        virtual ~Override() = default;
 
         private:
-        int64_t struct_struct;
+        int64_t override_override;
 
         public:
-        const int64_t & get_struct_struct() const { return struct_struct; }
-        int64_t & get_mutable_struct_struct() { return struct_struct; }
-        void set_struct_struct(const int64_t & value) { this->struct_struct = value; }
+        const int64_t & get_override_override() const { return override_override; }
+        int64_t & get_mutable_override_override() { return override_override; }
+        void set_override_override(const int64_t & value) { this->override_override = value; }
     };
 
-    class Switch {
+    class Private {
         public:
-        Switch() = default;
-        virtual ~Switch() = default;
+        Private() = default;
+        virtual ~Private() = default;
 
         private:
-        int64_t switch_switch;
-
-        public:
-        const int64_t & get_switch_switch() const { return switch_switch; }
-        int64_t & get_mutable_switch_switch() { return switch_switch; }
-        void set_switch_switch(const int64_t & value) { this->switch_switch = value; }
+        int64_t private_private;
+
+        public:
+        const int64_t & get_private_private() const { return private_private; }
+        int64_t & get_mutable_private_private() { return private_private; }
+        void set_private_private(const int64_t & value) { this->private_private = value; }
     };
 
-    class Synchronized {
+    class Protected {
         public:
-        Synchronized() = default;
-        virtual ~Synchronized() = default;
+        Protected() = default;
+        virtual ~Protected() = default;
 
         private:
-        int64_t synchronized_synchronized;
+        int64_t protected_protected;
 
         public:
-        const int64_t & get_synchronized_synchronized() const { return synchronized_synchronized; }
-        int64_t & get_mutable_synchronized_synchronized() { return synchronized_synchronized; }
-        void set_synchronized_synchronized(const int64_t & value) { this->synchronized_synchronized = value; }
+        const int64_t & get_protected_protected() const { return protected_protected; }
+        int64_t & get_mutable_protected_protected() { return protected_protected; }
+        void set_protected_protected(const int64_t & value) { this->protected_protected = value; }
     };
 
-    class Template {
+    class ProtocolClass {
         public:
-        Template() = default;
-        virtual ~Template() = default;
+        ProtocolClass() = default;
+        virtual ~ProtocolClass() = default;
 
         private:
-        int64_t template_template;
+        int64_t protocol;
 
         public:
-        const int64_t & get_template_template() const { return template_template; }
-        int64_t & get_mutable_template_template() { return template_template; }
-        void set_template_template(const int64_t & value) { this->template_template = value; }
+        const int64_t & get_protocol() const { return protocol; }
+        int64_t & get_mutable_protocol() { return protocol; }
+        void set_protocol(const int64_t & value) { this->protocol = value; }
     };
 
-    class This {
+    class Public {
         public:
-        This() = default;
-        virtual ~This() = default;
+        Public() = default;
+        virtual ~Public() = default;
 
         private:
-        int64_t this_this;
+        int64_t public_public;
 
         public:
-        const int64_t & get_this_this() const { return this_this; }
-        int64_t & get_mutable_this_this() { return this_this; }
-        void set_this_this(const int64_t & value) { this->this_this = value; }
+        const int64_t & get_public_public() const { return public_public; }
+        int64_t & get_mutable_public_public() { return public_public; }
+        void set_public_public(const int64_t & value) { this->public_public = value; }
     };
 
-    class ThreadLocal {
+    class Register {
         public:
-        ThreadLocal() = default;
-        virtual ~ThreadLocal() = default;
+        Register() = default;
+        virtual ~Register() = default;
 
         private:
-        int64_t thread_local_thread_local;
+        int64_t register_register;
 
         public:
-        const int64_t & get_thread_local_thread_local() const { return thread_local_thread_local; }
-        int64_t & get_mutable_thread_local_thread_local() { return thread_local_thread_local; }
-        void set_thread_local_thread_local(const int64_t & value) { this->thread_local_thread_local = value; }
+        const int64_t & get_register_register() const { return register_register; }
+        int64_t & get_mutable_register_register() { return register_register; }
+        void set_register_register(const int64_t & value) { this->register_register = value; }
     };
 
-    class Throw {
+    class ReinterpretCast {
         public:
-        Throw() = default;
-        virtual ~Throw() = default;
+        ReinterpretCast() = default;
+        virtual ~ReinterpretCast() = default;
 
         private:
-        int64_t throw_throw;
+        int64_t reinterpret_cast_reinterpret_cast;
 
         public:
-        const int64_t & get_throw_throw() const { return throw_throw; }
-        int64_t & get_mutable_throw_throw() { return throw_throw; }
-        void set_throw_throw(const int64_t & value) { this->throw_throw = value; }
+        const int64_t & get_reinterpret_cast_reinterpret_cast() const { return reinterpret_cast_reinterpret_cast; }
+        int64_t & get_mutable_reinterpret_cast_reinterpret_cast() { return reinterpret_cast_reinterpret_cast; }
+        void set_reinterpret_cast_reinterpret_cast(const int64_t & value) { this->reinterpret_cast_reinterpret_cast = value; }
     };
 
-    class True {
+    class Requires {
         public:
-        True() = default;
-        virtual ~True() = default;
+        Requires() = default;
+        virtual ~Requires() = default;
 
         private:
-        int64_t true_true;
+        int64_t requires_requires;
 
         public:
-        const int64_t & get_true_true() const { return true_true; }
-        int64_t & get_mutable_true_true() { return true_true; }
-        void set_true_true(const int64_t & value) { this->true_true = value; }
+        const int64_t & get_requires_requires() const { return requires_requires; }
+        int64_t & get_mutable_requires_requires() { return requires_requires; }
+        void set_requires_requires(const int64_t & value) { this->requires_requires = value; }
     };
 
-    class Try {
+    class Return {
         public:
-        Try() = default;
-        virtual ~Try() = default;
+        Return() = default;
+        virtual ~Return() = default;
 
         private:
-        int64_t try_try;
+        int64_t return_return;
 
         public:
-        const int64_t & get_try_try() const { return try_try; }
-        int64_t & get_mutable_try_try() { return try_try; }
-        void set_try_try(const int64_t & value) { this->try_try = value; }
+        const int64_t & get_return_return() const { return return_return; }
+        int64_t & get_mutable_return_return() { return return_return; }
+        void set_return_return(const int64_t & value) { this->return_return = value; }
     };
 
-    class TypeClass {
+    class SelfClass {
         public:
-        TypeClass() = default;
-        virtual ~TypeClass() = default;
+        SelfClass() = default;
+        virtual ~SelfClass() = default;
 
         private:
-        int64_t type;
+        int64_t self;
 
         public:
-        const int64_t & get_type() const { return type; }
-        int64_t & get_mutable_type() { return type; }
-        void set_type(const int64_t & value) { this->type = value; }
+        const int64_t & get_self() const { return self; }
+        int64_t & get_mutable_self() { return self; }
+        void set_self(const int64_t & value) { this->self = value; }
     };
 
-    class Typedef {
+    class Short {
         public:
-        Typedef() = default;
-        virtual ~Typedef() = default;
+        Short() = default;
+        virtual ~Short() = default;
 
         private:
-        int64_t typedef_typedef;
+        int64_t short_short;
 
         public:
-        const int64_t & get_typedef_typedef() const { return typedef_typedef; }
-        int64_t & get_mutable_typedef_typedef() { return typedef_typedef; }
-        void set_typedef_typedef(const int64_t & value) { this->typedef_typedef = value; }
+        const int64_t & get_short_short() const { return short_short; }
+        int64_t & get_mutable_short_short() { return short_short; }
+        void set_short_short(const int64_t & value) { this->short_short = value; }
     };
 
-    class Typeid {
+    class Signed {
         public:
-        Typeid() = default;
-        virtual ~Typeid() = default;
+        Signed() = default;
+        virtual ~Signed() = default;
 
         private:
-        int64_t typeid_typeid;
+        int64_t signed_signed;
 
         public:
-        const int64_t & get_typeid_typeid() const { return typeid_typeid; }
-        int64_t & get_mutable_typeid_typeid() { return typeid_typeid; }
-        void set_typeid_typeid(const int64_t & value) { this->typeid_typeid = value; }
+        const int64_t & get_signed_signed() const { return signed_signed; }
+        int64_t & get_mutable_signed_signed() { return signed_signed; }
+        void set_signed_signed(const int64_t & value) { this->signed_signed = value; }
     };
 
-    class Typename {
+    class Sizeof {
         public:
-        Typename() = default;
-        virtual ~Typename() = default;
+        Sizeof() = default;
+        virtual ~Sizeof() = default;
 
         private:
-        int64_t typename_typename;
+        int64_t sizeof_sizeof;
 
         public:
-        const int64_t & get_typename_typename() const { return typename_typename; }
-        int64_t & get_mutable_typename_typename() { return typename_typename; }
-        void set_typename_typename(const int64_t & value) { this->typename_typename = value; }
+        const int64_t & get_sizeof_sizeof() const { return sizeof_sizeof; }
+        int64_t & get_mutable_sizeof_sizeof() { return sizeof_sizeof; }
+        void set_sizeof_sizeof(const int64_t & value) { this->sizeof_sizeof = value; }
     };
 
-    class TrueClass {
+    class Static {
         public:
-        TrueClass() = default;
-        virtual ~TrueClass() = default;
+        Static() = default;
+        virtual ~Static() = default;
 
         private:
-        int64_t true_true;
+        int64_t static_static;
 
         public:
-        const int64_t & get_true_true() const { return true_true; }
-        int64_t & get_mutable_true_true() { return true_true; }
-        void set_true_true(const int64_t & value) { this->true_true = value; }
+        const int64_t & get_static_static() const { return static_static; }
+        int64_t & get_mutable_static_static() { return static_static; }
+        void set_static_static(const int64_t & value) { this->static_static = value; }
     };
 
-    class Quicktype {
+    class StaticAssert {
         public:
-        Quicktype() = default;
-        virtual ~Quicktype() = default;
+        StaticAssert() = default;
+        virtual ~StaticAssert() = default;
 
         private:
-        int64_t quicktype;
+        int64_t static_assert_static_assert;
 
         public:
-        const int64_t & get_quicktype() const { return quicktype; }
-        int64_t & get_mutable_quicktype() { return quicktype; }
-        void set_quicktype(const int64_t & value) { this->quicktype = value; }
+        const int64_t & get_static_assert_static_assert() const { return static_assert_static_assert; }
+        int64_t & get_mutable_static_assert_static_assert() { return static_assert_static_assert; }
+        void set_static_assert_static_assert(const int64_t & value) { this->static_assert_static_assert = value; }
     };
 
-    class Raise {
+    class Object {
         public:
-        Raise() = default;
-        virtual ~Raise() = default;
+        Object() = default;
+        virtual ~Object() = default;
 
         private:
-        int64_t raise;
+        int64_t object;
 
         public:
-        const int64_t & get_raise() const { return raise; }
-        int64_t & get_mutable_raise() { return raise; }
-        void set_raise(const int64_t & value) { this->raise = value; }
+        const int64_t & get_object() const { return object; }
+        int64_t & get_mutable_object() { return object; }
+        void set_object(const int64_t & value) { this->object = value; }
     };
 
-    class Range {
+    class ObjectMapper {
         public:
-        Range() = default;
-        virtual ~Range() = default;
+        ObjectMapper() = default;
+        virtual ~ObjectMapper() = default;
 
         private:
-        int64_t range;
+        int64_t object_mapper;
 
         public:
-        const int64_t & get_range() const { return range; }
-        int64_t & get_mutable_range() { return range; }
-        void set_range(const int64_t & value) { this->range = value; }
+        const int64_t & get_object_mapper() const { return object_mapper; }
+        int64_t & get_mutable_object_mapper() { return object_mapper; }
+        void set_object_mapper(const int64_t & value) { this->object_mapper = value; }
     };
 
-    class Readonly {
+    class Of {
         public:
-        Readonly() = default;
-        virtual ~Readonly() = default;
+        Of() = default;
+        virtual ~Of() = default;
 
         private:
-        int64_t readonly;
+        int64_t of;
 
         public:
-        const int64_t & get_readonly() const { return readonly; }
-        int64_t & get_mutable_readonly() { return readonly; }
-        void set_readonly(const int64_t & value) { this->readonly = value; }
+        const int64_t & get_of() const { return of; }
+        int64_t & get_mutable_of() { return of; }
+        void set_of(const int64_t & value) { this->of = value; }
     };
 
-    class Ref {
+    class Oneway {
         public:
-        Ref() = default;
-        virtual ~Ref() = default;
+        Oneway() = default;
+        virtual ~Oneway() = default;
 
         private:
-        int64_t ref;
+        int64_t oneway;
 
         public:
-        const int64_t & get_ref() const { return ref; }
-        int64_t & get_mutable_ref() { return ref; }
-        void set_ref(const int64_t & value) { this->ref = value; }
+        const int64_t & get_oneway() const { return oneway; }
+        int64_t & get_mutable_oneway() { return oneway; }
+        void set_oneway(const int64_t & value) { this->oneway = value; }
     };
 
-    class RegExp {
+    class Open {
         public:
-        RegExp() = default;
-        virtual ~RegExp() = default;
+        Open() = default;
+        virtual ~Open() = default;
 
         private:
-        std::string reg_exp;
-
-        public:
-        const std::string & get_reg_exp() const { return reg_exp; }
-        std::string & get_mutable_reg_exp() { return reg_exp; }
-        void set_reg_exp(const std::string & value) { this->reg_exp = value; }
+        int64_t open;
+
+        public:
+        const int64_t & get_open() const { return open; }
+        int64_t & get_mutable_open() { return open; }
+        void set_open(const int64_t & value) { this->open = value; }
     };
 
-    class Repeat {
+    class Optional {
         public:
-        Repeat() = default;
-        virtual ~Repeat() = default;
+        Optional() = default;
+        virtual ~Optional() = default;
 
         private:
-        int64_t repeat;
+        int64_t optional;
 
         public:
-        const int64_t & get_repeat() const { return repeat; }
-        int64_t & get_mutable_repeat() { return repeat; }
-        void set_repeat(const int64_t & value) { this->repeat = value; }
+        const int64_t & get_optional() const { return optional; }
+        int64_t & get_mutable_optional() { return optional; }
+        void set_optional(const int64_t & value) { this->optional = value; }
     };
 
-    class Require {
+    class Out {
         public:
-        Require() = default;
-        virtual ~Require() = default;
+        Out() = default;
+        virtual ~Out() = default;
 
         private:
-        int64_t require;
+        int64_t out;
 
         public:
-        const int64_t & get_require() const { return require; }
-        int64_t & get_mutable_require() { return require; }
-        void set_require(const int64_t & value) { this->require = value; }
+        const int64_t & get_out() const { return out; }
+        int64_t & get_mutable_out() { return out; }
+        void set_out(const int64_t & value) { this->out = value; }
     };
 
-    class Required {
+    class Package {
         public:
-        Required() = default;
-        virtual ~Required() = default;
+        Package() = default;
+        virtual ~Package() = default;
 
         private:
-        int64_t required;
+        int64_t package;
 
         public:
-        const int64_t & get_required() const { return required; }
-        int64_t & get_mutable_required() { return required; }
-        void set_required(const int64_t & value) { this->required = value; }
+        const int64_t & get_package() const { return package; }
+        int64_t & get_mutable_package() { return package; }
+        void set_package(const int64_t & value) { this->package = value; }
     };
 
-    class Restrict {
+    class Params {
         public:
-        Restrict() = default;
-        virtual ~Restrict() = default;
+        Params() = default;
+        virtual ~Params() = default;
 
         private:
-        int64_t restrict;
+        int64_t params;
 
         public:
-        const int64_t & get_restrict() const { return restrict; }
-        int64_t & get_mutable_restrict() { return restrict; }
-        void set_restrict(const int64_t & value) { this->restrict = value; }
+        const int64_t & get_params() const { return params; }
+        int64_t & get_mutable_params() { return params; }
+        void set_params(const int64_t & value) { this->params = value; }
     };
 
-    class Retain {
+    class Pass {
         public:
-        Retain() = default;
-        virtual ~Retain() = default;
+        Pass() = default;
+        virtual ~Pass() = default;
 
         private:
-        int64_t retain;
+        int64_t pass;
 
         public:
-        const int64_t & get_retain() const { return retain; }
-        int64_t & get_mutable_retain() { return retain; }
-        void set_retain(const int64_t & value) { this->retain = value; }
+        const int64_t & get_pass() const { return pass; }
+        int64_t & get_mutable_pass() { return pass; }
+        void set_pass(const int64_t & value) { this->pass = value; }
     };
 
-    class Rethrows {
+    class Port {
         public:
-        Rethrows() = default;
-        virtual ~Rethrows() = default;
+        Port() = default;
+        virtual ~Port() = default;
 
         private:
-        int64_t rethrows;
+        int64_t port;
 
         public:
-        const int64_t & get_rethrows() const { return rethrows; }
-        int64_t & get_mutable_rethrows() { return rethrows; }
-        void set_rethrows(const int64_t & value) { this->rethrows = value; }
+        const int64_t & get_port() const { return port; }
+        int64_t & get_mutable_port() { return port; }
+        void set_port(const int64_t & value) { this->port = value; }
     };
 
-    class Right {
+    class Postfix {
         public:
-        Right() = default;
-        virtual ~Right() = default;
+        Postfix() = default;
+        virtual ~Postfix() = default;
 
         private:
-        int64_t right;
+        int64_t postfix;
 
         public:
-        const int64_t & get_right() const { return right; }
-        int64_t & get_mutable_right() { return right; }
-        void set_right(const int64_t & value) { this->right = value; }
+        const int64_t & get_postfix() const { return postfix; }
+        int64_t & get_mutable_postfix() { return postfix; }
+        void set_postfix(const int64_t & value) { this->postfix = value; }
     };
 
-    class RuntimeType {
+    class Precedence {
         public:
-        RuntimeType() = default;
-        virtual ~RuntimeType() = default;
+        Precedence() = default;
+        virtual ~Precedence() = default;
 
         private:
-        int64_t runtime_type;
+        int64_t precedence;
 
         public:
-        const int64_t & get_runtime_type() const { return runtime_type; }
-        int64_t & get_mutable_runtime_type() { return runtime_type; }
-        void set_runtime_type(const int64_t & value) { this->runtime_type = value; }
+        const int64_t & get_precedence() const { return precedence; }
+        int64_t & get_mutable_precedence() { return precedence; }
+        void set_precedence(const int64_t & value) { this->precedence = value; }
     };
 
-    class S {
+    class Prefix {
         public:
-        S() = default;
-        virtual ~S() = default;
+        Prefix() = default;
+        virtual ~Prefix() = default;
 
         private:
-        int64_t s;
+        int64_t prefix;
 
         public:
-        const int64_t & get_s() const { return s; }
-        int64_t & get_mutable_s() { return s; }
-        void set_s(const int64_t & value) { this->s = value; }
+        const int64_t & get_prefix() const { return prefix; }
+        int64_t & get_mutable_prefix() { return prefix; }
+        void set_prefix(const int64_t & value) { this->prefix = value; }
     };
 
-    class Sbyte {
+    class Print {
         public:
-        Sbyte() = default;
-        virtual ~Sbyte() = default;
+        Print() = default;
+        virtual ~Print() = default;
 
         private:
-        int64_t sbyte;
+        int64_t print;
 
         public:
-        const int64_t & get_sbyte() const { return sbyte; }
-        int64_t & get_mutable_sbyte() { return sbyte; }
-        void set_sbyte(const int64_t & value) { this->sbyte = value; }
+        const int64_t & get_print() const { return print; }
+        int64_t & get_mutable_print() { return print; }
+        void set_print(const int64_t & value) { this->print = value; }
     };
 
-    class Sealed {
+    class PrintMembers {
         public:
-        Sealed() = default;
-        virtual ~Sealed() = default;
+        PrintMembers() = default;
+        virtual ~PrintMembers() = default;
 
         private:
-        int64_t sealed;
+        int64_t print_members;
 
         public:
-        const int64_t & get_sealed() const { return sealed; }
-        int64_t & get_mutable_sealed() { return sealed; }
-        void set_sealed(const int64_t & value) { this->sealed = value; }
+        const int64_t & get_print_members() const { return print_members; }
+        int64_t & get_mutable_print_members() { return print_members; }
+        void set_print_members(const int64_t & value) { this->print_members = value; }
     };
 
-    class Sel {
+    class Printf {
         public:
-        Sel() = default;
-        virtual ~Sel() = default;
+        Printf() = default;
+        virtual ~Printf() = default;
 
         private:
-        int64_t sel;
+        int64_t printf;
 
         public:
-        const int64_t & get_sel() const { return sel; }
-        int64_t & get_mutable_sel() { return sel; }
-        void set_sel(const int64_t & value) { this->sel = value; }
+        const int64_t & get_printf() const { return printf; }
+        int64_t & get_mutable_printf() { return printf; }
+        void set_printf(const int64_t & value) { this->printf = value; }
     };
 
-    class Select {
+    class Protocol {
         public:
-        Select() = default;
-        virtual ~Select() = default;
+        Protocol() = default;
+        virtual ~Protocol() = default;
 
         private:
-        int64_t select;
+        int64_t protocol;
 
         public:
-        const int64_t & get_select() const { return select; }
-        int64_t & get_mutable_select() { return select; }
-        void set_select(const int64_t & value) { this->select = value; }
+        const int64_t & get_protocol() const { return protocol; }
+        int64_t & get_mutable_protocol() { return protocol; }
+        void set_protocol(const int64_t & value) { this->protocol = value; }
     };
 
-    class Self {
+    class Quicktype {
         public:
-        Self() = default;
-        virtual ~Self() = default;
+        Quicktype() = default;
+        virtual ~Quicktype() = default;
 
         private:
-        int64_t self;
+        int64_t quicktype;
 
         public:
-        const int64_t & get_self() const { return self; }
-        int64_t & get_mutable_self() { return self; }
-        void set_self(const int64_t & value) { this->self = value; }
+        const int64_t & get_quicktype() const { return quicktype; }
+        int64_t & get_mutable_quicktype() { return quicktype; }
+        void set_quicktype(const int64_t & value) { this->quicktype = value; }
     };
 
-    class Serialize {
+    class Raise {
         public:
-        Serialize() = default;
-        virtual ~Serialize() = default;
+        Raise() = default;
+        virtual ~Raise() = default;
 
         private:
-        int64_t serialize;
+        int64_t raise;
 
         public:
-        const int64_t & get_serialize() const { return serialize; }
-        int64_t & get_mutable_serialize() { return serialize; }
-        void set_serialize(const int64_t & value) { this->serialize = value; }
+        const int64_t & get_raise() const { return raise; }
+        int64_t & get_mutable_raise() { return raise; }
+        void set_raise(const int64_t & value) { this->raise = value; }
     };
 
-    class Set {
+    class Range {
         public:
-        Set() = default;
-        virtual ~Set() = default;
+        Range() = default;
+        virtual ~Range() = default;
 
         private:
-        int64_t set;
+        int64_t range;
 
         public:
-        const int64_t & get_set() const { return set; }
-        int64_t & get_mutable_set() { return set; }
-        void set_set(const int64_t & value) { this->set = value; }
+        const int64_t & get_range() const { return range; }
+        int64_t & get_mutable_range() { return range; }
+        void set_range(const int64_t & value) { this->range = value; }
     };
 
-    class Stackalloc {
+    class Readonly {
         public:
-        Stackalloc() = default;
-        virtual ~Stackalloc() = default;
+        Readonly() = default;
+        virtual ~Readonly() = default;
 
         private:
-        int64_t stackalloc;
+        int64_t readonly;
 
         public:
-        const int64_t & get_stackalloc() const { return stackalloc; }
-        int64_t & get_mutable_stackalloc() { return stackalloc; }
-        void set_stackalloc(const int64_t & value) { this->stackalloc = value; }
+        const int64_t & get_readonly() const { return readonly; }
+        int64_t & get_mutable_readonly() { return readonly; }
+        void set_readonly(const int64_t & value) { this->readonly = value; }
     };
 
-    class Standards {
+    class Ref {
         public:
-        Standards() = default;
-        virtual ~Standards() = default;
+        Ref() = default;
+        virtual ~Ref() = default;
 
         private:
-        int64_t standards;
-
-        public:
-        const int64_t & get_standards() const { return standards; }
-        int64_t & get_mutable_standards() { return standards; }
-        void set_standards(const int64_t & value) { this->standards = value; }
+        int64_t ref;
+
+        public:
+        const int64_t & get_ref() const { return ref; }
+        int64_t & get_mutable_ref() { return ref; }
+        void set_ref(const int64_t & value) { this->ref = value; }
     };
 
-    class Strictfp {
+    class RegExp {
         public:
-        Strictfp() = default;
-        virtual ~Strictfp() = default;
+        RegExp() = default;
+        virtual ~RegExp() = default;
 
         private:
-        int64_t strictfp;
+        std::string reg_exp;
 
         public:
-        const int64_t & get_strictfp() const { return strictfp; }
-        int64_t & get_mutable_strictfp() { return strictfp; }
-        void set_strictfp(const int64_t & value) { this->strictfp = value; }
+        const std::string & get_reg_exp() const { return reg_exp; }
+        std::string & get_mutable_reg_exp() { return reg_exp; }
+        void set_reg_exp(const std::string & value) { this->reg_exp = value; }
     };
 
-    class String {
+    class Repeat {
         public:
-        String() = default;
-        virtual ~String() = default;
+        Repeat() = default;
+        virtual ~Repeat() = default;
 
         private:
-        int64_t string;
+        int64_t repeat;
 
         public:
-        const int64_t & get_string() const { return string; }
-        int64_t & get_mutable_string() { return string; }
-        void set_string(const int64_t & value) { this->string = value; }
+        const int64_t & get_repeat() const { return repeat; }
+        int64_t & get_mutable_repeat() { return repeat; }
+        void set_repeat(const int64_t & value) { this->repeat = value; }
     };
 
-    class Subscript {
+    class Require {
         public:
-        Subscript() = default;
-        virtual ~Subscript() = default;
+        Require() = default;
+        virtual ~Require() = default;
 
         private:
-        int64_t subscript;
+        int64_t require;
 
         public:
-        const int64_t & get_subscript() const { return subscript; }
-        int64_t & get_mutable_subscript() { return subscript; }
-        void set_subscript(const int64_t & value) { this->subscript = value; }
+        const int64_t & get_require() const { return require; }
+        int64_t & get_mutable_require() { return require; }
+        void set_require(const int64_t & value) { this->require = value; }
     };
 
-    class Super {
+    class Required {
         public:
-        Super() = default;
-        virtual ~Super() = default;
+        Required() = default;
+        virtual ~Required() = default;
 
         private:
-        int64_t super;
+        int64_t required;
 
         public:
-        const int64_t & get_super() const { return super; }
-        int64_t & get_mutable_super() { return super; }
-        void set_super(const int64_t & value) { this->super = value; }
+        const int64_t & get_required() const { return required; }
+        int64_t & get_mutable_required() { return required; }
+        void set_required(const int64_t & value) { this->required = value; }
     };
 
-    class Symbol {
+    class Restrict {
         public:
-        Symbol() = default;
-        virtual ~Symbol() = default;
+        Restrict() = default;
+        virtual ~Restrict() = default;
 
         private:
-        int64_t symbol;
+        int64_t restrict;
 
         public:
-        const int64_t & get_symbol() const { return symbol; }
-        int64_t & get_mutable_symbol() { return symbol; }
-        void set_symbol(const int64_t & value) { this->symbol = value; }
+        const int64_t & get_restrict() const { return restrict; }
+        int64_t & get_mutable_restrict() { return restrict; }
+        void set_restrict(const int64_t & value) { this->restrict = value; }
     };
 
-    class System {
+    class Retain {
         public:
-        System() = default;
-        virtual ~System() = default;
+        Retain() = default;
+        virtual ~Retain() = default;
 
         private:
-        int64_t system;
+        int64_t retain;
 
         public:
-        const int64_t & get_system() const { return system; }
-        int64_t & get_mutable_system() { return system; }
-        void set_system(const int64_t & value) { this->system = value; }
+        const int64_t & get_retain() const { return retain; }
+        int64_t & get_mutable_retain() { return retain; }
+        void set_retain(const int64_t & value) { this->retain = value; }
     };
 
-    class Then {
+    class Rethrows {
         public:
-        Then() = default;
-        virtual ~Then() = default;
+        Rethrows() = default;
+        virtual ~Rethrows() = default;
 
         private:
-        int64_t then;
+        int64_t rethrows;
 
         public:
-        const int64_t & get_then() const { return then; }
-        int64_t & get_mutable_then() { return then; }
-        void set_then(const int64_t & value) { this->then = value; }
+        const int64_t & get_rethrows() const { return rethrows; }
+        int64_t & get_mutable_rethrows() { return rethrows; }
+        void set_rethrows(const int64_t & value) { this->rethrows = value; }
     };
 
-    class Throws {
+    class Right {
         public:
-        Throws() = default;
-        virtual ~Throws() = default;
+        Right() = default;
+        virtual ~Right() = default;
 
         private:
-        int64_t throws;
+        int64_t right;
 
         public:
-        const int64_t & get_throws() const { return throws; }
-        int64_t & get_mutable_throws() { return throws; }
-        void set_throws(const int64_t & value) { this->throws = value; }
+        const int64_t & get_right() const { return right; }
+        int64_t & get_mutable_right() { return right; }
+        void set_right(const int64_t & value) { this->right = value; }
     };
 
-    class TimeOnly {
+    class RuntimeType {
         public:
-        TimeOnly() = default;
-        virtual ~TimeOnly() = default;
+        RuntimeType() = default;
+        virtual ~RuntimeType() = default;
 
         private:
-        int64_t time_only;
+        int64_t runtime_type;
 
         public:
-        const int64_t & get_time_only() const { return time_only; }
-        int64_t & get_mutable_time_only() { return time_only; }
-        void set_time_only(const int64_t & value) { this->time_only = value; }
+        const int64_t & get_runtime_type() const { return runtime_type; }
+        int64_t & get_mutable_runtime_type() { return runtime_type; }
+        void set_runtime_type(const int64_t & value) { this->runtime_type = value; }
     };
 
-    class TimeOnlyConverter {
+    class S {
         public:
-        TimeOnlyConverter() = default;
-        virtual ~TimeOnlyConverter() = default;
+        S() = default;
+        virtual ~S() = default;
 
         private:
-        int64_t time_only_converter;
+        int64_t s;
 
         public:
-        const int64_t & get_time_only_converter() const { return time_only_converter; }
-        int64_t & get_mutable_time_only_converter() { return time_only_converter; }
-        void set_time_only_converter(const int64_t & value) { this->time_only_converter = value; }
+        const int64_t & get_s() const { return s; }
+        int64_t & get_mutable_s() { return s; }
+        void set_s(const int64_t & value) { this->s = value; }
     };
 
-    class ToJson {
+    class Sbyte {
         public:
-        ToJson() = default;
-        virtual ~ToJson() = default;
+        Sbyte() = default;
+        virtual ~Sbyte() = default;
 
         private:
-        int64_t to_json;
+        int64_t sbyte;
 
         public:
-        const int64_t & get_to_json() const { return to_json; }
-        int64_t & get_mutable_to_json() { return to_json; }
-        void set_to_json(const int64_t & value) { this->to_json = value; }
+        const int64_t & get_sbyte() const { return sbyte; }
+        int64_t & get_mutable_sbyte() { return sbyte; }
+        void set_sbyte(const int64_t & value) { this->sbyte = value; }
     };
 
-    class ToString {
+    class Sealed {
         public:
-        ToString() = default;
-        virtual ~ToString() = default;
+        Sealed() = default;
+        virtual ~Sealed() = default;
 
         private:
-        int64_t to_string;
+        int64_t sealed;
 
         public:
-        const int64_t & get_to_string() const { return to_string; }
-        int64_t & get_mutable_to_string() { return to_string; }
-        void set_to_string(const int64_t & value) { this->to_string = value; }
+        const int64_t & get_sealed() const { return sealed; }
+        int64_t & get_mutable_sealed() { return sealed; }
+        void set_sealed(const int64_t & value) { this->sealed = value; }
     };
 
-    class TopLevelClass {
+    class Sel {
         public:
-        TopLevelClass() = default;
-        virtual ~TopLevelClass() = default;
+        Sel() = default;
+        virtual ~Sel() = default;
 
         private:
-        int64_t top_level;
+        int64_t sel;
 
         public:
-        const int64_t & get_top_level() const { return top_level; }
-        int64_t & get_mutable_top_level() { return top_level; }
-        void set_top_level(const int64_t & value) { this->top_level = value; }
+        const int64_t & get_sel() const { return sel; }
+        int64_t & get_mutable_sel() { return sel; }
+        void set_sel(const int64_t & value) { this->sel = value; }
     };
 
-    class Transient {
+    class Select {
         public:
-        Transient() = default;
-        virtual ~Transient() = default;
+        Select() = default;
+        virtual ~Select() = default;
 
         private:
-        int64_t transient;
+        int64_t select;
 
         public:
-        const int64_t & get_transient() const { return transient; }
-        int64_t & get_mutable_transient() { return transient; }
-        void set_transient(const int64_t & value) { this->transient = value; }
+        const int64_t & get_select() const { return select; }
+        int64_t & get_mutable_select() { return select; }
+        void set_select(const int64_t & value) { this->select = value; }
     };
 
-    class Type {
+    class Self {
         public:
-        Type() = default;
-        virtual ~Type() = default;
+        Self() = default;
+        virtual ~Self() = default;
 
         private:
-        int64_t type;
+        int64_t self;
 
         public:
-        const int64_t & get_type() const { return type; }
-        int64_t & get_mutable_type() { return type; }
-        void set_type(const int64_t & value) { this->type = value; }
+        const int64_t & get_self() const { return self; }
+        int64_t & get_mutable_self() { return self; }
+        void set_self(const int64_t & value) { this->self = value; }
     };
 
-    class Typealias {
+    class Serialize {
         public:
-        Typealias() = default;
-        virtual ~Typealias() = default;
+        Serialize() = default;
+        virtual ~Serialize() = default;
 
         private:
-        int64_t typealias;
+        int64_t serialize;
 
         public:
-        const int64_t & get_typealias() const { return typealias; }
-        int64_t & get_mutable_typealias() { return typealias; }
-        void set_typealias(const int64_t & value) { this->typealias = value; }
+        const int64_t & get_serialize() const { return serialize; }
+        int64_t & get_mutable_serialize() { return serialize; }
+        void set_serialize(const int64_t & value) { this->serialize = value; }
     };
 
-    class Typeof {
+    class SerializerProvider {
         public:
-        Typeof() = default;
-        virtual ~Typeof() = default;
+        SerializerProvider() = default;
+        virtual ~SerializerProvider() = default;
 
         private:
-        int64_t typeof;
+        int64_t serializer_provider;
 
         public:
-        const int64_t & get_typeof() const { return typeof; }
-        int64_t & get_mutable_typeof() { return typeof; }
-        void set_typeof(const int64_t & value) { this->typeof = value; }
+        const int64_t & get_serializer_provider() const { return serializer_provider; }
+        int64_t & get_mutable_serializer_provider() { return serializer_provider; }
+        void set_serializer_provider(const int64_t & value) { this->serializer_provider = value; }
     };
 
-    class Uint {
+    class Set {
         public:
-        Uint() = default;
-        virtual ~Uint() = default;
+        Set() = default;
+        virtual ~Set() = default;
 
         private:
-        int64_t uint;
+        int64_t set;
 
         public:
-        const int64_t & get_uint() const { return uint; }
-        int64_t & get_mutable_uint() { return uint; }
-        void set_uint(const int64_t & value) { this->uint = value; }
+        const int64_t & get_set() const { return set; }
+        int64_t & get_mutable_set() { return set; }
+        void set_set(const int64_t & value) { this->set = value; }
     };
 
-    class Ulong {
+    class SimpleModule {
         public:
-        Ulong() = default;
-        virtual ~Ulong() = default;
+        SimpleModule() = default;
+        virtual ~SimpleModule() = default;
 
         private:
-        int64_t ulong;
+        int64_t simple_module;
 
         public:
-        const int64_t & get_ulong() const { return ulong; }
-        int64_t & get_mutable_ulong() { return ulong; }
-        void set_ulong(const int64_t & value) { this->ulong = value; }
+        const int64_t & get_simple_module() const { return simple_module; }
+        int64_t & get_mutable_simple_module() { return simple_module; }
+        void set_simple_module(const int64_t & value) { this->simple_module = value; }
     };
 
-    class Unchecked {
+    class Stackalloc {
         public:
-        Unchecked() = default;
-        virtual ~Unchecked() = default;
+        Stackalloc() = default;
+        virtual ~Stackalloc() = default;
 
         private:
-        int64_t unchecked;
+        int64_t stackalloc;
 
         public:
-        const int64_t & get_unchecked() const { return unchecked; }
-        int64_t & get_mutable_unchecked() { return unchecked; }
-        void set_unchecked(const int64_t & value) { this->unchecked = value; }
+        const int64_t & get_stackalloc() const { return stackalloc; }
+        int64_t & get_mutable_stackalloc() { return stackalloc; }
+        void set_stackalloc(const int64_t & value) { this->stackalloc = value; }
     };
 
-    class Undefined {
+    class Standards {
         public:
-        Undefined() = default;
-        virtual ~Undefined() = default;
+        Standards() = default;
+        virtual ~Standards() = default;
 
         private:
-        int64_t undefined;
+        int64_t standards;
 
         public:
-        const int64_t & get_undefined() const { return undefined; }
-        int64_t & get_mutable_undefined() { return undefined; }
-        void set_undefined(const int64_t & value) { this->undefined = value; }
+        const int64_t & get_standards() const { return standards; }
+        int64_t & get_mutable_standards() { return standards; }
+        void set_standards(const int64_t & value) { this->standards = value; }
     };
 
     class Obj4 {
@@ -5313,6 +4626,15 @@ namespace quicktype {
 
         private:
         int64_t dummy;
+        Number number;
+        Nullptr obj4_nullptr;
+        Operator obj4_operator;
+        Or obj4_or;
+        OrEq obj4_or_eq;
+        Override obj4_override;
+        Private obj4_private;
+        Protected obj4_protected;
+        ProtocolClass obj4_protocol;
         Public obj4_public;
         Register obj4_register;
         ReinterpretCast obj4_reinterpret_cast;
@@ -5324,21 +4646,24 @@ namespace quicktype {
         Sizeof obj4_sizeof;
         Static obj4_static;
         StaticAssert obj4_static_assert;
-        StaticCast obj4_static_cast;
-        Struct obj4_struct;
-        Switch obj4_switch;
-        Synchronized obj4_synchronized;
-        Template obj4_template;
-        This obj4_this;
-        ThreadLocal obj4_thread_local;
-        Throw obj4_throw;
-        True obj4_true;
-        Try obj4_try;
-        TypeClass obj4_type;
-        Typedef obj4_typedef;
-        Typeid obj4_typeid;
-        Typename obj4_typename;
-        TrueClass purple_true;
+        Object object;
+        ObjectMapper object_mapper;
+        Of of;
+        Oneway oneway;
+        Open open;
+        Optional optional;
+        Out out;
+        Package package;
+        Params params;
+        Pass pass;
+        Port port;
+        Postfix postfix;
+        Precedence precedence;
+        Prefix prefix;
+        Print print;
+        PrintMembers print_members;
+        Printf printf;
+        Protocol protocol;
         Quicktype quicktype;
         Raise raise;
         Range range;
@@ -5360,36 +4685,53 @@ namespace quicktype {
         Select select;
         Self self;
         Serialize serialize;
+        SerializerProvider serializer_provider;
         Set set;
+        SimpleModule simple_module;
         Stackalloc stackalloc;
         Standards standards;
-        Strictfp strictfp;
-        String string;
-        Subscript subscript;
-        Super super;
-        Symbol symbol;
-        System system;
-        Then then;
-        Throws throws;
-        TimeOnly time_only;
-        TimeOnlyConverter time_only_converter;
-        ToJson to_json;
-        ToString to_string;
-        TopLevelClass top_level;
-        Transient transient;
-        Type type;
-        Typealias typealias;
-        Typeof typeof;
-        Uint uint;
-        Ulong ulong;
-        Unchecked unchecked;
-        Undefined undefined;
 
         public:
         const int64_t & get_dummy() const { return dummy; }
         int64_t & get_mutable_dummy() { return dummy; }
         void set_dummy(const int64_t & value) { this->dummy = value; }
 
+        const Number & get_number() const { return number; }
+        Number & get_mutable_number() { return number; }
+        void set_number(const Number & value) { this->number = value; }
+
+        const Nullptr & get_obj4_nullptr() const { return obj4_nullptr; }
+        Nullptr & get_mutable_obj4_nullptr() { return obj4_nullptr; }
+        void set_obj4_nullptr(const Nullptr & value) { this->obj4_nullptr = value; }
+
+        const Operator & get_obj4_operator() const { return obj4_operator; }
+        Operator & get_mutable_obj4_operator() { return obj4_operator; }
+        void set_obj4_operator(const Operator & value) { this->obj4_operator = value; }
+
+        const Or & get_obj4_or() const { return obj4_or; }
+        Or & get_mutable_obj4_or() { return obj4_or; }
+        void set_obj4_or(const Or & value) { this->obj4_or = value; }
+
+        const OrEq & get_obj4_or_eq() const { return obj4_or_eq; }
+        OrEq & get_mutable_obj4_or_eq() { return obj4_or_eq; }
+        void set_obj4_or_eq(const OrEq & value) { this->obj4_or_eq = value; }
+
+        const Override & get_obj4_override() const { return obj4_override; }
+        Override & get_mutable_obj4_override() { return obj4_override; }
+        void set_obj4_override(const Override & value) { this->obj4_override = value; }
+
+        const Private & get_obj4_private() const { return obj4_private; }
+        Private & get_mutable_obj4_private() { return obj4_private; }
+        void set_obj4_private(const Private & value) { this->obj4_private = value; }
+
+        const Protected & get_obj4_protected() const { return obj4_protected; }
+        Protected & get_mutable_obj4_protected() { return obj4_protected; }
+        void set_obj4_protected(const Protected & value) { this->obj4_protected = value; }
+
+        const ProtocolClass & get_obj4_protocol() const { return obj4_protocol; }
+        ProtocolClass & get_mutable_obj4_protocol() { return obj4_protocol; }
+        void set_obj4_protocol(const ProtocolClass & value) { this->obj4_protocol = value; }
+
         const Public & get_obj4_public() const { return obj4_public; }
         Public & get_mutable_obj4_public() { return obj4_public; }
         void set_obj4_public(const Public & value) { this->obj4_public = value; }
@@ -5434,65 +4776,77 @@ namespace quicktype {
         StaticAssert & get_mutable_obj4_static_assert() { return obj4_static_assert; }
         void set_obj4_static_assert(const StaticAssert & value) { this->obj4_static_assert = value; }
 
-        const StaticCast & get_obj4_static_cast() const { return obj4_static_cast; }
-        StaticCast & get_mutable_obj4_static_cast() { return obj4_static_cast; }
-        void set_obj4_static_cast(const StaticCast & value) { this->obj4_static_cast = value; }
+        const Object & get_object() const { return object; }
+        Object & get_mutable_object() { return object; }
+        void set_object(const Object & value) { this->object = value; }
+
+        const ObjectMapper & get_object_mapper() const { return object_mapper; }
+        ObjectMapper & get_mutable_object_mapper() { return object_mapper; }
+        void set_object_mapper(const ObjectMapper & value) { this->object_mapper = value; }
+
+        const Of & get_of() const { return of; }
+        Of & get_mutable_of() { return of; }
+        void set_of(const Of & value) { this->of = value; }
+
+        const Oneway & get_oneway() const { return oneway; }
+        Oneway & get_mutable_oneway() { return oneway; }
+        void set_oneway(const Oneway & value) { this->oneway = value; }
 
-        const Struct & get_obj4_struct() const { return obj4_struct; }
-        Struct & get_mutable_obj4_struct() { return obj4_struct; }
-        void set_obj4_struct(const Struct & value) { this->obj4_struct = value; }
+        const Open & get_open() const { return open; }
+        Open & get_mutable_open() { return open; }
+        void set_open(const Open & value) { this->open = value; }
 
-        const Switch & get_obj4_switch() const { return obj4_switch; }
-        Switch & get_mutable_obj4_switch() { return obj4_switch; }
-        void set_obj4_switch(const Switch & value) { this->obj4_switch = value; }
+        const Optional & get_optional() const { return optional; }
+        Optional & get_mutable_optional() { return optional; }
+        void set_optional(const Optional & value) { this->optional = value; }
 
-        const Synchronized & get_obj4_synchronized() const { return obj4_synchronized; }
-        Synchronized & get_mutable_obj4_synchronized() { return obj4_synchronized; }
-        void set_obj4_synchronized(const Synchronized & value) { this->obj4_synchronized = value; }
+        const Out & get_out() const { return out; }
+        Out & get_mutable_out() { return out; }
+        void set_out(const Out & value) { this->out = value; }
 
-        const Template & get_obj4_template() const { return obj4_template; }
-        Template & get_mutable_obj4_template() { return obj4_template; }
-        void set_obj4_template(const Template & value) { this->obj4_template = value; }
+        const Package & get_package() const { return package; }
+        Package & get_mutable_package() { return package; }
+        void set_package(const Package & value) { this->package = value; }
 
-        const This & get_obj4_this() const { return obj4_this; }
-        This & get_mutable_obj4_this() { return obj4_this; }
-        void set_obj4_this(const This & value) { this->obj4_this = value; }
+        const Params & get_params() const { return params; }
+        Params & get_mutable_params() { return params; }
+        void set_params(const Params & value) { this->params = value; }
 
-        const ThreadLocal & get_obj4_thread_local() const { return obj4_thread_local; }
-        ThreadLocal & get_mutable_obj4_thread_local() { return obj4_thread_local; }
-        void set_obj4_thread_local(const ThreadLocal & value) { this->obj4_thread_local = value; }
+        const Pass & get_pass() const { return pass; }
+        Pass & get_mutable_pass() { return pass; }
+        void set_pass(const Pass & value) { this->pass = value; }
 
-        const Throw & get_obj4_throw() const { return obj4_throw; }
-        Throw & get_mutable_obj4_throw() { return obj4_throw; }
-        void set_obj4_throw(const Throw & value) { this->obj4_throw = value; }
+        const Port & get_port() const { return port; }
+        Port & get_mutable_port() { return port; }
+        void set_port(const Port & value) { this->port = value; }
 
-        const True & get_obj4_true() const { return obj4_true; }
-        True & get_mutable_obj4_true() { return obj4_true; }
-        void set_obj4_true(const True & value) { this->obj4_true = value; }
+        const Postfix & get_postfix() const { return postfix; }
+        Postfix & get_mutable_postfix() { return postfix; }
+        void set_postfix(const Postfix & value) { this->postfix = value; }
 
-        const Try & get_obj4_try() const { return obj4_try; }
-        Try & get_mutable_obj4_try() { return obj4_try; }
-        void set_obj4_try(const Try & value) { this->obj4_try = value; }
+        const Precedence & get_precedence() const { return precedence; }
+        Precedence & get_mutable_precedence() { return precedence; }
+        void set_precedence(const Precedence & value) { this->precedence = value; }
 
-        const TypeClass & get_obj4_type() const { return obj4_type; }
-        TypeClass & get_mutable_obj4_type() { return obj4_type; }
-        void set_obj4_type(const TypeClass & value) { this->obj4_type = value; }
+        const Prefix & get_prefix() const { return prefix; }
+        Prefix & get_mutable_prefix() { return prefix; }
+        void set_prefix(const Prefix & value) { this->prefix = value; }
 
-        const Typedef & get_obj4_typedef() const { return obj4_typedef; }
-        Typedef & get_mutable_obj4_typedef() { return obj4_typedef; }
-        void set_obj4_typedef(const Typedef & value) { this->obj4_typedef = value; }
+        const Print & get_print() const { return print; }
+        Print & get_mutable_print() { return print; }
+        void set_print(const Print & value) { this->print = value; }
 
-        const Typeid & get_obj4_typeid() const { return obj4_typeid; }
-        Typeid & get_mutable_obj4_typeid() { return obj4_typeid; }
-        void set_obj4_typeid(const Typeid & value) { this->obj4_typeid = value; }
+        const PrintMembers & get_print_members() const { return print_members; }
+        PrintMembers & get_mutable_print_members() { return print_members; }
+        void set_print_members(const PrintMembers & value) { this->print_members = value; }
 
-        const Typename & get_obj4_typename() const { return obj4_typename; }
-        Typename & get_mutable_obj4_typename() { return obj4_typename; }
-        void set_obj4_typename(const Typename & value) { this->obj4_typename = value; }
+        const Printf & get_printf() const { return printf; }
+        Printf & get_mutable_printf() { return printf; }
+        void set_printf(const Printf & value) { this->printf = value; }
 
-        const TrueClass & get_purple_true() const { return purple_true; }
-        TrueClass & get_mutable_purple_true() { return purple_true; }
-        void set_purple_true(const TrueClass & value) { this->purple_true = value; }
+        const Protocol & get_protocol() const { return protocol; }
+        Protocol & get_mutable_protocol() { return protocol; }
+        void set_protocol(const Protocol & value) { this->protocol = value; }
 
         const Quicktype & get_quicktype() const { return quicktype; }
         Quicktype & get_mutable_quicktype() { return quicktype; }
@@ -5566,113 +4920,233 @@ namespace quicktype {
         Sel & get_mutable_sel() { return sel; }
         void set_sel(const Sel & value) { this->sel = value; }
 
-        const Select & get_select() const { return select; }
-        Select & get_mutable_select() { return select; }
-        void set_select(const Select & value) { this->select = value; }
+        const Select & get_select() const { return select; }
+        Select & get_mutable_select() { return select; }
+        void set_select(const Select & value) { this->select = value; }
+
+        const Self & get_self() const { return self; }
+        Self & get_mutable_self() { return self; }
+        void set_self(const Self & value) { this->self = value; }
+
+        const Serialize & get_serialize() const { return serialize; }
+        Serialize & get_mutable_serialize() { return serialize; }
+        void set_serialize(const Serialize & value) { this->serialize = value; }
+
+        const SerializerProvider & get_serializer_provider() const { return serializer_provider; }
+        SerializerProvider & get_mutable_serializer_provider() { return serializer_provider; }
+        void set_serializer_provider(const SerializerProvider & value) { this->serializer_provider = value; }
+
+        const Set & get_set() const { return set; }
+        Set & get_mutable_set() { return set; }
+        void set_set(const Set & value) { this->set = value; }
+
+        const SimpleModule & get_simple_module() const { return simple_module; }
+        SimpleModule & get_mutable_simple_module() { return simple_module; }
+        void set_simple_module(const SimpleModule & value) { this->simple_module = value; }
+
+        const Stackalloc & get_stackalloc() const { return stackalloc; }
+        Stackalloc & get_mutable_stackalloc() { return stackalloc; }
+        void set_stackalloc(const Stackalloc & value) { this->stackalloc = value; }
+
+        const Standards & get_standards() const { return standards; }
+        Standards & get_mutable_standards() { return standards; }
+        void set_standards(const Standards & value) { this->standards = value; }
+    };
+
+    class StaticCast {
+        public:
+        StaticCast() = default;
+        virtual ~StaticCast() = default;
+
+        private:
+        int64_t static_cast_static_cast;
+
+        public:
+        const int64_t & get_static_cast_static_cast() const { return static_cast_static_cast; }
+        int64_t & get_mutable_static_cast_static_cast() { return static_cast_static_cast; }
+        void set_static_cast_static_cast(const int64_t & value) { this->static_cast_static_cast = value; }
+    };
+
+    class Struct {
+        public:
+        Struct() = default;
+        virtual ~Struct() = default;
+
+        private:
+        int64_t struct_struct;
+
+        public:
+        const int64_t & get_struct_struct() const { return struct_struct; }
+        int64_t & get_mutable_struct_struct() { return struct_struct; }
+        void set_struct_struct(const int64_t & value) { this->struct_struct = value; }
+    };
+
+    class Switch {
+        public:
+        Switch() = default;
+        virtual ~Switch() = default;
+
+        private:
+        int64_t switch_switch;
+
+        public:
+        const int64_t & get_switch_switch() const { return switch_switch; }
+        int64_t & get_mutable_switch_switch() { return switch_switch; }
+        void set_switch_switch(const int64_t & value) { this->switch_switch = value; }
+    };
+
+    class Synchronized {
+        public:
+        Synchronized() = default;
+        virtual ~Synchronized() = default;
+
+        private:
+        int64_t synchronized_synchronized;
+
+        public:
+        const int64_t & get_synchronized_synchronized() const { return synchronized_synchronized; }
+        int64_t & get_mutable_synchronized_synchronized() { return synchronized_synchronized; }
+        void set_synchronized_synchronized(const int64_t & value) { this->synchronized_synchronized = value; }
+    };
+
+    class Template {
+        public:
+        Template() = default;
+        virtual ~Template() = default;
+
+        private:
+        int64_t template_template;
+
+        public:
+        const int64_t & get_template_template() const { return template_template; }
+        int64_t & get_mutable_template_template() { return template_template; }
+        void set_template_template(const int64_t & value) { this->template_template = value; }
+    };
+
+    class This {
+        public:
+        This() = default;
+        virtual ~This() = default;
 
-        const Self & get_self() const { return self; }
-        Self & get_mutable_self() { return self; }
-        void set_self(const Self & value) { this->self = value; }
+        private:
+        int64_t this_this;
 
-        const Serialize & get_serialize() const { return serialize; }
-        Serialize & get_mutable_serialize() { return serialize; }
-        void set_serialize(const Serialize & value) { this->serialize = value; }
+        public:
+        const int64_t & get_this_this() const { return this_this; }
+        int64_t & get_mutable_this_this() { return this_this; }
+        void set_this_this(const int64_t & value) { this->this_this = value; }
+    };
 
-        const Set & get_set() const { return set; }
-        Set & get_mutable_set() { return set; }
-        void set_set(const Set & value) { this->set = value; }
+    class ThreadLocal {
+        public:
+        ThreadLocal() = default;
+        virtual ~ThreadLocal() = default;
 
-        const Stackalloc & get_stackalloc() const { return stackalloc; }
-        Stackalloc & get_mutable_stackalloc() { return stackalloc; }
-        void set_stackalloc(const Stackalloc & value) { this->stackalloc = value; }
+        private:
+        int64_t thread_local_thread_local;
 
-        const Standards & get_standards() const { return standards; }
-        Standards & get_mutable_standards() { return standards; }
-        void set_standards(const Standards & value) { this->standards = value; }
+        public:
+        const int64_t & get_thread_local_thread_local() const { return thread_local_thread_local; }
+        int64_t & get_mutable_thread_local_thread_local() { return thread_local_thread_local; }
+        void set_thread_local_thread_local(const int64_t & value) { this->thread_local_thread_local = value; }
+    };
 
-        const Strictfp & get_strictfp() const { return strictfp; }
-        Strictfp & get_mutable_strictfp() { return strictfp; }
-        void set_strictfp(const Strictfp & value) { this->strictfp = value; }
+    class Throw {
+        public:
+        Throw() = default;
+        virtual ~Throw() = default;
 
-        const String & get_string() const { return string; }
-        String & get_mutable_string() { return string; }
-        void set_string(const String & value) { this->string = value; }
+        private:
+        int64_t throw_throw;
 
-        const Subscript & get_subscript() const { return subscript; }
-        Subscript & get_mutable_subscript() { return subscript; }
-        void set_subscript(const Subscript & value) { this->subscript = value; }
+        public:
+        const int64_t & get_throw_throw() const { return throw_throw; }
+        int64_t & get_mutable_throw_throw() { return throw_throw; }
+        void set_throw_throw(const int64_t & value) { this->throw_throw = value; }
+    };
 
-        const Super & get_super() const { return super; }
-        Super & get_mutable_super() { return super; }
-        void set_super(const Super & value) { this->super = value; }
+    class True {
+        public:
+        True() = default;
+        virtual ~True() = default;
 
-        const Symbol & get_symbol() const { return symbol; }
-        Symbol & get_mutable_symbol() { return symbol; }
-        void set_symbol(const Symbol & value) { this->symbol = value; }
+        private:
+        int64_t true_true;
 
-        const System & get_system() const { return system; }
-        System & get_mutable_system() { return system; }
-        void set_system(const System & value) { this->system = value; }
+        public:
+        const int64_t & get_true_true() const { return true_true; }
+        int64_t & get_mutable_true_true() { return true_true; }
+        void set_true_true(const int64_t & value) { this->true_true = value; }
+    };
 
-        const Then & get_then() const { return then; }
-        Then & get_mutable_then() { return then; }
-        void set_then(const Then & value) { this->then = value; }
+    class Try {
+        public:
+        Try() = default;
+        virtual ~Try() = default;
 
-        const Throws & get_throws() const { return throws; }
-        Throws & get_mutable_throws() { return throws; }
-        void set_throws(const Throws & value) { this->throws = value; }
+        private:
+        int64_t try_try;
 
-        const TimeOnly & get_time_only() const { return time_only; }
-        TimeOnly & get_mutable_time_only() { return time_only; }
-        void set_time_only(const TimeOnly & value) { this->time_only = value; }
+        public:
+        const int64_t & get_try_try() const { return try_try; }
+        int64_t & get_mutable_try_try() { return try_try; }
+        void set_try_try(const int64_t & value) { this->try_try = value; }
+    };
 
-        const TimeOnlyConverter & get_time_only_converter() const { return time_only_converter; }
-        TimeOnlyConverter & get_mutable_time_only_converter() { return time_only_converter; }
-        void set_time_only_converter(const TimeOnlyConverter & value) { this->time_only_converter = value; }
+    class TypeClass {
+        public:
+        TypeClass() = default;
+        virtual ~TypeClass() = default;
 
-        const ToJson & get_to_json() const { return to_json; }
-        ToJson & get_mutable_to_json() { return to_json; }
-        void set_to_json(const ToJson & value) { this->to_json = value; }
+        private:
+        int64_t type;
 
-        const ToString & get_to_string() const { return to_string; }
-        ToString & get_mutable_to_string() { return to_string; }
-        void set_to_string(const ToString & value) { this->to_string = value; }
+        public:
+        const int64_t & get_type() const { return type; }
+        int64_t & get_mutable_type() { return type; }
+        void set_type(const int64_t & value) { this->type = value; }
+    };
 
-        const TopLevelClass & get_top_level() const { return top_level; }
-        TopLevelClass & get_mutable_top_level() { return top_level; }
-        void set_top_level(const TopLevelClass & value) { this->top_level = value; }
+    class Typedef {
+        public:
+        Typedef() = default;
+        virtual ~Typedef() = default;
 
-        const Transient & get_transient() const { return transient; }
-        Transient & get_mutable_transient() { return transient; }
-        void set_transient(const Transient & value) { this->transient = value; }
+        private:
+        int64_t typedef_typedef;
 
-        const Type & get_type() const { return type; }
-        Type & get_mutable_type() { return type; }
-        void set_type(const Type & value) { this->type = value; }
+        public:
+        const int64_t & get_typedef_typedef() const { return typedef_typedef; }
+        int64_t & get_mutable_typedef_typedef() { return typedef_typedef; }
+        void set_typedef_typedef(const int64_t & value) { this->typedef_typedef = value; }
+    };
 
-        const Typealias & get_typealias() const { return typealias; }
-        Typealias & get_mutable_typealias() { return typealias; }
-        void set_typealias(const Typealias & value) { this->typealias = value; }
+    class Typeid {
+        public:
+        Typeid() = default;
+        virtual ~Typeid() = default;
 
-        const Typeof & get_typeof() const { return typeof; }
-        Typeof & get_mutable_typeof() { return typeof; }
-        void set_typeof(const Typeof & value) { this->typeof = value; }
+        private:
+        int64_t typeid_typeid;
 
-        const Uint & get_uint() const { return uint; }
-        Uint & get_mutable_uint() { return uint; }
-        void set_uint(const Uint & value) { this->uint = value; }
+        public:
+        const int64_t & get_typeid_typeid() const { return typeid_typeid; }
+        int64_t & get_mutable_typeid_typeid() { return typeid_typeid; }
+        void set_typeid_typeid(const int64_t & value) { this->typeid_typeid = value; }
+    };
 
-        const Ulong & get_ulong() const { return ulong; }
-        Ulong & get_mutable_ulong() { return ulong; }
-        void set_ulong(const Ulong & value) { this->ulong = value; }
+    class Typename {
+        public:
+        Typename() = default;
+        virtual ~Typename() = default;
 
-        const Unchecked & get_unchecked() const { return unchecked; }
-        Unchecked & get_mutable_unchecked() { return unchecked; }
-        void set_unchecked(const Unchecked & value) { this->unchecked = value; }
+        private:
+        int64_t typename_typename;
 
-        const Undefined & get_undefined() const { return undefined; }
-        Undefined & get_mutable_undefined() { return undefined; }
-        void set_undefined(const Undefined & value) { this->undefined = value; }
+        public:
+        const int64_t & get_typename_typename() const { return typename_typename; }
+        int64_t & get_mutable_typename_typename() { return typename_typename; }
+        void set_typename_typename(const int64_t & value) { this->typename_typename = value; }
     };
 
     class Union {
@@ -5815,4085 +5289,4256 @@ namespace quicktype {
         void set_xor_eq_xor_eq(const int64_t & value) { this->xor_eq_xor_eq = value; }
     };
 
-    class Unowned {
+    class TrueClass {
+        public:
+        TrueClass() = default;
+        virtual ~TrueClass() = default;
+
+        private:
+        int64_t true_true;
+
+        public:
+        const int64_t & get_true_true() const { return true_true; }
+        int64_t & get_mutable_true_true() { return true_true; }
+        void set_true_true(const int64_t & value) { this->true_true = value; }
+    };
+
+    class StdDeserializer {
+        public:
+        StdDeserializer() = default;
+        virtual ~StdDeserializer() = default;
+
+        private:
+        int64_t std_deserializer;
+
+        public:
+        const int64_t & get_std_deserializer() const { return std_deserializer; }
+        int64_t & get_mutable_std_deserializer() { return std_deserializer; }
+        void set_std_deserializer(const int64_t & value) { this->std_deserializer = value; }
+    };
+
+    class StdSerializer {
+        public:
+        StdSerializer() = default;
+        virtual ~StdSerializer() = default;
+
+        private:
+        int64_t std_serializer;
+
+        public:
+        const int64_t & get_std_serializer() const { return std_serializer; }
+        int64_t & get_mutable_std_serializer() { return std_serializer; }
+        void set_std_serializer(const int64_t & value) { this->std_serializer = value; }
+    };
+
+    class Strictfp {
+        public:
+        Strictfp() = default;
+        virtual ~Strictfp() = default;
+
+        private:
+        int64_t strictfp;
+
+        public:
+        const int64_t & get_strictfp() const { return strictfp; }
+        int64_t & get_mutable_strictfp() { return strictfp; }
+        void set_strictfp(const int64_t & value) { this->strictfp = value; }
+    };
+
+    class String {
+        public:
+        String() = default;
+        virtual ~String() = default;
+
+        private:
+        int64_t string;
+
+        public:
+        const int64_t & get_string() const { return string; }
+        int64_t & get_mutable_string() { return string; }
+        void set_string(const int64_t & value) { this->string = value; }
+    };
+
+    class Subscript {
         public:
-        Unowned() = default;
-        virtual ~Unowned() = default;
+        Subscript() = default;
+        virtual ~Subscript() = default;
 
         private:
-        int64_t unowned;
+        int64_t subscript;
 
         public:
-        const int64_t & get_unowned() const { return unowned; }
-        int64_t & get_mutable_unowned() { return unowned; }
-        void set_unowned(const int64_t & value) { this->unowned = value; }
+        const int64_t & get_subscript() const { return subscript; }
+        int64_t & get_mutable_subscript() { return subscript; }
+        void set_subscript(const int64_t & value) { this->subscript = value; }
     };
 
-    class Unsafe {
+    class Super {
         public:
-        Unsafe() = default;
-        virtual ~Unsafe() = default;
+        Super() = default;
+        virtual ~Super() = default;
 
         private:
-        int64_t unsafe;
+        int64_t super;
 
         public:
-        const int64_t & get_unsafe() const { return unsafe; }
-        int64_t & get_mutable_unsafe() { return unsafe; }
-        void set_unsafe(const int64_t & value) { this->unsafe = value; }
+        const int64_t & get_super() const { return super; }
+        int64_t & get_mutable_super() { return super; }
+        void set_super(const int64_t & value) { this->super = value; }
     };
 
-    class Ushort {
+    class Symbol {
         public:
-        Ushort() = default;
-        virtual ~Ushort() = default;
+        Symbol() = default;
+        virtual ~Symbol() = default;
 
         private:
-        int64_t ushort;
+        int64_t symbol;
 
         public:
-        const int64_t & get_ushort() const { return ushort; }
-        int64_t & get_mutable_ushort() { return ushort; }
-        void set_ushort(const int64_t & value) { this->ushort = value; }
+        const int64_t & get_symbol() const { return symbol; }
+        int64_t & get_mutable_symbol() { return symbol; }
+        void set_symbol(const int64_t & value) { this->symbol = value; }
     };
 
-    class Utf8JsonReader {
+    class System {
         public:
-        Utf8JsonReader() = default;
-        virtual ~Utf8JsonReader() = default;
+        System() = default;
+        virtual ~System() = default;
 
         private:
-        int64_t utf8_json_reader;
+        int64_t system;
 
         public:
-        const int64_t & get_utf8_json_reader() const { return utf8_json_reader; }
-        int64_t & get_mutable_utf8_json_reader() { return utf8_json_reader; }
-        void set_utf8_json_reader(const int64_t & value) { this->utf8_json_reader = value; }
+        const int64_t & get_system() const { return system; }
+        int64_t & get_mutable_system() { return system; }
+        void set_system(const int64_t & value) { this->system = value; }
     };
 
-    class Utf8JsonWriter {
+    class Then {
         public:
-        Utf8JsonWriter() = default;
-        virtual ~Utf8JsonWriter() = default;
+        Then() = default;
+        virtual ~Then() = default;
 
         private:
-        int64_t utf8_json_writer;
+        int64_t then;
 
         public:
-        const int64_t & get_utf8_json_writer() const { return utf8_json_writer; }
-        int64_t & get_mutable_utf8_json_writer() { return utf8_json_writer; }
-        void set_utf8_json_writer(const int64_t & value) { this->utf8_json_writer = value; }
+        const int64_t & get_then() const { return then; }
+        int64_t & get_mutable_then() { return then; }
+        void set_then(const int64_t & value) { this->then = value; }
     };
 
-    class Uuid {
+    class Throws {
         public:
-        Uuid() = default;
-        virtual ~Uuid() = default;
+        Throws() = default;
+        virtual ~Throws() = default;
 
         private:
-        int64_t uuid;
+        int64_t throws;
 
         public:
-        const int64_t & get_uuid() const { return uuid; }
-        int64_t & get_mutable_uuid() { return uuid; }
-        void set_uuid(const int64_t & value) { this->uuid = value; }
+        const int64_t & get_throws() const { return throws; }
+        int64_t & get_mutable_throws() { return throws; }
+        void set_throws(const int64_t & value) { this->throws = value; }
     };
 
-    class Var {
+    class TimeOnly {
         public:
-        Var() = default;
-        virtual ~Var() = default;
+        TimeOnly() = default;
+        virtual ~TimeOnly() = default;
 
         private:
-        int64_t var;
+        int64_t time_only;
 
         public:
-        const int64_t & get_var() const { return var; }
-        int64_t & get_mutable_var() { return var; }
-        void set_var(const int64_t & value) { this->var = value; }
+        const int64_t & get_time_only() const { return time_only; }
+        int64_t & get_mutable_time_only() { return time_only; }
+        void set_time_only(const int64_t & value) { this->time_only = value; }
     };
 
-    class Weak {
+    class TimeOnlyConverter {
         public:
-        Weak() = default;
-        virtual ~Weak() = default;
+        TimeOnlyConverter() = default;
+        virtual ~TimeOnlyConverter() = default;
 
         private:
-        int64_t weak;
+        int64_t time_only_converter;
 
         public:
-        const int64_t & get_weak() const { return weak; }
-        int64_t & get_mutable_weak() { return weak; }
-        void set_weak(const int64_t & value) { this->weak = value; }
+        const int64_t & get_time_only_converter() const { return time_only_converter; }
+        int64_t & get_mutable_time_only_converter() { return time_only_converter; }
+        void set_time_only_converter(const int64_t & value) { this->time_only_converter = value; }
     };
 
-    class Where {
+    class ToJson {
         public:
-        Where() = default;
-        virtual ~Where() = default;
+        ToJson() = default;
+        virtual ~ToJson() = default;
 
         private:
-        int64_t where;
+        int64_t to_json;
 
         public:
-        const int64_t & get_where() const { return where; }
-        int64_t & get_mutable_where() { return where; }
-        void set_where(const int64_t & value) { this->where = value; }
+        const int64_t & get_to_json() const { return to_json; }
+        int64_t & get_mutable_to_json() { return to_json; }
+        void set_to_json(const int64_t & value) { this->to_json = value; }
     };
 
-    class WillSet {
+    class ToString {
         public:
-        WillSet() = default;
-        virtual ~WillSet() = default;
+        ToString() = default;
+        virtual ~ToString() = default;
 
         private:
-        int64_t will_set;
+        int64_t to_string;
 
         public:
-        const int64_t & get_will_set() const { return will_set; }
-        int64_t & get_mutable_will_set() { return will_set; }
-        void set_will_set(const int64_t & value) { this->will_set = value; }
+        const int64_t & get_to_string() const { return to_string; }
+        int64_t & get_mutable_to_string() { return to_string; }
+        void set_to_string(const int64_t & value) { this->to_string = value; }
     };
 
-    class With {
+    class TopLevelClass {
         public:
-        With() = default;
-        virtual ~With() = default;
+        TopLevelClass() = default;
+        virtual ~TopLevelClass() = default;
 
         private:
-        int64_t with;
+        int64_t top_level;
 
         public:
-        const int64_t & get_with() const { return with; }
-        int64_t & get_mutable_with() { return with; }
-        void set_with(const int64_t & value) { this->with = value; }
+        const int64_t & get_top_level() const { return top_level; }
+        int64_t & get_mutable_top_level() { return top_level; }
+        void set_top_level(const int64_t & value) { this->top_level = value; }
     };
 
-    class Yes {
+    class Transient {
         public:
-        Yes() = default;
-        virtual ~Yes() = default;
+        Transient() = default;
+        virtual ~Transient() = default;
 
         private:
-        int64_t yes;
+        int64_t transient;
 
         public:
-        const int64_t & get_yes() const { return yes; }
-        int64_t & get_mutable_yes() { return yes; }
-        void set_yes(const int64_t & value) { this->yes = value; }
+        const int64_t & get_transient() const { return transient; }
+        int64_t & get_mutable_transient() { return transient; }
+        void set_transient(const int64_t & value) { this->transient = value; }
     };
 
-    class Yield {
+    class Type {
         public:
-        Yield() = default;
-        virtual ~Yield() = default;
+        Type() = default;
+        virtual ~Type() = default;
 
         private:
-        int64_t yield;
+        int64_t type;
 
         public:
-        const int64_t & get_yield() const { return yield; }
-        int64_t & get_mutable_yield() { return yield; }
-        void set_yield(const int64_t & value) { this->yield = value; }
+        const int64_t & get_type() const { return type; }
+        int64_t & get_mutable_type() { return type; }
+        void set_type(const int64_t & value) { this->type = value; }
     };
 
-    class Obj5 {
+    class Typealias {
         public:
-        Obj5() = default;
-        virtual ~Obj5() = default;
+        Typealias() = default;
+        virtual ~Typealias() = default;
 
         private:
-        int64_t dummy;
-        Union obj5_union;
-        Unsigned obj5_unsigned;
-        Using obj5_using;
-        Virtual obj5_virtual;
-        Void obj5_void;
-        Volatile obj5_volatile;
-        WcharT obj5_wchar_t;
-        While obj5_while;
-        Xor obj5_xor;
-        XorEq obj5_xor_eq;
-        Unowned unowned;
-        Unsafe unsafe;
-        Ushort ushort;
-        Utf8JsonReader utf8_json_reader;
-        Utf8JsonWriter utf8_json_writer;
-        Uuid uuid;
-        Var var;
-        Weak weak;
-        Where where;
-        WillSet will_set;
-        With with;
-        Yes yes;
-        Yield yield;
+        int64_t typealias;
 
         public:
-        const int64_t & get_dummy() const { return dummy; }
-        int64_t & get_mutable_dummy() { return dummy; }
-        void set_dummy(const int64_t & value) { this->dummy = value; }
-
-        const Union & get_obj5_union() const { return obj5_union; }
-        Union & get_mutable_obj5_union() { return obj5_union; }
-        void set_obj5_union(const Union & value) { this->obj5_union = value; }
-
-        const Unsigned & get_obj5_unsigned() const { return obj5_unsigned; }
-        Unsigned & get_mutable_obj5_unsigned() { return obj5_unsigned; }
-        void set_obj5_unsigned(const Unsigned & value) { this->obj5_unsigned = value; }
-
-        const Using & get_obj5_using() const { return obj5_using; }
-        Using & get_mutable_obj5_using() { return obj5_using; }
-        void set_obj5_using(const Using & value) { this->obj5_using = value; }
-
-        const Virtual & get_obj5_virtual() const { return obj5_virtual; }
-        Virtual & get_mutable_obj5_virtual() { return obj5_virtual; }
-        void set_obj5_virtual(const Virtual & value) { this->obj5_virtual = value; }
-
-        const Void & get_obj5_void() const { return obj5_void; }
-        Void & get_mutable_obj5_void() { return obj5_void; }
-        void set_obj5_void(const Void & value) { this->obj5_void = value; }
-
-        const Volatile & get_obj5_volatile() const { return obj5_volatile; }
-        Volatile & get_mutable_obj5_volatile() { return obj5_volatile; }
-        void set_obj5_volatile(const Volatile & value) { this->obj5_volatile = value; }
-
-        const WcharT & get_obj5_wchar_t() const { return obj5_wchar_t; }
-        WcharT & get_mutable_obj5_wchar_t() { return obj5_wchar_t; }
-        void set_obj5_wchar_t(const WcharT & value) { this->obj5_wchar_t = value; }
-
-        const While & get_obj5_while() const { return obj5_while; }
-        While & get_mutable_obj5_while() { return obj5_while; }
-        void set_obj5_while(const While & value) { this->obj5_while = value; }
+        const int64_t & get_typealias() const { return typealias; }
+        int64_t & get_mutable_typealias() { return typealias; }
+        void set_typealias(const int64_t & value) { this->typealias = value; }
+    };
 
-        const Xor & get_obj5_xor() const { return obj5_xor; }
-        Xor & get_mutable_obj5_xor() { return obj5_xor; }
-        void set_obj5_xor(const Xor & value) { this->obj5_xor = value; }
+    class Typeof {
+        public:
+        Typeof() = default;
+        virtual ~Typeof() = default;
 
-        const XorEq & get_obj5_xor_eq() const { return obj5_xor_eq; }
-        XorEq & get_mutable_obj5_xor_eq() { return obj5_xor_eq; }
-        void set_obj5_xor_eq(const XorEq & value) { this->obj5_xor_eq = value; }
+        private:
+        int64_t typeof;
 
-        const Unowned & get_unowned() const { return unowned; }
-        Unowned & get_mutable_unowned() { return unowned; }
-        void set_unowned(const Unowned & value) { this->unowned = value; }
+        public:
+        const int64_t & get_typeof() const { return typeof; }
+        int64_t & get_mutable_typeof() { return typeof; }
+        void set_typeof(const int64_t & value) { this->typeof = value; }
+    };
 
-        const Unsafe & get_unsafe() const { return unsafe; }
-        Unsafe & get_mutable_unsafe() { return unsafe; }
-        void set_unsafe(const Unsafe & value) { this->unsafe = value; }
+    class Uint {
+        public:
+        Uint() = default;
+        virtual ~Uint() = default;
 
-        const Ushort & get_ushort() const { return ushort; }
-        Ushort & get_mutable_ushort() { return ushort; }
-        void set_ushort(const Ushort & value) { this->ushort = value; }
+        private:
+        int64_t uint;
 
-        const Utf8JsonReader & get_utf8_json_reader() const { return utf8_json_reader; }
-        Utf8JsonReader & get_mutable_utf8_json_reader() { return utf8_json_reader; }
-        void set_utf8_json_reader(const Utf8JsonReader & value) { this->utf8_json_reader = value; }
+        public:
+        const int64_t & get_uint() const { return uint; }
+        int64_t & get_mutable_uint() { return uint; }
+        void set_uint(const int64_t & value) { this->uint = value; }
+    };
 
-        const Utf8JsonWriter & get_utf8_json_writer() const { return utf8_json_writer; }
-        Utf8JsonWriter & get_mutable_utf8_json_writer() { return utf8_json_writer; }
-        void set_utf8_json_writer(const Utf8JsonWriter & value) { this->utf8_json_writer = value; }
+    class Ulong {
+        public:
+        Ulong() = default;
+        virtual ~Ulong() = default;
 
-        const Uuid & get_uuid() const { return uuid; }
-        Uuid & get_mutable_uuid() { return uuid; }
-        void set_uuid(const Uuid & value) { this->uuid = value; }
+        private:
+        int64_t ulong;
 
-        const Var & get_var() const { return var; }
-        Var & get_mutable_var() { return var; }
-        void set_var(const Var & value) { this->var = value; }
+        public:
+        const int64_t & get_ulong() const { return ulong; }
+        int64_t & get_mutable_ulong() { return ulong; }
+        void set_ulong(const int64_t & value) { this->ulong = value; }
+    };
 
-        const Weak & get_weak() const { return weak; }
-        Weak & get_mutable_weak() { return weak; }
-        void set_weak(const Weak & value) { this->weak = value; }
+    class Unchecked {
+        public:
+        Unchecked() = default;
+        virtual ~Unchecked() = default;
 
-        const Where & get_where() const { return where; }
-        Where & get_mutable_where() { return where; }
-        void set_where(const Where & value) { this->where = value; }
+        private:
+        int64_t unchecked;
 
-        const WillSet & get_will_set() const { return will_set; }
-        WillSet & get_mutable_will_set() { return will_set; }
-        void set_will_set(const WillSet & value) { this->will_set = value; }
+        public:
+        const int64_t & get_unchecked() const { return unchecked; }
+        int64_t & get_mutable_unchecked() { return unchecked; }
+        void set_unchecked(const int64_t & value) { this->unchecked = value; }
+    };
 
-        const With & get_with() const { return with; }
-        With & get_mutable_with() { return with; }
-        void set_with(const With & value) { this->with = value; }
+    class Undefined {
+        public:
+        Undefined() = default;
+        virtual ~Undefined() = default;
 
-        const Yes & get_yes() const { return yes; }
-        Yes & get_mutable_yes() { return yes; }
-        void set_yes(const Yes & value) { this->yes = value; }
+        private:
+        int64_t undefined;
 
-        const Yield & get_yield() const { return yield; }
-        Yield & get_mutable_yield() { return yield; }
-        void set_yield(const Yield & value) { this->yield = value; }
+        public:
+        const int64_t & get_undefined() const { return undefined; }
+        int64_t & get_mutable_undefined() { return undefined; }
+        void set_undefined(const int64_t & value) { this->undefined = value; }
     };
 
-    class TopLevel {
+    class Unowned {
         public:
-        TopLevel() = default;
-        virtual ~TopLevel() = default;
+        Unowned() = default;
+        virtual ~Unowned() = default;
 
         private:
-        int64_t dummy;
-        Obj1 obj1;
-        Obj2 obj2;
-        Obj3 obj3;
-        Obj4 obj4;
-        Obj5 obj5;
+        int64_t unowned;
 
         public:
-        const int64_t & get_dummy() const { return dummy; }
-        int64_t & get_mutable_dummy() { return dummy; }
-        void set_dummy(const int64_t & value) { this->dummy = value; }
+        const int64_t & get_unowned() const { return unowned; }
+        int64_t & get_mutable_unowned() { return unowned; }
+        void set_unowned(const int64_t & value) { this->unowned = value; }
+    };
 
-        const Obj1 & get_obj1() const { return obj1; }
-        Obj1 & get_mutable_obj1() { return obj1; }
-        void set_obj1(const Obj1 & value) { this->obj1 = value; }
+    class Unsafe {
+        public:
+        Unsafe() = default;
+        virtual ~Unsafe() = default;
 
-        const Obj2 & get_obj2() const { return obj2; }
-        Obj2 & get_mutable_obj2() { return obj2; }
-        void set_obj2(const Obj2 & value) { this->obj2 = value; }
+        private:
+        int64_t unsafe;
 
-        const Obj3 & get_obj3() const { return obj3; }
-        Obj3 & get_mutable_obj3() { return obj3; }
-        void set_obj3(const Obj3 & value) { this->obj3 = value; }
+        public:
+        const int64_t & get_unsafe() const { return unsafe; }
+        int64_t & get_mutable_unsafe() { return unsafe; }
+        void set_unsafe(const int64_t & value) { this->unsafe = value; }
+    };
 
-        const Obj4 & get_obj4() const { return obj4; }
-        Obj4 & get_mutable_obj4() { return obj4; }
-        void set_obj4(const Obj4 & value) { this->obj4 = value; }
+    class Ushort {
+        public:
+        Ushort() = default;
+        virtual ~Ushort() = default;
 
-        const Obj5 & get_obj5() const { return obj5; }
-        Obj5 & get_mutable_obj5() { return obj5; }
-        void set_obj5(const Obj5 & value) { this->obj5 = value; }
+        private:
+        int64_t ushort;
+
+        public:
+        const int64_t & get_ushort() const { return ushort; }
+        int64_t & get_mutable_ushort() { return ushort; }
+        void set_ushort(const int64_t & value) { this->ushort = value; }
     };
-}
 
-namespace quicktype {
-    void from_json(const json & j, Abstract & x);
-    void to_json(json & j, const Abstract & x);
+    class Utf8JsonReader {
+        public:
+        Utf8JsonReader() = default;
+        virtual ~Utf8JsonReader() = default;
 
-    void from_json(const json & j, Any & x);
-    void to_json(json & j, const Any & x);
+        private:
+        int64_t utf8_json_reader;
 
-    void from_json(const json & j, Array & x);
-    void to_json(json & j, const Array & x);
+        public:
+        const int64_t & get_utf8_json_reader() const { return utf8_json_reader; }
+        int64_t & get_mutable_utf8_json_reader() { return utf8_json_reader; }
+        void set_utf8_json_reader(const int64_t & value) { this->utf8_json_reader = value; }
+    };
 
-    void from_json(const json & j, As & x);
-    void to_json(json & j, const As & x);
+    class Utf8JsonWriter {
+        public:
+        Utf8JsonWriter() = default;
+        virtual ~Utf8JsonWriter() = default;
 
-    void from_json(const json & j, Assert & x);
-    void to_json(json & j, const Assert & x);
+        private:
+        int64_t utf8_json_writer;
 
-    void from_json(const json & j, Associatedtype & x);
-    void to_json(json & j, const Associatedtype & x);
+        public:
+        const int64_t & get_utf8_json_writer() const { return utf8_json_writer; }
+        int64_t & get_mutable_utf8_json_writer() { return utf8_json_writer; }
+        void set_utf8_json_writer(const int64_t & value) { this->utf8_json_writer = value; }
+    };
 
-    void from_json(const json & j, Associativity & x);
-    void to_json(json & j, const Associativity & x);
+    class Uuid {
+        public:
+        Uuid() = default;
+        virtual ~Uuid() = default;
 
-    void from_json(const json & j, Async & x);
-    void to_json(json & j, const Async & x);
+        private:
+        int64_t uuid;
 
-    void from_json(const json & j, Atomic & x);
-    void to_json(json & j, const Atomic & x);
+        public:
+        const int64_t & get_uuid() const { return uuid; }
+        int64_t & get_mutable_uuid() { return uuid; }
+        void set_uuid(const int64_t & value) { this->uuid = value; }
+    };
 
-    void from_json(const json & j, Await & x);
-    void to_json(json & j, const Await & x);
+    class Var {
+        public:
+        Var() = default;
+        virtual ~Var() = default;
 
-    void from_json(const json & j, Base & x);
-    void to_json(json & j, const Base & x);
+        private:
+        int64_t var;
 
-    void from_json(const json & j, Boolean & x);
-    void to_json(json & j, const Boolean & x);
+        public:
+        const int64_t & get_var() const { return var; }
+        int64_t & get_mutable_var() { return var; }
+        void set_var(const int64_t & value) { this->var = value; }
+    };
 
-    void from_json(const json & j, Bycopy & x);
-    void to_json(json & j, const Bycopy & x);
+    class Weak {
+        public:
+        Weak() = default;
+        virtual ~Weak() = default;
 
-    void from_json(const json & j, Byref & x);
-    void to_json(json & j, const Byref & x);
+        private:
+        int64_t weak;
 
-    void from_json(const json & j, Byte & x);
-    void to_json(json & j, const Byte & x);
+        public:
+        const int64_t & get_weak() const { return weak; }
+        int64_t & get_mutable_weak() { return weak; }
+        void set_weak(const int64_t & value) { this->weak = value; }
+    };
 
-    void from_json(const json & j, Chan & x);
-    void to_json(json & j, const Chan & x);
+    class Where {
+        public:
+        Where() = default;
+        virtual ~Where() = default;
 
-    void from_json(const json & j, Checked & x);
-    void to_json(json & j, const Checked & x);
+        private:
+        int64_t where;
 
-    void from_json(const json & j, Clone & x);
-    void to_json(json & j, const Clone & x);
+        public:
+        const int64_t & get_where() const { return where; }
+        int64_t & get_mutable_where() { return where; }
+        void set_where(const int64_t & value) { this->where = value; }
+    };
+
+    class WillSet {
+        public:
+        WillSet() = default;
+        virtual ~WillSet() = default;
 
-    void from_json(const json & j, Complex & x);
-    void to_json(json & j, const Complex & x);
+        private:
+        int64_t will_set;
 
-    void from_json(const json & j, Console & x);
-    void to_json(json & j, const Console & x);
+        public:
+        const int64_t & get_will_set() const { return will_set; }
+        int64_t & get_mutable_will_set() { return will_set; }
+        void set_will_set(const int64_t & value) { this->will_set = value; }
+    };
 
-    void from_json(const json & j, Constructor & x);
-    void to_json(json & j, const Constructor & x);
+    class With {
+        public:
+        With() = default;
+        virtual ~With() = default;
 
-    void from_json(const json & j, Convenience & x);
-    void to_json(json & j, const Convenience & x);
+        private:
+        int64_t with;
 
-    void from_json(const json & j, Convert & x);
-    void to_json(json & j, const Convert & x);
+        public:
+        const int64_t & get_with() const { return with; }
+        int64_t & get_mutable_with() { return with; }
+        void set_with(const int64_t & value) { this->with = value; }
+    };
 
-    void from_json(const json & j, Converter & x);
-    void to_json(json & j, const Converter & x);
+    class Yes {
+        public:
+        Yes() = default;
+        virtual ~Yes() = default;
 
-    void from_json(const json & j, CultureInfo & x);
-    void to_json(json & j, const CultureInfo & x);
+        private:
+        int64_t yes;
 
-    void from_json(const json & j, Date & x);
-    void to_json(json & j, const Date & x);
+        public:
+        const int64_t & get_yes() const { return yes; }
+        int64_t & get_mutable_yes() { return yes; }
+        void set_yes(const int64_t & value) { this->yes = value; }
+    };
 
-    void from_json(const json & j, DateFormatter & x);
-    void to_json(json & j, const DateFormatter & x);
+    class Yield {
+        public:
+        Yield() = default;
+        virtual ~Yield() = default;
 
-    void from_json(const json & j, DateOnly & x);
-    void to_json(json & j, const DateOnly & x);
+        private:
+        int64_t yield;
 
-    void from_json(const json & j, DateOnlyConverter & x);
-    void to_json(json & j, const DateOnlyConverter & x);
+        public:
+        const int64_t & get_yield() const { return yield; }
+        int64_t & get_mutable_yield() { return yield; }
+        void set_yield(const int64_t & value) { this->yield = value; }
+    };
 
-    void from_json(const json & j, DateParseHandling & x);
-    void to_json(json & j, const DateParseHandling & x);
+    class Obj5 {
+        public:
+        Obj5() = default;
+        virtual ~Obj5() = default;
 
-    void from_json(const json & j, DateTime & x);
-    void to_json(json & j, const DateTime & x);
+        private:
+        int64_t dummy;
+        StaticCast obj5_static_cast;
+        Struct obj5_struct;
+        Switch obj5_switch;
+        Synchronized obj5_synchronized;
+        Template obj5_template;
+        This obj5_this;
+        ThreadLocal obj5_thread_local;
+        Throw obj5_throw;
+        True obj5_true;
+        Try obj5_try;
+        TypeClass obj5_type;
+        Typedef obj5_typedef;
+        Typeid obj5_typeid;
+        Typename obj5_typename;
+        Union obj5_union;
+        Unsigned obj5_unsigned;
+        Using obj5_using;
+        Virtual obj5_virtual;
+        Void obj5_void;
+        Volatile obj5_volatile;
+        WcharT obj5_wchar_t;
+        While obj5_while;
+        Xor obj5_xor;
+        XorEq obj5_xor_eq;
+        TrueClass purple_true;
+        StdDeserializer std_deserializer;
+        StdSerializer std_serializer;
+        Strictfp strictfp;
+        String string;
+        Subscript subscript;
+        Super super;
+        Symbol symbol;
+        System system;
+        Then then;
+        Throws throws;
+        TimeOnly time_only;
+        TimeOnlyConverter time_only_converter;
+        ToJson to_json;
+        ToString to_string;
+        TopLevelClass top_level;
+        Transient transient;
+        Type type;
+        Typealias typealias;
+        Typeof typeof;
+        Uint uint;
+        Ulong ulong;
+        Unchecked unchecked;
+        Undefined undefined;
+        Unowned unowned;
+        Unsafe unsafe;
+        Ushort ushort;
+        Utf8JsonReader utf8_json_reader;
+        Utf8JsonWriter utf8_json_writer;
+        Uuid uuid;
+        Var var;
+        Weak weak;
+        Where where;
+        WillSet will_set;
+        With with;
+        Yes yes;
+        Yield yield;
 
-    void from_json(const json & j, DateTimeStyles & x);
-    void to_json(json & j, const DateTimeStyles & x);
+        public:
+        const int64_t & get_dummy() const { return dummy; }
+        int64_t & get_mutable_dummy() { return dummy; }
+        void set_dummy(const int64_t & value) { this->dummy = value; }
 
-    void from_json(const json & j, Debugger & x);
-    void to_json(json & j, const Debugger & x);
+        const StaticCast & get_obj5_static_cast() const { return obj5_static_cast; }
+        StaticCast & get_mutable_obj5_static_cast() { return obj5_static_cast; }
+        void set_obj5_static_cast(const StaticCast & value) { this->obj5_static_cast = value; }
 
-    void from_json(const json & j, Decimal & x);
-    void to_json(json & j, const Decimal & x);
+        const Struct & get_obj5_struct() const { return obj5_struct; }
+        Struct & get_mutable_obj5_struct() { return obj5_struct; }
+        void set_obj5_struct(const Struct & value) { this->obj5_struct = value; }
 
-    void from_json(const json & j, Declare & x);
-    void to_json(json & j, const Declare & x);
+        const Switch & get_obj5_switch() const { return obj5_switch; }
+        Switch & get_mutable_obj5_switch() { return obj5_switch; }
+        void set_obj5_switch(const Switch & value) { this->obj5_switch = value; }
 
-    void from_json(const json & j, DecodeString & x);
-    void to_json(json & j, const DecodeString & x);
+        const Synchronized & get_obj5_synchronized() const { return obj5_synchronized; }
+        Synchronized & get_mutable_obj5_synchronized() { return obj5_synchronized; }
+        void set_obj5_synchronized(const Synchronized & value) { this->obj5_synchronized = value; }
 
-    void from_json(const json & j, Empty & x);
-    void to_json(json & j, const Empty & x);
+        const Template & get_obj5_template() const { return obj5_template; }
+        Template & get_mutable_obj5_template() { return obj5_template; }
+        void set_obj5_template(const Template & value) { this->obj5_template = value; }
 
-    void from_json(const json & j, Obj1Bool & x);
-    void to_json(json & j, const Obj1Bool & x);
+        const This & get_obj5_this() const { return obj5_this; }
+        This & get_mutable_obj5_this() { return obj5_this; }
+        void set_obj5_this(const This & value) { this->obj5_this = value; }
 
-    void from_json(const json & j, Imaginery & x);
-    void to_json(json & j, const Imaginery & x);
+        const ThreadLocal & get_obj5_thread_local() const { return obj5_thread_local; }
+        ThreadLocal & get_mutable_obj5_thread_local() { return obj5_thread_local; }
+        void set_obj5_thread_local(const ThreadLocal & value) { this->obj5_thread_local = value; }
 
-    void from_json(const json & j, Alignas & x);
-    void to_json(json & j, const Alignas & x);
+        const Throw & get_obj5_throw() const { return obj5_throw; }
+        Throw & get_mutable_obj5_throw() { return obj5_throw; }
+        void set_obj5_throw(const Throw & value) { this->obj5_throw = value; }
 
-    void from_json(const json & j, Alignof & x);
-    void to_json(json & j, const Alignof & x);
+        const True & get_obj5_true() const { return obj5_true; }
+        True & get_mutable_obj5_true() { return obj5_true; }
+        void set_obj5_true(const True & value) { this->obj5_true = value; }
 
-    void from_json(const json & j, And & x);
-    void to_json(json & j, const And & x);
+        const Try & get_obj5_try() const { return obj5_try; }
+        Try & get_mutable_obj5_try() { return obj5_try; }
+        void set_obj5_try(const Try & value) { this->obj5_try = value; }
 
-    void from_json(const json & j, AndEq & x);
-    void to_json(json & j, const AndEq & x);
+        const TypeClass & get_obj5_type() const { return obj5_type; }
+        TypeClass & get_mutable_obj5_type() { return obj5_type; }
+        void set_obj5_type(const TypeClass & value) { this->obj5_type = value; }
 
-    void from_json(const json & j, AnyClass & x);
-    void to_json(json & j, const AnyClass & x);
+        const Typedef & get_obj5_typedef() const { return obj5_typedef; }
+        Typedef & get_mutable_obj5_typedef() { return obj5_typedef; }
+        void set_obj5_typedef(const Typedef & value) { this->obj5_typedef = value; }
 
-    void from_json(const json & j, Asm & x);
-    void to_json(json & j, const Asm & x);
+        const Typeid & get_obj5_typeid() const { return obj5_typeid; }
+        Typeid & get_mutable_obj5_typeid() { return obj5_typeid; }
+        void set_obj5_typeid(const Typeid & value) { this->obj5_typeid = value; }
 
-    void from_json(const json & j, AtomicCancel & x);
-    void to_json(json & j, const AtomicCancel & x);
+        const Typename & get_obj5_typename() const { return obj5_typename; }
+        Typename & get_mutable_obj5_typename() { return obj5_typename; }
+        void set_obj5_typename(const Typename & value) { this->obj5_typename = value; }
 
-    void from_json(const json & j, AtomicCommit & x);
-    void to_json(json & j, const AtomicCommit & x);
+        const Union & get_obj5_union() const { return obj5_union; }
+        Union & get_mutable_obj5_union() { return obj5_union; }
+        void set_obj5_union(const Union & value) { this->obj5_union = value; }
 
-    void from_json(const json & j, AtomicNoexcept & x);
-    void to_json(json & j, const AtomicNoexcept & x);
+        const Unsigned & get_obj5_unsigned() const { return obj5_unsigned; }
+        Unsigned & get_mutable_obj5_unsigned() { return obj5_unsigned; }
+        void set_obj5_unsigned(const Unsigned & value) { this->obj5_unsigned = value; }
 
-    void from_json(const json & j, Auto & x);
-    void to_json(json & j, const Auto & x);
+        const Using & get_obj5_using() const { return obj5_using; }
+        Using & get_mutable_obj5_using() { return obj5_using; }
+        void set_obj5_using(const Using & value) { this->obj5_using = value; }
 
-    void from_json(const json & j, Bitand & x);
-    void to_json(json & j, const Bitand & x);
+        const Virtual & get_obj5_virtual() const { return obj5_virtual; }
+        Virtual & get_mutable_obj5_virtual() { return obj5_virtual; }
+        void set_obj5_virtual(const Virtual & value) { this->obj5_virtual = value; }
 
-    void from_json(const json & j, Bitor & x);
-    void to_json(json & j, const Bitor & x);
+        const Void & get_obj5_void() const { return obj5_void; }
+        Void & get_mutable_obj5_void() { return obj5_void; }
+        void set_obj5_void(const Void & value) { this->obj5_void = value; }
 
-    void from_json(const json & j, Bool & x);
-    void to_json(json & j, const Bool & x);
+        const Volatile & get_obj5_volatile() const { return obj5_volatile; }
+        Volatile & get_mutable_obj5_volatile() { return obj5_volatile; }
+        void set_obj5_volatile(const Volatile & value) { this->obj5_volatile = value; }
 
-    void from_json(const json & j, Break & x);
-    void to_json(json & j, const Break & x);
+        const WcharT & get_obj5_wchar_t() const { return obj5_wchar_t; }
+        WcharT & get_mutable_obj5_wchar_t() { return obj5_wchar_t; }
+        void set_obj5_wchar_t(const WcharT & value) { this->obj5_wchar_t = value; }
 
-    void from_json(const json & j, Case & x);
-    void to_json(json & j, const Case & x);
+        const While & get_obj5_while() const { return obj5_while; }
+        While & get_mutable_obj5_while() { return obj5_while; }
+        void set_obj5_while(const While & value) { this->obj5_while = value; }
 
-    void from_json(const json & j, Catch & x);
-    void to_json(json & j, const Catch & x);
+        const Xor & get_obj5_xor() const { return obj5_xor; }
+        Xor & get_mutable_obj5_xor() { return obj5_xor; }
+        void set_obj5_xor(const Xor & value) { this->obj5_xor = value; }
 
-    void from_json(const json & j, Char & x);
-    void to_json(json & j, const Char & x);
+        const XorEq & get_obj5_xor_eq() const { return obj5_xor_eq; }
+        XorEq & get_mutable_obj5_xor_eq() { return obj5_xor_eq; }
+        void set_obj5_xor_eq(const XorEq & value) { this->obj5_xor_eq = value; }
 
-    void from_json(const json & j, Char16T & x);
-    void to_json(json & j, const Char16T & x);
+        const TrueClass & get_purple_true() const { return purple_true; }
+        TrueClass & get_mutable_purple_true() { return purple_true; }
+        void set_purple_true(const TrueClass & value) { this->purple_true = value; }
 
-    void from_json(const json & j, Char32T & x);
-    void to_json(json & j, const Char32T & x);
+        const StdDeserializer & get_std_deserializer() const { return std_deserializer; }
+        StdDeserializer & get_mutable_std_deserializer() { return std_deserializer; }
+        void set_std_deserializer(const StdDeserializer & value) { this->std_deserializer = value; }
 
-    void from_json(const json & j, Class & x);
-    void to_json(json & j, const Class & x);
+        const StdSerializer & get_std_serializer() const { return std_serializer; }
+        StdSerializer & get_mutable_std_serializer() { return std_serializer; }
+        void set_std_serializer(const StdSerializer & value) { this->std_serializer = value; }
 
-    void from_json(const json & j, CoAwait & x);
-    void to_json(json & j, const CoAwait & x);
+        const Strictfp & get_strictfp() const { return strictfp; }
+        Strictfp & get_mutable_strictfp() { return strictfp; }
+        void set_strictfp(const Strictfp & value) { this->strictfp = value; }
 
-    void from_json(const json & j, CoReturn & x);
-    void to_json(json & j, const CoReturn & x);
+        const String & get_string() const { return string; }
+        String & get_mutable_string() { return string; }
+        void set_string(const String & value) { this->string = value; }
 
-    void from_json(const json & j, CoYield & x);
-    void to_json(json & j, const CoYield & x);
+        const Subscript & get_subscript() const { return subscript; }
+        Subscript & get_mutable_subscript() { return subscript; }
+        void set_subscript(const Subscript & value) { this->subscript = value; }
 
-    void from_json(const json & j, Compl & x);
-    void to_json(json & j, const Compl & x);
+        const Super & get_super() const { return super; }
+        Super & get_mutable_super() { return super; }
+        void set_super(const Super & value) { this->super = value; }
 
-    void from_json(const json & j, Concept & x);
-    void to_json(json & j, const Concept & x);
+        const Symbol & get_symbol() const { return symbol; }
+        Symbol & get_mutable_symbol() { return symbol; }
+        void set_symbol(const Symbol & value) { this->symbol = value; }
 
-    void from_json(const json & j, Const & x);
-    void to_json(json & j, const Const & x);
+        const System & get_system() const { return system; }
+        System & get_mutable_system() { return system; }
+        void set_system(const System & value) { this->system = value; }
 
-    void from_json(const json & j, ConstCast & x);
-    void to_json(json & j, const ConstCast & x);
+        const Then & get_then() const { return then; }
+        Then & get_mutable_then() { return then; }
+        void set_then(const Then & value) { this->then = value; }
 
-    void from_json(const json & j, Constexpr & x);
-    void to_json(json & j, const Constexpr & x);
+        const Throws & get_throws() const { return throws; }
+        Throws & get_mutable_throws() { return throws; }
+        void set_throws(const Throws & value) { this->throws = value; }
 
-    void from_json(const json & j, Continue & x);
-    void to_json(json & j, const Continue & x);
+        const TimeOnly & get_time_only() const { return time_only; }
+        TimeOnly & get_mutable_time_only() { return time_only; }
+        void set_time_only(const TimeOnly & value) { this->time_only = value; }
 
-    void from_json(const json & j, Decltype & x);
-    void to_json(json & j, const Decltype & x);
+        const TimeOnlyConverter & get_time_only_converter() const { return time_only_converter; }
+        TimeOnlyConverter & get_mutable_time_only_converter() { return time_only_converter; }
+        void set_time_only_converter(const TimeOnlyConverter & value) { this->time_only_converter = value; }
 
-    void from_json(const json & j, BoolClass & x);
-    void to_json(json & j, const BoolClass & x);
+        const ToJson & get_to_json() const { return to_json; }
+        ToJson & get_mutable_to_json() { return to_json; }
+        void set_to_json(const ToJson & value) { this->to_json = value; }
 
-    void from_json(const json & j, ClassClass & x);
-    void to_json(json & j, const ClassClass & x);
+        const ToString & get_to_string() const { return to_string; }
+        ToString & get_mutable_to_string() { return to_string; }
+        void set_to_string(const ToString & value) { this->to_string = value; }
 
-    void from_json(const json & j, Obj1 & x);
-    void to_json(json & j, const Obj1 & x);
+        const TopLevelClass & get_top_level() const { return top_level; }
+        TopLevelClass & get_mutable_top_level() { return top_level; }
+        void set_top_level(const TopLevelClass & value) { this->top_level = value; }
 
-    void from_json(const json & j, Def & x);
-    void to_json(json & j, const Def & x);
+        const Transient & get_transient() const { return transient; }
+        Transient & get_mutable_transient() { return transient; }
+        void set_transient(const Transient & value) { this->transient = value; }
 
-    void from_json(const json & j, Defer & x);
-    void to_json(json & j, const Defer & x);
+        const Type & get_type() const { return type; }
+        Type & get_mutable_type() { return type; }
+        void set_type(const Type & value) { this->type = value; }
 
-    void from_json(const json & j, Deinit & x);
-    void to_json(json & j, const Deinit & x);
+        const Typealias & get_typealias() const { return typealias; }
+        Typealias & get_mutable_typealias() { return typealias; }
+        void set_typealias(const Typealias & value) { this->typealias = value; }
 
-    void from_json(const json & j, Del & x);
-    void to_json(json & j, const Del & x);
+        const Typeof & get_typeof() const { return typeof; }
+        Typeof & get_mutable_typeof() { return typeof; }
+        void set_typeof(const Typeof & value) { this->typeof = value; }
 
-    void from_json(const json & j, Delegate & x);
-    void to_json(json & j, const Delegate & x);
+        const Uint & get_uint() const { return uint; }
+        Uint & get_mutable_uint() { return uint; }
+        void set_uint(const Uint & value) { this->uint = value; }
 
-    void from_json(const json & j, Dict & x);
-    void to_json(json & j, const Dict & x);
+        const Ulong & get_ulong() const { return ulong; }
+        Ulong & get_mutable_ulong() { return ulong; }
+        void set_ulong(const Ulong & value) { this->ulong = value; }
 
-    void from_json(const json & j, Dictionary & x);
-    void to_json(json & j, const Dictionary & x);
+        const Unchecked & get_unchecked() const { return unchecked; }
+        Unchecked & get_mutable_unchecked() { return unchecked; }
+        void set_unchecked(const Unchecked & value) { this->unchecked = value; }
 
-    void from_json(const json & j, DidSet & x);
-    void to_json(json & j, const DidSet & x);
+        const Undefined & get_undefined() const { return undefined; }
+        Undefined & get_mutable_undefined() { return undefined; }
+        void set_undefined(const Undefined & value) { this->undefined = value; }
 
-    void from_json(const json & j, Dynamic & x);
-    void to_json(json & j, const Dynamic & x);
+        const Unowned & get_unowned() const { return unowned; }
+        Unowned & get_mutable_unowned() { return unowned; }
+        void set_unowned(const Unowned & value) { this->unowned = value; }
 
-    void from_json(const json & j, Elif & x);
-    void to_json(json & j, const Elif & x);
+        const Unsafe & get_unsafe() const { return unsafe; }
+        Unsafe & get_mutable_unsafe() { return unsafe; }
+        void set_unsafe(const Unsafe & value) { this->unsafe = value; }
 
-    void from_json(const json & j, EncodeQuickType & x);
-    void to_json(json & j, const EncodeQuickType & x);
+        const Ushort & get_ushort() const { return ushort; }
+        Ushort & get_mutable_ushort() { return ushort; }
+        void set_ushort(const Ushort & value) { this->ushort = value; }
 
-    void from_json(const json & j, EnumValues & x);
-    void to_json(json & j, const EnumValues & x);
+        const Utf8JsonReader & get_utf8_json_reader() const { return utf8_json_reader; }
+        Utf8JsonReader & get_mutable_utf8_json_reader() { return utf8_json_reader; }
+        void set_utf8_json_reader(const Utf8JsonReader & value) { this->utf8_json_reader = value; }
 
-    void from_json(const json & j, EqualityContract & x);
-    void to_json(json & j, const EqualityContract & x);
+        const Utf8JsonWriter & get_utf8_json_writer() const { return utf8_json_writer; }
+        Utf8JsonWriter & get_mutable_utf8_json_writer() { return utf8_json_writer; }
+        void set_utf8_json_writer(const Utf8JsonWriter & value) { this->utf8_json_writer = value; }
 
-    void from_json(const json & j, Event & x);
-    void to_json(json & j, const Event & x);
+        const Uuid & get_uuid() const { return uuid; }
+        Uuid & get_mutable_uuid() { return uuid; }
+        void set_uuid(const Uuid & value) { this->uuid = value; }
 
-    void from_json(const json & j, Except & x);
-    void to_json(json & j, const Except & x);
+        const Var & get_var() const { return var; }
+        Var & get_mutable_var() { return var; }
+        void set_var(const Var & value) { this->var = value; }
 
-    void from_json(const json & j, Exception & x);
-    void to_json(json & j, const Exception & x);
+        const Weak & get_weak() const { return weak; }
+        Weak & get_mutable_weak() { return weak; }
+        void set_weak(const Weak & value) { this->weak = value; }
 
-    void from_json(const json & j, Exposing & x);
-    void to_json(json & j, const Exposing & x);
+        const Where & get_where() const { return where; }
+        Where & get_mutable_where() { return where; }
+        void set_where(const Where & value) { this->where = value; }
 
-    void from_json(const json & j, Extends & x);
-    void to_json(json & j, const Extends & x);
+        const WillSet & get_will_set() const { return will_set; }
+        WillSet & get_mutable_will_set() { return will_set; }
+        void set_will_set(const WillSet & value) { this->will_set = value; }
 
-    void from_json(const json & j, Extension & x);
-    void to_json(json & j, const Extension & x);
+        const With & get_with() const { return with; }
+        With & get_mutable_with() { return with; }
+        void set_with(const With & value) { this->with = value; }
 
-    void from_json(const json & j, Fallthrough & x);
-    void to_json(json & j, const Fallthrough & x);
+        const Yes & get_yes() const { return yes; }
+        Yes & get_mutable_yes() { return yes; }
+        void set_yes(const Yes & value) { this->yes = value; }
 
-    void from_json(const json & j, Fileprivate & x);
-    void to_json(json & j, const Fileprivate & x);
+        const Yield & get_yield() const { return yield; }
+        Yield & get_mutable_yield() { return yield; }
+        void set_yield(const Yield & value) { this->yield = value; }
+    };
 
-    void from_json(const json & j, Finally & x);
-    void to_json(json & j, const Finally & x);
+    class TopLevel {
+        public:
+        TopLevel() = default;
+        virtual ~TopLevel() = default;
 
-    void from_json(const json & j, Fixed & x);
-    void to_json(json & j, const Fixed & x);
+        private:
+        int64_t dummy;
+        Obj1 obj1;
+        Obj2 obj2;
+        Obj3 obj3;
+        Obj4 obj4;
+        Obj5 obj5;
 
-    void from_json(const json & j, Foreach & x);
-    void to_json(json & j, const Foreach & x);
+        public:
+        const int64_t & get_dummy() const { return dummy; }
+        int64_t & get_mutable_dummy() { return dummy; }
+        void set_dummy(const int64_t & value) { this->dummy = value; }
 
-    void from_json(const json & j, FormatException & x);
-    void to_json(json & j, const FormatException & x);
+        const Obj1 & get_obj1() const { return obj1; }
+        Obj1 & get_mutable_obj1() { return obj1; }
+        void set_obj1(const Obj1 & value) { this->obj1 = value; }
 
-    void from_json(const json & j, From & x);
-    void to_json(json & j, const From & x);
+        const Obj2 & get_obj2() const { return obj2; }
+        Obj2 & get_mutable_obj2() { return obj2; }
+        void set_obj2(const Obj2 & value) { this->obj2 = value; }
 
-    void from_json(const json & j, FromJson & x);
-    void to_json(json & j, const FromJson & x);
+        const Obj3 & get_obj3() const { return obj3; }
+        Obj3 & get_mutable_obj3() { return obj3; }
+        void set_obj3(const Obj3 & value) { this->obj3 = value; }
 
-    void from_json(const json & j, Func & x);
-    void to_json(json & j, const Func & x);
+        const Obj4 & get_obj4() const { return obj4; }
+        Obj4 & get_mutable_obj4() { return obj4; }
+        void set_obj4(const Obj4 & value) { this->obj4 = value; }
 
-    void from_json(const json & j, Function & x);
-    void to_json(json & j, const Function & x);
+        const Obj5 & get_obj5() const { return obj5; }
+        Obj5 & get_mutable_obj5() { return obj5; }
+        void set_obj5(const Obj5 & value) { this->obj5 = value; }
+    };
+}
 
-    void from_json(const json & j, Get & x);
-    void to_json(json & j, const Get & x);
+namespace quicktype {
+    void from_json(const json & j, Abstract & x);
+    void to_json(json & j, const Abstract & x);
 
-    void from_json(const json & j, Global & x);
-    void to_json(json & j, const Global & x);
+    void from_json(const json & j, Any & x);
+    void to_json(json & j, const Any & x);
 
-    void from_json(const json & j, Go & x);
-    void to_json(json & j, const Go & x);
+    void from_json(const json & j, Array & x);
+    void to_json(json & j, const Array & x);
 
-    void from_json(const json & j, Guard & x);
-    void to_json(json & j, const Guard & x);
+    void from_json(const json & j, As & x);
+    void to_json(json & j, const As & x);
 
-    void from_json(const json & j, HasOwnProperty & x);
-    void to_json(json & j, const HasOwnProperty & x);
+    void from_json(const json & j, Assert & x);
+    void to_json(json & j, const Assert & x);
 
-    void from_json(const json & j, HashCode & x);
-    void to_json(json & j, const HashCode & x);
+    void from_json(const json & j, Associatedtype & x);
+    void to_json(json & j, const Associatedtype & x);
 
-    void from_json(const json & j, Id & x);
-    void to_json(json & j, const Id & x);
+    void from_json(const json & j, Associativity & x);
+    void to_json(json & j, const Associativity & x);
 
-    void from_json(const json & j, Imp & x);
-    void to_json(json & j, const Imp & x);
+    void from_json(const json & j, Async & x);
+    void to_json(json & j, const Async & x);
 
-    void from_json(const json & j, Implements & x);
-    void to_json(json & j, const Implements & x);
+    void from_json(const json & j, Atomic & x);
+    void to_json(json & j, const Atomic & x);
 
-    void from_json(const json & j, Implicit & x);
-    void to_json(json & j, const Implicit & x);
+    void from_json(const json & j, Await & x);
+    void to_json(json & j, const Await & x);
 
-    void from_json(const json & j, In & x);
-    void to_json(json & j, const In & x);
+    void from_json(const json & j, Base & x);
+    void to_json(json & j, const Base & x);
 
-    void from_json(const json & j, Indirect & x);
-    void to_json(json & j, const Indirect & x);
+    void from_json(const json & j, Boolean & x);
+    void to_json(json & j, const Boolean & x);
 
-    void from_json(const json & j, Infix & x);
-    void to_json(json & j, const Infix & x);
+    void from_json(const json & j, Bycopy & x);
+    void to_json(json & j, const Bycopy & x);
 
-    void from_json(const json & j, Init & x);
-    void to_json(json & j, const Init & x);
+    void from_json(const json & j, Byref & x);
+    void to_json(json & j, const Byref & x);
 
-    void from_json(const json & j, Inout & x);
-    void to_json(json & j, const Inout & x);
+    void from_json(const json & j, Byte & x);
+    void to_json(json & j, const Byte & x);
 
-    void from_json(const json & j, Instanceof & x);
-    void to_json(json & j, const Instanceof & x);
+    void from_json(const json & j, Chan & x);
+    void to_json(json & j, const Chan & x);
 
-    void from_json(const json & j, Interface & x);
-    void to_json(json & j, const Interface & x);
+    void from_json(const json & j, Checked & x);
+    void to_json(json & j, const Checked & x);
+
+    void from_json(const json & j, Clone & x);
+    void to_json(json & j, const Clone & x);
 
-    void from_json(const json & j, Internal & x);
-    void to_json(json & j, const Internal & x);
+    void from_json(const json & j, Complex & x);
+    void to_json(json & j, const Complex & x);
 
-    void from_json(const json & j, Default & x);
-    void to_json(json & j, const Default & x);
+    void from_json(const json & j, Console & x);
+    void to_json(json & j, const Console & x);
 
-    void from_json(const json & j, Delete & x);
-    void to_json(json & j, const Delete & x);
+    void from_json(const json & j, Constructor & x);
+    void to_json(json & j, const Constructor & x);
 
-    void from_json(const json & j, Do & x);
-    void to_json(json & j, const Do & x);
+    void from_json(const json & j, Convenience & x);
+    void to_json(json & j, const Convenience & x);
 
-    void from_json(const json & j, Double & x);
-    void to_json(json & j, const Double & x);
+    void from_json(const json & j, Convert & x);
+    void to_json(json & j, const Convert & x);
 
-    void from_json(const json & j, DynamicCast & x);
-    void to_json(json & j, const DynamicCast & x);
+    void from_json(const json & j, Converter & x);
+    void to_json(json & j, const Converter & x);
 
-    void from_json(const json & j, Else & x);
-    void to_json(json & j, const Else & x);
+    void from_json(const json & j, CultureInfo & x);
+    void to_json(json & j, const CultureInfo & x);
 
-    void from_json(const json & j, Enum & x);
-    void to_json(json & j, const Enum & x);
+    void from_json(const json & j, Date & x);
+    void to_json(json & j, const Date & x);
 
-    void from_json(const json & j, Explicit & x);
-    void to_json(json & j, const Explicit & x);
+    void from_json(const json & j, DateFormatter & x);
+    void to_json(json & j, const DateFormatter & x);
 
-    void from_json(const json & j, Export & x);
-    void to_json(json & j, const Export & x);
+    void from_json(const json & j, DateOnly & x);
+    void to_json(json & j, const DateOnly & x);
 
-    void from_json(const json & j, Extern & x);
-    void to_json(json & j, const Extern & x);
+    void from_json(const json & j, DateOnlyConverter & x);
+    void to_json(json & j, const DateOnlyConverter & x);
 
-    void from_json(const json & j, False & x);
-    void to_json(json & j, const False & x);
+    void from_json(const json & j, DateParseHandling & x);
+    void to_json(json & j, const DateParseHandling & x);
 
-    void from_json(const json & j, Final & x);
-    void to_json(json & j, const Final & x);
+    void from_json(const json & j, Empty & x);
+    void to_json(json & j, const Empty & x);
 
-    void from_json(const json & j, Float & x);
-    void to_json(json & j, const Float & x);
+    void from_json(const json & j, Obj1Bool & x);
+    void to_json(json & j, const Obj1Bool & x);
 
-    void from_json(const json & j, For & x);
-    void to_json(json & j, const For & x);
+    void from_json(const json & j, Imaginery & x);
+    void to_json(json & j, const Imaginery & x);
 
-    void from_json(const json & j, Friend & x);
-    void to_json(json & j, const Friend & x);
+    void from_json(const json & j, Alignas & x);
+    void to_json(json & j, const Alignas & x);
 
-    void from_json(const json & j, Goto & x);
-    void to_json(json & j, const Goto & x);
+    void from_json(const json & j, Alignof & x);
+    void to_json(json & j, const Alignof & x);
 
-    void from_json(const json & j, If & x);
-    void to_json(json & j, const If & x);
+    void from_json(const json & j, And & x);
+    void to_json(json & j, const And & x);
 
-    void from_json(const json & j, Import & x);
-    void to_json(json & j, const Import & x);
+    void from_json(const json & j, AndEq & x);
+    void to_json(json & j, const AndEq & x);
 
-    void from_json(const json & j, Inline & x);
-    void to_json(json & j, const Inline & x);
+    void from_json(const json & j, AnyClass & x);
+    void to_json(json & j, const AnyClass & x);
 
-    void from_json(const json & j, Int & x);
-    void to_json(json & j, const Int & x);
+    void from_json(const json & j, Asm & x);
+    void to_json(json & j, const Asm & x);
 
-    void from_json(const json & j, FalseClass & x);
-    void to_json(json & j, const FalseClass & x);
+    void from_json(const json & j, AtomicCancel & x);
+    void to_json(json & j, const AtomicCancel & x);
 
-    void from_json(const json & j, Obj2 & x);
-    void to_json(json & j, const Obj2 & x);
+    void from_json(const json & j, AtomicCommit & x);
+    void to_json(json & j, const AtomicCommit & x);
 
-    void from_json(const json & j, Is & x);
-    void to_json(json & j, const Is & x);
+    void from_json(const json & j, AtomicNoexcept & x);
+    void to_json(json & j, const AtomicNoexcept & x);
 
-    void from_json(const json & j, IsoDateTimeOffsetConverter & x);
-    void to_json(json & j, const IsoDateTimeOffsetConverter & x);
+    void from_json(const json & j, Auto & x);
+    void to_json(json & j, const Auto & x);
 
-    void from_json(const json & j, Iterable & x);
-    void to_json(json & j, const Iterable & x);
+    void from_json(const json & j, Bitand & x);
+    void to_json(json & j, const Bitand & x);
 
-    void from_json(const json & j, Jdec & x);
-    void to_json(json & j, const Jdec & x);
+    void from_json(const json & j, Bitor & x);
+    void to_json(json & j, const Bitor & x);
 
-    void from_json(const json & j, Jenc & x);
-    void to_json(json & j, const Jenc & x);
+    void from_json(const json & j, Bool & x);
+    void to_json(json & j, const Bool & x);
 
-    void from_json(const json & j, Jpipe & x);
-    void to_json(json & j, const Jpipe & x);
+    void from_json(const json & j, Break & x);
+    void to_json(json & j, const Break & x);
 
-    void from_json(const json & j, Json & x);
-    void to_json(json & j, const Json & x);
+    void from_json(const json & j, Case & x);
+    void to_json(json & j, const Case & x);
 
-    void from_json(const json & j, JsonAny & x);
-    void to_json(json & j, const JsonAny & x);
+    void from_json(const json & j, Catch & x);
+    void to_json(json & j, const Catch & x);
 
-    void from_json(const json & j, JsonCodingKey & x);
-    void to_json(json & j, const JsonCodingKey & x);
+    void from_json(const json & j, Char & x);
+    void to_json(json & j, const Char & x);
 
-    void from_json(const json & j, JsonConverter & x);
-    void to_json(json & j, const JsonConverter & x);
+    void from_json(const json & j, Char16T & x);
+    void to_json(json & j, const Char16T & x);
 
-    void from_json(const json & j, JsonDecoder & x);
-    void to_json(json & j, const JsonDecoder & x);
+    void from_json(const json & j, Char32T & x);
+    void to_json(json & j, const Char32T & x);
 
-    void from_json(const json & j, JsonEncoder & x);
-    void to_json(json & j, const JsonEncoder & x);
+    void from_json(const json & j, Class & x);
+    void to_json(json & j, const Class & x);
 
-    void from_json(const json & j, JsonException & x);
-    void to_json(json & j, const JsonException & x);
+    void from_json(const json & j, CoAwait & x);
+    void to_json(json & j, const CoAwait & x);
 
-    void from_json(const json & j, JsonGenerator & x);
-    void to_json(json & j, const JsonGenerator & x);
+    void from_json(const json & j, CoReturn & x);
+    void to_json(json & j, const CoReturn & x);
 
-    void from_json(const json & j, JsonNode & x);
-    void to_json(json & j, const JsonNode & x);
+    void from_json(const json & j, CoYield & x);
+    void to_json(json & j, const CoYield & x);
 
-    void from_json(const json & j, JsonNull & x);
-    void to_json(json & j, const JsonNull & x);
+    void from_json(const json & j, Compl & x);
+    void to_json(json & j, const Compl & x);
 
-    void from_json(const json & j, JsonParser & x);
-    void to_json(json & j, const JsonParser & x);
+    void from_json(const json & j, Concept & x);
+    void to_json(json & j, const Concept & x);
 
-    void from_json(const json & j, JsonReader & x);
-    void to_json(json & j, const JsonReader & x);
+    void from_json(const json & j, Const & x);
+    void to_json(json & j, const Const & x);
 
-    void from_json(const json & j, JsonSerializer & x);
-    void to_json(json & j, const JsonSerializer & x);
+    void from_json(const json & j, ConstCast & x);
+    void to_json(json & j, const ConstCast & x);
 
-    void from_json(const json & j, JsonToken & x);
-    void to_json(json & j, const JsonToken & x);
+    void from_json(const json & j, Constexpr & x);
+    void to_json(json & j, const Constexpr & x);
 
-    void from_json(const json & j, JsonTokenType & x);
-    void to_json(json & j, const JsonTokenType & x);
+    void from_json(const json & j, Continue & x);
+    void to_json(json & j, const Continue & x);
 
-    void from_json(const json & j, JsonWriter & x);
-    void to_json(json & j, const JsonWriter & x);
+    void from_json(const json & j, BoolClass & x);
+    void to_json(json & j, const BoolClass & x);
 
-    void from_json(const json & j, Lambda & x);
-    void to_json(json & j, const Lambda & x);
+    void from_json(const json & j, ClassClass & x);
+    void to_json(json & j, const ClassClass & x);
 
-    void from_json(const json & j, Lazy & x);
-    void to_json(json & j, const Lazy & x);
+    void from_json(const json & j, Obj1 & x);
+    void to_json(json & j, const Obj1 & x);
 
-    void from_json(const json & j, Left & x);
-    void to_json(json & j, const Left & x);
+    void from_json(const json & j, DateTime & x);
+    void to_json(json & j, const DateTime & x);
 
-    void from_json(const json & j, Let & x);
-    void to_json(json & j, const Let & x);
+    void from_json(const json & j, DateTimeStyles & x);
+    void to_json(json & j, const DateTimeStyles & x);
 
-    void from_json(const json & j, List & x);
-    void to_json(json & j, const List & x);
+    void from_json(const json & j, Debugger & x);
+    void to_json(json & j, const Debugger & x);
 
-    void from_json(const json & j, Lock & x);
-    void to_json(json & j, const Lock & x);
+    void from_json(const json & j, Decimal & x);
+    void to_json(json & j, const Decimal & x);
 
-    void from_json(const json & j, Map & x);
-    void to_json(json & j, const Map & x);
+    void from_json(const json & j, Declare & x);
+    void to_json(json & j, const Declare & x);
 
-    void from_json(const json & j, MetadataPropertyHandling & x);
-    void to_json(json & j, const MetadataPropertyHandling & x);
+    void from_json(const json & j, DecodeString & x);
+    void to_json(json & j, const DecodeString & x);
 
-    void from_json(const json & j, Mutating & x);
-    void to_json(json & j, const Mutating & x);
+    void from_json(const json & j, Def & x);
+    void to_json(json & j, const Def & x);
 
-    void from_json(const json & j, Native & x);
-    void to_json(json & j, const Native & x);
+    void from_json(const json & j, Defer & x);
+    void to_json(json & j, const Defer & x);
 
-    void from_json(const json & j, Newtonsoft & x);
-    void to_json(json & j, const Newtonsoft & x);
+    void from_json(const json & j, Deinit & x);
+    void to_json(json & j, const Deinit & x);
 
-    void from_json(const json & j, Nil & x);
-    void to_json(json & j, const Nil & x);
+    void from_json(const json & j, Del & x);
+    void to_json(json & j, const Del & x);
 
-    void from_json(const json & j, No & x);
-    void to_json(json & j, const No & x);
+    void from_json(const json & j, Delegate & x);
+    void to_json(json & j, const Delegate & x);
 
-    void from_json(const json & j, NoSuchMethod & x);
-    void to_json(json & j, const NoSuchMethod & x);
+    void from_json(const json & j, Dict & x);
+    void to_json(json & j, const Dict & x);
 
-    void from_json(const json & j, Nonatomic & x);
-    void to_json(json & j, const Nonatomic & x);
+    void from_json(const json & j, Dictionary & x);
+    void to_json(json & j, const Dictionary & x);
 
-    void from_json(const json & j, None & x);
-    void to_json(json & j, const None & x);
+    void from_json(const json & j, DidSet & x);
+    void to_json(json & j, const DidSet & x);
 
-    void from_json(const json & j, Nonlocal & x);
-    void to_json(json & j, const Nonlocal & x);
+    void from_json(const json & j, Dynamic & x);
+    void to_json(json & j, const Dynamic & x);
 
-    void from_json(const json & j, Nonmutating & x);
-    void to_json(json & j, const Nonmutating & x);
+    void from_json(const json & j, Elif & x);
+    void to_json(json & j, const Elif & x);
 
-    void from_json(const json & j, NsError & x);
-    void to_json(json & j, const NsError & x);
+    void from_json(const json & j, EncodeQuickType & x);
+    void to_json(json & j, const EncodeQuickType & x);
 
-    void from_json(const json & j, NsString & x);
-    void to_json(json & j, const NsString & x);
+    void from_json(const json & j, EnumValues & x);
+    void to_json(json & j, const EnumValues & x);
 
-    void from_json(const json & j, Null & x);
-    void to_json(json & j, const Null & x);
+    void from_json(const json & j, EqualityContract & x);
+    void to_json(json & j, const EqualityContract & x);
 
-    void from_json(const json & j, Number & x);
-    void to_json(json & j, const Number & x);
+    void from_json(const json & j, Event & x);
+    void to_json(json & j, const Event & x);
 
-    void from_json(const json & j, Long & x);
-    void to_json(json & j, const Long & x);
+    void from_json(const json & j, Except & x);
+    void to_json(json & j, const Except & x);
 
-    void from_json(const json & j, Module & x);
-    void to_json(json & j, const Module & x);
+    void from_json(const json & j, Exception & x);
+    void to_json(json & j, const Exception & x);
 
-    void from_json(const json & j, Mutable & x);
-    void to_json(json & j, const Mutable & x);
+    void from_json(const json & j, Exposing & x);
+    void to_json(json & j, const Exposing & x);
 
-    void from_json(const json & j, Namespace & x);
-    void to_json(json & j, const Namespace & x);
+    void from_json(const json & j, Extends & x);
+    void to_json(json & j, const Extends & x);
 
-    void from_json(const json & j, New & x);
-    void to_json(json & j, const New & x);
+    void from_json(const json & j, Extension & x);
+    void to_json(json & j, const Extension & x);
 
-    void from_json(const json & j, Noexcept & x);
-    void to_json(json & j, const Noexcept & x);
+    void from_json(const json & j, Fallthrough & x);
+    void to_json(json & j, const Fallthrough & x);
 
-    void from_json(const json & j, NoneClass & x);
-    void to_json(json & j, const NoneClass & x);
+    void from_json(const json & j, Fileprivate & x);
+    void to_json(json & j, const Fileprivate & x);
 
-    void from_json(const json & j, Not & x);
-    void to_json(json & j, const Not & x);
+    void from_json(const json & j, Finally & x);
+    void to_json(json & j, const Finally & x);
 
-    void from_json(const json & j, NotEq & x);
-    void to_json(json & j, const NotEq & x);
+    void from_json(const json & j, Fixed & x);
+    void to_json(json & j, const Fixed & x);
 
-    void from_json(const json & j, NullClass & x);
-    void to_json(json & j, const NullClass & x);
+    void from_json(const json & j, Foreach & x);
+    void to_json(json & j, const Foreach & x);
 
-    void from_json(const json & j, Nullptr & x);
-    void to_json(json & j, const Nullptr & x);
+    void from_json(const json & j, FormatException & x);
+    void to_json(json & j, const FormatException & x);
 
-    void from_json(const json & j, Operator & x);
-    void to_json(json & j, const Operator & x);
+    void from_json(const json & j, From & x);
+    void to_json(json & j, const From & x);
 
-    void from_json(const json & j, Or & x);
-    void to_json(json & j, const Or & x);
+    void from_json(const json & j, FromJson & x);
+    void to_json(json & j, const FromJson & x);
 
-    void from_json(const json & j, OrEq & x);
-    void to_json(json & j, const OrEq & x);
+    void from_json(const json & j, Func & x);
+    void to_json(json & j, const Func & x);
 
-    void from_json(const json & j, Override & x);
-    void to_json(json & j, const Override & x);
+    void from_json(const json & j, Function & x);
+    void to_json(json & j, const Function & x);
 
-    void from_json(const json & j, Private & x);
-    void to_json(json & j, const Private & x);
+    void from_json(const json & j, Get & x);
+    void to_json(json & j, const Get & x);
 
-    void from_json(const json & j, Protected & x);
-    void to_json(json & j, const Protected & x);
+    void from_json(const json & j, Global & x);
+    void to_json(json & j, const Global & x);
 
-    void from_json(const json & j, ProtocolClass & x);
-    void to_json(json & j, const ProtocolClass & x);
+    void from_json(const json & j, Go & x);
+    void to_json(json & j, const Go & x);
 
-    void from_json(const json & j, Object & x);
-    void to_json(json & j, const Object & x);
+    void from_json(const json & j, Guard & x);
+    void to_json(json & j, const Guard & x);
 
-    void from_json(const json & j, ObjectMapper & x);
-    void to_json(json & j, const ObjectMapper & x);
+    void from_json(const json & j, HasOwnProperty & x);
+    void to_json(json & j, const HasOwnProperty & x);
 
-    void from_json(const json & j, Of & x);
-    void to_json(json & j, const Of & x);
+    void from_json(const json & j, HashCode & x);
+    void to_json(json & j, const HashCode & x);
 
-    void from_json(const json & j, Oneway & x);
-    void to_json(json & j, const Oneway & x);
+    void from_json(const json & j, Id & x);
+    void to_json(json & j, const Id & x);
 
-    void from_json(const json & j, Open & x);
-    void to_json(json & j, const Open & x);
+    void from_json(const json & j, Imp & x);
+    void to_json(json & j, const Imp & x);
 
-    void from_json(const json & j, Optional & x);
-    void to_json(json & j, const Optional & x);
+    void from_json(const json & j, Implements & x);
+    void to_json(json & j, const Implements & x);
 
-    void from_json(const json & j, Out & x);
-    void to_json(json & j, const Out & x);
+    void from_json(const json & j, Implicit & x);
+    void to_json(json & j, const Implicit & x);
 
-    void from_json(const json & j, Package & x);
-    void to_json(json & j, const Package & x);
+    void from_json(const json & j, Decltype & x);
+    void to_json(json & j, const Decltype & x);
 
-    void from_json(const json & j, Params & x);
-    void to_json(json & j, const Params & x);
+    void from_json(const json & j, Default & x);
+    void to_json(json & j, const Default & x);
 
-    void from_json(const json & j, Pass & x);
-    void to_json(json & j, const Pass & x);
+    void from_json(const json & j, Delete & x);
+    void to_json(json & j, const Delete & x);
 
-    void from_json(const json & j, Port & x);
-    void to_json(json & j, const Port & x);
+    void from_json(const json & j, Do & x);
+    void to_json(json & j, const Do & x);
 
-    void from_json(const json & j, Postfix & x);
-    void to_json(json & j, const Postfix & x);
+    void from_json(const json & j, Double & x);
+    void to_json(json & j, const Double & x);
 
-    void from_json(const json & j, Precedence & x);
-    void to_json(json & j, const Precedence & x);
+    void from_json(const json & j, DynamicCast & x);
+    void to_json(json & j, const DynamicCast & x);
 
-    void from_json(const json & j, Prefix & x);
-    void to_json(json & j, const Prefix & x);
+    void from_json(const json & j, Else & x);
+    void to_json(json & j, const Else & x);
 
-    void from_json(const json & j, Print & x);
-    void to_json(json & j, const Print & x);
+    void from_json(const json & j, Enum & x);
+    void to_json(json & j, const Enum & x);
 
-    void from_json(const json & j, PrintMembers & x);
-    void to_json(json & j, const PrintMembers & x);
+    void from_json(const json & j, Explicit & x);
+    void to_json(json & j, const Explicit & x);
 
-    void from_json(const json & j, Printf & x);
-    void to_json(json & j, const Printf & x);
+    void from_json(const json & j, Export & x);
+    void to_json(json & j, const Export & x);
 
-    void from_json(const json & j, Protocol & x);
-    void to_json(json & j, const Protocol & x);
+    void from_json(const json & j, Extern & x);
+    void to_json(json & j, const Extern & x);
 
-    void from_json(const json & j, SerializerProvider & x);
-    void to_json(json & j, const SerializerProvider & x);
+    void from_json(const json & j, False & x);
+    void to_json(json & j, const False & x);
 
-    void from_json(const json & j, SimpleModule & x);
-    void to_json(json & j, const SimpleModule & x);
+    void from_json(const json & j, Final & x);
+    void to_json(json & j, const Final & x);
 
-    void from_json(const json & j, StdDeserializer & x);
-    void to_json(json & j, const StdDeserializer & x);
+    void from_json(const json & j, Float & x);
+    void to_json(json & j, const Float & x);
 
-    void from_json(const json & j, StdSerializer & x);
-    void to_json(json & j, const StdSerializer & x);
+    void from_json(const json & j, For & x);
+    void to_json(json & j, const For & x);
 
-    void from_json(const json & j, Obj3 & x);
-    void to_json(json & j, const Obj3 & x);
+    void from_json(const json & j, Friend & x);
+    void to_json(json & j, const Friend & x);
 
-    void from_json(const json & j, Public & x);
-    void to_json(json & j, const Public & x);
+    void from_json(const json & j, Goto & x);
+    void to_json(json & j, const Goto & x);
 
-    void from_json(const json & j, Register & x);
-    void to_json(json & j, const Register & x);
+    void from_json(const json & j, If & x);
+    void to_json(json & j, const If & x);
 
-    void from_json(const json & j, ReinterpretCast & x);
-    void to_json(json & j, const ReinterpretCast & x);
+    void from_json(const json & j, FalseClass & x);
+    void to_json(json & j, const FalseClass & x);
 
-    void from_json(const json & j, Requires & x);
-    void to_json(json & j, const Requires & x);
+    void from_json(const json & j, Obj2 & x);
+    void to_json(json & j, const Obj2 & x);
 
-    void from_json(const json & j, Return & x);
-    void to_json(json & j, const Return & x);
+    void from_json(const json & j, In & x);
+    void to_json(json & j, const In & x);
 
-    void from_json(const json & j, SelfClass & x);
-    void to_json(json & j, const SelfClass & x);
+    void from_json(const json & j, Indirect & x);
+    void to_json(json & j, const Indirect & x);
 
-    void from_json(const json & j, Short & x);
-    void to_json(json & j, const Short & x);
+    void from_json(const json & j, Infix & x);
+    void to_json(json & j, const Infix & x);
 
-    void from_json(const json & j, Signed & x);
-    void to_json(json & j, const Signed & x);
+    void from_json(const json & j, Init & x);
+    void to_json(json & j, const Init & x);
 
-    void from_json(const json & j, Sizeof & x);
-    void to_json(json & j, const Sizeof & x);
+    void from_json(const json & j, Inout & x);
+    void to_json(json & j, const Inout & x);
 
-    void from_json(const json & j, Static & x);
-    void to_json(json & j, const Static & x);
+    void from_json(const json & j, Instanceof & x);
+    void to_json(json & j, const Instanceof & x);
 
-    void from_json(const json & j, StaticAssert & x);
-    void to_json(json & j, const StaticAssert & x);
+    void from_json(const json & j, Interface & x);
+    void to_json(json & j, const Interface & x);
 
-    void from_json(const json & j, StaticCast & x);
-    void to_json(json & j, const StaticCast & x);
+    void from_json(const json & j, Internal & x);
+    void to_json(json & j, const Internal & x);
 
-    void from_json(const json & j, Struct & x);
-    void to_json(json & j, const Struct & x);
+    void from_json(const json & j, Is & x);
+    void to_json(json & j, const Is & x);
 
-    void from_json(const json & j, Switch & x);
-    void to_json(json & j, const Switch & x);
+    void from_json(const json & j, IsoDateTimeOffsetConverter & x);
+    void to_json(json & j, const IsoDateTimeOffsetConverter & x);
 
-    void from_json(const json & j, Synchronized & x);
-    void to_json(json & j, const Synchronized & x);
+    void from_json(const json & j, Iterable & x);
+    void to_json(json & j, const Iterable & x);
 
-    void from_json(const json & j, Template & x);
-    void to_json(json & j, const Template & x);
+    void from_json(const json & j, Jdec & x);
+    void to_json(json & j, const Jdec & x);
 
-    void from_json(const json & j, This & x);
-    void to_json(json & j, const This & x);
+    void from_json(const json & j, Jenc & x);
+    void to_json(json & j, const Jenc & x);
 
-    void from_json(const json & j, ThreadLocal & x);
-    void to_json(json & j, const ThreadLocal & x);
+    void from_json(const json & j, Jpipe & x);
+    void to_json(json & j, const Jpipe & x);
 
-    void from_json(const json & j, Throw & x);
-    void to_json(json & j, const Throw & x);
+    void from_json(const json & j, Json & x);
+    void to_json(json & j, const Json & x);
 
-    void from_json(const json & j, True & x);
-    void to_json(json & j, const True & x);
+    void from_json(const json & j, JsonAny & x);
+    void to_json(json & j, const JsonAny & x);
 
-    void from_json(const json & j, Try & x);
-    void to_json(json & j, const Try & x);
+    void from_json(const json & j, JsonCodingKey & x);
+    void to_json(json & j, const JsonCodingKey & x);
 
-    void from_json(const json & j, TypeClass & x);
-    void to_json(json & j, const TypeClass & x);
+    void from_json(const json & j, JsonConverter & x);
+    void to_json(json & j, const JsonConverter & x);
 
-    void from_json(const json & j, Typedef & x);
-    void to_json(json & j, const Typedef & x);
+    void from_json(const json & j, JsonDecoder & x);
+    void to_json(json & j, const JsonDecoder & x);
 
-    void from_json(const json & j, Typeid & x);
-    void to_json(json & j, const Typeid & x);
+    void from_json(const json & j, JsonEncoder & x);
+    void to_json(json & j, const JsonEncoder & x);
 
-    void from_json(const json & j, Typename & x);
-    void to_json(json & j, const Typename & x);
+    void from_json(const json & j, JsonException & x);
+    void to_json(json & j, const JsonException & x);
 
-    void from_json(const json & j, TrueClass & x);
-    void to_json(json & j, const TrueClass & x);
+    void from_json(const json & j, JsonGenerator & x);
+    void to_json(json & j, const JsonGenerator & x);
 
-    void from_json(const json & j, Quicktype & x);
-    void to_json(json & j, const Quicktype & x);
+    void from_json(const json & j, JsonNode & x);
+    void to_json(json & j, const JsonNode & x);
 
-    void from_json(const json & j, Raise & x);
-    void to_json(json & j, const Raise & x);
+    void from_json(const json & j, JsonNull & x);
+    void to_json(json & j, const JsonNull & x);
 
-    void from_json(const json & j, Range & x);
-    void to_json(json & j, const Range & x);
+    void from_json(const json & j, JsonParser & x);
+    void to_json(json & j, const JsonParser & x);
 
-    void from_json(const json & j, Readonly & x);
-    void to_json(json & j, const Readonly & x);
+    void from_json(const json & j, JsonReader & x);
+    void to_json(json & j, const JsonReader & x);
 
-    void from_json(const json & j, Ref & x);
-    void to_json(json & j, const Ref & x);
+    void from_json(const json & j, JsonSerializer & x);
+    void to_json(json & j, const JsonSerializer & x);
 
-    void from_json(const json & j, RegExp & x);
-    void to_json(json & j, const RegExp & x);
+    void from_json(const json & j, JsonToken & x);
+    void to_json(json & j, const JsonToken & x);
 
-    void from_json(const json & j, Repeat & x);
-    void to_json(json & j, const Repeat & x);
+    void from_json(const json & j, JsonTokenType & x);
+    void to_json(json & j, const JsonTokenType & x);
 
-    void from_json(const json & j, Require & x);
-    void to_json(json & j, const Require & x);
+    void from_json(const json & j, JsonWriter & x);
+    void to_json(json & j, const JsonWriter & x);
 
-    void from_json(const json & j, Required & x);
-    void to_json(json & j, const Required & x);
+    void from_json(const json & j, Lambda & x);
+    void to_json(json & j, const Lambda & x);
 
-    void from_json(const json & j, Restrict & x);
-    void to_json(json & j, const Restrict & x);
+    void from_json(const json & j, Lazy & x);
+    void to_json(json & j, const Lazy & x);
 
-    void from_json(const json & j, Retain & x);
-    void to_json(json & j, const Retain & x);
+    void from_json(const json & j, Left & x);
+    void to_json(json & j, const Left & x);
 
-    void from_json(const json & j, Rethrows & x);
-    void to_json(json & j, const Rethrows & x);
+    void from_json(const json & j, Let & x);
+    void to_json(json & j, const Let & x);
 
-    void from_json(const json & j, Right & x);
-    void to_json(json & j, const Right & x);
+    void from_json(const json & j, List & x);
+    void to_json(json & j, const List & x);
 
-    void from_json(const json & j, RuntimeType & x);
-    void to_json(json & j, const RuntimeType & x);
+    void from_json(const json & j, Lock & x);
+    void to_json(json & j, const Lock & x);
 
-    void from_json(const json & j, S & x);
-    void to_json(json & j, const S & x);
+    void from_json(const json & j, Map & x);
+    void to_json(json & j, const Map & x);
 
-    void from_json(const json & j, Sbyte & x);
-    void to_json(json & j, const Sbyte & x);
+    void from_json(const json & j, MetadataPropertyHandling & x);
+    void to_json(json & j, const MetadataPropertyHandling & x);
 
-    void from_json(const json & j, Sealed & x);
-    void to_json(json & j, const Sealed & x);
+    void from_json(const json & j, Mutating & x);
+    void to_json(json & j, const Mutating & x);
 
-    void from_json(const json & j, Sel & x);
-    void to_json(json & j, const Sel & x);
+    void from_json(const json & j, Native & x);
+    void to_json(json & j, const Native & x);
 
-    void from_json(const json & j, Select & x);
-    void to_json(json & j, const Select & x);
+    void from_json(const json & j, Newtonsoft & x);
+    void to_json(json & j, const Newtonsoft & x);
 
-    void from_json(const json & j, Self & x);
-    void to_json(json & j, const Self & x);
+    void from_json(const json & j, Nil & x);
+    void to_json(json & j, const Nil & x);
 
-    void from_json(const json & j, Serialize & x);
-    void to_json(json & j, const Serialize & x);
+    void from_json(const json & j, No & x);
+    void to_json(json & j, const No & x);
 
-    void from_json(const json & j, Set & x);
-    void to_json(json & j, const Set & x);
+    void from_json(const json & j, NoSuchMethod & x);
+    void to_json(json & j, const NoSuchMethod & x);
 
-    void from_json(const json & j, Stackalloc & x);
-    void to_json(json & j, const Stackalloc & x);
+    void from_json(const json & j, Nonatomic & x);
+    void to_json(json & j, const Nonatomic & x);
 
-    void from_json(const json & j, Standards & x);
-    void to_json(json & j, const Standards & x);
+    void from_json(const json & j, None & x);
+    void to_json(json & j, const None & x);
 
-    void from_json(const json & j, Strictfp & x);
-    void to_json(json & j, const Strictfp & x);
+    void from_json(const json & j, Nonlocal & x);
+    void to_json(json & j, const Nonlocal & x);
 
-    void from_json(const json & j, String & x);
-    void to_json(json & j, const String & x);
+    void from_json(const json & j, Nonmutating & x);
+    void to_json(json & j, const Nonmutating & x);
 
-    void from_json(const json & j, Subscript & x);
-    void to_json(json & j, const Subscript & x);
+    void from_json(const json & j, NsError & x);
+    void to_json(json & j, const NsError & x);
 
-    void from_json(const json & j, Super & x);
-    void to_json(json & j, const Super & x);
+    void from_json(const json & j, NsString & x);
+    void to_json(json & j, const NsString & x);
 
-    void from_json(const json & j, Symbol & x);
-    void to_json(json & j, const Symbol & x);
+    void from_json(const json & j, Null & x);
+    void to_json(json & j, const Null & x);
 
-    void from_json(const json & j, System & x);
-    void to_json(json & j, const System & x);
+    void from_json(const json & j, Import & x);
+    void to_json(json & j, const Import & x);
 
-    void from_json(const json & j, Then & x);
-    void to_json(json & j, const Then & x);
+    void from_json(const json & j, Inline & x);
+    void to_json(json & j, const Inline & x);
 
-    void from_json(const json & j, Throws & x);
-    void to_json(json & j, const Throws & x);
+    void from_json(const json & j, Int & x);
+    void to_json(json & j, const Int & x);
 
-    void from_json(const json & j, TimeOnly & x);
-    void to_json(json & j, const TimeOnly & x);
+    void from_json(const json & j, Long & x);
+    void to_json(json & j, const Long & x);
 
-    void from_json(const json & j, TimeOnlyConverter & x);
-    void to_json(json & j, const TimeOnlyConverter & x);
+    void from_json(const json & j, Module & x);
+    void to_json(json & j, const Module & x);
 
-    void from_json(const json & j, ToJson & x);
-    void to_json(json & j, const ToJson & x);
+    void from_json(const json & j, Mutable & x);
+    void to_json(json & j, const Mutable & x);
 
-    void from_json(const json & j, ToString & x);
-    void to_json(json & j, const ToString & x);
+    void from_json(const json & j, Namespace & x);
+    void to_json(json & j, const Namespace & x);
 
-    void from_json(const json & j, TopLevelClass & x);
-    void to_json(json & j, const TopLevelClass & x);
+    void from_json(const json & j, New & x);
+    void to_json(json & j, const New & x);
 
-    void from_json(const json & j, Transient & x);
-    void to_json(json & j, const Transient & x);
+    void from_json(const json & j, Noexcept & x);
+    void to_json(json & j, const Noexcept & x);
 
-    void from_json(const json & j, Type & x);
-    void to_json(json & j, const Type & x);
+    void from_json(const json & j, NoneClass & x);
+    void to_json(json & j, const NoneClass & x);
 
-    void from_json(const json & j, Typealias & x);
-    void to_json(json & j, const Typealias & x);
+    void from_json(const json & j, Not & x);
+    void to_json(json & j, const Not & x);
 
-    void from_json(const json & j, Typeof & x);
-    void to_json(json & j, const Typeof & x);
+    void from_json(const json & j, NotEq & x);
+    void to_json(json & j, const NotEq & x);
 
-    void from_json(const json & j, Uint & x);
-    void to_json(json & j, const Uint & x);
+    void from_json(const json & j, NullClass & x);
+    void to_json(json & j, const NullClass & x);
 
-    void from_json(const json & j, Ulong & x);
-    void to_json(json & j, const Ulong & x);
+    void from_json(const json & j, Obj3 & x);
+    void to_json(json & j, const Obj3 & x);
 
-    void from_json(const json & j, Unchecked & x);
-    void to_json(json & j, const Unchecked & x);
+    void from_json(const json & j, Number & x);
+    void to_json(json & j, const Number & x);
 
-    void from_json(const json & j, Undefined & x);
-    void to_json(json & j, const Undefined & x);
+    void from_json(const json & j, Nullptr & x);
+    void to_json(json & j, const Nullptr & x);
 
-    void from_json(const json & j, Obj4 & x);
-    void to_json(json & j, const Obj4 & x);
+    void from_json(const json & j, Operator & x);
+    void to_json(json & j, const Operator & x);
 
-    void from_json(const json & j, Union & x);
-    void to_json(json & j, const Union & x);
+    void from_json(const json & j, Or & x);
+    void to_json(json & j, const Or & x);
 
-    void from_json(const json & j, Unsigned & x);
-    void to_json(json & j, const Unsigned & x);
+    void from_json(const json & j, OrEq & x);
+    void to_json(json & j, const OrEq & x);
 
-    void from_json(const json & j, Using & x);
-    void to_json(json & j, const Using & x);
+    void from_json(const json & j, Override & x);
+    void to_json(json & j, const Override & x);
 
-    void from_json(const json & j, Virtual & x);
-    void to_json(json & j, const Virtual & x);
+    void from_json(const json & j, Private & x);
+    void to_json(json & j, const Private & x);
 
-    void from_json(const json & j, Void & x);
-    void to_json(json & j, const Void & x);
+    void from_json(const json & j, Protected & x);
+    void to_json(json & j, const Protected & x);
 
-    void from_json(const json & j, Volatile & x);
-    void to_json(json & j, const Volatile & x);
+    void from_json(const json & j, ProtocolClass & x);
+    void to_json(json & j, const ProtocolClass & x);
 
-    void from_json(const json & j, WcharT & x);
-    void to_json(json & j, const WcharT & x);
+    void from_json(const json & j, Public & x);
+    void to_json(json & j, const Public & x);
 
-    void from_json(const json & j, While & x);
-    void to_json(json & j, const While & x);
+    void from_json(const json & j, Register & x);
+    void to_json(json & j, const Register & x);
 
-    void from_json(const json & j, Xor & x);
-    void to_json(json & j, const Xor & x);
+    void from_json(const json & j, ReinterpretCast & x);
+    void to_json(json & j, const ReinterpretCast & x);
 
-    void from_json(const json & j, XorEq & x);
-    void to_json(json & j, const XorEq & x);
+    void from_json(const json & j, Requires & x);
+    void to_json(json & j, const Requires & x);
 
-    void from_json(const json & j, Unowned & x);
-    void to_json(json & j, const Unowned & x);
+    void from_json(const json & j, Return & x);
+    void to_json(json & j, const Return & x);
 
-    void from_json(const json & j, Unsafe & x);
-    void to_json(json & j, const Unsafe & x);
+    void from_json(const json & j, SelfClass & x);
+    void to_json(json & j, const SelfClass & x);
 
-    void from_json(const json & j, Ushort & x);
-    void to_json(json & j, const Ushort & x);
+    void from_json(const json & j, Short & x);
+    void to_json(json & j, const Short & x);
 
-    void from_json(const json & j, Utf8JsonReader & x);
-    void to_json(json & j, const Utf8JsonReader & x);
+    void from_json(const json & j, Signed & x);
+    void to_json(json & j, const Signed & x);
 
-    void from_json(const json & j, Utf8JsonWriter & x);
-    void to_json(json & j, const Utf8JsonWriter & x);
+    void from_json(const json & j, Sizeof & x);
+    void to_json(json & j, const Sizeof & x);
 
-    void from_json(const json & j, Uuid & x);
-    void to_json(json & j, const Uuid & x);
+    void from_json(const json & j, Static & x);
+    void to_json(json & j, const Static & x);
 
-    void from_json(const json & j, Var & x);
-    void to_json(json & j, const Var & x);
+    void from_json(const json & j, StaticAssert & x);
+    void to_json(json & j, const StaticAssert & x);
 
-    void from_json(const json & j, Weak & x);
-    void to_json(json & j, const Weak & x);
+    void from_json(const json & j, Object & x);
+    void to_json(json & j, const Object & x);
 
-    void from_json(const json & j, Where & x);
-    void to_json(json & j, const Where & x);
+    void from_json(const json & j, ObjectMapper & x);
+    void to_json(json & j, const ObjectMapper & x);
 
-    void from_json(const json & j, WillSet & x);
-    void to_json(json & j, const WillSet & x);
+    void from_json(const json & j, Of & x);
+    void to_json(json & j, const Of & x);
 
-    void from_json(const json & j, With & x);
-    void to_json(json & j, const With & x);
+    void from_json(const json & j, Oneway & x);
+    void to_json(json & j, const Oneway & x);
 
-    void from_json(const json & j, Yes & x);
-    void to_json(json & j, const Yes & x);
+    void from_json(const json & j, Open & x);
+    void to_json(json & j, const Open & x);
 
-    void from_json(const json & j, Yield & x);
-    void to_json(json & j, const Yield & x);
+    void from_json(const json & j, Optional & x);
+    void to_json(json & j, const Optional & x);
 
-    void from_json(const json & j, Obj5 & x);
-    void to_json(json & j, const Obj5 & x);
+    void from_json(const json & j, Out & x);
+    void to_json(json & j, const Out & x);
 
-    void from_json(const json & j, TopLevel & x);
-    void to_json(json & j, const TopLevel & x);
+    void from_json(const json & j, Package & x);
+    void to_json(json & j, const Package & x);
 
-    void from_json(const json & j, EnumValue & x);
-    void to_json(json & j, const EnumValue & x);
+    void from_json(const json & j, Params & x);
+    void to_json(json & j, const Params & x);
 
-    inline void from_json(const json & j, Abstract& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("abstract") != j.end() && !j.at("abstract").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_abstract(j.at("abstract").get<int64_t>());
-    }
+    void from_json(const json & j, Pass & x);
+    void to_json(json & j, const Pass & x);
 
-    inline void to_json(json & j, const Abstract & x) {
-        j = json::object();
-        j["abstract"] = x.get_abstract();
-    }
+    void from_json(const json & j, Port & x);
+    void to_json(json & j, const Port & x);
 
-    inline void from_json(const json & j, Any& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Any") != j.end() && !j.at("Any").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_any(j.at("Any").get<int64_t>());
-    }
+    void from_json(const json & j, Postfix & x);
+    void to_json(json & j, const Postfix & x);
 
-    inline void to_json(json & j, const Any & x) {
-        j = json::object();
-        j["Any"] = x.get_any();
-    }
+    void from_json(const json & j, Precedence & x);
+    void to_json(json & j, const Precedence & x);
 
-    inline void from_json(const json & j, Array& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("array") != j.end() && !j.at("array").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_array(j.at("array").get<int64_t>());
-    }
+    void from_json(const json & j, Prefix & x);
+    void to_json(json & j, const Prefix & x);
 
-    inline void to_json(json & j, const Array & x) {
-        j = json::object();
-        j["array"] = x.get_array();
-    }
+    void from_json(const json & j, Print & x);
+    void to_json(json & j, const Print & x);
 
-    inline void from_json(const json & j, As& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("as") != j.end() && !j.at("as").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_as(j.at("as").get<int64_t>());
-    }
+    void from_json(const json & j, PrintMembers & x);
+    void to_json(json & j, const PrintMembers & x);
 
-    inline void to_json(json & j, const As & x) {
-        j = json::object();
-        j["as"] = x.get_as();
-    }
+    void from_json(const json & j, Printf & x);
+    void to_json(json & j, const Printf & x);
 
-    inline void from_json(const json & j, Assert& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("assert") != j.end() && !j.at("assert").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_assert(j.at("assert").get<int64_t>());
-    }
+    void from_json(const json & j, Protocol & x);
+    void to_json(json & j, const Protocol & x);
 
-    inline void to_json(json & j, const Assert & x) {
-        j = json::object();
-        j["assert"] = x.get_assert();
-    }
+    void from_json(const json & j, Quicktype & x);
+    void to_json(json & j, const Quicktype & x);
 
-    inline void from_json(const json & j, Associatedtype& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("associatedtype") != j.end() && !j.at("associatedtype").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_associatedtype(j.at("associatedtype").get<int64_t>());
-    }
+    void from_json(const json & j, Raise & x);
+    void to_json(json & j, const Raise & x);
 
-    inline void to_json(json & j, const Associatedtype & x) {
-        j = json::object();
-        j["associatedtype"] = x.get_associatedtype();
-    }
+    void from_json(const json & j, Range & x);
+    void to_json(json & j, const Range & x);
 
-    inline void from_json(const json & j, Associativity& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("associativity") != j.end() && !j.at("associativity").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_associativity(j.at("associativity").get<int64_t>());
-    }
+    void from_json(const json & j, Readonly & x);
+    void to_json(json & j, const Readonly & x);
 
-    inline void to_json(json & j, const Associativity & x) {
-        j = json::object();
-        j["associativity"] = x.get_associativity();
-    }
+    void from_json(const json & j, Ref & x);
+    void to_json(json & j, const Ref & x);
 
-    inline void from_json(const json & j, Async& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("async") != j.end() && !j.at("async").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_async(j.at("async").get<int64_t>());
-    }
+    void from_json(const json & j, RegExp & x);
+    void to_json(json & j, const RegExp & x);
 
-    inline void to_json(json & j, const Async & x) {
-        j = json::object();
-        j["async"] = x.get_async();
-    }
+    void from_json(const json & j, Repeat & x);
+    void to_json(json & j, const Repeat & x);
 
-    inline void from_json(const json & j, Atomic& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("atomic") != j.end() && !j.at("atomic").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_atomic(j.at("atomic").get<int64_t>());
-    }
+    void from_json(const json & j, Require & x);
+    void to_json(json & j, const Require & x);
 
-    inline void to_json(json & j, const Atomic & x) {
-        j = json::object();
-        j["atomic"] = x.get_atomic();
-    }
+    void from_json(const json & j, Required & x);
+    void to_json(json & j, const Required & x);
 
-    inline void from_json(const json & j, Await& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("await") != j.end() && !j.at("await").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_await(j.at("await").get<int64_t>());
-    }
+    void from_json(const json & j, Restrict & x);
+    void to_json(json & j, const Restrict & x);
 
-    inline void to_json(json & j, const Await & x) {
-        j = json::object();
-        j["await"] = x.get_await();
-    }
+    void from_json(const json & j, Retain & x);
+    void to_json(json & j, const Retain & x);
 
-    inline void from_json(const json & j, Base& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("base") != j.end() && !j.at("base").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_base(j.at("base").get<int64_t>());
-    }
+    void from_json(const json & j, Rethrows & x);
+    void to_json(json & j, const Rethrows & x);
 
-    inline void to_json(json & j, const Base & x) {
-        j = json::object();
-        j["base"] = x.get_base();
-    }
+    void from_json(const json & j, Right & x);
+    void to_json(json & j, const Right & x);
 
-    inline void from_json(const json & j, Boolean& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("boolean") != j.end() && !j.at("boolean").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_boolean(j.at("boolean").get<int64_t>());
-    }
+    void from_json(const json & j, RuntimeType & x);
+    void to_json(json & j, const RuntimeType & x);
 
-    inline void to_json(json & j, const Boolean & x) {
-        j = json::object();
-        j["boolean"] = x.get_boolean();
-    }
+    void from_json(const json & j, S & x);
+    void to_json(json & j, const S & x);
 
-    inline void from_json(const json & j, Bycopy& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("bycopy") != j.end() && !j.at("bycopy").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bycopy(j.at("bycopy").get<int64_t>());
-    }
+    void from_json(const json & j, Sbyte & x);
+    void to_json(json & j, const Sbyte & x);
 
-    inline void to_json(json & j, const Bycopy & x) {
-        j = json::object();
-        j["bycopy"] = x.get_bycopy();
-    }
+    void from_json(const json & j, Sealed & x);
+    void to_json(json & j, const Sealed & x);
 
-    inline void from_json(const json & j, Byref& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("byref") != j.end() && !j.at("byref").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_byref(j.at("byref").get<int64_t>());
-    }
+    void from_json(const json & j, Sel & x);
+    void to_json(json & j, const Sel & x);
 
-    inline void to_json(json & j, const Byref & x) {
-        j = json::object();
-        j["byref"] = x.get_byref();
-    }
+    void from_json(const json & j, Select & x);
+    void to_json(json & j, const Select & x);
 
-    inline void from_json(const json & j, Byte& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("byte") != j.end() && !j.at("byte").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_byte(j.at("byte").get<int64_t>());
-    }
+    void from_json(const json & j, Self & x);
+    void to_json(json & j, const Self & x);
 
-    inline void to_json(json & j, const Byte & x) {
-        j = json::object();
-        j["byte"] = x.get_byte();
-    }
+    void from_json(const json & j, Serialize & x);
+    void to_json(json & j, const Serialize & x);
 
-    inline void from_json(const json & j, Chan& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("chan") != j.end() && !j.at("chan").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_chan(j.at("chan").get<int64_t>());
-    }
+    void from_json(const json & j, SerializerProvider & x);
+    void to_json(json & j, const SerializerProvider & x);
 
-    inline void to_json(json & j, const Chan & x) {
-        j = json::object();
-        j["chan"] = x.get_chan();
-    }
+    void from_json(const json & j, Set & x);
+    void to_json(json & j, const Set & x);
 
-    inline void from_json(const json & j, Checked& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("checked") != j.end() && !j.at("checked").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_checked(j.at("checked").get<int64_t>());
-    }
+    void from_json(const json & j, SimpleModule & x);
+    void to_json(json & j, const SimpleModule & x);
 
-    inline void to_json(json & j, const Checked & x) {
-        j = json::object();
-        j["checked"] = x.get_checked();
-    }
+    void from_json(const json & j, Stackalloc & x);
+    void to_json(json & j, const Stackalloc & x);
 
-    inline void from_json(const json & j, Clone& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("clone") != j.end() && !j.at("clone").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_clone(j.at("clone").get<int64_t>());
-    }
+    void from_json(const json & j, Standards & x);
+    void to_json(json & j, const Standards & x);
 
-    inline void to_json(json & j, const Clone & x) {
-        j = json::object();
-        j["clone"] = x.get_clone();
-    }
+    void from_json(const json & j, Obj4 & x);
+    void to_json(json & j, const Obj4 & x);
 
-    inline void from_json(const json & j, Complex& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("_Complex") != j.end() && !j.at("_Complex").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_complex(j.at("_Complex").get<int64_t>());
-    }
+    void from_json(const json & j, StaticCast & x);
+    void to_json(json & j, const StaticCast & x);
 
-    inline void to_json(json & j, const Complex & x) {
-        j = json::object();
-        j["_Complex"] = x.get_complex();
-    }
+    void from_json(const json & j, Struct & x);
+    void to_json(json & j, const Struct & x);
 
-    inline void from_json(const json & j, Console& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("console") != j.end() && !j.at("console").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_console(j.at("console").get<int64_t>());
-    }
+    void from_json(const json & j, Switch & x);
+    void to_json(json & j, const Switch & x);
 
-    inline void to_json(json & j, const Console & x) {
-        j = json::object();
-        j["console"] = x.get_console();
-    }
+    void from_json(const json & j, Synchronized & x);
+    void to_json(json & j, const Synchronized & x);
 
-    inline void from_json(const json & j, Constructor& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("constructor") != j.end() && !j.at("constructor").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_constructor(j.at("constructor").get<int64_t>());
-    }
+    void from_json(const json & j, Template & x);
+    void to_json(json & j, const Template & x);
 
-    inline void to_json(json & j, const Constructor & x) {
-        j = json::object();
-        j["constructor"] = x.get_constructor();
-    }
+    void from_json(const json & j, This & x);
+    void to_json(json & j, const This & x);
 
-    inline void from_json(const json & j, Convenience& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("convenience") != j.end() && !j.at("convenience").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_convenience(j.at("convenience").get<int64_t>());
-    }
+    void from_json(const json & j, ThreadLocal & x);
+    void to_json(json & j, const ThreadLocal & x);
 
-    inline void to_json(json & j, const Convenience & x) {
-        j = json::object();
-        j["convenience"] = x.get_convenience();
-    }
+    void from_json(const json & j, Throw & x);
+    void to_json(json & j, const Throw & x);
 
-    inline void from_json(const json & j, Convert& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("convert") != j.end() && !j.at("convert").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_convert(j.at("convert").get<int64_t>());
-    }
+    void from_json(const json & j, True & x);
+    void to_json(json & j, const True & x);
 
-    inline void to_json(json & j, const Convert & x) {
-        j = json::object();
-        j["convert"] = x.get_convert();
-    }
+    void from_json(const json & j, Try & x);
+    void to_json(json & j, const Try & x);
 
-    inline void from_json(const json & j, Converter& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("converter") != j.end() && !j.at("converter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_converter(j.at("converter").get<int64_t>());
-    }
+    void from_json(const json & j, TypeClass & x);
+    void to_json(json & j, const TypeClass & x);
 
-    inline void to_json(json & j, const Converter & x) {
-        j = json::object();
-        j["converter"] = x.get_converter();
-    }
+    void from_json(const json & j, Typedef & x);
+    void to_json(json & j, const Typedef & x);
 
-    inline void from_json(const json & j, CultureInfo& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("CultureInfo") != j.end() && !j.at("CultureInfo").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_culture_info(j.at("CultureInfo").get<int64_t>());
-    }
+    void from_json(const json & j, Typeid & x);
+    void to_json(json & j, const Typeid & x);
 
-    inline void to_json(json & j, const CultureInfo & x) {
-        j = json::object();
-        j["CultureInfo"] = x.get_culture_info();
-    }
+    void from_json(const json & j, Typename & x);
+    void to_json(json & j, const Typename & x);
 
-    inline void from_json(const json & j, Date& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("date") != j.end() && !j.at("date").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date(j.at("date").get<int64_t>());
-    }
+    void from_json(const json & j, Union & x);
+    void to_json(json & j, const Union & x);
 
-    inline void to_json(json & j, const Date & x) {
-        j = json::object();
-        j["date"] = x.get_date();
-    }
+    void from_json(const json & j, Unsigned & x);
+    void to_json(json & j, const Unsigned & x);
 
-    inline void from_json(const json & j, DateFormatter& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateFormatter") != j.end() && !j.at("DateFormatter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date_formatter(j.at("DateFormatter").get<int64_t>());
-    }
+    void from_json(const json & j, Using & x);
+    void to_json(json & j, const Using & x);
 
-    inline void to_json(json & j, const DateFormatter & x) {
-        j = json::object();
-        j["DateFormatter"] = x.get_date_formatter();
-    }
+    void from_json(const json & j, Virtual & x);
+    void to_json(json & j, const Virtual & x);
 
-    inline void from_json(const json & j, DateOnly& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateOnly") != j.end() && !j.at("DateOnly").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date_only(j.at("DateOnly").get<int64_t>());
-    }
+    void from_json(const json & j, Void & x);
+    void to_json(json & j, const Void & x);
 
-    inline void to_json(json & j, const DateOnly & x) {
-        j = json::object();
-        j["DateOnly"] = x.get_date_only();
-    }
+    void from_json(const json & j, Volatile & x);
+    void to_json(json & j, const Volatile & x);
 
-    inline void from_json(const json & j, DateOnlyConverter& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateOnlyConverter") != j.end() && !j.at("DateOnlyConverter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date_only_converter(j.at("DateOnlyConverter").get<int64_t>());
-    }
+    void from_json(const json & j, WcharT & x);
+    void to_json(json & j, const WcharT & x);
 
-    inline void to_json(json & j, const DateOnlyConverter & x) {
-        j = json::object();
-        j["DateOnlyConverter"] = x.get_date_only_converter();
-    }
+    void from_json(const json & j, While & x);
+    void to_json(json & j, const While & x);
 
-    inline void from_json(const json & j, DateParseHandling& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("date_parse_handling") != j.end() && !j.at("date_parse_handling").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date_parse_handling(j.at("date_parse_handling").get<int64_t>());
-    }
+    void from_json(const json & j, Xor & x);
+    void to_json(json & j, const Xor & x);
 
-    inline void to_json(json & j, const DateParseHandling & x) {
-        j = json::object();
-        j["date_parse_handling"] = x.get_date_parse_handling();
-    }
+    void from_json(const json & j, XorEq & x);
+    void to_json(json & j, const XorEq & x);
 
-    inline void from_json(const json & j, DateTime& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateTime") != j.end() && !std::regex_match(j.at("DateTime").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
-        x.set_date_time(j.at("DateTime").get<std::string>());
-    }
+    void from_json(const json & j, TrueClass & x);
+    void to_json(json & j, const TrueClass & x);
 
-    inline void to_json(json & j, const DateTime & x) {
-        j = json::object();
-        j["DateTime"] = x.get_date_time();
-    }
+    void from_json(const json & j, StdDeserializer & x);
+    void to_json(json & j, const StdDeserializer & x);
 
-    inline void from_json(const json & j, DateTimeStyles& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateTimeStyles") != j.end() && !j.at("DateTimeStyles").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_date_time_styles(j.at("DateTimeStyles").get<int64_t>());
-    }
+    void from_json(const json & j, StdSerializer & x);
+    void to_json(json & j, const StdSerializer & x);
 
-    inline void to_json(json & j, const DateTimeStyles & x) {
-        j = json::object();
-        j["DateTimeStyles"] = x.get_date_time_styles();
-    }
+    void from_json(const json & j, Strictfp & x);
+    void to_json(json & j, const Strictfp & x);
 
-    inline void from_json(const json & j, Debugger& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("debugger") != j.end() && !j.at("debugger").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_debugger(j.at("debugger").get<int64_t>());
-    }
+    void from_json(const json & j, String & x);
+    void to_json(json & j, const String & x);
 
-    inline void to_json(json & j, const Debugger & x) {
-        j = json::object();
-        j["debugger"] = x.get_debugger();
-    }
+    void from_json(const json & j, Subscript & x);
+    void to_json(json & j, const Subscript & x);
 
-    inline void from_json(const json & j, Decimal& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("decimal") != j.end() && !j.at("decimal").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_decimal(j.at("decimal").get<int64_t>());
-    }
+    void from_json(const json & j, Super & x);
+    void to_json(json & j, const Super & x);
 
-    inline void to_json(json & j, const Decimal & x) {
-        j = json::object();
-        j["decimal"] = x.get_decimal();
-    }
+    void from_json(const json & j, Symbol & x);
+    void to_json(json & j, const Symbol & x);
 
-    inline void from_json(const json & j, Declare& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("declare") != j.end() && !j.at("declare").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_declare(j.at("declare").get<int64_t>());
-    }
+    void from_json(const json & j, System & x);
+    void to_json(json & j, const System & x);
 
-    inline void to_json(json & j, const Declare & x) {
-        j = json::object();
-        j["declare"] = x.get_declare();
-    }
+    void from_json(const json & j, Then & x);
+    void to_json(json & j, const Then & x);
+
+    void from_json(const json & j, Throws & x);
+    void to_json(json & j, const Throws & x);
 
-    inline void from_json(const json & j, DecodeString& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("decode_string") != j.end() && !j.at("decode_string").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_decode_string(j.at("decode_string").get<int64_t>());
-    }
+    void from_json(const json & j, TimeOnly & x);
+    void to_json(json & j, const TimeOnly & x);
 
-    inline void to_json(json & j, const DecodeString & x) {
-        j = json::object();
-        j["decode_string"] = x.get_decode_string();
-    }
+    void from_json(const json & j, TimeOnlyConverter & x);
+    void to_json(json & j, const TimeOnlyConverter & x);
 
-    inline void from_json(const json & j, Empty& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("_") != j.end() && !j.at("_").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_empty(j.at("_").get<int64_t>());
-    }
+    void from_json(const json & j, ToJson & x);
+    void to_json(json & j, const ToJson & x);
 
-    inline void to_json(json & j, const Empty & x) {
-        j = json::object();
-        j["_"] = x.get_empty();
-    }
+    void from_json(const json & j, ToString & x);
+    void to_json(json & j, const ToString & x);
 
-    inline void from_json(const json & j, Obj1Bool& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("bool") != j.end() && !j.at("bool").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bool_bool(j.at("bool").get<int64_t>());
-    }
+    void from_json(const json & j, TopLevelClass & x);
+    void to_json(json & j, const TopLevelClass & x);
 
-    inline void to_json(json & j, const Obj1Bool & x) {
-        j = json::object();
-        j["bool"] = x.get_bool_bool();
-    }
+    void from_json(const json & j, Transient & x);
+    void to_json(json & j, const Transient & x);
 
-    inline void from_json(const json & j, Imaginery& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("_Imaginery") != j.end() && !j.at("_Imaginery").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_imaginery(j.at("_Imaginery").get<int64_t>());
-    }
+    void from_json(const json & j, Type & x);
+    void to_json(json & j, const Type & x);
 
-    inline void to_json(json & j, const Imaginery & x) {
-        j = json::object();
-        j["_Imaginery"] = x.get_imaginery();
-    }
+    void from_json(const json & j, Typealias & x);
+    void to_json(json & j, const Typealias & x);
 
-    inline void from_json(const json & j, Alignas& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("alignas") != j.end() && !j.at("alignas").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_alignas_alignas(j.at("alignas").get<int64_t>());
-    }
+    void from_json(const json & j, Typeof & x);
+    void to_json(json & j, const Typeof & x);
 
-    inline void to_json(json & j, const Alignas & x) {
-        j = json::object();
-        j["alignas"] = x.get_alignas_alignas();
-    }
+    void from_json(const json & j, Uint & x);
+    void to_json(json & j, const Uint & x);
 
-    inline void from_json(const json & j, Alignof& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("alignof") != j.end() && !j.at("alignof").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_alignof_alignof(j.at("alignof").get<int64_t>());
-    }
+    void from_json(const json & j, Ulong & x);
+    void to_json(json & j, const Ulong & x);
 
-    inline void to_json(json & j, const Alignof & x) {
-        j = json::object();
-        j["alignof"] = x.get_alignof_alignof();
-    }
+    void from_json(const json & j, Unchecked & x);
+    void to_json(json & j, const Unchecked & x);
 
-    inline void from_json(const json & j, And& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("and") != j.end() && !j.at("and").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_and_and(j.at("and").get<int64_t>());
-    }
+    void from_json(const json & j, Undefined & x);
+    void to_json(json & j, const Undefined & x);
 
-    inline void to_json(json & j, const And & x) {
-        j = json::object();
-        j["and"] = x.get_and_and();
-    }
+    void from_json(const json & j, Unowned & x);
+    void to_json(json & j, const Unowned & x);
 
-    inline void from_json(const json & j, AndEq& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("and_eq") != j.end() && !j.at("and_eq").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_and_eq_and_eq(j.at("and_eq").get<int64_t>());
-    }
+    void from_json(const json & j, Unsafe & x);
+    void to_json(json & j, const Unsafe & x);
 
-    inline void to_json(json & j, const AndEq & x) {
-        j = json::object();
-        j["and_eq"] = x.get_and_eq_and_eq();
-    }
+    void from_json(const json & j, Ushort & x);
+    void to_json(json & j, const Ushort & x);
 
-    inline void from_json(const json & j, AnyClass& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("any") != j.end() && !j.at("any").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_any(j.at("any").get<int64_t>());
-    }
+    void from_json(const json & j, Utf8JsonReader & x);
+    void to_json(json & j, const Utf8JsonReader & x);
 
-    inline void to_json(json & j, const AnyClass & x) {
-        j = json::object();
-        j["any"] = x.get_any();
-    }
+    void from_json(const json & j, Utf8JsonWriter & x);
+    void to_json(json & j, const Utf8JsonWriter & x);
 
-    inline void from_json(const json & j, Asm& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("asm") != j.end() && !j.at("asm").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_asm_asm(j.at("asm").get<int64_t>());
-    }
+    void from_json(const json & j, Uuid & x);
+    void to_json(json & j, const Uuid & x);
 
-    inline void to_json(json & j, const Asm & x) {
-        j = json::object();
-        j["asm"] = x.get_asm_asm();
-    }
+    void from_json(const json & j, Var & x);
+    void to_json(json & j, const Var & x);
 
-    inline void from_json(const json & j, AtomicCancel& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("atomic_cancel") != j.end() && !j.at("atomic_cancel").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_atomic_cancel_atomic_cancel(j.at("atomic_cancel").get<int64_t>());
-    }
+    void from_json(const json & j, Weak & x);
+    void to_json(json & j, const Weak & x);
 
-    inline void to_json(json & j, const AtomicCancel & x) {
-        j = json::object();
-        j["atomic_cancel"] = x.get_atomic_cancel_atomic_cancel();
-    }
+    void from_json(const json & j, Where & x);
+    void to_json(json & j, const Where & x);
 
-    inline void from_json(const json & j, AtomicCommit& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("atomic_commit") != j.end() && !j.at("atomic_commit").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_atomic_commit_atomic_commit(j.at("atomic_commit").get<int64_t>());
-    }
+    void from_json(const json & j, WillSet & x);
+    void to_json(json & j, const WillSet & x);
 
-    inline void to_json(json & j, const AtomicCommit & x) {
-        j = json::object();
-        j["atomic_commit"] = x.get_atomic_commit_atomic_commit();
-    }
+    void from_json(const json & j, With & x);
+    void to_json(json & j, const With & x);
 
-    inline void from_json(const json & j, AtomicNoexcept& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("atomic_noexcept") != j.end() && !j.at("atomic_noexcept").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_atomic_noexcept_atomic_noexcept(j.at("atomic_noexcept").get<int64_t>());
-    }
+    void from_json(const json & j, Yes & x);
+    void to_json(json & j, const Yes & x);
 
-    inline void to_json(json & j, const AtomicNoexcept & x) {
-        j = json::object();
-        j["atomic_noexcept"] = x.get_atomic_noexcept_atomic_noexcept();
-    }
+    void from_json(const json & j, Yield & x);
+    void to_json(json & j, const Yield & x);
 
-    inline void from_json(const json & j, Auto& x) {
-        if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("auto") != j.end() && !j.at("auto").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_auto_auto(j.at("auto").get<int64_t>());
-    }
+    void from_json(const json & j, Obj5 & x);
+    void to_json(json & j, const Obj5 & x);
 
-    inline void to_json(json & j, const Auto & x) {
-        j = json::object();
-        j["auto"] = x.get_auto_auto();
-    }
+    void from_json(const json & j, TopLevel & x);
+    void to_json(json & j, const TopLevel & x);
 
-    inline void from_json(const json & j, Bitand& x) {
+    void from_json(const json & j, EnumValue & x);
+    void to_json(json & j, const EnumValue & x);
+
+    inline void from_json(const json & j, Abstract& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("bitand") != j.end() && !j.at("bitand").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bitand_bitand(j.at("bitand").get<int64_t>());
+        if (j.find("abstract") != j.end() && !j.at("abstract").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_abstract(j.at("abstract").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Bitand & x) {
+    inline void to_json(json & j, const Abstract & x) {
         j = json::object();
-        j["bitand"] = x.get_bitand_bitand();
+        j["abstract"] = x.get_abstract();
     }
 
-    inline void from_json(const json & j, Bitor& x) {
+    inline void from_json(const json & j, Any& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("bitor") != j.end() && !j.at("bitor").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bitor_bitor(j.at("bitor").get<int64_t>());
+        if (j.find("Any") != j.end() && !j.at("Any").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_any(j.at("Any").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Bitor & x) {
+    inline void to_json(json & j, const Any & x) {
         j = json::object();
-        j["bitor"] = x.get_bitor_bitor();
+        j["Any"] = x.get_any();
     }
 
-    inline void from_json(const json & j, Bool& x) {
+    inline void from_json(const json & j, Array& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("BOOL") != j.end() && !j.at("BOOL").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bool_bool(j.at("BOOL").get<int64_t>());
+        if (j.find("array") != j.end() && !j.at("array").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_array(j.at("array").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Bool & x) {
+    inline void to_json(json & j, const Array & x) {
         j = json::object();
-        j["BOOL"] = x.get_bool_bool();
+        j["array"] = x.get_array();
     }
 
-    inline void from_json(const json & j, Break& x) {
+    inline void from_json(const json & j, As& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("break") != j.end() && !j.at("break").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_break_break(j.at("break").get<int64_t>());
+        if (j.find("as") != j.end() && !j.at("as").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_as(j.at("as").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Break & x) {
+    inline void to_json(json & j, const As & x) {
         j = json::object();
-        j["break"] = x.get_break_break();
+        j["as"] = x.get_as();
     }
 
-    inline void from_json(const json & j, Case& x) {
+    inline void from_json(const json & j, Assert& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("case") != j.end() && !j.at("case").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_case_case(j.at("case").get<int64_t>());
+        if (j.find("assert") != j.end() && !j.at("assert").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_assert(j.at("assert").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Case & x) {
+    inline void to_json(json & j, const Assert & x) {
         j = json::object();
-        j["case"] = x.get_case_case();
+        j["assert"] = x.get_assert();
     }
 
-    inline void from_json(const json & j, Catch& x) {
+    inline void from_json(const json & j, Associatedtype& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("catch") != j.end() && !j.at("catch").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_catch_catch(j.at("catch").get<int64_t>());
+        if (j.find("associatedtype") != j.end() && !j.at("associatedtype").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_associatedtype(j.at("associatedtype").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Catch & x) {
+    inline void to_json(json & j, const Associatedtype & x) {
         j = json::object();
-        j["catch"] = x.get_catch_catch();
+        j["associatedtype"] = x.get_associatedtype();
     }
 
-    inline void from_json(const json & j, Char& x) {
+    inline void from_json(const json & j, Associativity& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("char") != j.end() && !j.at("char").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_char_char(j.at("char").get<int64_t>());
+        if (j.find("associativity") != j.end() && !j.at("associativity").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_associativity(j.at("associativity").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Char & x) {
+    inline void to_json(json & j, const Associativity & x) {
         j = json::object();
-        j["char"] = x.get_char_char();
+        j["associativity"] = x.get_associativity();
     }
 
-    inline void from_json(const json & j, Char16T& x) {
+    inline void from_json(const json & j, Async& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("char16_t") != j.end() && !j.at("char16_t").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_char16_t_char16_t(j.at("char16_t").get<int64_t>());
+        if (j.find("async") != j.end() && !j.at("async").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_async(j.at("async").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Char16T & x) {
+    inline void to_json(json & j, const Async & x) {
         j = json::object();
-        j["char16_t"] = x.get_char16_t_char16_t();
+        j["async"] = x.get_async();
     }
 
-    inline void from_json(const json & j, Char32T& x) {
+    inline void from_json(const json & j, Atomic& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("char32_t") != j.end() && !j.at("char32_t").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_char32_t_char32_t(j.at("char32_t").get<int64_t>());
+        if (j.find("atomic") != j.end() && !j.at("atomic").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_atomic(j.at("atomic").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Char32T & x) {
+    inline void to_json(json & j, const Atomic & x) {
         j = json::object();
-        j["char32_t"] = x.get_char32_t_char32_t();
+        j["atomic"] = x.get_atomic();
     }
 
-    inline void from_json(const json & j, Class& x) {
+    inline void from_json(const json & j, Await& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Class") != j.end() && !j.at("Class").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_class_class(j.at("Class").get<int64_t>());
+        if (j.find("await") != j.end() && !j.at("await").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_await(j.at("await").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Class & x) {
+    inline void to_json(json & j, const Await & x) {
         j = json::object();
-        j["Class"] = x.get_class_class();
+        j["await"] = x.get_await();
     }
 
-    inline void from_json(const json & j, CoAwait& x) {
+    inline void from_json(const json & j, Base& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("co_await") != j.end() && !j.at("co_await").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_co_await_co_await(j.at("co_await").get<int64_t>());
+        if (j.find("base") != j.end() && !j.at("base").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_base(j.at("base").get<int64_t>());
     }
 
-    inline void to_json(json & j, const CoAwait & x) {
+    inline void to_json(json & j, const Base & x) {
         j = json::object();
-        j["co_await"] = x.get_co_await_co_await();
+        j["base"] = x.get_base();
     }
 
-    inline void from_json(const json & j, CoReturn& x) {
+    inline void from_json(const json & j, Boolean& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("co_return") != j.end() && !j.at("co_return").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_co_return_co_return(j.at("co_return").get<int64_t>());
+        if (j.find("boolean") != j.end() && !j.at("boolean").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_boolean(j.at("boolean").get<int64_t>());
     }
 
-    inline void to_json(json & j, const CoReturn & x) {
+    inline void to_json(json & j, const Boolean & x) {
         j = json::object();
-        j["co_return"] = x.get_co_return_co_return();
+        j["boolean"] = x.get_boolean();
     }
 
-    inline void from_json(const json & j, CoYield& x) {
+    inline void from_json(const json & j, Bycopy& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("co_yield") != j.end() && !j.at("co_yield").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_co_yield_co_yield(j.at("co_yield").get<int64_t>());
+        if (j.find("bycopy") != j.end() && !j.at("bycopy").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bycopy(j.at("bycopy").get<int64_t>());
     }
 
-    inline void to_json(json & j, const CoYield & x) {
+    inline void to_json(json & j, const Bycopy & x) {
         j = json::object();
-        j["co_yield"] = x.get_co_yield_co_yield();
+        j["bycopy"] = x.get_bycopy();
     }
 
-    inline void from_json(const json & j, Compl& x) {
+    inline void from_json(const json & j, Byref& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("compl") != j.end() && !j.at("compl").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_compl_compl(j.at("compl").get<int64_t>());
+        if (j.find("byref") != j.end() && !j.at("byref").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_byref(j.at("byref").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Compl & x) {
+    inline void to_json(json & j, const Byref & x) {
         j = json::object();
-        j["compl"] = x.get_compl_compl();
+        j["byref"] = x.get_byref();
     }
 
-    inline void from_json(const json & j, Concept& x) {
+    inline void from_json(const json & j, Byte& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("concept") != j.end() && !j.at("concept").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_concept_concept(j.at("concept").get<int64_t>());
+        if (j.find("byte") != j.end() && !j.at("byte").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_byte(j.at("byte").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Concept & x) {
+    inline void to_json(json & j, const Byte & x) {
         j = json::object();
-        j["concept"] = x.get_concept_concept();
+        j["byte"] = x.get_byte();
     }
 
-    inline void from_json(const json & j, Const& x) {
+    inline void from_json(const json & j, Chan& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("const") != j.end() && !j.at("const").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_const_const(j.at("const").get<int64_t>());
+        if (j.find("chan") != j.end() && !j.at("chan").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_chan(j.at("chan").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Const & x) {
+    inline void to_json(json & j, const Chan & x) {
         j = json::object();
-        j["const"] = x.get_const_const();
+        j["chan"] = x.get_chan();
     }
 
-    inline void from_json(const json & j, ConstCast& x) {
+    inline void from_json(const json & j, Checked& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("const_cast") != j.end() && !j.at("const_cast").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_const_cast_const_cast(j.at("const_cast").get<int64_t>());
+        if (j.find("checked") != j.end() && !j.at("checked").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_checked(j.at("checked").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ConstCast & x) {
+    inline void to_json(json & j, const Checked & x) {
         j = json::object();
-        j["const_cast"] = x.get_const_cast_const_cast();
+        j["checked"] = x.get_checked();
     }
 
-    inline void from_json(const json & j, Constexpr& x) {
+    inline void from_json(const json & j, Clone& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("constexpr") != j.end() && !j.at("constexpr").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_constexpr_constexpr(j.at("constexpr").get<int64_t>());
+        if (j.find("clone") != j.end() && !j.at("clone").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_clone(j.at("clone").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Constexpr & x) {
+    inline void to_json(json & j, const Clone & x) {
         j = json::object();
-        j["constexpr"] = x.get_constexpr_constexpr();
+        j["clone"] = x.get_clone();
     }
 
-    inline void from_json(const json & j, Continue& x) {
+    inline void from_json(const json & j, Complex& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("continue") != j.end() && !j.at("continue").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_continue_continue(j.at("continue").get<int64_t>());
+        if (j.find("_Complex") != j.end() && !j.at("_Complex").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_complex(j.at("_Complex").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Continue & x) {
+    inline void to_json(json & j, const Complex & x) {
         j = json::object();
-        j["continue"] = x.get_continue_continue();
+        j["_Complex"] = x.get_complex();
     }
 
-    inline void from_json(const json & j, Decltype& x) {
+    inline void from_json(const json & j, Console& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("decltype") != j.end() && !j.at("decltype").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_decltype_decltype(j.at("decltype").get<int64_t>());
+        if (j.find("console") != j.end() && !j.at("console").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_console(j.at("console").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Decltype & x) {
+    inline void to_json(json & j, const Console & x) {
         j = json::object();
-        j["decltype"] = x.get_decltype_decltype();
+        j["console"] = x.get_console();
     }
 
-    inline void from_json(const json & j, BoolClass& x) {
+    inline void from_json(const json & j, Constructor& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("_Bool") != j.end() && !j.at("_Bool").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_bool_bool(j.at("_Bool").get<int64_t>());
+        if (j.find("constructor") != j.end() && !j.at("constructor").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_constructor(j.at("constructor").get<int64_t>());
     }
 
-    inline void to_json(json & j, const BoolClass & x) {
+    inline void to_json(json & j, const Constructor & x) {
         j = json::object();
-        j["_Bool"] = x.get_bool_bool();
+        j["constructor"] = x.get_constructor();
     }
 
-    inline void from_json(const json & j, ClassClass& x) {
+    inline void from_json(const json & j, Convenience& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("class") != j.end() && !j.at("class").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_class_class(j.at("class").get<int64_t>());
+        if (j.find("convenience") != j.end() && !j.at("convenience").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_convenience(j.at("convenience").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ClassClass & x) {
+    inline void to_json(json & j, const Convenience & x) {
         j = json::object();
-        j["class"] = x.get_class_class();
+        j["convenience"] = x.get_convenience();
     }
 
-    inline void from_json(const json & j, Obj1& x) {
+    inline void from_json(const json & j, Convert& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        x.set_abstract(j.at("abstract").get<Abstract>());
-        x.set_any(j.at("Any").get<Any>());
-        x.set_array(j.at("array").get<Array>());
-        x.set_as(j.at("as").get<As>());
-        x.set_assert(j.at("assert").get<Assert>());
-        x.set_associatedtype(j.at("associatedtype").get<Associatedtype>());
-        x.set_associativity(j.at("associativity").get<Associativity>());
-        x.set_async(j.at("async").get<Async>());
-        x.set_atomic(j.at("atomic").get<Atomic>());
-        x.set_await(j.at("await").get<Await>());
-        x.set_base(j.at("base").get<Base>());
-        x.set_boolean(j.at("boolean").get<Boolean>());
-        x.set_bycopy(j.at("bycopy").get<Bycopy>());
-        x.set_byref(j.at("byref").get<Byref>());
-        x.set_byte(j.at("byte").get<Byte>());
-        x.set_chan(j.at("chan").get<Chan>());
-        x.set_checked(j.at("checked").get<Checked>());
-        x.set_clone(j.at("clone").get<Clone>());
-        x.set_complex(j.at("_Complex").get<Complex>());
-        x.set_console(j.at("console").get<Console>());
-        x.set_constructor(j.at("constructor").get<Constructor>());
-        x.set_convenience(j.at("convenience").get<Convenience>());
-        x.set_convert(j.at("convert").get<Convert>());
-        x.set_converter(j.at("converter").get<Converter>());
-        x.set_culture_info(j.at("CultureInfo").get<CultureInfo>());
-        x.set_date(j.at("date").get<Date>());
-        x.set_date_formatter(j.at("DateFormatter").get<DateFormatter>());
-        x.set_date_only(j.at("DateOnly").get<DateOnly>());
-        x.set_date_only_converter(j.at("DateOnlyConverter").get<DateOnlyConverter>());
-        x.set_date_parse_handling(j.at("date_parse_handling").get<DateParseHandling>());
-        x.set_date_time(j.at("DateTime").get<DateTime>());
-        x.set_date_time_styles(j.at("DateTimeStyles").get<DateTimeStyles>());
-        x.set_debugger(j.at("debugger").get<Debugger>());
-        x.set_decimal(j.at("decimal").get<Decimal>());
-        x.set_declare(j.at("declare").get<Declare>());
-        x.set_decode_string(j.at("decode_string").get<DecodeString>());
-        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dummy(j.at("dummy").get<int64_t>());
-        x.set_empty(j.at("_").get<Empty>());
-        x.set_fluffy_bool(j.at("bool").get<Obj1Bool>());
-        x.set_imaginery(j.at("_Imaginery").get<Imaginery>());
-        x.set_obj1_alignas(j.at("alignas").get<Alignas>());
-        x.set_obj1_alignof(j.at("alignof").get<Alignof>());
-        x.set_obj1_and(j.at("and").get<And>());
-        x.set_obj1_and_eq(j.at("and_eq").get<AndEq>());
-        x.set_obj1_any(j.at("any").get<AnyClass>());
-        x.set_obj1_asm(j.at("asm").get<Asm>());
-        x.set_obj1_atomic_cancel(j.at("atomic_cancel").get<AtomicCancel>());
-        x.set_obj1_atomic_commit(j.at("atomic_commit").get<AtomicCommit>());
-        x.set_obj1_atomic_noexcept(j.at("atomic_noexcept").get<AtomicNoexcept>());
-        x.set_obj1_auto(j.at("auto").get<Auto>());
-        x.set_obj1_bitand(j.at("bitand").get<Bitand>());
-        x.set_obj1_bitor(j.at("bitor").get<Bitor>());
-        x.set_obj1_bool(j.at("BOOL").get<Bool>());
-        x.set_obj1_break(j.at("break").get<Break>());
-        x.set_obj1_case(j.at("case").get<Case>());
-        x.set_obj1_catch(j.at("catch").get<Catch>());
-        x.set_obj1_char(j.at("char").get<Char>());
-        x.set_obj1_char16_t(j.at("char16_t").get<Char16T>());
-        x.set_obj1_char32_t(j.at("char32_t").get<Char32T>());
-        x.set_obj1_class(j.at("Class").get<Class>());
-        x.set_obj1_co_await(j.at("co_await").get<CoAwait>());
-        x.set_obj1_co_return(j.at("co_return").get<CoReturn>());
-        x.set_obj1_co_yield(j.at("co_yield").get<CoYield>());
-        x.set_obj1_compl(j.at("compl").get<Compl>());
-        x.set_obj1_concept(j.at("concept").get<Concept>());
-        x.set_obj1_const(j.at("const").get<Const>());
-        x.set_obj1_const_cast(j.at("const_cast").get<ConstCast>());
-        x.set_obj1_constexpr(j.at("constexpr").get<Constexpr>());
-        x.set_obj1_continue(j.at("continue").get<Continue>());
-        x.set_obj1_decltype(j.at("decltype").get<Decltype>());
-        x.set_purple_bool(j.at("_Bool").get<BoolClass>());
-        x.set_purple_class(j.at("class").get<ClassClass>());
+        if (j.find("convert") != j.end() && !j.at("convert").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_convert(j.at("convert").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Obj1 & x) {
+    inline void to_json(json & j, const Convert & x) {
         j = json::object();
-        j["abstract"] = x.get_abstract();
-        j["Any"] = x.get_any();
-        j["array"] = x.get_array();
-        j["as"] = x.get_as();
-        j["assert"] = x.get_assert();
-        j["associatedtype"] = x.get_associatedtype();
-        j["associativity"] = x.get_associativity();
-        j["async"] = x.get_async();
-        j["atomic"] = x.get_atomic();
-        j["await"] = x.get_await();
-        j["base"] = x.get_base();
-        j["boolean"] = x.get_boolean();
-        j["bycopy"] = x.get_bycopy();
-        j["byref"] = x.get_byref();
-        j["byte"] = x.get_byte();
-        j["chan"] = x.get_chan();
-        j["checked"] = x.get_checked();
-        j["clone"] = x.get_clone();
-        j["_Complex"] = x.get_complex();
-        j["console"] = x.get_console();
-        j["constructor"] = x.get_constructor();
-        j["convenience"] = x.get_convenience();
         j["convert"] = x.get_convert();
+    }
+
+    inline void from_json(const json & j, Converter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("converter") != j.end() && !j.at("converter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_converter(j.at("converter").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Converter & x) {
+        j = json::object();
         j["converter"] = x.get_converter();
+    }
+
+    inline void from_json(const json & j, CultureInfo& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("CultureInfo") != j.end() && !j.at("CultureInfo").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_culture_info(j.at("CultureInfo").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const CultureInfo & x) {
+        j = json::object();
         j["CultureInfo"] = x.get_culture_info();
+    }
+
+    inline void from_json(const json & j, Date& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("date") != j.end() && !j.at("date").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date(j.at("date").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Date & x) {
+        j = json::object();
         j["date"] = x.get_date();
+    }
+
+    inline void from_json(const json & j, DateFormatter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("DateFormatter") != j.end() && !j.at("DateFormatter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date_formatter(j.at("DateFormatter").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const DateFormatter & x) {
+        j = json::object();
         j["DateFormatter"] = x.get_date_formatter();
+    }
+
+    inline void from_json(const json & j, DateOnly& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("DateOnly") != j.end() && !j.at("DateOnly").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date_only(j.at("DateOnly").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const DateOnly & x) {
+        j = json::object();
         j["DateOnly"] = x.get_date_only();
+    }
+
+    inline void from_json(const json & j, DateOnlyConverter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("DateOnlyConverter") != j.end() && !j.at("DateOnlyConverter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date_only_converter(j.at("DateOnlyConverter").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const DateOnlyConverter & x) {
+        j = json::object();
         j["DateOnlyConverter"] = x.get_date_only_converter();
+    }
+
+    inline void from_json(const json & j, DateParseHandling& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("date_parse_handling") != j.end() && !j.at("date_parse_handling").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date_parse_handling(j.at("date_parse_handling").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const DateParseHandling & x) {
+        j = json::object();
         j["date_parse_handling"] = x.get_date_parse_handling();
-        j["DateTime"] = x.get_date_time();
-        j["DateTimeStyles"] = x.get_date_time_styles();
-        j["debugger"] = x.get_debugger();
-        j["decimal"] = x.get_decimal();
-        j["declare"] = x.get_declare();
-        j["decode_string"] = x.get_decode_string();
-        j["dummy"] = x.get_dummy();
+    }
+
+    inline void from_json(const json & j, Empty& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("_") != j.end() && !j.at("_").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_empty(j.at("_").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Empty & x) {
+        j = json::object();
         j["_"] = x.get_empty();
-        j["bool"] = x.get_fluffy_bool();
-        j["_Imaginery"] = x.get_imaginery();
-        j["alignas"] = x.get_obj1_alignas();
-        j["alignof"] = x.get_obj1_alignof();
-        j["and"] = x.get_obj1_and();
-        j["and_eq"] = x.get_obj1_and_eq();
-        j["any"] = x.get_obj1_any();
-        j["asm"] = x.get_obj1_asm();
-        j["atomic_cancel"] = x.get_obj1_atomic_cancel();
-        j["atomic_commit"] = x.get_obj1_atomic_commit();
-        j["atomic_noexcept"] = x.get_obj1_atomic_noexcept();
-        j["auto"] = x.get_obj1_auto();
-        j["bitand"] = x.get_obj1_bitand();
-        j["bitor"] = x.get_obj1_bitor();
-        j["BOOL"] = x.get_obj1_bool();
-        j["break"] = x.get_obj1_break();
-        j["case"] = x.get_obj1_case();
-        j["catch"] = x.get_obj1_catch();
-        j["char"] = x.get_obj1_char();
-        j["char16_t"] = x.get_obj1_char16_t();
-        j["char32_t"] = x.get_obj1_char32_t();
-        j["Class"] = x.get_obj1_class();
-        j["co_await"] = x.get_obj1_co_await();
-        j["co_return"] = x.get_obj1_co_return();
-        j["co_yield"] = x.get_obj1_co_yield();
-        j["compl"] = x.get_obj1_compl();
-        j["concept"] = x.get_obj1_concept();
-        j["const"] = x.get_obj1_const();
-        j["const_cast"] = x.get_obj1_const_cast();
-        j["constexpr"] = x.get_obj1_constexpr();
-        j["continue"] = x.get_obj1_continue();
-        j["decltype"] = x.get_obj1_decltype();
-        j["_Bool"] = x.get_purple_bool();
-        j["class"] = x.get_purple_class();
     }
 
-    inline void from_json(const json & j, Def& x) {
+    inline void from_json(const json & j, Obj1Bool& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("def") != j.end() && !j.at("def").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_def(j.at("def").get<int64_t>());
+        if (j.find("bool") != j.end() && !j.at("bool").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bool_bool(j.at("bool").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Def & x) {
+    inline void to_json(json & j, const Obj1Bool & x) {
         j = json::object();
-        j["def"] = x.get_def();
+        j["bool"] = x.get_bool_bool();
     }
 
-    inline void from_json(const json & j, Defer& x) {
+    inline void from_json(const json & j, Imaginery& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("defer") != j.end() && !j.at("defer").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_defer(j.at("defer").get<int64_t>());
+        if (j.find("_Imaginery") != j.end() && !j.at("_Imaginery").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_imaginery(j.at("_Imaginery").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Defer & x) {
+    inline void to_json(json & j, const Imaginery & x) {
         j = json::object();
-        j["defer"] = x.get_defer();
+        j["_Imaginery"] = x.get_imaginery();
     }
 
-    inline void from_json(const json & j, Deinit& x) {
+    inline void from_json(const json & j, Alignas& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("deinit") != j.end() && !j.at("deinit").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_deinit(j.at("deinit").get<int64_t>());
+        if (j.find("alignas") != j.end() && !j.at("alignas").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_alignas_alignas(j.at("alignas").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Deinit & x) {
+    inline void to_json(json & j, const Alignas & x) {
         j = json::object();
-        j["deinit"] = x.get_deinit();
+        j["alignas"] = x.get_alignas_alignas();
     }
 
-    inline void from_json(const json & j, Del& x) {
+    inline void from_json(const json & j, Alignof& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("del") != j.end() && !j.at("del").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_del(j.at("del").get<int64_t>());
+        if (j.find("alignof") != j.end() && !j.at("alignof").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_alignof_alignof(j.at("alignof").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Del & x) {
+    inline void to_json(json & j, const Alignof & x) {
         j = json::object();
-        j["del"] = x.get_del();
+        j["alignof"] = x.get_alignof_alignof();
     }
 
-    inline void from_json(const json & j, Delegate& x) {
+    inline void from_json(const json & j, And& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("delegate") != j.end() && !j.at("delegate").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_delegate(j.at("delegate").get<int64_t>());
+        if (j.find("and") != j.end() && !j.at("and").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_and_and(j.at("and").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Delegate & x) {
+    inline void to_json(json & j, const And & x) {
         j = json::object();
-        j["delegate"] = x.get_delegate();
+        j["and"] = x.get_and_and();
     }
 
-    inline void from_json(const json & j, Dict& x) {
+    inline void from_json(const json & j, AndEq& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("dict") != j.end() && !j.at("dict").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dict(j.at("dict").get<int64_t>());
+        if (j.find("and_eq") != j.end() && !j.at("and_eq").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_and_eq_and_eq(j.at("and_eq").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Dict & x) {
+    inline void to_json(json & j, const AndEq & x) {
         j = json::object();
-        j["dict"] = x.get_dict();
+        j["and_eq"] = x.get_and_eq_and_eq();
     }
 
-    inline void from_json(const json & j, Dictionary& x) {
+    inline void from_json(const json & j, AnyClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("dictionary") != j.end() && !j.at("dictionary").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dictionary(j.at("dictionary").get<int64_t>());
+        if (j.find("any") != j.end() && !j.at("any").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_any(j.at("any").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Dictionary & x) {
+    inline void to_json(json & j, const AnyClass & x) {
         j = json::object();
-        j["dictionary"] = x.get_dictionary();
+        j["any"] = x.get_any();
     }
 
-    inline void from_json(const json & j, DidSet& x) {
+    inline void from_json(const json & j, Asm& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("didSet") != j.end() && !j.at("didSet").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_did_set(j.at("didSet").get<int64_t>());
+        if (j.find("asm") != j.end() && !j.at("asm").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_asm_asm(j.at("asm").get<int64_t>());
     }
 
-    inline void to_json(json & j, const DidSet & x) {
+    inline void to_json(json & j, const Asm & x) {
         j = json::object();
-        j["didSet"] = x.get_did_set();
+        j["asm"] = x.get_asm_asm();
     }
 
-    inline void from_json(const json & j, Dynamic& x) {
+    inline void from_json(const json & j, AtomicCancel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("dynamic") != j.end() && !j.at("dynamic").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dynamic(j.at("dynamic").get<int64_t>());
+        if (j.find("atomic_cancel") != j.end() && !j.at("atomic_cancel").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_atomic_cancel_atomic_cancel(j.at("atomic_cancel").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Dynamic & x) {
+    inline void to_json(json & j, const AtomicCancel & x) {
         j = json::object();
-        j["dynamic"] = x.get_dynamic();
+        j["atomic_cancel"] = x.get_atomic_cancel_atomic_cancel();
     }
 
-    inline void from_json(const json & j, Elif& x) {
+    inline void from_json(const json & j, AtomicCommit& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("elif") != j.end() && !j.at("elif").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_elif(j.at("elif").get<int64_t>());
+        if (j.find("atomic_commit") != j.end() && !j.at("atomic_commit").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_atomic_commit_atomic_commit(j.at("atomic_commit").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Elif & x) {
+    inline void to_json(json & j, const AtomicCommit & x) {
         j = json::object();
-        j["elif"] = x.get_elif();
+        j["atomic_commit"] = x.get_atomic_commit_atomic_commit();
     }
 
-    inline void from_json(const json & j, EncodeQuickType& x) {
+    inline void from_json(const json & j, AtomicNoexcept& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("encode_quick_type") != j.end() && !j.at("encode_quick_type").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_encode_quick_type(j.at("encode_quick_type").get<int64_t>());
+        if (j.find("atomic_noexcept") != j.end() && !j.at("atomic_noexcept").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_atomic_noexcept_atomic_noexcept(j.at("atomic_noexcept").get<int64_t>());
     }
 
-    inline void to_json(json & j, const EncodeQuickType & x) {
+    inline void to_json(json & j, const AtomicNoexcept & x) {
         j = json::object();
-        j["encode_quick_type"] = x.get_encode_quick_type();
+        j["atomic_noexcept"] = x.get_atomic_noexcept_atomic_noexcept();
     }
 
-    inline void from_json(const json & j, EnumValues& x) {
+    inline void from_json(const json & j, Auto& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        x.set_enum_values(j.at("EnumValues").get<std::vector<EnumValue>>());
+        if (j.find("auto") != j.end() && !j.at("auto").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_auto_auto(j.at("auto").get<int64_t>());
     }
 
-    inline void to_json(json & j, const EnumValues & x) {
+    inline void to_json(json & j, const Auto & x) {
         j = json::object();
-        j["EnumValues"] = x.get_enum_values();
+        j["auto"] = x.get_auto_auto();
     }
 
-    inline void from_json(const json & j, EqualityContract& x) {
+    inline void from_json(const json & j, Bitand& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("equalityContract") != j.end() && !j.at("equalityContract").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_equality_contract(j.at("equalityContract").get<int64_t>());
+        if (j.find("bitand") != j.end() && !j.at("bitand").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bitand_bitand(j.at("bitand").get<int64_t>());
     }
 
-    inline void to_json(json & j, const EqualityContract & x) {
+    inline void to_json(json & j, const Bitand & x) {
         j = json::object();
-        j["equalityContract"] = x.get_equality_contract();
+        j["bitand"] = x.get_bitand_bitand();
     }
 
-    inline void from_json(const json & j, Event& x) {
+    inline void from_json(const json & j, Bitor& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("event") != j.end() && !j.at("event").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_event(j.at("event").get<int64_t>());
+        if (j.find("bitor") != j.end() && !j.at("bitor").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bitor_bitor(j.at("bitor").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Event & x) {
+    inline void to_json(json & j, const Bitor & x) {
         j = json::object();
-        j["event"] = x.get_event();
+        j["bitor"] = x.get_bitor_bitor();
     }
 
-    inline void from_json(const json & j, Except& x) {
+    inline void from_json(const json & j, Bool& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("except") != j.end() && !j.at("except").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_except(j.at("except").get<int64_t>());
+        if (j.find("BOOL") != j.end() && !j.at("BOOL").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bool_bool(j.at("BOOL").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Except & x) {
+    inline void to_json(json & j, const Bool & x) {
         j = json::object();
-        j["except"] = x.get_except();
+        j["BOOL"] = x.get_bool_bool();
     }
 
-    inline void from_json(const json & j, Exception& x) {
+    inline void from_json(const json & j, Break& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("exception") != j.end() && !j.at("exception").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_exception(j.at("exception").get<int64_t>());
+        if (j.find("break") != j.end() && !j.at("break").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_break_break(j.at("break").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Exception & x) {
+    inline void to_json(json & j, const Break & x) {
         j = json::object();
-        j["exception"] = x.get_exception();
+        j["break"] = x.get_break_break();
     }
 
-    inline void from_json(const json & j, Exposing& x) {
+    inline void from_json(const json & j, Case& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("exposing") != j.end() && !j.at("exposing").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_exposing(j.at("exposing").get<int64_t>());
+        if (j.find("case") != j.end() && !j.at("case").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_case_case(j.at("case").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Exposing & x) {
+    inline void to_json(json & j, const Case & x) {
         j = json::object();
-        j["exposing"] = x.get_exposing();
+        j["case"] = x.get_case_case();
     }
 
-    inline void from_json(const json & j, Extends& x) {
+    inline void from_json(const json & j, Catch& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("extends") != j.end() && !j.at("extends").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_extends(j.at("extends").get<int64_t>());
+        if (j.find("catch") != j.end() && !j.at("catch").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_catch_catch(j.at("catch").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Extends & x) {
+    inline void to_json(json & j, const Catch & x) {
         j = json::object();
-        j["extends"] = x.get_extends();
+        j["catch"] = x.get_catch_catch();
     }
 
-    inline void from_json(const json & j, Extension& x) {
+    inline void from_json(const json & j, Char& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("extension") != j.end() && !j.at("extension").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_extension(j.at("extension").get<int64_t>());
+        if (j.find("char") != j.end() && !j.at("char").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_char_char(j.at("char").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Extension & x) {
+    inline void to_json(json & j, const Char & x) {
         j = json::object();
-        j["extension"] = x.get_extension();
+        j["char"] = x.get_char_char();
     }
 
-    inline void from_json(const json & j, Fallthrough& x) {
+    inline void from_json(const json & j, Char16T& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("fallthrough") != j.end() && !j.at("fallthrough").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_fallthrough(j.at("fallthrough").get<int64_t>());
+        if (j.find("char16_t") != j.end() && !j.at("char16_t").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_char16_t_char16_t(j.at("char16_t").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Fallthrough & x) {
+    inline void to_json(json & j, const Char16T & x) {
         j = json::object();
-        j["fallthrough"] = x.get_fallthrough();
+        j["char16_t"] = x.get_char16_t_char16_t();
     }
 
-    inline void from_json(const json & j, Fileprivate& x) {
+    inline void from_json(const json & j, Char32T& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("fileprivate") != j.end() && !j.at("fileprivate").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_fileprivate(j.at("fileprivate").get<int64_t>());
+        if (j.find("char32_t") != j.end() && !j.at("char32_t").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_char32_t_char32_t(j.at("char32_t").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Fileprivate & x) {
+    inline void to_json(json & j, const Char32T & x) {
         j = json::object();
-        j["fileprivate"] = x.get_fileprivate();
+        j["char32_t"] = x.get_char32_t_char32_t();
     }
 
-    inline void from_json(const json & j, Finally& x) {
+    inline void from_json(const json & j, Class& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("finally") != j.end() && !j.at("finally").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_finally(j.at("finally").get<int64_t>());
+        if (j.find("Class") != j.end() && !j.at("Class").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_class_class(j.at("Class").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Finally & x) {
+    inline void to_json(json & j, const Class & x) {
         j = json::object();
-        j["finally"] = x.get_finally();
+        j["Class"] = x.get_class_class();
     }
 
-    inline void from_json(const json & j, Fixed& x) {
+    inline void from_json(const json & j, CoAwait& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("fixed") != j.end() && !j.at("fixed").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_fixed(j.at("fixed").get<int64_t>());
+        if (j.find("co_await") != j.end() && !j.at("co_await").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_co_await_co_await(j.at("co_await").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Fixed & x) {
+    inline void to_json(json & j, const CoAwait & x) {
         j = json::object();
-        j["fixed"] = x.get_fixed();
+        j["co_await"] = x.get_co_await_co_await();
     }
 
-    inline void from_json(const json & j, Foreach& x) {
+    inline void from_json(const json & j, CoReturn& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("foreach") != j.end() && !j.at("foreach").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_foreach(j.at("foreach").get<int64_t>());
+        if (j.find("co_return") != j.end() && !j.at("co_return").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_co_return_co_return(j.at("co_return").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Foreach & x) {
+    inline void to_json(json & j, const CoReturn & x) {
         j = json::object();
-        j["foreach"] = x.get_foreach();
+        j["co_return"] = x.get_co_return_co_return();
     }
 
-    inline void from_json(const json & j, FormatException& x) {
+    inline void from_json(const json & j, CoYield& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("FormatException") != j.end() && !j.at("FormatException").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_format_exception(j.at("FormatException").get<int64_t>());
+        if (j.find("co_yield") != j.end() && !j.at("co_yield").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_co_yield_co_yield(j.at("co_yield").get<int64_t>());
     }
 
-    inline void to_json(json & j, const FormatException & x) {
+    inline void to_json(json & j, const CoYield & x) {
         j = json::object();
-        j["FormatException"] = x.get_format_exception();
+        j["co_yield"] = x.get_co_yield_co_yield();
     }
 
-    inline void from_json(const json & j, From& x) {
+    inline void from_json(const json & j, Compl& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("from") != j.end() && !j.at("from").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_from(j.at("from").get<int64_t>());
+        if (j.find("compl") != j.end() && !j.at("compl").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_compl_compl(j.at("compl").get<int64_t>());
     }
 
-    inline void to_json(json & j, const From & x) {
+    inline void to_json(json & j, const Compl & x) {
         j = json::object();
-        j["from"] = x.get_from();
+        j["compl"] = x.get_compl_compl();
     }
 
-    inline void from_json(const json & j, FromJson& x) {
+    inline void from_json(const json & j, Concept& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("from_json") != j.end() && !j.at("from_json").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_from_json(j.at("from_json").get<int64_t>());
+        if (j.find("concept") != j.end() && !j.at("concept").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_concept_concept(j.at("concept").get<int64_t>());
     }
 
-    inline void to_json(json & j, const FromJson & x) {
+    inline void to_json(json & j, const Concept & x) {
         j = json::object();
-        j["from_json"] = x.get_from_json();
+        j["concept"] = x.get_concept_concept();
     }
 
-    inline void from_json(const json & j, Func& x) {
+    inline void from_json(const json & j, Const& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("func") != j.end() && !j.at("func").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_func(j.at("func").get<int64_t>());
+        if (j.find("const") != j.end() && !j.at("const").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_const_const(j.at("const").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Func & x) {
+    inline void to_json(json & j, const Const & x) {
         j = json::object();
-        j["func"] = x.get_func();
+        j["const"] = x.get_const_const();
     }
 
-    inline void from_json(const json & j, Function& x) {
+    inline void from_json(const json & j, ConstCast& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("function") != j.end() && !j.at("function").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_function(j.at("function").get<int64_t>());
+        if (j.find("const_cast") != j.end() && !j.at("const_cast").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_const_cast_const_cast(j.at("const_cast").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Function & x) {
+    inline void to_json(json & j, const ConstCast & x) {
         j = json::object();
-        j["function"] = x.get_function();
+        j["const_cast"] = x.get_const_cast_const_cast();
     }
 
-    inline void from_json(const json & j, Get& x) {
+    inline void from_json(const json & j, Constexpr& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("get") != j.end() && !j.at("get").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_get(j.at("get").get<int64_t>());
+        if (j.find("constexpr") != j.end() && !j.at("constexpr").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_constexpr_constexpr(j.at("constexpr").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Get & x) {
+    inline void to_json(json & j, const Constexpr & x) {
         j = json::object();
-        j["get"] = x.get_get();
+        j["constexpr"] = x.get_constexpr_constexpr();
     }
 
-    inline void from_json(const json & j, Global& x) {
+    inline void from_json(const json & j, Continue& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("global") != j.end() && !j.at("global").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_global(j.at("global").get<int64_t>());
+        if (j.find("continue") != j.end() && !j.at("continue").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_continue_continue(j.at("continue").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Global & x) {
+    inline void to_json(json & j, const Continue & x) {
         j = json::object();
-        j["global"] = x.get_global();
+        j["continue"] = x.get_continue_continue();
     }
 
-    inline void from_json(const json & j, Go& x) {
+    inline void from_json(const json & j, BoolClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("go") != j.end() && !j.at("go").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_go(j.at("go").get<int64_t>());
+        if (j.find("_Bool") != j.end() && !j.at("_Bool").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_bool_bool(j.at("_Bool").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Go & x) {
+    inline void to_json(json & j, const BoolClass & x) {
         j = json::object();
-        j["go"] = x.get_go();
+        j["_Bool"] = x.get_bool_bool();
     }
 
-    inline void from_json(const json & j, Guard& x) {
+    inline void from_json(const json & j, ClassClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("guard") != j.end() && !j.at("guard").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_guard(j.at("guard").get<int64_t>());
+        if (j.find("class") != j.end() && !j.at("class").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_class_class(j.at("class").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Guard & x) {
+    inline void to_json(json & j, const ClassClass & x) {
         j = json::object();
-        j["guard"] = x.get_guard();
+        j["class"] = x.get_class_class();
     }
 
-    inline void from_json(const json & j, HasOwnProperty& x) {
+    inline void from_json(const json & j, Obj1& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("hasOwnProperty") != j.end() && !j.at("hasOwnProperty").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_has_own_property(j.at("hasOwnProperty").get<int64_t>());
+        x.set_abstract(j.at("abstract").get<Abstract>());
+        x.set_any(j.at("Any").get<Any>());
+        x.set_array(j.at("array").get<Array>());
+        x.set_as(j.at("as").get<As>());
+        x.set_assert(j.at("assert").get<Assert>());
+        x.set_associatedtype(j.at("associatedtype").get<Associatedtype>());
+        x.set_associativity(j.at("associativity").get<Associativity>());
+        x.set_async(j.at("async").get<Async>());
+        x.set_atomic(j.at("atomic").get<Atomic>());
+        x.set_await(j.at("await").get<Await>());
+        x.set_base(j.at("base").get<Base>());
+        x.set_boolean(j.at("boolean").get<Boolean>());
+        x.set_bycopy(j.at("bycopy").get<Bycopy>());
+        x.set_byref(j.at("byref").get<Byref>());
+        x.set_byte(j.at("byte").get<Byte>());
+        x.set_chan(j.at("chan").get<Chan>());
+        x.set_checked(j.at("checked").get<Checked>());
+        x.set_clone(j.at("clone").get<Clone>());
+        x.set_complex(j.at("_Complex").get<Complex>());
+        x.set_console(j.at("console").get<Console>());
+        x.set_constructor(j.at("constructor").get<Constructor>());
+        x.set_convenience(j.at("convenience").get<Convenience>());
+        x.set_convert(j.at("convert").get<Convert>());
+        x.set_converter(j.at("converter").get<Converter>());
+        x.set_culture_info(j.at("CultureInfo").get<CultureInfo>());
+        x.set_date(j.at("date").get<Date>());
+        x.set_date_formatter(j.at("DateFormatter").get<DateFormatter>());
+        x.set_date_only(j.at("DateOnly").get<DateOnly>());
+        x.set_date_only_converter(j.at("DateOnlyConverter").get<DateOnlyConverter>());
+        x.set_date_parse_handling(j.at("date_parse_handling").get<DateParseHandling>());
+        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dummy(j.at("dummy").get<int64_t>());
+        x.set_empty(j.at("_").get<Empty>());
+        x.set_fluffy_bool(j.at("bool").get<Obj1Bool>());
+        x.set_imaginery(j.at("_Imaginery").get<Imaginery>());
+        x.set_obj1_alignas(j.at("alignas").get<Alignas>());
+        x.set_obj1_alignof(j.at("alignof").get<Alignof>());
+        x.set_obj1_and(j.at("and").get<And>());
+        x.set_obj1_and_eq(j.at("and_eq").get<AndEq>());
+        x.set_obj1_any(j.at("any").get<AnyClass>());
+        x.set_obj1_asm(j.at("asm").get<Asm>());
+        x.set_obj1_atomic_cancel(j.at("atomic_cancel").get<AtomicCancel>());
+        x.set_obj1_atomic_commit(j.at("atomic_commit").get<AtomicCommit>());
+        x.set_obj1_atomic_noexcept(j.at("atomic_noexcept").get<AtomicNoexcept>());
+        x.set_obj1_auto(j.at("auto").get<Auto>());
+        x.set_obj1_bitand(j.at("bitand").get<Bitand>());
+        x.set_obj1_bitor(j.at("bitor").get<Bitor>());
+        x.set_obj1_bool(j.at("BOOL").get<Bool>());
+        x.set_obj1_break(j.at("break").get<Break>());
+        x.set_obj1_case(j.at("case").get<Case>());
+        x.set_obj1_catch(j.at("catch").get<Catch>());
+        x.set_obj1_char(j.at("char").get<Char>());
+        x.set_obj1_char16_t(j.at("char16_t").get<Char16T>());
+        x.set_obj1_char32_t(j.at("char32_t").get<Char32T>());
+        x.set_obj1_class(j.at("Class").get<Class>());
+        x.set_obj1_co_await(j.at("co_await").get<CoAwait>());
+        x.set_obj1_co_return(j.at("co_return").get<CoReturn>());
+        x.set_obj1_co_yield(j.at("co_yield").get<CoYield>());
+        x.set_obj1_compl(j.at("compl").get<Compl>());
+        x.set_obj1_concept(j.at("concept").get<Concept>());
+        x.set_obj1_const(j.at("const").get<Const>());
+        x.set_obj1_const_cast(j.at("const_cast").get<ConstCast>());
+        x.set_obj1_constexpr(j.at("constexpr").get<Constexpr>());
+        x.set_obj1_continue(j.at("continue").get<Continue>());
+        x.set_purple_bool(j.at("_Bool").get<BoolClass>());
+        x.set_purple_class(j.at("class").get<ClassClass>());
     }
 
-    inline void to_json(json & j, const HasOwnProperty & x) {
+    inline void to_json(json & j, const Obj1 & x) {
         j = json::object();
-        j["hasOwnProperty"] = x.get_has_own_property();
+        j["abstract"] = x.get_abstract();
+        j["Any"] = x.get_any();
+        j["array"] = x.get_array();
+        j["as"] = x.get_as();
+        j["assert"] = x.get_assert();
+        j["associatedtype"] = x.get_associatedtype();
+        j["associativity"] = x.get_associativity();
+        j["async"] = x.get_async();
+        j["atomic"] = x.get_atomic();
+        j["await"] = x.get_await();
+        j["base"] = x.get_base();
+        j["boolean"] = x.get_boolean();
+        j["bycopy"] = x.get_bycopy();
+        j["byref"] = x.get_byref();
+        j["byte"] = x.get_byte();
+        j["chan"] = x.get_chan();
+        j["checked"] = x.get_checked();
+        j["clone"] = x.get_clone();
+        j["_Complex"] = x.get_complex();
+        j["console"] = x.get_console();
+        j["constructor"] = x.get_constructor();
+        j["convenience"] = x.get_convenience();
+        j["convert"] = x.get_convert();
+        j["converter"] = x.get_converter();
+        j["CultureInfo"] = x.get_culture_info();
+        j["date"] = x.get_date();
+        j["DateFormatter"] = x.get_date_formatter();
+        j["DateOnly"] = x.get_date_only();
+        j["DateOnlyConverter"] = x.get_date_only_converter();
+        j["date_parse_handling"] = x.get_date_parse_handling();
+        j["dummy"] = x.get_dummy();
+        j["_"] = x.get_empty();
+        j["bool"] = x.get_fluffy_bool();
+        j["_Imaginery"] = x.get_imaginery();
+        j["alignas"] = x.get_obj1_alignas();
+        j["alignof"] = x.get_obj1_alignof();
+        j["and"] = x.get_obj1_and();
+        j["and_eq"] = x.get_obj1_and_eq();
+        j["any"] = x.get_obj1_any();
+        j["asm"] = x.get_obj1_asm();
+        j["atomic_cancel"] = x.get_obj1_atomic_cancel();
+        j["atomic_commit"] = x.get_obj1_atomic_commit();
+        j["atomic_noexcept"] = x.get_obj1_atomic_noexcept();
+        j["auto"] = x.get_obj1_auto();
+        j["bitand"] = x.get_obj1_bitand();
+        j["bitor"] = x.get_obj1_bitor();
+        j["BOOL"] = x.get_obj1_bool();
+        j["break"] = x.get_obj1_break();
+        j["case"] = x.get_obj1_case();
+        j["catch"] = x.get_obj1_catch();
+        j["char"] = x.get_obj1_char();
+        j["char16_t"] = x.get_obj1_char16_t();
+        j["char32_t"] = x.get_obj1_char32_t();
+        j["Class"] = x.get_obj1_class();
+        j["co_await"] = x.get_obj1_co_await();
+        j["co_return"] = x.get_obj1_co_return();
+        j["co_yield"] = x.get_obj1_co_yield();
+        j["compl"] = x.get_obj1_compl();
+        j["concept"] = x.get_obj1_concept();
+        j["const"] = x.get_obj1_const();
+        j["const_cast"] = x.get_obj1_const_cast();
+        j["constexpr"] = x.get_obj1_constexpr();
+        j["continue"] = x.get_obj1_continue();
+        j["_Bool"] = x.get_purple_bool();
+        j["class"] = x.get_purple_class();
     }
 
-    inline void from_json(const json & j, HashCode& x) {
+    inline void from_json(const json & j, DateTime& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("hashCode") != j.end() && !j.at("hashCode").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_hash_code(j.at("hashCode").get<int64_t>());
+        if (j.find("DateTime") != j.end() && !std::regex_match(j.at("DateTime").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        x.set_date_time(j.at("DateTime").get<std::string>());
     }
 
-    inline void to_json(json & j, const HashCode & x) {
+    inline void to_json(json & j, const DateTime & x) {
         j = json::object();
-        j["hashCode"] = x.get_hash_code();
+        j["DateTime"] = x.get_date_time();
     }
 
-    inline void from_json(const json & j, Id& x) {
+    inline void from_json(const json & j, DateTimeStyles& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("id") != j.end() && !j.at("id").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_id(j.at("id").get<int64_t>());
+        if (j.find("DateTimeStyles") != j.end() && !j.at("DateTimeStyles").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_date_time_styles(j.at("DateTimeStyles").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Id & x) {
+    inline void to_json(json & j, const DateTimeStyles & x) {
         j = json::object();
-        j["id"] = x.get_id();
+        j["DateTimeStyles"] = x.get_date_time_styles();
     }
 
-    inline void from_json(const json & j, Imp& x) {
+    inline void from_json(const json & j, Debugger& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("IMP") != j.end() && !j.at("IMP").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_imp(j.at("IMP").get<int64_t>());
+        if (j.find("debugger") != j.end() && !j.at("debugger").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_debugger(j.at("debugger").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Imp & x) {
+    inline void to_json(json & j, const Debugger & x) {
         j = json::object();
-        j["IMP"] = x.get_imp();
+        j["debugger"] = x.get_debugger();
     }
 
-    inline void from_json(const json & j, Implements& x) {
+    inline void from_json(const json & j, Decimal& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("implements") != j.end() && !j.at("implements").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_implements(j.at("implements").get<int64_t>());
+        if (j.find("decimal") != j.end() && !j.at("decimal").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_decimal(j.at("decimal").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Implements & x) {
+    inline void to_json(json & j, const Decimal & x) {
         j = json::object();
-        j["implements"] = x.get_implements();
+        j["decimal"] = x.get_decimal();
     }
 
-    inline void from_json(const json & j, Implicit& x) {
+    inline void from_json(const json & j, Declare& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("implicit") != j.end() && !j.at("implicit").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_implicit(j.at("implicit").get<int64_t>());
+        if (j.find("declare") != j.end() && !j.at("declare").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_declare(j.at("declare").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Implicit & x) {
+    inline void to_json(json & j, const Declare & x) {
         j = json::object();
-        j["implicit"] = x.get_implicit();
+        j["declare"] = x.get_declare();
     }
 
-    inline void from_json(const json & j, In& x) {
+    inline void from_json(const json & j, DecodeString& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("in") != j.end() && !j.at("in").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_in(j.at("in").get<int64_t>());
+        if (j.find("decode_string") != j.end() && !j.at("decode_string").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_decode_string(j.at("decode_string").get<int64_t>());
     }
 
-    inline void to_json(json & j, const In & x) {
+    inline void to_json(json & j, const DecodeString & x) {
         j = json::object();
-        j["in"] = x.get_in();
+        j["decode_string"] = x.get_decode_string();
     }
 
-    inline void from_json(const json & j, Indirect& x) {
+    inline void from_json(const json & j, Def& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("indirect") != j.end() && !j.at("indirect").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_indirect(j.at("indirect").get<int64_t>());
+        if (j.find("def") != j.end() && !j.at("def").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_def(j.at("def").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Indirect & x) {
+    inline void to_json(json & j, const Def & x) {
         j = json::object();
-        j["indirect"] = x.get_indirect();
+        j["def"] = x.get_def();
     }
 
-    inline void from_json(const json & j, Infix& x) {
+    inline void from_json(const json & j, Defer& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("infix") != j.end() && !j.at("infix").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_infix(j.at("infix").get<int64_t>());
+        if (j.find("defer") != j.end() && !j.at("defer").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_defer(j.at("defer").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Infix & x) {
+    inline void to_json(json & j, const Defer & x) {
         j = json::object();
-        j["infix"] = x.get_infix();
+        j["defer"] = x.get_defer();
     }
 
-    inline void from_json(const json & j, Init& x) {
+    inline void from_json(const json & j, Deinit& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("init") != j.end() && !j.at("init").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_init(j.at("init").get<int64_t>());
+        if (j.find("deinit") != j.end() && !j.at("deinit").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_deinit(j.at("deinit").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Init & x) {
+    inline void to_json(json & j, const Deinit & x) {
         j = json::object();
-        j["init"] = x.get_init();
+        j["deinit"] = x.get_deinit();
     }
 
-    inline void from_json(const json & j, Inout& x) {
+    inline void from_json(const json & j, Del& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("inout") != j.end() && !j.at("inout").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_inout(j.at("inout").get<int64_t>());
+        if (j.find("del") != j.end() && !j.at("del").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_del(j.at("del").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Inout & x) {
+    inline void to_json(json & j, const Del & x) {
         j = json::object();
-        j["inout"] = x.get_inout();
+        j["del"] = x.get_del();
     }
 
-    inline void from_json(const json & j, Instanceof& x) {
+    inline void from_json(const json & j, Delegate& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("instanceof") != j.end() && !j.at("instanceof").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_instanceof(j.at("instanceof").get<int64_t>());
+        if (j.find("delegate") != j.end() && !j.at("delegate").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_delegate(j.at("delegate").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Instanceof & x) {
+    inline void to_json(json & j, const Delegate & x) {
         j = json::object();
-        j["instanceof"] = x.get_instanceof();
+        j["delegate"] = x.get_delegate();
     }
 
-    inline void from_json(const json & j, Interface& x) {
+    inline void from_json(const json & j, Dict& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("interface") != j.end() && !j.at("interface").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_interface(j.at("interface").get<int64_t>());
+        if (j.find("dict") != j.end() && !j.at("dict").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dict(j.at("dict").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Interface & x) {
+    inline void to_json(json & j, const Dict & x) {
         j = json::object();
-        j["interface"] = x.get_interface();
+        j["dict"] = x.get_dict();
     }
 
-    inline void from_json(const json & j, Internal& x) {
+    inline void from_json(const json & j, Dictionary& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("internal") != j.end() && !j.at("internal").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_internal(j.at("internal").get<int64_t>());
+        if (j.find("dictionary") != j.end() && !j.at("dictionary").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dictionary(j.at("dictionary").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Internal & x) {
+    inline void to_json(json & j, const Dictionary & x) {
         j = json::object();
-        j["internal"] = x.get_internal();
+        j["dictionary"] = x.get_dictionary();
     }
 
-    inline void from_json(const json & j, Default& x) {
+    inline void from_json(const json & j, DidSet& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("default") != j.end() && !j.at("default").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_default_default(j.at("default").get<int64_t>());
+        if (j.find("didSet") != j.end() && !j.at("didSet").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_did_set(j.at("didSet").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Default & x) {
+    inline void to_json(json & j, const DidSet & x) {
         j = json::object();
-        j["default"] = x.get_default_default();
+        j["didSet"] = x.get_did_set();
     }
 
-    inline void from_json(const json & j, Delete& x) {
+    inline void from_json(const json & j, Dynamic& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("delete") != j.end() && !j.at("delete").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_delete_delete(j.at("delete").get<int64_t>());
+        if (j.find("dynamic") != j.end() && !j.at("dynamic").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dynamic(j.at("dynamic").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Delete & x) {
+    inline void to_json(json & j, const Dynamic & x) {
         j = json::object();
-        j["delete"] = x.get_delete_delete();
+        j["dynamic"] = x.get_dynamic();
     }
 
-    inline void from_json(const json & j, Do& x) {
+    inline void from_json(const json & j, Elif& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("do") != j.end() && !j.at("do").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_do_do(j.at("do").get<int64_t>());
+        if (j.find("elif") != j.end() && !j.at("elif").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_elif(j.at("elif").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Do & x) {
+    inline void to_json(json & j, const Elif & x) {
         j = json::object();
-        j["do"] = x.get_do_do();
+        j["elif"] = x.get_elif();
     }
 
-    inline void from_json(const json & j, Double& x) {
+    inline void from_json(const json & j, EncodeQuickType& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("double") != j.end() && !j.at("double").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_double_double(j.at("double").get<int64_t>());
+        if (j.find("encode_quick_type") != j.end() && !j.at("encode_quick_type").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_encode_quick_type(j.at("encode_quick_type").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Double & x) {
+    inline void to_json(json & j, const EncodeQuickType & x) {
         j = json::object();
-        j["double"] = x.get_double_double();
+        j["encode_quick_type"] = x.get_encode_quick_type();
     }
 
-    inline void from_json(const json & j, DynamicCast& x) {
+    inline void from_json(const json & j, EnumValues& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("dynamic_cast") != j.end() && !j.at("dynamic_cast").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dynamic_cast_dynamic_cast(j.at("dynamic_cast").get<int64_t>());
+        x.set_enum_values(j.at("EnumValues").get<std::vector<EnumValue>>());
     }
 
-    inline void to_json(json & j, const DynamicCast & x) {
+    inline void to_json(json & j, const EnumValues & x) {
         j = json::object();
-        j["dynamic_cast"] = x.get_dynamic_cast_dynamic_cast();
+        j["EnumValues"] = x.get_enum_values();
     }
 
-    inline void from_json(const json & j, Else& x) {
+    inline void from_json(const json & j, EqualityContract& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("else") != j.end() && !j.at("else").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_else_else(j.at("else").get<int64_t>());
+        if (j.find("equalityContract") != j.end() && !j.at("equalityContract").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_equality_contract(j.at("equalityContract").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Else & x) {
+    inline void to_json(json & j, const EqualityContract & x) {
         j = json::object();
-        j["else"] = x.get_else_else();
+        j["equalityContract"] = x.get_equality_contract();
     }
 
-    inline void from_json(const json & j, Enum& x) {
+    inline void from_json(const json & j, Event& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("enum") != j.end() && !j.at("enum").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_enum_enum(j.at("enum").get<int64_t>());
+        if (j.find("event") != j.end() && !j.at("event").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_event(j.at("event").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Enum & x) {
+    inline void to_json(json & j, const Event & x) {
         j = json::object();
-        j["enum"] = x.get_enum_enum();
+        j["event"] = x.get_event();
     }
 
-    inline void from_json(const json & j, Explicit& x) {
+    inline void from_json(const json & j, Except& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("explicit") != j.end() && !j.at("explicit").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_explicit_explicit(j.at("explicit").get<int64_t>());
+        if (j.find("except") != j.end() && !j.at("except").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_except(j.at("except").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Explicit & x) {
+    inline void to_json(json & j, const Except & x) {
         j = json::object();
-        j["explicit"] = x.get_explicit_explicit();
+        j["except"] = x.get_except();
     }
 
-    inline void from_json(const json & j, Export& x) {
+    inline void from_json(const json & j, Exception& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("export") != j.end() && !j.at("export").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_export_export(j.at("export").get<int64_t>());
+        if (j.find("exception") != j.end() && !j.at("exception").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_exception(j.at("exception").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Export & x) {
+    inline void to_json(json & j, const Exception & x) {
         j = json::object();
-        j["export"] = x.get_export_export();
+        j["exception"] = x.get_exception();
     }
 
-    inline void from_json(const json & j, Extern& x) {
+    inline void from_json(const json & j, Exposing& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("extern") != j.end() && !j.at("extern").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_extern_extern(j.at("extern").get<int64_t>());
+        if (j.find("exposing") != j.end() && !j.at("exposing").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_exposing(j.at("exposing").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Extern & x) {
+    inline void to_json(json & j, const Exposing & x) {
         j = json::object();
-        j["extern"] = x.get_extern_extern();
+        j["exposing"] = x.get_exposing();
     }
 
-    inline void from_json(const json & j, False& x) {
+    inline void from_json(const json & j, Extends& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("False") != j.end() && !j.at("False").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_false_false(j.at("False").get<int64_t>());
+        if (j.find("extends") != j.end() && !j.at("extends").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_extends(j.at("extends").get<int64_t>());
     }
 
-    inline void to_json(json & j, const False & x) {
+    inline void to_json(json & j, const Extends & x) {
         j = json::object();
-        j["False"] = x.get_false_false();
+        j["extends"] = x.get_extends();
     }
 
-    inline void from_json(const json & j, Final& x) {
+    inline void from_json(const json & j, Extension& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("final") != j.end() && !j.at("final").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_final_final(j.at("final").get<int64_t>());
+        if (j.find("extension") != j.end() && !j.at("extension").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_extension(j.at("extension").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Final & x) {
+    inline void to_json(json & j, const Extension & x) {
         j = json::object();
-        j["final"] = x.get_final_final();
+        j["extension"] = x.get_extension();
     }
 
-    inline void from_json(const json & j, Float& x) {
+    inline void from_json(const json & j, Fallthrough& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("float") != j.end() && !j.at("float").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_float_float(j.at("float").get<int64_t>());
+        if (j.find("fallthrough") != j.end() && !j.at("fallthrough").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_fallthrough(j.at("fallthrough").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Float & x) {
+    inline void to_json(json & j, const Fallthrough & x) {
         j = json::object();
-        j["float"] = x.get_float_float();
+        j["fallthrough"] = x.get_fallthrough();
     }
 
-    inline void from_json(const json & j, For& x) {
+    inline void from_json(const json & j, Fileprivate& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("for") != j.end() && !j.at("for").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_for_for(j.at("for").get<int64_t>());
+        if (j.find("fileprivate") != j.end() && !j.at("fileprivate").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_fileprivate(j.at("fileprivate").get<int64_t>());
     }
 
-    inline void to_json(json & j, const For & x) {
+    inline void to_json(json & j, const Fileprivate & x) {
         j = json::object();
-        j["for"] = x.get_for_for();
+        j["fileprivate"] = x.get_fileprivate();
     }
 
-    inline void from_json(const json & j, Friend& x) {
+    inline void from_json(const json & j, Finally& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("friend") != j.end() && !j.at("friend").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_friend_friend(j.at("friend").get<int64_t>());
+        if (j.find("finally") != j.end() && !j.at("finally").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_finally(j.at("finally").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Friend & x) {
+    inline void to_json(json & j, const Finally & x) {
         j = json::object();
-        j["friend"] = x.get_friend_friend();
+        j["finally"] = x.get_finally();
     }
 
-    inline void from_json(const json & j, Goto& x) {
+    inline void from_json(const json & j, Fixed& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("goto") != j.end() && !j.at("goto").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_goto_goto(j.at("goto").get<int64_t>());
+        if (j.find("fixed") != j.end() && !j.at("fixed").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_fixed(j.at("fixed").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Goto & x) {
+    inline void to_json(json & j, const Fixed & x) {
         j = json::object();
-        j["goto"] = x.get_goto_goto();
+        j["fixed"] = x.get_fixed();
     }
 
-    inline void from_json(const json & j, If& x) {
+    inline void from_json(const json & j, Foreach& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("if") != j.end() && !j.at("if").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_if_if(j.at("if").get<int64_t>());
+        if (j.find("foreach") != j.end() && !j.at("foreach").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_foreach(j.at("foreach").get<int64_t>());
     }
 
-    inline void to_json(json & j, const If & x) {
+    inline void to_json(json & j, const Foreach & x) {
         j = json::object();
-        j["if"] = x.get_if_if();
+        j["foreach"] = x.get_foreach();
     }
 
-    inline void from_json(const json & j, Import& x) {
+    inline void from_json(const json & j, FormatException& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("import") != j.end() && !j.at("import").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_import_import(j.at("import").get<int64_t>());
+        if (j.find("FormatException") != j.end() && !j.at("FormatException").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_format_exception(j.at("FormatException").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Import & x) {
+    inline void to_json(json & j, const FormatException & x) {
         j = json::object();
-        j["import"] = x.get_import_import();
+        j["FormatException"] = x.get_format_exception();
     }
 
-    inline void from_json(const json & j, Inline& x) {
+    inline void from_json(const json & j, From& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("inline") != j.end() && !j.at("inline").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_inline_inline(j.at("inline").get<int64_t>());
+        if (j.find("from") != j.end() && !j.at("from").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_from(j.at("from").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Inline & x) {
+    inline void to_json(json & j, const From & x) {
         j = json::object();
-        j["inline"] = x.get_inline_inline();
+        j["from"] = x.get_from();
     }
 
-    inline void from_json(const json & j, Int& x) {
+    inline void from_json(const json & j, FromJson& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("int") != j.end() && !j.at("int").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_int_int(j.at("int").get<int64_t>());
+        if (j.find("from_json") != j.end() && !j.at("from_json").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_from_json(j.at("from_json").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Int & x) {
+    inline void to_json(json & j, const FromJson & x) {
         j = json::object();
-        j["int"] = x.get_int_int();
+        j["from_json"] = x.get_from_json();
     }
 
-    inline void from_json(const json & j, FalseClass& x) {
+    inline void from_json(const json & j, Func& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("false") != j.end() && !j.at("false").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_false_false(j.at("false").get<int64_t>());
+        if (j.find("func") != j.end() && !j.at("func").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_func(j.at("func").get<int64_t>());
     }
 
-    inline void to_json(json & j, const FalseClass & x) {
+    inline void to_json(json & j, const Func & x) {
         j = json::object();
-        j["false"] = x.get_false_false();
+        j["func"] = x.get_func();
     }
 
-    inline void from_json(const json & j, Obj2& x) {
+    inline void from_json(const json & j, Function& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        x.set_def(j.at("def").get<Def>());
-        x.set_defer(j.at("defer").get<Defer>());
-        x.set_deinit(j.at("deinit").get<Deinit>());
-        x.set_del(j.at("del").get<Del>());
-        x.set_delegate(j.at("delegate").get<Delegate>());
-        x.set_dict(j.at("dict").get<Dict>());
-        x.set_dictionary(j.at("dictionary").get<Dictionary>());
-        x.set_did_set(j.at("didSet").get<DidSet>());
-        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dummy(j.at("dummy").get<int64_t>());
-        x.set_dynamic(j.at("dynamic").get<Dynamic>());
-        x.set_elif(j.at("elif").get<Elif>());
-        x.set_encode_quick_type(j.at("encode_quick_type").get<EncodeQuickType>());
-        x.set_enum_values(j.at("EnumValues").get<EnumValues>());
-        x.set_equality_contract(j.at("equalityContract").get<EqualityContract>());
-        x.set_event(j.at("event").get<Event>());
-        x.set_except(j.at("except").get<Except>());
-        x.set_exception(j.at("exception").get<Exception>());
-        x.set_exposing(j.at("exposing").get<Exposing>());
-        x.set_extends(j.at("extends").get<Extends>());
-        x.set_extension(j.at("extension").get<Extension>());
-        x.set_fallthrough(j.at("fallthrough").get<Fallthrough>());
-        x.set_fileprivate(j.at("fileprivate").get<Fileprivate>());
-        x.set_finally(j.at("finally").get<Finally>());
-        x.set_fixed(j.at("fixed").get<Fixed>());
-        x.set_foreach(j.at("foreach").get<Foreach>());
-        x.set_format_exception(j.at("FormatException").get<FormatException>());
-        x.set_from(j.at("from").get<From>());
-        x.set_from_json(j.at("from_json").get<FromJson>());
-        x.set_func(j.at("func").get<Func>());
-        x.set_function(j.at("function").get<Function>());
-        x.set_get(j.at("get").get<Get>());
-        x.set_global(j.at("global").get<Global>());
-        x.set_go(j.at("go").get<Go>());
-        x.set_guard(j.at("guard").get<Guard>());
-        x.set_has_own_property(j.at("hasOwnProperty").get<HasOwnProperty>());
-        x.set_hash_code(j.at("hashCode").get<HashCode>());
-        x.set_id(j.at("id").get<Id>());
-        x.set_imp(j.at("IMP").get<Imp>());
-        x.set_implements(j.at("implements").get<Implements>());
-        x.set_implicit(j.at("implicit").get<Implicit>());
-        x.set_in(j.at("in").get<In>());
-        x.set_indirect(j.at("indirect").get<Indirect>());
-        x.set_infix(j.at("infix").get<Infix>());
-        x.set_init(j.at("init").get<Init>());
-        x.set_inout(j.at("inout").get<Inout>());
-        x.set_instanceof(j.at("instanceof").get<Instanceof>());
-        x.set_interface(j.at("interface").get<Interface>());
-        x.set_internal(j.at("internal").get<Internal>());
-        x.set_obj2_default(j.at("default").get<Default>());
-        x.set_obj2_delete(j.at("delete").get<Delete>());
-        x.set_obj2_do(j.at("do").get<Do>());
-        x.set_obj2_double(j.at("double").get<Double>());
-        x.set_obj2_dynamic_cast(j.at("dynamic_cast").get<DynamicCast>());
-        x.set_obj2_else(j.at("else").get<Else>());
-        x.set_obj2_enum(j.at("enum").get<Enum>());
-        x.set_obj2_explicit(j.at("explicit").get<Explicit>());
-        x.set_obj2_export(j.at("export").get<Export>());
-        x.set_obj2_extern(j.at("extern").get<Extern>());
-        x.set_obj2_false(j.at("False").get<False>());
-        x.set_obj2_final(j.at("final").get<Final>());
-        x.set_obj2_float(j.at("float").get<Float>());
-        x.set_obj2_for(j.at("for").get<For>());
-        x.set_obj2_friend(j.at("friend").get<Friend>());
-        x.set_obj2_goto(j.at("goto").get<Goto>());
-        x.set_obj2_if(j.at("if").get<If>());
-        x.set_obj2_import(j.at("import").get<Import>());
-        x.set_obj2_inline(j.at("inline").get<Inline>());
-        x.set_obj2_int(j.at("int").get<Int>());
-        x.set_purple_false(j.at("false").get<FalseClass>());
+        if (j.find("function") != j.end() && !j.at("function").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_function(j.at("function").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Obj2 & x) {
+    inline void to_json(json & j, const Function & x) {
         j = json::object();
-        j["def"] = x.get_def();
-        j["defer"] = x.get_defer();
-        j["deinit"] = x.get_deinit();
-        j["del"] = x.get_del();
-        j["delegate"] = x.get_delegate();
-        j["dict"] = x.get_dict();
-        j["dictionary"] = x.get_dictionary();
-        j["didSet"] = x.get_did_set();
-        j["dummy"] = x.get_dummy();
-        j["dynamic"] = x.get_dynamic();
-        j["elif"] = x.get_elif();
-        j["encode_quick_type"] = x.get_encode_quick_type();
-        j["EnumValues"] = x.get_enum_values();
-        j["equalityContract"] = x.get_equality_contract();
-        j["event"] = x.get_event();
-        j["except"] = x.get_except();
-        j["exception"] = x.get_exception();
-        j["exposing"] = x.get_exposing();
-        j["extends"] = x.get_extends();
-        j["extension"] = x.get_extension();
-        j["fallthrough"] = x.get_fallthrough();
-        j["fileprivate"] = x.get_fileprivate();
-        j["finally"] = x.get_finally();
-        j["fixed"] = x.get_fixed();
-        j["foreach"] = x.get_foreach();
-        j["FormatException"] = x.get_format_exception();
-        j["from"] = x.get_from();
-        j["from_json"] = x.get_from_json();
-        j["func"] = x.get_func();
         j["function"] = x.get_function();
+    }
+
+    inline void from_json(const json & j, Get& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("get") != j.end() && !j.at("get").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_get(j.at("get").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Get & x) {
+        j = json::object();
         j["get"] = x.get_get();
+    }
+
+    inline void from_json(const json & j, Global& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("global") != j.end() && !j.at("global").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_global(j.at("global").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Global & x) {
+        j = json::object();
         j["global"] = x.get_global();
+    }
+
+    inline void from_json(const json & j, Go& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("go") != j.end() && !j.at("go").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_go(j.at("go").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Go & x) {
+        j = json::object();
         j["go"] = x.get_go();
+    }
+
+    inline void from_json(const json & j, Guard& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("guard") != j.end() && !j.at("guard").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_guard(j.at("guard").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Guard & x) {
+        j = json::object();
         j["guard"] = x.get_guard();
+    }
+
+    inline void from_json(const json & j, HasOwnProperty& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("hasOwnProperty") != j.end() && !j.at("hasOwnProperty").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_has_own_property(j.at("hasOwnProperty").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const HasOwnProperty & x) {
+        j = json::object();
         j["hasOwnProperty"] = x.get_has_own_property();
+    }
+
+    inline void from_json(const json & j, HashCode& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("hashCode") != j.end() && !j.at("hashCode").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_hash_code(j.at("hashCode").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const HashCode & x) {
+        j = json::object();
         j["hashCode"] = x.get_hash_code();
+    }
+
+    inline void from_json(const json & j, Id& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("id") != j.end() && !j.at("id").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_id(j.at("id").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Id & x) {
+        j = json::object();
         j["id"] = x.get_id();
+    }
+
+    inline void from_json(const json & j, Imp& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("IMP") != j.end() && !j.at("IMP").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_imp(j.at("IMP").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Imp & x) {
+        j = json::object();
         j["IMP"] = x.get_imp();
+    }
+
+    inline void from_json(const json & j, Implements& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("implements") != j.end() && !j.at("implements").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_implements(j.at("implements").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Implements & x) {
+        j = json::object();
         j["implements"] = x.get_implements();
+    }
+
+    inline void from_json(const json & j, Implicit& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("implicit") != j.end() && !j.at("implicit").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_implicit(j.at("implicit").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Implicit & x) {
+        j = json::object();
         j["implicit"] = x.get_implicit();
-        j["in"] = x.get_in();
-        j["indirect"] = x.get_indirect();
-        j["infix"] = x.get_infix();
-        j["init"] = x.get_init();
-        j["inout"] = x.get_inout();
-        j["instanceof"] = x.get_instanceof();
-        j["interface"] = x.get_interface();
-        j["internal"] = x.get_internal();
-        j["default"] = x.get_obj2_default();
-        j["delete"] = x.get_obj2_delete();
-        j["do"] = x.get_obj2_do();
-        j["double"] = x.get_obj2_double();
-        j["dynamic_cast"] = x.get_obj2_dynamic_cast();
-        j["else"] = x.get_obj2_else();
-        j["enum"] = x.get_obj2_enum();
-        j["explicit"] = x.get_obj2_explicit();
-        j["export"] = x.get_obj2_export();
-        j["extern"] = x.get_obj2_extern();
-        j["False"] = x.get_obj2_false();
-        j["final"] = x.get_obj2_final();
-        j["float"] = x.get_obj2_float();
-        j["for"] = x.get_obj2_for();
-        j["friend"] = x.get_obj2_friend();
-        j["goto"] = x.get_obj2_goto();
-        j["if"] = x.get_obj2_if();
-        j["import"] = x.get_obj2_import();
-        j["inline"] = x.get_obj2_inline();
-        j["int"] = x.get_obj2_int();
-        j["false"] = x.get_purple_false();
     }
 
-    inline void from_json(const json & j, Is& x) {
+    inline void from_json(const json & j, Decltype& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("is") != j.end() && !j.at("is").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_is(j.at("is").get<int64_t>());
+        if (j.find("decltype") != j.end() && !j.at("decltype").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_decltype_decltype(j.at("decltype").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Is & x) {
+    inline void to_json(json & j, const Decltype & x) {
         j = json::object();
-        j["is"] = x.get_is();
+        j["decltype"] = x.get_decltype_decltype();
     }
 
-    inline void from_json(const json & j, IsoDateTimeOffsetConverter& x) {
+    inline void from_json(const json & j, Default& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("IsoDateTimeOffsetConverter") != j.end() && !j.at("IsoDateTimeOffsetConverter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_iso_date_time_offset_converter(j.at("IsoDateTimeOffsetConverter").get<int64_t>());
+        if (j.find("default") != j.end() && !j.at("default").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_default_default(j.at("default").get<int64_t>());
     }
 
-    inline void to_json(json & j, const IsoDateTimeOffsetConverter & x) {
+    inline void to_json(json & j, const Default & x) {
         j = json::object();
-        j["IsoDateTimeOffsetConverter"] = x.get_iso_date_time_offset_converter();
+        j["default"] = x.get_default_default();
     }
 
-    inline void from_json(const json & j, Iterable& x) {
+    inline void from_json(const json & j, Delete& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("iterable") != j.end() && !j.at("iterable").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_iterable(j.at("iterable").get<int64_t>());
+        if (j.find("delete") != j.end() && !j.at("delete").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_delete_delete(j.at("delete").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Iterable & x) {
+    inline void to_json(json & j, const Delete & x) {
         j = json::object();
-        j["iterable"] = x.get_iterable();
+        j["delete"] = x.get_delete_delete();
     }
 
-    inline void from_json(const json & j, Jdec& x) {
+    inline void from_json(const json & j, Do& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("jdec") != j.end() && !j.at("jdec").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_jdec(j.at("jdec").get<int64_t>());
+        if (j.find("do") != j.end() && !j.at("do").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_do_do(j.at("do").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Jdec & x) {
+    inline void to_json(json & j, const Do & x) {
         j = json::object();
-        j["jdec"] = x.get_jdec();
+        j["do"] = x.get_do_do();
     }
 
-    inline void from_json(const json & j, Jenc& x) {
+    inline void from_json(const json & j, Double& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("jenc") != j.end() && !j.at("jenc").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_jenc(j.at("jenc").get<int64_t>());
+        if (j.find("double") != j.end() && !j.at("double").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_double_double(j.at("double").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Jenc & x) {
+    inline void to_json(json & j, const Double & x) {
         j = json::object();
-        j["jenc"] = x.get_jenc();
+        j["double"] = x.get_double_double();
     }
 
-    inline void from_json(const json & j, Jpipe& x) {
+    inline void from_json(const json & j, DynamicCast& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("jpipe") != j.end() && !j.at("jpipe").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_jpipe(j.at("jpipe").get<int64_t>());
+        if (j.find("dynamic_cast") != j.end() && !j.at("dynamic_cast").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dynamic_cast_dynamic_cast(j.at("dynamic_cast").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Jpipe & x) {
+    inline void to_json(json & j, const DynamicCast & x) {
         j = json::object();
-        j["jpipe"] = x.get_jpipe();
+        j["dynamic_cast"] = x.get_dynamic_cast_dynamic_cast();
     }
 
-    inline void from_json(const json & j, Json& x) {
+    inline void from_json(const json & j, Else& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("json") != j.end() && !j.at("json").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json(j.at("json").get<int64_t>());
+        if (j.find("else") != j.end() && !j.at("else").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_else_else(j.at("else").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Json & x) {
+    inline void to_json(json & j, const Else & x) {
         j = json::object();
-        j["json"] = x.get_json();
+        j["else"] = x.get_else_else();
     }
 
-    inline void from_json(const json & j, JsonAny& x) {
+    inline void from_json(const json & j, Enum& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        x.set_json_any(get_untyped(j, "JSONAny"));
+        if (j.find("enum") != j.end() && !j.at("enum").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_enum_enum(j.at("enum").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonAny & x) {
+    inline void to_json(json & j, const Enum & x) {
         j = json::object();
-        j["JSONAny"] = x.get_json_any();
+        j["enum"] = x.get_enum_enum();
     }
 
-    inline void from_json(const json & j, JsonCodingKey& x) {
+    inline void from_json(const json & j, Explicit& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JSONCodingKey") != j.end() && !j.at("JSONCodingKey").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_coding_key(j.at("JSONCodingKey").get<int64_t>());
+        if (j.find("explicit") != j.end() && !j.at("explicit").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_explicit_explicit(j.at("explicit").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonCodingKey & x) {
+    inline void to_json(json & j, const Explicit & x) {
         j = json::object();
-        j["JSONCodingKey"] = x.get_json_coding_key();
+        j["explicit"] = x.get_explicit_explicit();
     }
 
-    inline void from_json(const json & j, JsonConverter& x) {
+    inline void from_json(const json & j, Export& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("json_converter") != j.end() && !j.at("json_converter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_converter(j.at("json_converter").get<int64_t>());
+        if (j.find("export") != j.end() && !j.at("export").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_export_export(j.at("export").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonConverter & x) {
+    inline void to_json(json & j, const Export & x) {
         j = json::object();
-        j["json_converter"] = x.get_json_converter();
+        j["export"] = x.get_export_export();
     }
 
-    inline void from_json(const json & j, JsonDecoder& x) {
+    inline void from_json(const json & j, Extern& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JSONDecoder") != j.end() && !j.at("JSONDecoder").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_decoder(j.at("JSONDecoder").get<int64_t>());
+        if (j.find("extern") != j.end() && !j.at("extern").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_extern_extern(j.at("extern").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonDecoder & x) {
+    inline void to_json(json & j, const Extern & x) {
         j = json::object();
-        j["JSONDecoder"] = x.get_json_decoder();
+        j["extern"] = x.get_extern_extern();
     }
 
-    inline void from_json(const json & j, JsonEncoder& x) {
+    inline void from_json(const json & j, False& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JSONEncoder") != j.end() && !j.at("JSONEncoder").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_encoder(j.at("JSONEncoder").get<int64_t>());
+        if (j.find("False") != j.end() && !j.at("False").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_false_false(j.at("False").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonEncoder & x) {
+    inline void to_json(json & j, const False & x) {
         j = json::object();
-        j["JSONEncoder"] = x.get_json_encoder();
+        j["False"] = x.get_false_false();
     }
 
-    inline void from_json(const json & j, JsonException& x) {
+    inline void from_json(const json & j, Final& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonException") != j.end() && !j.at("JsonException").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_exception(j.at("JsonException").get<int64_t>());
+        if (j.find("final") != j.end() && !j.at("final").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_final_final(j.at("final").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonException & x) {
+    inline void to_json(json & j, const Final & x) {
         j = json::object();
-        j["JsonException"] = x.get_json_exception();
+        j["final"] = x.get_final_final();
     }
 
-    inline void from_json(const json & j, JsonGenerator& x) {
+    inline void from_json(const json & j, Float& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonGenerator") != j.end() && !j.at("JsonGenerator").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_generator(j.at("JsonGenerator").get<int64_t>());
+        if (j.find("float") != j.end() && !j.at("float").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_float_float(j.at("float").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonGenerator & x) {
+    inline void to_json(json & j, const Float & x) {
         j = json::object();
-        j["JsonGenerator"] = x.get_json_generator();
+        j["float"] = x.get_float_float();
     }
 
-    inline void from_json(const json & j, JsonNode& x) {
+    inline void from_json(const json & j, For& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonNode") != j.end() && !j.at("JsonNode").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_node(j.at("JsonNode").get<int64_t>());
+        if (j.find("for") != j.end() && !j.at("for").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_for_for(j.at("for").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonNode & x) {
+    inline void to_json(json & j, const For & x) {
         j = json::object();
-        j["JsonNode"] = x.get_json_node();
+        j["for"] = x.get_for_for();
     }
 
-    inline void from_json(const json & j, JsonNull& x) {
+    inline void from_json(const json & j, Friend& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JSONNull") != j.end() && !j.at("JSONNull").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_null(j.at("JSONNull").get<int64_t>());
+        if (j.find("friend") != j.end() && !j.at("friend").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_friend_friend(j.at("friend").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonNull & x) {
+    inline void to_json(json & j, const Friend & x) {
         j = json::object();
-        j["JSONNull"] = x.get_json_null();
+        j["friend"] = x.get_friend_friend();
     }
 
-    inline void from_json(const json & j, JsonParser& x) {
+    inline void from_json(const json & j, Goto& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonParser") != j.end() && !j.at("JsonParser").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_parser(j.at("JsonParser").get<int64_t>());
+        if (j.find("goto") != j.end() && !j.at("goto").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_goto_goto(j.at("goto").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonParser & x) {
+    inline void to_json(json & j, const Goto & x) {
         j = json::object();
-        j["JsonParser"] = x.get_json_parser();
+        j["goto"] = x.get_goto_goto();
     }
 
-    inline void from_json(const json & j, JsonReader& x) {
+    inline void from_json(const json & j, If& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonReader") != j.end() && !j.at("JsonReader").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_reader(j.at("JsonReader").get<int64_t>());
+        if (j.find("if") != j.end() && !j.at("if").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_if_if(j.at("if").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonReader & x) {
+    inline void to_json(json & j, const If & x) {
         j = json::object();
-        j["JsonReader"] = x.get_json_reader();
+        j["if"] = x.get_if_if();
     }
 
-    inline void from_json(const json & j, JsonSerializer& x) {
+    inline void from_json(const json & j, FalseClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("json_serializer") != j.end() && !j.at("json_serializer").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_serializer(j.at("json_serializer").get<int64_t>());
+        if (j.find("false") != j.end() && !j.at("false").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_false_false(j.at("false").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonSerializer & x) {
+    inline void to_json(json & j, const FalseClass & x) {
         j = json::object();
-        j["json_serializer"] = x.get_json_serializer();
+        j["false"] = x.get_false_false();
     }
 
-    inline void from_json(const json & j, JsonToken& x) {
+    inline void from_json(const json & j, Obj2& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("json_token") != j.end() && !j.at("json_token").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_token(j.at("json_token").get<int64_t>());
+        x.set_date_time(j.at("DateTime").get<DateTime>());
+        x.set_date_time_styles(j.at("DateTimeStyles").get<DateTimeStyles>());
+        x.set_debugger(j.at("debugger").get<Debugger>());
+        x.set_decimal(j.at("decimal").get<Decimal>());
+        x.set_declare(j.at("declare").get<Declare>());
+        x.set_decode_string(j.at("decode_string").get<DecodeString>());
+        x.set_def(j.at("def").get<Def>());
+        x.set_defer(j.at("defer").get<Defer>());
+        x.set_deinit(j.at("deinit").get<Deinit>());
+        x.set_del(j.at("del").get<Del>());
+        x.set_delegate(j.at("delegate").get<Delegate>());
+        x.set_dict(j.at("dict").get<Dict>());
+        x.set_dictionary(j.at("dictionary").get<Dictionary>());
+        x.set_did_set(j.at("didSet").get<DidSet>());
+        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dummy(j.at("dummy").get<int64_t>());
+        x.set_dynamic(j.at("dynamic").get<Dynamic>());
+        x.set_elif(j.at("elif").get<Elif>());
+        x.set_encode_quick_type(j.at("encode_quick_type").get<EncodeQuickType>());
+        x.set_enum_values(j.at("EnumValues").get<EnumValues>());
+        x.set_equality_contract(j.at("equalityContract").get<EqualityContract>());
+        x.set_event(j.at("event").get<Event>());
+        x.set_except(j.at("except").get<Except>());
+        x.set_exception(j.at("exception").get<Exception>());
+        x.set_exposing(j.at("exposing").get<Exposing>());
+        x.set_extends(j.at("extends").get<Extends>());
+        x.set_extension(j.at("extension").get<Extension>());
+        x.set_fallthrough(j.at("fallthrough").get<Fallthrough>());
+        x.set_fileprivate(j.at("fileprivate").get<Fileprivate>());
+        x.set_finally(j.at("finally").get<Finally>());
+        x.set_fixed(j.at("fixed").get<Fixed>());
+        x.set_foreach(j.at("foreach").get<Foreach>());
+        x.set_format_exception(j.at("FormatException").get<FormatException>());
+        x.set_from(j.at("from").get<From>());
+        x.set_from_json(j.at("from_json").get<FromJson>());
+        x.set_func(j.at("func").get<Func>());
+        x.set_function(j.at("function").get<Function>());
+        x.set_get(j.at("get").get<Get>());
+        x.set_global(j.at("global").get<Global>());
+        x.set_go(j.at("go").get<Go>());
+        x.set_guard(j.at("guard").get<Guard>());
+        x.set_has_own_property(j.at("hasOwnProperty").get<HasOwnProperty>());
+        x.set_hash_code(j.at("hashCode").get<HashCode>());
+        x.set_id(j.at("id").get<Id>());
+        x.set_imp(j.at("IMP").get<Imp>());
+        x.set_implements(j.at("implements").get<Implements>());
+        x.set_implicit(j.at("implicit").get<Implicit>());
+        x.set_obj2_decltype(j.at("decltype").get<Decltype>());
+        x.set_obj2_default(j.at("default").get<Default>());
+        x.set_obj2_delete(j.at("delete").get<Delete>());
+        x.set_obj2_do(j.at("do").get<Do>());
+        x.set_obj2_double(j.at("double").get<Double>());
+        x.set_obj2_dynamic_cast(j.at("dynamic_cast").get<DynamicCast>());
+        x.set_obj2_else(j.at("else").get<Else>());
+        x.set_obj2_enum(j.at("enum").get<Enum>());
+        x.set_obj2_explicit(j.at("explicit").get<Explicit>());
+        x.set_obj2_export(j.at("export").get<Export>());
+        x.set_obj2_extern(j.at("extern").get<Extern>());
+        x.set_obj2_false(j.at("False").get<False>());
+        x.set_obj2_final(j.at("final").get<Final>());
+        x.set_obj2_float(j.at("float").get<Float>());
+        x.set_obj2_for(j.at("for").get<For>());
+        x.set_obj2_friend(j.at("friend").get<Friend>());
+        x.set_obj2_goto(j.at("goto").get<Goto>());
+        x.set_obj2_if(j.at("if").get<If>());
+        x.set_purple_false(j.at("false").get<FalseClass>());
     }
 
-    inline void to_json(json & j, const JsonToken & x) {
+    inline void to_json(json & j, const Obj2 & x) {
         j = json::object();
-        j["json_token"] = x.get_json_token();
+        j["DateTime"] = x.get_date_time();
+        j["DateTimeStyles"] = x.get_date_time_styles();
+        j["debugger"] = x.get_debugger();
+        j["decimal"] = x.get_decimal();
+        j["declare"] = x.get_declare();
+        j["decode_string"] = x.get_decode_string();
+        j["def"] = x.get_def();
+        j["defer"] = x.get_defer();
+        j["deinit"] = x.get_deinit();
+        j["del"] = x.get_del();
+        j["delegate"] = x.get_delegate();
+        j["dict"] = x.get_dict();
+        j["dictionary"] = x.get_dictionary();
+        j["didSet"] = x.get_did_set();
+        j["dummy"] = x.get_dummy();
+        j["dynamic"] = x.get_dynamic();
+        j["elif"] = x.get_elif();
+        j["encode_quick_type"] = x.get_encode_quick_type();
+        j["EnumValues"] = x.get_enum_values();
+        j["equalityContract"] = x.get_equality_contract();
+        j["event"] = x.get_event();
+        j["except"] = x.get_except();
+        j["exception"] = x.get_exception();
+        j["exposing"] = x.get_exposing();
+        j["extends"] = x.get_extends();
+        j["extension"] = x.get_extension();
+        j["fallthrough"] = x.get_fallthrough();
+        j["fileprivate"] = x.get_fileprivate();
+        j["finally"] = x.get_finally();
+        j["fixed"] = x.get_fixed();
+        j["foreach"] = x.get_foreach();
+        j["FormatException"] = x.get_format_exception();
+        j["from"] = x.get_from();
+        j["from_json"] = x.get_from_json();
+        j["func"] = x.get_func();
+        j["function"] = x.get_function();
+        j["get"] = x.get_get();
+        j["global"] = x.get_global();
+        j["go"] = x.get_go();
+        j["guard"] = x.get_guard();
+        j["hasOwnProperty"] = x.get_has_own_property();
+        j["hashCode"] = x.get_hash_code();
+        j["id"] = x.get_id();
+        j["IMP"] = x.get_imp();
+        j["implements"] = x.get_implements();
+        j["implicit"] = x.get_implicit();
+        j["decltype"] = x.get_obj2_decltype();
+        j["default"] = x.get_obj2_default();
+        j["delete"] = x.get_obj2_delete();
+        j["do"] = x.get_obj2_do();
+        j["double"] = x.get_obj2_double();
+        j["dynamic_cast"] = x.get_obj2_dynamic_cast();
+        j["else"] = x.get_obj2_else();
+        j["enum"] = x.get_obj2_enum();
+        j["explicit"] = x.get_obj2_explicit();
+        j["export"] = x.get_obj2_export();
+        j["extern"] = x.get_obj2_extern();
+        j["False"] = x.get_obj2_false();
+        j["final"] = x.get_obj2_final();
+        j["float"] = x.get_obj2_float();
+        j["for"] = x.get_obj2_for();
+        j["friend"] = x.get_obj2_friend();
+        j["goto"] = x.get_obj2_goto();
+        j["if"] = x.get_obj2_if();
+        j["false"] = x.get_purple_false();
     }
 
-    inline void from_json(const json & j, JsonTokenType& x) {
+    inline void from_json(const json & j, In& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("JsonTokenType") != j.end() && !j.at("JsonTokenType").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_token_type(j.at("JsonTokenType").get<int64_t>());
+        if (j.find("in") != j.end() && !j.at("in").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_in(j.at("in").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonTokenType & x) {
+    inline void to_json(json & j, const In & x) {
         j = json::object();
-        j["JsonTokenType"] = x.get_json_token_type();
+        j["in"] = x.get_in();
     }
 
-    inline void from_json(const json & j, JsonWriter& x) {
+    inline void from_json(const json & j, Indirect& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("json_writer") != j.end() && !j.at("json_writer").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_json_writer(j.at("json_writer").get<int64_t>());
+        if (j.find("indirect") != j.end() && !j.at("indirect").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_indirect(j.at("indirect").get<int64_t>());
     }
 
-    inline void to_json(json & j, const JsonWriter & x) {
+    inline void to_json(json & j, const Indirect & x) {
         j = json::object();
-        j["json_writer"] = x.get_json_writer();
+        j["indirect"] = x.get_indirect();
     }
 
-    inline void from_json(const json & j, Lambda& x) {
+    inline void from_json(const json & j, Infix& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("lambda") != j.end() && !j.at("lambda").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_lambda(j.at("lambda").get<int64_t>());
+        if (j.find("infix") != j.end() && !j.at("infix").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_infix(j.at("infix").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Lambda & x) {
+    inline void to_json(json & j, const Infix & x) {
         j = json::object();
-        j["lambda"] = x.get_lambda();
+        j["infix"] = x.get_infix();
     }
 
-    inline void from_json(const json & j, Lazy& x) {
+    inline void from_json(const json & j, Init& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("lazy") != j.end() && !j.at("lazy").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_lazy(j.at("lazy").get<int64_t>());
+        if (j.find("init") != j.end() && !j.at("init").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_init(j.at("init").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Lazy & x) {
+    inline void to_json(json & j, const Init & x) {
         j = json::object();
-        j["lazy"] = x.get_lazy();
+        j["init"] = x.get_init();
     }
 
-    inline void from_json(const json & j, Left& x) {
+    inline void from_json(const json & j, Inout& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("left") != j.end() && !j.at("left").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_left(j.at("left").get<int64_t>());
+        if (j.find("inout") != j.end() && !j.at("inout").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_inout(j.at("inout").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Left & x) {
+    inline void to_json(json & j, const Inout & x) {
         j = json::object();
-        j["left"] = x.get_left();
+        j["inout"] = x.get_inout();
     }
 
-    inline void from_json(const json & j, Let& x) {
+    inline void from_json(const json & j, Instanceof& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("let") != j.end() && !j.at("let").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_let(j.at("let").get<int64_t>());
+        if (j.find("instanceof") != j.end() && !j.at("instanceof").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_instanceof(j.at("instanceof").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Let & x) {
+    inline void to_json(json & j, const Instanceof & x) {
         j = json::object();
-        j["let"] = x.get_let();
+        j["instanceof"] = x.get_instanceof();
     }
 
-    inline void from_json(const json & j, List& x) {
+    inline void from_json(const json & j, Interface& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("list") != j.end() && !j.at("list").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_list(j.at("list").get<int64_t>());
+        if (j.find("interface") != j.end() && !j.at("interface").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_interface(j.at("interface").get<int64_t>());
     }
 
-    inline void to_json(json & j, const List & x) {
+    inline void to_json(json & j, const Interface & x) {
         j = json::object();
-        j["list"] = x.get_list();
+        j["interface"] = x.get_interface();
     }
 
-    inline void from_json(const json & j, Lock& x) {
+    inline void from_json(const json & j, Internal& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("lock") != j.end() && !j.at("lock").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_lock(j.at("lock").get<int64_t>());
+        if (j.find("internal") != j.end() && !j.at("internal").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_internal(j.at("internal").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Lock & x) {
+    inline void to_json(json & j, const Internal & x) {
         j = json::object();
-        j["lock"] = x.get_lock();
+        j["internal"] = x.get_internal();
     }
 
-    inline void from_json(const json & j, Map& x) {
+    inline void from_json(const json & j, Is& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("map") != j.end() && !j.at("map").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_map(j.at("map").get<int64_t>());
+        if (j.find("is") != j.end() && !j.at("is").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_is(j.at("is").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Map & x) {
+    inline void to_json(json & j, const Is & x) {
         j = json::object();
-        j["map"] = x.get_map();
+        j["is"] = x.get_is();
     }
 
-    inline void from_json(const json & j, MetadataPropertyHandling& x) {
+    inline void from_json(const json & j, IsoDateTimeOffsetConverter& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("metadata_property_handling") != j.end() && !j.at("metadata_property_handling").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_metadata_property_handling(j.at("metadata_property_handling").get<int64_t>());
+        if (j.find("IsoDateTimeOffsetConverter") != j.end() && !j.at("IsoDateTimeOffsetConverter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_iso_date_time_offset_converter(j.at("IsoDateTimeOffsetConverter").get<int64_t>());
     }
 
-    inline void to_json(json & j, const MetadataPropertyHandling & x) {
+    inline void to_json(json & j, const IsoDateTimeOffsetConverter & x) {
         j = json::object();
-        j["metadata_property_handling"] = x.get_metadata_property_handling();
+        j["IsoDateTimeOffsetConverter"] = x.get_iso_date_time_offset_converter();
     }
 
-    inline void from_json(const json & j, Mutating& x) {
+    inline void from_json(const json & j, Iterable& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("mutating") != j.end() && !j.at("mutating").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_mutating(j.at("mutating").get<int64_t>());
+        if (j.find("iterable") != j.end() && !j.at("iterable").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_iterable(j.at("iterable").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Mutating & x) {
+    inline void to_json(json & j, const Iterable & x) {
         j = json::object();
-        j["mutating"] = x.get_mutating();
+        j["iterable"] = x.get_iterable();
     }
 
-    inline void from_json(const json & j, Native& x) {
+    inline void from_json(const json & j, Jdec& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("native") != j.end() && !j.at("native").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_native(j.at("native").get<int64_t>());
+        if (j.find("jdec") != j.end() && !j.at("jdec").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_jdec(j.at("jdec").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Native & x) {
+    inline void to_json(json & j, const Jdec & x) {
         j = json::object();
-        j["native"] = x.get_native();
+        j["jdec"] = x.get_jdec();
     }
 
-    inline void from_json(const json & j, Newtonsoft& x) {
+    inline void from_json(const json & j, Jenc& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("newtonsoft") != j.end() && !j.at("newtonsoft").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_newtonsoft(j.at("newtonsoft").get<int64_t>());
+        if (j.find("jenc") != j.end() && !j.at("jenc").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_jenc(j.at("jenc").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Newtonsoft & x) {
+    inline void to_json(json & j, const Jenc & x) {
         j = json::object();
-        j["newtonsoft"] = x.get_newtonsoft();
+        j["jenc"] = x.get_jenc();
     }
 
-    inline void from_json(const json & j, Nil& x) {
+    inline void from_json(const json & j, Jpipe& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("nil") != j.end() && !j.at("nil").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_nil(j.at("nil").get<int64_t>());
+        if (j.find("jpipe") != j.end() && !j.at("jpipe").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_jpipe(j.at("jpipe").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Nil & x) {
+    inline void to_json(json & j, const Jpipe & x) {
         j = json::object();
-        j["nil"] = x.get_nil();
+        j["jpipe"] = x.get_jpipe();
     }
 
-    inline void from_json(const json & j, No& x) {
+    inline void from_json(const json & j, Json& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("NO") != j.end() && !j.at("NO").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_no(j.at("NO").get<int64_t>());
+        if (j.find("json") != j.end() && !j.at("json").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json(j.at("json").get<int64_t>());
     }
 
-    inline void to_json(json & j, const No & x) {
+    inline void to_json(json & j, const Json & x) {
         j = json::object();
-        j["NO"] = x.get_no();
+        j["json"] = x.get_json();
     }
 
-    inline void from_json(const json & j, NoSuchMethod& x) {
+    inline void from_json(const json & j, JsonAny& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("noSuchMethod") != j.end() && !j.at("noSuchMethod").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_no_such_method(j.at("noSuchMethod").get<int64_t>());
+        x.set_json_any(get_untyped(j, "JSONAny"));
     }
 
-    inline void to_json(json & j, const NoSuchMethod & x) {
+    inline void to_json(json & j, const JsonAny & x) {
         j = json::object();
-        j["noSuchMethod"] = x.get_no_such_method();
+        j["JSONAny"] = x.get_json_any();
     }
 
-    inline void from_json(const json & j, Nonatomic& x) {
+    inline void from_json(const json & j, JsonCodingKey& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("nonatomic") != j.end() && !j.at("nonatomic").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_nonatomic(j.at("nonatomic").get<int64_t>());
+        if (j.find("JSONCodingKey") != j.end() && !j.at("JSONCodingKey").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_coding_key(j.at("JSONCodingKey").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Nonatomic & x) {
+    inline void to_json(json & j, const JsonCodingKey & x) {
         j = json::object();
-        j["nonatomic"] = x.get_nonatomic();
+        j["JSONCodingKey"] = x.get_json_coding_key();
     }
 
-    inline void from_json(const json & j, None& x) {
+    inline void from_json(const json & j, JsonConverter& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("None") != j.end() && !j.at("None").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_none(j.at("None").get<int64_t>());
+        if (j.find("json_converter") != j.end() && !j.at("json_converter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_converter(j.at("json_converter").get<int64_t>());
     }
 
-    inline void to_json(json & j, const None & x) {
+    inline void to_json(json & j, const JsonConverter & x) {
         j = json::object();
-        j["None"] = x.get_none();
+        j["json_converter"] = x.get_json_converter();
     }
 
-    inline void from_json(const json & j, Nonlocal& x) {
+    inline void from_json(const json & j, JsonDecoder& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("nonlocal") != j.end() && !j.at("nonlocal").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_nonlocal(j.at("nonlocal").get<int64_t>());
+        if (j.find("JSONDecoder") != j.end() && !j.at("JSONDecoder").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_decoder(j.at("JSONDecoder").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Nonlocal & x) {
+    inline void to_json(json & j, const JsonDecoder & x) {
         j = json::object();
-        j["nonlocal"] = x.get_nonlocal();
+        j["JSONDecoder"] = x.get_json_decoder();
     }
 
-    inline void from_json(const json & j, Nonmutating& x) {
+    inline void from_json(const json & j, JsonEncoder& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("nonmutating") != j.end() && !j.at("nonmutating").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_nonmutating(j.at("nonmutating").get<int64_t>());
+        if (j.find("JSONEncoder") != j.end() && !j.at("JSONEncoder").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_encoder(j.at("JSONEncoder").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Nonmutating & x) {
+    inline void to_json(json & j, const JsonEncoder & x) {
         j = json::object();
-        j["nonmutating"] = x.get_nonmutating();
+        j["JSONEncoder"] = x.get_json_encoder();
     }
 
-    inline void from_json(const json & j, NsError& x) {
+    inline void from_json(const json & j, JsonException& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("NSError") != j.end() && !j.at("NSError").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_ns_error(j.at("NSError").get<int64_t>());
+        if (j.find("JsonException") != j.end() && !j.at("JsonException").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_exception(j.at("JsonException").get<int64_t>());
     }
 
-    inline void to_json(json & j, const NsError & x) {
+    inline void to_json(json & j, const JsonException & x) {
         j = json::object();
-        j["NSError"] = x.get_ns_error();
+        j["JsonException"] = x.get_json_exception();
     }
 
-    inline void from_json(const json & j, NsString& x) {
+    inline void from_json(const json & j, JsonGenerator& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("NSString") != j.end() && !j.at("NSString").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_ns_string(j.at("NSString").get<int64_t>());
+        if (j.find("JsonGenerator") != j.end() && !j.at("JsonGenerator").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_generator(j.at("JsonGenerator").get<int64_t>());
     }
 
-    inline void to_json(json & j, const NsString & x) {
+    inline void to_json(json & j, const JsonGenerator & x) {
         j = json::object();
-        j["NSString"] = x.get_ns_string();
+        j["JsonGenerator"] = x.get_json_generator();
     }
 
-    inline void from_json(const json & j, Null& x) {
+    inline void from_json(const json & j, JsonNode& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("NULL") != j.end() && !j.at("NULL").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_null(j.at("NULL").get<int64_t>());
+        if (j.find("JsonNode") != j.end() && !j.at("JsonNode").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_node(j.at("JsonNode").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Null & x) {
+    inline void to_json(json & j, const JsonNode & x) {
         j = json::object();
-        j["NULL"] = x.get_null();
+        j["JsonNode"] = x.get_json_node();
     }
 
-    inline void from_json(const json & j, Number& x) {
+    inline void from_json(const json & j, JsonNull& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("number") != j.end() && !j.at("number").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_number(j.at("number").get<int64_t>());
+        if (j.find("JSONNull") != j.end() && !j.at("JSONNull").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_null(j.at("JSONNull").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Number & x) {
+    inline void to_json(json & j, const JsonNull & x) {
         j = json::object();
-        j["number"] = x.get_number();
+        j["JSONNull"] = x.get_json_null();
     }
 
-    inline void from_json(const json & j, Long& x) {
+    inline void from_json(const json & j, JsonParser& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("long") != j.end() && !j.at("long").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_long_long(j.at("long").get<int64_t>());
+        if (j.find("JsonParser") != j.end() && !j.at("JsonParser").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_parser(j.at("JsonParser").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Long & x) {
+    inline void to_json(json & j, const JsonParser & x) {
         j = json::object();
-        j["long"] = x.get_long_long();
+        j["JsonParser"] = x.get_json_parser();
     }
 
-    inline void from_json(const json & j, Module& x) {
+    inline void from_json(const json & j, JsonReader& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("module") != j.end() && !j.at("module").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_module_module(j.at("module").get<int64_t>());
+        if (j.find("JsonReader") != j.end() && !j.at("JsonReader").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_reader(j.at("JsonReader").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Module & x) {
+    inline void to_json(json & j, const JsonReader & x) {
         j = json::object();
-        j["module"] = x.get_module_module();
+        j["JsonReader"] = x.get_json_reader();
     }
 
-    inline void from_json(const json & j, Mutable& x) {
+    inline void from_json(const json & j, JsonSerializer& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("mutable") != j.end() && !j.at("mutable").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_mutable_mutable(j.at("mutable").get<int64_t>());
+        if (j.find("json_serializer") != j.end() && !j.at("json_serializer").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_serializer(j.at("json_serializer").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Mutable & x) {
+    inline void to_json(json & j, const JsonSerializer & x) {
         j = json::object();
-        j["mutable"] = x.get_mutable_mutable();
+        j["json_serializer"] = x.get_json_serializer();
     }
 
-    inline void from_json(const json & j, Namespace& x) {
+    inline void from_json(const json & j, JsonToken& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("namespace") != j.end() && !j.at("namespace").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_namespace_namespace(j.at("namespace").get<int64_t>());
+        if (j.find("json_token") != j.end() && !j.at("json_token").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_token(j.at("json_token").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Namespace & x) {
+    inline void to_json(json & j, const JsonToken & x) {
         j = json::object();
-        j["namespace"] = x.get_namespace_namespace();
+        j["json_token"] = x.get_json_token();
     }
 
-    inline void from_json(const json & j, New& x) {
+    inline void from_json(const json & j, JsonTokenType& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("new") != j.end() && !j.at("new").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_new_new(j.at("new").get<int64_t>());
+        if (j.find("JsonTokenType") != j.end() && !j.at("JsonTokenType").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_token_type(j.at("JsonTokenType").get<int64_t>());
     }
 
-    inline void to_json(json & j, const New & x) {
+    inline void to_json(json & j, const JsonTokenType & x) {
         j = json::object();
-        j["new"] = x.get_new_new();
+        j["JsonTokenType"] = x.get_json_token_type();
     }
 
-    inline void from_json(const json & j, Noexcept& x) {
+    inline void from_json(const json & j, JsonWriter& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("noexcept") != j.end() && !j.at("noexcept").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_noexcept_noexcept(j.at("noexcept").get<int64_t>());
+        if (j.find("json_writer") != j.end() && !j.at("json_writer").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_json_writer(j.at("json_writer").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Noexcept & x) {
+    inline void to_json(json & j, const JsonWriter & x) {
         j = json::object();
-        j["noexcept"] = x.get_noexcept_noexcept();
+        j["json_writer"] = x.get_json_writer();
     }
 
-    inline void from_json(const json & j, NoneClass& x) {
+    inline void from_json(const json & j, Lambda& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("none") != j.end() && !j.at("none").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_none(j.at("none").get<int64_t>());
+        if (j.find("lambda") != j.end() && !j.at("lambda").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_lambda(j.at("lambda").get<int64_t>());
     }
 
-    inline void to_json(json & j, const NoneClass & x) {
+    inline void to_json(json & j, const Lambda & x) {
         j = json::object();
-        j["none"] = x.get_none();
+        j["lambda"] = x.get_lambda();
     }
 
-    inline void from_json(const json & j, Not& x) {
+    inline void from_json(const json & j, Lazy& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("not") != j.end() && !j.at("not").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_not_not(j.at("not").get<int64_t>());
+        if (j.find("lazy") != j.end() && !j.at("lazy").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_lazy(j.at("lazy").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Not & x) {
+    inline void to_json(json & j, const Lazy & x) {
         j = json::object();
-        j["not"] = x.get_not_not();
+        j["lazy"] = x.get_lazy();
     }
 
-    inline void from_json(const json & j, NotEq& x) {
+    inline void from_json(const json & j, Left& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("not_eq") != j.end() && !j.at("not_eq").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_not_eq_not_eq(j.at("not_eq").get<int64_t>());
+        if (j.find("left") != j.end() && !j.at("left").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_left(j.at("left").get<int64_t>());
     }
 
-    inline void to_json(json & j, const NotEq & x) {
+    inline void to_json(json & j, const Left & x) {
         j = json::object();
-        j["not_eq"] = x.get_not_eq_not_eq();
+        j["left"] = x.get_left();
     }
 
-    inline void from_json(const json & j, NullClass& x) {
+    inline void from_json(const json & j, Let& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("null") != j.end() && !j.at("null").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_null(j.at("null").get<int64_t>());
+        if (j.find("let") != j.end() && !j.at("let").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_let(j.at("let").get<int64_t>());
     }
 
-    inline void to_json(json & j, const NullClass & x) {
+    inline void to_json(json & j, const Let & x) {
         j = json::object();
-        j["null"] = x.get_null();
+        j["let"] = x.get_let();
     }
 
-    inline void from_json(const json & j, Nullptr& x) {
+    inline void from_json(const json & j, List& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("nullptr") != j.end() && !j.at("nullptr").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_nullptr_nullptr(j.at("nullptr").get<int64_t>());
+        if (j.find("list") != j.end() && !j.at("list").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_list(j.at("list").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Nullptr & x) {
+    inline void to_json(json & j, const List & x) {
         j = json::object();
-        j["nullptr"] = x.get_nullptr_nullptr();
+        j["list"] = x.get_list();
     }
 
-    inline void from_json(const json & j, Operator& x) {
+    inline void from_json(const json & j, Lock& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("operator") != j.end() && !j.at("operator").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_operator_operator(j.at("operator").get<int64_t>());
+        if (j.find("lock") != j.end() && !j.at("lock").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_lock(j.at("lock").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Operator & x) {
+    inline void to_json(json & j, const Lock & x) {
         j = json::object();
-        j["operator"] = x.get_operator_operator();
+        j["lock"] = x.get_lock();
     }
 
-    inline void from_json(const json & j, Or& x) {
+    inline void from_json(const json & j, Map& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("or") != j.end() && !j.at("or").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_or_or(j.at("or").get<int64_t>());
+        if (j.find("map") != j.end() && !j.at("map").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_map(j.at("map").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Or & x) {
+    inline void to_json(json & j, const Map & x) {
         j = json::object();
-        j["or"] = x.get_or_or();
+        j["map"] = x.get_map();
     }
 
-    inline void from_json(const json & j, OrEq& x) {
+    inline void from_json(const json & j, MetadataPropertyHandling& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("or_eq") != j.end() && !j.at("or_eq").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_or_eq_or_eq(j.at("or_eq").get<int64_t>());
+        if (j.find("metadata_property_handling") != j.end() && !j.at("metadata_property_handling").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_metadata_property_handling(j.at("metadata_property_handling").get<int64_t>());
     }
 
-    inline void to_json(json & j, const OrEq & x) {
+    inline void to_json(json & j, const MetadataPropertyHandling & x) {
         j = json::object();
-        j["or_eq"] = x.get_or_eq_or_eq();
+        j["metadata_property_handling"] = x.get_metadata_property_handling();
     }
 
-    inline void from_json(const json & j, Override& x) {
+    inline void from_json(const json & j, Mutating& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("override") != j.end() && !j.at("override").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_override_override(j.at("override").get<int64_t>());
+        if (j.find("mutating") != j.end() && !j.at("mutating").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_mutating(j.at("mutating").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Override & x) {
+    inline void to_json(json & j, const Mutating & x) {
         j = json::object();
-        j["override"] = x.get_override_override();
+        j["mutating"] = x.get_mutating();
     }
 
-    inline void from_json(const json & j, Private& x) {
+    inline void from_json(const json & j, Native& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("private") != j.end() && !j.at("private").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_private_private(j.at("private").get<int64_t>());
+        if (j.find("native") != j.end() && !j.at("native").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_native(j.at("native").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Private & x) {
+    inline void to_json(json & j, const Native & x) {
         j = json::object();
-        j["private"] = x.get_private_private();
+        j["native"] = x.get_native();
     }
 
-    inline void from_json(const json & j, Protected& x) {
+    inline void from_json(const json & j, Newtonsoft& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("protected") != j.end() && !j.at("protected").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_protected_protected(j.at("protected").get<int64_t>());
+        if (j.find("newtonsoft") != j.end() && !j.at("newtonsoft").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_newtonsoft(j.at("newtonsoft").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Protected & x) {
+    inline void to_json(json & j, const Newtonsoft & x) {
         j = json::object();
-        j["protected"] = x.get_protected_protected();
+        j["newtonsoft"] = x.get_newtonsoft();
     }
 
-    inline void from_json(const json & j, ProtocolClass& x) {
+    inline void from_json(const json & j, Nil& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("protocol") != j.end() && !j.at("protocol").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_protocol(j.at("protocol").get<int64_t>());
+        if (j.find("nil") != j.end() && !j.at("nil").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_nil(j.at("nil").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ProtocolClass & x) {
+    inline void to_json(json & j, const Nil & x) {
         j = json::object();
-        j["protocol"] = x.get_protocol();
+        j["nil"] = x.get_nil();
     }
 
-    inline void from_json(const json & j, Object& x) {
+    inline void from_json(const json & j, No& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("object") != j.end() && !j.at("object").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_object(j.at("object").get<int64_t>());
+        if (j.find("NO") != j.end() && !j.at("NO").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_no(j.at("NO").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Object & x) {
+    inline void to_json(json & j, const No & x) {
         j = json::object();
-        j["object"] = x.get_object();
+        j["NO"] = x.get_no();
     }
 
-    inline void from_json(const json & j, ObjectMapper& x) {
+    inline void from_json(const json & j, NoSuchMethod& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("ObjectMapper") != j.end() && !j.at("ObjectMapper").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_object_mapper(j.at("ObjectMapper").get<int64_t>());
+        if (j.find("noSuchMethod") != j.end() && !j.at("noSuchMethod").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_no_such_method(j.at("noSuchMethod").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ObjectMapper & x) {
+    inline void to_json(json & j, const NoSuchMethod & x) {
         j = json::object();
-        j["ObjectMapper"] = x.get_object_mapper();
+        j["noSuchMethod"] = x.get_no_such_method();
     }
 
-    inline void from_json(const json & j, Of& x) {
+    inline void from_json(const json & j, Nonatomic& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("of") != j.end() && !j.at("of").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_of(j.at("of").get<int64_t>());
+        if (j.find("nonatomic") != j.end() && !j.at("nonatomic").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_nonatomic(j.at("nonatomic").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Of & x) {
+    inline void to_json(json & j, const Nonatomic & x) {
         j = json::object();
-        j["of"] = x.get_of();
+        j["nonatomic"] = x.get_nonatomic();
     }
 
-    inline void from_json(const json & j, Oneway& x) {
+    inline void from_json(const json & j, None& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("oneway") != j.end() && !j.at("oneway").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_oneway(j.at("oneway").get<int64_t>());
+        if (j.find("None") != j.end() && !j.at("None").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_none(j.at("None").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Oneway & x) {
+    inline void to_json(json & j, const None & x) {
         j = json::object();
-        j["oneway"] = x.get_oneway();
+        j["None"] = x.get_none();
     }
 
-    inline void from_json(const json & j, Open& x) {
+    inline void from_json(const json & j, Nonlocal& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("open") != j.end() && !j.at("open").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_open(j.at("open").get<int64_t>());
+        if (j.find("nonlocal") != j.end() && !j.at("nonlocal").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_nonlocal(j.at("nonlocal").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Open & x) {
+    inline void to_json(json & j, const Nonlocal & x) {
         j = json::object();
-        j["open"] = x.get_open();
+        j["nonlocal"] = x.get_nonlocal();
     }
 
-    inline void from_json(const json & j, Optional& x) {
+    inline void from_json(const json & j, Nonmutating& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("optional") != j.end() && !j.at("optional").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_optional(j.at("optional").get<int64_t>());
+        if (j.find("nonmutating") != j.end() && !j.at("nonmutating").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_nonmutating(j.at("nonmutating").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Optional & x) {
+    inline void to_json(json & j, const Nonmutating & x) {
         j = json::object();
-        j["optional"] = x.get_optional();
+        j["nonmutating"] = x.get_nonmutating();
     }
 
-    inline void from_json(const json & j, Out& x) {
+    inline void from_json(const json & j, NsError& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("out") != j.end() && !j.at("out").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_out(j.at("out").get<int64_t>());
+        if (j.find("NSError") != j.end() && !j.at("NSError").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_ns_error(j.at("NSError").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Out & x) {
+    inline void to_json(json & j, const NsError & x) {
         j = json::object();
-        j["out"] = x.get_out();
+        j["NSError"] = x.get_ns_error();
     }
 
-    inline void from_json(const json & j, Package& x) {
+    inline void from_json(const json & j, NsString& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("package") != j.end() && !j.at("package").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_package(j.at("package").get<int64_t>());
+        if (j.find("NSString") != j.end() && !j.at("NSString").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_ns_string(j.at("NSString").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Package & x) {
+    inline void to_json(json & j, const NsString & x) {
         j = json::object();
-        j["package"] = x.get_package();
+        j["NSString"] = x.get_ns_string();
     }
 
-    inline void from_json(const json & j, Params& x) {
+    inline void from_json(const json & j, Null& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("params") != j.end() && !j.at("params").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_params(j.at("params").get<int64_t>());
+        if (j.find("NULL") != j.end() && !j.at("NULL").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_null(j.at("NULL").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Params & x) {
+    inline void to_json(json & j, const Null & x) {
         j = json::object();
-        j["params"] = x.get_params();
+        j["NULL"] = x.get_null();
     }
 
-    inline void from_json(const json & j, Pass& x) {
+    inline void from_json(const json & j, Import& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("pass") != j.end() && !j.at("pass").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_pass(j.at("pass").get<int64_t>());
+        if (j.find("import") != j.end() && !j.at("import").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_import_import(j.at("import").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Pass & x) {
+    inline void to_json(json & j, const Import & x) {
         j = json::object();
-        j["pass"] = x.get_pass();
+        j["import"] = x.get_import_import();
     }
 
-    inline void from_json(const json & j, Port& x) {
+    inline void from_json(const json & j, Inline& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("port") != j.end() && !j.at("port").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_port(j.at("port").get<int64_t>());
+        if (j.find("inline") != j.end() && !j.at("inline").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_inline_inline(j.at("inline").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Port & x) {
+    inline void to_json(json & j, const Inline & x) {
         j = json::object();
-        j["port"] = x.get_port();
+        j["inline"] = x.get_inline_inline();
     }
 
-    inline void from_json(const json & j, Postfix& x) {
+    inline void from_json(const json & j, Int& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("postfix") != j.end() && !j.at("postfix").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_postfix(j.at("postfix").get<int64_t>());
+        if (j.find("int") != j.end() && !j.at("int").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_int_int(j.at("int").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Postfix & x) {
+    inline void to_json(json & j, const Int & x) {
         j = json::object();
-        j["postfix"] = x.get_postfix();
+        j["int"] = x.get_int_int();
     }
 
-    inline void from_json(const json & j, Precedence& x) {
+    inline void from_json(const json & j, Long& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("precedence") != j.end() && !j.at("precedence").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_precedence(j.at("precedence").get<int64_t>());
+        if (j.find("long") != j.end() && !j.at("long").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_long_long(j.at("long").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Precedence & x) {
+    inline void to_json(json & j, const Long & x) {
         j = json::object();
-        j["precedence"] = x.get_precedence();
+        j["long"] = x.get_long_long();
     }
 
-    inline void from_json(const json & j, Prefix& x) {
+    inline void from_json(const json & j, Module& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("prefix") != j.end() && !j.at("prefix").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_prefix(j.at("prefix").get<int64_t>());
+        if (j.find("module") != j.end() && !j.at("module").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_module_module(j.at("module").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Prefix & x) {
+    inline void to_json(json & j, const Module & x) {
         j = json::object();
-        j["prefix"] = x.get_prefix();
+        j["module"] = x.get_module_module();
     }
 
-    inline void from_json(const json & j, Print& x) {
+    inline void from_json(const json & j, Mutable& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("print") != j.end() && !j.at("print").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_print(j.at("print").get<int64_t>());
+        if (j.find("mutable") != j.end() && !j.at("mutable").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_mutable_mutable(j.at("mutable").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Print & x) {
+    inline void to_json(json & j, const Mutable & x) {
         j = json::object();
-        j["print"] = x.get_print();
+        j["mutable"] = x.get_mutable_mutable();
     }
 
-    inline void from_json(const json & j, PrintMembers& x) {
+    inline void from_json(const json & j, Namespace& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("printMembers") != j.end() && !j.at("printMembers").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_print_members(j.at("printMembers").get<int64_t>());
+        if (j.find("namespace") != j.end() && !j.at("namespace").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_namespace_namespace(j.at("namespace").get<int64_t>());
     }
 
-    inline void to_json(json & j, const PrintMembers & x) {
+    inline void to_json(json & j, const Namespace & x) {
         j = json::object();
-        j["printMembers"] = x.get_print_members();
+        j["namespace"] = x.get_namespace_namespace();
     }
 
-    inline void from_json(const json & j, Printf& x) {
+    inline void from_json(const json & j, New& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("printf") != j.end() && !j.at("printf").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_printf(j.at("printf").get<int64_t>());
+        if (j.find("new") != j.end() && !j.at("new").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_new_new(j.at("new").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Printf & x) {
+    inline void to_json(json & j, const New & x) {
         j = json::object();
-        j["printf"] = x.get_printf();
+        j["new"] = x.get_new_new();
     }
 
-    inline void from_json(const json & j, Protocol& x) {
+    inline void from_json(const json & j, Noexcept& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Protocol") != j.end() && !j.at("Protocol").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_protocol(j.at("Protocol").get<int64_t>());
+        if (j.find("noexcept") != j.end() && !j.at("noexcept").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_noexcept_noexcept(j.at("noexcept").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Protocol & x) {
+    inline void to_json(json & j, const Noexcept & x) {
         j = json::object();
-        j["Protocol"] = x.get_protocol();
+        j["noexcept"] = x.get_noexcept_noexcept();
     }
 
-    inline void from_json(const json & j, SerializerProvider& x) {
+    inline void from_json(const json & j, NoneClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("SerializerProvider") != j.end() && !j.at("SerializerProvider").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_serializer_provider(j.at("SerializerProvider").get<int64_t>());
+        if (j.find("none") != j.end() && !j.at("none").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_none(j.at("none").get<int64_t>());
     }
 
-    inline void to_json(json & j, const SerializerProvider & x) {
+    inline void to_json(json & j, const NoneClass & x) {
         j = json::object();
-        j["SerializerProvider"] = x.get_serializer_provider();
+        j["none"] = x.get_none();
     }
 
-    inline void from_json(const json & j, SimpleModule& x) {
+    inline void from_json(const json & j, Not& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("SimpleModule") != j.end() && !j.at("SimpleModule").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_simple_module(j.at("SimpleModule").get<int64_t>());
+        if (j.find("not") != j.end() && !j.at("not").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_not_not(j.at("not").get<int64_t>());
     }
 
-    inline void to_json(json & j, const SimpleModule & x) {
+    inline void to_json(json & j, const Not & x) {
         j = json::object();
-        j["SimpleModule"] = x.get_simple_module();
+        j["not"] = x.get_not_not();
     }
 
-    inline void from_json(const json & j, StdDeserializer& x) {
+    inline void from_json(const json & j, NotEq& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("StdDeserializer") != j.end() && !j.at("StdDeserializer").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_std_deserializer(j.at("StdDeserializer").get<int64_t>());
+        if (j.find("not_eq") != j.end() && !j.at("not_eq").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_not_eq_not_eq(j.at("not_eq").get<int64_t>());
     }
 
-    inline void to_json(json & j, const StdDeserializer & x) {
+    inline void to_json(json & j, const NotEq & x) {
         j = json::object();
-        j["StdDeserializer"] = x.get_std_deserializer();
+        j["not_eq"] = x.get_not_eq_not_eq();
     }
 
-    inline void from_json(const json & j, StdSerializer& x) {
+    inline void from_json(const json & j, NullClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("StdSerializer") != j.end() && !j.at("StdSerializer").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_std_serializer(j.at("StdSerializer").get<int64_t>());
+        if (j.find("null") != j.end() && !j.at("null").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_null(j.at("null").get<int64_t>());
     }
 
-    inline void to_json(json & j, const StdSerializer & x) {
+    inline void to_json(json & j, const NullClass & x) {
         j = json::object();
-        j["StdSerializer"] = x.get_std_serializer();
+        j["null"] = x.get_null();
     }
 
     inline void from_json(const json & j, Obj3& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_dummy(j.at("dummy").get<int64_t>());
+        x.set_in(j.at("in").get<In>());
+        x.set_indirect(j.at("indirect").get<Indirect>());
+        x.set_infix(j.at("infix").get<Infix>());
+        x.set_init(j.at("init").get<Init>());
+        x.set_inout(j.at("inout").get<Inout>());
+        x.set_instanceof(j.at("instanceof").get<Instanceof>());
+        x.set_interface(j.at("interface").get<Interface>());
+        x.set_internal(j.at("internal").get<Internal>());
         x.set_is(j.at("is").get<Is>());
         x.set_iso_date_time_offset_converter(j.at("IsoDateTimeOffsetConverter").get<IsoDateTimeOffsetConverter>());
         x.set_iterable(j.at("iterable").get<Iterable>());
@@ -9937,7 +9582,9 @@ namespace quicktype {
         x.set_ns_error(j.at("NSError").get<NsError>());
         x.set_ns_string(j.at("NSString").get<NsString>());
         x.set_null(j.at("NULL").get<Null>());
-        x.set_number(j.at("number").get<Number>());
+        x.set_obj3_import(j.at("import").get<Import>());
+        x.set_obj3_inline(j.at("inline").get<Inline>());
+        x.set_obj3_int(j.at("int").get<Int>());
         x.set_obj3_long(j.at("long").get<Long>());
         x.set_obj3_module(j.at("module").get<Module>());
         x.set_obj3_mutable(j.at("mutable").get<Mutable>());
@@ -9948,41 +9595,19 @@ namespace quicktype {
         x.set_obj3_not(j.at("not").get<Not>());
         x.set_obj3_not_eq(j.at("not_eq").get<NotEq>());
         x.set_obj3_null(j.at("null").get<NullClass>());
-        x.set_obj3_nullptr(j.at("nullptr").get<Nullptr>());
-        x.set_obj3_operator(j.at("operator").get<Operator>());
-        x.set_obj3_or(j.at("or").get<Or>());
-        x.set_obj3_or_eq(j.at("or_eq").get<OrEq>());
-        x.set_obj3_override(j.at("override").get<Override>());
-        x.set_obj3_private(j.at("private").get<Private>());
-        x.set_obj3_protected(j.at("protected").get<Protected>());
-        x.set_obj3_protocol(j.at("protocol").get<ProtocolClass>());
-        x.set_object(j.at("object").get<Object>());
-        x.set_object_mapper(j.at("ObjectMapper").get<ObjectMapper>());
-        x.set_of(j.at("of").get<Of>());
-        x.set_oneway(j.at("oneway").get<Oneway>());
-        x.set_open(j.at("open").get<Open>());
-        x.set_optional(j.at("optional").get<Optional>());
-        x.set_out(j.at("out").get<Out>());
-        x.set_package(j.at("package").get<Package>());
-        x.set_params(j.at("params").get<Params>());
-        x.set_pass(j.at("pass").get<Pass>());
-        x.set_port(j.at("port").get<Port>());
-        x.set_postfix(j.at("postfix").get<Postfix>());
-        x.set_precedence(j.at("precedence").get<Precedence>());
-        x.set_prefix(j.at("prefix").get<Prefix>());
-        x.set_print(j.at("print").get<Print>());
-        x.set_print_members(j.at("printMembers").get<PrintMembers>());
-        x.set_printf(j.at("printf").get<Printf>());
-        x.set_protocol(j.at("Protocol").get<Protocol>());
-        x.set_serializer_provider(j.at("SerializerProvider").get<SerializerProvider>());
-        x.set_simple_module(j.at("SimpleModule").get<SimpleModule>());
-        x.set_std_deserializer(j.at("StdDeserializer").get<StdDeserializer>());
-        x.set_std_serializer(j.at("StdSerializer").get<StdSerializer>());
     }
 
     inline void to_json(json & j, const Obj3 & x) {
         j = json::object();
         j["dummy"] = x.get_dummy();
+        j["in"] = x.get_in();
+        j["indirect"] = x.get_indirect();
+        j["infix"] = x.get_infix();
+        j["init"] = x.get_init();
+        j["inout"] = x.get_inout();
+        j["instanceof"] = x.get_instanceof();
+        j["interface"] = x.get_interface();
+        j["internal"] = x.get_internal();
         j["is"] = x.get_is();
         j["IsoDateTimeOffsetConverter"] = x.get_iso_date_time_offset_converter();
         j["iterable"] = x.get_iterable();
@@ -10026,7 +9651,9 @@ namespace quicktype {
         j["NSError"] = x.get_ns_error();
         j["NSString"] = x.get_ns_string();
         j["NULL"] = x.get_null();
-        j["number"] = x.get_number();
+        j["import"] = x.get_obj3_import();
+        j["inline"] = x.get_obj3_inline();
+        j["int"] = x.get_obj3_int();
         j["long"] = x.get_obj3_long();
         j["module"] = x.get_obj3_module();
         j["mutable"] = x.get_obj3_mutable();
@@ -10037,36 +9664,105 @@ namespace quicktype {
         j["not"] = x.get_obj3_not();
         j["not_eq"] = x.get_obj3_not_eq();
         j["null"] = x.get_obj3_null();
-        j["nullptr"] = x.get_obj3_nullptr();
-        j["operator"] = x.get_obj3_operator();
-        j["or"] = x.get_obj3_or();
-        j["or_eq"] = x.get_obj3_or_eq();
-        j["override"] = x.get_obj3_override();
-        j["private"] = x.get_obj3_private();
-        j["protected"] = x.get_obj3_protected();
-        j["protocol"] = x.get_obj3_protocol();
-        j["object"] = x.get_object();
-        j["ObjectMapper"] = x.get_object_mapper();
-        j["of"] = x.get_of();
-        j["oneway"] = x.get_oneway();
-        j["open"] = x.get_open();
-        j["optional"] = x.get_optional();
-        j["out"] = x.get_out();
-        j["package"] = x.get_package();
-        j["params"] = x.get_params();
-        j["pass"] = x.get_pass();
-        j["port"] = x.get_port();
-        j["postfix"] = x.get_postfix();
-        j["precedence"] = x.get_precedence();
-        j["prefix"] = x.get_prefix();
-        j["print"] = x.get_print();
-        j["printMembers"] = x.get_print_members();
-        j["printf"] = x.get_printf();
-        j["Protocol"] = x.get_protocol();
-        j["SerializerProvider"] = x.get_serializer_provider();
-        j["SimpleModule"] = x.get_simple_module();
-        j["StdDeserializer"] = x.get_std_deserializer();
-        j["StdSerializer"] = x.get_std_serializer();
+    }
+
+    inline void from_json(const json & j, Number& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("number") != j.end() && !j.at("number").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_number(j.at("number").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Number & x) {
+        j = json::object();
+        j["number"] = x.get_number();
+    }
+
+    inline void from_json(const json & j, Nullptr& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("nullptr") != j.end() && !j.at("nullptr").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_nullptr_nullptr(j.at("nullptr").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Nullptr & x) {
+        j = json::object();
+        j["nullptr"] = x.get_nullptr_nullptr();
+    }
+
+    inline void from_json(const json & j, Operator& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("operator") != j.end() && !j.at("operator").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_operator_operator(j.at("operator").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Operator & x) {
+        j = json::object();
+        j["operator"] = x.get_operator_operator();
+    }
+
+    inline void from_json(const json & j, Or& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("or") != j.end() && !j.at("or").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_or_or(j.at("or").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Or & x) {
+        j = json::object();
+        j["or"] = x.get_or_or();
+    }
+
+    inline void from_json(const json & j, OrEq& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("or_eq") != j.end() && !j.at("or_eq").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_or_eq_or_eq(j.at("or_eq").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const OrEq & x) {
+        j = json::object();
+        j["or_eq"] = x.get_or_eq_or_eq();
+    }
+
+    inline void from_json(const json & j, Override& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("override") != j.end() && !j.at("override").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_override_override(j.at("override").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Override & x) {
+        j = json::object();
+        j["override"] = x.get_override_override();
+    }
+
+    inline void from_json(const json & j, Private& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("private") != j.end() && !j.at("private").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_private_private(j.at("private").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Private & x) {
+        j = json::object();
+        j["private"] = x.get_private_private();
+    }
+
+    inline void from_json(const json & j, Protected& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("protected") != j.end() && !j.at("protected").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_protected_protected(j.at("protected").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Protected & x) {
+        j = json::object();
+        j["protected"] = x.get_protected_protected();
+    }
+
+    inline void from_json(const json & j, ProtocolClass& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("protocol") != j.end() && !j.at("protocol").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_protocol(j.at("protocol").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const ProtocolClass & x) {
+        j = json::object();
+        j["protocol"] = x.get_protocol();
     }
 
     inline void from_json(const json & j, Public& x) {
@@ -10185,174 +9881,207 @@ namespace quicktype {
         x.set_static_assert_static_assert(j.at("static_assert").get<int64_t>());
     }
 
-    inline void to_json(json & j, const StaticAssert & x) {
+    inline void to_json(json & j, const StaticAssert & x) {
+        j = json::object();
+        j["static_assert"] = x.get_static_assert_static_assert();
+    }
+
+    inline void from_json(const json & j, Object& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("object") != j.end() && !j.at("object").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_object(j.at("object").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Object & x) {
+        j = json::object();
+        j["object"] = x.get_object();
+    }
+
+    inline void from_json(const json & j, ObjectMapper& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("ObjectMapper") != j.end() && !j.at("ObjectMapper").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_object_mapper(j.at("ObjectMapper").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const ObjectMapper & x) {
+        j = json::object();
+        j["ObjectMapper"] = x.get_object_mapper();
+    }
+
+    inline void from_json(const json & j, Of& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("of") != j.end() && !j.at("of").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_of(j.at("of").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Of & x) {
         j = json::object();
-        j["static_assert"] = x.get_static_assert_static_assert();
+        j["of"] = x.get_of();
     }
 
-    inline void from_json(const json & j, StaticCast& x) {
+    inline void from_json(const json & j, Oneway& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("static_cast") != j.end() && !j.at("static_cast").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_static_cast_static_cast(j.at("static_cast").get<int64_t>());
+        if (j.find("oneway") != j.end() && !j.at("oneway").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_oneway(j.at("oneway").get<int64_t>());
     }
 
-    inline void to_json(json & j, const StaticCast & x) {
+    inline void to_json(json & j, const Oneway & x) {
         j = json::object();
-        j["static_cast"] = x.get_static_cast_static_cast();
+        j["oneway"] = x.get_oneway();
     }
 
-    inline void from_json(const json & j, Struct& x) {
+    inline void from_json(const json & j, Open& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("struct") != j.end() && !j.at("struct").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_struct_struct(j.at("struct").get<int64_t>());
+        if (j.find("open") != j.end() && !j.at("open").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_open(j.at("open").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Struct & x) {
+    inline void to_json(json & j, const Open & x) {
         j = json::object();
-        j["struct"] = x.get_struct_struct();
+        j["open"] = x.get_open();
     }
 
-    inline void from_json(const json & j, Switch& x) {
+    inline void from_json(const json & j, Optional& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("switch") != j.end() && !j.at("switch").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_switch_switch(j.at("switch").get<int64_t>());
+        if (j.find("optional") != j.end() && !j.at("optional").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_optional(j.at("optional").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Switch & x) {
+    inline void to_json(json & j, const Optional & x) {
         j = json::object();
-        j["switch"] = x.get_switch_switch();
+        j["optional"] = x.get_optional();
     }
 
-    inline void from_json(const json & j, Synchronized& x) {
+    inline void from_json(const json & j, Out& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("synchronized") != j.end() && !j.at("synchronized").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_synchronized_synchronized(j.at("synchronized").get<int64_t>());
+        if (j.find("out") != j.end() && !j.at("out").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_out(j.at("out").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Synchronized & x) {
+    inline void to_json(json & j, const Out & x) {
         j = json::object();
-        j["synchronized"] = x.get_synchronized_synchronized();
+        j["out"] = x.get_out();
     }
 
-    inline void from_json(const json & j, Template& x) {
+    inline void from_json(const json & j, Package& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("template") != j.end() && !j.at("template").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_template_template(j.at("template").get<int64_t>());
+        if (j.find("package") != j.end() && !j.at("package").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_package(j.at("package").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Template & x) {
+    inline void to_json(json & j, const Package & x) {
         j = json::object();
-        j["template"] = x.get_template_template();
+        j["package"] = x.get_package();
     }
 
-    inline void from_json(const json & j, This& x) {
+    inline void from_json(const json & j, Params& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("this") != j.end() && !j.at("this").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_this_this(j.at("this").get<int64_t>());
+        if (j.find("params") != j.end() && !j.at("params").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_params(j.at("params").get<int64_t>());
     }
 
-    inline void to_json(json & j, const This & x) {
+    inline void to_json(json & j, const Params & x) {
         j = json::object();
-        j["this"] = x.get_this_this();
+        j["params"] = x.get_params();
     }
 
-    inline void from_json(const json & j, ThreadLocal& x) {
+    inline void from_json(const json & j, Pass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("thread_local") != j.end() && !j.at("thread_local").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_thread_local_thread_local(j.at("thread_local").get<int64_t>());
+        if (j.find("pass") != j.end() && !j.at("pass").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_pass(j.at("pass").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ThreadLocal & x) {
+    inline void to_json(json & j, const Pass & x) {
         j = json::object();
-        j["thread_local"] = x.get_thread_local_thread_local();
+        j["pass"] = x.get_pass();
     }
 
-    inline void from_json(const json & j, Throw& x) {
+    inline void from_json(const json & j, Port& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("throw") != j.end() && !j.at("throw").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_throw_throw(j.at("throw").get<int64_t>());
+        if (j.find("port") != j.end() && !j.at("port").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_port(j.at("port").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Throw & x) {
+    inline void to_json(json & j, const Port & x) {
         j = json::object();
-        j["throw"] = x.get_throw_throw();
+        j["port"] = x.get_port();
     }
 
-    inline void from_json(const json & j, True& x) {
+    inline void from_json(const json & j, Postfix& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("True") != j.end() && !j.at("True").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_true_true(j.at("True").get<int64_t>());
+        if (j.find("postfix") != j.end() && !j.at("postfix").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_postfix(j.at("postfix").get<int64_t>());
     }
 
-    inline void to_json(json & j, const True & x) {
+    inline void to_json(json & j, const Postfix & x) {
         j = json::object();
-        j["True"] = x.get_true_true();
+        j["postfix"] = x.get_postfix();
     }
 
-    inline void from_json(const json & j, Try& x) {
+    inline void from_json(const json & j, Precedence& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("try") != j.end() && !j.at("try").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_try_try(j.at("try").get<int64_t>());
+        if (j.find("precedence") != j.end() && !j.at("precedence").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_precedence(j.at("precedence").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Try & x) {
+    inline void to_json(json & j, const Precedence & x) {
         j = json::object();
-        j["try"] = x.get_try_try();
+        j["precedence"] = x.get_precedence();
     }
 
-    inline void from_json(const json & j, TypeClass& x) {
+    inline void from_json(const json & j, Prefix& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("type") != j.end() && !j.at("type").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_type(j.at("type").get<int64_t>());
+        if (j.find("prefix") != j.end() && !j.at("prefix").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_prefix(j.at("prefix").get<int64_t>());
     }
 
-    inline void to_json(json & j, const TypeClass & x) {
+    inline void to_json(json & j, const Prefix & x) {
         j = json::object();
-        j["type"] = x.get_type();
+        j["prefix"] = x.get_prefix();
     }
 
-    inline void from_json(const json & j, Typedef& x) {
+    inline void from_json(const json & j, Print& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("typedef") != j.end() && !j.at("typedef").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_typedef_typedef(j.at("typedef").get<int64_t>());
+        if (j.find("print") != j.end() && !j.at("print").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_print(j.at("print").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Typedef & x) {
+    inline void to_json(json & j, const Print & x) {
         j = json::object();
-        j["typedef"] = x.get_typedef_typedef();
+        j["print"] = x.get_print();
     }
 
-    inline void from_json(const json & j, Typeid& x) {
+    inline void from_json(const json & j, PrintMembers& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("typeid") != j.end() && !j.at("typeid").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_typeid_typeid(j.at("typeid").get<int64_t>());
+        if (j.find("printMembers") != j.end() && !j.at("printMembers").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_print_members(j.at("printMembers").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Typeid & x) {
+    inline void to_json(json & j, const PrintMembers & x) {
         j = json::object();
-        j["typeid"] = x.get_typeid_typeid();
+        j["printMembers"] = x.get_print_members();
     }
 
-    inline void from_json(const json & j, Typename& x) {
+    inline void from_json(const json & j, Printf& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("typename") != j.end() && !j.at("typename").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_typename_typename(j.at("typename").get<int64_t>());
+        if (j.find("printf") != j.end() && !j.at("printf").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_printf(j.at("printf").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Typename & x) {
+    inline void to_json(json & j, const Printf & x) {
         j = json::object();
-        j["typename"] = x.get_typename_typename();
+        j["printf"] = x.get_printf();
     }
 
-    inline void from_json(const json & j, TrueClass& x) {
+    inline void from_json(const json & j, Protocol& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("true") != j.end() && !j.at("true").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_true_true(j.at("true").get<int64_t>());
+        if (j.find("Protocol") != j.end() && !j.at("Protocol").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_protocol(j.at("Protocol").get<int64_t>());
     }
 
-    inline void to_json(json & j, const TrueClass & x) {
+    inline void to_json(json & j, const Protocol & x) {
         j = json::object();
-        j["true"] = x.get_true_true();
+        j["Protocol"] = x.get_protocol();
     }
 
     inline void from_json(const json & j, Quicktype& x) {
@@ -10522,595 +10251,790 @@ namespace quicktype {
 
     inline void from_json(const json & j, Sbyte& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("sbyte") != j.end() && !j.at("sbyte").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_sbyte(j.at("sbyte").get<int64_t>());
+        if (j.find("sbyte") != j.end() && !j.at("sbyte").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_sbyte(j.at("sbyte").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Sbyte & x) {
+        j = json::object();
+        j["sbyte"] = x.get_sbyte();
+    }
+
+    inline void from_json(const json & j, Sealed& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("sealed") != j.end() && !j.at("sealed").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_sealed(j.at("sealed").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Sealed & x) {
+        j = json::object();
+        j["sealed"] = x.get_sealed();
+    }
+
+    inline void from_json(const json & j, Sel& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("SEL") != j.end() && !j.at("SEL").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_sel(j.at("SEL").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Sel & x) {
+        j = json::object();
+        j["SEL"] = x.get_sel();
+    }
+
+    inline void from_json(const json & j, Select& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("select") != j.end() && !j.at("select").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_select(j.at("select").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Select & x) {
+        j = json::object();
+        j["select"] = x.get_select();
+    }
+
+    inline void from_json(const json & j, Self& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("Self") != j.end() && !j.at("Self").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_self(j.at("Self").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Self & x) {
+        j = json::object();
+        j["Self"] = x.get_self();
+    }
+
+    inline void from_json(const json & j, Serialize& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("serialize") != j.end() && !j.at("serialize").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_serialize(j.at("serialize").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Serialize & x) {
+        j = json::object();
+        j["serialize"] = x.get_serialize();
+    }
+
+    inline void from_json(const json & j, SerializerProvider& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("SerializerProvider") != j.end() && !j.at("SerializerProvider").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_serializer_provider(j.at("SerializerProvider").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const SerializerProvider & x) {
+        j = json::object();
+        j["SerializerProvider"] = x.get_serializer_provider();
+    }
+
+    inline void from_json(const json & j, Set& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("set") != j.end() && !j.at("set").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_set(j.at("set").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Set & x) {
+        j = json::object();
+        j["set"] = x.get_set();
+    }
+
+    inline void from_json(const json & j, SimpleModule& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("SimpleModule") != j.end() && !j.at("SimpleModule").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_simple_module(j.at("SimpleModule").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const SimpleModule & x) {
+        j = json::object();
+        j["SimpleModule"] = x.get_simple_module();
+    }
+
+    inline void from_json(const json & j, Stackalloc& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("stackalloc") != j.end() && !j.at("stackalloc").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_stackalloc(j.at("stackalloc").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Sbyte & x) {
+    inline void to_json(json & j, const Stackalloc & x) {
         j = json::object();
-        j["sbyte"] = x.get_sbyte();
+        j["stackalloc"] = x.get_stackalloc();
     }
 
-    inline void from_json(const json & j, Sealed& x) {
+    inline void from_json(const json & j, Standards& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("sealed") != j.end() && !j.at("sealed").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_sealed(j.at("sealed").get<int64_t>());
+        if (j.find("Standards") != j.end() && !j.at("Standards").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_standards(j.at("Standards").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Sealed & x) {
+    inline void to_json(json & j, const Standards & x) {
         j = json::object();
-        j["sealed"] = x.get_sealed();
+        j["Standards"] = x.get_standards();
     }
 
-    inline void from_json(const json & j, Sel& x) {
+    inline void from_json(const json & j, Obj4& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("SEL") != j.end() && !j.at("SEL").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_sel(j.at("SEL").get<int64_t>());
+        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_dummy(j.at("dummy").get<int64_t>());
+        x.set_number(j.at("number").get<Number>());
+        x.set_obj4_nullptr(j.at("nullptr").get<Nullptr>());
+        x.set_obj4_operator(j.at("operator").get<Operator>());
+        x.set_obj4_or(j.at("or").get<Or>());
+        x.set_obj4_or_eq(j.at("or_eq").get<OrEq>());
+        x.set_obj4_override(j.at("override").get<Override>());
+        x.set_obj4_private(j.at("private").get<Private>());
+        x.set_obj4_protected(j.at("protected").get<Protected>());
+        x.set_obj4_protocol(j.at("protocol").get<ProtocolClass>());
+        x.set_obj4_public(j.at("public").get<Public>());
+        x.set_obj4_register(j.at("register").get<Register>());
+        x.set_obj4_reinterpret_cast(j.at("reinterpret_cast").get<ReinterpretCast>());
+        x.set_obj4_requires(j.at("requires").get<Requires>());
+        x.set_obj4_return(j.at("return").get<Return>());
+        x.set_obj4_self(j.at("self").get<SelfClass>());
+        x.set_obj4_short(j.at("short").get<Short>());
+        x.set_obj4_signed(j.at("signed").get<Signed>());
+        x.set_obj4_sizeof(j.at("sizeof").get<Sizeof>());
+        x.set_obj4_static(j.at("static").get<Static>());
+        x.set_obj4_static_assert(j.at("static_assert").get<StaticAssert>());
+        x.set_object(j.at("object").get<Object>());
+        x.set_object_mapper(j.at("ObjectMapper").get<ObjectMapper>());
+        x.set_of(j.at("of").get<Of>());
+        x.set_oneway(j.at("oneway").get<Oneway>());
+        x.set_open(j.at("open").get<Open>());
+        x.set_optional(j.at("optional").get<Optional>());
+        x.set_out(j.at("out").get<Out>());
+        x.set_package(j.at("package").get<Package>());
+        x.set_params(j.at("params").get<Params>());
+        x.set_pass(j.at("pass").get<Pass>());
+        x.set_port(j.at("port").get<Port>());
+        x.set_postfix(j.at("postfix").get<Postfix>());
+        x.set_precedence(j.at("precedence").get<Precedence>());
+        x.set_prefix(j.at("prefix").get<Prefix>());
+        x.set_print(j.at("print").get<Print>());
+        x.set_print_members(j.at("printMembers").get<PrintMembers>());
+        x.set_printf(j.at("printf").get<Printf>());
+        x.set_protocol(j.at("Protocol").get<Protocol>());
+        x.set_quicktype(j.at("quicktype").get<Quicktype>());
+        x.set_raise(j.at("raise").get<Raise>());
+        x.set_range(j.at("range").get<Range>());
+        x.set_readonly(j.at("readonly").get<Readonly>());
+        x.set_ref(j.at("ref").get<Ref>());
+        x.set_reg_exp(j.at("RegExp").get<RegExp>());
+        x.set_repeat(j.at("repeat").get<Repeat>());
+        x.set_require(j.at("require").get<Require>());
+        x.set_required(j.at("required").get<Required>());
+        x.set_restrict(j.at("restrict").get<Restrict>());
+        x.set_retain(j.at("retain").get<Retain>());
+        x.set_rethrows(j.at("rethrows").get<Rethrows>());
+        x.set_right(j.at("right").get<Right>());
+        x.set_runtime_type(j.at("runtimeType").get<RuntimeType>());
+        x.set_s(j.at("s").get<S>());
+        x.set_sbyte(j.at("sbyte").get<Sbyte>());
+        x.set_sealed(j.at("sealed").get<Sealed>());
+        x.set_sel(j.at("SEL").get<Sel>());
+        x.set_select(j.at("select").get<Select>());
+        x.set_self(j.at("Self").get<Self>());
+        x.set_serialize(j.at("serialize").get<Serialize>());
+        x.set_serializer_provider(j.at("SerializerProvider").get<SerializerProvider>());
+        x.set_set(j.at("set").get<Set>());
+        x.set_simple_module(j.at("SimpleModule").get<SimpleModule>());
+        x.set_stackalloc(j.at("stackalloc").get<Stackalloc>());
+        x.set_standards(j.at("Standards").get<Standards>());
     }
 
-    inline void to_json(json & j, const Sel & x) {
+    inline void to_json(json & j, const Obj4 & x) {
         j = json::object();
+        j["dummy"] = x.get_dummy();
+        j["number"] = x.get_number();
+        j["nullptr"] = x.get_obj4_nullptr();
+        j["operator"] = x.get_obj4_operator();
+        j["or"] = x.get_obj4_or();
+        j["or_eq"] = x.get_obj4_or_eq();
+        j["override"] = x.get_obj4_override();
+        j["private"] = x.get_obj4_private();
+        j["protected"] = x.get_obj4_protected();
+        j["protocol"] = x.get_obj4_protocol();
+        j["public"] = x.get_obj4_public();
+        j["register"] = x.get_obj4_register();
+        j["reinterpret_cast"] = x.get_obj4_reinterpret_cast();
+        j["requires"] = x.get_obj4_requires();
+        j["return"] = x.get_obj4_return();
+        j["self"] = x.get_obj4_self();
+        j["short"] = x.get_obj4_short();
+        j["signed"] = x.get_obj4_signed();
+        j["sizeof"] = x.get_obj4_sizeof();
+        j["static"] = x.get_obj4_static();
+        j["static_assert"] = x.get_obj4_static_assert();
+        j["object"] = x.get_object();
+        j["ObjectMapper"] = x.get_object_mapper();
+        j["of"] = x.get_of();
+        j["oneway"] = x.get_oneway();
+        j["open"] = x.get_open();
+        j["optional"] = x.get_optional();
+        j["out"] = x.get_out();
+        j["package"] = x.get_package();
+        j["params"] = x.get_params();
+        j["pass"] = x.get_pass();
+        j["port"] = x.get_port();
+        j["postfix"] = x.get_postfix();
+        j["precedence"] = x.get_precedence();
+        j["prefix"] = x.get_prefix();
+        j["print"] = x.get_print();
+        j["printMembers"] = x.get_print_members();
+        j["printf"] = x.get_printf();
+        j["Protocol"] = x.get_protocol();
+        j["quicktype"] = x.get_quicktype();
+        j["raise"] = x.get_raise();
+        j["range"] = x.get_range();
+        j["readonly"] = x.get_readonly();
+        j["ref"] = x.get_ref();
+        j["RegExp"] = x.get_reg_exp();
+        j["repeat"] = x.get_repeat();
+        j["require"] = x.get_require();
+        j["required"] = x.get_required();
+        j["restrict"] = x.get_restrict();
+        j["retain"] = x.get_retain();
+        j["rethrows"] = x.get_rethrows();
+        j["right"] = x.get_right();
+        j["runtimeType"] = x.get_runtime_type();
+        j["s"] = x.get_s();
+        j["sbyte"] = x.get_sbyte();
+        j["sealed"] = x.get_sealed();
         j["SEL"] = x.get_sel();
+        j["select"] = x.get_select();
+        j["Self"] = x.get_self();
+        j["serialize"] = x.get_serialize();
+        j["SerializerProvider"] = x.get_serializer_provider();
+        j["set"] = x.get_set();
+        j["SimpleModule"] = x.get_simple_module();
+        j["stackalloc"] = x.get_stackalloc();
+        j["Standards"] = x.get_standards();
     }
 
-    inline void from_json(const json & j, Select& x) {
+    inline void from_json(const json & j, StaticCast& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("select") != j.end() && !j.at("select").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_select(j.at("select").get<int64_t>());
+        if (j.find("static_cast") != j.end() && !j.at("static_cast").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_static_cast_static_cast(j.at("static_cast").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Select & x) {
+    inline void to_json(json & j, const StaticCast & x) {
         j = json::object();
-        j["select"] = x.get_select();
+        j["static_cast"] = x.get_static_cast_static_cast();
     }
 
-    inline void from_json(const json & j, Self& x) {
+    inline void from_json(const json & j, Struct& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Self") != j.end() && !j.at("Self").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_self(j.at("Self").get<int64_t>());
+        if (j.find("struct") != j.end() && !j.at("struct").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_struct_struct(j.at("struct").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Self & x) {
+    inline void to_json(json & j, const Struct & x) {
         j = json::object();
-        j["Self"] = x.get_self();
+        j["struct"] = x.get_struct_struct();
     }
 
-    inline void from_json(const json & j, Serialize& x) {
+    inline void from_json(const json & j, Switch& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("serialize") != j.end() && !j.at("serialize").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_serialize(j.at("serialize").get<int64_t>());
+        if (j.find("switch") != j.end() && !j.at("switch").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_switch_switch(j.at("switch").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Serialize & x) {
+    inline void to_json(json & j, const Switch & x) {
         j = json::object();
-        j["serialize"] = x.get_serialize();
+        j["switch"] = x.get_switch_switch();
     }
 
-    inline void from_json(const json & j, Set& x) {
+    inline void from_json(const json & j, Synchronized& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("set") != j.end() && !j.at("set").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_set(j.at("set").get<int64_t>());
+        if (j.find("synchronized") != j.end() && !j.at("synchronized").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_synchronized_synchronized(j.at("synchronized").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Set & x) {
+    inline void to_json(json & j, const Synchronized & x) {
         j = json::object();
-        j["set"] = x.get_set();
+        j["synchronized"] = x.get_synchronized_synchronized();
     }
 
-    inline void from_json(const json & j, Stackalloc& x) {
+    inline void from_json(const json & j, Template& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("stackalloc") != j.end() && !j.at("stackalloc").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_stackalloc(j.at("stackalloc").get<int64_t>());
+        if (j.find("template") != j.end() && !j.at("template").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_template_template(j.at("template").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Stackalloc & x) {
+    inline void to_json(json & j, const Template & x) {
         j = json::object();
-        j["stackalloc"] = x.get_stackalloc();
+        j["template"] = x.get_template_template();
     }
 
-    inline void from_json(const json & j, Standards& x) {
+    inline void from_json(const json & j, This& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Standards") != j.end() && !j.at("Standards").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_standards(j.at("Standards").get<int64_t>());
+        if (j.find("this") != j.end() && !j.at("this").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_this_this(j.at("this").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Standards & x) {
+    inline void to_json(json & j, const This & x) {
         j = json::object();
-        j["Standards"] = x.get_standards();
+        j["this"] = x.get_this_this();
     }
 
-    inline void from_json(const json & j, Strictfp& x) {
+    inline void from_json(const json & j, ThreadLocal& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("strictfp") != j.end() && !j.at("strictfp").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_strictfp(j.at("strictfp").get<int64_t>());
+        if (j.find("thread_local") != j.end() && !j.at("thread_local").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_thread_local_thread_local(j.at("thread_local").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Strictfp & x) {
+    inline void to_json(json & j, const ThreadLocal & x) {
         j = json::object();
-        j["strictfp"] = x.get_strictfp();
+        j["thread_local"] = x.get_thread_local_thread_local();
     }
 
-    inline void from_json(const json & j, String& x) {
+    inline void from_json(const json & j, Throw& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("string") != j.end() && !j.at("string").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_string(j.at("string").get<int64_t>());
+        if (j.find("throw") != j.end() && !j.at("throw").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_throw_throw(j.at("throw").get<int64_t>());
     }
 
-    inline void to_json(json & j, const String & x) {
+    inline void to_json(json & j, const Throw & x) {
         j = json::object();
-        j["string"] = x.get_string();
+        j["throw"] = x.get_throw_throw();
     }
 
-    inline void from_json(const json & j, Subscript& x) {
+    inline void from_json(const json & j, True& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("subscript") != j.end() && !j.at("subscript").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_subscript(j.at("subscript").get<int64_t>());
+        if (j.find("True") != j.end() && !j.at("True").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_true_true(j.at("True").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Subscript & x) {
+    inline void to_json(json & j, const True & x) {
         j = json::object();
-        j["subscript"] = x.get_subscript();
+        j["True"] = x.get_true_true();
     }
 
-    inline void from_json(const json & j, Super& x) {
+    inline void from_json(const json & j, Try& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("super") != j.end() && !j.at("super").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_super(j.at("super").get<int64_t>());
+        if (j.find("try") != j.end() && !j.at("try").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_try_try(j.at("try").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Super & x) {
+    inline void to_json(json & j, const Try & x) {
         j = json::object();
-        j["super"] = x.get_super();
+        j["try"] = x.get_try_try();
     }
 
-    inline void from_json(const json & j, Symbol& x) {
+    inline void from_json(const json & j, TypeClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("symbol") != j.end() && !j.at("symbol").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_symbol(j.at("symbol").get<int64_t>());
+        if (j.find("type") != j.end() && !j.at("type").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_type(j.at("type").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Symbol & x) {
+    inline void to_json(json & j, const TypeClass & x) {
         j = json::object();
-        j["symbol"] = x.get_symbol();
+        j["type"] = x.get_type();
     }
 
-    inline void from_json(const json & j, System& x) {
+    inline void from_json(const json & j, Typedef& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("system") != j.end() && !j.at("system").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_system(j.at("system").get<int64_t>());
+        if (j.find("typedef") != j.end() && !j.at("typedef").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_typedef_typedef(j.at("typedef").get<int64_t>());
     }
 
-    inline void to_json(json & j, const System & x) {
+    inline void to_json(json & j, const Typedef & x) {
         j = json::object();
-        j["system"] = x.get_system();
+        j["typedef"] = x.get_typedef_typedef();
     }
 
-    inline void from_json(const json & j, Then& x) {
+    inline void from_json(const json & j, Typeid& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("then") != j.end() && !j.at("then").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_then(j.at("then").get<int64_t>());
+        if (j.find("typeid") != j.end() && !j.at("typeid").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_typeid_typeid(j.at("typeid").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Then & x) {
+    inline void to_json(json & j, const Typeid & x) {
         j = json::object();
-        j["then"] = x.get_then();
+        j["typeid"] = x.get_typeid_typeid();
     }
 
-    inline void from_json(const json & j, Throws& x) {
+    inline void from_json(const json & j, Typename& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("throws") != j.end() && !j.at("throws").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_throws(j.at("throws").get<int64_t>());
+        if (j.find("typename") != j.end() && !j.at("typename").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_typename_typename(j.at("typename").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Throws & x) {
+    inline void to_json(json & j, const Typename & x) {
         j = json::object();
-        j["throws"] = x.get_throws();
+        j["typename"] = x.get_typename_typename();
     }
 
-    inline void from_json(const json & j, TimeOnly& x) {
+    inline void from_json(const json & j, Union& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("TimeOnly") != j.end() && !j.at("TimeOnly").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_time_only(j.at("TimeOnly").get<int64_t>());
+        if (j.find("union") != j.end() && !j.at("union").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_union_union(j.at("union").get<int64_t>());
     }
 
-    inline void to_json(json & j, const TimeOnly & x) {
+    inline void to_json(json & j, const Union & x) {
         j = json::object();
-        j["TimeOnly"] = x.get_time_only();
+        j["union"] = x.get_union_union();
     }
 
-    inline void from_json(const json & j, TimeOnlyConverter& x) {
+    inline void from_json(const json & j, Unsigned& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("TimeOnlyConverter") != j.end() && !j.at("TimeOnlyConverter").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_time_only_converter(j.at("TimeOnlyConverter").get<int64_t>());
+        if (j.find("unsigned") != j.end() && !j.at("unsigned").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_unsigned_unsigned(j.at("unsigned").get<int64_t>());
     }
 
-    inline void to_json(json & j, const TimeOnlyConverter & x) {
+    inline void to_json(json & j, const Unsigned & x) {
         j = json::object();
-        j["TimeOnlyConverter"] = x.get_time_only_converter();
+        j["unsigned"] = x.get_unsigned_unsigned();
     }
 
-    inline void from_json(const json & j, ToJson& x) {
+    inline void from_json(const json & j, Using& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("to_json") != j.end() && !j.at("to_json").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_to_json(j.at("to_json").get<int64_t>());
+        if (j.find("using") != j.end() && !j.at("using").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_using_using(j.at("using").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ToJson & x) {
+    inline void to_json(json & j, const Using & x) {
         j = json::object();
-        j["to_json"] = x.get_to_json();
+        j["using"] = x.get_using_using();
     }
 
-    inline void from_json(const json & j, ToString& x) {
+    inline void from_json(const json & j, Virtual& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("toString") != j.end() && !j.at("toString").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_to_string(j.at("toString").get<int64_t>());
+        if (j.find("virtual") != j.end() && !j.at("virtual").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_virtual_virtual(j.at("virtual").get<int64_t>());
     }
 
-    inline void to_json(json & j, const ToString & x) {
+    inline void to_json(json & j, const Virtual & x) {
         j = json::object();
-        j["toString"] = x.get_to_string();
+        j["virtual"] = x.get_virtual_virtual();
     }
 
-    inline void from_json(const json & j, TopLevelClass& x) {
+    inline void from_json(const json & j, Void& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("top_level") != j.end() && !j.at("top_level").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_top_level(j.at("top_level").get<int64_t>());
+        if (j.find("void") != j.end() && !j.at("void").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_void_void(j.at("void").get<int64_t>());
     }
 
-    inline void to_json(json & j, const TopLevelClass & x) {
+    inline void to_json(json & j, const Void & x) {
         j = json::object();
-        j["top_level"] = x.get_top_level();
+        j["void"] = x.get_void_void();
     }
 
-    inline void from_json(const json & j, Transient& x) {
+    inline void from_json(const json & j, Volatile& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("transient") != j.end() && !j.at("transient").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_transient(j.at("transient").get<int64_t>());
+        if (j.find("volatile") != j.end() && !j.at("volatile").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_volatile_volatile(j.at("volatile").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Transient & x) {
+    inline void to_json(json & j, const Volatile & x) {
         j = json::object();
-        j["transient"] = x.get_transient();
+        j["volatile"] = x.get_volatile_volatile();
     }
 
-    inline void from_json(const json & j, Type& x) {
+    inline void from_json(const json & j, WcharT& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Type") != j.end() && !j.at("Type").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_type(j.at("Type").get<int64_t>());
+        if (j.find("wchar_t") != j.end() && !j.at("wchar_t").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_wchar_t_wchar_t(j.at("wchar_t").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Type & x) {
+    inline void to_json(json & j, const WcharT & x) {
         j = json::object();
-        j["Type"] = x.get_type();
+        j["wchar_t"] = x.get_wchar_t_wchar_t();
     }
 
-    inline void from_json(const json & j, Typealias& x) {
+    inline void from_json(const json & j, While& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("typealias") != j.end() && !j.at("typealias").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_typealias(j.at("typealias").get<int64_t>());
+        if (j.find("while") != j.end() && !j.at("while").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_while_while(j.at("while").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Typealias & x) {
+    inline void to_json(json & j, const While & x) {
         j = json::object();
-        j["typealias"] = x.get_typealias();
+        j["while"] = x.get_while_while();
     }
 
-    inline void from_json(const json & j, Typeof& x) {
+    inline void from_json(const json & j, Xor& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("typeof") != j.end() && !j.at("typeof").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_typeof(j.at("typeof").get<int64_t>());
+        if (j.find("xor") != j.end() && !j.at("xor").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_xor_xor(j.at("xor").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Typeof & x) {
+    inline void to_json(json & j, const Xor & x) {
         j = json::object();
-        j["typeof"] = x.get_typeof();
+        j["xor"] = x.get_xor_xor();
     }
 
-    inline void from_json(const json & j, Uint& x) {
+    inline void from_json(const json & j, XorEq& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("uint") != j.end() && !j.at("uint").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_uint(j.at("uint").get<int64_t>());
+        if (j.find("xor_eq") != j.end() && !j.at("xor_eq").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_xor_eq_xor_eq(j.at("xor_eq").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Uint & x) {
+    inline void to_json(json & j, const XorEq & x) {
         j = json::object();
-        j["uint"] = x.get_uint();
+        j["xor_eq"] = x.get_xor_eq_xor_eq();
     }
 
-    inline void from_json(const json & j, Ulong& x) {
+    inline void from_json(const json & j, TrueClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("ulong") != j.end() && !j.at("ulong").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_ulong(j.at("ulong").get<int64_t>());
+        if (j.find("true") != j.end() && !j.at("true").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_true_true(j.at("true").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Ulong & x) {
+    inline void to_json(json & j, const TrueClass & x) {
         j = json::object();
-        j["ulong"] = x.get_ulong();
+        j["true"] = x.get_true_true();
     }
 
-    inline void from_json(const json & j, Unchecked& x) {
+    inline void from_json(const json & j, StdDeserializer& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("unchecked") != j.end() && !j.at("unchecked").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_unchecked(j.at("unchecked").get<int64_t>());
+        if (j.find("StdDeserializer") != j.end() && !j.at("StdDeserializer").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_std_deserializer(j.at("StdDeserializer").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Unchecked & x) {
+    inline void to_json(json & j, const StdDeserializer & x) {
         j = json::object();
-        j["unchecked"] = x.get_unchecked();
+        j["StdDeserializer"] = x.get_std_deserializer();
     }
 
-    inline void from_json(const json & j, Undefined& x) {
+    inline void from_json(const json & j, StdSerializer& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("undefined") != j.end() && !j.at("undefined").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_undefined(j.at("undefined").get<int64_t>());
+        if (j.find("StdSerializer") != j.end() && !j.at("StdSerializer").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_std_serializer(j.at("StdSerializer").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Undefined & x) {
+    inline void to_json(json & j, const StdSerializer & x) {
         j = json::object();
-        j["undefined"] = x.get_undefined();
+        j["StdSerializer"] = x.get_std_serializer();
     }
 
-    inline void from_json(const json & j, Obj4& x) {
+    inline void from_json(const json & j, Strictfp& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_dummy(j.at("dummy").get<int64_t>());
-        x.set_obj4_public(j.at("public").get<Public>());
-        x.set_obj4_register(j.at("register").get<Register>());
-        x.set_obj4_reinterpret_cast(j.at("reinterpret_cast").get<ReinterpretCast>());
-        x.set_obj4_requires(j.at("requires").get<Requires>());
-        x.set_obj4_return(j.at("return").get<Return>());
-        x.set_obj4_self(j.at("self").get<SelfClass>());
-        x.set_obj4_short(j.at("short").get<Short>());
-        x.set_obj4_signed(j.at("signed").get<Signed>());
-        x.set_obj4_sizeof(j.at("sizeof").get<Sizeof>());
-        x.set_obj4_static(j.at("static").get<Static>());
-        x.set_obj4_static_assert(j.at("static_assert").get<StaticAssert>());
-        x.set_obj4_static_cast(j.at("static_cast").get<StaticCast>());
-        x.set_obj4_struct(j.at("struct").get<Struct>());
-        x.set_obj4_switch(j.at("switch").get<Switch>());
-        x.set_obj4_synchronized(j.at("synchronized").get<Synchronized>());
-        x.set_obj4_template(j.at("template").get<Template>());
-        x.set_obj4_this(j.at("this").get<This>());
-        x.set_obj4_thread_local(j.at("thread_local").get<ThreadLocal>());
-        x.set_obj4_throw(j.at("throw").get<Throw>());
-        x.set_obj4_true(j.at("True").get<True>());
-        x.set_obj4_try(j.at("try").get<Try>());
-        x.set_obj4_type(j.at("type").get<TypeClass>());
-        x.set_obj4_typedef(j.at("typedef").get<Typedef>());
-        x.set_obj4_typeid(j.at("typeid").get<Typeid>());
-        x.set_obj4_typename(j.at("typename").get<Typename>());
-        x.set_purple_true(j.at("true").get<TrueClass>());
-        x.set_quicktype(j.at("quicktype").get<Quicktype>());
-        x.set_raise(j.at("raise").get<Raise>());
-        x.set_range(j.at("range").get<Range>());
-        x.set_readonly(j.at("readonly").get<Readonly>());
-        x.set_ref(j.at("ref").get<Ref>());
-        x.set_reg_exp(j.at("RegExp").get<RegExp>());
-        x.set_repeat(j.at("repeat").get<Repeat>());
-        x.set_require(j.at("require").get<Require>());
-        x.set_required(j.at("required").get<Required>());
-        x.set_restrict(j.at("restrict").get<Restrict>());
-        x.set_retain(j.at("retain").get<Retain>());
-        x.set_rethrows(j.at("rethrows").get<Rethrows>());
-        x.set_right(j.at("right").get<Right>());
-        x.set_runtime_type(j.at("runtimeType").get<RuntimeType>());
-        x.set_s(j.at("s").get<S>());
-        x.set_sbyte(j.at("sbyte").get<Sbyte>());
-        x.set_sealed(j.at("sealed").get<Sealed>());
-        x.set_sel(j.at("SEL").get<Sel>());
-        x.set_select(j.at("select").get<Select>());
-        x.set_self(j.at("Self").get<Self>());
-        x.set_serialize(j.at("serialize").get<Serialize>());
-        x.set_set(j.at("set").get<Set>());
-        x.set_stackalloc(j.at("stackalloc").get<Stackalloc>());
-        x.set_standards(j.at("Standards").get<Standards>());
-        x.set_strictfp(j.at("strictfp").get<Strictfp>());
-        x.set_string(j.at("string").get<String>());
-        x.set_subscript(j.at("subscript").get<Subscript>());
-        x.set_super(j.at("super").get<Super>());
-        x.set_symbol(j.at("symbol").get<Symbol>());
-        x.set_system(j.at("system").get<System>());
-        x.set_then(j.at("then").get<Then>());
-        x.set_throws(j.at("throws").get<Throws>());
-        x.set_time_only(j.at("TimeOnly").get<TimeOnly>());
-        x.set_time_only_converter(j.at("TimeOnlyConverter").get<TimeOnlyConverter>());
-        x.set_to_json(j.at("to_json").get<ToJson>());
-        x.set_to_string(j.at("toString").get<ToString>());
-        x.set_top_level(j.at("top_level").get<TopLevelClass>());
-        x.set_transient(j.at("transient").get<Transient>());
-        x.set_type(j.at("Type").get<Type>());
-        x.set_typealias(j.at("typealias").get<Typealias>());
-        x.set_typeof(j.at("typeof").get<Typeof>());
-        x.set_uint(j.at("uint").get<Uint>());
-        x.set_ulong(j.at("ulong").get<Ulong>());
-        x.set_unchecked(j.at("unchecked").get<Unchecked>());
-        x.set_undefined(j.at("undefined").get<Undefined>());
+        if (j.find("strictfp") != j.end() && !j.at("strictfp").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_strictfp(j.at("strictfp").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Obj4 & x) {
+    inline void to_json(json & j, const Strictfp & x) {
         j = json::object();
-        j["dummy"] = x.get_dummy();
-        j["public"] = x.get_obj4_public();
-        j["register"] = x.get_obj4_register();
-        j["reinterpret_cast"] = x.get_obj4_reinterpret_cast();
-        j["requires"] = x.get_obj4_requires();
-        j["return"] = x.get_obj4_return();
-        j["self"] = x.get_obj4_self();
-        j["short"] = x.get_obj4_short();
-        j["signed"] = x.get_obj4_signed();
-        j["sizeof"] = x.get_obj4_sizeof();
-        j["static"] = x.get_obj4_static();
-        j["static_assert"] = x.get_obj4_static_assert();
-        j["static_cast"] = x.get_obj4_static_cast();
-        j["struct"] = x.get_obj4_struct();
-        j["switch"] = x.get_obj4_switch();
-        j["synchronized"] = x.get_obj4_synchronized();
-        j["template"] = x.get_obj4_template();
-        j["this"] = x.get_obj4_this();
-        j["thread_local"] = x.get_obj4_thread_local();
-        j["throw"] = x.get_obj4_throw();
-        j["True"] = x.get_obj4_true();
-        j["try"] = x.get_obj4_try();
-        j["type"] = x.get_obj4_type();
-        j["typedef"] = x.get_obj4_typedef();
-        j["typeid"] = x.get_obj4_typeid();
-        j["typename"] = x.get_obj4_typename();
-        j["true"] = x.get_purple_true();
-        j["quicktype"] = x.get_quicktype();
-        j["raise"] = x.get_raise();
-        j["range"] = x.get_range();
-        j["readonly"] = x.get_readonly();
-        j["ref"] = x.get_ref();
-        j["RegExp"] = x.get_reg_exp();
-        j["repeat"] = x.get_repeat();
-        j["require"] = x.get_require();
-        j["required"] = x.get_required();
-        j["restrict"] = x.get_restrict();
-        j["retain"] = x.get_retain();
-        j["rethrows"] = x.get_rethrows();
-        j["right"] = x.get_right();
-        j["runtimeType"] = x.get_runtime_type();
-        j["s"] = x.get_s();
-        j["sbyte"] = x.get_sbyte();
-        j["sealed"] = x.get_sealed();
-        j["SEL"] = x.get_sel();
-        j["select"] = x.get_select();
-        j["Self"] = x.get_self();
-        j["serialize"] = x.get_serialize();
-        j["set"] = x.get_set();
-        j["stackalloc"] = x.get_stackalloc();
-        j["Standards"] = x.get_standards();
         j["strictfp"] = x.get_strictfp();
+    }
+
+    inline void from_json(const json & j, String& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("string") != j.end() && !j.at("string").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_string(j.at("string").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const String & x) {
+        j = json::object();
         j["string"] = x.get_string();
+    }
+
+    inline void from_json(const json & j, Subscript& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("subscript") != j.end() && !j.at("subscript").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_subscript(j.at("subscript").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Subscript & x) {
+        j = json::object();
         j["subscript"] = x.get_subscript();
+    }
+
+    inline void from_json(const json & j, Super& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("super") != j.end() && !j.at("super").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_super(j.at("super").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Super & x) {
+        j = json::object();
         j["super"] = x.get_super();
+    }
+
+    inline void from_json(const json & j, Symbol& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("symbol") != j.end() && !j.at("symbol").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_symbol(j.at("symbol").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Symbol & x) {
+        j = json::object();
         j["symbol"] = x.get_symbol();
+    }
+
+    inline void from_json(const json & j, System& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("system") != j.end() && !j.at("system").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_system(j.at("system").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const System & x) {
+        j = json::object();
         j["system"] = x.get_system();
+    }
+
+    inline void from_json(const json & j, Then& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("then") != j.end() && !j.at("then").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_then(j.at("then").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Then & x) {
+        j = json::object();
         j["then"] = x.get_then();
+    }
+
+    inline void from_json(const json & j, Throws& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("throws") != j.end() && !j.at("throws").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_throws(j.at("throws").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const Throws & x) {
+        j = json::object();
         j["throws"] = x.get_throws();
+    }
+
+    inline void from_json(const json & j, TimeOnly& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("TimeOnly") != j.end() && !j.at("TimeOnly").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_time_only(j.at("TimeOnly").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const TimeOnly & x) {
+        j = json::object();
         j["TimeOnly"] = x.get_time_only();
+    }
+
+    inline void from_json(const json & j, TimeOnlyConverter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("TimeOnlyConverter") != j.end() && !j.at("TimeOnlyConverter").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_time_only_converter(j.at("TimeOnlyConverter").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const TimeOnlyConverter & x) {
+        j = json::object();
         j["TimeOnlyConverter"] = x.get_time_only_converter();
+    }
+
+    inline void from_json(const json & j, ToJson& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        if (j.find("to_json") != j.end() && !j.at("to_json").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_to_json(j.at("to_json").get<int64_t>());
+    }
+
+    inline void to_json(json & j, const ToJson & x) {
+        j = json::object();
         j["to_json"] = x.get_to_json();
-        j["toString"] = x.get_to_string();
-        j["top_level"] = x.get_top_level();
-        j["transient"] = x.get_transient();
-        j["Type"] = x.get_type();
-        j["typealias"] = x.get_typealias();
-        j["typeof"] = x.get_typeof();
-        j["uint"] = x.get_uint();
-        j["ulong"] = x.get_ulong();
-        j["unchecked"] = x.get_unchecked();
-        j["undefined"] = x.get_undefined();
     }
 
-    inline void from_json(const json & j, Union& x) {
+    inline void from_json(const json & j, ToString& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("union") != j.end() && !j.at("union").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_union_union(j.at("union").get<int64_t>());
+        if (j.find("toString") != j.end() && !j.at("toString").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_to_string(j.at("toString").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Union & x) {
+    inline void to_json(json & j, const ToString & x) {
         j = json::object();
-        j["union"] = x.get_union_union();
+        j["toString"] = x.get_to_string();
     }
 
-    inline void from_json(const json & j, Unsigned& x) {
+    inline void from_json(const json & j, TopLevelClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("unsigned") != j.end() && !j.at("unsigned").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_unsigned_unsigned(j.at("unsigned").get<int64_t>());
+        if (j.find("top_level") != j.end() && !j.at("top_level").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_top_level(j.at("top_level").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Unsigned & x) {
+    inline void to_json(json & j, const TopLevelClass & x) {
         j = json::object();
-        j["unsigned"] = x.get_unsigned_unsigned();
+        j["top_level"] = x.get_top_level();
     }
 
-    inline void from_json(const json & j, Using& x) {
+    inline void from_json(const json & j, Transient& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("using") != j.end() && !j.at("using").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_using_using(j.at("using").get<int64_t>());
+        if (j.find("transient") != j.end() && !j.at("transient").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_transient(j.at("transient").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Using & x) {
+    inline void to_json(json & j, const Transient & x) {
         j = json::object();
-        j["using"] = x.get_using_using();
+        j["transient"] = x.get_transient();
     }
 
-    inline void from_json(const json & j, Virtual& x) {
+    inline void from_json(const json & j, Type& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("virtual") != j.end() && !j.at("virtual").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_virtual_virtual(j.at("virtual").get<int64_t>());
+        if (j.find("Type") != j.end() && !j.at("Type").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_type(j.at("Type").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Virtual & x) {
+    inline void to_json(json & j, const Type & x) {
         j = json::object();
-        j["virtual"] = x.get_virtual_virtual();
+        j["Type"] = x.get_type();
     }
 
-    inline void from_json(const json & j, Void& x) {
+    inline void from_json(const json & j, Typealias& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("void") != j.end() && !j.at("void").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_void_void(j.at("void").get<int64_t>());
+        if (j.find("typealias") != j.end() && !j.at("typealias").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_typealias(j.at("typealias").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Void & x) {
+    inline void to_json(json & j, const Typealias & x) {
         j = json::object();
-        j["void"] = x.get_void_void();
+        j["typealias"] = x.get_typealias();
     }
 
-    inline void from_json(const json & j, Volatile& x) {
+    inline void from_json(const json & j, Typeof& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("volatile") != j.end() && !j.at("volatile").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_volatile_volatile(j.at("volatile").get<int64_t>());
+        if (j.find("typeof") != j.end() && !j.at("typeof").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_typeof(j.at("typeof").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Volatile & x) {
+    inline void to_json(json & j, const Typeof & x) {
         j = json::object();
-        j["volatile"] = x.get_volatile_volatile();
+        j["typeof"] = x.get_typeof();
     }
 
-    inline void from_json(const json & j, WcharT& x) {
+    inline void from_json(const json & j, Uint& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("wchar_t") != j.end() && !j.at("wchar_t").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_wchar_t_wchar_t(j.at("wchar_t").get<int64_t>());
+        if (j.find("uint") != j.end() && !j.at("uint").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_uint(j.at("uint").get<int64_t>());
     }
 
-    inline void to_json(json & j, const WcharT & x) {
+    inline void to_json(json & j, const Uint & x) {
         j = json::object();
-        j["wchar_t"] = x.get_wchar_t_wchar_t();
+        j["uint"] = x.get_uint();
     }
 
-    inline void from_json(const json & j, While& x) {
+    inline void from_json(const json & j, Ulong& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("while") != j.end() && !j.at("while").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_while_while(j.at("while").get<int64_t>());
+        if (j.find("ulong") != j.end() && !j.at("ulong").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_ulong(j.at("ulong").get<int64_t>());
     }
 
-    inline void to_json(json & j, const While & x) {
+    inline void to_json(json & j, const Ulong & x) {
         j = json::object();
-        j["while"] = x.get_while_while();
+        j["ulong"] = x.get_ulong();
     }
 
-    inline void from_json(const json & j, Xor& x) {
+    inline void from_json(const json & j, Unchecked& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("xor") != j.end() && !j.at("xor").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_xor_xor(j.at("xor").get<int64_t>());
+        if (j.find("unchecked") != j.end() && !j.at("unchecked").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_unchecked(j.at("unchecked").get<int64_t>());
     }
 
-    inline void to_json(json & j, const Xor & x) {
+    inline void to_json(json & j, const Unchecked & x) {
         j = json::object();
-        j["xor"] = x.get_xor_xor();
+        j["unchecked"] = x.get_unchecked();
     }
 
-    inline void from_json(const json & j, XorEq& x) {
+    inline void from_json(const json & j, Undefined& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("xor_eq") != j.end() && !j.at("xor_eq").is_number_integer()) throw std::runtime_error("Expected integer");
-        x.set_xor_eq_xor_eq(j.at("xor_eq").get<int64_t>());
+        if (j.find("undefined") != j.end() && !j.at("undefined").is_number_integer()) throw std::runtime_error("Expected integer");
+        x.set_undefined(j.at("undefined").get<int64_t>());
     }
 
-    inline void to_json(json & j, const XorEq & x) {
+    inline void to_json(json & j, const Undefined & x) {
         j = json::object();
-        j["xor_eq"] = x.get_xor_eq_xor_eq();
+        j["undefined"] = x.get_undefined();
     }
 
     inline void from_json(const json & j, Unowned& x) {
@@ -11260,6 +11184,20 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("dummy") != j.end() && !j.at("dummy").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_dummy(j.at("dummy").get<int64_t>());
+        x.set_obj5_static_cast(j.at("static_cast").get<StaticCast>());
+        x.set_obj5_struct(j.at("struct").get<Struct>());
+        x.set_obj5_switch(j.at("switch").get<Switch>());
+        x.set_obj5_synchronized(j.at("synchronized").get<Synchronized>());
+        x.set_obj5_template(j.at("template").get<Template>());
+        x.set_obj5_this(j.at("this").get<This>());
+        x.set_obj5_thread_local(j.at("thread_local").get<ThreadLocal>());
+        x.set_obj5_throw(j.at("throw").get<Throw>());
+        x.set_obj5_true(j.at("True").get<True>());
+        x.set_obj5_try(j.at("try").get<Try>());
+        x.set_obj5_type(j.at("type").get<TypeClass>());
+        x.set_obj5_typedef(j.at("typedef").get<Typedef>());
+        x.set_obj5_typeid(j.at("typeid").get<Typeid>());
+        x.set_obj5_typename(j.at("typename").get<Typename>());
         x.set_obj5_union(j.at("union").get<Union>());
         x.set_obj5_unsigned(j.at("unsigned").get<Unsigned>());
         x.set_obj5_using(j.at("using").get<Using>());
@@ -11270,6 +11208,30 @@ namespace quicktype {
         x.set_obj5_while(j.at("while").get<While>());
         x.set_obj5_xor(j.at("xor").get<Xor>());
         x.set_obj5_xor_eq(j.at("xor_eq").get<XorEq>());
+        x.set_purple_true(j.at("true").get<TrueClass>());
+        x.set_std_deserializer(j.at("StdDeserializer").get<StdDeserializer>());
+        x.set_std_serializer(j.at("StdSerializer").get<StdSerializer>());
+        x.set_strictfp(j.at("strictfp").get<Strictfp>());
+        x.set_string(j.at("string").get<String>());
+        x.set_subscript(j.at("subscript").get<Subscript>());
+        x.set_super(j.at("super").get<Super>());
+        x.set_symbol(j.at("symbol").get<Symbol>());
+        x.set_system(j.at("system").get<System>());
+        x.set_then(j.at("then").get<Then>());
+        x.set_throws(j.at("throws").get<Throws>());
+        x.set_time_only(j.at("TimeOnly").get<TimeOnly>());
+        x.set_time_only_converter(j.at("TimeOnlyConverter").get<TimeOnlyConverter>());
+        x.set_to_json(j.at("to_json").get<ToJson>());
+        x.set_to_string(j.at("toString").get<ToString>());
+        x.set_top_level(j.at("top_level").get<TopLevelClass>());
+        x.set_transient(j.at("transient").get<Transient>());
+        x.set_type(j.at("Type").get<Type>());
+        x.set_typealias(j.at("typealias").get<Typealias>());
+        x.set_typeof(j.at("typeof").get<Typeof>());
+        x.set_uint(j.at("uint").get<Uint>());
+        x.set_ulong(j.at("ulong").get<Ulong>());
+        x.set_unchecked(j.at("unchecked").get<Unchecked>());
+        x.set_undefined(j.at("undefined").get<Undefined>());
         x.set_unowned(j.at("unowned").get<Unowned>());
         x.set_unsafe(j.at("unsafe").get<Unsafe>());
         x.set_ushort(j.at("ushort").get<Ushort>());
@@ -11288,6 +11250,20 @@ namespace quicktype {
     inline void to_json(json & j, const Obj5 & x) {
         j = json::object();
         j["dummy"] = x.get_dummy();
+        j["static_cast"] = x.get_obj5_static_cast();
+        j["struct"] = x.get_obj5_struct();
+        j["switch"] = x.get_obj5_switch();
+        j["synchronized"] = x.get_obj5_synchronized();
+        j["template"] = x.get_obj5_template();
+        j["this"] = x.get_obj5_this();
+        j["thread_local"] = x.get_obj5_thread_local();
+        j["throw"] = x.get_obj5_throw();
+        j["True"] = x.get_obj5_true();
+        j["try"] = x.get_obj5_try();
+        j["type"] = x.get_obj5_type();
+        j["typedef"] = x.get_obj5_typedef();
+        j["typeid"] = x.get_obj5_typeid();
+        j["typename"] = x.get_obj5_typename();
         j["union"] = x.get_obj5_union();
         j["unsigned"] = x.get_obj5_unsigned();
         j["using"] = x.get_obj5_using();
@@ -11298,6 +11274,30 @@ namespace quicktype {
         j["while"] = x.get_obj5_while();
         j["xor"] = x.get_obj5_xor();
         j["xor_eq"] = x.get_obj5_xor_eq();
+        j["true"] = x.get_purple_true();
+        j["StdDeserializer"] = x.get_std_deserializer();
+        j["StdSerializer"] = x.get_std_serializer();
+        j["strictfp"] = x.get_strictfp();
+        j["string"] = x.get_string();
+        j["subscript"] = x.get_subscript();
+        j["super"] = x.get_super();
+        j["symbol"] = x.get_symbol();
+        j["system"] = x.get_system();
+        j["then"] = x.get_then();
+        j["throws"] = x.get_throws();
+        j["TimeOnly"] = x.get_time_only();
+        j["TimeOnlyConverter"] = x.get_time_only_converter();
+        j["to_json"] = x.get_to_json();
+        j["toString"] = x.get_to_string();
+        j["top_level"] = x.get_top_level();
+        j["transient"] = x.get_transient();
+        j["Type"] = x.get_type();
+        j["typealias"] = x.get_typealias();
+        j["typeof"] = x.get_typeof();
+        j["uint"] = x.get_uint();
+        j["ulong"] = x.get_ulong();
+        j["unchecked"] = x.get_unchecked();
+        j["undefined"] = x.get_undefined();
         j["unowned"] = x.get_unowned();
         j["unsafe"] = x.get_unsafe();
         j["ushort"] = x.get_ushort();
diff --git a/base/crystal/test/inputs/json/priority/keywords.json/default/TopLevel.cr b/head/crystal/test/inputs/json/priority/keywords.json/default/TopLevel.cr
index 620c39c..6c06df3 100644
--- a/base/crystal/test/inputs/json/priority/keywords.json/default/TopLevel.cr
+++ b/head/crystal/test/inputs/json/priority/keywords.json/default/TopLevel.cr
@@ -130,22 +130,6 @@ class Obj1
 
   property date_parse_handling : DateParseHandling
 
-  @[JSON::Field(key: "DateTime")]
-  property date_time : DateTime
-
-  @[JSON::Field(key: "DateTimeStyles")]
-  property date_time_styles : DateTimeStyles
-
-  property debugger : Debugger
-
-  property decimal : Decimal
-
-  property declare : Declare
-
-  property decltype : Decltype
-
-  property decode_string : DecodeString
-
   property dummy : Int64
 
   @[JSON::Field(key: "_")]
@@ -504,50 +488,6 @@ class DateParseHandling
   property date_parse_handling : Int64
 end
 
-class DateTime
-  include JSON::Serializable
-
-  @[JSON::Field(key: "DateTime")]
-  property date_time : String
-end
-
-class DateTimeStyles
-  include JSON::Serializable
-
-  @[JSON::Field(key: "DateTimeStyles")]
-  property date_time_styles : Int64
-end
-
-class Debugger
-  include JSON::Serializable
-
-  property debugger : Int64
-end
-
-class Decimal
-  include JSON::Serializable
-
-  property decimal : Int64
-end
-
-class Declare
-  include JSON::Serializable
-
-  property declare : Int64
-end
-
-class Decltype
-  include JSON::Serializable
-
-  property decltype : Int64
-end
-
-class DecodeString
-  include JSON::Serializable
-
-  property decode_string : Int64
-end
-
 class Empty
   include JSON::Serializable
 
@@ -633,6 +573,22 @@ end
 class Obj2
   include JSON::Serializable
 
+  @[JSON::Field(key: "DateTime")]
+  property date_time : DateTime
+
+  @[JSON::Field(key: "DateTimeStyles")]
+  property date_time_styles : DateTimeStyles
+
+  property debugger : Debugger
+
+  property decimal : Decimal
+
+  property declare : Declare
+
+  property decltype : Decltype
+
+  property decode_string : DecodeString
+
   property default : Default
 
   property defer : Defer
@@ -740,26 +696,6 @@ class Obj2
 
   property implicit : Implicit
 
-  property import : Import
-
-  property indirect : Indirect
-
-  property infix : Infix
-
-  property init : Init
-
-  property inline : Inline
-
-  property inout : Inout
-
-  property instanceof : Instanceof
-
-  property int : IntClass
-
-  property interface : Interface
-
-  property internal : Internal
-
   @[JSON::Field(key: "def")]
   property obj2_def : Def
 
@@ -781,13 +717,54 @@ class Obj2
   @[JSON::Field(key: "if")]
   property obj2_if : If
 
-  @[JSON::Field(key: "in")]
-  property obj2_in : In
-
   @[JSON::Field(key: "false")]
   property purple_false : FalseClass
 end
 
+class DateTime
+  include JSON::Serializable
+
+  @[JSON::Field(key: "DateTime")]
+  property date_time : String
+end
+
+class DateTimeStyles
+  include JSON::Serializable
+
+  @[JSON::Field(key: "DateTimeStyles")]
+  property date_time_styles : Int64
+end
+
+class Debugger
+  include JSON::Serializable
+
+  property debugger : Int64
+end
+
+class Decimal
+  include JSON::Serializable
+
+  property decimal : Int64
+end
+
+class Declare
+  include JSON::Serializable
+
+  property declare : Int64
+end
+
+class Decltype
+  include JSON::Serializable
+
+  property decltype : Int64
+end
+
+class DecodeString
+  include JSON::Serializable
+
+  property decode_string : Int64
+end
+
 class Default
   include JSON::Serializable
 
@@ -1089,66 +1066,6 @@ class Implicit
   property implicit : Int64
 end
 
-class Import
-  include JSON::Serializable
-
-  property import : Int64
-end
-
-class Indirect
-  include JSON::Serializable
-
-  property indirect : Int64
-end
-
-class Infix
-  include JSON::Serializable
-
-  property infix : Int64
-end
-
-class Init
-  include JSON::Serializable
-
-  property init : Int64
-end
-
-class Inline
-  include JSON::Serializable
-
-  property inline : Int64
-end
-
-class Inout
-  include JSON::Serializable
-
-  property inout : Int64
-end
-
-class Instanceof
-  include JSON::Serializable
-
-  property instanceof : Int64
-end
-
-class IntClass
-  include JSON::Serializable
-
-  property int : Int64
-end
-
-class Interface
-  include JSON::Serializable
-
-  property interface : Int64
-end
-
-class Internal
-  include JSON::Serializable
-
-  property internal : Int64
-end
-
 class Def
   include JSON::Serializable
 
@@ -1198,13 +1115,6 @@ class If
   property if_if : Int64
 end
 
-class In
-  include JSON::Serializable
-
-  @[JSON::Field(key: "in")]
-  property in_in : Int64
-end
-
 class FalseClass
   include JSON::Serializable
 
@@ -1217,6 +1127,26 @@ class Obj3
 
   property dummy : Int64
 
+  property import : Import
+
+  property indirect : Indirect
+
+  property infix : Infix
+
+  property init : Init
+
+  property inline : Inline
+
+  property inout : Inout
+
+  property instanceof : Instanceof
+
+  property int : IntClass
+
+  property interface : Interface
+
+  property internal : Internal
+
   property is : Is
 
   @[JSON::Field(key: "IsoDateTimeOffsetConverter")]
@@ -1333,9 +1263,8 @@ class Obj3
   @[JSON::Field(key: "NULL")]
   property null : Null
 
-  property nullptr : Nullptr
-
-  property number : NumberClass
+  @[JSON::Field(key: "in")]
+  property obj3_in : In
 
   @[JSON::Field(key: "module")]
   property obj3_module : Module
@@ -1348,76 +1277,66 @@ class Obj3
 
   @[JSON::Field(key: "null")]
   property obj3_null : NullClass
+end
 
-  @[JSON::Field(key: "of")]
-  property obj3_of : Of
+class Import
+  include JSON::Serializable
 
-  @[JSON::Field(key: "out")]
-  property obj3_out : Out
+  property import : Int64
+end
 
-  @[JSON::Field(key: "private")]
-  property obj3_private : Private
+class Indirect
+  include JSON::Serializable
 
-  @[JSON::Field(key: "protected")]
-  property obj3_protected : Protected
+  property indirect : Int64
+end
 
-  @[JSON::Field(key: "protocol")]
-  property obj3_protocol : ProtocolClass
+class Infix
+  include JSON::Serializable
 
-  property object : ObjectClass
+  property infix : Int64
+end
 
-  @[JSON::Field(key: "ObjectMapper")]
-  property object_mapper : ObjectMapper
+class Init
+  include JSON::Serializable
 
-  property oneway : Oneway
-
-  property open : Open
-
-  property operator : Operator
-
-  property optional : Optional
-
-  property or : Or
-
-  property or_eq : OrEq
-
-  property override : Override
-
-  property package : Package
-
-  property params : Params
-
-  property pass : Pass
+  property init : Int64
+end
 
-  property port : Port
+class Inline
+  include JSON::Serializable
 
-  property postfix : Postfix
+  property inline : Int64
+end
 
-  property precedence : Precedence
+class Inout
+  include JSON::Serializable
 
-  property prefix : Prefix
+  property inout : Int64
+end
 
-  property print : Print
+class Instanceof
+  include JSON::Serializable
 
-  @[JSON::Field(key: "printMembers")]
-  property print_members : PrintMembers
+  property instanceof : Int64
+end
 
-  property printf : Printf
+class IntClass
+  include JSON::Serializable
 
-  @[JSON::Field(key: "Protocol")]
-  property protocol : Protocol
+  property int : Int64
+end
 
-  @[JSON::Field(key: "SerializerProvider")]
-  property serializer_provider : SerializerProvider
+class Interface
+  include JSON::Serializable
 
-  @[JSON::Field(key: "SimpleModule")]
-  property simple_module : SimpleModule
+  property interface : Int64
+end
 
-  @[JSON::Field(key: "StdDeserializer")]
-  property std_deserializer : StdDeserializer
+class Internal
+  include JSON::Serializable
 
-  @[JSON::Field(key: "StdSerializer")]
-  property std_serializer : StdSerializer
+  property internal : Int64
 end
 
 class Is
@@ -1732,16 +1651,11 @@ class Null
   property null : Int64
 end
 
-class Nullptr
-  include JSON::Serializable
-
-  property nullptr : Int64
-end
-
-class NumberClass
+class In
   include JSON::Serializable
 
-  property number : Int64
+  @[JSON::Field(key: "in")]
+  property in_in : Int64
 end
 
 class Module
@@ -1770,648 +1684,823 @@ class NullClass
   property null : Int64
 end
 
-class Of
+class Obj4
   include JSON::Serializable
 
-  @[JSON::Field(key: "of")]
-  property of_of : Int64
-end
+  property dummy : Int64
 
-class Out
-  include JSON::Serializable
+  property nullptr : Nullptr
 
-  @[JSON::Field(key: "out")]
-  property out_out : Int64
-end
+  property number : NumberClass
 
-class Private
-  include JSON::Serializable
+  @[JSON::Field(key: "of")]
+  property obj4_of : Of
 
-  @[JSON::Field(key: "private")]
-  property private_private : Int64
-end
+  @[JSON::Field(key: "out")]
+  property obj4_out : Out
 
-class Protected
-  include JSON::Serializable
+  @[JSON::Field(key: "private")]
+  property obj4_private : Private
 
   @[JSON::Field(key: "protected")]
-  property protected_protected : Int64
-end
+  property obj4_protected : Protected
 
-class ProtocolClass
-  include JSON::Serializable
+  @[JSON::Field(key: "protocol")]
+  property obj4_protocol : ProtocolClass
 
-  property protocol : Int64
-end
+  @[JSON::Field(key: "require")]
+  property obj4_require : Require
 
-class ObjectClass
-  include JSON::Serializable
+  @[JSON::Field(key: "return")]
+  property obj4_return : Return
 
-  property object : Int64
-end
+  @[JSON::Field(key: "select")]
+  property obj4_select : Select
 
-class ObjectMapper
-  include JSON::Serializable
+  @[JSON::Field(key: "Self")]
+  property obj4_self : Self
 
-  @[JSON::Field(key: "ObjectMapper")]
-  property object_mapper : Int64
-end
+  @[JSON::Field(key: "sizeof")]
+  property obj4_sizeof : Sizeof
 
-class Oneway
-  include JSON::Serializable
+  property object : ObjectClass
 
-  property oneway : Int64
-end
+  @[JSON::Field(key: "ObjectMapper")]
+  property object_mapper : ObjectMapper
 
-class Open
-  include JSON::Serializable
+  property oneway : Oneway
 
-  property open : Int64
-end
+  property open : Open
 
-class Operator
-  include JSON::Serializable
+  property operator : Operator
 
-  property operator : Int64
-end
+  property optional : Optional
 
-class Optional
-  include JSON::Serializable
+  property or : Or
 
-  property optional : Int64
-end
+  property or_eq : OrEq
 
-class Or
-  include JSON::Serializable
+  property override : Override
 
-  property or : Int64
-end
+  property package : Package
 
-class OrEq
-  include JSON::Serializable
+  property params : Params
 
-  property or_eq : Int64
-end
+  property pass : Pass
 
-class Override
-  include JSON::Serializable
+  property port : Port
 
-  property override : Int64
-end
+  property postfix : Postfix
 
-class Package
-  include JSON::Serializable
+  property precedence : Precedence
 
-  property package : Int64
-end
+  property prefix : Prefix
 
-class Params
-  include JSON::Serializable
+  property print : Print
 
-  property params : Int64
-end
+  @[JSON::Field(key: "printMembers")]
+  property print_members : PrintMembers
 
-class Pass
-  include JSON::Serializable
+  property printf : Printf
 
-  property pass : Int64
-end
+  @[JSON::Field(key: "Protocol")]
+  property protocol : Protocol
 
-class Port
-  include JSON::Serializable
+  property public : Public
 
-  property port : Int64
-end
+  @[JSON::Field(key: "self")]
+  property purple_self : SelfClass
 
-class Postfix
-  include JSON::Serializable
+  property quicktype : Quicktype
 
-  property postfix : Int64
-end
+  property raise : Raise
 
-class Precedence
-  include JSON::Serializable
+  property range : RangeClass
 
-  property precedence : Int64
-end
+  property readonly : Readonly
 
-class Prefix
-  include JSON::Serializable
+  property ref : Ref
 
-  property prefix : Int64
-end
+  @[JSON::Field(key: "RegExp")]
+  property reg_exp : RegExp
 
-class Print
-  include JSON::Serializable
+  property register : Register
 
-  property print : Int64
-end
+  property reinterpret_cast : ReinterpretCast
 
-class PrintMembers
-  include JSON::Serializable
+  property repeat : Repeat
 
-  @[JSON::Field(key: "printMembers")]
-  property print_members : Int64
-end
+  property required : Required
 
-class Printf
-  include JSON::Serializable
+  property requires : Requires
 
-  property printf : Int64
-end
+  property restrict : Restrict
 
-class Protocol
-  include JSON::Serializable
+  property retain : Retain
 
-  @[JSON::Field(key: "Protocol")]
-  property protocol : Int64
-end
+  property rethrows : Rethrows
 
-class SerializerProvider
-  include JSON::Serializable
+  property right : Right
 
-  @[JSON::Field(key: "SerializerProvider")]
-  property serializer_provider : Int64
-end
+  @[JSON::Field(key: "runtimeType")]
+  property runtime_type : RuntimeType
 
-class SimpleModule
-  include JSON::Serializable
+  property s : S
 
-  @[JSON::Field(key: "SimpleModule")]
-  property simple_module : Int64
-end
+  property sbyte : Sbyte
 
-class StdDeserializer
-  include JSON::Serializable
+  property sealed : Sealed
 
-  @[JSON::Field(key: "StdDeserializer")]
-  property std_deserializer : Int64
+  @[JSON::Field(key: "SEL")]
+  property sel : Sel
+
+  property serialize : Serialize
+
+  @[JSON::Field(key: "SerializerProvider")]
+  property serializer_provider : SerializerProvider
+
+  property set : SetClass
+
+  property short : Short
+
+  property signed : Signed
+
+  @[JSON::Field(key: "SimpleModule")]
+  property simple_module : SimpleModule
+
+  property stackalloc : Stackalloc
+
+  @[JSON::Field(key: "Standards")]
+  property standards : Standards
+
+  property static : Static
+
+  property static_assert : StaticAssert
 end
 
-class StdSerializer
+class Nullptr
   include JSON::Serializable
 
-  @[JSON::Field(key: "StdSerializer")]
-  property std_serializer : Int64
+  property nullptr : Int64
 end
 
-class Obj4
+class NumberClass
   include JSON::Serializable
 
-  property dummy : Int64
+  property number : Int64
+end
+
+class Of
+  include JSON::Serializable
+
+  @[JSON::Field(key: "of")]
+  property of_of : Int64
+end
+
+class Out
+  include JSON::Serializable
+
+  @[JSON::Field(key: "out")]
+  property out_out : Int64
+end
+
+class Private
+  include JSON::Serializable
+
+  @[JSON::Field(key: "private")]
+  property private_private : Int64
+end
+
+class Protected
+  include JSON::Serializable
+
+  @[JSON::Field(key: "protected")]
+  property protected_protected : Int64
+end
+
+class ProtocolClass
+  include JSON::Serializable
+
+  property protocol : Int64
+end
+
+class Require
+  include JSON::Serializable
 
   @[JSON::Field(key: "require")]
-  property obj4_require : Require
+  property require_require : Int64
+end
+
+class Return
+  include JSON::Serializable
 
   @[JSON::Field(key: "return")]
-  property obj4_return : Return
+  property return_return : Int64
+end
+
+class Select
+  include JSON::Serializable
 
   @[JSON::Field(key: "select")]
-  property obj4_select : Select
+  property select_select : Int64
+end
+
+class Self
+  include JSON::Serializable
 
   @[JSON::Field(key: "Self")]
-  property obj4_self : Self
+  property self_self : Int64
+end
+
+class Sizeof
+  include JSON::Serializable
 
   @[JSON::Field(key: "sizeof")]
-  property obj4_sizeof : Sizeof
+  property sizeof_sizeof : Int64
+end
 
-  @[JSON::Field(key: "struct")]
-  property obj4_struct : StructClass
+class ObjectClass
+  include JSON::Serializable
 
-  @[JSON::Field(key: "super")]
-  property obj4_super : Super
+  property object : Int64
+end
 
-  @[JSON::Field(key: "then")]
-  property obj4_then : Then
+class ObjectMapper
+  include JSON::Serializable
 
-  @[JSON::Field(key: "to_json")]
-  property obj4_to_json : ToJson
+  @[JSON::Field(key: "ObjectMapper")]
+  property object_mapper : Int64
+end
 
-  @[JSON::Field(key: "True")]
-  property obj4_true : True
+class Oneway
+  include JSON::Serializable
 
-  @[JSON::Field(key: "Type")]
-  property obj4_type : Type
+  property oneway : Int64
+end
 
-  @[JSON::Field(key: "typeof")]
-  property obj4_typeof : Typeof
+class Open
+  include JSON::Serializable
 
-  property public : Public
+  property open : Int64
+end
 
-  @[JSON::Field(key: "self")]
-  property purple_self : SelfClass
+class Operator
+  include JSON::Serializable
 
-  @[JSON::Field(key: "true")]
-  property purple_true : TrueClass
+  property operator : Int64
+end
 
-  @[JSON::Field(key: "type")]
-  property purple_type : TypeClass
+class Optional
+  include JSON::Serializable
 
-  property quicktype : Quicktype
+  property optional : Int64
+end
 
-  property raise : Raise
+class Or
+  include JSON::Serializable
 
-  property range : RangeClass
+  property or : Int64
+end
 
-  property readonly : Readonly
+class OrEq
+  include JSON::Serializable
 
-  property ref : Ref
+  property or_eq : Int64
+end
 
-  @[JSON::Field(key: "RegExp")]
-  property reg_exp : RegExp
+class Override
+  include JSON::Serializable
 
-  property register : Register
+  property override : Int64
+end
 
-  property reinterpret_cast : ReinterpretCast
+class Package
+  include JSON::Serializable
 
-  property repeat : Repeat
+  property package : Int64
+end
 
-  property required : Required
+class Params
+  include JSON::Serializable
 
-  property requires : Requires
+  property params : Int64
+end
 
-  property restrict : Restrict
+class Pass
+  include JSON::Serializable
 
-  property retain : Retain
+  property pass : Int64
+end
 
-  property rethrows : Rethrows
+class Port
+  include JSON::Serializable
 
-  property right : Right
+  property port : Int64
+end
 
-  @[JSON::Field(key: "runtimeType")]
-  property runtime_type : RuntimeType
+class Postfix
+  include JSON::Serializable
 
-  property s : S
+  property postfix : Int64
+end
 
-  property sbyte : Sbyte
+class Precedence
+  include JSON::Serializable
 
-  property sealed : Sealed
+  property precedence : Int64
+end
 
-  @[JSON::Field(key: "SEL")]
-  property sel : Sel
+class Prefix
+  include JSON::Serializable
 
-  property serialize : Serialize
+  property prefix : Int64
+end
 
-  property set : SetClass
+class Print
+  include JSON::Serializable
 
-  property short : Short
+  property print : Int64
+end
 
-  property signed : Signed
+class PrintMembers
+  include JSON::Serializable
 
-  property stackalloc : Stackalloc
+  @[JSON::Field(key: "printMembers")]
+  property print_members : Int64
+end
 
-  @[JSON::Field(key: "Standards")]
-  property standards : Standards
+class Printf
+  include JSON::Serializable
 
-  property static : Static
+  property printf : Int64
+end
 
-  property static_assert : StaticAssert
+class Protocol
+  include JSON::Serializable
 
-  property static_cast : StaticCast
+  @[JSON::Field(key: "Protocol")]
+  property protocol : Int64
+end
 
-  property strictfp : Strictfp
+class Public
+  include JSON::Serializable
 
-  property string : StringClass
+  property public : Int64
+end
 
-  property subscript : Subscript
+class SelfClass
+  include JSON::Serializable
 
-  property switch : Switch
+  @[JSON::Field(key: "self")]
+  property self_self : Int64
+end
 
-  property symbol : SymbolClass
+class Quicktype
+  include JSON::Serializable
 
-  property synchronized : Synchronized
+  property quicktype : Int64
+end
 
-  property system : SystemClass
+class Raise
+  include JSON::Serializable
 
-  property template : Template
+  property raise : Int64
+end
 
-  property this : This
+class RangeClass
+  include JSON::Serializable
 
-  property thread_local : ThreadLocalClass
+  property range : Int64
+end
 
-  property throw : Throw
+class Readonly
+  include JSON::Serializable
 
-  property throws : Throws
+  property readonly : Int64
+end
 
-  @[JSON::Field(key: "TimeOnly")]
-  property time_only : TimeOnly
+class Ref
+  include JSON::Serializable
 
-  @[JSON::Field(key: "TimeOnlyConverter")]
-  property time_only_converter : TimeOnlyConverter
+  property ref : Int64
+end
 
-  @[JSON::Field(key: "toString")]
-  property to_string : ToString
+class RegExp
+  include JSON::Serializable
 
-  property top_level : TopLevelClass
+  @[JSON::Field(key: "RegExp")]
+  property reg_exp : String
+end
 
-  property transient : Transient
+class Register
+  include JSON::Serializable
 
-  property try : Try
+  property register : Int64
+end
 
-  property typealias : Typealias
+class ReinterpretCast
+  include JSON::Serializable
 
-  property typedef : Typedef
+  property reinterpret_cast : Int64
+end
 
-  property typeid : Typeid
+class Repeat
+  include JSON::Serializable
 
-  property typename : Typename
+  property repeat : Int64
+end
 
-  property uint : Uint
+class Required
+  include JSON::Serializable
 
-  property ulong : Ulong
+  property required : Int64
+end
 
-  property unchecked : Unchecked
+class Requires
+  include JSON::Serializable
 
-  property undefined : Undefined
+  property requires : Int64
 end
 
-class Require
+class Restrict
   include JSON::Serializable
 
-  @[JSON::Field(key: "require")]
-  property require_require : Int64
+  property restrict : Int64
 end
 
-class Return
+class Retain
   include JSON::Serializable
 
-  @[JSON::Field(key: "return")]
-  property return_return : Int64
+  property retain : Int64
 end
 
-class Select
+class Rethrows
   include JSON::Serializable
 
-  @[JSON::Field(key: "select")]
-  property select_select : Int64
+  property rethrows : Int64
 end
 
-class Self
+class Right
   include JSON::Serializable
 
-  @[JSON::Field(key: "Self")]
-  property self_self : Int64
+  property right : Int64
 end
 
-class Sizeof
+class RuntimeType
   include JSON::Serializable
 
-  @[JSON::Field(key: "sizeof")]
-  property sizeof_sizeof : Int64
+  @[JSON::Field(key: "runtimeType")]
+  property runtime_type : Int64
 end
 
-class StructClass
+class S
   include JSON::Serializable
 
-  @[JSON::Field(key: "struct")]
-  property struct_struct : Int64
+  property s : Int64
 end
 
-class Super
+class Sbyte
   include JSON::Serializable
 
-  @[JSON::Field(key: "super")]
-  property super_super : Int64
+  property sbyte : Int64
 end
 
-class Then
+class Sealed
   include JSON::Serializable
 
-  @[JSON::Field(key: "then")]
-  property then_then : Int64
+  property sealed : Int64
 end
 
-class ToJson
+class Sel
   include JSON::Serializable
 
-  @[JSON::Field(key: "to_json")]
-  property to_json_to_json : Int64
+  @[JSON::Field(key: "SEL")]
+  property sel : Int64
 end
 
-class True
+class Serialize
   include JSON::Serializable
 
-  @[JSON::Field(key: "True")]
-  property true_true : Int64
+  property serialize : Int64
 end
 
-class Type
+class SerializerProvider
   include JSON::Serializable
 
-  @[JSON::Field(key: "Type")]
-  property type_type : Int64
+  @[JSON::Field(key: "SerializerProvider")]
+  property serializer_provider : Int64
 end
 
-class Typeof
+class SetClass
   include JSON::Serializable
 
-  @[JSON::Field(key: "typeof")]
-  property typeof_typeof : Int64
+  property set : Int64
 end
 
-class Public
+class Short
   include JSON::Serializable
 
-  property public : Int64
+  property short : Int64
 end
 
-class SelfClass
+class Signed
   include JSON::Serializable
 
-  @[JSON::Field(key: "self")]
-  property self_self : Int64
+  property signed : Int64
 end
 
-class TrueClass
+class SimpleModule
   include JSON::Serializable
 
-  @[JSON::Field(key: "true")]
-  property true_true : Int64
+  @[JSON::Field(key: "SimpleModule")]
+  property simple_module : Int64
 end
 
-class TypeClass
+class Stackalloc
   include JSON::Serializable
 
-  @[JSON::Field(key: "type")]
-  property type_type : Int64
+  property stackalloc : Int64
+end
+
+class Standards
+  include JSON::Serializable
+
+  @[JSON::Field(key: "Standards")]
+  property standards : Int64
+end
+
+class Static
+  include JSON::Serializable
+
+  property static : Int64
+end
+
+class StaticAssert
+  include JSON::Serializable
+
+  property static_assert : Int64
 end
 
-class Quicktype
-  include JSON::Serializable
+class Obj5
+  include JSON::Serializable
+
+  property dummy : Int64
+
+  @[JSON::Field(key: "struct")]
+  property obj5_struct : StructClass
+
+  @[JSON::Field(key: "super")]
+  property obj5_super : Super
+
+  @[JSON::Field(key: "then")]
+  property obj5_then : Then
+
+  @[JSON::Field(key: "to_json")]
+  property obj5_to_json : ToJson
+
+  @[JSON::Field(key: "True")]
+  property obj5_true : True
+
+  @[JSON::Field(key: "Type")]
+  property obj5_type : Type
+
+  @[JSON::Field(key: "typeof")]
+  property obj5_typeof : Typeof
+
+  @[JSON::Field(key: "union")]
+  property obj5_union : UnionClass
+
+  @[JSON::Field(key: "while")]
+  property obj5_while : While
+
+  @[JSON::Field(key: "with")]
+  property obj5_with : With
+
+  @[JSON::Field(key: "yield")]
+  property obj5_yield : Yield
+
+  @[JSON::Field(key: "true")]
+  property purple_true : TrueClass
+
+  @[JSON::Field(key: "type")]
+  property purple_type : TypeClass
+
+  property static_cast : StaticCast
+
+  @[JSON::Field(key: "StdDeserializer")]
+  property std_deserializer : StdDeserializer
+
+  @[JSON::Field(key: "StdSerializer")]
+  property std_serializer : StdSerializer
+
+  property strictfp : Strictfp
+
+  property string : StringClass
+
+  property subscript : Subscript
+
+  property switch : Switch
+
+  property symbol : SymbolClass
+
+  property synchronized : Synchronized
+
+  property system : SystemClass
+
+  property template : Template
+
+  property this : This
+
+  property thread_local : ThreadLocalClass
+
+  property throw : Throw
+
+  property throws : Throws
+
+  @[JSON::Field(key: "TimeOnly")]
+  property time_only : TimeOnly
+
+  @[JSON::Field(key: "TimeOnlyConverter")]
+  property time_only_converter : TimeOnlyConverter
+
+  @[JSON::Field(key: "toString")]
+  property to_string : ToString
+
+  property top_level : TopLevelClass
+
+  property transient : Transient
+
+  property try : Try
+
+  property typealias : Typealias
 
-  property quicktype : Int64
-end
+  property typedef : Typedef
 
-class Raise
-  include JSON::Serializable
+  property typeid : Typeid
 
-  property raise : Int64
-end
+  property typename : Typename
 
-class RangeClass
-  include JSON::Serializable
+  property uint : Uint
 
-  property range : Int64
-end
+  property ulong : Ulong
 
-class Readonly
-  include JSON::Serializable
+  property unchecked : Unchecked
 
-  property readonly : Int64
-end
+  property undefined : Undefined
 
-class Ref
-  include JSON::Serializable
+  property unowned : Unowned
 
-  property ref : Int64
-end
+  property unsafe : Unsafe
 
-class RegExp
-  include JSON::Serializable
+  property unsigned : Unsigned
 
-  @[JSON::Field(key: "RegExp")]
-  property reg_exp : String
-end
+  property ushort : Ushort
 
-class Register
-  include JSON::Serializable
+  property using : Using
 
-  property register : Int64
-end
+  @[JSON::Field(key: "Utf8JsonReader")]
+  property utf8_json_reader : Utf8JsonReader
 
-class ReinterpretCast
-  include JSON::Serializable
+  @[JSON::Field(key: "Utf8JsonWriter")]
+  property utf8_json_writer : Utf8JsonWriter
 
-  property reinterpret_cast : Int64
-end
+  @[JSON::Field(key: "UUID")]
+  property uuid : Uuid
 
-class Repeat
-  include JSON::Serializable
+  property var : Var
 
-  property repeat : Int64
-end
+  property virtual : Virtual
 
-class Required
-  include JSON::Serializable
+  property void : VoidClass
 
-  property required : Int64
-end
+  property volatile : Volatile
 
-class Requires
-  include JSON::Serializable
+  property wchar_t : WcharT
 
-  property requires : Int64
-end
+  property weak : Weak
 
-class Restrict
-  include JSON::Serializable
+  property where : Where
 
-  property restrict : Int64
-end
+  @[JSON::Field(key: "willSet")]
+  property will_set : WillSet
 
-class Retain
-  include JSON::Serializable
+  property xor : Xor
 
-  property retain : Int64
+  property xor_eq : XorEq
+
+  @[JSON::Field(key: "YES")]
+  property yes : Yes
 end
 
-class Rethrows
+class StructClass
   include JSON::Serializable
 
-  property rethrows : Int64
+  @[JSON::Field(key: "struct")]
+  property struct_struct : Int64
 end
 
-class Right
+class Super
   include JSON::Serializable
 
-  property right : Int64
+  @[JSON::Field(key: "super")]
+  property super_super : Int64
 end
 
-class RuntimeType
+class Then
   include JSON::Serializable
 
-  @[JSON::Field(key: "runtimeType")]
-  property runtime_type : Int64
+  @[JSON::Field(key: "then")]
+  property then_then : Int64
 end
 
-class S
+class ToJson
   include JSON::Serializable
 
-  property s : Int64
+  @[JSON::Field(key: "to_json")]
+  property to_json_to_json : Int64
 end
 
-class Sbyte
+class True
   include JSON::Serializable
 
-  property sbyte : Int64
+  @[JSON::Field(key: "True")]
+  property true_true : Int64
 end
 
-class Sealed
+class Type
   include JSON::Serializable
 
-  property sealed : Int64
+  @[JSON::Field(key: "Type")]
+  property type_type : Int64
 end
 
-class Sel
+class Typeof
   include JSON::Serializable
 
-  @[JSON::Field(key: "SEL")]
-  property sel : Int64
+  @[JSON::Field(key: "typeof")]
+  property typeof_typeof : Int64
 end
 
-class Serialize
+class UnionClass
   include JSON::Serializable
 
-  property serialize : Int64
+  @[JSON::Field(key: "union")]
+  property union_union : Int64
 end
 
-class SetClass
+class While
   include JSON::Serializable
 
-  property set : Int64
+  @[JSON::Field(key: "while")]
+  property while_while : Int64
 end
 
-class Short
+class With
   include JSON::Serializable
 
-  property short : Int64
+  @[JSON::Field(key: "with")]
+  property with_with : Int64
 end
 
-class Signed
+class Yield
   include JSON::Serializable
 
-  property signed : Int64
+  @[JSON::Field(key: "yield")]
+  property yield_yield : Int64
 end
 
-class Stackalloc
+class TrueClass
   include JSON::Serializable
 
-  property stackalloc : Int64
+  @[JSON::Field(key: "true")]
+  property true_true : Int64
 end
 
-class Standards
+class TypeClass
   include JSON::Serializable
 
-  @[JSON::Field(key: "Standards")]
-  property standards : Int64
+  @[JSON::Field(key: "type")]
+  property type_type : Int64
 end
 
-class Static
+class StaticCast
   include JSON::Serializable
 
-  property static : Int64
+  property static_cast : Int64
 end
 
-class StaticAssert
+class StdDeserializer
   include JSON::Serializable
 
-  property static_assert : Int64
+  @[JSON::Field(key: "StdDeserializer")]
+  property std_deserializer : Int64
 end
 
-class StaticCast
+class StdSerializer
   include JSON::Serializable
 
-  property static_cast : Int64
+  @[JSON::Field(key: "StdSerializer")]
+  property std_serializer : Int64
 end
 
 class Strictfp
@@ -2573,95 +2662,6 @@ class Undefined
   property undefined : Int64
 end
 
-class Obj5
-  include JSON::Serializable
-
-  property dummy : Int64
-
-  @[JSON::Field(key: "union")]
-  property obj5_union : UnionClass
-
-  @[JSON::Field(key: "while")]
-  property obj5_while : While
-
-  @[JSON::Field(key: "with")]
-  property obj5_with : With
-
-  @[JSON::Field(key: "yield")]
-  property obj5_yield : Yield
-
-  property unowned : Unowned
-
-  property unsafe : Unsafe
-
-  property unsigned : Unsigned
-
-  property ushort : Ushort
-
-  property using : Using
-
-  @[JSON::Field(key: "Utf8JsonReader")]
-  property utf8_json_reader : Utf8JsonReader
-
-  @[JSON::Field(key: "Utf8JsonWriter")]
-  property utf8_json_writer : Utf8JsonWriter
-
-  @[JSON::Field(key: "UUID")]
-  property uuid : Uuid
-
-  property var : Var
-
-  property virtual : Virtual
-
-  property void : VoidClass
-
-  property volatile : Volatile
-
-  property wchar_t : WcharT
-
-  property weak : Weak
-
-  property where : Where
-
-  @[JSON::Field(key: "willSet")]
-  property will_set : WillSet
-
-  property xor : Xor
-
-  property xor_eq : XorEq
-
-  @[JSON::Field(key: "YES")]
-  property yes : Yes
-end
-
-class UnionClass
-  include JSON::Serializable
-
-  @[JSON::Field(key: "union")]
-  property union_union : Int64
-end
-
-class While
-  include JSON::Serializable
-
-  @[JSON::Field(key: "while")]
-  property while_while : Int64
-end
-
-class With
-  include JSON::Serializable
-
-  @[JSON::Field(key: "with")]
-  property with_with : Int64
-end
-
-class Yield
-  include JSON::Serializable
-
-  @[JSON::Field(key: "yield")]
-  property yield_yield : Int64
-end
-
 class Unowned
   include JSON::Serializable
 
diff --git a/base/csharp/test/inputs/json/priority/keywords.json/default/QuickType.cs b/head/csharp/test/inputs/json/priority/keywords.json/default/QuickType.cs
index b26ef71..7c6ca5f 100644
--- a/base/csharp/test/inputs/json/priority/keywords.json/default/QuickType.cs
+++ b/head/csharp/test/inputs/json/priority/keywords.json/default/QuickType.cs
@@ -220,27 +220,6 @@ namespace QuickType
         [JsonProperty("date_parse_handling", Required = Required.Always)]
         public DateParseHandlingClass DateParseHandling { get; set; }
 
-        [JsonProperty("DateTime", Required = Required.Always)]
-        public DateTime DateTime { get; set; }
-
-        [JsonProperty("DateTimeStyles", Required = Required.Always)]
-        public DateTimeStylesClass DateTimeStyles { get; set; }
-
-        [JsonProperty("debugger", Required = Required.Always)]
-        public Debugger Debugger { get; set; }
-
-        [JsonProperty("decimal", Required = Required.Always)]
-        public Decimal Decimal { get; set; }
-
-        [JsonProperty("declare", Required = Required.Always)]
-        public Declare Declare { get; set; }
-
-        [JsonProperty("decltype", Required = Required.Always)]
-        public Decltype Decltype { get; set; }
-
-        [JsonProperty("decode_string", Required = Required.Always)]
-        public DecodeString DecodeString { get; set; }
-
         [JsonProperty("dummy", Required = Required.Always)]
         public long Dummy { get; set; }
 
@@ -611,48 +590,6 @@ namespace QuickType
         public long DateParseHandling { get; set; }
     }
 
-    public partial class DateTime
-    {
-        [JsonProperty("DateTime", Required = Required.Always)]
-        public DateTimeOffset DateTimeDateTime { get; set; }
-    }
-
-    public partial class DateTimeStylesClass
-    {
-        [JsonProperty("DateTimeStyles", Required = Required.Always)]
-        public long DateTimeStyles { get; set; }
-    }
-
-    public partial class Debugger
-    {
-        [JsonProperty("debugger", Required = Required.Always)]
-        public long DebuggerDebugger { get; set; }
-    }
-
-    public partial class Decimal
-    {
-        [JsonProperty("decimal", Required = Required.Always)]
-        public long DecimalDecimal { get; set; }
-    }
-
-    public partial class Declare
-    {
-        [JsonProperty("declare", Required = Required.Always)]
-        public long DeclareDeclare { get; set; }
-    }
-
-    public partial class Decltype
-    {
-        [JsonProperty("decltype", Required = Required.Always)]
-        public long DecltypeDecltype { get; set; }
-    }
-
-    public partial class DecodeString
-    {
-        [JsonProperty("decode_string", Required = Required.Always)]
-        public long DecodeStringDecodeString { get; set; }
-    }
-
     public partial class Empty
     {
         [JsonProperty("_", Required = Required.Always)]
@@ -691,6 +628,27 @@ namespace QuickType
 
     public partial class Obj2
     {
+        [JsonProperty("DateTime", Required = Required.Always)]
+        public DateTime DateTime { get; set; }
+
+        [JsonProperty("DateTimeStyles", Required = Required.Always)]
+        public DateTimeStylesClass DateTimeStyles { get; set; }
+
+        [JsonProperty("debugger", Required = Required.Always)]
+        public Debugger Debugger { get; set; }
+
+        [JsonProperty("decimal", Required = Required.Always)]
+        public Decimal Decimal { get; set; }
+
+        [JsonProperty("declare", Required = Required.Always)]
+        public Declare Declare { get; set; }
+
+        [JsonProperty("decltype", Required = Required.Always)]
+        public Decltype Decltype { get; set; }
+
+        [JsonProperty("decode_string", Required = Required.Always)]
+        public DecodeString DecodeString { get; set; }
+
         [JsonProperty("def", Required = Required.Always)]
         public Def Def { get; set; }
 
@@ -859,44 +817,53 @@ namespace QuickType
         [JsonProperty("implicit", Required = Required.Always)]
         public Implicit Implicit { get; set; }
 
-        [JsonProperty("import", Required = Required.Always)]
-        public Import Import { get; set; }
-
-        [JsonProperty("in", Required = Required.Always)]
-        public In In { get; set; }
-
-        [JsonProperty("indirect", Required = Required.Always)]
-        public Indirect Indirect { get; set; }
-
-        [JsonProperty("infix", Required = Required.Always)]
-        public Infix Infix { get; set; }
-
-        [JsonProperty("init", Required = Required.Always)]
-        public Init Init { get; set; }
+        [JsonProperty("false", Required = Required.Always)]
+        public FalseClass Obj2False { get; set; }
 
-        [JsonProperty("inline", Required = Required.Always)]
-        public Inline Inline { get; set; }
+        [JsonProperty("from_json", Required = Required.Always)]
+        public FromJsonClass Obj2FromJson { get; set; }
+    }
 
-        [JsonProperty("inout", Required = Required.Always)]
-        public Inout Inout { get; set; }
+    public partial class DateTime
+    {
+        [JsonProperty("DateTime", Required = Required.Always)]
+        public DateTimeOffset DateTimeDateTime { get; set; }
+    }
 
-        [JsonProperty("instanceof", Required = Required.Always)]
-        public Instanceof Instanceof { get; set; }
+    public partial class DateTimeStylesClass
+    {
+        [JsonProperty("DateTimeStyles", Required = Required.Always)]
+        public long DateTimeStyles { get; set; }
+    }
 
-        [JsonProperty("int", Required = Required.Always)]
-        public Int Int { get; set; }
+    public partial class Debugger
+    {
+        [JsonProperty("debugger", Required = Required.Always)]
+        public long DebuggerDebugger { get; set; }
+    }
 
-        [JsonProperty("interface", Required = Required.Always)]
-        public Interface Interface { get; set; }
+    public partial class Decimal
+    {
+        [JsonProperty("decimal", Required = Required.Always)]
+        public long DecimalDecimal { get; set; }
+    }
 
-        [JsonProperty("internal", Required = Required.Always)]
-        public Internal Internal { get; set; }
+    public partial class Declare
+    {
+        [JsonProperty("declare", Required = Required.Always)]
+        public long DeclareDeclare { get; set; }
+    }
 
-        [JsonProperty("false", Required = Required.Always)]
-        public FalseClass Obj2False { get; set; }
+    public partial class Decltype
+    {
+        [JsonProperty("decltype", Required = Required.Always)]
+        public long DecltypeDecltype { get; set; }
+    }
 
-        [JsonProperty("from_json", Required = Required.Always)]
-        public FromJsonClass Obj2FromJson { get; set; }
+    public partial class DecodeString
+    {
+        [JsonProperty("decode_string", Required = Required.Always)]
+        public long DecodeStringDecodeString { get; set; }
     }
 
     public partial class Def
@@ -1229,88 +1196,55 @@ namespace QuickType
         public long ImplicitImplicit { get; set; }
     }
 
-    public partial class Import
+    public partial class FalseClass
     {
-        [JsonProperty("import", Required = Required.Always)]
-        public long ImportImport { get; set; }
+        [JsonProperty("false", Required = Required.Always)]
+        public long False { get; set; }
     }
 
-    public partial class In
+    public partial class FromJsonClass
     {
-        [JsonProperty("in", Required = Required.Always)]
-        public long InIn { get; set; }
+        [JsonProperty("from_json", Required = Required.Always)]
+        public long FromJsonFromJson { get; set; }
     }
 
-    public partial class Indirect
+    public partial class Obj3
     {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("import", Required = Required.Always)]
+        public Import Import { get; set; }
+
+        [JsonProperty("in", Required = Required.Always)]
+        public In In { get; set; }
+
         [JsonProperty("indirect", Required = Required.Always)]
-        public long IndirectIndirect { get; set; }
-    }
+        public Indirect Indirect { get; set; }
 
-    public partial class Infix
-    {
         [JsonProperty("infix", Required = Required.Always)]
-        public long InfixInfix { get; set; }
-    }
+        public Infix Infix { get; set; }
 
-    public partial class Init
-    {
         [JsonProperty("init", Required = Required.Always)]
-        public long InitInit { get; set; }
-    }
+        public Init Init { get; set; }
 
-    public partial class Inline
-    {
         [JsonProperty("inline", Required = Required.Always)]
-        public long InlineInline { get; set; }
-    }
+        public Inline Inline { get; set; }
 
-    public partial class Inout
-    {
         [JsonProperty("inout", Required = Required.Always)]
-        public long InoutInout { get; set; }
-    }
+        public Inout Inout { get; set; }
 
-    public partial class Instanceof
-    {
         [JsonProperty("instanceof", Required = Required.Always)]
-        public long InstanceofInstanceof { get; set; }
-    }
+        public Instanceof Instanceof { get; set; }
 
-    public partial class Int
-    {
         [JsonProperty("int", Required = Required.Always)]
-        public long IntInt { get; set; }
-    }
+        public Int Int { get; set; }
 
-    public partial class Interface
-    {
         [JsonProperty("interface", Required = Required.Always)]
-        public long InterfaceInterface { get; set; }
-    }
+        public Interface Interface { get; set; }
 
-    public partial class Internal
-    {
         [JsonProperty("internal", Required = Required.Always)]
-        public long InternalInternal { get; set; }
-    }
-
-    public partial class FalseClass
-    {
-        [JsonProperty("false", Required = Required.Always)]
-        public long False { get; set; }
-    }
-
-    public partial class FromJsonClass
-    {
-        [JsonProperty("from_json", Required = Required.Always)]
-        public long FromJsonFromJson { get; set; }
-    }
-
-    public partial class Obj3
-    {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
+        public Internal Internal { get; set; }
 
         [JsonProperty("is", Required = Required.Always)]
         public Is Is { get; set; }
@@ -1465,104 +1399,77 @@ namespace QuickType
         [JsonProperty("NULL", Required = Required.Always)]
         public Null Null { get; set; }
 
-        [JsonProperty("nullptr", Required = Required.Always)]
-        public Nullptr Nullptr { get; set; }
-
-        [JsonProperty("number", Required = Required.Always)]
-        public Number Number { get; set; }
-
         [JsonProperty("none", Required = Required.Always)]
         public NoneClass Obj3None { get; set; }
 
         [JsonProperty("null", Required = Required.Always)]
         public NullClass Obj3Null { get; set; }
+    }
 
-        [JsonProperty("protocol", Required = Required.Always)]
-        public ProtocolClass Obj3Protocol { get; set; }
+    public partial class Import
+    {
+        [JsonProperty("import", Required = Required.Always)]
+        public long ImportImport { get; set; }
+    }
 
-        [JsonProperty("object", Required = Required.Always)]
-        public Object Object { get; set; }
+    public partial class In
+    {
+        [JsonProperty("in", Required = Required.Always)]
+        public long InIn { get; set; }
+    }
 
-        [JsonProperty("ObjectMapper", Required = Required.Always)]
-        public ObjectMapper ObjectMapper { get; set; }
-
-        [JsonProperty("of", Required = Required.Always)]
-        public Of Of { get; set; }
-
-        [JsonProperty("oneway", Required = Required.Always)]
-        public Oneway Oneway { get; set; }
-
-        [JsonProperty("open", Required = Required.Always)]
-        public Open Open { get; set; }
-
-        [JsonProperty("operator", Required = Required.Always)]
-        public Operator Operator { get; set; }
-
-        [JsonProperty("optional", Required = Required.Always)]
-        public Optional Optional { get; set; }
-
-        [JsonProperty("or", Required = Required.Always)]
-        public Or Or { get; set; }
-
-        [JsonProperty("or_eq", Required = Required.Always)]
-        public OrEq OrEq { get; set; }
-
-        [JsonProperty("out", Required = Required.Always)]
-        public Out Out { get; set; }
-
-        [JsonProperty("override", Required = Required.Always)]
-        public Override Override { get; set; }
-
-        [JsonProperty("package", Required = Required.Always)]
-        public Package Package { get; set; }
-
-        [JsonProperty("params", Required = Required.Always)]
-        public Params Params { get; set; }
-
-        [JsonProperty("pass", Required = Required.Always)]
-        public Pass Pass { get; set; }
-
-        [JsonProperty("port", Required = Required.Always)]
-        public Port Port { get; set; }
-
-        [JsonProperty("postfix", Required = Required.Always)]
-        public Postfix Postfix { get; set; }
-
-        [JsonProperty("precedence", Required = Required.Always)]
-        public Precedence Precedence { get; set; }
-
-        [JsonProperty("prefix", Required = Required.Always)]
-        public Prefix Prefix { get; set; }
-
-        [JsonProperty("print", Required = Required.Always)]
-        public Print Print { get; set; }
-
-        [JsonProperty("printMembers", Required = Required.Always)]
-        public PrintMembers PrintMembers { get; set; }
+    public partial class Indirect
+    {
+        [JsonProperty("indirect", Required = Required.Always)]
+        public long IndirectIndirect { get; set; }
+    }
 
-        [JsonProperty("printf", Required = Required.Always)]
-        public Printf Printf { get; set; }
+    public partial class Infix
+    {
+        [JsonProperty("infix", Required = Required.Always)]
+        public long InfixInfix { get; set; }
+    }
 
-        [JsonProperty("private", Required = Required.Always)]
-        public Private Private { get; set; }
+    public partial class Init
+    {
+        [JsonProperty("init", Required = Required.Always)]
+        public long InitInit { get; set; }
+    }
 
-        [JsonProperty("protected", Required = Required.Always)]
-        public Protected Protected { get; set; }
+    public partial class Inline
+    {
+        [JsonProperty("inline", Required = Required.Always)]
+        public long InlineInline { get; set; }
+    }
 
-        [JsonProperty("Protocol", Required = Required.Always)]
-        public Protocol Protocol { get; set; }
+    public partial class Inout
+    {
+        [JsonProperty("inout", Required = Required.Always)]
+        public long InoutInout { get; set; }
+    }
 
-        [JsonProperty("SerializerProvider", Required = Required.Always)]
-        public SerializerProvider SerializerProvider { get; set; }
+    public partial class Instanceof
+    {
+        [JsonProperty("instanceof", Required = Required.Always)]
+        public long InstanceofInstanceof { get; set; }
+    }
 
-        [JsonProperty("SimpleModule", Required = Required.Always)]
-        public SimpleModule SimpleModule { get; set; }
+    public partial class Int
+    {
+        [JsonProperty("int", Required = Required.Always)]
+        public long IntInt { get; set; }
+    }
 
-        [JsonProperty("StdDeserializer", Required = Required.Always)]
-        public StdDeserializer StdDeserializer { get; set; }
+    public partial class Interface
+    {
+        [JsonProperty("interface", Required = Required.Always)]
+        public long InterfaceInterface { get; set; }
+    }
 
-        [JsonProperty("StdSerializer", Required = Required.Always)]
-        public StdSerializer StdSerializer { get; set; }
+    public partial class Internal
+    {
+        [JsonProperty("internal", Required = Required.Always)]
+        public long InternalInternal { get; set; }
     }
 
     public partial class Is
@@ -1871,18 +1778,6 @@ namespace QuickType
         public long NullNull { get; set; }
     }
 
-    public partial class Nullptr
-    {
-        [JsonProperty("nullptr", Required = Required.Always)]
-        public long NullptrNullptr { get; set; }
-    }
-
-    public partial class Number
-    {
-        [JsonProperty("number", Required = Required.Always)]
-        public long NumberNumber { get; set; }
-    }
-
     public partial class NoneClass
     {
         [JsonProperty("none", Required = Required.Always)]
@@ -1895,305 +1790,614 @@ namespace QuickType
         public long Null { get; set; }
     }
 
-    public partial class ProtocolClass
+    public partial class Obj4
     {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("nullptr", Required = Required.Always)]
+        public Nullptr Nullptr { get; set; }
+
+        [JsonProperty("number", Required = Required.Always)]
+        public Number Number { get; set; }
+
         [JsonProperty("protocol", Required = Required.Always)]
-        public long Protocol { get; set; }
-    }
+        public ProtocolClass Obj4Protocol { get; set; }
+
+        [JsonProperty("required", Required = Required.Always)]
+        public RequiredClass Obj4Required { get; set; }
+
+        [JsonProperty("self", Required = Required.Always)]
+        public SelfClass Obj4Self { get; set; }
 
-    public partial class Object
-    {
         [JsonProperty("object", Required = Required.Always)]
-        public long ObjectObject { get; set; }
-    }
+        public Object Object { get; set; }
 
-    public partial class ObjectMapper
-    {
         [JsonProperty("ObjectMapper", Required = Required.Always)]
-        public long ObjectMapperObjectMapper { get; set; }
-    }
+        public ObjectMapper ObjectMapper { get; set; }
 
-    public partial class Of
-    {
         [JsonProperty("of", Required = Required.Always)]
-        public long OfOf { get; set; }
-    }
+        public Of Of { get; set; }
 
-    public partial class Oneway
-    {
         [JsonProperty("oneway", Required = Required.Always)]
-        public long OnewayOneway { get; set; }
-    }
+        public Oneway Oneway { get; set; }
 
-    public partial class Open
-    {
         [JsonProperty("open", Required = Required.Always)]
-        public long OpenOpen { get; set; }
-    }
+        public Open Open { get; set; }
 
-    public partial class Operator
-    {
         [JsonProperty("operator", Required = Required.Always)]
-        public long OperatorOperator { get; set; }
-    }
+        public Operator Operator { get; set; }
 
-    public partial class Optional
-    {
         [JsonProperty("optional", Required = Required.Always)]
-        public long OptionalOptional { get; set; }
-    }
+        public Optional Optional { get; set; }
 
-    public partial class Or
-    {
         [JsonProperty("or", Required = Required.Always)]
-        public long OrOr { get; set; }
-    }
+        public Or Or { get; set; }
 
-    public partial class OrEq
-    {
         [JsonProperty("or_eq", Required = Required.Always)]
-        public long OrEqOrEq { get; set; }
-    }
+        public OrEq OrEq { get; set; }
 
-    public partial class Out
-    {
         [JsonProperty("out", Required = Required.Always)]
-        public long OutOut { get; set; }
-    }
+        public Out Out { get; set; }
 
-    public partial class Override
-    {
         [JsonProperty("override", Required = Required.Always)]
-        public long OverrideOverride { get; set; }
-    }
+        public Override Override { get; set; }
 
-    public partial class Package
-    {
         [JsonProperty("package", Required = Required.Always)]
-        public long PackagePackage { get; set; }
-    }
+        public Package Package { get; set; }
 
-    public partial class Params
-    {
         [JsonProperty("params", Required = Required.Always)]
-        public long ParamsParams { get; set; }
-    }
+        public Params Params { get; set; }
 
-    public partial class Pass
-    {
         [JsonProperty("pass", Required = Required.Always)]
-        public long PassPass { get; set; }
-    }
+        public Pass Pass { get; set; }
 
-    public partial class Port
-    {
         [JsonProperty("port", Required = Required.Always)]
-        public long PortPort { get; set; }
-    }
+        public Port Port { get; set; }
 
-    public partial class Postfix
-    {
         [JsonProperty("postfix", Required = Required.Always)]
-        public long PostfixPostfix { get; set; }
-    }
+        public Postfix Postfix { get; set; }
 
-    public partial class Precedence
-    {
         [JsonProperty("precedence", Required = Required.Always)]
-        public long PrecedencePrecedence { get; set; }
-    }
+        public Precedence Precedence { get; set; }
 
-    public partial class Prefix
-    {
         [JsonProperty("prefix", Required = Required.Always)]
-        public long PrefixPrefix { get; set; }
-    }
+        public Prefix Prefix { get; set; }
 
-    public partial class Print
-    {
         [JsonProperty("print", Required = Required.Always)]
-        public long PrintPrint { get; set; }
-    }
+        public Print Print { get; set; }
 
-    public partial class PrintMembers
-    {
         [JsonProperty("printMembers", Required = Required.Always)]
-        public long PrintMembersPrintMembers { get; set; }
-    }
+        public PrintMembers PrintMembers { get; set; }
 
-    public partial class Printf
-    {
         [JsonProperty("printf", Required = Required.Always)]
-        public long PrintfPrintf { get; set; }
-    }
+        public Printf Printf { get; set; }
 
-    public partial class Private
-    {
         [JsonProperty("private", Required = Required.Always)]
-        public long PrivatePrivate { get; set; }
-    }
+        public Private Private { get; set; }
 
-    public partial class Protected
-    {
         [JsonProperty("protected", Required = Required.Always)]
-        public long ProtectedProtected { get; set; }
+        public Protected Protected { get; set; }
+
+        [JsonProperty("Protocol", Required = Required.Always)]
+        public Protocol Protocol { get; set; }
+
+        [JsonProperty("public", Required = Required.Always)]
+        public Public Public { get; set; }
+
+        [JsonProperty("quicktype", Required = Required.Always)]
+        public Quicktype Quicktype { get; set; }
+
+        [JsonProperty("raise", Required = Required.Always)]
+        public Raise Raise { get; set; }
+
+        [JsonProperty("range", Required = Required.Always)]
+        public Range Range { get; set; }
+
+        [JsonProperty("readonly", Required = Required.Always)]
+        public Readonly Readonly { get; set; }
+
+        [JsonProperty("ref", Required = Required.Always)]
+        public Ref Ref { get; set; }
+
+        [JsonProperty("RegExp", Required = Required.Always)]
+        public RegExp RegExp { get; set; }
+
+        [JsonProperty("register", Required = Required.Always)]
+        public Register Register { get; set; }
+
+        [JsonProperty("reinterpret_cast", Required = Required.Always)]
+        public ReinterpretCast ReinterpretCast { get; set; }
+
+        [JsonProperty("repeat", Required = Required.Always)]
+        public Repeat Repeat { get; set; }
+
+        [JsonProperty("require", Required = Required.Always)]
+        public Require Require { get; set; }
+
+        [JsonProperty("requires", Required = Required.Always)]
+        public Requires Requires { get; set; }
+
+        [JsonProperty("restrict", Required = Required.Always)]
+        public Restrict Restrict { get; set; }
+
+        [JsonProperty("retain", Required = Required.Always)]
+        public Retain Retain { get; set; }
+
+        [JsonProperty("rethrows", Required = Required.Always)]
+        public Rethrows Rethrows { get; set; }
+
+        [JsonProperty("return", Required = Required.Always)]
+        public Return Return { get; set; }
+
+        [JsonProperty("right", Required = Required.Always)]
+        public Right Right { get; set; }
+
+        [JsonProperty("runtimeType", Required = Required.Always)]
+        public RuntimeType RuntimeType { get; set; }
+
+        [JsonProperty("s", Required = Required.Always)]
+        public S S { get; set; }
+
+        [JsonProperty("sbyte", Required = Required.Always)]
+        public Sbyte Sbyte { get; set; }
+
+        [JsonProperty("sealed", Required = Required.Always)]
+        public Sealed Sealed { get; set; }
+
+        [JsonProperty("SEL", Required = Required.Always)]
+        public Sel Sel { get; set; }
+
+        [JsonProperty("select", Required = Required.Always)]
+        public Select Select { get; set; }
+
+        [JsonProperty("Self", Required = Required.Always)]
+        public Self Self { get; set; }
+
+        [JsonProperty("serialize", Required = Required.Always)]
+        public SerializeClass Serialize { get; set; }
+
+        [JsonProperty("SerializerProvider", Required = Required.Always)]
+        public SerializerProvider SerializerProvider { get; set; }
+
+        [JsonProperty("set", Required = Required.Always)]
+        public Set Set { get; set; }
+
+        [JsonProperty("short", Required = Required.Always)]
+        public Short Short { get; set; }
+
+        [JsonProperty("signed", Required = Required.Always)]
+        public Signed Signed { get; set; }
+
+        [JsonProperty("SimpleModule", Required = Required.Always)]
+        public SimpleModule SimpleModule { get; set; }
+
+        [JsonProperty("sizeof", Required = Required.Always)]
+        public Sizeof Sizeof { get; set; }
+
+        [JsonProperty("stackalloc", Required = Required.Always)]
+        public Stackalloc Stackalloc { get; set; }
+
+        [JsonProperty("Standards", Required = Required.Always)]
+        public Standards Standards { get; set; }
+
+        [JsonProperty("static", Required = Required.Always)]
+        public Static Static { get; set; }
+
+        [JsonProperty("static_assert", Required = Required.Always)]
+        public StaticAssert StaticAssert { get; set; }
     }
 
-    public partial class Protocol
+    public partial class Nullptr
     {
-        [JsonProperty("Protocol", Required = Required.Always)]
-        public long ProtocolProtocol { get; set; }
+        [JsonProperty("nullptr", Required = Required.Always)]
+        public long NullptrNullptr { get; set; }
     }
 
-    public partial class SerializerProvider
+    public partial class Number
     {
-        [JsonProperty("SerializerProvider", Required = Required.Always)]
-        public long SerializerProviderSerializerProvider { get; set; }
+        [JsonProperty("number", Required = Required.Always)]
+        public long NumberNumber { get; set; }
     }
 
-    public partial class SimpleModule
+    public partial class ProtocolClass
     {
-        [JsonProperty("SimpleModule", Required = Required.Always)]
-        public long SimpleModuleSimpleModule { get; set; }
+        [JsonProperty("protocol", Required = Required.Always)]
+        public long Protocol { get; set; }
     }
 
-    public partial class StdDeserializer
+    public partial class RequiredClass
     {
-        [JsonProperty("StdDeserializer", Required = Required.Always)]
-        public long StdDeserializerStdDeserializer { get; set; }
+        [JsonProperty("required", Required = Required.Always)]
+        public long RequiredRequired { get; set; }
     }
 
-    public partial class StdSerializer
+    public partial class SelfClass
     {
-        [JsonProperty("StdSerializer", Required = Required.Always)]
-        public long StdSerializerStdSerializer { get; set; }
+        [JsonProperty("self", Required = Required.Always)]
+        public long Self { get; set; }
     }
 
-    public partial class Obj4
+    public partial class Object
     {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
+        [JsonProperty("object", Required = Required.Always)]
+        public long ObjectObject { get; set; }
+    }
 
-        [JsonProperty("required", Required = Required.Always)]
-        public RequiredClass Obj4Required { get; set; }
+    public partial class ObjectMapper
+    {
+        [JsonProperty("ObjectMapper", Required = Required.Always)]
+        public long ObjectMapperObjectMapper { get; set; }
+    }
 
-        [JsonProperty("self", Required = Required.Always)]
-        public SelfClass Obj4Self { get; set; }
+    public partial class Of
+    {
+        [JsonProperty("of", Required = Required.Always)]
+        public long OfOf { get; set; }
+    }
 
-        [JsonProperty("to_json", Required = Required.Always)]
-        public ToJson Obj4ToJson { get; set; }
+    public partial class Oneway
+    {
+        [JsonProperty("oneway", Required = Required.Always)]
+        public long OnewayOneway { get; set; }
+    }
 
-        [JsonProperty("toString", Required = Required.Always)]
-        public ToString Obj4ToString { get; set; }
+    public partial class Open
+    {
+        [JsonProperty("open", Required = Required.Always)]
+        public long OpenOpen { get; set; }
+    }
 
-        [JsonProperty("true", Required = Required.Always)]
-        public TrueClass Obj4True { get; set; }
+    public partial class Operator
+    {
+        [JsonProperty("operator", Required = Required.Always)]
+        public long OperatorOperator { get; set; }
+    }
 
-        [JsonProperty("type", Required = Required.Always)]
-        public Obj4Type Obj4Type { get; set; }
+    public partial class Optional
+    {
+        [JsonProperty("optional", Required = Required.Always)]
+        public long OptionalOptional { get; set; }
+    }
+
+    public partial class Or
+    {
+        [JsonProperty("or", Required = Required.Always)]
+        public long OrOr { get; set; }
+    }
 
+    public partial class OrEq
+    {
+        [JsonProperty("or_eq", Required = Required.Always)]
+        public long OrEqOrEq { get; set; }
+    }
+
+    public partial class Out
+    {
+        [JsonProperty("out", Required = Required.Always)]
+        public long OutOut { get; set; }
+    }
+
+    public partial class Override
+    {
+        [JsonProperty("override", Required = Required.Always)]
+        public long OverrideOverride { get; set; }
+    }
+
+    public partial class Package
+    {
+        [JsonProperty("package", Required = Required.Always)]
+        public long PackagePackage { get; set; }
+    }
+
+    public partial class Params
+    {
+        [JsonProperty("params", Required = Required.Always)]
+        public long ParamsParams { get; set; }
+    }
+
+    public partial class Pass
+    {
+        [JsonProperty("pass", Required = Required.Always)]
+        public long PassPass { get; set; }
+    }
+
+    public partial class Port
+    {
+        [JsonProperty("port", Required = Required.Always)]
+        public long PortPort { get; set; }
+    }
+
+    public partial class Postfix
+    {
+        [JsonProperty("postfix", Required = Required.Always)]
+        public long PostfixPostfix { get; set; }
+    }
+
+    public partial class Precedence
+    {
+        [JsonProperty("precedence", Required = Required.Always)]
+        public long PrecedencePrecedence { get; set; }
+    }
+
+    public partial class Prefix
+    {
+        [JsonProperty("prefix", Required = Required.Always)]
+        public long PrefixPrefix { get; set; }
+    }
+
+    public partial class Print
+    {
+        [JsonProperty("print", Required = Required.Always)]
+        public long PrintPrint { get; set; }
+    }
+
+    public partial class PrintMembers
+    {
+        [JsonProperty("printMembers", Required = Required.Always)]
+        public long PrintMembersPrintMembers { get; set; }
+    }
+
+    public partial class Printf
+    {
+        [JsonProperty("printf", Required = Required.Always)]
+        public long PrintfPrintf { get; set; }
+    }
+
+    public partial class Private
+    {
+        [JsonProperty("private", Required = Required.Always)]
+        public long PrivatePrivate { get; set; }
+    }
+
+    public partial class Protected
+    {
+        [JsonProperty("protected", Required = Required.Always)]
+        public long ProtectedProtected { get; set; }
+    }
+
+    public partial class Protocol
+    {
+        [JsonProperty("Protocol", Required = Required.Always)]
+        public long ProtocolProtocol { get; set; }
+    }
+
+    public partial class Public
+    {
         [JsonProperty("public", Required = Required.Always)]
-        public Public Public { get; set; }
+        public long PublicPublic { get; set; }
+    }
 
+    public partial class Quicktype
+    {
         [JsonProperty("quicktype", Required = Required.Always)]
-        public Quicktype Quicktype { get; set; }
+        public long QuicktypeQuicktype { get; set; }
+    }
 
+    public partial class Raise
+    {
         [JsonProperty("raise", Required = Required.Always)]
-        public Raise Raise { get; set; }
+        public long RaiseRaise { get; set; }
+    }
 
+    public partial class Range
+    {
         [JsonProperty("range", Required = Required.Always)]
-        public Range Range { get; set; }
+        public long RangeRange { get; set; }
+    }
 
+    public partial class Readonly
+    {
         [JsonProperty("readonly", Required = Required.Always)]
-        public Readonly Readonly { get; set; }
+        public long ReadonlyReadonly { get; set; }
+    }
 
+    public partial class Ref
+    {
         [JsonProperty("ref", Required = Required.Always)]
-        public Ref Ref { get; set; }
+        public long RefRef { get; set; }
+    }
 
+    public partial class RegExp
+    {
         [JsonProperty("RegExp", Required = Required.Always)]
-        public RegExp RegExp { get; set; }
+        public Guid RegExpRegExp { get; set; }
+    }
 
+    public partial class Register
+    {
         [JsonProperty("register", Required = Required.Always)]
-        public Register Register { get; set; }
+        public long RegisterRegister { get; set; }
+    }
 
+    public partial class ReinterpretCast
+    {
         [JsonProperty("reinterpret_cast", Required = Required.Always)]
-        public ReinterpretCast ReinterpretCast { get; set; }
+        public long ReinterpretCastReinterpretCast { get; set; }
+    }
 
+    public partial class Repeat
+    {
         [JsonProperty("repeat", Required = Required.Always)]
-        public Repeat Repeat { get; set; }
+        public long RepeatRepeat { get; set; }
+    }
 
+    public partial class Require
+    {
         [JsonProperty("require", Required = Required.Always)]
-        public Require Require { get; set; }
+        public long RequireRequire { get; set; }
+    }
 
+    public partial class Requires
+    {
         [JsonProperty("requires", Required = Required.Always)]
-        public Requires Requires { get; set; }
+        public long RequiresRequires { get; set; }
+    }
 
+    public partial class Restrict
+    {
         [JsonProperty("restrict", Required = Required.Always)]
-        public Restrict Restrict { get; set; }
+        public long RestrictRestrict { get; set; }
+    }
 
+    public partial class Retain
+    {
         [JsonProperty("retain", Required = Required.Always)]
-        public Retain Retain { get; set; }
+        public long RetainRetain { get; set; }
+    }
 
+    public partial class Rethrows
+    {
         [JsonProperty("rethrows", Required = Required.Always)]
-        public Rethrows Rethrows { get; set; }
+        public long RethrowsRethrows { get; set; }
+    }
 
+    public partial class Return
+    {
         [JsonProperty("return", Required = Required.Always)]
-        public Return Return { get; set; }
+        public long ReturnReturn { get; set; }
+    }
 
+    public partial class Right
+    {
         [JsonProperty("right", Required = Required.Always)]
-        public Right Right { get; set; }
+        public long RightRight { get; set; }
+    }
 
+    public partial class RuntimeType
+    {
         [JsonProperty("runtimeType", Required = Required.Always)]
-        public RuntimeType RuntimeType { get; set; }
+        public long RuntimeTypeRuntimeType { get; set; }
+    }
 
+    public partial class S
+    {
         [JsonProperty("s", Required = Required.Always)]
-        public S S { get; set; }
+        public long SS { get; set; }
+    }
 
+    public partial class Sbyte
+    {
         [JsonProperty("sbyte", Required = Required.Always)]
-        public Sbyte Sbyte { get; set; }
+        public long SbyteSbyte { get; set; }
+    }
 
+    public partial class Sealed
+    {
         [JsonProperty("sealed", Required = Required.Always)]
-        public Sealed Sealed { get; set; }
+        public long SealedSealed { get; set; }
+    }
 
+    public partial class Sel
+    {
         [JsonProperty("SEL", Required = Required.Always)]
-        public Sel Sel { get; set; }
+        public long SelSel { get; set; }
+    }
 
+    public partial class Select
+    {
         [JsonProperty("select", Required = Required.Always)]
-        public Select Select { get; set; }
+        public long SelectSelect { get; set; }
+    }
 
+    public partial class Self
+    {
         [JsonProperty("Self", Required = Required.Always)]
-        public Self Self { get; set; }
+        public long SelfSelf { get; set; }
+    }
 
+    public partial class SerializeClass
+    {
         [JsonProperty("serialize", Required = Required.Always)]
-        public SerializeClass Serialize { get; set; }
+        public long Serialize { get; set; }
+    }
+
+    public partial class SerializerProvider
+    {
+        [JsonProperty("SerializerProvider", Required = Required.Always)]
+        public long SerializerProviderSerializerProvider { get; set; }
+    }
 
+    public partial class Set
+    {
         [JsonProperty("set", Required = Required.Always)]
-        public Set Set { get; set; }
+        public long SetSet { get; set; }
+    }
 
+    public partial class Short
+    {
         [JsonProperty("short", Required = Required.Always)]
-        public Short Short { get; set; }
+        public long ShortShort { get; set; }
+    }
 
+    public partial class Signed
+    {
         [JsonProperty("signed", Required = Required.Always)]
-        public Signed Signed { get; set; }
+        public long SignedSigned { get; set; }
+    }
+
+    public partial class SimpleModule
+    {
+        [JsonProperty("SimpleModule", Required = Required.Always)]
+        public long SimpleModuleSimpleModule { get; set; }
+    }
 
+    public partial class Sizeof
+    {
         [JsonProperty("sizeof", Required = Required.Always)]
-        public Sizeof Sizeof { get; set; }
+        public long SizeofSizeof { get; set; }
+    }
 
+    public partial class Stackalloc
+    {
         [JsonProperty("stackalloc", Required = Required.Always)]
-        public Stackalloc Stackalloc { get; set; }
+        public long StackallocStackalloc { get; set; }
+    }
 
+    public partial class Standards
+    {
         [JsonProperty("Standards", Required = Required.Always)]
-        public Standards Standards { get; set; }
+        public long StandardsStandards { get; set; }
+    }
 
+    public partial class Static
+    {
         [JsonProperty("static", Required = Required.Always)]
-        public Static Static { get; set; }
+        public long StaticStatic { get; set; }
+    }
 
+    public partial class StaticAssert
+    {
         [JsonProperty("static_assert", Required = Required.Always)]
-        public StaticAssert StaticAssert { get; set; }
+        public long StaticAssertStaticAssert { get; set; }
+    }
+
+    public partial class Obj5
+    {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("to_json", Required = Required.Always)]
+        public ToJson Obj5ToJson { get; set; }
+
+        [JsonProperty("toString", Required = Required.Always)]
+        public ToString Obj5ToString { get; set; }
+
+        [JsonProperty("true", Required = Required.Always)]
+        public TrueClass Obj5True { get; set; }
+
+        [JsonProperty("type", Required = Required.Always)]
+        public Obj5Type Obj5Type { get; set; }
 
         [JsonProperty("static_cast", Required = Required.Always)]
         public StaticCast StaticCast { get; set; }
 
+        [JsonProperty("StdDeserializer", Required = Required.Always)]
+        public StdDeserializer StdDeserializer { get; set; }
+
+        [JsonProperty("StdSerializer", Required = Required.Always)]
+        public StdSerializer StdSerializer { get; set; }
+
         [JsonProperty("strictfp", Required = Required.Always)]
         public Strictfp Strictfp { get; set; }
 
@@ -2286,246 +2490,117 @@ namespace QuickType
 
         [JsonProperty("undefined", Required = Required.Always)]
         public Undefined Undefined { get; set; }
-    }
-
-    public partial class RequiredClass
-    {
-        [JsonProperty("required", Required = Required.Always)]
-        public long RequiredRequired { get; set; }
-    }
-
-    public partial class SelfClass
-    {
-        [JsonProperty("self", Required = Required.Always)]
-        public long Self { get; set; }
-    }
-
-    public partial class ToJson
-    {
-        [JsonProperty("to_json", Required = Required.Always)]
-        public long ToJsonToJson { get; set; }
-    }
-
-    public partial class ToString
-    {
-        [JsonProperty("toString", Required = Required.Always)]
-        public long ToStringToString { get; set; }
-    }
-
-    public partial class TrueClass
-    {
-        [JsonProperty("true", Required = Required.Always)]
-        public long True { get; set; }
-    }
-
-    public partial class Obj4Type
-    {
-        [JsonProperty("type", Required = Required.Always)]
-        public long Type { get; set; }
-    }
-
-    public partial class Public
-    {
-        [JsonProperty("public", Required = Required.Always)]
-        public long PublicPublic { get; set; }
-    }
-
-    public partial class Quicktype
-    {
-        [JsonProperty("quicktype", Required = Required.Always)]
-        public long QuicktypeQuicktype { get; set; }
-    }
 
-    public partial class Raise
-    {
-        [JsonProperty("raise", Required = Required.Always)]
-        public long RaiseRaise { get; set; }
-    }
-
-    public partial class Range
-    {
-        [JsonProperty("range", Required = Required.Always)]
-        public long RangeRange { get; set; }
-    }
-
-    public partial class Readonly
-    {
-        [JsonProperty("readonly", Required = Required.Always)]
-        public long ReadonlyReadonly { get; set; }
-    }
+        [JsonProperty("union", Required = Required.Always)]
+        public Union Union { get; set; }
 
-    public partial class Ref
-    {
-        [JsonProperty("ref", Required = Required.Always)]
-        public long RefRef { get; set; }
-    }
+        [JsonProperty("unowned", Required = Required.Always)]
+        public Unowned Unowned { get; set; }
 
-    public partial class RegExp
-    {
-        [JsonProperty("RegExp", Required = Required.Always)]
-        public Guid RegExpRegExp { get; set; }
-    }
+        [JsonProperty("unsafe", Required = Required.Always)]
+        public Unsafe Unsafe { get; set; }
 
-    public partial class Register
-    {
-        [JsonProperty("register", Required = Required.Always)]
-        public long RegisterRegister { get; set; }
-    }
+        [JsonProperty("unsigned", Required = Required.Always)]
+        public Unsigned Unsigned { get; set; }
 
-    public partial class ReinterpretCast
-    {
-        [JsonProperty("reinterpret_cast", Required = Required.Always)]
-        public long ReinterpretCastReinterpretCast { get; set; }
-    }
+        [JsonProperty("ushort", Required = Required.Always)]
+        public Ushort Ushort { get; set; }
 
-    public partial class Repeat
-    {
-        [JsonProperty("repeat", Required = Required.Always)]
-        public long RepeatRepeat { get; set; }
-    }
+        [JsonProperty("using", Required = Required.Always)]
+        public Using Using { get; set; }
 
-    public partial class Require
-    {
-        [JsonProperty("require", Required = Required.Always)]
-        public long RequireRequire { get; set; }
-    }
+        [JsonProperty("Utf8JsonReader", Required = Required.Always)]
+        public Utf8JsonReader Utf8JsonReader { get; set; }
 
-    public partial class Requires
-    {
-        [JsonProperty("requires", Required = Required.Always)]
-        public long RequiresRequires { get; set; }
-    }
+        [JsonProperty("Utf8JsonWriter", Required = Required.Always)]
+        public Utf8JsonWriter Utf8JsonWriter { get; set; }
 
-    public partial class Restrict
-    {
-        [JsonProperty("restrict", Required = Required.Always)]
-        public long RestrictRestrict { get; set; }
-    }
+        [JsonProperty("UUID", Required = Required.Always)]
+        public Uuid Uuid { get; set; }
 
-    public partial class Retain
-    {
-        [JsonProperty("retain", Required = Required.Always)]
-        public long RetainRetain { get; set; }
-    }
+        [JsonProperty("var", Required = Required.Always)]
+        public Var Var { get; set; }
 
-    public partial class Rethrows
-    {
-        [JsonProperty("rethrows", Required = Required.Always)]
-        public long RethrowsRethrows { get; set; }
-    }
+        [JsonProperty("virtual", Required = Required.Always)]
+        public Virtual Virtual { get; set; }
 
-    public partial class Return
-    {
-        [JsonProperty("return", Required = Required.Always)]
-        public long ReturnReturn { get; set; }
-    }
+        [JsonProperty("void", Required = Required.Always)]
+        public Void Void { get; set; }
 
-    public partial class Right
-    {
-        [JsonProperty("right", Required = Required.Always)]
-        public long RightRight { get; set; }
-    }
+        [JsonProperty("volatile", Required = Required.Always)]
+        public Volatile Volatile { get; set; }
 
-    public partial class RuntimeType
-    {
-        [JsonProperty("runtimeType", Required = Required.Always)]
-        public long RuntimeTypeRuntimeType { get; set; }
-    }
+        [JsonProperty("wchar_t", Required = Required.Always)]
+        public WcharT WcharT { get; set; }
 
-    public partial class S
-    {
-        [JsonProperty("s", Required = Required.Always)]
-        public long SS { get; set; }
-    }
+        [JsonProperty("weak", Required = Required.Always)]
+        public Weak Weak { get; set; }
 
-    public partial class Sbyte
-    {
-        [JsonProperty("sbyte", Required = Required.Always)]
-        public long SbyteSbyte { get; set; }
-    }
+        [JsonProperty("where", Required = Required.Always)]
+        public Where Where { get; set; }
 
-    public partial class Sealed
-    {
-        [JsonProperty("sealed", Required = Required.Always)]
-        public long SealedSealed { get; set; }
-    }
+        [JsonProperty("while", Required = Required.Always)]
+        public While While { get; set; }
 
-    public partial class Sel
-    {
-        [JsonProperty("SEL", Required = Required.Always)]
-        public long SelSel { get; set; }
-    }
+        [JsonProperty("willSet", Required = Required.Always)]
+        public WillSet WillSet { get; set; }
 
-    public partial class Select
-    {
-        [JsonProperty("select", Required = Required.Always)]
-        public long SelectSelect { get; set; }
-    }
+        [JsonProperty("with", Required = Required.Always)]
+        public With With { get; set; }
 
-    public partial class Self
-    {
-        [JsonProperty("Self", Required = Required.Always)]
-        public long SelfSelf { get; set; }
-    }
+        [JsonProperty("xor", Required = Required.Always)]
+        public Xor Xor { get; set; }
 
-    public partial class SerializeClass
-    {
-        [JsonProperty("serialize", Required = Required.Always)]
-        public long Serialize { get; set; }
-    }
+        [JsonProperty("xor_eq", Required = Required.Always)]
+        public XorEq XorEq { get; set; }
 
-    public partial class Set
-    {
-        [JsonProperty("set", Required = Required.Always)]
-        public long SetSet { get; set; }
-    }
+        [JsonProperty("YES", Required = Required.Always)]
+        public Yes Yes { get; set; }
 
-    public partial class Short
-    {
-        [JsonProperty("short", Required = Required.Always)]
-        public long ShortShort { get; set; }
+        [JsonProperty("yield", Required = Required.Always)]
+        public Yield Yield { get; set; }
     }
 
-    public partial class Signed
+    public partial class ToJson
     {
-        [JsonProperty("signed", Required = Required.Always)]
-        public long SignedSigned { get; set; }
+        [JsonProperty("to_json", Required = Required.Always)]
+        public long ToJsonToJson { get; set; }
     }
 
-    public partial class Sizeof
+    public partial class ToString
     {
-        [JsonProperty("sizeof", Required = Required.Always)]
-        public long SizeofSizeof { get; set; }
+        [JsonProperty("toString", Required = Required.Always)]
+        public long ToStringToString { get; set; }
     }
 
-    public partial class Stackalloc
+    public partial class TrueClass
     {
-        [JsonProperty("stackalloc", Required = Required.Always)]
-        public long StackallocStackalloc { get; set; }
+        [JsonProperty("true", Required = Required.Always)]
+        public long True { get; set; }
     }
 
-    public partial class Standards
+    public partial class Obj5Type
     {
-        [JsonProperty("Standards", Required = Required.Always)]
-        public long StandardsStandards { get; set; }
+        [JsonProperty("type", Required = Required.Always)]
+        public long Type { get; set; }
     }
 
-    public partial class Static
+    public partial class StaticCast
     {
-        [JsonProperty("static", Required = Required.Always)]
-        public long StaticStatic { get; set; }
+        [JsonProperty("static_cast", Required = Required.Always)]
+        public long StaticCastStaticCast { get; set; }
     }
 
-    public partial class StaticAssert
+    public partial class StdDeserializer
     {
-        [JsonProperty("static_assert", Required = Required.Always)]
-        public long StaticAssertStaticAssert { get; set; }
+        [JsonProperty("StdDeserializer", Required = Required.Always)]
+        public long StdDeserializerStdDeserializer { get; set; }
     }
 
-    public partial class StaticCast
+    public partial class StdSerializer
     {
-        [JsonProperty("static_cast", Required = Required.Always)]
-        public long StaticCastStaticCast { get; set; }
+        [JsonProperty("StdSerializer", Required = Required.Always)]
+        public long StdSerializerStdSerializer { get; set; }
     }
 
     public partial class Strictfp
@@ -2714,81 +2789,6 @@ namespace QuickType
         public long UndefinedUndefined { get; set; }
     }
 
-    public partial class Obj5
-    {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
-
-        [JsonProperty("union", Required = Required.Always)]
-        public Union Union { get; set; }
-
-        [JsonProperty("unowned", Required = Required.Always)]
-        public Unowned Unowned { get; set; }
-
-        [JsonProperty("unsafe", Required = Required.Always)]
-        public Unsafe Unsafe { get; set; }
-
-        [JsonProperty("unsigned", Required = Required.Always)]
-        public Unsigned Unsigned { get; set; }
-
-        [JsonProperty("ushort", Required = Required.Always)]
-        public Ushort Ushort { get; set; }
-
-        [JsonProperty("using", Required = Required.Always)]
-        public Using Using { get; set; }
-
-        [JsonProperty("Utf8JsonReader", Required = Required.Always)]
-        public Utf8JsonReader Utf8JsonReader { get; set; }
-
-        [JsonProperty("Utf8JsonWriter", Required = Required.Always)]
-        public Utf8JsonWriter Utf8JsonWriter { get; set; }
-
-        [JsonProperty("UUID", Required = Required.Always)]
-        public Uuid Uuid { get; set; }
-
-        [JsonProperty("var", Required = Required.Always)]
-        public Var Var { get; set; }
-
-        [JsonProperty("virtual", Required = Required.Always)]
-        public Virtual Virtual { get; set; }
-
-        [JsonProperty("void", Required = Required.Always)]
-        public Void Void { get; set; }
-
-        [JsonProperty("volatile", Required = Required.Always)]
-        public Volatile Volatile { get; set; }
-
-        [JsonProperty("wchar_t", Required = Required.Always)]
-        public WcharT WcharT { get; set; }
-
-        [JsonProperty("weak", Required = Required.Always)]
-        public Weak Weak { get; set; }
-
-        [JsonProperty("where", Required = Required.Always)]
-        public Where Where { get; set; }
-
-        [JsonProperty("while", Required = Required.Always)]
-        public While While { get; set; }
-
-        [JsonProperty("willSet", Required = Required.Always)]
-        public WillSet WillSet { get; set; }
-
-        [JsonProperty("with", Required = Required.Always)]
-        public With With { get; set; }
-
-        [JsonProperty("xor", Required = Required.Always)]
-        public Xor Xor { get; set; }
-
-        [JsonProperty("xor_eq", Required = Required.Always)]
-        public XorEq XorEq { get; set; }
-
-        [JsonProperty("YES", Required = Required.Always)]
-        public Yes Yes { get; set; }
-
-        [JsonProperty("yield", Required = Required.Always)]
-        public Yield Yield { get; set; }
-    }
-
     public partial class Union
     {
         [JsonProperty("union", Required = Required.Always)]
diff --git a/base/csharp-SystemTextJson/test/inputs/json/priority/keywords.json/default/QuickType.cs b/head/csharp-SystemTextJson/test/inputs/json/priority/keywords.json/default/QuickType.cs
index 19e7be2..624e5ab 100644
--- a/base/csharp-SystemTextJson/test/inputs/json/priority/keywords.json/default/QuickType.cs
+++ b/head/csharp-SystemTextJson/test/inputs/json/priority/keywords.json/default/QuickType.cs
@@ -281,34 +281,6 @@ namespace QuickType
         [JsonPropertyName("date_parse_handling")]
         public DateParseHandling DateParseHandling { get; set; }
 
-        [JsonRequired]
-        [JsonPropertyName("DateTime")]
-        public DateTime DateTime { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("DateTimeStyles")]
-        public DateTimeStylesClass DateTimeStyles { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("debugger")]
-        public Debugger Debugger { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("decimal")]
-        public Decimal Decimal { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("declare")]
-        public Declare Declare { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("decltype")]
-        public Decltype Decltype { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("decode_string")]
-        public DecodeString DecodeString { get; set; }
-
         [JsonRequired]
         [JsonPropertyName("dummy")]
         public long Dummy { get; set; }
@@ -744,55 +716,6 @@ namespace QuickType
         public long DateParseHandlingDateParseHandling { get; set; }
     }
 
-    public partial class DateTime
-    {
-        [JsonRequired]
-        [JsonPropertyName("DateTime")]
-        public DateTimeOffset DateTimeDateTime { get; set; }
-    }
-
-    public partial class DateTimeStylesClass
-    {
-        [JsonRequired]
-        [JsonPropertyName("DateTimeStyles")]
-        public long DateTimeStyles { get; set; }
-    }
-
-    public partial class Debugger
-    {
-        [JsonRequired]
-        [JsonPropertyName("debugger")]
-        public long DebuggerDebugger { get; set; }
-    }
-
-    public partial class Decimal
-    {
-        [JsonRequired]
-        [JsonPropertyName("decimal")]
-        public long DecimalDecimal { get; set; }
-    }
-
-    public partial class Declare
-    {
-        [JsonRequired]
-        [JsonPropertyName("declare")]
-        public long DeclareDeclare { get; set; }
-    }
-
-    public partial class Decltype
-    {
-        [JsonRequired]
-        [JsonPropertyName("decltype")]
-        public long DecltypeDecltype { get; set; }
-    }
-
-    public partial class DecodeString
-    {
-        [JsonRequired]
-        [JsonPropertyName("decode_string")]
-        public long DecodeStringDecodeString { get; set; }
-    }
-
     public partial class Empty
     {
         [JsonRequired]
@@ -837,6 +760,34 @@ namespace QuickType
 
     public partial class Obj2
     {
+        [JsonRequired]
+        [JsonPropertyName("DateTime")]
+        public DateTime DateTime { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("DateTimeStyles")]
+        public DateTimeStylesClass DateTimeStyles { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("debugger")]
+        public Debugger Debugger { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("decimal")]
+        public Decimal Decimal { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("declare")]
+        public Declare Declare { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("decltype")]
+        public Decltype Decltype { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("decode_string")]
+        public DecodeString DecodeString { get; set; }
+
         [JsonRequired]
         [JsonPropertyName("def")]
         public Def Def { get; set; }
@@ -1062,56 +1013,61 @@ namespace QuickType
         public Implicit Implicit { get; set; }
 
         [JsonRequired]
-        [JsonPropertyName("import")]
-        public Import Import { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("in")]
-        public In In { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("indirect")]
-        public Indirect Indirect { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("infix")]
-        public Infix Infix { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("init")]
-        public Init Init { get; set; }
+        [JsonPropertyName("false")]
+        public FalseClass Obj2False { get; set; }
 
         [JsonRequired]
-        [JsonPropertyName("inline")]
-        public Inline Inline { get; set; }
+        [JsonPropertyName("from_json")]
+        public FromJsonClass Obj2FromJson { get; set; }
+    }
 
+    public partial class DateTime
+    {
         [JsonRequired]
-        [JsonPropertyName("inout")]
-        public Inout Inout { get; set; }
+        [JsonPropertyName("DateTime")]
+        public DateTimeOffset DateTimeDateTime { get; set; }
+    }
 
+    public partial class DateTimeStylesClass
+    {
         [JsonRequired]
-        [JsonPropertyName("instanceof")]
-        public Instanceof Instanceof { get; set; }
+        [JsonPropertyName("DateTimeStyles")]
+        public long DateTimeStyles { get; set; }
+    }
 
+    public partial class Debugger
+    {
         [JsonRequired]
-        [JsonPropertyName("int")]
-        public Int Int { get; set; }
+        [JsonPropertyName("debugger")]
+        public long DebuggerDebugger { get; set; }
+    }
 
+    public partial class Decimal
+    {
         [JsonRequired]
-        [JsonPropertyName("interface")]
-        public Interface Interface { get; set; }
+        [JsonPropertyName("decimal")]
+        public long DecimalDecimal { get; set; }
+    }
 
+    public partial class Declare
+    {
         [JsonRequired]
-        [JsonPropertyName("internal")]
-        public Internal Internal { get; set; }
+        [JsonPropertyName("declare")]
+        public long DeclareDeclare { get; set; }
+    }
 
+    public partial class Decltype
+    {
         [JsonRequired]
-        [JsonPropertyName("false")]
-        public FalseClass Obj2False { get; set; }
+        [JsonPropertyName("decltype")]
+        public long DecltypeDecltype { get; set; }
+    }
 
+    public partial class DecodeString
+    {
         [JsonRequired]
-        [JsonPropertyName("from_json")]
-        public FromJsonClass Obj2FromJson { get; set; }
+        [JsonPropertyName("decode_string")]
+        public long DecodeStringDecodeString { get; set; }
     }
 
     public partial class Def
@@ -1499,106 +1455,73 @@ namespace QuickType
         public long ImplicitImplicit { get; set; }
     }
 
-    public partial class Import
+    public partial class FalseClass
     {
         [JsonRequired]
-        [JsonPropertyName("import")]
-        public long ImportImport { get; set; }
+        [JsonPropertyName("false")]
+        public long False { get; set; }
     }
 
-    public partial class In
+    public partial class FromJsonClass
     {
         [JsonRequired]
-        [JsonPropertyName("in")]
-        public long InIn { get; set; }
+        [JsonPropertyName("from_json")]
+        public long FromJsonFromJson { get; set; }
     }
 
-    public partial class Indirect
+    public partial class Obj3
     {
+        [JsonRequired]
+        [JsonPropertyName("dummy")]
+        public long Dummy { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("import")]
+        public Import Import { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("in")]
+        public In In { get; set; }
+
         [JsonRequired]
         [JsonPropertyName("indirect")]
-        public long IndirectIndirect { get; set; }
-    }
+        public Indirect Indirect { get; set; }
 
-    public partial class Infix
-    {
         [JsonRequired]
         [JsonPropertyName("infix")]
-        public long InfixInfix { get; set; }
-    }
+        public Infix Infix { get; set; }
 
-    public partial class Init
-    {
         [JsonRequired]
         [JsonPropertyName("init")]
-        public long InitInit { get; set; }
-    }
+        public Init Init { get; set; }
 
-    public partial class Inline
-    {
         [JsonRequired]
         [JsonPropertyName("inline")]
-        public long InlineInline { get; set; }
-    }
+        public Inline Inline { get; set; }
 
-    public partial class Inout
-    {
         [JsonRequired]
         [JsonPropertyName("inout")]
-        public long InoutInout { get; set; }
-    }
+        public Inout Inout { get; set; }
 
-    public partial class Instanceof
-    {
         [JsonRequired]
         [JsonPropertyName("instanceof")]
-        public long InstanceofInstanceof { get; set; }
-    }
+        public Instanceof Instanceof { get; set; }
 
-    public partial class Int
-    {
         [JsonRequired]
         [JsonPropertyName("int")]
-        public long IntInt { get; set; }
-    }
+        public Int Int { get; set; }
 
-    public partial class Interface
-    {
         [JsonRequired]
         [JsonPropertyName("interface")]
-        public long InterfaceInterface { get; set; }
-    }
+        public Interface Interface { get; set; }
 
-    public partial class Internal
-    {
         [JsonRequired]
         [JsonPropertyName("internal")]
-        public long InternalInternal { get; set; }
-    }
+        public Internal Internal { get; set; }
 
-    public partial class FalseClass
-    {
         [JsonRequired]
-        [JsonPropertyName("false")]
-        public long False { get; set; }
-    }
-
-    public partial class FromJsonClass
-    {
-        [JsonRequired]
-        [JsonPropertyName("from_json")]
-        public long FromJsonFromJson { get; set; }
-    }
-
-    public partial class Obj3
-    {
-        [JsonRequired]
-        [JsonPropertyName("dummy")]
-        public long Dummy { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("is")]
-        public Is Is { get; set; }
+        [JsonPropertyName("is")]
+        public Is Is { get; set; }
 
         [JsonRequired]
         [JsonPropertyName("IsoDateTimeOffsetConverter")]
@@ -1800,14 +1723,6 @@ namespace QuickType
         [JsonPropertyName("NULL")]
         public Null Null { get; set; }
 
-        [JsonRequired]
-        [JsonPropertyName("nullptr")]
-        public Nullptr Nullptr { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("number")]
-        public Number Number { get; set; }
-
         [JsonRequired]
         [JsonPropertyName("none")]
         public NoneClass Obj3None { get; set; }
@@ -1815,122 +1730,83 @@ namespace QuickType
         [JsonRequired]
         [JsonPropertyName("null")]
         public NullClass Obj3Null { get; set; }
+    }
 
+    public partial class Import
+    {
         [JsonRequired]
-        [JsonPropertyName("protocol")]
-        public ProtocolClass Obj3Protocol { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("object")]
-        public Object Object { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("ObjectMapper")]
-        public ObjectMapper ObjectMapper { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("of")]
-        public Of Of { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("oneway")]
-        public Oneway Oneway { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("open")]
-        public Open Open { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("operator")]
-        public Operator Operator { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("optional")]
-        public Optional Optional { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("or")]
-        public Or Or { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("or_eq")]
-        public OrEq OrEq { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("out")]
-        public Out Out { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("override")]
-        public Override Override { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("package")]
-        public Package Package { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("params")]
-        public Params Params { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("pass")]
-        public Pass Pass { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("port")]
-        public Port Port { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("postfix")]
-        public Postfix Postfix { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("precedence")]
-        public Precedence Precedence { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("prefix")]
-        public Prefix Prefix { get; set; }
+        [JsonPropertyName("import")]
+        public long ImportImport { get; set; }
+    }
 
+    public partial class In
+    {
         [JsonRequired]
-        [JsonPropertyName("print")]
-        public Print Print { get; set; }
+        [JsonPropertyName("in")]
+        public long InIn { get; set; }
+    }
 
+    public partial class Indirect
+    {
         [JsonRequired]
-        [JsonPropertyName("printMembers")]
-        public PrintMembers PrintMembers { get; set; }
+        [JsonPropertyName("indirect")]
+        public long IndirectIndirect { get; set; }
+    }
 
+    public partial class Infix
+    {
         [JsonRequired]
-        [JsonPropertyName("printf")]
-        public Printf Printf { get; set; }
+        [JsonPropertyName("infix")]
+        public long InfixInfix { get; set; }
+    }
 
+    public partial class Init
+    {
         [JsonRequired]
-        [JsonPropertyName("private")]
-        public Private Private { get; set; }
+        [JsonPropertyName("init")]
+        public long InitInit { get; set; }
+    }
 
+    public partial class Inline
+    {
         [JsonRequired]
-        [JsonPropertyName("protected")]
-        public Protected Protected { get; set; }
+        [JsonPropertyName("inline")]
+        public long InlineInline { get; set; }
+    }
 
+    public partial class Inout
+    {
         [JsonRequired]
-        [JsonPropertyName("Protocol")]
-        public Protocol Protocol { get; set; }
+        [JsonPropertyName("inout")]
+        public long InoutInout { get; set; }
+    }
 
+    public partial class Instanceof
+    {
         [JsonRequired]
-        [JsonPropertyName("SerializerProvider")]
-        public SerializerProvider SerializerProvider { get; set; }
+        [JsonPropertyName("instanceof")]
+        public long InstanceofInstanceof { get; set; }
+    }
 
+    public partial class Int
+    {
         [JsonRequired]
-        [JsonPropertyName("SimpleModule")]
-        public SimpleModule SimpleModule { get; set; }
+        [JsonPropertyName("int")]
+        public long IntInt { get; set; }
+    }
 
+    public partial class Interface
+    {
         [JsonRequired]
-        [JsonPropertyName("StdDeserializer")]
-        public StdDeserializer StdDeserializer { get; set; }
+        [JsonPropertyName("interface")]
+        public long InterfaceInterface { get; set; }
+    }
 
+    public partial class Internal
+    {
         [JsonRequired]
-        [JsonPropertyName("StdSerializer")]
-        public StdSerializer StdSerializer { get; set; }
+        [JsonPropertyName("internal")]
+        public long InternalInternal { get; set; }
     }
 
     public partial class Is
@@ -2290,20 +2166,6 @@ namespace QuickType
         public long NullNull { get; set; }
     }
 
-    public partial class Nullptr
-    {
-        [JsonRequired]
-        [JsonPropertyName("nullptr")]
-        public long NullptrNullptr { get; set; }
-    }
-
-    public partial class Number
-    {
-        [JsonRequired]
-        [JsonPropertyName("number")]
-        public long NumberNumber { get; set; }
-    }
-
     public partial class NoneClass
     {
         [JsonRequired]
@@ -2318,238 +2180,127 @@ namespace QuickType
         public long Null { get; set; }
     }
 
-    public partial class ProtocolClass
+    public partial class Obj4
     {
+        [JsonRequired]
+        [JsonPropertyName("dummy")]
+        public long Dummy { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("nullptr")]
+        public Nullptr Nullptr { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("number")]
+        public Number Number { get; set; }
+
         [JsonRequired]
         [JsonPropertyName("protocol")]
-        public long Protocol { get; set; }
-    }
+        public ProtocolClass Obj4Protocol { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("required")]
+        public RequiredClass Obj4Required { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("self")]
+        public SelfClass Obj4Self { get; set; }
 
-    public partial class Object
-    {
         [JsonRequired]
         [JsonPropertyName("object")]
-        public long ObjectObject { get; set; }
-    }
+        public Object Object { get; set; }
 
-    public partial class ObjectMapper
-    {
         [JsonRequired]
         [JsonPropertyName("ObjectMapper")]
-        public long ObjectMapperObjectMapper { get; set; }
-    }
+        public ObjectMapper ObjectMapper { get; set; }
 
-    public partial class Of
-    {
         [JsonRequired]
         [JsonPropertyName("of")]
-        public long OfOf { get; set; }
-    }
+        public Of Of { get; set; }
 
-    public partial class Oneway
-    {
         [JsonRequired]
         [JsonPropertyName("oneway")]
-        public long OnewayOneway { get; set; }
-    }
+        public Oneway Oneway { get; set; }
 
-    public partial class Open
-    {
         [JsonRequired]
         [JsonPropertyName("open")]
-        public long OpenOpen { get; set; }
-    }
+        public Open Open { get; set; }
 
-    public partial class Operator
-    {
         [JsonRequired]
         [JsonPropertyName("operator")]
-        public long OperatorOperator { get; set; }
-    }
+        public Operator Operator { get; set; }
 
-    public partial class Optional
-    {
         [JsonRequired]
         [JsonPropertyName("optional")]
-        public long OptionalOptional { get; set; }
-    }
+        public Optional Optional { get; set; }
 
-    public partial class Or
-    {
         [JsonRequired]
         [JsonPropertyName("or")]
-        public long OrOr { get; set; }
-    }
+        public Or Or { get; set; }
 
-    public partial class OrEq
-    {
         [JsonRequired]
         [JsonPropertyName("or_eq")]
-        public long OrEqOrEq { get; set; }
-    }
+        public OrEq OrEq { get; set; }
 
-    public partial class Out
-    {
         [JsonRequired]
         [JsonPropertyName("out")]
-        public long OutOut { get; set; }
-    }
+        public Out Out { get; set; }
 
-    public partial class Override
-    {
         [JsonRequired]
         [JsonPropertyName("override")]
-        public long OverrideOverride { get; set; }
-    }
+        public Override Override { get; set; }
 
-    public partial class Package
-    {
         [JsonRequired]
         [JsonPropertyName("package")]
-        public long PackagePackage { get; set; }
-    }
+        public Package Package { get; set; }
 
-    public partial class Params
-    {
         [JsonRequired]
         [JsonPropertyName("params")]
-        public long ParamsParams { get; set; }
-    }
+        public Params Params { get; set; }
 
-    public partial class Pass
-    {
         [JsonRequired]
         [JsonPropertyName("pass")]
-        public long PassPass { get; set; }
-    }
+        public Pass Pass { get; set; }
 
-    public partial class Port
-    {
         [JsonRequired]
         [JsonPropertyName("port")]
-        public long PortPort { get; set; }
-    }
+        public Port Port { get; set; }
 
-    public partial class Postfix
-    {
         [JsonRequired]
         [JsonPropertyName("postfix")]
-        public long PostfixPostfix { get; set; }
-    }
+        public Postfix Postfix { get; set; }
 
-    public partial class Precedence
-    {
         [JsonRequired]
         [JsonPropertyName("precedence")]
-        public long PrecedencePrecedence { get; set; }
-    }
+        public Precedence Precedence { get; set; }
 
-    public partial class Prefix
-    {
         [JsonRequired]
         [JsonPropertyName("prefix")]
-        public long PrefixPrefix { get; set; }
-    }
+        public Prefix Prefix { get; set; }
 
-    public partial class Print
-    {
         [JsonRequired]
         [JsonPropertyName("print")]
-        public long PrintPrint { get; set; }
-    }
+        public Print Print { get; set; }
 
-    public partial class PrintMembers
-    {
         [JsonRequired]
         [JsonPropertyName("printMembers")]
-        public long PrintMembersPrintMembers { get; set; }
-    }
+        public PrintMembers PrintMembers { get; set; }
 
-    public partial class Printf
-    {
         [JsonRequired]
         [JsonPropertyName("printf")]
-        public long PrintfPrintf { get; set; }
-    }
+        public Printf Printf { get; set; }
 
-    public partial class Private
-    {
         [JsonRequired]
         [JsonPropertyName("private")]
-        public long PrivatePrivate { get; set; }
-    }
+        public Private Private { get; set; }
 
-    public partial class Protected
-    {
         [JsonRequired]
         [JsonPropertyName("protected")]
-        public long ProtectedProtected { get; set; }
-    }
+        public Protected Protected { get; set; }
 
-    public partial class Protocol
-    {
         [JsonRequired]
         [JsonPropertyName("Protocol")]
-        public long ProtocolProtocol { get; set; }
-    }
-
-    public partial class SerializerProvider
-    {
-        [JsonRequired]
-        [JsonPropertyName("SerializerProvider")]
-        public long SerializerProviderSerializerProvider { get; set; }
-    }
-
-    public partial class SimpleModule
-    {
-        [JsonRequired]
-        [JsonPropertyName("SimpleModule")]
-        public long SimpleModuleSimpleModule { get; set; }
-    }
-
-    public partial class StdDeserializer
-    {
-        [JsonRequired]
-        [JsonPropertyName("StdDeserializer")]
-        public long StdDeserializerStdDeserializer { get; set; }
-    }
-
-    public partial class StdSerializer
-    {
-        [JsonRequired]
-        [JsonPropertyName("StdSerializer")]
-        public long StdSerializerStdSerializer { get; set; }
-    }
-
-    public partial class Obj4
-    {
-        [JsonRequired]
-        [JsonPropertyName("dummy")]
-        public long Dummy { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("required")]
-        public RequiredClass Obj4Required { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("self")]
-        public SelfClass Obj4Self { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("to_json")]
-        public ToJson Obj4ToJson { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("toString")]
-        public ToString Obj4ToString { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("true")]
-        public TrueClass Obj4True { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("type")]
-        public Obj4Type Obj4Type { get; set; }
+        public Protocol Protocol { get; set; }
 
         [JsonRequired]
         [JsonPropertyName("public")]
@@ -2651,6 +2402,10 @@ namespace QuickType
         [JsonPropertyName("serialize")]
         public SerializeClass Serialize { get; set; }
 
+        [JsonRequired]
+        [JsonPropertyName("SerializerProvider")]
+        public SerializerProvider SerializerProvider { get; set; }
+
         [JsonRequired]
         [JsonPropertyName("set")]
         public Set Set { get; set; }
@@ -2663,6 +2418,10 @@ namespace QuickType
         [JsonPropertyName("signed")]
         public Signed Signed { get; set; }
 
+        [JsonRequired]
+        [JsonPropertyName("SimpleModule")]
+        public SimpleModule SimpleModule { get; set; }
+
         [JsonRequired]
         [JsonPropertyName("sizeof")]
         public Sizeof Sizeof { get; set; }
@@ -2682,176 +2441,209 @@ namespace QuickType
         [JsonRequired]
         [JsonPropertyName("static_assert")]
         public StaticAssert StaticAssert { get; set; }
+    }
 
+    public partial class Nullptr
+    {
         [JsonRequired]
-        [JsonPropertyName("static_cast")]
-        public StaticCast StaticCast { get; set; }
+        [JsonPropertyName("nullptr")]
+        public long NullptrNullptr { get; set; }
+    }
 
+    public partial class Number
+    {
         [JsonRequired]
-        [JsonPropertyName("strictfp")]
-        public Strictfp Strictfp { get; set; }
+        [JsonPropertyName("number")]
+        public long NumberNumber { get; set; }
+    }
 
+    public partial class ProtocolClass
+    {
         [JsonRequired]
-        [JsonPropertyName("string")]
-        public String String { get; set; }
+        [JsonPropertyName("protocol")]
+        public long Protocol { get; set; }
+    }
 
+    public partial class RequiredClass
+    {
         [JsonRequired]
-        [JsonPropertyName("struct")]
-        public Struct Struct { get; set; }
+        [JsonPropertyName("required")]
+        public long RequiredRequired { get; set; }
+    }
 
+    public partial class SelfClass
+    {
         [JsonRequired]
-        [JsonPropertyName("subscript")]
-        public Subscript Subscript { get; set; }
+        [JsonPropertyName("self")]
+        public long Self { get; set; }
+    }
 
+    public partial class Object
+    {
         [JsonRequired]
-        [JsonPropertyName("super")]
-        public Super Super { get; set; }
+        [JsonPropertyName("object")]
+        public long ObjectObject { get; set; }
+    }
 
+    public partial class ObjectMapper
+    {
         [JsonRequired]
-        [JsonPropertyName("switch")]
-        public Switch Switch { get; set; }
+        [JsonPropertyName("ObjectMapper")]
+        public long ObjectMapperObjectMapper { get; set; }
+    }
 
+    public partial class Of
+    {
         [JsonRequired]
-        [JsonPropertyName("symbol")]
-        public Symbol Symbol { get; set; }
+        [JsonPropertyName("of")]
+        public long OfOf { get; set; }
+    }
 
+    public partial class Oneway
+    {
         [JsonRequired]
-        [JsonPropertyName("synchronized")]
-        public Synchronized Synchronized { get; set; }
+        [JsonPropertyName("oneway")]
+        public long OnewayOneway { get; set; }
+    }
 
+    public partial class Open
+    {
         [JsonRequired]
-        [JsonPropertyName("system")]
-        public SystemClass System { get; set; }
+        [JsonPropertyName("open")]
+        public long OpenOpen { get; set; }
+    }
 
+    public partial class Operator
+    {
         [JsonRequired]
-        [JsonPropertyName("template")]
-        public Template Template { get; set; }
+        [JsonPropertyName("operator")]
+        public long OperatorOperator { get; set; }
+    }
 
+    public partial class Optional
+    {
         [JsonRequired]
-        [JsonPropertyName("then")]
-        public Then Then { get; set; }
+        [JsonPropertyName("optional")]
+        public long OptionalOptional { get; set; }
+    }
 
+    public partial class Or
+    {
         [JsonRequired]
-        [JsonPropertyName("this")]
-        public This This { get; set; }
+        [JsonPropertyName("or")]
+        public long OrOr { get; set; }
+    }
 
+    public partial class OrEq
+    {
         [JsonRequired]
-        [JsonPropertyName("thread_local")]
-        public ThreadLocal ThreadLocal { get; set; }
+        [JsonPropertyName("or_eq")]
+        public long OrEqOrEq { get; set; }
+    }
 
+    public partial class Out
+    {
         [JsonRequired]
-        [JsonPropertyName("throw")]
-        public Throw Throw { get; set; }
+        [JsonPropertyName("out")]
+        public long OutOut { get; set; }
+    }
 
+    public partial class Override
+    {
         [JsonRequired]
-        [JsonPropertyName("throws")]
-        public Throws Throws { get; set; }
+        [JsonPropertyName("override")]
+        public long OverrideOverride { get; set; }
+    }
 
+    public partial class Package
+    {
         [JsonRequired]
-        [JsonPropertyName("TimeOnly")]
-        public TimeOnlyClass TimeOnly { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("TimeOnlyConverter")]
-        public TimeOnlyConverterClass TimeOnlyConverter { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("top_level")]
-        public TopLevelClass TopLevel { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("transient")]
-        public Transient Transient { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("True")]
-        public True True { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("try")]
-        public Try Try { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("Type")]
-        public TypeClass Type { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("typealias")]
-        public Typealias Typealias { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("typedef")]
-        public Typedef Typedef { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("typeid")]
-        public Typeid Typeid { get; set; }
+        [JsonPropertyName("package")]
+        public long PackagePackage { get; set; }
+    }
 
+    public partial class Params
+    {
         [JsonRequired]
-        [JsonPropertyName("typename")]
-        public Typename Typename { get; set; }
+        [JsonPropertyName("params")]
+        public long ParamsParams { get; set; }
+    }
 
+    public partial class Pass
+    {
         [JsonRequired]
-        [JsonPropertyName("typeof")]
-        public Typeof Typeof { get; set; }
+        [JsonPropertyName("pass")]
+        public long PassPass { get; set; }
+    }
 
+    public partial class Port
+    {
         [JsonRequired]
-        [JsonPropertyName("uint")]
-        public Uint Uint { get; set; }
+        [JsonPropertyName("port")]
+        public long PortPort { get; set; }
+    }
 
+    public partial class Postfix
+    {
         [JsonRequired]
-        [JsonPropertyName("ulong")]
-        public Ulong Ulong { get; set; }
+        [JsonPropertyName("postfix")]
+        public long PostfixPostfix { get; set; }
+    }
 
+    public partial class Precedence
+    {
         [JsonRequired]
-        [JsonPropertyName("unchecked")]
-        public Unchecked Unchecked { get; set; }
+        [JsonPropertyName("precedence")]
+        public long PrecedencePrecedence { get; set; }
+    }
 
+    public partial class Prefix
+    {
         [JsonRequired]
-        [JsonPropertyName("undefined")]
-        public Undefined Undefined { get; set; }
+        [JsonPropertyName("prefix")]
+        public long PrefixPrefix { get; set; }
     }
 
-    public partial class RequiredClass
+    public partial class Print
     {
         [JsonRequired]
-        [JsonPropertyName("required")]
-        public long RequiredRequired { get; set; }
+        [JsonPropertyName("print")]
+        public long PrintPrint { get; set; }
     }
 
-    public partial class SelfClass
+    public partial class PrintMembers
     {
         [JsonRequired]
-        [JsonPropertyName("self")]
-        public long Self { get; set; }
+        [JsonPropertyName("printMembers")]
+        public long PrintMembersPrintMembers { get; set; }
     }
 
-    public partial class ToJson
+    public partial class Printf
     {
         [JsonRequired]
-        [JsonPropertyName("to_json")]
-        public long ToJsonToJson { get; set; }
+        [JsonPropertyName("printf")]
+        public long PrintfPrintf { get; set; }
     }
 
-    public partial class ToString
+    public partial class Private
     {
         [JsonRequired]
-        [JsonPropertyName("toString")]
-        public long ToStringToString { get; set; }
+        [JsonPropertyName("private")]
+        public long PrivatePrivate { get; set; }
     }
 
-    public partial class TrueClass
+    public partial class Protected
     {
         [JsonRequired]
-        [JsonPropertyName("true")]
-        public long True { get; set; }
+        [JsonPropertyName("protected")]
+        public long ProtectedProtected { get; set; }
     }
 
-    public partial class Obj4Type
+    public partial class Protocol
     {
         [JsonRequired]
-        [JsonPropertyName("type")]
-        public long Type { get; set; }
+        [JsonPropertyName("Protocol")]
+        public long ProtocolProtocol { get; set; }
     }
 
     public partial class Public
@@ -2927,169 +2719,476 @@ namespace QuickType
     public partial class Require
     {
         [JsonRequired]
-        [JsonPropertyName("require")]
-        public long RequireRequire { get; set; }
-    }
+        [JsonPropertyName("require")]
+        public long RequireRequire { get; set; }
+    }
+
+    public partial class Requires
+    {
+        [JsonRequired]
+        [JsonPropertyName("requires")]
+        public long RequiresRequires { get; set; }
+    }
+
+    public partial class Restrict
+    {
+        [JsonRequired]
+        [JsonPropertyName("restrict")]
+        public long RestrictRestrict { get; set; }
+    }
+
+    public partial class Retain
+    {
+        [JsonRequired]
+        [JsonPropertyName("retain")]
+        public long RetainRetain { get; set; }
+    }
+
+    public partial class Rethrows
+    {
+        [JsonRequired]
+        [JsonPropertyName("rethrows")]
+        public long RethrowsRethrows { get; set; }
+    }
+
+    public partial class Return
+    {
+        [JsonRequired]
+        [JsonPropertyName("return")]
+        public long ReturnReturn { get; set; }
+    }
+
+    public partial class Right
+    {
+        [JsonRequired]
+        [JsonPropertyName("right")]
+        public long RightRight { get; set; }
+    }
+
+    public partial class RuntimeType
+    {
+        [JsonRequired]
+        [JsonPropertyName("runtimeType")]
+        public long RuntimeTypeRuntimeType { get; set; }
+    }
+
+    public partial class S
+    {
+        [JsonRequired]
+        [JsonPropertyName("s")]
+        public long SS { get; set; }
+    }
+
+    public partial class Sbyte
+    {
+        [JsonRequired]
+        [JsonPropertyName("sbyte")]
+        public long SbyteSbyte { get; set; }
+    }
+
+    public partial class Sealed
+    {
+        [JsonRequired]
+        [JsonPropertyName("sealed")]
+        public long SealedSealed { get; set; }
+    }
+
+    public partial class Sel
+    {
+        [JsonRequired]
+        [JsonPropertyName("SEL")]
+        public long SelSel { get; set; }
+    }
+
+    public partial class Select
+    {
+        [JsonRequired]
+        [JsonPropertyName("select")]
+        public long SelectSelect { get; set; }
+    }
+
+    public partial class Self
+    {
+        [JsonRequired]
+        [JsonPropertyName("Self")]
+        public long SelfSelf { get; set; }
+    }
+
+    public partial class SerializeClass
+    {
+        [JsonRequired]
+        [JsonPropertyName("serialize")]
+        public long Serialize { get; set; }
+    }
+
+    public partial class SerializerProvider
+    {
+        [JsonRequired]
+        [JsonPropertyName("SerializerProvider")]
+        public long SerializerProviderSerializerProvider { get; set; }
+    }
+
+    public partial class Set
+    {
+        [JsonRequired]
+        [JsonPropertyName("set")]
+        public long SetSet { get; set; }
+    }
+
+    public partial class Short
+    {
+        [JsonRequired]
+        [JsonPropertyName("short")]
+        public long ShortShort { get; set; }
+    }
+
+    public partial class Signed
+    {
+        [JsonRequired]
+        [JsonPropertyName("signed")]
+        public long SignedSigned { get; set; }
+    }
+
+    public partial class SimpleModule
+    {
+        [JsonRequired]
+        [JsonPropertyName("SimpleModule")]
+        public long SimpleModuleSimpleModule { get; set; }
+    }
+
+    public partial class Sizeof
+    {
+        [JsonRequired]
+        [JsonPropertyName("sizeof")]
+        public long SizeofSizeof { get; set; }
+    }
+
+    public partial class Stackalloc
+    {
+        [JsonRequired]
+        [JsonPropertyName("stackalloc")]
+        public long StackallocStackalloc { get; set; }
+    }
+
+    public partial class Standards
+    {
+        [JsonRequired]
+        [JsonPropertyName("Standards")]
+        public long StandardsStandards { get; set; }
+    }
+
+    public partial class Static
+    {
+        [JsonRequired]
+        [JsonPropertyName("static")]
+        public long StaticStatic { get; set; }
+    }
+
+    public partial class StaticAssert
+    {
+        [JsonRequired]
+        [JsonPropertyName("static_assert")]
+        public long StaticAssertStaticAssert { get; set; }
+    }
+
+    public partial class Obj5
+    {
+        [JsonRequired]
+        [JsonPropertyName("dummy")]
+        public long Dummy { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("to_json")]
+        public ToJson Obj5ToJson { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("toString")]
+        public ToString Obj5ToString { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("true")]
+        public TrueClass Obj5True { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("type")]
+        public Obj5Type Obj5Type { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("static_cast")]
+        public StaticCast StaticCast { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("StdDeserializer")]
+        public StdDeserializer StdDeserializer { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("StdSerializer")]
+        public StdSerializer StdSerializer { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("strictfp")]
+        public Strictfp Strictfp { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("string")]
+        public String String { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("struct")]
+        public Struct Struct { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("subscript")]
+        public Subscript Subscript { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("super")]
+        public Super Super { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("switch")]
+        public Switch Switch { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("symbol")]
+        public Symbol Symbol { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("synchronized")]
+        public Synchronized Synchronized { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("system")]
+        public SystemClass System { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("template")]
+        public Template Template { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("then")]
+        public Then Then { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("this")]
+        public This This { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("thread_local")]
+        public ThreadLocal ThreadLocal { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("throw")]
+        public Throw Throw { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("throws")]
+        public Throws Throws { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("TimeOnly")]
+        public TimeOnlyClass TimeOnly { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("TimeOnlyConverter")]
+        public TimeOnlyConverterClass TimeOnlyConverter { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("top_level")]
+        public TopLevelClass TopLevel { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("transient")]
+        public Transient Transient { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("True")]
+        public True True { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("try")]
+        public Try Try { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("Type")]
+        public TypeClass Type { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("typealias")]
+        public Typealias Typealias { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("typedef")]
+        public Typedef Typedef { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("typeid")]
+        public Typeid Typeid { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("typename")]
+        public Typename Typename { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("typeof")]
+        public Typeof Typeof { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("uint")]
+        public Uint Uint { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("ulong")]
+        public Ulong Ulong { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("unchecked")]
+        public Unchecked Unchecked { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("undefined")]
+        public Undefined Undefined { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("union")]
+        public Union Union { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("unowned")]
+        public Unowned Unowned { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("unsafe")]
+        public Unsafe Unsafe { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("unsigned")]
+        public Unsigned Unsigned { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("ushort")]
+        public Ushort Ushort { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("using")]
+        public Using Using { get; set; }
+
+        [JsonRequired]
+        [JsonPropertyName("Utf8JsonReader")]
+        public Utf8JsonReaderClass Utf8JsonReader { get; set; }
 
-    public partial class Requires
-    {
         [JsonRequired]
-        [JsonPropertyName("requires")]
-        public long RequiresRequires { get; set; }
-    }
+        [JsonPropertyName("Utf8JsonWriter")]
+        public Utf8JsonWriterClass Utf8JsonWriter { get; set; }
 
-    public partial class Restrict
-    {
         [JsonRequired]
-        [JsonPropertyName("restrict")]
-        public long RestrictRestrict { get; set; }
-    }
+        [JsonPropertyName("UUID")]
+        public Uuid Uuid { get; set; }
 
-    public partial class Retain
-    {
         [JsonRequired]
-        [JsonPropertyName("retain")]
-        public long RetainRetain { get; set; }
-    }
+        [JsonPropertyName("var")]
+        public Var Var { get; set; }
 
-    public partial class Rethrows
-    {
         [JsonRequired]
-        [JsonPropertyName("rethrows")]
-        public long RethrowsRethrows { get; set; }
-    }
+        [JsonPropertyName("virtual")]
+        public Virtual Virtual { get; set; }
 
-    public partial class Return
-    {
         [JsonRequired]
-        [JsonPropertyName("return")]
-        public long ReturnReturn { get; set; }
-    }
+        [JsonPropertyName("void")]
+        public Void Void { get; set; }
 
-    public partial class Right
-    {
         [JsonRequired]
-        [JsonPropertyName("right")]
-        public long RightRight { get; set; }
-    }
+        [JsonPropertyName("volatile")]
+        public Volatile Volatile { get; set; }
 
-    public partial class RuntimeType
-    {
         [JsonRequired]
-        [JsonPropertyName("runtimeType")]
-        public long RuntimeTypeRuntimeType { get; set; }
-    }
+        [JsonPropertyName("wchar_t")]
+        public WcharT WcharT { get; set; }
 
-    public partial class S
-    {
         [JsonRequired]
-        [JsonPropertyName("s")]
-        public long SS { get; set; }
-    }
+        [JsonPropertyName("weak")]
+        public Weak Weak { get; set; }
 
-    public partial class Sbyte
-    {
         [JsonRequired]
-        [JsonPropertyName("sbyte")]
-        public long SbyteSbyte { get; set; }
-    }
+        [JsonPropertyName("where")]
+        public Where Where { get; set; }
 
-    public partial class Sealed
-    {
         [JsonRequired]
-        [JsonPropertyName("sealed")]
-        public long SealedSealed { get; set; }
-    }
+        [JsonPropertyName("while")]
+        public While While { get; set; }
 
-    public partial class Sel
-    {
         [JsonRequired]
-        [JsonPropertyName("SEL")]
-        public long SelSel { get; set; }
-    }
+        [JsonPropertyName("willSet")]
+        public WillSet WillSet { get; set; }
 
-    public partial class Select
-    {
         [JsonRequired]
-        [JsonPropertyName("select")]
-        public long SelectSelect { get; set; }
-    }
+        [JsonPropertyName("with")]
+        public With With { get; set; }
 
-    public partial class Self
-    {
         [JsonRequired]
-        [JsonPropertyName("Self")]
-        public long SelfSelf { get; set; }
-    }
+        [JsonPropertyName("xor")]
+        public Xor Xor { get; set; }
 
-    public partial class SerializeClass
-    {
         [JsonRequired]
-        [JsonPropertyName("serialize")]
-        public long Serialize { get; set; }
-    }
+        [JsonPropertyName("xor_eq")]
+        public XorEq XorEq { get; set; }
 
-    public partial class Set
-    {
         [JsonRequired]
-        [JsonPropertyName("set")]
-        public long SetSet { get; set; }
-    }
+        [JsonPropertyName("YES")]
+        public Yes Yes { get; set; }
 
-    public partial class Short
-    {
         [JsonRequired]
-        [JsonPropertyName("short")]
-        public long ShortShort { get; set; }
+        [JsonPropertyName("yield")]
+        public Yield Yield { get; set; }
     }
 
-    public partial class Signed
+    public partial class ToJson
     {
         [JsonRequired]
-        [JsonPropertyName("signed")]
-        public long SignedSigned { get; set; }
+        [JsonPropertyName("to_json")]
+        public long ToJsonToJson { get; set; }
     }
 
-    public partial class Sizeof
+    public partial class ToString
     {
         [JsonRequired]
-        [JsonPropertyName("sizeof")]
-        public long SizeofSizeof { get; set; }
+        [JsonPropertyName("toString")]
+        public long ToStringToString { get; set; }
     }
 
-    public partial class Stackalloc
+    public partial class TrueClass
     {
         [JsonRequired]
-        [JsonPropertyName("stackalloc")]
-        public long StackallocStackalloc { get; set; }
+        [JsonPropertyName("true")]
+        public long True { get; set; }
     }
 
-    public partial class Standards
+    public partial class Obj5Type
     {
         [JsonRequired]
-        [JsonPropertyName("Standards")]
-        public long StandardsStandards { get; set; }
+        [JsonPropertyName("type")]
+        public long Type { get; set; }
     }
 
-    public partial class Static
+    public partial class StaticCast
     {
         [JsonRequired]
-        [JsonPropertyName("static")]
-        public long StaticStatic { get; set; }
+        [JsonPropertyName("static_cast")]
+        public long StaticCastStaticCast { get; set; }
     }
 
-    public partial class StaticAssert
+    public partial class StdDeserializer
     {
         [JsonRequired]
-        [JsonPropertyName("static_assert")]
-        public long StaticAssertStaticAssert { get; set; }
+        [JsonPropertyName("StdDeserializer")]
+        public long StdDeserializerStdDeserializer { get; set; }
     }
 
-    public partial class StaticCast
+    public partial class StdSerializer
     {
         [JsonRequired]
-        [JsonPropertyName("static_cast")]
-        public long StaticCastStaticCast { get; set; }
+        [JsonPropertyName("StdSerializer")]
+        public long StdSerializerStdSerializer { get; set; }
     }
 
     public partial class Strictfp
@@ -3309,105 +3408,6 @@ namespace QuickType
         public long UndefinedUndefined { get; set; }
     }
 
-    public partial class Obj5
-    {
-        [JsonRequired]
-        [JsonPropertyName("dummy")]
-        public long Dummy { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("union")]
-        public Union Union { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("unowned")]
-        public Unowned Unowned { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("unsafe")]
-        public Unsafe Unsafe { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("unsigned")]
-        public Unsigned Unsigned { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("ushort")]
-        public Ushort Ushort { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("using")]
-        public Using Using { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("Utf8JsonReader")]
-        public Utf8JsonReaderClass Utf8JsonReader { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("Utf8JsonWriter")]
-        public Utf8JsonWriterClass Utf8JsonWriter { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("UUID")]
-        public Uuid Uuid { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("var")]
-        public Var Var { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("virtual")]
-        public Virtual Virtual { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("void")]
-        public Void Void { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("volatile")]
-        public Volatile Volatile { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("wchar_t")]
-        public WcharT WcharT { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("weak")]
-        public Weak Weak { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("where")]
-        public Where Where { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("while")]
-        public While While { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("willSet")]
-        public WillSet WillSet { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("with")]
-        public With With { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("xor")]
-        public Xor Xor { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("xor_eq")]
-        public XorEq XorEq { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("YES")]
-        public Yes Yes { get; set; }
-
-        [JsonRequired]
-        [JsonPropertyName("yield")]
-        public Yield Yield { get; set; }
-    }
-
     public partial class Union
     {
         [JsonRequired]
diff --git a/base/csharp-records/test/inputs/json/priority/keywords.json/default/QuickType.cs b/head/csharp-records/test/inputs/json/priority/keywords.json/default/QuickType.cs
index dded314..a52dbf9 100644
--- a/base/csharp-records/test/inputs/json/priority/keywords.json/default/QuickType.cs
+++ b/head/csharp-records/test/inputs/json/priority/keywords.json/default/QuickType.cs
@@ -217,27 +217,6 @@ namespace QuickType
         [JsonProperty("date_parse_handling", Required = Required.Always)]
         public DateParseHandlingClass DateParseHandling { get; set; }
 
-        [JsonProperty("DateTime", Required = Required.Always)]
-        public DateTime DateTime { get; set; }
-
-        [JsonProperty("DateTimeStyles", Required = Required.Always)]
-        public DateTimeStylesClass DateTimeStyles { get; set; }
-
-        [JsonProperty("debugger", Required = Required.Always)]
-        public Debugger Debugger { get; set; }
-
-        [JsonProperty("decimal", Required = Required.Always)]
-        public Decimal Decimal { get; set; }
-
-        [JsonProperty("declare", Required = Required.Always)]
-        public Declare Declare { get; set; }
-
-        [JsonProperty("decltype", Required = Required.Always)]
-        public Decltype Decltype { get; set; }
-
-        [JsonProperty("decode_string", Required = Required.Always)]
-        public DecodeString DecodeString { get; set; }
-
         [JsonProperty("dummy", Required = Required.Always)]
         public long Dummy { get; set; }
 
@@ -605,48 +584,6 @@ namespace QuickType
         public long DateParseHandling { get; set; }
     }
 
-    public partial record DateTime
-    {
-        [JsonProperty("DateTime", Required = Required.Always)]
-        public DateTimeOffset DateTimeDateTime { get; set; }
-    }
-
-    public partial record DateTimeStylesClass
-    {
-        [JsonProperty("DateTimeStyles", Required = Required.Always)]
-        public long DateTimeStyles { get; set; }
-    }
-
-    public partial record Debugger
-    {
-        [JsonProperty("debugger", Required = Required.Always)]
-        public long DebuggerDebugger { get; set; }
-    }
-
-    public partial record Decimal
-    {
-        [JsonProperty("decimal", Required = Required.Always)]
-        public long DecimalDecimal { get; set; }
-    }
-
-    public partial record Declare
-    {
-        [JsonProperty("declare", Required = Required.Always)]
-        public long DeclareDeclare { get; set; }
-    }
-
-    public partial record Decltype
-    {
-        [JsonProperty("decltype", Required = Required.Always)]
-        public long DecltypeDecltype { get; set; }
-    }
-
-    public partial record DecodeString
-    {
-        [JsonProperty("decode_string", Required = Required.Always)]
-        public long DecodeStringDecodeString { get; set; }
-    }
-
     public partial record Empty
     {
         [JsonProperty("_", Required = Required.Always)]
@@ -691,6 +628,27 @@ namespace QuickType
 
     public partial record Obj2
     {
+        [JsonProperty("DateTime", Required = Required.Always)]
+        public DateTime DateTime { get; set; }
+
+        [JsonProperty("DateTimeStyles", Required = Required.Always)]
+        public DateTimeStylesClass DateTimeStyles { get; set; }
+
+        [JsonProperty("debugger", Required = Required.Always)]
+        public Debugger Debugger { get; set; }
+
+        [JsonProperty("decimal", Required = Required.Always)]
+        public Decimal Decimal { get; set; }
+
+        [JsonProperty("declare", Required = Required.Always)]
+        public Declare Declare { get; set; }
+
+        [JsonProperty("decltype", Required = Required.Always)]
+        public Decltype Decltype { get; set; }
+
+        [JsonProperty("decode_string", Required = Required.Always)]
+        public DecodeString DecodeString { get; set; }
+
         [JsonProperty("def", Required = Required.Always)]
         public Def Def { get; set; }
 
@@ -856,47 +814,56 @@ namespace QuickType
         [JsonProperty("implicit", Required = Required.Always)]
         public Implicit Implicit { get; set; }
 
-        [JsonProperty("import", Required = Required.Always)]
-        public Import Import { get; set; }
-
-        [JsonProperty("in", Required = Required.Always)]
-        public In In { get; set; }
-
-        [JsonProperty("indirect", Required = Required.Always)]
-        public Indirect Indirect { get; set; }
-
-        [JsonProperty("infix", Required = Required.Always)]
-        public Infix Infix { get; set; }
-
-        [JsonProperty("init", Required = Required.Always)]
-        public Init Init { get; set; }
+        [JsonProperty("equalityContract", Required = Required.Always)]
+        public EqualityContractClass Obj2EqualityContract { get; set; }
 
-        [JsonProperty("inline", Required = Required.Always)]
-        public Inline Inline { get; set; }
+        [JsonProperty("false", Required = Required.Always)]
+        public FalseClass Obj2False { get; set; }
 
-        [JsonProperty("inout", Required = Required.Always)]
-        public Inout Inout { get; set; }
+        [JsonProperty("from_json", Required = Required.Always)]
+        public FromJsonClass Obj2FromJson { get; set; }
+    }
 
-        [JsonProperty("instanceof", Required = Required.Always)]
-        public Instanceof Instanceof { get; set; }
+    public partial record DateTime
+    {
+        [JsonProperty("DateTime", Required = Required.Always)]
+        public DateTimeOffset DateTimeDateTime { get; set; }
+    }
 
-        [JsonProperty("int", Required = Required.Always)]
-        public Int Int { get; set; }
+    public partial record DateTimeStylesClass
+    {
+        [JsonProperty("DateTimeStyles", Required = Required.Always)]
+        public long DateTimeStyles { get; set; }
+    }
 
-        [JsonProperty("interface", Required = Required.Always)]
-        public Interface Interface { get; set; }
+    public partial record Debugger
+    {
+        [JsonProperty("debugger", Required = Required.Always)]
+        public long DebuggerDebugger { get; set; }
+    }
 
-        [JsonProperty("internal", Required = Required.Always)]
-        public Internal Internal { get; set; }
+    public partial record Decimal
+    {
+        [JsonProperty("decimal", Required = Required.Always)]
+        public long DecimalDecimal { get; set; }
+    }
 
-        [JsonProperty("equalityContract", Required = Required.Always)]
-        public EqualityContractClass Obj2EqualityContract { get; set; }
+    public partial record Declare
+    {
+        [JsonProperty("declare", Required = Required.Always)]
+        public long DeclareDeclare { get; set; }
+    }
 
-        [JsonProperty("false", Required = Required.Always)]
-        public FalseClass Obj2False { get; set; }
+    public partial record Decltype
+    {
+        [JsonProperty("decltype", Required = Required.Always)]
+        public long DecltypeDecltype { get; set; }
+    }
 
-        [JsonProperty("from_json", Required = Required.Always)]
-        public FromJsonClass Obj2FromJson { get; set; }
+    public partial record DecodeString
+    {
+        [JsonProperty("decode_string", Required = Required.Always)]
+        public long DecodeStringDecodeString { get; set; }
     }
 
     public partial record Def
@@ -1223,94 +1190,61 @@ namespace QuickType
         public long ImplicitImplicit { get; set; }
     }
 
-    public partial record Import
+    public partial record EqualityContractClass
     {
-        [JsonProperty("import", Required = Required.Always)]
-        public long ImportImport { get; set; }
+        [JsonProperty("equalityContract", Required = Required.Always)]
+        public long EqualityContractEqualityContract { get; set; }
     }
 
-    public partial record In
+    public partial record FalseClass
     {
-        [JsonProperty("in", Required = Required.Always)]
-        public long InIn { get; set; }
+        [JsonProperty("false", Required = Required.Always)]
+        public long False { get; set; }
     }
 
-    public partial record Indirect
+    public partial record FromJsonClass
     {
-        [JsonProperty("indirect", Required = Required.Always)]
-        public long IndirectIndirect { get; set; }
+        [JsonProperty("from_json", Required = Required.Always)]
+        public long FromJsonFromJson { get; set; }
     }
 
-    public partial record Infix
+    public partial record Obj3
     {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("import", Required = Required.Always)]
+        public Import Import { get; set; }
+
+        [JsonProperty("in", Required = Required.Always)]
+        public In In { get; set; }
+
+        [JsonProperty("indirect", Required = Required.Always)]
+        public Indirect Indirect { get; set; }
+
         [JsonProperty("infix", Required = Required.Always)]
-        public long InfixInfix { get; set; }
-    }
+        public Infix Infix { get; set; }
 
-    public partial record Init
-    {
         [JsonProperty("init", Required = Required.Always)]
-        public long InitInit { get; set; }
-    }
+        public Init Init { get; set; }
 
-    public partial record Inline
-    {
         [JsonProperty("inline", Required = Required.Always)]
-        public long InlineInline { get; set; }
-    }
+        public Inline Inline { get; set; }
 
-    public partial record Inout
-    {
         [JsonProperty("inout", Required = Required.Always)]
-        public long InoutInout { get; set; }
-    }
+        public Inout Inout { get; set; }
 
-    public partial record Instanceof
-    {
         [JsonProperty("instanceof", Required = Required.Always)]
-        public long InstanceofInstanceof { get; set; }
-    }
+        public Instanceof Instanceof { get; set; }
 
-    public partial record Int
-    {
         [JsonProperty("int", Required = Required.Always)]
-        public long IntInt { get; set; }
-    }
+        public Int Int { get; set; }
 
-    public partial record Interface
-    {
         [JsonProperty("interface", Required = Required.Always)]
-        public long InterfaceInterface { get; set; }
-    }
+        public Interface Interface { get; set; }
 
-    public partial record Internal
-    {
         [JsonProperty("internal", Required = Required.Always)]
-        public long InternalInternal { get; set; }
-    }
-
-    public partial record EqualityContractClass
-    {
-        [JsonProperty("equalityContract", Required = Required.Always)]
-        public long EqualityContractEqualityContract { get; set; }
-    }
-
-    public partial record FalseClass
-    {
-        [JsonProperty("false", Required = Required.Always)]
-        public long False { get; set; }
-    }
-
-    public partial record FromJsonClass
-    {
-        [JsonProperty("from_json", Required = Required.Always)]
-        public long FromJsonFromJson { get; set; }
-    }
-
-    public partial record Obj3
-    {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
+        public Internal Internal { get; set; }
 
         [JsonProperty("is", Required = Required.Always)]
         public Is Is { get; set; }
@@ -1465,104 +1399,77 @@ namespace QuickType
         [JsonProperty("NULL", Required = Required.Always)]
         public Null Null { get; set; }
 
-        [JsonProperty("nullptr", Required = Required.Always)]
-        public Nullptr Nullptr { get; set; }
-
-        [JsonProperty("number", Required = Required.Always)]
-        public Number Number { get; set; }
-
         [JsonProperty("none", Required = Required.Always)]
         public NoneClass Obj3None { get; set; }
 
         [JsonProperty("null", Required = Required.Always)]
         public NullClass Obj3Null { get; set; }
+    }
 
-        [JsonProperty("printMembers", Required = Required.Always)]
-        public PrintMembersClass Obj3PrintMembers { get; set; }
-
-        [JsonProperty("protocol", Required = Required.Always)]
-        public ProtocolClass Obj3Protocol { get; set; }
-
-        [JsonProperty("object", Required = Required.Always)]
-        public Object Object { get; set; }
-
-        [JsonProperty("ObjectMapper", Required = Required.Always)]
-        public ObjectMapper ObjectMapper { get; set; }
-
-        [JsonProperty("of", Required = Required.Always)]
-        public Of Of { get; set; }
-
-        [JsonProperty("oneway", Required = Required.Always)]
-        public Oneway Oneway { get; set; }
-
-        [JsonProperty("open", Required = Required.Always)]
-        public Open Open { get; set; }
-
-        [JsonProperty("operator", Required = Required.Always)]
-        public Operator Operator { get; set; }
-
-        [JsonProperty("optional", Required = Required.Always)]
-        public Optional Optional { get; set; }
-
-        [JsonProperty("or", Required = Required.Always)]
-        public Or Or { get; set; }
-
-        [JsonProperty("or_eq", Required = Required.Always)]
-        public OrEq OrEq { get; set; }
-
-        [JsonProperty("out", Required = Required.Always)]
-        public Out Out { get; set; }
-
-        [JsonProperty("override", Required = Required.Always)]
-        public Override Override { get; set; }
-
-        [JsonProperty("package", Required = Required.Always)]
-        public Package Package { get; set; }
-
-        [JsonProperty("params", Required = Required.Always)]
-        public Params Params { get; set; }
-
-        [JsonProperty("pass", Required = Required.Always)]
-        public Pass Pass { get; set; }
-
-        [JsonProperty("port", Required = Required.Always)]
-        public Port Port { get; set; }
-
-        [JsonProperty("postfix", Required = Required.Always)]
-        public Postfix Postfix { get; set; }
-
-        [JsonProperty("precedence", Required = Required.Always)]
-        public Precedence Precedence { get; set; }
+    public partial record Import
+    {
+        [JsonProperty("import", Required = Required.Always)]
+        public long ImportImport { get; set; }
+    }
 
-        [JsonProperty("prefix", Required = Required.Always)]
-        public Prefix Prefix { get; set; }
+    public partial record In
+    {
+        [JsonProperty("in", Required = Required.Always)]
+        public long InIn { get; set; }
+    }
 
-        [JsonProperty("print", Required = Required.Always)]
-        public Print Print { get; set; }
+    public partial record Indirect
+    {
+        [JsonProperty("indirect", Required = Required.Always)]
+        public long IndirectIndirect { get; set; }
+    }
 
-        [JsonProperty("printf", Required = Required.Always)]
-        public Printf Printf { get; set; }
+    public partial record Infix
+    {
+        [JsonProperty("infix", Required = Required.Always)]
+        public long InfixInfix { get; set; }
+    }
 
-        [JsonProperty("private", Required = Required.Always)]
-        public Private Private { get; set; }
+    public partial record Init
+    {
+        [JsonProperty("init", Required = Required.Always)]
+        public long InitInit { get; set; }
+    }
 
-        [JsonProperty("protected", Required = Required.Always)]
-        public Protected Protected { get; set; }
+    public partial record Inline
+    {
+        [JsonProperty("inline", Required = Required.Always)]
+        public long InlineInline { get; set; }
+    }
 
-        [JsonProperty("Protocol", Required = Required.Always)]
-        public Protocol Protocol { get; set; }
+    public partial record Inout
+    {
+        [JsonProperty("inout", Required = Required.Always)]
+        public long InoutInout { get; set; }
+    }
 
-        [JsonProperty("SerializerProvider", Required = Required.Always)]
-        public SerializerProvider SerializerProvider { get; set; }
+    public partial record Instanceof
+    {
+        [JsonProperty("instanceof", Required = Required.Always)]
+        public long InstanceofInstanceof { get; set; }
+    }
 
-        [JsonProperty("SimpleModule", Required = Required.Always)]
-        public SimpleModule SimpleModule { get; set; }
+    public partial record Int
+    {
+        [JsonProperty("int", Required = Required.Always)]
+        public long IntInt { get; set; }
+    }
 
-        [JsonProperty("StdDeserializer", Required = Required.Always)]
-        public StdDeserializer StdDeserializer { get; set; }
+    public partial record Interface
+    {
+        [JsonProperty("interface", Required = Required.Always)]
+        public long InterfaceInterface { get; set; }
+    }
 
-        [JsonProperty("StdSerializer", Required = Required.Always)]
-        public StdSerializer StdSerializer { get; set; }
+    public partial record Internal
+    {
+        [JsonProperty("internal", Required = Required.Always)]
+        public long InternalInternal { get; set; }
     }
 
     public partial record Is
@@ -1871,18 +1778,6 @@ namespace QuickType
         public long NullNull { get; set; }
     }
 
-    public partial record Nullptr
-    {
-        [JsonProperty("nullptr", Required = Required.Always)]
-        public long NullptrNullptr { get; set; }
-    }
-
-    public partial record Number
-    {
-        [JsonProperty("number", Required = Required.Always)]
-        public long NumberNumber { get; set; }
-    }
-
     public partial record NoneClass
     {
         [JsonProperty("none", Required = Required.Always)]
@@ -1895,305 +1790,614 @@ namespace QuickType
         public long Null { get; set; }
     }
 
-    public partial record PrintMembersClass
+    public partial record Obj4
     {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("nullptr", Required = Required.Always)]
+        public Nullptr Nullptr { get; set; }
+
+        [JsonProperty("number", Required = Required.Always)]
+        public Number Number { get; set; }
+
         [JsonProperty("printMembers", Required = Required.Always)]
-        public long PrintMembersPrintMembers { get; set; }
-    }
+        public PrintMembersClass Obj4PrintMembers { get; set; }
 
-    public partial record ProtocolClass
-    {
         [JsonProperty("protocol", Required = Required.Always)]
-        public long Protocol { get; set; }
-    }
+        public ProtocolClass Obj4Protocol { get; set; }
+
+        [JsonProperty("required", Required = Required.Always)]
+        public RequiredClass Obj4Required { get; set; }
+
+        [JsonProperty("self", Required = Required.Always)]
+        public SelfClass Obj4Self { get; set; }
 
-    public partial record Object
-    {
         [JsonProperty("object", Required = Required.Always)]
-        public long ObjectObject { get; set; }
-    }
+        public Object Object { get; set; }
 
-    public partial record ObjectMapper
-    {
         [JsonProperty("ObjectMapper", Required = Required.Always)]
-        public long ObjectMapperObjectMapper { get; set; }
-    }
+        public ObjectMapper ObjectMapper { get; set; }
 
-    public partial record Of
-    {
         [JsonProperty("of", Required = Required.Always)]
-        public long OfOf { get; set; }
-    }
+        public Of Of { get; set; }
 
-    public partial record Oneway
-    {
         [JsonProperty("oneway", Required = Required.Always)]
-        public long OnewayOneway { get; set; }
-    }
+        public Oneway Oneway { get; set; }
 
-    public partial record Open
-    {
         [JsonProperty("open", Required = Required.Always)]
-        public long OpenOpen { get; set; }
-    }
+        public Open Open { get; set; }
 
-    public partial record Operator
-    {
         [JsonProperty("operator", Required = Required.Always)]
-        public long OperatorOperator { get; set; }
-    }
+        public Operator Operator { get; set; }
 
-    public partial record Optional
-    {
         [JsonProperty("optional", Required = Required.Always)]
-        public long OptionalOptional { get; set; }
-    }
+        public Optional Optional { get; set; }
 
-    public partial record Or
-    {
         [JsonProperty("or", Required = Required.Always)]
-        public long OrOr { get; set; }
-    }
+        public Or Or { get; set; }
 
-    public partial record OrEq
-    {
         [JsonProperty("or_eq", Required = Required.Always)]
-        public long OrEqOrEq { get; set; }
-    }
+        public OrEq OrEq { get; set; }
 
-    public partial record Out
-    {
         [JsonProperty("out", Required = Required.Always)]
-        public long OutOut { get; set; }
-    }
+        public Out Out { get; set; }
 
-    public partial record Override
-    {
         [JsonProperty("override", Required = Required.Always)]
-        public long OverrideOverride { get; set; }
-    }
+        public Override Override { get; set; }
 
-    public partial record Package
-    {
         [JsonProperty("package", Required = Required.Always)]
-        public long PackagePackage { get; set; }
-    }
+        public Package Package { get; set; }
 
-    public partial record Params
-    {
         [JsonProperty("params", Required = Required.Always)]
-        public long ParamsParams { get; set; }
-    }
+        public Params Params { get; set; }
 
-    public partial record Pass
-    {
         [JsonProperty("pass", Required = Required.Always)]
-        public long PassPass { get; set; }
-    }
+        public Pass Pass { get; set; }
 
-    public partial record Port
-    {
         [JsonProperty("port", Required = Required.Always)]
-        public long PortPort { get; set; }
-    }
+        public Port Port { get; set; }
 
-    public partial record Postfix
-    {
         [JsonProperty("postfix", Required = Required.Always)]
-        public long PostfixPostfix { get; set; }
-    }
+        public Postfix Postfix { get; set; }
 
-    public partial record Precedence
-    {
         [JsonProperty("precedence", Required = Required.Always)]
-        public long PrecedencePrecedence { get; set; }
-    }
+        public Precedence Precedence { get; set; }
 
-    public partial record Prefix
-    {
         [JsonProperty("prefix", Required = Required.Always)]
-        public long PrefixPrefix { get; set; }
-    }
+        public Prefix Prefix { get; set; }
 
-    public partial record Print
-    {
         [JsonProperty("print", Required = Required.Always)]
-        public long PrintPrint { get; set; }
+        public Print Print { get; set; }
+
+        [JsonProperty("printf", Required = Required.Always)]
+        public Printf Printf { get; set; }
+
+        [JsonProperty("private", Required = Required.Always)]
+        public Private Private { get; set; }
+
+        [JsonProperty("protected", Required = Required.Always)]
+        public Protected Protected { get; set; }
+
+        [JsonProperty("Protocol", Required = Required.Always)]
+        public Protocol Protocol { get; set; }
+
+        [JsonProperty("public", Required = Required.Always)]
+        public Public Public { get; set; }
+
+        [JsonProperty("quicktype", Required = Required.Always)]
+        public Quicktype Quicktype { get; set; }
+
+        [JsonProperty("raise", Required = Required.Always)]
+        public Raise Raise { get; set; }
+
+        [JsonProperty("range", Required = Required.Always)]
+        public Range Range { get; set; }
+
+        [JsonProperty("readonly", Required = Required.Always)]
+        public Readonly Readonly { get; set; }
+
+        [JsonProperty("ref", Required = Required.Always)]
+        public Ref Ref { get; set; }
+
+        [JsonProperty("RegExp", Required = Required.Always)]
+        public RegExp RegExp { get; set; }
+
+        [JsonProperty("register", Required = Required.Always)]
+        public Register Register { get; set; }
+
+        [JsonProperty("reinterpret_cast", Required = Required.Always)]
+        public ReinterpretCast ReinterpretCast { get; set; }
+
+        [JsonProperty("repeat", Required = Required.Always)]
+        public Repeat Repeat { get; set; }
+
+        [JsonProperty("require", Required = Required.Always)]
+        public Require Require { get; set; }
+
+        [JsonProperty("requires", Required = Required.Always)]
+        public Requires Requires { get; set; }
+
+        [JsonProperty("restrict", Required = Required.Always)]
+        public Restrict Restrict { get; set; }
+
+        [JsonProperty("retain", Required = Required.Always)]
+        public Retain Retain { get; set; }
+
+        [JsonProperty("rethrows", Required = Required.Always)]
+        public Rethrows Rethrows { get; set; }
+
+        [JsonProperty("return", Required = Required.Always)]
+        public Return Return { get; set; }
+
+        [JsonProperty("right", Required = Required.Always)]
+        public Right Right { get; set; }
+
+        [JsonProperty("runtimeType", Required = Required.Always)]
+        public RuntimeType RuntimeType { get; set; }
+
+        [JsonProperty("s", Required = Required.Always)]
+        public S S { get; set; }
+
+        [JsonProperty("sbyte", Required = Required.Always)]
+        public Sbyte Sbyte { get; set; }
+
+        [JsonProperty("sealed", Required = Required.Always)]
+        public Sealed Sealed { get; set; }
+
+        [JsonProperty("SEL", Required = Required.Always)]
+        public Sel Sel { get; set; }
+
+        [JsonProperty("select", Required = Required.Always)]
+        public Select Select { get; set; }
+
+        [JsonProperty("Self", Required = Required.Always)]
+        public Self Self { get; set; }
+
+        [JsonProperty("serialize", Required = Required.Always)]
+        public SerializeClass Serialize { get; set; }
+
+        [JsonProperty("SerializerProvider", Required = Required.Always)]
+        public SerializerProvider SerializerProvider { get; set; }
+
+        [JsonProperty("set", Required = Required.Always)]
+        public Set Set { get; set; }
+
+        [JsonProperty("short", Required = Required.Always)]
+        public Short Short { get; set; }
+
+        [JsonProperty("signed", Required = Required.Always)]
+        public Signed Signed { get; set; }
+
+        [JsonProperty("SimpleModule", Required = Required.Always)]
+        public SimpleModule SimpleModule { get; set; }
+
+        [JsonProperty("sizeof", Required = Required.Always)]
+        public Sizeof Sizeof { get; set; }
+
+        [JsonProperty("stackalloc", Required = Required.Always)]
+        public Stackalloc Stackalloc { get; set; }
+
+        [JsonProperty("Standards", Required = Required.Always)]
+        public Standards Standards { get; set; }
+
+        [JsonProperty("static", Required = Required.Always)]
+        public Static Static { get; set; }
+
+        [JsonProperty("static_assert", Required = Required.Always)]
+        public StaticAssert StaticAssert { get; set; }
     }
 
-    public partial record Printf
+    public partial record Nullptr
     {
-        [JsonProperty("printf", Required = Required.Always)]
-        public long PrintfPrintf { get; set; }
+        [JsonProperty("nullptr", Required = Required.Always)]
+        public long NullptrNullptr { get; set; }
     }
 
-    public partial record Private
+    public partial record Number
     {
-        [JsonProperty("private", Required = Required.Always)]
-        public long PrivatePrivate { get; set; }
+        [JsonProperty("number", Required = Required.Always)]
+        public long NumberNumber { get; set; }
     }
 
-    public partial record Protected
+    public partial record PrintMembersClass
     {
-        [JsonProperty("protected", Required = Required.Always)]
-        public long ProtectedProtected { get; set; }
+        [JsonProperty("printMembers", Required = Required.Always)]
+        public long PrintMembersPrintMembers { get; set; }
     }
 
-    public partial record Protocol
+    public partial record ProtocolClass
     {
-        [JsonProperty("Protocol", Required = Required.Always)]
-        public long ProtocolProtocol { get; set; }
+        [JsonProperty("protocol", Required = Required.Always)]
+        public long Protocol { get; set; }
     }
 
-    public partial record SerializerProvider
+    public partial record RequiredClass
     {
-        [JsonProperty("SerializerProvider", Required = Required.Always)]
-        public long SerializerProviderSerializerProvider { get; set; }
+        [JsonProperty("required", Required = Required.Always)]
+        public long RequiredRequired { get; set; }
     }
 
-    public partial record SimpleModule
+    public partial record SelfClass
     {
-        [JsonProperty("SimpleModule", Required = Required.Always)]
-        public long SimpleModuleSimpleModule { get; set; }
+        [JsonProperty("self", Required = Required.Always)]
+        public long Self { get; set; }
     }
 
-    public partial record StdDeserializer
+    public partial record Object
     {
-        [JsonProperty("StdDeserializer", Required = Required.Always)]
-        public long StdDeserializerStdDeserializer { get; set; }
+        [JsonProperty("object", Required = Required.Always)]
+        public long ObjectObject { get; set; }
     }
 
-    public partial record StdSerializer
+    public partial record ObjectMapper
     {
-        [JsonProperty("StdSerializer", Required = Required.Always)]
-        public long StdSerializerStdSerializer { get; set; }
+        [JsonProperty("ObjectMapper", Required = Required.Always)]
+        public long ObjectMapperObjectMapper { get; set; }
     }
 
-    public partial record Obj4
+    public partial record Of
     {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
+        [JsonProperty("of", Required = Required.Always)]
+        public long OfOf { get; set; }
+    }
 
-        [JsonProperty("required", Required = Required.Always)]
-        public RequiredClass Obj4Required { get; set; }
+    public partial record Oneway
+    {
+        [JsonProperty("oneway", Required = Required.Always)]
+        public long OnewayOneway { get; set; }
+    }
 
-        [JsonProperty("self", Required = Required.Always)]
-        public SelfClass Obj4Self { get; set; }
+    public partial record Open
+    {
+        [JsonProperty("open", Required = Required.Always)]
+        public long OpenOpen { get; set; }
+    }
 
-        [JsonProperty("to_json", Required = Required.Always)]
-        public ToJson Obj4ToJson { get; set; }
+    public partial record Operator
+    {
+        [JsonProperty("operator", Required = Required.Always)]
+        public long OperatorOperator { get; set; }
+    }
 
-        [JsonProperty("toString", Required = Required.Always)]
-        public ToStringClass Obj4ToString { get; set; }
+    public partial record Optional
+    {
+        [JsonProperty("optional", Required = Required.Always)]
+        public long OptionalOptional { get; set; }
+    }
 
-        [JsonProperty("true", Required = Required.Always)]
-        public TrueClass Obj4True { get; set; }
+    public partial record Or
+    {
+        [JsonProperty("or", Required = Required.Always)]
+        public long OrOr { get; set; }
+    }
 
-        [JsonProperty("type", Required = Required.Always)]
-        public Obj4Type Obj4Type { get; set; }
+    public partial record OrEq
+    {
+        [JsonProperty("or_eq", Required = Required.Always)]
+        public long OrEqOrEq { get; set; }
+    }
+
+    public partial record Out
+    {
+        [JsonProperty("out", Required = Required.Always)]
+        public long OutOut { get; set; }
+    }
+
+    public partial record Override
+    {
+        [JsonProperty("override", Required = Required.Always)]
+        public long OverrideOverride { get; set; }
+    }
+
+    public partial record Package
+    {
+        [JsonProperty("package", Required = Required.Always)]
+        public long PackagePackage { get; set; }
+    }
+
+    public partial record Params
+    {
+        [JsonProperty("params", Required = Required.Always)]
+        public long ParamsParams { get; set; }
+    }
+
+    public partial record Pass
+    {
+        [JsonProperty("pass", Required = Required.Always)]
+        public long PassPass { get; set; }
+    }
+
+    public partial record Port
+    {
+        [JsonProperty("port", Required = Required.Always)]
+        public long PortPort { get; set; }
+    }
+
+    public partial record Postfix
+    {
+        [JsonProperty("postfix", Required = Required.Always)]
+        public long PostfixPostfix { get; set; }
+    }
+
+    public partial record Precedence
+    {
+        [JsonProperty("precedence", Required = Required.Always)]
+        public long PrecedencePrecedence { get; set; }
+    }
+
+    public partial record Prefix
+    {
+        [JsonProperty("prefix", Required = Required.Always)]
+        public long PrefixPrefix { get; set; }
+    }
+
+    public partial record Print
+    {
+        [JsonProperty("print", Required = Required.Always)]
+        public long PrintPrint { get; set; }
+    }
 
+    public partial record Printf
+    {
+        [JsonProperty("printf", Required = Required.Always)]
+        public long PrintfPrintf { get; set; }
+    }
+
+    public partial record Private
+    {
+        [JsonProperty("private", Required = Required.Always)]
+        public long PrivatePrivate { get; set; }
+    }
+
+    public partial record Protected
+    {
+        [JsonProperty("protected", Required = Required.Always)]
+        public long ProtectedProtected { get; set; }
+    }
+
+    public partial record Protocol
+    {
+        [JsonProperty("Protocol", Required = Required.Always)]
+        public long ProtocolProtocol { get; set; }
+    }
+
+    public partial record Public
+    {
         [JsonProperty("public", Required = Required.Always)]
-        public Public Public { get; set; }
+        public long PublicPublic { get; set; }
+    }
 
+    public partial record Quicktype
+    {
         [JsonProperty("quicktype", Required = Required.Always)]
-        public Quicktype Quicktype { get; set; }
+        public long QuicktypeQuicktype { get; set; }
+    }
 
+    public partial record Raise
+    {
         [JsonProperty("raise", Required = Required.Always)]
-        public Raise Raise { get; set; }
+        public long RaiseRaise { get; set; }
+    }
 
+    public partial record Range
+    {
         [JsonProperty("range", Required = Required.Always)]
-        public Range Range { get; set; }
+        public long RangeRange { get; set; }
+    }
 
+    public partial record Readonly
+    {
         [JsonProperty("readonly", Required = Required.Always)]
-        public Readonly Readonly { get; set; }
+        public long ReadonlyReadonly { get; set; }
+    }
 
+    public partial record Ref
+    {
         [JsonProperty("ref", Required = Required.Always)]
-        public Ref Ref { get; set; }
+        public long RefRef { get; set; }
+    }
 
+    public partial record RegExp
+    {
         [JsonProperty("RegExp", Required = Required.Always)]
-        public RegExp RegExp { get; set; }
+        public Guid RegExpRegExp { get; set; }
+    }
 
+    public partial record Register
+    {
         [JsonProperty("register", Required = Required.Always)]
-        public Register Register { get; set; }
+        public long RegisterRegister { get; set; }
+    }
 
+    public partial record ReinterpretCast
+    {
         [JsonProperty("reinterpret_cast", Required = Required.Always)]
-        public ReinterpretCast ReinterpretCast { get; set; }
+        public long ReinterpretCastReinterpretCast { get; set; }
+    }
 
+    public partial record Repeat
+    {
         [JsonProperty("repeat", Required = Required.Always)]
-        public Repeat Repeat { get; set; }
+        public long RepeatRepeat { get; set; }
+    }
 
+    public partial record Require
+    {
         [JsonProperty("require", Required = Required.Always)]
-        public Require Require { get; set; }
+        public long RequireRequire { get; set; }
+    }
 
+    public partial record Requires
+    {
         [JsonProperty("requires", Required = Required.Always)]
-        public Requires Requires { get; set; }
+        public long RequiresRequires { get; set; }
+    }
 
+    public partial record Restrict
+    {
         [JsonProperty("restrict", Required = Required.Always)]
-        public Restrict Restrict { get; set; }
+        public long RestrictRestrict { get; set; }
+    }
 
+    public partial record Retain
+    {
         [JsonProperty("retain", Required = Required.Always)]
-        public Retain Retain { get; set; }
+        public long RetainRetain { get; set; }
+    }
 
+    public partial record Rethrows
+    {
         [JsonProperty("rethrows", Required = Required.Always)]
-        public Rethrows Rethrows { get; set; }
+        public long RethrowsRethrows { get; set; }
+    }
 
+    public partial record Return
+    {
         [JsonProperty("return", Required = Required.Always)]
-        public Return Return { get; set; }
+        public long ReturnReturn { get; set; }
+    }
 
+    public partial record Right
+    {
         [JsonProperty("right", Required = Required.Always)]
-        public Right Right { get; set; }
+        public long RightRight { get; set; }
+    }
 
+    public partial record RuntimeType
+    {
         [JsonProperty("runtimeType", Required = Required.Always)]
-        public RuntimeType RuntimeType { get; set; }
+        public long RuntimeTypeRuntimeType { get; set; }
+    }
 
+    public partial record S
+    {
         [JsonProperty("s", Required = Required.Always)]
-        public S S { get; set; }
+        public long SS { get; set; }
+    }
 
+    public partial record Sbyte
+    {
         [JsonProperty("sbyte", Required = Required.Always)]
-        public Sbyte Sbyte { get; set; }
+        public long SbyteSbyte { get; set; }
+    }
 
+    public partial record Sealed
+    {
         [JsonProperty("sealed", Required = Required.Always)]
-        public Sealed Sealed { get; set; }
+        public long SealedSealed { get; set; }
+    }
 
+    public partial record Sel
+    {
         [JsonProperty("SEL", Required = Required.Always)]
-        public Sel Sel { get; set; }
+        public long SelSel { get; set; }
+    }
 
+    public partial record Select
+    {
         [JsonProperty("select", Required = Required.Always)]
-        public Select Select { get; set; }
+        public long SelectSelect { get; set; }
+    }
 
+    public partial record Self
+    {
         [JsonProperty("Self", Required = Required.Always)]
-        public Self Self { get; set; }
+        public long SelfSelf { get; set; }
+    }
 
+    public partial record SerializeClass
+    {
         [JsonProperty("serialize", Required = Required.Always)]
-        public SerializeClass Serialize { get; set; }
+        public long Serialize { get; set; }
+    }
+
+    public partial record SerializerProvider
+    {
+        [JsonProperty("SerializerProvider", Required = Required.Always)]
+        public long SerializerProviderSerializerProvider { get; set; }
+    }
 
+    public partial record Set
+    {
         [JsonProperty("set", Required = Required.Always)]
-        public Set Set { get; set; }
+        public long SetSet { get; set; }
+    }
 
+    public partial record Short
+    {
         [JsonProperty("short", Required = Required.Always)]
-        public Short Short { get; set; }
+        public long ShortShort { get; set; }
+    }
 
+    public partial record Signed
+    {
         [JsonProperty("signed", Required = Required.Always)]
-        public Signed Signed { get; set; }
+        public long SignedSigned { get; set; }
+    }
+
+    public partial record SimpleModule
+    {
+        [JsonProperty("SimpleModule", Required = Required.Always)]
+        public long SimpleModuleSimpleModule { get; set; }
+    }
 
+    public partial record Sizeof
+    {
         [JsonProperty("sizeof", Required = Required.Always)]
-        public Sizeof Sizeof { get; set; }
+        public long SizeofSizeof { get; set; }
+    }
 
+    public partial record Stackalloc
+    {
         [JsonProperty("stackalloc", Required = Required.Always)]
-        public Stackalloc Stackalloc { get; set; }
+        public long StackallocStackalloc { get; set; }
+    }
 
+    public partial record Standards
+    {
         [JsonProperty("Standards", Required = Required.Always)]
-        public Standards Standards { get; set; }
+        public long StandardsStandards { get; set; }
+    }
 
+    public partial record Static
+    {
         [JsonProperty("static", Required = Required.Always)]
-        public Static Static { get; set; }
+        public long StaticStatic { get; set; }
+    }
 
+    public partial record StaticAssert
+    {
         [JsonProperty("static_assert", Required = Required.Always)]
-        public StaticAssert StaticAssert { get; set; }
+        public long StaticAssertStaticAssert { get; set; }
+    }
+
+    public partial record Obj5
+    {
+        [JsonProperty("dummy", Required = Required.Always)]
+        public long Dummy { get; set; }
+
+        [JsonProperty("to_json", Required = Required.Always)]
+        public ToJson Obj5ToJson { get; set; }
+
+        [JsonProperty("toString", Required = Required.Always)]
+        public ToStringClass Obj5ToString { get; set; }
+
+        [JsonProperty("true", Required = Required.Always)]
+        public TrueClass Obj5True { get; set; }
+
+        [JsonProperty("type", Required = Required.Always)]
+        public Obj5Type Obj5Type { get; set; }
 
         [JsonProperty("static_cast", Required = Required.Always)]
         public StaticCast StaticCast { get; set; }
 
+        [JsonProperty("StdDeserializer", Required = Required.Always)]
+        public StdDeserializer StdDeserializer { get; set; }
+
+        [JsonProperty("StdSerializer", Required = Required.Always)]
+        public StdSerializer StdSerializer { get; set; }
+
         [JsonProperty("strictfp", Required = Required.Always)]
         public Strictfp Strictfp { get; set; }
 
@@ -2286,246 +2490,117 @@ namespace QuickType
 
         [JsonProperty("undefined", Required = Required.Always)]
         public Undefined Undefined { get; set; }
-    }
-
-    public partial record RequiredClass
-    {
-        [JsonProperty("required", Required = Required.Always)]
-        public long RequiredRequired { get; set; }
-    }
-
-    public partial record SelfClass
-    {
-        [JsonProperty("self", Required = Required.Always)]
-        public long Self { get; set; }
-    }
-
-    public partial record ToJson
-    {
-        [JsonProperty("to_json", Required = Required.Always)]
-        public long ToJsonToJson { get; set; }
-    }
-
-    public partial record ToStringClass
-    {
-        [JsonProperty("toString", Required = Required.Always)]
-        public long ToStringToString { get; set; }
-    }
-
-    public partial record TrueClass
-    {
-        [JsonProperty("true", Required = Required.Always)]
-        public long True { get; set; }
-    }
-
-    public partial record Obj4Type
-    {
-        [JsonProperty("type", Required = Required.Always)]
-        public long Type { get; set; }
-    }
-
-    public partial record Public
-    {
-        [JsonProperty("public", Required = Required.Always)]
-        public long PublicPublic { get; set; }
-    }
-
-    public partial record Quicktype
-    {
-        [JsonProperty("quicktype", Required = Required.Always)]
-        public long QuicktypeQuicktype { get; set; }
-    }
 
-    public partial record Raise
-    {
-        [JsonProperty("raise", Required = Required.Always)]
-        public long RaiseRaise { get; set; }
-    }
-
-    public partial record Range
-    {
-        [JsonProperty("range", Required = Required.Always)]
-        public long RangeRange { get; set; }
-    }
-
-    public partial record Readonly
-    {
-        [JsonProperty("readonly", Required = Required.Always)]
-        public long ReadonlyReadonly { get; set; }
-    }
+        [JsonProperty("union", Required = Required.Always)]
+        public Union Union { get; set; }
 
-    public partial record Ref
-    {
-        [JsonProperty("ref", Required = Required.Always)]
-        public long RefRef { get; set; }
-    }
+        [JsonProperty("unowned", Required = Required.Always)]
+        public Unowned Unowned { get; set; }
 
-    public partial record RegExp
-    {
-        [JsonProperty("RegExp", Required = Required.Always)]
-        public Guid RegExpRegExp { get; set; }
-    }
+        [JsonProperty("unsafe", Required = Required.Always)]
+        public Unsafe Unsafe { get; set; }
 
-    public partial record Register
-    {
-        [JsonProperty("register", Required = Required.Always)]
-        public long RegisterRegister { get; set; }
-    }
+        [JsonProperty("unsigned", Required = Required.Always)]
+        public Unsigned Unsigned { get; set; }
 
-    public partial record ReinterpretCast
-    {
-        [JsonProperty("reinterpret_cast", Required = Required.Always)]
-        public long ReinterpretCastReinterpretCast { get; set; }
-    }
+        [JsonProperty("ushort", Required = Required.Always)]
+        public Ushort Ushort { get; set; }
 
-    public partial record Repeat
-    {
-        [JsonProperty("repeat", Required = Required.Always)]
-        public long RepeatRepeat { get; set; }
-    }
+        [JsonProperty("using", Required = Required.Always)]
+        public Using Using { get; set; }
 
-    public partial record Require
-    {
-        [JsonProperty("require", Required = Required.Always)]
-        public long RequireRequire { get; set; }
-    }
+        [JsonProperty("Utf8JsonReader", Required = Required.Always)]
+        public Utf8JsonReader Utf8JsonReader { get; set; }
 
-    public partial record Requires
-    {
-        [JsonProperty("requires", Required = Required.Always)]
-        public long RequiresRequires { get; set; }
-    }
+        [JsonProperty("Utf8JsonWriter", Required = Required.Always)]
+        public Utf8JsonWriter Utf8JsonWriter { get; set; }
 
-    public partial record Restrict
-    {
-        [JsonProperty("restrict", Required = Required.Always)]
-        public long RestrictRestrict { get; set; }
-    }
+        [JsonProperty("UUID", Required = Required.Always)]
+        public Uuid Uuid { get; set; }
 
-    public partial record Retain
-    {
-        [JsonProperty("retain", Required = Required.Always)]
-        public long RetainRetain { get; set; }
-    }
+        [JsonProperty("var", Required = Required.Always)]
+        public Var Var { get; set; }
 
-    public partial record Rethrows
-    {
-        [JsonProperty("rethrows", Required = Required.Always)]
-        public long RethrowsRethrows { get; set; }
-    }
+        [JsonProperty("virtual", Required = Required.Always)]
+        public Virtual Virtual { get; set; }
 
-    public partial record Return
-    {
-        [JsonProperty("return", Required = Required.Always)]
-        public long ReturnReturn { get; set; }
-    }
+        [JsonProperty("void", Required = Required.Always)]
+        public Void Void { get; set; }
 
-    public partial record Right
-    {
-        [JsonProperty("right", Required = Required.Always)]
-        public long RightRight { get; set; }
-    }
+        [JsonProperty("volatile", Required = Required.Always)]
+        public Volatile Volatile { get; set; }
 
-    public partial record RuntimeType
-    {
-        [JsonProperty("runtimeType", Required = Required.Always)]
-        public long RuntimeTypeRuntimeType { get; set; }
-    }
+        [JsonProperty("wchar_t", Required = Required.Always)]
+        public WcharT WcharT { get; set; }
 
-    public partial record S
-    {
-        [JsonProperty("s", Required = Required.Always)]
-        public long SS { get; set; }
-    }
+        [JsonProperty("weak", Required = Required.Always)]
+        public Weak Weak { get; set; }
 
-    public partial record Sbyte
-    {
-        [JsonProperty("sbyte", Required = Required.Always)]
-        public long SbyteSbyte { get; set; }
-    }
+        [JsonProperty("where", Required = Required.Always)]
+        public Where Where { get; set; }
 
-    public partial record Sealed
-    {
-        [JsonProperty("sealed", Required = Required.Always)]
-        public long SealedSealed { get; set; }
-    }
+        [JsonProperty("while", Required = Required.Always)]
+        public While While { get; set; }
 
-    public partial record Sel
-    {
-        [JsonProperty("SEL", Required = Required.Always)]
-        public long SelSel { get; set; }
-    }
+        [JsonProperty("willSet", Required = Required.Always)]
+        public WillSet WillSet { get; set; }
 
-    public partial record Select
-    {
-        [JsonProperty("select", Required = Required.Always)]
-        public long SelectSelect { get; set; }
-    }
+        [JsonProperty("with", Required = Required.Always)]
+        public With With { get; set; }
 
-    public partial record Self
-    {
-        [JsonProperty("Self", Required = Required.Always)]
-        public long SelfSelf { get; set; }
-    }
+        [JsonProperty("xor", Required = Required.Always)]
+        public Xor Xor { get; set; }
 
-    public partial record SerializeClass
-    {
-        [JsonProperty("serialize", Required = Required.Always)]
-        public long Serialize { get; set; }
-    }
+        [JsonProperty("xor_eq", Required = Required.Always)]
+        public XorEq XorEq { get; set; }
 
-    public partial record Set
-    {
-        [JsonProperty("set", Required = Required.Always)]
-        public long SetSet { get; set; }
-    }
+        [JsonProperty("YES", Required = Required.Always)]
+        public Yes Yes { get; set; }
 
-    public partial record Short
-    {
-        [JsonProperty("short", Required = Required.Always)]
-        public long ShortShort { get; set; }
+        [JsonProperty("yield", Required = Required.Always)]
+        public Yield Yield { get; set; }
     }
 
-    public partial record Signed
+    public partial record ToJson
     {
-        [JsonProperty("signed", Required = Required.Always)]
-        public long SignedSigned { get; set; }
+        [JsonProperty("to_json", Required = Required.Always)]
+        public long ToJsonToJson { get; set; }
     }
 
-    public partial record Sizeof
+    public partial record ToStringClass
     {
-        [JsonProperty("sizeof", Required = Required.Always)]
-        public long SizeofSizeof { get; set; }
+        [JsonProperty("toString", Required = Required.Always)]
+        public long ToStringToString { get; set; }
     }
 
-    public partial record Stackalloc
+    public partial record TrueClass
     {
-        [JsonProperty("stackalloc", Required = Required.Always)]
-        public long StackallocStackalloc { get; set; }
+        [JsonProperty("true", Required = Required.Always)]
+        public long True { get; set; }
     }
 
-    public partial record Standards
+    public partial record Obj5Type
     {
-        [JsonProperty("Standards", Required = Required.Always)]
-        public long StandardsStandards { get; set; }
+        [JsonProperty("type", Required = Required.Always)]
+        public long Type { get; set; }
     }
 
-    public partial record Static
+    public partial record StaticCast
     {
-        [JsonProperty("static", Required = Required.Always)]
-        public long StaticStatic { get; set; }
+        [JsonProperty("static_cast", Required = Required.Always)]
+        public long StaticCastStaticCast { get; set; }
     }
 
-    public partial record StaticAssert
+    public partial record StdDeserializer
     {
-        [JsonProperty("static_assert", Required = Required.Always)]
-        public long StaticAssertStaticAssert { get; set; }
+        [JsonProperty("StdDeserializer", Required = Required.Always)]
+        public long StdDeserializerStdDeserializer { get; set; }
     }
 
-    public partial record StaticCast
+    public partial record StdSerializer
     {
-        [JsonProperty("static_cast", Required = Required.Always)]
-        public long StaticCastStaticCast { get; set; }
+        [JsonProperty("StdSerializer", Required = Required.Always)]
+        public long StdSerializerStdSerializer { get; set; }
     }
 
     public partial record Strictfp
@@ -2714,81 +2789,6 @@ namespace QuickType
         public long UndefinedUndefined { get; set; }
     }
 
-    public partial record Obj5
-    {
-        [JsonProperty("dummy", Required = Required.Always)]
-        public long Dummy { get; set; }
-
-        [JsonProperty("union", Required = Required.Always)]
-        public Union Union { get; set; }
-
-        [JsonProperty("unowned", Required = Required.Always)]
-        public Unowned Unowned { get; set; }
-
-        [JsonProperty("unsafe", Required = Required.Always)]
-        public Unsafe Unsafe { get; set; }
-
-        [JsonProperty("unsigned", Required = Required.Always)]
-        public Unsigned Unsigned { get; set; }
-
-        [JsonProperty("ushort", Required = Required.Always)]
-        public Ushort Ushort { get; set; }
-
-        [JsonProperty("using", Required = Required.Always)]
-        public Using Using { get; set; }
-
-        [JsonProperty("Utf8JsonReader", Required = Required.Always)]
-        public Utf8JsonReader Utf8JsonReader { get; set; }
-
-        [JsonProperty("Utf8JsonWriter", Required = Required.Always)]
-        public Utf8JsonWriter Utf8JsonWriter { get; set; }
-
-        [JsonProperty("UUID", Required = Required.Always)]
-        public Uuid Uuid { get; set; }
-
-        [JsonProperty("var", Required = Required.Always)]
-        public Var Var { get; set; }
-
-        [JsonProperty("virtual", Required = Required.Always)]
-        public Virtual Virtual { get; set; }
-
-        [JsonProperty("void", Required = Required.Always)]
-        public Void Void { get; set; }
-
-        [JsonProperty("volatile", Required = Required.Always)]
-        public Volatile Volatile { get; set; }
-
-        [JsonProperty("wchar_t", Required = Required.Always)]
-        public WcharT WcharT { get; set; }
-
-        [JsonProperty("weak", Required = Required.Always)]
-        public Weak Weak { get; set; }
-
-        [JsonProperty("where", Required = Required.Always)]
-        public Where Where { get; set; }
-
-        [JsonProperty("while", Required = Required.Always)]
-        public While While { get; set; }
-
-        [JsonProperty("willSet", Required = Required.Always)]
-        public WillSet WillSet { get; set; }
-
-        [JsonProperty("with", Required = Required.Always)]
-        public With With { get; set; }
-
-        [JsonProperty("xor", Required = Required.Always)]
-        public Xor Xor { get; set; }
-
-        [JsonProperty("xor_eq", Required = Required.Always)]
-        public XorEq XorEq { get; set; }
-
-        [JsonProperty("YES", Required = Required.Always)]
-        public Yes Yes { get; set; }
-
-        [JsonProperty("yield", Required = Required.Always)]
-        public Yield Yield { get; set; }
-    }
-
     public partial record Union
     {
         [JsonProperty("union", Required = Required.Always)]
diff --git a/base/dart/test/inputs/json/priority/keywords.json/default/TopLevel.dart b/head/dart/test/inputs/json/priority/keywords.json/default/TopLevel.dart
index e933185..ae3e834 100644
--- a/base/dart/test/inputs/json/priority/keywords.json/default/TopLevel.dart
+++ b/head/dart/test/inputs/json/priority/keywords.json/default/TopLevel.dart
@@ -91,13 +91,6 @@ class Obj1 {
     final DateOnly dateOnly;
     final DateOnlyConverter dateOnlyConverter;
     final DateParseHandling dateParseHandling;
-    final DateTimeClass dateTime;
-    final DateTimeStyles dateTimeStyles;
-    final Debugger debugger;
-    final Decimal decimal;
-    final Declare declare;
-    final Decltype decltype;
-    final DecodeString decodeString;
     final int dummy;
     final Empty empty;
     final Obj1Bool fluffyBool;
@@ -165,13 +158,6 @@ class Obj1 {
         required this.dateOnly,
         required this.dateOnlyConverter,
         required this.dateParseHandling,
-        required this.dateTime,
-        required this.dateTimeStyles,
-        required this.debugger,
-        required this.decimal,
-        required this.declare,
-        required this.decltype,
-        required this.decodeString,
         required this.dummy,
         required this.empty,
         required this.fluffyBool,
@@ -240,13 +226,6 @@ class Obj1 {
         dateOnly: DateOnly.fromJson(json["DateOnly"]),
         dateOnlyConverter: DateOnlyConverter.fromJson(json["DateOnlyConverter"]),
         dateParseHandling: DateParseHandling.fromJson(json["date_parse_handling"]),
-        dateTime: DateTimeClass.fromJson(json["DateTime"]),
-        dateTimeStyles: DateTimeStyles.fromJson(json["DateTimeStyles"]),
-        debugger: Debugger.fromJson(json["debugger"]),
-        decimal: Decimal.fromJson(json["decimal"]),
-        declare: Declare.fromJson(json["declare"]),
-        decltype: Decltype.fromJson(json["decltype"]),
-        decodeString: DecodeString.fromJson(json["decode_string"]),
         dummy: json["dummy"],
         empty: Empty.fromJson(json["_"]),
         fluffyBool: Obj1Bool.fromJson(json["bool"]),
@@ -315,13 +294,6 @@ class Obj1 {
         "DateOnly": dateOnly.toJson(),
         "DateOnlyConverter": dateOnlyConverter.toJson(),
         "date_parse_handling": dateParseHandling.toJson(),
-        "DateTime": dateTime.toJson(),
-        "DateTimeStyles": dateTimeStyles.toJson(),
-        "debugger": debugger.toJson(),
-        "decimal": decimal.toJson(),
-        "declare": declare.toJson(),
-        "decltype": decltype.toJson(),
-        "decode_string": decodeString.toJson(),
         "dummy": dummy,
         "_": empty.toJson(),
         "bool": fluffyBool.toJson(),
@@ -1080,118 +1052,6 @@ class DateParseHandling {
     };
 }
 
-class DateTimeClass {
-    final DateTime dateTime;
-
-    DateTimeClass({
-        required this.dateTime,
-    });
-
-    factory DateTimeClass.fromJson(Map<String, dynamic> json) => DateTimeClass(
-        dateTime: DateTime.parse(json["DateTime"]),
-    );
-
-    Map<String, dynamic> toJson() => {
-        "DateTime": dateTime.toIso8601String(),
-    };
-}
-
-class DateTimeStyles {
-    final int dateTimeStyles;
-
-    DateTimeStyles({
-        required this.dateTimeStyles,
-    });
-
-    factory DateTimeStyles.fromJson(Map<String, dynamic> json) => DateTimeStyles(
-        dateTimeStyles: json["DateTimeStyles"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "DateTimeStyles": dateTimeStyles,
-    };
-}
-
-class Debugger {
-    final int debugger;
-
-    Debugger({
-        required this.debugger,
-    });
-
-    factory Debugger.fromJson(Map<String, dynamic> json) => Debugger(
-        debugger: json["debugger"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "debugger": debugger,
-    };
-}
-
-class Decimal {
-    final int decimal;
-
-    Decimal({
-        required this.decimal,
-    });
-
-    factory Decimal.fromJson(Map<String, dynamic> json) => Decimal(
-        decimal: json["decimal"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "decimal": decimal,
-    };
-}
-
-class Declare {
-    final int declare;
-
-    Declare({
-        required this.declare,
-    });
-
-    factory Declare.fromJson(Map<String, dynamic> json) => Declare(
-        declare: json["declare"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "declare": declare,
-    };
-}
-
-class Decltype {
-    final int decltype;
-
-    Decltype({
-        required this.decltype,
-    });
-
-    factory Decltype.fromJson(Map<String, dynamic> json) => Decltype(
-        decltype: json["decltype"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "decltype": decltype,
-    };
-}
-
-class DecodeString {
-    final int decodeString;
-
-    DecodeString({
-        required this.decodeString,
-    });
-
-    factory DecodeString.fromJson(Map<String, dynamic> json) => DecodeString(
-        decodeString: json["decode_string"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "decode_string": decodeString,
-    };
-}
-
 class Empty {
     final int empty;
 
@@ -1481,6 +1341,13 @@ class ClassClass {
 }
 
 class Obj2 {
+    final DateTimeClass dateTime;
+    final DateTimeStyles dateTimeStyles;
+    final Debugger debugger;
+    final Decimal decimal;
+    final Declare declare;
+    final Decltype decltype;
+    final DecodeString decodeString;
     final Def def;
     final Defer defer;
     final Deinit deinit;
@@ -1521,13 +1388,6 @@ class Obj2 {
     final Id id;
     final Imp imp;
     final Implicit implicit;
-    final Indirect indirect;
-    final Infix infix;
-    final Init init;
-    final Inline inline;
-    final Inout inout;
-    final Instanceof instanceof;
-    final Internal internal;
     final Default obj2Default;
     final Do obj2Do;
     final Double obj2Double;
@@ -1545,13 +1405,16 @@ class Obj2 {
     final HashCode obj2HashCode;
     final If obj2If;
     final Implements obj2Implements;
-    final Import obj2Import;
-    final In obj2In;
-    final Int obj2Int;
-    final Interface obj2Interface;
     final FalseClass purpleFalse;
 
     Obj2({
+        required this.dateTime,
+        required this.dateTimeStyles,
+        required this.debugger,
+        required this.decimal,
+        required this.declare,
+        required this.decltype,
+        required this.decodeString,
         required this.def,
         required this.defer,
         required this.deinit,
@@ -1592,13 +1455,6 @@ class Obj2 {
         required this.id,
         required this.imp,
         required this.implicit,
-        required this.indirect,
-        required this.infix,
-        required this.init,
-        required this.inline,
-        required this.inout,
-        required this.instanceof,
-        required this.internal,
         required this.obj2Default,
         required this.obj2Do,
         required this.obj2Double,
@@ -1616,14 +1472,17 @@ class Obj2 {
         required this.obj2HashCode,
         required this.obj2If,
         required this.obj2Implements,
-        required this.obj2Import,
-        required this.obj2In,
-        required this.obj2Int,
-        required this.obj2Interface,
         required this.purpleFalse,
     });
 
     factory Obj2.fromJson(Map<String, dynamic> json) => Obj2(
+        dateTime: DateTimeClass.fromJson(json["DateTime"]),
+        dateTimeStyles: DateTimeStyles.fromJson(json["DateTimeStyles"]),
+        debugger: Debugger.fromJson(json["debugger"]),
+        decimal: Decimal.fromJson(json["decimal"]),
+        declare: Declare.fromJson(json["declare"]),
+        decltype: Decltype.fromJson(json["decltype"]),
+        decodeString: DecodeString.fromJson(json["decode_string"]),
         def: Def.fromJson(json["def"]),
         defer: Defer.fromJson(json["defer"]),
         deinit: Deinit.fromJson(json["deinit"]),
@@ -1664,13 +1523,6 @@ class Obj2 {
         id: Id.fromJson(json["id"]),
         imp: Imp.fromJson(json["IMP"]),
         implicit: Implicit.fromJson(json["implicit"]),
-        indirect: Indirect.fromJson(json["indirect"]),
-        infix: Infix.fromJson(json["infix"]),
-        init: Init.fromJson(json["init"]),
-        inline: Inline.fromJson(json["inline"]),
-        inout: Inout.fromJson(json["inout"]),
-        instanceof: Instanceof.fromJson(json["instanceof"]),
-        internal: Internal.fromJson(json["internal"]),
         obj2Default: Default.fromJson(json["default"]),
         obj2Do: Do.fromJson(json["do"]),
         obj2Double: Double.fromJson(json["double"]),
@@ -1688,14 +1540,17 @@ class Obj2 {
         obj2HashCode: HashCode.fromJson(json["hashCode"]),
         obj2If: If.fromJson(json["if"]),
         obj2Implements: Implements.fromJson(json["implements"]),
-        obj2Import: Import.fromJson(json["import"]),
-        obj2In: In.fromJson(json["in"]),
-        obj2Int: Int.fromJson(json["int"]),
-        obj2Interface: Interface.fromJson(json["interface"]),
         purpleFalse: FalseClass.fromJson(json["false"]),
     );
 
     Map<String, dynamic> toJson() => {
+        "DateTime": dateTime.toJson(),
+        "DateTimeStyles": dateTimeStyles.toJson(),
+        "debugger": debugger.toJson(),
+        "decimal": decimal.toJson(),
+        "declare": declare.toJson(),
+        "decltype": decltype.toJson(),
+        "decode_string": decodeString.toJson(),
         "def": def.toJson(),
         "defer": defer.toJson(),
         "deinit": deinit.toJson(),
@@ -1736,13 +1591,6 @@ class Obj2 {
         "id": id.toJson(),
         "IMP": imp.toJson(),
         "implicit": implicit.toJson(),
-        "indirect": indirect.toJson(),
-        "infix": infix.toJson(),
-        "init": init.toJson(),
-        "inline": inline.toJson(),
-        "inout": inout.toJson(),
-        "instanceof": instanceof.toJson(),
-        "internal": internal.toJson(),
         "default": obj2Default.toJson(),
         "do": obj2Do.toJson(),
         "double": obj2Double.toJson(),
@@ -1760,80 +1608,188 @@ class Obj2 {
         "hashCode": obj2HashCode.toJson(),
         "if": obj2If.toJson(),
         "implements": obj2Implements.toJson(),
-        "import": obj2Import.toJson(),
-        "in": obj2In.toJson(),
-        "int": obj2Int.toJson(),
-        "interface": obj2Interface.toJson(),
         "false": purpleFalse.toJson(),
     };
 }
 
-class Def {
-    final int def;
+class DateTimeClass {
+    final DateTime dateTime;
 
-    Def({
-        required this.def,
+    DateTimeClass({
+        required this.dateTime,
     });
 
-    factory Def.fromJson(Map<String, dynamic> json) => Def(
-        def: json["def"],
+    factory DateTimeClass.fromJson(Map<String, dynamic> json) => DateTimeClass(
+        dateTime: DateTime.parse(json["DateTime"]),
     );
 
     Map<String, dynamic> toJson() => {
-        "def": def,
+        "DateTime": dateTime.toIso8601String(),
     };
 }
 
-class Defer {
-    final int defer;
+class DateTimeStyles {
+    final int dateTimeStyles;
 
-    Defer({
-        required this.defer,
+    DateTimeStyles({
+        required this.dateTimeStyles,
     });
 
-    factory Defer.fromJson(Map<String, dynamic> json) => Defer(
-        defer: json["defer"],
+    factory DateTimeStyles.fromJson(Map<String, dynamic> json) => DateTimeStyles(
+        dateTimeStyles: json["DateTimeStyles"],
     );
 
     Map<String, dynamic> toJson() => {
-        "defer": defer,
+        "DateTimeStyles": dateTimeStyles,
     };
 }
 
-class Deinit {
-    final int deinit;
+class Debugger {
+    final int debugger;
 
-    Deinit({
-        required this.deinit,
+    Debugger({
+        required this.debugger,
     });
 
-    factory Deinit.fromJson(Map<String, dynamic> json) => Deinit(
-        deinit: json["deinit"],
+    factory Debugger.fromJson(Map<String, dynamic> json) => Debugger(
+        debugger: json["debugger"],
     );
 
     Map<String, dynamic> toJson() => {
-        "deinit": deinit,
+        "debugger": debugger,
     };
 }
 
-class Del {
-    final int del;
+class Decimal {
+    final int decimal;
 
-    Del({
-        required this.del,
+    Decimal({
+        required this.decimal,
     });
 
-    factory Del.fromJson(Map<String, dynamic> json) => Del(
-        del: json["del"],
+    factory Decimal.fromJson(Map<String, dynamic> json) => Decimal(
+        decimal: json["decimal"],
     );
 
     Map<String, dynamic> toJson() => {
-        "del": del,
+        "decimal": decimal,
     };
 }
 
-class Delegate {
-    final int delegate;
+class Declare {
+    final int declare;
+
+    Declare({
+        required this.declare,
+    });
+
+    factory Declare.fromJson(Map<String, dynamic> json) => Declare(
+        declare: json["declare"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "declare": declare,
+    };
+}
+
+class Decltype {
+    final int decltype;
+
+    Decltype({
+        required this.decltype,
+    });
+
+    factory Decltype.fromJson(Map<String, dynamic> json) => Decltype(
+        decltype: json["decltype"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "decltype": decltype,
+    };
+}
+
+class DecodeString {
+    final int decodeString;
+
+    DecodeString({
+        required this.decodeString,
+    });
+
+    factory DecodeString.fromJson(Map<String, dynamic> json) => DecodeString(
+        decodeString: json["decode_string"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "decode_string": decodeString,
+    };
+}
+
+class Def {
+    final int def;
+
+    Def({
+        required this.def,
+    });
+
+    factory Def.fromJson(Map<String, dynamic> json) => Def(
+        def: json["def"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "def": def,
+    };
+}
+
+class Defer {
+    final int defer;
+
+    Defer({
+        required this.defer,
+    });
+
+    factory Defer.fromJson(Map<String, dynamic> json) => Defer(
+        defer: json["defer"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "defer": defer,
+    };
+}
+
+class Deinit {
+    final int deinit;
+
+    Deinit({
+        required this.deinit,
+    });
+
+    factory Deinit.fromJson(Map<String, dynamic> json) => Deinit(
+        deinit: json["deinit"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "deinit": deinit,
+    };
+}
+
+class Del {
+    final int del;
+
+    Del({
+        required this.del,
+    });
+
+    factory Del.fromJson(Map<String, dynamic> json) => Del(
+        del: json["del"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "del": del,
+    };
+}
+
+class Delegate {
+    final int delegate;
 
     Delegate({
         required this.delegate,
@@ -2402,118 +2358,6 @@ class Implicit {
     };
 }
 
-class Indirect {
-    final int indirect;
-
-    Indirect({
-        required this.indirect,
-    });
-
-    factory Indirect.fromJson(Map<String, dynamic> json) => Indirect(
-        indirect: json["indirect"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "indirect": indirect,
-    };
-}
-
-class Infix {
-    final int infix;
-
-    Infix({
-        required this.infix,
-    });
-
-    factory Infix.fromJson(Map<String, dynamic> json) => Infix(
-        infix: json["infix"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "infix": infix,
-    };
-}
-
-class Init {
-    final int init;
-
-    Init({
-        required this.init,
-    });
-
-    factory Init.fromJson(Map<String, dynamic> json) => Init(
-        init: json["init"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "init": init,
-    };
-}
-
-class Inline {
-    final int inline;
-
-    Inline({
-        required this.inline,
-    });
-
-    factory Inline.fromJson(Map<String, dynamic> json) => Inline(
-        inline: json["inline"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "inline": inline,
-    };
-}
-
-class Inout {
-    final int inout;
-
-    Inout({
-        required this.inout,
-    });
-
-    factory Inout.fromJson(Map<String, dynamic> json) => Inout(
-        inout: json["inout"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "inout": inout,
-    };
-}
-
-class Instanceof {
-    final int instanceof;
-
-    Instanceof({
-        required this.instanceof,
-    });
-
-    factory Instanceof.fromJson(Map<String, dynamic> json) => Instanceof(
-        instanceof: json["instanceof"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "instanceof": instanceof,
-    };
-}
-
-class Internal {
-    final int internal;
-
-    Internal({
-        required this.internal,
-    });
-
-    factory Internal.fromJson(Map<String, dynamic> json) => Internal(
-        internal: json["internal"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "internal": internal,
-    };
-}
-
 class Default {
     final int defaultDefault;
 
@@ -2786,88 +2630,31 @@ class Implements {
     };
 }
 
-class Import {
-    final int importImport;
-
-    Import({
-        required this.importImport,
-    });
-
-    factory Import.fromJson(Map<String, dynamic> json) => Import(
-        importImport: json["import"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "import": importImport,
-    };
-}
-
-class In {
-    final int inIn;
+class FalseClass {
+    final int falseFalse;
 
-    In({
-        required this.inIn,
+    FalseClass({
+        required this.falseFalse,
     });
 
-    factory In.fromJson(Map<String, dynamic> json) => In(
-        inIn: json["in"],
+    factory FalseClass.fromJson(Map<String, dynamic> json) => FalseClass(
+        falseFalse: json["false"],
     );
 
     Map<String, dynamic> toJson() => {
-        "in": inIn,
-    };
-}
-
-class Int {
-    final int intInt;
-
-    Int({
-        required this.intInt,
-    });
-
-    factory Int.fromJson(Map<String, dynamic> json) => Int(
-        intInt: json["int"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "int": intInt,
-    };
-}
-
-class Interface {
-    final int interfaceInterface;
-
-    Interface({
-        required this.interfaceInterface,
-    });
-
-    factory Interface.fromJson(Map<String, dynamic> json) => Interface(
-        interfaceInterface: json["interface"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "interface": interfaceInterface,
-    };
-}
-
-class FalseClass {
-    final int falseFalse;
-
-    FalseClass({
-        required this.falseFalse,
-    });
-
-    factory FalseClass.fromJson(Map<String, dynamic> json) => FalseClass(
-        falseFalse: json["false"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "false": falseFalse,
+        "false": falseFalse,
     };
 }
 
 class Obj3 {
     final int dummy;
+    final Indirect indirect;
+    final Infix infix;
+    final Init init;
+    final Inline inline;
+    final Inout inout;
+    final Instanceof instanceof;
+    final Internal internal;
     final IsoDateTimeOffsetConverter isoDateTimeOffsetConverter;
     final Iterable iterable;
     final Jdec jdec;
@@ -2915,46 +2702,26 @@ class Obj3 {
     final NotEq notEq;
     final NsError nsError;
     final NsString nsString;
-    final Nullptr nullptr;
-    final Number number;
+    final Import obj3Import;
+    final In obj3In;
+    final Int obj3Int;
+    final Interface obj3Interface;
     final Is obj3Is;
     final New obj3New;
     final NoSuchMethod obj3NoSuchMethod;
     final NoneClass obj3None;
     final Null obj3Null;
-    final Operator obj3Operator;
-    final ProtocolClass obj3Protocol;
-    final Object object;
-    final ObjectMapper objectMapper;
-    final Of of;
-    final Oneway oneway;
-    final Open open;
-    final Optional optional;
-    final Or or;
-    final OrEq orEq;
-    final Out out;
-    final Override override;
-    final Package package;
-    final Params params;
-    final Pass pass;
-    final Port port;
-    final Postfix postfix;
-    final Precedence precedence;
-    final Prefix prefix;
-    final Print print;
-    final PrintMembers printMembers;
-    final Printf printf;
-    final Private private;
-    final Protected protected;
-    final Protocol protocol;
     final NullClass purpleNull;
-    final SerializerProvider serializerProvider;
-    final SimpleModule simpleModule;
-    final StdDeserializer stdDeserializer;
-    final StdSerializer stdSerializer;
 
     Obj3({
         required this.dummy,
+        required this.indirect,
+        required this.infix,
+        required this.init,
+        required this.inline,
+        required this.inout,
+        required this.instanceof,
+        required this.internal,
         required this.isoDateTimeOffsetConverter,
         required this.iterable,
         required this.jdec,
@@ -3002,47 +2769,27 @@ class Obj3 {
         required this.notEq,
         required this.nsError,
         required this.nsString,
-        required this.nullptr,
-        required this.number,
+        required this.obj3Import,
+        required this.obj3In,
+        required this.obj3Int,
+        required this.obj3Interface,
         required this.obj3Is,
         required this.obj3New,
         required this.obj3NoSuchMethod,
         required this.obj3None,
         required this.obj3Null,
-        required this.obj3Operator,
-        required this.obj3Protocol,
-        required this.object,
-        required this.objectMapper,
-        required this.of,
-        required this.oneway,
-        required this.open,
-        required this.optional,
-        required this.or,
-        required this.orEq,
-        required this.out,
-        required this.override,
-        required this.package,
-        required this.params,
-        required this.pass,
-        required this.port,
-        required this.postfix,
-        required this.precedence,
-        required this.prefix,
-        required this.print,
-        required this.printMembers,
-        required this.printf,
-        required this.private,
-        required this.protected,
-        required this.protocol,
         required this.purpleNull,
-        required this.serializerProvider,
-        required this.simpleModule,
-        required this.stdDeserializer,
-        required this.stdSerializer,
     });
 
     factory Obj3.fromJson(Map<String, dynamic> json) => Obj3(
         dummy: json["dummy"],
+        indirect: Indirect.fromJson(json["indirect"]),
+        infix: Infix.fromJson(json["infix"]),
+        init: Init.fromJson(json["init"]),
+        inline: Inline.fromJson(json["inline"]),
+        inout: Inout.fromJson(json["inout"]),
+        instanceof: Instanceof.fromJson(json["instanceof"]),
+        internal: Internal.fromJson(json["internal"]),
         isoDateTimeOffsetConverter: IsoDateTimeOffsetConverter.fromJson(json["IsoDateTimeOffsetConverter"]),
         iterable: Iterable.fromJson(json["iterable"]),
         jdec: Jdec.fromJson(json["jdec"]),
@@ -3090,47 +2837,27 @@ class Obj3 {
         notEq: NotEq.fromJson(json["not_eq"]),
         nsError: NsError.fromJson(json["NSError"]),
         nsString: NsString.fromJson(json["NSString"]),
-        nullptr: Nullptr.fromJson(json["nullptr"]),
-        number: Number.fromJson(json["number"]),
+        obj3Import: Import.fromJson(json["import"]),
+        obj3In: In.fromJson(json["in"]),
+        obj3Int: Int.fromJson(json["int"]),
+        obj3Interface: Interface.fromJson(json["interface"]),
         obj3Is: Is.fromJson(json["is"]),
         obj3New: New.fromJson(json["new"]),
         obj3NoSuchMethod: NoSuchMethod.fromJson(json["noSuchMethod"]),
         obj3None: NoneClass.fromJson(json["none"]),
         obj3Null: Null.fromJson(json["NULL"]),
-        obj3Operator: Operator.fromJson(json["operator"]),
-        obj3Protocol: ProtocolClass.fromJson(json["protocol"]),
-        object: Object.fromJson(json["object"]),
-        objectMapper: ObjectMapper.fromJson(json["ObjectMapper"]),
-        of: Of.fromJson(json["of"]),
-        oneway: Oneway.fromJson(json["oneway"]),
-        open: Open.fromJson(json["open"]),
-        optional: Optional.fromJson(json["optional"]),
-        or: Or.fromJson(json["or"]),
-        orEq: OrEq.fromJson(json["or_eq"]),
-        out: Out.fromJson(json["out"]),
-        override: Override.fromJson(json["override"]),
-        package: Package.fromJson(json["package"]),
-        params: Params.fromJson(json["params"]),
-        pass: Pass.fromJson(json["pass"]),
-        port: Port.fromJson(json["port"]),
-        postfix: Postfix.fromJson(json["postfix"]),
-        precedence: Precedence.fromJson(json["precedence"]),
-        prefix: Prefix.fromJson(json["prefix"]),
-        print: Print.fromJson(json["print"]),
-        printMembers: PrintMembers.fromJson(json["printMembers"]),
-        printf: Printf.fromJson(json["printf"]),
-        private: Private.fromJson(json["private"]),
-        protected: Protected.fromJson(json["protected"]),
-        protocol: Protocol.fromJson(json["Protocol"]),
         purpleNull: NullClass.fromJson(json["null"]),
-        serializerProvider: SerializerProvider.fromJson(json["SerializerProvider"]),
-        simpleModule: SimpleModule.fromJson(json["SimpleModule"]),
-        stdDeserializer: StdDeserializer.fromJson(json["StdDeserializer"]),
-        stdSerializer: StdSerializer.fromJson(json["StdSerializer"]),
     );
 
     Map<String, dynamic> toJson() => {
         "dummy": dummy,
+        "indirect": indirect.toJson(),
+        "infix": infix.toJson(),
+        "init": init.toJson(),
+        "inline": inline.toJson(),
+        "inout": inout.toJson(),
+        "instanceof": instanceof.toJson(),
+        "internal": internal.toJson(),
         "IsoDateTimeOffsetConverter": isoDateTimeOffsetConverter.toJson(),
         "iterable": iterable.toJson(),
         "jdec": jdec.toJson(),
@@ -3178,119 +2905,204 @@ class Obj3 {
         "not_eq": notEq.toJson(),
         "NSError": nsError.toJson(),
         "NSString": nsString.toJson(),
-        "nullptr": nullptr.toJson(),
-        "number": number.toJson(),
+        "import": obj3Import.toJson(),
+        "in": obj3In.toJson(),
+        "int": obj3Int.toJson(),
+        "interface": obj3Interface.toJson(),
         "is": obj3Is.toJson(),
         "new": obj3New.toJson(),
         "noSuchMethod": obj3NoSuchMethod.toJson(),
         "none": obj3None.toJson(),
         "NULL": obj3Null.toJson(),
-        "operator": obj3Operator.toJson(),
-        "protocol": obj3Protocol.toJson(),
-        "object": object.toJson(),
-        "ObjectMapper": objectMapper.toJson(),
-        "of": of.toJson(),
-        "oneway": oneway.toJson(),
-        "open": open.toJson(),
-        "optional": optional.toJson(),
-        "or": or.toJson(),
-        "or_eq": orEq.toJson(),
-        "out": out.toJson(),
-        "override": override.toJson(),
-        "package": package.toJson(),
-        "params": params.toJson(),
-        "pass": pass.toJson(),
-        "port": port.toJson(),
-        "postfix": postfix.toJson(),
-        "precedence": precedence.toJson(),
-        "prefix": prefix.toJson(),
-        "print": print.toJson(),
-        "printMembers": printMembers.toJson(),
-        "printf": printf.toJson(),
-        "private": private.toJson(),
-        "protected": protected.toJson(),
-        "Protocol": protocol.toJson(),
         "null": purpleNull.toJson(),
-        "SerializerProvider": serializerProvider.toJson(),
-        "SimpleModule": simpleModule.toJson(),
-        "StdDeserializer": stdDeserializer.toJson(),
-        "StdSerializer": stdSerializer.toJson(),
     };
 }
 
-class IsoDateTimeOffsetConverter {
-    final int isoDateTimeOffsetConverter;
+class Indirect {
+    final int indirect;
 
-    IsoDateTimeOffsetConverter({
-        required this.isoDateTimeOffsetConverter,
+    Indirect({
+        required this.indirect,
     });
 
-    factory IsoDateTimeOffsetConverter.fromJson(Map<String, dynamic> json) => IsoDateTimeOffsetConverter(
-        isoDateTimeOffsetConverter: json["IsoDateTimeOffsetConverter"],
+    factory Indirect.fromJson(Map<String, dynamic> json) => Indirect(
+        indirect: json["indirect"],
     );
 
     Map<String, dynamic> toJson() => {
-        "IsoDateTimeOffsetConverter": isoDateTimeOffsetConverter,
+        "indirect": indirect,
     };
 }
 
-class Iterable {
-    final int iterable;
+class Infix {
+    final int infix;
 
-    Iterable({
-        required this.iterable,
+    Infix({
+        required this.infix,
     });
 
-    factory Iterable.fromJson(Map<String, dynamic> json) => Iterable(
-        iterable: json["iterable"],
+    factory Infix.fromJson(Map<String, dynamic> json) => Infix(
+        infix: json["infix"],
     );
 
     Map<String, dynamic> toJson() => {
-        "iterable": iterable,
+        "infix": infix,
     };
 }
 
-class Jdec {
-    final int jdec;
+class Init {
+    final int init;
 
-    Jdec({
-        required this.jdec,
+    Init({
+        required this.init,
     });
 
-    factory Jdec.fromJson(Map<String, dynamic> json) => Jdec(
-        jdec: json["jdec"],
+    factory Init.fromJson(Map<String, dynamic> json) => Init(
+        init: json["init"],
     );
 
     Map<String, dynamic> toJson() => {
-        "jdec": jdec,
+        "init": init,
     };
 }
 
-class Jenc {
-    final int jenc;
+class Inline {
+    final int inline;
 
-    Jenc({
-        required this.jenc,
+    Inline({
+        required this.inline,
     });
 
-    factory Jenc.fromJson(Map<String, dynamic> json) => Jenc(
-        jenc: json["jenc"],
+    factory Inline.fromJson(Map<String, dynamic> json) => Inline(
+        inline: json["inline"],
     );
 
     Map<String, dynamic> toJson() => {
-        "jenc": jenc,
+        "inline": inline,
     };
 }
 
-class Jpipe {
-    final int jpipe;
+class Inout {
+    final int inout;
 
-    Jpipe({
-        required this.jpipe,
+    Inout({
+        required this.inout,
     });
 
-    factory Jpipe.fromJson(Map<String, dynamic> json) => Jpipe(
-        jpipe: json["jpipe"],
+    factory Inout.fromJson(Map<String, dynamic> json) => Inout(
+        inout: json["inout"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "inout": inout,
+    };
+}
+
+class Instanceof {
+    final int instanceof;
+
+    Instanceof({
+        required this.instanceof,
+    });
+
+    factory Instanceof.fromJson(Map<String, dynamic> json) => Instanceof(
+        instanceof: json["instanceof"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "instanceof": instanceof,
+    };
+}
+
+class Internal {
+    final int internal;
+
+    Internal({
+        required this.internal,
+    });
+
+    factory Internal.fromJson(Map<String, dynamic> json) => Internal(
+        internal: json["internal"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "internal": internal,
+    };
+}
+
+class IsoDateTimeOffsetConverter {
+    final int isoDateTimeOffsetConverter;
+
+    IsoDateTimeOffsetConverter({
+        required this.isoDateTimeOffsetConverter,
+    });
+
+    factory IsoDateTimeOffsetConverter.fromJson(Map<String, dynamic> json) => IsoDateTimeOffsetConverter(
+        isoDateTimeOffsetConverter: json["IsoDateTimeOffsetConverter"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "IsoDateTimeOffsetConverter": isoDateTimeOffsetConverter,
+    };
+}
+
+class Iterable {
+    final int iterable;
+
+    Iterable({
+        required this.iterable,
+    });
+
+    factory Iterable.fromJson(Map<String, dynamic> json) => Iterable(
+        iterable: json["iterable"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "iterable": iterable,
+    };
+}
+
+class Jdec {
+    final int jdec;
+
+    Jdec({
+        required this.jdec,
+    });
+
+    factory Jdec.fromJson(Map<String, dynamic> json) => Jdec(
+        jdec: json["jdec"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "jdec": jdec,
+    };
+}
+
+class Jenc {
+    final int jenc;
+
+    Jenc({
+        required this.jenc,
+    });
+
+    factory Jenc.fromJson(Map<String, dynamic> json) => Jenc(
+        jenc: json["jenc"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "jenc": jenc,
+    };
+}
+
+class Jpipe {
+    final int jpipe;
+
+    Jpipe({
+        required this.jpipe,
+    });
+
+    factory Jpipe.fromJson(Map<String, dynamic> json) => Jpipe(
+        jpipe: json["jpipe"],
     );
 
     Map<String, dynamic> toJson() => {
@@ -3970,35 +3782,67 @@ class NsString {
     };
 }
 
-class Nullptr {
-    final int nullptr;
+class Import {
+    final int importImport;
 
-    Nullptr({
-        required this.nullptr,
+    Import({
+        required this.importImport,
     });
 
-    factory Nullptr.fromJson(Map<String, dynamic> json) => Nullptr(
-        nullptr: json["nullptr"],
+    factory Import.fromJson(Map<String, dynamic> json) => Import(
+        importImport: json["import"],
     );
 
     Map<String, dynamic> toJson() => {
-        "nullptr": nullptr,
+        "import": importImport,
     };
 }
 
-class Number {
-    final int number;
+class In {
+    final int inIn;
 
-    Number({
-        required this.number,
+    In({
+        required this.inIn,
     });
 
-    factory Number.fromJson(Map<String, dynamic> json) => Number(
-        number: json["number"],
+    factory In.fromJson(Map<String, dynamic> json) => In(
+        inIn: json["in"],
     );
 
     Map<String, dynamic> toJson() => {
-        "number": number,
+        "in": inIn,
+    };
+}
+
+class Int {
+    final int intInt;
+
+    Int({
+        required this.intInt,
+    });
+
+    factory Int.fromJson(Map<String, dynamic> json) => Int(
+        intInt: json["int"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "int": intInt,
+    };
+}
+
+class Interface {
+    final int interfaceInterface;
+
+    Interface({
+        required this.interfaceInterface,
+    });
+
+    factory Interface.fromJson(Map<String, dynamic> json) => Interface(
+        interfaceInterface: json["interface"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "interface": interfaceInterface,
     };
 }
 
@@ -4082,107 +3926,507 @@ class Null {
     };
 }
 
-class Operator {
-    final int operatorOperator;
+class NullClass {
+    final int nullNull;
 
-    Operator({
-        required this.operatorOperator,
+    NullClass({
+        required this.nullNull,
     });
 
-    factory Operator.fromJson(Map<String, dynamic> json) => Operator(
-        operatorOperator: json["operator"],
+    factory NullClass.fromJson(Map<String, dynamic> json) => NullClass(
+        nullNull: json["null"],
     );
 
     Map<String, dynamic> toJson() => {
-        "operator": operatorOperator,
+        "null": nullNull,
     };
 }
 
-class ProtocolClass {
-    final int protocol;
+class Obj4 {
+    final int dummy;
+    final Nullptr nullptr;
+    final Number number;
+    final Operator obj4Operator;
+    final ProtocolClass obj4Protocol;
+    final Return obj4Return;
+    final RuntimeType obj4RuntimeType;
+    final SelfClass obj4Self;
+    final Set obj4Set;
+    final Static obj4Static;
+    final Object object;
+    final ObjectMapper objectMapper;
+    final Of of;
+    final Oneway oneway;
+    final Open open;
+    final Optional optional;
+    final Or or;
+    final OrEq orEq;
+    final Out out;
+    final Override override;
+    final Package package;
+    final Params params;
+    final Pass pass;
+    final Port port;
+    final Postfix postfix;
+    final Precedence precedence;
+    final Prefix prefix;
+    final Print print;
+    final PrintMembers printMembers;
+    final Printf printf;
+    final Private private;
+    final Protected protected;
+    final Protocol protocol;
+    final Public public;
+    final Quicktype quicktype;
+    final Raise raise;
+    final Range range;
+    final Readonly readonly;
+    final Ref ref;
+    final RegExpClass regExp;
+    final Register register;
+    final ReinterpretCast reinterpretCast;
+    final Repeat repeat;
+    final Require require;
+    final Required required;
+    final Requires requires;
+    final Restrict restrict;
+    final Retain retain;
+    final Rethrows rethrows;
+    final Right right;
+    final S s;
+    final Sbyte sbyte;
+    final Sealed sealed;
+    final Sel sel;
+    final Select select;
+    final Self self;
+    final Serialize serialize;
+    final SerializerProvider serializerProvider;
+    final Short short;
+    final Signed signed;
+    final SimpleModule simpleModule;
+    final Sizeof sizeof;
+    final Stackalloc stackalloc;
+    final Standards standards;
+    final StaticAssert staticAssert;
 
-    ProtocolClass({
-        required this.protocol,
+    Obj4({
+        required this.dummy,
+        required this.nullptr,
+        required this.number,
+        required this.obj4Operator,
+        required this.obj4Protocol,
+        required this.obj4Return,
+        required this.obj4RuntimeType,
+        required this.obj4Self,
+        required this.obj4Set,
+        required this.obj4Static,
+        required this.object,
+        required this.objectMapper,
+        required this.of,
+        required this.oneway,
+        required this.open,
+        required this.optional,
+        required this.or,
+        required this.orEq,
+        required this.out,
+        required this.override,
+        required this.package,
+        required this.params,
+        required this.pass,
+        required this.port,
+        required this.postfix,
+        required this.precedence,
+        required this.prefix,
+        required this.print,
+        required this.printMembers,
+        required this.printf,
+        required this.private,
+        required this.protected,
+        required this.protocol,
+        required this.public,
+        required this.quicktype,
+        required this.raise,
+        required this.range,
+        required this.readonly,
+        required this.ref,
+        required this.regExp,
+        required this.register,
+        required this.reinterpretCast,
+        required this.repeat,
+        required this.require,
+        required this.required,
+        required this.requires,
+        required this.restrict,
+        required this.retain,
+        required this.rethrows,
+        required this.right,
+        required this.s,
+        required this.sbyte,
+        required this.sealed,
+        required this.sel,
+        required this.select,
+        required this.self,
+        required this.serialize,
+        required this.serializerProvider,
+        required this.short,
+        required this.signed,
+        required this.simpleModule,
+        required this.sizeof,
+        required this.stackalloc,
+        required this.standards,
+        required this.staticAssert,
     });
 
-    factory ProtocolClass.fromJson(Map<String, dynamic> json) => ProtocolClass(
-        protocol: json["protocol"],
+    factory Obj4.fromJson(Map<String, dynamic> json) => Obj4(
+        dummy: json["dummy"],
+        nullptr: Nullptr.fromJson(json["nullptr"]),
+        number: Number.fromJson(json["number"]),
+        obj4Operator: Operator.fromJson(json["operator"]),
+        obj4Protocol: ProtocolClass.fromJson(json["protocol"]),
+        obj4Return: Return.fromJson(json["return"]),
+        obj4RuntimeType: RuntimeType.fromJson(json["runtimeType"]),
+        obj4Self: SelfClass.fromJson(json["self"]),
+        obj4Set: Set.fromJson(json["set"]),
+        obj4Static: Static.fromJson(json["static"]),
+        object: Object.fromJson(json["object"]),
+        objectMapper: ObjectMapper.fromJson(json["ObjectMapper"]),
+        of: Of.fromJson(json["of"]),
+        oneway: Oneway.fromJson(json["oneway"]),
+        open: Open.fromJson(json["open"]),
+        optional: Optional.fromJson(json["optional"]),
+        or: Or.fromJson(json["or"]),
+        orEq: OrEq.fromJson(json["or_eq"]),
+        out: Out.fromJson(json["out"]),
+        override: Override.fromJson(json["override"]),
+        package: Package.fromJson(json["package"]),
+        params: Params.fromJson(json["params"]),
+        pass: Pass.fromJson(json["pass"]),
+        port: Port.fromJson(json["port"]),
+        postfix: Postfix.fromJson(json["postfix"]),
+        precedence: Precedence.fromJson(json["precedence"]),
+        prefix: Prefix.fromJson(json["prefix"]),
+        print: Print.fromJson(json["print"]),
+        printMembers: PrintMembers.fromJson(json["printMembers"]),
+        printf: Printf.fromJson(json["printf"]),
+        private: Private.fromJson(json["private"]),
+        protected: Protected.fromJson(json["protected"]),
+        protocol: Protocol.fromJson(json["Protocol"]),
+        public: Public.fromJson(json["public"]),
+        quicktype: Quicktype.fromJson(json["quicktype"]),
+        raise: Raise.fromJson(json["raise"]),
+        range: Range.fromJson(json["range"]),
+        readonly: Readonly.fromJson(json["readonly"]),
+        ref: Ref.fromJson(json["ref"]),
+        regExp: RegExpClass.fromJson(json["RegExp"]),
+        register: Register.fromJson(json["register"]),
+        reinterpretCast: ReinterpretCast.fromJson(json["reinterpret_cast"]),
+        repeat: Repeat.fromJson(json["repeat"]),
+        require: Require.fromJson(json["require"]),
+        required: Required.fromJson(json["required"]),
+        requires: Requires.fromJson(json["requires"]),
+        restrict: Restrict.fromJson(json["restrict"]),
+        retain: Retain.fromJson(json["retain"]),
+        rethrows: Rethrows.fromJson(json["rethrows"]),
+        right: Right.fromJson(json["right"]),
+        s: S.fromJson(json["s"]),
+        sbyte: Sbyte.fromJson(json["sbyte"]),
+        sealed: Sealed.fromJson(json["sealed"]),
+        sel: Sel.fromJson(json["SEL"]),
+        select: Select.fromJson(json["select"]),
+        self: Self.fromJson(json["Self"]),
+        serialize: Serialize.fromJson(json["serialize"]),
+        serializerProvider: SerializerProvider.fromJson(json["SerializerProvider"]),
+        short: Short.fromJson(json["short"]),
+        signed: Signed.fromJson(json["signed"]),
+        simpleModule: SimpleModule.fromJson(json["SimpleModule"]),
+        sizeof: Sizeof.fromJson(json["sizeof"]),
+        stackalloc: Stackalloc.fromJson(json["stackalloc"]),
+        standards: Standards.fromJson(json["Standards"]),
+        staticAssert: StaticAssert.fromJson(json["static_assert"]),
     );
 
     Map<String, dynamic> toJson() => {
-        "protocol": protocol,
+        "dummy": dummy,
+        "nullptr": nullptr.toJson(),
+        "number": number.toJson(),
+        "operator": obj4Operator.toJson(),
+        "protocol": obj4Protocol.toJson(),
+        "return": obj4Return.toJson(),
+        "runtimeType": obj4RuntimeType.toJson(),
+        "self": obj4Self.toJson(),
+        "set": obj4Set.toJson(),
+        "static": obj4Static.toJson(),
+        "object": object.toJson(),
+        "ObjectMapper": objectMapper.toJson(),
+        "of": of.toJson(),
+        "oneway": oneway.toJson(),
+        "open": open.toJson(),
+        "optional": optional.toJson(),
+        "or": or.toJson(),
+        "or_eq": orEq.toJson(),
+        "out": out.toJson(),
+        "override": override.toJson(),
+        "package": package.toJson(),
+        "params": params.toJson(),
+        "pass": pass.toJson(),
+        "port": port.toJson(),
+        "postfix": postfix.toJson(),
+        "precedence": precedence.toJson(),
+        "prefix": prefix.toJson(),
+        "print": print.toJson(),
+        "printMembers": printMembers.toJson(),
+        "printf": printf.toJson(),
+        "private": private.toJson(),
+        "protected": protected.toJson(),
+        "Protocol": protocol.toJson(),
+        "public": public.toJson(),
+        "quicktype": quicktype.toJson(),
+        "raise": raise.toJson(),
+        "range": range.toJson(),
+        "readonly": readonly.toJson(),
+        "ref": ref.toJson(),
+        "RegExp": regExp.toJson(),
+        "register": register.toJson(),
+        "reinterpret_cast": reinterpretCast.toJson(),
+        "repeat": repeat.toJson(),
+        "require": require.toJson(),
+        "required": required.toJson(),
+        "requires": requires.toJson(),
+        "restrict": restrict.toJson(),
+        "retain": retain.toJson(),
+        "rethrows": rethrows.toJson(),
+        "right": right.toJson(),
+        "s": s.toJson(),
+        "sbyte": sbyte.toJson(),
+        "sealed": sealed.toJson(),
+        "SEL": sel.toJson(),
+        "select": select.toJson(),
+        "Self": self.toJson(),
+        "serialize": serialize.toJson(),
+        "SerializerProvider": serializerProvider.toJson(),
+        "short": short.toJson(),
+        "signed": signed.toJson(),
+        "SimpleModule": simpleModule.toJson(),
+        "sizeof": sizeof.toJson(),
+        "stackalloc": stackalloc.toJson(),
+        "Standards": standards.toJson(),
+        "static_assert": staticAssert.toJson(),
     };
 }
 
-class Object {
-    final int object;
+class Nullptr {
+    final int nullptr;
 
-    Object({
-        required this.object,
+    Nullptr({
+        required this.nullptr,
     });
 
-    factory Object.fromJson(Map<String, dynamic> json) => Object(
-        object: json["object"],
+    factory Nullptr.fromJson(Map<String, dynamic> json) => Nullptr(
+        nullptr: json["nullptr"],
     );
 
     Map<String, dynamic> toJson() => {
-        "object": object,
+        "nullptr": nullptr,
     };
 }
 
-class ObjectMapper {
-    final int objectMapper;
+class Number {
+    final int number;
 
-    ObjectMapper({
-        required this.objectMapper,
+    Number({
+        required this.number,
     });
 
-    factory ObjectMapper.fromJson(Map<String, dynamic> json) => ObjectMapper(
-        objectMapper: json["ObjectMapper"],
+    factory Number.fromJson(Map<String, dynamic> json) => Number(
+        number: json["number"],
     );
 
     Map<String, dynamic> toJson() => {
-        "ObjectMapper": objectMapper,
+        "number": number,
     };
 }
 
-class Of {
-    final int of;
+class Operator {
+    final int operatorOperator;
 
-    Of({
-        required this.of,
+    Operator({
+        required this.operatorOperator,
     });
 
-    factory Of.fromJson(Map<String, dynamic> json) => Of(
-        of: json["of"],
+    factory Operator.fromJson(Map<String, dynamic> json) => Operator(
+        operatorOperator: json["operator"],
     );
 
     Map<String, dynamic> toJson() => {
-        "of": of,
+        "operator": operatorOperator,
     };
 }
 
-class Oneway {
-    final int oneway;
+class ProtocolClass {
+    final int protocol;
 
-    Oneway({
-        required this.oneway,
+    ProtocolClass({
+        required this.protocol,
     });
 
-    factory Oneway.fromJson(Map<String, dynamic> json) => Oneway(
-        oneway: json["oneway"],
+    factory ProtocolClass.fromJson(Map<String, dynamic> json) => ProtocolClass(
+        protocol: json["protocol"],
     );
 
     Map<String, dynamic> toJson() => {
-        "oneway": oneway,
+        "protocol": protocol,
     };
 }
 
-class Open {
-    final int open;
+class Return {
+    final int returnReturn;
 
-    Open({
-        required this.open,
+    Return({
+        required this.returnReturn,
+    });
+
+    factory Return.fromJson(Map<String, dynamic> json) => Return(
+        returnReturn: json["return"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "return": returnReturn,
+    };
+}
+
+class RuntimeType {
+    final int runtimeTypeRuntimeType;
+
+    RuntimeType({
+        required this.runtimeTypeRuntimeType,
+    });
+
+    factory RuntimeType.fromJson(Map<String, dynamic> json) => RuntimeType(
+        runtimeTypeRuntimeType: json["runtimeType"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "runtimeType": runtimeTypeRuntimeType,
+    };
+}
+
+class SelfClass {
+    final int self;
+
+    SelfClass({
+        required this.self,
+    });
+
+    factory SelfClass.fromJson(Map<String, dynamic> json) => SelfClass(
+        self: json["self"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "self": self,
+    };
+}
+
+class Set {
+    final int setSet;
+
+    Set({
+        required this.setSet,
+    });
+
+    factory Set.fromJson(Map<String, dynamic> json) => Set(
+        setSet: json["set"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "set": setSet,
+    };
+}
+
+class Static {
+    final int staticStatic;
+
+    Static({
+        required this.staticStatic,
+    });
+
+    factory Static.fromJson(Map<String, dynamic> json) => Static(
+        staticStatic: json["static"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "static": staticStatic,
+    };
+}
+
+class Object {
+    final int object;
+
+    Object({
+        required this.object,
+    });
+
+    factory Object.fromJson(Map<String, dynamic> json) => Object(
+        object: json["object"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "object": object,
+    };
+}
+
+class ObjectMapper {
+    final int objectMapper;
+
+    ObjectMapper({
+        required this.objectMapper,
+    });
+
+    factory ObjectMapper.fromJson(Map<String, dynamic> json) => ObjectMapper(
+        objectMapper: json["ObjectMapper"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "ObjectMapper": objectMapper,
+    };
+}
+
+class Of {
+    final int of;
+
+    Of({
+        required this.of,
+    });
+
+    factory Of.fromJson(Map<String, dynamic> json) => Of(
+        of: json["of"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "of": of,
+    };
+}
+
+class Oneway {
+    final int oneway;
+
+    Oneway({
+        required this.oneway,
+    });
+
+    factory Oneway.fromJson(Map<String, dynamic> json) => Oneway(
+        oneway: json["oneway"],
+    );
+
+    Map<String, dynamic> toJson() => {
+        "oneway": oneway,
+    };
+}
+
+class Open {
+    final int open;
+
+    Open({
+        required this.open,
     });
 
     factory Open.fromJson(Map<String, dynamic> json) => Open(
@@ -4482,1135 +4726,1079 @@ class Protocol {
     };
 }
 
-class NullClass {
-    final int nullNull;
-
-    NullClass({
-        required this.nullNull,
-    });
-
-    factory NullClass.fromJson(Map<String, dynamic> json) => NullClass(
-        nullNull: json["null"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "null": nullNull,
-    };
-}
-
-class SerializerProvider {
-    final int serializerProvider;
+class Public {
+    final int public;
 
-    SerializerProvider({
-        required this.serializerProvider,
+    Public({
+        required this.public,
     });
 
-    factory SerializerProvider.fromJson(Map<String, dynamic> json) => SerializerProvider(
-        serializerProvider: json["SerializerProvider"],
+    factory Public.fromJson(Map<String, dynamic> json) => Public(
+        public: json["public"],
     );
 
     Map<String, dynamic> toJson() => {
-        "SerializerProvider": serializerProvider,
+        "public": public,
     };
 }
 
-class SimpleModule {
-    final int simpleModule;
+class Quicktype {
+    final int quicktype;
 
-    SimpleModule({
-        required this.simpleModule,
+    Quicktype({
+        required this.quicktype,
     });
 
-    factory SimpleModule.fromJson(Map<String, dynamic> json) => SimpleModule(
-        simpleModule: json["SimpleModule"],
+    factory Quicktype.fromJson(Map<String, dynamic> json) => Quicktype(
+        quicktype: json["quicktype"],
     );
 
     Map<String, dynamic> toJson() => {
-        "SimpleModule": simpleModule,
+        "quicktype": quicktype,
     };
 }
 
-class StdDeserializer {
-    final int stdDeserializer;
+class Raise {
+    final int raise;
 
-    StdDeserializer({
-        required this.stdDeserializer,
+    Raise({
+        required this.raise,
     });
 
-    factory StdDeserializer.fromJson(Map<String, dynamic> json) => StdDeserializer(
-        stdDeserializer: json["StdDeserializer"],
+    factory Raise.fromJson(Map<String, dynamic> json) => Raise(
+        raise: json["raise"],
     );
 
     Map<String, dynamic> toJson() => {
-        "StdDeserializer": stdDeserializer,
+        "raise": raise,
     };
 }
 
-class StdSerializer {
-    final int stdSerializer;
+class Range {
+    final int range;
 
-    StdSerializer({
-        required this.stdSerializer,
+    Range({
+        required this.range,
     });
 
-    factory StdSerializer.fromJson(Map<String, dynamic> json) => StdSerializer(
-        stdSerializer: json["StdSerializer"],
+    factory Range.fromJson(Map<String, dynamic> json) => Range(
+        range: json["range"],
     );
 
     Map<String, dynamic> toJson() => {
-        "StdSerializer": stdSerializer,
+        "range": range,
     };
 }
 
-class Obj4 {
-    final int dummy;
-    final Return obj4Return;
-    final RuntimeType obj4RuntimeType;
-    final SelfClass obj4Self;
-    final Set obj4Set;
-    final Static obj4Static;
-    final Super obj4Super;
-    final Switch obj4Switch;
-    final This obj4This;
-    final Throw obj4Throw;
-    final ToJson obj4ToJson;
-    final ToString obj4ToString;
-    final True obj4True;
-    final Try obj4Try;
-    final TypeClass obj4Type;
-    final Typedef obj4Typedef;
-    final Public public;
-    final TrueClass purpleTrue;
-    final Quicktype quicktype;
-    final Raise raise;
-    final Range range;
-    final Readonly readonly;
-    final Ref ref;
-    final RegExpClass regExp;
-    final Register register;
-    final ReinterpretCast reinterpretCast;
-    final Repeat repeat;
-    final Require require;
-    final Required required;
-    final Requires requires;
-    final Restrict restrict;
-    final Retain retain;
-    final Rethrows rethrows;
-    final Right right;
-    final S s;
-    final Sbyte sbyte;
-    final Sealed sealed;
-    final Sel sel;
-    final Select select;
-    final Self self;
-    final Serialize serialize;
-    final Short short;
-    final Signed signed;
-    final Sizeof sizeof;
-    final Stackalloc stackalloc;
-    final Standards standards;
-    final StaticAssert staticAssert;
-    final StaticCast staticCast;
-    final Strictfp strictfp;
-    final StringClass string;
-    final Struct struct;
-    final Subscript subscript;
-    final Symbol symbol;
-    final Synchronized synchronized;
-    final System system;
-    final Template template;
-    final Then then;
-    final ThreadLocal threadLocal;
-    final Throws throws;
-    final TimeOnly timeOnly;
-    final TimeOnlyConverter timeOnlyConverter;
-    final TopLevelClass topLevel;
-    final Transient transient;
-    final Type type;
-    final Typealias typealias;
-    final Typeid typeid;
-    final Typename typename;
-    final Typeof typeof;
-    final Uint uint;
-    final Ulong ulong;
-    final Unchecked unchecked;
-    final Undefined undefined;
+class Readonly {
+    final int readonly;
 
-    Obj4({
-        required this.dummy,
-        required this.obj4Return,
-        required this.obj4RuntimeType,
-        required this.obj4Self,
-        required this.obj4Set,
-        required this.obj4Static,
-        required this.obj4Super,
-        required this.obj4Switch,
-        required this.obj4This,
-        required this.obj4Throw,
-        required this.obj4ToJson,
-        required this.obj4ToString,
-        required this.obj4True,
-        required this.obj4Try,
-        required this.obj4Type,
-        required this.obj4Typedef,
-        required this.public,
-        required this.purpleTrue,
-        required this.quicktype,
-        required this.raise,
-        required this.range,
+    Readonly({
         required this.readonly,
-        required this.ref,
-        required this.regExp,
-        required this.register,
-        required this.reinterpretCast,
-        required this.repeat,
-        required this.require,
-        required this.required,
-        required this.requires,
-        required this.restrict,
-        required this.retain,
-        required this.rethrows,
-        required this.right,
-        required this.s,
-        required this.sbyte,
-        required this.sealed,
-        required this.sel,
-        required this.select,
-        required this.self,
-        required this.serialize,
-        required this.short,
-        required this.signed,
-        required this.sizeof,
-        required this.stackalloc,
-        required this.standards,
-        required this.staticAssert,
-        required this.staticCast,
-        required this.strictfp,
-        required this.string,
-        required this.struct,
-        required this.subscript,
-        required this.symbol,
-        required this.synchronized,
-        required this.system,
-        required this.template,
-        required this.then,
-        required this.threadLocal,
-        required this.throws,
-        required this.timeOnly,
-        required this.timeOnlyConverter,
-        required this.topLevel,
-        required this.transient,
-        required this.type,
-        required this.typealias,
-        required this.typeid,
-        required this.typename,
-        required this.typeof,
-        required this.uint,
-        required this.ulong,
-        required this.unchecked,
-        required this.undefined,
     });
 
-    factory Obj4.fromJson(Map<String, dynamic> json) => Obj4(
-        dummy: json["dummy"],
-        obj4Return: Return.fromJson(json["return"]),
-        obj4RuntimeType: RuntimeType.fromJson(json["runtimeType"]),
-        obj4Self: SelfClass.fromJson(json["self"]),
-        obj4Set: Set.fromJson(json["set"]),
-        obj4Static: Static.fromJson(json["static"]),
-        obj4Super: Super.fromJson(json["super"]),
-        obj4Switch: Switch.fromJson(json["switch"]),
-        obj4This: This.fromJson(json["this"]),
-        obj4Throw: Throw.fromJson(json["throw"]),
-        obj4ToJson: ToJson.fromJson(json["to_json"]),
-        obj4ToString: ToString.fromJson(json["toString"]),
-        obj4True: True.fromJson(json["True"]),
-        obj4Try: Try.fromJson(json["try"]),
-        obj4Type: TypeClass.fromJson(json["type"]),
-        obj4Typedef: Typedef.fromJson(json["typedef"]),
-        public: Public.fromJson(json["public"]),
-        purpleTrue: TrueClass.fromJson(json["true"]),
-        quicktype: Quicktype.fromJson(json["quicktype"]),
-        raise: Raise.fromJson(json["raise"]),
-        range: Range.fromJson(json["range"]),
-        readonly: Readonly.fromJson(json["readonly"]),
-        ref: Ref.fromJson(json["ref"]),
-        regExp: RegExpClass.fromJson(json["RegExp"]),
-        register: Register.fromJson(json["register"]),
-        reinterpretCast: ReinterpretCast.fromJson(json["reinterpret_cast"]),
-        repeat: Repeat.fromJson(json["repeat"]),
-        require: Require.fromJson(json["require"]),
-        required: Required.fromJson(json["required"]),
-        requires: Requires.fromJson(json["requires"]),
-        restrict: Restrict.fromJson(json["restrict"]),
-        retain: Retain.fromJson(json["retain"]),
-        rethrows: Rethrows.fromJson(json["rethrows"]),
-        right: Right.fromJson(json["right"]),
-        s: S.fromJson(json["s"]),
-        sbyte: Sbyte.fromJson(json["sbyte"]),
-        sealed: Sealed.fromJson(json["sealed"]),
-        sel: Sel.fromJson(json["SEL"]),
-        select: Select.fromJson(json["select"]),
-        self: Self.fromJson(json["Self"]),
-        serialize: Serialize.fromJson(json["serialize"]),
-        short: Short.fromJson(json["short"]),
-        signed: Signed.fromJson(json["signed"]),
-        sizeof: Sizeof.fromJson(json["sizeof"]),
-        stackalloc: Stackalloc.fromJson(json["stackalloc"]),
-        standards: Standards.fromJson(json["Standards"]),
-        staticAssert: StaticAssert.fromJson(json["static_assert"]),
-        staticCast: StaticCast.fromJson(json["static_cast"]),
-        strictfp: Strictfp.fromJson(json["strictfp"]),
-        string: StringClass.fromJson(json["string"]),
-        struct: Struct.fromJson(json["struct"]),
-        subscript: Subscript.fromJson(json["subscript"]),
-        symbol: Symbol.fromJson(json["symbol"]),
-        synchronized: Synchronized.fromJson(json["synchronized"]),
-        system: System.fromJson(json["system"]),
-        template: Template.fromJson(json["template"]),
-        then: Then.fromJson(json["then"]),
-        threadLocal: ThreadLocal.fromJson(json["thread_local"]),
-        throws: Throws.fromJson(json["throws"]),
-        timeOnly: TimeOnly.fromJson(json["TimeOnly"]),
-        timeOnlyConverter: TimeOnlyConverter.fromJson(json["TimeOnlyConverter"]),
-        topLevel: TopLevelClass.fromJson(json["top_level"]),
-        transient: Transient.fromJson(json["transient"]),
-        type: Type.fromJson(json["Type"]),
-        typealias: Typealias.fromJson(json["typealias"]),
-        typeid: Typeid.fromJson(json["typeid"]),
-        typename: Typename.fromJson(json["typename"]),
-        typeof: Typeof.fromJson(json["typeof"]),
-        uint: Uint.fromJson(json["uint"]),
-        ulong: Ulong.fromJson(json["ulong"]),
-        unchecked: Unchecked.fromJson(json["unchecked"]),
-        undefined: Undefined.fromJson(json["undefined"]),
+    factory Readonly.fromJson(Map<String, dynamic> json) => Readonly(
+        readonly: json["readonly"],
     );
 
     Map<String, dynamic> toJson() => {
-        "dummy": dummy,
-        "return": obj4Return.toJson(),
-        "runtimeType": obj4RuntimeType.toJson(),
-        "self": obj4Self.toJson(),
-        "set": obj4Set.toJson(),
-        "static": obj4Static.toJson(),
-        "super": obj4Super.toJson(),
-        "switch": obj4Switch.toJson(),
-        "this": obj4This.toJson(),
-        "throw": obj4Throw.toJson(),
-        "to_json": obj4ToJson.toJson(),
-        "toString": obj4ToString.toJson(),
-        "True": obj4True.toJson(),
-        "try": obj4Try.toJson(),
-        "type": obj4Type.toJson(),
-        "typedef": obj4Typedef.toJson(),
-        "public": public.toJson(),
-        "true": purpleTrue.toJson(),
-        "quicktype": quicktype.toJson(),
-        "raise": raise.toJson(),
-        "range": range.toJson(),
-        "readonly": readonly.toJson(),
-        "ref": ref.toJson(),
-        "RegExp": regExp.toJson(),
-        "register": register.toJson(),
-        "reinterpret_cast": reinterpretCast.toJson(),
-        "repeat": repeat.toJson(),
-        "require": require.toJson(),
-        "required": required.toJson(),
-        "requires": requires.toJson(),
-        "restrict": restrict.toJson(),
-        "retain": retain.toJson(),
-        "rethrows": rethrows.toJson(),
-        "right": right.toJson(),
-        "s": s.toJson(),
-        "sbyte": sbyte.toJson(),
-        "sealed": sealed.toJson(),
-        "SEL": sel.toJson(),
-        "select": select.toJson(),
-        "Self": self.toJson(),
-        "serialize": serialize.toJson(),
-        "short": short.toJson(),
-        "signed": signed.toJson(),
-        "sizeof": sizeof.toJson(),
-        "stackalloc": stackalloc.toJson(),
-        "Standards": standards.toJson(),
-        "static_assert": staticAssert.toJson(),
-        "static_cast": staticCast.toJson(),
-        "strictfp": strictfp.toJson(),
-        "string": string.toJson(),
-        "struct": struct.toJson(),
-        "subscript": subscript.toJson(),
-        "symbol": symbol.toJson(),
-        "synchronized": synchronized.toJson(),
-        "system": system.toJson(),
-        "template": template.toJson(),
-        "then": then.toJson(),
-        "thread_local": threadLocal.toJson(),
-        "throws": throws.toJson(),
-        "TimeOnly": timeOnly.toJson(),
-        "TimeOnlyConverter": timeOnlyConverter.toJson(),
-        "top_level": topLevel.toJson(),
-        "transient": transient.toJson(),
-        "Type": type.toJson(),
-        "typealias": typealias.toJson(),
-        "typeid": typeid.toJson(),
-        "typename": typename.toJson(),
-        "typeof": typeof.toJson(),
-        "uint": uint.toJson(),
-        "ulong": ulong.toJson(),
-        "unchecked": unchecked.toJson(),
-        "undefined": undefined.toJson(),
+        "readonly": readonly,
     };
 }
 
-class Return {
-    final int returnReturn;
+class Ref {
+    final int ref;
 
-    Return({
-        required this.returnReturn,
+    Ref({
+        required this.ref,
     });
 
-    factory Return.fromJson(Map<String, dynamic> json) => Return(
-        returnReturn: json["return"],
+    factory Ref.fromJson(Map<String, dynamic> json) => Ref(
+        ref: json["ref"],
     );
 
     Map<String, dynamic> toJson() => {
-        "return": returnReturn,
+        "ref": ref,
     };
 }
 
-class RuntimeType {
-    final int runtimeTypeRuntimeType;
+class RegExpClass {
+    final String regExp;
 
-    RuntimeType({
-        required this.runtimeTypeRuntimeType,
+    RegExpClass({
+        required this.regExp,
     });
 
-    factory RuntimeType.fromJson(Map<String, dynamic> json) => RuntimeType(
-        runtimeTypeRuntimeType: json["runtimeType"],
+    factory RegExpClass.fromJson(Map<String, dynamic> json) => RegExpClass(
+        regExp: ((String x) => RegExp(r'^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$').hasMatch(x) ? x : throw FormatException('Invalid UUID'))(json["RegExp"]),
     );
 
     Map<String, dynamic> toJson() => {
-        "runtimeType": runtimeTypeRuntimeType,
+        "RegExp": regExp,
     };
 }
 
-class SelfClass {
-    final int self;
+class Register {
+    final int register;
 
-    SelfClass({
-        required this.self,
+    Register({
+        required this.register,
     });
 
-    factory SelfClass.fromJson(Map<String, dynamic> json) => SelfClass(
-        self: json["self"],
+    factory Register.fromJson(Map<String, dynamic> json) => Register(
+        register: json["register"],
     );
 
     Map<String, dynamic> toJson() => {
-        "self": self,
+        "register": register,
     };
 }
 
-class Set {
-    final int setSet;
+class ReinterpretCast {
+    final int reinterpretCast;
 
-    Set({
-        required this.setSet,
+    ReinterpretCast({
+        required this.reinterpretCast,
     });
 
-    factory Set.fromJson(Map<String, dynamic> json) => Set(
-        setSet: json["set"],
+    factory ReinterpretCast.fromJson(Map<String, dynamic> json) => ReinterpretCast(
+        reinterpretCast: json["reinterpret_cast"],
     );
 
     Map<String, dynamic> toJson() => {
-        "set": setSet,
+        "reinterpret_cast": reinterpretCast,
     };
 }
 
-class Static {
-    final int staticStatic;
+class Repeat {
+    final int repeat;
 
-    Static({
-        required this.staticStatic,
+    Repeat({
+        required this.repeat,
     });
 
-    factory Static.fromJson(Map<String, dynamic> json) => Static(
-        staticStatic: json["static"],
+    factory Repeat.fromJson(Map<String, dynamic> json) => Repeat(
+        repeat: json["repeat"],
     );
 
     Map<String, dynamic> toJson() => {
-        "static": staticStatic,
+        "repeat": repeat,
     };
 }
 
-class Super {
-    final int superSuper;
+class Require {
+    final int require;
 
-    Super({
-        required this.superSuper,
+    Require({
+        required this.require,
     });
 
-    factory Super.fromJson(Map<String, dynamic> json) => Super(
-        superSuper: json["super"],
+    factory Require.fromJson(Map<String, dynamic> json) => Require(
+        require: json["require"],
     );
 
     Map<String, dynamic> toJson() => {
-        "super": superSuper,
+        "require": require,
     };
 }
 
-class Switch {
-    final int switchSwitch;
+class Required {
+    final int required;
 
-    Switch({
-        required this.switchSwitch,
+    Required({
+        required this.required,
     });
 
-    factory Switch.fromJson(Map<String, dynamic> json) => Switch(
-        switchSwitch: json["switch"],
+    factory Required.fromJson(Map<String, dynamic> json) => Required(
+        required: json["required"],
     );
 
     Map<String, dynamic> toJson() => {
-        "switch": switchSwitch,
+        "required": required,
     };
 }
 
-class This {
-    final int thisThis;
+class Requires {
+    final int requires;
 
-    This({
-        required this.thisThis,
+    Requires({
+        required this.requires,
     });
 
-    factory This.fromJson(Map<String, dynamic> json) => This(
-        thisThis: json["this"],
+    factory Requires.fromJson(Map<String, dynamic> json) => Requires(
+        requires: json["requires"],
     );
 
     Map<String, dynamic> toJson() => {
-        "this": thisThis,
+        "requires": requires,
     };
 }
 
-class Throw {
-    final int throwThrow;
+class Restrict {
+    final int restrict;
 
-    Throw({
-        required this.throwThrow,
+    Restrict({
+        required this.restrict,
     });
 
-    factory Throw.fromJson(Map<String, dynamic> json) => Throw(
-        throwThrow: json["throw"],
+    factory Restrict.fromJson(Map<String, dynamic> json) => Restrict(
+        restrict: json["restrict"],
     );
 
     Map<String, dynamic> toJson() => {
-        "throw": throwThrow,
+        "restrict": restrict,
     };
 }
 
-class ToJson {
-    final int toJsonToJson;
+class Retain {
+    final int retain;
 
-    ToJson({
-        required this.toJsonToJson,
+    Retain({
+        required this.retain,
     });
 
-    factory ToJson.fromJson(Map<String, dynamic> json) => ToJson(
-        toJsonToJson: json["to_json"],
+    factory Retain.fromJson(Map<String, dynamic> json) => Retain(
+        retain: json["retain"],
     );
 
     Map<String, dynamic> toJson() => {
-        "to_json": toJsonToJson,
+        "retain": retain,
     };
 }
 
-class ToString {
-    final int toStringToString;
+class Rethrows {
+    final int rethrows;
 
-    ToString({
-        required this.toStringToString,
+    Rethrows({
+        required this.rethrows,
     });
 
-    factory ToString.fromJson(Map<String, dynamic> json) => ToString(
-        toStringToString: json["toString"],
+    factory Rethrows.fromJson(Map<String, dynamic> json) => Rethrows(
+        rethrows: json["rethrows"],
     );
 
     Map<String, dynamic> toJson() => {
-        "toString": toStringToString,
+        "rethrows": rethrows,
     };
 }
 
-class True {
-    final int trueTrue;
+class Right {
+    final int right;
 
-    True({
-        required this.trueTrue,
+    Right({
+        required this.right,
     });
 
-    factory True.fromJson(Map<String, dynamic> json) => True(
-        trueTrue: json["True"],
+    factory Right.fromJson(Map<String, dynamic> json) => Right(
+        right: json["right"],
     );
 
     Map<String, dynamic> toJson() => {
-        "True": trueTrue,
+        "right": right,
     };
 }
 
-class Try {
-    final int tryTry;
+class S {
+    final int s;
 
-    Try({
-        required this.tryTry,
+    S({
+        required this.s,
     });
 
-    factory Try.fromJson(Map<String, dynamic> json) => Try(
-        tryTry: json["try"],
+    factory S.fromJson(Map<String, dynamic> json) => S(
+        s: json["s"],
     );
 
     Map<String, dynamic> toJson() => {
-        "try": tryTry,
+        "s": s,
     };
 }
 
-class TypeClass {
-    final int type;
+class Sbyte {
+    final int sbyte;
 
-    TypeClass({
-        required this.type,
+    Sbyte({
+        required this.sbyte,
     });
 
-    factory TypeClass.fromJson(Map<String, dynamic> json) => TypeClass(
-        type: json["type"],
+    factory Sbyte.fromJson(Map<String, dynamic> json) => Sbyte(
+        sbyte: json["sbyte"],
     );
 
     Map<String, dynamic> toJson() => {
-        "type": type,
+        "sbyte": sbyte,
     };
 }
 
-class Typedef {
-    final int typedefTypedef;
+class Sealed {
+    final int sealed;
 
-    Typedef({
-        required this.typedefTypedef,
+    Sealed({
+        required this.sealed,
     });
 
-    factory Typedef.fromJson(Map<String, dynamic> json) => Typedef(
-        typedefTypedef: json["typedef"],
+    factory Sealed.fromJson(Map<String, dynamic> json) => Sealed(
+        sealed: json["sealed"],
     );
 
     Map<String, dynamic> toJson() => {
-        "typedef": typedefTypedef,
+        "sealed": sealed,
     };
 }
 
-class Public {
-    final int public;
+class Sel {
+    final int sel;
 
-    Public({
-        required this.public,
+    Sel({
+        required this.sel,
     });
 
-    factory Public.fromJson(Map<String, dynamic> json) => Public(
-        public: json["public"],
+    factory Sel.fromJson(Map<String, dynamic> json) => Sel(
+        sel: json["SEL"],
     );
 
     Map<String, dynamic> toJson() => {
-        "public": public,
+        "SEL": sel,
     };
 }
 
-class TrueClass {
-    final int trueTrue;
+class Select {
+    final int select;
 
-    TrueClass({
-        required this.trueTrue,
+    Select({
+        required this.select,
     });
 
-    factory TrueClass.fromJson(Map<String, dynamic> json) => TrueClass(
-        trueTrue: json["true"],
+    factory Select.fromJson(Map<String, dynamic> json) => Select(
+        select: json["select"],
     );
 
     Map<String, dynamic> toJson() => {
-        "true": trueTrue,
+        "select": select,
     };
 }
 
-class Quicktype {
-    final int quicktype;
+class Self {
+    final int self;
 
-    Quicktype({
-        required this.quicktype,
+    Self({
+        required this.self,
     });
 
-    factory Quicktype.fromJson(Map<String, dynamic> json) => Quicktype(
-        quicktype: json["quicktype"],
+    factory Self.fromJson(Map<String, dynamic> json) => Self(
+        self: json["Self"],
     );
 
     Map<String, dynamic> toJson() => {
-        "quicktype": quicktype,
+        "Self": self,
     };
 }
 
-class Raise {
-    final int raise;
+class Serialize {
+    final int serialize;
 
-    Raise({
-        required this.raise,
+    Serialize({
+        required this.serialize,
     });
 
-    factory Raise.fromJson(Map<String, dynamic> json) => Raise(
-        raise: json["raise"],
+    factory Serialize.fromJson(Map<String, dynamic> json) => Serialize(
+        serialize: json["serialize"],
     );
 
     Map<String, dynamic> toJson() => {
-        "raise": raise,
+        "serialize": serialize,
     };
 }
 
-class Range {
-    final int range;
+class SerializerProvider {
+    final int serializerProvider;
 
-    Range({
-        required this.range,
+    SerializerProvider({
+        required this.serializerProvider,
     });
 
-    factory Range.fromJson(Map<String, dynamic> json) => Range(
-        range: json["range"],
+    factory SerializerProvider.fromJson(Map<String, dynamic> json) => SerializerProvider(
+        serializerProvider: json["SerializerProvider"],
     );
 
     Map<String, dynamic> toJson() => {
-        "range": range,
+        "SerializerProvider": serializerProvider,
     };
 }
 
-class Readonly {
-    final int readonly;
+class Short {
+    final int short;
 
-    Readonly({
-        required this.readonly,
+    Short({
+        required this.short,
     });
 
-    factory Readonly.fromJson(Map<String, dynamic> json) => Readonly(
-        readonly: json["readonly"],
+    factory Short.fromJson(Map<String, dynamic> json) => Short(
+        short: json["short"],
     );
 
     Map<String, dynamic> toJson() => {
-        "readonly": readonly,
+        "short": short,
     };
 }
 
-class Ref {
-    final int ref;
+class Signed {
+    final int signed;
 
-    Ref({
-        required this.ref,
+    Signed({
+        required this.signed,
     });
 
-    factory Ref.fromJson(Map<String, dynamic> json) => Ref(
-        ref: json["ref"],
+    factory Signed.fromJson(Map<String, dynamic> json) => Signed(
+        signed: json["signed"],
     );
 
     Map<String, dynamic> toJson() => {
-        "ref": ref,
+        "signed": signed,
     };
 }
 
-class RegExpClass {
-    final String regExp;
+class SimpleModule {
+    final int simpleModule;
 
-    RegExpClass({
-        required this.regExp,
+    SimpleModule({
+        required this.simpleModule,
     });
 
-    factory RegExpClass.fromJson(Map<String, dynamic> json) => RegExpClass(
-        regExp: ((String x) => RegExp(r'^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$').hasMatch(x) ? x : throw FormatException('Invalid UUID'))(json["RegExp"]),
+    factory SimpleModule.fromJson(Map<String, dynamic> json) => SimpleModule(
+        simpleModule: json["SimpleModule"],
     );
 
     Map<String, dynamic> toJson() => {
-        "RegExp": regExp,
+        "SimpleModule": simpleModule,
     };
 }
 
-class Register {
-    final int register;
+class Sizeof {
+    final int sizeof;
 
-    Register({
-        required this.register,
+    Sizeof({
+        required this.sizeof,
     });
 
-    factory Register.fromJson(Map<String, dynamic> json) => Register(
-        register: json["register"],
+    factory Sizeof.fromJson(Map<String, dynamic> json) => Sizeof(
+        sizeof: json["sizeof"],
     );
 
     Map<String, dynamic> toJson() => {
-        "register": register,
+        "sizeof": sizeof,
     };
 }
 
-class ReinterpretCast {
-    final int reinterpretCast;
+class Stackalloc {
+    final int stackalloc;
 
-    ReinterpretCast({
-        required this.reinterpretCast,
+    Stackalloc({
+        required this.stackalloc,
     });
 
-    factory ReinterpretCast.fromJson(Map<String, dynamic> json) => ReinterpretCast(
-        reinterpretCast: json["reinterpret_cast"],
+    factory Stackalloc.fromJson(Map<String, dynamic> json) => Stackalloc(
+        stackalloc: json["stackalloc"],
     );
 
     Map<String, dynamic> toJson() => {
-        "reinterpret_cast": reinterpretCast,
+        "stackalloc": stackalloc,
     };
 }
 
-class Repeat {
-    final int repeat;
+class Standards {
+    final int standards;
 
-    Repeat({
-        required this.repeat,
+    Standards({
+        required this.standards,
     });
 
-    factory Repeat.fromJson(Map<String, dynamic> json) => Repeat(
-        repeat: json["repeat"],
+    factory Standards.fromJson(Map<String, dynamic> json) => Standards(
+        standards: json["Standards"],
     );
 
     Map<String, dynamic> toJson() => {
-        "repeat": repeat,
+        "Standards": standards,
     };
 }
 
-class Require {
-    final int require;
+class StaticAssert {
+    final int staticAssert;
 
-    Require({
-        required this.require,
+    StaticAssert({
+        required this.staticAssert,
     });
 
-    factory Require.fromJson(Map<String, dynamic> json) => Require(
-        require: json["require"],
+    factory StaticAssert.fromJson(Map<String, dynamic> json) => StaticAssert(
+        staticAssert: json["static_assert"],
     );
 
     Map<String, dynamic> toJson() => {
-        "require": require,
+        "static_assert": staticAssert,
     };
 }
 
-class Required {
-    final int required;
+class Obj5 {
+    final int dummy;
+    final Super obj5Super;
+    final Switch obj5Switch;
+    final This obj5This;
+    final Throw obj5Throw;
+    final ToJson obj5ToJson;
+    final ToString obj5ToString;
+    final True obj5True;
+    final Try obj5Try;
+    final TypeClass obj5Type;
+    final Typedef obj5Typedef;
+    final Var obj5Var;
+    final Void obj5Void;
+    final While obj5While;
+    final With obj5With;
+    final Yield obj5Yield;
+    final TrueClass purpleTrue;
+    final StaticCast staticCast;
+    final StdDeserializer stdDeserializer;
+    final StdSerializer stdSerializer;
+    final Strictfp strictfp;
+    final StringClass string;
+    final Struct struct;
+    final Subscript subscript;
+    final Symbol symbol;
+    final Synchronized synchronized;
+    final System system;
+    final Template template;
+    final Then then;
+    final ThreadLocal threadLocal;
+    final Throws throws;
+    final TimeOnly timeOnly;
+    final TimeOnlyConverter timeOnlyConverter;
+    final TopLevelClass topLevel;
+    final Transient transient;
+    final Type type;
+    final Typealias typealias;
+    final Typeid typeid;
+    final Typename typename;
+    final Typeof typeof;
+    final Uint uint;
+    final Ulong ulong;
+    final Unchecked unchecked;
+    final Undefined undefined;
+    final Union union;
+    final Unowned unowned;
+    final Unsafe unsafe;
+    final Unsigned unsigned;
+    final Ushort ushort;
+    final Using using;
+    final Utf8JsonReader utf8JsonReader;
+    final Utf8JsonWriter utf8JsonWriter;
+    final Uuid uuid;
+    final Virtual virtual;
+    final Volatile volatile;
+    final WcharT wcharT;
+    final Weak weak;
+    final Where where;
+    final WillSet willSet;
+    final Xor xor;
+    final XorEq xorEq;
+    final Yes yes;
 
-    Required({
-        required this.required,
+    Obj5({
+        required this.dummy,
+        required this.obj5Super,
+        required this.obj5Switch,
+        required this.obj5This,
+        required this.obj5Throw,
+        required this.obj5ToJson,
+        required this.obj5ToString,
+        required this.obj5True,
+        required this.obj5Try,
+        required this.obj5Type,
+        required this.obj5Typedef,
+        required this.obj5Var,
+        required this.obj5Void,
+        required this.obj5While,
+        required this.obj5With,
+        required this.obj5Yield,
+        required this.purpleTrue,
+        required this.staticCast,
+        required this.stdDeserializer,
+        required this.stdSerializer,
+        required this.strictfp,
+        required this.string,
+        required this.struct,
+        required this.subscript,
+        required this.symbol,
+        required this.synchronized,
+        required this.system,
+        required this.template,
+        required this.then,
+        required this.threadLocal,
+        required this.throws,
+        required this.timeOnly,
+        required this.timeOnlyConverter,
+        required this.topLevel,
+        required this.transient,
+        required this.type,
+        required this.typealias,
+        required this.typeid,
+        required this.typename,
+        required this.typeof,
+        required this.uint,
+        required this.ulong,
+        required this.unchecked,
+        required this.undefined,
+        required this.union,
+        required this.unowned,
+        required this.unsafe,
+        required this.unsigned,
+        required this.ushort,
+        required this.using,
+        required this.utf8JsonReader,
+        required this.utf8JsonWriter,
+        required this.uuid,
+        required this.virtual,
+        required this.volatile,
+        required this.wcharT,
+        required this.weak,
+        required this.where,
+        required this.willSet,
+        required this.xor,
+        required this.xorEq,
+        required this.yes,
     });
 
-    factory Required.fromJson(Map<String, dynamic> json) => Required(
-        required: json["required"],
+    factory Obj5.fromJson(Map<String, dynamic> json) => Obj5(
+        dummy: json["dummy"],
+        obj5Super: Super.fromJson(json["super"]),
+        obj5Switch: Switch.fromJson(json["switch"]),
+        obj5This: This.fromJson(json["this"]),
+        obj5Throw: Throw.fromJson(json["throw"]),
+        obj5ToJson: ToJson.fromJson(json["to_json"]),
+        obj5ToString: ToString.fromJson(json["toString"]),
+        obj5True: True.fromJson(json["True"]),
+        obj5Try: Try.fromJson(json["try"]),
+        obj5Type: TypeClass.fromJson(json["type"]),
+        obj5Typedef: Typedef.fromJson(json["typedef"]),
+        obj5Var: Var.fromJson(json["var"]),
+        obj5Void: Void.fromJson(json["void"]),
+        obj5While: While.fromJson(json["while"]),
+        obj5With: With.fromJson(json["with"]),
+        obj5Yield: Yield.fromJson(json["yield"]),
+        purpleTrue: TrueClass.fromJson(json["true"]),
+        staticCast: StaticCast.fromJson(json["static_cast"]),
+        stdDeserializer: StdDeserializer.fromJson(json["StdDeserializer"]),
+        stdSerializer: StdSerializer.fromJson(json["StdSerializer"]),
+        strictfp: Strictfp.fromJson(json["strictfp"]),
+        string: StringClass.fromJson(json["string"]),
+        struct: Struct.fromJson(json["struct"]),
+        subscript: Subscript.fromJson(json["subscript"]),
+        symbol: Symbol.fromJson(json["symbol"]),
+        synchronized: Synchronized.fromJson(json["synchronized"]),
+        system: System.fromJson(json["system"]),
+        template: Template.fromJson(json["template"]),
+        then: Then.fromJson(json["then"]),
+        threadLocal: ThreadLocal.fromJson(json["thread_local"]),
+        throws: Throws.fromJson(json["throws"]),
+        timeOnly: TimeOnly.fromJson(json["TimeOnly"]),
+        timeOnlyConverter: TimeOnlyConverter.fromJson(json["TimeOnlyConverter"]),
+        topLevel: TopLevelClass.fromJson(json["top_level"]),
+        transient: Transient.fromJson(json["transient"]),
+        type: Type.fromJson(json["Type"]),
+        typealias: Typealias.fromJson(json["typealias"]),
+        typeid: Typeid.fromJson(json["typeid"]),
+        typename: Typename.fromJson(json["typename"]),
+        typeof: Typeof.fromJson(json["typeof"]),
+        uint: Uint.fromJson(json["uint"]),
+        ulong: Ulong.fromJson(json["ulong"]),
+        unchecked: Unchecked.fromJson(json["unchecked"]),
+        undefined: Undefined.fromJson(json["undefined"]),
+        union: Union.fromJson(json["union"]),
+        unowned: Unowned.fromJson(json["unowned"]),
+        unsafe: Unsafe.fromJson(json["unsafe"]),
+        unsigned: Unsigned.fromJson(json["unsigned"]),
+        ushort: Ushort.fromJson(json["ushort"]),
+        using: Using.fromJson(json["using"]),
+        utf8JsonReader: Utf8JsonReader.fromJson(json["Utf8JsonReader"]),
+        utf8JsonWriter: Utf8JsonWriter.fromJson(json["Utf8JsonWriter"]),
+        uuid: Uuid.fromJson(json["UUID"]),
+        virtual: Virtual.fromJson(json["virtual"]),
+        volatile: Volatile.fromJson(json["volatile"]),
+        wcharT: WcharT.fromJson(json["wchar_t"]),
+        weak: Weak.fromJson(json["weak"]),
+        where: Where.fromJson(json["where"]),
+        willSet: WillSet.fromJson(json["willSet"]),
+        xor: Xor.fromJson(json["xor"]),
+        xorEq: XorEq.fromJson(json["xor_eq"]),
+        yes: Yes.fromJson(json["YES"]),
     );
 
     Map<String, dynamic> toJson() => {
-        "required": required,
+        "dummy": dummy,
+        "super": obj5Super.toJson(),
+        "switch": obj5Switch.toJson(),
+        "this": obj5This.toJson(),
+        "throw": obj5Throw.toJson(),
+        "to_json": obj5ToJson.toJson(),
+        "toString": obj5ToString.toJson(),
+        "True": obj5True.toJson(),
+        "try": obj5Try.toJson(),
+        "type": obj5Type.toJson(),
+        "typedef": obj5Typedef.toJson(),
+        "var": obj5Var.toJson(),
+        "void": obj5Void.toJson(),
+        "while": obj5While.toJson(),
+        "with": obj5With.toJson(),
+        "yield": obj5Yield.toJson(),
+        "true": purpleTrue.toJson(),
+        "static_cast": staticCast.toJson(),
+        "StdDeserializer": stdDeserializer.toJson(),
+        "StdSerializer": stdSerializer.toJson(),
+        "strictfp": strictfp.toJson(),
+        "string": string.toJson(),
+        "struct": struct.toJson(),
+        "subscript": subscript.toJson(),
+        "symbol": symbol.toJson(),
+        "synchronized": synchronized.toJson(),
+        "system": system.toJson(),
+        "template": template.toJson(),
+        "then": then.toJson(),
+        "thread_local": threadLocal.toJson(),
+        "throws": throws.toJson(),
+        "TimeOnly": timeOnly.toJson(),
+        "TimeOnlyConverter": timeOnlyConverter.toJson(),
+        "top_level": topLevel.toJson(),
+        "transient": transient.toJson(),
+        "Type": type.toJson(),
+        "typealias": typealias.toJson(),
+        "typeid": typeid.toJson(),
+        "typename": typename.toJson(),
+        "typeof": typeof.toJson(),
+        "uint": uint.toJson(),
+        "ulong": ulong.toJson(),
+        "unchecked": unchecked.toJson(),
+        "undefined": undefined.toJson(),
+        "union": union.toJson(),
+        "unowned": unowned.toJson(),
+        "unsafe": unsafe.toJson(),
+        "unsigned": unsigned.toJson(),
+        "ushort": ushort.toJson(),
+        "using": using.toJson(),
+        "Utf8JsonReader": utf8JsonReader.toJson(),
+        "Utf8JsonWriter": utf8JsonWriter.toJson(),
+        "UUID": uuid.toJson(),
+        "virtual": virtual.toJson(),
+        "volatile": volatile.toJson(),
+        "wchar_t": wcharT.toJson(),
+        "weak": weak.toJson(),
+        "where": where.toJson(),
+        "willSet": willSet.toJson(),
+        "xor": xor.toJson(),
+        "xor_eq": xorEq.toJson(),
+        "YES": yes.toJson(),
     };
 }
 
-class Requires {
-    final int requires;
+class Super {
+    final int superSuper;
 
-    Requires({
-        required this.requires,
+    Super({
+        required this.superSuper,
     });
 
-    factory Requires.fromJson(Map<String, dynamic> json) => Requires(
-        requires: json["requires"],
+    factory Super.fromJson(Map<String, dynamic> json) => Super(
+        superSuper: json["super"],
     );
 
     Map<String, dynamic> toJson() => {
-        "requires": requires,
+        "super": superSuper,
     };
 }
 
-class Restrict {
-    final int restrict;
+class Switch {
+    final int switchSwitch;
 
-    Restrict({
-        required this.restrict,
+    Switch({
+        required this.switchSwitch,
     });
 
-    factory Restrict.fromJson(Map<String, dynamic> json) => Restrict(
-        restrict: json["restrict"],
+    factory Switch.fromJson(Map<String, dynamic> json) => Switch(
+        switchSwitch: json["switch"],
     );
 
     Map<String, dynamic> toJson() => {
-        "restrict": restrict,
+        "switch": switchSwitch,
     };
 }
 
-class Retain {
-    final int retain;
+class This {
+    final int thisThis;
 
-    Retain({
-        required this.retain,
+    This({
+        required this.thisThis,
     });
 
-    factory Retain.fromJson(Map<String, dynamic> json) => Retain(
-        retain: json["retain"],
+    factory This.fromJson(Map<String, dynamic> json) => This(
+        thisThis: json["this"],
     );
 
     Map<String, dynamic> toJson() => {
-        "retain": retain,
+        "this": thisThis,
     };
 }
 
-class Rethrows {
-    final int rethrows;
+class Throw {
+    final int throwThrow;
 
-    Rethrows({
-        required this.rethrows,
+    Throw({
+        required this.throwThrow,
     });
 
-    factory Rethrows.fromJson(Map<String, dynamic> json) => Rethrows(
-        rethrows: json["rethrows"],
+    factory Throw.fromJson(Map<String, dynamic> json) => Throw(
+        throwThrow: json["throw"],
     );
 
     Map<String, dynamic> toJson() => {
-        "rethrows": rethrows,
+        "throw": throwThrow,
     };
 }
 
-class Right {
-    final int right;
+class ToJson {
+    final int toJsonToJson;
 
-    Right({
-        required this.right,
+    ToJson({
+        required this.toJsonToJson,
     });
 
-    factory Right.fromJson(Map<String, dynamic> json) => Right(
-        right: json["right"],
+    factory ToJson.fromJson(Map<String, dynamic> json) => ToJson(
+        toJsonToJson: json["to_json"],
     );
 
     Map<String, dynamic> toJson() => {
-        "right": right,
+        "to_json": toJsonToJson,
     };
 }
 
-class S {
-    final int s;
+class ToString {
+    final int toStringToString;
 
-    S({
-        required this.s,
+    ToString({
+        required this.toStringToString,
     });
 
-    factory S.fromJson(Map<String, dynamic> json) => S(
-        s: json["s"],
+    factory ToString.fromJson(Map<String, dynamic> json) => ToString(
+        toStringToString: json["toString"],
     );
 
     Map<String, dynamic> toJson() => {
-        "s": s,
+        "toString": toStringToString,
     };
 }
 
-class Sbyte {
-    final int sbyte;
+class True {
+    final int trueTrue;
 
-    Sbyte({
-        required this.sbyte,
+    True({
+        required this.trueTrue,
     });
 
-    factory Sbyte.fromJson(Map<String, dynamic> json) => Sbyte(
-        sbyte: json["sbyte"],
+    factory True.fromJson(Map<String, dynamic> json) => True(
+        trueTrue: json["True"],
     );
 
     Map<String, dynamic> toJson() => {
-        "sbyte": sbyte,
+        "True": trueTrue,
     };
 }
 
-class Sealed {
-    final int sealed;
+class Try {
+    final int tryTry;
 
-    Sealed({
-        required this.sealed,
+    Try({
+        required this.tryTry,
     });
 
-    factory Sealed.fromJson(Map<String, dynamic> json) => Sealed(
-        sealed: json["sealed"],
+    factory Try.fromJson(Map<String, dynamic> json) => Try(
+        tryTry: json["try"],
     );
 
     Map<String, dynamic> toJson() => {
-        "sealed": sealed,
+        "try": tryTry,
     };
 }
 
-class Sel {
-    final int sel;
+class TypeClass {
+    final int type;
 
-    Sel({
-        required this.sel,
+    TypeClass({
+        required this.type,
     });
 
-    factory Sel.fromJson(Map<String, dynamic> json) => Sel(
-        sel: json["SEL"],
+    factory TypeClass.fromJson(Map<String, dynamic> json) => TypeClass(
+        type: json["type"],
     );
 
     Map<String, dynamic> toJson() => {
-        "SEL": sel,
+        "type": type,
     };
 }
 
-class Select {
-    final int select;
+class Typedef {
+    final int typedefTypedef;
 
-    Select({
-        required this.select,
+    Typedef({
+        required this.typedefTypedef,
     });
 
-    factory Select.fromJson(Map<String, dynamic> json) => Select(
-        select: json["select"],
+    factory Typedef.fromJson(Map<String, dynamic> json) => Typedef(
+        typedefTypedef: json["typedef"],
     );
 
     Map<String, dynamic> toJson() => {
-        "select": select,
+        "typedef": typedefTypedef,
     };
 }
 
-class Self {
-    final int self;
+class Var {
+    final int varVar;
 
-    Self({
-        required this.self,
+    Var({
+        required this.varVar,
     });
 
-    factory Self.fromJson(Map<String, dynamic> json) => Self(
-        self: json["Self"],
+    factory Var.fromJson(Map<String, dynamic> json) => Var(
+        varVar: json["var"],
     );
 
     Map<String, dynamic> toJson() => {
-        "Self": self,
+        "var": varVar,
     };
 }
 
-class Serialize {
-    final int serialize;
+class Void {
+    final int voidVoid;
 
-    Serialize({
-        required this.serialize,
+    Void({
+        required this.voidVoid,
     });
 
-    factory Serialize.fromJson(Map<String, dynamic> json) => Serialize(
-        serialize: json["serialize"],
+    factory Void.fromJson(Map<String, dynamic> json) => Void(
+        voidVoid: json["void"],
     );
 
     Map<String, dynamic> toJson() => {
-        "serialize": serialize,
+        "void": voidVoid,
     };
 }
 
-class Short {
-    final int short;
+class While {
+    final int whileWhile;
 
-    Short({
-        required this.short,
+    While({
+        required this.whileWhile,
     });
 
-    factory Short.fromJson(Map<String, dynamic> json) => Short(
-        short: json["short"],
+    factory While.fromJson(Map<String, dynamic> json) => While(
+        whileWhile: json["while"],
     );
 
     Map<String, dynamic> toJson() => {
-        "short": short,
+        "while": whileWhile,
     };
 }
 
-class Signed {
-    final int signed;
+class With {
+    final int withWith;
 
-    Signed({
-        required this.signed,
+    With({
+        required this.withWith,
     });
 
-    factory Signed.fromJson(Map<String, dynamic> json) => Signed(
-        signed: json["signed"],
+    factory With.fromJson(Map<String, dynamic> json) => With(
+        withWith: json["with"],
     );
 
     Map<String, dynamic> toJson() => {
-        "signed": signed,
+        "with": withWith,
     };
 }
 
-class Sizeof {
-    final int sizeof;
+class Yield {
+    final int yieldYield;
 
-    Sizeof({
-        required this.sizeof,
+    Yield({
+        required this.yieldYield,
     });
 
-    factory Sizeof.fromJson(Map<String, dynamic> json) => Sizeof(
-        sizeof: json["sizeof"],
+    factory Yield.fromJson(Map<String, dynamic> json) => Yield(
+        yieldYield: json["yield"],
     );
 
     Map<String, dynamic> toJson() => {
-        "sizeof": sizeof,
+        "yield": yieldYield,
     };
 }
 
-class Stackalloc {
-    final int stackalloc;
+class TrueClass {
+    final int trueTrue;
 
-    Stackalloc({
-        required this.stackalloc,
+    TrueClass({
+        required this.trueTrue,
     });
 
-    factory Stackalloc.fromJson(Map<String, dynamic> json) => Stackalloc(
-        stackalloc: json["stackalloc"],
+    factory TrueClass.fromJson(Map<String, dynamic> json) => TrueClass(
+        trueTrue: json["true"],
     );
 
     Map<String, dynamic> toJson() => {
-        "stackalloc": stackalloc,
+        "true": trueTrue,
     };
 }
 
-class Standards {
-    final int standards;
+class StaticCast {
+    final int staticCast;
 
-    Standards({
-        required this.standards,
+    StaticCast({
+        required this.staticCast,
     });
 
-    factory Standards.fromJson(Map<String, dynamic> json) => Standards(
-        standards: json["Standards"],
+    factory StaticCast.fromJson(Map<String, dynamic> json) => StaticCast(
+        staticCast: json["static_cast"],
     );
 
     Map<String, dynamic> toJson() => {
-        "Standards": standards,
+        "static_cast": staticCast,
     };
 }
 
-class StaticAssert {
-    final int staticAssert;
+class StdDeserializer {
+    final int stdDeserializer;
 
-    StaticAssert({
-        required this.staticAssert,
+    StdDeserializer({
+        required this.stdDeserializer,
     });
 
-    factory StaticAssert.fromJson(Map<String, dynamic> json) => StaticAssert(
-        staticAssert: json["static_assert"],
+    factory StdDeserializer.fromJson(Map<String, dynamic> json) => StdDeserializer(
+        stdDeserializer: json["StdDeserializer"],
     );
 
     Map<String, dynamic> toJson() => {
-        "static_assert": staticAssert,
+        "StdDeserializer": stdDeserializer,
     };
 }
 
-class StaticCast {
-    final int staticCast;
+class StdSerializer {
+    final int stdSerializer;
 
-    StaticCast({
-        required this.staticCast,
+    StdSerializer({
+        required this.stdSerializer,
     });
 
-    factory StaticCast.fromJson(Map<String, dynamic> json) => StaticCast(
-        staticCast: json["static_cast"],
+    factory StdSerializer.fromJson(Map<String, dynamic> json) => StdSerializer(
+        stdSerializer: json["StdSerializer"],
     );
 
     Map<String, dynamic> toJson() => {
-        "static_cast": staticCast,
+        "StdSerializer": stdSerializer,
     };
 }
 
@@ -5998,194 +6186,6 @@ class Undefined {
     };
 }
 
-class Obj5 {
-    final int dummy;
-    final Var obj5Var;
-    final Void obj5Void;
-    final While obj5While;
-    final With obj5With;
-    final Yield obj5Yield;
-    final Union union;
-    final Unowned unowned;
-    final Unsafe unsafe;
-    final Unsigned unsigned;
-    final Ushort ushort;
-    final Using using;
-    final Utf8JsonReader utf8JsonReader;
-    final Utf8JsonWriter utf8JsonWriter;
-    final Uuid uuid;
-    final Virtual virtual;
-    final Volatile volatile;
-    final WcharT wcharT;
-    final Weak weak;
-    final Where where;
-    final WillSet willSet;
-    final Xor xor;
-    final XorEq xorEq;
-    final Yes yes;
-
-    Obj5({
-        required this.dummy,
-        required this.obj5Var,
-        required this.obj5Void,
-        required this.obj5While,
-        required this.obj5With,
-        required this.obj5Yield,
-        required this.union,
-        required this.unowned,
-        required this.unsafe,
-        required this.unsigned,
-        required this.ushort,
-        required this.using,
-        required this.utf8JsonReader,
-        required this.utf8JsonWriter,
-        required this.uuid,
-        required this.virtual,
-        required this.volatile,
-        required this.wcharT,
-        required this.weak,
-        required this.where,
-        required this.willSet,
-        required this.xor,
-        required this.xorEq,
-        required this.yes,
-    });
-
-    factory Obj5.fromJson(Map<String, dynamic> json) => Obj5(
-        dummy: json["dummy"],
-        obj5Var: Var.fromJson(json["var"]),
-        obj5Void: Void.fromJson(json["void"]),
-        obj5While: While.fromJson(json["while"]),
-        obj5With: With.fromJson(json["with"]),
-        obj5Yield: Yield.fromJson(json["yield"]),
-        union: Union.fromJson(json["union"]),
-        unowned: Unowned.fromJson(json["unowned"]),
-        unsafe: Unsafe.fromJson(json["unsafe"]),
-        unsigned: Unsigned.fromJson(json["unsigned"]),
-        ushort: Ushort.fromJson(json["ushort"]),
-        using: Using.fromJson(json["using"]),
-        utf8JsonReader: Utf8JsonReader.fromJson(json["Utf8JsonReader"]),
-        utf8JsonWriter: Utf8JsonWriter.fromJson(json["Utf8JsonWriter"]),
-        uuid: Uuid.fromJson(json["UUID"]),
-        virtual: Virtual.fromJson(json["virtual"]),
-        volatile: Volatile.fromJson(json["volatile"]),
-        wcharT: WcharT.fromJson(json["wchar_t"]),
-        weak: Weak.fromJson(json["weak"]),
-        where: Where.fromJson(json["where"]),
-        willSet: WillSet.fromJson(json["willSet"]),
-        xor: Xor.fromJson(json["xor"]),
-        xorEq: XorEq.fromJson(json["xor_eq"]),
-        yes: Yes.fromJson(json["YES"]),
-    );
-
-    Map<String, dynamic> toJson() => {
-        "dummy": dummy,
-        "var": obj5Var.toJson(),
-        "void": obj5Void.toJson(),
-        "while": obj5While.toJson(),
-        "with": obj5With.toJson(),
-        "yield": obj5Yield.toJson(),
-        "union": union.toJson(),
-        "unowned": unowned.toJson(),
-        "unsafe": unsafe.toJson(),
-        "unsigned": unsigned.toJson(),
-        "ushort": ushort.toJson(),
-        "using": using.toJson(),
-        "Utf8JsonReader": utf8JsonReader.toJson(),
-        "Utf8JsonWriter": utf8JsonWriter.toJson(),
-        "UUID": uuid.toJson(),
-        "virtual": virtual.toJson(),
-        "volatile": volatile.toJson(),
-        "wchar_t": wcharT.toJson(),
-        "weak": weak.toJson(),
-        "where": where.toJson(),
-        "willSet": willSet.toJson(),
-        "xor": xor.toJson(),
-        "xor_eq": xorEq.toJson(),
-        "YES": yes.toJson(),
-    };
-}
-
-class Var {
-    final int varVar;
-
-    Var({
-        required this.varVar,
-    });
-
-    factory Var.fromJson(Map<String, dynamic> json) => Var(
-        varVar: json["var"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "var": varVar,
-    };
-}
-
-class Void {
-    final int voidVoid;
-
-    Void({
-        required this.voidVoid,
-    });
-
-    factory Void.fromJson(Map<String, dynamic> json) => Void(
-        voidVoid: json["void"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "void": voidVoid,
-    };
-}
-
-class While {
-    final int whileWhile;
-
-    While({
-        required this.whileWhile,
-    });
-
-    factory While.fromJson(Map<String, dynamic> json) => While(
-        whileWhile: json["while"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "while": whileWhile,
-    };
-}
-
-class With {
-    final int withWith;
-
-    With({
-        required this.withWith,
-    });
-
-    factory With.fromJson(Map<String, dynamic> json) => With(
-        withWith: json["with"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "with": withWith,
-    };
-}
-
-class Yield {
-    final int yieldYield;
-
-    Yield({
-        required this.yieldYield,
-    });
-
-    factory Yield.fromJson(Map<String, dynamic> json) => Yield(
-        yieldYield: json["yield"],
-    );
-
-    Map<String, dynamic> toJson() => {
-        "yield": yieldYield,
-    };
-}
-
 class Union {
     final int union;
 
diff --git a/base/elixir/test/inputs/json/priority/keywords.json/default/QuickType.ex b/head/elixir/test/inputs/json/priority/keywords.json/default/QuickType.ex
index 80d81a7..0f93d52 100644
--- a/base/elixir/test/inputs/json/priority/keywords.json/default/QuickType.ex
+++ b/head/elixir/test/inputs/json/priority/keywords.json/default/QuickType.ex
@@ -2228,23 +2228,23 @@ defmodule DateParseHandling do
   end
 end
 
-defmodule DateTimeClass do
-  @enforce_keys [:date_time]
-  defstruct [:date_time]
+defmodule Empty do
+  @enforce_keys [:empty]
+  defstruct [:empty]
 
   @type t :: %__MODULE__{
-          date_time: String.t()
+          empty: integer()
         }
 
-  def decode_date_time(value) when is_binary(value), do: value
-  def decode_date_time(_), do: {:error, "Unexpected type when decoding DateTimeClass.date_time"}
+  def decode_empty(value) when is_integer(value), do: value
+  def decode_empty(_), do: {:error, "Unexpected type when decoding Empty.empty"}
 
-  def encode_date_time(value) when is_binary(value), do: value
-  def encode_date_time(_), do: {:error, "Unexpected type when encoding DateTimeClass.date_time"}
+  def encode_empty(value) when is_integer(value), do: value
+  def encode_empty(_), do: {:error, "Unexpected type when encoding Empty.empty"}
 
   def from_map(m) do
-    %DateTimeClass{
-      date_time: decode_date_time(m["DateTime"]),
+    %Empty{
+      empty: decode_empty(m["_"]),
     }
   end
 
@@ -2256,7 +2256,7 @@ defmodule DateTimeClass do
 
   def to_map(struct) do
     %{
-      "DateTime" => struct.date_time,
+      "_" => struct.empty,
     }
   end
 
@@ -2267,23 +2267,23 @@ defmodule DateTimeClass do
   end
 end
 
-defmodule DateTimeStyles do
-  @enforce_keys [:date_time_styles]
-  defstruct [:date_time_styles]
+defmodule Imaginery do
+  @enforce_keys [:imaginery]
+  defstruct [:imaginery]
 
   @type t :: %__MODULE__{
-          date_time_styles: integer()
+          imaginery: integer()
         }
 
-  def decode_date_time_styles(value) when is_integer(value), do: value
-  def decode_date_time_styles(_), do: {:error, "Unexpected type when decoding DateTimeStyles.date_time_styles"}
+  def decode_imaginery(value) when is_integer(value), do: value
+  def decode_imaginery(_), do: {:error, "Unexpected type when decoding Imaginery.imaginery"}
 
-  def encode_date_time_styles(value) when is_integer(value), do: value
-  def encode_date_time_styles(_), do: {:error, "Unexpected type when encoding DateTimeStyles.date_time_styles"}
+  def encode_imaginery(value) when is_integer(value), do: value
+  def encode_imaginery(_), do: {:error, "Unexpected type when encoding Imaginery.imaginery"}
 
   def from_map(m) do
-    %DateTimeStyles{
-      date_time_styles: decode_date_time_styles(m["DateTimeStyles"]),
+    %Imaginery{
+      imaginery: decode_imaginery(m["_Imaginery"]),
     }
   end
 
@@ -2295,7 +2295,7 @@ defmodule DateTimeStyles do
 
   def to_map(struct) do
     %{
-      "DateTimeStyles" => struct.date_time_styles,
+      "_Imaginery" => struct.imaginery,
     }
   end
 
@@ -2306,23 +2306,23 @@ defmodule DateTimeStyles do
   end
 end
 
-defmodule Debugger do
-  @enforce_keys [:debugger]
-  defstruct [:debugger]
+defmodule AndClass do
+  @enforce_keys [:and_and]
+  defstruct [:and_and]
 
   @type t :: %__MODULE__{
-          debugger: integer()
+          and_and: integer()
         }
 
-  def decode_debugger(value) when is_integer(value), do: value
-  def decode_debugger(_), do: {:error, "Unexpected type when decoding Debugger.debugger"}
+  def decode_and_and(value) when is_integer(value), do: value
+  def decode_and_and(_), do: {:error, "Unexpected type when decoding AndClass.and_and"}
 
-  def encode_debugger(value) when is_integer(value), do: value
-  def encode_debugger(_), do: {:error, "Unexpected type when encoding Debugger.debugger"}
+  def encode_and_and(value) when is_integer(value), do: value
+  def encode_and_and(_), do: {:error, "Unexpected type when encoding AndClass.and_and"}
 
   def from_map(m) do
-    %Debugger{
-      debugger: decode_debugger(m["debugger"]),
+    %AndClass{
+      and_and: decode_and_and(m["and"]),
     }
   end
 
@@ -2334,7 +2334,7 @@ defmodule Debugger do
 
   def to_map(struct) do
     %{
-      "debugger" => struct.debugger,
+      "and" => struct.and_and,
     }
   end
 
@@ -2345,23 +2345,23 @@ defmodule Debugger do
   end
 end
 
-defmodule Decimal do
-  @enforce_keys [:decimal]
-  defstruct [:decimal]
+defmodule Obj1Any do
+  @enforce_keys [:any]
+  defstruct [:any]
 
   @type t :: %__MODULE__{
-          decimal: integer()
+          any: integer()
         }
 
-  def decode_decimal(value) when is_integer(value), do: value
-  def decode_decimal(_), do: {:error, "Unexpected type when decoding Decimal.decimal"}
+  def decode_any(value) when is_integer(value), do: value
+  def decode_any(_), do: {:error, "Unexpected type when decoding Obj1Any.any"}
 
-  def encode_decimal(value) when is_integer(value), do: value
-  def encode_decimal(_), do: {:error, "Unexpected type when encoding Decimal.decimal"}
+  def encode_any(value) when is_integer(value), do: value
+  def encode_any(_), do: {:error, "Unexpected type when encoding Obj1Any.any"}
 
   def from_map(m) do
-    %Decimal{
-      decimal: decode_decimal(m["decimal"]),
+    %Obj1Any{
+      any: decode_any(m["any"]),
     }
   end
 
@@ -2373,7 +2373,7 @@ defmodule Decimal do
 
   def to_map(struct) do
     %{
-      "decimal" => struct.decimal,
+      "any" => struct.any,
     }
   end
 
@@ -2384,23 +2384,23 @@ defmodule Decimal do
   end
 end
 
-defmodule Declare do
-  @enforce_keys [:declare]
-  defstruct [:declare]
+defmodule BoolClass do
+  @enforce_keys [:bool]
+  defstruct [:bool]
 
   @type t :: %__MODULE__{
-          declare: integer()
+          bool: integer()
         }
 
-  def decode_declare(value) when is_integer(value), do: value
-  def decode_declare(_), do: {:error, "Unexpected type when decoding Declare.declare"}
+  def decode_bool(value) when is_integer(value), do: value
+  def decode_bool(_), do: {:error, "Unexpected type when decoding BoolClass.bool"}
 
-  def encode_declare(value) when is_integer(value), do: value
-  def encode_declare(_), do: {:error, "Unexpected type when encoding Declare.declare"}
+  def encode_bool(value) when is_integer(value), do: value
+  def encode_bool(_), do: {:error, "Unexpected type when encoding BoolClass.bool"}
 
   def from_map(m) do
-    %Declare{
-      declare: decode_declare(m["declare"]),
+    %BoolClass{
+      bool: decode_bool(m["_Bool"]),
     }
   end
 
@@ -2412,7 +2412,7 @@ defmodule Declare do
 
   def to_map(struct) do
     %{
-      "declare" => struct.declare,
+      "_Bool" => struct.bool,
     }
   end
 
@@ -2423,23 +2423,23 @@ defmodule Declare do
   end
 end
 
-defmodule Decltype do
-  @enforce_keys [:decltype]
-  defstruct [:decltype]
+defmodule CatchClass do
+  @enforce_keys [:catch_catch]
+  defstruct [:catch_catch]
 
   @type t :: %__MODULE__{
-          decltype: integer()
+          catch_catch: integer()
         }
 
-  def decode_decltype(value) when is_integer(value), do: value
-  def decode_decltype(_), do: {:error, "Unexpected type when decoding Decltype.decltype"}
+  def decode_catch_catch(value) when is_integer(value), do: value
+  def decode_catch_catch(_), do: {:error, "Unexpected type when decoding CatchClass.catch_catch"}
 
-  def encode_decltype(value) when is_integer(value), do: value
-  def encode_decltype(_), do: {:error, "Unexpected type when encoding Decltype.decltype"}
+  def encode_catch_catch(value) when is_integer(value), do: value
+  def encode_catch_catch(_), do: {:error, "Unexpected type when encoding CatchClass.catch_catch"}
 
   def from_map(m) do
-    %Decltype{
-      decltype: decode_decltype(m["decltype"]),
+    %CatchClass{
+      catch_catch: decode_catch_catch(m["catch"]),
     }
   end
 
@@ -2451,7 +2451,7 @@ defmodule Decltype do
 
   def to_map(struct) do
     %{
-      "decltype" => struct.decltype,
+      "catch" => struct.catch_catch,
     }
   end
 
@@ -2462,23 +2462,23 @@ defmodule Decltype do
   end
 end
 
-defmodule DecodeString do
-  @enforce_keys [:decode_string]
-  defstruct [:decode_string]
+defmodule ClassClass do
+  @enforce_keys [:class]
+  defstruct [:class]
 
   @type t :: %__MODULE__{
-          decode_string: integer()
+          class: integer()
         }
 
-  def decode_decode_string(value) when is_integer(value), do: value
-  def decode_decode_string(_), do: {:error, "Unexpected type when decoding DecodeString.decode_string"}
+  def decode_class(value) when is_integer(value), do: value
+  def decode_class(_), do: {:error, "Unexpected type when decoding ClassClass.class"}
 
-  def encode_decode_string(value) when is_integer(value), do: value
-  def encode_decode_string(_), do: {:error, "Unexpected type when encoding DecodeString.decode_string"}
+  def encode_class(value) when is_integer(value), do: value
+  def encode_class(_), do: {:error, "Unexpected type when encoding ClassClass.class"}
 
   def from_map(m) do
-    %DecodeString{
-      decode_string: decode_decode_string(m["decode_string"]),
+    %ClassClass{
+      class: decode_class(m["class"]),
     }
   end
 
@@ -2490,7 +2490,7 @@ defmodule DecodeString do
 
   def to_map(struct) do
     %{
-      "decode_string" => struct.decode_string,
+      "class" => struct.class,
     }
   end
 
@@ -2501,62 +2501,151 @@ defmodule DecodeString do
   end
 end
 
-defmodule Empty do
-  @enforce_keys [:empty]
-  defstruct [:empty]
+defmodule Obj1 do
+  @enforce_keys [:abstract, :alignas, :alignof, :and_eq, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :chan, :char, :char16_t, :char32_t, :checked, :class, :clone, :co_await, :co_return, :co_yield, :compl, :complex, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :culture_info, :date, :date_formatter, :date_only, :date_only_converter, :date_parse_handling, :dummy, :empty, :imaginery, :obj1_and, :obj1_any, :obj1_bool, :obj1_catch, :obj1_class]
+  defstruct [:abstract, :alignas, :alignof, :and_eq, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :chan, :char, :char16_t, :char32_t, :checked, :class, :clone, :co_await, :co_return, :co_yield, :compl, :complex, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :culture_info, :date, :date_formatter, :date_only, :date_only_converter, :date_parse_handling, :dummy, :empty, :imaginery, :obj1_and, :obj1_any, :obj1_bool, :obj1_catch, :obj1_class]
 
   @type t :: %__MODULE__{
-          empty: integer()
+          abstract: Abstract.t(),
+          alignas: Alignas.t(),
+          alignof: Alignof.t(),
+          and_eq: AndEq.t(),
+          any: AnyClass.t(),
+          array: Array.t(),
+          as: As.t(),
+          asm: ASM.t(),
+          assert: Assert.t(),
+          associatedtype: Associatedtype.t(),
+          associativity: Associativity.t(),
+          async: Async.t(),
+          atomic: Atomic.t(),
+          atomic_cancel: AtomicCancel.t(),
+          atomic_commit: AtomicCommit.t(),
+          atomic_noexcept: AtomicNoexcept.t(),
+          auto: Auto.t(),
+          await: Await.t(),
+          base: BaseClass.t(),
+          bitand: Bitand.t(),
+          bitor: Bitor.t(),
+          bool: Bool.t(),
+          bool_1: Obj1Bool.t(),
+          boolean: Boolean.t(),
+          break: Break.t(),
+          bycopy: Bycopy.t(),
+          byref: Byref.t(),
+          byte: Byte.t(),
+          case: Case.t(),
+          chan: Chan.t(),
+          char: Char.t(),
+          char16_t: Char16T.t(),
+          char32_t: Char32T.t(),
+          checked: Checked.t(),
+          class: Class.t(),
+          clone: Clone.t(),
+          co_await: CoAwait.t(),
+          co_return: CoReturn.t(),
+          co_yield: CoYield.t(),
+          compl: Compl.t(),
+          complex: Complex.t(),
+          concept: Concept.t(),
+          console: Console.t(),
+          const: Const.t(),
+          const_cast: ConstCast.t(),
+          constexpr: Constexpr.t(),
+          constructor: Constructor.t(),
+          continue: Continue.t(),
+          convenience: Convenience.t(),
+          convert: Convert.t(),
+          converter: Converter.t(),
+          culture_info: CultureInfo.t(),
+          date: DateClass.t(),
+          date_formatter: DateFormatter.t(),
+          date_only: DateOnly.t(),
+          date_only_converter: DateOnlyConverter.t(),
+          date_parse_handling: DateParseHandling.t(),
+          dummy: integer(),
+          empty: Empty.t(),
+          imaginery: Imaginery.t(),
+          obj1_and: AndClass.t(),
+          obj1_any: Obj1Any.t(),
+          obj1_bool: BoolClass.t(),
+          obj1_catch: CatchClass.t(),
+          obj1_class: ClassClass.t()
         }
 
-  def decode_empty(value) when is_integer(value), do: value
-  def decode_empty(_), do: {:error, "Unexpected type when decoding Empty.empty"}
+  def decode_dummy(value) when is_integer(value), do: value
+  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj1.dummy"}
 
-  def encode_empty(value) when is_integer(value), do: value
-  def encode_empty(_), do: {:error, "Unexpected type when encoding Empty.empty"}
+  def encode_dummy(value) when is_integer(value), do: value
+  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj1.dummy"}
 
   def from_map(m) do
-    %Empty{
-      empty: decode_empty(m["_"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "_" => struct.empty,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Imaginery do
-  @enforce_keys [:imaginery]
-  defstruct [:imaginery]
-
-  @type t :: %__MODULE__{
-          imaginery: integer()
-        }
-
-  def decode_imaginery(value) when is_integer(value), do: value
-  def decode_imaginery(_), do: {:error, "Unexpected type when decoding Imaginery.imaginery"}
-
-  def encode_imaginery(value) when is_integer(value), do: value
-  def encode_imaginery(_), do: {:error, "Unexpected type when encoding Imaginery.imaginery"}
-
-  def from_map(m) do
-    %Imaginery{
-      imaginery: decode_imaginery(m["_Imaginery"]),
+    %Obj1{
+      abstract: Abstract.from_map(m["abstract"]),
+      alignas: Alignas.from_map(m["alignas"]),
+      alignof: Alignof.from_map(m["alignof"]),
+      and_eq: AndEq.from_map(m["and_eq"]),
+      any: AnyClass.from_map(m["Any"]),
+      array: Array.from_map(m["array"]),
+      as: As.from_map(m["as"]),
+      asm: ASM.from_map(m["asm"]),
+      assert: Assert.from_map(m["assert"]),
+      associatedtype: Associatedtype.from_map(m["associatedtype"]),
+      associativity: Associativity.from_map(m["associativity"]),
+      async: Async.from_map(m["async"]),
+      atomic: Atomic.from_map(m["atomic"]),
+      atomic_cancel: AtomicCancel.from_map(m["atomic_cancel"]),
+      atomic_commit: AtomicCommit.from_map(m["atomic_commit"]),
+      atomic_noexcept: AtomicNoexcept.from_map(m["atomic_noexcept"]),
+      auto: Auto.from_map(m["auto"]),
+      await: Await.from_map(m["await"]),
+      base: BaseClass.from_map(m["base"]),
+      bitand: Bitand.from_map(m["bitand"]),
+      bitor: Bitor.from_map(m["bitor"]),
+      bool: Bool.from_map(m["BOOL"]),
+      bool_1: Obj1Bool.from_map(m["bool"]),
+      boolean: Boolean.from_map(m["boolean"]),
+      break: Break.from_map(m["break"]),
+      bycopy: Bycopy.from_map(m["bycopy"]),
+      byref: Byref.from_map(m["byref"]),
+      byte: Byte.from_map(m["byte"]),
+      case: Case.from_map(m["case"]),
+      chan: Chan.from_map(m["chan"]),
+      char: Char.from_map(m["char"]),
+      char16_t: Char16T.from_map(m["char16_t"]),
+      char32_t: Char32T.from_map(m["char32_t"]),
+      checked: Checked.from_map(m["checked"]),
+      class: Class.from_map(m["Class"]),
+      clone: Clone.from_map(m["clone"]),
+      co_await: CoAwait.from_map(m["co_await"]),
+      co_return: CoReturn.from_map(m["co_return"]),
+      co_yield: CoYield.from_map(m["co_yield"]),
+      compl: Compl.from_map(m["compl"]),
+      complex: Complex.from_map(m["_Complex"]),
+      concept: Concept.from_map(m["concept"]),
+      console: Console.from_map(m["console"]),
+      const: Const.from_map(m["const"]),
+      const_cast: ConstCast.from_map(m["const_cast"]),
+      constexpr: Constexpr.from_map(m["constexpr"]),
+      constructor: Constructor.from_map(m["constructor"]),
+      continue: Continue.from_map(m["continue"]),
+      convenience: Convenience.from_map(m["convenience"]),
+      convert: Convert.from_map(m["convert"]),
+      converter: Converter.from_map(m["converter"]),
+      culture_info: CultureInfo.from_map(m["CultureInfo"]),
+      date: DateClass.from_map(m["date"]),
+      date_formatter: DateFormatter.from_map(m["DateFormatter"]),
+      date_only: DateOnly.from_map(m["DateOnly"]),
+      date_only_converter: DateOnlyConverter.from_map(m["DateOnlyConverter"]),
+      date_parse_handling: DateParseHandling.from_map(m["date_parse_handling"]),
+      dummy: decode_dummy(m["dummy"]),
+      empty: Empty.from_map(m["_"]),
+      imaginery: Imaginery.from_map(m["_Imaginery"]),
+      obj1_and: AndClass.from_map(m["and"]),
+      obj1_any: Obj1Any.from_map(m["any"]),
+      obj1_bool: BoolClass.from_map(m["_Bool"]),
+      obj1_catch: CatchClass.from_map(m["catch"]),
+      obj1_class: ClassClass.from_map(m["class"]),
     }
   end
 
@@ -2568,7 +2657,71 @@ defmodule Imaginery do
 
   def to_map(struct) do
     %{
-      "_Imaginery" => struct.imaginery,
+      "abstract" => Abstract.to_map(struct.abstract),
+      "alignas" => Alignas.to_map(struct.alignas),
+      "alignof" => Alignof.to_map(struct.alignof),
+      "and_eq" => AndEq.to_map(struct.and_eq),
+      "Any" => AnyClass.to_map(struct.any),
+      "array" => Array.to_map(struct.array),
+      "as" => As.to_map(struct.as),
+      "asm" => ASM.to_map(struct.asm),
+      "assert" => Assert.to_map(struct.assert),
+      "associatedtype" => Associatedtype.to_map(struct.associatedtype),
+      "associativity" => Associativity.to_map(struct.associativity),
+      "async" => Async.to_map(struct.async),
+      "atomic" => Atomic.to_map(struct.atomic),
+      "atomic_cancel" => AtomicCancel.to_map(struct.atomic_cancel),
+      "atomic_commit" => AtomicCommit.to_map(struct.atomic_commit),
+      "atomic_noexcept" => AtomicNoexcept.to_map(struct.atomic_noexcept),
+      "auto" => Auto.to_map(struct.auto),
+      "await" => Await.to_map(struct.await),
+      "base" => BaseClass.to_map(struct.base),
+      "bitand" => Bitand.to_map(struct.bitand),
+      "bitor" => Bitor.to_map(struct.bitor),
+      "BOOL" => Bool.to_map(struct.bool),
+      "bool" => Obj1Bool.to_map(struct.bool_1),
+      "boolean" => Boolean.to_map(struct.boolean),
+      "break" => Break.to_map(struct.break),
+      "bycopy" => Bycopy.to_map(struct.bycopy),
+      "byref" => Byref.to_map(struct.byref),
+      "byte" => Byte.to_map(struct.byte),
+      "case" => Case.to_map(struct.case),
+      "chan" => Chan.to_map(struct.chan),
+      "char" => Char.to_map(struct.char),
+      "char16_t" => Char16T.to_map(struct.char16_t),
+      "char32_t" => Char32T.to_map(struct.char32_t),
+      "checked" => Checked.to_map(struct.checked),
+      "Class" => Class.to_map(struct.class),
+      "clone" => Clone.to_map(struct.clone),
+      "co_await" => CoAwait.to_map(struct.co_await),
+      "co_return" => CoReturn.to_map(struct.co_return),
+      "co_yield" => CoYield.to_map(struct.co_yield),
+      "compl" => Compl.to_map(struct.compl),
+      "_Complex" => Complex.to_map(struct.complex),
+      "concept" => Concept.to_map(struct.concept),
+      "console" => Console.to_map(struct.console),
+      "const" => Const.to_map(struct.const),
+      "const_cast" => ConstCast.to_map(struct.const_cast),
+      "constexpr" => Constexpr.to_map(struct.constexpr),
+      "constructor" => Constructor.to_map(struct.constructor),
+      "continue" => Continue.to_map(struct.continue),
+      "convenience" => Convenience.to_map(struct.convenience),
+      "convert" => Convert.to_map(struct.convert),
+      "converter" => Converter.to_map(struct.converter),
+      "CultureInfo" => CultureInfo.to_map(struct.culture_info),
+      "date" => DateClass.to_map(struct.date),
+      "DateFormatter" => DateFormatter.to_map(struct.date_formatter),
+      "DateOnly" => DateOnly.to_map(struct.date_only),
+      "DateOnlyConverter" => DateOnlyConverter.to_map(struct.date_only_converter),
+      "date_parse_handling" => DateParseHandling.to_map(struct.date_parse_handling),
+      "dummy" => struct.dummy,
+      "_" => Empty.to_map(struct.empty),
+      "_Imaginery" => Imaginery.to_map(struct.imaginery),
+      "and" => AndClass.to_map(struct.obj1_and),
+      "any" => Obj1Any.to_map(struct.obj1_any),
+      "_Bool" => BoolClass.to_map(struct.obj1_bool),
+      "catch" => CatchClass.to_map(struct.obj1_catch),
+      "class" => ClassClass.to_map(struct.obj1_class),
     }
   end
 
@@ -2579,23 +2732,23 @@ defmodule Imaginery do
   end
 end
 
-defmodule AndClass do
-  @enforce_keys [:and_and]
-  defstruct [:and_and]
+defmodule DateTimeClass do
+  @enforce_keys [:date_time]
+  defstruct [:date_time]
 
   @type t :: %__MODULE__{
-          and_and: integer()
+          date_time: String.t()
         }
 
-  def decode_and_and(value) when is_integer(value), do: value
-  def decode_and_and(_), do: {:error, "Unexpected type when decoding AndClass.and_and"}
+  def decode_date_time(value) when is_binary(value), do: value
+  def decode_date_time(_), do: {:error, "Unexpected type when decoding DateTimeClass.date_time"}
 
-  def encode_and_and(value) when is_integer(value), do: value
-  def encode_and_and(_), do: {:error, "Unexpected type when encoding AndClass.and_and"}
+  def encode_date_time(value) when is_binary(value), do: value
+  def encode_date_time(_), do: {:error, "Unexpected type when encoding DateTimeClass.date_time"}
 
   def from_map(m) do
-    %AndClass{
-      and_and: decode_and_and(m["and"]),
+    %DateTimeClass{
+      date_time: decode_date_time(m["DateTime"]),
     }
   end
 
@@ -2607,7 +2760,7 @@ defmodule AndClass do
 
   def to_map(struct) do
     %{
-      "and" => struct.and_and,
+      "DateTime" => struct.date_time,
     }
   end
 
@@ -2618,23 +2771,23 @@ defmodule AndClass do
   end
 end
 
-defmodule Obj1Any do
-  @enforce_keys [:any]
-  defstruct [:any]
+defmodule DateTimeStyles do
+  @enforce_keys [:date_time_styles]
+  defstruct [:date_time_styles]
 
   @type t :: %__MODULE__{
-          any: integer()
+          date_time_styles: integer()
         }
 
-  def decode_any(value) when is_integer(value), do: value
-  def decode_any(_), do: {:error, "Unexpected type when decoding Obj1Any.any"}
+  def decode_date_time_styles(value) when is_integer(value), do: value
+  def decode_date_time_styles(_), do: {:error, "Unexpected type when decoding DateTimeStyles.date_time_styles"}
 
-  def encode_any(value) when is_integer(value), do: value
-  def encode_any(_), do: {:error, "Unexpected type when encoding Obj1Any.any"}
+  def encode_date_time_styles(value) when is_integer(value), do: value
+  def encode_date_time_styles(_), do: {:error, "Unexpected type when encoding DateTimeStyles.date_time_styles"}
 
   def from_map(m) do
-    %Obj1Any{
-      any: decode_any(m["any"]),
+    %DateTimeStyles{
+      date_time_styles: decode_date_time_styles(m["DateTimeStyles"]),
     }
   end
 
@@ -2646,7 +2799,7 @@ defmodule Obj1Any do
 
   def to_map(struct) do
     %{
-      "any" => struct.any,
+      "DateTimeStyles" => struct.date_time_styles,
     }
   end
 
@@ -2657,23 +2810,23 @@ defmodule Obj1Any do
   end
 end
 
-defmodule BoolClass do
-  @enforce_keys [:bool]
-  defstruct [:bool]
+defmodule Debugger do
+  @enforce_keys [:debugger]
+  defstruct [:debugger]
 
   @type t :: %__MODULE__{
-          bool: integer()
+          debugger: integer()
         }
 
-  def decode_bool(value) when is_integer(value), do: value
-  def decode_bool(_), do: {:error, "Unexpected type when decoding BoolClass.bool"}
+  def decode_debugger(value) when is_integer(value), do: value
+  def decode_debugger(_), do: {:error, "Unexpected type when decoding Debugger.debugger"}
 
-  def encode_bool(value) when is_integer(value), do: value
-  def encode_bool(_), do: {:error, "Unexpected type when encoding BoolClass.bool"}
+  def encode_debugger(value) when is_integer(value), do: value
+  def encode_debugger(_), do: {:error, "Unexpected type when encoding Debugger.debugger"}
 
   def from_map(m) do
-    %BoolClass{
-      bool: decode_bool(m["_Bool"]),
+    %Debugger{
+      debugger: decode_debugger(m["debugger"]),
     }
   end
 
@@ -2685,7 +2838,7 @@ defmodule BoolClass do
 
   def to_map(struct) do
     %{
-      "_Bool" => struct.bool,
+      "debugger" => struct.debugger,
     }
   end
 
@@ -2696,23 +2849,23 @@ defmodule BoolClass do
   end
 end
 
-defmodule CatchClass do
-  @enforce_keys [:catch_catch]
-  defstruct [:catch_catch]
+defmodule Decimal do
+  @enforce_keys [:decimal]
+  defstruct [:decimal]
 
   @type t :: %__MODULE__{
-          catch_catch: integer()
+          decimal: integer()
         }
 
-  def decode_catch_catch(value) when is_integer(value), do: value
-  def decode_catch_catch(_), do: {:error, "Unexpected type when decoding CatchClass.catch_catch"}
+  def decode_decimal(value) when is_integer(value), do: value
+  def decode_decimal(_), do: {:error, "Unexpected type when decoding Decimal.decimal"}
 
-  def encode_catch_catch(value) when is_integer(value), do: value
-  def encode_catch_catch(_), do: {:error, "Unexpected type when encoding CatchClass.catch_catch"}
+  def encode_decimal(value) when is_integer(value), do: value
+  def encode_decimal(_), do: {:error, "Unexpected type when encoding Decimal.decimal"}
 
   def from_map(m) do
-    %CatchClass{
-      catch_catch: decode_catch_catch(m["catch"]),
+    %Decimal{
+      decimal: decode_decimal(m["decimal"]),
     }
   end
 
@@ -2724,7 +2877,7 @@ defmodule CatchClass do
 
   def to_map(struct) do
     %{
-      "catch" => struct.catch_catch,
+      "decimal" => struct.decimal,
     }
   end
 
@@ -2735,24 +2888,24 @@ defmodule CatchClass do
   end
 end
 
-defmodule ClassClass do
-  @enforce_keys [:class]
-  defstruct [:class]
+defmodule Declare do
+  @enforce_keys [:declare]
+  defstruct [:declare]
 
   @type t :: %__MODULE__{
-          class: integer()
+          declare: integer()
         }
 
-  def decode_class(value) when is_integer(value), do: value
-  def decode_class(_), do: {:error, "Unexpected type when decoding ClassClass.class"}
+  def decode_declare(value) when is_integer(value), do: value
+  def decode_declare(_), do: {:error, "Unexpected type when decoding Declare.declare"}
 
-  def encode_class(value) when is_integer(value), do: value
-  def encode_class(_), do: {:error, "Unexpected type when encoding ClassClass.class"}
+  def encode_declare(value) when is_integer(value), do: value
+  def encode_declare(_), do: {:error, "Unexpected type when encoding Declare.declare"}
 
   def from_map(m) do
-    %ClassClass{
-      class: decode_class(m["class"]),
-    }
+    %Declare{
+      declare: decode_declare(m["declare"]),
+    }
   end
 
   def from_json(json) do
@@ -2763,7 +2916,7 @@ defmodule ClassClass do
 
   def to_map(struct) do
     %{
-      "class" => struct.class,
+      "declare" => struct.declare,
     }
   end
 
@@ -2774,165 +2927,23 @@ defmodule ClassClass do
   end
 end
 
-defmodule Obj1 do
-  @enforce_keys [:abstract, :alignas, :alignof, :and_eq, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :chan, :char, :char16_t, :char32_t, :checked, :class, :clone, :co_await, :co_return, :co_yield, :compl, :complex, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :culture_info, :date, :date_formatter, :date_only, :date_only_converter, :date_parse_handling, :date_time, :date_time_styles, :debugger, :decimal, :declare, :decltype, :decode_string, :dummy, :empty, :imaginery, :obj1_and, :obj1_any, :obj1_bool, :obj1_catch, :obj1_class]
-  defstruct [:abstract, :alignas, :alignof, :and_eq, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :chan, :char, :char16_t, :char32_t, :checked, :class, :clone, :co_await, :co_return, :co_yield, :compl, :complex, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :culture_info, :date, :date_formatter, :date_only, :date_only_converter, :date_parse_handling, :date_time, :date_time_styles, :debugger, :decimal, :declare, :decltype, :decode_string, :dummy, :empty, :imaginery, :obj1_and, :obj1_any, :obj1_bool, :obj1_catch, :obj1_class]
+defmodule Decltype do
+  @enforce_keys [:decltype]
+  defstruct [:decltype]
 
   @type t :: %__MODULE__{
-          abstract: Abstract.t(),
-          alignas: Alignas.t(),
-          alignof: Alignof.t(),
-          and_eq: AndEq.t(),
-          any: AnyClass.t(),
-          array: Array.t(),
-          as: As.t(),
-          asm: ASM.t(),
-          assert: Assert.t(),
-          associatedtype: Associatedtype.t(),
-          associativity: Associativity.t(),
-          async: Async.t(),
-          atomic: Atomic.t(),
-          atomic_cancel: AtomicCancel.t(),
-          atomic_commit: AtomicCommit.t(),
-          atomic_noexcept: AtomicNoexcept.t(),
-          auto: Auto.t(),
-          await: Await.t(),
-          base: BaseClass.t(),
-          bitand: Bitand.t(),
-          bitor: Bitor.t(),
-          bool: Bool.t(),
-          bool_1: Obj1Bool.t(),
-          boolean: Boolean.t(),
-          break: Break.t(),
-          bycopy: Bycopy.t(),
-          byref: Byref.t(),
-          byte: Byte.t(),
-          case: Case.t(),
-          chan: Chan.t(),
-          char: Char.t(),
-          char16_t: Char16T.t(),
-          char32_t: Char32T.t(),
-          checked: Checked.t(),
-          class: Class.t(),
-          clone: Clone.t(),
-          co_await: CoAwait.t(),
-          co_return: CoReturn.t(),
-          co_yield: CoYield.t(),
-          compl: Compl.t(),
-          complex: Complex.t(),
-          concept: Concept.t(),
-          console: Console.t(),
-          const: Const.t(),
-          const_cast: ConstCast.t(),
-          constexpr: Constexpr.t(),
-          constructor: Constructor.t(),
-          continue: Continue.t(),
-          convenience: Convenience.t(),
-          convert: Convert.t(),
-          converter: Converter.t(),
-          culture_info: CultureInfo.t(),
-          date: DateClass.t(),
-          date_formatter: DateFormatter.t(),
-          date_only: DateOnly.t(),
-          date_only_converter: DateOnlyConverter.t(),
-          date_parse_handling: DateParseHandling.t(),
-          date_time: DateTimeClass.t(),
-          date_time_styles: DateTimeStyles.t(),
-          debugger: Debugger.t(),
-          decimal: Decimal.t(),
-          declare: Declare.t(),
-          decltype: Decltype.t(),
-          decode_string: DecodeString.t(),
-          dummy: integer(),
-          empty: Empty.t(),
-          imaginery: Imaginery.t(),
-          obj1_and: AndClass.t(),
-          obj1_any: Obj1Any.t(),
-          obj1_bool: BoolClass.t(),
-          obj1_catch: CatchClass.t(),
-          obj1_class: ClassClass.t()
+          decltype: integer()
         }
 
-  def decode_dummy(value) when is_integer(value), do: value
-  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj1.dummy"}
+  def decode_decltype(value) when is_integer(value), do: value
+  def decode_decltype(_), do: {:error, "Unexpected type when decoding Decltype.decltype"}
 
-  def encode_dummy(value) when is_integer(value), do: value
-  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj1.dummy"}
+  def encode_decltype(value) when is_integer(value), do: value
+  def encode_decltype(_), do: {:error, "Unexpected type when encoding Decltype.decltype"}
 
   def from_map(m) do
-    %Obj1{
-      abstract: Abstract.from_map(m["abstract"]),
-      alignas: Alignas.from_map(m["alignas"]),
-      alignof: Alignof.from_map(m["alignof"]),
-      and_eq: AndEq.from_map(m["and_eq"]),
-      any: AnyClass.from_map(m["Any"]),
-      array: Array.from_map(m["array"]),
-      as: As.from_map(m["as"]),
-      asm: ASM.from_map(m["asm"]),
-      assert: Assert.from_map(m["assert"]),
-      associatedtype: Associatedtype.from_map(m["associatedtype"]),
-      associativity: Associativity.from_map(m["associativity"]),
-      async: Async.from_map(m["async"]),
-      atomic: Atomic.from_map(m["atomic"]),
-      atomic_cancel: AtomicCancel.from_map(m["atomic_cancel"]),
-      atomic_commit: AtomicCommit.from_map(m["atomic_commit"]),
-      atomic_noexcept: AtomicNoexcept.from_map(m["atomic_noexcept"]),
-      auto: Auto.from_map(m["auto"]),
-      await: Await.from_map(m["await"]),
-      base: BaseClass.from_map(m["base"]),
-      bitand: Bitand.from_map(m["bitand"]),
-      bitor: Bitor.from_map(m["bitor"]),
-      bool: Bool.from_map(m["BOOL"]),
-      bool_1: Obj1Bool.from_map(m["bool"]),
-      boolean: Boolean.from_map(m["boolean"]),
-      break: Break.from_map(m["break"]),
-      bycopy: Bycopy.from_map(m["bycopy"]),
-      byref: Byref.from_map(m["byref"]),
-      byte: Byte.from_map(m["byte"]),
-      case: Case.from_map(m["case"]),
-      chan: Chan.from_map(m["chan"]),
-      char: Char.from_map(m["char"]),
-      char16_t: Char16T.from_map(m["char16_t"]),
-      char32_t: Char32T.from_map(m["char32_t"]),
-      checked: Checked.from_map(m["checked"]),
-      class: Class.from_map(m["Class"]),
-      clone: Clone.from_map(m["clone"]),
-      co_await: CoAwait.from_map(m["co_await"]),
-      co_return: CoReturn.from_map(m["co_return"]),
-      co_yield: CoYield.from_map(m["co_yield"]),
-      compl: Compl.from_map(m["compl"]),
-      complex: Complex.from_map(m["_Complex"]),
-      concept: Concept.from_map(m["concept"]),
-      console: Console.from_map(m["console"]),
-      const: Const.from_map(m["const"]),
-      const_cast: ConstCast.from_map(m["const_cast"]),
-      constexpr: Constexpr.from_map(m["constexpr"]),
-      constructor: Constructor.from_map(m["constructor"]),
-      continue: Continue.from_map(m["continue"]),
-      convenience: Convenience.from_map(m["convenience"]),
-      convert: Convert.from_map(m["convert"]),
-      converter: Converter.from_map(m["converter"]),
-      culture_info: CultureInfo.from_map(m["CultureInfo"]),
-      date: DateClass.from_map(m["date"]),
-      date_formatter: DateFormatter.from_map(m["DateFormatter"]),
-      date_only: DateOnly.from_map(m["DateOnly"]),
-      date_only_converter: DateOnlyConverter.from_map(m["DateOnlyConverter"]),
-      date_parse_handling: DateParseHandling.from_map(m["date_parse_handling"]),
-      date_time: DateTimeClass.from_map(m["DateTime"]),
-      date_time_styles: DateTimeStyles.from_map(m["DateTimeStyles"]),
-      debugger: Debugger.from_map(m["debugger"]),
-      decimal: Decimal.from_map(m["decimal"]),
-      declare: Declare.from_map(m["declare"]),
-      decltype: Decltype.from_map(m["decltype"]),
-      decode_string: DecodeString.from_map(m["decode_string"]),
-      dummy: decode_dummy(m["dummy"]),
-      empty: Empty.from_map(m["_"]),
-      imaginery: Imaginery.from_map(m["_Imaginery"]),
-      obj1_and: AndClass.from_map(m["and"]),
-      obj1_any: Obj1Any.from_map(m["any"]),
-      obj1_bool: BoolClass.from_map(m["_Bool"]),
-      obj1_catch: CatchClass.from_map(m["catch"]),
-      obj1_class: ClassClass.from_map(m["class"]),
+    %Decltype{
+      decltype: decode_decltype(m["decltype"]),
     }
   end
 
@@ -2944,78 +2955,46 @@ defmodule Obj1 do
 
   def to_map(struct) do
     %{
-      "abstract" => Abstract.to_map(struct.abstract),
-      "alignas" => Alignas.to_map(struct.alignas),
-      "alignof" => Alignof.to_map(struct.alignof),
-      "and_eq" => AndEq.to_map(struct.and_eq),
-      "Any" => AnyClass.to_map(struct.any),
-      "array" => Array.to_map(struct.array),
-      "as" => As.to_map(struct.as),
-      "asm" => ASM.to_map(struct.asm),
-      "assert" => Assert.to_map(struct.assert),
-      "associatedtype" => Associatedtype.to_map(struct.associatedtype),
-      "associativity" => Associativity.to_map(struct.associativity),
-      "async" => Async.to_map(struct.async),
-      "atomic" => Atomic.to_map(struct.atomic),
-      "atomic_cancel" => AtomicCancel.to_map(struct.atomic_cancel),
-      "atomic_commit" => AtomicCommit.to_map(struct.atomic_commit),
-      "atomic_noexcept" => AtomicNoexcept.to_map(struct.atomic_noexcept),
-      "auto" => Auto.to_map(struct.auto),
-      "await" => Await.to_map(struct.await),
-      "base" => BaseClass.to_map(struct.base),
-      "bitand" => Bitand.to_map(struct.bitand),
-      "bitor" => Bitor.to_map(struct.bitor),
-      "BOOL" => Bool.to_map(struct.bool),
-      "bool" => Obj1Bool.to_map(struct.bool_1),
-      "boolean" => Boolean.to_map(struct.boolean),
-      "break" => Break.to_map(struct.break),
-      "bycopy" => Bycopy.to_map(struct.bycopy),
-      "byref" => Byref.to_map(struct.byref),
-      "byte" => Byte.to_map(struct.byte),
-      "case" => Case.to_map(struct.case),
-      "chan" => Chan.to_map(struct.chan),
-      "char" => Char.to_map(struct.char),
-      "char16_t" => Char16T.to_map(struct.char16_t),
-      "char32_t" => Char32T.to_map(struct.char32_t),
-      "checked" => Checked.to_map(struct.checked),
-      "Class" => Class.to_map(struct.class),
-      "clone" => Clone.to_map(struct.clone),
-      "co_await" => CoAwait.to_map(struct.co_await),
-      "co_return" => CoReturn.to_map(struct.co_return),
-      "co_yield" => CoYield.to_map(struct.co_yield),
-      "compl" => Compl.to_map(struct.compl),
-      "_Complex" => Complex.to_map(struct.complex),
-      "concept" => Concept.to_map(struct.concept),
-      "console" => Console.to_map(struct.console),
-      "const" => Const.to_map(struct.const),
-      "const_cast" => ConstCast.to_map(struct.const_cast),
-      "constexpr" => Constexpr.to_map(struct.constexpr),
-      "constructor" => Constructor.to_map(struct.constructor),
-      "continue" => Continue.to_map(struct.continue),
-      "convenience" => Convenience.to_map(struct.convenience),
-      "convert" => Convert.to_map(struct.convert),
-      "converter" => Converter.to_map(struct.converter),
-      "CultureInfo" => CultureInfo.to_map(struct.culture_info),
-      "date" => DateClass.to_map(struct.date),
-      "DateFormatter" => DateFormatter.to_map(struct.date_formatter),
-      "DateOnly" => DateOnly.to_map(struct.date_only),
-      "DateOnlyConverter" => DateOnlyConverter.to_map(struct.date_only_converter),
-      "date_parse_handling" => DateParseHandling.to_map(struct.date_parse_handling),
-      "DateTime" => DateTimeClass.to_map(struct.date_time),
-      "DateTimeStyles" => DateTimeStyles.to_map(struct.date_time_styles),
-      "debugger" => Debugger.to_map(struct.debugger),
-      "decimal" => Decimal.to_map(struct.decimal),
-      "declare" => Declare.to_map(struct.declare),
-      "decltype" => Decltype.to_map(struct.decltype),
-      "decode_string" => DecodeString.to_map(struct.decode_string),
-      "dummy" => struct.dummy,
-      "_" => Empty.to_map(struct.empty),
-      "_Imaginery" => Imaginery.to_map(struct.imaginery),
-      "and" => AndClass.to_map(struct.obj1_and),
-      "any" => Obj1Any.to_map(struct.obj1_any),
-      "_Bool" => BoolClass.to_map(struct.obj1_bool),
-      "catch" => CatchClass.to_map(struct.obj1_catch),
-      "class" => ClassClass.to_map(struct.obj1_class),
+      "decltype" => struct.decltype,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule DecodeString do
+  @enforce_keys [:decode_string]
+  defstruct [:decode_string]
+
+  @type t :: %__MODULE__{
+          decode_string: integer()
+        }
+
+  def decode_decode_string(value) when is_integer(value), do: value
+  def decode_decode_string(_), do: {:error, "Unexpected type when decoding DecodeString.decode_string"}
+
+  def encode_decode_string(value) when is_integer(value), do: value
+  def encode_decode_string(_), do: {:error, "Unexpected type when encoding DecodeString.decode_string"}
+
+  def from_map(m) do
+    %DecodeString{
+      decode_string: decode_decode_string(m["decode_string"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "decode_string" => struct.decode_string,
     }
   end
 
@@ -5139,140 +5118,23 @@ defmodule Implicit do
   end
 end
 
-defmodule Indirect do
-  @enforce_keys [:indirect]
-  defstruct [:indirect]
-
-  @type t :: %__MODULE__{
-          indirect: integer()
-        }
-
-  def decode_indirect(value) when is_integer(value), do: value
-  def decode_indirect(_), do: {:error, "Unexpected type when decoding Indirect.indirect"}
-
-  def encode_indirect(value) when is_integer(value), do: value
-  def encode_indirect(_), do: {:error, "Unexpected type when encoding Indirect.indirect"}
-
-  def from_map(m) do
-    %Indirect{
-      indirect: decode_indirect(m["indirect"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "indirect" => struct.indirect,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Infix do
-  @enforce_keys [:infix]
-  defstruct [:infix]
-
-  @type t :: %__MODULE__{
-          infix: integer()
-        }
-
-  def decode_infix(value) when is_integer(value), do: value
-  def decode_infix(_), do: {:error, "Unexpected type when decoding Infix.infix"}
-
-  def encode_infix(value) when is_integer(value), do: value
-  def encode_infix(_), do: {:error, "Unexpected type when encoding Infix.infix"}
-
-  def from_map(m) do
-    %Infix{
-      infix: decode_infix(m["infix"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "infix" => struct.infix,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Init do
-  @enforce_keys [:init]
-  defstruct [:init]
-
-  @type t :: %__MODULE__{
-          init: integer()
-        }
-
-  def decode_init(value) when is_integer(value), do: value
-  def decode_init(_), do: {:error, "Unexpected type when decoding Init.init"}
-
-  def encode_init(value) when is_integer(value), do: value
-  def encode_init(_), do: {:error, "Unexpected type when encoding Init.init"}
-
-  def from_map(m) do
-    %Init{
-      init: decode_init(m["init"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "init" => struct.init,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Inline do
-  @enforce_keys [:inline]
-  defstruct [:inline]
+defmodule DefClass do
+  @enforce_keys [:def_def]
+  defstruct [:def_def]
 
   @type t :: %__MODULE__{
-          inline: integer()
+          def_def: integer()
         }
 
-  def decode_inline(value) when is_integer(value), do: value
-  def decode_inline(_), do: {:error, "Unexpected type when decoding Inline.inline"}
+  def decode_def_def(value) when is_integer(value), do: value
+  def decode_def_def(_), do: {:error, "Unexpected type when decoding DefClass.def_def"}
 
-  def encode_inline(value) when is_integer(value), do: value
-  def encode_inline(_), do: {:error, "Unexpected type when encoding Inline.inline"}
+  def encode_def_def(value) when is_integer(value), do: value
+  def encode_def_def(_), do: {:error, "Unexpected type when encoding DefClass.def_def"}
 
   def from_map(m) do
-    %Inline{
-      inline: decode_inline(m["inline"]),
+    %DefClass{
+      def_def: decode_def_def(m["def"]),
     }
   end
 
@@ -5284,7 +5146,7 @@ defmodule Inline do
 
   def to_map(struct) do
     %{
-      "inline" => struct.inline,
+      "def" => struct.def_def,
     }
   end
 
@@ -5295,23 +5157,23 @@ defmodule Inline do
   end
 end
 
-defmodule Inout do
-  @enforce_keys [:inout]
-  defstruct [:inout]
+defmodule DoClass do
+  @enforce_keys [:do_do]
+  defstruct [:do_do]
 
   @type t :: %__MODULE__{
-          inout: integer()
+          do_do: integer()
         }
 
-  def decode_inout(value) when is_integer(value), do: value
-  def decode_inout(_), do: {:error, "Unexpected type when decoding Inout.inout"}
+  def decode_do_do(value) when is_integer(value), do: value
+  def decode_do_do(_), do: {:error, "Unexpected type when decoding DoClass.do_do"}
 
-  def encode_inout(value) when is_integer(value), do: value
-  def encode_inout(_), do: {:error, "Unexpected type when encoding Inout.inout"}
+  def encode_do_do(value) when is_integer(value), do: value
+  def encode_do_do(_), do: {:error, "Unexpected type when encoding DoClass.do_do"}
 
   def from_map(m) do
-    %Inout{
-      inout: decode_inout(m["inout"]),
+    %DoClass{
+      do_do: decode_do_do(m["do"]),
     }
   end
 
@@ -5323,7 +5185,7 @@ defmodule Inout do
 
   def to_map(struct) do
     %{
-      "inout" => struct.inout,
+      "do" => struct.do_do,
     }
   end
 
@@ -5334,23 +5196,23 @@ defmodule Inout do
   end
 end
 
-defmodule Instanceof do
-  @enforce_keys [:instanceof]
-  defstruct [:instanceof]
+defmodule ElseClass do
+  @enforce_keys [:else_else]
+  defstruct [:else_else]
 
   @type t :: %__MODULE__{
-          instanceof: integer()
+          else_else: integer()
         }
 
-  def decode_instanceof(value) when is_integer(value), do: value
-  def decode_instanceof(_), do: {:error, "Unexpected type when decoding Instanceof.instanceof"}
+  def decode_else_else(value) when is_integer(value), do: value
+  def decode_else_else(_), do: {:error, "Unexpected type when decoding ElseClass.else_else"}
 
-  def encode_instanceof(value) when is_integer(value), do: value
-  def encode_instanceof(_), do: {:error, "Unexpected type when encoding Instanceof.instanceof"}
+  def encode_else_else(value) when is_integer(value), do: value
+  def encode_else_else(_), do: {:error, "Unexpected type when encoding ElseClass.else_else"}
 
   def from_map(m) do
-    %Instanceof{
-      instanceof: decode_instanceof(m["instanceof"]),
+    %ElseClass{
+      else_else: decode_else_else(m["else"]),
     }
   end
 
@@ -5362,7 +5224,7 @@ defmodule Instanceof do
 
   def to_map(struct) do
     %{
-      "instanceof" => struct.instanceof,
+      "else" => struct.else_else,
     }
   end
 
@@ -5373,23 +5235,23 @@ defmodule Instanceof do
   end
 end
 
-defmodule Int do
-  @enforce_keys [:int]
-  defstruct [:int]
+defmodule FalseClass do
+  @enforce_keys [:false_false]
+  defstruct [:false_false]
 
   @type t :: %__MODULE__{
-          int: integer()
+          false_false: integer()
         }
 
-  def decode_int(value) when is_integer(value), do: value
-  def decode_int(_), do: {:error, "Unexpected type when decoding Int.int"}
+  def decode_false_false(value) when is_integer(value), do: value
+  def decode_false_false(_), do: {:error, "Unexpected type when decoding FalseClass.false_false"}
 
-  def encode_int(value) when is_integer(value), do: value
-  def encode_int(_), do: {:error, "Unexpected type when encoding Int.int"}
+  def encode_false_false(value) when is_integer(value), do: value
+  def encode_false_false(_), do: {:error, "Unexpected type when encoding FalseClass.false_false"}
 
   def from_map(m) do
-    %Int{
-      int: decode_int(m["int"]),
+    %FalseClass{
+      false_false: decode_false_false(m["False"]),
     }
   end
 
@@ -5401,7 +5263,7 @@ defmodule Int do
 
   def to_map(struct) do
     %{
-      "int" => struct.int,
+      "False" => struct.false_false,
     }
   end
 
@@ -5412,23 +5274,151 @@ defmodule Int do
   end
 end
 
-defmodule Interface do
-  @enforce_keys [:interface]
-  defstruct [:interface]
+defmodule Obj2 do
+  @enforce_keys [:date_time, :date_time_styles, :debugger, :decimal, :declare, :decltype, :decode_string, :default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :double, :dummy, :dynamic, :dynamic_cast, :elif, :encode_quick_type, :enum, :enum_values, :equality_contract, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :format_exception, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :has_own_property, :hash_code, :id, :if, :imp, :implements, :implicit, :obj2_def, :obj2_do, :obj2_else, :obj2_false]
+  defstruct [:date_time, :date_time_styles, :debugger, :decimal, :declare, :decltype, :decode_string, :default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :double, :dummy, :dynamic, :dynamic_cast, :elif, :encode_quick_type, :enum, :enum_values, :equality_contract, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :format_exception, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :has_own_property, :hash_code, :id, :if, :imp, :implements, :implicit, :obj2_def, :obj2_do, :obj2_else, :obj2_false]
 
   @type t :: %__MODULE__{
-          interface: integer()
+          date_time: DateTimeClass.t(),
+          date_time_styles: DateTimeStyles.t(),
+          debugger: Debugger.t(),
+          decimal: Decimal.t(),
+          declare: Declare.t(),
+          decltype: Decltype.t(),
+          decode_string: DecodeString.t(),
+          default: Default.t(),
+          defer: Defer.t(),
+          deinit: Deinit.t(),
+          del: Del.t(),
+          delegate: Delegate.t(),
+          delete: Delete.t(),
+          dict: DictClass.t(),
+          dictionary: Dictionary.t(),
+          did_set: DidSet.t(),
+          double: Double.t(),
+          dummy: integer(),
+          dynamic: Dynamic.t(),
+          dynamic_cast: DynamicCast.t(),
+          elif: Elif.t(),
+          encode_quick_type: EncodeQuickType.t(),
+          enum: EnumClass.t(),
+          enum_values: EnumValues.t(),
+          equality_contract: EqualityContract.t(),
+          event: Event.t(),
+          except: Except.t(),
+          exception: ExceptionClass.t(),
+          explicit: Explicit.t(),
+          export: Export.t(),
+          exposing: Exposing.t(),
+          extends: Extends.t(),
+          extension: Extension.t(),
+          extern: Extern.t(),
+          fallthrough: Fallthrough.t(),
+          false_1: Obj2False.t(),
+          fileprivate: Fileprivate.t(),
+          final: Final.t(),
+          finally: Finally.t(),
+          fixed: Fixed.t(),
+          float: FloatClass.t(),
+          for: For.t(),
+          foreach: Foreach.t(),
+          format_exception: FormatException.t(),
+          friend: Friend.t(),
+          from: From.t(),
+          from_json: FromJSON.t(),
+          func: Func.t(),
+          function: FunctionClass.t(),
+          get: Get.t(),
+          global: Global.t(),
+          go: Go.t(),
+          goto: Goto.t(),
+          guard: Guard.t(),
+          has_own_property: HasOwnProperty.t(),
+          hash_code: HashCode.t(),
+          id: ID.t(),
+          if: If.t(),
+          imp: Imp.t(),
+          implements: Implements.t(),
+          implicit: Implicit.t(),
+          obj2_def: DefClass.t(),
+          obj2_do: DoClass.t(),
+          obj2_else: ElseClass.t(),
+          obj2_false: FalseClass.t()
         }
 
-  def decode_interface(value) when is_integer(value), do: value
-  def decode_interface(_), do: {:error, "Unexpected type when decoding Interface.interface"}
+  def decode_dummy(value) when is_integer(value), do: value
+  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj2.dummy"}
 
-  def encode_interface(value) when is_integer(value), do: value
-  def encode_interface(_), do: {:error, "Unexpected type when encoding Interface.interface"}
+  def encode_dummy(value) when is_integer(value), do: value
+  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj2.dummy"}
 
   def from_map(m) do
-    %Interface{
-      interface: decode_interface(m["interface"]),
+    %Obj2{
+      date_time: DateTimeClass.from_map(m["DateTime"]),
+      date_time_styles: DateTimeStyles.from_map(m["DateTimeStyles"]),
+      debugger: Debugger.from_map(m["debugger"]),
+      decimal: Decimal.from_map(m["decimal"]),
+      declare: Declare.from_map(m["declare"]),
+      decltype: Decltype.from_map(m["decltype"]),
+      decode_string: DecodeString.from_map(m["decode_string"]),
+      default: Default.from_map(m["default"]),
+      defer: Defer.from_map(m["defer"]),
+      deinit: Deinit.from_map(m["deinit"]),
+      del: Del.from_map(m["del"]),
+      delegate: Delegate.from_map(m["delegate"]),
+      delete: Delete.from_map(m["delete"]),
+      dict: DictClass.from_map(m["dict"]),
+      dictionary: Dictionary.from_map(m["dictionary"]),
+      did_set: DidSet.from_map(m["didSet"]),
+      double: Double.from_map(m["double"]),
+      dummy: decode_dummy(m["dummy"]),
+      dynamic: Dynamic.from_map(m["dynamic"]),
+      dynamic_cast: DynamicCast.from_map(m["dynamic_cast"]),
+      elif: Elif.from_map(m["elif"]),
+      encode_quick_type: EncodeQuickType.from_map(m["encode_quick_type"]),
+      enum: EnumClass.from_map(m["enum"]),
+      enum_values: EnumValues.from_map(m["EnumValues"]),
+      equality_contract: EqualityContract.from_map(m["equalityContract"]),
+      event: Event.from_map(m["event"]),
+      except: Except.from_map(m["except"]),
+      exception: ExceptionClass.from_map(m["exception"]),
+      explicit: Explicit.from_map(m["explicit"]),
+      export: Export.from_map(m["export"]),
+      exposing: Exposing.from_map(m["exposing"]),
+      extends: Extends.from_map(m["extends"]),
+      extension: Extension.from_map(m["extension"]),
+      extern: Extern.from_map(m["extern"]),
+      fallthrough: Fallthrough.from_map(m["fallthrough"]),
+      false_1: Obj2False.from_map(m["false"]),
+      fileprivate: Fileprivate.from_map(m["fileprivate"]),
+      final: Final.from_map(m["final"]),
+      finally: Finally.from_map(m["finally"]),
+      fixed: Fixed.from_map(m["fixed"]),
+      float: FloatClass.from_map(m["float"]),
+      for: For.from_map(m["for"]),
+      foreach: Foreach.from_map(m["foreach"]),
+      format_exception: FormatException.from_map(m["FormatException"]),
+      friend: Friend.from_map(m["friend"]),
+      from: From.from_map(m["from"]),
+      from_json: FromJSON.from_map(m["from_json"]),
+      func: Func.from_map(m["func"]),
+      function: FunctionClass.from_map(m["function"]),
+      get: Get.from_map(m["get"]),
+      global: Global.from_map(m["global"]),
+      go: Go.from_map(m["go"]),
+      goto: Goto.from_map(m["goto"]),
+      guard: Guard.from_map(m["guard"]),
+      has_own_property: HasOwnProperty.from_map(m["hasOwnProperty"]),
+      hash_code: HashCode.from_map(m["hashCode"]),
+      id: ID.from_map(m["id"]),
+      if: If.from_map(m["if"]),
+      imp: Imp.from_map(m["IMP"]),
+      implements: Implements.from_map(m["implements"]),
+      implicit: Implicit.from_map(m["implicit"]),
+      obj2_def: DefClass.from_map(m["def"]),
+      obj2_do: DoClass.from_map(m["do"]),
+      obj2_else: ElseClass.from_map(m["else"]),
+      obj2_false: FalseClass.from_map(m["False"]),
     }
   end
 
@@ -5440,7 +5430,71 @@ defmodule Interface do
 
   def to_map(struct) do
     %{
-      "interface" => struct.interface,
+      "DateTime" => DateTimeClass.to_map(struct.date_time),
+      "DateTimeStyles" => DateTimeStyles.to_map(struct.date_time_styles),
+      "debugger" => Debugger.to_map(struct.debugger),
+      "decimal" => Decimal.to_map(struct.decimal),
+      "declare" => Declare.to_map(struct.declare),
+      "decltype" => Decltype.to_map(struct.decltype),
+      "decode_string" => DecodeString.to_map(struct.decode_string),
+      "default" => Default.to_map(struct.default),
+      "defer" => Defer.to_map(struct.defer),
+      "deinit" => Deinit.to_map(struct.deinit),
+      "del" => Del.to_map(struct.del),
+      "delegate" => Delegate.to_map(struct.delegate),
+      "delete" => Delete.to_map(struct.delete),
+      "dict" => DictClass.to_map(struct.dict),
+      "dictionary" => Dictionary.to_map(struct.dictionary),
+      "didSet" => DidSet.to_map(struct.did_set),
+      "double" => Double.to_map(struct.double),
+      "dummy" => struct.dummy,
+      "dynamic" => Dynamic.to_map(struct.dynamic),
+      "dynamic_cast" => DynamicCast.to_map(struct.dynamic_cast),
+      "elif" => Elif.to_map(struct.elif),
+      "encode_quick_type" => EncodeQuickType.to_map(struct.encode_quick_type),
+      "enum" => EnumClass.to_map(struct.enum),
+      "EnumValues" => EnumValues.to_map(struct.enum_values),
+      "equalityContract" => EqualityContract.to_map(struct.equality_contract),
+      "event" => Event.to_map(struct.event),
+      "except" => Except.to_map(struct.except),
+      "exception" => ExceptionClass.to_map(struct.exception),
+      "explicit" => Explicit.to_map(struct.explicit),
+      "export" => Export.to_map(struct.export),
+      "exposing" => Exposing.to_map(struct.exposing),
+      "extends" => Extends.to_map(struct.extends),
+      "extension" => Extension.to_map(struct.extension),
+      "extern" => Extern.to_map(struct.extern),
+      "fallthrough" => Fallthrough.to_map(struct.fallthrough),
+      "false" => Obj2False.to_map(struct.false_1),
+      "fileprivate" => Fileprivate.to_map(struct.fileprivate),
+      "final" => Final.to_map(struct.final),
+      "finally" => Finally.to_map(struct.finally),
+      "fixed" => Fixed.to_map(struct.fixed),
+      "float" => FloatClass.to_map(struct.float),
+      "for" => For.to_map(struct.for),
+      "foreach" => Foreach.to_map(struct.foreach),
+      "FormatException" => FormatException.to_map(struct.format_exception),
+      "friend" => Friend.to_map(struct.friend),
+      "from" => From.to_map(struct.from),
+      "from_json" => FromJSON.to_map(struct.from_json),
+      "func" => Func.to_map(struct.func),
+      "function" => FunctionClass.to_map(struct.function),
+      "get" => Get.to_map(struct.get),
+      "global" => Global.to_map(struct.global),
+      "go" => Go.to_map(struct.go),
+      "goto" => Goto.to_map(struct.goto),
+      "guard" => Guard.to_map(struct.guard),
+      "hasOwnProperty" => HasOwnProperty.to_map(struct.has_own_property),
+      "hashCode" => HashCode.to_map(struct.hash_code),
+      "id" => ID.to_map(struct.id),
+      "if" => If.to_map(struct.if),
+      "IMP" => Imp.to_map(struct.imp),
+      "implements" => Implements.to_map(struct.implements),
+      "implicit" => Implicit.to_map(struct.implicit),
+      "def" => DefClass.to_map(struct.obj2_def),
+      "do" => DoClass.to_map(struct.obj2_do),
+      "else" => ElseClass.to_map(struct.obj2_else),
+      "False" => FalseClass.to_map(struct.obj2_false),
     }
   end
 
@@ -5451,23 +5505,23 @@ defmodule Interface do
   end
 end
 
-defmodule Internal do
-  @enforce_keys [:internal]
-  defstruct [:internal]
+defmodule Indirect do
+  @enforce_keys [:indirect]
+  defstruct [:indirect]
 
   @type t :: %__MODULE__{
-          internal: integer()
+          indirect: integer()
         }
 
-  def decode_internal(value) when is_integer(value), do: value
-  def decode_internal(_), do: {:error, "Unexpected type when decoding Internal.internal"}
+  def decode_indirect(value) when is_integer(value), do: value
+  def decode_indirect(_), do: {:error, "Unexpected type when decoding Indirect.indirect"}
 
-  def encode_internal(value) when is_integer(value), do: value
-  def encode_internal(_), do: {:error, "Unexpected type when encoding Internal.internal"}
+  def encode_indirect(value) when is_integer(value), do: value
+  def encode_indirect(_), do: {:error, "Unexpected type when encoding Indirect.indirect"}
 
   def from_map(m) do
-    %Internal{
-      internal: decode_internal(m["internal"]),
+    %Indirect{
+      indirect: decode_indirect(m["indirect"]),
     }
   end
 
@@ -5479,7 +5533,7 @@ defmodule Internal do
 
   def to_map(struct) do
     %{
-      "internal" => struct.internal,
+      "indirect" => struct.indirect,
     }
   end
 
@@ -5490,23 +5544,23 @@ defmodule Internal do
   end
 end
 
-defmodule DefClass do
-  @enforce_keys [:def_def]
-  defstruct [:def_def]
+defmodule Infix do
+  @enforce_keys [:infix]
+  defstruct [:infix]
 
   @type t :: %__MODULE__{
-          def_def: integer()
+          infix: integer()
         }
 
-  def decode_def_def(value) when is_integer(value), do: value
-  def decode_def_def(_), do: {:error, "Unexpected type when decoding DefClass.def_def"}
+  def decode_infix(value) when is_integer(value), do: value
+  def decode_infix(_), do: {:error, "Unexpected type when decoding Infix.infix"}
 
-  def encode_def_def(value) when is_integer(value), do: value
-  def encode_def_def(_), do: {:error, "Unexpected type when encoding DefClass.def_def"}
+  def encode_infix(value) when is_integer(value), do: value
+  def encode_infix(_), do: {:error, "Unexpected type when encoding Infix.infix"}
 
   def from_map(m) do
-    %DefClass{
-      def_def: decode_def_def(m["def"]),
+    %Infix{
+      infix: decode_infix(m["infix"]),
     }
   end
 
@@ -5518,7 +5572,7 @@ defmodule DefClass do
 
   def to_map(struct) do
     %{
-      "def" => struct.def_def,
+      "infix" => struct.infix,
     }
   end
 
@@ -5529,23 +5583,23 @@ defmodule DefClass do
   end
 end
 
-defmodule DoClass do
-  @enforce_keys [:do_do]
-  defstruct [:do_do]
+defmodule Init do
+  @enforce_keys [:init]
+  defstruct [:init]
 
   @type t :: %__MODULE__{
-          do_do: integer()
+          init: integer()
         }
 
-  def decode_do_do(value) when is_integer(value), do: value
-  def decode_do_do(_), do: {:error, "Unexpected type when decoding DoClass.do_do"}
+  def decode_init(value) when is_integer(value), do: value
+  def decode_init(_), do: {:error, "Unexpected type when decoding Init.init"}
 
-  def encode_do_do(value) when is_integer(value), do: value
-  def encode_do_do(_), do: {:error, "Unexpected type when encoding DoClass.do_do"}
+  def encode_init(value) when is_integer(value), do: value
+  def encode_init(_), do: {:error, "Unexpected type when encoding Init.init"}
 
   def from_map(m) do
-    %DoClass{
-      do_do: decode_do_do(m["do"]),
+    %Init{
+      init: decode_init(m["init"]),
     }
   end
 
@@ -5557,7 +5611,7 @@ defmodule DoClass do
 
   def to_map(struct) do
     %{
-      "do" => struct.do_do,
+      "init" => struct.init,
     }
   end
 
@@ -5568,23 +5622,23 @@ defmodule DoClass do
   end
 end
 
-defmodule ElseClass do
-  @enforce_keys [:else_else]
-  defstruct [:else_else]
+defmodule Inline do
+  @enforce_keys [:inline]
+  defstruct [:inline]
 
   @type t :: %__MODULE__{
-          else_else: integer()
+          inline: integer()
         }
 
-  def decode_else_else(value) when is_integer(value), do: value
-  def decode_else_else(_), do: {:error, "Unexpected type when decoding ElseClass.else_else"}
+  def decode_inline(value) when is_integer(value), do: value
+  def decode_inline(_), do: {:error, "Unexpected type when decoding Inline.inline"}
 
-  def encode_else_else(value) when is_integer(value), do: value
-  def encode_else_else(_), do: {:error, "Unexpected type when encoding ElseClass.else_else"}
+  def encode_inline(value) when is_integer(value), do: value
+  def encode_inline(_), do: {:error, "Unexpected type when encoding Inline.inline"}
 
   def from_map(m) do
-    %ElseClass{
-      else_else: decode_else_else(m["else"]),
+    %Inline{
+      inline: decode_inline(m["inline"]),
     }
   end
 
@@ -5596,7 +5650,7 @@ defmodule ElseClass do
 
   def to_map(struct) do
     %{
-      "else" => struct.else_else,
+      "inline" => struct.inline,
     }
   end
 
@@ -5607,23 +5661,23 @@ defmodule ElseClass do
   end
 end
 
-defmodule FalseClass do
-  @enforce_keys [:false_false]
-  defstruct [:false_false]
+defmodule Inout do
+  @enforce_keys [:inout]
+  defstruct [:inout]
 
   @type t :: %__MODULE__{
-          false_false: integer()
+          inout: integer()
         }
 
-  def decode_false_false(value) when is_integer(value), do: value
-  def decode_false_false(_), do: {:error, "Unexpected type when decoding FalseClass.false_false"}
+  def decode_inout(value) when is_integer(value), do: value
+  def decode_inout(_), do: {:error, "Unexpected type when decoding Inout.inout"}
 
-  def encode_false_false(value) when is_integer(value), do: value
-  def encode_false_false(_), do: {:error, "Unexpected type when encoding FalseClass.false_false"}
+  def encode_inout(value) when is_integer(value), do: value
+  def encode_inout(_), do: {:error, "Unexpected type when encoding Inout.inout"}
 
   def from_map(m) do
-    %FalseClass{
-      false_false: decode_false_false(m["False"]),
+    %Inout{
+      inout: decode_inout(m["inout"]),
     }
   end
 
@@ -5635,7 +5689,7 @@ defmodule FalseClass do
 
   def to_map(struct) do
     %{
-      "False" => struct.false_false,
+      "inout" => struct.inout,
     }
   end
 
@@ -5646,23 +5700,23 @@ defmodule FalseClass do
   end
 end
 
-defmodule ImportClass do
-  @enforce_keys [:import_import]
-  defstruct [:import_import]
+defmodule Instanceof do
+  @enforce_keys [:instanceof]
+  defstruct [:instanceof]
 
   @type t :: %__MODULE__{
-          import_import: integer()
+          instanceof: integer()
         }
 
-  def decode_import_import(value) when is_integer(value), do: value
-  def decode_import_import(_), do: {:error, "Unexpected type when decoding ImportClass.import_import"}
+  def decode_instanceof(value) when is_integer(value), do: value
+  def decode_instanceof(_), do: {:error, "Unexpected type when decoding Instanceof.instanceof"}
 
-  def encode_import_import(value) when is_integer(value), do: value
-  def encode_import_import(_), do: {:error, "Unexpected type when encoding ImportClass.import_import"}
+  def encode_instanceof(value) when is_integer(value), do: value
+  def encode_instanceof(_), do: {:error, "Unexpected type when encoding Instanceof.instanceof"}
 
   def from_map(m) do
-    %ImportClass{
-      import_import: decode_import_import(m["import"]),
+    %Instanceof{
+      instanceof: decode_instanceof(m["instanceof"]),
     }
   end
 
@@ -5674,7 +5728,7 @@ defmodule ImportClass do
 
   def to_map(struct) do
     %{
-      "import" => struct.import_import,
+      "instanceof" => struct.instanceof,
     }
   end
 
@@ -5685,23 +5739,23 @@ defmodule ImportClass do
   end
 end
 
-defmodule InClass do
-  @enforce_keys [:in_in]
-  defstruct [:in_in]
+defmodule Int do
+  @enforce_keys [:int]
+  defstruct [:int]
 
   @type t :: %__MODULE__{
-          in_in: integer()
+          int: integer()
         }
 
-  def decode_in_in(value) when is_integer(value), do: value
-  def decode_in_in(_), do: {:error, "Unexpected type when decoding InClass.in_in"}
+  def decode_int(value) when is_integer(value), do: value
+  def decode_int(_), do: {:error, "Unexpected type when decoding Int.int"}
 
-  def encode_in_in(value) when is_integer(value), do: value
-  def encode_in_in(_), do: {:error, "Unexpected type when encoding InClass.in_in"}
+  def encode_int(value) when is_integer(value), do: value
+  def encode_int(_), do: {:error, "Unexpected type when encoding Int.int"}
 
   def from_map(m) do
-    %InClass{
-      in_in: decode_in_in(m["in"]),
+    %Int{
+      int: decode_int(m["int"]),
     }
   end
 
@@ -5713,7 +5767,7 @@ defmodule InClass do
 
   def to_map(struct) do
     %{
-      "in" => struct.in_in,
+      "int" => struct.int,
     }
   end
 
@@ -5724,159 +5778,62 @@ defmodule InClass do
   end
 end
 
-defmodule Obj2 do
-  @enforce_keys [:default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :double, :dummy, :dynamic, :dynamic_cast, :elif, :encode_quick_type, :enum, :enum_values, :equality_contract, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :format_exception, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :has_own_property, :hash_code, :id, :if, :imp, :implements, :implicit, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :obj2_def, :obj2_do, :obj2_else, :obj2_false, :obj2_import, :obj2_in]
-  defstruct [:default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :double, :dummy, :dynamic, :dynamic_cast, :elif, :encode_quick_type, :enum, :enum_values, :equality_contract, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :format_exception, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :has_own_property, :hash_code, :id, :if, :imp, :implements, :implicit, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :obj2_def, :obj2_do, :obj2_else, :obj2_false, :obj2_import, :obj2_in]
+defmodule Interface do
+  @enforce_keys [:interface]
+  defstruct [:interface]
 
   @type t :: %__MODULE__{
-          default: Default.t(),
-          defer: Defer.t(),
-          deinit: Deinit.t(),
-          del: Del.t(),
-          delegate: Delegate.t(),
-          delete: Delete.t(),
-          dict: DictClass.t(),
-          dictionary: Dictionary.t(),
-          did_set: DidSet.t(),
-          double: Double.t(),
-          dummy: integer(),
-          dynamic: Dynamic.t(),
-          dynamic_cast: DynamicCast.t(),
-          elif: Elif.t(),
-          encode_quick_type: EncodeQuickType.t(),
-          enum: EnumClass.t(),
-          enum_values: EnumValues.t(),
-          equality_contract: EqualityContract.t(),
-          event: Event.t(),
-          except: Except.t(),
-          exception: ExceptionClass.t(),
-          explicit: Explicit.t(),
-          export: Export.t(),
-          exposing: Exposing.t(),
-          extends: Extends.t(),
-          extension: Extension.t(),
-          extern: Extern.t(),
-          fallthrough: Fallthrough.t(),
-          false_1: Obj2False.t(),
-          fileprivate: Fileprivate.t(),
-          final: Final.t(),
-          finally: Finally.t(),
-          fixed: Fixed.t(),
-          float: FloatClass.t(),
-          for: For.t(),
-          foreach: Foreach.t(),
-          format_exception: FormatException.t(),
-          friend: Friend.t(),
-          from: From.t(),
-          from_json: FromJSON.t(),
-          func: Func.t(),
-          function: FunctionClass.t(),
-          get: Get.t(),
-          global: Global.t(),
-          go: Go.t(),
-          goto: Goto.t(),
-          guard: Guard.t(),
-          has_own_property: HasOwnProperty.t(),
-          hash_code: HashCode.t(),
-          id: ID.t(),
-          if: If.t(),
-          imp: Imp.t(),
-          implements: Implements.t(),
-          implicit: Implicit.t(),
-          indirect: Indirect.t(),
-          infix: Infix.t(),
-          init: Init.t(),
-          inline: Inline.t(),
-          inout: Inout.t(),
-          instanceof: Instanceof.t(),
-          int: Int.t(),
-          interface: Interface.t(),
-          internal: Internal.t(),
-          obj2_def: DefClass.t(),
-          obj2_do: DoClass.t(),
-          obj2_else: ElseClass.t(),
-          obj2_false: FalseClass.t(),
-          obj2_import: ImportClass.t(),
-          obj2_in: InClass.t()
+          interface: integer()
         }
 
-  def decode_dummy(value) when is_integer(value), do: value
-  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj2.dummy"}
+  def decode_interface(value) when is_integer(value), do: value
+  def decode_interface(_), do: {:error, "Unexpected type when decoding Interface.interface"}
 
-  def encode_dummy(value) when is_integer(value), do: value
-  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj2.dummy"}
+  def encode_interface(value) when is_integer(value), do: value
+  def encode_interface(_), do: {:error, "Unexpected type when encoding Interface.interface"}
 
   def from_map(m) do
-    %Obj2{
-      default: Default.from_map(m["default"]),
-      defer: Defer.from_map(m["defer"]),
-      deinit: Deinit.from_map(m["deinit"]),
-      del: Del.from_map(m["del"]),
-      delegate: Delegate.from_map(m["delegate"]),
-      delete: Delete.from_map(m["delete"]),
-      dict: DictClass.from_map(m["dict"]),
-      dictionary: Dictionary.from_map(m["dictionary"]),
-      did_set: DidSet.from_map(m["didSet"]),
-      double: Double.from_map(m["double"]),
-      dummy: decode_dummy(m["dummy"]),
-      dynamic: Dynamic.from_map(m["dynamic"]),
-      dynamic_cast: DynamicCast.from_map(m["dynamic_cast"]),
-      elif: Elif.from_map(m["elif"]),
-      encode_quick_type: EncodeQuickType.from_map(m["encode_quick_type"]),
-      enum: EnumClass.from_map(m["enum"]),
-      enum_values: EnumValues.from_map(m["EnumValues"]),
-      equality_contract: EqualityContract.from_map(m["equalityContract"]),
-      event: Event.from_map(m["event"]),
-      except: Except.from_map(m["except"]),
-      exception: ExceptionClass.from_map(m["exception"]),
-      explicit: Explicit.from_map(m["explicit"]),
-      export: Export.from_map(m["export"]),
-      exposing: Exposing.from_map(m["exposing"]),
-      extends: Extends.from_map(m["extends"]),
-      extension: Extension.from_map(m["extension"]),
-      extern: Extern.from_map(m["extern"]),
-      fallthrough: Fallthrough.from_map(m["fallthrough"]),
-      false_1: Obj2False.from_map(m["false"]),
-      fileprivate: Fileprivate.from_map(m["fileprivate"]),
-      final: Final.from_map(m["final"]),
-      finally: Finally.from_map(m["finally"]),
-      fixed: Fixed.from_map(m["fixed"]),
-      float: FloatClass.from_map(m["float"]),
-      for: For.from_map(m["for"]),
-      foreach: Foreach.from_map(m["foreach"]),
-      format_exception: FormatException.from_map(m["FormatException"]),
-      friend: Friend.from_map(m["friend"]),
-      from: From.from_map(m["from"]),
-      from_json: FromJSON.from_map(m["from_json"]),
-      func: Func.from_map(m["func"]),
-      function: FunctionClass.from_map(m["function"]),
-      get: Get.from_map(m["get"]),
-      global: Global.from_map(m["global"]),
-      go: Go.from_map(m["go"]),
-      goto: Goto.from_map(m["goto"]),
-      guard: Guard.from_map(m["guard"]),
-      has_own_property: HasOwnProperty.from_map(m["hasOwnProperty"]),
-      hash_code: HashCode.from_map(m["hashCode"]),
-      id: ID.from_map(m["id"]),
-      if: If.from_map(m["if"]),
-      imp: Imp.from_map(m["IMP"]),
-      implements: Implements.from_map(m["implements"]),
-      implicit: Implicit.from_map(m["implicit"]),
-      indirect: Indirect.from_map(m["indirect"]),
-      infix: Infix.from_map(m["infix"]),
-      init: Init.from_map(m["init"]),
-      inline: Inline.from_map(m["inline"]),
-      inout: Inout.from_map(m["inout"]),
-      instanceof: Instanceof.from_map(m["instanceof"]),
-      int: Int.from_map(m["int"]),
-      interface: Interface.from_map(m["interface"]),
-      internal: Internal.from_map(m["internal"]),
-      obj2_def: DefClass.from_map(m["def"]),
-      obj2_do: DoClass.from_map(m["do"]),
-      obj2_else: ElseClass.from_map(m["else"]),
-      obj2_false: FalseClass.from_map(m["False"]),
-      obj2_import: ImportClass.from_map(m["import"]),
-      obj2_in: InClass.from_map(m["in"]),
+    %Interface{
+      interface: decode_interface(m["interface"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "interface" => struct.interface,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Internal do
+  @enforce_keys [:internal]
+  defstruct [:internal]
+
+  @type t :: %__MODULE__{
+          internal: integer()
+        }
+
+  def decode_internal(value) when is_integer(value), do: value
+  def decode_internal(_), do: {:error, "Unexpected type when decoding Internal.internal"}
+
+  def encode_internal(value) when is_integer(value), do: value
+  def encode_internal(_), do: {:error, "Unexpected type when encoding Internal.internal"}
+
+  def from_map(m) do
+    %Internal{
+      internal: decode_internal(m["internal"]),
     }
   end
 
@@ -5888,75 +5845,7 @@ defmodule Obj2 do
 
   def to_map(struct) do
     %{
-      "default" => Default.to_map(struct.default),
-      "defer" => Defer.to_map(struct.defer),
-      "deinit" => Deinit.to_map(struct.deinit),
-      "del" => Del.to_map(struct.del),
-      "delegate" => Delegate.to_map(struct.delegate),
-      "delete" => Delete.to_map(struct.delete),
-      "dict" => DictClass.to_map(struct.dict),
-      "dictionary" => Dictionary.to_map(struct.dictionary),
-      "didSet" => DidSet.to_map(struct.did_set),
-      "double" => Double.to_map(struct.double),
-      "dummy" => struct.dummy,
-      "dynamic" => Dynamic.to_map(struct.dynamic),
-      "dynamic_cast" => DynamicCast.to_map(struct.dynamic_cast),
-      "elif" => Elif.to_map(struct.elif),
-      "encode_quick_type" => EncodeQuickType.to_map(struct.encode_quick_type),
-      "enum" => EnumClass.to_map(struct.enum),
-      "EnumValues" => EnumValues.to_map(struct.enum_values),
-      "equalityContract" => EqualityContract.to_map(struct.equality_contract),
-      "event" => Event.to_map(struct.event),
-      "except" => Except.to_map(struct.except),
-      "exception" => ExceptionClass.to_map(struct.exception),
-      "explicit" => Explicit.to_map(struct.explicit),
-      "export" => Export.to_map(struct.export),
-      "exposing" => Exposing.to_map(struct.exposing),
-      "extends" => Extends.to_map(struct.extends),
-      "extension" => Extension.to_map(struct.extension),
-      "extern" => Extern.to_map(struct.extern),
-      "fallthrough" => Fallthrough.to_map(struct.fallthrough),
-      "false" => Obj2False.to_map(struct.false_1),
-      "fileprivate" => Fileprivate.to_map(struct.fileprivate),
-      "final" => Final.to_map(struct.final),
-      "finally" => Finally.to_map(struct.finally),
-      "fixed" => Fixed.to_map(struct.fixed),
-      "float" => FloatClass.to_map(struct.float),
-      "for" => For.to_map(struct.for),
-      "foreach" => Foreach.to_map(struct.foreach),
-      "FormatException" => FormatException.to_map(struct.format_exception),
-      "friend" => Friend.to_map(struct.friend),
-      "from" => From.to_map(struct.from),
-      "from_json" => FromJSON.to_map(struct.from_json),
-      "func" => Func.to_map(struct.func),
-      "function" => FunctionClass.to_map(struct.function),
-      "get" => Get.to_map(struct.get),
-      "global" => Global.to_map(struct.global),
-      "go" => Go.to_map(struct.go),
-      "goto" => Goto.to_map(struct.goto),
-      "guard" => Guard.to_map(struct.guard),
-      "hasOwnProperty" => HasOwnProperty.to_map(struct.has_own_property),
-      "hashCode" => HashCode.to_map(struct.hash_code),
-      "id" => ID.to_map(struct.id),
-      "if" => If.to_map(struct.if),
-      "IMP" => Imp.to_map(struct.imp),
-      "implements" => Implements.to_map(struct.implements),
-      "implicit" => Implicit.to_map(struct.implicit),
-      "indirect" => Indirect.to_map(struct.indirect),
-      "infix" => Infix.to_map(struct.infix),
-      "init" => Init.to_map(struct.init),
-      "inline" => Inline.to_map(struct.inline),
-      "inout" => Inout.to_map(struct.inout),
-      "instanceof" => Instanceof.to_map(struct.instanceof),
-      "int" => Int.to_map(struct.int),
-      "interface" => Interface.to_map(struct.interface),
-      "internal" => Internal.to_map(struct.internal),
-      "def" => DefClass.to_map(struct.obj2_def),
-      "do" => DoClass.to_map(struct.obj2_do),
-      "else" => ElseClass.to_map(struct.obj2_else),
-      "False" => FalseClass.to_map(struct.obj2_false),
-      "import" => ImportClass.to_map(struct.obj2_import),
-      "in" => InClass.to_map(struct.obj2_in),
+      "internal" => struct.internal,
     }
   end
 
@@ -7805,18 +7694,174 @@ defmodule NSString do
   defstruct [:ns_string]
 
   @type t :: %__MODULE__{
-          ns_string: integer()
+          ns_string: integer()
+        }
+
+  def decode_ns_string(value) when is_integer(value), do: value
+  def decode_ns_string(_), do: {:error, "Unexpected type when decoding NSString.ns_string"}
+
+  def encode_ns_string(value) when is_integer(value), do: value
+  def encode_ns_string(_), do: {:error, "Unexpected type when encoding NSString.ns_string"}
+
+  def from_map(m) do
+    %NSString{
+      ns_string: decode_ns_string(m["NSString"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "NSString" => struct.ns_string,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Null do
+  @enforce_keys [:null]
+  defstruct [:null]
+
+  @type t :: %__MODULE__{
+          null: integer()
+        }
+
+  def decode_null(value) when is_integer(value), do: value
+  def decode_null(_), do: {:error, "Unexpected type when decoding Null.null"}
+
+  def encode_null(value) when is_integer(value), do: value
+  def encode_null(_), do: {:error, "Unexpected type when encoding Null.null"}
+
+  def from_map(m) do
+    %Null{
+      null: decode_null(m["NULL"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "NULL" => struct.null,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule ImportClass do
+  @enforce_keys [:import_import]
+  defstruct [:import_import]
+
+  @type t :: %__MODULE__{
+          import_import: integer()
+        }
+
+  def decode_import_import(value) when is_integer(value), do: value
+  def decode_import_import(_), do: {:error, "Unexpected type when decoding ImportClass.import_import"}
+
+  def encode_import_import(value) when is_integer(value), do: value
+  def encode_import_import(_), do: {:error, "Unexpected type when encoding ImportClass.import_import"}
+
+  def from_map(m) do
+    %ImportClass{
+      import_import: decode_import_import(m["import"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "import" => struct.import_import,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule InClass do
+  @enforce_keys [:in_in]
+  defstruct [:in_in]
+
+  @type t :: %__MODULE__{
+          in_in: integer()
+        }
+
+  def decode_in_in(value) when is_integer(value), do: value
+  def decode_in_in(_), do: {:error, "Unexpected type when decoding InClass.in_in"}
+
+  def encode_in_in(value) when is_integer(value), do: value
+  def encode_in_in(_), do: {:error, "Unexpected type when encoding InClass.in_in"}
+
+  def from_map(m) do
+    %InClass{
+      in_in: decode_in_in(m["in"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "in" => struct.in_in,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule NilClass do
+  @enforce_keys [:nil_nil]
+  defstruct [:nil_nil]
+
+  @type t :: %__MODULE__{
+          nil_nil: integer()
         }
 
-  def decode_ns_string(value) when is_integer(value), do: value
-  def decode_ns_string(_), do: {:error, "Unexpected type when decoding NSString.ns_string"}
+  def decode_nil_nil(value) when is_integer(value), do: value
+  def decode_nil_nil(_), do: {:error, "Unexpected type when decoding NilClass.nil_nil"}
 
-  def encode_ns_string(value) when is_integer(value), do: value
-  def encode_ns_string(_), do: {:error, "Unexpected type when encoding NSString.ns_string"}
+  def encode_nil_nil(value) when is_integer(value), do: value
+  def encode_nil_nil(_), do: {:error, "Unexpected type when encoding NilClass.nil_nil"}
 
   def from_map(m) do
-    %NSString{
-      ns_string: decode_ns_string(m["NSString"]),
+    %NilClass{
+      nil_nil: decode_nil_nil(m["nil"]),
     }
   end
 
@@ -7828,7 +7873,7 @@ defmodule NSString do
 
   def to_map(struct) do
     %{
-      "NSString" => struct.ns_string,
+      "nil" => struct.nil_nil,
     }
   end
 
@@ -7839,23 +7884,23 @@ defmodule NSString do
   end
 end
 
-defmodule Null do
-  @enforce_keys [:null]
-  defstruct [:null]
+defmodule NoneClass do
+  @enforce_keys [:none]
+  defstruct [:none]
 
   @type t :: %__MODULE__{
-          null: integer()
+          none: integer()
         }
 
-  def decode_null(value) when is_integer(value), do: value
-  def decode_null(_), do: {:error, "Unexpected type when decoding Null.null"}
+  def decode_none(value) when is_integer(value), do: value
+  def decode_none(_), do: {:error, "Unexpected type when decoding NoneClass.none"}
 
-  def encode_null(value) when is_integer(value), do: value
-  def encode_null(_), do: {:error, "Unexpected type when encoding Null.null"}
+  def encode_none(value) when is_integer(value), do: value
+  def encode_none(_), do: {:error, "Unexpected type when encoding NoneClass.none"}
 
   def from_map(m) do
-    %Null{
-      null: decode_null(m["NULL"]),
+    %NoneClass{
+      none: decode_none(m["none"]),
     }
   end
 
@@ -7867,7 +7912,7 @@ defmodule Null do
 
   def to_map(struct) do
     %{
-      "NULL" => struct.null,
+      "none" => struct.none,
     }
   end
 
@@ -7878,23 +7923,23 @@ defmodule Null do
   end
 end
 
-defmodule Nullptr do
-  @enforce_keys [:nullptr]
-  defstruct [:nullptr]
+defmodule NotClass do
+  @enforce_keys [:not_not]
+  defstruct [:not_not]
 
   @type t :: %__MODULE__{
-          nullptr: integer()
+          not_not: integer()
         }
 
-  def decode_nullptr(value) when is_integer(value), do: value
-  def decode_nullptr(_), do: {:error, "Unexpected type when decoding Nullptr.nullptr"}
+  def decode_not_not(value) when is_integer(value), do: value
+  def decode_not_not(_), do: {:error, "Unexpected type when decoding NotClass.not_not"}
 
-  def encode_nullptr(value) when is_integer(value), do: value
-  def encode_nullptr(_), do: {:error, "Unexpected type when encoding Nullptr.nullptr"}
+  def encode_not_not(value) when is_integer(value), do: value
+  def encode_not_not(_), do: {:error, "Unexpected type when encoding NotClass.not_not"}
 
   def from_map(m) do
-    %Nullptr{
-      nullptr: decode_nullptr(m["nullptr"]),
+    %NotClass{
+      not_not: decode_not_not(m["not"]),
     }
   end
 
@@ -7906,7 +7951,7 @@ defmodule Nullptr do
 
   def to_map(struct) do
     %{
-      "nullptr" => struct.nullptr,
+      "not" => struct.not_not,
     }
   end
 
@@ -7917,23 +7962,23 @@ defmodule Nullptr do
   end
 end
 
-defmodule Number do
-  @enforce_keys [:number]
-  defstruct [:number]
+defmodule NullClass do
+  @enforce_keys [:null]
+  defstruct [:null]
 
   @type t :: %__MODULE__{
-          number: integer()
+          null: integer()
         }
 
-  def decode_number(value) when is_integer(value), do: value
-  def decode_number(_), do: {:error, "Unexpected type when decoding Number.number"}
+  def decode_null(value) when is_integer(value), do: value
+  def decode_null(_), do: {:error, "Unexpected type when decoding NullClass.null"}
 
-  def encode_number(value) when is_integer(value), do: value
-  def encode_number(_), do: {:error, "Unexpected type when encoding Number.number"}
+  def encode_null(value) when is_integer(value), do: value
+  def encode_null(_), do: {:error, "Unexpected type when encoding NullClass.null"}
 
   def from_map(m) do
-    %Number{
-      number: decode_number(m["number"]),
+    %NullClass{
+      null: decode_null(m["null"]),
     }
   end
 
@@ -7945,7 +7990,7 @@ defmodule Number do
 
   def to_map(struct) do
     %{
-      "number" => struct.number,
+      "null" => struct.null,
     }
   end
 
@@ -7956,23 +8001,151 @@ defmodule Number do
   end
 end
 
-defmodule NilClass do
-  @enforce_keys [:nil_nil]
-  defstruct [:nil_nil]
+defmodule Obj3 do
+  @enforce_keys [:dummy, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :is, :iso_date_time_offset_converter, :iterable, :jdec, :jenc, :jpipe, :json, :json_any, :json_coding_key, :json_converter, :json_decoder, :json_encoder, :json_exception, :json_generator, :json_node, :json_null, :json_parser, :json_reader, :json_serializer, :json_token, :json_token_type, :json_writer, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :no, :no_such_method, :noexcept, :nonatomic, :none, :nonlocal, :nonmutating, :not_eq, :ns_error, :ns_string, :null, :obj3_import, :obj3_in, :obj3_nil, :obj3_none, :obj3_not, :obj3_null]
+  defstruct [:dummy, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :is, :iso_date_time_offset_converter, :iterable, :jdec, :jenc, :jpipe, :json, :json_any, :json_coding_key, :json_converter, :json_decoder, :json_encoder, :json_exception, :json_generator, :json_node, :json_null, :json_parser, :json_reader, :json_serializer, :json_token, :json_token_type, :json_writer, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :no, :no_such_method, :noexcept, :nonatomic, :none, :nonlocal, :nonmutating, :not_eq, :ns_error, :ns_string, :null, :obj3_import, :obj3_in, :obj3_nil, :obj3_none, :obj3_not, :obj3_null]
 
   @type t :: %__MODULE__{
-          nil_nil: integer()
+          dummy: integer(),
+          indirect: Indirect.t(),
+          infix: Infix.t(),
+          init: Init.t(),
+          inline: Inline.t(),
+          inout: Inout.t(),
+          instanceof: Instanceof.t(),
+          int: Int.t(),
+          interface: Interface.t(),
+          internal: Internal.t(),
+          is: Is.t(),
+          iso_date_time_offset_converter: ISODateTimeOffsetConverter.t(),
+          iterable: Iterable.t(),
+          jdec: Jdec.t(),
+          jenc: Jenc.t(),
+          jpipe: Jpipe.t(),
+          json: JSON.t(),
+          json_any: JSONAny.t(),
+          json_coding_key: JSONCodingKey.t(),
+          json_converter: JSONConverter.t(),
+          json_decoder: JSONDecoder.t(),
+          json_encoder: JSONEncoder.t(),
+          json_exception: JSONException.t(),
+          json_generator: JSONGenerator.t(),
+          json_node: JSONNode.t(),
+          json_null: JSONNull.t(),
+          json_parser: JSONParser.t(),
+          json_reader: JSONReader.t(),
+          json_serializer: JSONSerializer.t(),
+          json_token: JSONToken.t(),
+          json_token_type: JSONTokenType.t(),
+          json_writer: JSONWriter.t(),
+          lambda: Lambda.t(),
+          lazy: Lazy.t(),
+          left: Left.t(),
+          let: Let.t(),
+          list: ListClass.t(),
+          lock: Lock.t(),
+          long: Long.t(),
+          map: MapClass.t(),
+          metadata_property_handling: MetadataPropertyHandling.t(),
+          module: ModuleClass.t(),
+          mutable: Mutable.t(),
+          mutating: Mutating.t(),
+          namespace: Namespace.t(),
+          native: Native.t(),
+          new: New.t(),
+          newtonsoft: Newtonsoft.t(),
+          no: No.t(),
+          no_such_method: NoSuchMethod.t(),
+          noexcept: Noexcept.t(),
+          nonatomic: Nonatomic.t(),
+          none: None.t(),
+          nonlocal: Nonlocal.t(),
+          nonmutating: Nonmutating.t(),
+          not_eq: NotEq.t(),
+          ns_error: NSError.t(),
+          ns_string: NSString.t(),
+          null: Null.t(),
+          obj3_import: ImportClass.t(),
+          obj3_in: InClass.t(),
+          obj3_nil: NilClass.t(),
+          obj3_none: NoneClass.t(),
+          obj3_not: NotClass.t(),
+          obj3_null: NullClass.t()
         }
 
-  def decode_nil_nil(value) when is_integer(value), do: value
-  def decode_nil_nil(_), do: {:error, "Unexpected type when decoding NilClass.nil_nil"}
+  def decode_dummy(value) when is_integer(value), do: value
+  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj3.dummy"}
 
-  def encode_nil_nil(value) when is_integer(value), do: value
-  def encode_nil_nil(_), do: {:error, "Unexpected type when encoding NilClass.nil_nil"}
+  def encode_dummy(value) when is_integer(value), do: value
+  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj3.dummy"}
 
   def from_map(m) do
-    %NilClass{
-      nil_nil: decode_nil_nil(m["nil"]),
+    %Obj3{
+      dummy: decode_dummy(m["dummy"]),
+      indirect: Indirect.from_map(m["indirect"]),
+      infix: Infix.from_map(m["infix"]),
+      init: Init.from_map(m["init"]),
+      inline: Inline.from_map(m["inline"]),
+      inout: Inout.from_map(m["inout"]),
+      instanceof: Instanceof.from_map(m["instanceof"]),
+      int: Int.from_map(m["int"]),
+      interface: Interface.from_map(m["interface"]),
+      internal: Internal.from_map(m["internal"]),
+      is: Is.from_map(m["is"]),
+      iso_date_time_offset_converter: ISODateTimeOffsetConverter.from_map(m["IsoDateTimeOffsetConverter"]),
+      iterable: Iterable.from_map(m["iterable"]),
+      jdec: Jdec.from_map(m["jdec"]),
+      jenc: Jenc.from_map(m["jenc"]),
+      jpipe: Jpipe.from_map(m["jpipe"]),
+      json: JSON.from_map(m["json"]),
+      json_any: JSONAny.from_map(m["JSONAny"]),
+      json_coding_key: JSONCodingKey.from_map(m["JSONCodingKey"]),
+      json_converter: JSONConverter.from_map(m["json_converter"]),
+      json_decoder: JSONDecoder.from_map(m["JSONDecoder"]),
+      json_encoder: JSONEncoder.from_map(m["JSONEncoder"]),
+      json_exception: JSONException.from_map(m["JsonException"]),
+      json_generator: JSONGenerator.from_map(m["JsonGenerator"]),
+      json_node: JSONNode.from_map(m["JsonNode"]),
+      json_null: JSONNull.from_map(m["JSONNull"]),
+      json_parser: JSONParser.from_map(m["JsonParser"]),
+      json_reader: JSONReader.from_map(m["JsonReader"]),
+      json_serializer: JSONSerializer.from_map(m["json_serializer"]),
+      json_token: JSONToken.from_map(m["json_token"]),
+      json_token_type: JSONTokenType.from_map(m["JsonTokenType"]),
+      json_writer: JSONWriter.from_map(m["json_writer"]),
+      lambda: Lambda.from_map(m["lambda"]),
+      lazy: Lazy.from_map(m["lazy"]),
+      left: Left.from_map(m["left"]),
+      let: Let.from_map(m["let"]),
+      list: ListClass.from_map(m["list"]),
+      lock: Lock.from_map(m["lock"]),
+      long: Long.from_map(m["long"]),
+      map: MapClass.from_map(m["map"]),
+      metadata_property_handling: MetadataPropertyHandling.from_map(m["metadata_property_handling"]),
+      module: ModuleClass.from_map(m["module"]),
+      mutable: Mutable.from_map(m["mutable"]),
+      mutating: Mutating.from_map(m["mutating"]),
+      namespace: Namespace.from_map(m["namespace"]),
+      native: Native.from_map(m["native"]),
+      new: New.from_map(m["new"]),
+      newtonsoft: Newtonsoft.from_map(m["newtonsoft"]),
+      no: No.from_map(m["NO"]),
+      no_such_method: NoSuchMethod.from_map(m["noSuchMethod"]),
+      noexcept: Noexcept.from_map(m["noexcept"]),
+      nonatomic: Nonatomic.from_map(m["nonatomic"]),
+      none: None.from_map(m["None"]),
+      nonlocal: Nonlocal.from_map(m["nonlocal"]),
+      nonmutating: Nonmutating.from_map(m["nonmutating"]),
+      not_eq: NotEq.from_map(m["not_eq"]),
+      ns_error: NSError.from_map(m["NSError"]),
+      ns_string: NSString.from_map(m["NSString"]),
+      null: Null.from_map(m["NULL"]),
+      obj3_import: ImportClass.from_map(m["import"]),
+      obj3_in: InClass.from_map(m["in"]),
+      obj3_nil: NilClass.from_map(m["nil"]),
+      obj3_none: NoneClass.from_map(m["none"]),
+      obj3_not: NotClass.from_map(m["not"]),
+      obj3_null: NullClass.from_map(m["null"]),
     }
   end
 
@@ -7984,7 +8157,71 @@ defmodule NilClass do
 
   def to_map(struct) do
     %{
-      "nil" => struct.nil_nil,
+      "dummy" => struct.dummy,
+      "indirect" => Indirect.to_map(struct.indirect),
+      "infix" => Infix.to_map(struct.infix),
+      "init" => Init.to_map(struct.init),
+      "inline" => Inline.to_map(struct.inline),
+      "inout" => Inout.to_map(struct.inout),
+      "instanceof" => Instanceof.to_map(struct.instanceof),
+      "int" => Int.to_map(struct.int),
+      "interface" => Interface.to_map(struct.interface),
+      "internal" => Internal.to_map(struct.internal),
+      "is" => Is.to_map(struct.is),
+      "IsoDateTimeOffsetConverter" => ISODateTimeOffsetConverter.to_map(struct.iso_date_time_offset_converter),
+      "iterable" => Iterable.to_map(struct.iterable),
+      "jdec" => Jdec.to_map(struct.jdec),
+      "jenc" => Jenc.to_map(struct.jenc),
+      "jpipe" => Jpipe.to_map(struct.jpipe),
+      "json" => JSON.to_map(struct.json),
+      "JSONAny" => JSONAny.to_map(struct.json_any),
+      "JSONCodingKey" => JSONCodingKey.to_map(struct.json_coding_key),
+      "json_converter" => JSONConverter.to_map(struct.json_converter),
+      "JSONDecoder" => JSONDecoder.to_map(struct.json_decoder),
+      "JSONEncoder" => JSONEncoder.to_map(struct.json_encoder),
+      "JsonException" => JSONException.to_map(struct.json_exception),
+      "JsonGenerator" => JSONGenerator.to_map(struct.json_generator),
+      "JsonNode" => JSONNode.to_map(struct.json_node),
+      "JSONNull" => JSONNull.to_map(struct.json_null),
+      "JsonParser" => JSONParser.to_map(struct.json_parser),
+      "JsonReader" => JSONReader.to_map(struct.json_reader),
+      "json_serializer" => JSONSerializer.to_map(struct.json_serializer),
+      "json_token" => JSONToken.to_map(struct.json_token),
+      "JsonTokenType" => JSONTokenType.to_map(struct.json_token_type),
+      "json_writer" => JSONWriter.to_map(struct.json_writer),
+      "lambda" => Lambda.to_map(struct.lambda),
+      "lazy" => Lazy.to_map(struct.lazy),
+      "left" => Left.to_map(struct.left),
+      "let" => Let.to_map(struct.let),
+      "list" => ListClass.to_map(struct.list),
+      "lock" => Lock.to_map(struct.lock),
+      "long" => Long.to_map(struct.long),
+      "map" => MapClass.to_map(struct.map),
+      "metadata_property_handling" => MetadataPropertyHandling.to_map(struct.metadata_property_handling),
+      "module" => ModuleClass.to_map(struct.module),
+      "mutable" => Mutable.to_map(struct.mutable),
+      "mutating" => Mutating.to_map(struct.mutating),
+      "namespace" => Namespace.to_map(struct.namespace),
+      "native" => Native.to_map(struct.native),
+      "new" => New.to_map(struct.new),
+      "newtonsoft" => Newtonsoft.to_map(struct.newtonsoft),
+      "NO" => No.to_map(struct.no),
+      "noSuchMethod" => NoSuchMethod.to_map(struct.no_such_method),
+      "noexcept" => Noexcept.to_map(struct.noexcept),
+      "nonatomic" => Nonatomic.to_map(struct.nonatomic),
+      "None" => None.to_map(struct.none),
+      "nonlocal" => Nonlocal.to_map(struct.nonlocal),
+      "nonmutating" => Nonmutating.to_map(struct.nonmutating),
+      "not_eq" => NotEq.to_map(struct.not_eq),
+      "NSError" => NSError.to_map(struct.ns_error),
+      "NSString" => NSString.to_map(struct.ns_string),
+      "NULL" => Null.to_map(struct.null),
+      "import" => ImportClass.to_map(struct.obj3_import),
+      "in" => InClass.to_map(struct.obj3_in),
+      "nil" => NilClass.to_map(struct.obj3_nil),
+      "none" => NoneClass.to_map(struct.obj3_none),
+      "not" => NotClass.to_map(struct.obj3_not),
+      "null" => NullClass.to_map(struct.obj3_null),
     }
   end
 
@@ -7995,23 +8232,23 @@ defmodule NilClass do
   end
 end
 
-defmodule NoneClass do
-  @enforce_keys [:none]
-  defstruct [:none]
+defmodule Nullptr do
+  @enforce_keys [:nullptr]
+  defstruct [:nullptr]
 
   @type t :: %__MODULE__{
-          none: integer()
+          nullptr: integer()
         }
 
-  def decode_none(value) when is_integer(value), do: value
-  def decode_none(_), do: {:error, "Unexpected type when decoding NoneClass.none"}
+  def decode_nullptr(value) when is_integer(value), do: value
+  def decode_nullptr(_), do: {:error, "Unexpected type when decoding Nullptr.nullptr"}
 
-  def encode_none(value) when is_integer(value), do: value
-  def encode_none(_), do: {:error, "Unexpected type when encoding NoneClass.none"}
+  def encode_nullptr(value) when is_integer(value), do: value
+  def encode_nullptr(_), do: {:error, "Unexpected type when encoding Nullptr.nullptr"}
 
   def from_map(m) do
-    %NoneClass{
-      none: decode_none(m["none"]),
+    %Nullptr{
+      nullptr: decode_nullptr(m["nullptr"]),
     }
   end
 
@@ -8023,7 +8260,7 @@ defmodule NoneClass do
 
   def to_map(struct) do
     %{
-      "none" => struct.none,
+      "nullptr" => struct.nullptr,
     }
   end
 
@@ -8034,23 +8271,23 @@ defmodule NoneClass do
   end
 end
 
-defmodule NotClass do
-  @enforce_keys [:not_not]
-  defstruct [:not_not]
+defmodule Number do
+  @enforce_keys [:number]
+  defstruct [:number]
 
   @type t :: %__MODULE__{
-          not_not: integer()
+          number: integer()
         }
 
-  def decode_not_not(value) when is_integer(value), do: value
-  def decode_not_not(_), do: {:error, "Unexpected type when decoding NotClass.not_not"}
+  def decode_number(value) when is_integer(value), do: value
+  def decode_number(_), do: {:error, "Unexpected type when decoding Number.number"}
 
-  def encode_not_not(value) when is_integer(value), do: value
-  def encode_not_not(_), do: {:error, "Unexpected type when encoding NotClass.not_not"}
+  def encode_number(value) when is_integer(value), do: value
+  def encode_number(_), do: {:error, "Unexpected type when encoding Number.number"}
 
   def from_map(m) do
-    %NotClass{
-      not_not: decode_not_not(m["not"]),
+    %Number{
+      number: decode_number(m["number"]),
     }
   end
 
@@ -8062,7 +8299,7 @@ defmodule NotClass do
 
   def to_map(struct) do
     %{
-      "not" => struct.not_not,
+      "number" => struct.number,
     }
   end
 
@@ -8073,23 +8310,23 @@ defmodule NotClass do
   end
 end
 
-defmodule NullClass do
-  @enforce_keys [:null]
-  defstruct [:null]
+defmodule OrClass do
+  @enforce_keys [:or_or]
+  defstruct [:or_or]
 
   @type t :: %__MODULE__{
-          null: integer()
+          or_or: integer()
         }
 
-  def decode_null(value) when is_integer(value), do: value
-  def decode_null(_), do: {:error, "Unexpected type when decoding NullClass.null"}
+  def decode_or_or(value) when is_integer(value), do: value
+  def decode_or_or(_), do: {:error, "Unexpected type when decoding OrClass.or_or"}
 
-  def encode_null(value) when is_integer(value), do: value
-  def encode_null(_), do: {:error, "Unexpected type when encoding NullClass.null"}
+  def encode_or_or(value) when is_integer(value), do: value
+  def encode_or_or(_), do: {:error, "Unexpected type when encoding OrClass.or_or"}
 
   def from_map(m) do
-    %NullClass{
-      null: decode_null(m["null"]),
+    %OrClass{
+      or_or: decode_or_or(m["or"]),
     }
   end
 
@@ -8101,7 +8338,7 @@ defmodule NullClass do
 
   def to_map(struct) do
     %{
-      "null" => struct.null,
+      "or" => struct.or_or,
     }
   end
 
@@ -8112,23 +8349,23 @@ defmodule NullClass do
   end
 end
 
-defmodule OrClass do
-  @enforce_keys [:or_or]
-  defstruct [:or_or]
+defmodule Obj4Protocol do
+  @enforce_keys [:protocol]
+  defstruct [:protocol]
 
   @type t :: %__MODULE__{
-          or_or: integer()
+          protocol: integer()
         }
 
-  def decode_or_or(value) when is_integer(value), do: value
-  def decode_or_or(_), do: {:error, "Unexpected type when decoding OrClass.or_or"}
+  def decode_protocol(value) when is_integer(value), do: value
+  def decode_protocol(_), do: {:error, "Unexpected type when decoding Obj4Protocol.protocol"}
 
-  def encode_or_or(value) when is_integer(value), do: value
-  def encode_or_or(_), do: {:error, "Unexpected type when encoding OrClass.or_or"}
+  def encode_protocol(value) when is_integer(value), do: value
+  def encode_protocol(_), do: {:error, "Unexpected type when encoding Obj4Protocol.protocol"}
 
   def from_map(m) do
-    %OrClass{
-      or_or: decode_or_or(m["or"]),
+    %Obj4Protocol{
+      protocol: decode_protocol(m["protocol"]),
     }
   end
 
@@ -8140,7 +8377,7 @@ defmodule OrClass do
 
   def to_map(struct) do
     %{
-      "or" => struct.or_or,
+      "protocol" => struct.protocol,
     }
   end
 
@@ -8151,23 +8388,23 @@ defmodule OrClass do
   end
 end
 
-defmodule Obj3Protocol do
-  @enforce_keys [:protocol]
-  defstruct [:protocol]
+defmodule SelfClass do
+  @enforce_keys [:self]
+  defstruct [:self]
 
   @type t :: %__MODULE__{
-          protocol: integer()
+          self: integer()
         }
 
-  def decode_protocol(value) when is_integer(value), do: value
-  def decode_protocol(_), do: {:error, "Unexpected type when decoding Obj3Protocol.protocol"}
+  def decode_self(value) when is_integer(value), do: value
+  def decode_self(_), do: {:error, "Unexpected type when decoding SelfClass.self"}
 
-  def encode_protocol(value) when is_integer(value), do: value
-  def encode_protocol(_), do: {:error, "Unexpected type when encoding Obj3Protocol.protocol"}
+  def encode_self(value) when is_integer(value), do: value
+  def encode_self(_), do: {:error, "Unexpected type when encoding SelfClass.self"}
 
   def from_map(m) do
-    %Obj3Protocol{
-      protocol: decode_protocol(m["protocol"]),
+    %SelfClass{
+      self: decode_self(m["self"]),
     }
   end
 
@@ -8179,7 +8416,7 @@ defmodule Obj3Protocol do
 
   def to_map(struct) do
     %{
-      "protocol" => struct.protocol,
+      "self" => struct.self,
     }
   end
 
@@ -8986,124 +9223,7 @@ defmodule Private do
 
   def from_map(m) do
     %Private{
-      private: decode_private(m["private"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "private" => struct.private,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Protected do
-  @enforce_keys [:protected]
-  defstruct [:protected]
-
-  @type t :: %__MODULE__{
-          protected: integer()
-        }
-
-  def decode_protected(value) when is_integer(value), do: value
-  def decode_protected(_), do: {:error, "Unexpected type when decoding Protected.protected"}
-
-  def encode_protected(value) when is_integer(value), do: value
-  def encode_protected(_), do: {:error, "Unexpected type when encoding Protected.protected"}
-
-  def from_map(m) do
-    %Protected{
-      protected: decode_protected(m["protected"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "protected" => struct.protected,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule ProtocolClass do
-  @enforce_keys [:protocol]
-  defstruct [:protocol]
-
-  @type t :: %__MODULE__{
-          protocol: integer()
-        }
-
-  def decode_protocol(value) when is_integer(value), do: value
-  def decode_protocol(_), do: {:error, "Unexpected type when decoding ProtocolClass.protocol"}
-
-  def encode_protocol(value) when is_integer(value), do: value
-  def encode_protocol(_), do: {:error, "Unexpected type when encoding ProtocolClass.protocol"}
-
-  def from_map(m) do
-    %ProtocolClass{
-      protocol: decode_protocol(m["Protocol"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "Protocol" => struct.protocol,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule SerializerProvider do
-  @enforce_keys [:serializer_provider]
-  defstruct [:serializer_provider]
-
-  @type t :: %__MODULE__{
-          serializer_provider: integer()
-        }
-
-  def decode_serializer_provider(value) when is_integer(value), do: value
-  def decode_serializer_provider(_), do: {:error, "Unexpected type when decoding SerializerProvider.serializer_provider"}
-
-  def encode_serializer_provider(value) when is_integer(value), do: value
-  def encode_serializer_provider(_), do: {:error, "Unexpected type when encoding SerializerProvider.serializer_provider"}
-
-  def from_map(m) do
-    %SerializerProvider{
-      serializer_provider: decode_serializer_provider(m["SerializerProvider"]),
+      private: decode_private(m["private"]),
     }
   end
 
@@ -9115,7 +9235,7 @@ defmodule SerializerProvider do
 
   def to_map(struct) do
     %{
-      "SerializerProvider" => struct.serializer_provider,
+      "private" => struct.private,
     }
   end
 
@@ -9126,23 +9246,23 @@ defmodule SerializerProvider do
   end
 end
 
-defmodule SimpleModule do
-  @enforce_keys [:simple_module]
-  defstruct [:simple_module]
+defmodule Protected do
+  @enforce_keys [:protected]
+  defstruct [:protected]
 
   @type t :: %__MODULE__{
-          simple_module: integer()
+          protected: integer()
         }
 
-  def decode_simple_module(value) when is_integer(value), do: value
-  def decode_simple_module(_), do: {:error, "Unexpected type when decoding SimpleModule.simple_module"}
+  def decode_protected(value) when is_integer(value), do: value
+  def decode_protected(_), do: {:error, "Unexpected type when decoding Protected.protected"}
 
-  def encode_simple_module(value) when is_integer(value), do: value
-  def encode_simple_module(_), do: {:error, "Unexpected type when encoding SimpleModule.simple_module"}
+  def encode_protected(value) when is_integer(value), do: value
+  def encode_protected(_), do: {:error, "Unexpected type when encoding Protected.protected"}
 
   def from_map(m) do
-    %SimpleModule{
-      simple_module: decode_simple_module(m["SimpleModule"]),
+    %Protected{
+      protected: decode_protected(m["protected"]),
     }
   end
 
@@ -9154,7 +9274,7 @@ defmodule SimpleModule do
 
   def to_map(struct) do
     %{
-      "SimpleModule" => struct.simple_module,
+      "protected" => struct.protected,
     }
   end
 
@@ -9165,23 +9285,23 @@ defmodule SimpleModule do
   end
 end
 
-defmodule StdDeserializer do
-  @enforce_keys [:std_deserializer]
-  defstruct [:std_deserializer]
+defmodule ProtocolClass do
+  @enforce_keys [:protocol]
+  defstruct [:protocol]
 
   @type t :: %__MODULE__{
-          std_deserializer: integer()
+          protocol: integer()
         }
 
-  def decode_std_deserializer(value) when is_integer(value), do: value
-  def decode_std_deserializer(_), do: {:error, "Unexpected type when decoding StdDeserializer.std_deserializer"}
+  def decode_protocol(value) when is_integer(value), do: value
+  def decode_protocol(_), do: {:error, "Unexpected type when decoding ProtocolClass.protocol"}
 
-  def encode_std_deserializer(value) when is_integer(value), do: value
-  def encode_std_deserializer(_), do: {:error, "Unexpected type when encoding StdDeserializer.std_deserializer"}
+  def encode_protocol(value) when is_integer(value), do: value
+  def encode_protocol(_), do: {:error, "Unexpected type when encoding ProtocolClass.protocol"}
 
   def from_map(m) do
-    %StdDeserializer{
-      std_deserializer: decode_std_deserializer(m["StdDeserializer"]),
+    %ProtocolClass{
+      protocol: decode_protocol(m["Protocol"]),
     }
   end
 
@@ -9193,7 +9313,7 @@ defmodule StdDeserializer do
 
   def to_map(struct) do
     %{
-      "StdDeserializer" => struct.std_deserializer,
+      "Protocol" => struct.protocol,
     }
   end
 
@@ -9204,23 +9324,23 @@ defmodule StdDeserializer do
   end
 end
 
-defmodule StdSerializer do
-  @enforce_keys [:std_serializer]
-  defstruct [:std_serializer]
+defmodule Public do
+  @enforce_keys [:public]
+  defstruct [:public]
 
   @type t :: %__MODULE__{
-          std_serializer: integer()
+          public: integer()
         }
 
-  def decode_std_serializer(value) when is_integer(value), do: value
-  def decode_std_serializer(_), do: {:error, "Unexpected type when decoding StdSerializer.std_serializer"}
+  def decode_public(value) when is_integer(value), do: value
+  def decode_public(_), do: {:error, "Unexpected type when decoding Public.public"}
 
-  def encode_std_serializer(value) when is_integer(value), do: value
-  def encode_std_serializer(_), do: {:error, "Unexpected type when encoding StdSerializer.std_serializer"}
+  def encode_public(value) when is_integer(value), do: value
+  def encode_public(_), do: {:error, "Unexpected type when encoding Public.public"}
 
   def from_map(m) do
-    %StdSerializer{
-      std_serializer: decode_std_serializer(m["StdSerializer"]),
+    %Public{
+      public: decode_public(m["public"]),
     }
   end
 
@@ -9232,7 +9352,7 @@ defmodule StdSerializer do
 
   def to_map(struct) do
     %{
-      "StdSerializer" => struct.std_serializer,
+      "public" => struct.public,
     }
   end
 
@@ -9243,191 +9363,62 @@ defmodule StdSerializer do
   end
 end
 
-defmodule Obj3 do
-  @enforce_keys [:dummy, :is, :iso_date_time_offset_converter, :iterable, :jdec, :jenc, :jpipe, :json, :json_any, :json_coding_key, :json_converter, :json_decoder, :json_encoder, :json_exception, :json_generator, :json_node, :json_null, :json_parser, :json_reader, :json_serializer, :json_token, :json_token_type, :json_writer, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :no, :no_such_method, :noexcept, :nonatomic, :none, :nonlocal, :nonmutating, :not_eq, :ns_error, :ns_string, :null, :nullptr, :number, :obj3_nil, :obj3_none, :obj3_not, :obj3_null, :obj3_or, :obj3_protocol, :object, :object_mapper, :of, :oneway, :open, :operator, :optional, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :print_members, :printf, :private, :protected, :protocol, :serializer_provider, :simple_module, :std_deserializer, :std_serializer]
-  defstruct [:dummy, :is, :iso_date_time_offset_converter, :iterable, :jdec, :jenc, :jpipe, :json, :json_any, :json_coding_key, :json_converter, :json_decoder, :json_encoder, :json_exception, :json_generator, :json_node, :json_null, :json_parser, :json_reader, :json_serializer, :json_token, :json_token_type, :json_writer, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :no, :no_such_method, :noexcept, :nonatomic, :none, :nonlocal, :nonmutating, :not_eq, :ns_error, :ns_string, :null, :nullptr, :number, :obj3_nil, :obj3_none, :obj3_not, :obj3_null, :obj3_or, :obj3_protocol, :object, :object_mapper, :of, :oneway, :open, :operator, :optional, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :print_members, :printf, :private, :protected, :protocol, :serializer_provider, :simple_module, :std_deserializer, :std_serializer]
+defmodule Quicktype do
+  @enforce_keys [:quicktype]
+  defstruct [:quicktype]
 
   @type t :: %__MODULE__{
-          dummy: integer(),
-          is: Is.t(),
-          iso_date_time_offset_converter: ISODateTimeOffsetConverter.t(),
-          iterable: Iterable.t(),
-          jdec: Jdec.t(),
-          jenc: Jenc.t(),
-          jpipe: Jpipe.t(),
-          json: JSON.t(),
-          json_any: JSONAny.t(),
-          json_coding_key: JSONCodingKey.t(),
-          json_converter: JSONConverter.t(),
-          json_decoder: JSONDecoder.t(),
-          json_encoder: JSONEncoder.t(),
-          json_exception: JSONException.t(),
-          json_generator: JSONGenerator.t(),
-          json_node: JSONNode.t(),
-          json_null: JSONNull.t(),
-          json_parser: JSONParser.t(),
-          json_reader: JSONReader.t(),
-          json_serializer: JSONSerializer.t(),
-          json_token: JSONToken.t(),
-          json_token_type: JSONTokenType.t(),
-          json_writer: JSONWriter.t(),
-          lambda: Lambda.t(),
-          lazy: Lazy.t(),
-          left: Left.t(),
-          let: Let.t(),
-          list: ListClass.t(),
-          lock: Lock.t(),
-          long: Long.t(),
-          map: MapClass.t(),
-          metadata_property_handling: MetadataPropertyHandling.t(),
-          module: ModuleClass.t(),
-          mutable: Mutable.t(),
-          mutating: Mutating.t(),
-          namespace: Namespace.t(),
-          native: Native.t(),
-          new: New.t(),
-          newtonsoft: Newtonsoft.t(),
-          no: No.t(),
-          no_such_method: NoSuchMethod.t(),
-          noexcept: Noexcept.t(),
-          nonatomic: Nonatomic.t(),
-          none: None.t(),
-          nonlocal: Nonlocal.t(),
-          nonmutating: Nonmutating.t(),
-          not_eq: NotEq.t(),
-          ns_error: NSError.t(),
-          ns_string: NSString.t(),
-          null: Null.t(),
-          nullptr: Nullptr.t(),
-          number: Number.t(),
-          obj3_nil: NilClass.t(),
-          obj3_none: NoneClass.t(),
-          obj3_not: NotClass.t(),
-          obj3_null: NullClass.t(),
-          obj3_or: OrClass.t(),
-          obj3_protocol: Obj3Protocol.t(),
-          object: Object.t(),
-          object_mapper: ObjectMapper.t(),
-          of: Of.t(),
-          oneway: Oneway.t(),
-          open: Open.t(),
-          operator: Operator.t(),
-          optional: Optional.t(),
-          or_eq: OrEq.t(),
-          out: Out.t(),
-          override: Override.t(),
-          package: Package.t(),
-          params: Params.t(),
-          pass: Pass.t(),
-          port: PortClass.t(),
-          postfix: Postfix.t(),
-          precedence: Precedence.t(),
-          prefix: Prefix.t(),
-          print: Print.t(),
-          print_members: PrintMembers.t(),
-          printf: Printf.t(),
-          private: Private.t(),
-          protected: Protected.t(),
-          protocol: ProtocolClass.t(),
-          serializer_provider: SerializerProvider.t(),
-          simple_module: SimpleModule.t(),
-          std_deserializer: StdDeserializer.t(),
-          std_serializer: StdSerializer.t()
+          quicktype: integer()
         }
 
-  def decode_dummy(value) when is_integer(value), do: value
-  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj3.dummy"}
+  def decode_quicktype(value) when is_integer(value), do: value
+  def decode_quicktype(_), do: {:error, "Unexpected type when decoding Quicktype.quicktype"}
 
-  def encode_dummy(value) when is_integer(value), do: value
-  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj3.dummy"}
+  def encode_quicktype(value) when is_integer(value), do: value
+  def encode_quicktype(_), do: {:error, "Unexpected type when encoding Quicktype.quicktype"}
 
   def from_map(m) do
-    %Obj3{
-      dummy: decode_dummy(m["dummy"]),
-      is: Is.from_map(m["is"]),
-      iso_date_time_offset_converter: ISODateTimeOffsetConverter.from_map(m["IsoDateTimeOffsetConverter"]),
-      iterable: Iterable.from_map(m["iterable"]),
-      jdec: Jdec.from_map(m["jdec"]),
-      jenc: Jenc.from_map(m["jenc"]),
-      jpipe: Jpipe.from_map(m["jpipe"]),
-      json: JSON.from_map(m["json"]),
-      json_any: JSONAny.from_map(m["JSONAny"]),
-      json_coding_key: JSONCodingKey.from_map(m["JSONCodingKey"]),
-      json_converter: JSONConverter.from_map(m["json_converter"]),
-      json_decoder: JSONDecoder.from_map(m["JSONDecoder"]),
-      json_encoder: JSONEncoder.from_map(m["JSONEncoder"]),
-      json_exception: JSONException.from_map(m["JsonException"]),
-      json_generator: JSONGenerator.from_map(m["JsonGenerator"]),
-      json_node: JSONNode.from_map(m["JsonNode"]),
-      json_null: JSONNull.from_map(m["JSONNull"]),
-      json_parser: JSONParser.from_map(m["JsonParser"]),
-      json_reader: JSONReader.from_map(m["JsonReader"]),
-      json_serializer: JSONSerializer.from_map(m["json_serializer"]),
-      json_token: JSONToken.from_map(m["json_token"]),
-      json_token_type: JSONTokenType.from_map(m["JsonTokenType"]),
-      json_writer: JSONWriter.from_map(m["json_writer"]),
-      lambda: Lambda.from_map(m["lambda"]),
-      lazy: Lazy.from_map(m["lazy"]),
-      left: Left.from_map(m["left"]),
-      let: Let.from_map(m["let"]),
-      list: ListClass.from_map(m["list"]),
-      lock: Lock.from_map(m["lock"]),
-      long: Long.from_map(m["long"]),
-      map: MapClass.from_map(m["map"]),
-      metadata_property_handling: MetadataPropertyHandling.from_map(m["metadata_property_handling"]),
-      module: ModuleClass.from_map(m["module"]),
-      mutable: Mutable.from_map(m["mutable"]),
-      mutating: Mutating.from_map(m["mutating"]),
-      namespace: Namespace.from_map(m["namespace"]),
-      native: Native.from_map(m["native"]),
-      new: New.from_map(m["new"]),
-      newtonsoft: Newtonsoft.from_map(m["newtonsoft"]),
-      no: No.from_map(m["NO"]),
-      no_such_method: NoSuchMethod.from_map(m["noSuchMethod"]),
-      noexcept: Noexcept.from_map(m["noexcept"]),
-      nonatomic: Nonatomic.from_map(m["nonatomic"]),
-      none: None.from_map(m["None"]),
-      nonlocal: Nonlocal.from_map(m["nonlocal"]),
-      nonmutating: Nonmutating.from_map(m["nonmutating"]),
-      not_eq: NotEq.from_map(m["not_eq"]),
-      ns_error: NSError.from_map(m["NSError"]),
-      ns_string: NSString.from_map(m["NSString"]),
-      null: Null.from_map(m["NULL"]),
-      nullptr: Nullptr.from_map(m["nullptr"]),
-      number: Number.from_map(m["number"]),
-      obj3_nil: NilClass.from_map(m["nil"]),
-      obj3_none: NoneClass.from_map(m["none"]),
-      obj3_not: NotClass.from_map(m["not"]),
-      obj3_null: NullClass.from_map(m["null"]),
-      obj3_or: OrClass.from_map(m["or"]),
-      obj3_protocol: Obj3Protocol.from_map(m["protocol"]),
-      object: Object.from_map(m["object"]),
-      object_mapper: ObjectMapper.from_map(m["ObjectMapper"]),
-      of: Of.from_map(m["of"]),
-      oneway: Oneway.from_map(m["oneway"]),
-      open: Open.from_map(m["open"]),
-      operator: Operator.from_map(m["operator"]),
-      optional: Optional.from_map(m["optional"]),
-      or_eq: OrEq.from_map(m["or_eq"]),
-      out: Out.from_map(m["out"]),
-      override: Override.from_map(m["override"]),
-      package: Package.from_map(m["package"]),
-      params: Params.from_map(m["params"]),
-      pass: Pass.from_map(m["pass"]),
-      port: PortClass.from_map(m["port"]),
-      postfix: Postfix.from_map(m["postfix"]),
-      precedence: Precedence.from_map(m["precedence"]),
-      prefix: Prefix.from_map(m["prefix"]),
-      print: Print.from_map(m["print"]),
-      print_members: PrintMembers.from_map(m["printMembers"]),
-      printf: Printf.from_map(m["printf"]),
-      private: Private.from_map(m["private"]),
-      protected: Protected.from_map(m["protected"]),
-      protocol: ProtocolClass.from_map(m["Protocol"]),
-      serializer_provider: SerializerProvider.from_map(m["SerializerProvider"]),
-      simple_module: SimpleModule.from_map(m["SimpleModule"]),
-      std_deserializer: StdDeserializer.from_map(m["StdDeserializer"]),
-      std_serializer: StdSerializer.from_map(m["StdSerializer"]),
+    %Quicktype{
+      quicktype: decode_quicktype(m["quicktype"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "quicktype" => struct.quicktype,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Raise do
+  @enforce_keys [:raise]
+  defstruct [:raise]
+
+  @type t :: %__MODULE__{
+          raise: integer()
+        }
+
+  def decode_raise(value) when is_integer(value), do: value
+  def decode_raise(_), do: {:error, "Unexpected type when decoding Raise.raise"}
+
+  def encode_raise(value) when is_integer(value), do: value
+  def encode_raise(_), do: {:error, "Unexpected type when encoding Raise.raise"}
+
+  def from_map(m) do
+    %Raise{
+      raise: decode_raise(m["raise"]),
     }
   end
 
@@ -9439,91 +9430,7 @@ defmodule Obj3 do
 
   def to_map(struct) do
     %{
-      "dummy" => struct.dummy,
-      "is" => Is.to_map(struct.is),
-      "IsoDateTimeOffsetConverter" => ISODateTimeOffsetConverter.to_map(struct.iso_date_time_offset_converter),
-      "iterable" => Iterable.to_map(struct.iterable),
-      "jdec" => Jdec.to_map(struct.jdec),
-      "jenc" => Jenc.to_map(struct.jenc),
-      "jpipe" => Jpipe.to_map(struct.jpipe),
-      "json" => JSON.to_map(struct.json),
-      "JSONAny" => JSONAny.to_map(struct.json_any),
-      "JSONCodingKey" => JSONCodingKey.to_map(struct.json_coding_key),
-      "json_converter" => JSONConverter.to_map(struct.json_converter),
-      "JSONDecoder" => JSONDecoder.to_map(struct.json_decoder),
-      "JSONEncoder" => JSONEncoder.to_map(struct.json_encoder),
-      "JsonException" => JSONException.to_map(struct.json_exception),
-      "JsonGenerator" => JSONGenerator.to_map(struct.json_generator),
-      "JsonNode" => JSONNode.to_map(struct.json_node),
-      "JSONNull" => JSONNull.to_map(struct.json_null),
-      "JsonParser" => JSONParser.to_map(struct.json_parser),
-      "JsonReader" => JSONReader.to_map(struct.json_reader),
-      "json_serializer" => JSONSerializer.to_map(struct.json_serializer),
-      "json_token" => JSONToken.to_map(struct.json_token),
-      "JsonTokenType" => JSONTokenType.to_map(struct.json_token_type),
-      "json_writer" => JSONWriter.to_map(struct.json_writer),
-      "lambda" => Lambda.to_map(struct.lambda),
-      "lazy" => Lazy.to_map(struct.lazy),
-      "left" => Left.to_map(struct.left),
-      "let" => Let.to_map(struct.let),
-      "list" => ListClass.to_map(struct.list),
-      "lock" => Lock.to_map(struct.lock),
-      "long" => Long.to_map(struct.long),
-      "map" => MapClass.to_map(struct.map),
-      "metadata_property_handling" => MetadataPropertyHandling.to_map(struct.metadata_property_handling),
-      "module" => ModuleClass.to_map(struct.module),
-      "mutable" => Mutable.to_map(struct.mutable),
-      "mutating" => Mutating.to_map(struct.mutating),
-      "namespace" => Namespace.to_map(struct.namespace),
-      "native" => Native.to_map(struct.native),
-      "new" => New.to_map(struct.new),
-      "newtonsoft" => Newtonsoft.to_map(struct.newtonsoft),
-      "NO" => No.to_map(struct.no),
-      "noSuchMethod" => NoSuchMethod.to_map(struct.no_such_method),
-      "noexcept" => Noexcept.to_map(struct.noexcept),
-      "nonatomic" => Nonatomic.to_map(struct.nonatomic),
-      "None" => None.to_map(struct.none),
-      "nonlocal" => Nonlocal.to_map(struct.nonlocal),
-      "nonmutating" => Nonmutating.to_map(struct.nonmutating),
-      "not_eq" => NotEq.to_map(struct.not_eq),
-      "NSError" => NSError.to_map(struct.ns_error),
-      "NSString" => NSString.to_map(struct.ns_string),
-      "NULL" => Null.to_map(struct.null),
-      "nullptr" => Nullptr.to_map(struct.nullptr),
-      "number" => Number.to_map(struct.number),
-      "nil" => NilClass.to_map(struct.obj3_nil),
-      "none" => NoneClass.to_map(struct.obj3_none),
-      "not" => NotClass.to_map(struct.obj3_not),
-      "null" => NullClass.to_map(struct.obj3_null),
-      "or" => OrClass.to_map(struct.obj3_or),
-      "protocol" => Obj3Protocol.to_map(struct.obj3_protocol),
-      "object" => Object.to_map(struct.object),
-      "ObjectMapper" => ObjectMapper.to_map(struct.object_mapper),
-      "of" => Of.to_map(struct.of),
-      "oneway" => Oneway.to_map(struct.oneway),
-      "open" => Open.to_map(struct.open),
-      "operator" => Operator.to_map(struct.operator),
-      "optional" => Optional.to_map(struct.optional),
-      "or_eq" => OrEq.to_map(struct.or_eq),
-      "out" => Out.to_map(struct.out),
-      "override" => Override.to_map(struct.override),
-      "package" => Package.to_map(struct.package),
-      "params" => Params.to_map(struct.params),
-      "pass" => Pass.to_map(struct.pass),
-      "port" => PortClass.to_map(struct.port),
-      "postfix" => Postfix.to_map(struct.postfix),
-      "precedence" => Precedence.to_map(struct.precedence),
-      "prefix" => Prefix.to_map(struct.prefix),
-      "print" => Print.to_map(struct.print),
-      "printMembers" => PrintMembers.to_map(struct.print_members),
-      "printf" => Printf.to_map(struct.printf),
-      "private" => Private.to_map(struct.private),
-      "protected" => Protected.to_map(struct.protected),
-      "Protocol" => ProtocolClass.to_map(struct.protocol),
-      "SerializerProvider" => SerializerProvider.to_map(struct.serializer_provider),
-      "SimpleModule" => SimpleModule.to_map(struct.simple_module),
-      "StdDeserializer" => StdDeserializer.to_map(struct.std_deserializer),
-      "StdSerializer" => StdSerializer.to_map(struct.std_serializer),
+      "raise" => struct.raise,
     }
   end
 
@@ -9534,23 +9441,23 @@ defmodule Obj3 do
   end
 end
 
-defmodule SelfClass do
-  @enforce_keys [:self]
-  defstruct [:self]
+defmodule RangeClass do
+  @enforce_keys [:range]
+  defstruct [:range]
 
   @type t :: %__MODULE__{
-          self: integer()
+          range: integer()
         }
 
-  def decode_self(value) when is_integer(value), do: value
-  def decode_self(_), do: {:error, "Unexpected type when decoding SelfClass.self"}
+  def decode_range(value) when is_integer(value), do: value
+  def decode_range(_), do: {:error, "Unexpected type when decoding RangeClass.range"}
 
-  def encode_self(value) when is_integer(value), do: value
-  def encode_self(_), do: {:error, "Unexpected type when encoding SelfClass.self"}
+  def encode_range(value) when is_integer(value), do: value
+  def encode_range(_), do: {:error, "Unexpected type when encoding RangeClass.range"}
 
   def from_map(m) do
-    %SelfClass{
-      self: decode_self(m["self"]),
+    %RangeClass{
+      range: decode_range(m["range"]),
     }
   end
 
@@ -9562,7 +9469,7 @@ defmodule SelfClass do
 
   def to_map(struct) do
     %{
-      "self" => struct.self,
+      "range" => struct.range,
     }
   end
 
@@ -9573,23 +9480,23 @@ defmodule SelfClass do
   end
 end
 
-defmodule TrueClass do
-  @enforce_keys [:true_true]
-  defstruct [:true_true]
+defmodule Readonly do
+  @enforce_keys [:readonly]
+  defstruct [:readonly]
 
   @type t :: %__MODULE__{
-          true_true: integer()
+          readonly: integer()
         }
 
-  def decode_true_true(value) when is_integer(value), do: value
-  def decode_true_true(_), do: {:error, "Unexpected type when decoding TrueClass.true_true"}
+  def decode_readonly(value) when is_integer(value), do: value
+  def decode_readonly(_), do: {:error, "Unexpected type when decoding Readonly.readonly"}
 
-  def encode_true_true(value) when is_integer(value), do: value
-  def encode_true_true(_), do: {:error, "Unexpected type when encoding TrueClass.true_true"}
+  def encode_readonly(value) when is_integer(value), do: value
+  def encode_readonly(_), do: {:error, "Unexpected type when encoding Readonly.readonly"}
 
   def from_map(m) do
-    %TrueClass{
-      true_true: decode_true_true(m["True"]),
+    %Readonly{
+      readonly: decode_readonly(m["readonly"]),
     }
   end
 
@@ -9601,7 +9508,7 @@ defmodule TrueClass do
 
   def to_map(struct) do
     %{
-      "True" => struct.true_true,
+      "readonly" => struct.readonly,
     }
   end
 
@@ -9612,23 +9519,23 @@ defmodule TrueClass do
   end
 end
 
-defmodule TypeClass do
-  @enforce_keys [:type]
-  defstruct [:type]
+defmodule Ref do
+  @enforce_keys [:ref]
+  defstruct [:ref]
 
   @type t :: %__MODULE__{
-          type: integer()
+          ref: integer()
         }
 
-  def decode_type(value) when is_integer(value), do: value
-  def decode_type(_), do: {:error, "Unexpected type when decoding TypeClass.type"}
+  def decode_ref(value) when is_integer(value), do: value
+  def decode_ref(_), do: {:error, "Unexpected type when decoding Ref.ref"}
 
-  def encode_type(value) when is_integer(value), do: value
-  def encode_type(_), do: {:error, "Unexpected type when encoding TypeClass.type"}
+  def encode_ref(value) when is_integer(value), do: value
+  def encode_ref(_), do: {:error, "Unexpected type when encoding Ref.ref"}
 
   def from_map(m) do
-    %TypeClass{
-      type: decode_type(m["type"]),
+    %Ref{
+      ref: decode_ref(m["ref"]),
     }
   end
 
@@ -9640,7 +9547,7 @@ defmodule TypeClass do
 
   def to_map(struct) do
     %{
-      "type" => struct.type,
+      "ref" => struct.ref,
     }
   end
 
@@ -9651,23 +9558,23 @@ defmodule TypeClass do
   end
 end
 
-defmodule Public do
-  @enforce_keys [:public]
-  defstruct [:public]
+defmodule RegExp do
+  @enforce_keys [:reg_exp]
+  defstruct [:reg_exp]
 
   @type t :: %__MODULE__{
-          public: integer()
+          reg_exp: String.t()
         }
 
-  def decode_public(value) when is_integer(value), do: value
-  def decode_public(_), do: {:error, "Unexpected type when decoding Public.public"}
+  def decode_reg_exp(value) when is_binary(value), do: value
+  def decode_reg_exp(_), do: {:error, "Unexpected type when decoding RegExp.reg_exp"}
 
-  def encode_public(value) when is_integer(value), do: value
-  def encode_public(_), do: {:error, "Unexpected type when encoding Public.public"}
+  def encode_reg_exp(value) when is_binary(value), do: value
+  def encode_reg_exp(_), do: {:error, "Unexpected type when encoding RegExp.reg_exp"}
 
   def from_map(m) do
-    %Public{
-      public: decode_public(m["public"]),
+    %RegExp{
+      reg_exp: decode_reg_exp(m["RegExp"]),
     }
   end
 
@@ -9679,7 +9586,7 @@ defmodule Public do
 
   def to_map(struct) do
     %{
-      "public" => struct.public,
+      "RegExp" => struct.reg_exp,
     }
   end
 
@@ -9690,23 +9597,62 @@ defmodule Public do
   end
 end
 
-defmodule Quicktype do
-  @enforce_keys [:quicktype]
-  defstruct [:quicktype]
+defmodule Register do
+  @enforce_keys [:register]
+  defstruct [:register]
 
   @type t :: %__MODULE__{
-          quicktype: integer()
+          register: integer()
         }
 
-  def decode_quicktype(value) when is_integer(value), do: value
-  def decode_quicktype(_), do: {:error, "Unexpected type when decoding Quicktype.quicktype"}
+  def decode_register(value) when is_integer(value), do: value
+  def decode_register(_), do: {:error, "Unexpected type when decoding Register.register"}
 
-  def encode_quicktype(value) when is_integer(value), do: value
-  def encode_quicktype(_), do: {:error, "Unexpected type when encoding Quicktype.quicktype"}
+  def encode_register(value) when is_integer(value), do: value
+  def encode_register(_), do: {:error, "Unexpected type when encoding Register.register"}
+
+  def from_map(m) do
+    %Register{
+      register: decode_register(m["register"]),
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(struct) do
+    %{
+      "register" => struct.register,
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule ReinterpretCast do
+  @enforce_keys [:reinterpret_cast]
+  defstruct [:reinterpret_cast]
+
+  @type t :: %__MODULE__{
+          reinterpret_cast: integer()
+        }
+
+  def decode_reinterpret_cast(value) when is_integer(value), do: value
+  def decode_reinterpret_cast(_), do: {:error, "Unexpected type when decoding ReinterpretCast.reinterpret_cast"}
+
+  def encode_reinterpret_cast(value) when is_integer(value), do: value
+  def encode_reinterpret_cast(_), do: {:error, "Unexpected type when encoding ReinterpretCast.reinterpret_cast"}
 
   def from_map(m) do
-    %Quicktype{
-      quicktype: decode_quicktype(m["quicktype"]),
+    %ReinterpretCast{
+      reinterpret_cast: decode_reinterpret_cast(m["reinterpret_cast"]),
     }
   end
 
@@ -9718,7 +9664,7 @@ defmodule Quicktype do
 
   def to_map(struct) do
     %{
-      "quicktype" => struct.quicktype,
+      "reinterpret_cast" => struct.reinterpret_cast,
     }
   end
 
@@ -9729,23 +9675,23 @@ defmodule Quicktype do
   end
 end
 
-defmodule Raise do
-  @enforce_keys [:raise]
-  defstruct [:raise]
+defmodule Repeat do
+  @enforce_keys [:repeat]
+  defstruct [:repeat]
 
   @type t :: %__MODULE__{
-          raise: integer()
+          repeat: integer()
         }
 
-  def decode_raise(value) when is_integer(value), do: value
-  def decode_raise(_), do: {:error, "Unexpected type when decoding Raise.raise"}
+  def decode_repeat(value) when is_integer(value), do: value
+  def decode_repeat(_), do: {:error, "Unexpected type when decoding Repeat.repeat"}
 
-  def encode_raise(value) when is_integer(value), do: value
-  def encode_raise(_), do: {:error, "Unexpected type when encoding Raise.raise"}
+  def encode_repeat(value) when is_integer(value), do: value
+  def encode_repeat(_), do: {:error, "Unexpected type when encoding Repeat.repeat"}
 
   def from_map(m) do
-    %Raise{
-      raise: decode_raise(m["raise"]),
+    %Repeat{
+      repeat: decode_repeat(m["repeat"]),
     }
   end
 
@@ -9757,7 +9703,7 @@ defmodule Raise do
 
   def to_map(struct) do
     %{
-      "raise" => struct.raise,
+      "repeat" => struct.repeat,
     }
   end
 
@@ -9768,23 +9714,23 @@ defmodule Raise do
   end
 end
 
-defmodule RangeClass do
-  @enforce_keys [:range]
-  defstruct [:range]
+defmodule Require do
+  @enforce_keys [:require]
+  defstruct [:require]
 
   @type t :: %__MODULE__{
-          range: integer()
+          require: integer()
         }
 
-  def decode_range(value) when is_integer(value), do: value
-  def decode_range(_), do: {:error, "Unexpected type when decoding RangeClass.range"}
+  def decode_require(value) when is_integer(value), do: value
+  def decode_require(_), do: {:error, "Unexpected type when decoding Require.require"}
 
-  def encode_range(value) when is_integer(value), do: value
-  def encode_range(_), do: {:error, "Unexpected type when encoding RangeClass.range"}
+  def encode_require(value) when is_integer(value), do: value
+  def encode_require(_), do: {:error, "Unexpected type when encoding Require.require"}
 
   def from_map(m) do
-    %RangeClass{
-      range: decode_range(m["range"]),
+    %Require{
+      require: decode_require(m["require"]),
     }
   end
 
@@ -9796,7 +9742,7 @@ defmodule RangeClass do
 
   def to_map(struct) do
     %{
-      "range" => struct.range,
+      "require" => struct.require,
     }
   end
 
@@ -9807,23 +9753,23 @@ defmodule RangeClass do
   end
 end
 
-defmodule Readonly do
-  @enforce_keys [:readonly]
-  defstruct [:readonly]
+defmodule Required do
+  @enforce_keys [:required]
+  defstruct [:required]
 
   @type t :: %__MODULE__{
-          readonly: integer()
+          required: integer()
         }
 
-  def decode_readonly(value) when is_integer(value), do: value
-  def decode_readonly(_), do: {:error, "Unexpected type when decoding Readonly.readonly"}
+  def decode_required(value) when is_integer(value), do: value
+  def decode_required(_), do: {:error, "Unexpected type when decoding Required.required"}
 
-  def encode_readonly(value) when is_integer(value), do: value
-  def encode_readonly(_), do: {:error, "Unexpected type when encoding Readonly.readonly"}
+  def encode_required(value) when is_integer(value), do: value
+  def encode_required(_), do: {:error, "Unexpected type when encoding Required.required"}
 
   def from_map(m) do
-    %Readonly{
-      readonly: decode_readonly(m["readonly"]),
+    %Required{
+      required: decode_required(m["required"]),
     }
   end
 
@@ -9835,7 +9781,7 @@ defmodule Readonly do
 
   def to_map(struct) do
     %{
-      "readonly" => struct.readonly,
+      "required" => struct.required,
     }
   end
 
@@ -9846,23 +9792,23 @@ defmodule Readonly do
   end
 end
 
-defmodule Ref do
-  @enforce_keys [:ref]
-  defstruct [:ref]
+defmodule Requires do
+  @enforce_keys [:requires]
+  defstruct [:requires]
 
   @type t :: %__MODULE__{
-          ref: integer()
+          requires: integer()
         }
 
-  def decode_ref(value) when is_integer(value), do: value
-  def decode_ref(_), do: {:error, "Unexpected type when decoding Ref.ref"}
+  def decode_requires(value) when is_integer(value), do: value
+  def decode_requires(_), do: {:error, "Unexpected type when decoding Requires.requires"}
 
-  def encode_ref(value) when is_integer(value), do: value
-  def encode_ref(_), do: {:error, "Unexpected type when encoding Ref.ref"}
+  def encode_requires(value) when is_integer(value), do: value
+  def encode_requires(_), do: {:error, "Unexpected type when encoding Requires.requires"}
 
   def from_map(m) do
-    %Ref{
-      ref: decode_ref(m["ref"]),
+    %Requires{
+      requires: decode_requires(m["requires"]),
     }
   end
 
@@ -9874,7 +9820,7 @@ defmodule Ref do
 
   def to_map(struct) do
     %{
-      "ref" => struct.ref,
+      "requires" => struct.requires,
     }
   end
 
@@ -9885,23 +9831,23 @@ defmodule Ref do
   end
 end
 
-defmodule RegExp do
-  @enforce_keys [:reg_exp]
-  defstruct [:reg_exp]
+defmodule Restrict do
+  @enforce_keys [:restrict]
+  defstruct [:restrict]
 
   @type t :: %__MODULE__{
-          reg_exp: String.t()
+          restrict: integer()
         }
 
-  def decode_reg_exp(value) when is_binary(value), do: value
-  def decode_reg_exp(_), do: {:error, "Unexpected type when decoding RegExp.reg_exp"}
+  def decode_restrict(value) when is_integer(value), do: value
+  def decode_restrict(_), do: {:error, "Unexpected type when decoding Restrict.restrict"}
 
-  def encode_reg_exp(value) when is_binary(value), do: value
-  def encode_reg_exp(_), do: {:error, "Unexpected type when encoding RegExp.reg_exp"}
+  def encode_restrict(value) when is_integer(value), do: value
+  def encode_restrict(_), do: {:error, "Unexpected type when encoding Restrict.restrict"}
 
   def from_map(m) do
-    %RegExp{
-      reg_exp: decode_reg_exp(m["RegExp"]),
+    %Restrict{
+      restrict: decode_restrict(m["restrict"]),
     }
   end
 
@@ -9913,7 +9859,7 @@ defmodule RegExp do
 
   def to_map(struct) do
     %{
-      "RegExp" => struct.reg_exp,
+      "restrict" => struct.restrict,
     }
   end
 
@@ -9924,23 +9870,23 @@ defmodule RegExp do
   end
 end
 
-defmodule Register do
-  @enforce_keys [:register]
-  defstruct [:register]
+defmodule Retain do
+  @enforce_keys [:retain]
+  defstruct [:retain]
 
   @type t :: %__MODULE__{
-          register: integer()
+          retain: integer()
         }
 
-  def decode_register(value) when is_integer(value), do: value
-  def decode_register(_), do: {:error, "Unexpected type when decoding Register.register"}
+  def decode_retain(value) when is_integer(value), do: value
+  def decode_retain(_), do: {:error, "Unexpected type when decoding Retain.retain"}
 
-  def encode_register(value) when is_integer(value), do: value
-  def encode_register(_), do: {:error, "Unexpected type when encoding Register.register"}
+  def encode_retain(value) when is_integer(value), do: value
+  def encode_retain(_), do: {:error, "Unexpected type when encoding Retain.retain"}
 
   def from_map(m) do
-    %Register{
-      register: decode_register(m["register"]),
+    %Retain{
+      retain: decode_retain(m["retain"]),
     }
   end
 
@@ -9952,7 +9898,7 @@ defmodule Register do
 
   def to_map(struct) do
     %{
-      "register" => struct.register,
+      "retain" => struct.retain,
     }
   end
 
@@ -9963,23 +9909,23 @@ defmodule Register do
   end
 end
 
-defmodule ReinterpretCast do
-  @enforce_keys [:reinterpret_cast]
-  defstruct [:reinterpret_cast]
+defmodule Rethrows do
+  @enforce_keys [:rethrows]
+  defstruct [:rethrows]
 
   @type t :: %__MODULE__{
-          reinterpret_cast: integer()
+          rethrows: integer()
         }
 
-  def decode_reinterpret_cast(value) when is_integer(value), do: value
-  def decode_reinterpret_cast(_), do: {:error, "Unexpected type when decoding ReinterpretCast.reinterpret_cast"}
+  def decode_rethrows(value) when is_integer(value), do: value
+  def decode_rethrows(_), do: {:error, "Unexpected type when decoding Rethrows.rethrows"}
 
-  def encode_reinterpret_cast(value) when is_integer(value), do: value
-  def encode_reinterpret_cast(_), do: {:error, "Unexpected type when encoding ReinterpretCast.reinterpret_cast"}
+  def encode_rethrows(value) when is_integer(value), do: value
+  def encode_rethrows(_), do: {:error, "Unexpected type when encoding Rethrows.rethrows"}
 
   def from_map(m) do
-    %ReinterpretCast{
-      reinterpret_cast: decode_reinterpret_cast(m["reinterpret_cast"]),
+    %Rethrows{
+      rethrows: decode_rethrows(m["rethrows"]),
     }
   end
 
@@ -9991,7 +9937,7 @@ defmodule ReinterpretCast do
 
   def to_map(struct) do
     %{
-      "reinterpret_cast" => struct.reinterpret_cast,
+      "rethrows" => struct.rethrows,
     }
   end
 
@@ -10002,23 +9948,23 @@ defmodule ReinterpretCast do
   end
 end
 
-defmodule Repeat do
-  @enforce_keys [:repeat]
-  defstruct [:repeat]
+defmodule Return do
+  @enforce_keys [:return]
+  defstruct [:return]
 
   @type t :: %__MODULE__{
-          repeat: integer()
+          return: integer()
         }
 
-  def decode_repeat(value) when is_integer(value), do: value
-  def decode_repeat(_), do: {:error, "Unexpected type when decoding Repeat.repeat"}
+  def decode_return(value) when is_integer(value), do: value
+  def decode_return(_), do: {:error, "Unexpected type when decoding Return.return"}
 
-  def encode_repeat(value) when is_integer(value), do: value
-  def encode_repeat(_), do: {:error, "Unexpected type when encoding Repeat.repeat"}
+  def encode_return(value) when is_integer(value), do: value
+  def encode_return(_), do: {:error, "Unexpected type when encoding Return.return"}
 
   def from_map(m) do
-    %Repeat{
-      repeat: decode_repeat(m["repeat"]),
+    %Return{
+      return: decode_return(m["return"]),
     }
   end
 
@@ -10030,7 +9976,7 @@ defmodule Repeat do
 
   def to_map(struct) do
     %{
-      "repeat" => struct.repeat,
+      "return" => struct.return,
     }
   end
 
@@ -10041,23 +9987,23 @@ defmodule Repeat do
   end
 end
 
-defmodule Require do
-  @enforce_keys [:require]
-  defstruct [:require]
+defmodule Right do
+  @enforce_keys [:right]
+  defstruct [:right]
 
   @type t :: %__MODULE__{
-          require: integer()
+          right: integer()
         }
 
-  def decode_require(value) when is_integer(value), do: value
-  def decode_require(_), do: {:error, "Unexpected type when decoding Require.require"}
+  def decode_right(value) when is_integer(value), do: value
+  def decode_right(_), do: {:error, "Unexpected type when decoding Right.right"}
 
-  def encode_require(value) when is_integer(value), do: value
-  def encode_require(_), do: {:error, "Unexpected type when encoding Require.require"}
+  def encode_right(value) when is_integer(value), do: value
+  def encode_right(_), do: {:error, "Unexpected type when encoding Right.right"}
 
   def from_map(m) do
-    %Require{
-      require: decode_require(m["require"]),
+    %Right{
+      right: decode_right(m["right"]),
     }
   end
 
@@ -10069,7 +10015,7 @@ defmodule Require do
 
   def to_map(struct) do
     %{
-      "require" => struct.require,
+      "right" => struct.right,
     }
   end
 
@@ -10080,23 +10026,23 @@ defmodule Require do
   end
 end
 
-defmodule Required do
-  @enforce_keys [:required]
-  defstruct [:required]
+defmodule RuntimeType do
+  @enforce_keys [:runtime_type]
+  defstruct [:runtime_type]
 
   @type t :: %__MODULE__{
-          required: integer()
+          runtime_type: integer()
         }
 
-  def decode_required(value) when is_integer(value), do: value
-  def decode_required(_), do: {:error, "Unexpected type when decoding Required.required"}
+  def decode_runtime_type(value) when is_integer(value), do: value
+  def decode_runtime_type(_), do: {:error, "Unexpected type when decoding RuntimeType.runtime_type"}
 
-  def encode_required(value) when is_integer(value), do: value
-  def encode_required(_), do: {:error, "Unexpected type when encoding Required.required"}
+  def encode_runtime_type(value) when is_integer(value), do: value
+  def encode_runtime_type(_), do: {:error, "Unexpected type when encoding RuntimeType.runtime_type"}
 
   def from_map(m) do
-    %Required{
-      required: decode_required(m["required"]),
+    %RuntimeType{
+      runtime_type: decode_runtime_type(m["runtimeType"]),
     }
   end
 
@@ -10108,7 +10054,7 @@ defmodule Required do
 
   def to_map(struct) do
     %{
-      "required" => struct.required,
+      "runtimeType" => struct.runtime_type,
     }
   end
 
@@ -10119,23 +10065,23 @@ defmodule Required do
   end
 end
 
-defmodule Requires do
-  @enforce_keys [:requires]
-  defstruct [:requires]
+defmodule S do
+  @enforce_keys [:s]
+  defstruct [:s]
 
   @type t :: %__MODULE__{
-          requires: integer()
+          s: integer()
         }
 
-  def decode_requires(value) when is_integer(value), do: value
-  def decode_requires(_), do: {:error, "Unexpected type when decoding Requires.requires"}
+  def decode_s(value) when is_integer(value), do: value
+  def decode_s(_), do: {:error, "Unexpected type when decoding S.s"}
 
-  def encode_requires(value) when is_integer(value), do: value
-  def encode_requires(_), do: {:error, "Unexpected type when encoding Requires.requires"}
+  def encode_s(value) when is_integer(value), do: value
+  def encode_s(_), do: {:error, "Unexpected type when encoding S.s"}
 
   def from_map(m) do
-    %Requires{
-      requires: decode_requires(m["requires"]),
+    %S{
+      s: decode_s(m["s"]),
     }
   end
 
@@ -10147,7 +10093,7 @@ defmodule Requires do
 
   def to_map(struct) do
     %{
-      "requires" => struct.requires,
+      "s" => struct.s,
     }
   end
 
@@ -10158,23 +10104,23 @@ defmodule Requires do
   end
 end
 
-defmodule Restrict do
-  @enforce_keys [:restrict]
-  defstruct [:restrict]
+defmodule Sbyte do
+  @enforce_keys [:sbyte]
+  defstruct [:sbyte]
 
   @type t :: %__MODULE__{
-          restrict: integer()
+          sbyte: integer()
         }
 
-  def decode_restrict(value) when is_integer(value), do: value
-  def decode_restrict(_), do: {:error, "Unexpected type when decoding Restrict.restrict"}
+  def decode_sbyte(value) when is_integer(value), do: value
+  def decode_sbyte(_), do: {:error, "Unexpected type when decoding Sbyte.sbyte"}
 
-  def encode_restrict(value) when is_integer(value), do: value
-  def encode_restrict(_), do: {:error, "Unexpected type when encoding Restrict.restrict"}
+  def encode_sbyte(value) when is_integer(value), do: value
+  def encode_sbyte(_), do: {:error, "Unexpected type when encoding Sbyte.sbyte"}
 
   def from_map(m) do
-    %Restrict{
-      restrict: decode_restrict(m["restrict"]),
+    %Sbyte{
+      sbyte: decode_sbyte(m["sbyte"]),
     }
   end
 
@@ -10186,7 +10132,7 @@ defmodule Restrict do
 
   def to_map(struct) do
     %{
-      "restrict" => struct.restrict,
+      "sbyte" => struct.sbyte,
     }
   end
 
@@ -10197,23 +10143,23 @@ defmodule Restrict do
   end
 end
 
-defmodule Retain do
-  @enforce_keys [:retain]
-  defstruct [:retain]
+defmodule Sealed do
+  @enforce_keys [:sealed]
+  defstruct [:sealed]
 
   @type t :: %__MODULE__{
-          retain: integer()
+          sealed: integer()
         }
 
-  def decode_retain(value) when is_integer(value), do: value
-  def decode_retain(_), do: {:error, "Unexpected type when decoding Retain.retain"}
+  def decode_sealed(value) when is_integer(value), do: value
+  def decode_sealed(_), do: {:error, "Unexpected type when decoding Sealed.sealed"}
 
-  def encode_retain(value) when is_integer(value), do: value
-  def encode_retain(_), do: {:error, "Unexpected type when encoding Retain.retain"}
+  def encode_sealed(value) when is_integer(value), do: value
+  def encode_sealed(_), do: {:error, "Unexpected type when encoding Sealed.sealed"}
 
   def from_map(m) do
-    %Retain{
-      retain: decode_retain(m["retain"]),
+    %Sealed{
+      sealed: decode_sealed(m["sealed"]),
     }
   end
 
@@ -10225,7 +10171,7 @@ defmodule Retain do
 
   def to_map(struct) do
     %{
-      "retain" => struct.retain,
+      "sealed" => struct.sealed,
     }
   end
 
@@ -10236,23 +10182,23 @@ defmodule Retain do
   end
 end
 
-defmodule Rethrows do
-  @enforce_keys [:rethrows]
-  defstruct [:rethrows]
+defmodule Sel do
+  @enforce_keys [:sel]
+  defstruct [:sel]
 
   @type t :: %__MODULE__{
-          rethrows: integer()
+          sel: integer()
         }
 
-  def decode_rethrows(value) when is_integer(value), do: value
-  def decode_rethrows(_), do: {:error, "Unexpected type when decoding Rethrows.rethrows"}
+  def decode_sel(value) when is_integer(value), do: value
+  def decode_sel(_), do: {:error, "Unexpected type when decoding Sel.sel"}
 
-  def encode_rethrows(value) when is_integer(value), do: value
-  def encode_rethrows(_), do: {:error, "Unexpected type when encoding Rethrows.rethrows"}
+  def encode_sel(value) when is_integer(value), do: value
+  def encode_sel(_), do: {:error, "Unexpected type when encoding Sel.sel"}
 
   def from_map(m) do
-    %Rethrows{
-      rethrows: decode_rethrows(m["rethrows"]),
+    %Sel{
+      sel: decode_sel(m["SEL"]),
     }
   end
 
@@ -10264,7 +10210,7 @@ defmodule Rethrows do
 
   def to_map(struct) do
     %{
-      "rethrows" => struct.rethrows,
+      "SEL" => struct.sel,
     }
   end
 
@@ -10275,23 +10221,23 @@ defmodule Rethrows do
   end
 end
 
-defmodule Return do
-  @enforce_keys [:return]
-  defstruct [:return]
+defmodule Select do
+  @enforce_keys [:select]
+  defstruct [:select]
 
   @type t :: %__MODULE__{
-          return: integer()
+          select: integer()
         }
 
-  def decode_return(value) when is_integer(value), do: value
-  def decode_return(_), do: {:error, "Unexpected type when decoding Return.return"}
+  def decode_select(value) when is_integer(value), do: value
+  def decode_select(_), do: {:error, "Unexpected type when decoding Select.select"}
 
-  def encode_return(value) when is_integer(value), do: value
-  def encode_return(_), do: {:error, "Unexpected type when encoding Return.return"}
+  def encode_select(value) when is_integer(value), do: value
+  def encode_select(_), do: {:error, "Unexpected type when encoding Select.select"}
 
   def from_map(m) do
-    %Return{
-      return: decode_return(m["return"]),
+    %Select{
+      select: decode_select(m["select"]),
     }
   end
 
@@ -10303,7 +10249,7 @@ defmodule Return do
 
   def to_map(struct) do
     %{
-      "return" => struct.return,
+      "select" => struct.select,
     }
   end
 
@@ -10314,23 +10260,23 @@ defmodule Return do
   end
 end
 
-defmodule Right do
-  @enforce_keys [:right]
-  defstruct [:right]
+defmodule Self do
+  @enforce_keys [:self]
+  defstruct [:self]
 
   @type t :: %__MODULE__{
-          right: integer()
+          self: integer()
         }
 
-  def decode_right(value) when is_integer(value), do: value
-  def decode_right(_), do: {:error, "Unexpected type when decoding Right.right"}
+  def decode_self(value) when is_integer(value), do: value
+  def decode_self(_), do: {:error, "Unexpected type when decoding Self.self"}
 
-  def encode_right(value) when is_integer(value), do: value
-  def encode_right(_), do: {:error, "Unexpected type when encoding Right.right"}
+  def encode_self(value) when is_integer(value), do: value
+  def encode_self(_), do: {:error, "Unexpected type when encoding Self.self"}
 
   def from_map(m) do
-    %Right{
-      right: decode_right(m["right"]),
+    %Self{
+      self: decode_self(m["Self"]),
     }
   end
 
@@ -10342,7 +10288,7 @@ defmodule Right do
 
   def to_map(struct) do
     %{
-      "right" => struct.right,
+      "Self" => struct.self,
     }
   end
 
@@ -10353,23 +10299,23 @@ defmodule Right do
   end
 end
 
-defmodule RuntimeType do
-  @enforce_keys [:runtime_type]
-  defstruct [:runtime_type]
+defmodule Serialize do
+  @enforce_keys [:serialize]
+  defstruct [:serialize]
 
   @type t :: %__MODULE__{
-          runtime_type: integer()
+          serialize: integer()
         }
 
-  def decode_runtime_type(value) when is_integer(value), do: value
-  def decode_runtime_type(_), do: {:error, "Unexpected type when decoding RuntimeType.runtime_type"}
+  def decode_serialize(value) when is_integer(value), do: value
+  def decode_serialize(_), do: {:error, "Unexpected type when decoding Serialize.serialize"}
 
-  def encode_runtime_type(value) when is_integer(value), do: value
-  def encode_runtime_type(_), do: {:error, "Unexpected type when encoding RuntimeType.runtime_type"}
+  def encode_serialize(value) when is_integer(value), do: value
+  def encode_serialize(_), do: {:error, "Unexpected type when encoding Serialize.serialize"}
 
   def from_map(m) do
-    %RuntimeType{
-      runtime_type: decode_runtime_type(m["runtimeType"]),
+    %Serialize{
+      serialize: decode_serialize(m["serialize"]),
     }
   end
 
@@ -10381,7 +10327,7 @@ defmodule RuntimeType do
 
   def to_map(struct) do
     %{
-      "runtimeType" => struct.runtime_type,
+      "serialize" => struct.serialize,
     }
   end
 
@@ -10392,23 +10338,23 @@ defmodule RuntimeType do
   end
 end
 
-defmodule S do
-  @enforce_keys [:s]
-  defstruct [:s]
+defmodule SerializerProvider do
+  @enforce_keys [:serializer_provider]
+  defstruct [:serializer_provider]
 
   @type t :: %__MODULE__{
-          s: integer()
+          serializer_provider: integer()
         }
 
-  def decode_s(value) when is_integer(value), do: value
-  def decode_s(_), do: {:error, "Unexpected type when decoding S.s"}
+  def decode_serializer_provider(value) when is_integer(value), do: value
+  def decode_serializer_provider(_), do: {:error, "Unexpected type when decoding SerializerProvider.serializer_provider"}
 
-  def encode_s(value) when is_integer(value), do: value
-  def encode_s(_), do: {:error, "Unexpected type when encoding S.s"}
+  def encode_serializer_provider(value) when is_integer(value), do: value
+  def encode_serializer_provider(_), do: {:error, "Unexpected type when encoding SerializerProvider.serializer_provider"}
 
   def from_map(m) do
-    %S{
-      s: decode_s(m["s"]),
+    %SerializerProvider{
+      serializer_provider: decode_serializer_provider(m["SerializerProvider"]),
     }
   end
 
@@ -10420,7 +10366,7 @@ defmodule S do
 
   def to_map(struct) do
     %{
-      "s" => struct.s,
+      "SerializerProvider" => struct.serializer_provider,
     }
   end
 
@@ -10431,23 +10377,23 @@ defmodule S do
   end
 end
 
-defmodule Sbyte do
-  @enforce_keys [:sbyte]
-  defstruct [:sbyte]
+defmodule SetClass do
+  @enforce_keys [:set]
+  defstruct [:set]
 
   @type t :: %__MODULE__{
-          sbyte: integer()
+          set: integer()
         }
 
-  def decode_sbyte(value) when is_integer(value), do: value
-  def decode_sbyte(_), do: {:error, "Unexpected type when decoding Sbyte.sbyte"}
+  def decode_set(value) when is_integer(value), do: value
+  def decode_set(_), do: {:error, "Unexpected type when decoding SetClass.set"}
 
-  def encode_sbyte(value) when is_integer(value), do: value
-  def encode_sbyte(_), do: {:error, "Unexpected type when encoding Sbyte.sbyte"}
+  def encode_set(value) when is_integer(value), do: value
+  def encode_set(_), do: {:error, "Unexpected type when encoding SetClass.set"}
 
   def from_map(m) do
-    %Sbyte{
-      sbyte: decode_sbyte(m["sbyte"]),
+    %SetClass{
+      set: decode_set(m["set"]),
     }
   end
 
@@ -10459,7 +10405,7 @@ defmodule Sbyte do
 
   def to_map(struct) do
     %{
-      "sbyte" => struct.sbyte,
+      "set" => struct.set,
     }
   end
 
@@ -10470,23 +10416,23 @@ defmodule Sbyte do
   end
 end
 
-defmodule Sealed do
-  @enforce_keys [:sealed]
-  defstruct [:sealed]
+defmodule Short do
+  @enforce_keys [:short]
+  defstruct [:short]
 
   @type t :: %__MODULE__{
-          sealed: integer()
+          short: integer()
         }
 
-  def decode_sealed(value) when is_integer(value), do: value
-  def decode_sealed(_), do: {:error, "Unexpected type when decoding Sealed.sealed"}
+  def decode_short(value) when is_integer(value), do: value
+  def decode_short(_), do: {:error, "Unexpected type when decoding Short.short"}
 
-  def encode_sealed(value) when is_integer(value), do: value
-  def encode_sealed(_), do: {:error, "Unexpected type when encoding Sealed.sealed"}
+  def encode_short(value) when is_integer(value), do: value
+  def encode_short(_), do: {:error, "Unexpected type when encoding Short.short"}
 
   def from_map(m) do
-    %Sealed{
-      sealed: decode_sealed(m["sealed"]),
+    %Short{
+      short: decode_short(m["short"]),
     }
   end
 
@@ -10498,7 +10444,7 @@ defmodule Sealed do
 
   def to_map(struct) do
     %{
-      "sealed" => struct.sealed,
+      "short" => struct.short,
     }
   end
 
@@ -10509,23 +10455,23 @@ defmodule Sealed do
   end
 end
 
-defmodule Sel do
-  @enforce_keys [:sel]
-  defstruct [:sel]
+defmodule Signed do
+  @enforce_keys [:signed]
+  defstruct [:signed]
 
   @type t :: %__MODULE__{
-          sel: integer()
+          signed: integer()
         }
 
-  def decode_sel(value) when is_integer(value), do: value
-  def decode_sel(_), do: {:error, "Unexpected type when decoding Sel.sel"}
+  def decode_signed(value) when is_integer(value), do: value
+  def decode_signed(_), do: {:error, "Unexpected type when decoding Signed.signed"}
 
-  def encode_sel(value) when is_integer(value), do: value
-  def encode_sel(_), do: {:error, "Unexpected type when encoding Sel.sel"}
+  def encode_signed(value) when is_integer(value), do: value
+  def encode_signed(_), do: {:error, "Unexpected type when encoding Signed.signed"}
 
   def from_map(m) do
-    %Sel{
-      sel: decode_sel(m["SEL"]),
+    %Signed{
+      signed: decode_signed(m["signed"]),
     }
   end
 
@@ -10537,7 +10483,7 @@ defmodule Sel do
 
   def to_map(struct) do
     %{
-      "SEL" => struct.sel,
+      "signed" => struct.signed,
     }
   end
 
@@ -10548,23 +10494,23 @@ defmodule Sel do
   end
 end
 
-defmodule Select do
-  @enforce_keys [:select]
-  defstruct [:select]
+defmodule SimpleModule do
+  @enforce_keys [:simple_module]
+  defstruct [:simple_module]
 
   @type t :: %__MODULE__{
-          select: integer()
+          simple_module: integer()
         }
 
-  def decode_select(value) when is_integer(value), do: value
-  def decode_select(_), do: {:error, "Unexpected type when decoding Select.select"}
+  def decode_simple_module(value) when is_integer(value), do: value
+  def decode_simple_module(_), do: {:error, "Unexpected type when decoding SimpleModule.simple_module"}
 
-  def encode_select(value) when is_integer(value), do: value
-  def encode_select(_), do: {:error, "Unexpected type when encoding Select.select"}
+  def encode_simple_module(value) when is_integer(value), do: value
+  def encode_simple_module(_), do: {:error, "Unexpected type when encoding SimpleModule.simple_module"}
 
   def from_map(m) do
-    %Select{
-      select: decode_select(m["select"]),
+    %SimpleModule{
+      simple_module: decode_simple_module(m["SimpleModule"]),
     }
   end
 
@@ -10576,7 +10522,7 @@ defmodule Select do
 
   def to_map(struct) do
     %{
-      "select" => struct.select,
+      "SimpleModule" => struct.simple_module,
     }
   end
 
@@ -10587,23 +10533,23 @@ defmodule Select do
   end
 end
 
-defmodule Self do
-  @enforce_keys [:self]
-  defstruct [:self]
+defmodule Sizeof do
+  @enforce_keys [:sizeof]
+  defstruct [:sizeof]
 
   @type t :: %__MODULE__{
-          self: integer()
+          sizeof: integer()
         }
 
-  def decode_self(value) when is_integer(value), do: value
-  def decode_self(_), do: {:error, "Unexpected type when decoding Self.self"}
+  def decode_sizeof(value) when is_integer(value), do: value
+  def decode_sizeof(_), do: {:error, "Unexpected type when decoding Sizeof.sizeof"}
 
-  def encode_self(value) when is_integer(value), do: value
-  def encode_self(_), do: {:error, "Unexpected type when encoding Self.self"}
+  def encode_sizeof(value) when is_integer(value), do: value
+  def encode_sizeof(_), do: {:error, "Unexpected type when encoding Sizeof.sizeof"}
 
   def from_map(m) do
-    %Self{
-      self: decode_self(m["Self"]),
+    %Sizeof{
+      sizeof: decode_sizeof(m["sizeof"]),
     }
   end
 
@@ -10615,7 +10561,7 @@ defmodule Self do
 
   def to_map(struct) do
     %{
-      "Self" => struct.self,
+      "sizeof" => struct.sizeof,
     }
   end
 
@@ -10626,23 +10572,23 @@ defmodule Self do
   end
 end
 
-defmodule Serialize do
-  @enforce_keys [:serialize]
-  defstruct [:serialize]
+defmodule Stackalloc do
+  @enforce_keys [:stackalloc]
+  defstruct [:stackalloc]
 
   @type t :: %__MODULE__{
-          serialize: integer()
+          stackalloc: integer()
         }
 
-  def decode_serialize(value) when is_integer(value), do: value
-  def decode_serialize(_), do: {:error, "Unexpected type when decoding Serialize.serialize"}
+  def decode_stackalloc(value) when is_integer(value), do: value
+  def decode_stackalloc(_), do: {:error, "Unexpected type when decoding Stackalloc.stackalloc"}
 
-  def encode_serialize(value) when is_integer(value), do: value
-  def encode_serialize(_), do: {:error, "Unexpected type when encoding Serialize.serialize"}
+  def encode_stackalloc(value) when is_integer(value), do: value
+  def encode_stackalloc(_), do: {:error, "Unexpected type when encoding Stackalloc.stackalloc"}
 
   def from_map(m) do
-    %Serialize{
-      serialize: decode_serialize(m["serialize"]),
+    %Stackalloc{
+      stackalloc: decode_stackalloc(m["stackalloc"]),
     }
   end
 
@@ -10654,7 +10600,7 @@ defmodule Serialize do
 
   def to_map(struct) do
     %{
-      "serialize" => struct.serialize,
+      "stackalloc" => struct.stackalloc,
     }
   end
 
@@ -10665,23 +10611,23 @@ defmodule Serialize do
   end
 end
 
-defmodule SetClass do
-  @enforce_keys [:set]
-  defstruct [:set]
+defmodule Standards do
+  @enforce_keys [:standards]
+  defstruct [:standards]
 
   @type t :: %__MODULE__{
-          set: integer()
+          standards: integer()
         }
 
-  def decode_set(value) when is_integer(value), do: value
-  def decode_set(_), do: {:error, "Unexpected type when decoding SetClass.set"}
+  def decode_standards(value) when is_integer(value), do: value
+  def decode_standards(_), do: {:error, "Unexpected type when decoding Standards.standards"}
 
-  def encode_set(value) when is_integer(value), do: value
-  def encode_set(_), do: {:error, "Unexpected type when encoding SetClass.set"}
+  def encode_standards(value) when is_integer(value), do: value
+  def encode_standards(_), do: {:error, "Unexpected type when encoding Standards.standards"}
 
   def from_map(m) do
-    %SetClass{
-      set: decode_set(m["set"]),
+    %Standards{
+      standards: decode_standards(m["Standards"]),
     }
   end
 
@@ -10693,7 +10639,7 @@ defmodule SetClass do
 
   def to_map(struct) do
     %{
-      "set" => struct.set,
+      "Standards" => struct.standards,
     }
   end
 
@@ -10704,23 +10650,23 @@ defmodule SetClass do
   end
 end
 
-defmodule Short do
-  @enforce_keys [:short]
-  defstruct [:short]
+defmodule Static do
+  @enforce_keys [:static]
+  defstruct [:static]
 
   @type t :: %__MODULE__{
-          short: integer()
+          static: integer()
         }
 
-  def decode_short(value) when is_integer(value), do: value
-  def decode_short(_), do: {:error, "Unexpected type when decoding Short.short"}
+  def decode_static(value) when is_integer(value), do: value
+  def decode_static(_), do: {:error, "Unexpected type when decoding Static.static"}
 
-  def encode_short(value) when is_integer(value), do: value
-  def encode_short(_), do: {:error, "Unexpected type when encoding Short.short"}
+  def encode_static(value) when is_integer(value), do: value
+  def encode_static(_), do: {:error, "Unexpected type when encoding Static.static"}
 
   def from_map(m) do
-    %Short{
-      short: decode_short(m["short"]),
+    %Static{
+      static: decode_static(m["static"]),
     }
   end
 
@@ -10732,7 +10678,7 @@ defmodule Short do
 
   def to_map(struct) do
     %{
-      "short" => struct.short,
+      "static" => struct.static,
     }
   end
 
@@ -10743,23 +10689,23 @@ defmodule Short do
   end
 end
 
-defmodule Signed do
-  @enforce_keys [:signed]
-  defstruct [:signed]
+defmodule StaticAssert do
+  @enforce_keys [:static_assert]
+  defstruct [:static_assert]
 
   @type t :: %__MODULE__{
-          signed: integer()
+          static_assert: integer()
         }
 
-  def decode_signed(value) when is_integer(value), do: value
-  def decode_signed(_), do: {:error, "Unexpected type when decoding Signed.signed"}
+  def decode_static_assert(value) when is_integer(value), do: value
+  def decode_static_assert(_), do: {:error, "Unexpected type when decoding StaticAssert.static_assert"}
 
-  def encode_signed(value) when is_integer(value), do: value
-  def encode_signed(_), do: {:error, "Unexpected type when encoding Signed.signed"}
+  def encode_static_assert(value) when is_integer(value), do: value
+  def encode_static_assert(_), do: {:error, "Unexpected type when encoding StaticAssert.static_assert"}
 
   def from_map(m) do
-    %Signed{
-      signed: decode_signed(m["signed"]),
+    %StaticAssert{
+      static_assert: decode_static_assert(m["static_assert"]),
     }
   end
 
@@ -10771,7 +10717,7 @@ defmodule Signed do
 
   def to_map(struct) do
     %{
-      "signed" => struct.signed,
+      "static_assert" => struct.static_assert,
     }
   end
 
@@ -10782,23 +10728,151 @@ defmodule Signed do
   end
 end
 
-defmodule Sizeof do
-  @enforce_keys [:sizeof]
-  defstruct [:sizeof]
+defmodule Obj4 do
+  @enforce_keys [:dummy, :nullptr, :number, :obj4_or, :obj4_protocol, :obj4_self, :object, :object_mapper, :of, :oneway, :open, :operator, :optional, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :print_members, :printf, :private, :protected, :protocol, :public, :quicktype, :raise, :range, :readonly, :ref, :reg_exp, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :runtime_type, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :serializer_provider, :set, :short, :signed, :simple_module, :sizeof, :stackalloc, :standards, :static, :static_assert]
+  defstruct [:dummy, :nullptr, :number, :obj4_or, :obj4_protocol, :obj4_self, :object, :object_mapper, :of, :oneway, :open, :operator, :optional, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :print_members, :printf, :private, :protected, :protocol, :public, :quicktype, :raise, :range, :readonly, :ref, :reg_exp, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :runtime_type, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :serializer_provider, :set, :short, :signed, :simple_module, :sizeof, :stackalloc, :standards, :static, :static_assert]
 
   @type t :: %__MODULE__{
-          sizeof: integer()
+          dummy: integer(),
+          nullptr: Nullptr.t(),
+          number: Number.t(),
+          obj4_or: OrClass.t(),
+          obj4_protocol: Obj4Protocol.t(),
+          obj4_self: SelfClass.t(),
+          object: Object.t(),
+          object_mapper: ObjectMapper.t(),
+          of: Of.t(),
+          oneway: Oneway.t(),
+          open: Open.t(),
+          operator: Operator.t(),
+          optional: Optional.t(),
+          or_eq: OrEq.t(),
+          out: Out.t(),
+          override: Override.t(),
+          package: Package.t(),
+          params: Params.t(),
+          pass: Pass.t(),
+          port: PortClass.t(),
+          postfix: Postfix.t(),
+          precedence: Precedence.t(),
+          prefix: Prefix.t(),
+          print: Print.t(),
+          print_members: PrintMembers.t(),
+          printf: Printf.t(),
+          private: Private.t(),
+          protected: Protected.t(),
+          protocol: ProtocolClass.t(),
+          public: Public.t(),
+          quicktype: Quicktype.t(),
+          raise: Raise.t(),
+          range: RangeClass.t(),
+          readonly: Readonly.t(),
+          ref: Ref.t(),
+          reg_exp: RegExp.t(),
+          register: Register.t(),
+          reinterpret_cast: ReinterpretCast.t(),
+          repeat: Repeat.t(),
+          require: Require.t(),
+          required: Required.t(),
+          requires: Requires.t(),
+          restrict: Restrict.t(),
+          retain: Retain.t(),
+          rethrows: Rethrows.t(),
+          return: Return.t(),
+          right: Right.t(),
+          runtime_type: RuntimeType.t(),
+          s: S.t(),
+          sbyte: Sbyte.t(),
+          sealed: Sealed.t(),
+          sel: Sel.t(),
+          select: Select.t(),
+          self: Self.t(),
+          serialize: Serialize.t(),
+          serializer_provider: SerializerProvider.t(),
+          set: SetClass.t(),
+          short: Short.t(),
+          signed: Signed.t(),
+          simple_module: SimpleModule.t(),
+          sizeof: Sizeof.t(),
+          stackalloc: Stackalloc.t(),
+          standards: Standards.t(),
+          static: Static.t(),
+          static_assert: StaticAssert.t()
         }
 
-  def decode_sizeof(value) when is_integer(value), do: value
-  def decode_sizeof(_), do: {:error, "Unexpected type when decoding Sizeof.sizeof"}
+  def decode_dummy(value) when is_integer(value), do: value
+  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj4.dummy"}
 
-  def encode_sizeof(value) when is_integer(value), do: value
-  def encode_sizeof(_), do: {:error, "Unexpected type when encoding Sizeof.sizeof"}
+  def encode_dummy(value) when is_integer(value), do: value
+  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj4.dummy"}
 
   def from_map(m) do
-    %Sizeof{
-      sizeof: decode_sizeof(m["sizeof"]),
+    %Obj4{
+      dummy: decode_dummy(m["dummy"]),
+      nullptr: Nullptr.from_map(m["nullptr"]),
+      number: Number.from_map(m["number"]),
+      obj4_or: OrClass.from_map(m["or"]),
+      obj4_protocol: Obj4Protocol.from_map(m["protocol"]),
+      obj4_self: SelfClass.from_map(m["self"]),
+      object: Object.from_map(m["object"]),
+      object_mapper: ObjectMapper.from_map(m["ObjectMapper"]),
+      of: Of.from_map(m["of"]),
+      oneway: Oneway.from_map(m["oneway"]),
+      open: Open.from_map(m["open"]),
+      operator: Operator.from_map(m["operator"]),
+      optional: Optional.from_map(m["optional"]),
+      or_eq: OrEq.from_map(m["or_eq"]),
+      out: Out.from_map(m["out"]),
+      override: Override.from_map(m["override"]),
+      package: Package.from_map(m["package"]),
+      params: Params.from_map(m["params"]),
+      pass: Pass.from_map(m["pass"]),
+      port: PortClass.from_map(m["port"]),
+      postfix: Postfix.from_map(m["postfix"]),
+      precedence: Precedence.from_map(m["precedence"]),
+      prefix: Prefix.from_map(m["prefix"]),
+      print: Print.from_map(m["print"]),
+      print_members: PrintMembers.from_map(m["printMembers"]),
+      printf: Printf.from_map(m["printf"]),
+      private: Private.from_map(m["private"]),
+      protected: Protected.from_map(m["protected"]),
+      protocol: ProtocolClass.from_map(m["Protocol"]),
+      public: Public.from_map(m["public"]),
+      quicktype: Quicktype.from_map(m["quicktype"]),
+      raise: Raise.from_map(m["raise"]),
+      range: RangeClass.from_map(m["range"]),
+      readonly: Readonly.from_map(m["readonly"]),
+      ref: Ref.from_map(m["ref"]),
+      reg_exp: RegExp.from_map(m["RegExp"]),
+      register: Register.from_map(m["register"]),
+      reinterpret_cast: ReinterpretCast.from_map(m["reinterpret_cast"]),
+      repeat: Repeat.from_map(m["repeat"]),
+      require: Require.from_map(m["require"]),
+      required: Required.from_map(m["required"]),
+      requires: Requires.from_map(m["requires"]),
+      restrict: Restrict.from_map(m["restrict"]),
+      retain: Retain.from_map(m["retain"]),
+      rethrows: Rethrows.from_map(m["rethrows"]),
+      return: Return.from_map(m["return"]),
+      right: Right.from_map(m["right"]),
+      runtime_type: RuntimeType.from_map(m["runtimeType"]),
+      s: S.from_map(m["s"]),
+      sbyte: Sbyte.from_map(m["sbyte"]),
+      sealed: Sealed.from_map(m["sealed"]),
+      sel: Sel.from_map(m["SEL"]),
+      select: Select.from_map(m["select"]),
+      self: Self.from_map(m["Self"]),
+      serialize: Serialize.from_map(m["serialize"]),
+      serializer_provider: SerializerProvider.from_map(m["SerializerProvider"]),
+      set: SetClass.from_map(m["set"]),
+      short: Short.from_map(m["short"]),
+      signed: Signed.from_map(m["signed"]),
+      simple_module: SimpleModule.from_map(m["SimpleModule"]),
+      sizeof: Sizeof.from_map(m["sizeof"]),
+      stackalloc: Stackalloc.from_map(m["stackalloc"]),
+      standards: Standards.from_map(m["Standards"]),
+      static: Static.from_map(m["static"]),
+      static_assert: StaticAssert.from_map(m["static_assert"]),
     }
   end
 
@@ -10810,7 +10884,71 @@ defmodule Sizeof do
 
   def to_map(struct) do
     %{
-      "sizeof" => struct.sizeof,
+      "dummy" => struct.dummy,
+      "nullptr" => Nullptr.to_map(struct.nullptr),
+      "number" => Number.to_map(struct.number),
+      "or" => OrClass.to_map(struct.obj4_or),
+      "protocol" => Obj4Protocol.to_map(struct.obj4_protocol),
+      "self" => SelfClass.to_map(struct.obj4_self),
+      "object" => Object.to_map(struct.object),
+      "ObjectMapper" => ObjectMapper.to_map(struct.object_mapper),
+      "of" => Of.to_map(struct.of),
+      "oneway" => Oneway.to_map(struct.oneway),
+      "open" => Open.to_map(struct.open),
+      "operator" => Operator.to_map(struct.operator),
+      "optional" => Optional.to_map(struct.optional),
+      "or_eq" => OrEq.to_map(struct.or_eq),
+      "out" => Out.to_map(struct.out),
+      "override" => Override.to_map(struct.override),
+      "package" => Package.to_map(struct.package),
+      "params" => Params.to_map(struct.params),
+      "pass" => Pass.to_map(struct.pass),
+      "port" => PortClass.to_map(struct.port),
+      "postfix" => Postfix.to_map(struct.postfix),
+      "precedence" => Precedence.to_map(struct.precedence),
+      "prefix" => Prefix.to_map(struct.prefix),
+      "print" => Print.to_map(struct.print),
+      "printMembers" => PrintMembers.to_map(struct.print_members),
+      "printf" => Printf.to_map(struct.printf),
+      "private" => Private.to_map(struct.private),
+      "protected" => Protected.to_map(struct.protected),
+      "Protocol" => ProtocolClass.to_map(struct.protocol),
+      "public" => Public.to_map(struct.public),
+      "quicktype" => Quicktype.to_map(struct.quicktype),
+      "raise" => Raise.to_map(struct.raise),
+      "range" => RangeClass.to_map(struct.range),
+      "readonly" => Readonly.to_map(struct.readonly),
+      "ref" => Ref.to_map(struct.ref),
+      "RegExp" => RegExp.to_map(struct.reg_exp),
+      "register" => Register.to_map(struct.register),
+      "reinterpret_cast" => ReinterpretCast.to_map(struct.reinterpret_cast),
+      "repeat" => Repeat.to_map(struct.repeat),
+      "require" => Require.to_map(struct.require),
+      "required" => Required.to_map(struct.required),
+      "requires" => Requires.to_map(struct.requires),
+      "restrict" => Restrict.to_map(struct.restrict),
+      "retain" => Retain.to_map(struct.retain),
+      "rethrows" => Rethrows.to_map(struct.rethrows),
+      "return" => Return.to_map(struct.return),
+      "right" => Right.to_map(struct.right),
+      "runtimeType" => RuntimeType.to_map(struct.runtime_type),
+      "s" => S.to_map(struct.s),
+      "sbyte" => Sbyte.to_map(struct.sbyte),
+      "sealed" => Sealed.to_map(struct.sealed),
+      "SEL" => Sel.to_map(struct.sel),
+      "select" => Select.to_map(struct.select),
+      "Self" => Self.to_map(struct.self),
+      "serialize" => Serialize.to_map(struct.serialize),
+      "SerializerProvider" => SerializerProvider.to_map(struct.serializer_provider),
+      "set" => SetClass.to_map(struct.set),
+      "short" => Short.to_map(struct.short),
+      "signed" => Signed.to_map(struct.signed),
+      "SimpleModule" => SimpleModule.to_map(struct.simple_module),
+      "sizeof" => Sizeof.to_map(struct.sizeof),
+      "stackalloc" => Stackalloc.to_map(struct.stackalloc),
+      "Standards" => Standards.to_map(struct.standards),
+      "static" => Static.to_map(struct.static),
+      "static_assert" => StaticAssert.to_map(struct.static_assert),
     }
   end
 
@@ -10821,23 +10959,23 @@ defmodule Sizeof do
   end
 end
 
-defmodule Stackalloc do
-  @enforce_keys [:stackalloc]
-  defstruct [:stackalloc]
+defmodule TrueClass do
+  @enforce_keys [:true_true]
+  defstruct [:true_true]
 
   @type t :: %__MODULE__{
-          stackalloc: integer()
+          true_true: integer()
         }
 
-  def decode_stackalloc(value) when is_integer(value), do: value
-  def decode_stackalloc(_), do: {:error, "Unexpected type when decoding Stackalloc.stackalloc"}
+  def decode_true_true(value) when is_integer(value), do: value
+  def decode_true_true(_), do: {:error, "Unexpected type when decoding TrueClass.true_true"}
 
-  def encode_stackalloc(value) when is_integer(value), do: value
-  def encode_stackalloc(_), do: {:error, "Unexpected type when encoding Stackalloc.stackalloc"}
+  def encode_true_true(value) when is_integer(value), do: value
+  def encode_true_true(_), do: {:error, "Unexpected type when encoding TrueClass.true_true"}
 
   def from_map(m) do
-    %Stackalloc{
-      stackalloc: decode_stackalloc(m["stackalloc"]),
+    %TrueClass{
+      true_true: decode_true_true(m["True"]),
     }
   end
 
@@ -10849,7 +10987,7 @@ defmodule Stackalloc do
 
   def to_map(struct) do
     %{
-      "stackalloc" => struct.stackalloc,
+      "True" => struct.true_true,
     }
   end
 
@@ -10860,23 +10998,23 @@ defmodule Stackalloc do
   end
 end
 
-defmodule Standards do
-  @enforce_keys [:standards]
-  defstruct [:standards]
+defmodule TypeClass do
+  @enforce_keys [:type]
+  defstruct [:type]
 
   @type t :: %__MODULE__{
-          standards: integer()
+          type: integer()
         }
 
-  def decode_standards(value) when is_integer(value), do: value
-  def decode_standards(_), do: {:error, "Unexpected type when decoding Standards.standards"}
+  def decode_type(value) when is_integer(value), do: value
+  def decode_type(_), do: {:error, "Unexpected type when decoding TypeClass.type"}
 
-  def encode_standards(value) when is_integer(value), do: value
-  def encode_standards(_), do: {:error, "Unexpected type when encoding Standards.standards"}
+  def encode_type(value) when is_integer(value), do: value
+  def encode_type(_), do: {:error, "Unexpected type when encoding TypeClass.type"}
 
   def from_map(m) do
-    %Standards{
-      standards: decode_standards(m["Standards"]),
+    %TypeClass{
+      type: decode_type(m["type"]),
     }
   end
 
@@ -10888,7 +11026,7 @@ defmodule Standards do
 
   def to_map(struct) do
     %{
-      "Standards" => struct.standards,
+      "type" => struct.type,
     }
   end
 
@@ -10899,23 +11037,23 @@ defmodule Standards do
   end
 end
 
-defmodule Static do
-  @enforce_keys [:static]
-  defstruct [:static]
+defmodule StaticCast do
+  @enforce_keys [:static_cast]
+  defstruct [:static_cast]
 
   @type t :: %__MODULE__{
-          static: integer()
+          static_cast: integer()
         }
 
-  def decode_static(value) when is_integer(value), do: value
-  def decode_static(_), do: {:error, "Unexpected type when decoding Static.static"}
+  def decode_static_cast(value) when is_integer(value), do: value
+  def decode_static_cast(_), do: {:error, "Unexpected type when decoding StaticCast.static_cast"}
 
-  def encode_static(value) when is_integer(value), do: value
-  def encode_static(_), do: {:error, "Unexpected type when encoding Static.static"}
+  def encode_static_cast(value) when is_integer(value), do: value
+  def encode_static_cast(_), do: {:error, "Unexpected type when encoding StaticCast.static_cast"}
 
   def from_map(m) do
-    %Static{
-      static: decode_static(m["static"]),
+    %StaticCast{
+      static_cast: decode_static_cast(m["static_cast"]),
     }
   end
 
@@ -10927,7 +11065,7 @@ defmodule Static do
 
   def to_map(struct) do
     %{
-      "static" => struct.static,
+      "static_cast" => struct.static_cast,
     }
   end
 
@@ -10938,23 +11076,23 @@ defmodule Static do
   end
 end
 
-defmodule StaticAssert do
-  @enforce_keys [:static_assert]
-  defstruct [:static_assert]
+defmodule StdDeserializer do
+  @enforce_keys [:std_deserializer]
+  defstruct [:std_deserializer]
 
   @type t :: %__MODULE__{
-          static_assert: integer()
+          std_deserializer: integer()
         }
 
-  def decode_static_assert(value) when is_integer(value), do: value
-  def decode_static_assert(_), do: {:error, "Unexpected type when decoding StaticAssert.static_assert"}
+  def decode_std_deserializer(value) when is_integer(value), do: value
+  def decode_std_deserializer(_), do: {:error, "Unexpected type when decoding StdDeserializer.std_deserializer"}
 
-  def encode_static_assert(value) when is_integer(value), do: value
-  def encode_static_assert(_), do: {:error, "Unexpected type when encoding StaticAssert.static_assert"}
+  def encode_std_deserializer(value) when is_integer(value), do: value
+  def encode_std_deserializer(_), do: {:error, "Unexpected type when encoding StdDeserializer.std_deserializer"}
 
   def from_map(m) do
-    %StaticAssert{
-      static_assert: decode_static_assert(m["static_assert"]),
+    %StdDeserializer{
+      std_deserializer: decode_std_deserializer(m["StdDeserializer"]),
     }
   end
 
@@ -10966,7 +11104,7 @@ defmodule StaticAssert do
 
   def to_map(struct) do
     %{
-      "static_assert" => struct.static_assert,
+      "StdDeserializer" => struct.std_deserializer,
     }
   end
 
@@ -10977,23 +11115,23 @@ defmodule StaticAssert do
   end
 end
 
-defmodule StaticCast do
-  @enforce_keys [:static_cast]
-  defstruct [:static_cast]
+defmodule StdSerializer do
+  @enforce_keys [:std_serializer]
+  defstruct [:std_serializer]
 
   @type t :: %__MODULE__{
-          static_cast: integer()
+          std_serializer: integer()
         }
 
-  def decode_static_cast(value) when is_integer(value), do: value
-  def decode_static_cast(_), do: {:error, "Unexpected type when decoding StaticCast.static_cast"}
+  def decode_std_serializer(value) when is_integer(value), do: value
+  def decode_std_serializer(_), do: {:error, "Unexpected type when decoding StdSerializer.std_serializer"}
 
-  def encode_static_cast(value) when is_integer(value), do: value
-  def encode_static_cast(_), do: {:error, "Unexpected type when encoding StaticCast.static_cast"}
+  def encode_std_serializer(value) when is_integer(value), do: value
+  def encode_std_serializer(_), do: {:error, "Unexpected type when encoding StdSerializer.std_serializer"}
 
   def from_map(m) do
-    %StaticCast{
-      static_cast: decode_static_cast(m["static_cast"]),
+    %StdSerializer{
+      std_serializer: decode_std_serializer(m["StdSerializer"]),
     }
   end
 
@@ -11005,7 +11143,7 @@ defmodule StaticCast do
 
   def to_map(struct) do
     %{
-      "static_cast" => struct.static_cast,
+      "StdSerializer" => struct.std_serializer,
     }
   end
 
@@ -11835,7 +11973,7 @@ defmodule Transient do
   end
 end
 
-defmodule Obj4True do
+defmodule Obj5True do
   @enforce_keys [:true_true]
   defstruct [:true_true]
 
@@ -11844,13 +11982,13 @@ defmodule Obj4True do
         }
 
   def decode_true_true(value) when is_integer(value), do: value
-  def decode_true_true(_), do: {:error, "Unexpected type when decoding Obj4True.true_true"}
+  def decode_true_true(_), do: {:error, "Unexpected type when decoding Obj5True.true_true"}
 
   def encode_true_true(value) when is_integer(value), do: value
-  def encode_true_true(_), do: {:error, "Unexpected type when encoding Obj4True.true_true"}
+  def encode_true_true(_), do: {:error, "Unexpected type when encoding Obj5True.true_true"}
 
   def from_map(m) do
-    %Obj4True{
+    %Obj5True{
       true_true: decode_true_true(m["true"]),
     }
   end
@@ -12267,201 +12405,20 @@ end
 defmodule Undefined do
   @enforce_keys [:undefined]
   defstruct [:undefined]
-
-  @type t :: %__MODULE__{
-          undefined: integer()
-        }
-
-  def decode_undefined(value) when is_integer(value), do: value
-  def decode_undefined(_), do: {:error, "Unexpected type when decoding Undefined.undefined"}
-
-  def encode_undefined(value) when is_integer(value), do: value
-  def encode_undefined(_), do: {:error, "Unexpected type when encoding Undefined.undefined"}
-
-  def from_map(m) do
-    %Undefined{
-      undefined: decode_undefined(m["undefined"]),
-    }
-  end
-
-  def from_json(json) do
-    json
-          |> Jason.decode!()
-          |> from_map()
-  end
-
-  def to_map(struct) do
-    %{
-      "undefined" => struct.undefined,
-    }
-  end
-
-  def to_json(struct) do
-    struct
-          |> to_map()
-          |> Jason.encode!()
-  end
-end
-
-defmodule Obj4 do
-  @enforce_keys [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :reg_exp, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :runtime_type, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :standards, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :time_only, :time_only_converter, :to_json, :to_string, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined]
-  defstruct [:dummy, :obj4_self, :obj4_true, :obj4_type, :public, :quicktype, :raise, :range, :readonly, :ref, :reg_exp, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :runtime_type, :s, :sbyte, :sealed, :sel, :select, :self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :standards, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :time_only, :time_only_converter, :to_json, :to_string, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined]
-
-  @type t :: %__MODULE__{
-          dummy: integer(),
-          obj4_self: SelfClass.t(),
-          obj4_true: TrueClass.t(),
-          obj4_type: TypeClass.t(),
-          public: Public.t(),
-          quicktype: Quicktype.t(),
-          raise: Raise.t(),
-          range: RangeClass.t(),
-          readonly: Readonly.t(),
-          ref: Ref.t(),
-          reg_exp: RegExp.t(),
-          register: Register.t(),
-          reinterpret_cast: ReinterpretCast.t(),
-          repeat: Repeat.t(),
-          require: Require.t(),
-          required: Required.t(),
-          requires: Requires.t(),
-          restrict: Restrict.t(),
-          retain: Retain.t(),
-          rethrows: Rethrows.t(),
-          return: Return.t(),
-          right: Right.t(),
-          runtime_type: RuntimeType.t(),
-          s: S.t(),
-          sbyte: Sbyte.t(),
-          sealed: Sealed.t(),
-          sel: Sel.t(),
-          select: Select.t(),
-          self: Self.t(),
-          serialize: Serialize.t(),
-          set: SetClass.t(),
-          short: Short.t(),
-          signed: Signed.t(),
-          sizeof: Sizeof.t(),
-          stackalloc: Stackalloc.t(),
-          standards: Standards.t(),
-          static: Static.t(),
-          static_assert: StaticAssert.t(),
-          static_cast: StaticCast.t(),
-          strictfp: Strictfp.t(),
-          string: StringClass.t(),
-          struct: Struct.t(),
-          subscript: Subscript.t(),
-          super: Super.t(),
-          switch: Switch.t(),
-          symbol: Symbol.t(),
-          synchronized: Synchronized.t(),
-          system: SystemClass.t(),
-          template: Template.t(),
-          then: Then.t(),
-          this: This.t(),
-          thread_local: ThreadLocal.t(),
-          throw: Throw.t(),
-          throws: Throws.t(),
-          time_only: TimeOnly.t(),
-          time_only_converter: TimeOnlyConverter.t(),
-          to_json: ToJSON.t(),
-          to_string: ToString.t(),
-          top_level: TopLevelClass.t(),
-          transient: Transient.t(),
-          true_1: Obj4True.t(),
-          try: Try.t(),
-          type: Type.t(),
-          typealias: Typealias.t(),
-          typedef: Typedef.t(),
-          typeid: Typeid.t(),
-          typename: Typename.t(),
-          typeof: Typeof.t(),
-          uint: Uint.t(),
-          ulong: Ulong.t(),
-          unchecked: Unchecked.t(),
-          undefined: Undefined.t()
+
+  @type t :: %__MODULE__{
+          undefined: integer()
         }
 
-  def decode_dummy(value) when is_integer(value), do: value
-  def decode_dummy(_), do: {:error, "Unexpected type when decoding Obj4.dummy"}
+  def decode_undefined(value) when is_integer(value), do: value
+  def decode_undefined(_), do: {:error, "Unexpected type when decoding Undefined.undefined"}
 
-  def encode_dummy(value) when is_integer(value), do: value
-  def encode_dummy(_), do: {:error, "Unexpected type when encoding Obj4.dummy"}
+  def encode_undefined(value) when is_integer(value), do: value
+  def encode_undefined(_), do: {:error, "Unexpected type when encoding Undefined.undefined"}
 
   def from_map(m) do
-    %Obj4{
-      dummy: decode_dummy(m["dummy"]),
-      obj4_self: SelfClass.from_map(m["self"]),
-      obj4_true: TrueClass.from_map(m["True"]),
-      obj4_type: TypeClass.from_map(m["type"]),
-      public: Public.from_map(m["public"]),
-      quicktype: Quicktype.from_map(m["quicktype"]),
-      raise: Raise.from_map(m["raise"]),
-      range: RangeClass.from_map(m["range"]),
-      readonly: Readonly.from_map(m["readonly"]),
-      ref: Ref.from_map(m["ref"]),
-      reg_exp: RegExp.from_map(m["RegExp"]),
-      register: Register.from_map(m["register"]),
-      reinterpret_cast: ReinterpretCast.from_map(m["reinterpret_cast"]),
-      repeat: Repeat.from_map(m["repeat"]),
-      require: Require.from_map(m["require"]),
-      required: Required.from_map(m["required"]),
-      requires: Requires.from_map(m["requires"]),
-      restrict: Restrict.from_map(m["restrict"]),
-      retain: Retain.from_map(m["retain"]),
-      rethrows: Rethrows.from_map(m["rethrows"]),
-      return: Return.from_map(m["return"]),
-      right: Right.from_map(m["right"]),
-      runtime_type: RuntimeType.from_map(m["runtimeType"]),
-      s: S.from_map(m["s"]),
-      sbyte: Sbyte.from_map(m["sbyte"]),
-      sealed: Sealed.from_map(m["sealed"]),
-      sel: Sel.from_map(m["SEL"]),
-      select: Select.from_map(m["select"]),
-      self: Self.from_map(m["Self"]),
-      serialize: Serialize.from_map(m["serialize"]),
-      set: SetClass.from_map(m["set"]),
-      short: Short.from_map(m["short"]),
-      signed: Signed.from_map(m["signed"]),
-      sizeof: Sizeof.from_map(m["sizeof"]),
-      stackalloc: Stackalloc.from_map(m["stackalloc"]),
-      standards: Standards.from_map(m["Standards"]),
-      static: Static.from_map(m["static"]),
-      static_assert: StaticAssert.from_map(m["static_assert"]),
-      static_cast: StaticCast.from_map(m["static_cast"]),
-      strictfp: Strictfp.from_map(m["strictfp"]),
-      string: StringClass.from_map(m["string"]),
-      struct: Struct.from_map(m["struct"]),
-      subscript: Subscript.from_map(m["subscript"]),
-      super: Super.from_map(m["super"]),
-      switch: Switch.from_map(m["switch"]),
-      symbol: Symbol.from_map(m["symbol"]),
-      synchronized: Synchronized.from_map(m["synchronized"]),
-      system: SystemClass.from_map(m["system"]),
-      template: Template.from_map(m["template"]),
-      then: Then.from_map(m["then"]),
-      this: This.from_map(m["this"]),
-      thread_local: ThreadLocal.from_map(m["thread_local"]),
-      throw: Throw.from_map(m["throw"]),
-      throws: Throws.from_map(m["throws"]),
-      time_only: TimeOnly.from_map(m["TimeOnly"]),
-      time_only_converter: TimeOnlyConverter.from_map(m["TimeOnlyConverter"]),
-      to_json: ToJSON.from_map(m["to_json"]),
-      to_string: ToString.from_map(m["toString"]),
-      top_level: TopLevelClass.from_map(m["top_level"]),
-      transient: Transient.from_map(m["transient"]),
-      true_1: Obj4True.from_map(m["true"]),
-      try: Try.from_map(m["try"]),
-      type: Type.from_map(m["Type"]),
-      typealias: Typealias.from_map(m["typealias"]),
-      typedef: Typedef.from_map(m["typedef"]),
-      typeid: Typeid.from_map(m["typeid"]),
-      typename: Typename.from_map(m["typename"]),
-      typeof: Typeof.from_map(m["typeof"]),
-      uint: Uint.from_map(m["uint"]),
-      ulong: Ulong.from_map(m["ulong"]),
-      unchecked: Unchecked.from_map(m["unchecked"]),
-      undefined: Undefined.from_map(m["undefined"]),
+    %Undefined{
+      undefined: decode_undefined(m["undefined"]),
     }
   end
 
@@ -12473,78 +12430,7 @@ defmodule Obj4 do
 
   def to_map(struct) do
     %{
-      "dummy" => struct.dummy,
-      "self" => SelfClass.to_map(struct.obj4_self),
-      "True" => TrueClass.to_map(struct.obj4_true),
-      "type" => TypeClass.to_map(struct.obj4_type),
-      "public" => Public.to_map(struct.public),
-      "quicktype" => Quicktype.to_map(struct.quicktype),
-      "raise" => Raise.to_map(struct.raise),
-      "range" => RangeClass.to_map(struct.range),
-      "readonly" => Readonly.to_map(struct.readonly),
-      "ref" => Ref.to_map(struct.ref),
-      "RegExp" => RegExp.to_map(struct.reg_exp),
-      "register" => Register.to_map(struct.register),
-      "reinterpret_cast" => ReinterpretCast.to_map(struct.reinterpret_cast),
-      "repeat" => Repeat.to_map(struct.repeat),
-      "require" => Require.to_map(struct.require),
-      "required" => Required.to_map(struct.required),
-      "requires" => Requires.to_map(struct.requires),
-      "restrict" => Restrict.to_map(struct.restrict),
-      "retain" => Retain.to_map(struct.retain),
-      "rethrows" => Rethrows.to_map(struct.rethrows),
-      "return" => Return.to_map(struct.return),
-      "right" => Right.to_map(struct.right),
-      "runtimeType" => RuntimeType.to_map(struct.runtime_type),
-      "s" => S.to_map(struct.s),
-      "sbyte" => Sbyte.to_map(struct.sbyte),
-      "sealed" => Sealed.to_map(struct.sealed),
-      "SEL" => Sel.to_map(struct.sel),
-      "select" => Select.to_map(struct.select),
-      "Self" => Self.to_map(struct.self),
-      "serialize" => Serialize.to_map(struct.serialize),
-      "set" => SetClass.to_map(struct.set),
-      "short" => Short.to_map(struct.short),
-      "signed" => Signed.to_map(struct.signed),
-      "sizeof" => Sizeof.to_map(struct.sizeof),
-      "stackalloc" => Stackalloc.to_map(struct.stackalloc),
-      "Standards" => Standards.to_map(struct.standards),
-      "static" => Static.to_map(struct.static),
-      "static_assert" => StaticAssert.to_map(struct.static_assert),
-      "static_cast" => StaticCast.to_map(struct.static_cast),
-      "strictfp" => Strictfp.to_map(struct.strictfp),
-      "string" => StringClass.to_map(struct.string),
-      "struct" => Struct.to_map(struct.struct),
-      "subscript" => Subscript.to_map(struct.subscript),
-      "super" => Super.to_map(struct.super),
-      "switch" => Switch.to_map(struct.switch),
-      "symbol" => Symbol.to_map(struct.symbol),
-      "synchronized" => Synchronized.to_map(struct.synchronized),
-      "system" => SystemClass.to_map(struct.system),
-      "template" => Template.to_map(struct.template),
-      "then" => Then.to_map(struct.then),
-      "this" => This.to_map(struct.this),
-      "thread_local" => ThreadLocal.to_map(struct.thread_local),
-      "throw" => Throw.to_map(struct.throw),
-      "throws" => Throws.to_map(struct.throws),
-      "TimeOnly" => TimeOnly.to_map(struct.time_only),
-      "TimeOnlyConverter" => TimeOnlyConverter.to_map(struct.time_only_converter),
-      "to_json" => ToJSON.to_map(struct.to_json),
-      "toString" => ToString.to_map(struct.to_string),
-      "top_level" => TopLevelClass.to_map(struct.top_level),
-      "transient" => Transient.to_map(struct.transient),
-      "true" => Obj4True.to_map(struct.true_1),
-      "try" => Try.to_map(struct.try),
-      "Type" => Type.to_map(struct.type),
-      "typealias" => Typealias.to_map(struct.typealias),
-      "typedef" => Typedef.to_map(struct.typedef),
-      "typeid" => Typeid.to_map(struct.typeid),
-      "typename" => Typename.to_map(struct.typename),
-      "typeof" => Typeof.to_map(struct.typeof),
-      "uint" => Uint.to_map(struct.uint),
-      "ulong" => Ulong.to_map(struct.ulong),
-      "unchecked" => Unchecked.to_map(struct.unchecked),
-      "undefined" => Undefined.to_map(struct.undefined),
+      "undefined" => struct.undefined,
     }
   end
 
@@ -13453,11 +13339,49 @@ defmodule Yield do
 end
 
 defmodule Obj5 do
-  @enforce_keys [:dummy, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :utf8_json_reader, :utf8_json_writer, :uuid, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
-  defstruct [:dummy, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :utf8_json_reader, :utf8_json_writer, :uuid, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
+  @enforce_keys [:dummy, :obj5_true, :obj5_type, :static_cast, :std_deserializer, :std_serializer, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :time_only, :time_only_converter, :to_json, :to_string, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :utf8_json_reader, :utf8_json_writer, :uuid, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
+  defstruct [:dummy, :obj5_true, :obj5_type, :static_cast, :std_deserializer, :std_serializer, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :time_only, :time_only_converter, :to_json, :to_string, :top_level, :transient, :true_1, :try, :type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :utf8_json_reader, :utf8_json_writer, :uuid, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
 
   @type t :: %__MODULE__{
           dummy: integer(),
+          obj5_true: TrueClass.t(),
+          obj5_type: TypeClass.t(),
+          static_cast: StaticCast.t(),
+          std_deserializer: StdDeserializer.t(),
+          std_serializer: StdSerializer.t(),
+          strictfp: Strictfp.t(),
+          string: StringClass.t(),
+          struct: Struct.t(),
+          subscript: Subscript.t(),
+          super: Super.t(),
+          switch: Switch.t(),
+          symbol: Symbol.t(),
+          synchronized: Synchronized.t(),
+          system: SystemClass.t(),
+          template: Template.t(),
+          then: Then.t(),
+          this: This.t(),
+          thread_local: ThreadLocal.t(),
+          throw: Throw.t(),
+          throws: Throws.t(),
+          time_only: TimeOnly.t(),
+          time_only_converter: TimeOnlyConverter.t(),
+          to_json: ToJSON.t(),
+          to_string: ToString.t(),
+          top_level: TopLevelClass.t(),
+          transient: Transient.t(),
+          true_1: Obj5True.t(),
+          try: Try.t(),
+          type: Type.t(),
+          typealias: Typealias.t(),
+          typedef: Typedef.t(),
+          typeid: Typeid.t(),
+          typename: Typename.t(),
+          typeof: Typeof.t(),
+          uint: Uint.t(),
+          ulong: Ulong.t(),
+          unchecked: Unchecked.t(),
+          undefined: Undefined.t(),
           union: Union.t(),
           unowned: Unowned.t(),
           unsafe: Unsafe.t(),
@@ -13492,6 +13416,44 @@ defmodule Obj5 do
   def from_map(m) do
     %Obj5{
       dummy: decode_dummy(m["dummy"]),
+      obj5_true: TrueClass.from_map(m["True"]),
+      obj5_type: TypeClass.from_map(m["type"]),
+      static_cast: StaticCast.from_map(m["static_cast"]),
+      std_deserializer: StdDeserializer.from_map(m["StdDeserializer"]),
+      std_serializer: StdSerializer.from_map(m["StdSerializer"]),
+      strictfp: Strictfp.from_map(m["strictfp"]),
+      string: StringClass.from_map(m["string"]),
+      struct: Struct.from_map(m["struct"]),
+      subscript: Subscript.from_map(m["subscript"]),
+      super: Super.from_map(m["super"]),
+      switch: Switch.from_map(m["switch"]),
+      symbol: Symbol.from_map(m["symbol"]),
+      synchronized: Synchronized.from_map(m["synchronized"]),
+      system: SystemClass.from_map(m["system"]),
+      template: Template.from_map(m["template"]),
+      then: Then.from_map(m["then"]),
+      this: This.from_map(m["this"]),
+      thread_local: ThreadLocal.from_map(m["thread_local"]),
+      throw: Throw.from_map(m["throw"]),
+      throws: Throws.from_map(m["throws"]),
+      time_only: TimeOnly.from_map(m["TimeOnly"]),
+      time_only_converter: TimeOnlyConverter.from_map(m["TimeOnlyConverter"]),
+      to_json: ToJSON.from_map(m["to_json"]),
+      to_string: ToString.from_map(m["toString"]),
+      top_level: TopLevelClass.from_map(m["top_level"]),
+      transient: Transient.from_map(m["transient"]),
+      true_1: Obj5True.from_map(m["true"]),
+      try: Try.from_map(m["try"]),
+      type: Type.from_map(m["Type"]),
+      typealias: Typealias.from_map(m["typealias"]),
+      typedef: Typedef.from_map(m["typedef"]),
+      typeid: Typeid.from_map(m["typeid"]),
+      typename: Typename.from_map(m["typename"]),
+      typeof: Typeof.from_map(m["typeof"]),
+      uint: Uint.from_map(m["uint"]),
+      ulong: Ulong.from_map(m["ulong"]),
+      unchecked: Unchecked.from_map(m["unchecked"]),
+      undefined: Undefined.from_map(m["undefined"]),
       union: Union.from_map(m["union"]),
       unowned: Unowned.from_map(m["unowned"]),
       unsafe: Unsafe.from_map(m["unsafe"]),
@@ -13527,6 +13489,44 @@ defmodule Obj5 do
   def to_map(struct) do
     %{
       "dummy" => struct.dummy,
+      "True" => TrueClass.to_map(struct.obj5_true),
+      "type" => TypeClass.to_map(struct.obj5_type),
+      "static_cast" => StaticCast.to_map(struct.static_cast),
+      "StdDeserializer" => StdDeserializer.to_map(struct.std_deserializer),
+      "StdSerializer" => StdSerializer.to_map(struct.std_serializer),
+      "strictfp" => Strictfp.to_map(struct.strictfp),
+      "string" => StringClass.to_map(struct.string),
+      "struct" => Struct.to_map(struct.struct),
+      "subscript" => Subscript.to_map(struct.subscript),
+      "super" => Super.to_map(struct.super),
+      "switch" => Switch.to_map(struct.switch),
+      "symbol" => Symbol.to_map(struct.symbol),
+      "synchronized" => Synchronized.to_map(struct.synchronized),
+      "system" => SystemClass.to_map(struct.system),
+      "template" => Template.to_map(struct.template),
+      "then" => Then.to_map(struct.then),
+      "this" => This.to_map(struct.this),
+      "thread_local" => ThreadLocal.to_map(struct.thread_local),
+      "throw" => Throw.to_map(struct.throw),
+      "throws" => Throws.to_map(struct.throws),
+      "TimeOnly" => TimeOnly.to_map(struct.time_only),
+      "TimeOnlyConverter" => TimeOnlyConverter.to_map(struct.time_only_converter),
+      "to_json" => ToJSON.to_map(struct.to_json),
+      "toString" => ToString.to_map(struct.to_string),
+      "top_level" => TopLevelClass.to_map(struct.top_level),
+      "transient" => Transient.to_map(struct.transient),
+      "true" => Obj5True.to_map(struct.true_1),
+      "try" => Try.to_map(struct.try),
+      "Type" => Type.to_map(struct.type),
+      "typealias" => Typealias.to_map(struct.typealias),
+      "typedef" => Typedef.to_map(struct.typedef),
+      "typeid" => Typeid.to_map(struct.typeid),
+      "typename" => Typename.to_map(struct.typename),
+      "typeof" => Typeof.to_map(struct.typeof),
+      "uint" => Uint.to_map(struct.uint),
+      "ulong" => Ulong.to_map(struct.ulong),
+      "unchecked" => Unchecked.to_map(struct.unchecked),
+      "undefined" => Undefined.to_map(struct.undefined),
       "union" => Union.to_map(struct.union),
       "unowned" => Unowned.to_map(struct.unowned),
       "unsafe" => Unsafe.to_map(struct.unsafe),
diff --git a/base/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
index acd0331..c64af91 100644
--- a/base/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
@@ -71,13 +71,6 @@ module QuickType exposing
     , DateOnly
     , DateOnlyConverter
     , DateParseHandling
-    , DateTime
-    , DateTimeStyles
-    , Debugger
-    , Decimal
-    , Declare
-    , Decltype
-    , DecodeString
     , Empty
     , Imaginery
     , AnyClass
@@ -88,6 +81,13 @@ module QuickType exposing
     , ClassClass
     , Obj1Bool
     , Obj2
+    , DateTime
+    , DateTimeStyles
+    , Debugger
+    , Decimal
+    , Declare
+    , Decltype
+    , DecodeString
     , Def
     , Default
     , Defer
@@ -140,6 +140,12 @@ module QuickType exposing
     , Imp
     , Implements
     , Implicit
+    , Else
+    , Exposing
+    , Obj2False
+    , FloatClass
+    , If
+    , Obj3
     , Indirect
     , Init
     , Inline
@@ -147,16 +153,6 @@ module QuickType exposing
     , Instanceof
     , Interface
     , Internal
-    , Else
-    , Exposing
-    , Obj2False
-    , FloatClass
-    , If
-    , Import
-    , In
-    , Infix
-    , IntClass
-    , Obj3
     , Is
     , ISODateTimeOffsetConverter
     , Iterable
@@ -206,15 +202,21 @@ module QuickType exposing
     , NSError
     , NSString
     , Null
-    , Nullptr
-    , Number
+    , Import
+    , In
+    , Infix
+    , IntClass
     , Let
     , Module
     , NoneClass
     , NullClass
+    , Obj4
+    , Nullptr
+    , Number
     , Of
     , Port
     , ProtocolClass
+    , SelfClass
     , Object
     , ObjectMapper
     , Oneway
@@ -237,18 +239,7 @@ module QuickType exposing
     , Private
     , Protected
     , Protocol
-    , SerializerProvider
-    , SimpleModule
-    , StdDeserializer
-    , StdSerializer
-    , Obj4
-    , SelfClass
-    , StringClass
-    , Then
-    , Obj4True
-    , Type
     , Public
-    , TypeClass
     , Quicktype
     , Raise
     , Range
@@ -274,15 +265,26 @@ module QuickType exposing
     , Select
     , Self
     , Serialize
+    , SerializerProvider
     , Set
     , Short
     , Signed
+    , SimpleModule
     , Sizeof
     , Stackalloc
     , Standards
     , Static
     , StaticAssert
+    , Obj5
+    , StringClass
+    , Then
+    , Obj5True
+    , Type
+    , Where
+    , TypeClass
     , StaticCast
+    , StdDeserializer
+    , StdSerializer
     , Strictfp
     , Struct
     , Subscript
@@ -313,8 +315,6 @@ module QuickType exposing
     , Ulong
     , Unchecked
     , Undefined
-    , Obj5
-    , Where
     , Union
     , Unowned
     , Unsafe
@@ -410,13 +410,6 @@ type alias Obj1 =
     , dateOnly : DateOnly
     , dateOnlyConverter : DateOnlyConverter
     , dateParseHandling : DateParseHandling
-    , dateTime : DateTime
-    , dateTimeStyles : DateTimeStyles
-    , debugger : Debugger
-    , decimal : Decimal
-    , declare : Declare
-    , decltype : Decltype
-    , decodeString : DecodeString
     , dummy : Int
     , empty : Empty
     , imaginery : Imaginery
@@ -649,34 +642,6 @@ type alias DateParseHandling =
     { dateParseHandling : Int
     }
 
-type alias DateTime =
-    { dateTime : String
-    }
-
-type alias DateTimeStyles =
-    { dateTimeStyles : Int
-    }
-
-type alias Debugger =
-    { debugger : Int
-    }
-
-type alias Decimal =
-    { decimal : Int
-    }
-
-type alias Declare =
-    { declare : Int
-    }
-
-type alias Decltype =
-    { decltype : Int
-    }
-
-type alias DecodeString =
-    { decodeString : Int
-    }
-
 type alias Empty =
     { empty : Int
     }
@@ -714,7 +679,14 @@ type alias Obj1Bool =
     }
 
 type alias Obj2 =
-    { def : Def
+    { dateTime : DateTime
+    , dateTimeStyles : DateTimeStyles
+    , debugger : Debugger
+    , decimal : Decimal
+    , declare : Declare
+    , decltype : Decltype
+    , decodeString : DecodeString
+    , def : Def
     , default : Default
     , defer : Defer
     , deinit : Deinit
@@ -767,22 +739,39 @@ type alias Obj2 =
     , imp : Imp
     , implements : Implements
     , implicit : Implicit
-    , indirect : Indirect
-    , init : Init
-    , inline : Inline
-    , inout : Inout
-    , instanceof : Instanceof
-    , interface : Interface
-    , internal : Internal
     , obj2Else : Else
     , obj2Exposing : Exposing
     , obj2False : Obj2False
     , obj2Float : FloatClass
     , obj2If : If
-    , obj2Import : Import
-    , obj2In : In
-    , obj2Infix : Infix
-    , obj2Int : IntClass
+    }
+
+type alias DateTime =
+    { dateTime : String
+    }
+
+type alias DateTimeStyles =
+    { dateTimeStyles : Int
+    }
+
+type alias Debugger =
+    { debugger : Int
+    }
+
+type alias Decimal =
+    { decimal : Int
+    }
+
+type alias Declare =
+    { declare : Int
+    }
+
+type alias Decltype =
+    { decltype : Int
+    }
+
+type alias DecodeString =
+    { decodeString : Int
     }
 
 type alias Def =
@@ -997,34 +986,6 @@ type alias Implicit =
     { implicit : Int
     }
 
-type alias Indirect =
-    { indirect : Int
-    }
-
-type alias Init =
-    { init : Int
-    }
-
-type alias Inline =
-    { inline : Int
-    }
-
-type alias Inout =
-    { inout : Int
-    }
-
-type alias Instanceof =
-    { instanceof : Int
-    }
-
-type alias Interface =
-    { interface : Int
-    }
-
-type alias Internal =
-    { internal : Int
-    }
-
 type alias Else =
     { elseElse : Int
     }
@@ -1045,24 +1006,15 @@ type alias If =
     { ifIf : Int
     }
 
-type alias Import =
-    { importImport : Int
-    }
-
-type alias In =
-    { inIn : Int
-    }
-
-type alias Infix =
-    { infixInfix : Int
-    }
-
-type alias IntClass =
-    { intInt : Int
-    }
-
 type alias Obj3 =
     { dummy : Int
+    , indirect : Indirect
+    , init : Init
+    , inline : Inline
+    , inout : Inout
+    , instanceof : Instanceof
+    , interface : Interface
+    , internal : Internal
     , is : Is
     , isoDateTimeOffsetConverter : ISODateTimeOffsetConverter
     , iterable : Iterable
@@ -1112,41 +1064,42 @@ type alias Obj3 =
     , nsError : NSError
     , nsString : NSString
     , null : Null
-    , nullptr : Nullptr
-    , number : Number
+    , obj3Import : Import
+    , obj3In : In
+    , obj3Infix : Infix
+    , obj3Int : IntClass
     , obj3Let : Let
     , obj3Module : Module
     , obj3None : NoneClass
     , obj3Null : NullClass
-    , obj3Of : Of
-    , obj3Port : Port
-    , obj3Protocol : ProtocolClass
-    , object : Object
-    , objectMapper : ObjectMapper
-    , oneway : Oneway
-    , open : Open
-    , operator : Operator
-    , optional : Optional
-    , or : Or
-    , orEq : OrEq
-    , out : Out
-    , override : Override
-    , package : Package
-    , params : Params
-    , pass : Pass
-    , postfix : Postfix
-    , precedence : Precedence
-    , prefix : Prefix
-    , print : Print
-    , printMembers : PrintMembers
-    , printf : Printf
-    , private : Private
-    , protected : Protected
-    , protocol : Protocol
-    , serializerProvider : SerializerProvider
-    , simpleModule : SimpleModule
-    , stdDeserializer : StdDeserializer
-    , stdSerializer : StdSerializer
+    }
+
+type alias Indirect =
+    { indirect : Int
+    }
+
+type alias Init =
+    { init : Int
+    }
+
+type alias Inline =
+    { inline : Int
+    }
+
+type alias Inout =
+    { inout : Int
+    }
+
+type alias Instanceof =
+    { instanceof : Int
+    }
+
+type alias Interface =
+    { interface : Int
+    }
+
+type alias Internal =
+    { internal : Int
     }
 
 type alias Is =
@@ -1345,16 +1298,24 @@ type alias Null =
     { null : Int
     }
 
-type alias Nullptr =
-    { nullptr : Int
+type alias Import =
+    { importImport : Int
     }
 
-type alias Number =
-    { number : Int
+type alias In =
+    { inIn : Int
     }
 
-type alias Let =
-    { letLet : Int
+type alias Infix =
+    { infixInfix : Int
+    }
+
+type alias IntClass =
+    { intInt : Int
+    }
+
+type alias Let =
+    { letLet : Int
     }
 
 type alias Module =
@@ -1369,6 +1330,82 @@ type alias NullClass =
     { null : Int
     }
 
+type alias Obj4 =
+    { dummy : Int
+    , nullptr : Nullptr
+    , number : Number
+    , obj4Of : Of
+    , obj4Port : Port
+    , obj4Protocol : ProtocolClass
+    , obj4Self : SelfClass
+    , object : Object
+    , objectMapper : ObjectMapper
+    , oneway : Oneway
+    , open : Open
+    , operator : Operator
+    , optional : Optional
+    , or : Or
+    , orEq : OrEq
+    , out : Out
+    , override : Override
+    , package : Package
+    , params : Params
+    , pass : Pass
+    , postfix : Postfix
+    , precedence : Precedence
+    , prefix : Prefix
+    , print : Print
+    , printMembers : PrintMembers
+    , printf : Printf
+    , private : Private
+    , protected : Protected
+    , protocol : Protocol
+    , public : Public
+    , quicktype : Quicktype
+    , raise : Raise
+    , range : Range
+    , readonly : Readonly
+    , ref : Ref
+    , regExp : RegExp
+    , register : Register
+    , reinterpretCast : ReinterpretCast
+    , repeat : Repeat
+    , require : Require
+    , required : Required
+    , requires : Requires
+    , restrict : Restrict
+    , retain : Retain
+    , rethrows : Rethrows
+    , return : Return
+    , right : Right
+    , runtimeType : RuntimeType
+    , s : S
+    , sbyte : Sbyte
+    , sealed : Sealed
+    , sel : Sel
+    , select : Select
+    , self : Self
+    , serialize : Serialize
+    , serializerProvider : SerializerProvider
+    , set : Set
+    , short : Short
+    , signed : Signed
+    , simpleModule : SimpleModule
+    , sizeof : Sizeof
+    , stackalloc : Stackalloc
+    , standards : Standards
+    , static : Static
+    , staticAssert : StaticAssert
+    }
+
+type alias Nullptr =
+    { nullptr : Int
+    }
+
+type alias Number =
+    { number : Int
+    }
+
 type alias Of =
     { ofOf : Int
     }
@@ -1381,6 +1418,10 @@ type alias ProtocolClass =
     { protocol : Int
     }
 
+type alias SelfClass =
+    { self : Int
+    }
+
 type alias Object =
     { object : Int
     }
@@ -1469,125 +1510,10 @@ type alias Protocol =
     { protocol : Int
     }
 
-type alias SerializerProvider =
-    { serializerProvider : Int
-    }
-
-type alias SimpleModule =
-    { simpleModule : Int
-    }
-
-type alias StdDeserializer =
-    { stdDeserializer : Int
-    }
-
-type alias StdSerializer =
-    { stdSerializer : Int
-    }
-
-type alias Obj4 =
-    { dummy : Int
-    , obj4Self : SelfClass
-    , obj4String : StringClass
-    , obj4Then : Then
-    , obj4True : Obj4True
-    , obj4Type : Type
-    , public : Public
-    , purpleType : TypeClass
-    , quicktype : Quicktype
-    , raise : Raise
-    , range : Range
-    , readonly : Readonly
-    , ref : Ref
-    , regExp : RegExp
-    , register : Register
-    , reinterpretCast : ReinterpretCast
-    , repeat : Repeat
-    , require : Require
-    , required : Required
-    , requires : Requires
-    , restrict : Restrict
-    , retain : Retain
-    , rethrows : Rethrows
-    , return : Return
-    , right : Right
-    , runtimeType : RuntimeType
-    , s : S
-    , sbyte : Sbyte
-    , sealed : Sealed
-    , sel : Sel
-    , select : Select
-    , self : Self
-    , serialize : Serialize
-    , set : Set
-    , short : Short
-    , signed : Signed
-    , sizeof : Sizeof
-    , stackalloc : Stackalloc
-    , standards : Standards
-    , static : Static
-    , staticAssert : StaticAssert
-    , staticCast : StaticCast
-    , strictfp : Strictfp
-    , struct : Struct
-    , subscript : Subscript
-    , super : Super
-    , switch : Switch
-    , symbol : Symbol
-    , synchronized : Synchronized
-    , system : System
-    , template : Template
-    , this : This
-    , threadLocal : ThreadLocal
-    , throw : Throw
-    , throws : Throws
-    , timeOnly : TimeOnly
-    , timeOnlyConverter : TimeOnlyConverter
-    , toJSON : ToJSON
-    , toString : ToString
-    , topLevel : TopLevel
-    , transient : Transient
-    , true : TrueClass
-    , try : Try
-    , typealias : Typealias
-    , typedef : Typedef
-    , typeid : Typeid
-    , typename : Typename
-    , typeof : Typeof
-    , uint : Uint
-    , ulong : Ulong
-    , unchecked : Unchecked
-    , undefined : Undefined
-    }
-
-type alias SelfClass =
-    { self : Int
-    }
-
-type alias StringClass =
-    { stringString : Int
-    }
-
-type alias Then =
-    { thenThen : Int
-    }
-
-type alias Obj4True =
-    { true : Int
-    }
-
-type alias Type =
-    { typeType : Int
-    }
-
 type alias Public =
     { public : Int
     }
 
-type alias TypeClass =
-    { typeType : Int
-    }
-
 type alias Quicktype =
     { quicktype : Int
     }
@@ -1688,6 +1614,10 @@ type alias Serialize =
     { serialize : Int
     }
 
+type alias SerializerProvider =
+    { serializerProvider : Int
+    }
+
 type alias Set =
     { set : Int
     }
@@ -1700,6 +1630,10 @@ type alias Signed =
     { signed : Int
     }
 
+type alias SimpleModule =
+    { simpleModule : Int
+    }
+
 type alias Sizeof =
     { sizeof : Int
     }
@@ -1720,59 +1654,156 @@ type alias StaticAssert =
     { staticAssert : Int
     }
 
-type alias StaticCast =
-    { staticCast : Int
-    }
-
-type alias Strictfp =
-    { strictfp : Int
-    }
-
-type alias Struct =
-    { struct : Int
-    }
-
-type alias Subscript =
-    { subscript : Int
-    }
-
-type alias Super =
-    { super : Int
-    }
-
-type alias Switch =
-    { switch : Int
-    }
-
-type alias Symbol =
-    { symbol : Int
-    }
-
-type alias Synchronized =
-    { synchronized : Int
-    }
-
-type alias System =
-    { system : Int
-    }
-
-type alias Template =
-    { template : Int
-    }
-
-type alias This =
-    { this : Int
-    }
-
-type alias ThreadLocal =
-    { threadLocal : Int
-    }
-
-type alias Throw =
-    { throw : Int
-    }
-
-type alias Throws =
+type alias Obj5 =
+    { dummy : Int
+    , obj5String : StringClass
+    , obj5Then : Then
+    , obj5True : Obj5True
+    , obj5Type : Type
+    , obj5Where : Where
+    , purpleType : TypeClass
+    , staticCast : StaticCast
+    , stdDeserializer : StdDeserializer
+    , stdSerializer : StdSerializer
+    , strictfp : Strictfp
+    , struct : Struct
+    , subscript : Subscript
+    , super : Super
+    , switch : Switch
+    , symbol : Symbol
+    , synchronized : Synchronized
+    , system : System
+    , template : Template
+    , this : This
+    , threadLocal : ThreadLocal
+    , throw : Throw
+    , throws : Throws
+    , timeOnly : TimeOnly
+    , timeOnlyConverter : TimeOnlyConverter
+    , toJSON : ToJSON
+    , toString : ToString
+    , topLevel : TopLevel
+    , transient : Transient
+    , true : TrueClass
+    , try : Try
+    , typealias : Typealias
+    , typedef : Typedef
+    , typeid : Typeid
+    , typename : Typename
+    , typeof : Typeof
+    , uint : Uint
+    , ulong : Ulong
+    , unchecked : Unchecked
+    , undefined : Undefined
+    , union : Union
+    , unowned : Unowned
+    , unsafe : Unsafe
+    , unsigned : Unsigned
+    , ushort : Ushort
+    , using : Using
+    , utf8JSONReader : Utf8JSONReader
+    , utf8JSONWriter : Utf8JSONWriter
+    , uuid : UUID
+    , var : Var
+    , virtual : Virtual
+    , void : Void
+    , volatile : Volatile
+    , wcharT : WcharT
+    , weak : Weak
+    , while : While
+    , willSet : WillSet
+    , with : With
+    , xor : Xor
+    , xorEq : XorEq
+    , yes : Yes
+    , yield : Yield
+    }
+
+type alias StringClass =
+    { stringString : Int
+    }
+
+type alias Then =
+    { thenThen : Int
+    }
+
+type alias Obj5True =
+    { true : Int
+    }
+
+type alias Type =
+    { typeType : Int
+    }
+
+type alias Where =
+    { whereWhere : Int
+    }
+
+type alias TypeClass =
+    { typeType : Int
+    }
+
+type alias StaticCast =
+    { staticCast : Int
+    }
+
+type alias StdDeserializer =
+    { stdDeserializer : Int
+    }
+
+type alias StdSerializer =
+    { stdSerializer : Int
+    }
+
+type alias Strictfp =
+    { strictfp : Int
+    }
+
+type alias Struct =
+    { struct : Int
+    }
+
+type alias Subscript =
+    { subscript : Int
+    }
+
+type alias Super =
+    { super : Int
+    }
+
+type alias Switch =
+    { switch : Int
+    }
+
+type alias Symbol =
+    { symbol : Int
+    }
+
+type alias Synchronized =
+    { synchronized : Int
+    }
+
+type alias System =
+    { system : Int
+    }
+
+type alias Template =
+    { template : Int
+    }
+
+type alias This =
+    { this : Int
+    }
+
+type alias ThreadLocal =
+    { threadLocal : Int
+    }
+
+type alias Throw =
+    { throw : Int
+    }
+
+type alias Throws =
     { throws : Int
     }
 
@@ -1844,37 +1875,6 @@ type alias Undefined =
     { undefined : Int
     }
 
-type alias Obj5 =
-    { dummy : Int
-    , obj5Where : Where
-    , union : Union
-    , unowned : Unowned
-    , unsafe : Unsafe
-    , unsigned : Unsigned
-    , ushort : Ushort
-    , using : Using
-    , utf8JSONReader : Utf8JSONReader
-    , utf8JSONWriter : Utf8JSONWriter
-    , uuid : UUID
-    , var : Var
-    , virtual : Virtual
-    , void : Void
-    , volatile : Volatile
-    , wcharT : WcharT
-    , weak : Weak
-    , while : While
-    , willSet : WillSet
-    , with : With
-    , xor : Xor
-    , xorEq : XorEq
-    , yes : Yes
-    , yield : Yield
-    }
-
-type alias Where =
-    { whereWhere : Int
-    }
-
 type alias Union =
     { union : Int
     }
@@ -2053,13 +2053,6 @@ obj1 =
         |> Jpipe.required "DateOnly" dateOnly
         |> Jpipe.required "DateOnlyConverter" dateOnlyConverter
         |> Jpipe.required "date_parse_handling" dateParseHandling
-        |> Jpipe.required "DateTime" dateTime
-        |> Jpipe.required "DateTimeStyles" dateTimeStyles
-        |> Jpipe.required "debugger" debugger
-        |> Jpipe.required "decimal" decimal
-        |> Jpipe.required "declare" declare
-        |> Jpipe.required "decltype" decltype
-        |> Jpipe.required "decode_string" decodeString
         |> Jpipe.required "dummy" Jdec.int
         |> Jpipe.required "_" empty
         |> Jpipe.required "_Imaginery" imaginery
@@ -2129,13 +2122,6 @@ encodeObj1 x =
         , ("DateOnly", encodeDateOnly x.dateOnly)
         , ("DateOnlyConverter", encodeDateOnlyConverter x.dateOnlyConverter)
         , ("date_parse_handling", encodeDateParseHandling x.dateParseHandling)
-        , ("DateTime", encodeDateTime x.dateTime)
-        , ("DateTimeStyles", encodeDateTimeStyles x.dateTimeStyles)
-        , ("debugger", encodeDebugger x.debugger)
-        , ("decimal", encodeDecimal x.decimal)
-        , ("declare", encodeDeclare x.declare)
-        , ("decltype", encodeDecltype x.decltype)
-        , ("decode_string", encodeDecodeString x.decodeString)
         , ("dummy", Jenc.int x.dummy)
         , ("_", encodeEmpty x.empty)
         , ("_Imaginery", encodeImaginery x.imaginery)
@@ -2753,131 +2739,54 @@ encodeDateParseHandling x =
         [ ("date_parse_handling", Jenc.int x.dateParseHandling)
         ]
 
-dateTime : Jdec.Decoder DateTime
-dateTime =
-    Jdec.succeed DateTime
-        |> Jpipe.required "DateTime" Jdec.string
+empty : Jdec.Decoder Empty
+empty =
+    Jdec.succeed Empty
+        |> Jpipe.required "_" Jdec.int
 
-encodeDateTime : DateTime -> Jenc.Value
-encodeDateTime x =
+encodeEmpty : Empty -> Jenc.Value
+encodeEmpty x =
     Jenc.object
-        [ ("DateTime", Jenc.string x.dateTime)
+        [ ("_", Jenc.int x.empty)
         ]
 
-dateTimeStyles : Jdec.Decoder DateTimeStyles
-dateTimeStyles =
-    Jdec.succeed DateTimeStyles
-        |> Jpipe.required "DateTimeStyles" Jdec.int
+imaginery : Jdec.Decoder Imaginery
+imaginery =
+    Jdec.succeed Imaginery
+        |> Jpipe.required "_Imaginery" Jdec.int
 
-encodeDateTimeStyles : DateTimeStyles -> Jenc.Value
-encodeDateTimeStyles x =
+encodeImaginery : Imaginery -> Jenc.Value
+encodeImaginery x =
     Jenc.object
-        [ ("DateTimeStyles", Jenc.int x.dateTimeStyles)
+        [ ("_Imaginery", Jenc.int x.imaginery)
         ]
 
-debugger : Jdec.Decoder Debugger
-debugger =
-    Jdec.succeed Debugger
-        |> Jpipe.required "debugger" Jdec.int
+anyClass : Jdec.Decoder AnyClass
+anyClass =
+    Jdec.succeed AnyClass
+        |> Jpipe.required "any" Jdec.int
 
-encodeDebugger : Debugger -> Jenc.Value
-encodeDebugger x =
+encodeAnyClass : AnyClass -> Jenc.Value
+encodeAnyClass x =
     Jenc.object
-        [ ("debugger", Jenc.int x.debugger)
+        [ ("any", Jenc.int x.any)
         ]
 
-decimal : Jdec.Decoder Decimal
-decimal =
-    Jdec.succeed Decimal
-        |> Jpipe.required "decimal" Jdec.int
+purpleAs : Jdec.Decoder As
+purpleAs =
+    Jdec.succeed As
+        |> Jpipe.required "as" Jdec.int
 
-encodeDecimal : Decimal -> Jenc.Value
-encodeDecimal x =
+encodeAs : As -> Jenc.Value
+encodeAs x =
     Jenc.object
-        [ ("decimal", Jenc.int x.decimal)
+        [ ("as", Jenc.int x.asAs)
         ]
 
-declare : Jdec.Decoder Declare
-declare =
-    Jdec.succeed Declare
-        |> Jpipe.required "declare" Jdec.int
-
-encodeDeclare : Declare -> Jenc.Value
-encodeDeclare x =
-    Jenc.object
-        [ ("declare", Jenc.int x.declare)
-        ]
-
-decltype : Jdec.Decoder Decltype
-decltype =
-    Jdec.succeed Decltype
-        |> Jpipe.required "decltype" Jdec.int
-
-encodeDecltype : Decltype -> Jenc.Value
-encodeDecltype x =
-    Jenc.object
-        [ ("decltype", Jenc.int x.decltype)
-        ]
-
-decodeString : Jdec.Decoder DecodeString
-decodeString =
-    Jdec.succeed DecodeString
-        |> Jpipe.required "decode_string" Jdec.int
-
-encodeDecodeString : DecodeString -> Jenc.Value
-encodeDecodeString x =
-    Jenc.object
-        [ ("decode_string", Jenc.int x.decodeString)
-        ]
-
-empty : Jdec.Decoder Empty
-empty =
-    Jdec.succeed Empty
-        |> Jpipe.required "_" Jdec.int
-
-encodeEmpty : Empty -> Jenc.Value
-encodeEmpty x =
-    Jenc.object
-        [ ("_", Jenc.int x.empty)
-        ]
-
-imaginery : Jdec.Decoder Imaginery
-imaginery =
-    Jdec.succeed Imaginery
-        |> Jpipe.required "_Imaginery" Jdec.int
-
-encodeImaginery : Imaginery -> Jenc.Value
-encodeImaginery x =
-    Jenc.object
-        [ ("_Imaginery", Jenc.int x.imaginery)
-        ]
-
-anyClass : Jdec.Decoder AnyClass
-anyClass =
-    Jdec.succeed AnyClass
-        |> Jpipe.required "any" Jdec.int
-
-encodeAnyClass : AnyClass -> Jenc.Value
-encodeAnyClass x =
-    Jenc.object
-        [ ("any", Jenc.int x.any)
-        ]
-
-purpleAs : Jdec.Decoder As
-purpleAs =
-    Jdec.succeed As
-        |> Jpipe.required "as" Jdec.int
-
-encodeAs : As -> Jenc.Value
-encodeAs x =
-    Jenc.object
-        [ ("as", Jenc.int x.asAs)
-        ]
-
-purpleBool : Jdec.Decoder Bool
-purpleBool =
-    Jdec.succeed Bool
-        |> Jpipe.required "BOOL" Jdec.int
+purpleBool : Jdec.Decoder Bool
+purpleBool =
+    Jdec.succeed Bool
+        |> Jpipe.required "BOOL" Jdec.int
 
 encodeBool : Bool -> Jenc.Value
 encodeBool x =
@@ -2932,6 +2841,13 @@ encodeObj1Bool x =
 obj2 : Jdec.Decoder Obj2
 obj2 =
     Jdec.succeed Obj2
+        |> Jpipe.required "DateTime" dateTime
+        |> Jpipe.required "DateTimeStyles" dateTimeStyles
+        |> Jpipe.required "debugger" debugger
+        |> Jpipe.required "decimal" decimal
+        |> Jpipe.required "declare" declare
+        |> Jpipe.required "decltype" decltype
+        |> Jpipe.required "decode_string" decodeString
         |> Jpipe.required "def" def
         |> Jpipe.required "default" default
         |> Jpipe.required "defer" defer
@@ -2985,27 +2901,23 @@ obj2 =
         |> Jpipe.required "IMP" imp
         |> Jpipe.required "implements" implements
         |> Jpipe.required "implicit" implicit
-        |> Jpipe.required "indirect" indirect
-        |> Jpipe.required "init" init
-        |> Jpipe.required "inline" inline
-        |> Jpipe.required "inout" inout
-        |> Jpipe.required "instanceof" instanceof
-        |> Jpipe.required "interface" interface
-        |> Jpipe.required "internal" internal
         |> Jpipe.required "else" purpleElse
         |> Jpipe.required "exposing" purpleExposing
         |> Jpipe.required "false" obj2False
         |> Jpipe.required "float" floatClass
         |> Jpipe.required "if" purpleIf
-        |> Jpipe.required "import" purpleImport
-        |> Jpipe.required "in" purpleIn
-        |> Jpipe.required "infix" purpleInfix
-        |> Jpipe.required "int" intClass
 
 encodeObj2 : Obj2 -> Jenc.Value
 encodeObj2 x =
     Jenc.object
-        [ ("def", encodeDef x.def)
+        [ ("DateTime", encodeDateTime x.dateTime)
+        , ("DateTimeStyles", encodeDateTimeStyles x.dateTimeStyles)
+        , ("debugger", encodeDebugger x.debugger)
+        , ("decimal", encodeDecimal x.decimal)
+        , ("declare", encodeDeclare x.declare)
+        , ("decltype", encodeDecltype x.decltype)
+        , ("decode_string", encodeDecodeString x.decodeString)
+        , ("def", encodeDef x.def)
         , ("default", encodeDefault x.default)
         , ("defer", encodeDefer x.defer)
         , ("deinit", encodeDeinit x.deinit)
@@ -3058,22 +2970,88 @@ encodeObj2 x =
         , ("IMP", encodeImp x.imp)
         , ("implements", encodeImplements x.implements)
         , ("implicit", encodeImplicit x.implicit)
-        , ("indirect", encodeIndirect x.indirect)
-        , ("init", encodeInit x.init)
-        , ("inline", encodeInline x.inline)
-        , ("inout", encodeInout x.inout)
-        , ("instanceof", encodeInstanceof x.instanceof)
-        , ("interface", encodeInterface x.interface)
-        , ("internal", encodeInternal x.internal)
         , ("else", encodeElse x.obj2Else)
         , ("exposing", encodeExposing x.obj2Exposing)
         , ("false", encodeObj2False x.obj2False)
         , ("float", encodeFloatClass x.obj2Float)
         , ("if", encodeIf x.obj2If)
-        , ("import", encodeImport x.obj2Import)
-        , ("in", encodeIn x.obj2In)
-        , ("infix", encodeInfix x.obj2Infix)
-        , ("int", encodeIntClass x.obj2Int)
+        ]
+
+dateTime : Jdec.Decoder DateTime
+dateTime =
+    Jdec.succeed DateTime
+        |> Jpipe.required "DateTime" Jdec.string
+
+encodeDateTime : DateTime -> Jenc.Value
+encodeDateTime x =
+    Jenc.object
+        [ ("DateTime", Jenc.string x.dateTime)
+        ]
+
+dateTimeStyles : Jdec.Decoder DateTimeStyles
+dateTimeStyles =
+    Jdec.succeed DateTimeStyles
+        |> Jpipe.required "DateTimeStyles" Jdec.int
+
+encodeDateTimeStyles : DateTimeStyles -> Jenc.Value
+encodeDateTimeStyles x =
+    Jenc.object
+        [ ("DateTimeStyles", Jenc.int x.dateTimeStyles)
+        ]
+
+debugger : Jdec.Decoder Debugger
+debugger =
+    Jdec.succeed Debugger
+        |> Jpipe.required "debugger" Jdec.int
+
+encodeDebugger : Debugger -> Jenc.Value
+encodeDebugger x =
+    Jenc.object
+        [ ("debugger", Jenc.int x.debugger)
+        ]
+
+decimal : Jdec.Decoder Decimal
+decimal =
+    Jdec.succeed Decimal
+        |> Jpipe.required "decimal" Jdec.int
+
+encodeDecimal : Decimal -> Jenc.Value
+encodeDecimal x =
+    Jenc.object
+        [ ("decimal", Jenc.int x.decimal)
+        ]
+
+declare : Jdec.Decoder Declare
+declare =
+    Jdec.succeed Declare
+        |> Jpipe.required "declare" Jdec.int
+
+encodeDeclare : Declare -> Jenc.Value
+encodeDeclare x =
+    Jenc.object
+        [ ("declare", Jenc.int x.declare)
+        ]
+
+decltype : Jdec.Decoder Decltype
+decltype =
+    Jdec.succeed Decltype
+        |> Jpipe.required "decltype" Jdec.int
+
+encodeDecltype : Decltype -> Jenc.Value
+encodeDecltype x =
+    Jenc.object
+        [ ("decltype", Jenc.int x.decltype)
+        ]
+
+decodeString : Jdec.Decoder DecodeString
+decodeString =
+    Jdec.succeed DecodeString
+        |> Jpipe.required "decode_string" Jdec.int
+
+encodeDecodeString : DecodeString -> Jenc.Value
+encodeDecodeString x =
+    Jenc.object
+        [ ("decode_string", Jenc.int x.decodeString)
         ]
 
 def : Jdec.Decoder Def
@@ -3663,186 +3641,72 @@ encodeImplicit x =
         [ ("implicit", Jenc.int x.implicit)
         ]
 
-indirect : Jdec.Decoder Indirect
-indirect =
-    Jdec.succeed Indirect
-        |> Jpipe.required "indirect" Jdec.int
+purpleElse : Jdec.Decoder Else
+purpleElse =
+    Jdec.succeed Else
+        |> Jpipe.required "else" Jdec.int
 
-encodeIndirect : Indirect -> Jenc.Value
-encodeIndirect x =
+encodeElse : Else -> Jenc.Value
+encodeElse x =
     Jenc.object
-        [ ("indirect", Jenc.int x.indirect)
+        [ ("else", Jenc.int x.elseElse)
         ]
 
-init : Jdec.Decoder Init
-init =
-    Jdec.succeed Init
-        |> Jpipe.required "init" Jdec.int
+purpleExposing : Jdec.Decoder Exposing
+purpleExposing =
+    Jdec.succeed Exposing
+        |> Jpipe.required "exposing" Jdec.int
 
-encodeInit : Init -> Jenc.Value
-encodeInit x =
+encodeExposing : Exposing -> Jenc.Value
+encodeExposing x =
     Jenc.object
-        [ ("init", Jenc.int x.init)
+        [ ("exposing", Jenc.int x.exposingExposing)
         ]
 
-inline : Jdec.Decoder Inline
-inline =
-    Jdec.succeed Inline
-        |> Jpipe.required "inline" Jdec.int
+obj2False : Jdec.Decoder Obj2False
+obj2False =
+    Jdec.succeed Obj2False
+        |> Jpipe.required "false" Jdec.int
 
-encodeInline : Inline -> Jenc.Value
-encodeInline x =
+encodeObj2False : Obj2False -> Jenc.Value
+encodeObj2False x =
     Jenc.object
-        [ ("inline", Jenc.int x.inline)
+        [ ("false", Jenc.int x.false)
         ]
 
-inout : Jdec.Decoder Inout
-inout =
-    Jdec.succeed Inout
-        |> Jpipe.required "inout" Jdec.int
+floatClass : Jdec.Decoder FloatClass
+floatClass =
+    Jdec.succeed FloatClass
+        |> Jpipe.required "float" Jdec.int
 
-encodeInout : Inout -> Jenc.Value
-encodeInout x =
+encodeFloatClass : FloatClass -> Jenc.Value
+encodeFloatClass x =
     Jenc.object
-        [ ("inout", Jenc.int x.inout)
+        [ ("float", Jenc.int x.floatFloat)
         ]
 
-instanceof : Jdec.Decoder Instanceof
-instanceof =
-    Jdec.succeed Instanceof
-        |> Jpipe.required "instanceof" Jdec.int
+purpleIf : Jdec.Decoder If
+purpleIf =
+    Jdec.succeed If
+        |> Jpipe.required "if" Jdec.int
 
-encodeInstanceof : Instanceof -> Jenc.Value
-encodeInstanceof x =
+encodeIf : If -> Jenc.Value
+encodeIf x =
     Jenc.object
-        [ ("instanceof", Jenc.int x.instanceof)
-        ]
-
-interface : Jdec.Decoder Interface
-interface =
-    Jdec.succeed Interface
-        |> Jpipe.required "interface" Jdec.int
-
-encodeInterface : Interface -> Jenc.Value
-encodeInterface x =
-    Jenc.object
-        [ ("interface", Jenc.int x.interface)
-        ]
-
-internal : Jdec.Decoder Internal
-internal =
-    Jdec.succeed Internal
-        |> Jpipe.required "internal" Jdec.int
-
-encodeInternal : Internal -> Jenc.Value
-encodeInternal x =
-    Jenc.object
-        [ ("internal", Jenc.int x.internal)
-        ]
-
-purpleElse : Jdec.Decoder Else
-purpleElse =
-    Jdec.succeed Else
-        |> Jpipe.required "else" Jdec.int
-
-encodeElse : Else -> Jenc.Value
-encodeElse x =
-    Jenc.object
-        [ ("else", Jenc.int x.elseElse)
-        ]
-
-purpleExposing : Jdec.Decoder Exposing
-purpleExposing =
-    Jdec.succeed Exposing
-        |> Jpipe.required "exposing" Jdec.int
-
-encodeExposing : Exposing -> Jenc.Value
-encodeExposing x =
-    Jenc.object
-        [ ("exposing", Jenc.int x.exposingExposing)
-        ]
-
-obj2False : Jdec.Decoder Obj2False
-obj2False =
-    Jdec.succeed Obj2False
-        |> Jpipe.required "false" Jdec.int
-
-encodeObj2False : Obj2False -> Jenc.Value
-encodeObj2False x =
-    Jenc.object
-        [ ("false", Jenc.int x.false)
-        ]
-
-floatClass : Jdec.Decoder FloatClass
-floatClass =
-    Jdec.succeed FloatClass
-        |> Jpipe.required "float" Jdec.int
-
-encodeFloatClass : FloatClass -> Jenc.Value
-encodeFloatClass x =
-    Jenc.object
-        [ ("float", Jenc.int x.floatFloat)
-        ]
-
-purpleIf : Jdec.Decoder If
-purpleIf =
-    Jdec.succeed If
-        |> Jpipe.required "if" Jdec.int
-
-encodeIf : If -> Jenc.Value
-encodeIf x =
-    Jenc.object
-        [ ("if", Jenc.int x.ifIf)
-        ]
-
-purpleImport : Jdec.Decoder Import
-purpleImport =
-    Jdec.succeed Import
-        |> Jpipe.required "import" Jdec.int
-
-encodeImport : Import -> Jenc.Value
-encodeImport x =
-    Jenc.object
-        [ ("import", Jenc.int x.importImport)
-        ]
-
-purpleIn : Jdec.Decoder In
-purpleIn =
-    Jdec.succeed In
-        |> Jpipe.required "in" Jdec.int
-
-encodeIn : In -> Jenc.Value
-encodeIn x =
-    Jenc.object
-        [ ("in", Jenc.int x.inIn)
-        ]
-
-purpleInfix : Jdec.Decoder Infix
-purpleInfix =
-    Jdec.succeed Infix
-        |> Jpipe.required "infix" Jdec.int
-
-encodeInfix : Infix -> Jenc.Value
-encodeInfix x =
-    Jenc.object
-        [ ("infix", Jenc.int x.infixInfix)
-        ]
-
-intClass : Jdec.Decoder IntClass
-intClass =
-    Jdec.succeed IntClass
-        |> Jpipe.required "int" Jdec.int
-
-encodeIntClass : IntClass -> Jenc.Value
-encodeIntClass x =
-    Jenc.object
-        [ ("int", Jenc.int x.intInt)
+        [ ("if", Jenc.int x.ifIf)
         ]
 
 obj3 : Jdec.Decoder Obj3
 obj3 =
     Jdec.succeed Obj3
         |> Jpipe.required "dummy" Jdec.int
+        |> Jpipe.required "indirect" indirect
+        |> Jpipe.required "init" init
+        |> Jpipe.required "inline" inline
+        |> Jpipe.required "inout" inout
+        |> Jpipe.required "instanceof" instanceof
+        |> Jpipe.required "interface" interface
+        |> Jpipe.required "internal" internal
         |> Jpipe.required "is" is
         |> Jpipe.required "IsoDateTimeOffsetConverter" isoDateTimeOffsetConverter
         |> Jpipe.required "iterable" iterable
@@ -3892,46 +3756,26 @@ obj3 =
         |> Jpipe.required "NSError" nsError
         |> Jpipe.required "NSString" nsString
         |> Jpipe.required "NULL" null
-        |> Jpipe.required "nullptr" nullptr
-        |> Jpipe.required "number" number
+        |> Jpipe.required "import" purpleImport
+        |> Jpipe.required "in" purpleIn
+        |> Jpipe.required "infix" purpleInfix
+        |> Jpipe.required "int" intClass
         |> Jpipe.required "let" purpleLet
         |> Jpipe.required "module" purpleModule
         |> Jpipe.required "none" noneClass
         |> Jpipe.required "null" nullClass
-        |> Jpipe.required "of" purpleOf
-        |> Jpipe.required "port" purplePort
-        |> Jpipe.required "protocol" protocolClass
-        |> Jpipe.required "object" object
-        |> Jpipe.required "ObjectMapper" objectMapper
-        |> Jpipe.required "oneway" oneway
-        |> Jpipe.required "open" open
-        |> Jpipe.required "operator" operator
-        |> Jpipe.required "optional" optional
-        |> Jpipe.required "or" or
-        |> Jpipe.required "or_eq" orEq
-        |> Jpipe.required "out" out
-        |> Jpipe.required "override" override
-        |> Jpipe.required "package" package
-        |> Jpipe.required "params" params
-        |> Jpipe.required "pass" pass
-        |> Jpipe.required "postfix" postfix
-        |> Jpipe.required "precedence" precedence
-        |> Jpipe.required "prefix" prefix
-        |> Jpipe.required "print" print
-        |> Jpipe.required "printMembers" printMembers
-        |> Jpipe.required "printf" printf
-        |> Jpipe.required "private" private
-        |> Jpipe.required "protected" protected
-        |> Jpipe.required "Protocol" protocol
-        |> Jpipe.required "SerializerProvider" serializerProvider
-        |> Jpipe.required "SimpleModule" simpleModule
-        |> Jpipe.required "StdDeserializer" stdDeserializer
-        |> Jpipe.required "StdSerializer" stdSerializer
 
 encodeObj3 : Obj3 -> Jenc.Value
 encodeObj3 x =
     Jenc.object
         [ ("dummy", Jenc.int x.dummy)
+        , ("indirect", encodeIndirect x.indirect)
+        , ("init", encodeInit x.init)
+        , ("inline", encodeInline x.inline)
+        , ("inout", encodeInout x.inout)
+        , ("instanceof", encodeInstanceof x.instanceof)
+        , ("interface", encodeInterface x.interface)
+        , ("internal", encodeInternal x.internal)
         , ("is", encodeIs x.is)
         , ("IsoDateTimeOffsetConverter", encodeISODateTimeOffsetConverter x.isoDateTimeOffsetConverter)
         , ("iterable", encodeIterable x.iterable)
@@ -3981,41 +3825,91 @@ encodeObj3 x =
         , ("NSError", encodeNSError x.nsError)
         , ("NSString", encodeNSString x.nsString)
         , ("NULL", encodeNull x.null)
-        , ("nullptr", encodeNullptr x.nullptr)
-        , ("number", encodeNumber x.number)
+        , ("import", encodeImport x.obj3Import)
+        , ("in", encodeIn x.obj3In)
+        , ("infix", encodeInfix x.obj3Infix)
+        , ("int", encodeIntClass x.obj3Int)
         , ("let", encodeLet x.obj3Let)
         , ("module", encodeModule x.obj3Module)
         , ("none", encodeNoneClass x.obj3None)
         , ("null", encodeNullClass x.obj3Null)
-        , ("of", encodeOf x.obj3Of)
-        , ("port", encodePort x.obj3Port)
-        , ("protocol", encodeProtocolClass x.obj3Protocol)
-        , ("object", encodeObject x.object)
-        , ("ObjectMapper", encodeObjectMapper x.objectMapper)
-        , ("oneway", encodeOneway x.oneway)
-        , ("open", encodeOpen x.open)
-        , ("operator", encodeOperator x.operator)
-        , ("optional", encodeOptional x.optional)
-        , ("or", encodeOr x.or)
-        , ("or_eq", encodeOrEq x.orEq)
-        , ("out", encodeOut x.out)
-        , ("override", encodeOverride x.override)
-        , ("package", encodePackage x.package)
-        , ("params", encodeParams x.params)
-        , ("pass", encodePass x.pass)
-        , ("postfix", encodePostfix x.postfix)
-        , ("precedence", encodePrecedence x.precedence)
-        , ("prefix", encodePrefix x.prefix)
-        , ("print", encodePrint x.print)
-        , ("printMembers", encodePrintMembers x.printMembers)
-        , ("printf", encodePrintf x.printf)
-        , ("private", encodePrivate x.private)
-        , ("protected", encodeProtected x.protected)
-        , ("Protocol", encodeProtocol x.protocol)
-        , ("SerializerProvider", encodeSerializerProvider x.serializerProvider)
-        , ("SimpleModule", encodeSimpleModule x.simpleModule)
-        , ("StdDeserializer", encodeStdDeserializer x.stdDeserializer)
-        , ("StdSerializer", encodeStdSerializer x.stdSerializer)
+        ]
+
+indirect : Jdec.Decoder Indirect
+indirect =
+    Jdec.succeed Indirect
+        |> Jpipe.required "indirect" Jdec.int
+
+encodeIndirect : Indirect -> Jenc.Value
+encodeIndirect x =
+    Jenc.object
+        [ ("indirect", Jenc.int x.indirect)
+        ]
+
+init : Jdec.Decoder Init
+init =
+    Jdec.succeed Init
+        |> Jpipe.required "init" Jdec.int
+
+encodeInit : Init -> Jenc.Value
+encodeInit x =
+    Jenc.object
+        [ ("init", Jenc.int x.init)
+        ]
+
+inline : Jdec.Decoder Inline
+inline =
+    Jdec.succeed Inline
+        |> Jpipe.required "inline" Jdec.int
+
+encodeInline : Inline -> Jenc.Value
+encodeInline x =
+    Jenc.object
+        [ ("inline", Jenc.int x.inline)
+        ]
+
+inout : Jdec.Decoder Inout
+inout =
+    Jdec.succeed Inout
+        |> Jpipe.required "inout" Jdec.int
+
+encodeInout : Inout -> Jenc.Value
+encodeInout x =
+    Jenc.object
+        [ ("inout", Jenc.int x.inout)
+        ]
+
+instanceof : Jdec.Decoder Instanceof
+instanceof =
+    Jdec.succeed Instanceof
+        |> Jpipe.required "instanceof" Jdec.int
+
+encodeInstanceof : Instanceof -> Jenc.Value
+encodeInstanceof x =
+    Jenc.object
+        [ ("instanceof", Jenc.int x.instanceof)
+        ]
+
+interface : Jdec.Decoder Interface
+interface =
+    Jdec.succeed Interface
+        |> Jpipe.required "interface" Jdec.int
+
+encodeInterface : Interface -> Jenc.Value
+encodeInterface x =
+    Jenc.object
+        [ ("interface", Jenc.int x.interface)
+        ]
+
+internal : Jdec.Decoder Internal
+internal =
+    Jdec.succeed Internal
+        |> Jpipe.required "internal" Jdec.int
+
+encodeInternal : Internal -> Jenc.Value
+encodeInternal x =
+    Jenc.object
+        [ ("internal", Jenc.int x.internal)
         ]
 
 is : Jdec.Decoder Is
@@ -4557,26 +4451,48 @@ encodeNull x =
         [ ("NULL", Jenc.int x.null)
         ]
 
-nullptr : Jdec.Decoder Nullptr
-nullptr =
-    Jdec.succeed Nullptr
-        |> Jpipe.required "nullptr" Jdec.int
+purpleImport : Jdec.Decoder Import
+purpleImport =
+    Jdec.succeed Import
+        |> Jpipe.required "import" Jdec.int
 
-encodeNullptr : Nullptr -> Jenc.Value
-encodeNullptr x =
+encodeImport : Import -> Jenc.Value
+encodeImport x =
     Jenc.object
-        [ ("nullptr", Jenc.int x.nullptr)
+        [ ("import", Jenc.int x.importImport)
         ]
 
-number : Jdec.Decoder Number
-number =
-    Jdec.succeed Number
-        |> Jpipe.required "number" Jdec.int
+purpleIn : Jdec.Decoder In
+purpleIn =
+    Jdec.succeed In
+        |> Jpipe.required "in" Jdec.int
 
-encodeNumber : Number -> Jenc.Value
-encodeNumber x =
+encodeIn : In -> Jenc.Value
+encodeIn x =
     Jenc.object
-        [ ("number", Jenc.int x.number)
+        [ ("in", Jenc.int x.inIn)
+        ]
+
+purpleInfix : Jdec.Decoder Infix
+purpleInfix =
+    Jdec.succeed Infix
+        |> Jpipe.required "infix" Jdec.int
+
+encodeInfix : Infix -> Jenc.Value
+encodeInfix x =
+    Jenc.object
+        [ ("infix", Jenc.int x.infixInfix)
+        ]
+
+intClass : Jdec.Decoder IntClass
+intClass =
+    Jdec.succeed IntClass
+        |> Jpipe.required "int" Jdec.int
+
+encodeIntClass : IntClass -> Jenc.Value
+encodeIntClass x =
+    Jenc.object
+        [ ("int", Jenc.int x.intInt)
         ]
 
 purpleLet : Jdec.Decoder Let
@@ -4623,6 +4539,167 @@ encodeNullClass x =
         [ ("null", Jenc.int x.null)
         ]
 
+obj4 : Jdec.Decoder Obj4
+obj4 =
+    Jdec.succeed Obj4
+        |> Jpipe.required "dummy" Jdec.int
+        |> Jpipe.required "nullptr" nullptr
+        |> Jpipe.required "number" number
+        |> Jpipe.required "of" purpleOf
+        |> Jpipe.required "port" purplePort
+        |> Jpipe.required "protocol" protocolClass
+        |> Jpipe.required "self" selfClass
+        |> Jpipe.required "object" object
+        |> Jpipe.required "ObjectMapper" objectMapper
+        |> Jpipe.required "oneway" oneway
+        |> Jpipe.required "open" open
+        |> Jpipe.required "operator" operator
+        |> Jpipe.required "optional" optional
+        |> Jpipe.required "or" or
+        |> Jpipe.required "or_eq" orEq
+        |> Jpipe.required "out" out
+        |> Jpipe.required "override" override
+        |> Jpipe.required "package" package
+        |> Jpipe.required "params" params
+        |> Jpipe.required "pass" pass
+        |> Jpipe.required "postfix" postfix
+        |> Jpipe.required "precedence" precedence
+        |> Jpipe.required "prefix" prefix
+        |> Jpipe.required "print" print
+        |> Jpipe.required "printMembers" printMembers
+        |> Jpipe.required "printf" printf
+        |> Jpipe.required "private" private
+        |> Jpipe.required "protected" protected
+        |> Jpipe.required "Protocol" protocol
+        |> Jpipe.required "public" public
+        |> Jpipe.required "quicktype" quicktype
+        |> Jpipe.required "raise" raise
+        |> Jpipe.required "range" range
+        |> Jpipe.required "readonly" readonly
+        |> Jpipe.required "ref" ref
+        |> Jpipe.required "RegExp" regExp
+        |> Jpipe.required "register" register
+        |> Jpipe.required "reinterpret_cast" reinterpretCast
+        |> Jpipe.required "repeat" repeat
+        |> Jpipe.required "require" require
+        |> Jpipe.required "required" required
+        |> Jpipe.required "requires" requires
+        |> Jpipe.required "restrict" restrict
+        |> Jpipe.required "retain" retain
+        |> Jpipe.required "rethrows" rethrows
+        |> Jpipe.required "return" return
+        |> Jpipe.required "right" right
+        |> Jpipe.required "runtimeType" runtimeType
+        |> Jpipe.required "s" s
+        |> Jpipe.required "sbyte" sbyte
+        |> Jpipe.required "sealed" sealed
+        |> Jpipe.required "SEL" sel
+        |> Jpipe.required "select" select
+        |> Jpipe.required "Self" self
+        |> Jpipe.required "serialize" serialize
+        |> Jpipe.required "SerializerProvider" serializerProvider
+        |> Jpipe.required "set" set
+        |> Jpipe.required "short" short
+        |> Jpipe.required "signed" signed
+        |> Jpipe.required "SimpleModule" simpleModule
+        |> Jpipe.required "sizeof" sizeof
+        |> Jpipe.required "stackalloc" stackalloc
+        |> Jpipe.required "Standards" standards
+        |> Jpipe.required "static" static
+        |> Jpipe.required "static_assert" staticAssert
+
+encodeObj4 : Obj4 -> Jenc.Value
+encodeObj4 x =
+    Jenc.object
+        [ ("dummy", Jenc.int x.dummy)
+        , ("nullptr", encodeNullptr x.nullptr)
+        , ("number", encodeNumber x.number)
+        , ("of", encodeOf x.obj4Of)
+        , ("port", encodePort x.obj4Port)
+        , ("protocol", encodeProtocolClass x.obj4Protocol)
+        , ("self", encodeSelfClass x.obj4Self)
+        , ("object", encodeObject x.object)
+        , ("ObjectMapper", encodeObjectMapper x.objectMapper)
+        , ("oneway", encodeOneway x.oneway)
+        , ("open", encodeOpen x.open)
+        , ("operator", encodeOperator x.operator)
+        , ("optional", encodeOptional x.optional)
+        , ("or", encodeOr x.or)
+        , ("or_eq", encodeOrEq x.orEq)
+        , ("out", encodeOut x.out)
+        , ("override", encodeOverride x.override)
+        , ("package", encodePackage x.package)
+        , ("params", encodeParams x.params)
+        , ("pass", encodePass x.pass)
+        , ("postfix", encodePostfix x.postfix)
+        , ("precedence", encodePrecedence x.precedence)
+        , ("prefix", encodePrefix x.prefix)
+        , ("print", encodePrint x.print)
+        , ("printMembers", encodePrintMembers x.printMembers)
+        , ("printf", encodePrintf x.printf)
+        , ("private", encodePrivate x.private)
+        , ("protected", encodeProtected x.protected)
+        , ("Protocol", encodeProtocol x.protocol)
+        , ("public", encodePublic x.public)
+        , ("quicktype", encodeQuicktype x.quicktype)
+        , ("raise", encodeRaise x.raise)
+        , ("range", encodeRange x.range)
+        , ("readonly", encodeReadonly x.readonly)
+        , ("ref", encodeRef x.ref)
+        , ("RegExp", encodeRegExp x.regExp)
+        , ("register", encodeRegister x.register)
+        , ("reinterpret_cast", encodeReinterpretCast x.reinterpretCast)
+        , ("repeat", encodeRepeat x.repeat)
+        , ("require", encodeRequire x.require)
+        , ("required", encodeRequired x.required)
+        , ("requires", encodeRequires x.requires)
+        , ("restrict", encodeRestrict x.restrict)
+        , ("retain", encodeRetain x.retain)
+        , ("rethrows", encodeRethrows x.rethrows)
+        , ("return", encodeReturn x.return)
+        , ("right", encodeRight x.right)
+        , ("runtimeType", encodeRuntimeType x.runtimeType)
+        , ("s", encodeS x.s)
+        , ("sbyte", encodeSbyte x.sbyte)
+        , ("sealed", encodeSealed x.sealed)
+        , ("SEL", encodeSel x.sel)
+        , ("select", encodeSelect x.select)
+        , ("Self", encodeSelf x.self)
+        , ("serialize", encodeSerialize x.serialize)
+        , ("SerializerProvider", encodeSerializerProvider x.serializerProvider)
+        , ("set", encodeSet x.set)
+        , ("short", encodeShort x.short)
+        , ("signed", encodeSigned x.signed)
+        , ("SimpleModule", encodeSimpleModule x.simpleModule)
+        , ("sizeof", encodeSizeof x.sizeof)
+        , ("stackalloc", encodeStackalloc x.stackalloc)
+        , ("Standards", encodeStandards x.standards)
+        , ("static", encodeStatic x.static)
+        , ("static_assert", encodeStaticAssert x.staticAssert)
+        ]
+
+nullptr : Jdec.Decoder Nullptr
+nullptr =
+    Jdec.succeed Nullptr
+        |> Jpipe.required "nullptr" Jdec.int
+
+encodeNullptr : Nullptr -> Jenc.Value
+encodeNullptr x =
+    Jenc.object
+        [ ("nullptr", Jenc.int x.nullptr)
+        ]
+
+number : Jdec.Decoder Number
+number =
+    Jdec.succeed Number
+        |> Jpipe.required "number" Jdec.int
+
+encodeNumber : Number -> Jenc.Value
+encodeNumber x =
+    Jenc.object
+        [ ("number", Jenc.int x.number)
+        ]
+
 purpleOf : Jdec.Decoder Of
 purpleOf =
     Jdec.succeed Of
@@ -4650,10 +4727,21 @@ protocolClass =
     Jdec.succeed ProtocolClass
         |> Jpipe.required "protocol" Jdec.int
 
-encodeProtocolClass : ProtocolClass -> Jenc.Value
-encodeProtocolClass x =
+encodeProtocolClass : ProtocolClass -> Jenc.Value
+encodeProtocolClass x =
+    Jenc.object
+        [ ("protocol", Jenc.int x.protocol)
+        ]
+
+selfClass : Jdec.Decoder SelfClass
+selfClass =
+    Jdec.succeed SelfClass
+        |> Jpipe.required "self" Jdec.int
+
+encodeSelfClass : SelfClass -> Jenc.Value
+encodeSelfClass x =
     Jenc.object
-        [ ("protocol", Jenc.int x.protocol)
+        [ ("self", Jenc.int x.self)
         ]
 
 object : Jdec.Decoder Object
@@ -4838,316 +4926,64 @@ print =
         |> Jpipe.required "print" Jdec.int
 
 encodePrint : Print -> Jenc.Value
-encodePrint x =
-    Jenc.object
-        [ ("print", Jenc.int x.print)
-        ]
-
-printMembers : Jdec.Decoder PrintMembers
-printMembers =
-    Jdec.succeed PrintMembers
-        |> Jpipe.required "printMembers" Jdec.int
-
-encodePrintMembers : PrintMembers -> Jenc.Value
-encodePrintMembers x =
-    Jenc.object
-        [ ("printMembers", Jenc.int x.printMembers)
-        ]
-
-printf : Jdec.Decoder Printf
-printf =
-    Jdec.succeed Printf
-        |> Jpipe.required "printf" Jdec.int
-
-encodePrintf : Printf -> Jenc.Value
-encodePrintf x =
-    Jenc.object
-        [ ("printf", Jenc.int x.printf)
-        ]
-
-private : Jdec.Decoder Private
-private =
-    Jdec.succeed Private
-        |> Jpipe.required "private" Jdec.int
-
-encodePrivate : Private -> Jenc.Value
-encodePrivate x =
-    Jenc.object
-        [ ("private", Jenc.int x.private)
-        ]
-
-protected : Jdec.Decoder Protected
-protected =
-    Jdec.succeed Protected
-        |> Jpipe.required "protected" Jdec.int
-
-encodeProtected : Protected -> Jenc.Value
-encodeProtected x =
-    Jenc.object
-        [ ("protected", Jenc.int x.protected)
-        ]
-
-protocol : Jdec.Decoder Protocol
-protocol =
-    Jdec.succeed Protocol
-        |> Jpipe.required "Protocol" Jdec.int
-
-encodeProtocol : Protocol -> Jenc.Value
-encodeProtocol x =
-    Jenc.object
-        [ ("Protocol", Jenc.int x.protocol)
-        ]
-
-serializerProvider : Jdec.Decoder SerializerProvider
-serializerProvider =
-    Jdec.succeed SerializerProvider
-        |> Jpipe.required "SerializerProvider" Jdec.int
-
-encodeSerializerProvider : SerializerProvider -> Jenc.Value
-encodeSerializerProvider x =
-    Jenc.object
-        [ ("SerializerProvider", Jenc.int x.serializerProvider)
-        ]
-
-simpleModule : Jdec.Decoder SimpleModule
-simpleModule =
-    Jdec.succeed SimpleModule
-        |> Jpipe.required "SimpleModule" Jdec.int
-
-encodeSimpleModule : SimpleModule -> Jenc.Value
-encodeSimpleModule x =
-    Jenc.object
-        [ ("SimpleModule", Jenc.int x.simpleModule)
-        ]
-
-stdDeserializer : Jdec.Decoder StdDeserializer
-stdDeserializer =
-    Jdec.succeed StdDeserializer
-        |> Jpipe.required "StdDeserializer" Jdec.int
-
-encodeStdDeserializer : StdDeserializer -> Jenc.Value
-encodeStdDeserializer x =
-    Jenc.object
-        [ ("StdDeserializer", Jenc.int x.stdDeserializer)
-        ]
-
-stdSerializer : Jdec.Decoder StdSerializer
-stdSerializer =
-    Jdec.succeed StdSerializer
-        |> Jpipe.required "StdSerializer" Jdec.int
-
-encodeStdSerializer : StdSerializer -> Jenc.Value
-encodeStdSerializer x =
-    Jenc.object
-        [ ("StdSerializer", Jenc.int x.stdSerializer)
-        ]
-
-obj4 : Jdec.Decoder Obj4
-obj4 =
-    Jdec.succeed Obj4
-        |> Jpipe.required "dummy" Jdec.int
-        |> Jpipe.required "self" selfClass
-        |> Jpipe.required "string" stringClass
-        |> Jpipe.required "then" purpleThen
-        |> Jpipe.required "true" obj4True
-        |> Jpipe.required "Type" purpleType
-        |> Jpipe.required "public" public
-        |> Jpipe.required "type" typeClass
-        |> Jpipe.required "quicktype" quicktype
-        |> Jpipe.required "raise" raise
-        |> Jpipe.required "range" range
-        |> Jpipe.required "readonly" readonly
-        |> Jpipe.required "ref" ref
-        |> Jpipe.required "RegExp" regExp
-        |> Jpipe.required "register" register
-        |> Jpipe.required "reinterpret_cast" reinterpretCast
-        |> Jpipe.required "repeat" repeat
-        |> Jpipe.required "require" require
-        |> Jpipe.required "required" required
-        |> Jpipe.required "requires" requires
-        |> Jpipe.required "restrict" restrict
-        |> Jpipe.required "retain" retain
-        |> Jpipe.required "rethrows" rethrows
-        |> Jpipe.required "return" return
-        |> Jpipe.required "right" right
-        |> Jpipe.required "runtimeType" runtimeType
-        |> Jpipe.required "s" s
-        |> Jpipe.required "sbyte" sbyte
-        |> Jpipe.required "sealed" sealed
-        |> Jpipe.required "SEL" sel
-        |> Jpipe.required "select" select
-        |> Jpipe.required "Self" self
-        |> Jpipe.required "serialize" serialize
-        |> Jpipe.required "set" set
-        |> Jpipe.required "short" short
-        |> Jpipe.required "signed" signed
-        |> Jpipe.required "sizeof" sizeof
-        |> Jpipe.required "stackalloc" stackalloc
-        |> Jpipe.required "Standards" standards
-        |> Jpipe.required "static" static
-        |> Jpipe.required "static_assert" staticAssert
-        |> Jpipe.required "static_cast" staticCast
-        |> Jpipe.required "strictfp" strictfp
-        |> Jpipe.required "struct" struct
-        |> Jpipe.required "subscript" subscript
-        |> Jpipe.required "super" super
-        |> Jpipe.required "switch" switch
-        |> Jpipe.required "symbol" symbol
-        |> Jpipe.required "synchronized" synchronized
-        |> Jpipe.required "system" system
-        |> Jpipe.required "template" template
-        |> Jpipe.required "this" this
-        |> Jpipe.required "thread_local" threadLocal
-        |> Jpipe.required "throw" throw
-        |> Jpipe.required "throws" throws
-        |> Jpipe.required "TimeOnly" timeOnly
-        |> Jpipe.required "TimeOnlyConverter" timeOnlyConverter
-        |> Jpipe.required "to_json" toJSON
-        |> Jpipe.required "toString" toString
-        |> Jpipe.required "top_level" topLevel
-        |> Jpipe.required "transient" transient
-        |> Jpipe.required "True" trueClass
-        |> Jpipe.required "try" try
-        |> Jpipe.required "typealias" typealias
-        |> Jpipe.required "typedef" typedef
-        |> Jpipe.required "typeid" typeid
-        |> Jpipe.required "typename" typename
-        |> Jpipe.required "typeof" typeof
-        |> Jpipe.required "uint" uint
-        |> Jpipe.required "ulong" ulong
-        |> Jpipe.required "unchecked" unchecked
-        |> Jpipe.required "undefined" undefined
-
-encodeObj4 : Obj4 -> Jenc.Value
-encodeObj4 x =
-    Jenc.object
-        [ ("dummy", Jenc.int x.dummy)
-        , ("self", encodeSelfClass x.obj4Self)
-        , ("string", encodeStringClass x.obj4String)
-        , ("then", encodeThen x.obj4Then)
-        , ("true", encodeObj4True x.obj4True)
-        , ("Type", encodeType x.obj4Type)
-        , ("public", encodePublic x.public)
-        , ("type", encodeTypeClass x.purpleType)
-        , ("quicktype", encodeQuicktype x.quicktype)
-        , ("raise", encodeRaise x.raise)
-        , ("range", encodeRange x.range)
-        , ("readonly", encodeReadonly x.readonly)
-        , ("ref", encodeRef x.ref)
-        , ("RegExp", encodeRegExp x.regExp)
-        , ("register", encodeRegister x.register)
-        , ("reinterpret_cast", encodeReinterpretCast x.reinterpretCast)
-        , ("repeat", encodeRepeat x.repeat)
-        , ("require", encodeRequire x.require)
-        , ("required", encodeRequired x.required)
-        , ("requires", encodeRequires x.requires)
-        , ("restrict", encodeRestrict x.restrict)
-        , ("retain", encodeRetain x.retain)
-        , ("rethrows", encodeRethrows x.rethrows)
-        , ("return", encodeReturn x.return)
-        , ("right", encodeRight x.right)
-        , ("runtimeType", encodeRuntimeType x.runtimeType)
-        , ("s", encodeS x.s)
-        , ("sbyte", encodeSbyte x.sbyte)
-        , ("sealed", encodeSealed x.sealed)
-        , ("SEL", encodeSel x.sel)
-        , ("select", encodeSelect x.select)
-        , ("Self", encodeSelf x.self)
-        , ("serialize", encodeSerialize x.serialize)
-        , ("set", encodeSet x.set)
-        , ("short", encodeShort x.short)
-        , ("signed", encodeSigned x.signed)
-        , ("sizeof", encodeSizeof x.sizeof)
-        , ("stackalloc", encodeStackalloc x.stackalloc)
-        , ("Standards", encodeStandards x.standards)
-        , ("static", encodeStatic x.static)
-        , ("static_assert", encodeStaticAssert x.staticAssert)
-        , ("static_cast", encodeStaticCast x.staticCast)
-        , ("strictfp", encodeStrictfp x.strictfp)
-        , ("struct", encodeStruct x.struct)
-        , ("subscript", encodeSubscript x.subscript)
-        , ("super", encodeSuper x.super)
-        , ("switch", encodeSwitch x.switch)
-        , ("symbol", encodeSymbol x.symbol)
-        , ("synchronized", encodeSynchronized x.synchronized)
-        , ("system", encodeSystem x.system)
-        , ("template", encodeTemplate x.template)
-        , ("this", encodeThis x.this)
-        , ("thread_local", encodeThreadLocal x.threadLocal)
-        , ("throw", encodeThrow x.throw)
-        , ("throws", encodeThrows x.throws)
-        , ("TimeOnly", encodeTimeOnly x.timeOnly)
-        , ("TimeOnlyConverter", encodeTimeOnlyConverter x.timeOnlyConverter)
-        , ("to_json", encodeToJSON x.toJSON)
-        , ("toString", encodeToString x.toString)
-        , ("top_level", encodeTopLevel x.topLevel)
-        , ("transient", encodeTransient x.transient)
-        , ("True", encodeTrueClass x.true)
-        , ("try", encodeTry x.try)
-        , ("typealias", encodeTypealias x.typealias)
-        , ("typedef", encodeTypedef x.typedef)
-        , ("typeid", encodeTypeid x.typeid)
-        , ("typename", encodeTypename x.typename)
-        , ("typeof", encodeTypeof x.typeof)
-        , ("uint", encodeUint x.uint)
-        , ("ulong", encodeUlong x.ulong)
-        , ("unchecked", encodeUnchecked x.unchecked)
-        , ("undefined", encodeUndefined x.undefined)
+encodePrint x =
+    Jenc.object
+        [ ("print", Jenc.int x.print)
         ]
 
-selfClass : Jdec.Decoder SelfClass
-selfClass =
-    Jdec.succeed SelfClass
-        |> Jpipe.required "self" Jdec.int
+printMembers : Jdec.Decoder PrintMembers
+printMembers =
+    Jdec.succeed PrintMembers
+        |> Jpipe.required "printMembers" Jdec.int
 
-encodeSelfClass : SelfClass -> Jenc.Value
-encodeSelfClass x =
+encodePrintMembers : PrintMembers -> Jenc.Value
+encodePrintMembers x =
     Jenc.object
-        [ ("self", Jenc.int x.self)
+        [ ("printMembers", Jenc.int x.printMembers)
         ]
 
-stringClass : Jdec.Decoder StringClass
-stringClass =
-    Jdec.succeed StringClass
-        |> Jpipe.required "string" Jdec.int
+printf : Jdec.Decoder Printf
+printf =
+    Jdec.succeed Printf
+        |> Jpipe.required "printf" Jdec.int
 
-encodeStringClass : StringClass -> Jenc.Value
-encodeStringClass x =
+encodePrintf : Printf -> Jenc.Value
+encodePrintf x =
     Jenc.object
-        [ ("string", Jenc.int x.stringString)
+        [ ("printf", Jenc.int x.printf)
         ]
 
-purpleThen : Jdec.Decoder Then
-purpleThen =
-    Jdec.succeed Then
-        |> Jpipe.required "then" Jdec.int
+private : Jdec.Decoder Private
+private =
+    Jdec.succeed Private
+        |> Jpipe.required "private" Jdec.int
 
-encodeThen : Then -> Jenc.Value
-encodeThen x =
+encodePrivate : Private -> Jenc.Value
+encodePrivate x =
     Jenc.object
-        [ ("then", Jenc.int x.thenThen)
+        [ ("private", Jenc.int x.private)
         ]
 
-obj4True : Jdec.Decoder Obj4True
-obj4True =
-    Jdec.succeed Obj4True
-        |> Jpipe.required "true" Jdec.int
+protected : Jdec.Decoder Protected
+protected =
+    Jdec.succeed Protected
+        |> Jpipe.required "protected" Jdec.int
 
-encodeObj4True : Obj4True -> Jenc.Value
-encodeObj4True x =
+encodeProtected : Protected -> Jenc.Value
+encodeProtected x =
     Jenc.object
-        [ ("true", Jenc.int x.true)
+        [ ("protected", Jenc.int x.protected)
         ]
 
-purpleType : Jdec.Decoder Type
-purpleType =
-    Jdec.succeed Type
-        |> Jpipe.required "Type" Jdec.int
+protocol : Jdec.Decoder Protocol
+protocol =
+    Jdec.succeed Protocol
+        |> Jpipe.required "Protocol" Jdec.int
 
-encodeType : Type -> Jenc.Value
-encodeType x =
+encodeProtocol : Protocol -> Jenc.Value
+encodeProtocol x =
     Jenc.object
-        [ ("Type", Jenc.int x.typeType)
+        [ ("Protocol", Jenc.int x.protocol)
         ]
 
 public : Jdec.Decoder Public
@@ -5161,17 +4997,6 @@ encodePublic x =
         [ ("public", Jenc.int x.public)
         ]
 
-typeClass : Jdec.Decoder TypeClass
-typeClass =
-    Jdec.succeed TypeClass
-        |> Jpipe.required "type" Jdec.int
-
-encodeTypeClass : TypeClass -> Jenc.Value
-encodeTypeClass x =
-    Jenc.object
-        [ ("type", Jenc.int x.typeType)
-        ]
-
 quicktype : Jdec.Decoder Quicktype
 quicktype =
     Jdec.succeed Quicktype
@@ -5441,109 +5266,352 @@ serialize =
     Jdec.succeed Serialize
         |> Jpipe.required "serialize" Jdec.int
 
-encodeSerialize : Serialize -> Jenc.Value
-encodeSerialize x =
+encodeSerialize : Serialize -> Jenc.Value
+encodeSerialize x =
+    Jenc.object
+        [ ("serialize", Jenc.int x.serialize)
+        ]
+
+serializerProvider : Jdec.Decoder SerializerProvider
+serializerProvider =
+    Jdec.succeed SerializerProvider
+        |> Jpipe.required "SerializerProvider" Jdec.int
+
+encodeSerializerProvider : SerializerProvider -> Jenc.Value
+encodeSerializerProvider x =
+    Jenc.object
+        [ ("SerializerProvider", Jenc.int x.serializerProvider)
+        ]
+
+set : Jdec.Decoder Set
+set =
+    Jdec.succeed Set
+        |> Jpipe.required "set" Jdec.int
+
+encodeSet : Set -> Jenc.Value
+encodeSet x =
+    Jenc.object
+        [ ("set", Jenc.int x.set)
+        ]
+
+short : Jdec.Decoder Short
+short =
+    Jdec.succeed Short
+        |> Jpipe.required "short" Jdec.int
+
+encodeShort : Short -> Jenc.Value
+encodeShort x =
+    Jenc.object
+        [ ("short", Jenc.int x.short)
+        ]
+
+signed : Jdec.Decoder Signed
+signed =
+    Jdec.succeed Signed
+        |> Jpipe.required "signed" Jdec.int
+
+encodeSigned : Signed -> Jenc.Value
+encodeSigned x =
+    Jenc.object
+        [ ("signed", Jenc.int x.signed)
+        ]
+
+simpleModule : Jdec.Decoder SimpleModule
+simpleModule =
+    Jdec.succeed SimpleModule
+        |> Jpipe.required "SimpleModule" Jdec.int
+
+encodeSimpleModule : SimpleModule -> Jenc.Value
+encodeSimpleModule x =
+    Jenc.object
+        [ ("SimpleModule", Jenc.int x.simpleModule)
+        ]
+
+sizeof : Jdec.Decoder Sizeof
+sizeof =
+    Jdec.succeed Sizeof
+        |> Jpipe.required "sizeof" Jdec.int
+
+encodeSizeof : Sizeof -> Jenc.Value
+encodeSizeof x =
+    Jenc.object
+        [ ("sizeof", Jenc.int x.sizeof)
+        ]
+
+stackalloc : Jdec.Decoder Stackalloc
+stackalloc =
+    Jdec.succeed Stackalloc
+        |> Jpipe.required "stackalloc" Jdec.int
+
+encodeStackalloc : Stackalloc -> Jenc.Value
+encodeStackalloc x =
+    Jenc.object
+        [ ("stackalloc", Jenc.int x.stackalloc)
+        ]
+
+standards : Jdec.Decoder Standards
+standards =
+    Jdec.succeed Standards
+        |> Jpipe.required "Standards" Jdec.int
+
+encodeStandards : Standards -> Jenc.Value
+encodeStandards x =
+    Jenc.object
+        [ ("Standards", Jenc.int x.standards)
+        ]
+
+static : Jdec.Decoder Static
+static =
+    Jdec.succeed Static
+        |> Jpipe.required "static" Jdec.int
+
+encodeStatic : Static -> Jenc.Value
+encodeStatic x =
+    Jenc.object
+        [ ("static", Jenc.int x.static)
+        ]
+
+staticAssert : Jdec.Decoder StaticAssert
+staticAssert =
+    Jdec.succeed StaticAssert
+        |> Jpipe.required "static_assert" Jdec.int
+
+encodeStaticAssert : StaticAssert -> Jenc.Value
+encodeStaticAssert x =
+    Jenc.object
+        [ ("static_assert", Jenc.int x.staticAssert)
+        ]
+
+obj5 : Jdec.Decoder Obj5
+obj5 =
+    Jdec.succeed Obj5
+        |> Jpipe.required "dummy" Jdec.int
+        |> Jpipe.required "string" stringClass
+        |> Jpipe.required "then" purpleThen
+        |> Jpipe.required "true" obj5True
+        |> Jpipe.required "Type" purpleType
+        |> Jpipe.required "where" purpleWhere
+        |> Jpipe.required "type" typeClass
+        |> Jpipe.required "static_cast" staticCast
+        |> Jpipe.required "StdDeserializer" stdDeserializer
+        |> Jpipe.required "StdSerializer" stdSerializer
+        |> Jpipe.required "strictfp" strictfp
+        |> Jpipe.required "struct" struct
+        |> Jpipe.required "subscript" subscript
+        |> Jpipe.required "super" super
+        |> Jpipe.required "switch" switch
+        |> Jpipe.required "symbol" symbol
+        |> Jpipe.required "synchronized" synchronized
+        |> Jpipe.required "system" system
+        |> Jpipe.required "template" template
+        |> Jpipe.required "this" this
+        |> Jpipe.required "thread_local" threadLocal
+        |> Jpipe.required "throw" throw
+        |> Jpipe.required "throws" throws
+        |> Jpipe.required "TimeOnly" timeOnly
+        |> Jpipe.required "TimeOnlyConverter" timeOnlyConverter
+        |> Jpipe.required "to_json" toJSON
+        |> Jpipe.required "toString" toString
+        |> Jpipe.required "top_level" topLevel
+        |> Jpipe.required "transient" transient
+        |> Jpipe.required "True" trueClass
+        |> Jpipe.required "try" try
+        |> Jpipe.required "typealias" typealias
+        |> Jpipe.required "typedef" typedef
+        |> Jpipe.required "typeid" typeid
+        |> Jpipe.required "typename" typename
+        |> Jpipe.required "typeof" typeof
+        |> Jpipe.required "uint" uint
+        |> Jpipe.required "ulong" ulong
+        |> Jpipe.required "unchecked" unchecked
+        |> Jpipe.required "undefined" undefined
+        |> Jpipe.required "union" union
+        |> Jpipe.required "unowned" unowned
+        |> Jpipe.required "unsafe" unsafe
+        |> Jpipe.required "unsigned" unsigned
+        |> Jpipe.required "ushort" ushort
+        |> Jpipe.required "using" using
+        |> Jpipe.required "Utf8JsonReader" utf8JSONReader
+        |> Jpipe.required "Utf8JsonWriter" utf8JSONWriter
+        |> Jpipe.required "UUID" uuid
+        |> Jpipe.required "var" var
+        |> Jpipe.required "virtual" virtual
+        |> Jpipe.required "void" void
+        |> Jpipe.required "volatile" volatile
+        |> Jpipe.required "wchar_t" wcharT
+        |> Jpipe.required "weak" weak
+        |> Jpipe.required "while" while
+        |> Jpipe.required "willSet" willSet
+        |> Jpipe.required "with" with
+        |> Jpipe.required "xor" xor
+        |> Jpipe.required "xor_eq" xorEq
+        |> Jpipe.required "YES" yes
+        |> Jpipe.required "yield" yield
+
+encodeObj5 : Obj5 -> Jenc.Value
+encodeObj5 x =
     Jenc.object
-        [ ("serialize", Jenc.int x.serialize)
+        [ ("dummy", Jenc.int x.dummy)
+        , ("string", encodeStringClass x.obj5String)
+        , ("then", encodeThen x.obj5Then)
+        , ("true", encodeObj5True x.obj5True)
+        , ("Type", encodeType x.obj5Type)
+        , ("where", encodeWhere x.obj5Where)
+        , ("type", encodeTypeClass x.purpleType)
+        , ("static_cast", encodeStaticCast x.staticCast)
+        , ("StdDeserializer", encodeStdDeserializer x.stdDeserializer)
+        , ("StdSerializer", encodeStdSerializer x.stdSerializer)
+        , ("strictfp", encodeStrictfp x.strictfp)
+        , ("struct", encodeStruct x.struct)
+        , ("subscript", encodeSubscript x.subscript)
+        , ("super", encodeSuper x.super)
+        , ("switch", encodeSwitch x.switch)
+        , ("symbol", encodeSymbol x.symbol)
+        , ("synchronized", encodeSynchronized x.synchronized)
+        , ("system", encodeSystem x.system)
+        , ("template", encodeTemplate x.template)
+        , ("this", encodeThis x.this)
+        , ("thread_local", encodeThreadLocal x.threadLocal)
+        , ("throw", encodeThrow x.throw)
+        , ("throws", encodeThrows x.throws)
+        , ("TimeOnly", encodeTimeOnly x.timeOnly)
+        , ("TimeOnlyConverter", encodeTimeOnlyConverter x.timeOnlyConverter)
+        , ("to_json", encodeToJSON x.toJSON)
+        , ("toString", encodeToString x.toString)
+        , ("top_level", encodeTopLevel x.topLevel)
+        , ("transient", encodeTransient x.transient)
+        , ("True", encodeTrueClass x.true)
+        , ("try", encodeTry x.try)
+        , ("typealias", encodeTypealias x.typealias)
+        , ("typedef", encodeTypedef x.typedef)
+        , ("typeid", encodeTypeid x.typeid)
+        , ("typename", encodeTypename x.typename)
+        , ("typeof", encodeTypeof x.typeof)
+        , ("uint", encodeUint x.uint)
+        , ("ulong", encodeUlong x.ulong)
+        , ("unchecked", encodeUnchecked x.unchecked)
+        , ("undefined", encodeUndefined x.undefined)
+        , ("union", encodeUnion x.union)
+        , ("unowned", encodeUnowned x.unowned)
+        , ("unsafe", encodeUnsafe x.unsafe)
+        , ("unsigned", encodeUnsigned x.unsigned)
+        , ("ushort", encodeUshort x.ushort)
+        , ("using", encodeUsing x.using)
+        , ("Utf8JsonReader", encodeUtf8JSONReader x.utf8JSONReader)
+        , ("Utf8JsonWriter", encodeUtf8JSONWriter x.utf8JSONWriter)
+        , ("UUID", encodeUUID x.uuid)
+        , ("var", encodeVar x.var)
+        , ("virtual", encodeVirtual x.virtual)
+        , ("void", encodeVoid x.void)
+        , ("volatile", encodeVolatile x.volatile)
+        , ("wchar_t", encodeWcharT x.wcharT)
+        , ("weak", encodeWeak x.weak)
+        , ("while", encodeWhile x.while)
+        , ("willSet", encodeWillSet x.willSet)
+        , ("with", encodeWith x.with)
+        , ("xor", encodeXor x.xor)
+        , ("xor_eq", encodeXorEq x.xorEq)
+        , ("YES", encodeYes x.yes)
+        , ("yield", encodeYield x.yield)
         ]
 
-set : Jdec.Decoder Set
-set =
-    Jdec.succeed Set
-        |> Jpipe.required "set" Jdec.int
+stringClass : Jdec.Decoder StringClass
+stringClass =
+    Jdec.succeed StringClass
+        |> Jpipe.required "string" Jdec.int
 
-encodeSet : Set -> Jenc.Value
-encodeSet x =
+encodeStringClass : StringClass -> Jenc.Value
+encodeStringClass x =
     Jenc.object
-        [ ("set", Jenc.int x.set)
+        [ ("string", Jenc.int x.stringString)
         ]
 
-short : Jdec.Decoder Short
-short =
-    Jdec.succeed Short
-        |> Jpipe.required "short" Jdec.int
+purpleThen : Jdec.Decoder Then
+purpleThen =
+    Jdec.succeed Then
+        |> Jpipe.required "then" Jdec.int
 
-encodeShort : Short -> Jenc.Value
-encodeShort x =
+encodeThen : Then -> Jenc.Value
+encodeThen x =
     Jenc.object
-        [ ("short", Jenc.int x.short)
+        [ ("then", Jenc.int x.thenThen)
         ]
 
-signed : Jdec.Decoder Signed
-signed =
-    Jdec.succeed Signed
-        |> Jpipe.required "signed" Jdec.int
+obj5True : Jdec.Decoder Obj5True
+obj5True =
+    Jdec.succeed Obj5True
+        |> Jpipe.required "true" Jdec.int
 
-encodeSigned : Signed -> Jenc.Value
-encodeSigned x =
+encodeObj5True : Obj5True -> Jenc.Value
+encodeObj5True x =
     Jenc.object
-        [ ("signed", Jenc.int x.signed)
+        [ ("true", Jenc.int x.true)
         ]
 
-sizeof : Jdec.Decoder Sizeof
-sizeof =
-    Jdec.succeed Sizeof
-        |> Jpipe.required "sizeof" Jdec.int
+purpleType : Jdec.Decoder Type
+purpleType =
+    Jdec.succeed Type
+        |> Jpipe.required "Type" Jdec.int
 
-encodeSizeof : Sizeof -> Jenc.Value
-encodeSizeof x =
+encodeType : Type -> Jenc.Value
+encodeType x =
     Jenc.object
-        [ ("sizeof", Jenc.int x.sizeof)
+        [ ("Type", Jenc.int x.typeType)
         ]
 
-stackalloc : Jdec.Decoder Stackalloc
-stackalloc =
-    Jdec.succeed Stackalloc
-        |> Jpipe.required "stackalloc" Jdec.int
+purpleWhere : Jdec.Decoder Where
+purpleWhere =
+    Jdec.succeed Where
+        |> Jpipe.required "where" Jdec.int
 
-encodeStackalloc : Stackalloc -> Jenc.Value
-encodeStackalloc x =
+encodeWhere : Where -> Jenc.Value
+encodeWhere x =
     Jenc.object
-        [ ("stackalloc", Jenc.int x.stackalloc)
+        [ ("where", Jenc.int x.whereWhere)
         ]
 
-standards : Jdec.Decoder Standards
-standards =
-    Jdec.succeed Standards
-        |> Jpipe.required "Standards" Jdec.int
+typeClass : Jdec.Decoder TypeClass
+typeClass =
+    Jdec.succeed TypeClass
+        |> Jpipe.required "type" Jdec.int
 
-encodeStandards : Standards -> Jenc.Value
-encodeStandards x =
+encodeTypeClass : TypeClass -> Jenc.Value
+encodeTypeClass x =
     Jenc.object
-        [ ("Standards", Jenc.int x.standards)
+        [ ("type", Jenc.int x.typeType)
         ]
 
-static : Jdec.Decoder Static
-static =
-    Jdec.succeed Static
-        |> Jpipe.required "static" Jdec.int
+staticCast : Jdec.Decoder StaticCast
+staticCast =
+    Jdec.succeed StaticCast
+        |> Jpipe.required "static_cast" Jdec.int
 
-encodeStatic : Static -> Jenc.Value
-encodeStatic x =
+encodeStaticCast : StaticCast -> Jenc.Value
+encodeStaticCast x =
     Jenc.object
-        [ ("static", Jenc.int x.static)
+        [ ("static_cast", Jenc.int x.staticCast)
         ]
 
-staticAssert : Jdec.Decoder StaticAssert
-staticAssert =
-    Jdec.succeed StaticAssert
-        |> Jpipe.required "static_assert" Jdec.int
+stdDeserializer : Jdec.Decoder StdDeserializer
+stdDeserializer =
+    Jdec.succeed StdDeserializer
+        |> Jpipe.required "StdDeserializer" Jdec.int
 
-encodeStaticAssert : StaticAssert -> Jenc.Value
-encodeStaticAssert x =
+encodeStdDeserializer : StdDeserializer -> Jenc.Value
+encodeStdDeserializer x =
     Jenc.object
-        [ ("static_assert", Jenc.int x.staticAssert)
+        [ ("StdDeserializer", Jenc.int x.stdDeserializer)
         ]
 
-staticCast : Jdec.Decoder StaticCast
-staticCast =
-    Jdec.succeed StaticCast
-        |> Jpipe.required "static_cast" Jdec.int
+stdSerializer : Jdec.Decoder StdSerializer
+stdSerializer =
+    Jdec.succeed StdSerializer
+        |> Jpipe.required "StdSerializer" Jdec.int
 
-encodeStaticCast : StaticCast -> Jenc.Value
-encodeStaticCast x =
+encodeStdSerializer : StdSerializer -> Jenc.Value
+encodeStdSerializer x =
     Jenc.object
-        [ ("static_cast", Jenc.int x.staticCast)
+        [ ("StdSerializer", Jenc.int x.stdSerializer)
         ]
 
 strictfp : Jdec.Decoder Strictfp
@@ -5876,74 +5944,6 @@ encodeUndefined x =
         [ ("undefined", Jenc.int x.undefined)
         ]
 
-obj5 : Jdec.Decoder Obj5
-obj5 =
-    Jdec.succeed Obj5
-        |> Jpipe.required "dummy" Jdec.int
-        |> Jpipe.required "where" purpleWhere
-        |> Jpipe.required "union" union
-        |> Jpipe.required "unowned" unowned
-        |> Jpipe.required "unsafe" unsafe
-        |> Jpipe.required "unsigned" unsigned
-        |> Jpipe.required "ushort" ushort
-        |> Jpipe.required "using" using
-        |> Jpipe.required "Utf8JsonReader" utf8JSONReader
-        |> Jpipe.required "Utf8JsonWriter" utf8JSONWriter
-        |> Jpipe.required "UUID" uuid
-        |> Jpipe.required "var" var
-        |> Jpipe.required "virtual" virtual
-        |> Jpipe.required "void" void
-        |> Jpipe.required "volatile" volatile
-        |> Jpipe.required "wchar_t" wcharT
-        |> Jpipe.required "weak" weak
-        |> Jpipe.required "while" while
-        |> Jpipe.required "willSet" willSet
-        |> Jpipe.required "with" with
-        |> Jpipe.required "xor" xor
-        |> Jpipe.required "xor_eq" xorEq
-        |> Jpipe.required "YES" yes
-        |> Jpipe.required "yield" yield
-
-encodeObj5 : Obj5 -> Jenc.Value
-encodeObj5 x =
-    Jenc.object
-        [ ("dummy", Jenc.int x.dummy)
-        , ("where", encodeWhere x.obj5Where)
-        , ("union", encodeUnion x.union)
-        , ("unowned", encodeUnowned x.unowned)
-        , ("unsafe", encodeUnsafe x.unsafe)
-        , ("unsigned", encodeUnsigned x.unsigned)
-        , ("ushort", encodeUshort x.ushort)
-        , ("using", encodeUsing x.using)
-        , ("Utf8JsonReader", encodeUtf8JSONReader x.utf8JSONReader)
-        , ("Utf8JsonWriter", encodeUtf8JSONWriter x.utf8JSONWriter)
-        , ("UUID", encodeUUID x.uuid)
-        , ("var", encodeVar x.var)
-        , ("virtual", encodeVirtual x.virtual)
-        , ("void", encodeVoid x.void)
-        , ("volatile", encodeVolatile x.volatile)
-        , ("wchar_t", encodeWcharT x.wcharT)
-        , ("weak", encodeWeak x.weak)
-        , ("while", encodeWhile x.while)
-        , ("willSet", encodeWillSet x.willSet)
-        , ("with", encodeWith x.with)
-        , ("xor", encodeXor x.xor)
-        , ("xor_eq", encodeXorEq x.xorEq)
-        , ("YES", encodeYes x.yes)
-        , ("yield", encodeYield x.yield)
-        ]
-
-purpleWhere : Jdec.Decoder Where
-purpleWhere =
-    Jdec.succeed Where
-        |> Jpipe.required "where" Jdec.int
-
-encodeWhere : Where -> Jenc.Value
-encodeWhere x =
-    Jenc.object
-        [ ("where", Jenc.int x.whereWhere)
-        ]
-
 union : Jdec.Decoder Union
 union =
     Jdec.succeed Union
diff --git a/base/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
index dfc5e1b..7fe01b5 100644
--- a/base/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
@@ -26,8 +26,6 @@ export type Obj1 = {
     DateFormatter:       DateFormatter;
     DateOnly:            DateOnly;
     DateOnlyConverter:   DateOnlyConverter;
-    DateTime:            DateTime;
-    DateTimeStyles:      DateTimeStyles;
     _:                   Empty;
     _Bool:               BoolClass;
     _Complex:            Complex;
@@ -85,11 +83,6 @@ export type Obj1 = {
     converter:           Converter;
     date:                DateClass;
     date_parse_handling: DateParseHandling;
-    debugger:            Debugger;
-    decimal:             Decimal;
-    declare:             Declare;
-    decltype:            Decltype;
-    decode_string:       DecodeString;
     dummy:               number;
 };
 
@@ -121,14 +114,6 @@ export type DateOnlyConverter = {
     DateOnlyConverter: number;
 };
 
-export type DateTime = {
-    DateTime: Date;
-};
-
-export type DateTimeStyles = {
-    DateTimeStyles: number;
-};
-
 export type Empty = {
     _: number;
 };
@@ -357,31 +342,18 @@ export type DateParseHandling = {
     date_parse_handling: number;
 };
 
-export type Debugger = {
-    debugger: number;
-};
-
-export type Decimal = {
-    decimal: number;
-};
-
-export type Declare = {
-    declare: number;
-};
-
-export type Decltype = {
-    decltype: number;
-};
-
-export type DecodeString = {
-    decode_string: number;
-};
-
 export type Obj2 = {
+    DateTime:          DateTime;
+    DateTimeStyles:    DateTimeStyles;
     EnumValues:        EnumValues;
     False:             False;
     FormatException:   FormatException;
     IMP:               Imp;
+    debugger:          Debugger;
+    decimal:           Decimal;
+    declare:           Declare;
+    decltype:          Decltype;
+    decode_string:     DecodeString;
     def:               Def;
     default:           Default;
     defer:             Defer;
@@ -436,17 +408,14 @@ export type Obj2 = {
     if:                If;
     implements:        Implements;
     implicit:          Implicit;
-    import:            Import;
-    in:                In;
-    indirect:          Indirect;
-    infix:             Infix;
-    init:              Init;
-    inline:            Inline;
-    inout:             Inout;
-    instanceof:        Instanceof;
-    int:               Int;
-    interface:         Interface;
-    internal:          Internal;
+};
+
+export type DateTime = {
+    DateTime: Date;
+};
+
+export type DateTimeStyles = {
+    DateTimeStyles: number;
 };
 
 export type EnumValues = {
@@ -469,6 +438,26 @@ export type Imp = {
     IMP: number;
 };
 
+export type Debugger = {
+    debugger: number;
+};
+
+export type Decimal = {
+    decimal: number;
+};
+
+export type Declare = {
+    declare: number;
+};
+
+export type Decltype = {
+    decltype: number;
+};
+
+export type DecodeString = {
+    decode_string: number;
+};
+
 export type Def = {
     def: number;
 };
@@ -681,50 +670,6 @@ export type Implicit = {
     implicit: number;
 };
 
-export type Import = {
-    import: number;
-};
-
-export type In = {
-    in: number;
-};
-
-export type Indirect = {
-    indirect: number;
-};
-
-export type Infix = {
-    infix: number;
-};
-
-export type Init = {
-    init: number;
-};
-
-export type Inline = {
-    inline: number;
-};
-
-export type Inout = {
-    inout: number;
-};
-
-export type Instanceof = {
-    instanceof: number;
-};
-
-export type Int = {
-    int: number;
-};
-
-export type Interface = {
-    interface: number;
-};
-
-export type Internal = {
-    internal: number;
-};
-
 export type Obj3 = {
     IsoDateTimeOffsetConverter: ISODateTimeOffsetConverter;
     JSONAny:                    JSONAny;
@@ -743,13 +688,18 @@ export type Obj3 = {
     NSString:                   NSString;
     NULL:                       Null;
     None:                       None;
-    ObjectMapper:               ObjectMapper;
-    Protocol:                   Protocol;
-    SerializerProvider:         SerializerProvider;
-    SimpleModule:               SimpleModule;
-    StdDeserializer:            StdDeserializer;
-    StdSerializer:              StdSerializer;
     dummy:                      number;
+    import:                     Import;
+    in:                         In;
+    indirect:                   Indirect;
+    infix:                      Infix;
+    init:                       Init;
+    inline:                     Inline;
+    inout:                      Inout;
+    instanceof:                 Instanceof;
+    int:                        Int;
+    interface:                  Interface;
+    internal:                   Internal;
     is:                         Is;
     iterable:                   Iterable;
     jdec:                       Jdec;
@@ -786,31 +736,6 @@ export type Obj3 = {
     not:                        Not;
     not_eq:                     NotEq;
     null:                       NullClass;
-    nullptr:                    Nullptr;
-    number:                     Number;
-    object:                     ObjectClass;
-    of:                         Of;
-    oneway:                     Oneway;
-    open:                       Open;
-    operator:                   Operator;
-    optional:                   Optional;
-    or:                         Or;
-    or_eq:                      OrEq;
-    out:                        Out;
-    override:                   Override;
-    package:                    Package;
-    params:                     Params;
-    pass:                       Pass;
-    port:                       Port;
-    postfix:                    Postfix;
-    precedence:                 Precedence;
-    prefix:                     Prefix;
-    print:                      Print;
-    printMembers:               PrintMembers;
-    printf:                     Printf;
-    private:                    Private;
-    protected:                  Protected;
-    protocol:                   ProtocolClass;
 };
 
 export type ISODateTimeOffsetConverter = {
@@ -881,28 +806,48 @@ export type None = {
     None: number;
 };
 
-export type ObjectMapper = {
-    ObjectMapper: number;
+export type Import = {
+    import: number;
 };
 
-export type Protocol = {
-    Protocol: number;
+export type In = {
+    in: number;
 };
 
-export type SerializerProvider = {
-    SerializerProvider: number;
+export type Indirect = {
+    indirect: number;
 };
 
-export type SimpleModule = {
-    SimpleModule: number;
+export type Infix = {
+    infix: number;
 };
 
-export type StdDeserializer = {
-    StdDeserializer: number;
+export type Init = {
+    init: number;
 };
 
-export type StdSerializer = {
-    StdSerializer: number;
+export type Inline = {
+    inline: number;
+};
+
+export type Inout = {
+    inout: number;
+};
+
+export type Instanceof = {
+    instanceof: number;
+};
+
+export type Int = {
+    int: number;
+};
+
+export type Interface = {
+    interface: number;
+};
+
+export type Internal = {
+    internal: number;
 };
 
 export type Is = {
@@ -1049,6 +994,106 @@ export type NullClass = {
     null: number;
 };
 
+export type Obj4 = {
+    ObjectMapper:       ObjectMapper;
+    Protocol:           Protocol;
+    RegExp:             RegExpClass;
+    SEL:                Sel;
+    Self:               Self;
+    SerializerProvider: SerializerProvider;
+    SimpleModule:       SimpleModule;
+    Standards:          Standards;
+    dummy:              number;
+    nullptr:            Nullptr;
+    number:             Number;
+    object:             ObjectClass;
+    of:                 Of;
+    oneway:             Oneway;
+    open:               Open;
+    operator:           Operator;
+    optional:           Optional;
+    or:                 Or;
+    or_eq:              OrEq;
+    out:                Out;
+    override:           Override;
+    package:            Package;
+    params:             Params;
+    pass:               Pass;
+    port:               Port;
+    postfix:            Postfix;
+    precedence:         Precedence;
+    prefix:             Prefix;
+    print:              Print;
+    printMembers:       PrintMembers;
+    printf:             Printf;
+    private:            Private;
+    protected:          Protected;
+    protocol:           ProtocolClass;
+    public:             Public;
+    quicktype:          Quicktype;
+    raise:              Raise;
+    range:              Range;
+    readonly:           Readonly;
+    ref:                Ref;
+    register:           Register;
+    reinterpret_cast:   ReinterpretCast;
+    repeat:             Repeat;
+    require:            Require;
+    required:           Required;
+    requires:           Requires;
+    restrict:           Restrict;
+    retain:             Retain;
+    rethrows:           Rethrows;
+    return:             Return;
+    right:              Right;
+    runtimeType:        RuntimeType;
+    s:                  S;
+    sbyte:              Sbyte;
+    sealed:             Sealed;
+    select:             Select;
+    self:               SelfClass;
+    serialize:          Serialize;
+    set:                Set;
+    short:              Short;
+    signed:             Signed;
+    sizeof:             Sizeof;
+    stackalloc:         Stackalloc;
+    static:             Static;
+    static_assert:      StaticAssert;
+};
+
+export type ObjectMapper = {
+    ObjectMapper: number;
+};
+
+export type Protocol = {
+    Protocol: number;
+};
+
+export type RegExpClass = {
+    RegExp: string;
+};
+
+export type Sel = {
+    SEL: number;
+};
+
+export type Self = {
+    Self: number;
+};
+
+export type SerializerProvider = {
+    SerializerProvider: number;
+};
+
+export type SimpleModule = {
+    SimpleModule: number;
+};
+
+export type Standards = {
+    Standards: number;
+};
+
 export type Nullptr = {
     nullptr: number;
 };
@@ -1149,113 +1194,6 @@ export type ProtocolClass = {
     protocol: number;
 };
 
-export type Obj4 = {
-    RegExp:            RegExpClass;
-    SEL:               Sel;
-    Self:              Self;
-    Standards:         Standards;
-    TimeOnly:          TimeOnly;
-    TimeOnlyConverter: TimeOnlyConverter;
-    True:              True;
-    Type:              Type;
-    dummy:             number;
-    public:            Public;
-    quicktype:         Quicktype;
-    raise:             Raise;
-    range:             Range;
-    readonly:          Readonly;
-    ref:               Ref;
-    register:          Register;
-    reinterpret_cast:  ReinterpretCast;
-    repeat:            Repeat;
-    require:           Require;
-    required:          Required;
-    requires:          Requires;
-    restrict:          Restrict;
-    retain:            Retain;
-    rethrows:          Rethrows;
-    return:            Return;
-    right:             Right;
-    runtimeType:       RuntimeType;
-    s:                 S;
-    sbyte:             Sbyte;
-    sealed:            Sealed;
-    select:            Select;
-    self:              SelfClass;
-    serialize:         Serialize;
-    set:               Set;
-    short:             Short;
-    signed:            Signed;
-    sizeof:            Sizeof;
-    stackalloc:        Stackalloc;
-    static:            Static;
-    static_assert:     StaticAssert;
-    static_cast:       StaticCast;
-    strictfp:          Strictfp;
-    string:            StringClass;
-    struct:            Struct;
-    subscript:         Subscript;
-    super:             Super;
-    switch:            Switch;
-    symbol:            Symbol;
-    synchronized:      Synchronized;
-    system:            System;
-    template:          Template;
-    then:              Then;
-    this:              This;
-    thread_local:      ThreadLocal;
-    throw:             Throw;
-    throws:            Throws;
-    toString:          ToString;
-    to_json:           ToJSON;
-    top_level:         TopLevelClass;
-    transient:         Transient;
-    true:              TrueClass;
-    try:               Try;
-    type:              TypeClass;
-    typealias:         Typealias;
-    typedef:           Typedef;
-    typeid:            Typeid;
-    typename:          Typename;
-    typeof:            Typeof;
-    uint:              Uint;
-    ulong:             Ulong;
-    unchecked:         Unchecked;
-    undefined:         Undefined;
-};
-
-export type RegExpClass = {
-    RegExp: string;
-};
-
-export type Sel = {
-    SEL: number;
-};
-
-export type Self = {
-    Self: number;
-};
-
-export type Standards = {
-    Standards: number;
-};
-
-export type TimeOnly = {
-    TimeOnly: number;
-};
-
-export type TimeOnlyConverter = {
-    TimeOnlyConverter: number;
-};
-
-export type True = {
-    True: number;
-};
-
-export type Type = {
-    Type: number;
-};
-
 export type Public = {
     public: number;
 };
@@ -1380,11 +1318,116 @@ export type StaticAssert = {
     static_assert: number;
 };
 
-export type StaticCast = {
-    static_cast: number;
-};
-
-export type Strictfp = {
+export type Obj5 = {
+    StdDeserializer:   StdDeserializer;
+    StdSerializer:     StdSerializer;
+    TimeOnly:          TimeOnly;
+    TimeOnlyConverter: TimeOnlyConverter;
+    True:              True;
+    Type:              Type;
+    UUID:              UUID;
+    Utf8JsonReader:    Utf8JSONReader;
+    Utf8JsonWriter:    Utf8JSONWriter;
+    YES:               Yes;
+    dummy:             number;
+    static_cast:       StaticCast;
+    strictfp:          Strictfp;
+    string:            StringClass;
+    struct:            Struct;
+    subscript:         Subscript;
+    super:             Super;
+    switch:            Switch;
+    symbol:            Symbol;
+    synchronized:      Synchronized;
+    system:            System;
+    template:          Template;
+    then:              Then;
+    this:              This;
+    thread_local:      ThreadLocal;
+    throw:             Throw;
+    throws:            Throws;
+    toString:          ToString;
+    to_json:           ToJSON;
+    top_level:         TopLevelClass;
+    transient:         Transient;
+    true:              TrueClass;
+    try:               Try;
+    type:              TypeClass;
+    typealias:         Typealias;
+    typedef:           Typedef;
+    typeid:            Typeid;
+    typename:          Typename;
+    typeof:            Typeof;
+    uint:              Uint;
+    ulong:             Ulong;
+    unchecked:         Unchecked;
+    undefined:         Undefined;
+    union:             Union;
+    unowned:           Unowned;
+    unsafe:            Unsafe;
+    unsigned:          Unsigned;
+    ushort:            Ushort;
+    using:             Using;
+    var:               Var;
+    virtual:           Virtual;
+    void:              Void;
+    volatile:          Volatile;
+    wchar_t:           WcharT;
+    weak:              Weak;
+    where:             Where;
+    while:             While;
+    willSet:           WillSet;
+    with:              With;
+    xor:               Xor;
+    xor_eq:            XorEq;
+    yield:             Yield;
+};
+
+export type StdDeserializer = {
+    StdDeserializer: number;
+};
+
+export type StdSerializer = {
+    StdSerializer: number;
+};
+
+export type TimeOnly = {
+    TimeOnly: number;
+};
+
+export type TimeOnlyConverter = {
+    TimeOnlyConverter: number;
+};
+
+export type True = {
+    True: number;
+};
+
+export type Type = {
+    Type: number;
+};
+
+export type UUID = {
+    UUID: number;
+};
+
+export type Utf8JSONReader = {
+    Utf8JsonReader: number;
+};
+
+export type Utf8JSONWriter = {
+    Utf8JsonWriter: number;
+};
+
+export type Yes = {
+    YES: number;
+};
+
+export type StaticCast = {
+    static_cast: number;
+};
+
+export type Strictfp = {
     strictfp: number;
 };
 
@@ -1508,49 +1551,6 @@ export type Undefined = {
     undefined: number;
 };
 
-export type Obj5 = {
-    UUID:           UUID;
-    Utf8JsonReader: Utf8JSONReader;
-    Utf8JsonWriter: Utf8JSONWriter;
-    YES:            Yes;
-    dummy:          number;
-    union:          Union;
-    unowned:        Unowned;
-    unsafe:         Unsafe;
-    unsigned:       Unsigned;
-    ushort:         Ushort;
-    using:          Using;
-    var:            Var;
-    virtual:        Virtual;
-    void:           Void;
-    volatile:       Volatile;
-    wchar_t:        WcharT;
-    weak:           Weak;
-    where:          Where;
-    while:          While;
-    willSet:        WillSet;
-    with:           With;
-    xor:            Xor;
-    xor_eq:         XorEq;
-    yield:          Yield;
-};
-
-export type UUID = {
-    UUID: number;
-};
-
-export type Utf8JSONReader = {
-    Utf8JsonReader: number;
-};
-
-export type Utf8JSONWriter = {
-    Utf8JsonWriter: number;
-};
-
-export type Yes = {
-    YES: number;
-};
-
 export type Union = {
     union: number;
 };
@@ -1829,8 +1829,6 @@ const typeMap: any = {
         { json: "DateFormatter", js: "DateFormatter", typ: r("DateFormatter") },
         { json: "DateOnly", js: "DateOnly", typ: r("DateOnly") },
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: r("DateOnlyConverter") },
-        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "_", js: "_", typ: r("Empty") },
         { json: "_Bool", js: "_Bool", typ: r("BoolClass") },
         { json: "_Complex", js: "_Complex", typ: r("Complex") },
@@ -1888,11 +1886,6 @@ const typeMap: any = {
         { json: "converter", js: "converter", typ: r("Converter") },
         { json: "date", js: "date", typ: r("DateClass") },
         { json: "date_parse_handling", js: "date_parse_handling", typ: r("DateParseHandling") },
-        { json: "debugger", js: "debugger", typ: r("Debugger") },
-        { json: "decimal", js: "decimal", typ: r("Decimal") },
-        { json: "declare", js: "declare", typ: r("Declare") },
-        { json: "decltype", js: "decltype", typ: r("Decltype") },
-        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "dummy", js: "dummy", typ: i(0) },
     ], false),
     "Any": o([
@@ -1916,12 +1909,6 @@ const typeMap: any = {
     "DateOnlyConverter": o([
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: i(0) },
     ], false),
-    "DateTime": o([
-        { json: "DateTime", js: "DateTime", typ: Date },
-    ], false),
-    "DateTimeStyles": o([
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
-    ], false),
     "Empty": o([
         { json: "_", js: "_", typ: i(0) },
     ], false),
@@ -2093,26 +2080,18 @@ const typeMap: any = {
     "DateParseHandling": o([
         { json: "date_parse_handling", js: "date_parse_handling", typ: i(0) },
     ], false),
-    "Debugger": o([
-        { json: "debugger", js: "debugger", typ: i(0) },
-    ], false),
-    "Decimal": o([
-        { json: "decimal", js: "decimal", typ: i(0) },
-    ], false),
-    "Declare": o([
-        { json: "declare", js: "declare", typ: i(0) },
-    ], false),
-    "Decltype": o([
-        { json: "decltype", js: "decltype", typ: i(0) },
-    ], false),
-    "DecodeString": o([
-        { json: "decode_string", js: "decode_string", typ: i(0) },
-    ], false),
     "Obj2": o([
+        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "EnumValues", js: "EnumValues", typ: r("EnumValues") },
         { json: "False", js: "False", typ: r("False") },
         { json: "FormatException", js: "FormatException", typ: r("FormatException") },
         { json: "IMP", js: "IMP", typ: r("Imp") },
+        { json: "debugger", js: "debugger", typ: r("Debugger") },
+        { json: "decimal", js: "decimal", typ: r("Decimal") },
+        { json: "declare", js: "declare", typ: r("Declare") },
+        { json: "decltype", js: "decltype", typ: r("Decltype") },
+        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "def", js: "def", typ: r("Def") },
         { json: "default", js: "default", typ: r("Default") },
         { json: "defer", js: "defer", typ: r("Defer") },
@@ -2167,17 +2146,12 @@ const typeMap: any = {
         { json: "if", js: "if", typ: r("If") },
         { json: "implements", js: "implements", typ: r("Implements") },
         { json: "implicit", js: "implicit", typ: r("Implicit") },
-        { json: "import", js: "import", typ: r("Import") },
-        { json: "in", js: "in", typ: r("In") },
-        { json: "indirect", js: "indirect", typ: r("Indirect") },
-        { json: "infix", js: "infix", typ: r("Infix") },
-        { json: "init", js: "init", typ: r("Init") },
-        { json: "inline", js: "inline", typ: r("Inline") },
-        { json: "inout", js: "inout", typ: r("Inout") },
-        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
-        { json: "int", js: "int", typ: r("Int") },
-        { json: "interface", js: "interface", typ: r("Interface") },
-        { json: "internal", js: "internal", typ: r("Internal") },
+    ], false),
+    "DateTime": o([
+        { json: "DateTime", js: "DateTime", typ: Date },
+    ], false),
+    "DateTimeStyles": o([
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
     ], false),
     "EnumValues": o([
         { json: "EnumValues", js: "EnumValues", typ: a(r("EnumValue")) },
@@ -2191,6 +2165,21 @@ const typeMap: any = {
     "Imp": o([
         { json: "IMP", js: "IMP", typ: i(0) },
     ], false),
+    "Debugger": o([
+        { json: "debugger", js: "debugger", typ: i(0) },
+    ], false),
+    "Decimal": o([
+        { json: "decimal", js: "decimal", typ: i(0) },
+    ], false),
+    "Declare": o([
+        { json: "declare", js: "declare", typ: i(0) },
+    ], false),
+    "Decltype": o([
+        { json: "decltype", js: "decltype", typ: i(0) },
+    ], false),
+    "DecodeString": o([
+        { json: "decode_string", js: "decode_string", typ: i(0) },
+    ], false),
     "Def": o([
         { json: "def", js: "def", typ: i(0) },
     ], false),
@@ -2350,39 +2339,6 @@ const typeMap: any = {
     "Implicit": o([
         { json: "implicit", js: "implicit", typ: i(0) },
     ], false),
-    "Import": o([
-        { json: "import", js: "import", typ: i(0) },
-    ], false),
-    "In": o([
-        { json: "in", js: "in", typ: i(0) },
-    ], false),
-    "Indirect": o([
-        { json: "indirect", js: "indirect", typ: i(0) },
-    ], false),
-    "Infix": o([
-        { json: "infix", js: "infix", typ: i(0) },
-    ], false),
-    "Init": o([
-        { json: "init", js: "init", typ: i(0) },
-    ], false),
-    "Inline": o([
-        { json: "inline", js: "inline", typ: i(0) },
-    ], false),
-    "Inout": o([
-        { json: "inout", js: "inout", typ: i(0) },
-    ], false),
-    "Instanceof": o([
-        { json: "instanceof", js: "instanceof", typ: i(0) },
-    ], false),
-    "Int": o([
-        { json: "int", js: "int", typ: i(0) },
-    ], false),
-    "Interface": o([
-        { json: "interface", js: "interface", typ: i(0) },
-    ], false),
-    "Internal": o([
-        { json: "internal", js: "internal", typ: i(0) },
-    ], false),
     "Obj3": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: r("ISODateTimeOffsetConverter") },
         { json: "JSONAny", js: "JSONAny", typ: r("JSONAny") },
@@ -2401,13 +2357,18 @@ const typeMap: any = {
         { json: "NSString", js: "NSString", typ: r("NSString") },
         { json: "NULL", js: "NULL", typ: r("Null") },
         { json: "None", js: "None", typ: r("None") },
-        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
-        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
-        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
-        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
-        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
-        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
         { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "import", js: "import", typ: r("Import") },
+        { json: "in", js: "in", typ: r("In") },
+        { json: "indirect", js: "indirect", typ: r("Indirect") },
+        { json: "infix", js: "infix", typ: r("Infix") },
+        { json: "init", js: "init", typ: r("Init") },
+        { json: "inline", js: "inline", typ: r("Inline") },
+        { json: "inout", js: "inout", typ: r("Inout") },
+        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
+        { json: "int", js: "int", typ: r("Int") },
+        { json: "interface", js: "interface", typ: r("Interface") },
+        { json: "internal", js: "internal", typ: r("Internal") },
         { json: "is", js: "is", typ: r("Is") },
         { json: "iterable", js: "iterable", typ: r("Iterable") },
         { json: "jdec", js: "jdec", typ: r("Jdec") },
@@ -2444,31 +2405,6 @@ const typeMap: any = {
         { json: "not", js: "not", typ: r("Not") },
         { json: "not_eq", js: "not_eq", typ: r("NotEq") },
         { json: "null", js: "null", typ: r("NullClass") },
-        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
-        { json: "number", js: "number", typ: r("Number") },
-        { json: "object", js: "object", typ: r("ObjectClass") },
-        { json: "of", js: "of", typ: r("Of") },
-        { json: "oneway", js: "oneway", typ: r("Oneway") },
-        { json: "open", js: "open", typ: r("Open") },
-        { json: "operator", js: "operator", typ: r("Operator") },
-        { json: "optional", js: "optional", typ: r("Optional") },
-        { json: "or", js: "or", typ: r("Or") },
-        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
-        { json: "out", js: "out", typ: r("Out") },
-        { json: "override", js: "override", typ: r("Override") },
-        { json: "package", js: "package", typ: r("Package") },
-        { json: "params", js: "params", typ: r("Params") },
-        { json: "pass", js: "pass", typ: r("Pass") },
-        { json: "port", js: "port", typ: r("Port") },
-        { json: "postfix", js: "postfix", typ: r("Postfix") },
-        { json: "precedence", js: "precedence", typ: r("Precedence") },
-        { json: "prefix", js: "prefix", typ: r("Prefix") },
-        { json: "print", js: "print", typ: r("Print") },
-        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
-        { json: "printf", js: "printf", typ: r("Printf") },
-        { json: "private", js: "private", typ: r("Private") },
-        { json: "protected", js: "protected", typ: r("Protected") },
-        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
     ], false),
     "ISODateTimeOffsetConverter": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: i(0) },
@@ -2521,23 +2457,38 @@ const typeMap: any = {
     "None": o([
         { json: "None", js: "None", typ: i(0) },
     ], false),
-    "ObjectMapper": o([
-        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    "Import": o([
+        { json: "import", js: "import", typ: i(0) },
     ], false),
-    "Protocol": o([
-        { json: "Protocol", js: "Protocol", typ: i(0) },
+    "In": o([
+        { json: "in", js: "in", typ: i(0) },
     ], false),
-    "SerializerProvider": o([
-        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    "Indirect": o([
+        { json: "indirect", js: "indirect", typ: i(0) },
     ], false),
-    "SimpleModule": o([
-        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    "Infix": o([
+        { json: "infix", js: "infix", typ: i(0) },
     ], false),
-    "StdDeserializer": o([
-        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    "Init": o([
+        { json: "init", js: "init", typ: i(0) },
     ], false),
-    "StdSerializer": o([
-        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    "Inline": o([
+        { json: "inline", js: "inline", typ: i(0) },
+    ], false),
+    "Inout": o([
+        { json: "inout", js: "inout", typ: i(0) },
+    ], false),
+    "Instanceof": o([
+        { json: "instanceof", js: "instanceof", typ: i(0) },
+    ], false),
+    "Int": o([
+        { json: "int", js: "int", typ: i(0) },
+    ], false),
+    "Interface": o([
+        { json: "interface", js: "interface", typ: i(0) },
+    ], false),
+    "Internal": o([
+        { json: "internal", js: "internal", typ: i(0) },
     ], false),
     "Is": o([
         { json: "is", js: "is", typ: i(0) },
@@ -2647,6 +2598,97 @@ const typeMap: any = {
     "NullClass": o([
         { json: "null", js: "null", typ: i(0) },
     ], false),
+    "Obj4": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
+        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
+        { json: "RegExp", js: "RegExp", typ: r("RegExpClass") },
+        { json: "SEL", js: "SEL", typ: r("Sel") },
+        { json: "Self", js: "Self", typ: r("Self") },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
+        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
+        { json: "Standards", js: "Standards", typ: r("Standards") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
+        { json: "number", js: "number", typ: r("Number") },
+        { json: "object", js: "object", typ: r("ObjectClass") },
+        { json: "of", js: "of", typ: r("Of") },
+        { json: "oneway", js: "oneway", typ: r("Oneway") },
+        { json: "open", js: "open", typ: r("Open") },
+        { json: "operator", js: "operator", typ: r("Operator") },
+        { json: "optional", js: "optional", typ: r("Optional") },
+        { json: "or", js: "or", typ: r("Or") },
+        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
+        { json: "out", js: "out", typ: r("Out") },
+        { json: "override", js: "override", typ: r("Override") },
+        { json: "package", js: "package", typ: r("Package") },
+        { json: "params", js: "params", typ: r("Params") },
+        { json: "pass", js: "pass", typ: r("Pass") },
+        { json: "port", js: "port", typ: r("Port") },
+        { json: "postfix", js: "postfix", typ: r("Postfix") },
+        { json: "precedence", js: "precedence", typ: r("Precedence") },
+        { json: "prefix", js: "prefix", typ: r("Prefix") },
+        { json: "print", js: "print", typ: r("Print") },
+        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
+        { json: "printf", js: "printf", typ: r("Printf") },
+        { json: "private", js: "private", typ: r("Private") },
+        { json: "protected", js: "protected", typ: r("Protected") },
+        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
+        { json: "public", js: "public", typ: r("Public") },
+        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
+        { json: "raise", js: "raise", typ: r("Raise") },
+        { json: "range", js: "range", typ: r("Range") },
+        { json: "readonly", js: "readonly", typ: r("Readonly") },
+        { json: "ref", js: "ref", typ: r("Ref") },
+        { json: "register", js: "register", typ: r("Register") },
+        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
+        { json: "repeat", js: "repeat", typ: r("Repeat") },
+        { json: "require", js: "require", typ: r("Require") },
+        { json: "required", js: "required", typ: r("Required") },
+        { json: "requires", js: "requires", typ: r("Requires") },
+        { json: "restrict", js: "restrict", typ: r("Restrict") },
+        { json: "retain", js: "retain", typ: r("Retain") },
+        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
+        { json: "return", js: "return", typ: r("Return") },
+        { json: "right", js: "right", typ: r("Right") },
+        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
+        { json: "s", js: "s", typ: r("S") },
+        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
+        { json: "sealed", js: "sealed", typ: r("Sealed") },
+        { json: "select", js: "select", typ: r("Select") },
+        { json: "self", js: "self", typ: r("SelfClass") },
+        { json: "serialize", js: "serialize", typ: r("Serialize") },
+        { json: "set", js: "set", typ: r("Set") },
+        { json: "short", js: "short", typ: r("Short") },
+        { json: "signed", js: "signed", typ: r("Signed") },
+        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
+        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
+        { json: "static", js: "static", typ: r("Static") },
+        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
+    ], false),
+    "ObjectMapper": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    ], false),
+    "Protocol": o([
+        { json: "Protocol", js: "Protocol", typ: i(0) },
+    ], false),
+    "RegExpClass": o([
+        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
+    ], false),
+    "Sel": o([
+        { json: "SEL", js: "SEL", typ: i(0) },
+    ], false),
+    "Self": o([
+        { json: "Self", js: "Self", typ: i(0) },
+    ], false),
+    "SerializerProvider": o([
+        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    ], false),
+    "SimpleModule": o([
+        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    ], false),
+    "Standards": o([
+        { json: "Standards", js: "Standards", typ: i(0) },
+    ], false),
     "Nullptr": o([
         { json: "nullptr", js: "nullptr", typ: i(0) },
     ], false),
@@ -2722,104 +2764,6 @@ const typeMap: any = {
     "ProtocolClass": o([
         { json: "protocol", js: "protocol", typ: i(0) },
     ], false),
-    "Obj4": o([
-        { json: "RegExp", js: "RegExp", typ: r("RegExpClass") },
-        { json: "SEL", js: "SEL", typ: r("Sel") },
-        { json: "Self", js: "Self", typ: r("Self") },
-        { json: "Standards", js: "Standards", typ: r("Standards") },
-        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
-        { json: "True", js: "True", typ: r("True") },
-        { json: "Type", js: "Type", typ: r("Type") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "public", js: "public", typ: r("Public") },
-        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
-        { json: "raise", js: "raise", typ: r("Raise") },
-        { json: "range", js: "range", typ: r("Range") },
-        { json: "readonly", js: "readonly", typ: r("Readonly") },
-        { json: "ref", js: "ref", typ: r("Ref") },
-        { json: "register", js: "register", typ: r("Register") },
-        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
-        { json: "repeat", js: "repeat", typ: r("Repeat") },
-        { json: "require", js: "require", typ: r("Require") },
-        { json: "required", js: "required", typ: r("Required") },
-        { json: "requires", js: "requires", typ: r("Requires") },
-        { json: "restrict", js: "restrict", typ: r("Restrict") },
-        { json: "retain", js: "retain", typ: r("Retain") },
-        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
-        { json: "return", js: "return", typ: r("Return") },
-        { json: "right", js: "right", typ: r("Right") },
-        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
-        { json: "s", js: "s", typ: r("S") },
-        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
-        { json: "sealed", js: "sealed", typ: r("Sealed") },
-        { json: "select", js: "select", typ: r("Select") },
-        { json: "self", js: "self", typ: r("SelfClass") },
-        { json: "serialize", js: "serialize", typ: r("Serialize") },
-        { json: "set", js: "set", typ: r("Set") },
-        { json: "short", js: "short", typ: r("Short") },
-        { json: "signed", js: "signed", typ: r("Signed") },
-        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
-        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
-        { json: "static", js: "static", typ: r("Static") },
-        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
-        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
-        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
-        { json: "string", js: "string", typ: r("StringClass") },
-        { json: "struct", js: "struct", typ: r("Struct") },
-        { json: "subscript", js: "subscript", typ: r("Subscript") },
-        { json: "super", js: "super", typ: r("Super") },
-        { json: "switch", js: "switch", typ: r("Switch") },
-        { json: "symbol", js: "symbol", typ: r("Symbol") },
-        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
-        { json: "system", js: "system", typ: r("System") },
-        { json: "template", js: "template", typ: r("Template") },
-        { json: "then", js: "then", typ: r("Then") },
-        { json: "this", js: "this", typ: r("This") },
-        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
-        { json: "throw", js: "throw", typ: r("Throw") },
-        { json: "throws", js: "throws", typ: r("Throws") },
-        { json: "toString", js: "toString", typ: r("ToString") },
-        { json: "to_json", js: "to_json", typ: r("ToJSON") },
-        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
-        { json: "transient", js: "transient", typ: r("Transient") },
-        { json: "true", js: "true", typ: r("TrueClass") },
-        { json: "try", js: "try", typ: r("Try") },
-        { json: "type", js: "type", typ: r("TypeClass") },
-        { json: "typealias", js: "typealias", typ: r("Typealias") },
-        { json: "typedef", js: "typedef", typ: r("Typedef") },
-        { json: "typeid", js: "typeid", typ: r("Typeid") },
-        { json: "typename", js: "typename", typ: r("Typename") },
-        { json: "typeof", js: "typeof", typ: r("Typeof") },
-        { json: "uint", js: "uint", typ: r("Uint") },
-        { json: "ulong", js: "ulong", typ: r("Ulong") },
-        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
-        { json: "undefined", js: "undefined", typ: r("Undefined") },
-    ], false),
-    "RegExpClass": o([
-        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
-    ], false),
-    "Sel": o([
-        { json: "SEL", js: "SEL", typ: i(0) },
-    ], false),
-    "Self": o([
-        { json: "Self", js: "Self", typ: i(0) },
-    ], false),
-    "Standards": o([
-        { json: "Standards", js: "Standards", typ: i(0) },
-    ], false),
-    "TimeOnly": o([
-        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
-    ], false),
-    "TimeOnlyConverter": o([
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
-    ], false),
-    "True": o([
-        { json: "True", js: "True", typ: i(0) },
-    ], false),
-    "Type": o([
-        { json: "Type", js: "Type", typ: i(0) },
-    ], false),
     "Public": o([
         { json: "public", js: "public", typ: i(0) },
     ], false),
@@ -2913,6 +2857,100 @@ const typeMap: any = {
     "StaticAssert": o([
         { json: "static_assert", js: "static_assert", typ: i(0) },
     ], false),
+    "Obj5": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
+        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
+        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
+        { json: "True", js: "True", typ: r("True") },
+        { json: "Type", js: "Type", typ: r("Type") },
+        { json: "UUID", js: "UUID", typ: r("UUID") },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
+        { json: "YES", js: "YES", typ: r("Yes") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
+        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
+        { json: "string", js: "string", typ: r("StringClass") },
+        { json: "struct", js: "struct", typ: r("Struct") },
+        { json: "subscript", js: "subscript", typ: r("Subscript") },
+        { json: "super", js: "super", typ: r("Super") },
+        { json: "switch", js: "switch", typ: r("Switch") },
+        { json: "symbol", js: "symbol", typ: r("Symbol") },
+        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
+        { json: "system", js: "system", typ: r("System") },
+        { json: "template", js: "template", typ: r("Template") },
+        { json: "then", js: "then", typ: r("Then") },
+        { json: "this", js: "this", typ: r("This") },
+        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
+        { json: "throw", js: "throw", typ: r("Throw") },
+        { json: "throws", js: "throws", typ: r("Throws") },
+        { json: "toString", js: "toString", typ: r("ToString") },
+        { json: "to_json", js: "to_json", typ: r("ToJSON") },
+        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
+        { json: "transient", js: "transient", typ: r("Transient") },
+        { json: "true", js: "true", typ: r("TrueClass") },
+        { json: "try", js: "try", typ: r("Try") },
+        { json: "type", js: "type", typ: r("TypeClass") },
+        { json: "typealias", js: "typealias", typ: r("Typealias") },
+        { json: "typedef", js: "typedef", typ: r("Typedef") },
+        { json: "typeid", js: "typeid", typ: r("Typeid") },
+        { json: "typename", js: "typename", typ: r("Typename") },
+        { json: "typeof", js: "typeof", typ: r("Typeof") },
+        { json: "uint", js: "uint", typ: r("Uint") },
+        { json: "ulong", js: "ulong", typ: r("Ulong") },
+        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
+        { json: "undefined", js: "undefined", typ: r("Undefined") },
+        { json: "union", js: "union", typ: r("Union") },
+        { json: "unowned", js: "unowned", typ: r("Unowned") },
+        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
+        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
+        { json: "ushort", js: "ushort", typ: r("Ushort") },
+        { json: "using", js: "using", typ: r("Using") },
+        { json: "var", js: "var", typ: r("Var") },
+        { json: "virtual", js: "virtual", typ: r("Virtual") },
+        { json: "void", js: "void", typ: r("Void") },
+        { json: "volatile", js: "volatile", typ: r("Volatile") },
+        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
+        { json: "weak", js: "weak", typ: r("Weak") },
+        { json: "where", js: "where", typ: r("Where") },
+        { json: "while", js: "while", typ: r("While") },
+        { json: "willSet", js: "willSet", typ: r("WillSet") },
+        { json: "with", js: "with", typ: r("With") },
+        { json: "xor", js: "xor", typ: r("Xor") },
+        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
+        { json: "yield", js: "yield", typ: r("Yield") },
+    ], false),
+    "StdDeserializer": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    ], false),
+    "StdSerializer": o([
+        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    ], false),
+    "TimeOnly": o([
+        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
+    ], false),
+    "TimeOnlyConverter": o([
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
+    ], false),
+    "True": o([
+        { json: "True", js: "True", typ: i(0) },
+    ], false),
+    "Type": o([
+        { json: "Type", js: "Type", typ: i(0) },
+    ], false),
+    "UUID": o([
+        { json: "UUID", js: "UUID", typ: i(0) },
+    ], false),
+    "Utf8JSONReader": o([
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
+    ], false),
+    "Utf8JSONWriter": o([
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
+    ], false),
+    "Yes": o([
+        { json: "YES", js: "YES", typ: i(0) },
+    ], false),
     "StaticCast": o([
         { json: "static_cast", js: "static_cast", typ: i(0) },
     ], false),
@@ -3009,44 +3047,6 @@ const typeMap: any = {
     "Undefined": o([
         { json: "undefined", js: "undefined", typ: i(0) },
     ], false),
-    "Obj5": o([
-        { json: "UUID", js: "UUID", typ: r("UUID") },
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
-        { json: "YES", js: "YES", typ: r("Yes") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "union", js: "union", typ: r("Union") },
-        { json: "unowned", js: "unowned", typ: r("Unowned") },
-        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
-        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
-        { json: "ushort", js: "ushort", typ: r("Ushort") },
-        { json: "using", js: "using", typ: r("Using") },
-        { json: "var", js: "var", typ: r("Var") },
-        { json: "virtual", js: "virtual", typ: r("Virtual") },
-        { json: "void", js: "void", typ: r("Void") },
-        { json: "volatile", js: "volatile", typ: r("Volatile") },
-        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
-        { json: "weak", js: "weak", typ: r("Weak") },
-        { json: "where", js: "where", typ: r("Where") },
-        { json: "while", js: "while", typ: r("While") },
-        { json: "willSet", js: "willSet", typ: r("WillSet") },
-        { json: "with", js: "with", typ: r("With") },
-        { json: "xor", js: "xor", typ: r("Xor") },
-        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
-        { json: "yield", js: "yield", typ: r("Yield") },
-    ], false),
-    "UUID": o([
-        { json: "UUID", js: "UUID", typ: i(0) },
-    ], false),
-    "Utf8JSONReader": o([
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
-    ], false),
-    "Utf8JSONWriter": o([
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
-    ], false),
-    "Yes": o([
-        { json: "YES", js: "YES", typ: i(0) },
-    ], false),
     "Union": o([
         { json: "union", js: "union", typ: i(0) },
     ], false),
diff --git a/base/golang/test/inputs/json/priority/keywords.json/default/quicktype.go b/head/golang/test/inputs/json/priority/keywords.json/default/quicktype.go
index ce6ec3f..7915b5b 100644
--- a/base/golang/test/inputs/json/priority/keywords.json/default/quicktype.go
+++ b/head/golang/test/inputs/json/priority/keywords.json/default/quicktype.go
@@ -88,13 +88,6 @@ type Obj1 struct {
 	DateOnly          DateOnly          `json:"DateOnly"`
 	DateOnlyConverter DateOnlyConverter `json:"DateOnlyConverter"`
 	DateParseHandling DateParseHandling `json:"date_parse_handling"`
-	DateTime          DateTime          `json:"DateTime"`
-	DateTimeStyles    DateTimeStyles    `json:"DateTimeStyles"`
-	Debugger          Debugger          `json:"debugger"`
-	Decimal           Decimal           `json:"decimal"`
-	Declare           Declare           `json:"declare"`
-	Decltype          Decltype          `json:"decltype"`
-	DecodeString      DecodeString      `json:"decode_string"`
 	Dummy             int64             `json:"dummy"`
 	Empty             Empty             `json:"_"`
 	Imaginery         Imaginery         `json:"_Imaginery"`
@@ -336,34 +329,6 @@ type DateParseHandling struct {
 	DateParseHandling int64 `json:"date_parse_handling"`
 }
 
-type DateTime struct {
-	DateTime time.Time `json:"DateTime"`
-}
-
-type DateTimeStyles struct {
-	DateTimeStyles int64 `json:"DateTimeStyles"`
-}
-
-type Debugger struct {
-	Debugger int64 `json:"debugger"`
-}
-
-type Decimal struct {
-	Decimal int64 `json:"decimal"`
-}
-
-type Declare struct {
-	Declare int64 `json:"declare"`
-}
-
-type Decltype struct {
-	Decltype int64 `json:"decltype"`
-}
-
-type DecodeString struct {
-	DecodeString int64 `json:"decode_string"`
-}
-
 type Empty struct {
 	Empty int64 `json:"_"`
 }
@@ -389,6 +354,13 @@ type Obj1Bool struct {
 }
 
 type Obj2 struct {
+	DateTime         DateTime         `json:"DateTime"`
+	DateTimeStyles   DateTimeStyles   `json:"DateTimeStyles"`
+	Debugger         Debugger         `json:"debugger"`
+	Decimal          Decimal          `json:"decimal"`
+	Declare          Declare          `json:"declare"`
+	Decltype         Decltype         `json:"decltype"`
+	DecodeString     DecodeString     `json:"decode_string"`
 	Def              Def              `json:"def"`
 	Default          Default          `json:"default"`
 	Defer            Defer            `json:"defer"`
@@ -446,20 +418,37 @@ type Obj2 struct {
 	Imp              Imp              `json:"IMP"`
 	Implements       Implements       `json:"implements"`
 	Implicit         Implicit         `json:"implicit"`
-	Import           Import           `json:"import"`
-	In               In               `json:"in"`
-	Indirect         Indirect         `json:"indirect"`
-	Infix            Infix            `json:"infix"`
-	Init             Init             `json:"init"`
-	Inline           Inline           `json:"inline"`
-	Inout            Inout            `json:"inout"`
-	Instanceof       Instanceof       `json:"instanceof"`
-	Int              Int              `json:"int"`
-	Interface        Interface        `json:"interface"`
-	Internal         Internal         `json:"internal"`
 	Obj2False        FalseClass       `json:"false"`
 }
 
+type DateTime struct {
+	DateTime time.Time `json:"DateTime"`
+}
+
+type DateTimeStyles struct {
+	DateTimeStyles int64 `json:"DateTimeStyles"`
+}
+
+type Debugger struct {
+	Debugger int64 `json:"debugger"`
+}
+
+type Decimal struct {
+	Decimal int64 `json:"decimal"`
+}
+
+type Declare struct {
+	Declare int64 `json:"declare"`
+}
+
+type Decltype struct {
+	Decltype int64 `json:"decltype"`
+}
+
+type DecodeString struct {
+	DecodeString int64 `json:"decode_string"`
+}
+
 type Def struct {
 	Def int64 `json:"def"`
 }
@@ -684,50 +673,6 @@ type Implicit struct {
 	Implicit int64 `json:"implicit"`
 }
 
-type Import struct {
-	Import int64 `json:"import"`
-}
-
-type In struct {
-	In int64 `json:"in"`
-}
-
-type Indirect struct {
-	Indirect int64 `json:"indirect"`
-}
-
-type Infix struct {
-	Infix int64 `json:"infix"`
-}
-
-type Init struct {
-	Init int64 `json:"init"`
-}
-
-type Inline struct {
-	Inline int64 `json:"inline"`
-}
-
-type Inout struct {
-	Inout int64 `json:"inout"`
-}
-
-type Instanceof struct {
-	Instanceof int64 `json:"instanceof"`
-}
-
-type Int struct {
-	Int int64 `json:"int"`
-}
-
-type Interface struct {
-	Interface int64 `json:"interface"`
-}
-
-type Internal struct {
-	Internal int64 `json:"internal"`
-}
-
 type FalseClass struct {
 	False int64 `json:"false"`
 }
@@ -735,6 +680,17 @@ type FalseClass struct {
 type Obj3 struct {
 	Dummy                      int64                      `json:"dummy"`
 	ISODateTimeOffsetConverter ISODateTimeOffsetConverter `json:"IsoDateTimeOffsetConverter"`
+	Import                     Import                     `json:"import"`
+	In                         In                         `json:"in"`
+	Indirect                   Indirect                   `json:"indirect"`
+	Infix                      Infix                      `json:"infix"`
+	Init                       Init                       `json:"init"`
+	Inline                     Inline                     `json:"inline"`
+	Inout                      Inout                      `json:"inout"`
+	Instanceof                 Instanceof                 `json:"instanceof"`
+	Int                        Int                        `json:"int"`
+	Interface                  Interface                  `json:"interface"`
+	Internal                   Internal                   `json:"internal"`
 	Is                         Is                         `json:"is"`
 	Iterable                   Iterable                   `json:"iterable"`
 	JSON                       JSON                       `json:"json"`
@@ -785,45 +741,58 @@ type Obj3 struct {
 	Not                        Not                        `json:"not"`
 	NotEq                      NotEq                      `json:"not_eq"`
 	Null                       Null                       `json:"NULL"`
-	Nullptr                    Nullptr                    `json:"nullptr"`
-	Number                     Number                     `json:"number"`
 	Obj3None                   NoneClass                  `json:"none"`
 	Obj3Null                   NullClass                  `json:"null"`
-	Obj3Protocol               ProtocolClass              `json:"protocol"`
-	Object                     Object                     `json:"object"`
-	ObjectMapper               ObjectMapper               `json:"ObjectMapper"`
-	Of                         Of                         `json:"of"`
-	Oneway                     Oneway                     `json:"oneway"`
-	Open                       Open                       `json:"open"`
-	Operator                   Operator                   `json:"operator"`
-	Optional                   Optional                   `json:"optional"`
-	Or                         Or                         `json:"or"`
-	OrEq                       OrEq                       `json:"or_eq"`
-	Out                        Out                        `json:"out"`
-	Override                   Override                   `json:"override"`
-	Package                    Package                    `json:"package"`
-	Params                     Params                     `json:"params"`
-	Pass                       Pass                       `json:"pass"`
-	Port                       Port                       `json:"port"`
-	Postfix                    Postfix                    `json:"postfix"`
-	Precedence                 Precedence                 `json:"precedence"`
-	Prefix                     Prefix                     `json:"prefix"`
-	Print                      Print                      `json:"print"`
-	PrintMembers               PrintMembers               `json:"printMembers"`
-	Printf                     Printf                     `json:"printf"`
-	Private                    Private                    `json:"private"`
-	Protected                  Protected                  `json:"protected"`
-	Protocol                   Protocol                   `json:"Protocol"`
-	SerializerProvider         SerializerProvider         `json:"SerializerProvider"`
-	SimpleModule               SimpleModule               `json:"SimpleModule"`
-	StdDeserializer            StdDeserializer            `json:"StdDeserializer"`
-	StdSerializer              StdSerializer              `json:"StdSerializer"`
 }
 
 type ISODateTimeOffsetConverter struct {
 	ISODateTimeOffsetConverter int64 `json:"IsoDateTimeOffsetConverter"`
 }
 
+type Import struct {
+	Import int64 `json:"import"`
+}
+
+type In struct {
+	In int64 `json:"in"`
+}
+
+type Indirect struct {
+	Indirect int64 `json:"indirect"`
+}
+
+type Infix struct {
+	Infix int64 `json:"infix"`
+}
+
+type Init struct {
+	Init int64 `json:"init"`
+}
+
+type Inline struct {
+	Inline int64 `json:"inline"`
+}
+
+type Inout struct {
+	Inout int64 `json:"inout"`
+}
+
+type Instanceof struct {
+	Instanceof int64 `json:"instanceof"`
+}
+
+type Int struct {
+	Int int64 `json:"int"`
+}
+
+type Interface struct {
+	Interface int64 `json:"interface"`
+}
+
+type Internal struct {
+	Internal int64 `json:"internal"`
+}
+
 type Is struct {
 	Is int64 `json:"is"`
 }
@@ -1024,14 +993,6 @@ type Null struct {
 	Null int64 `json:"NULL"`
 }
 
-type Nullptr struct {
-	Nullptr int64 `json:"nullptr"`
-}
-
-type Number struct {
-	Number int64 `json:"number"`
-}
-
 type NoneClass struct {
 	None int64 `json:"none"`
 }
@@ -1040,10 +1001,90 @@ type NullClass struct {
 	Null int64 `json:"null"`
 }
 
+type Obj4 struct {
+	Dummy              int64              `json:"dummy"`
+	Nullptr            Nullptr            `json:"nullptr"`
+	Number             Number             `json:"number"`
+	Obj4Protocol       ProtocolClass      `json:"protocol"`
+	Obj4Self           SelfClass          `json:"self"`
+	Object             Object             `json:"object"`
+	ObjectMapper       ObjectMapper       `json:"ObjectMapper"`
+	Of                 Of                 `json:"of"`
+	Oneway             Oneway             `json:"oneway"`
+	Open               Open               `json:"open"`
+	Operator           Operator           `json:"operator"`
+	Optional           Optional           `json:"optional"`
+	Or                 Or                 `json:"or"`
+	OrEq               OrEq               `json:"or_eq"`
+	Out                Out                `json:"out"`
+	Override           Override           `json:"override"`
+	Package            Package            `json:"package"`
+	Params             Params             `json:"params"`
+	Pass               Pass               `json:"pass"`
+	Port               Port               `json:"port"`
+	Postfix            Postfix            `json:"postfix"`
+	Precedence         Precedence         `json:"precedence"`
+	Prefix             Prefix             `json:"prefix"`
+	Print              Print              `json:"print"`
+	PrintMembers       PrintMembers       `json:"printMembers"`
+	Printf             Printf             `json:"printf"`
+	Private            Private            `json:"private"`
+	Protected          Protected          `json:"protected"`
+	Protocol           Protocol           `json:"Protocol"`
+	Public             Public             `json:"public"`
+	Quicktype          Quicktype          `json:"quicktype"`
+	Raise              Raise              `json:"raise"`
+	Range              Range              `json:"range"`
+	Readonly           Readonly           `json:"readonly"`
+	Ref                Ref                `json:"ref"`
+	RegExp             RegExp             `json:"RegExp"`
+	Register           Register           `json:"register"`
+	ReinterpretCast    ReinterpretCast    `json:"reinterpret_cast"`
+	Repeat             Repeat             `json:"repeat"`
+	Require            Require            `json:"require"`
+	Required           Required           `json:"required"`
+	Requires           Requires           `json:"requires"`
+	Restrict           Restrict           `json:"restrict"`
+	Retain             Retain             `json:"retain"`
+	Rethrows           Rethrows           `json:"rethrows"`
+	Return             Return             `json:"return"`
+	Right              Right              `json:"right"`
+	RuntimeType        RuntimeType        `json:"runtimeType"`
+	S                  S                  `json:"s"`
+	Sbyte              Sbyte              `json:"sbyte"`
+	Sealed             Sealed             `json:"sealed"`
+	Sel                Sel                `json:"SEL"`
+	Select             Select             `json:"select"`
+	Self               Self               `json:"Self"`
+	Serialize          Serialize          `json:"serialize"`
+	SerializerProvider SerializerProvider `json:"SerializerProvider"`
+	Set                Set                `json:"set"`
+	Short              Short              `json:"short"`
+	Signed             Signed             `json:"signed"`
+	SimpleModule       SimpleModule       `json:"SimpleModule"`
+	Sizeof             Sizeof             `json:"sizeof"`
+	Stackalloc         Stackalloc         `json:"stackalloc"`
+	Standards          Standards          `json:"Standards"`
+	Static             Static             `json:"static"`
+	StaticAssert       StaticAssert       `json:"static_assert"`
+}
+
+type Nullptr struct {
+	Nullptr int64 `json:"nullptr"`
+}
+
+type Number struct {
+	Number int64 `json:"number"`
+}
+
 type ProtocolClass struct {
 	Protocol int64 `json:"protocol"`
 }
 
+type SelfClass struct {
+	Self int64 `json:"self"`
+}
+
 type Object struct {
 	Object int64 `json:"object"`
 }
@@ -1140,109 +1181,6 @@ type Protocol struct {
 	Protocol int64 `json:"Protocol"`
 }
 
-type SerializerProvider struct {
-	SerializerProvider int64 `json:"SerializerProvider"`
-}
-
-type SimpleModule struct {
-	SimpleModule int64 `json:"SimpleModule"`
-}
-
-type StdDeserializer struct {
-	StdDeserializer int64 `json:"StdDeserializer"`
-}
-
-type StdSerializer struct {
-	StdSerializer int64 `json:"StdSerializer"`
-}
-
-type Obj4 struct {
-	Dummy             int64             `json:"dummy"`
-	Obj4Self          SelfClass         `json:"self"`
-	Obj4True          TrueClass         `json:"true"`
-	Obj4Type          TypeClass         `json:"type"`
-	Public            Public            `json:"public"`
-	Quicktype         Quicktype         `json:"quicktype"`
-	Raise             Raise             `json:"raise"`
-	Range             Range             `json:"range"`
-	Readonly          Readonly          `json:"readonly"`
-	Ref               Ref               `json:"ref"`
-	RegExp            RegExp            `json:"RegExp"`
-	Register          Register          `json:"register"`
-	ReinterpretCast   ReinterpretCast   `json:"reinterpret_cast"`
-	Repeat            Repeat            `json:"repeat"`
-	Require           Require           `json:"require"`
-	Required          Required          `json:"required"`
-	Requires          Requires          `json:"requires"`
-	Restrict          Restrict          `json:"restrict"`
-	Retain            Retain            `json:"retain"`
-	Rethrows          Rethrows          `json:"rethrows"`
-	Return            Return            `json:"return"`
-	Right             Right             `json:"right"`
-	RuntimeType       RuntimeType       `json:"runtimeType"`
-	S                 S                 `json:"s"`
-	Sbyte             Sbyte             `json:"sbyte"`
-	Sealed            Sealed            `json:"sealed"`
-	Sel               Sel               `json:"SEL"`
-	Select            Select            `json:"select"`
-	Self              Self              `json:"Self"`
-	Serialize         Serialize         `json:"serialize"`
-	Set               Set               `json:"set"`
-	Short             Short             `json:"short"`
-	Signed            Signed            `json:"signed"`
-	Sizeof            Sizeof            `json:"sizeof"`
-	Stackalloc        Stackalloc        `json:"stackalloc"`
-	Standards         Standards         `json:"Standards"`
-	Static            Static            `json:"static"`
-	StaticAssert      StaticAssert      `json:"static_assert"`
-	StaticCast        StaticCast        `json:"static_cast"`
-	Strictfp          Strictfp          `json:"strictfp"`
-	String            String            `json:"string"`
-	Struct            Struct            `json:"struct"`
-	Subscript         Subscript         `json:"subscript"`
-	Super             Super             `json:"super"`
-	Switch            Switch            `json:"switch"`
-	Symbol            Symbol            `json:"symbol"`
-	Synchronized      Synchronized      `json:"synchronized"`
-	System            System            `json:"system"`
-	Template          Template          `json:"template"`
-	Then              Then              `json:"then"`
-	This              This              `json:"this"`
-	ThreadLocal       ThreadLocal       `json:"thread_local"`
-	Throw             Throw             `json:"throw"`
-	Throws            Throws            `json:"throws"`
-	TimeOnly          TimeOnly          `json:"TimeOnly"`
-	TimeOnlyConverter TimeOnlyConverter `json:"TimeOnlyConverter"`
-	ToJSON            ToJSON            `json:"to_json"`
-	ToString          ToString          `json:"toString"`
-	TopLevel          TopLevelClass     `json:"top_level"`
-	Transient         Transient         `json:"transient"`
-	True              True              `json:"True"`
-	Try               Try               `json:"try"`
-	Type              Type              `json:"Type"`
-	Typealias         Typealias         `json:"typealias"`
-	Typedef           Typedef           `json:"typedef"`
-	Typeid            Typeid            `json:"typeid"`
-	Typename          Typename          `json:"typename"`
-	Typeof            Typeof            `json:"typeof"`
-	Uint              Uint              `json:"uint"`
-	Ulong             Ulong             `json:"ulong"`
-	Unchecked         Unchecked         `json:"unchecked"`
-	Undefined         Undefined         `json:"undefined"`
-}
-
-type SelfClass struct {
-	Self int64 `json:"self"`
-}
-
-type TrueClass struct {
-	True int64 `json:"true"`
-}
-
-type TypeClass struct {
-	Type int64 `json:"type"`
-}
-
 type Public struct {
 	Public int64 `json:"public"`
 }
@@ -1347,6 +1285,10 @@ type Serialize struct {
 	Serialize int64 `json:"serialize"`
 }
 
+type SerializerProvider struct {
+	SerializerProvider int64 `json:"SerializerProvider"`
+}
+
 type Set struct {
 	Set int64 `json:"set"`
 }
@@ -1359,6 +1301,10 @@ type Signed struct {
 	Signed int64 `json:"signed"`
 }
 
+type SimpleModule struct {
+	SimpleModule int64 `json:"SimpleModule"`
+}
+
 type Sizeof struct {
 	Sizeof int64 `json:"sizeof"`
 }
@@ -1379,10 +1325,91 @@ type StaticAssert struct {
 	StaticAssert int64 `json:"static_assert"`
 }
 
+type Obj5 struct {
+	Dummy             int64             `json:"dummy"`
+	Obj5True          TrueClass         `json:"true"`
+	Obj5Type          TypeClass         `json:"type"`
+	StaticCast        StaticCast        `json:"static_cast"`
+	StdDeserializer   StdDeserializer   `json:"StdDeserializer"`
+	StdSerializer     StdSerializer     `json:"StdSerializer"`
+	Strictfp          Strictfp          `json:"strictfp"`
+	String            String            `json:"string"`
+	Struct            Struct            `json:"struct"`
+	Subscript         Subscript         `json:"subscript"`
+	Super             Super             `json:"super"`
+	Switch            Switch            `json:"switch"`
+	Symbol            Symbol            `json:"symbol"`
+	Synchronized      Synchronized      `json:"synchronized"`
+	System            System            `json:"system"`
+	Template          Template          `json:"template"`
+	Then              Then              `json:"then"`
+	This              This              `json:"this"`
+	ThreadLocal       ThreadLocal       `json:"thread_local"`
+	Throw             Throw             `json:"throw"`
+	Throws            Throws            `json:"throws"`
+	TimeOnly          TimeOnly          `json:"TimeOnly"`
+	TimeOnlyConverter TimeOnlyConverter `json:"TimeOnlyConverter"`
+	ToJSON            ToJSON            `json:"to_json"`
+	ToString          ToString          `json:"toString"`
+	TopLevel          TopLevelClass     `json:"top_level"`
+	Transient         Transient         `json:"transient"`
+	True              True              `json:"True"`
+	Try               Try               `json:"try"`
+	Type              Type              `json:"Type"`
+	Typealias         Typealias         `json:"typealias"`
+	Typedef           Typedef           `json:"typedef"`
+	Typeid            Typeid            `json:"typeid"`
+	Typename          Typename          `json:"typename"`
+	Typeof            Typeof            `json:"typeof"`
+	UUID              UUID              `json:"UUID"`
+	Uint              Uint              `json:"uint"`
+	Ulong             Ulong             `json:"ulong"`
+	Unchecked         Unchecked         `json:"unchecked"`
+	Undefined         Undefined         `json:"undefined"`
+	Union             Union             `json:"union"`
+	Unowned           Unowned           `json:"unowned"`
+	Unsafe            Unsafe            `json:"unsafe"`
+	Unsigned          Unsigned          `json:"unsigned"`
+	Ushort            Ushort            `json:"ushort"`
+	Using             Using             `json:"using"`
+	Utf8JSONReader    Utf8JSONReader    `json:"Utf8JsonReader"`
+	Utf8JSONWriter    Utf8JSONWriter    `json:"Utf8JsonWriter"`
+	Var               Var               `json:"var"`
+	Virtual           Virtual           `json:"virtual"`
+	Void              Void              `json:"void"`
+	Volatile          Volatile          `json:"volatile"`
+	WcharT            WcharT            `json:"wchar_t"`
+	Weak              Weak              `json:"weak"`
+	Where             Where             `json:"where"`
+	While             While             `json:"while"`
+	WillSet           WillSet           `json:"willSet"`
+	With              With              `json:"with"`
+	Xor               Xor               `json:"xor"`
+	XorEq             XorEq             `json:"xor_eq"`
+	Yes               Yes               `json:"YES"`
+	Yield             Yield             `json:"yield"`
+}
+
+type TrueClass struct {
+	True int64 `json:"true"`
+}
+
+type TypeClass struct {
+	Type int64 `json:"type"`
+}
+
 type StaticCast struct {
 	StaticCast int64 `json:"static_cast"`
 }
 
+type StdDeserializer struct {
+	StdDeserializer int64 `json:"StdDeserializer"`
+}
+
+type StdSerializer struct {
+	StdSerializer int64 `json:"StdSerializer"`
+}
+
 type Strictfp struct {
 	Strictfp int64 `json:"strictfp"`
 }
@@ -1499,6 +1526,10 @@ type Typeof struct {
 	Typeof int64 `json:"typeof"`
 }
 
+type UUID struct {
+	UUID int64 `json:"UUID"`
+}
+
 type Uint struct {
 	Uint int64 `json:"uint"`
 }
@@ -1515,37 +1546,6 @@ type Undefined struct {
 	Undefined int64 `json:"undefined"`
 }
 
-type Obj5 struct {
-	Dummy          int64          `json:"dummy"`
-	UUID           UUID           `json:"UUID"`
-	Union          Union          `json:"union"`
-	Unowned        Unowned        `json:"unowned"`
-	Unsafe         Unsafe         `json:"unsafe"`
-	Unsigned       Unsigned       `json:"unsigned"`
-	Ushort         Ushort         `json:"ushort"`
-	Using          Using          `json:"using"`
-	Utf8JSONReader Utf8JSONReader `json:"Utf8JsonReader"`
-	Utf8JSONWriter Utf8JSONWriter `json:"Utf8JsonWriter"`
-	Var            Var            `json:"var"`
-	Virtual        Virtual        `json:"virtual"`
-	Void           Void           `json:"void"`
-	Volatile       Volatile       `json:"volatile"`
-	WcharT         WcharT         `json:"wchar_t"`
-	Weak           Weak           `json:"weak"`
-	Where          Where          `json:"where"`
-	While          While          `json:"while"`
-	WillSet        WillSet        `json:"willSet"`
-	With           With           `json:"with"`
-	Xor            Xor            `json:"xor"`
-	XorEq          XorEq          `json:"xor_eq"`
-	Yes            Yes            `json:"YES"`
-	Yield          Yield          `json:"yield"`
-}
-
-type UUID struct {
-	UUID int64 `json:"UUID"`
-}
-
 type Union struct {
 	Union int64 `json:"union"`
 }
diff --git a/base/haskell/test/inputs/json/priority/keywords.json/default/QuickType.hs b/head/haskell/test/inputs/json/priority/keywords.json/default/QuickType.hs
index 8aa013b..b67b369 100644
--- a/base/haskell/test/inputs/json/priority/keywords.json/default/QuickType.hs
+++ b/head/haskell/test/inputs/json/priority/keywords.json/default/QuickType.hs
@@ -59,13 +59,6 @@ module QuickType
     , DateOnly (..)
     , DateOnlyConverter (..)
     , DateParseHandling (..)
-    , DateTime (..)
-    , DateTimeStyles (..)
-    , Debugger (..)
-    , Decimal (..)
-    , Declare (..)
-    , Decltype (..)
-    , DecodeString (..)
     , Empty (..)
     , Imaginery (..)
     , AnyClass (..)
@@ -76,6 +69,13 @@ module QuickType
     , Obj1Bool (..)
     , ClassClass (..)
     , Obj2 (..)
+    , DateTime (..)
+    , DateTimeStyles (..)
+    , Debugger (..)
+    , Decimal (..)
+    , Declare (..)
+    , Decltype (..)
+    , DecodeString (..)
     , Def (..)
     , Defer (..)
     , Deinit (..)
@@ -127,6 +127,13 @@ module QuickType
     , Imp (..)
     , Implements (..)
     , Implicit (..)
+    , Default (..)
+    , Do (..)
+    , Else (..)
+    , Obj2False (..)
+    , ID (..)
+    , If (..)
+    , Obj3 (..)
     , Indirect (..)
     , Init (..)
     , Inline (..)
@@ -135,16 +142,6 @@ module QuickType
     , IntClass (..)
     , Interface (..)
     , Internal (..)
-    , Default (..)
-    , Do (..)
-    , Else (..)
-    , Obj2False (..)
-    , ID (..)
-    , If (..)
-    , Import (..)
-    , In (..)
-    , Infix (..)
-    , Obj3 (..)
     , Is (..)
     , ISODateTimeOffsetConverter (..)
     , Iterable (..)
@@ -194,14 +191,19 @@ module QuickType
     , NSError (..)
     , NSString (..)
     , NULLClass (..)
-    , Nullptr (..)
-    , NumberClass (..)
+    , Import (..)
+    , In (..)
+    , Infix (..)
     , Let (..)
     , Module (..)
     , NoneClass (..)
     , NullClass (..)
+    , Obj4 (..)
+    , Nullptr (..)
+    , NumberClass (..)
     , Of (..)
     , ProtocolClass (..)
+    , SelfClass (..)
     , ObjectClass (..)
     , ObjectMapper (..)
     , Oneway (..)
@@ -225,17 +227,7 @@ module QuickType
     , Private (..)
     , Protected (..)
     , Protocol (..)
-    , SerializerProvider (..)
-    , SimpleModule (..)
-    , StdDeserializer (..)
-    , StdSerializer (..)
-    , Obj4 (..)
-    , SelfClass (..)
-    , Then (..)
-    , Obj4True (..)
-    , Type (..)
     , Public (..)
-    , TypeClass (..)
     , Quicktype (..)
     , Raise (..)
     , Range (..)
@@ -261,15 +253,25 @@ module QuickType
     , Select (..)
     , Self (..)
     , Serialize (..)
+    , SerializerProvider (..)
     , Set (..)
     , Short (..)
     , Signed (..)
+    , SimpleModule (..)
     , Sizeof (..)
     , Stackalloc (..)
     , Standards (..)
     , Static (..)
     , StaticAssert (..)
+    , Obj5 (..)
+    , Then (..)
+    , Obj5True (..)
+    , Type (..)
+    , Where (..)
+    , TypeClass (..)
     , StaticCast (..)
+    , StdDeserializer (..)
+    , StdSerializer (..)
     , Strictfp (..)
     , StringClass (..)
     , Struct (..)
@@ -301,8 +303,6 @@ module QuickType
     , Ulong (..)
     , Unchecked (..)
     , Undefined (..)
-    , Obj5 (..)
-    , Where (..)
     , Union (..)
     , Unowned (..)
     , Unsafe (..)
@@ -400,13 +400,6 @@ data Obj1 = Obj1
     , dateOnlyObj1 :: DateOnly
     , dateOnlyConverterObj1 :: DateOnlyConverter
     , dateParseHandlingObj1 :: DateParseHandling
-    , dateTimeObj1 :: DateTime
-    , dateTimeStylesObj1 :: DateTimeStyles
-    , debuggerObj1 :: Debugger
-    , decimalObj1 :: Decimal
-    , declareObj1 :: Declare
-    , decltypeObj1 :: Decltype
-    , decodeStringObj1 :: DecodeString
     , dummyObj1 :: Int
     , emptyObj1 :: Empty
     , imagineryObj1 :: Imaginery
@@ -639,34 +632,6 @@ data DateParseHandling = DateParseHandling
     { dateParseHandlingDateParseHandling :: Int
     } deriving (Show)
 
-data DateTime = DateTime
-    { dateTimeDateTime :: Text
-    } deriving (Show)
-
-data DateTimeStyles = DateTimeStyles
-    { dateTimeStylesDateTimeStyles :: Int
-    } deriving (Show)
-
-data Debugger = Debugger
-    { debuggerDebugger :: Int
-    } deriving (Show)
-
-data Decimal = Decimal
-    { decimalDecimal :: Int
-    } deriving (Show)
-
-data Declare = Declare
-    { declareDeclare :: Int
-    } deriving (Show)
-
-data Decltype = Decltype
-    { decltypeDecltype :: Int
-    } deriving (Show)
-
-data DecodeString = DecodeString
-    { decodeStringDecodeString :: Int
-    } deriving (Show)
-
 data Empty = Empty
     { emptyEmpty :: Int
     } deriving (Show)
@@ -704,7 +669,14 @@ data ClassClass = ClassClass
     } deriving (Show)
 
 data Obj2 = Obj2
-    { defObj2 :: Def
+    { dateTimeObj2 :: DateTime
+    , dateTimeStylesObj2 :: DateTimeStyles
+    , debuggerObj2 :: Debugger
+    , decimalObj2 :: Decimal
+    , declareObj2 :: Declare
+    , decltypeObj2 :: Decltype
+    , decodeStringObj2 :: DecodeString
+    , defObj2 :: Def
     , deferObj2 :: Defer
     , deinitObj2 :: Deinit
     , delObj2 :: Del
@@ -756,23 +728,40 @@ data Obj2 = Obj2
     , impObj2 :: Imp
     , implementsObj2 :: Implements
     , implicitObj2 :: Implicit
-    , indirectObj2 :: Indirect
-    , initObj2 :: Init
-    , inlineObj2 :: Inline
-    , inoutObj2 :: Inout
-    , instanceofObj2 :: Instanceof
-    , intObj2 :: IntClass
-    , interfaceObj2 :: Interface
-    , internalObj2 :: Internal
     , obj2DefaultObj2 :: Default
     , obj2DoObj2 :: Do
     , obj2ElseObj2 :: Else
     , obj2FalseObj2 :: Obj2False
     , obj2IDObj2 :: ID
     , obj2IfObj2 :: If
-    , obj2ImportObj2 :: Import
-    , obj2InObj2 :: In
-    , obj2InfixObj2 :: Infix
+    } deriving (Show)
+
+data DateTime = DateTime
+    { dateTimeDateTime :: Text
+    } deriving (Show)
+
+data DateTimeStyles = DateTimeStyles
+    { dateTimeStylesDateTimeStyles :: Int
+    } deriving (Show)
+
+data Debugger = Debugger
+    { debuggerDebugger :: Int
+    } deriving (Show)
+
+data Decimal = Decimal
+    { decimalDecimal :: Int
+    } deriving (Show)
+
+data Declare = Declare
+    { declareDeclare :: Int
+    } deriving (Show)
+
+data Decltype = Decltype
+    { decltypeDecltype :: Int
+    } deriving (Show)
+
+data DecodeString = DecodeString
+    { decodeStringDecodeString :: Int
     } deriving (Show)
 
 data Def = Def
@@ -984,38 +973,6 @@ data Implicit = Implicit
     { implicitImplicit :: Int
     } deriving (Show)
 
-data Indirect = Indirect
-    { indirectIndirect :: Int
-    } deriving (Show)
-
-data Init = Init
-    { initInit :: Int
-    } deriving (Show)
-
-data Inline = Inline
-    { inlineInline :: Int
-    } deriving (Show)
-
-data Inout = Inout
-    { inoutInout :: Int
-    } deriving (Show)
-
-data Instanceof = Instanceof
-    { instanceofInstanceof :: Int
-    } deriving (Show)
-
-data IntClass = IntClass
-    { intIntClass :: Int
-    } deriving (Show)
-
-data Interface = Interface
-    { interfaceInterface :: Int
-    } deriving (Show)
-
-data Internal = Internal
-    { internalInternal :: Int
-    } deriving (Show)
-
 data Default = Default
     { defaultDefaultDefault :: Int
     } deriving (Show)
@@ -1040,20 +997,16 @@ data If = If
     { ifIfIf :: Int
     } deriving (Show)
 
-data Import = Import
-    { importImportImport :: Int
-    } deriving (Show)
-
-data In = In
-    { inInIn :: Int
-    } deriving (Show)
-
-data Infix = Infix
-    { infixInfixInfix :: Int
-    } deriving (Show)
-
 data Obj3 = Obj3
     { dummyObj3 :: Int
+    , indirectObj3 :: Indirect
+    , initObj3 :: Init
+    , inlineObj3 :: Inline
+    , inoutObj3 :: Inout
+    , instanceofObj3 :: Instanceof
+    , intObj3 :: IntClass
+    , interfaceObj3 :: Interface
+    , internalObj3 :: Internal
     , isObj3 :: Is
     , isoDateTimeOffsetConverterObj3 :: ISODateTimeOffsetConverter
     , iterableObj3 :: Iterable
@@ -1103,41 +1056,45 @@ data Obj3 = Obj3
     , nsErrorObj3 :: NSError
     , nsStringObj3 :: NSString
     , nullObj3 :: NULLClass
-    , nullptrObj3 :: Nullptr
-    , numberObj3 :: NumberClass
+    , obj3ImportObj3 :: Import
+    , obj3InObj3 :: In
+    , obj3InfixObj3 :: Infix
     , obj3LetObj3 :: Let
     , obj3ModuleObj3 :: Module
     , obj3NoneObj3 :: NoneClass
     , obj3NullObj3 :: NullClass
-    , obj3OfObj3 :: Of
-    , obj3ProtocolObj3 :: ProtocolClass
-    , objectObj3 :: ObjectClass
-    , objectMapperObj3 :: ObjectMapper
-    , onewayObj3 :: Oneway
-    , openObj3 :: Open
-    , operatorObj3 :: Operator
-    , optionalObj3 :: Optional
-    , orObj3 :: Or
-    , orEqObj3 :: OrEq
-    , outObj3 :: Out
-    , overrideObj3 :: Override
-    , packageObj3 :: Package
-    , paramsObj3 :: Params
-    , passObj3 :: Pass
-    , portObj3 :: Port
-    , postfixObj3 :: Postfix
-    , precedenceObj3 :: Precedence
-    , prefixObj3 :: Prefix
-    , printObj3 :: Print
-    , printMembersObj3 :: PrintMembers
-    , printfObj3 :: Printf
-    , privateObj3 :: Private
-    , protectedObj3 :: Protected
-    , protocolObj3 :: Protocol
-    , serializerProviderObj3 :: SerializerProvider
-    , simpleModuleObj3 :: SimpleModule
-    , stdDeserializerObj3 :: StdDeserializer
-    , stdSerializerObj3 :: StdSerializer
+    } deriving (Show)
+
+data Indirect = Indirect
+    { indirectIndirect :: Int
+    } deriving (Show)
+
+data Init = Init
+    { initInit :: Int
+    } deriving (Show)
+
+data Inline = Inline
+    { inlineInline :: Int
+    } deriving (Show)
+
+data Inout = Inout
+    { inoutInout :: Int
+    } deriving (Show)
+
+data Instanceof = Instanceof
+    { instanceofInstanceof :: Int
+    } deriving (Show)
+
+data IntClass = IntClass
+    { intIntClass :: Int
+    } deriving (Show)
+
+data Interface = Interface
+    { interfaceInterface :: Int
+    } deriving (Show)
+
+data Internal = Internal
+    { internalInternal :: Int
     } deriving (Show)
 
 data Is = Is
@@ -1336,12 +1293,16 @@ data NULLClass = NULLClass
     { nullNULLClass :: Int
     } deriving (Show)
 
-data Nullptr = Nullptr
-    { nullptrNullptr :: Int
+data Import = Import
+    { importImportImport :: Int
     } deriving (Show)
 
-data NumberClass = NumberClass
-    { numberNumberClass :: Int
+data In = In
+    { inInIn :: Int
+    } deriving (Show)
+
+data Infix = Infix
+    { infixInfixInfix :: Int
     } deriving (Show)
 
 data Let = Let
@@ -1360,6 +1321,82 @@ data NullClass = NullClass
     { nullNullClass :: Int
     } deriving (Show)
 
+data Obj4 = Obj4
+    { dummyObj4 :: Int
+    , nullptrObj4 :: Nullptr
+    , numberObj4 :: NumberClass
+    , obj4OfObj4 :: Of
+    , obj4ProtocolObj4 :: ProtocolClass
+    , obj4SelfObj4 :: SelfClass
+    , objectObj4 :: ObjectClass
+    , objectMapperObj4 :: ObjectMapper
+    , onewayObj4 :: Oneway
+    , openObj4 :: Open
+    , operatorObj4 :: Operator
+    , optionalObj4 :: Optional
+    , orObj4 :: Or
+    , orEqObj4 :: OrEq
+    , outObj4 :: Out
+    , overrideObj4 :: Override
+    , packageObj4 :: Package
+    , paramsObj4 :: Params
+    , passObj4 :: Pass
+    , portObj4 :: Port
+    , postfixObj4 :: Postfix
+    , precedenceObj4 :: Precedence
+    , prefixObj4 :: Prefix
+    , printObj4 :: Print
+    , printMembersObj4 :: PrintMembers
+    , printfObj4 :: Printf
+    , privateObj4 :: Private
+    , protectedObj4 :: Protected
+    , protocolObj4 :: Protocol
+    , publicObj4 :: Public
+    , quicktypeObj4 :: Quicktype
+    , raiseObj4 :: Raise
+    , rangeObj4 :: Range
+    , readonlyObj4 :: Readonly
+    , refObj4 :: Ref
+    , regExpObj4 :: RegExp
+    , registerObj4 :: Register
+    , reinterpretCastObj4 :: ReinterpretCast
+    , repeatObj4 :: Repeat
+    , requireObj4 :: Require
+    , requiredObj4 :: Required
+    , requiresObj4 :: Requires
+    , restrictObj4 :: Restrict
+    , retainObj4 :: Retain
+    , rethrowsObj4 :: Rethrows
+    , returnObj4 :: Return
+    , rightObj4 :: RightClass
+    , runtimeTypeObj4 :: RuntimeType
+    , sObj4 :: S
+    , sbyteObj4 :: Sbyte
+    , sealedObj4 :: Sealed
+    , selObj4 :: Sel
+    , selectObj4 :: Select
+    , selfObj4 :: Self
+    , serializeObj4 :: Serialize
+    , serializerProviderObj4 :: SerializerProvider
+    , setObj4 :: Set
+    , shortObj4 :: Short
+    , signedObj4 :: Signed
+    , simpleModuleObj4 :: SimpleModule
+    , sizeofObj4 :: Sizeof
+    , stackallocObj4 :: Stackalloc
+    , standardsObj4 :: Standards
+    , staticObj4 :: Static
+    , staticAssertObj4 :: StaticAssert
+    } deriving (Show)
+
+data Nullptr = Nullptr
+    { nullptrNullptr :: Int
+    } deriving (Show)
+
+data NumberClass = NumberClass
+    { numberNumberClass :: Int
+    } deriving (Show)
+
 data Of = Of
     { ofOfOf :: Int
     } deriving (Show)
@@ -1368,6 +1405,10 @@ data ProtocolClass = ProtocolClass
     { protocolProtocolClass :: Int
     } deriving (Show)
 
+data SelfClass = SelfClass
+    { selfSelfClass :: Int
+    } deriving (Show)
+
 data ObjectClass = ObjectClass
     { objectObjectClass :: Int
     } deriving (Show)
@@ -1460,121 +1501,10 @@ data Protocol = Protocol
     { protocolProtocol :: Int
     } deriving (Show)
 
-data SerializerProvider = SerializerProvider
-    { serializerProviderSerializerProvider :: Int
-    } deriving (Show)
-
-data SimpleModule = SimpleModule
-    { simpleModuleSimpleModule :: Int
-    } deriving (Show)
-
-data StdDeserializer = StdDeserializer
-    { stdDeserializerStdDeserializer :: Int
-    } deriving (Show)
-
-data StdSerializer = StdSerializer
-    { stdSerializerStdSerializer :: Int
-    } deriving (Show)
-
-data Obj4 = Obj4
-    { dummyObj4 :: Int
-    , obj4SelfObj4 :: SelfClass
-    , obj4ThenObj4 :: Then
-    , obj4TrueObj4 :: Obj4True
-    , obj4TypeObj4 :: Type
-    , publicObj4 :: Public
-    , purpleTypeObj4 :: TypeClass
-    , quicktypeObj4 :: Quicktype
-    , raiseObj4 :: Raise
-    , rangeObj4 :: Range
-    , readonlyObj4 :: Readonly
-    , refObj4 :: Ref
-    , regExpObj4 :: RegExp
-    , registerObj4 :: Register
-    , reinterpretCastObj4 :: ReinterpretCast
-    , repeatObj4 :: Repeat
-    , requireObj4 :: Require
-    , requiredObj4 :: Required
-    , requiresObj4 :: Requires
-    , restrictObj4 :: Restrict
-    , retainObj4 :: Retain
-    , rethrowsObj4 :: Rethrows
-    , returnObj4 :: Return
-    , rightObj4 :: RightClass
-    , runtimeTypeObj4 :: RuntimeType
-    , sObj4 :: S
-    , sbyteObj4 :: Sbyte
-    , sealedObj4 :: Sealed
-    , selObj4 :: Sel
-    , selectObj4 :: Select
-    , selfObj4 :: Self
-    , serializeObj4 :: Serialize
-    , setObj4 :: Set
-    , shortObj4 :: Short
-    , signedObj4 :: Signed
-    , sizeofObj4 :: Sizeof
-    , stackallocObj4 :: Stackalloc
-    , standardsObj4 :: Standards
-    , staticObj4 :: Static
-    , staticAssertObj4 :: StaticAssert
-    , staticCastObj4 :: StaticCast
-    , strictfpObj4 :: Strictfp
-    , stringObj4 :: StringClass
-    , structObj4 :: Struct
-    , subscriptObj4 :: Subscript
-    , superObj4 :: Super
-    , switchObj4 :: Switch
-    , symbolObj4 :: Symbol
-    , synchronizedObj4 :: Synchronized
-    , systemObj4 :: System
-    , templateObj4 :: Template
-    , thisObj4 :: This
-    , threadLocalObj4 :: ThreadLocal
-    , throwObj4 :: Throw
-    , throwsObj4 :: Throws
-    , timeOnlyObj4 :: TimeOnly
-    , timeOnlyConverterObj4 :: TimeOnlyConverter
-    , toJSONObj4 :: ToJSONClass
-    , toStringObj4 :: ToString
-    , topLevelObj4 :: TopLevel
-    , transientObj4 :: Transient
-    , trueObj4 :: TrueClass
-    , tryObj4 :: Try
-    , typealiasObj4 :: Typealias
-    , typedefObj4 :: Typedef
-    , typeidObj4 :: Typeid
-    , typenameObj4 :: Typename
-    , typeofObj4 :: Typeof
-    , uintObj4 :: Uint
-    , ulongObj4 :: Ulong
-    , uncheckedObj4 :: Unchecked
-    , undefinedObj4 :: Undefined
-    } deriving (Show)
-
-data SelfClass = SelfClass
-    { selfSelfClass :: Int
-    } deriving (Show)
-
-data Then = Then
-    { thenThenThen :: Int
-    } deriving (Show)
-
-data Obj4True = Obj4True
-    { trueObj4True :: Int
-    } deriving (Show)
-
-data Type = Type
-    { typeTypeType :: Int
-    } deriving (Show)
-
 data Public = Public
     { publicPublic :: Int
     } deriving (Show)
 
-data TypeClass = TypeClass
-    { typeTypeTypeClass :: Int
-    } deriving (Show)
-
 data Quicktype = Quicktype
     { quicktypeQuicktype :: Int
     } deriving (Show)
@@ -1675,6 +1605,10 @@ data Serialize = Serialize
     { serializeSerialize :: Int
     } deriving (Show)
 
+data SerializerProvider = SerializerProvider
+    { serializerProviderSerializerProvider :: Int
+    } deriving (Show)
+
 data Set = Set
     { setSet :: Int
     } deriving (Show)
@@ -1687,6 +1621,10 @@ data Signed = Signed
     { signedSigned :: Int
     } deriving (Show)
 
+data SimpleModule = SimpleModule
+    { simpleModuleSimpleModule :: Int
+    } deriving (Show)
+
 data Sizeof = Sizeof
     { sizeofSizeof :: Int
     } deriving (Show)
@@ -1707,10 +1645,103 @@ data StaticAssert = StaticAssert
     { staticAssertStaticAssert :: Int
     } deriving (Show)
 
+data Obj5 = Obj5
+    { dummyObj5 :: Int
+    , obj5ThenObj5 :: Then
+    , obj5TrueObj5 :: Obj5True
+    , obj5TypeObj5 :: Type
+    , obj5WhereObj5 :: Where
+    , purpleTypeObj5 :: TypeClass
+    , staticCastObj5 :: StaticCast
+    , stdDeserializerObj5 :: StdDeserializer
+    , stdSerializerObj5 :: StdSerializer
+    , strictfpObj5 :: Strictfp
+    , stringObj5 :: StringClass
+    , structObj5 :: Struct
+    , subscriptObj5 :: Subscript
+    , superObj5 :: Super
+    , switchObj5 :: Switch
+    , symbolObj5 :: Symbol
+    , synchronizedObj5 :: Synchronized
+    , systemObj5 :: System
+    , templateObj5 :: Template
+    , thisObj5 :: This
+    , threadLocalObj5 :: ThreadLocal
+    , throwObj5 :: Throw
+    , throwsObj5 :: Throws
+    , timeOnlyObj5 :: TimeOnly
+    , timeOnlyConverterObj5 :: TimeOnlyConverter
+    , toJSONObj5 :: ToJSONClass
+    , toStringObj5 :: ToString
+    , topLevelObj5 :: TopLevel
+    , transientObj5 :: Transient
+    , trueObj5 :: TrueClass
+    , tryObj5 :: Try
+    , typealiasObj5 :: Typealias
+    , typedefObj5 :: Typedef
+    , typeidObj5 :: Typeid
+    , typenameObj5 :: Typename
+    , typeofObj5 :: Typeof
+    , uintObj5 :: Uint
+    , ulongObj5 :: Ulong
+    , uncheckedObj5 :: Unchecked
+    , undefinedObj5 :: Undefined
+    , unionObj5 :: Union
+    , unownedObj5 :: Unowned
+    , unsafeObj5 :: Unsafe
+    , unsignedObj5 :: Unsigned
+    , ushortObj5 :: Ushort
+    , usingObj5 :: Using
+    , utf8JSONReaderObj5 :: Utf8JSONReader
+    , utf8JSONWriterObj5 :: Utf8JSONWriter
+    , uuidObj5 :: UUID
+    , varObj5 :: Var
+    , virtualObj5 :: Virtual
+    , voidObj5 :: Void
+    , volatileObj5 :: Volatile
+    , wcharTObj5 :: WcharT
+    , weakObj5 :: Weak
+    , whileObj5 :: While
+    , willSetObj5 :: WillSet
+    , withObj5 :: With
+    , xorObj5 :: Xor
+    , xorEqObj5 :: XorEq
+    , yesObj5 :: Yes
+    , yieldObj5 :: Yield
+    } deriving (Show)
+
+data Then = Then
+    { thenThenThen :: Int
+    } deriving (Show)
+
+data Obj5True = Obj5True
+    { trueObj5True :: Int
+    } deriving (Show)
+
+data Type = Type
+    { typeTypeType :: Int
+    } deriving (Show)
+
+data Where = Where
+    { whereWhereWhere :: Int
+    } deriving (Show)
+
+data TypeClass = TypeClass
+    { typeTypeTypeClass :: Int
+    } deriving (Show)
+
 data StaticCast = StaticCast
     { staticCastStaticCast :: Int
     } deriving (Show)
 
+data StdDeserializer = StdDeserializer
+    { stdDeserializerStdDeserializer :: Int
+    } deriving (Show)
+
+data StdSerializer = StdSerializer
+    { stdSerializerStdSerializer :: Int
+    } deriving (Show)
+
 data Strictfp = Strictfp
     { strictfpStrictfp :: Int
     } deriving (Show)
@@ -1835,37 +1866,6 @@ data Undefined = Undefined
     { undefinedUndefined :: Int
     } deriving (Show)
 
-data Obj5 = Obj5
-    { dummyObj5 :: Int
-    , obj5WhereObj5 :: Where
-    , unionObj5 :: Union
-    , unownedObj5 :: Unowned
-    , unsafeObj5 :: Unsafe
-    , unsignedObj5 :: Unsigned
-    , ushortObj5 :: Ushort
-    , usingObj5 :: Using
-    , utf8JSONReaderObj5 :: Utf8JSONReader
-    , utf8JSONWriterObj5 :: Utf8JSONWriter
-    , uuidObj5 :: UUID
-    , varObj5 :: Var
-    , virtualObj5 :: Virtual
-    , voidObj5 :: Void
-    , volatileObj5 :: Volatile
-    , wcharTObj5 :: WcharT
-    , weakObj5 :: Weak
-    , whileObj5 :: While
-    , willSetObj5 :: WillSet
-    , withObj5 :: With
-    , xorObj5 :: Xor
-    , xorEqObj5 :: XorEq
-    , yesObj5 :: Yes
-    , yieldObj5 :: Yield
-    } deriving (Show)
-
-data Where = Where
-    { whereWhereWhere :: Int
-    } deriving (Show)
-
 data Union = Union
     { unionUnion :: Int
     } deriving (Show)
@@ -1978,7 +1978,7 @@ instance FromJSON QuickType where
         <*> v .: "obj5"
 
 instance ToJSON Obj1 where
-    toJSON (Obj1 abstractObj1 alignasObj1 alignofObj1 andObj1 andEqObj1 anyObj1 arrayObj1 asmObj1 assertObj1 associatedtypeObj1 associativityObj1 asyncObj1 atomicObj1 atomicCancelObj1 atomicCommitObj1 atomicNoexceptObj1 autoObj1 awaitObj1 baseObj1 bitandObj1 bitorObj1 boolObj1 booleanObj1 breakObj1 bycopyObj1 byrefObj1 byteObj1 catchObj1 chanObj1 charObj1 char16TObj1 char32TObj1 checkedObj1 cloneObj1 coAwaitObj1 coReturnObj1 coYieldObj1 complObj1 complexObj1 conceptObj1 consoleObj1 constObj1 constCastObj1 constexprObj1 constructorObj1 continueObj1 convenienceObj1 convertObj1 converterObj1 cultureInfoObj1 dateObj1 dateFormatterObj1 dateOnlyObj1 dateOnlyConverterObj1 dateParseHandlingObj1 dateTimeObj1 dateTimeStylesObj1 debuggerObj1 decimalObj1 declareObj1 decltypeObj1 decodeStringObj1 dummyObj1 emptyObj1 imagineryObj1 obj1AnyObj1 obj1AsObj1 obj1BoolObj1 obj1CaseObj1 obj1ClassObj1 purpleBoolObj1 purpleClassObj1) =
+    toJSON (Obj1 abstractObj1 alignasObj1 alignofObj1 andObj1 andEqObj1 anyObj1 arrayObj1 asmObj1 assertObj1 associatedtypeObj1 associativityObj1 asyncObj1 atomicObj1 atomicCancelObj1 atomicCommitObj1 atomicNoexceptObj1 autoObj1 awaitObj1 baseObj1 bitandObj1 bitorObj1 boolObj1 booleanObj1 breakObj1 bycopyObj1 byrefObj1 byteObj1 catchObj1 chanObj1 charObj1 char16TObj1 char32TObj1 checkedObj1 cloneObj1 coAwaitObj1 coReturnObj1 coYieldObj1 complObj1 complexObj1 conceptObj1 consoleObj1 constObj1 constCastObj1 constexprObj1 constructorObj1 continueObj1 convenienceObj1 convertObj1 converterObj1 cultureInfoObj1 dateObj1 dateFormatterObj1 dateOnlyObj1 dateOnlyConverterObj1 dateParseHandlingObj1 dummyObj1 emptyObj1 imagineryObj1 obj1AnyObj1 obj1AsObj1 obj1BoolObj1 obj1CaseObj1 obj1ClassObj1 purpleBoolObj1 purpleClassObj1) =
         object $ foldMap (maybe [] pure)
         [ Just $ "abstract" .= abstractObj1
         , Just $ "alignas" .= alignasObj1
@@ -2035,13 +2035,6 @@ instance ToJSON Obj1 where
         , Just $ "DateOnly" .= dateOnlyObj1
         , Just $ "DateOnlyConverter" .= dateOnlyConverterObj1
         , Just $ "date_parse_handling" .= dateParseHandlingObj1
-        , Just $ "DateTime" .= dateTimeObj1
-        , Just $ "DateTimeStyles" .= dateTimeStylesObj1
-        , Just $ "debugger" .= debuggerObj1
-        , Just $ "decimal" .= decimalObj1
-        , Just $ "declare" .= declareObj1
-        , Just $ "decltype" .= decltypeObj1
-        , Just $ "decode_string" .= decodeStringObj1
         , Just $ "dummy" .= dummyObj1
         , Just $ "_" .= emptyObj1
         , Just $ "_Imaginery" .= imagineryObj1
@@ -2111,13 +2104,6 @@ instance FromJSON Obj1 where
         <*> v .: "DateOnly"
         <*> v .: "DateOnlyConverter"
         <*> v .: "date_parse_handling"
-        <*> v .: "DateTime"
-        <*> v .: "DateTimeStyles"
-        <*> v .: "debugger"
-        <*> v .: "decimal"
-        <*> v .: "declare"
-        <*> v .: "decltype"
-        <*> v .: "decode_string"
         <*> v .: "dummy"
         <*> v .: "_"
         <*> v .: "_Imaginery"
@@ -2679,76 +2665,6 @@ instance FromJSON DateParseHandling where
     parseJSON (Object v) = DateParseHandling
         <$> v .: "date_parse_handling"
 
-instance ToJSON DateTime where
-    toJSON (DateTime dateTimeDateTime) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "DateTime" .= dateTimeDateTime
-        ]
-
-instance FromJSON DateTime where
-    parseJSON (Object v) = DateTime
-        <$> v .: "DateTime"
-
-instance ToJSON DateTimeStyles where
-    toJSON (DateTimeStyles dateTimeStylesDateTimeStyles) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "DateTimeStyles" .= dateTimeStylesDateTimeStyles
-        ]
-
-instance FromJSON DateTimeStyles where
-    parseJSON (Object v) = DateTimeStyles
-        <$> v .: "DateTimeStyles"
-
-instance ToJSON Debugger where
-    toJSON (Debugger debuggerDebugger) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "debugger" .= debuggerDebugger
-        ]
-
-instance FromJSON Debugger where
-    parseJSON (Object v) = Debugger
-        <$> v .: "debugger"
-
-instance ToJSON Decimal where
-    toJSON (Decimal decimalDecimal) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "decimal" .= decimalDecimal
-        ]
-
-instance FromJSON Decimal where
-    parseJSON (Object v) = Decimal
-        <$> v .: "decimal"
-
-instance ToJSON Declare where
-    toJSON (Declare declareDeclare) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "declare" .= declareDeclare
-        ]
-
-instance FromJSON Declare where
-    parseJSON (Object v) = Declare
-        <$> v .: "declare"
-
-instance ToJSON Decltype where
-    toJSON (Decltype decltypeDecltype) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "decltype" .= decltypeDecltype
-        ]
-
-instance FromJSON Decltype where
-    parseJSON (Object v) = Decltype
-        <$> v .: "decltype"
-
-instance ToJSON DecodeString where
-    toJSON (DecodeString decodeStringDecodeString) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "decode_string" .= decodeStringDecodeString
-        ]
-
-instance FromJSON DecodeString where
-    parseJSON (Object v) = DecodeString
-        <$> v .: "decode_string"
-
 instance ToJSON Empty where
     toJSON (Empty emptyEmpty) =
         object $ foldMap (maybe [] pure)
@@ -2840,9 +2756,16 @@ instance FromJSON ClassClass where
         <$> v .: "class"
 
 instance ToJSON Obj2 where
-    toJSON (Obj2 defObj2 deferObj2 deinitObj2 delObj2 delegateObj2 deleteObj2 dictObj2 dictionaryObj2 didSetObj2 doubleObj2 dummyObj2 dynamicObj2 dynamicCastObj2 elifObj2 encodeQuickTypeObj2 enumObj2 enumValuesObj2 equalityContractObj2 eventObj2 exceptObj2 exceptionObj2 explicitObj2 exportObj2 exposingObj2 extendsObj2 extensionObj2 externObj2 fallthroughObj2 falseObj2 fileprivateObj2 finalObj2 finallyObj2 fixedObj2 floatObj2 forObj2 foreachObj2 formatExceptionObj2 friendObj2 fromObj2 fromJSONObj2 funcObj2 functionObj2 getObj2 globalObj2 goObj2 gotoObj2 guardObj2 hasOwnPropertyObj2 hashCodeObj2 impObj2 implementsObj2 implicitObj2 indirectObj2 initObj2 inlineObj2 inoutObj2 instanceofObj2 intObj2 interfaceObj2 internalObj2 obj2DefaultObj2 obj2DoObj2 obj2ElseObj2 obj2FalseObj2 obj2IDObj2 obj2IfObj2 obj2ImportObj2 obj2InObj2 obj2InfixObj2) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "def" .= defObj2
+    toJSON (Obj2 dateTimeObj2 dateTimeStylesObj2 debuggerObj2 decimalObj2 declareObj2 decltypeObj2 decodeStringObj2 defObj2 deferObj2 deinitObj2 delObj2 delegateObj2 deleteObj2 dictObj2 dictionaryObj2 didSetObj2 doubleObj2 dummyObj2 dynamicObj2 dynamicCastObj2 elifObj2 encodeQuickTypeObj2 enumObj2 enumValuesObj2 equalityContractObj2 eventObj2 exceptObj2 exceptionObj2 explicitObj2 exportObj2 exposingObj2 extendsObj2 extensionObj2 externObj2 fallthroughObj2 falseObj2 fileprivateObj2 finalObj2 finallyObj2 fixedObj2 floatObj2 forObj2 foreachObj2 formatExceptionObj2 friendObj2 fromObj2 fromJSONObj2 funcObj2 functionObj2 getObj2 globalObj2 goObj2 gotoObj2 guardObj2 hasOwnPropertyObj2 hashCodeObj2 impObj2 implementsObj2 implicitObj2 obj2DefaultObj2 obj2DoObj2 obj2ElseObj2 obj2FalseObj2 obj2IDObj2 obj2IfObj2) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "DateTime" .= dateTimeObj2
+        , Just $ "DateTimeStyles" .= dateTimeStylesObj2
+        , Just $ "debugger" .= debuggerObj2
+        , Just $ "decimal" .= decimalObj2
+        , Just $ "declare" .= declareObj2
+        , Just $ "decltype" .= decltypeObj2
+        , Just $ "decode_string" .= decodeStringObj2
+        , Just $ "def" .= defObj2
         , Just $ "defer" .= deferObj2
         , Just $ "deinit" .= deinitObj2
         , Just $ "del" .= delObj2
@@ -2894,28 +2817,24 @@ instance ToJSON Obj2 where
         , Just $ "IMP" .= impObj2
         , Just $ "implements" .= implementsObj2
         , Just $ "implicit" .= implicitObj2
-        , Just $ "indirect" .= indirectObj2
-        , Just $ "init" .= initObj2
-        , Just $ "inline" .= inlineObj2
-        , Just $ "inout" .= inoutObj2
-        , Just $ "instanceof" .= instanceofObj2
-        , Just $ "int" .= intObj2
-        , Just $ "interface" .= interfaceObj2
-        , Just $ "internal" .= internalObj2
         , Just $ "default" .= obj2DefaultObj2
         , Just $ "do" .= obj2DoObj2
         , Just $ "else" .= obj2ElseObj2
         , Just $ "false" .= obj2FalseObj2
         , Just $ "id" .= obj2IDObj2
         , Just $ "if" .= obj2IfObj2
-        , Just $ "import" .= obj2ImportObj2
-        , Just $ "in" .= obj2InObj2
-        , Just $ "infix" .= obj2InfixObj2
         ]
 
 instance FromJSON Obj2 where
     parseJSON (Object v) = Obj2
-        <$> v .: "def"
+        <$> v .: "DateTime"
+        <*> v .: "DateTimeStyles"
+        <*> v .: "debugger"
+        <*> v .: "decimal"
+        <*> v .: "declare"
+        <*> v .: "decltype"
+        <*> v .: "decode_string"
+        <*> v .: "def"
         <*> v .: "defer"
         <*> v .: "deinit"
         <*> v .: "del"
@@ -2967,23 +2886,82 @@ instance FromJSON Obj2 where
         <*> v .: "IMP"
         <*> v .: "implements"
         <*> v .: "implicit"
-        <*> v .: "indirect"
-        <*> v .: "init"
-        <*> v .: "inline"
-        <*> v .: "inout"
-        <*> v .: "instanceof"
-        <*> v .: "int"
-        <*> v .: "interface"
-        <*> v .: "internal"
         <*> v .: "default"
         <*> v .: "do"
         <*> v .: "else"
         <*> v .: "false"
         <*> v .: "id"
         <*> v .: "if"
-        <*> v .: "import"
-        <*> v .: "in"
-        <*> v .: "infix"
+
+instance ToJSON DateTime where
+    toJSON (DateTime dateTimeDateTime) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "DateTime" .= dateTimeDateTime
+        ]
+
+instance FromJSON DateTime where
+    parseJSON (Object v) = DateTime
+        <$> v .: "DateTime"
+
+instance ToJSON DateTimeStyles where
+    toJSON (DateTimeStyles dateTimeStylesDateTimeStyles) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "DateTimeStyles" .= dateTimeStylesDateTimeStyles
+        ]
+
+instance FromJSON DateTimeStyles where
+    parseJSON (Object v) = DateTimeStyles
+        <$> v .: "DateTimeStyles"
+
+instance ToJSON Debugger where
+    toJSON (Debugger debuggerDebugger) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "debugger" .= debuggerDebugger
+        ]
+
+instance FromJSON Debugger where
+    parseJSON (Object v) = Debugger
+        <$> v .: "debugger"
+
+instance ToJSON Decimal where
+    toJSON (Decimal decimalDecimal) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "decimal" .= decimalDecimal
+        ]
+
+instance FromJSON Decimal where
+    parseJSON (Object v) = Decimal
+        <$> v .: "decimal"
+
+instance ToJSON Declare where
+    toJSON (Declare declareDeclare) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "declare" .= declareDeclare
+        ]
+
+instance FromJSON Declare where
+    parseJSON (Object v) = Declare
+        <$> v .: "declare"
+
+instance ToJSON Decltype where
+    toJSON (Decltype decltypeDecltype) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "decltype" .= decltypeDecltype
+        ]
+
+instance FromJSON Decltype where
+    parseJSON (Object v) = Decltype
+        <$> v .: "decltype"
+
+instance ToJSON DecodeString where
+    toJSON (DecodeString decodeStringDecodeString) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "decode_string" .= decodeStringDecodeString
+        ]
+
+instance FromJSON DecodeString where
+    parseJSON (Object v) = DecodeString
+        <$> v .: "decode_string"
 
 instance ToJSON Def where
     toJSON (Def defDef) =
@@ -3505,86 +3483,6 @@ instance FromJSON Implicit where
     parseJSON (Object v) = Implicit
         <$> v .: "implicit"
 
-instance ToJSON Indirect where
-    toJSON (Indirect indirectIndirect) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "indirect" .= indirectIndirect
-        ]
-
-instance FromJSON Indirect where
-    parseJSON (Object v) = Indirect
-        <$> v .: "indirect"
-
-instance ToJSON Init where
-    toJSON (Init initInit) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "init" .= initInit
-        ]
-
-instance FromJSON Init where
-    parseJSON (Object v) = Init
-        <$> v .: "init"
-
-instance ToJSON Inline where
-    toJSON (Inline inlineInline) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "inline" .= inlineInline
-        ]
-
-instance FromJSON Inline where
-    parseJSON (Object v) = Inline
-        <$> v .: "inline"
-
-instance ToJSON Inout where
-    toJSON (Inout inoutInout) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "inout" .= inoutInout
-        ]
-
-instance FromJSON Inout where
-    parseJSON (Object v) = Inout
-        <$> v .: "inout"
-
-instance ToJSON Instanceof where
-    toJSON (Instanceof instanceofInstanceof) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "instanceof" .= instanceofInstanceof
-        ]
-
-instance FromJSON Instanceof where
-    parseJSON (Object v) = Instanceof
-        <$> v .: "instanceof"
-
-instance ToJSON IntClass where
-    toJSON (IntClass intIntClass) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "int" .= intIntClass
-        ]
-
-instance FromJSON IntClass where
-    parseJSON (Object v) = IntClass
-        <$> v .: "int"
-
-instance ToJSON Interface where
-    toJSON (Interface interfaceInterface) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "interface" .= interfaceInterface
-        ]
-
-instance FromJSON Interface where
-    parseJSON (Object v) = Interface
-        <$> v .: "interface"
-
-instance ToJSON Internal where
-    toJSON (Internal internalInternal) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "internal" .= internalInternal
-        ]
-
-instance FromJSON Internal where
-    parseJSON (Object v) = Internal
-        <$> v .: "internal"
-
 instance ToJSON Default where
     toJSON (Default defaultDefaultDefault) =
         object $ foldMap (maybe [] pure)
@@ -3645,40 +3543,18 @@ instance FromJSON If where
     parseJSON (Object v) = If
         <$> v .: "if"
 
-instance ToJSON Import where
-    toJSON (Import importImportImport) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "import" .= importImportImport
-        ]
-
-instance FromJSON Import where
-    parseJSON (Object v) = Import
-        <$> v .: "import"
-
-instance ToJSON In where
-    toJSON (In inInIn) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "in" .= inInIn
-        ]
-
-instance FromJSON In where
-    parseJSON (Object v) = In
-        <$> v .: "in"
-
-instance ToJSON Infix where
-    toJSON (Infix infixInfixInfix) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "infix" .= infixInfixInfix
-        ]
-
-instance FromJSON Infix where
-    parseJSON (Object v) = Infix
-        <$> v .: "infix"
-
 instance ToJSON Obj3 where
-    toJSON (Obj3 dummyObj3 isObj3 isoDateTimeOffsetConverterObj3 iterableObj3 jdecObj3 jencObj3 jpipeObj3 jsonObj3 jsonAnyObj3 jsonCodingKeyObj3 jsonConverterObj3 jsonDecoderObj3 jsonEncoderObj3 jsonExceptionObj3 jsonGeneratorObj3 jsonNodeObj3 jsonNullObj3 jsonParserObj3 jsonReaderObj3 jsonSerializerObj3 jsonTokenObj3 jsonTokenTypeObj3 jsonWriterObj3 lambdaObj3 lazyObj3 leftObj3 listObj3 lockObj3 longObj3 mapObj3 metadataPropertyHandlingObj3 mutableObj3 mutatingObj3 namespaceObj3 nativeObj3 newObj3 newtonsoftObj3 nilObj3 noObj3 noSuchMethodObj3 noexceptObj3 nonatomicObj3 noneObj3 nonlocalObj3 nonmutatingObj3 notObj3 notEqObj3 nsErrorObj3 nsStringObj3 nullObj3 nullptrObj3 numberObj3 obj3LetObj3 obj3ModuleObj3 obj3NoneObj3 obj3NullObj3 obj3OfObj3 obj3ProtocolObj3 objectObj3 objectMapperObj3 onewayObj3 openObj3 operatorObj3 optionalObj3 orObj3 orEqObj3 outObj3 overrideObj3 packageObj3 paramsObj3 passObj3 portObj3 postfixObj3 precedenceObj3 prefixObj3 printObj3 printMembersObj3 printfObj3 privateObj3 protectedObj3 protocolObj3 serializerProviderObj3 simpleModuleObj3 stdDeserializerObj3 stdSerializerObj3) =
+    toJSON (Obj3 dummyObj3 indirectObj3 initObj3 inlineObj3 inoutObj3 instanceofObj3 intObj3 interfaceObj3 internalObj3 isObj3 isoDateTimeOffsetConverterObj3 iterableObj3 jdecObj3 jencObj3 jpipeObj3 jsonObj3 jsonAnyObj3 jsonCodingKeyObj3 jsonConverterObj3 jsonDecoderObj3 jsonEncoderObj3 jsonExceptionObj3 jsonGeneratorObj3 jsonNodeObj3 jsonNullObj3 jsonParserObj3 jsonReaderObj3 jsonSerializerObj3 jsonTokenObj3 jsonTokenTypeObj3 jsonWriterObj3 lambdaObj3 lazyObj3 leftObj3 listObj3 lockObj3 longObj3 mapObj3 metadataPropertyHandlingObj3 mutableObj3 mutatingObj3 namespaceObj3 nativeObj3 newObj3 newtonsoftObj3 nilObj3 noObj3 noSuchMethodObj3 noexceptObj3 nonatomicObj3 noneObj3 nonlocalObj3 nonmutatingObj3 notObj3 notEqObj3 nsErrorObj3 nsStringObj3 nullObj3 obj3ImportObj3 obj3InObj3 obj3InfixObj3 obj3LetObj3 obj3ModuleObj3 obj3NoneObj3 obj3NullObj3) =
         object $ foldMap (maybe [] pure)
         [ Just $ "dummy" .= dummyObj3
+        , Just $ "indirect" .= indirectObj3
+        , Just $ "init" .= initObj3
+        , Just $ "inline" .= inlineObj3
+        , Just $ "inout" .= inoutObj3
+        , Just $ "instanceof" .= instanceofObj3
+        , Just $ "int" .= intObj3
+        , Just $ "interface" .= interfaceObj3
+        , Just $ "internal" .= internalObj3
         , Just $ "is" .= isObj3
         , Just $ "IsoDateTimeOffsetConverter" .= isoDateTimeOffsetConverterObj3
         , Just $ "iterable" .= iterableObj3
@@ -3728,46 +3604,26 @@ instance ToJSON Obj3 where
         , Just $ "NSError" .= nsErrorObj3
         , Just $ "NSString" .= nsStringObj3
         , Just $ "NULL" .= nullObj3
-        , Just $ "nullptr" .= nullptrObj3
-        , Just $ "number" .= numberObj3
+        , Just $ "import" .= obj3ImportObj3
+        , Just $ "in" .= obj3InObj3
+        , Just $ "infix" .= obj3InfixObj3
         , Just $ "let" .= obj3LetObj3
         , Just $ "module" .= obj3ModuleObj3
         , Just $ "none" .= obj3NoneObj3
         , Just $ "null" .= obj3NullObj3
-        , Just $ "of" .= obj3OfObj3
-        , Just $ "protocol" .= obj3ProtocolObj3
-        , Just $ "object" .= objectObj3
-        , Just $ "ObjectMapper" .= objectMapperObj3
-        , Just $ "oneway" .= onewayObj3
-        , Just $ "open" .= openObj3
-        , Just $ "operator" .= operatorObj3
-        , Just $ "optional" .= optionalObj3
-        , Just $ "or" .= orObj3
-        , Just $ "or_eq" .= orEqObj3
-        , Just $ "out" .= outObj3
-        , Just $ "override" .= overrideObj3
-        , Just $ "package" .= packageObj3
-        , Just $ "params" .= paramsObj3
-        , Just $ "pass" .= passObj3
-        , Just $ "port" .= portObj3
-        , Just $ "postfix" .= postfixObj3
-        , Just $ "precedence" .= precedenceObj3
-        , Just $ "prefix" .= prefixObj3
-        , Just $ "print" .= printObj3
-        , Just $ "printMembers" .= printMembersObj3
-        , Just $ "printf" .= printfObj3
-        , Just $ "private" .= privateObj3
-        , Just $ "protected" .= protectedObj3
-        , Just $ "Protocol" .= protocolObj3
-        , Just $ "SerializerProvider" .= serializerProviderObj3
-        , Just $ "SimpleModule" .= simpleModuleObj3
-        , Just $ "StdDeserializer" .= stdDeserializerObj3
-        , Just $ "StdSerializer" .= stdSerializerObj3
         ]
 
 instance FromJSON Obj3 where
     parseJSON (Object v) = Obj3
         <$> v .: "dummy"
+        <*> v .: "indirect"
+        <*> v .: "init"
+        <*> v .: "inline"
+        <*> v .: "inout"
+        <*> v .: "instanceof"
+        <*> v .: "int"
+        <*> v .: "interface"
+        <*> v .: "internal"
         <*> v .: "is"
         <*> v .: "IsoDateTimeOffsetConverter"
         <*> v .: "iterable"
@@ -3817,66 +3673,118 @@ instance FromJSON Obj3 where
         <*> v .: "NSError"
         <*> v .: "NSString"
         <*> v .: "NULL"
-        <*> v .: "nullptr"
-        <*> v .: "number"
+        <*> v .: "import"
+        <*> v .: "in"
+        <*> v .: "infix"
         <*> v .: "let"
         <*> v .: "module"
         <*> v .: "none"
         <*> v .: "null"
-        <*> v .: "of"
-        <*> v .: "protocol"
-        <*> v .: "object"
-        <*> v .: "ObjectMapper"
-        <*> v .: "oneway"
-        <*> v .: "open"
-        <*> v .: "operator"
-        <*> v .: "optional"
-        <*> v .: "or"
-        <*> v .: "or_eq"
-        <*> v .: "out"
-        <*> v .: "override"
-        <*> v .: "package"
-        <*> v .: "params"
-        <*> v .: "pass"
-        <*> v .: "port"
-        <*> v .: "postfix"
-        <*> v .: "precedence"
-        <*> v .: "prefix"
-        <*> v .: "print"
-        <*> v .: "printMembers"
-        <*> v .: "printf"
-        <*> v .: "private"
-        <*> v .: "protected"
-        <*> v .: "Protocol"
-        <*> v .: "SerializerProvider"
-        <*> v .: "SimpleModule"
-        <*> v .: "StdDeserializer"
-        <*> v .: "StdSerializer"
 
-instance ToJSON Is where
-    toJSON (Is isIs) =
+instance ToJSON Indirect where
+    toJSON (Indirect indirectIndirect) =
         object $ foldMap (maybe [] pure)
-        [ Just $ "is" .= isIs
+        [ Just $ "indirect" .= indirectIndirect
         ]
 
-instance FromJSON Is where
-    parseJSON (Object v) = Is
-        <$> v .: "is"
+instance FromJSON Indirect where
+    parseJSON (Object v) = Indirect
+        <$> v .: "indirect"
 
-instance ToJSON ISODateTimeOffsetConverter where
-    toJSON (ISODateTimeOffsetConverter isoDateTimeOffsetConverterISODateTimeOffsetConverter) =
+instance ToJSON Init where
+    toJSON (Init initInit) =
         object $ foldMap (maybe [] pure)
-        [ Just $ "IsoDateTimeOffsetConverter" .= isoDateTimeOffsetConverterISODateTimeOffsetConverter
+        [ Just $ "init" .= initInit
         ]
 
-instance FromJSON ISODateTimeOffsetConverter where
-    parseJSON (Object v) = ISODateTimeOffsetConverter
-        <$> v .: "IsoDateTimeOffsetConverter"
+instance FromJSON Init where
+    parseJSON (Object v) = Init
+        <$> v .: "init"
 
-instance ToJSON Iterable where
-    toJSON (Iterable iterableIterable) =
+instance ToJSON Inline where
+    toJSON (Inline inlineInline) =
         object $ foldMap (maybe [] pure)
-        [ Just $ "iterable" .= iterableIterable
+        [ Just $ "inline" .= inlineInline
+        ]
+
+instance FromJSON Inline where
+    parseJSON (Object v) = Inline
+        <$> v .: "inline"
+
+instance ToJSON Inout where
+    toJSON (Inout inoutInout) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "inout" .= inoutInout
+        ]
+
+instance FromJSON Inout where
+    parseJSON (Object v) = Inout
+        <$> v .: "inout"
+
+instance ToJSON Instanceof where
+    toJSON (Instanceof instanceofInstanceof) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "instanceof" .= instanceofInstanceof
+        ]
+
+instance FromJSON Instanceof where
+    parseJSON (Object v) = Instanceof
+        <$> v .: "instanceof"
+
+instance ToJSON IntClass where
+    toJSON (IntClass intIntClass) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "int" .= intIntClass
+        ]
+
+instance FromJSON IntClass where
+    parseJSON (Object v) = IntClass
+        <$> v .: "int"
+
+instance ToJSON Interface where
+    toJSON (Interface interfaceInterface) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "interface" .= interfaceInterface
+        ]
+
+instance FromJSON Interface where
+    parseJSON (Object v) = Interface
+        <$> v .: "interface"
+
+instance ToJSON Internal where
+    toJSON (Internal internalInternal) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "internal" .= internalInternal
+        ]
+
+instance FromJSON Internal where
+    parseJSON (Object v) = Internal
+        <$> v .: "internal"
+
+instance ToJSON Is where
+    toJSON (Is isIs) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "is" .= isIs
+        ]
+
+instance FromJSON Is where
+    parseJSON (Object v) = Is
+        <$> v .: "is"
+
+instance ToJSON ISODateTimeOffsetConverter where
+    toJSON (ISODateTimeOffsetConverter isoDateTimeOffsetConverterISODateTimeOffsetConverter) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "IsoDateTimeOffsetConverter" .= isoDateTimeOffsetConverterISODateTimeOffsetConverter
+        ]
+
+instance FromJSON ISODateTimeOffsetConverter where
+    parseJSON (Object v) = ISODateTimeOffsetConverter
+        <$> v .: "IsoDateTimeOffsetConverter"
+
+instance ToJSON Iterable where
+    toJSON (Iterable iterableIterable) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "iterable" .= iterableIterable
         ]
 
 instance FromJSON Iterable where
@@ -4343,25 +4251,35 @@ instance FromJSON NULLClass where
     parseJSON (Object v) = NULLClass
         <$> v .: "NULL"
 
-instance ToJSON Nullptr where
-    toJSON (Nullptr nullptrNullptr) =
+instance ToJSON Import where
+    toJSON (Import importImportImport) =
         object $ foldMap (maybe [] pure)
-        [ Just $ "nullptr" .= nullptrNullptr
+        [ Just $ "import" .= importImportImport
         ]
 
-instance FromJSON Nullptr where
-    parseJSON (Object v) = Nullptr
-        <$> v .: "nullptr"
+instance FromJSON Import where
+    parseJSON (Object v) = Import
+        <$> v .: "import"
 
-instance ToJSON NumberClass where
-    toJSON (NumberClass numberNumberClass) =
+instance ToJSON In where
+    toJSON (In inInIn) =
         object $ foldMap (maybe [] pure)
-        [ Just $ "number" .= numberNumberClass
+        [ Just $ "in" .= inInIn
         ]
 
-instance FromJSON NumberClass where
-    parseJSON (Object v) = NumberClass
-        <$> v .: "number"
+instance FromJSON In where
+    parseJSON (Object v) = In
+        <$> v .: "in"
+
+instance ToJSON Infix where
+    toJSON (Infix infixInfixInfix) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "infix" .= infixInfixInfix
+        ]
+
+instance FromJSON Infix where
+    parseJSON (Object v) = Infix
+        <$> v .: "infix"
 
 instance ToJSON Let where
     toJSON (Let letLetLet) =
@@ -4403,6 +4321,164 @@ instance FromJSON NullClass where
     parseJSON (Object v) = NullClass
         <$> v .: "null"
 
+instance ToJSON Obj4 where
+    toJSON (Obj4 dummyObj4 nullptrObj4 numberObj4 obj4OfObj4 obj4ProtocolObj4 obj4SelfObj4 objectObj4 objectMapperObj4 onewayObj4 openObj4 operatorObj4 optionalObj4 orObj4 orEqObj4 outObj4 overrideObj4 packageObj4 paramsObj4 passObj4 portObj4 postfixObj4 precedenceObj4 prefixObj4 printObj4 printMembersObj4 printfObj4 privateObj4 protectedObj4 protocolObj4 publicObj4 quicktypeObj4 raiseObj4 rangeObj4 readonlyObj4 refObj4 regExpObj4 registerObj4 reinterpretCastObj4 repeatObj4 requireObj4 requiredObj4 requiresObj4 restrictObj4 retainObj4 rethrowsObj4 returnObj4 rightObj4 runtimeTypeObj4 sObj4 sbyteObj4 sealedObj4 selObj4 selectObj4 selfObj4 serializeObj4 serializerProviderObj4 setObj4 shortObj4 signedObj4 simpleModuleObj4 sizeofObj4 stackallocObj4 standardsObj4 staticObj4 staticAssertObj4) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "dummy" .= dummyObj4
+        , Just $ "nullptr" .= nullptrObj4
+        , Just $ "number" .= numberObj4
+        , Just $ "of" .= obj4OfObj4
+        , Just $ "protocol" .= obj4ProtocolObj4
+        , Just $ "self" .= obj4SelfObj4
+        , Just $ "object" .= objectObj4
+        , Just $ "ObjectMapper" .= objectMapperObj4
+        , Just $ "oneway" .= onewayObj4
+        , Just $ "open" .= openObj4
+        , Just $ "operator" .= operatorObj4
+        , Just $ "optional" .= optionalObj4
+        , Just $ "or" .= orObj4
+        , Just $ "or_eq" .= orEqObj4
+        , Just $ "out" .= outObj4
+        , Just $ "override" .= overrideObj4
+        , Just $ "package" .= packageObj4
+        , Just $ "params" .= paramsObj4
+        , Just $ "pass" .= passObj4
+        , Just $ "port" .= portObj4
+        , Just $ "postfix" .= postfixObj4
+        , Just $ "precedence" .= precedenceObj4
+        , Just $ "prefix" .= prefixObj4
+        , Just $ "print" .= printObj4
+        , Just $ "printMembers" .= printMembersObj4
+        , Just $ "printf" .= printfObj4
+        , Just $ "private" .= privateObj4
+        , Just $ "protected" .= protectedObj4
+        , Just $ "Protocol" .= protocolObj4
+        , Just $ "public" .= publicObj4
+        , Just $ "quicktype" .= quicktypeObj4
+        , Just $ "raise" .= raiseObj4
+        , Just $ "range" .= rangeObj4
+        , Just $ "readonly" .= readonlyObj4
+        , Just $ "ref" .= refObj4
+        , Just $ "RegExp" .= regExpObj4
+        , Just $ "register" .= registerObj4
+        , Just $ "reinterpret_cast" .= reinterpretCastObj4
+        , Just $ "repeat" .= repeatObj4
+        , Just $ "require" .= requireObj4
+        , Just $ "required" .= requiredObj4
+        , Just $ "requires" .= requiresObj4
+        , Just $ "restrict" .= restrictObj4
+        , Just $ "retain" .= retainObj4
+        , Just $ "rethrows" .= rethrowsObj4
+        , Just $ "return" .= returnObj4
+        , Just $ "right" .= rightObj4
+        , Just $ "runtimeType" .= runtimeTypeObj4
+        , Just $ "s" .= sObj4
+        , Just $ "sbyte" .= sbyteObj4
+        , Just $ "sealed" .= sealedObj4
+        , Just $ "SEL" .= selObj4
+        , Just $ "select" .= selectObj4
+        , Just $ "Self" .= selfObj4
+        , Just $ "serialize" .= serializeObj4
+        , Just $ "SerializerProvider" .= serializerProviderObj4
+        , Just $ "set" .= setObj4
+        , Just $ "short" .= shortObj4
+        , Just $ "signed" .= signedObj4
+        , Just $ "SimpleModule" .= simpleModuleObj4
+        , Just $ "sizeof" .= sizeofObj4
+        , Just $ "stackalloc" .= stackallocObj4
+        , Just $ "Standards" .= standardsObj4
+        , Just $ "static" .= staticObj4
+        , Just $ "static_assert" .= staticAssertObj4
+        ]
+
+instance FromJSON Obj4 where
+    parseJSON (Object v) = Obj4
+        <$> v .: "dummy"
+        <*> v .: "nullptr"
+        <*> v .: "number"
+        <*> v .: "of"
+        <*> v .: "protocol"
+        <*> v .: "self"
+        <*> v .: "object"
+        <*> v .: "ObjectMapper"
+        <*> v .: "oneway"
+        <*> v .: "open"
+        <*> v .: "operator"
+        <*> v .: "optional"
+        <*> v .: "or"
+        <*> v .: "or_eq"
+        <*> v .: "out"
+        <*> v .: "override"
+        <*> v .: "package"
+        <*> v .: "params"
+        <*> v .: "pass"
+        <*> v .: "port"
+        <*> v .: "postfix"
+        <*> v .: "precedence"
+        <*> v .: "prefix"
+        <*> v .: "print"
+        <*> v .: "printMembers"
+        <*> v .: "printf"
+        <*> v .: "private"
+        <*> v .: "protected"
+        <*> v .: "Protocol"
+        <*> v .: "public"
+        <*> v .: "quicktype"
+        <*> v .: "raise"
+        <*> v .: "range"
+        <*> v .: "readonly"
+        <*> v .: "ref"
+        <*> v .: "RegExp"
+        <*> v .: "register"
+        <*> v .: "reinterpret_cast"
+        <*> v .: "repeat"
+        <*> v .: "require"
+        <*> v .: "required"
+        <*> v .: "requires"
+        <*> v .: "restrict"
+        <*> v .: "retain"
+        <*> v .: "rethrows"
+        <*> v .: "return"
+        <*> v .: "right"
+        <*> v .: "runtimeType"
+        <*> v .: "s"
+        <*> v .: "sbyte"
+        <*> v .: "sealed"
+        <*> v .: "SEL"
+        <*> v .: "select"
+        <*> v .: "Self"
+        <*> v .: "serialize"
+        <*> v .: "SerializerProvider"
+        <*> v .: "set"
+        <*> v .: "short"
+        <*> v .: "signed"
+        <*> v .: "SimpleModule"
+        <*> v .: "sizeof"
+        <*> v .: "stackalloc"
+        <*> v .: "Standards"
+        <*> v .: "static"
+        <*> v .: "static_assert"
+
+instance ToJSON Nullptr where
+    toJSON (Nullptr nullptrNullptr) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "nullptr" .= nullptrNullptr
+        ]
+
+instance FromJSON Nullptr where
+    parseJSON (Object v) = Nullptr
+        <$> v .: "nullptr"
+
+instance ToJSON NumberClass where
+    toJSON (NumberClass numberNumberClass) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "number" .= numberNumberClass
+        ]
+
+instance FromJSON NumberClass where
+    parseJSON (Object v) = NumberClass
+        <$> v .: "number"
+
 instance ToJSON Of where
     toJSON (Of ofOfOf) =
         object $ foldMap (maybe [] pure)
@@ -4423,6 +4499,16 @@ instance FromJSON ProtocolClass where
     parseJSON (Object v) = ProtocolClass
         <$> v .: "protocol"
 
+instance ToJSON SelfClass where
+    toJSON (SelfClass selfSelfClass) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "self" .= selfSelfClass
+        ]
+
+instance FromJSON SelfClass where
+    parseJSON (Object v) = SelfClass
+        <$> v .: "self"
+
 instance ToJSON ObjectClass where
     toJSON (ObjectClass objectObjectClass) =
         object $ foldMap (maybe [] pure)
@@ -4653,240 +4739,8 @@ instance FromJSON Protocol where
     parseJSON (Object v) = Protocol
         <$> v .: "Protocol"
 
-instance ToJSON SerializerProvider where
-    toJSON (SerializerProvider serializerProviderSerializerProvider) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "SerializerProvider" .= serializerProviderSerializerProvider
-        ]
-
-instance FromJSON SerializerProvider where
-    parseJSON (Object v) = SerializerProvider
-        <$> v .: "SerializerProvider"
-
-instance ToJSON SimpleModule where
-    toJSON (SimpleModule simpleModuleSimpleModule) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "SimpleModule" .= simpleModuleSimpleModule
-        ]
-
-instance FromJSON SimpleModule where
-    parseJSON (Object v) = SimpleModule
-        <$> v .: "SimpleModule"
-
-instance ToJSON StdDeserializer where
-    toJSON (StdDeserializer stdDeserializerStdDeserializer) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "StdDeserializer" .= stdDeserializerStdDeserializer
-        ]
-
-instance FromJSON StdDeserializer where
-    parseJSON (Object v) = StdDeserializer
-        <$> v .: "StdDeserializer"
-
-instance ToJSON StdSerializer where
-    toJSON (StdSerializer stdSerializerStdSerializer) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "StdSerializer" .= stdSerializerStdSerializer
-        ]
-
-instance FromJSON StdSerializer where
-    parseJSON (Object v) = StdSerializer
-        <$> v .: "StdSerializer"
-
-instance ToJSON Obj4 where
-    toJSON (Obj4 dummyObj4 obj4SelfObj4 obj4ThenObj4 obj4TrueObj4 obj4TypeObj4 publicObj4 purpleTypeObj4 quicktypeObj4 raiseObj4 rangeObj4 readonlyObj4 refObj4 regExpObj4 registerObj4 reinterpretCastObj4 repeatObj4 requireObj4 requiredObj4 requiresObj4 restrictObj4 retainObj4 rethrowsObj4 returnObj4 rightObj4 runtimeTypeObj4 sObj4 sbyteObj4 sealedObj4 selObj4 selectObj4 selfObj4 serializeObj4 setObj4 shortObj4 signedObj4 sizeofObj4 stackallocObj4 standardsObj4 staticObj4 staticAssertObj4 staticCastObj4 strictfpObj4 stringObj4 structObj4 subscriptObj4 superObj4 switchObj4 symbolObj4 synchronizedObj4 systemObj4 templateObj4 thisObj4 threadLocalObj4 throwObj4 throwsObj4 timeOnlyObj4 timeOnlyConverterObj4 toJSONObj4 toStringObj4 topLevelObj4 transientObj4 trueObj4 tryObj4 typealiasObj4 typedefObj4 typeidObj4 typenameObj4 typeofObj4 uintObj4 ulongObj4 uncheckedObj4 undefinedObj4) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "dummy" .= dummyObj4
-        , Just $ "self" .= obj4SelfObj4
-        , Just $ "then" .= obj4ThenObj4
-        , Just $ "true" .= obj4TrueObj4
-        , Just $ "Type" .= obj4TypeObj4
-        , Just $ "public" .= publicObj4
-        , Just $ "type" .= purpleTypeObj4
-        , Just $ "quicktype" .= quicktypeObj4
-        , Just $ "raise" .= raiseObj4
-        , Just $ "range" .= rangeObj4
-        , Just $ "readonly" .= readonlyObj4
-        , Just $ "ref" .= refObj4
-        , Just $ "RegExp" .= regExpObj4
-        , Just $ "register" .= registerObj4
-        , Just $ "reinterpret_cast" .= reinterpretCastObj4
-        , Just $ "repeat" .= repeatObj4
-        , Just $ "require" .= requireObj4
-        , Just $ "required" .= requiredObj4
-        , Just $ "requires" .= requiresObj4
-        , Just $ "restrict" .= restrictObj4
-        , Just $ "retain" .= retainObj4
-        , Just $ "rethrows" .= rethrowsObj4
-        , Just $ "return" .= returnObj4
-        , Just $ "right" .= rightObj4
-        , Just $ "runtimeType" .= runtimeTypeObj4
-        , Just $ "s" .= sObj4
-        , Just $ "sbyte" .= sbyteObj4
-        , Just $ "sealed" .= sealedObj4
-        , Just $ "SEL" .= selObj4
-        , Just $ "select" .= selectObj4
-        , Just $ "Self" .= selfObj4
-        , Just $ "serialize" .= serializeObj4
-        , Just $ "set" .= setObj4
-        , Just $ "short" .= shortObj4
-        , Just $ "signed" .= signedObj4
-        , Just $ "sizeof" .= sizeofObj4
-        , Just $ "stackalloc" .= stackallocObj4
-        , Just $ "Standards" .= standardsObj4
-        , Just $ "static" .= staticObj4
-        , Just $ "static_assert" .= staticAssertObj4
-        , Just $ "static_cast" .= staticCastObj4
-        , Just $ "strictfp" .= strictfpObj4
-        , Just $ "string" .= stringObj4
-        , Just $ "struct" .= structObj4
-        , Just $ "subscript" .= subscriptObj4
-        , Just $ "super" .= superObj4
-        , Just $ "switch" .= switchObj4
-        , Just $ "symbol" .= symbolObj4
-        , Just $ "synchronized" .= synchronizedObj4
-        , Just $ "system" .= systemObj4
-        , Just $ "template" .= templateObj4
-        , Just $ "this" .= thisObj4
-        , Just $ "thread_local" .= threadLocalObj4
-        , Just $ "throw" .= throwObj4
-        , Just $ "throws" .= throwsObj4
-        , Just $ "TimeOnly" .= timeOnlyObj4
-        , Just $ "TimeOnlyConverter" .= timeOnlyConverterObj4
-        , Just $ "to_json" .= toJSONObj4
-        , Just $ "toString" .= toStringObj4
-        , Just $ "top_level" .= topLevelObj4
-        , Just $ "transient" .= transientObj4
-        , Just $ "True" .= trueObj4
-        , Just $ "try" .= tryObj4
-        , Just $ "typealias" .= typealiasObj4
-        , Just $ "typedef" .= typedefObj4
-        , Just $ "typeid" .= typeidObj4
-        , Just $ "typename" .= typenameObj4
-        , Just $ "typeof" .= typeofObj4
-        , Just $ "uint" .= uintObj4
-        , Just $ "ulong" .= ulongObj4
-        , Just $ "unchecked" .= uncheckedObj4
-        , Just $ "undefined" .= undefinedObj4
-        ]
-
-instance FromJSON Obj4 where
-    parseJSON (Object v) = Obj4
-        <$> v .: "dummy"
-        <*> v .: "self"
-        <*> v .: "then"
-        <*> v .: "true"
-        <*> v .: "Type"
-        <*> v .: "public"
-        <*> v .: "type"
-        <*> v .: "quicktype"
-        <*> v .: "raise"
-        <*> v .: "range"
-        <*> v .: "readonly"
-        <*> v .: "ref"
-        <*> v .: "RegExp"
-        <*> v .: "register"
-        <*> v .: "reinterpret_cast"
-        <*> v .: "repeat"
-        <*> v .: "require"
-        <*> v .: "required"
-        <*> v .: "requires"
-        <*> v .: "restrict"
-        <*> v .: "retain"
-        <*> v .: "rethrows"
-        <*> v .: "return"
-        <*> v .: "right"
-        <*> v .: "runtimeType"
-        <*> v .: "s"
-        <*> v .: "sbyte"
-        <*> v .: "sealed"
-        <*> v .: "SEL"
-        <*> v .: "select"
-        <*> v .: "Self"
-        <*> v .: "serialize"
-        <*> v .: "set"
-        <*> v .: "short"
-        <*> v .: "signed"
-        <*> v .: "sizeof"
-        <*> v .: "stackalloc"
-        <*> v .: "Standards"
-        <*> v .: "static"
-        <*> v .: "static_assert"
-        <*> v .: "static_cast"
-        <*> v .: "strictfp"
-        <*> v .: "string"
-        <*> v .: "struct"
-        <*> v .: "subscript"
-        <*> v .: "super"
-        <*> v .: "switch"
-        <*> v .: "symbol"
-        <*> v .: "synchronized"
-        <*> v .: "system"
-        <*> v .: "template"
-        <*> v .: "this"
-        <*> v .: "thread_local"
-        <*> v .: "throw"
-        <*> v .: "throws"
-        <*> v .: "TimeOnly"
-        <*> v .: "TimeOnlyConverter"
-        <*> v .: "to_json"
-        <*> v .: "toString"
-        <*> v .: "top_level"
-        <*> v .: "transient"
-        <*> v .: "True"
-        <*> v .: "try"
-        <*> v .: "typealias"
-        <*> v .: "typedef"
-        <*> v .: "typeid"
-        <*> v .: "typename"
-        <*> v .: "typeof"
-        <*> v .: "uint"
-        <*> v .: "ulong"
-        <*> v .: "unchecked"
-        <*> v .: "undefined"
-
-instance ToJSON SelfClass where
-    toJSON (SelfClass selfSelfClass) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "self" .= selfSelfClass
-        ]
-
-instance FromJSON SelfClass where
-    parseJSON (Object v) = SelfClass
-        <$> v .: "self"
-
-instance ToJSON Then where
-    toJSON (Then thenThenThen) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "then" .= thenThenThen
-        ]
-
-instance FromJSON Then where
-    parseJSON (Object v) = Then
-        <$> v .: "then"
-
-instance ToJSON Obj4True where
-    toJSON (Obj4True trueObj4True) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "true" .= trueObj4True
-        ]
-
-instance FromJSON Obj4True where
-    parseJSON (Object v) = Obj4True
-        <$> v .: "true"
-
-instance ToJSON Type where
-    toJSON (Type typeTypeType) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "Type" .= typeTypeType
-        ]
-
-instance FromJSON Type where
-    parseJSON (Object v) = Type
-        <$> v .: "Type"
-
-instance ToJSON Public where
-    toJSON (Public publicPublic) =
+instance ToJSON Public where
+    toJSON (Public publicPublic) =
         object $ foldMap (maybe [] pure)
         [ Just $ "public" .= publicPublic
         ]
@@ -4895,16 +4749,6 @@ instance FromJSON Public where
     parseJSON (Object v) = Public
         <$> v .: "public"
 
-instance ToJSON TypeClass where
-    toJSON (TypeClass typeTypeTypeClass) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "type" .= typeTypeTypeClass
-        ]
-
-instance FromJSON TypeClass where
-    parseJSON (Object v) = TypeClass
-        <$> v .: "type"
-
 instance ToJSON Quicktype where
     toJSON (Quicktype quicktypeQuicktype) =
         object $ foldMap (maybe [] pure)
@@ -5155,6 +4999,16 @@ instance FromJSON Serialize where
     parseJSON (Object v) = Serialize
         <$> v .: "serialize"
 
+instance ToJSON SerializerProvider where
+    toJSON (SerializerProvider serializerProviderSerializerProvider) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "SerializerProvider" .= serializerProviderSerializerProvider
+        ]
+
+instance FromJSON SerializerProvider where
+    parseJSON (Object v) = SerializerProvider
+        <$> v .: "SerializerProvider"
+
 instance ToJSON Set where
     toJSON (Set setSet) =
         object $ foldMap (maybe [] pure)
@@ -5185,6 +5039,16 @@ instance FromJSON Signed where
     parseJSON (Object v) = Signed
         <$> v .: "signed"
 
+instance ToJSON SimpleModule where
+    toJSON (SimpleModule simpleModuleSimpleModule) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "SimpleModule" .= simpleModuleSimpleModule
+        ]
+
+instance FromJSON SimpleModule where
+    parseJSON (Object v) = SimpleModule
+        <$> v .: "SimpleModule"
+
 instance ToJSON Sizeof where
     toJSON (Sizeof sizeofSizeof) =
         object $ foldMap (maybe [] pure)
@@ -5235,6 +5099,188 @@ instance FromJSON StaticAssert where
     parseJSON (Object v) = StaticAssert
         <$> v .: "static_assert"
 
+instance ToJSON Obj5 where
+    toJSON (Obj5 dummyObj5 obj5ThenObj5 obj5TrueObj5 obj5TypeObj5 obj5WhereObj5 purpleTypeObj5 staticCastObj5 stdDeserializerObj5 stdSerializerObj5 strictfpObj5 stringObj5 structObj5 subscriptObj5 superObj5 switchObj5 symbolObj5 synchronizedObj5 systemObj5 templateObj5 thisObj5 threadLocalObj5 throwObj5 throwsObj5 timeOnlyObj5 timeOnlyConverterObj5 toJSONObj5 toStringObj5 topLevelObj5 transientObj5 trueObj5 tryObj5 typealiasObj5 typedefObj5 typeidObj5 typenameObj5 typeofObj5 uintObj5 ulongObj5 uncheckedObj5 undefinedObj5 unionObj5 unownedObj5 unsafeObj5 unsignedObj5 ushortObj5 usingObj5 utf8JSONReaderObj5 utf8JSONWriterObj5 uuidObj5 varObj5 virtualObj5 voidObj5 volatileObj5 wcharTObj5 weakObj5 whileObj5 willSetObj5 withObj5 xorObj5 xorEqObj5 yesObj5 yieldObj5) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "dummy" .= dummyObj5
+        , Just $ "then" .= obj5ThenObj5
+        , Just $ "true" .= obj5TrueObj5
+        , Just $ "Type" .= obj5TypeObj5
+        , Just $ "where" .= obj5WhereObj5
+        , Just $ "type" .= purpleTypeObj5
+        , Just $ "static_cast" .= staticCastObj5
+        , Just $ "StdDeserializer" .= stdDeserializerObj5
+        , Just $ "StdSerializer" .= stdSerializerObj5
+        , Just $ "strictfp" .= strictfpObj5
+        , Just $ "string" .= stringObj5
+        , Just $ "struct" .= structObj5
+        , Just $ "subscript" .= subscriptObj5
+        , Just $ "super" .= superObj5
+        , Just $ "switch" .= switchObj5
+        , Just $ "symbol" .= symbolObj5
+        , Just $ "synchronized" .= synchronizedObj5
+        , Just $ "system" .= systemObj5
+        , Just $ "template" .= templateObj5
+        , Just $ "this" .= thisObj5
+        , Just $ "thread_local" .= threadLocalObj5
+        , Just $ "throw" .= throwObj5
+        , Just $ "throws" .= throwsObj5
+        , Just $ "TimeOnly" .= timeOnlyObj5
+        , Just $ "TimeOnlyConverter" .= timeOnlyConverterObj5
+        , Just $ "to_json" .= toJSONObj5
+        , Just $ "toString" .= toStringObj5
+        , Just $ "top_level" .= topLevelObj5
+        , Just $ "transient" .= transientObj5
+        , Just $ "True" .= trueObj5
+        , Just $ "try" .= tryObj5
+        , Just $ "typealias" .= typealiasObj5
+        , Just $ "typedef" .= typedefObj5
+        , Just $ "typeid" .= typeidObj5
+        , Just $ "typename" .= typenameObj5
+        , Just $ "typeof" .= typeofObj5
+        , Just $ "uint" .= uintObj5
+        , Just $ "ulong" .= ulongObj5
+        , Just $ "unchecked" .= uncheckedObj5
+        , Just $ "undefined" .= undefinedObj5
+        , Just $ "union" .= unionObj5
+        , Just $ "unowned" .= unownedObj5
+        , Just $ "unsafe" .= unsafeObj5
+        , Just $ "unsigned" .= unsignedObj5
+        , Just $ "ushort" .= ushortObj5
+        , Just $ "using" .= usingObj5
+        , Just $ "Utf8JsonReader" .= utf8JSONReaderObj5
+        , Just $ "Utf8JsonWriter" .= utf8JSONWriterObj5
+        , Just $ "UUID" .= uuidObj5
+        , Just $ "var" .= varObj5
+        , Just $ "virtual" .= virtualObj5
+        , Just $ "void" .= voidObj5
+        , Just $ "volatile" .= volatileObj5
+        , Just $ "wchar_t" .= wcharTObj5
+        , Just $ "weak" .= weakObj5
+        , Just $ "while" .= whileObj5
+        , Just $ "willSet" .= willSetObj5
+        , Just $ "with" .= withObj5
+        , Just $ "xor" .= xorObj5
+        , Just $ "xor_eq" .= xorEqObj5
+        , Just $ "YES" .= yesObj5
+        , Just $ "yield" .= yieldObj5
+        ]
+
+instance FromJSON Obj5 where
+    parseJSON (Object v) = Obj5
+        <$> v .: "dummy"
+        <*> v .: "then"
+        <*> v .: "true"
+        <*> v .: "Type"
+        <*> v .: "where"
+        <*> v .: "type"
+        <*> v .: "static_cast"
+        <*> v .: "StdDeserializer"
+        <*> v .: "StdSerializer"
+        <*> v .: "strictfp"
+        <*> v .: "string"
+        <*> v .: "struct"
+        <*> v .: "subscript"
+        <*> v .: "super"
+        <*> v .: "switch"
+        <*> v .: "symbol"
+        <*> v .: "synchronized"
+        <*> v .: "system"
+        <*> v .: "template"
+        <*> v .: "this"
+        <*> v .: "thread_local"
+        <*> v .: "throw"
+        <*> v .: "throws"
+        <*> v .: "TimeOnly"
+        <*> v .: "TimeOnlyConverter"
+        <*> v .: "to_json"
+        <*> v .: "toString"
+        <*> v .: "top_level"
+        <*> v .: "transient"
+        <*> v .: "True"
+        <*> v .: "try"
+        <*> v .: "typealias"
+        <*> v .: "typedef"
+        <*> v .: "typeid"
+        <*> v .: "typename"
+        <*> v .: "typeof"
+        <*> v .: "uint"
+        <*> v .: "ulong"
+        <*> v .: "unchecked"
+        <*> v .: "undefined"
+        <*> v .: "union"
+        <*> v .: "unowned"
+        <*> v .: "unsafe"
+        <*> v .: "unsigned"
+        <*> v .: "ushort"
+        <*> v .: "using"
+        <*> v .: "Utf8JsonReader"
+        <*> v .: "Utf8JsonWriter"
+        <*> v .: "UUID"
+        <*> v .: "var"
+        <*> v .: "virtual"
+        <*> v .: "void"
+        <*> v .: "volatile"
+        <*> v .: "wchar_t"
+        <*> v .: "weak"
+        <*> v .: "while"
+        <*> v .: "willSet"
+        <*> v .: "with"
+        <*> v .: "xor"
+        <*> v .: "xor_eq"
+        <*> v .: "YES"
+        <*> v .: "yield"
+
+instance ToJSON Then where
+    toJSON (Then thenThenThen) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "then" .= thenThenThen
+        ]
+
+instance FromJSON Then where
+    parseJSON (Object v) = Then
+        <$> v .: "then"
+
+instance ToJSON Obj5True where
+    toJSON (Obj5True trueObj5True) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "true" .= trueObj5True
+        ]
+
+instance FromJSON Obj5True where
+    parseJSON (Object v) = Obj5True
+        <$> v .: "true"
+
+instance ToJSON Type where
+    toJSON (Type typeTypeType) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "Type" .= typeTypeType
+        ]
+
+instance FromJSON Type where
+    parseJSON (Object v) = Type
+        <$> v .: "Type"
+
+instance ToJSON Where where
+    toJSON (Where whereWhereWhere) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "where" .= whereWhereWhere
+        ]
+
+instance FromJSON Where where
+    parseJSON (Object v) = Where
+        <$> v .: "where"
+
+instance ToJSON TypeClass where
+    toJSON (TypeClass typeTypeTypeClass) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "type" .= typeTypeTypeClass
+        ]
+
+instance FromJSON TypeClass where
+    parseJSON (Object v) = TypeClass
+        <$> v .: "type"
+
 instance ToJSON StaticCast where
     toJSON (StaticCast staticCastStaticCast) =
         object $ foldMap (maybe [] pure)
@@ -5245,6 +5291,26 @@ instance FromJSON StaticCast where
     parseJSON (Object v) = StaticCast
         <$> v .: "static_cast"
 
+instance ToJSON StdDeserializer where
+    toJSON (StdDeserializer stdDeserializerStdDeserializer) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "StdDeserializer" .= stdDeserializerStdDeserializer
+        ]
+
+instance FromJSON StdDeserializer where
+    parseJSON (Object v) = StdDeserializer
+        <$> v .: "StdDeserializer"
+
+instance ToJSON StdSerializer where
+    toJSON (StdSerializer stdSerializerStdSerializer) =
+        object $ foldMap (maybe [] pure)
+        [ Just $ "StdSerializer" .= stdSerializerStdSerializer
+        ]
+
+instance FromJSON StdSerializer where
+    parseJSON (Object v) = StdSerializer
+        <$> v .: "StdSerializer"
+
 instance ToJSON Strictfp where
     toJSON (Strictfp strictfpStrictfp) =
         object $ foldMap (maybe [] pure)
@@ -5555,72 +5621,6 @@ instance FromJSON Undefined where
     parseJSON (Object v) = Undefined
         <$> v .: "undefined"
 
-instance ToJSON Obj5 where
-    toJSON (Obj5 dummyObj5 obj5WhereObj5 unionObj5 unownedObj5 unsafeObj5 unsignedObj5 ushortObj5 usingObj5 utf8JSONReaderObj5 utf8JSONWriterObj5 uuidObj5 varObj5 virtualObj5 voidObj5 volatileObj5 wcharTObj5 weakObj5 whileObj5 willSetObj5 withObj5 xorObj5 xorEqObj5 yesObj5 yieldObj5) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "dummy" .= dummyObj5
-        , Just $ "where" .= obj5WhereObj5
-        , Just $ "union" .= unionObj5
-        , Just $ "unowned" .= unownedObj5
-        , Just $ "unsafe" .= unsafeObj5
-        , Just $ "unsigned" .= unsignedObj5
-        , Just $ "ushort" .= ushortObj5
-        , Just $ "using" .= usingObj5
-        , Just $ "Utf8JsonReader" .= utf8JSONReaderObj5
-        , Just $ "Utf8JsonWriter" .= utf8JSONWriterObj5
-        , Just $ "UUID" .= uuidObj5
-        , Just $ "var" .= varObj5
-        , Just $ "virtual" .= virtualObj5
-        , Just $ "void" .= voidObj5
-        , Just $ "volatile" .= volatileObj5
-        , Just $ "wchar_t" .= wcharTObj5
-        , Just $ "weak" .= weakObj5
-        , Just $ "while" .= whileObj5
-        , Just $ "willSet" .= willSetObj5
-        , Just $ "with" .= withObj5
-        , Just $ "xor" .= xorObj5
-        , Just $ "xor_eq" .= xorEqObj5
-        , Just $ "YES" .= yesObj5
-        , Just $ "yield" .= yieldObj5
-        ]
-
-instance FromJSON Obj5 where
-    parseJSON (Object v) = Obj5
-        <$> v .: "dummy"
-        <*> v .: "where"
-        <*> v .: "union"
-        <*> v .: "unowned"
-        <*> v .: "unsafe"
-        <*> v .: "unsigned"
-        <*> v .: "ushort"
-        <*> v .: "using"
-        <*> v .: "Utf8JsonReader"
-        <*> v .: "Utf8JsonWriter"
-        <*> v .: "UUID"
-        <*> v .: "var"
-        <*> v .: "virtual"
-        <*> v .: "void"
-        <*> v .: "volatile"
-        <*> v .: "wchar_t"
-        <*> v .: "weak"
-        <*> v .: "while"
-        <*> v .: "willSet"
-        <*> v .: "with"
-        <*> v .: "xor"
-        <*> v .: "xor_eq"
-        <*> v .: "YES"
-        <*> v .: "yield"
-
-instance ToJSON Where where
-    toJSON (Where whereWhereWhere) =
-        object $ foldMap (maybe [] pure)
-        [ Just $ "where" .= whereWhereWhere
-        ]
-
-instance FromJSON Where where
-    parseJSON (Object v) = Where
-        <$> v .: "where"
-
 instance ToJSON Union where
     toJSON (Union unionUnion) =
         object $ foldMap (maybe [] pure)
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
index 2823161..3220b18 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
@@ -50,13 +50,6 @@ public class Obj1 {
     private DateOnly dateOnly;
     private DateOnlyConverter dateOnlyConverter;
     private DateParseHandling dateParseHandling;
-    private DateTime dateTime;
-    private DateTimeStyles dateTimeStyles;
-    private Debugger debugger;
-    private Decimal decimal;
-    private Declare declare;
-    private Decltype decltype;
-    private DecodeString decodeString;
     private long dummy;
     private Empty empty;
     private Imaginery imaginery;
@@ -311,41 +304,6 @@ public class Obj1 {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(DateParseHandling value) { this.dateParseHandling = value; }
 
-    @JsonProperty("DateTime")
-    public DateTime getDateTime() { return dateTime; }
-    @JsonProperty("DateTime")
-    public void setDateTime(DateTime value) { this.dateTime = value; }
-
-    @JsonProperty("DateTimeStyles")
-    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
-    @JsonProperty("DateTimeStyles")
-    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
-
-    @JsonProperty("debugger")
-    public Debugger getDebugger() { return debugger; }
-    @JsonProperty("debugger")
-    public void setDebugger(Debugger value) { this.debugger = value; }
-
-    @JsonProperty("decimal")
-    public Decimal getDecimal() { return decimal; }
-    @JsonProperty("decimal")
-    public void setDecimal(Decimal value) { this.decimal = value; }
-
-    @JsonProperty("declare")
-    public Declare getDeclare() { return declare; }
-    @JsonProperty("declare")
-    public void setDeclare(Declare value) { this.declare = value; }
-
-    @JsonProperty("decltype")
-    public Decltype getDecltype() { return decltype; }
-    @JsonProperty("decltype")
-    public void setDecltype(Decltype value) { this.decltype = value; }
-
-    @JsonProperty("decode_string")
-    public DecodeString getDecodeString() { return decodeString; }
-    @JsonProperty("decode_string")
-    public void setDecodeString(DecodeString value) { this.decodeString = value; }
-
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
index 443c384..9ddd683 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
@@ -3,6 +3,13 @@ package io.quicktype;
 import com.fasterxml.jackson.annotation.*;
 
 public class Obj2 {
+    private DateTime dateTime;
+    private DateTimeStyles dateTimeStyles;
+    private Debugger debugger;
+    private Decimal decimal;
+    private Declare declare;
+    private Decltype decltype;
+    private DecodeString decodeString;
     private Def def;
     private Defer defer;
     private Deinit deinit;
@@ -46,13 +53,6 @@ public class Obj2 {
     private ID id;
     private Imp imp;
     private Implicit implicit;
-    private In in;
-    private Indirect indirect;
-    private Infix infix;
-    private Init init;
-    private Inline inline;
-    private Inout inout;
-    private Internal internal;
     private Default obj2Default;
     private Do obj2Do;
     private DoubleClass obj2Double;
@@ -67,12 +67,43 @@ public class Obj2 {
     private Goto obj2Goto;
     private If obj2If;
     private Implements obj2Implements;
-    private Import obj2Import;
-    private Instanceof obj2Instanceof;
-    private Int obj2Int;
-    private Interface obj2Interface;
     private FalseClass purpleFalse;
 
+    @JsonProperty("DateTime")
+    public DateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(DateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
+
+    @JsonProperty("debugger")
+    public Debugger getDebugger() { return debugger; }
+    @JsonProperty("debugger")
+    public void setDebugger(Debugger value) { this.debugger = value; }
+
+    @JsonProperty("decimal")
+    public Decimal getDecimal() { return decimal; }
+    @JsonProperty("decimal")
+    public void setDecimal(Decimal value) { this.decimal = value; }
+
+    @JsonProperty("declare")
+    public Declare getDeclare() { return declare; }
+    @JsonProperty("declare")
+    public void setDeclare(Declare value) { this.declare = value; }
+
+    @JsonProperty("decltype")
+    public Decltype getDecltype() { return decltype; }
+    @JsonProperty("decltype")
+    public void setDecltype(Decltype value) { this.decltype = value; }
+
+    @JsonProperty("decode_string")
+    public DecodeString getDecodeString() { return decodeString; }
+    @JsonProperty("decode_string")
+    public void setDecodeString(DecodeString value) { this.decodeString = value; }
+
     @JsonProperty("def")
     public Def getDef() { return def; }
     @JsonProperty("def")
@@ -288,41 +319,6 @@ public class Obj2 {
     @JsonProperty("implicit")
     public void setImplicit(Implicit value) { this.implicit = value; }
 
-    @JsonProperty("in")
-    public In getIn() { return in; }
-    @JsonProperty("in")
-    public void setIn(In value) { this.in = value; }
-
-    @JsonProperty("indirect")
-    public Indirect getIndirect() { return indirect; }
-    @JsonProperty("indirect")
-    public void setIndirect(Indirect value) { this.indirect = value; }
-
-    @JsonProperty("infix")
-    public Infix getInfix() { return infix; }
-    @JsonProperty("infix")
-    public void setInfix(Infix value) { this.infix = value; }
-
-    @JsonProperty("init")
-    public Init getInit() { return init; }
-    @JsonProperty("init")
-    public void setInit(Init value) { this.init = value; }
-
-    @JsonProperty("inline")
-    public Inline getInline() { return inline; }
-    @JsonProperty("inline")
-    public void setInline(Inline value) { this.inline = value; }
-
-    @JsonProperty("inout")
-    public Inout getInout() { return inout; }
-    @JsonProperty("inout")
-    public void setInout(Inout value) { this.inout = value; }
-
-    @JsonProperty("internal")
-    public Internal getInternal() { return internal; }
-    @JsonProperty("internal")
-    public void setInternal(Internal value) { this.internal = value; }
-
     @JsonProperty("default")
     public Default getObj2Default() { return obj2Default; }
     @JsonProperty("default")
@@ -393,26 +389,6 @@ public class Obj2 {
     @JsonProperty("implements")
     public void setObj2Implements(Implements value) { this.obj2Implements = value; }
 
-    @JsonProperty("import")
-    public Import getObj2Import() { return obj2Import; }
-    @JsonProperty("import")
-    public void setObj2Import(Import value) { this.obj2Import = value; }
-
-    @JsonProperty("instanceof")
-    public Instanceof getObj2Instanceof() { return obj2Instanceof; }
-    @JsonProperty("instanceof")
-    public void setObj2Instanceof(Instanceof value) { this.obj2Instanceof = value; }
-
-    @JsonProperty("int")
-    public Int getObj2Int() { return obj2Int; }
-    @JsonProperty("int")
-    public void setObj2Int(Int value) { this.obj2Int = value; }
-
-    @JsonProperty("interface")
-    public Interface getObj2Interface() { return obj2Interface; }
-    @JsonProperty("interface")
-    public void setObj2Interface(Interface value) { this.obj2Interface = value; }
-
     @JsonProperty("false")
     public FalseClass getPurpleFalse() { return purpleFalse; }
     @JsonProperty("false")
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
index 6b706b7..ac2fe63 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
@@ -4,6 +4,13 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj3 {
     private long dummy;
+    private In in;
+    private Indirect indirect;
+    private Infix infix;
+    private Init init;
+    private Inline inline;
+    private Inout inout;
+    private Internal internal;
     private Is is;
     private ISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private Iterable iterable;
@@ -51,49 +58,57 @@ public class Obj3 {
     private NotEq notEq;
     private NSError nsError;
     private NSString nsString;
-    private Nullptr nullptr;
-    private Number number;
+    private Import obj3Import;
+    private Instanceof obj3Instanceof;
+    private Int obj3Int;
+    private Interface obj3Interface;
     private LongClass obj3Long;
     private Null obj3NULL;
     private Native obj3Native;
     private New obj3New;
     private Obj3None obj3None;
     private NullClass obj3Null;
-    private Package obj3Package;
-    private Private obj3Private;
-    private Protected obj3Protected;
-    private ProtocolClass obj3Protocol;
-    private ObjectClass object;
-    private ObjectMapperClass objectMapper;
-    private Of of;
-    private Oneway oneway;
-    private Open open;
-    private Operator operator;
-    private Optional optional;
-    private Or or;
-    private OrEq orEq;
-    private Out out;
-    private OverrideClass override;
-    private Params params;
-    private Pass pass;
-    private Port port;
-    private Postfix postfix;
-    private Precedence precedence;
-    private Prefix prefix;
-    private Print print;
-    private PrintMembers printMembers;
-    private Printf printf;
-    private Protocol protocol;
-    private SerializerProviderClass serializerProvider;
-    private SimpleModule simpleModule;
-    private StdDeserializer stdDeserializer;
-    private StdSerializer stdSerializer;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("in")
+    public In getIn() { return in; }
+    @JsonProperty("in")
+    public void setIn(In value) { this.in = value; }
+
+    @JsonProperty("indirect")
+    public Indirect getIndirect() { return indirect; }
+    @JsonProperty("indirect")
+    public void setIndirect(Indirect value) { this.indirect = value; }
+
+    @JsonProperty("infix")
+    public Infix getInfix() { return infix; }
+    @JsonProperty("infix")
+    public void setInfix(Infix value) { this.infix = value; }
+
+    @JsonProperty("init")
+    public Init getInit() { return init; }
+    @JsonProperty("init")
+    public void setInit(Init value) { this.init = value; }
+
+    @JsonProperty("inline")
+    public Inline getInline() { return inline; }
+    @JsonProperty("inline")
+    public void setInline(Inline value) { this.inline = value; }
+
+    @JsonProperty("inout")
+    public Inout getInout() { return inout; }
+    @JsonProperty("inout")
+    public void setInout(Inout value) { this.inout = value; }
+
+    @JsonProperty("internal")
+    public Internal getInternal() { return internal; }
+    @JsonProperty("internal")
+    public void setInternal(Internal value) { this.internal = value; }
+
     @JsonProperty("is")
     public Is getIs() { return is; }
     @JsonProperty("is")
@@ -329,15 +344,25 @@ public class Obj3 {
     @JsonProperty("NSString")
     public void setNSString(NSString value) { this.nsString = value; }
 
-    @JsonProperty("nullptr")
-    public Nullptr getNullptr() { return nullptr; }
-    @JsonProperty("nullptr")
-    public void setNullptr(Nullptr value) { this.nullptr = value; }
+    @JsonProperty("import")
+    public Import getObj3Import() { return obj3Import; }
+    @JsonProperty("import")
+    public void setObj3Import(Import value) { this.obj3Import = value; }
+
+    @JsonProperty("instanceof")
+    public Instanceof getObj3Instanceof() { return obj3Instanceof; }
+    @JsonProperty("instanceof")
+    public void setObj3Instanceof(Instanceof value) { this.obj3Instanceof = value; }
 
-    @JsonProperty("number")
-    public Number getNumber() { return number; }
-    @JsonProperty("number")
-    public void setNumber(Number value) { this.number = value; }
+    @JsonProperty("int")
+    public Int getObj3Int() { return obj3Int; }
+    @JsonProperty("int")
+    public void setObj3Int(Int value) { this.obj3Int = value; }
+
+    @JsonProperty("interface")
+    public Interface getObj3Interface() { return obj3Interface; }
+    @JsonProperty("interface")
+    public void setObj3Interface(Interface value) { this.obj3Interface = value; }
 
     @JsonProperty("long")
     public LongClass getObj3Long() { return obj3Long; }
@@ -368,149 +393,4 @@ public class Obj3 {
     public NullClass getObj3Null() { return obj3Null; }
     @JsonProperty("null")
     public void setObj3Null(NullClass value) { this.obj3Null = value; }
-
-    @JsonProperty("package")
-    public Package getObj3Package() { return obj3Package; }
-    @JsonProperty("package")
-    public void setObj3Package(Package value) { this.obj3Package = value; }
-
-    @JsonProperty("private")
-    public Private getObj3Private() { return obj3Private; }
-    @JsonProperty("private")
-    public void setObj3Private(Private value) { this.obj3Private = value; }
-
-    @JsonProperty("protected")
-    public Protected getObj3Protected() { return obj3Protected; }
-    @JsonProperty("protected")
-    public void setObj3Protected(Protected value) { this.obj3Protected = value; }
-
-    @JsonProperty("protocol")
-    public ProtocolClass getObj3Protocol() { return obj3Protocol; }
-    @JsonProperty("protocol")
-    public void setObj3Protocol(ProtocolClass value) { this.obj3Protocol = value; }
-
-    @JsonProperty("object")
-    public ObjectClass getObject() { return object; }
-    @JsonProperty("object")
-    public void setObject(ObjectClass value) { this.object = value; }
-
-    @JsonProperty("ObjectMapper")
-    public ObjectMapperClass getObjectMapper() { return objectMapper; }
-    @JsonProperty("ObjectMapper")
-    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
-
-    @JsonProperty("of")
-    public Of getOf() { return of; }
-    @JsonProperty("of")
-    public void setOf(Of value) { this.of = value; }
-
-    @JsonProperty("oneway")
-    public Oneway getOneway() { return oneway; }
-    @JsonProperty("oneway")
-    public void setOneway(Oneway value) { this.oneway = value; }
-
-    @JsonProperty("open")
-    public Open getOpen() { return open; }
-    @JsonProperty("open")
-    public void setOpen(Open value) { this.open = value; }
-
-    @JsonProperty("operator")
-    public Operator getOperator() { return operator; }
-    @JsonProperty("operator")
-    public void setOperator(Operator value) { this.operator = value; }
-
-    @JsonProperty("optional")
-    public Optional getOptional() { return optional; }
-    @JsonProperty("optional")
-    public void setOptional(Optional value) { this.optional = value; }
-
-    @JsonProperty("or")
-    public Or getOr() { return or; }
-    @JsonProperty("or")
-    public void setOr(Or value) { this.or = value; }
-
-    @JsonProperty("or_eq")
-    public OrEq getOrEq() { return orEq; }
-    @JsonProperty("or_eq")
-    public void setOrEq(OrEq value) { this.orEq = value; }
-
-    @JsonProperty("out")
-    public Out getOut() { return out; }
-    @JsonProperty("out")
-    public void setOut(Out value) { this.out = value; }
-
-    @JsonProperty("override")
-    public OverrideClass getOverride() { return override; }
-    @JsonProperty("override")
-    public void setOverride(OverrideClass value) { this.override = value; }
-
-    @JsonProperty("params")
-    public Params getParams() { return params; }
-    @JsonProperty("params")
-    public void setParams(Params value) { this.params = value; }
-
-    @JsonProperty("pass")
-    public Pass getPass() { return pass; }
-    @JsonProperty("pass")
-    public void setPass(Pass value) { this.pass = value; }
-
-    @JsonProperty("port")
-    public Port getPort() { return port; }
-    @JsonProperty("port")
-    public void setPort(Port value) { this.port = value; }
-
-    @JsonProperty("postfix")
-    public Postfix getPostfix() { return postfix; }
-    @JsonProperty("postfix")
-    public void setPostfix(Postfix value) { this.postfix = value; }
-
-    @JsonProperty("precedence")
-    public Precedence getPrecedence() { return precedence; }
-    @JsonProperty("precedence")
-    public void setPrecedence(Precedence value) { this.precedence = value; }
-
-    @JsonProperty("prefix")
-    public Prefix getPrefix() { return prefix; }
-    @JsonProperty("prefix")
-    public void setPrefix(Prefix value) { this.prefix = value; }
-
-    @JsonProperty("print")
-    public Print getPrint() { return print; }
-    @JsonProperty("print")
-    public void setPrint(Print value) { this.print = value; }
-
-    @JsonProperty("printMembers")
-    public PrintMembers getPrintMembers() { return printMembers; }
-    @JsonProperty("printMembers")
-    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
-
-    @JsonProperty("printf")
-    public Printf getPrintf() { return printf; }
-    @JsonProperty("printf")
-    public void setPrintf(Printf value) { this.printf = value; }
-
-    @JsonProperty("Protocol")
-    public Protocol getProtocol() { return protocol; }
-    @JsonProperty("Protocol")
-    public void setProtocol(Protocol value) { this.protocol = value; }
-
-    @JsonProperty("SerializerProvider")
-    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
-    @JsonProperty("SerializerProvider")
-    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
-
-    @JsonProperty("SimpleModule")
-    public SimpleModule getSimpleModule() { return simpleModule; }
-    @JsonProperty("SimpleModule")
-    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
-
-    @JsonProperty("StdDeserializer")
-    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
-    @JsonProperty("StdDeserializer")
-    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
-
-    @JsonProperty("StdSerializer")
-    public StdSerializer getStdSerializer() { return stdSerializer; }
-    @JsonProperty("StdSerializer")
-    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
 }
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
index 27a5828..6ee1cad 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
@@ -4,23 +4,38 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj4 {
     private long dummy;
+    private Nullptr nullptr;
+    private Number number;
+    private Package obj4Package;
+    private Private obj4Private;
+    private Protected obj4Protected;
+    private ProtocolClass obj4Protocol;
     private Public obj4Public;
     private Return obj4Return;
     private SelfClass obj4Self;
     private Short obj4Short;
     private Static obj4Static;
-    private Strictfp obj4Strictfp;
-    private Super obj4Super;
-    private Switch obj4Switch;
-    private Synchronized obj4Synchronized;
-    private This obj4This;
-    private Throw obj4Throw;
-    private Throws obj4Throws;
-    private Transient obj4Transient;
-    private True obj4True;
-    private Try obj4Try;
-    private TypeClass obj4Type;
-    private TrueClass purpleTrue;
+    private ObjectClass object;
+    private ObjectMapperClass objectMapper;
+    private Of of;
+    private Oneway oneway;
+    private Open open;
+    private Operator operator;
+    private Optional optional;
+    private Or or;
+    private OrEq orEq;
+    private Out out;
+    private OverrideClass override;
+    private Params params;
+    private Pass pass;
+    private Port port;
+    private Postfix postfix;
+    private Precedence precedence;
+    private Prefix prefix;
+    private Print print;
+    private PrintMembers printMembers;
+    private Printf printf;
+    private Protocol protocol;
     private Quicktype quicktype;
     private Raise raise;
     private Range range;
@@ -45,42 +60,50 @@ public class Obj4 {
     private Select select;
     private Self self;
     private Serialize serialize;
+    private SerializerProviderClass serializerProvider;
     private Set set;
     private Signed signed;
+    private SimpleModule simpleModule;
     private Sizeof sizeof;
     private Stackalloc stackalloc;
     private Standards standards;
     private StaticAssert staticAssert;
-    private StaticCast staticCast;
-    private StringClass string;
-    private Struct struct;
-    private Subscript subscript;
-    private Symbol symbol;
-    private SystemClass system;
-    private Template template;
-    private Then then;
-    private ThreadLocal threadLocal;
-    private TimeOnly timeOnly;
-    private TimeOnlyConverter timeOnlyConverter;
-    private ToJSON toJSON;
-    private ToString toString;
-    private TopLevelClass topLevel;
-    private Type type;
-    private Typealias typealias;
-    private Typedef typedef;
-    private Typeid typeid;
-    private Typename typename;
-    private Typeof typeof;
-    private Uint uint;
-    private Ulong ulong;
-    private Unchecked unchecked;
-    private Undefined undefined;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("nullptr")
+    public Nullptr getNullptr() { return nullptr; }
+    @JsonProperty("nullptr")
+    public void setNullptr(Nullptr value) { this.nullptr = value; }
+
+    @JsonProperty("number")
+    public Number getNumber() { return number; }
+    @JsonProperty("number")
+    public void setNumber(Number value) { this.number = value; }
+
+    @JsonProperty("package")
+    public Package getObj4Package() { return obj4Package; }
+    @JsonProperty("package")
+    public void setObj4Package(Package value) { this.obj4Package = value; }
+
+    @JsonProperty("private")
+    public Private getObj4Private() { return obj4Private; }
+    @JsonProperty("private")
+    public void setObj4Private(Private value) { this.obj4Private = value; }
+
+    @JsonProperty("protected")
+    public Protected getObj4Protected() { return obj4Protected; }
+    @JsonProperty("protected")
+    public void setObj4Protected(Protected value) { this.obj4Protected = value; }
+
+    @JsonProperty("protocol")
+    public ProtocolClass getObj4Protocol() { return obj4Protocol; }
+    @JsonProperty("protocol")
+    public void setObj4Protocol(ProtocolClass value) { this.obj4Protocol = value; }
+
     @JsonProperty("public")
     public Public getObj4Public() { return obj4Public; }
     @JsonProperty("public")
@@ -106,65 +129,110 @@ public class Obj4 {
     @JsonProperty("static")
     public void setObj4Static(Static value) { this.obj4Static = value; }
 
-    @JsonProperty("strictfp")
-    public Strictfp getObj4Strictfp() { return obj4Strictfp; }
-    @JsonProperty("strictfp")
-    public void setObj4Strictfp(Strictfp value) { this.obj4Strictfp = value; }
-
-    @JsonProperty("super")
-    public Super getObj4Super() { return obj4Super; }
-    @JsonProperty("super")
-    public void setObj4Super(Super value) { this.obj4Super = value; }
-
-    @JsonProperty("switch")
-    public Switch getObj4Switch() { return obj4Switch; }
-    @JsonProperty("switch")
-    public void setObj4Switch(Switch value) { this.obj4Switch = value; }
-
-    @JsonProperty("synchronized")
-    public Synchronized getObj4Synchronized() { return obj4Synchronized; }
-    @JsonProperty("synchronized")
-    public void setObj4Synchronized(Synchronized value) { this.obj4Synchronized = value; }
-
-    @JsonProperty("this")
-    public This getObj4This() { return obj4This; }
-    @JsonProperty("this")
-    public void setObj4This(This value) { this.obj4This = value; }
-
-    @JsonProperty("throw")
-    public Throw getObj4Throw() { return obj4Throw; }
-    @JsonProperty("throw")
-    public void setObj4Throw(Throw value) { this.obj4Throw = value; }
-
-    @JsonProperty("throws")
-    public Throws getObj4Throws() { return obj4Throws; }
-    @JsonProperty("throws")
-    public void setObj4Throws(Throws value) { this.obj4Throws = value; }
-
-    @JsonProperty("transient")
-    public Transient getObj4Transient() { return obj4Transient; }
-    @JsonProperty("transient")
-    public void setObj4Transient(Transient value) { this.obj4Transient = value; }
-
-    @JsonProperty("True")
-    public True getObj4True() { return obj4True; }
-    @JsonProperty("True")
-    public void setObj4True(True value) { this.obj4True = value; }
-
-    @JsonProperty("try")
-    public Try getObj4Try() { return obj4Try; }
-    @JsonProperty("try")
-    public void setObj4Try(Try value) { this.obj4Try = value; }
-
-    @JsonProperty("type")
-    public TypeClass getObj4Type() { return obj4Type; }
-    @JsonProperty("type")
-    public void setObj4Type(TypeClass value) { this.obj4Type = value; }
-
-    @JsonProperty("true")
-    public TrueClass getPurpleTrue() { return purpleTrue; }
-    @JsonProperty("true")
-    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+    @JsonProperty("object")
+    public ObjectClass getObject() { return object; }
+    @JsonProperty("object")
+    public void setObject(ObjectClass value) { this.object = value; }
+
+    @JsonProperty("ObjectMapper")
+    public ObjectMapperClass getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
+
+    @JsonProperty("of")
+    public Of getOf() { return of; }
+    @JsonProperty("of")
+    public void setOf(Of value) { this.of = value; }
+
+    @JsonProperty("oneway")
+    public Oneway getOneway() { return oneway; }
+    @JsonProperty("oneway")
+    public void setOneway(Oneway value) { this.oneway = value; }
+
+    @JsonProperty("open")
+    public Open getOpen() { return open; }
+    @JsonProperty("open")
+    public void setOpen(Open value) { this.open = value; }
+
+    @JsonProperty("operator")
+    public Operator getOperator() { return operator; }
+    @JsonProperty("operator")
+    public void setOperator(Operator value) { this.operator = value; }
+
+    @JsonProperty("optional")
+    public Optional getOptional() { return optional; }
+    @JsonProperty("optional")
+    public void setOptional(Optional value) { this.optional = value; }
+
+    @JsonProperty("or")
+    public Or getOr() { return or; }
+    @JsonProperty("or")
+    public void setOr(Or value) { this.or = value; }
+
+    @JsonProperty("or_eq")
+    public OrEq getOrEq() { return orEq; }
+    @JsonProperty("or_eq")
+    public void setOrEq(OrEq value) { this.orEq = value; }
+
+    @JsonProperty("out")
+    public Out getOut() { return out; }
+    @JsonProperty("out")
+    public void setOut(Out value) { this.out = value; }
+
+    @JsonProperty("override")
+    public OverrideClass getOverride() { return override; }
+    @JsonProperty("override")
+    public void setOverride(OverrideClass value) { this.override = value; }
+
+    @JsonProperty("params")
+    public Params getParams() { return params; }
+    @JsonProperty("params")
+    public void setParams(Params value) { this.params = value; }
+
+    @JsonProperty("pass")
+    public Pass getPass() { return pass; }
+    @JsonProperty("pass")
+    public void setPass(Pass value) { this.pass = value; }
+
+    @JsonProperty("port")
+    public Port getPort() { return port; }
+    @JsonProperty("port")
+    public void setPort(Port value) { this.port = value; }
+
+    @JsonProperty("postfix")
+    public Postfix getPostfix() { return postfix; }
+    @JsonProperty("postfix")
+    public void setPostfix(Postfix value) { this.postfix = value; }
+
+    @JsonProperty("precedence")
+    public Precedence getPrecedence() { return precedence; }
+    @JsonProperty("precedence")
+    public void setPrecedence(Precedence value) { this.precedence = value; }
+
+    @JsonProperty("prefix")
+    public Prefix getPrefix() { return prefix; }
+    @JsonProperty("prefix")
+    public void setPrefix(Prefix value) { this.prefix = value; }
+
+    @JsonProperty("print")
+    public Print getPrint() { return print; }
+    @JsonProperty("print")
+    public void setPrint(Print value) { this.print = value; }
+
+    @JsonProperty("printMembers")
+    public PrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
+
+    @JsonProperty("printf")
+    public Printf getPrintf() { return printf; }
+    @JsonProperty("printf")
+    public void setPrintf(Printf value) { this.printf = value; }
+
+    @JsonProperty("Protocol")
+    public Protocol getProtocol() { return protocol; }
+    @JsonProperty("Protocol")
+    public void setProtocol(Protocol value) { this.protocol = value; }
 
     @JsonProperty("quicktype")
     public Quicktype getQuicktype() { return quicktype; }
@@ -286,6 +354,11 @@ public class Obj4 {
     @JsonProperty("serialize")
     public void setSerialize(Serialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public Set getSet() { return set; }
     @JsonProperty("set")
@@ -296,6 +369,11 @@ public class Obj4 {
     @JsonProperty("signed")
     public void setSigned(Signed value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public SimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public Sizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -315,124 +393,4 @@ public class Obj4 {
     public StaticAssert getStaticAssert() { return staticAssert; }
     @JsonProperty("static_assert")
     public void setStaticAssert(StaticAssert value) { this.staticAssert = value; }
-
-    @JsonProperty("static_cast")
-    public StaticCast getStaticCast() { return staticCast; }
-    @JsonProperty("static_cast")
-    public void setStaticCast(StaticCast value) { this.staticCast = value; }
-
-    @JsonProperty("string")
-    public StringClass getString() { return string; }
-    @JsonProperty("string")
-    public void setString(StringClass value) { this.string = value; }
-
-    @JsonProperty("struct")
-    public Struct getStruct() { return struct; }
-    @JsonProperty("struct")
-    public void setStruct(Struct value) { this.struct = value; }
-
-    @JsonProperty("subscript")
-    public Subscript getSubscript() { return subscript; }
-    @JsonProperty("subscript")
-    public void setSubscript(Subscript value) { this.subscript = value; }
-
-    @JsonProperty("symbol")
-    public Symbol getSymbol() { return symbol; }
-    @JsonProperty("symbol")
-    public void setSymbol(Symbol value) { this.symbol = value; }
-
-    @JsonProperty("system")
-    public SystemClass getSystem() { return system; }
-    @JsonProperty("system")
-    public void setSystem(SystemClass value) { this.system = value; }
-
-    @JsonProperty("template")
-    public Template getTemplate() { return template; }
-    @JsonProperty("template")
-    public void setTemplate(Template value) { this.template = value; }
-
-    @JsonProperty("then")
-    public Then getThen() { return then; }
-    @JsonProperty("then")
-    public void setThen(Then value) { this.then = value; }
-
-    @JsonProperty("thread_local")
-    public ThreadLocal getThreadLocal() { return threadLocal; }
-    @JsonProperty("thread_local")
-    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
-
-    @JsonProperty("TimeOnly")
-    public TimeOnly getTimeOnly() { return timeOnly; }
-    @JsonProperty("TimeOnly")
-    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
-
-    @JsonProperty("TimeOnlyConverter")
-    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
-    @JsonProperty("TimeOnlyConverter")
-    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
-
-    @JsonProperty("to_json")
-    public ToJSON getToJSON() { return toJSON; }
-    @JsonProperty("to_json")
-    public void setToJSON(ToJSON value) { this.toJSON = value; }
-
-    @JsonProperty("toString")
-    public ToString getToString() { return toString; }
-    @JsonProperty("toString")
-    public void setToString(ToString value) { this.toString = value; }
-
-    @JsonProperty("top_level")
-    public TopLevelClass getTopLevel() { return topLevel; }
-    @JsonProperty("top_level")
-    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
-
-    @JsonProperty("Type")
-    public Type getType() { return type; }
-    @JsonProperty("Type")
-    public void setType(Type value) { this.type = value; }
-
-    @JsonProperty("typealias")
-    public Typealias getTypealias() { return typealias; }
-    @JsonProperty("typealias")
-    public void setTypealias(Typealias value) { this.typealias = value; }
-
-    @JsonProperty("typedef")
-    public Typedef getTypedef() { return typedef; }
-    @JsonProperty("typedef")
-    public void setTypedef(Typedef value) { this.typedef = value; }
-
-    @JsonProperty("typeid")
-    public Typeid getTypeid() { return typeid; }
-    @JsonProperty("typeid")
-    public void setTypeid(Typeid value) { this.typeid = value; }
-
-    @JsonProperty("typename")
-    public Typename getTypename() { return typename; }
-    @JsonProperty("typename")
-    public void setTypename(Typename value) { this.typename = value; }
-
-    @JsonProperty("typeof")
-    public Typeof getTypeof() { return typeof; }
-    @JsonProperty("typeof")
-    public void setTypeof(Typeof value) { this.typeof = value; }
-
-    @JsonProperty("uint")
-    public Uint getUint() { return uint; }
-    @JsonProperty("uint")
-    public void setUint(Uint value) { this.uint = value; }
-
-    @JsonProperty("ulong")
-    public Ulong getUlong() { return ulong; }
-    @JsonProperty("ulong")
-    public void setUlong(Ulong value) { this.ulong = value; }
-
-    @JsonProperty("unchecked")
-    public Unchecked getUnchecked() { return unchecked; }
-    @JsonProperty("unchecked")
-    public void setUnchecked(Unchecked value) { this.unchecked = value; }
-
-    @JsonProperty("undefined")
-    public Undefined getUndefined() { return undefined; }
-    @JsonProperty("undefined")
-    public void setUndefined(Undefined value) { this.undefined = value; }
 }
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
index 4a9fd69..5465ba7 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
@@ -4,9 +4,47 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj5 {
     private long dummy;
+    private Strictfp obj5Strictfp;
+    private Super obj5Super;
+    private Switch obj5Switch;
+    private Synchronized obj5Synchronized;
+    private This obj5This;
+    private Throw obj5Throw;
+    private Throws obj5Throws;
+    private Transient obj5Transient;
+    private True obj5True;
+    private Try obj5Try;
+    private TypeClass obj5Type;
     private Void obj5Void;
     private Volatile obj5Volatile;
     private While obj5While;
+    private TrueClass purpleTrue;
+    private StaticCast staticCast;
+    private StdDeserializer stdDeserializer;
+    private StdSerializer stdSerializer;
+    private StringClass string;
+    private Struct struct;
+    private Subscript subscript;
+    private Symbol symbol;
+    private SystemClass system;
+    private Template template;
+    private Then then;
+    private ThreadLocal threadLocal;
+    private TimeOnly timeOnly;
+    private TimeOnlyConverter timeOnlyConverter;
+    private ToJSON toJSON;
+    private ToString toString;
+    private TopLevelClass topLevel;
+    private Type type;
+    private Typealias typealias;
+    private Typedef typedef;
+    private Typeid typeid;
+    private Typename typename;
+    private Typeof typeof;
+    private Uint uint;
+    private Ulong ulong;
+    private Unchecked unchecked;
+    private Undefined undefined;
     private Union union;
     private Unowned unowned;
     private Unsafe unsafe;
@@ -33,6 +71,61 @@ public class Obj5 {
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("strictfp")
+    public Strictfp getObj5Strictfp() { return obj5Strictfp; }
+    @JsonProperty("strictfp")
+    public void setObj5Strictfp(Strictfp value) { this.obj5Strictfp = value; }
+
+    @JsonProperty("super")
+    public Super getObj5Super() { return obj5Super; }
+    @JsonProperty("super")
+    public void setObj5Super(Super value) { this.obj5Super = value; }
+
+    @JsonProperty("switch")
+    public Switch getObj5Switch() { return obj5Switch; }
+    @JsonProperty("switch")
+    public void setObj5Switch(Switch value) { this.obj5Switch = value; }
+
+    @JsonProperty("synchronized")
+    public Synchronized getObj5Synchronized() { return obj5Synchronized; }
+    @JsonProperty("synchronized")
+    public void setObj5Synchronized(Synchronized value) { this.obj5Synchronized = value; }
+
+    @JsonProperty("this")
+    public This getObj5This() { return obj5This; }
+    @JsonProperty("this")
+    public void setObj5This(This value) { this.obj5This = value; }
+
+    @JsonProperty("throw")
+    public Throw getObj5Throw() { return obj5Throw; }
+    @JsonProperty("throw")
+    public void setObj5Throw(Throw value) { this.obj5Throw = value; }
+
+    @JsonProperty("throws")
+    public Throws getObj5Throws() { return obj5Throws; }
+    @JsonProperty("throws")
+    public void setObj5Throws(Throws value) { this.obj5Throws = value; }
+
+    @JsonProperty("transient")
+    public Transient getObj5Transient() { return obj5Transient; }
+    @JsonProperty("transient")
+    public void setObj5Transient(Transient value) { this.obj5Transient = value; }
+
+    @JsonProperty("True")
+    public True getObj5True() { return obj5True; }
+    @JsonProperty("True")
+    public void setObj5True(True value) { this.obj5True = value; }
+
+    @JsonProperty("try")
+    public Try getObj5Try() { return obj5Try; }
+    @JsonProperty("try")
+    public void setObj5Try(Try value) { this.obj5Try = value; }
+
+    @JsonProperty("type")
+    public TypeClass getObj5Type() { return obj5Type; }
+    @JsonProperty("type")
+    public void setObj5Type(TypeClass value) { this.obj5Type = value; }
+
     @JsonProperty("void")
     public Void getObj5Void() { return obj5Void; }
     @JsonProperty("void")
@@ -48,6 +141,141 @@ public class Obj5 {
     @JsonProperty("while")
     public void setObj5While(While value) { this.obj5While = value; }
 
+    @JsonProperty("true")
+    public TrueClass getPurpleTrue() { return purpleTrue; }
+    @JsonProperty("true")
+    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+
+    @JsonProperty("static_cast")
+    public StaticCast getStaticCast() { return staticCast; }
+    @JsonProperty("static_cast")
+    public void setStaticCast(StaticCast value) { this.staticCast = value; }
+
+    @JsonProperty("StdDeserializer")
+    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public StdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
+
+    @JsonProperty("string")
+    public StringClass getString() { return string; }
+    @JsonProperty("string")
+    public void setString(StringClass value) { this.string = value; }
+
+    @JsonProperty("struct")
+    public Struct getStruct() { return struct; }
+    @JsonProperty("struct")
+    public void setStruct(Struct value) { this.struct = value; }
+
+    @JsonProperty("subscript")
+    public Subscript getSubscript() { return subscript; }
+    @JsonProperty("subscript")
+    public void setSubscript(Subscript value) { this.subscript = value; }
+
+    @JsonProperty("symbol")
+    public Symbol getSymbol() { return symbol; }
+    @JsonProperty("symbol")
+    public void setSymbol(Symbol value) { this.symbol = value; }
+
+    @JsonProperty("system")
+    public SystemClass getSystem() { return system; }
+    @JsonProperty("system")
+    public void setSystem(SystemClass value) { this.system = value; }
+
+    @JsonProperty("template")
+    public Template getTemplate() { return template; }
+    @JsonProperty("template")
+    public void setTemplate(Template value) { this.template = value; }
+
+    @JsonProperty("then")
+    public Then getThen() { return then; }
+    @JsonProperty("then")
+    public void setThen(Then value) { this.then = value; }
+
+    @JsonProperty("thread_local")
+    public ThreadLocal getThreadLocal() { return threadLocal; }
+    @JsonProperty("thread_local")
+    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
+
+    @JsonProperty("TimeOnly")
+    public TimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
+    @JsonProperty("to_json")
+    public ToJSON getToJSON() { return toJSON; }
+    @JsonProperty("to_json")
+    public void setToJSON(ToJSON value) { this.toJSON = value; }
+
+    @JsonProperty("toString")
+    public ToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(ToString value) { this.toString = value; }
+
+    @JsonProperty("top_level")
+    public TopLevelClass getTopLevel() { return topLevel; }
+    @JsonProperty("top_level")
+    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
+
+    @JsonProperty("Type")
+    public Type getType() { return type; }
+    @JsonProperty("Type")
+    public void setType(Type value) { this.type = value; }
+
+    @JsonProperty("typealias")
+    public Typealias getTypealias() { return typealias; }
+    @JsonProperty("typealias")
+    public void setTypealias(Typealias value) { this.typealias = value; }
+
+    @JsonProperty("typedef")
+    public Typedef getTypedef() { return typedef; }
+    @JsonProperty("typedef")
+    public void setTypedef(Typedef value) { this.typedef = value; }
+
+    @JsonProperty("typeid")
+    public Typeid getTypeid() { return typeid; }
+    @JsonProperty("typeid")
+    public void setTypeid(Typeid value) { this.typeid = value; }
+
+    @JsonProperty("typename")
+    public Typename getTypename() { return typename; }
+    @JsonProperty("typename")
+    public void setTypename(Typename value) { this.typename = value; }
+
+    @JsonProperty("typeof")
+    public Typeof getTypeof() { return typeof; }
+    @JsonProperty("typeof")
+    public void setTypeof(Typeof value) { this.typeof = value; }
+
+    @JsonProperty("uint")
+    public Uint getUint() { return uint; }
+    @JsonProperty("uint")
+    public void setUint(Uint value) { this.uint = value; }
+
+    @JsonProperty("ulong")
+    public Ulong getUlong() { return ulong; }
+    @JsonProperty("ulong")
+    public void setUlong(Ulong value) { this.ulong = value; }
+
+    @JsonProperty("unchecked")
+    public Unchecked getUnchecked() { return unchecked; }
+    @JsonProperty("unchecked")
+    public void setUnchecked(Unchecked value) { this.unchecked = value; }
+
+    @JsonProperty("undefined")
+    public Undefined getUndefined() { return undefined; }
+    @JsonProperty("undefined")
+    public void setUndefined(Undefined value) { this.undefined = value; }
+
     @JsonProperty("union")
     public Union getUnion() { return union; }
     @JsonProperty("union")
diff --git a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
index 940237b..69db5c8 100644
--- a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
+++ b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
@@ -50,13 +50,6 @@ public class Obj1 {
     private DateOnly dateOnly;
     private DateOnlyConverter dateOnlyConverter;
     private DateParseHandling dateParseHandling;
-    private DateTime dateTime;
-    private DateTimeStyles dateTimeStyles;
-    private Debugger debugger;
-    private Decimal decimal;
-    private Declare declare;
-    private Decltype decltype;
-    private DecodeString decodeString;
     private long dummy;
     private Empty empty;
     private Imaginery imaginery;
@@ -311,41 +304,6 @@ public class Obj1 {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(DateParseHandling value) { this.dateParseHandling = value; }
 
-    @JsonProperty("DateTime")
-    public DateTime getDateTime() { return dateTime; }
-    @JsonProperty("DateTime")
-    public void setDateTime(DateTime value) { this.dateTime = value; }
-
-    @JsonProperty("DateTimeStyles")
-    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
-    @JsonProperty("DateTimeStyles")
-    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
-
-    @JsonProperty("debugger")
-    public Debugger getDebugger() { return debugger; }
-    @JsonProperty("debugger")
-    public void setDebugger(Debugger value) { this.debugger = value; }
-
-    @JsonProperty("decimal")
-    public Decimal getDecimal() { return decimal; }
-    @JsonProperty("decimal")
-    public void setDecimal(Decimal value) { this.decimal = value; }
-
-    @JsonProperty("declare")
-    public Declare getDeclare() { return declare; }
-    @JsonProperty("declare")
-    public void setDeclare(Declare value) { this.declare = value; }
-
-    @JsonProperty("decltype")
-    public Decltype getDecltype() { return decltype; }
-    @JsonProperty("decltype")
-    public void setDecltype(Decltype value) { this.decltype = value; }
-
-    @JsonProperty("decode_string")
-    public DecodeString getDecodeString() { return decodeString; }
-    @JsonProperty("decode_string")
-    public void setDecodeString(DecodeString value) { this.decodeString = value; }
-
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
diff --git a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
index 443c384..9ddd683 100644
--- a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
+++ b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
@@ -3,6 +3,13 @@ package io.quicktype;
 import com.fasterxml.jackson.annotation.*;
 
 public class Obj2 {
+    private DateTime dateTime;
+    private DateTimeStyles dateTimeStyles;
+    private Debugger debugger;
+    private Decimal decimal;
+    private Declare declare;
+    private Decltype decltype;
+    private DecodeString decodeString;
     private Def def;
     private Defer defer;
     private Deinit deinit;
@@ -46,13 +53,6 @@ public class Obj2 {
     private ID id;
     private Imp imp;
     private Implicit implicit;
-    private In in;
-    private Indirect indirect;
-    private Infix infix;
-    private Init init;
-    private Inline inline;
-    private Inout inout;
-    private Internal internal;
     private Default obj2Default;
     private Do obj2Do;
     private DoubleClass obj2Double;
@@ -67,12 +67,43 @@ public class Obj2 {
     private Goto obj2Goto;
     private If obj2If;
     private Implements obj2Implements;
-    private Import obj2Import;
-    private Instanceof obj2Instanceof;
-    private Int obj2Int;
-    private Interface obj2Interface;
     private FalseClass purpleFalse;
 
+    @JsonProperty("DateTime")
+    public DateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(DateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
+
+    @JsonProperty("debugger")
+    public Debugger getDebugger() { return debugger; }
+    @JsonProperty("debugger")
+    public void setDebugger(Debugger value) { this.debugger = value; }
+
+    @JsonProperty("decimal")
+    public Decimal getDecimal() { return decimal; }
+    @JsonProperty("decimal")
+    public void setDecimal(Decimal value) { this.decimal = value; }
+
+    @JsonProperty("declare")
+    public Declare getDeclare() { return declare; }
+    @JsonProperty("declare")
+    public void setDeclare(Declare value) { this.declare = value; }
+
+    @JsonProperty("decltype")
+    public Decltype getDecltype() { return decltype; }
+    @JsonProperty("decltype")
+    public void setDecltype(Decltype value) { this.decltype = value; }
+
+    @JsonProperty("decode_string")
+    public DecodeString getDecodeString() { return decodeString; }
+    @JsonProperty("decode_string")
+    public void setDecodeString(DecodeString value) { this.decodeString = value; }
+
     @JsonProperty("def")
     public Def getDef() { return def; }
     @JsonProperty("def")
@@ -288,41 +319,6 @@ public class Obj2 {
     @JsonProperty("implicit")
     public void setImplicit(Implicit value) { this.implicit = value; }
 
-    @JsonProperty("in")
-    public In getIn() { return in; }
-    @JsonProperty("in")
-    public void setIn(In value) { this.in = value; }
-
-    @JsonProperty("indirect")
-    public Indirect getIndirect() { return indirect; }
-    @JsonProperty("indirect")
-    public void setIndirect(Indirect value) { this.indirect = value; }
-
-    @JsonProperty("infix")
-    public Infix getInfix() { return infix; }
-    @JsonProperty("infix")
-    public void setInfix(Infix value) { this.infix = value; }
-
-    @JsonProperty("init")
-    public Init getInit() { return init; }
-    @JsonProperty("init")
-    public void setInit(Init value) { this.init = value; }
-
-    @JsonProperty("inline")
-    public Inline getInline() { return inline; }
-    @JsonProperty("inline")
-    public void setInline(Inline value) { this.inline = value; }
-
-    @JsonProperty("inout")
-    public Inout getInout() { return inout; }
-    @JsonProperty("inout")
-    public void setInout(Inout value) { this.inout = value; }
-
-    @JsonProperty("internal")
-    public Internal getInternal() { return internal; }
-    @JsonProperty("internal")
-    public void setInternal(Internal value) { this.internal = value; }
-
     @JsonProperty("default")
     public Default getObj2Default() { return obj2Default; }
     @JsonProperty("default")
@@ -393,26 +389,6 @@ public class Obj2 {
     @JsonProperty("implements")
     public void setObj2Implements(Implements value) { this.obj2Implements = value; }
 
-    @JsonProperty("import")
-    public Import getObj2Import() { return obj2Import; }
-    @JsonProperty("import")
-    public void setObj2Import(Import value) { this.obj2Import = value; }
-
-    @JsonProperty("instanceof")
-    public Instanceof getObj2Instanceof() { return obj2Instanceof; }
-    @JsonProperty("instanceof")
-    public void setObj2Instanceof(Instanceof value) { this.obj2Instanceof = value; }
-
-    @JsonProperty("int")
-    public Int getObj2Int() { return obj2Int; }
-    @JsonProperty("int")
-    public void setObj2Int(Int value) { this.obj2Int = value; }
-
-    @JsonProperty("interface")
-    public Interface getObj2Interface() { return obj2Interface; }
-    @JsonProperty("interface")
-    public void setObj2Interface(Interface value) { this.obj2Interface = value; }
-
     @JsonProperty("false")
     public FalseClass getPurpleFalse() { return purpleFalse; }
     @JsonProperty("false")
diff --git a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
index 6b706b7..ac2fe63 100644
--- a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
+++ b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
@@ -4,6 +4,13 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj3 {
     private long dummy;
+    private In in;
+    private Indirect indirect;
+    private Infix infix;
+    private Init init;
+    private Inline inline;
+    private Inout inout;
+    private Internal internal;
     private Is is;
     private ISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private Iterable iterable;
@@ -51,49 +58,57 @@ public class Obj3 {
     private NotEq notEq;
     private NSError nsError;
     private NSString nsString;
-    private Nullptr nullptr;
-    private Number number;
+    private Import obj3Import;
+    private Instanceof obj3Instanceof;
+    private Int obj3Int;
+    private Interface obj3Interface;
     private LongClass obj3Long;
     private Null obj3NULL;
     private Native obj3Native;
     private New obj3New;
     private Obj3None obj3None;
     private NullClass obj3Null;
-    private Package obj3Package;
-    private Private obj3Private;
-    private Protected obj3Protected;
-    private ProtocolClass obj3Protocol;
-    private ObjectClass object;
-    private ObjectMapperClass objectMapper;
-    private Of of;
-    private Oneway oneway;
-    private Open open;
-    private Operator operator;
-    private Optional optional;
-    private Or or;
-    private OrEq orEq;
-    private Out out;
-    private OverrideClass override;
-    private Params params;
-    private Pass pass;
-    private Port port;
-    private Postfix postfix;
-    private Precedence precedence;
-    private Prefix prefix;
-    private Print print;
-    private PrintMembers printMembers;
-    private Printf printf;
-    private Protocol protocol;
-    private SerializerProviderClass serializerProvider;
-    private SimpleModule simpleModule;
-    private StdDeserializer stdDeserializer;
-    private StdSerializer stdSerializer;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("in")
+    public In getIn() { return in; }
+    @JsonProperty("in")
+    public void setIn(In value) { this.in = value; }
+
+    @JsonProperty("indirect")
+    public Indirect getIndirect() { return indirect; }
+    @JsonProperty("indirect")
+    public void setIndirect(Indirect value) { this.indirect = value; }
+
+    @JsonProperty("infix")
+    public Infix getInfix() { return infix; }
+    @JsonProperty("infix")
+    public void setInfix(Infix value) { this.infix = value; }
+
+    @JsonProperty("init")
+    public Init getInit() { return init; }
+    @JsonProperty("init")
+    public void setInit(Init value) { this.init = value; }
+
+    @JsonProperty("inline")
+    public Inline getInline() { return inline; }
+    @JsonProperty("inline")
+    public void setInline(Inline value) { this.inline = value; }
+
+    @JsonProperty("inout")
+    public Inout getInout() { return inout; }
+    @JsonProperty("inout")
+    public void setInout(Inout value) { this.inout = value; }
+
+    @JsonProperty("internal")
+    public Internal getInternal() { return internal; }
+    @JsonProperty("internal")
+    public void setInternal(Internal value) { this.internal = value; }
+
     @JsonProperty("is")
     public Is getIs() { return is; }
     @JsonProperty("is")
@@ -329,15 +344,25 @@ public class Obj3 {
     @JsonProperty("NSString")
     public void setNSString(NSString value) { this.nsString = value; }
 
-    @JsonProperty("nullptr")
-    public Nullptr getNullptr() { return nullptr; }
-    @JsonProperty("nullptr")
-    public void setNullptr(Nullptr value) { this.nullptr = value; }
+    @JsonProperty("import")
+    public Import getObj3Import() { return obj3Import; }
+    @JsonProperty("import")
+    public void setObj3Import(Import value) { this.obj3Import = value; }
+
+    @JsonProperty("instanceof")
+    public Instanceof getObj3Instanceof() { return obj3Instanceof; }
+    @JsonProperty("instanceof")
+    public void setObj3Instanceof(Instanceof value) { this.obj3Instanceof = value; }
 
-    @JsonProperty("number")
-    public Number getNumber() { return number; }
-    @JsonProperty("number")
-    public void setNumber(Number value) { this.number = value; }
+    @JsonProperty("int")
+    public Int getObj3Int() { return obj3Int; }
+    @JsonProperty("int")
+    public void setObj3Int(Int value) { this.obj3Int = value; }
+
+    @JsonProperty("interface")
+    public Interface getObj3Interface() { return obj3Interface; }
+    @JsonProperty("interface")
+    public void setObj3Interface(Interface value) { this.obj3Interface = value; }
 
     @JsonProperty("long")
     public LongClass getObj3Long() { return obj3Long; }
@@ -368,149 +393,4 @@ public class Obj3 {
     public NullClass getObj3Null() { return obj3Null; }
     @JsonProperty("null")
     public void setObj3Null(NullClass value) { this.obj3Null = value; }
-
-    @JsonProperty("package")
-    public Package getObj3Package() { return obj3Package; }
-    @JsonProperty("package")
-    public void setObj3Package(Package value) { this.obj3Package = value; }
-
-    @JsonProperty("private")
-    public Private getObj3Private() { return obj3Private; }
-    @JsonProperty("private")
-    public void setObj3Private(Private value) { this.obj3Private = value; }
-
-    @JsonProperty("protected")
-    public Protected getObj3Protected() { return obj3Protected; }
-    @JsonProperty("protected")
-    public void setObj3Protected(Protected value) { this.obj3Protected = value; }
-
-    @JsonProperty("protocol")
-    public ProtocolClass getObj3Protocol() { return obj3Protocol; }
-    @JsonProperty("protocol")
-    public void setObj3Protocol(ProtocolClass value) { this.obj3Protocol = value; }
-
-    @JsonProperty("object")
-    public ObjectClass getObject() { return object; }
-    @JsonProperty("object")
-    public void setObject(ObjectClass value) { this.object = value; }
-
-    @JsonProperty("ObjectMapper")
-    public ObjectMapperClass getObjectMapper() { return objectMapper; }
-    @JsonProperty("ObjectMapper")
-    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
-
-    @JsonProperty("of")
-    public Of getOf() { return of; }
-    @JsonProperty("of")
-    public void setOf(Of value) { this.of = value; }
-
-    @JsonProperty("oneway")
-    public Oneway getOneway() { return oneway; }
-    @JsonProperty("oneway")
-    public void setOneway(Oneway value) { this.oneway = value; }
-
-    @JsonProperty("open")
-    public Open getOpen() { return open; }
-    @JsonProperty("open")
-    public void setOpen(Open value) { this.open = value; }
-
-    @JsonProperty("operator")
-    public Operator getOperator() { return operator; }
-    @JsonProperty("operator")
-    public void setOperator(Operator value) { this.operator = value; }
-
-    @JsonProperty("optional")
-    public Optional getOptional() { return optional; }
-    @JsonProperty("optional")
-    public void setOptional(Optional value) { this.optional = value; }
-
-    @JsonProperty("or")
-    public Or getOr() { return or; }
-    @JsonProperty("or")
-    public void setOr(Or value) { this.or = value; }
-
-    @JsonProperty("or_eq")
-    public OrEq getOrEq() { return orEq; }
-    @JsonProperty("or_eq")
-    public void setOrEq(OrEq value) { this.orEq = value; }
-
-    @JsonProperty("out")
-    public Out getOut() { return out; }
-    @JsonProperty("out")
-    public void setOut(Out value) { this.out = value; }
-
-    @JsonProperty("override")
-    public OverrideClass getOverride() { return override; }
-    @JsonProperty("override")
-    public void setOverride(OverrideClass value) { this.override = value; }
-
-    @JsonProperty("params")
-    public Params getParams() { return params; }
-    @JsonProperty("params")
-    public void setParams(Params value) { this.params = value; }
-
-    @JsonProperty("pass")
-    public Pass getPass() { return pass; }
-    @JsonProperty("pass")
-    public void setPass(Pass value) { this.pass = value; }
-
-    @JsonProperty("port")
-    public Port getPort() { return port; }
-    @JsonProperty("port")
-    public void setPort(Port value) { this.port = value; }
-
-    @JsonProperty("postfix")
-    public Postfix getPostfix() { return postfix; }
-    @JsonProperty("postfix")
-    public void setPostfix(Postfix value) { this.postfix = value; }
-
-    @JsonProperty("precedence")
-    public Precedence getPrecedence() { return precedence; }
-    @JsonProperty("precedence")
-    public void setPrecedence(Precedence value) { this.precedence = value; }
-
-    @JsonProperty("prefix")
-    public Prefix getPrefix() { return prefix; }
-    @JsonProperty("prefix")
-    public void setPrefix(Prefix value) { this.prefix = value; }
-
-    @JsonProperty("print")
-    public Print getPrint() { return print; }
-    @JsonProperty("print")
-    public void setPrint(Print value) { this.print = value; }
-
-    @JsonProperty("printMembers")
-    public PrintMembers getPrintMembers() { return printMembers; }
-    @JsonProperty("printMembers")
-    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
-
-    @JsonProperty("printf")
-    public Printf getPrintf() { return printf; }
-    @JsonProperty("printf")
-    public void setPrintf(Printf value) { this.printf = value; }
-
-    @JsonProperty("Protocol")
-    public Protocol getProtocol() { return protocol; }
-    @JsonProperty("Protocol")
-    public void setProtocol(Protocol value) { this.protocol = value; }
-
-    @JsonProperty("SerializerProvider")
-    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
-    @JsonProperty("SerializerProvider")
-    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
-
-    @JsonProperty("SimpleModule")
-    public SimpleModule getSimpleModule() { return simpleModule; }
-    @JsonProperty("SimpleModule")
-    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
-
-    @JsonProperty("StdDeserializer")
-    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
-    @JsonProperty("StdDeserializer")
-    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
-
-    @JsonProperty("StdSerializer")
-    public StdSerializer getStdSerializer() { return stdSerializer; }
-    @JsonProperty("StdSerializer")
-    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
 }
diff --git a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
index 27a5828..6ee1cad 100644
--- a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
+++ b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
@@ -4,23 +4,38 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj4 {
     private long dummy;
+    private Nullptr nullptr;
+    private Number number;
+    private Package obj4Package;
+    private Private obj4Private;
+    private Protected obj4Protected;
+    private ProtocolClass obj4Protocol;
     private Public obj4Public;
     private Return obj4Return;
     private SelfClass obj4Self;
     private Short obj4Short;
     private Static obj4Static;
-    private Strictfp obj4Strictfp;
-    private Super obj4Super;
-    private Switch obj4Switch;
-    private Synchronized obj4Synchronized;
-    private This obj4This;
-    private Throw obj4Throw;
-    private Throws obj4Throws;
-    private Transient obj4Transient;
-    private True obj4True;
-    private Try obj4Try;
-    private TypeClass obj4Type;
-    private TrueClass purpleTrue;
+    private ObjectClass object;
+    private ObjectMapperClass objectMapper;
+    private Of of;
+    private Oneway oneway;
+    private Open open;
+    private Operator operator;
+    private Optional optional;
+    private Or or;
+    private OrEq orEq;
+    private Out out;
+    private OverrideClass override;
+    private Params params;
+    private Pass pass;
+    private Port port;
+    private Postfix postfix;
+    private Precedence precedence;
+    private Prefix prefix;
+    private Print print;
+    private PrintMembers printMembers;
+    private Printf printf;
+    private Protocol protocol;
     private Quicktype quicktype;
     private Raise raise;
     private Range range;
@@ -45,42 +60,50 @@ public class Obj4 {
     private Select select;
     private Self self;
     private Serialize serialize;
+    private SerializerProviderClass serializerProvider;
     private Set set;
     private Signed signed;
+    private SimpleModule simpleModule;
     private Sizeof sizeof;
     private Stackalloc stackalloc;
     private Standards standards;
     private StaticAssert staticAssert;
-    private StaticCast staticCast;
-    private StringClass string;
-    private Struct struct;
-    private Subscript subscript;
-    private Symbol symbol;
-    private SystemClass system;
-    private Template template;
-    private Then then;
-    private ThreadLocal threadLocal;
-    private TimeOnly timeOnly;
-    private TimeOnlyConverter timeOnlyConverter;
-    private ToJSON toJSON;
-    private ToString toString;
-    private TopLevelClass topLevel;
-    private Type type;
-    private Typealias typealias;
-    private Typedef typedef;
-    private Typeid typeid;
-    private Typename typename;
-    private Typeof typeof;
-    private Uint uint;
-    private Ulong ulong;
-    private Unchecked unchecked;
-    private Undefined undefined;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("nullptr")
+    public Nullptr getNullptr() { return nullptr; }
+    @JsonProperty("nullptr")
+    public void setNullptr(Nullptr value) { this.nullptr = value; }
+
+    @JsonProperty("number")
+    public Number getNumber() { return number; }
+    @JsonProperty("number")
+    public void setNumber(Number value) { this.number = value; }
+
+    @JsonProperty("package")
+    public Package getObj4Package() { return obj4Package; }
+    @JsonProperty("package")
+    public void setObj4Package(Package value) { this.obj4Package = value; }
+
+    @JsonProperty("private")
+    public Private getObj4Private() { return obj4Private; }
+    @JsonProperty("private")
+    public void setObj4Private(Private value) { this.obj4Private = value; }
+
+    @JsonProperty("protected")
+    public Protected getObj4Protected() { return obj4Protected; }
+    @JsonProperty("protected")
+    public void setObj4Protected(Protected value) { this.obj4Protected = value; }
+
+    @JsonProperty("protocol")
+    public ProtocolClass getObj4Protocol() { return obj4Protocol; }
+    @JsonProperty("protocol")
+    public void setObj4Protocol(ProtocolClass value) { this.obj4Protocol = value; }
+
     @JsonProperty("public")
     public Public getObj4Public() { return obj4Public; }
     @JsonProperty("public")
@@ -106,65 +129,110 @@ public class Obj4 {
     @JsonProperty("static")
     public void setObj4Static(Static value) { this.obj4Static = value; }
 
-    @JsonProperty("strictfp")
-    public Strictfp getObj4Strictfp() { return obj4Strictfp; }
-    @JsonProperty("strictfp")
-    public void setObj4Strictfp(Strictfp value) { this.obj4Strictfp = value; }
-
-    @JsonProperty("super")
-    public Super getObj4Super() { return obj4Super; }
-    @JsonProperty("super")
-    public void setObj4Super(Super value) { this.obj4Super = value; }
-
-    @JsonProperty("switch")
-    public Switch getObj4Switch() { return obj4Switch; }
-    @JsonProperty("switch")
-    public void setObj4Switch(Switch value) { this.obj4Switch = value; }
-
-    @JsonProperty("synchronized")
-    public Synchronized getObj4Synchronized() { return obj4Synchronized; }
-    @JsonProperty("synchronized")
-    public void setObj4Synchronized(Synchronized value) { this.obj4Synchronized = value; }
-
-    @JsonProperty("this")
-    public This getObj4This() { return obj4This; }
-    @JsonProperty("this")
-    public void setObj4This(This value) { this.obj4This = value; }
-
-    @JsonProperty("throw")
-    public Throw getObj4Throw() { return obj4Throw; }
-    @JsonProperty("throw")
-    public void setObj4Throw(Throw value) { this.obj4Throw = value; }
-
-    @JsonProperty("throws")
-    public Throws getObj4Throws() { return obj4Throws; }
-    @JsonProperty("throws")
-    public void setObj4Throws(Throws value) { this.obj4Throws = value; }
-
-    @JsonProperty("transient")
-    public Transient getObj4Transient() { return obj4Transient; }
-    @JsonProperty("transient")
-    public void setObj4Transient(Transient value) { this.obj4Transient = value; }
-
-    @JsonProperty("True")
-    public True getObj4True() { return obj4True; }
-    @JsonProperty("True")
-    public void setObj4True(True value) { this.obj4True = value; }
-
-    @JsonProperty("try")
-    public Try getObj4Try() { return obj4Try; }
-    @JsonProperty("try")
-    public void setObj4Try(Try value) { this.obj4Try = value; }
-
-    @JsonProperty("type")
-    public TypeClass getObj4Type() { return obj4Type; }
-    @JsonProperty("type")
-    public void setObj4Type(TypeClass value) { this.obj4Type = value; }
-
-    @JsonProperty("true")
-    public TrueClass getPurpleTrue() { return purpleTrue; }
-    @JsonProperty("true")
-    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+    @JsonProperty("object")
+    public ObjectClass getObject() { return object; }
+    @JsonProperty("object")
+    public void setObject(ObjectClass value) { this.object = value; }
+
+    @JsonProperty("ObjectMapper")
+    public ObjectMapperClass getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
+
+    @JsonProperty("of")
+    public Of getOf() { return of; }
+    @JsonProperty("of")
+    public void setOf(Of value) { this.of = value; }
+
+    @JsonProperty("oneway")
+    public Oneway getOneway() { return oneway; }
+    @JsonProperty("oneway")
+    public void setOneway(Oneway value) { this.oneway = value; }
+
+    @JsonProperty("open")
+    public Open getOpen() { return open; }
+    @JsonProperty("open")
+    public void setOpen(Open value) { this.open = value; }
+
+    @JsonProperty("operator")
+    public Operator getOperator() { return operator; }
+    @JsonProperty("operator")
+    public void setOperator(Operator value) { this.operator = value; }
+
+    @JsonProperty("optional")
+    public Optional getOptional() { return optional; }
+    @JsonProperty("optional")
+    public void setOptional(Optional value) { this.optional = value; }
+
+    @JsonProperty("or")
+    public Or getOr() { return or; }
+    @JsonProperty("or")
+    public void setOr(Or value) { this.or = value; }
+
+    @JsonProperty("or_eq")
+    public OrEq getOrEq() { return orEq; }
+    @JsonProperty("or_eq")
+    public void setOrEq(OrEq value) { this.orEq = value; }
+
+    @JsonProperty("out")
+    public Out getOut() { return out; }
+    @JsonProperty("out")
+    public void setOut(Out value) { this.out = value; }
+
+    @JsonProperty("override")
+    public OverrideClass getOverride() { return override; }
+    @JsonProperty("override")
+    public void setOverride(OverrideClass value) { this.override = value; }
+
+    @JsonProperty("params")
+    public Params getParams() { return params; }
+    @JsonProperty("params")
+    public void setParams(Params value) { this.params = value; }
+
+    @JsonProperty("pass")
+    public Pass getPass() { return pass; }
+    @JsonProperty("pass")
+    public void setPass(Pass value) { this.pass = value; }
+
+    @JsonProperty("port")
+    public Port getPort() { return port; }
+    @JsonProperty("port")
+    public void setPort(Port value) { this.port = value; }
+
+    @JsonProperty("postfix")
+    public Postfix getPostfix() { return postfix; }
+    @JsonProperty("postfix")
+    public void setPostfix(Postfix value) { this.postfix = value; }
+
+    @JsonProperty("precedence")
+    public Precedence getPrecedence() { return precedence; }
+    @JsonProperty("precedence")
+    public void setPrecedence(Precedence value) { this.precedence = value; }
+
+    @JsonProperty("prefix")
+    public Prefix getPrefix() { return prefix; }
+    @JsonProperty("prefix")
+    public void setPrefix(Prefix value) { this.prefix = value; }
+
+    @JsonProperty("print")
+    public Print getPrint() { return print; }
+    @JsonProperty("print")
+    public void setPrint(Print value) { this.print = value; }
+
+    @JsonProperty("printMembers")
+    public PrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
+
+    @JsonProperty("printf")
+    public Printf getPrintf() { return printf; }
+    @JsonProperty("printf")
+    public void setPrintf(Printf value) { this.printf = value; }
+
+    @JsonProperty("Protocol")
+    public Protocol getProtocol() { return protocol; }
+    @JsonProperty("Protocol")
+    public void setProtocol(Protocol value) { this.protocol = value; }
 
     @JsonProperty("quicktype")
     public Quicktype getQuicktype() { return quicktype; }
@@ -286,6 +354,11 @@ public class Obj4 {
     @JsonProperty("serialize")
     public void setSerialize(Serialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public Set getSet() { return set; }
     @JsonProperty("set")
@@ -296,6 +369,11 @@ public class Obj4 {
     @JsonProperty("signed")
     public void setSigned(Signed value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public SimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public Sizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -315,124 +393,4 @@ public class Obj4 {
     public StaticAssert getStaticAssert() { return staticAssert; }
     @JsonProperty("static_assert")
     public void setStaticAssert(StaticAssert value) { this.staticAssert = value; }
-
-    @JsonProperty("static_cast")
-    public StaticCast getStaticCast() { return staticCast; }
-    @JsonProperty("static_cast")
-    public void setStaticCast(StaticCast value) { this.staticCast = value; }
-
-    @JsonProperty("string")
-    public StringClass getString() { return string; }
-    @JsonProperty("string")
-    public void setString(StringClass value) { this.string = value; }
-
-    @JsonProperty("struct")
-    public Struct getStruct() { return struct; }
-    @JsonProperty("struct")
-    public void setStruct(Struct value) { this.struct = value; }
-
-    @JsonProperty("subscript")
-    public Subscript getSubscript() { return subscript; }
-    @JsonProperty("subscript")
-    public void setSubscript(Subscript value) { this.subscript = value; }
-
-    @JsonProperty("symbol")
-    public Symbol getSymbol() { return symbol; }
-    @JsonProperty("symbol")
-    public void setSymbol(Symbol value) { this.symbol = value; }
-
-    @JsonProperty("system")
-    public SystemClass getSystem() { return system; }
-    @JsonProperty("system")
-    public void setSystem(SystemClass value) { this.system = value; }
-
-    @JsonProperty("template")
-    public Template getTemplate() { return template; }
-    @JsonProperty("template")
-    public void setTemplate(Template value) { this.template = value; }
-
-    @JsonProperty("then")
-    public Then getThen() { return then; }
-    @JsonProperty("then")
-    public void setThen(Then value) { this.then = value; }
-
-    @JsonProperty("thread_local")
-    public ThreadLocal getThreadLocal() { return threadLocal; }
-    @JsonProperty("thread_local")
-    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
-
-    @JsonProperty("TimeOnly")
-    public TimeOnly getTimeOnly() { return timeOnly; }
-    @JsonProperty("TimeOnly")
-    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
-
-    @JsonProperty("TimeOnlyConverter")
-    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
-    @JsonProperty("TimeOnlyConverter")
-    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
-
-    @JsonProperty("to_json")
-    public ToJSON getToJSON() { return toJSON; }
-    @JsonProperty("to_json")
-    public void setToJSON(ToJSON value) { this.toJSON = value; }
-
-    @JsonProperty("toString")
-    public ToString getToString() { return toString; }
-    @JsonProperty("toString")
-    public void setToString(ToString value) { this.toString = value; }
-
-    @JsonProperty("top_level")
-    public TopLevelClass getTopLevel() { return topLevel; }
-    @JsonProperty("top_level")
-    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
-
-    @JsonProperty("Type")
-    public Type getType() { return type; }
-    @JsonProperty("Type")
-    public void setType(Type value) { this.type = value; }
-
-    @JsonProperty("typealias")
-    public Typealias getTypealias() { return typealias; }
-    @JsonProperty("typealias")
-    public void setTypealias(Typealias value) { this.typealias = value; }
-
-    @JsonProperty("typedef")
-    public Typedef getTypedef() { return typedef; }
-    @JsonProperty("typedef")
-    public void setTypedef(Typedef value) { this.typedef = value; }
-
-    @JsonProperty("typeid")
-    public Typeid getTypeid() { return typeid; }
-    @JsonProperty("typeid")
-    public void setTypeid(Typeid value) { this.typeid = value; }
-
-    @JsonProperty("typename")
-    public Typename getTypename() { return typename; }
-    @JsonProperty("typename")
-    public void setTypename(Typename value) { this.typename = value; }
-
-    @JsonProperty("typeof")
-    public Typeof getTypeof() { return typeof; }
-    @JsonProperty("typeof")
-    public void setTypeof(Typeof value) { this.typeof = value; }
-
-    @JsonProperty("uint")
-    public Uint getUint() { return uint; }
-    @JsonProperty("uint")
-    public void setUint(Uint value) { this.uint = value; }
-
-    @JsonProperty("ulong")
-    public Ulong getUlong() { return ulong; }
-    @JsonProperty("ulong")
-    public void setUlong(Ulong value) { this.ulong = value; }
-
-    @JsonProperty("unchecked")
-    public Unchecked getUnchecked() { return unchecked; }
-    @JsonProperty("unchecked")
-    public void setUnchecked(Unchecked value) { this.unchecked = value; }
-
-    @JsonProperty("undefined")
-    public Undefined getUndefined() { return undefined; }
-    @JsonProperty("undefined")
-    public void setUndefined(Undefined value) { this.undefined = value; }
 }
diff --git a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
index 4a9fd69..5465ba7 100644
--- a/base/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
+++ b/head/java-datetime-legacy/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
@@ -4,9 +4,47 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj5 {
     private long dummy;
+    private Strictfp obj5Strictfp;
+    private Super obj5Super;
+    private Switch obj5Switch;
+    private Synchronized obj5Synchronized;
+    private This obj5This;
+    private Throw obj5Throw;
+    private Throws obj5Throws;
+    private Transient obj5Transient;
+    private True obj5True;
+    private Try obj5Try;
+    private TypeClass obj5Type;
     private Void obj5Void;
     private Volatile obj5Volatile;
     private While obj5While;
+    private TrueClass purpleTrue;
+    private StaticCast staticCast;
+    private StdDeserializer stdDeserializer;
+    private StdSerializer stdSerializer;
+    private StringClass string;
+    private Struct struct;
+    private Subscript subscript;
+    private Symbol symbol;
+    private SystemClass system;
+    private Template template;
+    private Then then;
+    private ThreadLocal threadLocal;
+    private TimeOnly timeOnly;
+    private TimeOnlyConverter timeOnlyConverter;
+    private ToJSON toJSON;
+    private ToString toString;
+    private TopLevelClass topLevel;
+    private Type type;
+    private Typealias typealias;
+    private Typedef typedef;
+    private Typeid typeid;
+    private Typename typename;
+    private Typeof typeof;
+    private Uint uint;
+    private Ulong ulong;
+    private Unchecked unchecked;
+    private Undefined undefined;
     private Union union;
     private Unowned unowned;
     private Unsafe unsafe;
@@ -33,6 +71,61 @@ public class Obj5 {
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("strictfp")
+    public Strictfp getObj5Strictfp() { return obj5Strictfp; }
+    @JsonProperty("strictfp")
+    public void setObj5Strictfp(Strictfp value) { this.obj5Strictfp = value; }
+
+    @JsonProperty("super")
+    public Super getObj5Super() { return obj5Super; }
+    @JsonProperty("super")
+    public void setObj5Super(Super value) { this.obj5Super = value; }
+
+    @JsonProperty("switch")
+    public Switch getObj5Switch() { return obj5Switch; }
+    @JsonProperty("switch")
+    public void setObj5Switch(Switch value) { this.obj5Switch = value; }
+
+    @JsonProperty("synchronized")
+    public Synchronized getObj5Synchronized() { return obj5Synchronized; }
+    @JsonProperty("synchronized")
+    public void setObj5Synchronized(Synchronized value) { this.obj5Synchronized = value; }
+
+    @JsonProperty("this")
+    public This getObj5This() { return obj5This; }
+    @JsonProperty("this")
+    public void setObj5This(This value) { this.obj5This = value; }
+
+    @JsonProperty("throw")
+    public Throw getObj5Throw() { return obj5Throw; }
+    @JsonProperty("throw")
+    public void setObj5Throw(Throw value) { this.obj5Throw = value; }
+
+    @JsonProperty("throws")
+    public Throws getObj5Throws() { return obj5Throws; }
+    @JsonProperty("throws")
+    public void setObj5Throws(Throws value) { this.obj5Throws = value; }
+
+    @JsonProperty("transient")
+    public Transient getObj5Transient() { return obj5Transient; }
+    @JsonProperty("transient")
+    public void setObj5Transient(Transient value) { this.obj5Transient = value; }
+
+    @JsonProperty("True")
+    public True getObj5True() { return obj5True; }
+    @JsonProperty("True")
+    public void setObj5True(True value) { this.obj5True = value; }
+
+    @JsonProperty("try")
+    public Try getObj5Try() { return obj5Try; }
+    @JsonProperty("try")
+    public void setObj5Try(Try value) { this.obj5Try = value; }
+
+    @JsonProperty("type")
+    public TypeClass getObj5Type() { return obj5Type; }
+    @JsonProperty("type")
+    public void setObj5Type(TypeClass value) { this.obj5Type = value; }
+
     @JsonProperty("void")
     public Void getObj5Void() { return obj5Void; }
     @JsonProperty("void")
@@ -48,6 +141,141 @@ public class Obj5 {
     @JsonProperty("while")
     public void setObj5While(While value) { this.obj5While = value; }
 
+    @JsonProperty("true")
+    public TrueClass getPurpleTrue() { return purpleTrue; }
+    @JsonProperty("true")
+    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+
+    @JsonProperty("static_cast")
+    public StaticCast getStaticCast() { return staticCast; }
+    @JsonProperty("static_cast")
+    public void setStaticCast(StaticCast value) { this.staticCast = value; }
+
+    @JsonProperty("StdDeserializer")
+    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public StdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
+
+    @JsonProperty("string")
+    public StringClass getString() { return string; }
+    @JsonProperty("string")
+    public void setString(StringClass value) { this.string = value; }
+
+    @JsonProperty("struct")
+    public Struct getStruct() { return struct; }
+    @JsonProperty("struct")
+    public void setStruct(Struct value) { this.struct = value; }
+
+    @JsonProperty("subscript")
+    public Subscript getSubscript() { return subscript; }
+    @JsonProperty("subscript")
+    public void setSubscript(Subscript value) { this.subscript = value; }
+
+    @JsonProperty("symbol")
+    public Symbol getSymbol() { return symbol; }
+    @JsonProperty("symbol")
+    public void setSymbol(Symbol value) { this.symbol = value; }
+
+    @JsonProperty("system")
+    public SystemClass getSystem() { return system; }
+    @JsonProperty("system")
+    public void setSystem(SystemClass value) { this.system = value; }
+
+    @JsonProperty("template")
+    public Template getTemplate() { return template; }
+    @JsonProperty("template")
+    public void setTemplate(Template value) { this.template = value; }
+
+    @JsonProperty("then")
+    public Then getThen() { return then; }
+    @JsonProperty("then")
+    public void setThen(Then value) { this.then = value; }
+
+    @JsonProperty("thread_local")
+    public ThreadLocal getThreadLocal() { return threadLocal; }
+    @JsonProperty("thread_local")
+    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
+
+    @JsonProperty("TimeOnly")
+    public TimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
+    @JsonProperty("to_json")
+    public ToJSON getToJSON() { return toJSON; }
+    @JsonProperty("to_json")
+    public void setToJSON(ToJSON value) { this.toJSON = value; }
+
+    @JsonProperty("toString")
+    public ToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(ToString value) { this.toString = value; }
+
+    @JsonProperty("top_level")
+    public TopLevelClass getTopLevel() { return topLevel; }
+    @JsonProperty("top_level")
+    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
+
+    @JsonProperty("Type")
+    public Type getType() { return type; }
+    @JsonProperty("Type")
+    public void setType(Type value) { this.type = value; }
+
+    @JsonProperty("typealias")
+    public Typealias getTypealias() { return typealias; }
+    @JsonProperty("typealias")
+    public void setTypealias(Typealias value) { this.typealias = value; }
+
+    @JsonProperty("typedef")
+    public Typedef getTypedef() { return typedef; }
+    @JsonProperty("typedef")
+    public void setTypedef(Typedef value) { this.typedef = value; }
+
+    @JsonProperty("typeid")
+    public Typeid getTypeid() { return typeid; }
+    @JsonProperty("typeid")
+    public void setTypeid(Typeid value) { this.typeid = value; }
+
+    @JsonProperty("typename")
+    public Typename getTypename() { return typename; }
+    @JsonProperty("typename")
+    public void setTypename(Typename value) { this.typename = value; }
+
+    @JsonProperty("typeof")
+    public Typeof getTypeof() { return typeof; }
+    @JsonProperty("typeof")
+    public void setTypeof(Typeof value) { this.typeof = value; }
+
+    @JsonProperty("uint")
+    public Uint getUint() { return uint; }
+    @JsonProperty("uint")
+    public void setUint(Uint value) { this.uint = value; }
+
+    @JsonProperty("ulong")
+    public Ulong getUlong() { return ulong; }
+    @JsonProperty("ulong")
+    public void setUlong(Ulong value) { this.ulong = value; }
+
+    @JsonProperty("unchecked")
+    public Unchecked getUnchecked() { return unchecked; }
+    @JsonProperty("unchecked")
+    public void setUnchecked(Unchecked value) { this.unchecked = value; }
+
+    @JsonProperty("undefined")
+    public Undefined getUndefined() { return undefined; }
+    @JsonProperty("undefined")
+    public void setUndefined(Undefined value) { this.undefined = value; }
+
     @JsonProperty("union")
     public Union getUnion() { return union; }
     @JsonProperty("union")
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
index 2823161..3220b18 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj1.java
@@ -50,13 +50,6 @@ public class Obj1 {
     private DateOnly dateOnly;
     private DateOnlyConverter dateOnlyConverter;
     private DateParseHandling dateParseHandling;
-    private DateTime dateTime;
-    private DateTimeStyles dateTimeStyles;
-    private Debugger debugger;
-    private Decimal decimal;
-    private Declare declare;
-    private Decltype decltype;
-    private DecodeString decodeString;
     private long dummy;
     private Empty empty;
     private Imaginery imaginery;
@@ -311,41 +304,6 @@ public class Obj1 {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(DateParseHandling value) { this.dateParseHandling = value; }
 
-    @JsonProperty("DateTime")
-    public DateTime getDateTime() { return dateTime; }
-    @JsonProperty("DateTime")
-    public void setDateTime(DateTime value) { this.dateTime = value; }
-
-    @JsonProperty("DateTimeStyles")
-    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
-    @JsonProperty("DateTimeStyles")
-    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
-
-    @JsonProperty("debugger")
-    public Debugger getDebugger() { return debugger; }
-    @JsonProperty("debugger")
-    public void setDebugger(Debugger value) { this.debugger = value; }
-
-    @JsonProperty("decimal")
-    public Decimal getDecimal() { return decimal; }
-    @JsonProperty("decimal")
-    public void setDecimal(Decimal value) { this.decimal = value; }
-
-    @JsonProperty("declare")
-    public Declare getDeclare() { return declare; }
-    @JsonProperty("declare")
-    public void setDeclare(Declare value) { this.declare = value; }
-
-    @JsonProperty("decltype")
-    public Decltype getDecltype() { return decltype; }
-    @JsonProperty("decltype")
-    public void setDecltype(Decltype value) { this.decltype = value; }
-
-    @JsonProperty("decode_string")
-    public DecodeString getDecodeString() { return decodeString; }
-    @JsonProperty("decode_string")
-    public void setDecodeString(DecodeString value) { this.decodeString = value; }
-
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
index 443c384..9ddd683 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj2.java
@@ -3,6 +3,13 @@ package io.quicktype;
 import com.fasterxml.jackson.annotation.*;
 
 public class Obj2 {
+    private DateTime dateTime;
+    private DateTimeStyles dateTimeStyles;
+    private Debugger debugger;
+    private Decimal decimal;
+    private Declare declare;
+    private Decltype decltype;
+    private DecodeString decodeString;
     private Def def;
     private Defer defer;
     private Deinit deinit;
@@ -46,13 +53,6 @@ public class Obj2 {
     private ID id;
     private Imp imp;
     private Implicit implicit;
-    private In in;
-    private Indirect indirect;
-    private Infix infix;
-    private Init init;
-    private Inline inline;
-    private Inout inout;
-    private Internal internal;
     private Default obj2Default;
     private Do obj2Do;
     private DoubleClass obj2Double;
@@ -67,12 +67,43 @@ public class Obj2 {
     private Goto obj2Goto;
     private If obj2If;
     private Implements obj2Implements;
-    private Import obj2Import;
-    private Instanceof obj2Instanceof;
-    private Int obj2Int;
-    private Interface obj2Interface;
     private FalseClass purpleFalse;
 
+    @JsonProperty("DateTime")
+    public DateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(DateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public DateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(DateTimeStyles value) { this.dateTimeStyles = value; }
+
+    @JsonProperty("debugger")
+    public Debugger getDebugger() { return debugger; }
+    @JsonProperty("debugger")
+    public void setDebugger(Debugger value) { this.debugger = value; }
+
+    @JsonProperty("decimal")
+    public Decimal getDecimal() { return decimal; }
+    @JsonProperty("decimal")
+    public void setDecimal(Decimal value) { this.decimal = value; }
+
+    @JsonProperty("declare")
+    public Declare getDeclare() { return declare; }
+    @JsonProperty("declare")
+    public void setDeclare(Declare value) { this.declare = value; }
+
+    @JsonProperty("decltype")
+    public Decltype getDecltype() { return decltype; }
+    @JsonProperty("decltype")
+    public void setDecltype(Decltype value) { this.decltype = value; }
+
+    @JsonProperty("decode_string")
+    public DecodeString getDecodeString() { return decodeString; }
+    @JsonProperty("decode_string")
+    public void setDecodeString(DecodeString value) { this.decodeString = value; }
+
     @JsonProperty("def")
     public Def getDef() { return def; }
     @JsonProperty("def")
@@ -288,41 +319,6 @@ public class Obj2 {
     @JsonProperty("implicit")
     public void setImplicit(Implicit value) { this.implicit = value; }
 
-    @JsonProperty("in")
-    public In getIn() { return in; }
-    @JsonProperty("in")
-    public void setIn(In value) { this.in = value; }
-
-    @JsonProperty("indirect")
-    public Indirect getIndirect() { return indirect; }
-    @JsonProperty("indirect")
-    public void setIndirect(Indirect value) { this.indirect = value; }
-
-    @JsonProperty("infix")
-    public Infix getInfix() { return infix; }
-    @JsonProperty("infix")
-    public void setInfix(Infix value) { this.infix = value; }
-
-    @JsonProperty("init")
-    public Init getInit() { return init; }
-    @JsonProperty("init")
-    public void setInit(Init value) { this.init = value; }
-
-    @JsonProperty("inline")
-    public Inline getInline() { return inline; }
-    @JsonProperty("inline")
-    public void setInline(Inline value) { this.inline = value; }
-
-    @JsonProperty("inout")
-    public Inout getInout() { return inout; }
-    @JsonProperty("inout")
-    public void setInout(Inout value) { this.inout = value; }
-
-    @JsonProperty("internal")
-    public Internal getInternal() { return internal; }
-    @JsonProperty("internal")
-    public void setInternal(Internal value) { this.internal = value; }
-
     @JsonProperty("default")
     public Default getObj2Default() { return obj2Default; }
     @JsonProperty("default")
@@ -393,26 +389,6 @@ public class Obj2 {
     @JsonProperty("implements")
     public void setObj2Implements(Implements value) { this.obj2Implements = value; }
 
-    @JsonProperty("import")
-    public Import getObj2Import() { return obj2Import; }
-    @JsonProperty("import")
-    public void setObj2Import(Import value) { this.obj2Import = value; }
-
-    @JsonProperty("instanceof")
-    public Instanceof getObj2Instanceof() { return obj2Instanceof; }
-    @JsonProperty("instanceof")
-    public void setObj2Instanceof(Instanceof value) { this.obj2Instanceof = value; }
-
-    @JsonProperty("int")
-    public Int getObj2Int() { return obj2Int; }
-    @JsonProperty("int")
-    public void setObj2Int(Int value) { this.obj2Int = value; }
-
-    @JsonProperty("interface")
-    public Interface getObj2Interface() { return obj2Interface; }
-    @JsonProperty("interface")
-    public void setObj2Interface(Interface value) { this.obj2Interface = value; }
-
     @JsonProperty("false")
     public FalseClass getPurpleFalse() { return purpleFalse; }
     @JsonProperty("false")
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
index 6b706b7..ac2fe63 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj3.java
@@ -4,6 +4,13 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj3 {
     private long dummy;
+    private In in;
+    private Indirect indirect;
+    private Infix infix;
+    private Init init;
+    private Inline inline;
+    private Inout inout;
+    private Internal internal;
     private Is is;
     private ISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private Iterable iterable;
@@ -51,49 +58,57 @@ public class Obj3 {
     private NotEq notEq;
     private NSError nsError;
     private NSString nsString;
-    private Nullptr nullptr;
-    private Number number;
+    private Import obj3Import;
+    private Instanceof obj3Instanceof;
+    private Int obj3Int;
+    private Interface obj3Interface;
     private LongClass obj3Long;
     private Null obj3NULL;
     private Native obj3Native;
     private New obj3New;
     private Obj3None obj3None;
     private NullClass obj3Null;
-    private Package obj3Package;
-    private Private obj3Private;
-    private Protected obj3Protected;
-    private ProtocolClass obj3Protocol;
-    private ObjectClass object;
-    private ObjectMapperClass objectMapper;
-    private Of of;
-    private Oneway oneway;
-    private Open open;
-    private Operator operator;
-    private Optional optional;
-    private Or or;
-    private OrEq orEq;
-    private Out out;
-    private OverrideClass override;
-    private Params params;
-    private Pass pass;
-    private Port port;
-    private Postfix postfix;
-    private Precedence precedence;
-    private Prefix prefix;
-    private Print print;
-    private PrintMembers printMembers;
-    private Printf printf;
-    private Protocol protocol;
-    private SerializerProviderClass serializerProvider;
-    private SimpleModule simpleModule;
-    private StdDeserializer stdDeserializer;
-    private StdSerializer stdSerializer;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("in")
+    public In getIn() { return in; }
+    @JsonProperty("in")
+    public void setIn(In value) { this.in = value; }
+
+    @JsonProperty("indirect")
+    public Indirect getIndirect() { return indirect; }
+    @JsonProperty("indirect")
+    public void setIndirect(Indirect value) { this.indirect = value; }
+
+    @JsonProperty("infix")
+    public Infix getInfix() { return infix; }
+    @JsonProperty("infix")
+    public void setInfix(Infix value) { this.infix = value; }
+
+    @JsonProperty("init")
+    public Init getInit() { return init; }
+    @JsonProperty("init")
+    public void setInit(Init value) { this.init = value; }
+
+    @JsonProperty("inline")
+    public Inline getInline() { return inline; }
+    @JsonProperty("inline")
+    public void setInline(Inline value) { this.inline = value; }
+
+    @JsonProperty("inout")
+    public Inout getInout() { return inout; }
+    @JsonProperty("inout")
+    public void setInout(Inout value) { this.inout = value; }
+
+    @JsonProperty("internal")
+    public Internal getInternal() { return internal; }
+    @JsonProperty("internal")
+    public void setInternal(Internal value) { this.internal = value; }
+
     @JsonProperty("is")
     public Is getIs() { return is; }
     @JsonProperty("is")
@@ -329,15 +344,25 @@ public class Obj3 {
     @JsonProperty("NSString")
     public void setNSString(NSString value) { this.nsString = value; }
 
-    @JsonProperty("nullptr")
-    public Nullptr getNullptr() { return nullptr; }
-    @JsonProperty("nullptr")
-    public void setNullptr(Nullptr value) { this.nullptr = value; }
+    @JsonProperty("import")
+    public Import getObj3Import() { return obj3Import; }
+    @JsonProperty("import")
+    public void setObj3Import(Import value) { this.obj3Import = value; }
+
+    @JsonProperty("instanceof")
+    public Instanceof getObj3Instanceof() { return obj3Instanceof; }
+    @JsonProperty("instanceof")
+    public void setObj3Instanceof(Instanceof value) { this.obj3Instanceof = value; }
 
-    @JsonProperty("number")
-    public Number getNumber() { return number; }
-    @JsonProperty("number")
-    public void setNumber(Number value) { this.number = value; }
+    @JsonProperty("int")
+    public Int getObj3Int() { return obj3Int; }
+    @JsonProperty("int")
+    public void setObj3Int(Int value) { this.obj3Int = value; }
+
+    @JsonProperty("interface")
+    public Interface getObj3Interface() { return obj3Interface; }
+    @JsonProperty("interface")
+    public void setObj3Interface(Interface value) { this.obj3Interface = value; }
 
     @JsonProperty("long")
     public LongClass getObj3Long() { return obj3Long; }
@@ -368,149 +393,4 @@ public class Obj3 {
     public NullClass getObj3Null() { return obj3Null; }
     @JsonProperty("null")
     public void setObj3Null(NullClass value) { this.obj3Null = value; }
-
-    @JsonProperty("package")
-    public Package getObj3Package() { return obj3Package; }
-    @JsonProperty("package")
-    public void setObj3Package(Package value) { this.obj3Package = value; }
-
-    @JsonProperty("private")
-    public Private getObj3Private() { return obj3Private; }
-    @JsonProperty("private")
-    public void setObj3Private(Private value) { this.obj3Private = value; }
-
-    @JsonProperty("protected")
-    public Protected getObj3Protected() { return obj3Protected; }
-    @JsonProperty("protected")
-    public void setObj3Protected(Protected value) { this.obj3Protected = value; }
-
-    @JsonProperty("protocol")
-    public ProtocolClass getObj3Protocol() { return obj3Protocol; }
-    @JsonProperty("protocol")
-    public void setObj3Protocol(ProtocolClass value) { this.obj3Protocol = value; }
-
-    @JsonProperty("object")
-    public ObjectClass getObject() { return object; }
-    @JsonProperty("object")
-    public void setObject(ObjectClass value) { this.object = value; }
-
-    @JsonProperty("ObjectMapper")
-    public ObjectMapperClass getObjectMapper() { return objectMapper; }
-    @JsonProperty("ObjectMapper")
-    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
-
-    @JsonProperty("of")
-    public Of getOf() { return of; }
-    @JsonProperty("of")
-    public void setOf(Of value) { this.of = value; }
-
-    @JsonProperty("oneway")
-    public Oneway getOneway() { return oneway; }
-    @JsonProperty("oneway")
-    public void setOneway(Oneway value) { this.oneway = value; }
-
-    @JsonProperty("open")
-    public Open getOpen() { return open; }
-    @JsonProperty("open")
-    public void setOpen(Open value) { this.open = value; }
-
-    @JsonProperty("operator")
-    public Operator getOperator() { return operator; }
-    @JsonProperty("operator")
-    public void setOperator(Operator value) { this.operator = value; }
-
-    @JsonProperty("optional")
-    public Optional getOptional() { return optional; }
-    @JsonProperty("optional")
-    public void setOptional(Optional value) { this.optional = value; }
-
-    @JsonProperty("or")
-    public Or getOr() { return or; }
-    @JsonProperty("or")
-    public void setOr(Or value) { this.or = value; }
-
-    @JsonProperty("or_eq")
-    public OrEq getOrEq() { return orEq; }
-    @JsonProperty("or_eq")
-    public void setOrEq(OrEq value) { this.orEq = value; }
-
-    @JsonProperty("out")
-    public Out getOut() { return out; }
-    @JsonProperty("out")
-    public void setOut(Out value) { this.out = value; }
-
-    @JsonProperty("override")
-    public OverrideClass getOverride() { return override; }
-    @JsonProperty("override")
-    public void setOverride(OverrideClass value) { this.override = value; }
-
-    @JsonProperty("params")
-    public Params getParams() { return params; }
-    @JsonProperty("params")
-    public void setParams(Params value) { this.params = value; }
-
-    @JsonProperty("pass")
-    public Pass getPass() { return pass; }
-    @JsonProperty("pass")
-    public void setPass(Pass value) { this.pass = value; }
-
-    @JsonProperty("port")
-    public Port getPort() { return port; }
-    @JsonProperty("port")
-    public void setPort(Port value) { this.port = value; }
-
-    @JsonProperty("postfix")
-    public Postfix getPostfix() { return postfix; }
-    @JsonProperty("postfix")
-    public void setPostfix(Postfix value) { this.postfix = value; }
-
-    @JsonProperty("precedence")
-    public Precedence getPrecedence() { return precedence; }
-    @JsonProperty("precedence")
-    public void setPrecedence(Precedence value) { this.precedence = value; }
-
-    @JsonProperty("prefix")
-    public Prefix getPrefix() { return prefix; }
-    @JsonProperty("prefix")
-    public void setPrefix(Prefix value) { this.prefix = value; }
-
-    @JsonProperty("print")
-    public Print getPrint() { return print; }
-    @JsonProperty("print")
-    public void setPrint(Print value) { this.print = value; }
-
-    @JsonProperty("printMembers")
-    public PrintMembers getPrintMembers() { return printMembers; }
-    @JsonProperty("printMembers")
-    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
-
-    @JsonProperty("printf")
-    public Printf getPrintf() { return printf; }
-    @JsonProperty("printf")
-    public void setPrintf(Printf value) { this.printf = value; }
-
-    @JsonProperty("Protocol")
-    public Protocol getProtocol() { return protocol; }
-    @JsonProperty("Protocol")
-    public void setProtocol(Protocol value) { this.protocol = value; }
-
-    @JsonProperty("SerializerProvider")
-    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
-    @JsonProperty("SerializerProvider")
-    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
-
-    @JsonProperty("SimpleModule")
-    public SimpleModule getSimpleModule() { return simpleModule; }
-    @JsonProperty("SimpleModule")
-    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
-
-    @JsonProperty("StdDeserializer")
-    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
-    @JsonProperty("StdDeserializer")
-    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
-
-    @JsonProperty("StdSerializer")
-    public StdSerializer getStdSerializer() { return stdSerializer; }
-    @JsonProperty("StdSerializer")
-    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
 }
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
index 27a5828..6ee1cad 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj4.java
@@ -4,23 +4,38 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj4 {
     private long dummy;
+    private Nullptr nullptr;
+    private Number number;
+    private Package obj4Package;
+    private Private obj4Private;
+    private Protected obj4Protected;
+    private ProtocolClass obj4Protocol;
     private Public obj4Public;
     private Return obj4Return;
     private SelfClass obj4Self;
     private Short obj4Short;
     private Static obj4Static;
-    private Strictfp obj4Strictfp;
-    private Super obj4Super;
-    private Switch obj4Switch;
-    private Synchronized obj4Synchronized;
-    private This obj4This;
-    private Throw obj4Throw;
-    private Throws obj4Throws;
-    private Transient obj4Transient;
-    private True obj4True;
-    private Try obj4Try;
-    private TypeClass obj4Type;
-    private TrueClass purpleTrue;
+    private ObjectClass object;
+    private ObjectMapperClass objectMapper;
+    private Of of;
+    private Oneway oneway;
+    private Open open;
+    private Operator operator;
+    private Optional optional;
+    private Or or;
+    private OrEq orEq;
+    private Out out;
+    private OverrideClass override;
+    private Params params;
+    private Pass pass;
+    private Port port;
+    private Postfix postfix;
+    private Precedence precedence;
+    private Prefix prefix;
+    private Print print;
+    private PrintMembers printMembers;
+    private Printf printf;
+    private Protocol protocol;
     private Quicktype quicktype;
     private Raise raise;
     private Range range;
@@ -45,42 +60,50 @@ public class Obj4 {
     private Select select;
     private Self self;
     private Serialize serialize;
+    private SerializerProviderClass serializerProvider;
     private Set set;
     private Signed signed;
+    private SimpleModule simpleModule;
     private Sizeof sizeof;
     private Stackalloc stackalloc;
     private Standards standards;
     private StaticAssert staticAssert;
-    private StaticCast staticCast;
-    private StringClass string;
-    private Struct struct;
-    private Subscript subscript;
-    private Symbol symbol;
-    private SystemClass system;
-    private Template template;
-    private Then then;
-    private ThreadLocal threadLocal;
-    private TimeOnly timeOnly;
-    private TimeOnlyConverter timeOnlyConverter;
-    private ToJSON toJSON;
-    private ToString toString;
-    private TopLevelClass topLevel;
-    private Type type;
-    private Typealias typealias;
-    private Typedef typedef;
-    private Typeid typeid;
-    private Typename typename;
-    private Typeof typeof;
-    private Uint uint;
-    private Ulong ulong;
-    private Unchecked unchecked;
-    private Undefined undefined;
 
     @JsonProperty("dummy")
     public long getDummy() { return dummy; }
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("nullptr")
+    public Nullptr getNullptr() { return nullptr; }
+    @JsonProperty("nullptr")
+    public void setNullptr(Nullptr value) { this.nullptr = value; }
+
+    @JsonProperty("number")
+    public Number getNumber() { return number; }
+    @JsonProperty("number")
+    public void setNumber(Number value) { this.number = value; }
+
+    @JsonProperty("package")
+    public Package getObj4Package() { return obj4Package; }
+    @JsonProperty("package")
+    public void setObj4Package(Package value) { this.obj4Package = value; }
+
+    @JsonProperty("private")
+    public Private getObj4Private() { return obj4Private; }
+    @JsonProperty("private")
+    public void setObj4Private(Private value) { this.obj4Private = value; }
+
+    @JsonProperty("protected")
+    public Protected getObj4Protected() { return obj4Protected; }
+    @JsonProperty("protected")
+    public void setObj4Protected(Protected value) { this.obj4Protected = value; }
+
+    @JsonProperty("protocol")
+    public ProtocolClass getObj4Protocol() { return obj4Protocol; }
+    @JsonProperty("protocol")
+    public void setObj4Protocol(ProtocolClass value) { this.obj4Protocol = value; }
+
     @JsonProperty("public")
     public Public getObj4Public() { return obj4Public; }
     @JsonProperty("public")
@@ -106,65 +129,110 @@ public class Obj4 {
     @JsonProperty("static")
     public void setObj4Static(Static value) { this.obj4Static = value; }
 
-    @JsonProperty("strictfp")
-    public Strictfp getObj4Strictfp() { return obj4Strictfp; }
-    @JsonProperty("strictfp")
-    public void setObj4Strictfp(Strictfp value) { this.obj4Strictfp = value; }
-
-    @JsonProperty("super")
-    public Super getObj4Super() { return obj4Super; }
-    @JsonProperty("super")
-    public void setObj4Super(Super value) { this.obj4Super = value; }
-
-    @JsonProperty("switch")
-    public Switch getObj4Switch() { return obj4Switch; }
-    @JsonProperty("switch")
-    public void setObj4Switch(Switch value) { this.obj4Switch = value; }
-
-    @JsonProperty("synchronized")
-    public Synchronized getObj4Synchronized() { return obj4Synchronized; }
-    @JsonProperty("synchronized")
-    public void setObj4Synchronized(Synchronized value) { this.obj4Synchronized = value; }
-
-    @JsonProperty("this")
-    public This getObj4This() { return obj4This; }
-    @JsonProperty("this")
-    public void setObj4This(This value) { this.obj4This = value; }
-
-    @JsonProperty("throw")
-    public Throw getObj4Throw() { return obj4Throw; }
-    @JsonProperty("throw")
-    public void setObj4Throw(Throw value) { this.obj4Throw = value; }
-
-    @JsonProperty("throws")
-    public Throws getObj4Throws() { return obj4Throws; }
-    @JsonProperty("throws")
-    public void setObj4Throws(Throws value) { this.obj4Throws = value; }
-
-    @JsonProperty("transient")
-    public Transient getObj4Transient() { return obj4Transient; }
-    @JsonProperty("transient")
-    public void setObj4Transient(Transient value) { this.obj4Transient = value; }
-
-    @JsonProperty("True")
-    public True getObj4True() { return obj4True; }
-    @JsonProperty("True")
-    public void setObj4True(True value) { this.obj4True = value; }
-
-    @JsonProperty("try")
-    public Try getObj4Try() { return obj4Try; }
-    @JsonProperty("try")
-    public void setObj4Try(Try value) { this.obj4Try = value; }
-
-    @JsonProperty("type")
-    public TypeClass getObj4Type() { return obj4Type; }
-    @JsonProperty("type")
-    public void setObj4Type(TypeClass value) { this.obj4Type = value; }
-
-    @JsonProperty("true")
-    public TrueClass getPurpleTrue() { return purpleTrue; }
-    @JsonProperty("true")
-    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+    @JsonProperty("object")
+    public ObjectClass getObject() { return object; }
+    @JsonProperty("object")
+    public void setObject(ObjectClass value) { this.object = value; }
+
+    @JsonProperty("ObjectMapper")
+    public ObjectMapperClass getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(ObjectMapperClass value) { this.objectMapper = value; }
+
+    @JsonProperty("of")
+    public Of getOf() { return of; }
+    @JsonProperty("of")
+    public void setOf(Of value) { this.of = value; }
+
+    @JsonProperty("oneway")
+    public Oneway getOneway() { return oneway; }
+    @JsonProperty("oneway")
+    public void setOneway(Oneway value) { this.oneway = value; }
+
+    @JsonProperty("open")
+    public Open getOpen() { return open; }
+    @JsonProperty("open")
+    public void setOpen(Open value) { this.open = value; }
+
+    @JsonProperty("operator")
+    public Operator getOperator() { return operator; }
+    @JsonProperty("operator")
+    public void setOperator(Operator value) { this.operator = value; }
+
+    @JsonProperty("optional")
+    public Optional getOptional() { return optional; }
+    @JsonProperty("optional")
+    public void setOptional(Optional value) { this.optional = value; }
+
+    @JsonProperty("or")
+    public Or getOr() { return or; }
+    @JsonProperty("or")
+    public void setOr(Or value) { this.or = value; }
+
+    @JsonProperty("or_eq")
+    public OrEq getOrEq() { return orEq; }
+    @JsonProperty("or_eq")
+    public void setOrEq(OrEq value) { this.orEq = value; }
+
+    @JsonProperty("out")
+    public Out getOut() { return out; }
+    @JsonProperty("out")
+    public void setOut(Out value) { this.out = value; }
+
+    @JsonProperty("override")
+    public OverrideClass getOverride() { return override; }
+    @JsonProperty("override")
+    public void setOverride(OverrideClass value) { this.override = value; }
+
+    @JsonProperty("params")
+    public Params getParams() { return params; }
+    @JsonProperty("params")
+    public void setParams(Params value) { this.params = value; }
+
+    @JsonProperty("pass")
+    public Pass getPass() { return pass; }
+    @JsonProperty("pass")
+    public void setPass(Pass value) { this.pass = value; }
+
+    @JsonProperty("port")
+    public Port getPort() { return port; }
+    @JsonProperty("port")
+    public void setPort(Port value) { this.port = value; }
+
+    @JsonProperty("postfix")
+    public Postfix getPostfix() { return postfix; }
+    @JsonProperty("postfix")
+    public void setPostfix(Postfix value) { this.postfix = value; }
+
+    @JsonProperty("precedence")
+    public Precedence getPrecedence() { return precedence; }
+    @JsonProperty("precedence")
+    public void setPrecedence(Precedence value) { this.precedence = value; }
+
+    @JsonProperty("prefix")
+    public Prefix getPrefix() { return prefix; }
+    @JsonProperty("prefix")
+    public void setPrefix(Prefix value) { this.prefix = value; }
+
+    @JsonProperty("print")
+    public Print getPrint() { return print; }
+    @JsonProperty("print")
+    public void setPrint(Print value) { this.print = value; }
+
+    @JsonProperty("printMembers")
+    public PrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(PrintMembers value) { this.printMembers = value; }
+
+    @JsonProperty("printf")
+    public Printf getPrintf() { return printf; }
+    @JsonProperty("printf")
+    public void setPrintf(Printf value) { this.printf = value; }
+
+    @JsonProperty("Protocol")
+    public Protocol getProtocol() { return protocol; }
+    @JsonProperty("Protocol")
+    public void setProtocol(Protocol value) { this.protocol = value; }
 
     @JsonProperty("quicktype")
     public Quicktype getQuicktype() { return quicktype; }
@@ -286,6 +354,11 @@ public class Obj4 {
     @JsonProperty("serialize")
     public void setSerialize(Serialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public SerializerProviderClass getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(SerializerProviderClass value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public Set getSet() { return set; }
     @JsonProperty("set")
@@ -296,6 +369,11 @@ public class Obj4 {
     @JsonProperty("signed")
     public void setSigned(Signed value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public SimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(SimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public Sizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -315,124 +393,4 @@ public class Obj4 {
     public StaticAssert getStaticAssert() { return staticAssert; }
     @JsonProperty("static_assert")
     public void setStaticAssert(StaticAssert value) { this.staticAssert = value; }
-
-    @JsonProperty("static_cast")
-    public StaticCast getStaticCast() { return staticCast; }
-    @JsonProperty("static_cast")
-    public void setStaticCast(StaticCast value) { this.staticCast = value; }
-
-    @JsonProperty("string")
-    public StringClass getString() { return string; }
-    @JsonProperty("string")
-    public void setString(StringClass value) { this.string = value; }
-
-    @JsonProperty("struct")
-    public Struct getStruct() { return struct; }
-    @JsonProperty("struct")
-    public void setStruct(Struct value) { this.struct = value; }
-
-    @JsonProperty("subscript")
-    public Subscript getSubscript() { return subscript; }
-    @JsonProperty("subscript")
-    public void setSubscript(Subscript value) { this.subscript = value; }
-
-    @JsonProperty("symbol")
-    public Symbol getSymbol() { return symbol; }
-    @JsonProperty("symbol")
-    public void setSymbol(Symbol value) { this.symbol = value; }
-
-    @JsonProperty("system")
-    public SystemClass getSystem() { return system; }
-    @JsonProperty("system")
-    public void setSystem(SystemClass value) { this.system = value; }
-
-    @JsonProperty("template")
-    public Template getTemplate() { return template; }
-    @JsonProperty("template")
-    public void setTemplate(Template value) { this.template = value; }
-
-    @JsonProperty("then")
-    public Then getThen() { return then; }
-    @JsonProperty("then")
-    public void setThen(Then value) { this.then = value; }
-
-    @JsonProperty("thread_local")
-    public ThreadLocal getThreadLocal() { return threadLocal; }
-    @JsonProperty("thread_local")
-    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
-
-    @JsonProperty("TimeOnly")
-    public TimeOnly getTimeOnly() { return timeOnly; }
-    @JsonProperty("TimeOnly")
-    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
-
-    @JsonProperty("TimeOnlyConverter")
-    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
-    @JsonProperty("TimeOnlyConverter")
-    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
-
-    @JsonProperty("to_json")
-    public ToJSON getToJSON() { return toJSON; }
-    @JsonProperty("to_json")
-    public void setToJSON(ToJSON value) { this.toJSON = value; }
-
-    @JsonProperty("toString")
-    public ToString getToString() { return toString; }
-    @JsonProperty("toString")
-    public void setToString(ToString value) { this.toString = value; }
-
-    @JsonProperty("top_level")
-    public TopLevelClass getTopLevel() { return topLevel; }
-    @JsonProperty("top_level")
-    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
-
-    @JsonProperty("Type")
-    public Type getType() { return type; }
-    @JsonProperty("Type")
-    public void setType(Type value) { this.type = value; }
-
-    @JsonProperty("typealias")
-    public Typealias getTypealias() { return typealias; }
-    @JsonProperty("typealias")
-    public void setTypealias(Typealias value) { this.typealias = value; }
-
-    @JsonProperty("typedef")
-    public Typedef getTypedef() { return typedef; }
-    @JsonProperty("typedef")
-    public void setTypedef(Typedef value) { this.typedef = value; }
-
-    @JsonProperty("typeid")
-    public Typeid getTypeid() { return typeid; }
-    @JsonProperty("typeid")
-    public void setTypeid(Typeid value) { this.typeid = value; }
-
-    @JsonProperty("typename")
-    public Typename getTypename() { return typename; }
-    @JsonProperty("typename")
-    public void setTypename(Typename value) { this.typename = value; }
-
-    @JsonProperty("typeof")
-    public Typeof getTypeof() { return typeof; }
-    @JsonProperty("typeof")
-    public void setTypeof(Typeof value) { this.typeof = value; }
-
-    @JsonProperty("uint")
-    public Uint getUint() { return uint; }
-    @JsonProperty("uint")
-    public void setUint(Uint value) { this.uint = value; }
-
-    @JsonProperty("ulong")
-    public Ulong getUlong() { return ulong; }
-    @JsonProperty("ulong")
-    public void setUlong(Ulong value) { this.ulong = value; }
-
-    @JsonProperty("unchecked")
-    public Unchecked getUnchecked() { return unchecked; }
-    @JsonProperty("unchecked")
-    public void setUnchecked(Unchecked value) { this.unchecked = value; }
-
-    @JsonProperty("undefined")
-    public Undefined getUndefined() { return undefined; }
-    @JsonProperty("undefined")
-    public void setUndefined(Undefined value) { this.undefined = value; }
 }
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
index 4a9fd69..5465ba7 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Obj5.java
@@ -4,9 +4,47 @@ import com.fasterxml.jackson.annotation.*;
 
 public class Obj5 {
     private long dummy;
+    private Strictfp obj5Strictfp;
+    private Super obj5Super;
+    private Switch obj5Switch;
+    private Synchronized obj5Synchronized;
+    private This obj5This;
+    private Throw obj5Throw;
+    private Throws obj5Throws;
+    private Transient obj5Transient;
+    private True obj5True;
+    private Try obj5Try;
+    private TypeClass obj5Type;
     private Void obj5Void;
     private Volatile obj5Volatile;
     private While obj5While;
+    private TrueClass purpleTrue;
+    private StaticCast staticCast;
+    private StdDeserializer stdDeserializer;
+    private StdSerializer stdSerializer;
+    private StringClass string;
+    private Struct struct;
+    private Subscript subscript;
+    private Symbol symbol;
+    private SystemClass system;
+    private Template template;
+    private Then then;
+    private ThreadLocal threadLocal;
+    private TimeOnly timeOnly;
+    private TimeOnlyConverter timeOnlyConverter;
+    private ToJSON toJSON;
+    private ToString toString;
+    private TopLevelClass topLevel;
+    private Type type;
+    private Typealias typealias;
+    private Typedef typedef;
+    private Typeid typeid;
+    private Typename typename;
+    private Typeof typeof;
+    private Uint uint;
+    private Ulong ulong;
+    private Unchecked unchecked;
+    private Undefined undefined;
     private Union union;
     private Unowned unowned;
     private Unsafe unsafe;
@@ -33,6 +71,61 @@ public class Obj5 {
     @JsonProperty("dummy")
     public void setDummy(long value) { this.dummy = value; }
 
+    @JsonProperty("strictfp")
+    public Strictfp getObj5Strictfp() { return obj5Strictfp; }
+    @JsonProperty("strictfp")
+    public void setObj5Strictfp(Strictfp value) { this.obj5Strictfp = value; }
+
+    @JsonProperty("super")
+    public Super getObj5Super() { return obj5Super; }
+    @JsonProperty("super")
+    public void setObj5Super(Super value) { this.obj5Super = value; }
+
+    @JsonProperty("switch")
+    public Switch getObj5Switch() { return obj5Switch; }
+    @JsonProperty("switch")
+    public void setObj5Switch(Switch value) { this.obj5Switch = value; }
+
+    @JsonProperty("synchronized")
+    public Synchronized getObj5Synchronized() { return obj5Synchronized; }
+    @JsonProperty("synchronized")
+    public void setObj5Synchronized(Synchronized value) { this.obj5Synchronized = value; }
+
+    @JsonProperty("this")
+    public This getObj5This() { return obj5This; }
+    @JsonProperty("this")
+    public void setObj5This(This value) { this.obj5This = value; }
+
+    @JsonProperty("throw")
+    public Throw getObj5Throw() { return obj5Throw; }
+    @JsonProperty("throw")
+    public void setObj5Throw(Throw value) { this.obj5Throw = value; }
+
+    @JsonProperty("throws")
+    public Throws getObj5Throws() { return obj5Throws; }
+    @JsonProperty("throws")
+    public void setObj5Throws(Throws value) { this.obj5Throws = value; }
+
+    @JsonProperty("transient")
+    public Transient getObj5Transient() { return obj5Transient; }
+    @JsonProperty("transient")
+    public void setObj5Transient(Transient value) { this.obj5Transient = value; }
+
+    @JsonProperty("True")
+    public True getObj5True() { return obj5True; }
+    @JsonProperty("True")
+    public void setObj5True(True value) { this.obj5True = value; }
+
+    @JsonProperty("try")
+    public Try getObj5Try() { return obj5Try; }
+    @JsonProperty("try")
+    public void setObj5Try(Try value) { this.obj5Try = value; }
+
+    @JsonProperty("type")
+    public TypeClass getObj5Type() { return obj5Type; }
+    @JsonProperty("type")
+    public void setObj5Type(TypeClass value) { this.obj5Type = value; }
+
     @JsonProperty("void")
     public Void getObj5Void() { return obj5Void; }
     @JsonProperty("void")
@@ -48,6 +141,141 @@ public class Obj5 {
     @JsonProperty("while")
     public void setObj5While(While value) { this.obj5While = value; }
 
+    @JsonProperty("true")
+    public TrueClass getPurpleTrue() { return purpleTrue; }
+    @JsonProperty("true")
+    public void setPurpleTrue(TrueClass value) { this.purpleTrue = value; }
+
+    @JsonProperty("static_cast")
+    public StaticCast getStaticCast() { return staticCast; }
+    @JsonProperty("static_cast")
+    public void setStaticCast(StaticCast value) { this.staticCast = value; }
+
+    @JsonProperty("StdDeserializer")
+    public StdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(StdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public StdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(StdSerializer value) { this.stdSerializer = value; }
+
+    @JsonProperty("string")
+    public StringClass getString() { return string; }
+    @JsonProperty("string")
+    public void setString(StringClass value) { this.string = value; }
+
+    @JsonProperty("struct")
+    public Struct getStruct() { return struct; }
+    @JsonProperty("struct")
+    public void setStruct(Struct value) { this.struct = value; }
+
+    @JsonProperty("subscript")
+    public Subscript getSubscript() { return subscript; }
+    @JsonProperty("subscript")
+    public void setSubscript(Subscript value) { this.subscript = value; }
+
+    @JsonProperty("symbol")
+    public Symbol getSymbol() { return symbol; }
+    @JsonProperty("symbol")
+    public void setSymbol(Symbol value) { this.symbol = value; }
+
+    @JsonProperty("system")
+    public SystemClass getSystem() { return system; }
+    @JsonProperty("system")
+    public void setSystem(SystemClass value) { this.system = value; }
+
+    @JsonProperty("template")
+    public Template getTemplate() { return template; }
+    @JsonProperty("template")
+    public void setTemplate(Template value) { this.template = value; }
+
+    @JsonProperty("then")
+    public Then getThen() { return then; }
+    @JsonProperty("then")
+    public void setThen(Then value) { this.then = value; }
+
+    @JsonProperty("thread_local")
+    public ThreadLocal getThreadLocal() { return threadLocal; }
+    @JsonProperty("thread_local")
+    public void setThreadLocal(ThreadLocal value) { this.threadLocal = value; }
+
+    @JsonProperty("TimeOnly")
+    public TimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(TimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public TimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(TimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
+    @JsonProperty("to_json")
+    public ToJSON getToJSON() { return toJSON; }
+    @JsonProperty("to_json")
+    public void setToJSON(ToJSON value) { this.toJSON = value; }
+
+    @JsonProperty("toString")
+    public ToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(ToString value) { this.toString = value; }
+
+    @JsonProperty("top_level")
+    public TopLevelClass getTopLevel() { return topLevel; }
+    @JsonProperty("top_level")
+    public void setTopLevel(TopLevelClass value) { this.topLevel = value; }
+
+    @JsonProperty("Type")
+    public Type getType() { return type; }
+    @JsonProperty("Type")
+    public void setType(Type value) { this.type = value; }
+
+    @JsonProperty("typealias")
+    public Typealias getTypealias() { return typealias; }
+    @JsonProperty("typealias")
+    public void setTypealias(Typealias value) { this.typealias = value; }
+
+    @JsonProperty("typedef")
+    public Typedef getTypedef() { return typedef; }
+    @JsonProperty("typedef")
+    public void setTypedef(Typedef value) { this.typedef = value; }
+
+    @JsonProperty("typeid")
+    public Typeid getTypeid() { return typeid; }
+    @JsonProperty("typeid")
+    public void setTypeid(Typeid value) { this.typeid = value; }
+
+    @JsonProperty("typename")
+    public Typename getTypename() { return typename; }
+    @JsonProperty("typename")
+    public void setTypename(Typename value) { this.typename = value; }
+
+    @JsonProperty("typeof")
+    public Typeof getTypeof() { return typeof; }
+    @JsonProperty("typeof")
+    public void setTypeof(Typeof value) { this.typeof = value; }
+
+    @JsonProperty("uint")
+    public Uint getUint() { return uint; }
+    @JsonProperty("uint")
+    public void setUint(Uint value) { this.uint = value; }
+
+    @JsonProperty("ulong")
+    public Ulong getUlong() { return ulong; }
+    @JsonProperty("ulong")
+    public void setUlong(Ulong value) { this.ulong = value; }
+
+    @JsonProperty("unchecked")
+    public Unchecked getUnchecked() { return unchecked; }
+    @JsonProperty("unchecked")
+    public void setUnchecked(Unchecked value) { this.unchecked = value; }
+
+    @JsonProperty("undefined")
+    public Undefined getUndefined() { return undefined; }
+    @JsonProperty("undefined")
+    public void setUndefined(Undefined value) { this.undefined = value; }
+
     @JsonProperty("union")
     public Union getUnion() { return union; }
     @JsonProperty("union")
diff --git a/base/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
index ab787cd..76a4852 100644
--- a/base/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
@@ -209,8 +209,6 @@ const typeMap = {
         { json: "DateFormatter", js: "DateFormatter", typ: r("DateFormatter") },
         { json: "DateOnly", js: "DateOnly", typ: r("DateOnly") },
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: r("DateOnlyConverter") },
-        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "_", js: "_", typ: r("Empty") },
         { json: "_Bool", js: "_Bool", typ: r("BoolClass") },
         { json: "_Complex", js: "_Complex", typ: r("Complex") },
@@ -268,11 +266,6 @@ const typeMap = {
         { json: "converter", js: "converter", typ: r("Converter") },
         { json: "date", js: "date", typ: r("Date") },
         { json: "date_parse_handling", js: "date_parse_handling", typ: r("DateParseHandling") },
-        { json: "debugger", js: "debugger", typ: r("Debugger") },
-        { json: "decimal", js: "decimal", typ: r("Decimal") },
-        { json: "declare", js: "declare", typ: r("Declare") },
-        { json: "decltype", js: "decltype", typ: r("Decltype") },
-        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "dummy", js: "dummy", typ: i(0) },
     ], false),
     "Any": o([
@@ -296,12 +289,6 @@ const typeMap = {
     "DateOnlyConverter": o([
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: i(0) },
     ], false),
-    "DateTime": o([
-        { json: "DateTime", js: "DateTime", typ: Date },
-    ], false),
-    "DateTimeStyles": o([
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
-    ], false),
     "Empty": o([
         { json: "_", js: "_", typ: i(0) },
     ], false),
@@ -473,26 +460,18 @@ const typeMap = {
     "DateParseHandling": o([
         { json: "date_parse_handling", js: "date_parse_handling", typ: i(0) },
     ], false),
-    "Debugger": o([
-        { json: "debugger", js: "debugger", typ: i(0) },
-    ], false),
-    "Decimal": o([
-        { json: "decimal", js: "decimal", typ: i(0) },
-    ], false),
-    "Declare": o([
-        { json: "declare", js: "declare", typ: i(0) },
-    ], false),
-    "Decltype": o([
-        { json: "decltype", js: "decltype", typ: i(0) },
-    ], false),
-    "DecodeString": o([
-        { json: "decode_string", js: "decode_string", typ: i(0) },
-    ], false),
     "Obj2": o([
+        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "EnumValues", js: "EnumValues", typ: r("EnumValues") },
         { json: "False", js: "False", typ: r("False") },
         { json: "FormatException", js: "FormatException", typ: r("FormatException") },
         { json: "IMP", js: "IMP", typ: r("Imp") },
+        { json: "debugger", js: "debugger", typ: r("Debugger") },
+        { json: "decimal", js: "decimal", typ: r("Decimal") },
+        { json: "declare", js: "declare", typ: r("Declare") },
+        { json: "decltype", js: "decltype", typ: r("Decltype") },
+        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "def", js: "def", typ: r("Def") },
         { json: "default", js: "default", typ: r("Default") },
         { json: "defer", js: "defer", typ: r("Defer") },
@@ -547,17 +526,12 @@ const typeMap = {
         { json: "if", js: "if", typ: r("If") },
         { json: "implements", js: "implements", typ: r("Implements") },
         { json: "implicit", js: "implicit", typ: r("Implicit") },
-        { json: "import", js: "import", typ: r("Import") },
-        { json: "in", js: "in", typ: r("In") },
-        { json: "indirect", js: "indirect", typ: r("Indirect") },
-        { json: "infix", js: "infix", typ: r("Infix") },
-        { json: "init", js: "init", typ: r("Init") },
-        { json: "inline", js: "inline", typ: r("Inline") },
-        { json: "inout", js: "inout", typ: r("Inout") },
-        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
-        { json: "int", js: "int", typ: r("Int") },
-        { json: "interface", js: "interface", typ: r("Interface") },
-        { json: "internal", js: "internal", typ: r("Internal") },
+    ], false),
+    "DateTime": o([
+        { json: "DateTime", js: "DateTime", typ: Date },
+    ], false),
+    "DateTimeStyles": o([
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
     ], false),
     "EnumValues": o([
         { json: "EnumValues", js: "EnumValues", typ: a(r("EnumValue")) },
@@ -571,6 +545,21 @@ const typeMap = {
     "Imp": o([
         { json: "IMP", js: "IMP", typ: i(0) },
     ], false),
+    "Debugger": o([
+        { json: "debugger", js: "debugger", typ: i(0) },
+    ], false),
+    "Decimal": o([
+        { json: "decimal", js: "decimal", typ: i(0) },
+    ], false),
+    "Declare": o([
+        { json: "declare", js: "declare", typ: i(0) },
+    ], false),
+    "Decltype": o([
+        { json: "decltype", js: "decltype", typ: i(0) },
+    ], false),
+    "DecodeString": o([
+        { json: "decode_string", js: "decode_string", typ: i(0) },
+    ], false),
     "Def": o([
         { json: "def", js: "def", typ: i(0) },
     ], false),
@@ -730,39 +719,6 @@ const typeMap = {
     "Implicit": o([
         { json: "implicit", js: "implicit", typ: i(0) },
     ], false),
-    "Import": o([
-        { json: "import", js: "import", typ: i(0) },
-    ], false),
-    "In": o([
-        { json: "in", js: "in", typ: i(0) },
-    ], false),
-    "Indirect": o([
-        { json: "indirect", js: "indirect", typ: i(0) },
-    ], false),
-    "Infix": o([
-        { json: "infix", js: "infix", typ: i(0) },
-    ], false),
-    "Init": o([
-        { json: "init", js: "init", typ: i(0) },
-    ], false),
-    "Inline": o([
-        { json: "inline", js: "inline", typ: i(0) },
-    ], false),
-    "Inout": o([
-        { json: "inout", js: "inout", typ: i(0) },
-    ], false),
-    "Instanceof": o([
-        { json: "instanceof", js: "instanceof", typ: i(0) },
-    ], false),
-    "Int": o([
-        { json: "int", js: "int", typ: i(0) },
-    ], false),
-    "Interface": o([
-        { json: "interface", js: "interface", typ: i(0) },
-    ], false),
-    "Internal": o([
-        { json: "internal", js: "internal", typ: i(0) },
-    ], false),
     "Obj3": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: r("ISODateTimeOffsetConverter") },
         { json: "JSONAny", js: "JSONAny", typ: r("JSONAny") },
@@ -781,13 +737,18 @@ const typeMap = {
         { json: "NSString", js: "NSString", typ: r("NSString") },
         { json: "NULL", js: "NULL", typ: r("Null") },
         { json: "None", js: "None", typ: r("None") },
-        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
-        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
-        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
-        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
-        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
-        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
         { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "import", js: "import", typ: r("Import") },
+        { json: "in", js: "in", typ: r("In") },
+        { json: "indirect", js: "indirect", typ: r("Indirect") },
+        { json: "infix", js: "infix", typ: r("Infix") },
+        { json: "init", js: "init", typ: r("Init") },
+        { json: "inline", js: "inline", typ: r("Inline") },
+        { json: "inout", js: "inout", typ: r("Inout") },
+        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
+        { json: "int", js: "int", typ: r("Int") },
+        { json: "interface", js: "interface", typ: r("Interface") },
+        { json: "internal", js: "internal", typ: r("Internal") },
         { json: "is", js: "is", typ: r("Is") },
         { json: "iterable", js: "iterable", typ: r("Iterable") },
         { json: "jdec", js: "jdec", typ: r("Jdec") },
@@ -824,31 +785,6 @@ const typeMap = {
         { json: "not", js: "not", typ: r("Not") },
         { json: "not_eq", js: "not_eq", typ: r("NotEq") },
         { json: "null", js: "null", typ: r("NullClass") },
-        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
-        { json: "number", js: "number", typ: r("Number") },
-        { json: "object", js: "object", typ: r("Object") },
-        { json: "of", js: "of", typ: r("Of") },
-        { json: "oneway", js: "oneway", typ: r("Oneway") },
-        { json: "open", js: "open", typ: r("Open") },
-        { json: "operator", js: "operator", typ: r("Operator") },
-        { json: "optional", js: "optional", typ: r("Optional") },
-        { json: "or", js: "or", typ: r("Or") },
-        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
-        { json: "out", js: "out", typ: r("Out") },
-        { json: "override", js: "override", typ: r("Override") },
-        { json: "package", js: "package", typ: r("Package") },
-        { json: "params", js: "params", typ: r("Params") },
-        { json: "pass", js: "pass", typ: r("Pass") },
-        { json: "port", js: "port", typ: r("Port") },
-        { json: "postfix", js: "postfix", typ: r("Postfix") },
-        { json: "precedence", js: "precedence", typ: r("Precedence") },
-        { json: "prefix", js: "prefix", typ: r("Prefix") },
-        { json: "print", js: "print", typ: r("Print") },
-        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
-        { json: "printf", js: "printf", typ: r("Printf") },
-        { json: "private", js: "private", typ: r("Private") },
-        { json: "protected", js: "protected", typ: r("Protected") },
-        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
     ], false),
     "ISODateTimeOffsetConverter": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: i(0) },
@@ -901,23 +837,38 @@ const typeMap = {
     "None": o([
         { json: "None", js: "None", typ: i(0) },
     ], false),
-    "ObjectMapper": o([
-        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    "Import": o([
+        { json: "import", js: "import", typ: i(0) },
     ], false),
-    "Protocol": o([
-        { json: "Protocol", js: "Protocol", typ: i(0) },
+    "In": o([
+        { json: "in", js: "in", typ: i(0) },
     ], false),
-    "SerializerProvider": o([
-        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    "Indirect": o([
+        { json: "indirect", js: "indirect", typ: i(0) },
     ], false),
-    "SimpleModule": o([
-        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    "Infix": o([
+        { json: "infix", js: "infix", typ: i(0) },
     ], false),
-    "StdDeserializer": o([
-        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    "Init": o([
+        { json: "init", js: "init", typ: i(0) },
     ], false),
-    "StdSerializer": o([
-        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    "Inline": o([
+        { json: "inline", js: "inline", typ: i(0) },
+    ], false),
+    "Inout": o([
+        { json: "inout", js: "inout", typ: i(0) },
+    ], false),
+    "Instanceof": o([
+        { json: "instanceof", js: "instanceof", typ: i(0) },
+    ], false),
+    "Int": o([
+        { json: "int", js: "int", typ: i(0) },
+    ], false),
+    "Interface": o([
+        { json: "interface", js: "interface", typ: i(0) },
+    ], false),
+    "Internal": o([
+        { json: "internal", js: "internal", typ: i(0) },
     ], false),
     "Is": o([
         { json: "is", js: "is", typ: i(0) },
@@ -1027,6 +978,97 @@ const typeMap = {
     "NullClass": o([
         { json: "null", js: "null", typ: i(0) },
     ], false),
+    "Obj4": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
+        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
+        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
+        { json: "SEL", js: "SEL", typ: r("Sel") },
+        { json: "Self", js: "Self", typ: r("Self") },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
+        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
+        { json: "Standards", js: "Standards", typ: r("Standards") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
+        { json: "number", js: "number", typ: r("Number") },
+        { json: "object", js: "object", typ: r("Object") },
+        { json: "of", js: "of", typ: r("Of") },
+        { json: "oneway", js: "oneway", typ: r("Oneway") },
+        { json: "open", js: "open", typ: r("Open") },
+        { json: "operator", js: "operator", typ: r("Operator") },
+        { json: "optional", js: "optional", typ: r("Optional") },
+        { json: "or", js: "or", typ: r("Or") },
+        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
+        { json: "out", js: "out", typ: r("Out") },
+        { json: "override", js: "override", typ: r("Override") },
+        { json: "package", js: "package", typ: r("Package") },
+        { json: "params", js: "params", typ: r("Params") },
+        { json: "pass", js: "pass", typ: r("Pass") },
+        { json: "port", js: "port", typ: r("Port") },
+        { json: "postfix", js: "postfix", typ: r("Postfix") },
+        { json: "precedence", js: "precedence", typ: r("Precedence") },
+        { json: "prefix", js: "prefix", typ: r("Prefix") },
+        { json: "print", js: "print", typ: r("Print") },
+        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
+        { json: "printf", js: "printf", typ: r("Printf") },
+        { json: "private", js: "private", typ: r("Private") },
+        { json: "protected", js: "protected", typ: r("Protected") },
+        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
+        { json: "public", js: "public", typ: r("Public") },
+        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
+        { json: "raise", js: "raise", typ: r("Raise") },
+        { json: "range", js: "range", typ: r("Range") },
+        { json: "readonly", js: "readonly", typ: r("Readonly") },
+        { json: "ref", js: "ref", typ: r("Ref") },
+        { json: "register", js: "register", typ: r("Register") },
+        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
+        { json: "repeat", js: "repeat", typ: r("Repeat") },
+        { json: "require", js: "require", typ: r("Require") },
+        { json: "required", js: "required", typ: r("Required") },
+        { json: "requires", js: "requires", typ: r("Requires") },
+        { json: "restrict", js: "restrict", typ: r("Restrict") },
+        { json: "retain", js: "retain", typ: r("Retain") },
+        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
+        { json: "return", js: "return", typ: r("Return") },
+        { json: "right", js: "right", typ: r("Right") },
+        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
+        { json: "s", js: "s", typ: r("S") },
+        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
+        { json: "sealed", js: "sealed", typ: r("Sealed") },
+        { json: "select", js: "select", typ: r("Select") },
+        { json: "self", js: "self", typ: r("SelfClass") },
+        { json: "serialize", js: "serialize", typ: r("Serialize") },
+        { json: "set", js: "set", typ: r("Set") },
+        { json: "short", js: "short", typ: r("Short") },
+        { json: "signed", js: "signed", typ: r("Signed") },
+        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
+        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
+        { json: "static", js: "static", typ: r("Static") },
+        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
+    ], false),
+    "ObjectMapper": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    ], false),
+    "Protocol": o([
+        { json: "Protocol", js: "Protocol", typ: i(0) },
+    ], false),
+    "RegExp": o([
+        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
+    ], false),
+    "Sel": o([
+        { json: "SEL", js: "SEL", typ: i(0) },
+    ], false),
+    "Self": o([
+        { json: "Self", js: "Self", typ: i(0) },
+    ], false),
+    "SerializerProvider": o([
+        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    ], false),
+    "SimpleModule": o([
+        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    ], false),
+    "Standards": o([
+        { json: "Standards", js: "Standards", typ: i(0) },
+    ], false),
     "Nullptr": o([
         { json: "nullptr", js: "nullptr", typ: i(0) },
     ], false),
@@ -1102,104 +1144,6 @@ const typeMap = {
     "ProtocolClass": o([
         { json: "protocol", js: "protocol", typ: i(0) },
     ], false),
-    "Obj4": o([
-        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
-        { json: "SEL", js: "SEL", typ: r("Sel") },
-        { json: "Self", js: "Self", typ: r("Self") },
-        { json: "Standards", js: "Standards", typ: r("Standards") },
-        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
-        { json: "True", js: "True", typ: r("True") },
-        { json: "Type", js: "Type", typ: r("Type") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "public", js: "public", typ: r("Public") },
-        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
-        { json: "raise", js: "raise", typ: r("Raise") },
-        { json: "range", js: "range", typ: r("Range") },
-        { json: "readonly", js: "readonly", typ: r("Readonly") },
-        { json: "ref", js: "ref", typ: r("Ref") },
-        { json: "register", js: "register", typ: r("Register") },
-        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
-        { json: "repeat", js: "repeat", typ: r("Repeat") },
-        { json: "require", js: "require", typ: r("Require") },
-        { json: "required", js: "required", typ: r("Required") },
-        { json: "requires", js: "requires", typ: r("Requires") },
-        { json: "restrict", js: "restrict", typ: r("Restrict") },
-        { json: "retain", js: "retain", typ: r("Retain") },
-        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
-        { json: "return", js: "return", typ: r("Return") },
-        { json: "right", js: "right", typ: r("Right") },
-        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
-        { json: "s", js: "s", typ: r("S") },
-        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
-        { json: "sealed", js: "sealed", typ: r("Sealed") },
-        { json: "select", js: "select", typ: r("Select") },
-        { json: "self", js: "self", typ: r("SelfClass") },
-        { json: "serialize", js: "serialize", typ: r("Serialize") },
-        { json: "set", js: "set", typ: r("Set") },
-        { json: "short", js: "short", typ: r("Short") },
-        { json: "signed", js: "signed", typ: r("Signed") },
-        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
-        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
-        { json: "static", js: "static", typ: r("Static") },
-        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
-        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
-        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
-        { json: "string", js: "string", typ: r("String") },
-        { json: "struct", js: "struct", typ: r("Struct") },
-        { json: "subscript", js: "subscript", typ: r("Subscript") },
-        { json: "super", js: "super", typ: r("Super") },
-        { json: "switch", js: "switch", typ: r("Switch") },
-        { json: "symbol", js: "symbol", typ: r("Symbol") },
-        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
-        { json: "system", js: "system", typ: r("System") },
-        { json: "template", js: "template", typ: r("Template") },
-        { json: "then", js: "then", typ: r("Then") },
-        { json: "this", js: "this", typ: r("This") },
-        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
-        { json: "throw", js: "throw", typ: r("Throw") },
-        { json: "throws", js: "throws", typ: r("Throws") },
-        { json: "toString", js: "toString", typ: r("ToString") },
-        { json: "to_json", js: "to_json", typ: r("ToJSON") },
-        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
-        { json: "transient", js: "transient", typ: r("Transient") },
-        { json: "true", js: "true", typ: r("TrueClass") },
-        { json: "try", js: "try", typ: r("Try") },
-        { json: "type", js: "type", typ: r("TypeClass") },
-        { json: "typealias", js: "typealias", typ: r("Typealias") },
-        { json: "typedef", js: "typedef", typ: r("Typedef") },
-        { json: "typeid", js: "typeid", typ: r("Typeid") },
-        { json: "typename", js: "typename", typ: r("Typename") },
-        { json: "typeof", js: "typeof", typ: r("Typeof") },
-        { json: "uint", js: "uint", typ: r("Uint") },
-        { json: "ulong", js: "ulong", typ: r("Ulong") },
-        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
-        { json: "undefined", js: "undefined", typ: r("Undefined") },
-    ], false),
-    "RegExp": o([
-        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
-    ], false),
-    "Sel": o([
-        { json: "SEL", js: "SEL", typ: i(0) },
-    ], false),
-    "Self": o([
-        { json: "Self", js: "Self", typ: i(0) },
-    ], false),
-    "Standards": o([
-        { json: "Standards", js: "Standards", typ: i(0) },
-    ], false),
-    "TimeOnly": o([
-        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
-    ], false),
-    "TimeOnlyConverter": o([
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
-    ], false),
-    "True": o([
-        { json: "True", js: "True", typ: i(0) },
-    ], false),
-    "Type": o([
-        { json: "Type", js: "Type", typ: i(0) },
-    ], false),
     "Public": o([
         { json: "public", js: "public", typ: i(0) },
     ], false),
@@ -1293,6 +1237,100 @@ const typeMap = {
     "StaticAssert": o([
         { json: "static_assert", js: "static_assert", typ: i(0) },
     ], false),
+    "Obj5": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
+        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
+        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
+        { json: "True", js: "True", typ: r("True") },
+        { json: "Type", js: "Type", typ: r("Type") },
+        { json: "UUID", js: "UUID", typ: r("UUID") },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
+        { json: "YES", js: "YES", typ: r("Yes") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
+        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
+        { json: "string", js: "string", typ: r("String") },
+        { json: "struct", js: "struct", typ: r("Struct") },
+        { json: "subscript", js: "subscript", typ: r("Subscript") },
+        { json: "super", js: "super", typ: r("Super") },
+        { json: "switch", js: "switch", typ: r("Switch") },
+        { json: "symbol", js: "symbol", typ: r("Symbol") },
+        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
+        { json: "system", js: "system", typ: r("System") },
+        { json: "template", js: "template", typ: r("Template") },
+        { json: "then", js: "then", typ: r("Then") },
+        { json: "this", js: "this", typ: r("This") },
+        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
+        { json: "throw", js: "throw", typ: r("Throw") },
+        { json: "throws", js: "throws", typ: r("Throws") },
+        { json: "toString", js: "toString", typ: r("ToString") },
+        { json: "to_json", js: "to_json", typ: r("ToJSON") },
+        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
+        { json: "transient", js: "transient", typ: r("Transient") },
+        { json: "true", js: "true", typ: r("TrueClass") },
+        { json: "try", js: "try", typ: r("Try") },
+        { json: "type", js: "type", typ: r("TypeClass") },
+        { json: "typealias", js: "typealias", typ: r("Typealias") },
+        { json: "typedef", js: "typedef", typ: r("Typedef") },
+        { json: "typeid", js: "typeid", typ: r("Typeid") },
+        { json: "typename", js: "typename", typ: r("Typename") },
+        { json: "typeof", js: "typeof", typ: r("Typeof") },
+        { json: "uint", js: "uint", typ: r("Uint") },
+        { json: "ulong", js: "ulong", typ: r("Ulong") },
+        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
+        { json: "undefined", js: "undefined", typ: r("Undefined") },
+        { json: "union", js: "union", typ: r("Union") },
+        { json: "unowned", js: "unowned", typ: r("Unowned") },
+        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
+        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
+        { json: "ushort", js: "ushort", typ: r("Ushort") },
+        { json: "using", js: "using", typ: r("Using") },
+        { json: "var", js: "var", typ: r("Var") },
+        { json: "virtual", js: "virtual", typ: r("Virtual") },
+        { json: "void", js: "void", typ: r("Void") },
+        { json: "volatile", js: "volatile", typ: r("Volatile") },
+        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
+        { json: "weak", js: "weak", typ: r("Weak") },
+        { json: "where", js: "where", typ: r("Where") },
+        { json: "while", js: "while", typ: r("While") },
+        { json: "willSet", js: "willSet", typ: r("WillSet") },
+        { json: "with", js: "with", typ: r("With") },
+        { json: "xor", js: "xor", typ: r("Xor") },
+        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
+        { json: "yield", js: "yield", typ: r("Yield") },
+    ], false),
+    "StdDeserializer": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    ], false),
+    "StdSerializer": o([
+        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    ], false),
+    "TimeOnly": o([
+        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
+    ], false),
+    "TimeOnlyConverter": o([
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
+    ], false),
+    "True": o([
+        { json: "True", js: "True", typ: i(0) },
+    ], false),
+    "Type": o([
+        { json: "Type", js: "Type", typ: i(0) },
+    ], false),
+    "UUID": o([
+        { json: "UUID", js: "UUID", typ: i(0) },
+    ], false),
+    "Utf8JSONReader": o([
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
+    ], false),
+    "Utf8JSONWriter": o([
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
+    ], false),
+    "Yes": o([
+        { json: "YES", js: "YES", typ: i(0) },
+    ], false),
     "StaticCast": o([
         { json: "static_cast", js: "static_cast", typ: i(0) },
     ], false),
@@ -1389,44 +1427,6 @@ const typeMap = {
     "Undefined": o([
         { json: "undefined", js: "undefined", typ: i(0) },
     ], false),
-    "Obj5": o([
-        { json: "UUID", js: "UUID", typ: r("UUID") },
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
-        { json: "YES", js: "YES", typ: r("Yes") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "union", js: "union", typ: r("Union") },
-        { json: "unowned", js: "unowned", typ: r("Unowned") },
-        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
-        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
-        { json: "ushort", js: "ushort", typ: r("Ushort") },
-        { json: "using", js: "using", typ: r("Using") },
-        { json: "var", js: "var", typ: r("Var") },
-        { json: "virtual", js: "virtual", typ: r("Virtual") },
-        { json: "void", js: "void", typ: r("Void") },
-        { json: "volatile", js: "volatile", typ: r("Volatile") },
-        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
-        { json: "weak", js: "weak", typ: r("Weak") },
-        { json: "where", js: "where", typ: r("Where") },
-        { json: "while", js: "while", typ: r("While") },
-        { json: "willSet", js: "willSet", typ: r("WillSet") },
-        { json: "with", js: "with", typ: r("With") },
-        { json: "xor", js: "xor", typ: r("Xor") },
-        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
-        { json: "yield", js: "yield", typ: r("Yield") },
-    ], false),
-    "UUID": o([
-        { json: "UUID", js: "UUID", typ: i(0) },
-    ], false),
-    "Utf8JSONReader": o([
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
-    ], false),
-    "Utf8JSONWriter": o([
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
-    ], false),
-    "Yes": o([
-        { json: "YES", js: "YES", typ: i(0) },
-    ], false),
     "Union": o([
         { json: "union", js: "union", typ: i(0) },
     ], false),
diff --git a/base/javascript-prop-types/test/inputs/json/priority/keywords.json/default/toplevel.js b/head/javascript-prop-types/test/inputs/json/priority/keywords.json/default/toplevel.js
index 33bf96b..4bf3293 100644
--- a/base/javascript-prop-types/test/inputs/json/priority/keywords.json/default/toplevel.js
+++ b/head/javascript-prop-types/test/inputs/json/priority/keywords.json/default/toplevel.js
@@ -22,8 +22,6 @@ let _CultureInfo;
 let _DateFormatter;
 let _DateOnly;
 let _DateOnlyConverter;
-let _DateTime;
-let _DateTimeStyles;
 let _Empty;
 let _BoolClass;
 let _Complex;
@@ -81,16 +79,18 @@ let _Convert;
 let _Converter;
 let _Date;
 let _DateParseHandling;
-let _Debugger;
-let _Decimal;
-let _Declare;
-let _Decltype;
-let _DecodeString;
 let _Obj2;
+let _DateTime;
+let _DateTimeStyles;
 let _EnumValues;
 let _False;
 let _FormatException;
 let _Imp;
+let _Debugger;
+let _Decimal;
+let _Declare;
+let _Decltype;
+let _DecodeString;
 let _Def;
 let _Default;
 let _Defer;
@@ -144,17 +144,6 @@ let _ID;
 let _If;
 let _Implements;
 let _Implicit;
-let _Import;
-let _In;
-let _Indirect;
-let _Infix;
-let _Init;
-let _Inline;
-let _Inout;
-let _Instanceof;
-let _Int;
-let _Interface;
-let _Internal;
 let _Obj3;
 let _ISODateTimeOffsetConverter;
 let _JSONAny;
@@ -173,12 +162,17 @@ let _NSError;
 let _NSString;
 let _Null;
 let _None;
-let _ObjectMapper;
-let _Protocol;
-let _SerializerProvider;
-let _SimpleModule;
-let _StdDeserializer;
-let _StdSerializer;
+let _Import;
+let _In;
+let _Indirect;
+let _Infix;
+let _Init;
+let _Inline;
+let _Inout;
+let _Instanceof;
+let _Int;
+let _Interface;
+let _Internal;
 let _Is;
 let _Iterable;
 let _Jdec;
@@ -215,6 +209,15 @@ let _Nonmutating;
 let _Not;
 let _NotEq;
 let _NullClass;
+let _Obj4;
+let _ObjectMapper;
+let _Protocol;
+let _RegExp;
+let _Sel;
+let _Self;
+let _SerializerProvider;
+let _SimpleModule;
+let _Standards;
 let _Nullptr;
 let _Number;
 let _Object;
@@ -240,15 +243,6 @@ let _Printf;
 let _Private;
 let _Protected;
 let _ProtocolClass;
-let _Obj4;
-let _RegExp;
-let _Sel;
-let _Self;
-let _Standards;
-let _TimeOnly;
-let _TimeOnlyConverter;
-let _True;
-let _Type;
 let _Public;
 let _Quicktype;
 let _Raise;
@@ -280,6 +274,17 @@ let _Sizeof;
 let _Stackalloc;
 let _Static;
 let _StaticAssert;
+let _Obj5;
+let _StdDeserializer;
+let _StdSerializer;
+let _TimeOnly;
+let _TimeOnlyConverter;
+let _True;
+let _Type;
+let _UUID;
+let _Utf8JSONReader;
+let _Utf8JSONWriter;
+let _Yes;
 let _StaticCast;
 let _Strictfp;
 let _String;
@@ -312,11 +317,6 @@ let _Uint;
 let _Ulong;
 let _Unchecked;
 let _Undefined;
-let _Obj5;
-let _UUID;
-let _Utf8JSONReader;
-let _Utf8JSONWriter;
-let _Yes;
 let _Union;
 let _Unowned;
 let _Unsafe;
@@ -358,12 +358,6 @@ _DateOnly = PropTypes.shape({
 _DateOnlyConverter = PropTypes.shape({
     "DateOnlyConverter": PropTypes.oneOfType([Integer]).isRequired,
 });
-_DateTime = PropTypes.shape({
-    "DateTime": PropTypes.oneOfType([(props, name) => props[name] == null || !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
-});
-_DateTimeStyles = PropTypes.shape({
-    "DateTimeStyles": PropTypes.oneOfType([Integer]).isRequired,
-});
 _Empty = PropTypes.shape({
     "_": PropTypes.oneOfType([Integer]).isRequired,
 });
@@ -535,21 +529,6 @@ _Date = PropTypes.shape({
 _DateParseHandling = PropTypes.shape({
     "date_parse_handling": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Debugger = PropTypes.shape({
-    "debugger": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Decimal = PropTypes.shape({
-    "decimal": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Declare = PropTypes.shape({
-    "declare": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Decltype = PropTypes.shape({
-    "decltype": PropTypes.oneOfType([Integer]).isRequired,
-});
-_DecodeString = PropTypes.shape({
-    "decode_string": PropTypes.oneOfType([Integer]).isRequired,
-});
 _Obj1 = PropTypes.shape({
     "Any": _Any,
     "BOOL": _Bool,
@@ -558,8 +537,6 @@ _Obj1 = PropTypes.shape({
     "DateFormatter": _DateFormatter,
     "DateOnly": _DateOnly,
     "DateOnlyConverter": _DateOnlyConverter,
-    "DateTime": _DateTime,
-    "DateTimeStyles": _DateTimeStyles,
     "_": _Empty,
     "_Bool": _BoolClass,
     "_Complex": _Complex,
@@ -617,13 +594,14 @@ _Obj1 = PropTypes.shape({
     "converter": _Converter,
     "date": _Date,
     "date_parse_handling": _DateParseHandling,
-    "debugger": _Debugger,
-    "decimal": _Decimal,
-    "declare": _Declare,
-    "decltype": _Decltype,
-    "decode_string": _DecodeString,
     "dummy": PropTypes.oneOfType([Integer]).isRequired,
 });
+_DateTime = PropTypes.shape({
+    "DateTime": PropTypes.oneOfType([(props, name) => props[name] == null || !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
+});
+_DateTimeStyles = PropTypes.shape({
+    "DateTimeStyles": PropTypes.oneOfType([Integer]).isRequired,
+});
 _EnumValues = PropTypes.shape({
     "EnumValues": PropTypes.oneOfType([PropTypes.arrayOf(_EnumValue)]).isRequired,
 });
@@ -636,6 +614,21 @@ _FormatException = PropTypes.shape({
 _Imp = PropTypes.shape({
     "IMP": PropTypes.oneOfType([Integer]).isRequired,
 });
+_Debugger = PropTypes.shape({
+    "debugger": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Decimal = PropTypes.shape({
+    "decimal": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Declare = PropTypes.shape({
+    "declare": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Decltype = PropTypes.shape({
+    "decltype": PropTypes.oneOfType([Integer]).isRequired,
+});
+_DecodeString = PropTypes.shape({
+    "decode_string": PropTypes.oneOfType([Integer]).isRequired,
+});
 _Def = PropTypes.shape({
     "def": PropTypes.oneOfType([Integer]).isRequired,
 });
@@ -795,44 +788,18 @@ _Implements = PropTypes.shape({
 _Implicit = PropTypes.shape({
     "implicit": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Import = PropTypes.shape({
-    "import": PropTypes.oneOfType([Integer]).isRequired,
-});
-_In = PropTypes.shape({
-    "in": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Indirect = PropTypes.shape({
-    "indirect": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Infix = PropTypes.shape({
-    "infix": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Init = PropTypes.shape({
-    "init": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Inline = PropTypes.shape({
-    "inline": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Inout = PropTypes.shape({
-    "inout": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Instanceof = PropTypes.shape({
-    "instanceof": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Int = PropTypes.shape({
-    "int": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Interface = PropTypes.shape({
-    "interface": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Internal = PropTypes.shape({
-    "internal": PropTypes.oneOfType([Integer]).isRequired,
-});
 _Obj2 = PropTypes.shape({
+    "DateTime": _DateTime,
+    "DateTimeStyles": _DateTimeStyles,
     "EnumValues": _EnumValues,
     "False": _False,
     "FormatException": _FormatException,
     "IMP": _Imp,
+    "debugger": _Debugger,
+    "decimal": _Decimal,
+    "declare": _Declare,
+    "decltype": _Decltype,
+    "decode_string": _DecodeString,
     "def": _Def,
     "default": _Default,
     "defer": _Defer,
@@ -887,17 +854,6 @@ _Obj2 = PropTypes.shape({
     "if": _If,
     "implements": _Implements,
     "implicit": _Implicit,
-    "import": _Import,
-    "in": _In,
-    "indirect": _Indirect,
-    "infix": _Infix,
-    "init": _Init,
-    "inline": _Inline,
-    "inout": _Inout,
-    "instanceof": _Instanceof,
-    "int": _Int,
-    "interface": _Interface,
-    "internal": _Internal,
 });
 _ISODateTimeOffsetConverter = PropTypes.shape({
     "IsoDateTimeOffsetConverter": PropTypes.oneOfType([Integer]).isRequired,
@@ -950,23 +906,38 @@ _Null = PropTypes.shape({
 _None = PropTypes.shape({
     "None": PropTypes.oneOfType([Integer]).isRequired,
 });
-_ObjectMapper = PropTypes.shape({
-    "ObjectMapper": PropTypes.oneOfType([Integer]).isRequired,
+_Import = PropTypes.shape({
+    "import": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Protocol = PropTypes.shape({
-    "Protocol": PropTypes.oneOfType([Integer]).isRequired,
+_In = PropTypes.shape({
+    "in": PropTypes.oneOfType([Integer]).isRequired,
 });
-_SerializerProvider = PropTypes.shape({
-    "SerializerProvider": PropTypes.oneOfType([Integer]).isRequired,
+_Indirect = PropTypes.shape({
+    "indirect": PropTypes.oneOfType([Integer]).isRequired,
 });
-_SimpleModule = PropTypes.shape({
-    "SimpleModule": PropTypes.oneOfType([Integer]).isRequired,
+_Infix = PropTypes.shape({
+    "infix": PropTypes.oneOfType([Integer]).isRequired,
 });
-_StdDeserializer = PropTypes.shape({
-    "StdDeserializer": PropTypes.oneOfType([Integer]).isRequired,
+_Init = PropTypes.shape({
+    "init": PropTypes.oneOfType([Integer]).isRequired,
 });
-_StdSerializer = PropTypes.shape({
-    "StdSerializer": PropTypes.oneOfType([Integer]).isRequired,
+_Inline = PropTypes.shape({
+    "inline": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Inout = PropTypes.shape({
+    "inout": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Instanceof = PropTypes.shape({
+    "instanceof": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Int = PropTypes.shape({
+    "int": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Interface = PropTypes.shape({
+    "interface": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Internal = PropTypes.shape({
+    "internal": PropTypes.oneOfType([Integer]).isRequired,
 });
 _Is = PropTypes.shape({
     "is": PropTypes.oneOfType([Integer]).isRequired,
@@ -1076,81 +1047,6 @@ _NotEq = PropTypes.shape({
 _NullClass = PropTypes.shape({
     "null": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Nullptr = PropTypes.shape({
-    "nullptr": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Number = PropTypes.shape({
-    "number": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Object = PropTypes.shape({
-    "object": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Of = PropTypes.shape({
-    "of": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Oneway = PropTypes.shape({
-    "oneway": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Open = PropTypes.shape({
-    "open": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Operator = PropTypes.shape({
-    "operator": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Optional = PropTypes.shape({
-    "optional": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Or = PropTypes.shape({
-    "or": PropTypes.oneOfType([Integer]).isRequired,
-});
-_OrEq = PropTypes.shape({
-    "or_eq": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Out = PropTypes.shape({
-    "out": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Override = PropTypes.shape({
-    "override": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Package = PropTypes.shape({
-    "package": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Params = PropTypes.shape({
-    "params": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Pass = PropTypes.shape({
-    "pass": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Port = PropTypes.shape({
-    "port": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Postfix = PropTypes.shape({
-    "postfix": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Precedence = PropTypes.shape({
-    "precedence": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Prefix = PropTypes.shape({
-    "prefix": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Print = PropTypes.shape({
-    "print": PropTypes.oneOfType([Integer]).isRequired,
-});
-_PrintMembers = PropTypes.shape({
-    "printMembers": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Printf = PropTypes.shape({
-    "printf": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Private = PropTypes.shape({
-    "private": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Protected = PropTypes.shape({
-    "protected": PropTypes.oneOfType([Integer]).isRequired,
-});
-_ProtocolClass = PropTypes.shape({
-    "protocol": PropTypes.oneOfType([Integer]).isRequired,
-});
 _Obj3 = PropTypes.shape({
     "IsoDateTimeOffsetConverter": _ISODateTimeOffsetConverter,
     "JSONAny": _JSONAny,
@@ -1169,13 +1065,18 @@ _Obj3 = PropTypes.shape({
     "NSString": _NSString,
     "NULL": _Null,
     "None": _None,
-    "ObjectMapper": _ObjectMapper,
-    "Protocol": _Protocol,
-    "SerializerProvider": _SerializerProvider,
-    "SimpleModule": _SimpleModule,
-    "StdDeserializer": _StdDeserializer,
-    "StdSerializer": _StdSerializer,
     "dummy": PropTypes.oneOfType([Integer]).isRequired,
+    "import": _Import,
+    "in": _In,
+    "indirect": _Indirect,
+    "infix": _Infix,
+    "init": _Init,
+    "inline": _Inline,
+    "inout": _Inout,
+    "instanceof": _Instanceof,
+    "int": _Int,
+    "interface": _Interface,
+    "internal": _Internal,
     "is": _Is,
     "iterable": _Iterable,
     "jdec": _Jdec,
@@ -1212,31 +1113,12 @@ _Obj3 = PropTypes.shape({
     "not": _Not,
     "not_eq": _NotEq,
     "null": _NullClass,
-    "nullptr": _Nullptr,
-    "number": _Number,
-    "object": _Object,
-    "of": _Of,
-    "oneway": _Oneway,
-    "open": _Open,
-    "operator": _Operator,
-    "optional": _Optional,
-    "or": _Or,
-    "or_eq": _OrEq,
-    "out": _Out,
-    "override": _Override,
-    "package": _Package,
-    "params": _Params,
-    "pass": _Pass,
-    "port": _Port,
-    "postfix": _Postfix,
-    "precedence": _Precedence,
-    "prefix": _Prefix,
-    "print": _Print,
-    "printMembers": _PrintMembers,
-    "printf": _Printf,
-    "private": _Private,
-    "protected": _Protected,
-    "protocol": _ProtocolClass,
+});
+_ObjectMapper = PropTypes.shape({
+    "ObjectMapper": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Protocol = PropTypes.shape({
+    "Protocol": PropTypes.oneOfType([Integer]).isRequired,
 });
 _RegExp = PropTypes.shape({
     "RegExp": PropTypes.oneOfType([(props, name) => props[name] == null || /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i.test(props[name]) ? null : new Error("Expected UUID")]).isRequired,
@@ -1247,20 +1129,89 @@ _Sel = PropTypes.shape({
 _Self = PropTypes.shape({
     "Self": PropTypes.oneOfType([Integer]).isRequired,
 });
+_SerializerProvider = PropTypes.shape({
+    "SerializerProvider": PropTypes.oneOfType([Integer]).isRequired,
+});
+_SimpleModule = PropTypes.shape({
+    "SimpleModule": PropTypes.oneOfType([Integer]).isRequired,
+});
 _Standards = PropTypes.shape({
     "Standards": PropTypes.oneOfType([Integer]).isRequired,
 });
-_TimeOnly = PropTypes.shape({
-    "TimeOnly": PropTypes.oneOfType([Integer]).isRequired,
+_Nullptr = PropTypes.shape({
+    "nullptr": PropTypes.oneOfType([Integer]).isRequired,
 });
-_TimeOnlyConverter = PropTypes.shape({
-    "TimeOnlyConverter": PropTypes.oneOfType([Integer]).isRequired,
+_Number = PropTypes.shape({
+    "number": PropTypes.oneOfType([Integer]).isRequired,
 });
-_True = PropTypes.shape({
-    "True": PropTypes.oneOfType([Integer]).isRequired,
+_Object = PropTypes.shape({
+    "object": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Type = PropTypes.shape({
-    "Type": PropTypes.oneOfType([Integer]).isRequired,
+_Of = PropTypes.shape({
+    "of": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Oneway = PropTypes.shape({
+    "oneway": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Open = PropTypes.shape({
+    "open": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Operator = PropTypes.shape({
+    "operator": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Optional = PropTypes.shape({
+    "optional": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Or = PropTypes.shape({
+    "or": PropTypes.oneOfType([Integer]).isRequired,
+});
+_OrEq = PropTypes.shape({
+    "or_eq": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Out = PropTypes.shape({
+    "out": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Override = PropTypes.shape({
+    "override": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Package = PropTypes.shape({
+    "package": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Params = PropTypes.shape({
+    "params": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Pass = PropTypes.shape({
+    "pass": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Port = PropTypes.shape({
+    "port": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Postfix = PropTypes.shape({
+    "postfix": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Precedence = PropTypes.shape({
+    "precedence": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Prefix = PropTypes.shape({
+    "prefix": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Print = PropTypes.shape({
+    "print": PropTypes.oneOfType([Integer]).isRequired,
+});
+_PrintMembers = PropTypes.shape({
+    "printMembers": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Printf = PropTypes.shape({
+    "printf": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Private = PropTypes.shape({
+    "private": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Protected = PropTypes.shape({
+    "protected": PropTypes.oneOfType([Integer]).isRequired,
+});
+_ProtocolClass = PropTypes.shape({
+    "protocol": PropTypes.oneOfType([Integer]).isRequired,
 });
 _Public = PropTypes.shape({
     "public": PropTypes.oneOfType([Integer]).isRequired,
@@ -1355,6 +1306,103 @@ _Static = PropTypes.shape({
 _StaticAssert = PropTypes.shape({
     "static_assert": PropTypes.oneOfType([Integer]).isRequired,
 });
+_Obj4 = PropTypes.shape({
+    "ObjectMapper": _ObjectMapper,
+    "Protocol": _Protocol,
+    "RegExp": _RegExp,
+    "SEL": _Sel,
+    "Self": _Self,
+    "SerializerProvider": _SerializerProvider,
+    "SimpleModule": _SimpleModule,
+    "Standards": _Standards,
+    "dummy": PropTypes.oneOfType([Integer]).isRequired,
+    "nullptr": _Nullptr,
+    "number": _Number,
+    "object": _Object,
+    "of": _Of,
+    "oneway": _Oneway,
+    "open": _Open,
+    "operator": _Operator,
+    "optional": _Optional,
+    "or": _Or,
+    "or_eq": _OrEq,
+    "out": _Out,
+    "override": _Override,
+    "package": _Package,
+    "params": _Params,
+    "pass": _Pass,
+    "port": _Port,
+    "postfix": _Postfix,
+    "precedence": _Precedence,
+    "prefix": _Prefix,
+    "print": _Print,
+    "printMembers": _PrintMembers,
+    "printf": _Printf,
+    "private": _Private,
+    "protected": _Protected,
+    "protocol": _ProtocolClass,
+    "public": _Public,
+    "quicktype": _Quicktype,
+    "raise": _Raise,
+    "range": _Range,
+    "readonly": _Readonly,
+    "ref": _Ref,
+    "register": _Register,
+    "reinterpret_cast": _ReinterpretCast,
+    "repeat": _Repeat,
+    "require": _Require,
+    "required": _Required,
+    "requires": _Requires,
+    "restrict": _Restrict,
+    "retain": _Retain,
+    "rethrows": _Rethrows,
+    "return": _Return,
+    "right": _Right,
+    "runtimeType": _RuntimeType,
+    "s": _S,
+    "sbyte": _Sbyte,
+    "sealed": _Sealed,
+    "select": _Select,
+    "self": _SelfClass,
+    "serialize": _Serialize,
+    "set": _Set,
+    "short": _Short,
+    "signed": _Signed,
+    "sizeof": _Sizeof,
+    "stackalloc": _Stackalloc,
+    "static": _Static,
+    "static_assert": _StaticAssert,
+});
+_StdDeserializer = PropTypes.shape({
+    "StdDeserializer": PropTypes.oneOfType([Integer]).isRequired,
+});
+_StdSerializer = PropTypes.shape({
+    "StdSerializer": PropTypes.oneOfType([Integer]).isRequired,
+});
+_TimeOnly = PropTypes.shape({
+    "TimeOnly": PropTypes.oneOfType([Integer]).isRequired,
+});
+_TimeOnlyConverter = PropTypes.shape({
+    "TimeOnlyConverter": PropTypes.oneOfType([Integer]).isRequired,
+});
+_True = PropTypes.shape({
+    "True": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Type = PropTypes.shape({
+    "Type": PropTypes.oneOfType([Integer]).isRequired,
+});
+_UUID = PropTypes.shape({
+    "UUID": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Utf8JSONReader = PropTypes.shape({
+    "Utf8JsonReader": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Utf8JSONWriter = PropTypes.shape({
+    "Utf8JsonWriter": PropTypes.oneOfType([Integer]).isRequired,
+});
+_Yes = PropTypes.shape({
+    "YES": PropTypes.oneOfType([Integer]).isRequired,
+});
 _StaticCast = PropTypes.shape({
     "static_cast": PropTypes.oneOfType([Integer]).isRequired,
 });
@@ -1451,92 +1499,6 @@ _Unchecked = PropTypes.shape({
 _Undefined = PropTypes.shape({
     "undefined": PropTypes.oneOfType([Integer]).isRequired,
 });
-_Obj4 = PropTypes.shape({
-    "RegExp": _RegExp,
-    "SEL": _Sel,
-    "Self": _Self,
-    "Standards": _Standards,
-    "TimeOnly": _TimeOnly,
-    "TimeOnlyConverter": _TimeOnlyConverter,
-    "True": _True,
-    "Type": _Type,
-    "dummy": PropTypes.oneOfType([Integer]).isRequired,
-    "public": _Public,
-    "quicktype": _Quicktype,
-    "raise": _Raise,
-    "range": _Range,
-    "readonly": _Readonly,
-    "ref": _Ref,
-    "register": _Register,
-    "reinterpret_cast": _ReinterpretCast,
-    "repeat": _Repeat,
-    "require": _Require,
-    "required": _Required,
-    "requires": _Requires,
-    "restrict": _Restrict,
-    "retain": _Retain,
-    "rethrows": _Rethrows,
-    "return": _Return,
-    "right": _Right,
-    "runtimeType": _RuntimeType,
-    "s": _S,
-    "sbyte": _Sbyte,
-    "sealed": _Sealed,
-    "select": _Select,
-    "self": _SelfClass,
-    "serialize": _Serialize,
-    "set": _Set,
-    "short": _Short,
-    "signed": _Signed,
-    "sizeof": _Sizeof,
-    "stackalloc": _Stackalloc,
-    "static": _Static,
-    "static_assert": _StaticAssert,
-    "static_cast": _StaticCast,
-    "strictfp": _Strictfp,
-    "string": _String,
-    "struct": _Struct,
-    "subscript": _Subscript,
-    "super": _Super,
-    "switch": _Switch,
-    "symbol": _Symbol,
-    "synchronized": _Synchronized,
-    "system": _System,
-    "template": _Template,
-    "then": _Then,
-    "this": _This,
-    "thread_local": _ThreadLocal,
-    "throw": _Throw,
-    "throws": _Throws,
-    "toString": _ToString,
-    "to_json": _ToJSON,
-    "top_level": _TopLevelClass,
-    "transient": _Transient,
-    "true": _TrueClass,
-    "try": _Try,
-    "type": _TypeClass,
-    "typealias": _Typealias,
-    "typedef": _Typedef,
-    "typeid": _Typeid,
-    "typename": _Typename,
-    "typeof": _Typeof,
-    "uint": _Uint,
-    "ulong": _Ulong,
-    "unchecked": _Unchecked,
-    "undefined": _Undefined,
-});
-_UUID = PropTypes.shape({
-    "UUID": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Utf8JSONReader = PropTypes.shape({
-    "Utf8JsonReader": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Utf8JSONWriter = PropTypes.shape({
-    "Utf8JsonWriter": PropTypes.oneOfType([Integer]).isRequired,
-});
-_Yes = PropTypes.shape({
-    "YES": PropTypes.oneOfType([Integer]).isRequired,
-});
 _Union = PropTypes.shape({
     "union": PropTypes.oneOfType([Integer]).isRequired,
 });
@@ -1595,11 +1557,49 @@ _Yield = PropTypes.shape({
     "yield": PropTypes.oneOfType([Integer]).isRequired,
 });
 _Obj5 = PropTypes.shape({
+    "StdDeserializer": _StdDeserializer,
+    "StdSerializer": _StdSerializer,
+    "TimeOnly": _TimeOnly,
+    "TimeOnlyConverter": _TimeOnlyConverter,
+    "True": _True,
+    "Type": _Type,
     "UUID": _UUID,
     "Utf8JsonReader": _Utf8JSONReader,
     "Utf8JsonWriter": _Utf8JSONWriter,
     "YES": _Yes,
     "dummy": PropTypes.oneOfType([Integer]).isRequired,
+    "static_cast": _StaticCast,
+    "strictfp": _Strictfp,
+    "string": _String,
+    "struct": _Struct,
+    "subscript": _Subscript,
+    "super": _Super,
+    "switch": _Switch,
+    "symbol": _Symbol,
+    "synchronized": _Synchronized,
+    "system": _System,
+    "template": _Template,
+    "then": _Then,
+    "this": _This,
+    "thread_local": _ThreadLocal,
+    "throw": _Throw,
+    "throws": _Throws,
+    "toString": _ToString,
+    "to_json": _ToJSON,
+    "top_level": _TopLevelClass,
+    "transient": _Transient,
+    "true": _TrueClass,
+    "try": _Try,
+    "type": _TypeClass,
+    "typealias": _Typealias,
+    "typedef": _Typedef,
+    "typeid": _Typeid,
+    "typename": _Typename,
+    "typeof": _Typeof,
+    "uint": _Uint,
+    "ulong": _Ulong,
+    "unchecked": _Unchecked,
+    "undefined": _Undefined,
     "union": _Union,
     "unowned": _Unowned,
     "unsafe": _Unsafe,
diff --git a/base/kotlin/test/inputs/json/priority/keywords.json/default/TopLevel.kt b/head/kotlin/test/inputs/json/priority/keywords.json/default/TopLevel.kt
index 5080edd..781cc94 100644
--- a/base/kotlin/test/inputs/json/priority/keywords.json/default/TopLevel.kt
+++ b/head/kotlin/test/inputs/json/priority/keywords.json/default/TopLevel.kt
@@ -135,20 +135,6 @@ data class Obj1 (
     @Json(name = "date_parse_handling")
     val dateParseHandling: DateParseHandling,
 
-    @Json(name = "DateTime")
-    val dateTime: DateTime,
-
-    @Json(name = "DateTimeStyles")
-    val dateTimeStyles: DateTimeStyles,
-
-    val debugger: Debugger,
-    val decimal: Decimal,
-    val declare: Declare,
-    val decltype: Decltype,
-
-    @Json(name = "decode_string")
-    val decodeString: DecodeString,
-
     val dummy: Long,
 
     @Json(name = "_")
@@ -416,37 +402,6 @@ data class DateParseHandling (
     val dateParseHandling: Long
 )
 
-data class DateTime (
-    @Json(name = "DateTime")
-    val dateTime: OffsetDateTime
-)
-
-data class DateTimeStyles (
-    @Json(name = "DateTimeStyles")
-    val dateTimeStyles: Long
-)
-
-data class Debugger (
-    val debugger: Long
-)
-
-data class Decimal (
-    val decimal: Long
-)
-
-data class Declare (
-    val declare: Long
-)
-
-data class Decltype (
-    val decltype: Long
-)
-
-data class DecodeString (
-    @Json(name = "decode_string")
-    val decodeString: Long
-)
-
 data class Empty (
     @Json(name = "_")
     val empty: Long
@@ -496,6 +451,20 @@ data class Obj1Class (
 )
 
 data class Obj2 (
+    @Json(name = "DateTime")
+    val dateTime: DateTime,
+
+    @Json(name = "DateTimeStyles")
+    val dateTimeStyles: DateTimeStyles,
+
+    val debugger: Debugger,
+    val decimal: Decimal,
+    val declare: Declare,
+    val decltype: Decltype,
+
+    @Json(name = "decode_string")
+    val decodeString: DecodeString,
+
     val def: Def,
     val default: Default,
     val defer: Defer,
@@ -566,15 +535,6 @@ data class Obj2 (
 
     val implements: Implements,
     val implicit: Implicit,
-    val import: Import,
-    val indirect: Indirect,
-    val infix: Infix,
-    val init: Init,
-    val inline: Inline,
-    val inout: Inout,
-    val instanceof: Instanceof,
-    val int: IntClass,
-    val internal: Internal,
 
     @Json(name = "do")
     val obj2Do: Do,
@@ -591,16 +551,41 @@ data class Obj2 (
     @Json(name = "if")
     val obj2If: If,
 
-    @Json(name = "in")
-    val obj2In: In,
-
-    @Json(name = "interface")
-    val obj2Interface: Interface,
-
     @Json(name = "false")
     val purpleFalse: FalseClass
 )
 
+data class DateTime (
+    @Json(name = "DateTime")
+    val dateTime: OffsetDateTime
+)
+
+data class DateTimeStyles (
+    @Json(name = "DateTimeStyles")
+    val dateTimeStyles: Long
+)
+
+data class Debugger (
+    val debugger: Long
+)
+
+data class Decimal (
+    val decimal: Long
+)
+
+data class Declare (
+    val declare: Long
+)
+
+data class Decltype (
+    val decltype: Long
+)
+
+data class DecodeString (
+    @Json(name = "decode_string")
+    val decodeString: Long
+)
+
 data class Def (
     val def: Long
 )
@@ -824,42 +809,6 @@ data class Implicit (
     val implicit: Long
 )
 
-data class Import (
-    val import: Long
-)
-
-data class Indirect (
-    val indirect: Long
-)
-
-data class Infix (
-    val infix: Long
-)
-
-data class Init (
-    val init: Long
-)
-
-data class Inline (
-    val inline: Long
-)
-
-data class Inout (
-    val inout: Long
-)
-
-data class Instanceof (
-    val instanceof: Long
-)
-
-data class IntClass (
-    val int: Long
-)
-
-data class Internal (
-    val internal: Long
-)
-
 data class Do (
     @Json(name = "do")
     val doDo: Long
@@ -885,16 +834,6 @@ data class If (
     val ifIf: Long
 )
 
-data class In (
-    @Json(name = "in")
-    val inIn: Long
-)
-
-data class Interface (
-    @Json(name = "interface")
-    val interfaceInterface: Long
-)
-
 data class FalseClass (
     @Json(name = "false")
     val falseFalse: Long
@@ -902,6 +841,15 @@ data class FalseClass (
 
 data class Obj3 (
     val dummy: Long,
+    val import: Import,
+    val indirect: Indirect,
+    val infix: Infix,
+    val init: Init,
+    val inline: Inline,
+    val inout: Inout,
+    val instanceof: Instanceof,
+    val int: IntClass,
+    val internal: Internal,
 
     @Json(name = "IsoDateTimeOffsetConverter")
     val isoDateTimeOffsetConverter: ISODateTimeOffsetConverter,
@@ -1001,8 +949,11 @@ data class Obj3 (
     @Json(name = "NSString")
     val nsString: NSString,
 
-    val nullptr: Nullptr,
-    val number: Number,
+    @Json(name = "in")
+    val obj3In: In,
+
+    @Json(name = "interface")
+    val obj3Interface: Interface,
 
     @Json(name = "is")
     val obj3Is: Is,
@@ -1014,58 +965,43 @@ data class Obj3 (
     val obj3None: NoneClass,
 
     @Json(name = "null")
-    val obj3Null: NullClass,
-
-    @Json(name = "object")
-    val obj3Object: Object,
-
-    @Json(name = "package")
-    val obj3Package: Package,
-
-    @Json(name = "protocol")
-    val obj3Protocol: ProtocolClass,
+    val obj3Null: NullClass
+)
 
-    @Json(name = "ObjectMapper")
-    val objectMapper: ObjectMapper,
+data class Import (
+    val import: Long
+)
 
-    val of: Of,
-    val oneway: Oneway,
-    val open: Open,
-    val operator: Operator,
-    val optional: Optional,
-    val or: Or,
+data class Indirect (
+    val indirect: Long
+)
 
-    @Json(name = "or_eq")
-    val orEq: OrEq,
+data class Infix (
+    val infix: Long
+)
 
-    val out: Out,
-    val override: Override,
-    val params: Params,
-    val pass: Pass,
-    val port: Port,
-    val postfix: Postfix,
-    val precedence: Precedence,
-    val prefix: Prefix,
-    val print: Print,
-    val printMembers: PrintMembers,
-    val printf: Printf,
-    val private: Private,
-    val protected: Protected,
+data class Init (
+    val init: Long
+)
 
-    @Json(name = "Protocol")
-    val protocol: Protocol,
+data class Inline (
+    val inline: Long
+)
 
-    @Json(name = "SerializerProvider")
-    val serializerProvider: SerializerProvider,
+data class Inout (
+    val inout: Long
+)
 
-    @Json(name = "SimpleModule")
-    val simpleModule: SimpleModule,
+data class Instanceof (
+    val instanceof: Long
+)
 
-    @Json(name = "StdDeserializer")
-    val stdDeserializer: StdDeserializer,
+data class IntClass (
+    val int: Long
+)
 
-    @Json(name = "StdSerializer")
-    val stdSerializer: StdSerializer
+data class Internal (
+    val internal: Long
 )
 
 data class ISODateTimeOffsetConverter (
@@ -1286,12 +1222,14 @@ data class NSString (
     val nsString: Long
 )
 
-data class Nullptr (
-    val nullptr: Long
+data class In (
+    @Json(name = "in")
+    val inIn: Long
 )
 
-data class Number (
-    val number: Long
+data class Interface (
+    @Json(name = "interface")
+    val interfaceInterface: Long
 )
 
 data class Is (
@@ -1313,133 +1251,19 @@ data class NullClass (
     val nullNull: Long
 )
 
-data class Object (
+data class Obj4 (
+    val dummy: Long,
+    val nullptr: Nullptr,
+    val number: Number,
+
     @Json(name = "object")
-    val objectObject: Long
-)
+    val obj4Object: Object,
 
-data class Package (
     @Json(name = "package")
-    val packagePackage: Long
-)
+    val obj4Package: Package,
 
-data class ProtocolClass (
-    val protocol: Long
-)
-
-data class ObjectMapper (
-    @Json(name = "ObjectMapper")
-    val objectMapper: Long
-)
-
-data class Of (
-    val of: Long
-)
-
-data class Oneway (
-    val oneway: Long
-)
-
-data class Open (
-    val open: Long
-)
-
-data class Operator (
-    val operator: Long
-)
-
-data class Optional (
-    val optional: Long
-)
-
-data class Or (
-    val or: Long
-)
-
-data class OrEq (
-    @Json(name = "or_eq")
-    val orEq: Long
-)
-
-data class Out (
-    val out: Long
-)
-
-data class Override (
-    val override: Long
-)
-
-data class Params (
-    val params: Long
-)
-
-data class Pass (
-    val pass: Long
-)
-
-data class Port (
-    val port: Long
-)
-
-data class Postfix (
-    val postfix: Long
-)
-
-data class Precedence (
-    val precedence: Long
-)
-
-data class Prefix (
-    val prefix: Long
-)
-
-data class Print (
-    val print: Long
-)
-
-data class PrintMembers (
-    val printMembers: Long
-)
-
-data class Printf (
-    val printf: Long
-)
-
-data class Private (
-    val private: Long
-)
-
-data class Protected (
-    val protected: Long
-)
-
-data class Protocol (
-    @Json(name = "Protocol")
-    val protocol: Long
-)
-
-data class SerializerProvider (
-    @Json(name = "SerializerProvider")
-    val serializerProvider: Long
-)
-
-data class SimpleModule (
-    @Json(name = "SimpleModule")
-    val simpleModule: Long
-)
-
-data class StdDeserializer (
-    @Json(name = "StdDeserializer")
-    val stdDeserializer: Long
-)
-
-data class StdSerializer (
-    @Json(name = "StdSerializer")
-    val stdSerializer: Long
-)
-
-data class Obj4 (
-    val dummy: Long,
+    @Json(name = "protocol")
+    val obj4Protocol: ProtocolClass,
 
     @Json(name = "return")
     val obj4Return: Return,
@@ -1447,35 +1271,37 @@ data class Obj4 (
     @Json(name = "self")
     val obj4Self: SelfClass,
 
-    @Json(name = "super")
-    val obj4Super: Super,
-
-    @Json(name = "this")
-    val obj4This: This,
-
-    @Json(name = "throw")
-    val obj4Throw: Throw,
-
-    @Json(name = "True")
-    val obj4True: True,
+    @Json(name = "ObjectMapper")
+    val objectMapper: ObjectMapper,
 
-    @Json(name = "try")
-    val obj4Try: Try,
+    val of: Of,
+    val oneway: Oneway,
+    val open: Open,
+    val operator: Operator,
+    val optional: Optional,
+    val or: Or,
 
-    @Json(name = "type")
-    val obj4Type: TypeClass,
+    @Json(name = "or_eq")
+    val orEq: OrEq,
 
-    @Json(name = "typealias")
-    val obj4Typealias: Typealias,
+    val out: Out,
+    val override: Override,
+    val params: Params,
+    val pass: Pass,
+    val port: Port,
+    val postfix: Postfix,
+    val precedence: Precedence,
+    val prefix: Prefix,
+    val print: Print,
+    val printMembers: PrintMembers,
+    val printf: Printf,
+    val private: Private,
+    val protected: Protected,
 
-    @Json(name = "typeof")
-    val obj4Typeof: Typeof,
+    @Json(name = "Protocol")
+    val protocol: Protocol,
 
     val public: Public,
-
-    @Json(name = "true")
-    val purpleTrue: TrueClass,
-
     val quicktype: Quicktype,
     val raise: Raise,
     val range: Range,
@@ -1512,9 +1338,17 @@ data class Obj4 (
     val self: Self,
 
     val serialize: Serialize,
+
+    @Json(name = "SerializerProvider")
+    val serializerProvider: SerializerProvider,
+
     val set: Set,
     val short: ShortClass,
     val signed: Signed,
+
+    @Json(name = "SimpleModule")
+    val simpleModule: SimpleModule,
+
     val sizeof: Sizeof,
     val stackalloc: Stackalloc,
 
@@ -1524,110 +1358,133 @@ data class Obj4 (
     val static: Static,
 
     @Json(name = "static_assert")
-    val staticAssert: StaticAssert,
+    val staticAssert: StaticAssert
+)
 
-    @Json(name = "static_cast")
-    val staticCast: StaticCast,
+data class Nullptr (
+    val nullptr: Long
+)
 
-    val strictfp: Strictfp,
-    val string: StringClass,
-    val struct: Struct,
-    val subscript: Subscript,
-    val switch: Switch,
-    val symbol: Symbol,
-    val synchronized: Synchronized,
-    val system: SystemClass,
-    val template: Template,
-    val then: Then,
+data class Number (
+    val number: Long
+)
 
-    @Json(name = "thread_local")
-    val threadLocal: ThreadLocal,
+data class Object (
+    @Json(name = "object")
+    val objectObject: Long
+)
 
-    val throws: Throws,
+data class Package (
+    @Json(name = "package")
+    val packagePackage: Long
+)
 
-    @Json(name = "TimeOnly")
-    val timeOnly: TimeOnly,
+data class ProtocolClass (
+    val protocol: Long
+)
 
-    @Json(name = "TimeOnlyConverter")
-    val timeOnlyConverter: TimeOnlyConverter,
+data class Return (
+    @Json(name = "return")
+    val returnReturn: Long
+)
 
-    @Json(name = "to_json")
-    val toJSON: ToJSON,
+data class SelfClass (
+    val self: Long
+)
 
-    val toString: ToString,
+data class ObjectMapper (
+    @Json(name = "ObjectMapper")
+    val objectMapper: Long
+)
 
-    @Json(name = "top_level")
-    val topLevel: TopLevelClass,
+data class Of (
+    val of: Long
+)
 
-    val transient: Transient,
+data class Oneway (
+    val oneway: Long
+)
 
-    @Json(name = "Type")
-    val type: Type,
+data class Open (
+    val open: Long
+)
 
-    val typedef: Typedef,
-    val typeid: Typeid,
-    val typename: Typename,
-    val uint: Uint,
-    val ulong: Ulong,
-    val unchecked: Unchecked,
-    val undefined: Undefined
+data class Operator (
+    val operator: Long
 )
 
-data class Return (
-    @Json(name = "return")
-    val returnReturn: Long
+data class Optional (
+    val optional: Long
 )
 
-data class SelfClass (
-    val self: Long
+data class Or (
+    val or: Long
 )
 
-data class Super (
-    @Json(name = "super")
-    val superSuper: Long
+data class OrEq (
+    @Json(name = "or_eq")
+    val orEq: Long
 )
 
-data class This (
-    @Json(name = "this")
-    val thisThis: Long
+data class Out (
+    val out: Long
 )
 
-data class Throw (
-    @Json(name = "throw")
-    val throwThrow: Long
+data class Override (
+    val override: Long
 )
 
-data class True (
-    @Json(name = "True")
-    val trueTrue: Long
+data class Params (
+    val params: Long
 )
 
-data class Try (
-    @Json(name = "try")
-    val tryTry: Long
+data class Pass (
+    val pass: Long
 )
 
-data class TypeClass (
-    val type: Long
+data class Port (
+    val port: Long
 )
 
-data class Typealias (
-    @Json(name = "typealias")
-    val typealiasTypealias: Long
+data class Postfix (
+    val postfix: Long
 )
 
-data class Typeof (
-    @Json(name = "typeof")
-    val typeofTypeof: Long
+data class Precedence (
+    val precedence: Long
+)
+
+data class Prefix (
+    val prefix: Long
+)
+
+data class Print (
+    val print: Long
+)
+
+data class PrintMembers (
+    val printMembers: Long
+)
+
+data class Printf (
+    val printf: Long
+)
+
+data class Private (
+    val private: Long
+)
+
+data class Protected (
+    val protected: Long
 )
 
-data class Public (
-    val public: Long
+data class Protocol (
+    @Json(name = "Protocol")
+    val protocol: Long
 )
 
-data class TrueClass (
-    @Json(name = "true")
-    val trueTrue: Long
+data class Public (
+    val public: Long
 )
 
 data class Quicktype (
@@ -1730,6 +1587,11 @@ data class Serialize (
     val serialize: Long
 )
 
+data class SerializerProvider (
+    @Json(name = "SerializerProvider")
+    val serializerProvider: Long
+)
+
 data class Set (
     val set: Long
 )
@@ -1742,6 +1604,11 @@ data class Signed (
     val signed: Long
 )
 
+data class SimpleModule (
+    @Json(name = "SimpleModule")
+    val simpleModule: Long
+)
+
 data class Sizeof (
     val sizeof: Long
 )
@@ -1764,11 +1631,200 @@ data class StaticAssert (
     val staticAssert: Long
 )
 
+data class Obj5 (
+    val dummy: Long,
+
+    @Json(name = "super")
+    val obj5Super: Super,
+
+    @Json(name = "this")
+    val obj5This: This,
+
+    @Json(name = "throw")
+    val obj5Throw: Throw,
+
+    @Json(name = "True")
+    val obj5True: True,
+
+    @Json(name = "try")
+    val obj5Try: Try,
+
+    @Json(name = "type")
+    val obj5Type: TypeClass,
+
+    @Json(name = "typealias")
+    val obj5Typealias: Typealias,
+
+    @Json(name = "typeof")
+    val obj5Typeof: Typeof,
+
+    @Json(name = "var")
+    val obj5Var: Var,
+
+    @Json(name = "while")
+    val obj5While: While,
+
+    @Json(name = "true")
+    val purpleTrue: TrueClass,
+
+    @Json(name = "static_cast")
+    val staticCast: StaticCast,
+
+    @Json(name = "StdDeserializer")
+    val stdDeserializer: StdDeserializer,
+
+    @Json(name = "StdSerializer")
+    val stdSerializer: StdSerializer,
+
+    val strictfp: Strictfp,
+    val string: StringClass,
+    val struct: Struct,
+    val subscript: Subscript,
+    val switch: Switch,
+    val symbol: Symbol,
+    val synchronized: Synchronized,
+    val system: SystemClass,
+    val template: Template,
+    val then: Then,
+
+    @Json(name = "thread_local")
+    val threadLocal: ThreadLocal,
+
+    val throws: Throws,
+
+    @Json(name = "TimeOnly")
+    val timeOnly: TimeOnly,
+
+    @Json(name = "TimeOnlyConverter")
+    val timeOnlyConverter: TimeOnlyConverter,
+
+    @Json(name = "to_json")
+    val toJSON: ToJSON,
+
+    val toString: ToString,
+
+    @Json(name = "top_level")
+    val topLevel: TopLevelClass,
+
+    val transient: Transient,
+
+    @Json(name = "Type")
+    val type: Type,
+
+    val typedef: Typedef,
+    val typeid: Typeid,
+    val typename: Typename,
+    val uint: Uint,
+    val ulong: Ulong,
+    val unchecked: Unchecked,
+    val undefined: Undefined,
+    val union: Union,
+    val unowned: Unowned,
+    val unsafe: Unsafe,
+    val unsigned: Unsigned,
+    val ushort: Ushort,
+    val using: Using,
+
+    @Json(name = "Utf8JsonReader")
+    val utf8JSONReader: Utf8JSONReader,
+
+    @Json(name = "Utf8JsonWriter")
+    val utf8JSONWriter: Utf8JSONWriter,
+
+    @Json(name = "UUID")
+    val uuid: UUID,
+
+    val virtual: Virtual,
+    val void: Void,
+    val volatile: Volatile,
+
+    @Json(name = "wchar_t")
+    val wcharT: WcharT,
+
+    val weak: Weak,
+    val where: Where,
+    val willSet: WillSet,
+    val with: With,
+    val xor: Xor,
+
+    @Json(name = "xor_eq")
+    val xorEq: XorEq,
+
+    @Json(name = "YES")
+    val yes: Yes,
+
+    val yield: Yield
+)
+
+data class Super (
+    @Json(name = "super")
+    val superSuper: Long
+)
+
+data class This (
+    @Json(name = "this")
+    val thisThis: Long
+)
+
+data class Throw (
+    @Json(name = "throw")
+    val throwThrow: Long
+)
+
+data class True (
+    @Json(name = "True")
+    val trueTrue: Long
+)
+
+data class Try (
+    @Json(name = "try")
+    val tryTry: Long
+)
+
+data class TypeClass (
+    val type: Long
+)
+
+data class Typealias (
+    @Json(name = "typealias")
+    val typealiasTypealias: Long
+)
+
+data class Typeof (
+    @Json(name = "typeof")
+    val typeofTypeof: Long
+)
+
+data class Var (
+    @Json(name = "var")
+    val varVar: Long
+)
+
+data class While (
+    @Json(name = "while")
+    val whileWhile: Long
+)
+
+data class TrueClass (
+    @Json(name = "true")
+    val trueTrue: Long
+)
+
 data class StaticCast (
     @Json(name = "static_cast")
     val staticCast: Long
 )
 
+data class StdDeserializer (
+    @Json(name = "StdDeserializer")
+    val stdDeserializer: Long
+)
+
+data class StdSerializer (
+    @Json(name = "StdSerializer")
+    val stdSerializer: Long
+)
+
 data class Strictfp (
     val strictfp: Long
 )
@@ -1879,63 +1935,6 @@ data class Undefined (
     val undefined: Long
 )
 
-data class Obj5 (
-    val dummy: Long,
-
-    @Json(name = "var")
-    val obj5Var: Var,
-
-    @Json(name = "while")
-    val obj5While: While,
-
-    val union: Union,
-    val unowned: Unowned,
-    val unsafe: Unsafe,
-    val unsigned: Unsigned,
-    val ushort: Ushort,
-    val using: Using,
-
-    @Json(name = "Utf8JsonReader")
-    val utf8JSONReader: Utf8JSONReader,
-
-    @Json(name = "Utf8JsonWriter")
-    val utf8JSONWriter: Utf8JSONWriter,
-
-    @Json(name = "UUID")
-    val uuid: UUID,
-
-    val virtual: Virtual,
-    val void: Void,
-    val volatile: Volatile,
-
-    @Json(name = "wchar_t")
-    val wcharT: WcharT,
-
-    val weak: Weak,
-    val where: Where,
-    val willSet: WillSet,
-    val with: With,
-    val xor: Xor,
-
-    @Json(name = "xor_eq")
-    val xorEq: XorEq,
-
-    @Json(name = "YES")
-    val yes: Yes,
-
-    val yield: Yield
-)
-
-data class Var (
-    @Json(name = "var")
-    val varVar: Long
-)
-
-data class While (
-    @Json(name = "while")
-    val whileWhile: Long
-)
-
 data class Union (
     val union: Long
 )
diff --git a/base/kotlin-jackson/test/inputs/json/priority/keywords.json/default/TopLevel.kt b/head/kotlin-jackson/test/inputs/json/priority/keywords.json/default/TopLevel.kt
index 575001c..07e3f22 100644
--- a/base/kotlin-jackson/test/inputs/json/priority/keywords.json/default/TopLevel.kt
+++ b/head/kotlin-jackson/test/inputs/json/priority/keywords.json/default/TopLevel.kt
@@ -223,27 +223,6 @@ data class Obj1 (
     @get:JsonProperty("date_parse_handling", required=true)@field:JsonProperty("date_parse_handling", required=true)
     val dateParseHandling: DateParseHandling,
 
-    @get:JsonProperty("DateTime", required=true)@field:JsonProperty("DateTime", required=true)
-    val dateTime: DateTime,
-
-    @get:JsonProperty("DateTimeStyles", required=true)@field:JsonProperty("DateTimeStyles", required=true)
-    val dateTimeStyles: DateTimeStyles,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val debugger: Debugger,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val decimal: Decimal,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val declare: Declare,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val decltype: Decltype,
-
-    @get:JsonProperty("decode_string", required=true)@field:JsonProperty("decode_string", required=true)
-    val decodeString: DecodeString,
-
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val dummy: Long,
 
@@ -548,41 +527,6 @@ data class DateParseHandling (
     val dateParseHandling: Long
 )
 
-data class DateTime (
-    @get:JsonProperty("DateTime", required=true)@field:JsonProperty("DateTime", required=true)
-    val dateTime: OffsetDateTime
-)
-
-data class DateTimeStyles (
-    @get:JsonProperty("DateTimeStyles", required=true)@field:JsonProperty("DateTimeStyles", required=true)
-    val dateTimeStyles: Long
-)
-
-data class Debugger (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val debugger: Long
-)
-
-data class Decimal (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val decimal: Long
-)
-
-data class Declare (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val declare: Long
-)
-
-data class Decltype (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val decltype: Long
-)
-
-data class DecodeString (
-    @get:JsonProperty("decode_string", required=true)@field:JsonProperty("decode_string", required=true)
-    val decodeString: Long
-)
-
 data class Empty (
     @get:JsonProperty("_", required=true)@field:JsonProperty("_", required=true)
     val empty: Long
@@ -634,6 +578,27 @@ data class Obj1Class (
 )
 
 data class Obj2 (
+    @get:JsonProperty("DateTime", required=true)@field:JsonProperty("DateTime", required=true)
+    val dateTime: DateTime,
+
+    @get:JsonProperty("DateTimeStyles", required=true)@field:JsonProperty("DateTimeStyles", required=true)
+    val dateTimeStyles: DateTimeStyles,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val debugger: Debugger,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val decimal: Decimal,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val declare: Declare,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val decltype: Decltype,
+
+    @get:JsonProperty("decode_string", required=true)@field:JsonProperty("decode_string", required=true)
+    val decodeString: DecodeString,
+
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val def: Def,
 
@@ -790,33 +755,6 @@ data class Obj2 (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val implicit: Implicit,
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val import: Import,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val indirect: Indirect,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val infix: Infix,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val init: Init,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val inline: Inline,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val inout: Inout,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val instanceof: Instanceof,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val int: IntClass,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val internal: Internal,
-
     @get:JsonProperty("do", required=true)@field:JsonProperty("do", required=true)
     val obj2Do: Do,
 
@@ -832,16 +770,45 @@ data class Obj2 (
     @get:JsonProperty("if", required=true)@field:JsonProperty("if", required=true)
     val obj2If: If,
 
-    @get:JsonProperty("in", required=true)@field:JsonProperty("in", required=true)
-    val obj2In: In,
-
-    @get:JsonProperty("interface", required=true)@field:JsonProperty("interface", required=true)
-    val obj2Interface: Interface,
-
     @get:JsonProperty("false", required=true)@field:JsonProperty("false", required=true)
     val purpleFalse: FalseClass
 )
 
+data class DateTime (
+    @get:JsonProperty("DateTime", required=true)@field:JsonProperty("DateTime", required=true)
+    val dateTime: OffsetDateTime
+)
+
+data class DateTimeStyles (
+    @get:JsonProperty("DateTimeStyles", required=true)@field:JsonProperty("DateTimeStyles", required=true)
+    val dateTimeStyles: Long
+)
+
+data class Debugger (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val debugger: Long
+)
+
+data class Decimal (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val decimal: Long
+)
+
+data class Declare (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val declare: Long
+)
+
+data class Decltype (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val decltype: Long
+)
+
+data class DecodeString (
+    @get:JsonProperty("decode_string", required=true)@field:JsonProperty("decode_string", required=true)
+    val decodeString: Long
+)
+
 data class Def (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val def: Long
@@ -1110,51 +1077,6 @@ data class Implicit (
     val implicit: Long
 )
 
-data class Import (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val import: Long
-)
-
-data class Indirect (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val indirect: Long
-)
-
-data class Infix (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val infix: Long
-)
-
-data class Init (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val init: Long
-)
-
-data class Inline (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val inline: Long
-)
-
-data class Inout (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val inout: Long
-)
-
-data class Instanceof (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val instanceof: Long
-)
-
-data class IntClass (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val int: Long
-)
-
-data class Internal (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val internal: Long
-)
-
 data class Do (
     @get:JsonProperty("do", required=true)@field:JsonProperty("do", required=true)
     val doDo: Long
@@ -1180,16 +1102,6 @@ data class If (
     val ifIf: Long
 )
 
-data class In (
-    @get:JsonProperty("in", required=true)@field:JsonProperty("in", required=true)
-    val inIn: Long
-)
-
-data class Interface (
-    @get:JsonProperty("interface", required=true)@field:JsonProperty("interface", required=true)
-    val interfaceInterface: Long
-)
-
 data class FalseClass (
     @get:JsonProperty("false", required=true)@field:JsonProperty("false", required=true)
     val falseFalse: Long
@@ -1199,6 +1111,33 @@ data class Obj3 (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val dummy: Long,
 
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val import: Import,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val indirect: Indirect,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val infix: Infix,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val init: Init,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val inline: Inline,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val inout: Inout,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val instanceof: Instanceof,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val int: IntClass,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val internal: Internal,
+
     @get:JsonProperty("IsoDateTimeOffsetConverter", required=true)@field:JsonProperty("IsoDateTimeOffsetConverter", required=true)
     val isoDateTimeOffsetConverter: ISODateTimeOffsetConverter,
 
@@ -1346,11 +1285,11 @@ data class Obj3 (
     @get:JsonProperty("NSString", required=true)@field:JsonProperty("NSString", required=true)
     val nsString: NSString,
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val nullptr: Nullptr,
+    @get:JsonProperty("in", required=true)@field:JsonProperty("in", required=true)
+    val obj3In: In,
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val number: Number,
+    @get:JsonProperty("interface", required=true)@field:JsonProperty("interface", required=true)
+    val obj3Interface: Interface,
 
     @get:JsonProperty("is", required=true)@field:JsonProperty("is", required=true)
     val obj3Is: Is,
@@ -1362,94 +1301,52 @@ data class Obj3 (
     val obj3None: NoneClass,
 
     @get:JsonProperty("null", required=true)@field:JsonProperty("null", required=true)
-    val obj3Null: NullClass,
-
-    @get:JsonProperty("object", required=true)@field:JsonProperty("object", required=true)
-    val obj3Object: Object,
-
-    @get:JsonProperty("package", required=true)@field:JsonProperty("package", required=true)
-    val obj3Package: Package,
-
-    @get:JsonProperty("protocol", required=true)@field:JsonProperty("protocol", required=true)
-    val obj3Protocol: ProtocolClass,
-
-    @get:JsonProperty("ObjectMapper", required=true)@field:JsonProperty("ObjectMapper", required=true)
-    val objectMapper: ObjectMapperClass,
+    val obj3Null: NullClass
+)
 
+data class Import (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val of: Of,
+    val import: Long
+)
 
+data class Indirect (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val oneway: Oneway,
+    val indirect: Long
+)
 
+data class Infix (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val open: Open,
+    val infix: Long
+)
 
+data class Init (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val operator: Operator,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val optional: Optional,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val or: Or,
-
-    @get:JsonProperty("or_eq", required=true)@field:JsonProperty("or_eq", required=true)
-    val orEq: OrEq,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val out: Out,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val override: Override,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val params: Params,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val pass: Pass,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val port: Port,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val postfix: Postfix,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val precedence: Precedence,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val prefix: Prefix,
+    val init: Long
+)
 
+data class Inline (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val print: Print,
+    val inline: Long
+)
 
+data class Inout (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val printMembers: PrintMembers,
+    val inout: Long
+)
 
+data class Instanceof (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val printf: Printf,
+    val instanceof: Long
+)
 
+data class IntClass (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val private: Private,
+    val int: Long
+)
 
+data class Internal (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val protected: Protected,
-
-    @get:JsonProperty("Protocol", required=true)@field:JsonProperty("Protocol", required=true)
-    val protocol: Protocol,
-
-    @get:JsonProperty("SerializerProvider", required=true)@field:JsonProperty("SerializerProvider", required=true)
-    val serializerProvider: SerializerProviderClass,
-
-    @get:JsonProperty("SimpleModule", required=true)@field:JsonProperty("SimpleModule", required=true)
-    val simpleModule: SimpleModuleClass,
-
-    @get:JsonProperty("StdDeserializer", required=true)@field:JsonProperty("StdDeserializer", required=true)
-    val stdDeserializer: StdDeserializerClass,
-
-    @get:JsonProperty("StdSerializer", required=true)@field:JsonProperty("StdSerializer", required=true)
-    val stdSerializer: StdSerializerClass
+    val internal: Long
 )
 
 data class ISODateTimeOffsetConverter (
@@ -1697,14 +1594,14 @@ data class NSString (
     val nsString: Long
 )
 
-data class Nullptr (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val nullptr: Long
+data class In (
+    @get:JsonProperty("in", required=true)@field:JsonProperty("in", required=true)
+    val inIn: Long
 )
 
-data class Number (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val number: Long
+data class Interface (
+    @get:JsonProperty("interface", required=true)@field:JsonProperty("interface", required=true)
+    val interfaceInterface: Long
 )
 
 data class Is (
@@ -1727,191 +1624,100 @@ data class NullClass (
     val nullNull: Long
 )
 
-data class Object (
+data class Obj4 (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val dummy: Long,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val nullptr: Nullptr,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val number: Number,
+
     @get:JsonProperty("object", required=true)@field:JsonProperty("object", required=true)
-    val objectObject: Long
-)
+    val obj4Object: Object,
 
-data class Package (
     @get:JsonProperty("package", required=true)@field:JsonProperty("package", required=true)
-    val packagePackage: Long
-)
+    val obj4Package: Package,
 
-data class ProtocolClass (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val protocol: Long
-)
+    @get:JsonProperty("protocol", required=true)@field:JsonProperty("protocol", required=true)
+    val obj4Protocol: ProtocolClass,
+
+    @get:JsonProperty("return", required=true)@field:JsonProperty("return", required=true)
+    val obj4Return: Return,
+
+    @get:JsonProperty("self", required=true)@field:JsonProperty("self", required=true)
+    val obj4Self: SelfClass,
 
-data class ObjectMapperClass (
     @get:JsonProperty("ObjectMapper", required=true)@field:JsonProperty("ObjectMapper", required=true)
-    val objectMapper: Long
-)
+    val objectMapper: ObjectMapperClass,
 
-data class Of (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val of: Long
-)
+    val of: Of,
 
-data class Oneway (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val oneway: Long
-)
+    val oneway: Oneway,
 
-data class Open (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val open: Long
-)
+    val open: Open,
 
-data class Operator (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val operator: Long
-)
+    val operator: Operator,
 
-data class Optional (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val optional: Long
-)
+    val optional: Optional,
 
-data class Or (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val or: Long
-)
+    val or: Or,
 
-data class OrEq (
     @get:JsonProperty("or_eq", required=true)@field:JsonProperty("or_eq", required=true)
-    val orEq: Long
-)
+    val orEq: OrEq,
 
-data class Out (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val out: Long
-)
+    val out: Out,
 
-data class Override (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val override: Long
-)
+    val override: Override,
 
-data class Params (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val params: Long
-)
+    val params: Params,
 
-data class Pass (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val pass: Long
-)
+    val pass: Pass,
 
-data class Port (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val port: Long
-)
+    val port: Port,
 
-data class Postfix (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val postfix: Long
-)
+    val postfix: Postfix,
 
-data class Precedence (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val precedence: Long
-)
+    val precedence: Precedence,
 
-data class Prefix (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val prefix: Long
-)
+    val prefix: Prefix,
 
-data class Print (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val print: Long
-)
+    val print: Print,
 
-data class PrintMembers (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val printMembers: Long
-)
+    val printMembers: PrintMembers,
 
-data class Printf (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val printf: Long
-)
+    val printf: Printf,
 
-data class Private (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val private: Long
-)
+    val private: Private,
 
-data class Protected (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val protected: Long
-)
+    val protected: Protected,
 
-data class Protocol (
     @get:JsonProperty("Protocol", required=true)@field:JsonProperty("Protocol", required=true)
-    val protocol: Long
-)
-
-data class SerializerProviderClass (
-    @get:JsonProperty("SerializerProvider", required=true)@field:JsonProperty("SerializerProvider", required=true)
-    val serializerProvider: Long
-)
-
-data class SimpleModuleClass (
-    @get:JsonProperty("SimpleModule", required=true)@field:JsonProperty("SimpleModule", required=true)
-    val simpleModule: Long
-)
-
-data class StdDeserializerClass (
-    @get:JsonProperty("StdDeserializer", required=true)@field:JsonProperty("StdDeserializer", required=true)
-    val stdDeserializer: Long
-)
-
-data class StdSerializerClass (
-    @get:JsonProperty("StdSerializer", required=true)@field:JsonProperty("StdSerializer", required=true)
-    val stdSerializer: Long
-)
-
-data class Obj4 (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val dummy: Long,
-
-    @get:JsonProperty("return", required=true)@field:JsonProperty("return", required=true)
-    val obj4Return: Return,
-
-    @get:JsonProperty("self", required=true)@field:JsonProperty("self", required=true)
-    val obj4Self: SelfClass,
-
-    @get:JsonProperty("super", required=true)@field:JsonProperty("super", required=true)
-    val obj4Super: Super,
-
-    @get:JsonProperty("this", required=true)@field:JsonProperty("this", required=true)
-    val obj4This: This,
-
-    @get:JsonProperty("throw", required=true)@field:JsonProperty("throw", required=true)
-    val obj4Throw: Throw,
-
-    @get:JsonProperty("True", required=true)@field:JsonProperty("True", required=true)
-    val obj4True: True,
-
-    @get:JsonProperty("try", required=true)@field:JsonProperty("try", required=true)
-    val obj4Try: Try,
-
-    @get:JsonProperty("type", required=true)@field:JsonProperty("type", required=true)
-    val obj4Type: TypeClass,
-
-    @get:JsonProperty("typealias", required=true)@field:JsonProperty("typealias", required=true)
-    val obj4Typealias: Typealias,
-
-    @get:JsonProperty("typeof", required=true)@field:JsonProperty("typeof", required=true)
-    val obj4Typeof: Typeof,
+    val protocol: Protocol,
 
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val public: Public,
 
-    @get:JsonProperty("true", required=true)@field:JsonProperty("true", required=true)
-    val purpleTrue: TrueClass,
-
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val quicktype: Quicktype,
 
@@ -1984,6 +1790,9 @@ data class Obj4 (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val serialize: Serialize,
 
+    @get:JsonProperty("SerializerProvider", required=true)@field:JsonProperty("SerializerProvider", required=true)
+    val serializerProvider: SerializerProviderClass,
+
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val set: Set,
 
@@ -1993,6 +1802,9 @@ data class Obj4 (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val signed: Signed,
 
+    @get:JsonProperty("SimpleModule", required=true)@field:JsonProperty("SimpleModule", required=true)
+    val simpleModule: SimpleModuleClass,
+
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val sizeof: Sizeof,
 
@@ -2006,138 +1818,152 @@ data class Obj4 (
     val static: Static,
 
     @get:JsonProperty("static_assert", required=true)@field:JsonProperty("static_assert", required=true)
-    val staticAssert: StaticAssert,
-
-    @get:JsonProperty("static_cast", required=true)@field:JsonProperty("static_cast", required=true)
-    val staticCast: StaticCast,
+    val staticAssert: StaticAssert
+)
 
+data class Nullptr (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val strictfp: Strictfp,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val string: StringClass,
+    val nullptr: Long
+)
 
+data class Number (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val struct: Struct,
+    val number: Long
+)
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val subscript: Subscript,
+data class Object (
+    @get:JsonProperty("object", required=true)@field:JsonProperty("object", required=true)
+    val objectObject: Long
+)
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val switch: Switch,
+data class Package (
+    @get:JsonProperty("package", required=true)@field:JsonProperty("package", required=true)
+    val packagePackage: Long
+)
 
+data class ProtocolClass (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val symbol: Symbol,
+    val protocol: Long
+)
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val synchronized: Synchronized,
+data class Return (
+    @get:JsonProperty("return", required=true)@field:JsonProperty("return", required=true)
+    val returnReturn: Long
+)
 
+data class SelfClass (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val system: SystemClass,
+    val self: Long
+)
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val template: Template,
+data class ObjectMapperClass (
+    @get:JsonProperty("ObjectMapper", required=true)@field:JsonProperty("ObjectMapper", required=true)
+    val objectMapper: Long
+)
 
+data class Of (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val then: Then,
-
-    @get:JsonProperty("thread_local", required=true)@field:JsonProperty("thread_local", required=true)
-    val threadLocal: ThreadLocal,
+    val of: Long
+)
 
+data class Oneway (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val throws: Throws,
-
-    @get:JsonProperty("TimeOnly", required=true)@field:JsonProperty("TimeOnly", required=true)
-    val timeOnly: TimeOnly,
-
-    @get:JsonProperty("TimeOnlyConverter", required=true)@field:JsonProperty("TimeOnlyConverter", required=true)
-    val timeOnlyConverter: TimeOnlyConverter,
-
-    @get:JsonProperty("to_json", required=true)@field:JsonProperty("to_json", required=true)
-    val toJSON: ToJSON,
+    val oneway: Long
+)
 
+data class Open (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val toString: ToString,
-
-    @get:JsonProperty("top_level", required=true)@field:JsonProperty("top_level", required=true)
-    val topLevel: TopLevelClass,
+    val open: Long
+)
 
+data class Operator (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val transient: Transient,
-
-    @get:JsonProperty("Type", required=true)@field:JsonProperty("Type", required=true)
-    val type: Type,
+    val operator: Long
+)
 
+data class Optional (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val typedef: Typedef,
+    val optional: Long
+)
 
+data class Or (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val typeid: Typeid,
+    val or: Long
+)
 
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val typename: Typename,
+data class OrEq (
+    @get:JsonProperty("or_eq", required=true)@field:JsonProperty("or_eq", required=true)
+    val orEq: Long
+)
 
+data class Out (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val uint: Uint,
+    val out: Long
+)
 
+data class Override (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val ulong: Ulong,
+    val override: Long
+)
 
+data class Params (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val unchecked: Unchecked,
+    val params: Long
+)
 
+data class Pass (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val undefined: Undefined
+    val pass: Long
 )
 
-data class Return (
-    @get:JsonProperty("return", required=true)@field:JsonProperty("return", required=true)
-    val returnReturn: Long
+data class Port (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val port: Long
 )
 
-data class SelfClass (
+data class Postfix (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val self: Long
+    val postfix: Long
 )
 
-data class Super (
-    @get:JsonProperty("super", required=true)@field:JsonProperty("super", required=true)
-    val superSuper: Long
+data class Precedence (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val precedence: Long
 )
 
-data class This (
-    @get:JsonProperty("this", required=true)@field:JsonProperty("this", required=true)
-    val thisThis: Long
+data class Prefix (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val prefix: Long
 )
 
-data class Throw (
-    @get:JsonProperty("throw", required=true)@field:JsonProperty("throw", required=true)
-    val throwThrow: Long
+data class Print (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val print: Long
 )
 
-data class True (
-    @get:JsonProperty("True", required=true)@field:JsonProperty("True", required=true)
-    val trueTrue: Long
+data class PrintMembers (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val printMembers: Long
 )
 
-data class Try (
-    @get:JsonProperty("try", required=true)@field:JsonProperty("try", required=true)
-    val tryTry: Long
+data class Printf (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val printf: Long
 )
 
-data class TypeClass (
+data class Private (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val type: Long
+    val private: Long
 )
 
-data class Typealias (
-    @get:JsonProperty("typealias", required=true)@field:JsonProperty("typealias", required=true)
-    val typealiasTypealias: Long
+data class Protected (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val protected: Long
 )
 
-data class Typeof (
-    @get:JsonProperty("typeof", required=true)@field:JsonProperty("typeof", required=true)
-    val typeofTypeof: Long
+data class Protocol (
+    @get:JsonProperty("Protocol", required=true)@field:JsonProperty("Protocol", required=true)
+    val protocol: Long
 )
 
 data class Public (
@@ -2145,11 +1971,6 @@ data class Public (
     val public: Long
 )
 
-data class TrueClass (
-    @get:JsonProperty("true", required=true)@field:JsonProperty("true", required=true)
-    val trueTrue: Long
-)
-
 data class Quicktype (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val quicktype: Long
@@ -2270,6 +2091,11 @@ data class Serialize (
     val serialize: Long
 )
 
+data class SerializerProviderClass (
+    @get:JsonProperty("SerializerProvider", required=true)@field:JsonProperty("SerializerProvider", required=true)
+    val serializerProvider: Long
+)
+
 data class Set (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val set: Long
@@ -2285,6 +2111,11 @@ data class Signed (
     val signed: Long
 )
 
+data class SimpleModuleClass (
+    @get:JsonProperty("SimpleModule", required=true)@field:JsonProperty("SimpleModule", required=true)
+    val simpleModule: Long
+)
+
 data class Sizeof (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val sizeof: Long
@@ -2310,11 +2141,264 @@ data class StaticAssert (
     val staticAssert: Long
 )
 
+data class Obj5 (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val dummy: Long,
+
+    @get:JsonProperty("super", required=true)@field:JsonProperty("super", required=true)
+    val obj5Super: Super,
+
+    @get:JsonProperty("this", required=true)@field:JsonProperty("this", required=true)
+    val obj5This: This,
+
+    @get:JsonProperty("throw", required=true)@field:JsonProperty("throw", required=true)
+    val obj5Throw: Throw,
+
+    @get:JsonProperty("True", required=true)@field:JsonProperty("True", required=true)
+    val obj5True: True,
+
+    @get:JsonProperty("try", required=true)@field:JsonProperty("try", required=true)
+    val obj5Try: Try,
+
+    @get:JsonProperty("type", required=true)@field:JsonProperty("type", required=true)
+    val obj5Type: TypeClass,
+
+    @get:JsonProperty("typealias", required=true)@field:JsonProperty("typealias", required=true)
+    val obj5Typealias: Typealias,
+
+    @get:JsonProperty("typeof", required=true)@field:JsonProperty("typeof", required=true)
+    val obj5Typeof: Typeof,
+
+    @get:JsonProperty("var", required=true)@field:JsonProperty("var", required=true)
+    val obj5Var: Var,
+
+    @get:JsonProperty("while", required=true)@field:JsonProperty("while", required=true)
+    val obj5While: While,
+
+    @get:JsonProperty("true", required=true)@field:JsonProperty("true", required=true)
+    val purpleTrue: TrueClass,
+
+    @get:JsonProperty("static_cast", required=true)@field:JsonProperty("static_cast", required=true)
+    val staticCast: StaticCast,
+
+    @get:JsonProperty("StdDeserializer", required=true)@field:JsonProperty("StdDeserializer", required=true)
+    val stdDeserializer: StdDeserializerClass,
+
+    @get:JsonProperty("StdSerializer", required=true)@field:JsonProperty("StdSerializer", required=true)
+    val stdSerializer: StdSerializerClass,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val strictfp: Strictfp,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val string: StringClass,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val struct: Struct,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val subscript: Subscript,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val switch: Switch,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val symbol: Symbol,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val synchronized: Synchronized,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val system: SystemClass,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val template: Template,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val then: Then,
+
+    @get:JsonProperty("thread_local", required=true)@field:JsonProperty("thread_local", required=true)
+    val threadLocal: ThreadLocal,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val throws: Throws,
+
+    @get:JsonProperty("TimeOnly", required=true)@field:JsonProperty("TimeOnly", required=true)
+    val timeOnly: TimeOnly,
+
+    @get:JsonProperty("TimeOnlyConverter", required=true)@field:JsonProperty("TimeOnlyConverter", required=true)
+    val timeOnlyConverter: TimeOnlyConverter,
+
+    @get:JsonProperty("to_json", required=true)@field:JsonProperty("to_json", required=true)
+    val toJSON: ToJSON,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val toString: ToString,
+
+    @get:JsonProperty("top_level", required=true)@field:JsonProperty("top_level", required=true)
+    val topLevel: TopLevelClass,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val transient: Transient,
+
+    @get:JsonProperty("Type", required=true)@field:JsonProperty("Type", required=true)
+    val type: Type,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val typedef: Typedef,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val typeid: Typeid,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val typename: Typename,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val uint: Uint,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val ulong: Ulong,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val unchecked: Unchecked,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val undefined: Undefined,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val union: Union,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val unowned: Unowned,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val unsafe: Unsafe,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val unsigned: Unsigned,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val ushort: Ushort,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val using: Using,
+
+    @get:JsonProperty("Utf8JsonReader", required=true)@field:JsonProperty("Utf8JsonReader", required=true)
+    val utf8JSONReader: Utf8JSONReader,
+
+    @get:JsonProperty("Utf8JsonWriter", required=true)@field:JsonProperty("Utf8JsonWriter", required=true)
+    val utf8JSONWriter: Utf8JSONWriter,
+
+    @get:JsonProperty("UUID", required=true)@field:JsonProperty("UUID", required=true)
+    val uuid: UUID,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val virtual: Virtual,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val void: Void,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val volatile: Volatile,
+
+    @get:JsonProperty("wchar_t", required=true)@field:JsonProperty("wchar_t", required=true)
+    val wcharT: WcharT,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val weak: Weak,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val where: Where,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val willSet: WillSet,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val with: With,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val xor: Xor,
+
+    @get:JsonProperty("xor_eq", required=true)@field:JsonProperty("xor_eq", required=true)
+    val xorEq: XorEq,
+
+    @get:JsonProperty("YES", required=true)@field:JsonProperty("YES", required=true)
+    val yes: Yes,
+
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val yield: Yield
+)
+
+data class Super (
+    @get:JsonProperty("super", required=true)@field:JsonProperty("super", required=true)
+    val superSuper: Long
+)
+
+data class This (
+    @get:JsonProperty("this", required=true)@field:JsonProperty("this", required=true)
+    val thisThis: Long
+)
+
+data class Throw (
+    @get:JsonProperty("throw", required=true)@field:JsonProperty("throw", required=true)
+    val throwThrow: Long
+)
+
+data class True (
+    @get:JsonProperty("True", required=true)@field:JsonProperty("True", required=true)
+    val trueTrue: Long
+)
+
+data class Try (
+    @get:JsonProperty("try", required=true)@field:JsonProperty("try", required=true)
+    val tryTry: Long
+)
+
+data class TypeClass (
+    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
+    val type: Long
+)
+
+data class Typealias (
+    @get:JsonProperty("typealias", required=true)@field:JsonProperty("typealias", required=true)
+    val typealiasTypealias: Long
+)
+
+data class Typeof (
+    @get:JsonProperty("typeof", required=true)@field:JsonProperty("typeof", required=true)
+    val typeofTypeof: Long
+)
+
+data class Var (
+    @get:JsonProperty("var", required=true)@field:JsonProperty("var", required=true)
+    val varVar: Long
+)
+
+data class While (
+    @get:JsonProperty("while", required=true)@field:JsonProperty("while", required=true)
+    val whileWhile: Long
+)
+
+data class TrueClass (
+    @get:JsonProperty("true", required=true)@field:JsonProperty("true", required=true)
+    val trueTrue: Long
+)
+
 data class StaticCast (
     @get:JsonProperty("static_cast", required=true)@field:JsonProperty("static_cast", required=true)
     val staticCast: Long
 )
 
+data class StdDeserializerClass (
+    @get:JsonProperty("StdDeserializer", required=true)@field:JsonProperty("StdDeserializer", required=true)
+    val stdDeserializer: Long
+)
+
+data class StdSerializerClass (
+    @get:JsonProperty("StdSerializer", required=true)@field:JsonProperty("StdSerializer", required=true)
+    val stdSerializer: Long
+)
+
 data class Strictfp (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val strictfp: Long
@@ -2445,90 +2529,6 @@ data class Undefined (
     val undefined: Long
 )
 
-data class Obj5 (
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val dummy: Long,
-
-    @get:JsonProperty("var", required=true)@field:JsonProperty("var", required=true)
-    val obj5Var: Var,
-
-    @get:JsonProperty("while", required=true)@field:JsonProperty("while", required=true)
-    val obj5While: While,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val union: Union,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val unowned: Unowned,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val unsafe: Unsafe,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val unsigned: Unsigned,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val ushort: Ushort,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val using: Using,
-
-    @get:JsonProperty("Utf8JsonReader", required=true)@field:JsonProperty("Utf8JsonReader", required=true)
-    val utf8JSONReader: Utf8JSONReader,
-
-    @get:JsonProperty("Utf8JsonWriter", required=true)@field:JsonProperty("Utf8JsonWriter", required=true)
-    val utf8JSONWriter: Utf8JSONWriter,
-
-    @get:JsonProperty("UUID", required=true)@field:JsonProperty("UUID", required=true)
-    val uuid: UUID,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val virtual: Virtual,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val void: Void,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val volatile: Volatile,
-
-    @get:JsonProperty("wchar_t", required=true)@field:JsonProperty("wchar_t", required=true)
-    val wcharT: WcharT,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val weak: Weak,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val where: Where,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val willSet: WillSet,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val with: With,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val xor: Xor,
-
-    @get:JsonProperty("xor_eq", required=true)@field:JsonProperty("xor_eq", required=true)
-    val xorEq: XorEq,
-
-    @get:JsonProperty("YES", required=true)@field:JsonProperty("YES", required=true)
-    val yes: Yes,
-
-    @get:JsonProperty(required=true)@field:JsonProperty(required=true)
-    val yield: Yield
-)
-
-data class Var (
-    @get:JsonProperty("var", required=true)@field:JsonProperty("var", required=true)
-    val varVar: Long
-)
-
-data class While (
-    @get:JsonProperty("while", required=true)@field:JsonProperty("while", required=true)
-    val whileWhile: Long
-)
-
 data class Union (
     @get:JsonProperty(required=true)@field:JsonProperty(required=true)
     val union: Long
diff --git a/base/kotlinx/test/inputs/json/priority/keywords.json/default/TopLevel.kt b/head/kotlinx/test/inputs/json/priority/keywords.json/default/TopLevel.kt
index b3ffa48..b9be84c 100644
--- a/base/kotlinx/test/inputs/json/priority/keywords.json/default/TopLevel.kt
+++ b/head/kotlinx/test/inputs/json/priority/keywords.json/default/TopLevel.kt
@@ -125,20 +125,6 @@ data class Obj1 (
     @SerialName("date_parse_handling")
     val dateParseHandling: DateParseHandling,
 
-    @SerialName("DateTime")
-    val dateTime: DateTime,
-
-    @SerialName("DateTimeStyles")
-    val dateTimeStyles: DateTimeStyles,
-
-    val debugger: Debugger,
-    val decimal: Decimal,
-    val declare: Declare,
-    val decltype: Decltype,
-
-    @SerialName("decode_string")
-    val decodeString: DecodeString,
-
     val dummy: Long,
 
     @SerialName("_")
@@ -460,44 +446,6 @@ data class DateParseHandling (
     val dateParseHandling: Long
 )
 
-@Serializable
-data class DateTime (
-    @SerialName("DateTime")
-    val dateTime: OffsetDateTime
-)
-
-@Serializable
-data class DateTimeStyles (
-    @SerialName("DateTimeStyles")
-    val dateTimeStyles: Long
-)
-
-@Serializable
-data class Debugger (
-    val debugger: Long
-)
-
-@Serializable
-data class Decimal (
-    val decimal: Long
-)
-
-@Serializable
-data class Declare (
-    val declare: Long
-)
-
-@Serializable
-data class Decltype (
-    val decltype: Long
-)
-
-@Serializable
-data class DecodeString (
-    @SerialName("decode_string")
-    val decodeString: Long
-)
-
 @Serializable
 data class Empty (
     @SerialName("_")
@@ -558,6 +506,20 @@ data class Obj1Class (
 
 @Serializable
 data class Obj2 (
+    @SerialName("DateTime")
+    val dateTime: DateTime,
+
+    @SerialName("DateTimeStyles")
+    val dateTimeStyles: DateTimeStyles,
+
+    val debugger: Debugger,
+    val decimal: Decimal,
+    val declare: Declare,
+    val decltype: Decltype,
+
+    @SerialName("decode_string")
+    val decodeString: DecodeString,
+
     val def: Def,
     val default: Default,
     val defer: Defer,
@@ -628,15 +590,6 @@ data class Obj2 (
 
     val implements: Implements,
     val implicit: Implicit,
-    val import: Import,
-    val indirect: Indirect,
-    val infix: Infix,
-    val init: Init,
-    val inline: Inline,
-    val inout: Inout,
-    val instanceof: Instanceof,
-    val int: IntClass,
-    val internal: Internal,
 
     @SerialName("do")
     val obj2Do: Do,
@@ -653,16 +606,48 @@ data class Obj2 (
     @SerialName("if")
     val obj2If: If,
 
-    @SerialName("in")
-    val obj2In: In,
-
-    @SerialName("interface")
-    val obj2Interface: Interface,
-
     @SerialName("false")
     val purpleFalse: FalseClass
 )
 
+@Serializable
+data class DateTime (
+    @SerialName("DateTime")
+    val dateTime: OffsetDateTime
+)
+
+@Serializable
+data class DateTimeStyles (
+    @SerialName("DateTimeStyles")
+    val dateTimeStyles: Long
+)
+
+@Serializable
+data class Debugger (
+    val debugger: Long
+)
+
+@Serializable
+data class Decimal (
+    val decimal: Long
+)
+
+@Serializable
+data class Declare (
+    val declare: Long
+)
+
+@Serializable
+data class Decltype (
+    val decltype: Long
+)
+
+@Serializable
+data class DecodeString (
+    @SerialName("decode_string")
+    val decodeString: Long
+)
+
 @Serializable
 data class Def (
     val def: Long
@@ -930,51 +915,6 @@ data class Implicit (
     val implicit: Long
 )
 
-@Serializable
-data class Import (
-    val import: Long
-)
-
-@Serializable
-data class Indirect (
-    val indirect: Long
-)
-
-@Serializable
-data class Infix (
-    val infix: Long
-)
-
-@Serializable
-data class Init (
-    val init: Long
-)
-
-@Serializable
-data class Inline (
-    val inline: Long
-)
-
-@Serializable
-data class Inout (
-    val inout: Long
-)
-
-@Serializable
-data class Instanceof (
-    val instanceof: Long
-)
-
-@Serializable
-data class IntClass (
-    val int: Long
-)
-
-@Serializable
-data class Internal (
-    val internal: Long
-)
-
 @Serializable
 data class Do (
     @SerialName("do")
@@ -1005,18 +945,6 @@ data class If (
     val ifIf: Long
 )
 
-@Serializable
-data class In (
-    @SerialName("in")
-    val inIn: Long
-)
-
-@Serializable
-data class Interface (
-    @SerialName("interface")
-    val interfaceInterface: Long
-)
-
 @Serializable
 data class FalseClass (
     @SerialName("false")
@@ -1026,6 +954,15 @@ data class FalseClass (
 @Serializable
 data class Obj3 (
     val dummy: Long,
+    val import: Import,
+    val indirect: Indirect,
+    val infix: Infix,
+    val init: Init,
+    val inline: Inline,
+    val inout: Inout,
+    val instanceof: Instanceof,
+    val int: IntClass,
+    val internal: Internal,
 
     @SerialName("IsoDateTimeOffsetConverter")
     val isoDateTimeOffsetConverter: ISODateTimeOffsetConverter,
@@ -1125,8 +1062,11 @@ data class Obj3 (
     @SerialName("NSString")
     val nsString: NSString,
 
-    val nullptr: Nullptr,
-    val number: Number,
+    @SerialName("in")
+    val obj3In: In,
+
+    @SerialName("interface")
+    val obj3Interface: Interface,
 
     @SerialName("is")
     val obj3Is: Is,
@@ -1138,84 +1078,78 @@ data class Obj3 (
     val obj3None: NoneClass,
 
     @SerialName("null")
-    val obj3Null: NullClass,
-
-    @SerialName("object")
-    val obj3Object: Object,
-
-    @SerialName("package")
-    val obj3Package: Package,
-
-    @SerialName("protocol")
-    val obj3Protocol: ProtocolClass,
-
-    @SerialName("ObjectMapper")
-    val objectMapper: ObjectMapper,
-
-    val of: Of,
-    val oneway: Oneway,
-    val open: Open,
-    val operator: Operator,
-    val optional: Optional,
-    val or: Or,
-
-    @SerialName("or_eq")
-    val orEq: OrEq,
-
-    val out: Out,
-    val override: Override,
-    val params: Params,
-    val pass: Pass,
-    val port: Port,
-    val postfix: Postfix,
-    val precedence: Precedence,
-    val prefix: Prefix,
-    val print: Print,
-    val printMembers: PrintMembers,
-    val printf: Printf,
-    val private: Private,
-    val protected: Protected,
-
-    @SerialName("Protocol")
-    val protocol: Protocol,
-
-    @SerialName("SerializerProvider")
-    val serializerProvider: SerializerProvider,
-
-    @SerialName("SimpleModule")
-    val simpleModule: SimpleModule,
-
-    @SerialName("StdDeserializer")
-    val stdDeserializer: StdDeserializer,
-
-    @SerialName("StdSerializer")
-    val stdSerializer: StdSerializer
+    val obj3Null: NullClass
 )
 
 @Serializable
-data class ISODateTimeOffsetConverter (
-    @SerialName("IsoDateTimeOffsetConverter")
-    val isoDateTimeOffsetConverter: Long
+data class Import (
+    val import: Long
 )
 
 @Serializable
-data class Iterable (
-    val iterable: Long
+data class Indirect (
+    val indirect: Long
 )
 
 @Serializable
-data class Jdec (
-    val jdec: Long
+data class Infix (
+    val infix: Long
 )
 
 @Serializable
-data class Jenc (
-    val jenc: Long
+data class Init (
+    val init: Long
 )
 
 @Serializable
-data class Jpipe (
-    val jpipe: Long
+data class Inline (
+    val inline: Long
+)
+
+@Serializable
+data class Inout (
+    val inout: Long
+)
+
+@Serializable
+data class Instanceof (
+    val instanceof: Long
+)
+
+@Serializable
+data class IntClass (
+    val int: Long
+)
+
+@Serializable
+data class Internal (
+    val internal: Long
+)
+
+@Serializable
+data class ISODateTimeOffsetConverter (
+    @SerialName("IsoDateTimeOffsetConverter")
+    val isoDateTimeOffsetConverter: Long
+)
+
+@Serializable
+data class Iterable (
+    val iterable: Long
+)
+
+@Serializable
+data class Jdec (
+    val jdec: Long
+)
+
+@Serializable
+data class Jenc (
+    val jenc: Long
+)
+
+@Serializable
+data class Jpipe (
+    val jpipe: Long
 )
 
 @Serializable
@@ -1460,13 +1394,15 @@ data class NSString (
 )
 
 @Serializable
-data class Nullptr (
-    val nullptr: Long
+data class In (
+    @SerialName("in")
+    val inIn: Long
 )
 
 @Serializable
-data class Number (
-    val number: Long
+data class Interface (
+    @SerialName("interface")
+    val interfaceInterface: Long
 )
 
 @Serializable
@@ -1492,6 +1428,127 @@ data class NullClass (
     val nullNull: Long
 )
 
+@Serializable
+data class Obj4 (
+    val dummy: Long,
+    val nullptr: Nullptr,
+    val number: Number,
+
+    @SerialName("object")
+    val obj4Object: Object,
+
+    @SerialName("package")
+    val obj4Package: Package,
+
+    @SerialName("protocol")
+    val obj4Protocol: ProtocolClass,
+
+    @SerialName("return")
+    val obj4Return: Return,
+
+    @SerialName("self")
+    val obj4Self: SelfClass,
+
+    @SerialName("ObjectMapper")
+    val objectMapper: ObjectMapper,
+
+    val of: Of,
+    val oneway: Oneway,
+    val open: Open,
+    val operator: Operator,
+    val optional: Optional,
+    val or: Or,
+
+    @SerialName("or_eq")
+    val orEq: OrEq,
+
+    val out: Out,
+    val override: Override,
+    val params: Params,
+    val pass: Pass,
+    val port: Port,
+    val postfix: Postfix,
+    val precedence: Precedence,
+    val prefix: Prefix,
+    val print: Print,
+    val printMembers: PrintMembers,
+    val printf: Printf,
+    val private: Private,
+    val protected: Protected,
+
+    @SerialName("Protocol")
+    val protocol: Protocol,
+
+    val public: Public,
+    val quicktype: Quicktype,
+    val raise: Raise,
+    val range: Range,
+    val readonly: Readonly,
+    val ref: Ref,
+
+    @SerialName("RegExp")
+    val regExp: RegExp,
+
+    val register: Register,
+
+    @SerialName("reinterpret_cast")
+    val reinterpretCast: ReinterpretCast,
+
+    val repeat: Repeat,
+    val require: Require,
+    val required: Required,
+    val requires: Requires,
+    val restrict: Restrict,
+    val retain: Retain,
+    val rethrows: Rethrows,
+    val right: Right,
+    val runtimeType: RuntimeType,
+    val s: S,
+    val sbyte: Sbyte,
+    val sealed: Sealed,
+
+    @SerialName("SEL")
+    val sel: Sel,
+
+    val select: Select,
+
+    @SerialName("Self")
+    val self: Self,
+
+    val serialize: Serialize,
+
+    @SerialName("SerializerProvider")
+    val serializerProvider: SerializerProvider,
+
+    val set: Set,
+    val short: ShortClass,
+    val signed: Signed,
+
+    @SerialName("SimpleModule")
+    val simpleModule: SimpleModule,
+
+    val sizeof: Sizeof,
+    val stackalloc: Stackalloc,
+
+    @SerialName("Standards")
+    val standards: Standards,
+
+    val static: Static,
+
+    @SerialName("static_assert")
+    val staticAssert: StaticAssert
+)
+
+@Serializable
+data class Nullptr (
+    val nullptr: Long
+)
+
+@Serializable
+data class Number (
+    val number: Long
+)
+
 @Serializable
 data class Object (
     @SerialName("object")
@@ -1509,6 +1566,17 @@ data class ProtocolClass (
     val protocol: Long
 )
 
+@Serializable
+data class Return (
+    @SerialName("return")
+    val returnReturn: Long
+)
+
+@Serializable
+data class SelfClass (
+    val self: Long
+)
+
 @Serializable
 data class ObjectMapper (
     @SerialName("ObjectMapper")
@@ -1623,121 +1691,234 @@ data class Protocol (
 )
 
 @Serializable
-data class SerializerProvider (
-    @SerialName("SerializerProvider")
-    val serializerProvider: Long
+data class Public (
+    val public: Long
 )
 
 @Serializable
-data class SimpleModule (
-    @SerialName("SimpleModule")
-    val simpleModule: Long
+data class Quicktype (
+    val quicktype: Long
 )
 
 @Serializable
-data class StdDeserializer (
-    @SerialName("StdDeserializer")
-    val stdDeserializer: Long
+data class Raise (
+    val raise: Long
 )
 
 @Serializable
-data class StdSerializer (
-    @SerialName("StdSerializer")
-    val stdSerializer: Long
+data class Range (
+    val range: Long
 )
 
 @Serializable
-data class Obj4 (
-    val dummy: Long,
-
-    @SerialName("return")
-    val obj4Return: Return,
+data class Readonly (
+    val readonly: Long
+)
 
-    @SerialName("self")
-    val obj4Self: SelfClass,
+@Serializable
+data class Ref (
+    val ref: Long
+)
 
-    @SerialName("super")
-    val obj4Super: Super,
+@Serializable
+data class RegExp (
+    @SerialName("RegExp")
+    val regExp: String
+)
 
-    @SerialName("this")
-    val obj4This: This,
+@Serializable
+data class Register (
+    val register: Long
+)
 
-    @SerialName("throw")
-    val obj4Throw: Throw,
+@Serializable
+data class ReinterpretCast (
+    @SerialName("reinterpret_cast")
+    val reinterpretCast: Long
+)
 
-    @SerialName("True")
-    val obj4True: True,
+@Serializable
+data class Repeat (
+    val repeat: Long
+)
 
-    @SerialName("try")
-    val obj4Try: Try,
+@Serializable
+data class Require (
+    val require: Long
+)
 
-    @SerialName("type")
-    val obj4Type: TypeClass,
+@Serializable
+data class Required (
+    val required: Long
+)
 
-    @SerialName("typealias")
-    val obj4Typealias: Typealias,
+@Serializable
+data class Requires (
+    val requires: Long
+)
 
-    @SerialName("typeof")
-    val obj4Typeof: Typeof,
+@Serializable
+data class Restrict (
+    val restrict: Long
+)
 
-    val public: Public,
+@Serializable
+data class Retain (
+    val retain: Long
+)
 
-    @SerialName("true")
-    val purpleTrue: TrueClass,
+@Serializable
+data class Rethrows (
+    val rethrows: Long
+)
 
-    val quicktype: Quicktype,
-    val raise: Raise,
-    val range: Range,
-    val readonly: Readonly,
-    val ref: Ref,
+@Serializable
+data class Right (
+    val right: Long
+)
 
-    @SerialName("RegExp")
-    val regExp: RegExp,
+@Serializable
+data class RuntimeType (
+    val runtimeType: Long
+)
 
-    val register: Register,
+@Serializable
+data class S (
+    val s: Long
+)
 
-    @SerialName("reinterpret_cast")
-    val reinterpretCast: ReinterpretCast,
+@Serializable
+data class Sbyte (
+    val sbyte: Long
+)
 
-    val repeat: Repeat,
-    val require: Require,
-    val required: Required,
-    val requires: Requires,
-    val restrict: Restrict,
-    val retain: Retain,
-    val rethrows: Rethrows,
-    val right: Right,
-    val runtimeType: RuntimeType,
-    val s: S,
-    val sbyte: Sbyte,
-    val sealed: Sealed,
+@Serializable
+data class Sealed (
+    val sealed: Long
+)
 
+@Serializable
+data class Sel (
     @SerialName("SEL")
-    val sel: Sel,
+    val sel: Long
+)
 
-    val select: Select,
+@Serializable
+data class Select (
+    val select: Long
+)
 
+@Serializable
+data class Self (
     @SerialName("Self")
-    val self: Self,
+    val self: Long
+)
 
-    val serialize: Serialize,
-    val set: Set,
-    val short: ShortClass,
-    val signed: Signed,
-    val sizeof: Sizeof,
-    val stackalloc: Stackalloc,
+@Serializable
+data class Serialize (
+    val serialize: Long
+)
+
+@Serializable
+data class SerializerProvider (
+    @SerialName("SerializerProvider")
+    val serializerProvider: Long
+)
+
+@Serializable
+data class Set (
+    val set: Long
+)
+
+@Serializable
+data class ShortClass (
+    val short: Long
+)
+
+@Serializable
+data class Signed (
+    val signed: Long
+)
+
+@Serializable
+data class SimpleModule (
+    @SerialName("SimpleModule")
+    val simpleModule: Long
+)
+
+@Serializable
+data class Sizeof (
+    val sizeof: Long
+)
 
+@Serializable
+data class Stackalloc (
+    val stackalloc: Long
+)
+
+@Serializable
+data class Standards (
     @SerialName("Standards")
-    val standards: Standards,
+    val standards: Long
+)
 
-    val static: Static,
+@Serializable
+data class Static (
+    val static: Long
+)
 
+@Serializable
+data class StaticAssert (
     @SerialName("static_assert")
-    val staticAssert: StaticAssert,
+    val staticAssert: Long
+)
+
+@Serializable
+data class Obj5 (
+    val dummy: Long,
+
+    @SerialName("super")
+    val obj5Super: Super,
+
+    @SerialName("this")
+    val obj5This: This,
+
+    @SerialName("throw")
+    val obj5Throw: Throw,
+
+    @SerialName("True")
+    val obj5True: True,
+
+    @SerialName("try")
+    val obj5Try: Try,
+
+    @SerialName("type")
+    val obj5Type: TypeClass,
+
+    @SerialName("typealias")
+    val obj5Typealias: Typealias,
+
+    @SerialName("typeof")
+    val obj5Typeof: Typeof,
+
+    @SerialName("var")
+    val obj5Var: Var,
+
+    @SerialName("while")
+    val obj5While: While,
+
+    @SerialName("true")
+    val purpleTrue: TrueClass,
 
     @SerialName("static_cast")
     val staticCast: StaticCast,
 
+    @SerialName("StdDeserializer")
+    val stdDeserializer: StdDeserializer,
+
+    @SerialName("StdSerializer")
+    val stdSerializer: StdSerializer,
+
     val strictfp: Strictfp,
     val string: StringClass,
     val struct: Struct,
@@ -1779,18 +1960,43 @@ data class Obj4 (
     val uint: Uint,
     val ulong: Ulong,
     val unchecked: Unchecked,
-    val undefined: Undefined
-)
+    val undefined: Undefined,
+    val union: Union,
+    val unowned: Unowned,
+    val unsafe: Unsafe,
+    val unsigned: Unsigned,
+    val ushort: Ushort,
+    val using: Using,
 
-@Serializable
-data class Return (
-    @SerialName("return")
-    val returnReturn: Long
-)
+    @SerialName("Utf8JsonReader")
+    val utf8JSONReader: Utf8JSONReader,
 
-@Serializable
-data class SelfClass (
-    val self: Long
+    @SerialName("Utf8JsonWriter")
+    val utf8JSONWriter: Utf8JSONWriter,
+
+    @SerialName("UUID")
+    val uuid: UUID,
+
+    val virtual: Virtual,
+    val void: Void,
+    val volatile: Volatile,
+
+    @SerialName("wchar_t")
+    val wcharT: WcharT,
+
+    val weak: Weak,
+    val where: Where,
+    val willSet: WillSet,
+    val with: With,
+    val xor: Xor,
+
+    @SerialName("xor_eq")
+    val xorEq: XorEq,
+
+    @SerialName("YES")
+    val yes: Yes,
+
+    val yield: Yield
 )
 
 @Serializable
@@ -1841,186 +2047,39 @@ data class Typeof (
 )
 
 @Serializable
-data class Public (
-    val public: Long
-)
-
-@Serializable
-data class TrueClass (
-    @SerialName("true")
-    val trueTrue: Long
-)
-
-@Serializable
-data class Quicktype (
-    val quicktype: Long
-)
-
-@Serializable
-data class Raise (
-    val raise: Long
-)
-
-@Serializable
-data class Range (
-    val range: Long
-)
-
-@Serializable
-data class Readonly (
-    val readonly: Long
-)
-
-@Serializable
-data class Ref (
-    val ref: Long
-)
-
-@Serializable
-data class RegExp (
-    @SerialName("RegExp")
-    val regExp: String
-)
-
-@Serializable
-data class Register (
-    val register: Long
-)
-
-@Serializable
-data class ReinterpretCast (
-    @SerialName("reinterpret_cast")
-    val reinterpretCast: Long
-)
-
-@Serializable
-data class Repeat (
-    val repeat: Long
-)
-
-@Serializable
-data class Require (
-    val require: Long
-)
-
-@Serializable
-data class Required (
-    val required: Long
-)
-
-@Serializable
-data class Requires (
-    val requires: Long
-)
-
-@Serializable
-data class Restrict (
-    val restrict: Long
-)
-
-@Serializable
-data class Retain (
-    val retain: Long
-)
-
-@Serializable
-data class Rethrows (
-    val rethrows: Long
-)
-
-@Serializable
-data class Right (
-    val right: Long
-)
-
-@Serializable
-data class RuntimeType (
-    val runtimeType: Long
-)
-
-@Serializable
-data class S (
-    val s: Long
-)
-
-@Serializable
-data class Sbyte (
-    val sbyte: Long
-)
-
-@Serializable
-data class Sealed (
-    val sealed: Long
-)
-
-@Serializable
-data class Sel (
-    @SerialName("SEL")
-    val sel: Long
-)
-
-@Serializable
-data class Select (
-    val select: Long
-)
-
-@Serializable
-data class Self (
-    @SerialName("Self")
-    val self: Long
-)
-
-@Serializable
-data class Serialize (
-    val serialize: Long
-)
-
-@Serializable
-data class Set (
-    val set: Long
-)
-
-@Serializable
-data class ShortClass (
-    val short: Long
-)
-
-@Serializable
-data class Signed (
-    val signed: Long
-)
-
-@Serializable
-data class Sizeof (
-    val sizeof: Long
+data class Var (
+    @SerialName("var")
+    val varVar: Long
 )
 
 @Serializable
-data class Stackalloc (
-    val stackalloc: Long
+data class While (
+    @SerialName("while")
+    val whileWhile: Long
 )
 
 @Serializable
-data class Standards (
-    @SerialName("Standards")
-    val standards: Long
+data class TrueClass (
+    @SerialName("true")
+    val trueTrue: Long
 )
 
 @Serializable
-data class Static (
-    val static: Long
+data class StaticCast (
+    @SerialName("static_cast")
+    val staticCast: Long
 )
 
 @Serializable
-data class StaticAssert (
-    @SerialName("static_assert")
-    val staticAssert: Long
+data class StdDeserializer (
+    @SerialName("StdDeserializer")
+    val stdDeserializer: Long
 )
 
 @Serializable
-data class StaticCast (
-    @SerialName("static_cast")
-    val staticCast: Long
+data class StdSerializer (
+    @SerialName("StdSerializer")
+    val stdSerializer: Long
 )
 
 @Serializable
@@ -2159,66 +2218,6 @@ data class Undefined (
     val undefined: Long
 )
 
-@Serializable
-data class Obj5 (
-    val dummy: Long,
-
-    @SerialName("var")
-    val obj5Var: Var,
-
-    @SerialName("while")
-    val obj5While: While,
-
-    val union: Union,
-    val unowned: Unowned,
-    val unsafe: Unsafe,
-    val unsigned: Unsigned,
-    val ushort: Ushort,
-    val using: Using,
-
-    @SerialName("Utf8JsonReader")
-    val utf8JSONReader: Utf8JSONReader,
-
-    @SerialName("Utf8JsonWriter")
-    val utf8JSONWriter: Utf8JSONWriter,
-
-    @SerialName("UUID")
-    val uuid: UUID,
-
-    val virtual: Virtual,
-    val void: Void,
-    val volatile: Volatile,
-
-    @SerialName("wchar_t")
-    val wcharT: WcharT,
-
-    val weak: Weak,
-    val where: Where,
-    val willSet: WillSet,
-    val with: With,
-    val xor: Xor,
-
-    @SerialName("xor_eq")
-    val xorEq: XorEq,
-
-    @SerialName("YES")
-    val yes: Yes,
-
-    val yield: Yield
-)
-
-@Serializable
-data class Var (
-    @SerialName("var")
-    val varVar: Long
-)
-
-@Serializable
-data class While (
-    @SerialName("while")
-    val whileWhile: Long
-)
-
 @Serializable
 data class Union (
     val union: Long
diff --git a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.h b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.h
index 982abd9..d34ec9c 100644
--- a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.h
+++ b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.h
@@ -56,13 +56,6 @@
 @class QTDateOnly;
 @class QTDateOnlyConverter;
 @class QTDateParseHandling;
-@class QTDateTime;
-@class QTDateTimeStyles;
-@class QTDebugger;
-@class QTDecimal;
-@class QTDeclare;
-@class QTDecltype;
-@class QTDecodeString;
 @class QTEmpty;
 @class QTImaginery;
 @class QTASM;
@@ -79,6 +72,13 @@
 @class QTContinue;
 @class QTObj1Bool;
 @class QTObj2;
+@class QTDateTime;
+@class QTDateTimeStyles;
+@class QTDebugger;
+@class QTDecimal;
+@class QTDeclare;
+@class QTDecltype;
+@class QTDecodeString;
 @class QTDef;
 @class QTDefer;
 @class QTDeinit;
@@ -124,14 +124,6 @@
 @class QTImp;
 @class QTImplements;
 @class QTImplicit;
-@class QTImport;
-@class QTIn;
-@class QTIndirect;
-@class QTInfix;
-@class QTInout;
-@class QTInstanceof;
-@class QTInterface;
-@class QTInternal;
 @class QTDefault;
 @class QTDo;
 @class QTDouble;
@@ -143,12 +135,17 @@
 @class QTFor;
 @class QTGoto;
 @class QTIf;
-@class QTInline;
-@class QTInt;
 @class QTFalseClass;
 @class QTHashCode;
-@class QTInit;
 @class QTObj3;
+@class QTImport;
+@class QTIn;
+@class QTIndirect;
+@class QTInfix;
+@class QTInout;
+@class QTInstanceof;
+@class QTInterface;
+@class QTInternal;
 @class QTIs;
 @class QTISODateTimeOffsetConverter;
 @class QTIterable;
@@ -196,14 +193,28 @@
 @class QTNSError;
 @class QTNSString;
 @class QTNull;
-@class QTNullptr;
-@class QTNumber;
+@class QTInline;
+@class QTInt;
 @class QTLong;
 @class QTNil;
 @class QTNonatomic;
 @class QTNoneClass;
 @class QTNullClass;
+@class QTInit;
+@class QTNew;
+@class QTObj4;
+@class QTNullptr;
+@class QTNumber;
 @class QTProtocolClass;
+@class QTRegister;
+@class QTRestrict;
+@class QTRetain;
+@class QTReturn;
+@class QTSelfClass;
+@class QTShort;
+@class QTSigned;
+@class QTSizeof;
+@class QTStatic;
 @class QTObject;
 @class QTObjectMapper;
 @class QTOf;
@@ -228,27 +239,6 @@
 @class QTPrivate;
 @class QTProtected;
 @class QTProtocol;
-@class QTSerializerProvider;
-@class QTSimpleModule;
-@class QTStdDeserializer;
-@class QTStdSerializer;
-@class QTNew;
-@class QTObj4;
-@class QTRegister;
-@class QTRestrict;
-@class QTRetain;
-@class QTReturn;
-@class QTSelfClass;
-@class QTShort;
-@class QTSigned;
-@class QTSizeof;
-@class QTStatic;
-@class QTStruct;
-@class QTSwitch;
-@class QTTrue;
-@class QTTypeClass;
-@class QTTypedef;
-@class QTTypeof;
 @class QTPublic;
 @class QTQuicktype;
 @class QTRaise;
@@ -271,11 +261,27 @@
 @class QTSelect;
 @class QTSelf;
 @class QTSerialize;
+@class QTSerializerProvider;
 @class QTSet;
+@class QTSimpleModule;
 @class QTStackalloc;
 @class QTStandards;
 @class QTStaticAssert;
+@class QTObj5;
+@class QTStruct;
+@class QTSwitch;
+@class QTTrue;
+@class QTTypeClass;
+@class QTTypedef;
+@class QTTypeof;
+@class QTUnion;
+@class QTUnsigned;
+@class QTVoid;
+@class QTVolatile;
+@class QTWhile;
 @class QTStaticCast;
+@class QTStdDeserializer;
+@class QTStdSerializer;
 @class QTStrictfp;
 @class QTString;
 @class QTSubscript;
@@ -305,12 +311,6 @@
 @class QTUlong;
 @class QTUnchecked;
 @class QTUndefined;
-@class QTObj5;
-@class QTUnion;
-@class QTUnsigned;
-@class QTVoid;
-@class QTVolatile;
-@class QTWhile;
 @class QTUnowned;
 @class QTUnsafe;
 @class QTUshort;
@@ -414,13 +414,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, strong) QTDateOnly *dateOnly;
 @property (nonatomic, strong) QTDateOnlyConverter *dateOnlyConverter;
 @property (nonatomic, strong) QTDateParseHandling *dateParseHandling;
-@property (nonatomic, strong) QTDateTime *dateTime;
-@property (nonatomic, strong) QTDateTimeStyles *dateTimeStyles;
-@property (nonatomic, strong) QTDebugger *debugger;
-@property (nonatomic, strong) QTDecimal *decimal;
-@property (nonatomic, strong) QTDeclare *declare;
-@property (nonatomic, strong) QTDecltype *decltype;
-@property (nonatomic, strong) QTDecodeString *decodeString;
 @property (nonatomic, assign) NSInteger dummy;
 @property (nonatomic, strong) QTEmpty *empty;
 @property (nonatomic, strong) QTImaginery *imaginery;
@@ -635,34 +628,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger dateParseHandling;
 @end
 
-@interface QTDateTime : NSObject
-@property (nonatomic, copy) NSString *dateTime;
-@end
-
-@interface QTDateTimeStyles : NSObject
-@property (nonatomic, assign) NSInteger dateTimeStyles;
-@end
-
-@interface QTDebugger : NSObject
-@property (nonatomic, assign) NSInteger debugger;
-@end
-
-@interface QTDecimal : NSObject
-@property (nonatomic, assign) NSInteger decimal;
-@end
-
-@interface QTDeclare : NSObject
-@property (nonatomic, assign) NSInteger declare;
-@end
-
-@interface QTDecltype : NSObject
-@property (nonatomic, assign) NSInteger decltype;
-@end
-
-@interface QTDecodeString : NSObject
-@property (nonatomic, assign) NSInteger decodeString;
-@end
-
 @interface QTEmpty : NSObject
 @property (nonatomic, assign) NSInteger empty;
 @end
@@ -724,6 +689,13 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @end
 
 @interface QTObj2 : NSObject
+@property (nonatomic, strong) QTDateTime *dateTime;
+@property (nonatomic, strong) QTDateTimeStyles *dateTimeStyles;
+@property (nonatomic, strong) QTDebugger *debugger;
+@property (nonatomic, strong) QTDecimal *decimal;
+@property (nonatomic, strong) QTDeclare *declare;
+@property (nonatomic, strong) QTDecltype *decltype;
+@property (nonatomic, strong) QTDecodeString *decodeString;
 @property (nonatomic, strong) QTDef *def;
 @property (nonatomic, strong) QTDefer *defer;
 @property (nonatomic, strong) QTDeinit *deinit;
@@ -769,14 +741,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, strong) QTImp *imp;
 @property (nonatomic, strong) QTImplements *implements;
 @property (nonatomic, strong) QTImplicit *implicit;
-@property (nonatomic, strong) QTImport *import;
-@property (nonatomic, strong) QTIn *in;
-@property (nonatomic, strong) QTIndirect *indirect;
-@property (nonatomic, strong) QTInfix *infix;
-@property (nonatomic, strong) QTInout *inout;
-@property (nonatomic, strong) QTInstanceof *instanceof;
-@property (nonatomic, strong) QTInterface *interface;
-@property (nonatomic, strong) QTInternal *internal;
 @property (nonatomic, strong) QTDefault *obj2Default;
 @property (nonatomic, strong) QTDo *obj2Do;
 @property (nonatomic, strong) QTDouble *obj2Double;
@@ -788,11 +752,36 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, strong) QTFor *obj2For;
 @property (nonatomic, strong) QTGoto *obj2Goto;
 @property (nonatomic, strong) QTIf *obj2If;
-@property (nonatomic, strong) QTInline *obj2Inline;
-@property (nonatomic, strong) QTInt *obj2Int;
 @property (nonatomic, strong) QTFalseClass *theFalse;
 @property (nonatomic, strong) QTHashCode *theHashCode;
-@property (nonatomic, strong) QTInit *theInit;
+@end
+
+@interface QTDateTime : NSObject
+@property (nonatomic, copy) NSString *dateTime;
+@end
+
+@interface QTDateTimeStyles : NSObject
+@property (nonatomic, assign) NSInteger dateTimeStyles;
+@end
+
+@interface QTDebugger : NSObject
+@property (nonatomic, assign) NSInteger debugger;
+@end
+
+@interface QTDecimal : NSObject
+@property (nonatomic, assign) NSInteger decimal;
+@end
+
+@interface QTDeclare : NSObject
+@property (nonatomic, assign) NSInteger declare;
+@end
+
+@interface QTDecltype : NSObject
+@property (nonatomic, assign) NSInteger decltype;
+@end
+
+@interface QTDecodeString : NSObject
+@property (nonatomic, assign) NSInteger decodeString;
 @end
 
 @interface QTDef : NSObject
@@ -971,38 +960,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger implicit;
 @end
 
-@interface QTImport : NSObject
-@property (nonatomic, assign) NSInteger import;
-@end
-
-@interface QTIn : NSObject
-@property (nonatomic, assign) NSInteger in;
-@end
-
-@interface QTIndirect : NSObject
-@property (nonatomic, assign) NSInteger indirect;
-@end
-
-@interface QTInfix : NSObject
-@property (nonatomic, assign) NSInteger infix;
-@end
-
-@interface QTInout : NSObject
-@property (nonatomic, assign) NSInteger inout;
-@end
-
-@interface QTInstanceof : NSObject
-@property (nonatomic, assign) NSInteger instanceof;
-@end
-
-@interface QTInterface : NSObject
-@property (nonatomic, assign) NSInteger interface;
-@end
-
-@interface QTInternal : NSObject
-@property (nonatomic, assign) NSInteger internal;
-@end
-
 @interface QTDefault : NSObject
 @property (nonatomic, assign) NSInteger defaultDefault;
 @end
@@ -1047,14 +1004,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger ifIf;
 @end
 
-@interface QTInline : NSObject
-@property (nonatomic, assign) NSInteger inlineInline;
-@end
-
-@interface QTInt : NSObject
-@property (nonatomic, assign) NSInteger intInt;
-@end
-
 @interface QTFalseClass : NSObject
 @property (nonatomic, assign) NSInteger falseFalse;
 @end
@@ -1063,12 +1012,16 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger theHashCode;
 @end
 
-@interface QTInit : NSObject
-@property (nonatomic, assign) NSInteger theInit;
-@end
-
 @interface QTObj3 : NSObject
 @property (nonatomic, assign) NSInteger dummy;
+@property (nonatomic, strong) QTImport *import;
+@property (nonatomic, strong) QTIn *in;
+@property (nonatomic, strong) QTIndirect *indirect;
+@property (nonatomic, strong) QTInfix *infix;
+@property (nonatomic, strong) QTInout *inout;
+@property (nonatomic, strong) QTInstanceof *instanceof;
+@property (nonatomic, strong) QTInterface *interface;
+@property (nonatomic, strong) QTInternal *internal;
 @property (nonatomic, strong) QTIs *is;
 @property (nonatomic, strong) QTISODateTimeOffsetConverter *isoDateTimeOffsetConverter;
 @property (nonatomic, strong) QTIterable *iterable;
@@ -1116,45 +1069,49 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, strong) QTNSError *nsError;
 @property (nonatomic, strong) QTNSString *nsString;
 @property (nonatomic, strong) QTNull *null;
-@property (nonatomic, strong) QTNullptr *nullptr;
-@property (nonatomic, strong) QTNumber *number;
+@property (nonatomic, strong) QTInline *obj3Inline;
+@property (nonatomic, strong) QTInt *obj3Int;
 @property (nonatomic, strong) QTLong *obj3Long;
 @property (nonatomic, strong) QTNil *obj3Nil;
 @property (nonatomic, strong) QTNonatomic *obj3Nonatomic;
 @property (nonatomic, strong) QTNoneClass *obj3None;
 @property (nonatomic, strong) QTNullClass *obj3Null;
-@property (nonatomic, strong) QTProtocolClass *obj3Protocol;
-@property (nonatomic, strong) QTObject *object;
-@property (nonatomic, strong) QTObjectMapper *objectMapper;
-@property (nonatomic, strong) QTOf *of;
-@property (nonatomic, strong) QTOneway *oneway;
-@property (nonatomic, strong) QTOpen *open;
-@property (nonatomic, strong) QTOperator *operator;
-@property (nonatomic, strong) QTOptional *optional;
-@property (nonatomic, strong) QTOr *or;
-@property (nonatomic, strong) QTOrEq *orEq;
-@property (nonatomic, strong) QTOut *out;
-@property (nonatomic, strong) QTOverride *override;
-@property (nonatomic, strong) QTPackage *package;
-@property (nonatomic, strong) QTParams *params;
-@property (nonatomic, strong) QTPass *pass;
-@property (nonatomic, strong) QTPort *port;
-@property (nonatomic, strong) QTPostfix *postfix;
-@property (nonatomic, strong) QTPrecedence *precedence;
-@property (nonatomic, strong) QTPrefix *prefix;
-@property (nonatomic, strong) QTPrint *print;
-@property (nonatomic, strong) QTPrintMembers *printMembers;
-@property (nonatomic, strong) QTPrintf *printf;
-@property (nonatomic, strong) QTPrivate *private;
-@property (nonatomic, strong) QTProtected *protected;
-@property (nonatomic, strong) QTProtocol *protocol;
-@property (nonatomic, strong) QTSerializerProvider *serializerProvider;
-@property (nonatomic, strong) QTSimpleModule *simpleModule;
-@property (nonatomic, strong) QTStdDeserializer *stdDeserializer;
-@property (nonatomic, strong) QTStdSerializer *stdSerializer;
+@property (nonatomic, strong) QTInit *theInit;
 @property (nonatomic, strong) QTNew *theNew;
 @end
 
+@interface QTImport : NSObject
+@property (nonatomic, assign) NSInteger import;
+@end
+
+@interface QTIn : NSObject
+@property (nonatomic, assign) NSInteger in;
+@end
+
+@interface QTIndirect : NSObject
+@property (nonatomic, assign) NSInteger indirect;
+@end
+
+@interface QTInfix : NSObject
+@property (nonatomic, assign) NSInteger infix;
+@end
+
+@interface QTInout : NSObject
+@property (nonatomic, assign) NSInteger inout;
+@end
+
+@interface QTInstanceof : NSObject
+@property (nonatomic, assign) NSInteger instanceof;
+@end
+
+@interface QTInterface : NSObject
+@property (nonatomic, assign) NSInteger interface;
+@end
+
+@interface QTInternal : NSObject
+@property (nonatomic, assign) NSInteger internal;
+@end
+
 @interface QTIs : NSObject
 @property (nonatomic, assign) NSInteger is;
 @end
@@ -1343,12 +1300,12 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger null;
 @end
 
-@interface QTNullptr : NSObject
-@property (nonatomic, assign) NSInteger nullptr;
+@interface QTInline : NSObject
+@property (nonatomic, assign) NSInteger inlineInline;
 @end
 
-@interface QTNumber : NSObject
-@property (nonatomic, assign) NSInteger number;
+@interface QTInt : NSObject
+@property (nonatomic, assign) NSInteger intInt;
 @end
 
 @interface QTLong : NSObject
@@ -1371,10 +1328,130 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger null;
 @end
 
+@interface QTInit : NSObject
+@property (nonatomic, assign) NSInteger theInit;
+@end
+
+@interface QTNew : NSObject
+@property (nonatomic, assign) NSInteger theNew;
+@end
+
+@interface QTObj4 : NSObject
+@property (nonatomic, assign) NSInteger dummy;
+@property (nonatomic, strong) QTNullptr *nullptr;
+@property (nonatomic, strong) QTNumber *number;
+@property (nonatomic, strong) QTProtocolClass *obj4Protocol;
+@property (nonatomic, strong) QTRegister *obj4Register;
+@property (nonatomic, strong) QTRestrict *obj4Restrict;
+@property (nonatomic, strong) QTRetain *obj4Retain;
+@property (nonatomic, strong) QTReturn *obj4Return;
+@property (nonatomic, strong) QTSelfClass *obj4Self;
+@property (nonatomic, strong) QTShort *obj4Short;
+@property (nonatomic, strong) QTSigned *obj4Signed;
+@property (nonatomic, strong) QTSizeof *obj4Sizeof;
+@property (nonatomic, strong) QTStatic *obj4Static;
+@property (nonatomic, strong) QTObject *object;
+@property (nonatomic, strong) QTObjectMapper *objectMapper;
+@property (nonatomic, strong) QTOf *of;
+@property (nonatomic, strong) QTOneway *oneway;
+@property (nonatomic, strong) QTOpen *open;
+@property (nonatomic, strong) QTOperator *operator;
+@property (nonatomic, strong) QTOptional *optional;
+@property (nonatomic, strong) QTOr *or;
+@property (nonatomic, strong) QTOrEq *orEq;
+@property (nonatomic, strong) QTOut *out;
+@property (nonatomic, strong) QTOverride *override;
+@property (nonatomic, strong) QTPackage *package;
+@property (nonatomic, strong) QTParams *params;
+@property (nonatomic, strong) QTPass *pass;
+@property (nonatomic, strong) QTPort *port;
+@property (nonatomic, strong) QTPostfix *postfix;
+@property (nonatomic, strong) QTPrecedence *precedence;
+@property (nonatomic, strong) QTPrefix *prefix;
+@property (nonatomic, strong) QTPrint *print;
+@property (nonatomic, strong) QTPrintMembers *printMembers;
+@property (nonatomic, strong) QTPrintf *printf;
+@property (nonatomic, strong) QTPrivate *private;
+@property (nonatomic, strong) QTProtected *protected;
+@property (nonatomic, strong) QTProtocol *protocol;
+@property (nonatomic, strong) QTPublic *public;
+@property (nonatomic, strong) QTQuicktype *quicktype;
+@property (nonatomic, strong) QTRaise *raise;
+@property (nonatomic, strong) QTRange *range;
+@property (nonatomic, strong) QTReadonly *readonly;
+@property (nonatomic, strong) QTRef *ref;
+@property (nonatomic, strong) QTRegExp *regExp;
+@property (nonatomic, strong) QTReinterpretCast *reinterpretCast;
+@property (nonatomic, strong) QTRepeat *repeat;
+@property (nonatomic, strong) QTRequire *require;
+@property (nonatomic, strong) QTRequired *required;
+@property (nonatomic, strong) QTRequires *requires;
+@property (nonatomic, strong) QTRethrows *rethrows;
+@property (nonatomic, strong) QTRight *right;
+@property (nonatomic, strong) QTRuntimeType *runtimeType;
+@property (nonatomic, strong) QTS *s;
+@property (nonatomic, strong) QTSbyte *sbyte;
+@property (nonatomic, strong) QTSealed *sealed;
+@property (nonatomic, strong) QTSel *sel;
+@property (nonatomic, strong) QTSelect *select;
+@property (nonatomic, strong) QTSelf *self;
+@property (nonatomic, strong) QTSerialize *serialize;
+@property (nonatomic, strong) QTSerializerProvider *serializerProvider;
+@property (nonatomic, strong) QTSet *set;
+@property (nonatomic, strong) QTSimpleModule *simpleModule;
+@property (nonatomic, strong) QTStackalloc *stackalloc;
+@property (nonatomic, strong) QTStandards *standards;
+@property (nonatomic, strong) QTStaticAssert *staticAssert;
+@end
+
+@interface QTNullptr : NSObject
+@property (nonatomic, assign) NSInteger nullptr;
+@end
+
+@interface QTNumber : NSObject
+@property (nonatomic, assign) NSInteger number;
+@end
+
 @interface QTProtocolClass : NSObject
 @property (nonatomic, assign) NSInteger protocol;
 @end
 
+@interface QTRegister : NSObject
+@property (nonatomic, assign) NSInteger registerRegister;
+@end
+
+@interface QTRestrict : NSObject
+@property (nonatomic, assign) NSInteger restrictRestrict;
+@end
+
+@interface QTRetain : NSObject
+@property (nonatomic, assign) NSInteger retainRetain;
+@end
+
+@interface QTReturn : NSObject
+@property (nonatomic, assign) NSInteger returnReturn;
+@end
+
+@interface QTSelfClass : NSObject
+@property (nonatomic, assign) NSInteger self;
+@end
+
+@interface QTShort : NSObject
+@property (nonatomic, assign) NSInteger shortShort;
+@end
+
+@interface QTSigned : NSObject
+@property (nonatomic, assign) NSInteger signedSigned;
+@end
+
+@interface QTSizeof : NSObject
+@property (nonatomic, assign) NSInteger sizeofSizeof;
+@end
+
+@interface QTStatic : NSObject
+@property (nonatomic, assign) NSInteger staticStatic;
+@end
+
 @interface QTObject : NSObject
 @property (nonatomic, assign) NSInteger object;
 @end
@@ -1471,161 +1548,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger protocol;
 @end
 
-@interface QTSerializerProvider : NSObject
-@property (nonatomic, assign) NSInteger serializerProvider;
-@end
-
-@interface QTSimpleModule : NSObject
-@property (nonatomic, assign) NSInteger simpleModule;
-@end
-
-@interface QTStdDeserializer : NSObject
-@property (nonatomic, assign) NSInteger stdDeserializer;
-@end
-
-@interface QTStdSerializer : NSObject
-@property (nonatomic, assign) NSInteger stdSerializer;
-@end
-
-@interface QTNew : NSObject
-@property (nonatomic, assign) NSInteger theNew;
-@end
-
-@interface QTObj4 : NSObject
-@property (nonatomic, assign) NSInteger dummy;
-@property (nonatomic, strong) QTRegister *obj4Register;
-@property (nonatomic, strong) QTRestrict *obj4Restrict;
-@property (nonatomic, strong) QTRetain *obj4Retain;
-@property (nonatomic, strong) QTReturn *obj4Return;
-@property (nonatomic, strong) QTSelfClass *obj4Self;
-@property (nonatomic, strong) QTShort *obj4Short;
-@property (nonatomic, strong) QTSigned *obj4Signed;
-@property (nonatomic, strong) QTSizeof *obj4Sizeof;
-@property (nonatomic, strong) QTStatic *obj4Static;
-@property (nonatomic, strong) QTStruct *obj4Struct;
-@property (nonatomic, strong) QTSwitch *obj4Switch;
-@property (nonatomic, strong) QTTrue *obj4True;
-@property (nonatomic, strong) QTTypeClass *obj4Type;
-@property (nonatomic, strong) QTTypedef *obj4Typedef;
-@property (nonatomic, strong) QTTypeof *obj4Typeof;
-@property (nonatomic, strong) QTPublic *public;
-@property (nonatomic, strong) QTQuicktype *quicktype;
-@property (nonatomic, strong) QTRaise *raise;
-@property (nonatomic, strong) QTRange *range;
-@property (nonatomic, strong) QTReadonly *readonly;
-@property (nonatomic, strong) QTRef *ref;
-@property (nonatomic, strong) QTRegExp *regExp;
-@property (nonatomic, strong) QTReinterpretCast *reinterpretCast;
-@property (nonatomic, strong) QTRepeat *repeat;
-@property (nonatomic, strong) QTRequire *require;
-@property (nonatomic, strong) QTRequired *required;
-@property (nonatomic, strong) QTRequires *requires;
-@property (nonatomic, strong) QTRethrows *rethrows;
-@property (nonatomic, strong) QTRight *right;
-@property (nonatomic, strong) QTRuntimeType *runtimeType;
-@property (nonatomic, strong) QTS *s;
-@property (nonatomic, strong) QTSbyte *sbyte;
-@property (nonatomic, strong) QTSealed *sealed;
-@property (nonatomic, strong) QTSel *sel;
-@property (nonatomic, strong) QTSelect *select;
-@property (nonatomic, strong) QTSelf *self;
-@property (nonatomic, strong) QTSerialize *serialize;
-@property (nonatomic, strong) QTSet *set;
-@property (nonatomic, strong) QTStackalloc *stackalloc;
-@property (nonatomic, strong) QTStandards *standards;
-@property (nonatomic, strong) QTStaticAssert *staticAssert;
-@property (nonatomic, strong) QTStaticCast *staticCast;
-@property (nonatomic, strong) QTStrictfp *strictfp;
-@property (nonatomic, strong) QTString *string;
-@property (nonatomic, strong) QTSubscript *subscript;
-@property (nonatomic, strong) QTSuper *super;
-@property (nonatomic, strong) QTSymbol *symbol;
-@property (nonatomic, strong) QTSynchronized *synchronized;
-@property (nonatomic, strong) QTSystem *system;
-@property (nonatomic, strong) QTTemplate *template;
-@property (nonatomic, strong) QTTrueClass *theTrue;
-@property (nonatomic, strong) QTThen *then;
-@property (nonatomic, strong) QTThis *this;
-@property (nonatomic, strong) QTThreadLocal *threadLocal;
-@property (nonatomic, strong) QTThrow *throw;
-@property (nonatomic, strong) QTThrows *throws;
-@property (nonatomic, strong) QTTimeOnly *timeOnly;
-@property (nonatomic, strong) QTTimeOnlyConverter *timeOnlyConverter;
-@property (nonatomic, strong) QTToJSON *toJSON;
-@property (nonatomic, strong) QTToString *toString;
-@property (nonatomic, strong) QTTopLevelClass *topLevel;
-@property (nonatomic, strong) QTTransient *transient;
-@property (nonatomic, strong) QTTry *try;
-@property (nonatomic, strong) QTType *type;
-@property (nonatomic, strong) QTTypealias *typealias;
-@property (nonatomic, strong) QTTypeid *typeid;
-@property (nonatomic, strong) QTTypename *typename;
-@property (nonatomic, strong) QTUint *uint;
-@property (nonatomic, strong) QTUlong *ulong;
-@property (nonatomic, strong) QTUnchecked *unchecked;
-@property (nonatomic, strong) QTUndefined *undefined;
-@end
-
-@interface QTRegister : NSObject
-@property (nonatomic, assign) NSInteger registerRegister;
-@end
-
-@interface QTRestrict : NSObject
-@property (nonatomic, assign) NSInteger restrictRestrict;
-@end
-
-@interface QTRetain : NSObject
-@property (nonatomic, assign) NSInteger retainRetain;
-@end
-
-@interface QTReturn : NSObject
-@property (nonatomic, assign) NSInteger returnReturn;
-@end
-
-@interface QTSelfClass : NSObject
-@property (nonatomic, assign) NSInteger self;
-@end
-
-@interface QTShort : NSObject
-@property (nonatomic, assign) NSInteger shortShort;
-@end
-
-@interface QTSigned : NSObject
-@property (nonatomic, assign) NSInteger signedSigned;
-@end
-
-@interface QTSizeof : NSObject
-@property (nonatomic, assign) NSInteger sizeofSizeof;
-@end
-
-@interface QTStatic : NSObject
-@property (nonatomic, assign) NSInteger staticStatic;
-@end
-
-@interface QTStruct : NSObject
-@property (nonatomic, assign) NSInteger structStruct;
-@end
-
-@interface QTSwitch : NSObject
-@property (nonatomic, assign) NSInteger switchSwitch;
-@end
-
-@interface QTTrue : NSObject
-@property (nonatomic, assign) NSInteger trueTrue;
-@end
-
-@interface QTTypeClass : NSObject
-@property (nonatomic, assign) NSInteger type;
-@end
-
-@interface QTTypedef : NSObject
-@property (nonatomic, assign) NSInteger typedefTypedef;
-@end
-
-@interface QTTypeof : NSObject
-@property (nonatomic, assign) NSInteger typeofTypeof;
-@end
-
 @interface QTPublic : NSObject
 @property (nonatomic, assign) NSInteger public;
 @end
@@ -1714,10 +1636,18 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger serialize;
 @end
 
+@interface QTSerializerProvider : NSObject
+@property (nonatomic, assign) NSInteger serializerProvider;
+@end
+
 @interface QTSet : NSObject
 @property (nonatomic, assign) NSInteger set;
 @end
 
+@interface QTSimpleModule : NSObject
+@property (nonatomic, assign) NSInteger simpleModule;
+@end
+
 @interface QTStackalloc : NSObject
 @property (nonatomic, assign) NSInteger stackalloc;
 @end
@@ -1730,10 +1660,127 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger staticAssert;
 @end
 
+@interface QTObj5 : NSObject
+@property (nonatomic, assign) NSInteger dummy;
+@property (nonatomic, strong) QTStruct *obj5Struct;
+@property (nonatomic, strong) QTSwitch *obj5Switch;
+@property (nonatomic, strong) QTTrue *obj5True;
+@property (nonatomic, strong) QTTypeClass *obj5Type;
+@property (nonatomic, strong) QTTypedef *obj5Typedef;
+@property (nonatomic, strong) QTTypeof *obj5Typeof;
+@property (nonatomic, strong) QTUnion *obj5Union;
+@property (nonatomic, strong) QTUnsigned *obj5Unsigned;
+@property (nonatomic, strong) QTVoid *obj5Void;
+@property (nonatomic, strong) QTVolatile *obj5Volatile;
+@property (nonatomic, strong) QTWhile *obj5While;
+@property (nonatomic, strong) QTStaticCast *staticCast;
+@property (nonatomic, strong) QTStdDeserializer *stdDeserializer;
+@property (nonatomic, strong) QTStdSerializer *stdSerializer;
+@property (nonatomic, strong) QTStrictfp *strictfp;
+@property (nonatomic, strong) QTString *string;
+@property (nonatomic, strong) QTSubscript *subscript;
+@property (nonatomic, strong) QTSuper *super;
+@property (nonatomic, strong) QTSymbol *symbol;
+@property (nonatomic, strong) QTSynchronized *synchronized;
+@property (nonatomic, strong) QTSystem *system;
+@property (nonatomic, strong) QTTemplate *template;
+@property (nonatomic, strong) QTTrueClass *theTrue;
+@property (nonatomic, strong) QTThen *then;
+@property (nonatomic, strong) QTThis *this;
+@property (nonatomic, strong) QTThreadLocal *threadLocal;
+@property (nonatomic, strong) QTThrow *throw;
+@property (nonatomic, strong) QTThrows *throws;
+@property (nonatomic, strong) QTTimeOnly *timeOnly;
+@property (nonatomic, strong) QTTimeOnlyConverter *timeOnlyConverter;
+@property (nonatomic, strong) QTToJSON *toJSON;
+@property (nonatomic, strong) QTToString *toString;
+@property (nonatomic, strong) QTTopLevelClass *topLevel;
+@property (nonatomic, strong) QTTransient *transient;
+@property (nonatomic, strong) QTTry *try;
+@property (nonatomic, strong) QTType *type;
+@property (nonatomic, strong) QTTypealias *typealias;
+@property (nonatomic, strong) QTTypeid *typeid;
+@property (nonatomic, strong) QTTypename *typename;
+@property (nonatomic, strong) QTUint *uint;
+@property (nonatomic, strong) QTUlong *ulong;
+@property (nonatomic, strong) QTUnchecked *unchecked;
+@property (nonatomic, strong) QTUndefined *undefined;
+@property (nonatomic, strong) QTUnowned *unowned;
+@property (nonatomic, strong) QTUnsafe *unsafe;
+@property (nonatomic, strong) QTUshort *ushort;
+@property (nonatomic, strong) QTUsing *using;
+@property (nonatomic, strong) QTUtf8JSONReader *utf8JSONReader;
+@property (nonatomic, strong) QTUtf8JSONWriter *utf8JSONWriter;
+@property (nonatomic, strong) QTUUID *uuid;
+@property (nonatomic, strong) QTVar *var;
+@property (nonatomic, strong) QTVirtual *virtual;
+@property (nonatomic, strong) QTWcharT *wcharT;
+@property (nonatomic, strong) QTWeak *weak;
+@property (nonatomic, strong) QTWhere *where;
+@property (nonatomic, strong) QTWillSet *willSet;
+@property (nonatomic, strong) QTWith *with;
+@property (nonatomic, strong) QTXor *xor;
+@property (nonatomic, strong) QTXorEq *xorEq;
+@property (nonatomic, strong) QTYes *yes;
+@property (nonatomic, strong) QTYield *yield;
+@end
+
+@interface QTStruct : NSObject
+@property (nonatomic, assign) NSInteger structStruct;
+@end
+
+@interface QTSwitch : NSObject
+@property (nonatomic, assign) NSInteger switchSwitch;
+@end
+
+@interface QTTrue : NSObject
+@property (nonatomic, assign) NSInteger trueTrue;
+@end
+
+@interface QTTypeClass : NSObject
+@property (nonatomic, assign) NSInteger type;
+@end
+
+@interface QTTypedef : NSObject
+@property (nonatomic, assign) NSInteger typedefTypedef;
+@end
+
+@interface QTTypeof : NSObject
+@property (nonatomic, assign) NSInteger typeofTypeof;
+@end
+
+@interface QTUnion : NSObject
+@property (nonatomic, assign) NSInteger unionUnion;
+@end
+
+@interface QTUnsigned : NSObject
+@property (nonatomic, assign) NSInteger unsignedUnsigned;
+@end
+
+@interface QTVoid : NSObject
+@property (nonatomic, assign) NSInteger voidVoid;
+@end
+
+@interface QTVolatile : NSObject
+@property (nonatomic, assign) NSInteger volatileVolatile;
+@end
+
+@interface QTWhile : NSObject
+@property (nonatomic, assign) NSInteger whileWhile;
+@end
+
 @interface QTStaticCast : NSObject
 @property (nonatomic, assign) NSInteger staticCast;
 @end
 
+@interface QTStdDeserializer : NSObject
+@property (nonatomic, assign) NSInteger stdDeserializer;
+@end
+
+@interface QTStdSerializer : NSObject
+@property (nonatomic, assign) NSInteger stdSerializer;
+@end
+
 @interface QTStrictfp : NSObject
 @property (nonatomic, assign) NSInteger strictfp;
 @end
@@ -1850,53 +1897,6 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, assign) NSInteger undefined;
 @end
 
-@interface QTObj5 : NSObject
-@property (nonatomic, assign) NSInteger dummy;
-@property (nonatomic, strong) QTUnion *obj5Union;
-@property (nonatomic, strong) QTUnsigned *obj5Unsigned;
-@property (nonatomic, strong) QTVoid *obj5Void;
-@property (nonatomic, strong) QTVolatile *obj5Volatile;
-@property (nonatomic, strong) QTWhile *obj5While;
-@property (nonatomic, strong) QTUnowned *unowned;
-@property (nonatomic, strong) QTUnsafe *unsafe;
-@property (nonatomic, strong) QTUshort *ushort;
-@property (nonatomic, strong) QTUsing *using;
-@property (nonatomic, strong) QTUtf8JSONReader *utf8JSONReader;
-@property (nonatomic, strong) QTUtf8JSONWriter *utf8JSONWriter;
-@property (nonatomic, strong) QTUUID *uuid;
-@property (nonatomic, strong) QTVar *var;
-@property (nonatomic, strong) QTVirtual *virtual;
-@property (nonatomic, strong) QTWcharT *wcharT;
-@property (nonatomic, strong) QTWeak *weak;
-@property (nonatomic, strong) QTWhere *where;
-@property (nonatomic, strong) QTWillSet *willSet;
-@property (nonatomic, strong) QTWith *with;
-@property (nonatomic, strong) QTXor *xor;
-@property (nonatomic, strong) QTXorEq *xorEq;
-@property (nonatomic, strong) QTYes *yes;
-@property (nonatomic, strong) QTYield *yield;
-@end
-
-@interface QTUnion : NSObject
-@property (nonatomic, assign) NSInteger unionUnion;
-@end
-
-@interface QTUnsigned : NSObject
-@property (nonatomic, assign) NSInteger unsignedUnsigned;
-@end
-
-@interface QTVoid : NSObject
-@property (nonatomic, assign) NSInteger voidVoid;
-@end
-
-@interface QTVolatile : NSObject
-@property (nonatomic, assign) NSInteger volatileVolatile;
-@end
-
-@interface QTWhile : NSObject
-@property (nonatomic, assign) NSInteger whileWhile;
-@end
-
 @interface QTUnowned : NSObject
 @property (nonatomic, assign) NSInteger unowned;
 @end
diff --git a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
index 82885cd..2933a52 100644
--- a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
@@ -263,117 +263,117 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDateTime (JSONConversion)
+@interface QTEmpty (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDateTimeStyles (JSONConversion)
+@interface QTImaginery (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDebugger (JSONConversion)
+@interface QTASM (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDecimal (JSONConversion)
+@interface QTAnyClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDeclare (JSONConversion)
+@interface QTAtomic (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDecltype (JSONConversion)
+@interface QTAuto (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDecodeString (JSONConversion)
+@interface QTBool (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTEmpty (JSONConversion)
+@interface QTBoolClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTImaginery (JSONConversion)
+@interface QTBreak (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTASM (JSONConversion)
+@interface QTCase (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTAnyClass (JSONConversion)
+@interface QTChar (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTAtomic (JSONConversion)
+@interface QTClassClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTAuto (JSONConversion)
+@interface QTConst (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTBool (JSONConversion)
+@interface QTContinue (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTBoolClass (JSONConversion)
+@interface QTObj1Bool (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTBreak (JSONConversion)
+@interface QTObj2 (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTCase (JSONConversion)
+@interface QTDateTime (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTChar (JSONConversion)
+@interface QTDateTimeStyles (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTClassClass (JSONConversion)
+@interface QTDebugger (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTConst (JSONConversion)
+@interface QTDecimal (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTContinue (JSONConversion)
+@interface QTDeclare (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTObj1Bool (JSONConversion)
+@interface QTDecltype (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTObj2 (JSONConversion)
+@interface QTDecodeString (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
@@ -598,127 +598,112 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTImport (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTIn (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTIndirect (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTInfix (JSONConversion)
+@interface QTDefault (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInout (JSONConversion)
+@interface QTDo (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInstanceof (JSONConversion)
+@interface QTDouble (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInterface (JSONConversion)
+@interface QTElse (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInternal (JSONConversion)
+@interface QTEnum (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDefault (JSONConversion)
+@interface QTExtern (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDo (JSONConversion)
+@interface QTFalse (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTDouble (JSONConversion)
+@interface QTFloat (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTElse (JSONConversion)
+@interface QTFor (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTEnum (JSONConversion)
+@interface QTGoto (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTExtern (JSONConversion)
+@interface QTIf (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTFalse (JSONConversion)
+@interface QTFalseClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTFloat (JSONConversion)
+@interface QTHashCode (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTFor (JSONConversion)
+@interface QTObj3 (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTGoto (JSONConversion)
+@interface QTImport (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTIf (JSONConversion)
+@interface QTIn (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInline (JSONConversion)
+@interface QTIndirect (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInt (JSONConversion)
+@interface QTInfix (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTFalseClass (JSONConversion)
+@interface QTInout (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTHashCode (JSONConversion)
+@interface QTInstanceof (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTInit (JSONConversion)
+@interface QTInterface (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTObj3 (JSONConversion)
+@interface QTInternal (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
@@ -958,12 +943,12 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTNullptr (JSONConversion)
+@interface QTInline (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTNumber (JSONConversion)
+@interface QTInt (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
@@ -993,232 +978,197 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTProtocolClass (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTObject (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTObjectMapper (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTOf (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTOneway (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTOpen (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTOperator (JSONConversion)
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
-- (NSDictionary *)JSONDictionary;
-@end
-
-@interface QTOptional (JSONConversion)
+@interface QTInit (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTOr (JSONConversion)
+@interface QTNew (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTOrEq (JSONConversion)
+@interface QTObj4 (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTOut (JSONConversion)
+@interface QTNullptr (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTOverride (JSONConversion)
+@interface QTNumber (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPackage (JSONConversion)
+@interface QTProtocolClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTParams (JSONConversion)
+@interface QTRegister (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPass (JSONConversion)
+@interface QTRestrict (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPort (JSONConversion)
+@interface QTRetain (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPostfix (JSONConversion)
+@interface QTReturn (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrecedence (JSONConversion)
+@interface QTSelfClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrefix (JSONConversion)
+@interface QTShort (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrint (JSONConversion)
+@interface QTSigned (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrintMembers (JSONConversion)
+@interface QTSizeof (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrintf (JSONConversion)
+@interface QTStatic (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTPrivate (JSONConversion)
+@interface QTObject (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTProtected (JSONConversion)
+@interface QTObjectMapper (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTProtocol (JSONConversion)
+@interface QTOf (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSerializerProvider (JSONConversion)
+@interface QTOneway (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSimpleModule (JSONConversion)
+@interface QTOpen (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStdDeserializer (JSONConversion)
+@interface QTOperator (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStdSerializer (JSONConversion)
+@interface QTOptional (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTNew (JSONConversion)
+@interface QTOr (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTObj4 (JSONConversion)
+@interface QTOrEq (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTRegister (JSONConversion)
+@interface QTOut (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTRestrict (JSONConversion)
+@interface QTOverride (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTRetain (JSONConversion)
+@interface QTPackage (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTReturn (JSONConversion)
+@interface QTParams (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSelfClass (JSONConversion)
+@interface QTPass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTShort (JSONConversion)
+@interface QTPort (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSigned (JSONConversion)
+@interface QTPostfix (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSizeof (JSONConversion)
+@interface QTPrecedence (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStatic (JSONConversion)
+@interface QTPrefix (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStruct (JSONConversion)
+@interface QTPrint (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSwitch (JSONConversion)
+@interface QTPrintMembers (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTrue (JSONConversion)
+@interface QTPrintf (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypeClass (JSONConversion)
+@interface QTPrivate (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypedef (JSONConversion)
+@interface QTProtected (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypeof (JSONConversion)
+@interface QTProtocol (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
@@ -1333,202 +1283,252 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSet (JSONConversion)
+@interface QTSerializerProvider (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStackalloc (JSONConversion)
+@interface QTSet (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStandards (JSONConversion)
+@interface QTSimpleModule (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStaticAssert (JSONConversion)
+@interface QTStackalloc (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStaticCast (JSONConversion)
+@interface QTStandards (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTStrictfp (JSONConversion)
+@interface QTStaticAssert (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTString (JSONConversion)
+@interface QTObj5 (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSubscript (JSONConversion)
+@interface QTStruct (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSuper (JSONConversion)
+@interface QTSwitch (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSymbol (JSONConversion)
+@interface QTTrue (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSynchronized (JSONConversion)
+@interface QTTypeClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTSystem (JSONConversion)
+@interface QTTypedef (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTemplate (JSONConversion)
+@interface QTTypeof (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTrueClass (JSONConversion)
+@interface QTUnion (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTThen (JSONConversion)
+@interface QTUnsigned (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTThis (JSONConversion)
+@interface QTVoid (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTThreadLocal (JSONConversion)
+@interface QTVolatile (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTThrow (JSONConversion)
+@interface QTWhile (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTThrows (JSONConversion)
+@interface QTStaticCast (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTimeOnly (JSONConversion)
+@interface QTStdDeserializer (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTimeOnlyConverter (JSONConversion)
+@interface QTStdSerializer (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTToJSON (JSONConversion)
+@interface QTStrictfp (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTToString (JSONConversion)
+@interface QTString (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTopLevelClass (JSONConversion)
+@interface QTSubscript (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTransient (JSONConversion)
+@interface QTSuper (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTry (JSONConversion)
+@interface QTSymbol (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTType (JSONConversion)
+@interface QTSynchronized (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypealias (JSONConversion)
+@interface QTSystem (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypeid (JSONConversion)
+@interface QTTemplate (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTTypename (JSONConversion)
+@interface QTTrueClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUint (JSONConversion)
+@interface QTThen (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUlong (JSONConversion)
+@interface QTThis (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUnchecked (JSONConversion)
+@interface QTThreadLocal (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUndefined (JSONConversion)
+@interface QTThrow (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTObj5 (JSONConversion)
+@interface QTThrows (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUnion (JSONConversion)
+@interface QTTimeOnly (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTUnsigned (JSONConversion)
+@interface QTTimeOnlyConverter (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTVoid (JSONConversion)
+@interface QTToJSON (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTVolatile (JSONConversion)
+@interface QTToString (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
-@interface QTWhile (JSONConversion)
+@interface QTTopLevelClass (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTransient (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTry (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTType (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTypealias (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTypeid (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTypename (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUint (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUlong (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUnchecked (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUndefined (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
@@ -1844,13 +1844,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"DateOnly": @"dateOnly",
         @"DateOnlyConverter": @"dateOnlyConverter",
         @"date_parse_handling": @"dateParseHandling",
-        @"DateTime": @"dateTime",
-        @"DateTimeStyles": @"dateTimeStyles",
-        @"debugger": @"debugger",
-        @"decimal": @"decimal",
-        @"declare": @"declare",
-        @"decltype": @"decltype",
-        @"decode_string": @"decodeString",
         @"dummy": @"dummy",
         @"_": @"empty",
         @"_Imaginery": @"imaginery",
@@ -1927,13 +1920,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"DateOnly"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"DateOnlyConverter"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"date_parse_handling"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"DateTime"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"DateTimeStyles"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"debugger"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"decimal"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"declare"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"decltype"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"decode_string"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
         if (![dict[@"_"] isKindOfClass:NSDictionary.class]) return nil;
@@ -2050,20 +2036,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!_dateOnlyConverter && dict[@"DateOnlyConverter"] && ![dict[@"DateOnlyConverter"] isKindOfClass:NSNull.class]) return nil;
         _dateParseHandling = [QTDateParseHandling fromJSONDictionary:(id)_dateParseHandling];
         if (!_dateParseHandling && dict[@"date_parse_handling"] && ![dict[@"date_parse_handling"] isKindOfClass:NSNull.class]) return nil;
-        _dateTime = [QTDateTime fromJSONDictionary:(id)_dateTime];
-        if (!_dateTime && dict[@"DateTime"] && ![dict[@"DateTime"] isKindOfClass:NSNull.class]) return nil;
-        _dateTimeStyles = [QTDateTimeStyles fromJSONDictionary:(id)_dateTimeStyles];
-        if (!_dateTimeStyles && dict[@"DateTimeStyles"] && ![dict[@"DateTimeStyles"] isKindOfClass:NSNull.class]) return nil;
-        _debugger = [QTDebugger fromJSONDictionary:(id)_debugger];
-        if (!_debugger && dict[@"debugger"] && ![dict[@"debugger"] isKindOfClass:NSNull.class]) return nil;
-        _decimal = [QTDecimal fromJSONDictionary:(id)_decimal];
-        if (!_decimal && dict[@"decimal"] && ![dict[@"decimal"] isKindOfClass:NSNull.class]) return nil;
-        _declare = [QTDeclare fromJSONDictionary:(id)_declare];
-        if (!_declare && dict[@"declare"] && ![dict[@"declare"] isKindOfClass:NSNull.class]) return nil;
-        _decltype = [QTDecltype fromJSONDictionary:(id)_decltype];
-        if (!_decltype && dict[@"decltype"] && ![dict[@"decltype"] isKindOfClass:NSNull.class]) return nil;
-        _decodeString = [QTDecodeString fromJSONDictionary:(id)_decodeString];
-        if (!_decodeString && dict[@"decode_string"] && ![dict[@"decode_string"] isKindOfClass:NSNull.class]) return nil;
         _empty = [QTEmpty fromJSONDictionary:(id)_empty];
         if (!_empty && dict[@"_"] && ![dict[@"_"] isKindOfClass:NSNull.class]) return nil;
         _imaginery = [QTImaginery fromJSONDictionary:(id)_imaginery];
@@ -2172,13 +2144,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"DateOnly": [_dateOnly JSONDictionary],
         @"DateOnlyConverter": [_dateOnlyConverter JSONDictionary],
         @"date_parse_handling": [_dateParseHandling JSONDictionary],
-        @"DateTime": [_dateTime JSONDictionary],
-        @"DateTimeStyles": [_dateTimeStyles JSONDictionary],
-        @"debugger": [_debugger JSONDictionary],
-        @"decimal": [_decimal JSONDictionary],
-        @"declare": [_declare JSONDictionary],
-        @"decltype": [_decltype JSONDictionary],
-        @"decode_string": [_decodeString JSONDictionary],
         @"_": [_empty JSONDictionary],
         @"_Imaginery": [_imaginery JSONDictionary],
         @"asm": [_obj1ASM JSONDictionary],
@@ -4438,25 +4403,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDateTime
+@implementation QTEmpty
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"DateTime": @"dateTime",
+        @"_": @"empty",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTime alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEmpty alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"DateTime"] && [dict[@"DateTime"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
-        if (![dict[@"DateTime"] isKindOfClass:NSString.class]) return nil;
+        if (![dict[@"_"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"_"] doubleValue] != [dict[@"_"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4464,22 +4429,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDateTime.properties[key];
+    id resolved = QTEmpty.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDateTime.properties[key];
+    id resolved = QTEmpty.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTDateTime.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTEmpty.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDateTime.properties) {
-        id propertyName = QTDateTime.properties[jsonName];
+    for (id jsonName in QTEmpty.properties) {
+        id propertyName = QTEmpty.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4490,25 +4455,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDateTimeStyles
+@implementation QTImaginery
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"DateTimeStyles": @"dateTimeStyles",
+        @"_Imaginery": @"imaginery",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTimeStyles alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImaginery alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"DateTimeStyles"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"DateTimeStyles"] doubleValue] != [dict[@"DateTimeStyles"] longLongValue]) return nil;
+        if (![dict[@"_Imaginery"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"_Imaginery"] doubleValue] != [dict[@"_Imaginery"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4516,22 +4481,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDateTimeStyles.properties[key];
+    id resolved = QTImaginery.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDateTimeStyles.properties[key];
+    id resolved = QTImaginery.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTDateTimeStyles.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTImaginery.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDateTimeStyles.properties) {
-        id propertyName = QTDateTimeStyles.properties[jsonName];
+    for (id jsonName in QTImaginery.properties) {
+        id propertyName = QTImaginery.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4542,25 +4507,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDebugger
+@implementation QTASM
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"debugger": @"debugger",
+        @"asm": @"asmASM",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDebugger alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTASM alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"debugger"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"debugger"] doubleValue] != [dict[@"debugger"] longLongValue]) return nil;
+        if (![dict[@"asm"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"asm"] doubleValue] != [dict[@"asm"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4568,41 +4533,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDebugger.properties[key];
+    id resolved = QTASM.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDebugger.properties[key];
+    id resolved = QTASM.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDebugger.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTASM.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTASM.properties) {
+        id propertyName = QTASM.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTDecimal
+@implementation QTAnyClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"decimal": @"decimal",
+        @"any": @"any",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecimal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAnyClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"decimal"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"decimal"] doubleValue] != [dict[@"decimal"] longLongValue]) return nil;
+        if (![dict[@"any"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"any"] doubleValue] != [dict[@"any"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4610,41 +4585,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDecimal.properties[key];
+    id resolved = QTAnyClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDecimal.properties[key];
+    id resolved = QTAnyClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDecimal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTAnyClass.properties.allValues];
 }
 @end
 
-@implementation QTDeclare
+@implementation QTAtomic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"declare": @"declare",
+        @"atomic": @"atomicAtomic",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeclare alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAtomic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"declare"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"declare"] doubleValue] != [dict[@"declare"] longLongValue]) return nil;
+        if (![dict[@"atomic"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"atomic"] doubleValue] != [dict[@"atomic"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4652,41 +4627,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDeclare.properties[key];
+    id resolved = QTAtomic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDeclare.properties[key];
+    id resolved = QTAtomic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDeclare.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTAtomic.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTAtomic.properties) {
+        id propertyName = QTAtomic.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTDecltype
+@implementation QTAuto
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"decltype": @"decltype",
+        @"auto": @"autoAuto",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecltype alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAuto alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"decltype"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"decltype"] doubleValue] != [dict[@"decltype"] longLongValue]) return nil;
+        if (![dict[@"auto"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"auto"] doubleValue] != [dict[@"auto"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4694,64 +4679,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDecltype.properties[key];
+    id resolved = QTAuto.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDecltype.properties[key];
+    id resolved = QTAuto.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDecltype.properties.allValues];
-}
-@end
-
-@implementation QTDecodeString
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"decode_string": @"decodeString",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecodeString alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"decode_string"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"decode_string"] doubleValue] != [dict[@"decode_string"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTDecodeString.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTDecodeString.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTDecodeString.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTAuto.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDecodeString.properties) {
-        id propertyName = QTDecodeString.properties[jsonName];
+    for (id jsonName in QTAuto.properties) {
+        id propertyName = QTAuto.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4762,25 +4705,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTEmpty
+@implementation QTBool
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"_": @"empty",
+        @"BOOL": @"boolBool",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEmpty alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBool alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"_"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"_"] doubleValue] != [dict[@"_"] longLongValue]) return nil;
+        if (![dict[@"BOOL"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"BOOL"] doubleValue] != [dict[@"BOOL"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4788,22 +4731,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEmpty.properties[key];
+    id resolved = QTBool.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEmpty.properties[key];
+    id resolved = QTBool.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTEmpty.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTBool.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTEmpty.properties) {
-        id propertyName = QTEmpty.properties[jsonName];
+    for (id jsonName in QTBool.properties) {
+        id propertyName = QTBool.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4814,25 +4757,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTImaginery
+@implementation QTBoolClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"_Imaginery": @"imaginery",
+        @"_Bool": @"boolBool",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImaginery alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBoolClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"_Imaginery"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"_Imaginery"] doubleValue] != [dict[@"_Imaginery"] longLongValue]) return nil;
+        if (![dict[@"_Bool"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"_Bool"] doubleValue] != [dict[@"_Bool"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4840,22 +4783,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImaginery.properties[key];
+    id resolved = QTBoolClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImaginery.properties[key];
+    id resolved = QTBoolClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTImaginery.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTBoolClass.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTImaginery.properties) {
-        id propertyName = QTImaginery.properties[jsonName];
+    for (id jsonName in QTBoolClass.properties) {
+        id propertyName = QTBoolClass.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4866,25 +4809,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTASM
+@implementation QTBreak
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"asm": @"asmASM",
+        @"break": @"breakBreak",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTASM alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBreak alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"asm"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"asm"] doubleValue] != [dict[@"asm"] longLongValue]) return nil;
+        if (![dict[@"break"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"break"] doubleValue] != [dict[@"break"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4892,22 +4835,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTASM.properties[key];
+    id resolved = QTBreak.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTASM.properties[key];
+    id resolved = QTBreak.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTASM.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTBreak.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTASM.properties) {
-        id propertyName = QTASM.properties[jsonName];
+    for (id jsonName in QTBreak.properties) {
+        id propertyName = QTBreak.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -4918,25 +4861,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTAnyClass
+@implementation QTCase
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"any": @"any",
+        @"case": @"caseCase",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAnyClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTCase alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"any"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"any"] doubleValue] != [dict[@"any"] longLongValue]) return nil;
+        if (![dict[@"case"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"case"] doubleValue] != [dict[@"case"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4944,41 +4887,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAnyClass.properties[key];
+    id resolved = QTCase.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAnyClass.properties[key];
+    id resolved = QTCase.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTAnyClass.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTCase.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTCase.properties) {
+        id propertyName = QTCase.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTAtomic
+@implementation QTChar
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"atomic": @"atomicAtomic",
+        @"char": @"charChar",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAtomic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTChar alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"atomic"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"atomic"] doubleValue] != [dict[@"atomic"] longLongValue]) return nil;
+        if (![dict[@"char"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"char"] doubleValue] != [dict[@"char"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -4986,22 +4939,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAtomic.properties[key];
+    id resolved = QTChar.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAtomic.properties[key];
+    id resolved = QTChar.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTAtomic.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTChar.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTAtomic.properties) {
-        id propertyName = QTAtomic.properties[jsonName];
+    for (id jsonName in QTChar.properties) {
+        id propertyName = QTChar.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -5012,25 +4965,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTAuto
+@implementation QTClassClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"auto": @"autoAuto",
+        @"class": @"class",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAuto alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTClassClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"auto"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"auto"] doubleValue] != [dict[@"auto"] longLongValue]) return nil;
+        if (![dict[@"class"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"class"] doubleValue] != [dict[@"class"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -5038,51 +4991,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAuto.properties[key];
+    id resolved = QTClassClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAuto.properties[key];
+    id resolved = QTClassClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTAuto.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTAuto.properties) {
-        id propertyName = QTAuto.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTClassClass.properties.allValues];
 }
 @end
 
-@implementation QTBool
+@implementation QTConst
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"BOOL": @"boolBool",
+        @"const": @"constConst",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBool alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTConst alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"BOOL"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"BOOL"] doubleValue] != [dict[@"BOOL"] longLongValue]) return nil;
+        if (![dict[@"const"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"const"] doubleValue] != [dict[@"const"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -5090,22 +5033,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBool.properties[key];
+    id resolved = QTConst.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBool.properties[key];
+    id resolved = QTConst.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTBool.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTConst.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTBool.properties) {
-        id propertyName = QTBool.properties[jsonName];
+    for (id jsonName in QTConst.properties) {
+        id propertyName = QTConst.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -5116,25 +5059,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTBoolClass
+@implementation QTContinue
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"_Bool": @"boolBool",
+        @"continue": @"continueContinue",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBoolClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTContinue alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"_Bool"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"_Bool"] doubleValue] != [dict[@"_Bool"] longLongValue]) return nil;
+        if (![dict[@"continue"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"continue"] doubleValue] != [dict[@"continue"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -5142,22 +5085,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBoolClass.properties[key];
+    id resolved = QTContinue.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBoolClass.properties[key];
+    id resolved = QTContinue.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTBoolClass.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTContinue.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTBoolClass.properties) {
-        id propertyName = QTBoolClass.properties[jsonName];
+    for (id jsonName in QTContinue.properties) {
+        id propertyName = QTContinue.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -5168,25 +5111,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTBreak
+@implementation QTObj1Bool
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"break": @"breakBreak",
+        @"bool": @"boolBool",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBreak alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj1Bool alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"break"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"break"] doubleValue] != [dict[@"break"] longLongValue]) return nil;
+        if (![dict[@"bool"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"bool"] doubleValue] != [dict[@"bool"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -5194,22 +5137,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBreak.properties[key];
+    id resolved = QTObj1Bool.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBreak.properties[key];
+    id resolved = QTObj1Bool.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTBreak.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTObj1Bool.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTBreak.properties) {
-        id propertyName = QTBreak.properties[jsonName];
+    for (id jsonName in QTObj1Bool.properties) {
+        id propertyName = QTObj1Bool.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -5220,313 +5163,18 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTCase
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"case": @"caseCase",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTCase alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"case"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"case"] doubleValue] != [dict[@"case"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTCase.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTCase.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTCase.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTCase.properties) {
-        id propertyName = QTCase.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTChar
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"char": @"charChar",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTChar alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"char"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"char"] doubleValue] != [dict[@"char"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTChar.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTChar.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTChar.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTChar.properties) {
-        id propertyName = QTChar.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTClassClass
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"class": @"class",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTClassClass alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"class"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"class"] doubleValue] != [dict[@"class"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTClassClass.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTClassClass.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTClassClass.properties.allValues];
-}
-@end
-
-@implementation QTConst
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"const": @"constConst",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTConst alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"const"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"const"] doubleValue] != [dict[@"const"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTConst.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTConst.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTConst.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTConst.properties) {
-        id propertyName = QTConst.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTContinue
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"continue": @"continueContinue",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTContinue alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"continue"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"continue"] doubleValue] != [dict[@"continue"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTContinue.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTContinue.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTContinue.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTContinue.properties) {
-        id propertyName = QTContinue.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTObj1Bool
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"bool": @"boolBool",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj1Bool alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"bool"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"bool"] doubleValue] != [dict[@"bool"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTObj1Bool.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTObj1Bool.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTObj1Bool.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTObj1Bool.properties) {
-        id propertyName = QTObj1Bool.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTObj2
+@implementation QTObj2
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
+        @"DateTime": @"dateTime",
+        @"DateTimeStyles": @"dateTimeStyles",
+        @"debugger": @"debugger",
+        @"decimal": @"decimal",
+        @"declare": @"declare",
+        @"decltype": @"decltype",
+        @"decode_string": @"decodeString",
         @"def": @"def",
         @"defer": @"defer",
         @"deinit": @"deinit",
@@ -5572,14 +5220,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"IMP": @"imp",
         @"implements": @"implements",
         @"implicit": @"implicit",
-        @"import": @"import",
-        @"in": @"in",
-        @"indirect": @"indirect",
-        @"infix": @"infix",
-        @"inout": @"inout",
-        @"instanceof": @"instanceof",
-        @"interface": @"interface",
-        @"internal": @"internal",
         @"default": @"obj2Default",
         @"do": @"obj2Do",
         @"double": @"obj2Double",
@@ -5591,11 +5231,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"for": @"obj2For",
         @"goto": @"obj2Goto",
         @"if": @"obj2If",
-        @"inline": @"obj2Inline",
-        @"int": @"obj2Int",
         @"false": @"theFalse",
         @"hashCode": @"theHashCode",
-        @"init": @"theInit",
     };
 }
 
@@ -5607,6 +5244,13 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
+        if (![dict[@"DateTime"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"DateTimeStyles"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"debugger"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"decimal"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"declare"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"decltype"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"decode_string"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"def"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"defer"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"deinit"] isKindOfClass:NSDictionary.class]) return nil;
@@ -5653,14 +5297,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"IMP"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"implements"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"implicit"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"import"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"in"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"indirect"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"infix"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"inout"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"instanceof"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"interface"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"internal"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"default"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"do"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"double"] isKindOfClass:NSDictionary.class]) return nil;
@@ -5672,12 +5308,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"for"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"goto"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"if"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"inline"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"int"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"false"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"hashCode"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"init"] isKindOfClass:NSDictionary.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
+        _dateTime = [QTDateTime fromJSONDictionary:(id)_dateTime];
+        if (!_dateTime && dict[@"DateTime"] && ![dict[@"DateTime"] isKindOfClass:NSNull.class]) return nil;
+        _dateTimeStyles = [QTDateTimeStyles fromJSONDictionary:(id)_dateTimeStyles];
+        if (!_dateTimeStyles && dict[@"DateTimeStyles"] && ![dict[@"DateTimeStyles"] isKindOfClass:NSNull.class]) return nil;
+        _debugger = [QTDebugger fromJSONDictionary:(id)_debugger];
+        if (!_debugger && dict[@"debugger"] && ![dict[@"debugger"] isKindOfClass:NSNull.class]) return nil;
+        _decimal = [QTDecimal fromJSONDictionary:(id)_decimal];
+        if (!_decimal && dict[@"decimal"] && ![dict[@"decimal"] isKindOfClass:NSNull.class]) return nil;
+        _declare = [QTDeclare fromJSONDictionary:(id)_declare];
+        if (!_declare && dict[@"declare"] && ![dict[@"declare"] isKindOfClass:NSNull.class]) return nil;
+        _decltype = [QTDecltype fromJSONDictionary:(id)_decltype];
+        if (!_decltype && dict[@"decltype"] && ![dict[@"decltype"] isKindOfClass:NSNull.class]) return nil;
+        _decodeString = [QTDecodeString fromJSONDictionary:(id)_decodeString];
+        if (!_decodeString && dict[@"decode_string"] && ![dict[@"decode_string"] isKindOfClass:NSNull.class]) return nil;
         _def = [QTDef fromJSONDictionary:(id)_def];
         if (!_def && dict[@"def"] && ![dict[@"def"] isKindOfClass:NSNull.class]) return nil;
         _defer = [QTDefer fromJSONDictionary:(id)_defer];
@@ -5766,22 +5413,6 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!_implements && dict[@"implements"] && ![dict[@"implements"] isKindOfClass:NSNull.class]) return nil;
         _implicit = [QTImplicit fromJSONDictionary:(id)_implicit];
         if (!_implicit && dict[@"implicit"] && ![dict[@"implicit"] isKindOfClass:NSNull.class]) return nil;
-        _import = [QTImport fromJSONDictionary:(id)_import];
-        if (!_import && dict[@"import"] && ![dict[@"import"] isKindOfClass:NSNull.class]) return nil;
-        _in = [QTIn fromJSONDictionary:(id)_in];
-        if (!_in && dict[@"in"] && ![dict[@"in"] isKindOfClass:NSNull.class]) return nil;
-        _indirect = [QTIndirect fromJSONDictionary:(id)_indirect];
-        if (!_indirect && dict[@"indirect"] && ![dict[@"indirect"] isKindOfClass:NSNull.class]) return nil;
-        _infix = [QTInfix fromJSONDictionary:(id)_infix];
-        if (!_infix && dict[@"infix"] && ![dict[@"infix"] isKindOfClass:NSNull.class]) return nil;
-        _inout = [QTInout fromJSONDictionary:(id)_inout];
-        if (!_inout && dict[@"inout"] && ![dict[@"inout"] isKindOfClass:NSNull.class]) return nil;
-        _instanceof = [QTInstanceof fromJSONDictionary:(id)_instanceof];
-        if (!_instanceof && dict[@"instanceof"] && ![dict[@"instanceof"] isKindOfClass:NSNull.class]) return nil;
-        _interface = [QTInterface fromJSONDictionary:(id)_interface];
-        if (!_interface && dict[@"interface"] && ![dict[@"interface"] isKindOfClass:NSNull.class]) return nil;
-        _internal = [QTInternal fromJSONDictionary:(id)_internal];
-        if (!_internal && dict[@"internal"] && ![dict[@"internal"] isKindOfClass:NSNull.class]) return nil;
         _obj2Default = [QTDefault fromJSONDictionary:(id)_obj2Default];
         if (!_obj2Default && dict[@"default"] && ![dict[@"default"] isKindOfClass:NSNull.class]) return nil;
         _obj2Do = [QTDo fromJSONDictionary:(id)_obj2Do];
@@ -5804,114 +5435,428 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!_obj2Goto && dict[@"goto"] && ![dict[@"goto"] isKindOfClass:NSNull.class]) return nil;
         _obj2If = [QTIf fromJSONDictionary:(id)_obj2If];
         if (!_obj2If && dict[@"if"] && ![dict[@"if"] isKindOfClass:NSNull.class]) return nil;
-        _obj2Inline = [QTInline fromJSONDictionary:(id)_obj2Inline];
-        if (!_obj2Inline && dict[@"inline"] && ![dict[@"inline"] isKindOfClass:NSNull.class]) return nil;
-        _obj2Int = [QTInt fromJSONDictionary:(id)_obj2Int];
-        if (!_obj2Int && dict[@"int"] && ![dict[@"int"] isKindOfClass:NSNull.class]) return nil;
         _theFalse = [QTFalseClass fromJSONDictionary:(id)_theFalse];
         if (!_theFalse && dict[@"false"] && ![dict[@"false"] isKindOfClass:NSNull.class]) return nil;
         _theHashCode = [QTHashCode fromJSONDictionary:(id)_theHashCode];
         if (!_theHashCode && dict[@"hashCode"] && ![dict[@"hashCode"] isKindOfClass:NSNull.class]) return nil;
-        _theInit = [QTInit fromJSONDictionary:(id)_theInit];
-        if (!_theInit && dict[@"init"] && ![dict[@"init"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObj2.properties[key];
+    id resolved = QTObj2.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTObj2.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    id dict = [[self dictionaryWithValuesForKeys:QTObj2.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTObj2.properties) {
+        id propertyName = QTObj2.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    [dict addEntriesFromDictionary:@{
+        @"DateTime": [_dateTime JSONDictionary],
+        @"DateTimeStyles": [_dateTimeStyles JSONDictionary],
+        @"debugger": [_debugger JSONDictionary],
+        @"decimal": [_decimal JSONDictionary],
+        @"declare": [_declare JSONDictionary],
+        @"decltype": [_decltype JSONDictionary],
+        @"decode_string": [_decodeString JSONDictionary],
+        @"def": [_def JSONDictionary],
+        @"defer": [_defer JSONDictionary],
+        @"deinit": [_deinit JSONDictionary],
+        @"del": [_del JSONDictionary],
+        @"delegate": [_delegate JSONDictionary],
+        @"delete": [_delete JSONDictionary],
+        @"dict": [_dict JSONDictionary],
+        @"dictionary": [_dictionary JSONDictionary],
+        @"didSet": [_didSet JSONDictionary],
+        @"dynamic": [_dynamic JSONDictionary],
+        @"dynamic_cast": [_dynamicCast JSONDictionary],
+        @"elif": [_elif JSONDictionary],
+        @"encode_quick_type": [_encodeQuickType JSONDictionary],
+        @"EnumValues": [_enumValues JSONDictionary],
+        @"equalityContract": [_equalityContract JSONDictionary],
+        @"event": [_event JSONDictionary],
+        @"except": [_except JSONDictionary],
+        @"exception": [_exception JSONDictionary],
+        @"explicit": [_explicit JSONDictionary],
+        @"export": [_export JSONDictionary],
+        @"exposing": [_exposing JSONDictionary],
+        @"extends": [_extends JSONDictionary],
+        @"extension": [_extension JSONDictionary],
+        @"fallthrough": [_fallthrough JSONDictionary],
+        @"fileprivate": [_fileprivate JSONDictionary],
+        @"final": [_final JSONDictionary],
+        @"finally": [_finally JSONDictionary],
+        @"fixed": [_fixed JSONDictionary],
+        @"foreach": [_foreach JSONDictionary],
+        @"FormatException": [_formatException JSONDictionary],
+        @"friend": [_friend JSONDictionary],
+        @"from": [_from JSONDictionary],
+        @"from_json": [_fromJSON JSONDictionary],
+        @"func": [_func JSONDictionary],
+        @"function": [_function JSONDictionary],
+        @"get": [_get JSONDictionary],
+        @"global": [_global JSONDictionary],
+        @"go": [_go JSONDictionary],
+        @"guard": [_guard JSONDictionary],
+        @"hasOwnProperty": [_hasOwnProperty JSONDictionary],
+        @"id": [_identifier JSONDictionary],
+        @"IMP": [_imp JSONDictionary],
+        @"implements": [_implements JSONDictionary],
+        @"implicit": [_implicit JSONDictionary],
+        @"default": [_obj2Default JSONDictionary],
+        @"do": [_obj2Do JSONDictionary],
+        @"double": [_obj2Double JSONDictionary],
+        @"else": [_obj2Else JSONDictionary],
+        @"enum": [_obj2Enum JSONDictionary],
+        @"extern": [_obj2Extern JSONDictionary],
+        @"False": [_obj2False JSONDictionary],
+        @"float": [_obj2Float JSONDictionary],
+        @"for": [_obj2For JSONDictionary],
+        @"goto": [_obj2Goto JSONDictionary],
+        @"if": [_obj2If JSONDictionary],
+        @"false": [_theFalse JSONDictionary],
+        @"hashCode": [_theHashCode JSONDictionary],
+    }];
+
+    return dict;
+}
+@end
+
+@implementation QTDateTime
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"DateTime": @"dateTime",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTime alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (dict[@"DateTime"] && [dict[@"DateTime"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (![dict[@"DateTime"] isKindOfClass:NSString.class]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDateTime.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDateTime.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    id dict = [[self dictionaryWithValuesForKeys:QTDateTime.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDateTime.properties) {
+        id propertyName = QTDateTime.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
+}
+@end
+
+@implementation QTDateTimeStyles
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"DateTimeStyles": @"dateTimeStyles",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTimeStyles alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"DateTimeStyles"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"DateTimeStyles"] doubleValue] != [dict[@"DateTimeStyles"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDateTimeStyles.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDateTimeStyles.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    id dict = [[self dictionaryWithValuesForKeys:QTDateTimeStyles.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDateTimeStyles.properties) {
+        id propertyName = QTDateTimeStyles.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
+}
+@end
+
+@implementation QTDebugger
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"debugger": @"debugger",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDebugger alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"debugger"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"debugger"] doubleValue] != [dict[@"debugger"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDebugger.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObj2.properties[key];
+    id resolved = QTDebugger.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTObj2.properties.allValues] mutableCopy];
+    return [self dictionaryWithValuesForKeys:QTDebugger.properties.allValues];
+}
+@end
 
-    for (id jsonName in QTObj2.properties) {
-        id propertyName = QTObj2.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
+@implementation QTDecimal
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"decimal": @"decimal",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecimal alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"decimal"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"decimal"] doubleValue] != [dict[@"decimal"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
+    return self;
+}
 
-    [dict addEntriesFromDictionary:@{
-        @"def": [_def JSONDictionary],
-        @"defer": [_defer JSONDictionary],
-        @"deinit": [_deinit JSONDictionary],
-        @"del": [_del JSONDictionary],
-        @"delegate": [_delegate JSONDictionary],
-        @"delete": [_delete JSONDictionary],
-        @"dict": [_dict JSONDictionary],
-        @"dictionary": [_dictionary JSONDictionary],
-        @"didSet": [_didSet JSONDictionary],
-        @"dynamic": [_dynamic JSONDictionary],
-        @"dynamic_cast": [_dynamicCast JSONDictionary],
-        @"elif": [_elif JSONDictionary],
-        @"encode_quick_type": [_encodeQuickType JSONDictionary],
-        @"EnumValues": [_enumValues JSONDictionary],
-        @"equalityContract": [_equalityContract JSONDictionary],
-        @"event": [_event JSONDictionary],
-        @"except": [_except JSONDictionary],
-        @"exception": [_exception JSONDictionary],
-        @"explicit": [_explicit JSONDictionary],
-        @"export": [_export JSONDictionary],
-        @"exposing": [_exposing JSONDictionary],
-        @"extends": [_extends JSONDictionary],
-        @"extension": [_extension JSONDictionary],
-        @"fallthrough": [_fallthrough JSONDictionary],
-        @"fileprivate": [_fileprivate JSONDictionary],
-        @"final": [_final JSONDictionary],
-        @"finally": [_finally JSONDictionary],
-        @"fixed": [_fixed JSONDictionary],
-        @"foreach": [_foreach JSONDictionary],
-        @"FormatException": [_formatException JSONDictionary],
-        @"friend": [_friend JSONDictionary],
-        @"from": [_from JSONDictionary],
-        @"from_json": [_fromJSON JSONDictionary],
-        @"func": [_func JSONDictionary],
-        @"function": [_function JSONDictionary],
-        @"get": [_get JSONDictionary],
-        @"global": [_global JSONDictionary],
-        @"go": [_go JSONDictionary],
-        @"guard": [_guard JSONDictionary],
-        @"hasOwnProperty": [_hasOwnProperty JSONDictionary],
-        @"id": [_identifier JSONDictionary],
-        @"IMP": [_imp JSONDictionary],
-        @"implements": [_implements JSONDictionary],
-        @"implicit": [_implicit JSONDictionary],
-        @"import": [_import JSONDictionary],
-        @"in": [_in JSONDictionary],
-        @"indirect": [_indirect JSONDictionary],
-        @"infix": [_infix JSONDictionary],
-        @"inout": [_inout JSONDictionary],
-        @"instanceof": [_instanceof JSONDictionary],
-        @"interface": [_interface JSONDictionary],
-        @"internal": [_internal JSONDictionary],
-        @"default": [_obj2Default JSONDictionary],
-        @"do": [_obj2Do JSONDictionary],
-        @"double": [_obj2Double JSONDictionary],
-        @"else": [_obj2Else JSONDictionary],
-        @"enum": [_obj2Enum JSONDictionary],
-        @"extern": [_obj2Extern JSONDictionary],
-        @"False": [_obj2False JSONDictionary],
-        @"float": [_obj2Float JSONDictionary],
-        @"for": [_obj2For JSONDictionary],
-        @"goto": [_obj2Goto JSONDictionary],
-        @"if": [_obj2If JSONDictionary],
-        @"inline": [_obj2Inline JSONDictionary],
-        @"int": [_obj2Int JSONDictionary],
-        @"false": [_theFalse JSONDictionary],
-        @"hashCode": [_theHashCode JSONDictionary],
-        @"init": [_theInit JSONDictionary],
-    }];
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDecimal.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDecimal.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDecimal.properties.allValues];
+}
+@end
+
+@implementation QTDeclare
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"declare": @"declare",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeclare alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"declare"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"declare"] doubleValue] != [dict[@"declare"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDeclare.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDeclare.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDeclare.properties.allValues];
+}
+@end
+
+@implementation QTDecltype
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"decltype": @"decltype",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecltype alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"decltype"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"decltype"] doubleValue] != [dict[@"decltype"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDecltype.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDecltype.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDecltype.properties.allValues];
+}
+@end
+
+@implementation QTDecodeString
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"decode_string": @"decodeString",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecodeString alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"decode_string"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"decode_string"] doubleValue] != [dict[@"decode_string"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDecodeString.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDecodeString.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    id dict = [[self dictionaryWithValuesForKeys:QTDecodeString.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDecodeString.properties) {
+        id propertyName = QTDecodeString.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
 
     return dict;
 }
@@ -7599,265 +7544,35 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGuard.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTGuard.properties.allValues];
-}
-@end
-
-@implementation QTHasOwnProperty
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"hasOwnProperty": @"hasOwnProperty",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTHasOwnProperty alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"hasOwnProperty"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"hasOwnProperty"] doubleValue] != [dict[@"hasOwnProperty"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTHasOwnProperty.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTHasOwnProperty.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTHasOwnProperty.properties.allValues];
-}
-@end
-
-@implementation QTID
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"id": @"identifier",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTID alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"id"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"id"] doubleValue] != [dict[@"id"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTID.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTID.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTID.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTID.properties) {
-        id propertyName = QTID.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTImp
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"IMP": @"imp",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImp alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"IMP"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"IMP"] doubleValue] != [dict[@"IMP"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTImp.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTImp.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTImp.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTImp.properties) {
-        id propertyName = QTImp.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
-}
-@end
-
-@implementation QTImplements
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"implements": @"implements",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplements alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"implements"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"implements"] doubleValue] != [dict[@"implements"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTImplements.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTImplements.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTImplements.properties.allValues];
-}
-@end
-
-@implementation QTImplicit
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"implicit": @"implicit",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplicit alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"implicit"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"implicit"] doubleValue] != [dict[@"implicit"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-    }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTImplicit.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
-
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTImplicit.properties[key];
+    id resolved = QTGuard.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImplicit.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTGuard.properties.allValues];
 }
 @end
 
-@implementation QTImport
+@implementation QTHasOwnProperty
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"import": @"import",
+        @"hasOwnProperty": @"hasOwnProperty",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImport alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTHasOwnProperty alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"import"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"import"] doubleValue] != [dict[@"import"] longLongValue]) return nil;
+        if (![dict[@"hasOwnProperty"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"hasOwnProperty"] doubleValue] != [dict[@"hasOwnProperty"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -7865,41 +7580,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImport.properties[key];
+    id resolved = QTHasOwnProperty.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImport.properties[key];
+    id resolved = QTHasOwnProperty.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImport.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTHasOwnProperty.properties.allValues];
 }
 @end
 
-@implementation QTIn
+@implementation QTID
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"in": @"in",
+        @"id": @"identifier",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIn alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTID alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"in"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"in"] doubleValue] != [dict[@"in"] longLongValue]) return nil;
+        if (![dict[@"id"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"id"] doubleValue] != [dict[@"id"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -7907,41 +7622,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIn.properties[key];
+    id resolved = QTID.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIn.properties[key];
+    id resolved = QTID.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIn.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTID.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTID.properties) {
+        id propertyName = QTID.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTIndirect
+@implementation QTImp
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"indirect": @"indirect",
+        @"IMP": @"imp",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIndirect alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImp alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"indirect"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"indirect"] doubleValue] != [dict[@"indirect"] longLongValue]) return nil;
+        if (![dict[@"IMP"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"IMP"] doubleValue] != [dict[@"IMP"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -7949,41 +7674,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIndirect.properties[key];
+    id resolved = QTImp.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIndirect.properties[key];
+    id resolved = QTImp.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIndirect.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTImp.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTImp.properties) {
+        id propertyName = QTImp.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTInfix
+@implementation QTImplements
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"infix": @"infix",
+        @"implements": @"implements",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInfix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplements alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"infix"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"infix"] doubleValue] != [dict[@"infix"] longLongValue]) return nil;
+        if (![dict[@"implements"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"implements"] doubleValue] != [dict[@"implements"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -7991,41 +7726,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInfix.properties[key];
+    id resolved = QTImplements.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInfix.properties[key];
+    id resolved = QTImplements.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInfix.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImplements.properties.allValues];
 }
 @end
 
-@implementation QTInout
+@implementation QTImplicit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"inout": @"inout",
+        @"implicit": @"implicit",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInout alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplicit alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"inout"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"inout"] doubleValue] != [dict[@"inout"] longLongValue]) return nil;
+        if (![dict[@"implicit"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"implicit"] doubleValue] != [dict[@"implicit"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8033,41 +7768,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInout.properties[key];
+    id resolved = QTImplicit.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInout.properties[key];
+    id resolved = QTImplicit.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInout.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImplicit.properties.allValues];
 }
 @end
 
-@implementation QTInstanceof
+@implementation QTDefault
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"instanceof": @"instanceof",
+        @"default": @"defaultDefault",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInstanceof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefault alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"instanceof"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"instanceof"] doubleValue] != [dict[@"instanceof"] longLongValue]) return nil;
+        if (![dict[@"default"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"default"] doubleValue] != [dict[@"default"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8075,41 +7810,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInstanceof.properties[key];
+    id resolved = QTDefault.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInstanceof.properties[key];
+    id resolved = QTDefault.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInstanceof.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTDefault.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDefault.properties) {
+        id propertyName = QTDefault.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTInterface
+@implementation QTDo
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"interface": @"interface",
+        @"do": @"doDo",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInterface alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDo alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"interface"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"interface"] doubleValue] != [dict[@"interface"] longLongValue]) return nil;
+        if (![dict[@"do"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"do"] doubleValue] != [dict[@"do"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8117,41 +7862,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInterface.properties[key];
+    id resolved = QTDo.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInterface.properties[key];
+    id resolved = QTDo.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInterface.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTDo.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDo.properties) {
+        id propertyName = QTDo.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTInternal
+@implementation QTDouble
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"internal": @"internal",
+        @"double": @"doubleDouble",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInternal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDouble alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"internal"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"internal"] doubleValue] != [dict[@"internal"] longLongValue]) return nil;
+        if (![dict[@"double"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"double"] doubleValue] != [dict[@"double"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8159,41 +7914,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInternal.properties[key];
+    id resolved = QTDouble.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInternal.properties[key];
+    id resolved = QTDouble.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInternal.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTDouble.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTDouble.properties) {
+        id propertyName = QTDouble.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTDefault
+@implementation QTElse
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"default": @"defaultDefault",
+        @"else": @"elseElse",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefault alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTElse alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"default"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"default"] doubleValue] != [dict[@"default"] longLongValue]) return nil;
+        if (![dict[@"else"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"else"] doubleValue] != [dict[@"else"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8201,22 +7966,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDefault.properties[key];
+    id resolved = QTElse.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDefault.properties[key];
+    id resolved = QTElse.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTDefault.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTElse.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDefault.properties) {
-        id propertyName = QTDefault.properties[jsonName];
+    for (id jsonName in QTElse.properties) {
+        id propertyName = QTElse.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8227,25 +7992,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDo
+@implementation QTEnum
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"do": @"doDo",
+        @"enum": @"enumEnum",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDo alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEnum alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"do"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"do"] doubleValue] != [dict[@"do"] longLongValue]) return nil;
+        if (![dict[@"enum"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"enum"] doubleValue] != [dict[@"enum"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8253,22 +8018,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDo.properties[key];
+    id resolved = QTEnum.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDo.properties[key];
+    id resolved = QTEnum.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTDo.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTEnum.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDo.properties) {
-        id propertyName = QTDo.properties[jsonName];
+    for (id jsonName in QTEnum.properties) {
+        id propertyName = QTEnum.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8279,25 +8044,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDouble
+@implementation QTExtern
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"double": @"doubleDouble",
+        @"extern": @"externExtern",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDouble alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtern alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"double"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"double"] doubleValue] != [dict[@"double"] longLongValue]) return nil;
+        if (![dict[@"extern"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"extern"] doubleValue] != [dict[@"extern"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8305,22 +8070,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDouble.properties[key];
+    id resolved = QTExtern.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDouble.properties[key];
+    id resolved = QTExtern.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTDouble.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTExtern.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTDouble.properties) {
-        id propertyName = QTDouble.properties[jsonName];
+    for (id jsonName in QTExtern.properties) {
+        id propertyName = QTExtern.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8331,25 +8096,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTElse
+@implementation QTFalse
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"else": @"elseElse",
+        @"False": @"falseFalse",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTElse alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalse alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"else"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"else"] doubleValue] != [dict[@"else"] longLongValue]) return nil;
+        if (![dict[@"False"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"False"] doubleValue] != [dict[@"False"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8357,22 +8122,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTElse.properties[key];
+    id resolved = QTFalse.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTElse.properties[key];
+    id resolved = QTFalse.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTElse.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTFalse.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTElse.properties) {
-        id propertyName = QTElse.properties[jsonName];
+    for (id jsonName in QTFalse.properties) {
+        id propertyName = QTFalse.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8383,25 +8148,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTEnum
+@implementation QTFloat
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"enum": @"enumEnum",
+        @"float": @"floatFloat",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEnum alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFloat alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"enum"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"enum"] doubleValue] != [dict[@"enum"] longLongValue]) return nil;
+        if (![dict[@"float"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"float"] doubleValue] != [dict[@"float"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8409,22 +8174,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEnum.properties[key];
+    id resolved = QTFloat.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEnum.properties[key];
+    id resolved = QTFloat.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTEnum.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTFloat.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTEnum.properties) {
-        id propertyName = QTEnum.properties[jsonName];
+    for (id jsonName in QTFloat.properties) {
+        id propertyName = QTFloat.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8435,25 +8200,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTExtern
+@implementation QTFor
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"extern": @"externExtern",
+        @"for": @"forFor",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtern alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFor alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"extern"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"extern"] doubleValue] != [dict[@"extern"] longLongValue]) return nil;
+        if (![dict[@"for"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"for"] doubleValue] != [dict[@"for"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8461,22 +8226,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExtern.properties[key];
+    id resolved = QTFor.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExtern.properties[key];
+    id resolved = QTFor.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTExtern.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTFor.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTExtern.properties) {
-        id propertyName = QTExtern.properties[jsonName];
+    for (id jsonName in QTFor.properties) {
+        id propertyName = QTFor.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8487,25 +8252,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTFalse
+@implementation QTGoto
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"False": @"falseFalse",
+        @"goto": @"gotoGoto",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalse alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGoto alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"False"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"False"] doubleValue] != [dict[@"False"] longLongValue]) return nil;
+        if (![dict[@"goto"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"goto"] doubleValue] != [dict[@"goto"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8513,22 +8278,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFalse.properties[key];
+    id resolved = QTGoto.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFalse.properties[key];
+    id resolved = QTGoto.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTFalse.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTGoto.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTFalse.properties) {
-        id propertyName = QTFalse.properties[jsonName];
+    for (id jsonName in QTGoto.properties) {
+        id propertyName = QTGoto.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8539,25 +8304,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTFloat
+@implementation QTIf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"float": @"floatFloat",
+        @"if": @"ifIf",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFloat alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"float"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"float"] doubleValue] != [dict[@"float"] longLongValue]) return nil;
+        if (![dict[@"if"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"if"] doubleValue] != [dict[@"if"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8565,22 +8330,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFloat.properties[key];
+    id resolved = QTIf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFloat.properties[key];
+    id resolved = QTIf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTFloat.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTIf.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTFloat.properties) {
-        id propertyName = QTFloat.properties[jsonName];
+    for (id jsonName in QTIf.properties) {
+        id propertyName = QTIf.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8591,25 +8356,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTFor
+@implementation QTFalseClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"for": @"forFor",
+        @"false": @"falseFalse",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFor alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalseClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"for"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"for"] doubleValue] != [dict[@"for"] longLongValue]) return nil;
+        if (![dict[@"false"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"false"] doubleValue] != [dict[@"false"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8617,22 +8382,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFor.properties[key];
+    id resolved = QTFalseClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFor.properties[key];
+    id resolved = QTFalseClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTFor.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTFalseClass.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTFor.properties) {
-        id propertyName = QTFor.properties[jsonName];
+    for (id jsonName in QTFalseClass.properties) {
+        id propertyName = QTFalseClass.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8643,25 +8408,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTGoto
+@implementation QTHashCode
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"goto": @"gotoGoto",
+        @"hashCode": @"theHashCode",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGoto alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTHashCode alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"goto"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"goto"] doubleValue] != [dict[@"goto"] longLongValue]) return nil;
+        if (![dict[@"hashCode"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"hashCode"] doubleValue] != [dict[@"hashCode"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8669,22 +8434,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGoto.properties[key];
+    id resolved = QTHashCode.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGoto.properties[key];
+    id resolved = QTHashCode.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTGoto.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTHashCode.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTGoto.properties) {
-        id propertyName = QTGoto.properties[jsonName];
+    for (id jsonName in QTHashCode.properties) {
+        id propertyName = QTHashCode.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -8695,77 +8460,400 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTIf
+@implementation QTObj3
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"if": @"ifIf",
+        @"dummy": @"dummy",
+        @"import": @"import",
+        @"in": @"in",
+        @"indirect": @"indirect",
+        @"infix": @"infix",
+        @"inout": @"inout",
+        @"instanceof": @"instanceof",
+        @"interface": @"interface",
+        @"internal": @"internal",
+        @"is": @"is",
+        @"IsoDateTimeOffsetConverter": @"isoDateTimeOffsetConverter",
+        @"iterable": @"iterable",
+        @"jdec": @"jdec",
+        @"jenc": @"jenc",
+        @"jpipe": @"jpipe",
+        @"json": @"json",
+        @"JSONAny": @"jsonAny",
+        @"JSONCodingKey": @"jsonCodingKey",
+        @"json_converter": @"jsonConverter",
+        @"JSONDecoder": @"jsonDecoder",
+        @"JSONEncoder": @"jsonEncoder",
+        @"JsonException": @"jsonException",
+        @"JsonGenerator": @"jsonGenerator",
+        @"JsonNode": @"jsonNode",
+        @"JSONNull": @"jsonNull",
+        @"JsonParser": @"jsonParser",
+        @"JsonReader": @"jsonReader",
+        @"json_serializer": @"jsonSerializer",
+        @"json_token": @"jsonToken",
+        @"JsonTokenType": @"jsonTokenType",
+        @"json_writer": @"jsonWriter",
+        @"lambda": @"lambda",
+        @"lazy": @"lazy",
+        @"left": @"left",
+        @"let": @"let",
+        @"list": @"list",
+        @"lock": @"lock",
+        @"map": @"map",
+        @"metadata_property_handling": @"metadataPropertyHandling",
+        @"module": @"module",
+        @"mutable": @"mutable",
+        @"mutating": @"mutating",
+        @"namespace": @"namespace",
+        @"native": @"native",
+        @"newtonsoft": @"newtonsoft",
+        @"NO": @"no",
+        @"noSuchMethod": @"noSuchMethod",
+        @"noexcept": @"noexcept",
+        @"None": @"none",
+        @"nonlocal": @"nonlocal",
+        @"nonmutating": @"nonmutating",
+        @"not": @"not",
+        @"not_eq": @"notEq",
+        @"NSError": @"nsError",
+        @"NSString": @"nsString",
+        @"NULL": @"null",
+        @"inline": @"obj3Inline",
+        @"int": @"obj3Int",
+        @"long": @"obj3Long",
+        @"nil": @"obj3Nil",
+        @"nonatomic": @"obj3Nonatomic",
+        @"none": @"obj3None",
+        @"null": @"obj3Null",
+        @"init": @"theInit",
+        @"new": @"theNew",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj3 alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"if"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"if"] doubleValue] != [dict[@"if"] longLongValue]) return nil;
+        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
+        if (![dict[@"import"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"in"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"indirect"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"infix"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"inout"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"instanceof"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"interface"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"internal"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"is"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"IsoDateTimeOffsetConverter"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"iterable"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"jdec"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"jenc"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"jpipe"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"json"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JSONAny"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JSONCodingKey"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"json_converter"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JSONDecoder"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JSONEncoder"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonException"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonGenerator"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonNode"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JSONNull"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonParser"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonReader"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"json_serializer"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"json_token"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"JsonTokenType"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"json_writer"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"lambda"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"lazy"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"left"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"let"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"list"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"lock"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"map"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"metadata_property_handling"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"module"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"mutable"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"mutating"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"namespace"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"native"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"newtonsoft"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"NO"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"noSuchMethod"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"noexcept"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"None"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"nonlocal"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"nonmutating"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"not"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"not_eq"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"NSError"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"NSString"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"NULL"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"inline"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"int"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"long"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"nil"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"nonatomic"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"none"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"null"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"init"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"new"] isKindOfClass:NSDictionary.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
+        _import = [QTImport fromJSONDictionary:(id)_import];
+        if (!_import && dict[@"import"] && ![dict[@"import"] isKindOfClass:NSNull.class]) return nil;
+        _in = [QTIn fromJSONDictionary:(id)_in];
+        if (!_in && dict[@"in"] && ![dict[@"in"] isKindOfClass:NSNull.class]) return nil;
+        _indirect = [QTIndirect fromJSONDictionary:(id)_indirect];
+        if (!_indirect && dict[@"indirect"] && ![dict[@"indirect"] isKindOfClass:NSNull.class]) return nil;
+        _infix = [QTInfix fromJSONDictionary:(id)_infix];
+        if (!_infix && dict[@"infix"] && ![dict[@"infix"] isKindOfClass:NSNull.class]) return nil;
+        _inout = [QTInout fromJSONDictionary:(id)_inout];
+        if (!_inout && dict[@"inout"] && ![dict[@"inout"] isKindOfClass:NSNull.class]) return nil;
+        _instanceof = [QTInstanceof fromJSONDictionary:(id)_instanceof];
+        if (!_instanceof && dict[@"instanceof"] && ![dict[@"instanceof"] isKindOfClass:NSNull.class]) return nil;
+        _interface = [QTInterface fromJSONDictionary:(id)_interface];
+        if (!_interface && dict[@"interface"] && ![dict[@"interface"] isKindOfClass:NSNull.class]) return nil;
+        _internal = [QTInternal fromJSONDictionary:(id)_internal];
+        if (!_internal && dict[@"internal"] && ![dict[@"internal"] isKindOfClass:NSNull.class]) return nil;
+        _is = [QTIs fromJSONDictionary:(id)_is];
+        if (!_is && dict[@"is"] && ![dict[@"is"] isKindOfClass:NSNull.class]) return nil;
+        _isoDateTimeOffsetConverter = [QTISODateTimeOffsetConverter fromJSONDictionary:(id)_isoDateTimeOffsetConverter];
+        if (!_isoDateTimeOffsetConverter && dict[@"IsoDateTimeOffsetConverter"] && ![dict[@"IsoDateTimeOffsetConverter"] isKindOfClass:NSNull.class]) return nil;
+        _iterable = [QTIterable fromJSONDictionary:(id)_iterable];
+        if (!_iterable && dict[@"iterable"] && ![dict[@"iterable"] isKindOfClass:NSNull.class]) return nil;
+        _jdec = [QTJdec fromJSONDictionary:(id)_jdec];
+        if (!_jdec && dict[@"jdec"] && ![dict[@"jdec"] isKindOfClass:NSNull.class]) return nil;
+        _jenc = [QTJenc fromJSONDictionary:(id)_jenc];
+        if (!_jenc && dict[@"jenc"] && ![dict[@"jenc"] isKindOfClass:NSNull.class]) return nil;
+        _jpipe = [QTJpipe fromJSONDictionary:(id)_jpipe];
+        if (!_jpipe && dict[@"jpipe"] && ![dict[@"jpipe"] isKindOfClass:NSNull.class]) return nil;
+        _json = [QTJSON fromJSONDictionary:(id)_json];
+        if (!_json && dict[@"json"] && ![dict[@"json"] isKindOfClass:NSNull.class]) return nil;
+        _jsonAny = [QTJSONAny fromJSONDictionary:(id)_jsonAny];
+        if (!_jsonAny && dict[@"JSONAny"] && ![dict[@"JSONAny"] isKindOfClass:NSNull.class]) return nil;
+        _jsonCodingKey = [QTJSONCodingKey fromJSONDictionary:(id)_jsonCodingKey];
+        if (!_jsonCodingKey && dict[@"JSONCodingKey"] && ![dict[@"JSONCodingKey"] isKindOfClass:NSNull.class]) return nil;
+        _jsonConverter = [QTJSONConverter fromJSONDictionary:(id)_jsonConverter];
+        if (!_jsonConverter && dict[@"json_converter"] && ![dict[@"json_converter"] isKindOfClass:NSNull.class]) return nil;
+        _jsonDecoder = [QTJSONDecoder fromJSONDictionary:(id)_jsonDecoder];
+        if (!_jsonDecoder && dict[@"JSONDecoder"] && ![dict[@"JSONDecoder"] isKindOfClass:NSNull.class]) return nil;
+        _jsonEncoder = [QTJSONEncoder fromJSONDictionary:(id)_jsonEncoder];
+        if (!_jsonEncoder && dict[@"JSONEncoder"] && ![dict[@"JSONEncoder"] isKindOfClass:NSNull.class]) return nil;
+        _jsonException = [QTJSONException fromJSONDictionary:(id)_jsonException];
+        if (!_jsonException && dict[@"JsonException"] && ![dict[@"JsonException"] isKindOfClass:NSNull.class]) return nil;
+        _jsonGenerator = [QTJSONGenerator fromJSONDictionary:(id)_jsonGenerator];
+        if (!_jsonGenerator && dict[@"JsonGenerator"] && ![dict[@"JsonGenerator"] isKindOfClass:NSNull.class]) return nil;
+        _jsonNode = [QTJSONNode fromJSONDictionary:(id)_jsonNode];
+        if (!_jsonNode && dict[@"JsonNode"] && ![dict[@"JsonNode"] isKindOfClass:NSNull.class]) return nil;
+        _jsonNull = [QTJSONNull fromJSONDictionary:(id)_jsonNull];
+        if (!_jsonNull && dict[@"JSONNull"] && ![dict[@"JSONNull"] isKindOfClass:NSNull.class]) return nil;
+        _jsonParser = [QTJSONParser fromJSONDictionary:(id)_jsonParser];
+        if (!_jsonParser && dict[@"JsonParser"] && ![dict[@"JsonParser"] isKindOfClass:NSNull.class]) return nil;
+        _jsonReader = [QTJSONReader fromJSONDictionary:(id)_jsonReader];
+        if (!_jsonReader && dict[@"JsonReader"] && ![dict[@"JsonReader"] isKindOfClass:NSNull.class]) return nil;
+        _jsonSerializer = [QTJSONSerializer fromJSONDictionary:(id)_jsonSerializer];
+        if (!_jsonSerializer && dict[@"json_serializer"] && ![dict[@"json_serializer"] isKindOfClass:NSNull.class]) return nil;
+        _jsonToken = [QTJSONToken fromJSONDictionary:(id)_jsonToken];
+        if (!_jsonToken && dict[@"json_token"] && ![dict[@"json_token"] isKindOfClass:NSNull.class]) return nil;
+        _jsonTokenType = [QTJSONTokenType fromJSONDictionary:(id)_jsonTokenType];
+        if (!_jsonTokenType && dict[@"JsonTokenType"] && ![dict[@"JsonTokenType"] isKindOfClass:NSNull.class]) return nil;
+        _jsonWriter = [QTJSONWriter fromJSONDictionary:(id)_jsonWriter];
+        if (!_jsonWriter && dict[@"json_writer"] && ![dict[@"json_writer"] isKindOfClass:NSNull.class]) return nil;
+        _lambda = [QTLambda fromJSONDictionary:(id)_lambda];
+        if (!_lambda && dict[@"lambda"] && ![dict[@"lambda"] isKindOfClass:NSNull.class]) return nil;
+        _lazy = [QTLazy fromJSONDictionary:(id)_lazy];
+        if (!_lazy && dict[@"lazy"] && ![dict[@"lazy"] isKindOfClass:NSNull.class]) return nil;
+        _left = [QTLeft fromJSONDictionary:(id)_left];
+        if (!_left && dict[@"left"] && ![dict[@"left"] isKindOfClass:NSNull.class]) return nil;
+        _let = [QTLet fromJSONDictionary:(id)_let];
+        if (!_let && dict[@"let"] && ![dict[@"let"] isKindOfClass:NSNull.class]) return nil;
+        _list = [QTList fromJSONDictionary:(id)_list];
+        if (!_list && dict[@"list"] && ![dict[@"list"] isKindOfClass:NSNull.class]) return nil;
+        _lock = [QTLock fromJSONDictionary:(id)_lock];
+        if (!_lock && dict[@"lock"] && ![dict[@"lock"] isKindOfClass:NSNull.class]) return nil;
+        _map = [QTMap fromJSONDictionary:(id)_map];
+        if (!_map && dict[@"map"] && ![dict[@"map"] isKindOfClass:NSNull.class]) return nil;
+        _metadataPropertyHandling = [QTMetadataPropertyHandling fromJSONDictionary:(id)_metadataPropertyHandling];
+        if (!_metadataPropertyHandling && dict[@"metadata_property_handling"] && ![dict[@"metadata_property_handling"] isKindOfClass:NSNull.class]) return nil;
+        _module = [QTModule fromJSONDictionary:(id)_module];
+        if (!_module && dict[@"module"] && ![dict[@"module"] isKindOfClass:NSNull.class]) return nil;
+        _mutable = [QTMutable fromJSONDictionary:(id)_mutable];
+        if (!_mutable && dict[@"mutable"] && ![dict[@"mutable"] isKindOfClass:NSNull.class]) return nil;
+        _mutating = [QTMutating fromJSONDictionary:(id)_mutating];
+        if (!_mutating && dict[@"mutating"] && ![dict[@"mutating"] isKindOfClass:NSNull.class]) return nil;
+        _namespace = [QTNamespace fromJSONDictionary:(id)_namespace];
+        if (!_namespace && dict[@"namespace"] && ![dict[@"namespace"] isKindOfClass:NSNull.class]) return nil;
+        _native = [QTNative fromJSONDictionary:(id)_native];
+        if (!_native && dict[@"native"] && ![dict[@"native"] isKindOfClass:NSNull.class]) return nil;
+        _newtonsoft = [QTNewtonsoft fromJSONDictionary:(id)_newtonsoft];
+        if (!_newtonsoft && dict[@"newtonsoft"] && ![dict[@"newtonsoft"] isKindOfClass:NSNull.class]) return nil;
+        _no = [QTNo fromJSONDictionary:(id)_no];
+        if (!_no && dict[@"NO"] && ![dict[@"NO"] isKindOfClass:NSNull.class]) return nil;
+        _noSuchMethod = [QTNoSuchMethod fromJSONDictionary:(id)_noSuchMethod];
+        if (!_noSuchMethod && dict[@"noSuchMethod"] && ![dict[@"noSuchMethod"] isKindOfClass:NSNull.class]) return nil;
+        _noexcept = [QTNoexcept fromJSONDictionary:(id)_noexcept];
+        if (!_noexcept && dict[@"noexcept"] && ![dict[@"noexcept"] isKindOfClass:NSNull.class]) return nil;
+        _none = [QTNone fromJSONDictionary:(id)_none];
+        if (!_none && dict[@"None"] && ![dict[@"None"] isKindOfClass:NSNull.class]) return nil;
+        _nonlocal = [QTNonlocal fromJSONDictionary:(id)_nonlocal];
+        if (!_nonlocal && dict[@"nonlocal"] && ![dict[@"nonlocal"] isKindOfClass:NSNull.class]) return nil;
+        _nonmutating = [QTNonmutating fromJSONDictionary:(id)_nonmutating];
+        if (!_nonmutating && dict[@"nonmutating"] && ![dict[@"nonmutating"] isKindOfClass:NSNull.class]) return nil;
+        _not = [QTNot fromJSONDictionary:(id)_not];
+        if (!_not && dict[@"not"] && ![dict[@"not"] isKindOfClass:NSNull.class]) return nil;
+        _notEq = [QTNotEq fromJSONDictionary:(id)_notEq];
+        if (!_notEq && dict[@"not_eq"] && ![dict[@"not_eq"] isKindOfClass:NSNull.class]) return nil;
+        _nsError = [QTNSError fromJSONDictionary:(id)_nsError];
+        if (!_nsError && dict[@"NSError"] && ![dict[@"NSError"] isKindOfClass:NSNull.class]) return nil;
+        _nsString = [QTNSString fromJSONDictionary:(id)_nsString];
+        if (!_nsString && dict[@"NSString"] && ![dict[@"NSString"] isKindOfClass:NSNull.class]) return nil;
+        _null = [QTNull fromJSONDictionary:(id)_null];
+        if (!_null && dict[@"NULL"] && ![dict[@"NULL"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Inline = [QTInline fromJSONDictionary:(id)_obj3Inline];
+        if (!_obj3Inline && dict[@"inline"] && ![dict[@"inline"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Int = [QTInt fromJSONDictionary:(id)_obj3Int];
+        if (!_obj3Int && dict[@"int"] && ![dict[@"int"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Long = [QTLong fromJSONDictionary:(id)_obj3Long];
+        if (!_obj3Long && dict[@"long"] && ![dict[@"long"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Nil = [QTNil fromJSONDictionary:(id)_obj3Nil];
+        if (!_obj3Nil && dict[@"nil"] && ![dict[@"nil"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Nonatomic = [QTNonatomic fromJSONDictionary:(id)_obj3Nonatomic];
+        if (!_obj3Nonatomic && dict[@"nonatomic"] && ![dict[@"nonatomic"] isKindOfClass:NSNull.class]) return nil;
+        _obj3None = [QTNoneClass fromJSONDictionary:(id)_obj3None];
+        if (!_obj3None && dict[@"none"] && ![dict[@"none"] isKindOfClass:NSNull.class]) return nil;
+        _obj3Null = [QTNullClass fromJSONDictionary:(id)_obj3Null];
+        if (!_obj3Null && dict[@"null"] && ![dict[@"null"] isKindOfClass:NSNull.class]) return nil;
+        _theInit = [QTInit fromJSONDictionary:(id)_theInit];
+        if (!_theInit && dict[@"init"] && ![dict[@"init"] isKindOfClass:NSNull.class]) return nil;
+        _theNew = [QTNew fromJSONDictionary:(id)_theNew];
+        if (!_theNew && dict[@"new"] && ![dict[@"new"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIf.properties[key];
+    id resolved = QTObj3.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIf.properties[key];
+    id resolved = QTObj3.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTIf.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTObj3.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTIf.properties) {
-        id propertyName = QTIf.properties[jsonName];
+    for (id jsonName in QTObj3.properties) {
+        id propertyName = QTObj3.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
         }
     }
 
+    [dict addEntriesFromDictionary:@{
+        @"import": [_import JSONDictionary],
+        @"in": [_in JSONDictionary],
+        @"indirect": [_indirect JSONDictionary],
+        @"infix": [_infix JSONDictionary],
+        @"inout": [_inout JSONDictionary],
+        @"instanceof": [_instanceof JSONDictionary],
+        @"interface": [_interface JSONDictionary],
+        @"internal": [_internal JSONDictionary],
+        @"is": [_is JSONDictionary],
+        @"IsoDateTimeOffsetConverter": [_isoDateTimeOffsetConverter JSONDictionary],
+        @"iterable": [_iterable JSONDictionary],
+        @"jdec": [_jdec JSONDictionary],
+        @"jenc": [_jenc JSONDictionary],
+        @"jpipe": [_jpipe JSONDictionary],
+        @"json": [_json JSONDictionary],
+        @"JSONAny": [_jsonAny JSONDictionary],
+        @"JSONCodingKey": [_jsonCodingKey JSONDictionary],
+        @"json_converter": [_jsonConverter JSONDictionary],
+        @"JSONDecoder": [_jsonDecoder JSONDictionary],
+        @"JSONEncoder": [_jsonEncoder JSONDictionary],
+        @"JsonException": [_jsonException JSONDictionary],
+        @"JsonGenerator": [_jsonGenerator JSONDictionary],
+        @"JsonNode": [_jsonNode JSONDictionary],
+        @"JSONNull": [_jsonNull JSONDictionary],
+        @"JsonParser": [_jsonParser JSONDictionary],
+        @"JsonReader": [_jsonReader JSONDictionary],
+        @"json_serializer": [_jsonSerializer JSONDictionary],
+        @"json_token": [_jsonToken JSONDictionary],
+        @"JsonTokenType": [_jsonTokenType JSONDictionary],
+        @"json_writer": [_jsonWriter JSONDictionary],
+        @"lambda": [_lambda JSONDictionary],
+        @"lazy": [_lazy JSONDictionary],
+        @"left": [_left JSONDictionary],
+        @"let": [_let JSONDictionary],
+        @"list": [_list JSONDictionary],
+        @"lock": [_lock JSONDictionary],
+        @"map": [_map JSONDictionary],
+        @"metadata_property_handling": [_metadataPropertyHandling JSONDictionary],
+        @"module": [_module JSONDictionary],
+        @"mutable": [_mutable JSONDictionary],
+        @"mutating": [_mutating JSONDictionary],
+        @"namespace": [_namespace JSONDictionary],
+        @"native": [_native JSONDictionary],
+        @"newtonsoft": [_newtonsoft JSONDictionary],
+        @"NO": [_no JSONDictionary],
+        @"noSuchMethod": [_noSuchMethod JSONDictionary],
+        @"noexcept": [_noexcept JSONDictionary],
+        @"None": [_none JSONDictionary],
+        @"nonlocal": [_nonlocal JSONDictionary],
+        @"nonmutating": [_nonmutating JSONDictionary],
+        @"not": [_not JSONDictionary],
+        @"not_eq": [_notEq JSONDictionary],
+        @"NSError": [_nsError JSONDictionary],
+        @"NSString": [_nsString JSONDictionary],
+        @"NULL": [_null JSONDictionary],
+        @"inline": [_obj3Inline JSONDictionary],
+        @"int": [_obj3Int JSONDictionary],
+        @"long": [_obj3Long JSONDictionary],
+        @"nil": [_obj3Nil JSONDictionary],
+        @"nonatomic": [_obj3Nonatomic JSONDictionary],
+        @"none": [_obj3None JSONDictionary],
+        @"null": [_obj3Null JSONDictionary],
+        @"init": [_theInit JSONDictionary],
+        @"new": [_theNew JSONDictionary],
+    }];
+
     return dict;
 }
 @end
 
-@implementation QTInline
+@implementation QTImport
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"inline": @"inlineInline",
+        @"import": @"import",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInline alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImport alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"inline"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"inline"] doubleValue] != [dict[@"inline"] longLongValue]) return nil;
+        if (![dict[@"import"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"import"] doubleValue] != [dict[@"import"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8773,51 +8861,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInline.properties[key];
+    id resolved = QTImport.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInline.properties[key];
+    id resolved = QTImport.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTInline.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTInline.properties) {
-        id propertyName = QTInline.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTImport.properties.allValues];
 }
 @end
 
-@implementation QTInt
+@implementation QTIn
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"int": @"intInt",
+        @"in": @"in",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInt alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIn alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"int"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"int"] doubleValue] != [dict[@"int"] longLongValue]) return nil;
+        if (![dict[@"in"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"in"] doubleValue] != [dict[@"in"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8825,51 +8903,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInt.properties[key];
+    id resolved = QTIn.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInt.properties[key];
+    id resolved = QTIn.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
-{
-    id dict = [[self dictionaryWithValuesForKeys:QTInt.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTInt.properties) {
-        id propertyName = QTInt.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+{
+    return [self dictionaryWithValuesForKeys:QTIn.properties.allValues];
 }
 @end
 
-@implementation QTFalseClass
+@implementation QTIndirect
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"false": @"falseFalse",
+        @"indirect": @"indirect",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalseClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIndirect alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"false"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"false"] doubleValue] != [dict[@"false"] longLongValue]) return nil;
+        if (![dict[@"indirect"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"indirect"] doubleValue] != [dict[@"indirect"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8877,51 +8945,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFalseClass.properties[key];
+    id resolved = QTIndirect.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFalseClass.properties[key];
+    id resolved = QTIndirect.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTFalseClass.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTFalseClass.properties) {
-        id propertyName = QTFalseClass.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTIndirect.properties.allValues];
 }
 @end
 
-@implementation QTHashCode
+@implementation QTInfix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"hashCode": @"theHashCode",
+        @"infix": @"infix",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTHashCode alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInfix alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"hashCode"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"hashCode"] doubleValue] != [dict[@"hashCode"] longLongValue]) return nil;
+        if (![dict[@"infix"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"infix"] doubleValue] != [dict[@"infix"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8929,51 +8987,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTHashCode.properties[key];
+    id resolved = QTInfix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTHashCode.properties[key];
+    id resolved = QTInfix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTHashCode.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTHashCode.properties) {
-        id propertyName = QTHashCode.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTInfix.properties.allValues];
 }
 @end
 
-@implementation QTInit
+@implementation QTInout
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"init": @"theInit",
+        @"inout": @"inout",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInit alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInout alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"init"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"init"] doubleValue] != [dict[@"init"] longLongValue]) return nil;
+        if (![dict[@"inout"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"inout"] doubleValue] != [dict[@"inout"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -8981,504 +9029,145 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInit.properties[key];
+    id resolved = QTInout.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInit.properties[key];
+    id resolved = QTInout.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTInit.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTInit.properties) {
-        id propertyName = QTInit.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTInout.properties.allValues];
 }
 @end
 
-@implementation QTObj3
+@implementation QTInstanceof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"dummy": @"dummy",
-        @"is": @"is",
-        @"IsoDateTimeOffsetConverter": @"isoDateTimeOffsetConverter",
-        @"iterable": @"iterable",
-        @"jdec": @"jdec",
-        @"jenc": @"jenc",
-        @"jpipe": @"jpipe",
-        @"json": @"json",
-        @"JSONAny": @"jsonAny",
-        @"JSONCodingKey": @"jsonCodingKey",
-        @"json_converter": @"jsonConverter",
-        @"JSONDecoder": @"jsonDecoder",
-        @"JSONEncoder": @"jsonEncoder",
-        @"JsonException": @"jsonException",
-        @"JsonGenerator": @"jsonGenerator",
-        @"JsonNode": @"jsonNode",
-        @"JSONNull": @"jsonNull",
-        @"JsonParser": @"jsonParser",
-        @"JsonReader": @"jsonReader",
-        @"json_serializer": @"jsonSerializer",
-        @"json_token": @"jsonToken",
-        @"JsonTokenType": @"jsonTokenType",
-        @"json_writer": @"jsonWriter",
-        @"lambda": @"lambda",
-        @"lazy": @"lazy",
-        @"left": @"left",
-        @"let": @"let",
-        @"list": @"list",
-        @"lock": @"lock",
-        @"map": @"map",
-        @"metadata_property_handling": @"metadataPropertyHandling",
-        @"module": @"module",
-        @"mutable": @"mutable",
-        @"mutating": @"mutating",
-        @"namespace": @"namespace",
-        @"native": @"native",
-        @"newtonsoft": @"newtonsoft",
-        @"NO": @"no",
-        @"noSuchMethod": @"noSuchMethod",
-        @"noexcept": @"noexcept",
-        @"None": @"none",
-        @"nonlocal": @"nonlocal",
-        @"nonmutating": @"nonmutating",
-        @"not": @"not",
-        @"not_eq": @"notEq",
-        @"NSError": @"nsError",
-        @"NSString": @"nsString",
-        @"NULL": @"null",
-        @"nullptr": @"nullptr",
-        @"number": @"number",
-        @"long": @"obj3Long",
-        @"nil": @"obj3Nil",
-        @"nonatomic": @"obj3Nonatomic",
-        @"none": @"obj3None",
-        @"null": @"obj3Null",
-        @"protocol": @"obj3Protocol",
-        @"object": @"object",
-        @"ObjectMapper": @"objectMapper",
-        @"of": @"of",
-        @"oneway": @"oneway",
-        @"open": @"open",
-        @"operator": @"operator",
-        @"optional": @"optional",
-        @"or": @"or",
-        @"or_eq": @"orEq",
-        @"out": @"out",
-        @"override": @"override",
-        @"package": @"package",
-        @"params": @"params",
-        @"pass": @"pass",
-        @"port": @"port",
-        @"postfix": @"postfix",
-        @"precedence": @"precedence",
-        @"prefix": @"prefix",
-        @"print": @"print",
-        @"printMembers": @"printMembers",
-        @"printf": @"printf",
-        @"private": @"private",
-        @"protected": @"protected",
-        @"Protocol": @"protocol",
-        @"SerializerProvider": @"serializerProvider",
-        @"SimpleModule": @"simpleModule",
-        @"StdDeserializer": @"stdDeserializer",
-        @"StdSerializer": @"stdSerializer",
-        @"new": @"theNew",
+        @"instanceof": @"instanceof",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj3 alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInstanceof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
-    if (self = [super init]) {
-        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
-        if (![dict[@"is"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"IsoDateTimeOffsetConverter"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"iterable"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"jdec"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"jenc"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"jpipe"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"json"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JSONAny"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JSONCodingKey"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"json_converter"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JSONDecoder"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JSONEncoder"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonException"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonGenerator"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonNode"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JSONNull"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonParser"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonReader"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"json_serializer"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"json_token"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"JsonTokenType"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"json_writer"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"lambda"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"lazy"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"left"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"let"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"list"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"lock"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"map"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"metadata_property_handling"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"module"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"mutable"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"mutating"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"namespace"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"native"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"newtonsoft"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"NO"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"noSuchMethod"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"noexcept"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"None"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"nonlocal"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"nonmutating"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"not"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"not_eq"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"NSError"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"NSString"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"NULL"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"nullptr"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"number"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"long"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"nil"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"nonatomic"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"none"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"null"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"protocol"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"object"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"ObjectMapper"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"of"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"oneway"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"open"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"operator"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"optional"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"or"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"or_eq"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"out"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"override"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"package"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"params"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"pass"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"port"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"postfix"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"precedence"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"prefix"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"print"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"printMembers"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"printf"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"private"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"protected"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Protocol"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"SerializerProvider"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"SimpleModule"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"StdDeserializer"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"StdSerializer"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"new"] isKindOfClass:NSDictionary.class]) return nil;
+    if (self = [super init]) {
+        if (![dict[@"instanceof"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"instanceof"] doubleValue] != [dict[@"instanceof"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
-        _is = [QTIs fromJSONDictionary:(id)_is];
-        if (!_is && dict[@"is"] && ![dict[@"is"] isKindOfClass:NSNull.class]) return nil;
-        _isoDateTimeOffsetConverter = [QTISODateTimeOffsetConverter fromJSONDictionary:(id)_isoDateTimeOffsetConverter];
-        if (!_isoDateTimeOffsetConverter && dict[@"IsoDateTimeOffsetConverter"] && ![dict[@"IsoDateTimeOffsetConverter"] isKindOfClass:NSNull.class]) return nil;
-        _iterable = [QTIterable fromJSONDictionary:(id)_iterable];
-        if (!_iterable && dict[@"iterable"] && ![dict[@"iterable"] isKindOfClass:NSNull.class]) return nil;
-        _jdec = [QTJdec fromJSONDictionary:(id)_jdec];
-        if (!_jdec && dict[@"jdec"] && ![dict[@"jdec"] isKindOfClass:NSNull.class]) return nil;
-        _jenc = [QTJenc fromJSONDictionary:(id)_jenc];
-        if (!_jenc && dict[@"jenc"] && ![dict[@"jenc"] isKindOfClass:NSNull.class]) return nil;
-        _jpipe = [QTJpipe fromJSONDictionary:(id)_jpipe];
-        if (!_jpipe && dict[@"jpipe"] && ![dict[@"jpipe"] isKindOfClass:NSNull.class]) return nil;
-        _json = [QTJSON fromJSONDictionary:(id)_json];
-        if (!_json && dict[@"json"] && ![dict[@"json"] isKindOfClass:NSNull.class]) return nil;
-        _jsonAny = [QTJSONAny fromJSONDictionary:(id)_jsonAny];
-        if (!_jsonAny && dict[@"JSONAny"] && ![dict[@"JSONAny"] isKindOfClass:NSNull.class]) return nil;
-        _jsonCodingKey = [QTJSONCodingKey fromJSONDictionary:(id)_jsonCodingKey];
-        if (!_jsonCodingKey && dict[@"JSONCodingKey"] && ![dict[@"JSONCodingKey"] isKindOfClass:NSNull.class]) return nil;
-        _jsonConverter = [QTJSONConverter fromJSONDictionary:(id)_jsonConverter];
-        if (!_jsonConverter && dict[@"json_converter"] && ![dict[@"json_converter"] isKindOfClass:NSNull.class]) return nil;
-        _jsonDecoder = [QTJSONDecoder fromJSONDictionary:(id)_jsonDecoder];
-        if (!_jsonDecoder && dict[@"JSONDecoder"] && ![dict[@"JSONDecoder"] isKindOfClass:NSNull.class]) return nil;
-        _jsonEncoder = [QTJSONEncoder fromJSONDictionary:(id)_jsonEncoder];
-        if (!_jsonEncoder && dict[@"JSONEncoder"] && ![dict[@"JSONEncoder"] isKindOfClass:NSNull.class]) return nil;
-        _jsonException = [QTJSONException fromJSONDictionary:(id)_jsonException];
-        if (!_jsonException && dict[@"JsonException"] && ![dict[@"JsonException"] isKindOfClass:NSNull.class]) return nil;
-        _jsonGenerator = [QTJSONGenerator fromJSONDictionary:(id)_jsonGenerator];
-        if (!_jsonGenerator && dict[@"JsonGenerator"] && ![dict[@"JsonGenerator"] isKindOfClass:NSNull.class]) return nil;
-        _jsonNode = [QTJSONNode fromJSONDictionary:(id)_jsonNode];
-        if (!_jsonNode && dict[@"JsonNode"] && ![dict[@"JsonNode"] isKindOfClass:NSNull.class]) return nil;
-        _jsonNull = [QTJSONNull fromJSONDictionary:(id)_jsonNull];
-        if (!_jsonNull && dict[@"JSONNull"] && ![dict[@"JSONNull"] isKindOfClass:NSNull.class]) return nil;
-        _jsonParser = [QTJSONParser fromJSONDictionary:(id)_jsonParser];
-        if (!_jsonParser && dict[@"JsonParser"] && ![dict[@"JsonParser"] isKindOfClass:NSNull.class]) return nil;
-        _jsonReader = [QTJSONReader fromJSONDictionary:(id)_jsonReader];
-        if (!_jsonReader && dict[@"JsonReader"] && ![dict[@"JsonReader"] isKindOfClass:NSNull.class]) return nil;
-        _jsonSerializer = [QTJSONSerializer fromJSONDictionary:(id)_jsonSerializer];
-        if (!_jsonSerializer && dict[@"json_serializer"] && ![dict[@"json_serializer"] isKindOfClass:NSNull.class]) return nil;
-        _jsonToken = [QTJSONToken fromJSONDictionary:(id)_jsonToken];
-        if (!_jsonToken && dict[@"json_token"] && ![dict[@"json_token"] isKindOfClass:NSNull.class]) return nil;
-        _jsonTokenType = [QTJSONTokenType fromJSONDictionary:(id)_jsonTokenType];
-        if (!_jsonTokenType && dict[@"JsonTokenType"] && ![dict[@"JsonTokenType"] isKindOfClass:NSNull.class]) return nil;
-        _jsonWriter = [QTJSONWriter fromJSONDictionary:(id)_jsonWriter];
-        if (!_jsonWriter && dict[@"json_writer"] && ![dict[@"json_writer"] isKindOfClass:NSNull.class]) return nil;
-        _lambda = [QTLambda fromJSONDictionary:(id)_lambda];
-        if (!_lambda && dict[@"lambda"] && ![dict[@"lambda"] isKindOfClass:NSNull.class]) return nil;
-        _lazy = [QTLazy fromJSONDictionary:(id)_lazy];
-        if (!_lazy && dict[@"lazy"] && ![dict[@"lazy"] isKindOfClass:NSNull.class]) return nil;
-        _left = [QTLeft fromJSONDictionary:(id)_left];
-        if (!_left && dict[@"left"] && ![dict[@"left"] isKindOfClass:NSNull.class]) return nil;
-        _let = [QTLet fromJSONDictionary:(id)_let];
-        if (!_let && dict[@"let"] && ![dict[@"let"] isKindOfClass:NSNull.class]) return nil;
-        _list = [QTList fromJSONDictionary:(id)_list];
-        if (!_list && dict[@"list"] && ![dict[@"list"] isKindOfClass:NSNull.class]) return nil;
-        _lock = [QTLock fromJSONDictionary:(id)_lock];
-        if (!_lock && dict[@"lock"] && ![dict[@"lock"] isKindOfClass:NSNull.class]) return nil;
-        _map = [QTMap fromJSONDictionary:(id)_map];
-        if (!_map && dict[@"map"] && ![dict[@"map"] isKindOfClass:NSNull.class]) return nil;
-        _metadataPropertyHandling = [QTMetadataPropertyHandling fromJSONDictionary:(id)_metadataPropertyHandling];
-        if (!_metadataPropertyHandling && dict[@"metadata_property_handling"] && ![dict[@"metadata_property_handling"] isKindOfClass:NSNull.class]) return nil;
-        _module = [QTModule fromJSONDictionary:(id)_module];
-        if (!_module && dict[@"module"] && ![dict[@"module"] isKindOfClass:NSNull.class]) return nil;
-        _mutable = [QTMutable fromJSONDictionary:(id)_mutable];
-        if (!_mutable && dict[@"mutable"] && ![dict[@"mutable"] isKindOfClass:NSNull.class]) return nil;
-        _mutating = [QTMutating fromJSONDictionary:(id)_mutating];
-        if (!_mutating && dict[@"mutating"] && ![dict[@"mutating"] isKindOfClass:NSNull.class]) return nil;
-        _namespace = [QTNamespace fromJSONDictionary:(id)_namespace];
-        if (!_namespace && dict[@"namespace"] && ![dict[@"namespace"] isKindOfClass:NSNull.class]) return nil;
-        _native = [QTNative fromJSONDictionary:(id)_native];
-        if (!_native && dict[@"native"] && ![dict[@"native"] isKindOfClass:NSNull.class]) return nil;
-        _newtonsoft = [QTNewtonsoft fromJSONDictionary:(id)_newtonsoft];
-        if (!_newtonsoft && dict[@"newtonsoft"] && ![dict[@"newtonsoft"] isKindOfClass:NSNull.class]) return nil;
-        _no = [QTNo fromJSONDictionary:(id)_no];
-        if (!_no && dict[@"NO"] && ![dict[@"NO"] isKindOfClass:NSNull.class]) return nil;
-        _noSuchMethod = [QTNoSuchMethod fromJSONDictionary:(id)_noSuchMethod];
-        if (!_noSuchMethod && dict[@"noSuchMethod"] && ![dict[@"noSuchMethod"] isKindOfClass:NSNull.class]) return nil;
-        _noexcept = [QTNoexcept fromJSONDictionary:(id)_noexcept];
-        if (!_noexcept && dict[@"noexcept"] && ![dict[@"noexcept"] isKindOfClass:NSNull.class]) return nil;
-        _none = [QTNone fromJSONDictionary:(id)_none];
-        if (!_none && dict[@"None"] && ![dict[@"None"] isKindOfClass:NSNull.class]) return nil;
-        _nonlocal = [QTNonlocal fromJSONDictionary:(id)_nonlocal];
-        if (!_nonlocal && dict[@"nonlocal"] && ![dict[@"nonlocal"] isKindOfClass:NSNull.class]) return nil;
-        _nonmutating = [QTNonmutating fromJSONDictionary:(id)_nonmutating];
-        if (!_nonmutating && dict[@"nonmutating"] && ![dict[@"nonmutating"] isKindOfClass:NSNull.class]) return nil;
-        _not = [QTNot fromJSONDictionary:(id)_not];
-        if (!_not && dict[@"not"] && ![dict[@"not"] isKindOfClass:NSNull.class]) return nil;
-        _notEq = [QTNotEq fromJSONDictionary:(id)_notEq];
-        if (!_notEq && dict[@"not_eq"] && ![dict[@"not_eq"] isKindOfClass:NSNull.class]) return nil;
-        _nsError = [QTNSError fromJSONDictionary:(id)_nsError];
-        if (!_nsError && dict[@"NSError"] && ![dict[@"NSError"] isKindOfClass:NSNull.class]) return nil;
-        _nsString = [QTNSString fromJSONDictionary:(id)_nsString];
-        if (!_nsString && dict[@"NSString"] && ![dict[@"NSString"] isKindOfClass:NSNull.class]) return nil;
-        _null = [QTNull fromJSONDictionary:(id)_null];
-        if (!_null && dict[@"NULL"] && ![dict[@"NULL"] isKindOfClass:NSNull.class]) return nil;
-        _nullptr = [QTNullptr fromJSONDictionary:(id)_nullptr];
-        if (!_nullptr && dict[@"nullptr"] && ![dict[@"nullptr"] isKindOfClass:NSNull.class]) return nil;
-        _number = [QTNumber fromJSONDictionary:(id)_number];
-        if (!_number && dict[@"number"] && ![dict[@"number"] isKindOfClass:NSNull.class]) return nil;
-        _obj3Long = [QTLong fromJSONDictionary:(id)_obj3Long];
-        if (!_obj3Long && dict[@"long"] && ![dict[@"long"] isKindOfClass:NSNull.class]) return nil;
-        _obj3Nil = [QTNil fromJSONDictionary:(id)_obj3Nil];
-        if (!_obj3Nil && dict[@"nil"] && ![dict[@"nil"] isKindOfClass:NSNull.class]) return nil;
-        _obj3Nonatomic = [QTNonatomic fromJSONDictionary:(id)_obj3Nonatomic];
-        if (!_obj3Nonatomic && dict[@"nonatomic"] && ![dict[@"nonatomic"] isKindOfClass:NSNull.class]) return nil;
-        _obj3None = [QTNoneClass fromJSONDictionary:(id)_obj3None];
-        if (!_obj3None && dict[@"none"] && ![dict[@"none"] isKindOfClass:NSNull.class]) return nil;
-        _obj3Null = [QTNullClass fromJSONDictionary:(id)_obj3Null];
-        if (!_obj3Null && dict[@"null"] && ![dict[@"null"] isKindOfClass:NSNull.class]) return nil;
-        _obj3Protocol = [QTProtocolClass fromJSONDictionary:(id)_obj3Protocol];
-        if (!_obj3Protocol && dict[@"protocol"] && ![dict[@"protocol"] isKindOfClass:NSNull.class]) return nil;
-        _object = [QTObject fromJSONDictionary:(id)_object];
-        if (!_object && dict[@"object"] && ![dict[@"object"] isKindOfClass:NSNull.class]) return nil;
-        _objectMapper = [QTObjectMapper fromJSONDictionary:(id)_objectMapper];
-        if (!_objectMapper && dict[@"ObjectMapper"] && ![dict[@"ObjectMapper"] isKindOfClass:NSNull.class]) return nil;
-        _of = [QTOf fromJSONDictionary:(id)_of];
-        if (!_of && dict[@"of"] && ![dict[@"of"] isKindOfClass:NSNull.class]) return nil;
-        _oneway = [QTOneway fromJSONDictionary:(id)_oneway];
-        if (!_oneway && dict[@"oneway"] && ![dict[@"oneway"] isKindOfClass:NSNull.class]) return nil;
-        _open = [QTOpen fromJSONDictionary:(id)_open];
-        if (!_open && dict[@"open"] && ![dict[@"open"] isKindOfClass:NSNull.class]) return nil;
-        _operator = [QTOperator fromJSONDictionary:(id)_operator];
-        if (!_operator && dict[@"operator"] && ![dict[@"operator"] isKindOfClass:NSNull.class]) return nil;
-        _optional = [QTOptional fromJSONDictionary:(id)_optional];
-        if (!_optional && dict[@"optional"] && ![dict[@"optional"] isKindOfClass:NSNull.class]) return nil;
-        _or = [QTOr fromJSONDictionary:(id)_or];
-        if (!_or && dict[@"or"] && ![dict[@"or"] isKindOfClass:NSNull.class]) return nil;
-        _orEq = [QTOrEq fromJSONDictionary:(id)_orEq];
-        if (!_orEq && dict[@"or_eq"] && ![dict[@"or_eq"] isKindOfClass:NSNull.class]) return nil;
-        _out = [QTOut fromJSONDictionary:(id)_out];
-        if (!_out && dict[@"out"] && ![dict[@"out"] isKindOfClass:NSNull.class]) return nil;
-        _override = [QTOverride fromJSONDictionary:(id)_override];
-        if (!_override && dict[@"override"] && ![dict[@"override"] isKindOfClass:NSNull.class]) return nil;
-        _package = [QTPackage fromJSONDictionary:(id)_package];
-        if (!_package && dict[@"package"] && ![dict[@"package"] isKindOfClass:NSNull.class]) return nil;
-        _params = [QTParams fromJSONDictionary:(id)_params];
-        if (!_params && dict[@"params"] && ![dict[@"params"] isKindOfClass:NSNull.class]) return nil;
-        _pass = [QTPass fromJSONDictionary:(id)_pass];
-        if (!_pass && dict[@"pass"] && ![dict[@"pass"] isKindOfClass:NSNull.class]) return nil;
-        _port = [QTPort fromJSONDictionary:(id)_port];
-        if (!_port && dict[@"port"] && ![dict[@"port"] isKindOfClass:NSNull.class]) return nil;
-        _postfix = [QTPostfix fromJSONDictionary:(id)_postfix];
-        if (!_postfix && dict[@"postfix"] && ![dict[@"postfix"] isKindOfClass:NSNull.class]) return nil;
-        _precedence = [QTPrecedence fromJSONDictionary:(id)_precedence];
-        if (!_precedence && dict[@"precedence"] && ![dict[@"precedence"] isKindOfClass:NSNull.class]) return nil;
-        _prefix = [QTPrefix fromJSONDictionary:(id)_prefix];
-        if (!_prefix && dict[@"prefix"] && ![dict[@"prefix"] isKindOfClass:NSNull.class]) return nil;
-        _print = [QTPrint fromJSONDictionary:(id)_print];
-        if (!_print && dict[@"print"] && ![dict[@"print"] isKindOfClass:NSNull.class]) return nil;
-        _printMembers = [QTPrintMembers fromJSONDictionary:(id)_printMembers];
-        if (!_printMembers && dict[@"printMembers"] && ![dict[@"printMembers"] isKindOfClass:NSNull.class]) return nil;
-        _printf = [QTPrintf fromJSONDictionary:(id)_printf];
-        if (!_printf && dict[@"printf"] && ![dict[@"printf"] isKindOfClass:NSNull.class]) return nil;
-        _private = [QTPrivate fromJSONDictionary:(id)_private];
-        if (!_private && dict[@"private"] && ![dict[@"private"] isKindOfClass:NSNull.class]) return nil;
-        _protected = [QTProtected fromJSONDictionary:(id)_protected];
-        if (!_protected && dict[@"protected"] && ![dict[@"protected"] isKindOfClass:NSNull.class]) return nil;
-        _protocol = [QTProtocol fromJSONDictionary:(id)_protocol];
-        if (!_protocol && dict[@"Protocol"] && ![dict[@"Protocol"] isKindOfClass:NSNull.class]) return nil;
-        _serializerProvider = [QTSerializerProvider fromJSONDictionary:(id)_serializerProvider];
-        if (!_serializerProvider && dict[@"SerializerProvider"] && ![dict[@"SerializerProvider"] isKindOfClass:NSNull.class]) return nil;
-        _simpleModule = [QTSimpleModule fromJSONDictionary:(id)_simpleModule];
-        if (!_simpleModule && dict[@"SimpleModule"] && ![dict[@"SimpleModule"] isKindOfClass:NSNull.class]) return nil;
-        _stdDeserializer = [QTStdDeserializer fromJSONDictionary:(id)_stdDeserializer];
-        if (!_stdDeserializer && dict[@"StdDeserializer"] && ![dict[@"StdDeserializer"] isKindOfClass:NSNull.class]) return nil;
-        _stdSerializer = [QTStdSerializer fromJSONDictionary:(id)_stdSerializer];
-        if (!_stdSerializer && dict[@"StdSerializer"] && ![dict[@"StdSerializer"] isKindOfClass:NSNull.class]) return nil;
-        _theNew = [QTNew fromJSONDictionary:(id)_theNew];
-        if (!_theNew && dict[@"new"] && ![dict[@"new"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObj3.properties[key];
+    id resolved = QTInstanceof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObj3.properties[key];
+    id resolved = QTInstanceof.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTInstanceof.properties.allValues];
+}
+@end
+
+@implementation QTInterface
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"interface": @"interface",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInterface alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"interface"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"interface"] doubleValue] != [dict[@"interface"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTInterface.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTInterface.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTInterface.properties.allValues];
+}
+@end
+
+@implementation QTInternal
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"internal": @"internal",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInternal alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"internal"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"internal"] doubleValue] != [dict[@"internal"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTInternal.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTInternal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTObj3.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTObj3.properties) {
-        id propertyName = QTObj3.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    [dict addEntriesFromDictionary:@{
-        @"is": [_is JSONDictionary],
-        @"IsoDateTimeOffsetConverter": [_isoDateTimeOffsetConverter JSONDictionary],
-        @"iterable": [_iterable JSONDictionary],
-        @"jdec": [_jdec JSONDictionary],
-        @"jenc": [_jenc JSONDictionary],
-        @"jpipe": [_jpipe JSONDictionary],
-        @"json": [_json JSONDictionary],
-        @"JSONAny": [_jsonAny JSONDictionary],
-        @"JSONCodingKey": [_jsonCodingKey JSONDictionary],
-        @"json_converter": [_jsonConverter JSONDictionary],
-        @"JSONDecoder": [_jsonDecoder JSONDictionary],
-        @"JSONEncoder": [_jsonEncoder JSONDictionary],
-        @"JsonException": [_jsonException JSONDictionary],
-        @"JsonGenerator": [_jsonGenerator JSONDictionary],
-        @"JsonNode": [_jsonNode JSONDictionary],
-        @"JSONNull": [_jsonNull JSONDictionary],
-        @"JsonParser": [_jsonParser JSONDictionary],
-        @"JsonReader": [_jsonReader JSONDictionary],
-        @"json_serializer": [_jsonSerializer JSONDictionary],
-        @"json_token": [_jsonToken JSONDictionary],
-        @"JsonTokenType": [_jsonTokenType JSONDictionary],
-        @"json_writer": [_jsonWriter JSONDictionary],
-        @"lambda": [_lambda JSONDictionary],
-        @"lazy": [_lazy JSONDictionary],
-        @"left": [_left JSONDictionary],
-        @"let": [_let JSONDictionary],
-        @"list": [_list JSONDictionary],
-        @"lock": [_lock JSONDictionary],
-        @"map": [_map JSONDictionary],
-        @"metadata_property_handling": [_metadataPropertyHandling JSONDictionary],
-        @"module": [_module JSONDictionary],
-        @"mutable": [_mutable JSONDictionary],
-        @"mutating": [_mutating JSONDictionary],
-        @"namespace": [_namespace JSONDictionary],
-        @"native": [_native JSONDictionary],
-        @"newtonsoft": [_newtonsoft JSONDictionary],
-        @"NO": [_no JSONDictionary],
-        @"noSuchMethod": [_noSuchMethod JSONDictionary],
-        @"noexcept": [_noexcept JSONDictionary],
-        @"None": [_none JSONDictionary],
-        @"nonlocal": [_nonlocal JSONDictionary],
-        @"nonmutating": [_nonmutating JSONDictionary],
-        @"not": [_not JSONDictionary],
-        @"not_eq": [_notEq JSONDictionary],
-        @"NSError": [_nsError JSONDictionary],
-        @"NSString": [_nsString JSONDictionary],
-        @"NULL": [_null JSONDictionary],
-        @"nullptr": [_nullptr JSONDictionary],
-        @"number": [_number JSONDictionary],
-        @"long": [_obj3Long JSONDictionary],
-        @"nil": [_obj3Nil JSONDictionary],
-        @"nonatomic": [_obj3Nonatomic JSONDictionary],
-        @"none": [_obj3None JSONDictionary],
-        @"null": [_obj3Null JSONDictionary],
-        @"protocol": [_obj3Protocol JSONDictionary],
-        @"object": [_object JSONDictionary],
-        @"ObjectMapper": [_objectMapper JSONDictionary],
-        @"of": [_of JSONDictionary],
-        @"oneway": [_oneway JSONDictionary],
-        @"open": [_open JSONDictionary],
-        @"operator": [_operator JSONDictionary],
-        @"optional": [_optional JSONDictionary],
-        @"or": [_or JSONDictionary],
-        @"or_eq": [_orEq JSONDictionary],
-        @"out": [_out JSONDictionary],
-        @"override": [_override JSONDictionary],
-        @"package": [_package JSONDictionary],
-        @"params": [_params JSONDictionary],
-        @"pass": [_pass JSONDictionary],
-        @"port": [_port JSONDictionary],
-        @"postfix": [_postfix JSONDictionary],
-        @"precedence": [_precedence JSONDictionary],
-        @"prefix": [_prefix JSONDictionary],
-        @"print": [_print JSONDictionary],
-        @"printMembers": [_printMembers JSONDictionary],
-        @"printf": [_printf JSONDictionary],
-        @"private": [_private JSONDictionary],
-        @"protected": [_protected JSONDictionary],
-        @"Protocol": [_protocol JSONDictionary],
-        @"SerializerProvider": [_serializerProvider JSONDictionary],
-        @"SimpleModule": [_simpleModule JSONDictionary],
-        @"StdDeserializer": [_stdDeserializer JSONDictionary],
-        @"StdSerializer": [_stdSerializer JSONDictionary],
-        @"new": [_theNew JSONDictionary],
-    }];
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTInternal.properties.allValues];
 }
 @end
 
@@ -11685,25 +11374,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTNullptr
+@implementation QTInline
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"nullptr": @"nullptr",
+        @"inline": @"inlineInline",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullptr alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInline alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"nullptr"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"nullptr"] doubleValue] != [dict[@"nullptr"] longLongValue]) return nil;
+        if (![dict[@"inline"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"inline"] doubleValue] != [dict[@"inline"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -11711,41 +11400,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNullptr.properties[key];
+    id resolved = QTInline.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNullptr.properties[key];
+    id resolved = QTInline.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNullptr.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTInline.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTInline.properties) {
+        id propertyName = QTInline.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTNumber
+@implementation QTInt
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"number": @"number",
+        @"int": @"intInt",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNumber alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInt alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"number"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"number"] doubleValue] != [dict[@"number"] longLongValue]) return nil;
+        if (![dict[@"int"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"int"] doubleValue] != [dict[@"int"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -11753,19 +11452,29 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNumber.properties[key];
+    id resolved = QTInt.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNumber.properties[key];
+    id resolved = QTInt.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNumber.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTInt.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTInt.properties) {
+        id propertyName = QTInt.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
@@ -12009,25 +11718,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTProtocolClass
+@implementation QTInit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"protocol": @"protocol",
+        @"init": @"theInit",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocolClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInit alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"protocol"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"protocol"] doubleValue] != [dict[@"protocol"] longLongValue]) return nil;
+        if (![dict[@"init"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"init"] doubleValue] != [dict[@"init"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12035,41 +11744,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtocolClass.properties[key];
+    id resolved = QTInit.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtocolClass.properties[key];
+    id resolved = QTInit.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTProtocolClass.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTInit.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTInit.properties) {
+        id propertyName = QTInit.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTObject
+@implementation QTNew
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"object": @"object",
+        @"new": @"theNew",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObject alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNew alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"object"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"object"] doubleValue] != [dict[@"object"] longLongValue]) return nil;
+        if (![dict[@"new"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"new"] doubleValue] != [dict[@"new"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12077,93 +11796,426 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObject.properties[key];
+    id resolved = QTNew.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObject.properties[key];
+    id resolved = QTNew.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTObject.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTNew.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTNew.properties) {
+        id propertyName = QTNew.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTObjectMapper
+@implementation QTObj4
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
+        @"dummy": @"dummy",
+        @"nullptr": @"nullptr",
+        @"number": @"number",
+        @"protocol": @"obj4Protocol",
+        @"register": @"obj4Register",
+        @"restrict": @"obj4Restrict",
+        @"retain": @"obj4Retain",
+        @"return": @"obj4Return",
+        @"self": @"obj4Self",
+        @"short": @"obj4Short",
+        @"signed": @"obj4Signed",
+        @"sizeof": @"obj4Sizeof",
+        @"static": @"obj4Static",
+        @"object": @"object",
         @"ObjectMapper": @"objectMapper",
+        @"of": @"of",
+        @"oneway": @"oneway",
+        @"open": @"open",
+        @"operator": @"operator",
+        @"optional": @"optional",
+        @"or": @"or",
+        @"or_eq": @"orEq",
+        @"out": @"out",
+        @"override": @"override",
+        @"package": @"package",
+        @"params": @"params",
+        @"pass": @"pass",
+        @"port": @"port",
+        @"postfix": @"postfix",
+        @"precedence": @"precedence",
+        @"prefix": @"prefix",
+        @"print": @"print",
+        @"printMembers": @"printMembers",
+        @"printf": @"printf",
+        @"private": @"private",
+        @"protected": @"protected",
+        @"Protocol": @"protocol",
+        @"public": @"public",
+        @"quicktype": @"quicktype",
+        @"raise": @"raise",
+        @"range": @"range",
+        @"readonly": @"readonly",
+        @"ref": @"ref",
+        @"RegExp": @"regExp",
+        @"reinterpret_cast": @"reinterpretCast",
+        @"repeat": @"repeat",
+        @"require": @"require",
+        @"required": @"required",
+        @"requires": @"requires",
+        @"rethrows": @"rethrows",
+        @"right": @"right",
+        @"runtimeType": @"runtimeType",
+        @"s": @"s",
+        @"sbyte": @"sbyte",
+        @"sealed": @"sealed",
+        @"SEL": @"sel",
+        @"select": @"select",
+        @"Self": @"self",
+        @"serialize": @"serialize",
+        @"SerializerProvider": @"serializerProvider",
+        @"set": @"set",
+        @"SimpleModule": @"simpleModule",
+        @"stackalloc": @"stackalloc",
+        @"Standards": @"standards",
+        @"static_assert": @"staticAssert",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObjectMapper alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj4 alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"ObjectMapper"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"ObjectMapper"] doubleValue] != [dict[@"ObjectMapper"] longLongValue]) return nil;
+        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
+        if (![dict[@"nullptr"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"number"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"protocol"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"register"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"restrict"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"retain"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"return"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"self"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"short"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"signed"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"sizeof"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"static"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"object"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"ObjectMapper"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"of"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"oneway"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"open"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"operator"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"optional"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"or"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"or_eq"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"out"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"override"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"package"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"params"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"pass"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"port"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"postfix"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"precedence"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"prefix"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"print"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"printMembers"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"printf"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"private"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"protected"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Protocol"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"public"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"quicktype"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"raise"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"range"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"readonly"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"ref"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"RegExp"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"reinterpret_cast"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"repeat"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"require"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"required"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"requires"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"rethrows"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"right"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"runtimeType"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"s"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"sbyte"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"sealed"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"SEL"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"select"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Self"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"serialize"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"SerializerProvider"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"set"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"SimpleModule"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"stackalloc"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Standards"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"static_assert"] isKindOfClass:NSDictionary.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
+        _nullptr = [QTNullptr fromJSONDictionary:(id)_nullptr];
+        if (!_nullptr && dict[@"nullptr"] && ![dict[@"nullptr"] isKindOfClass:NSNull.class]) return nil;
+        _number = [QTNumber fromJSONDictionary:(id)_number];
+        if (!_number && dict[@"number"] && ![dict[@"number"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Protocol = [QTProtocolClass fromJSONDictionary:(id)_obj4Protocol];
+        if (!_obj4Protocol && dict[@"protocol"] && ![dict[@"protocol"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Register = [QTRegister fromJSONDictionary:(id)_obj4Register];
+        if (!_obj4Register && dict[@"register"] && ![dict[@"register"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Restrict = [QTRestrict fromJSONDictionary:(id)_obj4Restrict];
+        if (!_obj4Restrict && dict[@"restrict"] && ![dict[@"restrict"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Retain = [QTRetain fromJSONDictionary:(id)_obj4Retain];
+        if (!_obj4Retain && dict[@"retain"] && ![dict[@"retain"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Return = [QTReturn fromJSONDictionary:(id)_obj4Return];
+        if (!_obj4Return && dict[@"return"] && ![dict[@"return"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Self = [QTSelfClass fromJSONDictionary:(id)_obj4Self];
+        if (!_obj4Self && dict[@"self"] && ![dict[@"self"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Short = [QTShort fromJSONDictionary:(id)_obj4Short];
+        if (!_obj4Short && dict[@"short"] && ![dict[@"short"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Signed = [QTSigned fromJSONDictionary:(id)_obj4Signed];
+        if (!_obj4Signed && dict[@"signed"] && ![dict[@"signed"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Sizeof = [QTSizeof fromJSONDictionary:(id)_obj4Sizeof];
+        if (!_obj4Sizeof && dict[@"sizeof"] && ![dict[@"sizeof"] isKindOfClass:NSNull.class]) return nil;
+        _obj4Static = [QTStatic fromJSONDictionary:(id)_obj4Static];
+        if (!_obj4Static && dict[@"static"] && ![dict[@"static"] isKindOfClass:NSNull.class]) return nil;
+        _object = [QTObject fromJSONDictionary:(id)_object];
+        if (!_object && dict[@"object"] && ![dict[@"object"] isKindOfClass:NSNull.class]) return nil;
+        _objectMapper = [QTObjectMapper fromJSONDictionary:(id)_objectMapper];
+        if (!_objectMapper && dict[@"ObjectMapper"] && ![dict[@"ObjectMapper"] isKindOfClass:NSNull.class]) return nil;
+        _of = [QTOf fromJSONDictionary:(id)_of];
+        if (!_of && dict[@"of"] && ![dict[@"of"] isKindOfClass:NSNull.class]) return nil;
+        _oneway = [QTOneway fromJSONDictionary:(id)_oneway];
+        if (!_oneway && dict[@"oneway"] && ![dict[@"oneway"] isKindOfClass:NSNull.class]) return nil;
+        _open = [QTOpen fromJSONDictionary:(id)_open];
+        if (!_open && dict[@"open"] && ![dict[@"open"] isKindOfClass:NSNull.class]) return nil;
+        _operator = [QTOperator fromJSONDictionary:(id)_operator];
+        if (!_operator && dict[@"operator"] && ![dict[@"operator"] isKindOfClass:NSNull.class]) return nil;
+        _optional = [QTOptional fromJSONDictionary:(id)_optional];
+        if (!_optional && dict[@"optional"] && ![dict[@"optional"] isKindOfClass:NSNull.class]) return nil;
+        _or = [QTOr fromJSONDictionary:(id)_or];
+        if (!_or && dict[@"or"] && ![dict[@"or"] isKindOfClass:NSNull.class]) return nil;
+        _orEq = [QTOrEq fromJSONDictionary:(id)_orEq];
+        if (!_orEq && dict[@"or_eq"] && ![dict[@"or_eq"] isKindOfClass:NSNull.class]) return nil;
+        _out = [QTOut fromJSONDictionary:(id)_out];
+        if (!_out && dict[@"out"] && ![dict[@"out"] isKindOfClass:NSNull.class]) return nil;
+        _override = [QTOverride fromJSONDictionary:(id)_override];
+        if (!_override && dict[@"override"] && ![dict[@"override"] isKindOfClass:NSNull.class]) return nil;
+        _package = [QTPackage fromJSONDictionary:(id)_package];
+        if (!_package && dict[@"package"] && ![dict[@"package"] isKindOfClass:NSNull.class]) return nil;
+        _params = [QTParams fromJSONDictionary:(id)_params];
+        if (!_params && dict[@"params"] && ![dict[@"params"] isKindOfClass:NSNull.class]) return nil;
+        _pass = [QTPass fromJSONDictionary:(id)_pass];
+        if (!_pass && dict[@"pass"] && ![dict[@"pass"] isKindOfClass:NSNull.class]) return nil;
+        _port = [QTPort fromJSONDictionary:(id)_port];
+        if (!_port && dict[@"port"] && ![dict[@"port"] isKindOfClass:NSNull.class]) return nil;
+        _postfix = [QTPostfix fromJSONDictionary:(id)_postfix];
+        if (!_postfix && dict[@"postfix"] && ![dict[@"postfix"] isKindOfClass:NSNull.class]) return nil;
+        _precedence = [QTPrecedence fromJSONDictionary:(id)_precedence];
+        if (!_precedence && dict[@"precedence"] && ![dict[@"precedence"] isKindOfClass:NSNull.class]) return nil;
+        _prefix = [QTPrefix fromJSONDictionary:(id)_prefix];
+        if (!_prefix && dict[@"prefix"] && ![dict[@"prefix"] isKindOfClass:NSNull.class]) return nil;
+        _print = [QTPrint fromJSONDictionary:(id)_print];
+        if (!_print && dict[@"print"] && ![dict[@"print"] isKindOfClass:NSNull.class]) return nil;
+        _printMembers = [QTPrintMembers fromJSONDictionary:(id)_printMembers];
+        if (!_printMembers && dict[@"printMembers"] && ![dict[@"printMembers"] isKindOfClass:NSNull.class]) return nil;
+        _printf = [QTPrintf fromJSONDictionary:(id)_printf];
+        if (!_printf && dict[@"printf"] && ![dict[@"printf"] isKindOfClass:NSNull.class]) return nil;
+        _private = [QTPrivate fromJSONDictionary:(id)_private];
+        if (!_private && dict[@"private"] && ![dict[@"private"] isKindOfClass:NSNull.class]) return nil;
+        _protected = [QTProtected fromJSONDictionary:(id)_protected];
+        if (!_protected && dict[@"protected"] && ![dict[@"protected"] isKindOfClass:NSNull.class]) return nil;
+        _protocol = [QTProtocol fromJSONDictionary:(id)_protocol];
+        if (!_protocol && dict[@"Protocol"] && ![dict[@"Protocol"] isKindOfClass:NSNull.class]) return nil;
+        _public = [QTPublic fromJSONDictionary:(id)_public];
+        if (!_public && dict[@"public"] && ![dict[@"public"] isKindOfClass:NSNull.class]) return nil;
+        _quicktype = [QTQuicktype fromJSONDictionary:(id)_quicktype];
+        if (!_quicktype && dict[@"quicktype"] && ![dict[@"quicktype"] isKindOfClass:NSNull.class]) return nil;
+        _raise = [QTRaise fromJSONDictionary:(id)_raise];
+        if (!_raise && dict[@"raise"] && ![dict[@"raise"] isKindOfClass:NSNull.class]) return nil;
+        _range = [QTRange fromJSONDictionary:(id)_range];
+        if (!_range && dict[@"range"] && ![dict[@"range"] isKindOfClass:NSNull.class]) return nil;
+        _readonly = [QTReadonly fromJSONDictionary:(id)_readonly];
+        if (!_readonly && dict[@"readonly"] && ![dict[@"readonly"] isKindOfClass:NSNull.class]) return nil;
+        _ref = [QTRef fromJSONDictionary:(id)_ref];
+        if (!_ref && dict[@"ref"] && ![dict[@"ref"] isKindOfClass:NSNull.class]) return nil;
+        _regExp = [QTRegExp fromJSONDictionary:(id)_regExp];
+        if (!_regExp && dict[@"RegExp"] && ![dict[@"RegExp"] isKindOfClass:NSNull.class]) return nil;
+        _reinterpretCast = [QTReinterpretCast fromJSONDictionary:(id)_reinterpretCast];
+        if (!_reinterpretCast && dict[@"reinterpret_cast"] && ![dict[@"reinterpret_cast"] isKindOfClass:NSNull.class]) return nil;
+        _repeat = [QTRepeat fromJSONDictionary:(id)_repeat];
+        if (!_repeat && dict[@"repeat"] && ![dict[@"repeat"] isKindOfClass:NSNull.class]) return nil;
+        _require = [QTRequire fromJSONDictionary:(id)_require];
+        if (!_require && dict[@"require"] && ![dict[@"require"] isKindOfClass:NSNull.class]) return nil;
+        _required = [QTRequired fromJSONDictionary:(id)_required];
+        if (!_required && dict[@"required"] && ![dict[@"required"] isKindOfClass:NSNull.class]) return nil;
+        _requires = [QTRequires fromJSONDictionary:(id)_requires];
+        if (!_requires && dict[@"requires"] && ![dict[@"requires"] isKindOfClass:NSNull.class]) return nil;
+        _rethrows = [QTRethrows fromJSONDictionary:(id)_rethrows];
+        if (!_rethrows && dict[@"rethrows"] && ![dict[@"rethrows"] isKindOfClass:NSNull.class]) return nil;
+        _right = [QTRight fromJSONDictionary:(id)_right];
+        if (!_right && dict[@"right"] && ![dict[@"right"] isKindOfClass:NSNull.class]) return nil;
+        _runtimeType = [QTRuntimeType fromJSONDictionary:(id)_runtimeType];
+        if (!_runtimeType && dict[@"runtimeType"] && ![dict[@"runtimeType"] isKindOfClass:NSNull.class]) return nil;
+        _s = [QTS fromJSONDictionary:(id)_s];
+        if (!_s && dict[@"s"] && ![dict[@"s"] isKindOfClass:NSNull.class]) return nil;
+        _sbyte = [QTSbyte fromJSONDictionary:(id)_sbyte];
+        if (!_sbyte && dict[@"sbyte"] && ![dict[@"sbyte"] isKindOfClass:NSNull.class]) return nil;
+        _sealed = [QTSealed fromJSONDictionary:(id)_sealed];
+        if (!_sealed && dict[@"sealed"] && ![dict[@"sealed"] isKindOfClass:NSNull.class]) return nil;
+        _sel = [QTSel fromJSONDictionary:(id)_sel];
+        if (!_sel && dict[@"SEL"] && ![dict[@"SEL"] isKindOfClass:NSNull.class]) return nil;
+        _select = [QTSelect fromJSONDictionary:(id)_select];
+        if (!_select && dict[@"select"] && ![dict[@"select"] isKindOfClass:NSNull.class]) return nil;
+        _self = [QTSelf fromJSONDictionary:(id)_self];
+        if (!_self && dict[@"Self"] && ![dict[@"Self"] isKindOfClass:NSNull.class]) return nil;
+        _serialize = [QTSerialize fromJSONDictionary:(id)_serialize];
+        if (!_serialize && dict[@"serialize"] && ![dict[@"serialize"] isKindOfClass:NSNull.class]) return nil;
+        _serializerProvider = [QTSerializerProvider fromJSONDictionary:(id)_serializerProvider];
+        if (!_serializerProvider && dict[@"SerializerProvider"] && ![dict[@"SerializerProvider"] isKindOfClass:NSNull.class]) return nil;
+        _set = [QTSet fromJSONDictionary:(id)_set];
+        if (!_set && dict[@"set"] && ![dict[@"set"] isKindOfClass:NSNull.class]) return nil;
+        _simpleModule = [QTSimpleModule fromJSONDictionary:(id)_simpleModule];
+        if (!_simpleModule && dict[@"SimpleModule"] && ![dict[@"SimpleModule"] isKindOfClass:NSNull.class]) return nil;
+        _stackalloc = [QTStackalloc fromJSONDictionary:(id)_stackalloc];
+        if (!_stackalloc && dict[@"stackalloc"] && ![dict[@"stackalloc"] isKindOfClass:NSNull.class]) return nil;
+        _standards = [QTStandards fromJSONDictionary:(id)_standards];
+        if (!_standards && dict[@"Standards"] && ![dict[@"Standards"] isKindOfClass:NSNull.class]) return nil;
+        _staticAssert = [QTStaticAssert fromJSONDictionary:(id)_staticAssert];
+        if (!_staticAssert && dict[@"static_assert"] && ![dict[@"static_assert"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObjectMapper.properties[key];
+    id resolved = QTObj4.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObjectMapper.properties[key];
+    id resolved = QTObj4.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTObjectMapper.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTObj4.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTObjectMapper.properties) {
-        id propertyName = QTObjectMapper.properties[jsonName];
+    for (id jsonName in QTObj4.properties) {
+        id propertyName = QTObj4.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
         }
     }
 
+    [dict addEntriesFromDictionary:@{
+        @"nullptr": [_nullptr JSONDictionary],
+        @"number": [_number JSONDictionary],
+        @"protocol": [_obj4Protocol JSONDictionary],
+        @"register": [_obj4Register JSONDictionary],
+        @"restrict": [_obj4Restrict JSONDictionary],
+        @"retain": [_obj4Retain JSONDictionary],
+        @"return": [_obj4Return JSONDictionary],
+        @"self": [_obj4Self JSONDictionary],
+        @"short": [_obj4Short JSONDictionary],
+        @"signed": [_obj4Signed JSONDictionary],
+        @"sizeof": [_obj4Sizeof JSONDictionary],
+        @"static": [_obj4Static JSONDictionary],
+        @"object": [_object JSONDictionary],
+        @"ObjectMapper": [_objectMapper JSONDictionary],
+        @"of": [_of JSONDictionary],
+        @"oneway": [_oneway JSONDictionary],
+        @"open": [_open JSONDictionary],
+        @"operator": [_operator JSONDictionary],
+        @"optional": [_optional JSONDictionary],
+        @"or": [_or JSONDictionary],
+        @"or_eq": [_orEq JSONDictionary],
+        @"out": [_out JSONDictionary],
+        @"override": [_override JSONDictionary],
+        @"package": [_package JSONDictionary],
+        @"params": [_params JSONDictionary],
+        @"pass": [_pass JSONDictionary],
+        @"port": [_port JSONDictionary],
+        @"postfix": [_postfix JSONDictionary],
+        @"precedence": [_precedence JSONDictionary],
+        @"prefix": [_prefix JSONDictionary],
+        @"print": [_print JSONDictionary],
+        @"printMembers": [_printMembers JSONDictionary],
+        @"printf": [_printf JSONDictionary],
+        @"private": [_private JSONDictionary],
+        @"protected": [_protected JSONDictionary],
+        @"Protocol": [_protocol JSONDictionary],
+        @"public": [_public JSONDictionary],
+        @"quicktype": [_quicktype JSONDictionary],
+        @"raise": [_raise JSONDictionary],
+        @"range": [_range JSONDictionary],
+        @"readonly": [_readonly JSONDictionary],
+        @"ref": [_ref JSONDictionary],
+        @"RegExp": [_regExp JSONDictionary],
+        @"reinterpret_cast": [_reinterpretCast JSONDictionary],
+        @"repeat": [_repeat JSONDictionary],
+        @"require": [_require JSONDictionary],
+        @"required": [_required JSONDictionary],
+        @"requires": [_requires JSONDictionary],
+        @"rethrows": [_rethrows JSONDictionary],
+        @"right": [_right JSONDictionary],
+        @"runtimeType": [_runtimeType JSONDictionary],
+        @"s": [_s JSONDictionary],
+        @"sbyte": [_sbyte JSONDictionary],
+        @"sealed": [_sealed JSONDictionary],
+        @"SEL": [_sel JSONDictionary],
+        @"select": [_select JSONDictionary],
+        @"Self": [_self JSONDictionary],
+        @"serialize": [_serialize JSONDictionary],
+        @"SerializerProvider": [_serializerProvider JSONDictionary],
+        @"set": [_set JSONDictionary],
+        @"SimpleModule": [_simpleModule JSONDictionary],
+        @"stackalloc": [_stackalloc JSONDictionary],
+        @"Standards": [_standards JSONDictionary],
+        @"static_assert": [_staticAssert JSONDictionary],
+    }];
+
     return dict;
 }
 @end
 
-@implementation QTOf
+@implementation QTNullptr
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"of": @"of",
+        @"nullptr": @"nullptr",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullptr alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"of"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"of"] doubleValue] != [dict[@"of"] longLongValue]) return nil;
+        if (![dict[@"nullptr"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"nullptr"] doubleValue] != [dict[@"nullptr"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12171,41 +12223,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOf.properties[key];
+    id resolved = QTNullptr.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOf.properties[key];
+    id resolved = QTNullptr.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNullptr.properties.allValues];
 }
 @end
 
-@implementation QTOneway
+@implementation QTNumber
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"oneway": @"oneway",
+        @"number": @"number",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOneway alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNumber alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"oneway"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"oneway"] doubleValue] != [dict[@"oneway"] longLongValue]) return nil;
+        if (![dict[@"number"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"number"] doubleValue] != [dict[@"number"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12213,41 +12265,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOneway.properties[key];
+    id resolved = QTNumber.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOneway.properties[key];
+    id resolved = QTNumber.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOneway.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNumber.properties.allValues];
 }
 @end
 
-@implementation QTOpen
+@implementation QTProtocolClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"open": @"open",
+        @"protocol": @"protocol",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOpen alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocolClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"open"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"open"] doubleValue] != [dict[@"open"] longLongValue]) return nil;
+        if (![dict[@"protocol"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"protocol"] doubleValue] != [dict[@"protocol"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12255,41 +12307,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOpen.properties[key];
+    id resolved = QTProtocolClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOpen.properties[key];
+    id resolved = QTProtocolClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOpen.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTProtocolClass.properties.allValues];
 }
 @end
 
-@implementation QTOperator
+@implementation QTRegister
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"operator": @"operator",
+        @"register": @"registerRegister",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOperator alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegister alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"operator"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"operator"] doubleValue] != [dict[@"operator"] longLongValue]) return nil;
+        if (![dict[@"register"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"register"] doubleValue] != [dict[@"register"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12297,41 +12349,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOperator.properties[key];
+    id resolved = QTRegister.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOperator.properties[key];
+    id resolved = QTRegister.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOperator.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTRegister.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTRegister.properties) {
+        id propertyName = QTRegister.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTOptional
+@implementation QTRestrict
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"optional": @"optional",
+        @"restrict": @"restrictRestrict",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOptional alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRestrict alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"optional"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"optional"] doubleValue] != [dict[@"optional"] longLongValue]) return nil;
+        if (![dict[@"restrict"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"restrict"] doubleValue] != [dict[@"restrict"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12339,41 +12401,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOptional.properties[key];
+    id resolved = QTRestrict.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOptional.properties[key];
+    id resolved = QTRestrict.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOptional.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTRestrict.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTRestrict.properties) {
+        id propertyName = QTRestrict.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTOr
+@implementation QTRetain
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"or": @"or",
+        @"retain": @"retainRetain",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOr alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRetain alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"or"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"or"] doubleValue] != [dict[@"or"] longLongValue]) return nil;
+        if (![dict[@"retain"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"retain"] doubleValue] != [dict[@"retain"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12381,41 +12453,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOr.properties[key];
+    id resolved = QTRetain.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOr.properties[key];
+    id resolved = QTRetain.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOr.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTRetain.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTRetain.properties) {
+        id propertyName = QTRetain.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTOrEq
+@implementation QTReturn
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"or_eq": @"orEq",
+        @"return": @"returnReturn",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOrEq alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReturn alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"or_eq"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"or_eq"] doubleValue] != [dict[@"or_eq"] longLongValue]) return nil;
+        if (![dict[@"return"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"return"] doubleValue] != [dict[@"return"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12423,22 +12505,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOrEq.properties[key];
+    id resolved = QTReturn.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOrEq.properties[key];
+    id resolved = QTReturn.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTOrEq.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTReturn.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTOrEq.properties) {
-        id propertyName = QTOrEq.properties[jsonName];
+    for (id jsonName in QTReturn.properties) {
+        id propertyName = QTReturn.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -12449,25 +12531,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTOut
+@implementation QTSelfClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"out": @"out",
+        @"self": @"self",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOut alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelfClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"out"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"out"] doubleValue] != [dict[@"out"] longLongValue]) return nil;
+        if (![dict[@"self"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"self"] doubleValue] != [dict[@"self"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12475,41 +12557,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOut.properties[key];
+    id resolved = QTSelfClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOut.properties[key];
+    id resolved = QTSelfClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOut.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSelfClass.properties.allValues];
 }
 @end
 
-@implementation QTOverride
+@implementation QTShort
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"override": @"override",
+        @"short": @"shortShort",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOverride alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTShort alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"override"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"override"] doubleValue] != [dict[@"override"] longLongValue]) return nil;
+        if (![dict[@"short"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"short"] doubleValue] != [dict[@"short"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12517,41 +12599,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOverride.properties[key];
+    id resolved = QTShort.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOverride.properties[key];
+    id resolved = QTShort.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOverride.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTShort.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTShort.properties) {
+        id propertyName = QTShort.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTPackage
+@implementation QTSigned
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"package": @"package",
+        @"signed": @"signedSigned",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPackage alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSigned alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"package"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"package"] doubleValue] != [dict[@"package"] longLongValue]) return nil;
+        if (![dict[@"signed"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"signed"] doubleValue] != [dict[@"signed"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12559,41 +12651,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPackage.properties[key];
+    id resolved = QTSigned.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPackage.properties[key];
+    id resolved = QTSigned.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPackage.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSigned.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSigned.properties) {
+        id propertyName = QTSigned.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTParams
+@implementation QTSizeof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"params": @"params",
+        @"sizeof": @"sizeofSizeof",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTParams alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSizeof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"params"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"params"] doubleValue] != [dict[@"params"] longLongValue]) return nil;
+        if (![dict[@"sizeof"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"sizeof"] doubleValue] != [dict[@"sizeof"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12601,41 +12703,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTParams.properties[key];
+    id resolved = QTSizeof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTParams.properties[key];
+    id resolved = QTSizeof.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTParams.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSizeof.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSizeof.properties) {
+        id propertyName = QTSizeof.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTPass
+@implementation QTStatic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"pass": @"pass",
+        @"static": @"staticStatic",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStatic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"pass"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"pass"] doubleValue] != [dict[@"pass"] longLongValue]) return nil;
+        if (![dict[@"static"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"static"] doubleValue] != [dict[@"static"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12643,41 +12755,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPass.properties[key];
+    id resolved = QTStatic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPass.properties[key];
+    id resolved = QTStatic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPass.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTStatic.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTStatic.properties) {
+        id propertyName = QTStatic.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTPort
+@implementation QTObject
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"port": @"port",
+        @"object": @"object",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPort alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObject alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"port"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"port"] doubleValue] != [dict[@"port"] longLongValue]) return nil;
+        if (![dict[@"object"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"object"] doubleValue] != [dict[@"object"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12685,41 +12807,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPort.properties[key];
+    id resolved = QTObject.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPort.properties[key];
+    id resolved = QTObject.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPort.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTObject.properties.allValues];
 }
 @end
 
-@implementation QTPostfix
+@implementation QTObjectMapper
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"postfix": @"postfix",
+        @"ObjectMapper": @"objectMapper",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPostfix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObjectMapper alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"postfix"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"postfix"] doubleValue] != [dict[@"postfix"] longLongValue]) return nil;
+        if (![dict[@"ObjectMapper"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"ObjectMapper"] doubleValue] != [dict[@"ObjectMapper"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12727,41 +12849,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPostfix.properties[key];
+    id resolved = QTObjectMapper.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPostfix.properties[key];
+    id resolved = QTObjectMapper.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPostfix.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTObjectMapper.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTObjectMapper.properties) {
+        id propertyName = QTObjectMapper.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTPrecedence
+@implementation QTOf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"precedence": @"precedence",
+        @"of": @"of",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrecedence alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"precedence"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"precedence"] doubleValue] != [dict[@"precedence"] longLongValue]) return nil;
+        if (![dict[@"of"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"of"] doubleValue] != [dict[@"of"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12769,41 +12901,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrecedence.properties[key];
+    id resolved = QTOf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrecedence.properties[key];
+    id resolved = QTOf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrecedence.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOf.properties.allValues];
 }
 @end
 
-@implementation QTPrefix
+@implementation QTOneway
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"prefix": @"prefix",
+        @"oneway": @"oneway",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrefix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOneway alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"prefix"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"prefix"] doubleValue] != [dict[@"prefix"] longLongValue]) return nil;
+        if (![dict[@"oneway"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"oneway"] doubleValue] != [dict[@"oneway"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12811,41 +12943,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrefix.properties[key];
+    id resolved = QTOneway.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrefix.properties[key];
+    id resolved = QTOneway.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrefix.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOneway.properties.allValues];
 }
 @end
 
-@implementation QTPrint
+@implementation QTOpen
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"print": @"print",
+        @"open": @"open",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrint alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOpen alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"print"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"print"] doubleValue] != [dict[@"print"] longLongValue]) return nil;
+        if (![dict[@"open"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"open"] doubleValue] != [dict[@"open"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12853,41 +12985,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrint.properties[key];
+    id resolved = QTOpen.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrint.properties[key];
+    id resolved = QTOpen.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrint.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOpen.properties.allValues];
 }
 @end
 
-@implementation QTPrintMembers
+@implementation QTOperator
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"printMembers": @"printMembers",
+        @"operator": @"operator",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintMembers alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOperator alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"printMembers"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"printMembers"] doubleValue] != [dict[@"printMembers"] longLongValue]) return nil;
+        if (![dict[@"operator"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"operator"] doubleValue] != [dict[@"operator"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12895,41 +13027,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrintMembers.properties[key];
+    id resolved = QTOperator.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrintMembers.properties[key];
+    id resolved = QTOperator.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrintMembers.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOperator.properties.allValues];
 }
 @end
 
-@implementation QTPrintf
+@implementation QTOptional
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"printf": @"printf",
+        @"optional": @"optional",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOptional alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"printf"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"printf"] doubleValue] != [dict[@"printf"] longLongValue]) return nil;
+        if (![dict[@"optional"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"optional"] doubleValue] != [dict[@"optional"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12937,41 +13069,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrintf.properties[key];
+    id resolved = QTOptional.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrintf.properties[key];
+    id resolved = QTOptional.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrintf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOptional.properties.allValues];
 }
 @end
 
-@implementation QTPrivate
+@implementation QTOr
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"private": @"private",
+        @"or": @"or",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrivate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOr alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"private"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"private"] doubleValue] != [dict[@"private"] longLongValue]) return nil;
+        if (![dict[@"or"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"or"] doubleValue] != [dict[@"or"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -12979,41 +13111,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrivate.properties[key];
+    id resolved = QTOr.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrivate.properties[key];
+    id resolved = QTOr.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrivate.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOr.properties.allValues];
 }
 @end
 
-@implementation QTProtected
+@implementation QTOrEq
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"protected": @"protected",
+        @"or_eq": @"orEq",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtected alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOrEq alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"protected"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"protected"] doubleValue] != [dict[@"protected"] longLongValue]) return nil;
+        if (![dict[@"or_eq"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"or_eq"] doubleValue] != [dict[@"or_eq"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13021,41 +13153,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtected.properties[key];
+    id resolved = QTOrEq.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtected.properties[key];
+    id resolved = QTOrEq.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTProtected.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTOrEq.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTOrEq.properties) {
+        id propertyName = QTOrEq.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTProtocol
+@implementation QTOut
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"Protocol": @"protocol",
+        @"out": @"out",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocol alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOut alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"Protocol"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"Protocol"] doubleValue] != [dict[@"Protocol"] longLongValue]) return nil;
+        if (![dict[@"out"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"out"] doubleValue] != [dict[@"out"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13063,51 +13205,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtocol.properties[key];
+    id resolved = QTOut.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtocol.properties[key];
+    id resolved = QTOut.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTProtocol.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTProtocol.properties) {
-        id propertyName = QTProtocol.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTOut.properties.allValues];
 }
 @end
 
-@implementation QTSerializerProvider
+@implementation QTOverride
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"SerializerProvider": @"serializerProvider",
+        @"override": @"override",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerializerProvider alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOverride alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"SerializerProvider"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"SerializerProvider"] doubleValue] != [dict[@"SerializerProvider"] longLongValue]) return nil;
+        if (![dict[@"override"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"override"] doubleValue] != [dict[@"override"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13115,51 +13247,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSerializerProvider.properties[key];
+    id resolved = QTOverride.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSerializerProvider.properties[key];
+    id resolved = QTOverride.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSerializerProvider.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTSerializerProvider.properties) {
-        id propertyName = QTSerializerProvider.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTOverride.properties.allValues];
 }
 @end
 
-@implementation QTSimpleModule
+@implementation QTPackage
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"SimpleModule": @"simpleModule",
+        @"package": @"package",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSimpleModule alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPackage alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"SimpleModule"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"SimpleModule"] doubleValue] != [dict[@"SimpleModule"] longLongValue]) return nil;
+        if (![dict[@"package"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"package"] doubleValue] != [dict[@"package"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13167,51 +13289,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSimpleModule.properties[key];
+    id resolved = QTPackage.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSimpleModule.properties[key];
+    id resolved = QTPackage.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSimpleModule.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTSimpleModule.properties) {
-        id propertyName = QTSimpleModule.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPackage.properties.allValues];
 }
 @end
 
-@implementation QTStdDeserializer
+@implementation QTParams
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"StdDeserializer": @"stdDeserializer",
+        @"params": @"params",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdDeserializer alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTParams alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"StdDeserializer"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"StdDeserializer"] doubleValue] != [dict[@"StdDeserializer"] longLongValue]) return nil;
+        if (![dict[@"params"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"params"] doubleValue] != [dict[@"params"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13219,51 +13331,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStdDeserializer.properties[key];
+    id resolved = QTParams.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStdDeserializer.properties[key];
+    id resolved = QTParams.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStdDeserializer.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTStdDeserializer.properties) {
-        id propertyName = QTStdDeserializer.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTParams.properties.allValues];
 }
 @end
 
-@implementation QTStdSerializer
+@implementation QTPass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"StdSerializer": @"stdSerializer",
+        @"pass": @"pass",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdSerializer alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"StdSerializer"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"StdSerializer"] doubleValue] != [dict[@"StdSerializer"] longLongValue]) return nil;
+        if (![dict[@"pass"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"pass"] doubleValue] != [dict[@"pass"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13271,51 +13373,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStdSerializer.properties[key];
+    id resolved = QTPass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStdSerializer.properties[key];
+    id resolved = QTPass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStdSerializer.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTStdSerializer.properties) {
-        id propertyName = QTStdSerializer.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPass.properties.allValues];
 }
 @end
 
-@implementation QTNew
+@implementation QTPort
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"new": @"theNew",
+        @"port": @"port",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNew alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPort alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"new"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"new"] doubleValue] != [dict[@"new"] longLongValue]) return nil;
+        if (![dict[@"port"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"port"] doubleValue] != [dict[@"port"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13323,461 +13415,125 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNew.properties[key];
+    id resolved = QTPort.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNew.properties[key];
+    id resolved = QTPort.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTNew.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTNew.properties) {
-        id propertyName = QTNew.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPort.properties.allValues];
 }
 @end
 
-@implementation QTObj4
+@implementation QTPostfix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"dummy": @"dummy",
-        @"register": @"obj4Register",
-        @"restrict": @"obj4Restrict",
-        @"retain": @"obj4Retain",
-        @"return": @"obj4Return",
-        @"self": @"obj4Self",
-        @"short": @"obj4Short",
-        @"signed": @"obj4Signed",
-        @"sizeof": @"obj4Sizeof",
-        @"static": @"obj4Static",
-        @"struct": @"obj4Struct",
-        @"switch": @"obj4Switch",
-        @"True": @"obj4True",
-        @"type": @"obj4Type",
-        @"typedef": @"obj4Typedef",
-        @"typeof": @"obj4Typeof",
-        @"public": @"public",
-        @"quicktype": @"quicktype",
-        @"raise": @"raise",
-        @"range": @"range",
-        @"readonly": @"readonly",
-        @"ref": @"ref",
-        @"RegExp": @"regExp",
-        @"reinterpret_cast": @"reinterpretCast",
-        @"repeat": @"repeat",
-        @"require": @"require",
-        @"required": @"required",
-        @"requires": @"requires",
-        @"rethrows": @"rethrows",
-        @"right": @"right",
-        @"runtimeType": @"runtimeType",
-        @"s": @"s",
-        @"sbyte": @"sbyte",
-        @"sealed": @"sealed",
-        @"SEL": @"sel",
-        @"select": @"select",
-        @"Self": @"self",
-        @"serialize": @"serialize",
-        @"set": @"set",
-        @"stackalloc": @"stackalloc",
-        @"Standards": @"standards",
-        @"static_assert": @"staticAssert",
-        @"static_cast": @"staticCast",
-        @"strictfp": @"strictfp",
-        @"string": @"string",
-        @"subscript": @"subscript",
-        @"super": @"super",
-        @"symbol": @"symbol",
-        @"synchronized": @"synchronized",
-        @"system": @"system",
-        @"template": @"template",
-        @"true": @"theTrue",
-        @"then": @"then",
-        @"this": @"this",
-        @"thread_local": @"threadLocal",
-        @"throw": @"throw",
-        @"throws": @"throws",
-        @"TimeOnly": @"timeOnly",
-        @"TimeOnlyConverter": @"timeOnlyConverter",
-        @"to_json": @"toJSON",
-        @"toString": @"toString",
-        @"top_level": @"topLevel",
-        @"transient": @"transient",
-        @"try": @"try",
-        @"Type": @"type",
-        @"typealias": @"typealias",
-        @"typeid": @"typeid",
-        @"typename": @"typename",
-        @"uint": @"uint",
-        @"ulong": @"ulong",
-        @"unchecked": @"unchecked",
-        @"undefined": @"undefined",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj4 alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
-        if (![dict[@"register"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"restrict"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"retain"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"return"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"self"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"short"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"signed"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"sizeof"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"static"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"struct"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"switch"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"True"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"type"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"typedef"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"typeof"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"public"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"quicktype"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"raise"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"range"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"readonly"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"ref"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"RegExp"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"reinterpret_cast"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"repeat"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"require"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"required"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"requires"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"rethrows"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"right"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"runtimeType"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"s"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"sbyte"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"sealed"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"SEL"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"select"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Self"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"serialize"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"set"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"stackalloc"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Standards"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"static_assert"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"static_cast"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"strictfp"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"string"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"subscript"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"super"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"symbol"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"synchronized"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"system"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"template"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"true"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"then"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"this"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"thread_local"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"throw"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"throws"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"TimeOnly"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"TimeOnlyConverter"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"to_json"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"toString"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"top_level"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"transient"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"try"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Type"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"typealias"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"typeid"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"typename"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"uint"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"ulong"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"unchecked"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"undefined"] isKindOfClass:NSDictionary.class]) return nil;
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"postfix": @"postfix",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPostfix alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"postfix"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"postfix"] doubleValue] != [dict[@"postfix"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
-        _obj4Register = [QTRegister fromJSONDictionary:(id)_obj4Register];
-        if (!_obj4Register && dict[@"register"] && ![dict[@"register"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Restrict = [QTRestrict fromJSONDictionary:(id)_obj4Restrict];
-        if (!_obj4Restrict && dict[@"restrict"] && ![dict[@"restrict"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Retain = [QTRetain fromJSONDictionary:(id)_obj4Retain];
-        if (!_obj4Retain && dict[@"retain"] && ![dict[@"retain"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Return = [QTReturn fromJSONDictionary:(id)_obj4Return];
-        if (!_obj4Return && dict[@"return"] && ![dict[@"return"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Self = [QTSelfClass fromJSONDictionary:(id)_obj4Self];
-        if (!_obj4Self && dict[@"self"] && ![dict[@"self"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Short = [QTShort fromJSONDictionary:(id)_obj4Short];
-        if (!_obj4Short && dict[@"short"] && ![dict[@"short"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Signed = [QTSigned fromJSONDictionary:(id)_obj4Signed];
-        if (!_obj4Signed && dict[@"signed"] && ![dict[@"signed"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Sizeof = [QTSizeof fromJSONDictionary:(id)_obj4Sizeof];
-        if (!_obj4Sizeof && dict[@"sizeof"] && ![dict[@"sizeof"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Static = [QTStatic fromJSONDictionary:(id)_obj4Static];
-        if (!_obj4Static && dict[@"static"] && ![dict[@"static"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Struct = [QTStruct fromJSONDictionary:(id)_obj4Struct];
-        if (!_obj4Struct && dict[@"struct"] && ![dict[@"struct"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Switch = [QTSwitch fromJSONDictionary:(id)_obj4Switch];
-        if (!_obj4Switch && dict[@"switch"] && ![dict[@"switch"] isKindOfClass:NSNull.class]) return nil;
-        _obj4True = [QTTrue fromJSONDictionary:(id)_obj4True];
-        if (!_obj4True && dict[@"True"] && ![dict[@"True"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Type = [QTTypeClass fromJSONDictionary:(id)_obj4Type];
-        if (!_obj4Type && dict[@"type"] && ![dict[@"type"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Typedef = [QTTypedef fromJSONDictionary:(id)_obj4Typedef];
-        if (!_obj4Typedef && dict[@"typedef"] && ![dict[@"typedef"] isKindOfClass:NSNull.class]) return nil;
-        _obj4Typeof = [QTTypeof fromJSONDictionary:(id)_obj4Typeof];
-        if (!_obj4Typeof && dict[@"typeof"] && ![dict[@"typeof"] isKindOfClass:NSNull.class]) return nil;
-        _public = [QTPublic fromJSONDictionary:(id)_public];
-        if (!_public && dict[@"public"] && ![dict[@"public"] isKindOfClass:NSNull.class]) return nil;
-        _quicktype = [QTQuicktype fromJSONDictionary:(id)_quicktype];
-        if (!_quicktype && dict[@"quicktype"] && ![dict[@"quicktype"] isKindOfClass:NSNull.class]) return nil;
-        _raise = [QTRaise fromJSONDictionary:(id)_raise];
-        if (!_raise && dict[@"raise"] && ![dict[@"raise"] isKindOfClass:NSNull.class]) return nil;
-        _range = [QTRange fromJSONDictionary:(id)_range];
-        if (!_range && dict[@"range"] && ![dict[@"range"] isKindOfClass:NSNull.class]) return nil;
-        _readonly = [QTReadonly fromJSONDictionary:(id)_readonly];
-        if (!_readonly && dict[@"readonly"] && ![dict[@"readonly"] isKindOfClass:NSNull.class]) return nil;
-        _ref = [QTRef fromJSONDictionary:(id)_ref];
-        if (!_ref && dict[@"ref"] && ![dict[@"ref"] isKindOfClass:NSNull.class]) return nil;
-        _regExp = [QTRegExp fromJSONDictionary:(id)_regExp];
-        if (!_regExp && dict[@"RegExp"] && ![dict[@"RegExp"] isKindOfClass:NSNull.class]) return nil;
-        _reinterpretCast = [QTReinterpretCast fromJSONDictionary:(id)_reinterpretCast];
-        if (!_reinterpretCast && dict[@"reinterpret_cast"] && ![dict[@"reinterpret_cast"] isKindOfClass:NSNull.class]) return nil;
-        _repeat = [QTRepeat fromJSONDictionary:(id)_repeat];
-        if (!_repeat && dict[@"repeat"] && ![dict[@"repeat"] isKindOfClass:NSNull.class]) return nil;
-        _require = [QTRequire fromJSONDictionary:(id)_require];
-        if (!_require && dict[@"require"] && ![dict[@"require"] isKindOfClass:NSNull.class]) return nil;
-        _required = [QTRequired fromJSONDictionary:(id)_required];
-        if (!_required && dict[@"required"] && ![dict[@"required"] isKindOfClass:NSNull.class]) return nil;
-        _requires = [QTRequires fromJSONDictionary:(id)_requires];
-        if (!_requires && dict[@"requires"] && ![dict[@"requires"] isKindOfClass:NSNull.class]) return nil;
-        _rethrows = [QTRethrows fromJSONDictionary:(id)_rethrows];
-        if (!_rethrows && dict[@"rethrows"] && ![dict[@"rethrows"] isKindOfClass:NSNull.class]) return nil;
-        _right = [QTRight fromJSONDictionary:(id)_right];
-        if (!_right && dict[@"right"] && ![dict[@"right"] isKindOfClass:NSNull.class]) return nil;
-        _runtimeType = [QTRuntimeType fromJSONDictionary:(id)_runtimeType];
-        if (!_runtimeType && dict[@"runtimeType"] && ![dict[@"runtimeType"] isKindOfClass:NSNull.class]) return nil;
-        _s = [QTS fromJSONDictionary:(id)_s];
-        if (!_s && dict[@"s"] && ![dict[@"s"] isKindOfClass:NSNull.class]) return nil;
-        _sbyte = [QTSbyte fromJSONDictionary:(id)_sbyte];
-        if (!_sbyte && dict[@"sbyte"] && ![dict[@"sbyte"] isKindOfClass:NSNull.class]) return nil;
-        _sealed = [QTSealed fromJSONDictionary:(id)_sealed];
-        if (!_sealed && dict[@"sealed"] && ![dict[@"sealed"] isKindOfClass:NSNull.class]) return nil;
-        _sel = [QTSel fromJSONDictionary:(id)_sel];
-        if (!_sel && dict[@"SEL"] && ![dict[@"SEL"] isKindOfClass:NSNull.class]) return nil;
-        _select = [QTSelect fromJSONDictionary:(id)_select];
-        if (!_select && dict[@"select"] && ![dict[@"select"] isKindOfClass:NSNull.class]) return nil;
-        _self = [QTSelf fromJSONDictionary:(id)_self];
-        if (!_self && dict[@"Self"] && ![dict[@"Self"] isKindOfClass:NSNull.class]) return nil;
-        _serialize = [QTSerialize fromJSONDictionary:(id)_serialize];
-        if (!_serialize && dict[@"serialize"] && ![dict[@"serialize"] isKindOfClass:NSNull.class]) return nil;
-        _set = [QTSet fromJSONDictionary:(id)_set];
-        if (!_set && dict[@"set"] && ![dict[@"set"] isKindOfClass:NSNull.class]) return nil;
-        _stackalloc = [QTStackalloc fromJSONDictionary:(id)_stackalloc];
-        if (!_stackalloc && dict[@"stackalloc"] && ![dict[@"stackalloc"] isKindOfClass:NSNull.class]) return nil;
-        _standards = [QTStandards fromJSONDictionary:(id)_standards];
-        if (!_standards && dict[@"Standards"] && ![dict[@"Standards"] isKindOfClass:NSNull.class]) return nil;
-        _staticAssert = [QTStaticAssert fromJSONDictionary:(id)_staticAssert];
-        if (!_staticAssert && dict[@"static_assert"] && ![dict[@"static_assert"] isKindOfClass:NSNull.class]) return nil;
-        _staticCast = [QTStaticCast fromJSONDictionary:(id)_staticCast];
-        if (!_staticCast && dict[@"static_cast"] && ![dict[@"static_cast"] isKindOfClass:NSNull.class]) return nil;
-        _strictfp = [QTStrictfp fromJSONDictionary:(id)_strictfp];
-        if (!_strictfp && dict[@"strictfp"] && ![dict[@"strictfp"] isKindOfClass:NSNull.class]) return nil;
-        _string = [QTString fromJSONDictionary:(id)_string];
-        if (!_string && dict[@"string"] && ![dict[@"string"] isKindOfClass:NSNull.class]) return nil;
-        _subscript = [QTSubscript fromJSONDictionary:(id)_subscript];
-        if (!_subscript && dict[@"subscript"] && ![dict[@"subscript"] isKindOfClass:NSNull.class]) return nil;
-        _super = [QTSuper fromJSONDictionary:(id)_super];
-        if (!_super && dict[@"super"] && ![dict[@"super"] isKindOfClass:NSNull.class]) return nil;
-        _symbol = [QTSymbol fromJSONDictionary:(id)_symbol];
-        if (!_symbol && dict[@"symbol"] && ![dict[@"symbol"] isKindOfClass:NSNull.class]) return nil;
-        _synchronized = [QTSynchronized fromJSONDictionary:(id)_synchronized];
-        if (!_synchronized && dict[@"synchronized"] && ![dict[@"synchronized"] isKindOfClass:NSNull.class]) return nil;
-        _system = [QTSystem fromJSONDictionary:(id)_system];
-        if (!_system && dict[@"system"] && ![dict[@"system"] isKindOfClass:NSNull.class]) return nil;
-        _template = [QTTemplate fromJSONDictionary:(id)_template];
-        if (!_template && dict[@"template"] && ![dict[@"template"] isKindOfClass:NSNull.class]) return nil;
-        _theTrue = [QTTrueClass fromJSONDictionary:(id)_theTrue];
-        if (!_theTrue && dict[@"true"] && ![dict[@"true"] isKindOfClass:NSNull.class]) return nil;
-        _then = [QTThen fromJSONDictionary:(id)_then];
-        if (!_then && dict[@"then"] && ![dict[@"then"] isKindOfClass:NSNull.class]) return nil;
-        _this = [QTThis fromJSONDictionary:(id)_this];
-        if (!_this && dict[@"this"] && ![dict[@"this"] isKindOfClass:NSNull.class]) return nil;
-        _threadLocal = [QTThreadLocal fromJSONDictionary:(id)_threadLocal];
-        if (!_threadLocal && dict[@"thread_local"] && ![dict[@"thread_local"] isKindOfClass:NSNull.class]) return nil;
-        _throw = [QTThrow fromJSONDictionary:(id)_throw];
-        if (!_throw && dict[@"throw"] && ![dict[@"throw"] isKindOfClass:NSNull.class]) return nil;
-        _throws = [QTThrows fromJSONDictionary:(id)_throws];
-        if (!_throws && dict[@"throws"] && ![dict[@"throws"] isKindOfClass:NSNull.class]) return nil;
-        _timeOnly = [QTTimeOnly fromJSONDictionary:(id)_timeOnly];
-        if (!_timeOnly && dict[@"TimeOnly"] && ![dict[@"TimeOnly"] isKindOfClass:NSNull.class]) return nil;
-        _timeOnlyConverter = [QTTimeOnlyConverter fromJSONDictionary:(id)_timeOnlyConverter];
-        if (!_timeOnlyConverter && dict[@"TimeOnlyConverter"] && ![dict[@"TimeOnlyConverter"] isKindOfClass:NSNull.class]) return nil;
-        _toJSON = [QTToJSON fromJSONDictionary:(id)_toJSON];
-        if (!_toJSON && dict[@"to_json"] && ![dict[@"to_json"] isKindOfClass:NSNull.class]) return nil;
-        _toString = [QTToString fromJSONDictionary:(id)_toString];
-        if (!_toString && dict[@"toString"] && ![dict[@"toString"] isKindOfClass:NSNull.class]) return nil;
-        _topLevel = [QTTopLevelClass fromJSONDictionary:(id)_topLevel];
-        if (!_topLevel && dict[@"top_level"] && ![dict[@"top_level"] isKindOfClass:NSNull.class]) return nil;
-        _transient = [QTTransient fromJSONDictionary:(id)_transient];
-        if (!_transient && dict[@"transient"] && ![dict[@"transient"] isKindOfClass:NSNull.class]) return nil;
-        _try = [QTTry fromJSONDictionary:(id)_try];
-        if (!_try && dict[@"try"] && ![dict[@"try"] isKindOfClass:NSNull.class]) return nil;
-        _type = [QTType fromJSONDictionary:(id)_type];
-        if (!_type && dict[@"Type"] && ![dict[@"Type"] isKindOfClass:NSNull.class]) return nil;
-        _typealias = [QTTypealias fromJSONDictionary:(id)_typealias];
-        if (!_typealias && dict[@"typealias"] && ![dict[@"typealias"] isKindOfClass:NSNull.class]) return nil;
-        _typeid = [QTTypeid fromJSONDictionary:(id)_typeid];
-        if (!_typeid && dict[@"typeid"] && ![dict[@"typeid"] isKindOfClass:NSNull.class]) return nil;
-        _typename = [QTTypename fromJSONDictionary:(id)_typename];
-        if (!_typename && dict[@"typename"] && ![dict[@"typename"] isKindOfClass:NSNull.class]) return nil;
-        _uint = [QTUint fromJSONDictionary:(id)_uint];
-        if (!_uint && dict[@"uint"] && ![dict[@"uint"] isKindOfClass:NSNull.class]) return nil;
-        _ulong = [QTUlong fromJSONDictionary:(id)_ulong];
-        if (!_ulong && dict[@"ulong"] && ![dict[@"ulong"] isKindOfClass:NSNull.class]) return nil;
-        _unchecked = [QTUnchecked fromJSONDictionary:(id)_unchecked];
-        if (!_unchecked && dict[@"unchecked"] && ![dict[@"unchecked"] isKindOfClass:NSNull.class]) return nil;
-        _undefined = [QTUndefined fromJSONDictionary:(id)_undefined];
-        if (!_undefined && dict[@"undefined"] && ![dict[@"undefined"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObj4.properties[key];
+    id resolved = QTPostfix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObj4.properties[key];
+    id resolved = QTPostfix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTObj4.properties.allValues] mutableCopy];
+    return [self dictionaryWithValuesForKeys:QTPostfix.properties.allValues];
+}
+@end
 
-    for (id jsonName in QTObj4.properties) {
-        id propertyName = QTObj4.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
+@implementation QTPrecedence
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"precedence": @"precedence",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrecedence alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"precedence"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"precedence"] doubleValue] != [dict[@"precedence"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
+    return self;
+}
 
-    [dict addEntriesFromDictionary:@{
-        @"register": [_obj4Register JSONDictionary],
-        @"restrict": [_obj4Restrict JSONDictionary],
-        @"retain": [_obj4Retain JSONDictionary],
-        @"return": [_obj4Return JSONDictionary],
-        @"self": [_obj4Self JSONDictionary],
-        @"short": [_obj4Short JSONDictionary],
-        @"signed": [_obj4Signed JSONDictionary],
-        @"sizeof": [_obj4Sizeof JSONDictionary],
-        @"static": [_obj4Static JSONDictionary],
-        @"struct": [_obj4Struct JSONDictionary],
-        @"switch": [_obj4Switch JSONDictionary],
-        @"True": [_obj4True JSONDictionary],
-        @"type": [_obj4Type JSONDictionary],
-        @"typedef": [_obj4Typedef JSONDictionary],
-        @"typeof": [_obj4Typeof JSONDictionary],
-        @"public": [_public JSONDictionary],
-        @"quicktype": [_quicktype JSONDictionary],
-        @"raise": [_raise JSONDictionary],
-        @"range": [_range JSONDictionary],
-        @"readonly": [_readonly JSONDictionary],
-        @"ref": [_ref JSONDictionary],
-        @"RegExp": [_regExp JSONDictionary],
-        @"reinterpret_cast": [_reinterpretCast JSONDictionary],
-        @"repeat": [_repeat JSONDictionary],
-        @"require": [_require JSONDictionary],
-        @"required": [_required JSONDictionary],
-        @"requires": [_requires JSONDictionary],
-        @"rethrows": [_rethrows JSONDictionary],
-        @"right": [_right JSONDictionary],
-        @"runtimeType": [_runtimeType JSONDictionary],
-        @"s": [_s JSONDictionary],
-        @"sbyte": [_sbyte JSONDictionary],
-        @"sealed": [_sealed JSONDictionary],
-        @"SEL": [_sel JSONDictionary],
-        @"select": [_select JSONDictionary],
-        @"Self": [_self JSONDictionary],
-        @"serialize": [_serialize JSONDictionary],
-        @"set": [_set JSONDictionary],
-        @"stackalloc": [_stackalloc JSONDictionary],
-        @"Standards": [_standards JSONDictionary],
-        @"static_assert": [_staticAssert JSONDictionary],
-        @"static_cast": [_staticCast JSONDictionary],
-        @"strictfp": [_strictfp JSONDictionary],
-        @"string": [_string JSONDictionary],
-        @"subscript": [_subscript JSONDictionary],
-        @"super": [_super JSONDictionary],
-        @"symbol": [_symbol JSONDictionary],
-        @"synchronized": [_synchronized JSONDictionary],
-        @"system": [_system JSONDictionary],
-        @"template": [_template JSONDictionary],
-        @"true": [_theTrue JSONDictionary],
-        @"then": [_then JSONDictionary],
-        @"this": [_this JSONDictionary],
-        @"thread_local": [_threadLocal JSONDictionary],
-        @"throw": [_throw JSONDictionary],
-        @"throws": [_throws JSONDictionary],
-        @"TimeOnly": [_timeOnly JSONDictionary],
-        @"TimeOnlyConverter": [_timeOnlyConverter JSONDictionary],
-        @"to_json": [_toJSON JSONDictionary],
-        @"toString": [_toString JSONDictionary],
-        @"top_level": [_topLevel JSONDictionary],
-        @"transient": [_transient JSONDictionary],
-        @"try": [_try JSONDictionary],
-        @"Type": [_type JSONDictionary],
-        @"typealias": [_typealias JSONDictionary],
-        @"typeid": [_typeid JSONDictionary],
-        @"typename": [_typename JSONDictionary],
-        @"uint": [_uint JSONDictionary],
-        @"ulong": [_ulong JSONDictionary],
-        @"unchecked": [_unchecked JSONDictionary],
-        @"undefined": [_undefined JSONDictionary],
-    }];
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTPrecedence.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTPrecedence.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
 
-    return dict;
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTPrecedence.properties.allValues];
 }
 @end
 
-@implementation QTRegister
+@implementation QTPrefix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"register": @"registerRegister",
+        @"prefix": @"prefix",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegister alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrefix alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"register"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"register"] doubleValue] != [dict[@"register"] longLongValue]) return nil;
+        if (![dict[@"prefix"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"prefix"] doubleValue] != [dict[@"prefix"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13785,51 +13541,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRegister.properties[key];
+    id resolved = QTPrefix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRegister.properties[key];
+    id resolved = QTPrefix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTRegister.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTRegister.properties) {
-        id propertyName = QTRegister.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPrefix.properties.allValues];
 }
 @end
 
-@implementation QTRestrict
+@implementation QTPrint
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"restrict": @"restrictRestrict",
+        @"print": @"print",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRestrict alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrint alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"restrict"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"restrict"] doubleValue] != [dict[@"restrict"] longLongValue]) return nil;
+        if (![dict[@"print"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"print"] doubleValue] != [dict[@"print"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13837,51 +13583,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRestrict.properties[key];
+    id resolved = QTPrint.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRestrict.properties[key];
+    id resolved = QTPrint.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTRestrict.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTRestrict.properties) {
-        id propertyName = QTRestrict.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPrint.properties.allValues];
 }
 @end
 
-@implementation QTRetain
+@implementation QTPrintMembers
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"retain": @"retainRetain",
+        @"printMembers": @"printMembers",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRetain alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintMembers alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"retain"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"retain"] doubleValue] != [dict[@"retain"] longLongValue]) return nil;
+        if (![dict[@"printMembers"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"printMembers"] doubleValue] != [dict[@"printMembers"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13889,51 +13625,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRetain.properties[key];
+    id resolved = QTPrintMembers.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRetain.properties[key];
+    id resolved = QTPrintMembers.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTRetain.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTRetain.properties) {
-        id propertyName = QTRetain.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPrintMembers.properties.allValues];
 }
 @end
 
-@implementation QTReturn
+@implementation QTPrintf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"return": @"returnReturn",
+        @"printf": @"printf",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReturn alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"return"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"return"] doubleValue] != [dict[@"return"] longLongValue]) return nil;
+        if (![dict[@"printf"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"printf"] doubleValue] != [dict[@"printf"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13941,51 +13667,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReturn.properties[key];
+    id resolved = QTPrintf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReturn.properties[key];
+    id resolved = QTPrintf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTReturn.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTReturn.properties) {
-        id propertyName = QTReturn.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPrintf.properties.allValues];
 }
 @end
 
-@implementation QTSelfClass
+@implementation QTPrivate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"self": @"self",
+        @"private": @"private",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelfClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrivate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"self"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"self"] doubleValue] != [dict[@"self"] longLongValue]) return nil;
+        if (![dict[@"private"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"private"] doubleValue] != [dict[@"private"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -13993,41 +13709,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelfClass.properties[key];
+    id resolved = QTPrivate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelfClass.properties[key];
+    id resolved = QTPrivate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSelfClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrivate.properties.allValues];
 }
 @end
 
-@implementation QTShort
+@implementation QTProtected
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"short": @"shortShort",
+        @"protected": @"protected",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTShort alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtected alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"short"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"short"] doubleValue] != [dict[@"short"] longLongValue]) return nil;
+        if (![dict[@"protected"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"protected"] doubleValue] != [dict[@"protected"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14035,51 +13751,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTShort.properties[key];
+    id resolved = QTProtected.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTShort.properties[key];
+    id resolved = QTProtected.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTShort.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTShort.properties) {
-        id propertyName = QTShort.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTProtected.properties.allValues];
 }
 @end
 
-@implementation QTSigned
+@implementation QTProtocol
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"signed": @"signedSigned",
+        @"Protocol": @"protocol",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSigned alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocol alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"signed"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"signed"] doubleValue] != [dict[@"signed"] longLongValue]) return nil;
+        if (![dict[@"Protocol"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"Protocol"] doubleValue] != [dict[@"Protocol"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14087,22 +13793,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSigned.properties[key];
+    id resolved = QTProtocol.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSigned.properties[key];
+    id resolved = QTProtocol.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSigned.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTProtocol.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTSigned.properties) {
-        id propertyName = QTSigned.properties[jsonName];
+    for (id jsonName in QTProtocol.properties) {
+        id propertyName = QTProtocol.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -14113,25 +13819,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTSizeof
+@implementation QTPublic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"sizeof": @"sizeofSizeof",
+        @"public": @"public",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSizeof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPublic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"sizeof"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"sizeof"] doubleValue] != [dict[@"sizeof"] longLongValue]) return nil;
+        if (![dict[@"public"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"public"] doubleValue] != [dict[@"public"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14139,51 +13845,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSizeof.properties[key];
+    id resolved = QTPublic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSizeof.properties[key];
+    id resolved = QTPublic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSizeof.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTSizeof.properties) {
-        id propertyName = QTSizeof.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTPublic.properties.allValues];
 }
 @end
 
-@implementation QTStatic
+@implementation QTQuicktype
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"static": @"staticStatic",
+        @"quicktype": @"quicktype",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStatic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTQuicktype alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"static"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"static"] doubleValue] != [dict[@"static"] longLongValue]) return nil;
+        if (![dict[@"quicktype"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"quicktype"] doubleValue] != [dict[@"quicktype"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14191,51 +13887,83 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStatic.properties[key];
+    id resolved = QTQuicktype.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStatic.properties[key];
+    id resolved = QTQuicktype.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStatic.properties.allValues] mutableCopy];
+    return [self dictionaryWithValuesForKeys:QTQuicktype.properties.allValues];
+}
+@end
 
-    for (id jsonName in QTStatic.properties) {
-        id propertyName = QTStatic.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
+@implementation QTRaise
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"raise": @"raise",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRaise alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"raise"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"raise"] doubleValue] != [dict[@"raise"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTRaise.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTRaise.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
 
-    return dict;
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTRaise.properties.allValues];
 }
 @end
 
-@implementation QTStruct
+@implementation QTRange
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"struct": @"structStruct",
+        @"range": @"range",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStruct alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRange alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"struct"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"struct"] doubleValue] != [dict[@"struct"] longLongValue]) return nil;
+        if (![dict[@"range"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"range"] doubleValue] != [dict[@"range"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14243,51 +13971,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStruct.properties[key];
+    id resolved = QTRange.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStruct.properties[key];
+    id resolved = QTRange.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStruct.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTStruct.properties) {
-        id propertyName = QTStruct.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTRange.properties.allValues];
 }
 @end
 
-@implementation QTSwitch
+@implementation QTReadonly
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"switch": @"switchSwitch",
+        @"readonly": @"readonly",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSwitch alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReadonly alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"switch"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"switch"] doubleValue] != [dict[@"switch"] longLongValue]) return nil;
+        if (![dict[@"readonly"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"readonly"] doubleValue] != [dict[@"readonly"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14295,51 +14013,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSwitch.properties[key];
+    id resolved = QTReadonly.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSwitch.properties[key];
+    id resolved = QTReadonly.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSwitch.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTSwitch.properties) {
-        id propertyName = QTSwitch.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTReadonly.properties.allValues];
 }
 @end
 
-@implementation QTTrue
+@implementation QTRef
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"True": @"trueTrue",
+        @"ref": @"ref",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrue alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRef alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"True"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"True"] doubleValue] != [dict[@"True"] longLongValue]) return nil;
+        if (![dict[@"ref"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"ref"] doubleValue] != [dict[@"ref"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14347,51 +14055,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTrue.properties[key];
+    id resolved = QTRef.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTrue.properties[key];
+    id resolved = QTRef.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTrue.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTrue.properties) {
-        id propertyName = QTTrue.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTRef.properties.allValues];
 }
 @end
 
-@implementation QTTypeClass
+@implementation QTRegExp
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"type": @"type",
+        @"RegExp": @"regExp",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegExp alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"type"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"type"] doubleValue] != [dict[@"type"] longLongValue]) return nil;
+        if (dict[@"RegExp"] && ![[NSUUID alloc] initWithUUIDString:dict[@"RegExp"]]) return nil;
+        if (![dict[@"RegExp"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14399,41 +14097,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypeClass.properties[key];
+    id resolved = QTRegExp.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypeClass.properties[key];
+    id resolved = QTRegExp.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypeClass.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTRegExp.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTRegExp.properties) {
+        id propertyName = QTRegExp.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTypedef
+@implementation QTReinterpretCast
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"typedef": @"typedefTypedef",
+        @"reinterpret_cast": @"reinterpretCast",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypedef alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReinterpretCast alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"typedef"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"typedef"] doubleValue] != [dict[@"typedef"] longLongValue]) return nil;
+        if (![dict[@"reinterpret_cast"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"reinterpret_cast"] doubleValue] != [dict[@"reinterpret_cast"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14441,22 +14149,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypedef.properties[key];
+    id resolved = QTReinterpretCast.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypedef.properties[key];
+    id resolved = QTReinterpretCast.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTypedef.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTReinterpretCast.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTTypedef.properties) {
-        id propertyName = QTTypedef.properties[jsonName];
+    for (id jsonName in QTReinterpretCast.properties) {
+        id propertyName = QTReinterpretCast.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -14467,25 +14175,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTTypeof
+@implementation QTRepeat
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"typeof": @"typeofTypeof",
+        @"repeat": @"repeat",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRepeat alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"typeof"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"typeof"] doubleValue] != [dict[@"typeof"] longLongValue]) return nil;
+        if (![dict[@"repeat"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"repeat"] doubleValue] != [dict[@"repeat"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14493,51 +14201,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypeof.properties[key];
+    id resolved = QTRepeat.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypeof.properties[key];
+    id resolved = QTRepeat.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTypeof.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTypeof.properties) {
-        id propertyName = QTTypeof.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTRepeat.properties.allValues];
 }
 @end
 
-@implementation QTPublic
+@implementation QTRequire
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"public": @"public",
+        @"require": @"require",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPublic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequire alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"public"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"public"] doubleValue] != [dict[@"public"] longLongValue]) return nil;
+        if (![dict[@"require"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"require"] doubleValue] != [dict[@"require"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14545,41 +14243,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPublic.properties[key];
+    id resolved = QTRequire.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPublic.properties[key];
+    id resolved = QTRequire.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPublic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequire.properties.allValues];
 }
 @end
 
-@implementation QTQuicktype
+@implementation QTRequired
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"quicktype": @"quicktype",
+        @"required": @"required",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTQuicktype alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequired alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"quicktype"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"quicktype"] doubleValue] != [dict[@"quicktype"] longLongValue]) return nil;
+        if (![dict[@"required"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"required"] doubleValue] != [dict[@"required"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14587,41 +14285,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTQuicktype.properties[key];
+    id resolved = QTRequired.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTQuicktype.properties[key];
+    id resolved = QTRequired.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTQuicktype.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequired.properties.allValues];
 }
 @end
 
-@implementation QTRaise
+@implementation QTRequires
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"raise": @"raise",
+        @"requires": @"requires",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRaise alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequires alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"raise"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"raise"] doubleValue] != [dict[@"raise"] longLongValue]) return nil;
+        if (![dict[@"requires"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"requires"] doubleValue] != [dict[@"requires"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14629,41 +14327,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRaise.properties[key];
+    id resolved = QTRequires.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRaise.properties[key];
+    id resolved = QTRequires.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRaise.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequires.properties.allValues];
 }
 @end
 
-@implementation QTRange
+@implementation QTRethrows
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"range": @"range",
+        @"rethrows": @"rethrows",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRange alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRethrows alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"range"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"range"] doubleValue] != [dict[@"range"] longLongValue]) return nil;
+        if (![dict[@"rethrows"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"rethrows"] doubleValue] != [dict[@"rethrows"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14671,41 +14369,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRange.properties[key];
+    id resolved = QTRethrows.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRange.properties[key];
+    id resolved = QTRethrows.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRange.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRethrows.properties.allValues];
 }
 @end
 
-@implementation QTReadonly
+@implementation QTRight
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"readonly": @"readonly",
+        @"right": @"right",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReadonly alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRight alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"readonly"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"readonly"] doubleValue] != [dict[@"readonly"] longLongValue]) return nil;
+        if (![dict[@"right"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"right"] doubleValue] != [dict[@"right"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14713,41 +14411,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReadonly.properties[key];
+    id resolved = QTRight.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReadonly.properties[key];
+    id resolved = QTRight.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTReadonly.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRight.properties.allValues];
 }
 @end
 
-@implementation QTRef
+@implementation QTRuntimeType
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"ref": @"ref",
+        @"runtimeType": @"runtimeType",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRef alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRuntimeType alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"ref"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"ref"] doubleValue] != [dict[@"ref"] longLongValue]) return nil;
+        if (![dict[@"runtimeType"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"runtimeType"] doubleValue] != [dict[@"runtimeType"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14755,41 +14453,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRef.properties[key];
+    id resolved = QTRuntimeType.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRef.properties[key];
+    id resolved = QTRuntimeType.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRef.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRuntimeType.properties.allValues];
 }
 @end
 
-@implementation QTRegExp
+@implementation QTS
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"RegExp": @"regExp",
+        @"s": @"s",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegExp alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTS alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"RegExp"] && ![[NSUUID alloc] initWithUUIDString:dict[@"RegExp"]]) return nil;
-        if (![dict[@"RegExp"] isKindOfClass:NSString.class]) return nil;
+        if (![dict[@"s"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"s"] doubleValue] != [dict[@"s"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14797,51 +14495,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRegExp.properties[key];
+    id resolved = QTS.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRegExp.properties[key];
+    id resolved = QTS.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTRegExp.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTRegExp.properties) {
-        id propertyName = QTRegExp.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTS.properties.allValues];
 }
 @end
 
-@implementation QTReinterpretCast
+@implementation QTSbyte
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"reinterpret_cast": @"reinterpretCast",
+        @"sbyte": @"sbyte",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReinterpretCast alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSbyte alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"reinterpret_cast"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"reinterpret_cast"] doubleValue] != [dict[@"reinterpret_cast"] longLongValue]) return nil;
+        if (![dict[@"sbyte"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"sbyte"] doubleValue] != [dict[@"sbyte"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14849,51 +14537,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReinterpretCast.properties[key];
+    id resolved = QTSbyte.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReinterpretCast.properties[key];
+    id resolved = QTSbyte.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTReinterpretCast.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTReinterpretCast.properties) {
-        id propertyName = QTReinterpretCast.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTSbyte.properties.allValues];
 }
 @end
 
-@implementation QTRepeat
+@implementation QTSealed
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"repeat": @"repeat",
+        @"sealed": @"sealed",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRepeat alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSealed alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"repeat"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"repeat"] doubleValue] != [dict[@"repeat"] longLongValue]) return nil;
+        if (![dict[@"sealed"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"sealed"] doubleValue] != [dict[@"sealed"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14901,41 +14579,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRepeat.properties[key];
+    id resolved = QTSealed.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRepeat.properties[key];
+    id resolved = QTSealed.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRepeat.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSealed.properties.allValues];
 }
 @end
 
-@implementation QTRequire
+@implementation QTSel
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"require": @"require",
+        @"SEL": @"sel",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequire alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSel alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"require"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"require"] doubleValue] != [dict[@"require"] longLongValue]) return nil;
+        if (![dict[@"SEL"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"SEL"] doubleValue] != [dict[@"SEL"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14943,41 +14621,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequire.properties[key];
+    id resolved = QTSel.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequire.properties[key];
+    id resolved = QTSel.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequire.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSel.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSel.properties) {
+        id propertyName = QTSel.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTRequired
+@implementation QTSelect
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"required": @"required",
+        @"select": @"select",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequired alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelect alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"required"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"required"] doubleValue] != [dict[@"required"] longLongValue]) return nil;
+        if (![dict[@"select"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"select"] doubleValue] != [dict[@"select"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -14985,41 +14673,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequired.properties[key];
+    id resolved = QTSelect.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequired.properties[key];
+    id resolved = QTSelect.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequired.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSelect.properties.allValues];
 }
 @end
 
-@implementation QTRequires
+@implementation QTSelf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"requires": @"requires",
+        @"Self": @"self",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequires alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"requires"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"requires"] doubleValue] != [dict[@"requires"] longLongValue]) return nil;
+        if (![dict[@"Self"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"Self"] doubleValue] != [dict[@"Self"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15027,41 +14715,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequires.properties[key];
+    id resolved = QTSelf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequires.properties[key];
+    id resolved = QTSelf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequires.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSelf.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSelf.properties) {
+        id propertyName = QTSelf.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTRethrows
+@implementation QTSerialize
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"rethrows": @"rethrows",
+        @"serialize": @"serialize",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRethrows alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerialize alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"rethrows"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"rethrows"] doubleValue] != [dict[@"rethrows"] longLongValue]) return nil;
+        if (![dict[@"serialize"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"serialize"] doubleValue] != [dict[@"serialize"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15069,41 +14767,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRethrows.properties[key];
+    id resolved = QTSerialize.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRethrows.properties[key];
+    id resolved = QTSerialize.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRethrows.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSerialize.properties.allValues];
 }
 @end
 
-@implementation QTRight
+@implementation QTSerializerProvider
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"right": @"right",
+        @"SerializerProvider": @"serializerProvider",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRight alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerializerProvider alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"right"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"right"] doubleValue] != [dict[@"right"] longLongValue]) return nil;
+        if (![dict[@"SerializerProvider"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"SerializerProvider"] doubleValue] != [dict[@"SerializerProvider"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15111,41 +14809,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRight.properties[key];
+    id resolved = QTSerializerProvider.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRight.properties[key];
+    id resolved = QTSerializerProvider.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRight.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSerializerProvider.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSerializerProvider.properties) {
+        id propertyName = QTSerializerProvider.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTRuntimeType
+@implementation QTSet
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"runtimeType": @"runtimeType",
+        @"set": @"set",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRuntimeType alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSet alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"runtimeType"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"runtimeType"] doubleValue] != [dict[@"runtimeType"] longLongValue]) return nil;
+        if (![dict[@"set"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"set"] doubleValue] != [dict[@"set"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15153,41 +14861,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRuntimeType.properties[key];
+    id resolved = QTSet.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRuntimeType.properties[key];
+    id resolved = QTSet.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRuntimeType.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSet.properties.allValues];
 }
 @end
 
-@implementation QTS
+@implementation QTSimpleModule
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"s": @"s",
+        @"SimpleModule": @"simpleModule",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTS alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSimpleModule alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"s"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"s"] doubleValue] != [dict[@"s"] longLongValue]) return nil;
+        if (![dict[@"SimpleModule"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"SimpleModule"] doubleValue] != [dict[@"SimpleModule"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15195,41 +14903,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTS.properties[key];
+    id resolved = QTSimpleModule.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTS.properties[key];
+    id resolved = QTSimpleModule.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTS.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTSimpleModule.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTSimpleModule.properties) {
+        id propertyName = QTSimpleModule.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSbyte
+@implementation QTStackalloc
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"sbyte": @"sbyte",
+        @"stackalloc": @"stackalloc",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSbyte alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStackalloc alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"sbyte"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"sbyte"] doubleValue] != [dict[@"sbyte"] longLongValue]) return nil;
+        if (![dict[@"stackalloc"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"stackalloc"] doubleValue] != [dict[@"stackalloc"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15237,41 +14955,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSbyte.properties[key];
+    id resolved = QTStackalloc.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSbyte.properties[key];
+    id resolved = QTStackalloc.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSbyte.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStackalloc.properties.allValues];
 }
 @end
 
-@implementation QTSealed
+@implementation QTStandards
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"sealed": @"sealed",
+        @"Standards": @"standards",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSealed alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStandards alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"sealed"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"sealed"] doubleValue] != [dict[@"sealed"] longLongValue]) return nil;
+        if (![dict[@"Standards"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"Standards"] doubleValue] != [dict[@"Standards"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15279,41 +14997,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSealed.properties[key];
+    id resolved = QTStandards.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSealed.properties[key];
+    id resolved = QTStandards.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTSealed.properties.allValues];
+- (NSDictionary *)JSONDictionary
+{
+    id dict = [[self dictionaryWithValuesForKeys:QTStandards.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTStandards.properties) {
+        id propertyName = QTStandards.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSel
+@implementation QTStaticAssert
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"SEL": @"sel",
+        @"static_assert": @"staticAssert",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSel alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticAssert alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"SEL"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"SEL"] doubleValue] != [dict[@"SEL"] longLongValue]) return nil;
+        if (![dict[@"static_assert"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"static_assert"] doubleValue] != [dict[@"static_assert"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15321,22 +15049,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSel.properties[key];
+    id resolved = QTStaticAssert.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSel.properties[key];
+    id resolved = QTStaticAssert.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSel.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTStaticAssert.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTSel.properties) {
-        id propertyName = QTSel.properties[jsonName];
+    for (id jsonName in QTStaticAssert.properties) {
+        id propertyName = QTStaticAssert.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -15347,67 +15075,385 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTSelect
+@implementation QTObj5
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"select": @"select",
+        @"dummy": @"dummy",
+        @"struct": @"obj5Struct",
+        @"switch": @"obj5Switch",
+        @"True": @"obj5True",
+        @"type": @"obj5Type",
+        @"typedef": @"obj5Typedef",
+        @"typeof": @"obj5Typeof",
+        @"union": @"obj5Union",
+        @"unsigned": @"obj5Unsigned",
+        @"void": @"obj5Void",
+        @"volatile": @"obj5Volatile",
+        @"while": @"obj5While",
+        @"static_cast": @"staticCast",
+        @"StdDeserializer": @"stdDeserializer",
+        @"StdSerializer": @"stdSerializer",
+        @"strictfp": @"strictfp",
+        @"string": @"string",
+        @"subscript": @"subscript",
+        @"super": @"super",
+        @"symbol": @"symbol",
+        @"synchronized": @"synchronized",
+        @"system": @"system",
+        @"template": @"template",
+        @"true": @"theTrue",
+        @"then": @"then",
+        @"this": @"this",
+        @"thread_local": @"threadLocal",
+        @"throw": @"throw",
+        @"throws": @"throws",
+        @"TimeOnly": @"timeOnly",
+        @"TimeOnlyConverter": @"timeOnlyConverter",
+        @"to_json": @"toJSON",
+        @"toString": @"toString",
+        @"top_level": @"topLevel",
+        @"transient": @"transient",
+        @"try": @"try",
+        @"Type": @"type",
+        @"typealias": @"typealias",
+        @"typeid": @"typeid",
+        @"typename": @"typename",
+        @"uint": @"uint",
+        @"ulong": @"ulong",
+        @"unchecked": @"unchecked",
+        @"undefined": @"undefined",
+        @"unowned": @"unowned",
+        @"unsafe": @"unsafe",
+        @"ushort": @"ushort",
+        @"using": @"using",
+        @"Utf8JsonReader": @"utf8JSONReader",
+        @"Utf8JsonWriter": @"utf8JSONWriter",
+        @"UUID": @"uuid",
+        @"var": @"var",
+        @"virtual": @"virtual",
+        @"wchar_t": @"wcharT",
+        @"weak": @"weak",
+        @"where": @"where",
+        @"willSet": @"willSet",
+        @"with": @"with",
+        @"xor": @"xor",
+        @"xor_eq": @"xorEq",
+        @"YES": @"yes",
+        @"yield": @"yield",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelect alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj5 alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"select"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"select"] doubleValue] != [dict[@"select"] longLongValue]) return nil;
+        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
+        if (![dict[@"struct"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"switch"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"True"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"type"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"typedef"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"typeof"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"union"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"unsigned"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"void"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"volatile"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"while"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"static_cast"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"StdDeserializer"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"StdSerializer"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"strictfp"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"string"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"subscript"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"super"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"symbol"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"synchronized"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"system"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"template"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"true"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"then"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"this"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"thread_local"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"throw"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"throws"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"TimeOnly"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"TimeOnlyConverter"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"to_json"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"toString"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"top_level"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"transient"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"try"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Type"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"typealias"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"typeid"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"typename"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"uint"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"ulong"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"unchecked"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"undefined"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"unowned"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"unsafe"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"ushort"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"using"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Utf8JsonReader"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"Utf8JsonWriter"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"UUID"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"var"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"virtual"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"wchar_t"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"weak"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"where"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"willSet"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"with"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"xor"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"xor_eq"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"YES"] isKindOfClass:NSDictionary.class]) return nil;
+        if (![dict[@"yield"] isKindOfClass:NSDictionary.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
+        _obj5Struct = [QTStruct fromJSONDictionary:(id)_obj5Struct];
+        if (!_obj5Struct && dict[@"struct"] && ![dict[@"struct"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Switch = [QTSwitch fromJSONDictionary:(id)_obj5Switch];
+        if (!_obj5Switch && dict[@"switch"] && ![dict[@"switch"] isKindOfClass:NSNull.class]) return nil;
+        _obj5True = [QTTrue fromJSONDictionary:(id)_obj5True];
+        if (!_obj5True && dict[@"True"] && ![dict[@"True"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Type = [QTTypeClass fromJSONDictionary:(id)_obj5Type];
+        if (!_obj5Type && dict[@"type"] && ![dict[@"type"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Typedef = [QTTypedef fromJSONDictionary:(id)_obj5Typedef];
+        if (!_obj5Typedef && dict[@"typedef"] && ![dict[@"typedef"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Typeof = [QTTypeof fromJSONDictionary:(id)_obj5Typeof];
+        if (!_obj5Typeof && dict[@"typeof"] && ![dict[@"typeof"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Union = [QTUnion fromJSONDictionary:(id)_obj5Union];
+        if (!_obj5Union && dict[@"union"] && ![dict[@"union"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Unsigned = [QTUnsigned fromJSONDictionary:(id)_obj5Unsigned];
+        if (!_obj5Unsigned && dict[@"unsigned"] && ![dict[@"unsigned"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Void = [QTVoid fromJSONDictionary:(id)_obj5Void];
+        if (!_obj5Void && dict[@"void"] && ![dict[@"void"] isKindOfClass:NSNull.class]) return nil;
+        _obj5Volatile = [QTVolatile fromJSONDictionary:(id)_obj5Volatile];
+        if (!_obj5Volatile && dict[@"volatile"] && ![dict[@"volatile"] isKindOfClass:NSNull.class]) return nil;
+        _obj5While = [QTWhile fromJSONDictionary:(id)_obj5While];
+        if (!_obj5While && dict[@"while"] && ![dict[@"while"] isKindOfClass:NSNull.class]) return nil;
+        _staticCast = [QTStaticCast fromJSONDictionary:(id)_staticCast];
+        if (!_staticCast && dict[@"static_cast"] && ![dict[@"static_cast"] isKindOfClass:NSNull.class]) return nil;
+        _stdDeserializer = [QTStdDeserializer fromJSONDictionary:(id)_stdDeserializer];
+        if (!_stdDeserializer && dict[@"StdDeserializer"] && ![dict[@"StdDeserializer"] isKindOfClass:NSNull.class]) return nil;
+        _stdSerializer = [QTStdSerializer fromJSONDictionary:(id)_stdSerializer];
+        if (!_stdSerializer && dict[@"StdSerializer"] && ![dict[@"StdSerializer"] isKindOfClass:NSNull.class]) return nil;
+        _strictfp = [QTStrictfp fromJSONDictionary:(id)_strictfp];
+        if (!_strictfp && dict[@"strictfp"] && ![dict[@"strictfp"] isKindOfClass:NSNull.class]) return nil;
+        _string = [QTString fromJSONDictionary:(id)_string];
+        if (!_string && dict[@"string"] && ![dict[@"string"] isKindOfClass:NSNull.class]) return nil;
+        _subscript = [QTSubscript fromJSONDictionary:(id)_subscript];
+        if (!_subscript && dict[@"subscript"] && ![dict[@"subscript"] isKindOfClass:NSNull.class]) return nil;
+        _super = [QTSuper fromJSONDictionary:(id)_super];
+        if (!_super && dict[@"super"] && ![dict[@"super"] isKindOfClass:NSNull.class]) return nil;
+        _symbol = [QTSymbol fromJSONDictionary:(id)_symbol];
+        if (!_symbol && dict[@"symbol"] && ![dict[@"symbol"] isKindOfClass:NSNull.class]) return nil;
+        _synchronized = [QTSynchronized fromJSONDictionary:(id)_synchronized];
+        if (!_synchronized && dict[@"synchronized"] && ![dict[@"synchronized"] isKindOfClass:NSNull.class]) return nil;
+        _system = [QTSystem fromJSONDictionary:(id)_system];
+        if (!_system && dict[@"system"] && ![dict[@"system"] isKindOfClass:NSNull.class]) return nil;
+        _template = [QTTemplate fromJSONDictionary:(id)_template];
+        if (!_template && dict[@"template"] && ![dict[@"template"] isKindOfClass:NSNull.class]) return nil;
+        _theTrue = [QTTrueClass fromJSONDictionary:(id)_theTrue];
+        if (!_theTrue && dict[@"true"] && ![dict[@"true"] isKindOfClass:NSNull.class]) return nil;
+        _then = [QTThen fromJSONDictionary:(id)_then];
+        if (!_then && dict[@"then"] && ![dict[@"then"] isKindOfClass:NSNull.class]) return nil;
+        _this = [QTThis fromJSONDictionary:(id)_this];
+        if (!_this && dict[@"this"] && ![dict[@"this"] isKindOfClass:NSNull.class]) return nil;
+        _threadLocal = [QTThreadLocal fromJSONDictionary:(id)_threadLocal];
+        if (!_threadLocal && dict[@"thread_local"] && ![dict[@"thread_local"] isKindOfClass:NSNull.class]) return nil;
+        _throw = [QTThrow fromJSONDictionary:(id)_throw];
+        if (!_throw && dict[@"throw"] && ![dict[@"throw"] isKindOfClass:NSNull.class]) return nil;
+        _throws = [QTThrows fromJSONDictionary:(id)_throws];
+        if (!_throws && dict[@"throws"] && ![dict[@"throws"] isKindOfClass:NSNull.class]) return nil;
+        _timeOnly = [QTTimeOnly fromJSONDictionary:(id)_timeOnly];
+        if (!_timeOnly && dict[@"TimeOnly"] && ![dict[@"TimeOnly"] isKindOfClass:NSNull.class]) return nil;
+        _timeOnlyConverter = [QTTimeOnlyConverter fromJSONDictionary:(id)_timeOnlyConverter];
+        if (!_timeOnlyConverter && dict[@"TimeOnlyConverter"] && ![dict[@"TimeOnlyConverter"] isKindOfClass:NSNull.class]) return nil;
+        _toJSON = [QTToJSON fromJSONDictionary:(id)_toJSON];
+        if (!_toJSON && dict[@"to_json"] && ![dict[@"to_json"] isKindOfClass:NSNull.class]) return nil;
+        _toString = [QTToString fromJSONDictionary:(id)_toString];
+        if (!_toString && dict[@"toString"] && ![dict[@"toString"] isKindOfClass:NSNull.class]) return nil;
+        _topLevel = [QTTopLevelClass fromJSONDictionary:(id)_topLevel];
+        if (!_topLevel && dict[@"top_level"] && ![dict[@"top_level"] isKindOfClass:NSNull.class]) return nil;
+        _transient = [QTTransient fromJSONDictionary:(id)_transient];
+        if (!_transient && dict[@"transient"] && ![dict[@"transient"] isKindOfClass:NSNull.class]) return nil;
+        _try = [QTTry fromJSONDictionary:(id)_try];
+        if (!_try && dict[@"try"] && ![dict[@"try"] isKindOfClass:NSNull.class]) return nil;
+        _type = [QTType fromJSONDictionary:(id)_type];
+        if (!_type && dict[@"Type"] && ![dict[@"Type"] isKindOfClass:NSNull.class]) return nil;
+        _typealias = [QTTypealias fromJSONDictionary:(id)_typealias];
+        if (!_typealias && dict[@"typealias"] && ![dict[@"typealias"] isKindOfClass:NSNull.class]) return nil;
+        _typeid = [QTTypeid fromJSONDictionary:(id)_typeid];
+        if (!_typeid && dict[@"typeid"] && ![dict[@"typeid"] isKindOfClass:NSNull.class]) return nil;
+        _typename = [QTTypename fromJSONDictionary:(id)_typename];
+        if (!_typename && dict[@"typename"] && ![dict[@"typename"] isKindOfClass:NSNull.class]) return nil;
+        _uint = [QTUint fromJSONDictionary:(id)_uint];
+        if (!_uint && dict[@"uint"] && ![dict[@"uint"] isKindOfClass:NSNull.class]) return nil;
+        _ulong = [QTUlong fromJSONDictionary:(id)_ulong];
+        if (!_ulong && dict[@"ulong"] && ![dict[@"ulong"] isKindOfClass:NSNull.class]) return nil;
+        _unchecked = [QTUnchecked fromJSONDictionary:(id)_unchecked];
+        if (!_unchecked && dict[@"unchecked"] && ![dict[@"unchecked"] isKindOfClass:NSNull.class]) return nil;
+        _undefined = [QTUndefined fromJSONDictionary:(id)_undefined];
+        if (!_undefined && dict[@"undefined"] && ![dict[@"undefined"] isKindOfClass:NSNull.class]) return nil;
+        _unowned = [QTUnowned fromJSONDictionary:(id)_unowned];
+        if (!_unowned && dict[@"unowned"] && ![dict[@"unowned"] isKindOfClass:NSNull.class]) return nil;
+        _unsafe = [QTUnsafe fromJSONDictionary:(id)_unsafe];
+        if (!_unsafe && dict[@"unsafe"] && ![dict[@"unsafe"] isKindOfClass:NSNull.class]) return nil;
+        _ushort = [QTUshort fromJSONDictionary:(id)_ushort];
+        if (!_ushort && dict[@"ushort"] && ![dict[@"ushort"] isKindOfClass:NSNull.class]) return nil;
+        _using = [QTUsing fromJSONDictionary:(id)_using];
+        if (!_using && dict[@"using"] && ![dict[@"using"] isKindOfClass:NSNull.class]) return nil;
+        _utf8JSONReader = [QTUtf8JSONReader fromJSONDictionary:(id)_utf8JSONReader];
+        if (!_utf8JSONReader && dict[@"Utf8JsonReader"] && ![dict[@"Utf8JsonReader"] isKindOfClass:NSNull.class]) return nil;
+        _utf8JSONWriter = [QTUtf8JSONWriter fromJSONDictionary:(id)_utf8JSONWriter];
+        if (!_utf8JSONWriter && dict[@"Utf8JsonWriter"] && ![dict[@"Utf8JsonWriter"] isKindOfClass:NSNull.class]) return nil;
+        _uuid = [QTUUID fromJSONDictionary:(id)_uuid];
+        if (!_uuid && dict[@"UUID"] && ![dict[@"UUID"] isKindOfClass:NSNull.class]) return nil;
+        _var = [QTVar fromJSONDictionary:(id)_var];
+        if (!_var && dict[@"var"] && ![dict[@"var"] isKindOfClass:NSNull.class]) return nil;
+        _virtual = [QTVirtual fromJSONDictionary:(id)_virtual];
+        if (!_virtual && dict[@"virtual"] && ![dict[@"virtual"] isKindOfClass:NSNull.class]) return nil;
+        _wcharT = [QTWcharT fromJSONDictionary:(id)_wcharT];
+        if (!_wcharT && dict[@"wchar_t"] && ![dict[@"wchar_t"] isKindOfClass:NSNull.class]) return nil;
+        _weak = [QTWeak fromJSONDictionary:(id)_weak];
+        if (!_weak && dict[@"weak"] && ![dict[@"weak"] isKindOfClass:NSNull.class]) return nil;
+        _where = [QTWhere fromJSONDictionary:(id)_where];
+        if (!_where && dict[@"where"] && ![dict[@"where"] isKindOfClass:NSNull.class]) return nil;
+        _willSet = [QTWillSet fromJSONDictionary:(id)_willSet];
+        if (!_willSet && dict[@"willSet"] && ![dict[@"willSet"] isKindOfClass:NSNull.class]) return nil;
+        _with = [QTWith fromJSONDictionary:(id)_with];
+        if (!_with && dict[@"with"] && ![dict[@"with"] isKindOfClass:NSNull.class]) return nil;
+        _xor = [QTXor fromJSONDictionary:(id)_xor];
+        if (!_xor && dict[@"xor"] && ![dict[@"xor"] isKindOfClass:NSNull.class]) return nil;
+        _xorEq = [QTXorEq fromJSONDictionary:(id)_xorEq];
+        if (!_xorEq && dict[@"xor_eq"] && ![dict[@"xor_eq"] isKindOfClass:NSNull.class]) return nil;
+        _yes = [QTYes fromJSONDictionary:(id)_yes];
+        if (!_yes && dict[@"YES"] && ![dict[@"YES"] isKindOfClass:NSNull.class]) return nil;
+        _yield = [QTYield fromJSONDictionary:(id)_yield];
+        if (!_yield && dict[@"yield"] && ![dict[@"yield"] isKindOfClass:NSNull.class]) return nil;
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelect.properties[key];
+    id resolved = QTObj5.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelect.properties[key];
+    id resolved = QTObj5.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSelect.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTObj5.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTObj5.properties) {
+        id propertyName = QTObj5.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    [dict addEntriesFromDictionary:@{
+        @"struct": [_obj5Struct JSONDictionary],
+        @"switch": [_obj5Switch JSONDictionary],
+        @"True": [_obj5True JSONDictionary],
+        @"type": [_obj5Type JSONDictionary],
+        @"typedef": [_obj5Typedef JSONDictionary],
+        @"typeof": [_obj5Typeof JSONDictionary],
+        @"union": [_obj5Union JSONDictionary],
+        @"unsigned": [_obj5Unsigned JSONDictionary],
+        @"void": [_obj5Void JSONDictionary],
+        @"volatile": [_obj5Volatile JSONDictionary],
+        @"while": [_obj5While JSONDictionary],
+        @"static_cast": [_staticCast JSONDictionary],
+        @"StdDeserializer": [_stdDeserializer JSONDictionary],
+        @"StdSerializer": [_stdSerializer JSONDictionary],
+        @"strictfp": [_strictfp JSONDictionary],
+        @"string": [_string JSONDictionary],
+        @"subscript": [_subscript JSONDictionary],
+        @"super": [_super JSONDictionary],
+        @"symbol": [_symbol JSONDictionary],
+        @"synchronized": [_synchronized JSONDictionary],
+        @"system": [_system JSONDictionary],
+        @"template": [_template JSONDictionary],
+        @"true": [_theTrue JSONDictionary],
+        @"then": [_then JSONDictionary],
+        @"this": [_this JSONDictionary],
+        @"thread_local": [_threadLocal JSONDictionary],
+        @"throw": [_throw JSONDictionary],
+        @"throws": [_throws JSONDictionary],
+        @"TimeOnly": [_timeOnly JSONDictionary],
+        @"TimeOnlyConverter": [_timeOnlyConverter JSONDictionary],
+        @"to_json": [_toJSON JSONDictionary],
+        @"toString": [_toString JSONDictionary],
+        @"top_level": [_topLevel JSONDictionary],
+        @"transient": [_transient JSONDictionary],
+        @"try": [_try JSONDictionary],
+        @"Type": [_type JSONDictionary],
+        @"typealias": [_typealias JSONDictionary],
+        @"typeid": [_typeid JSONDictionary],
+        @"typename": [_typename JSONDictionary],
+        @"uint": [_uint JSONDictionary],
+        @"ulong": [_ulong JSONDictionary],
+        @"unchecked": [_unchecked JSONDictionary],
+        @"undefined": [_undefined JSONDictionary],
+        @"unowned": [_unowned JSONDictionary],
+        @"unsafe": [_unsafe JSONDictionary],
+        @"ushort": [_ushort JSONDictionary],
+        @"using": [_using JSONDictionary],
+        @"Utf8JsonReader": [_utf8JSONReader JSONDictionary],
+        @"Utf8JsonWriter": [_utf8JSONWriter JSONDictionary],
+        @"UUID": [_uuid JSONDictionary],
+        @"var": [_var JSONDictionary],
+        @"virtual": [_virtual JSONDictionary],
+        @"wchar_t": [_wcharT JSONDictionary],
+        @"weak": [_weak JSONDictionary],
+        @"where": [_where JSONDictionary],
+        @"willSet": [_willSet JSONDictionary],
+        @"with": [_with JSONDictionary],
+        @"xor": [_xor JSONDictionary],
+        @"xor_eq": [_xorEq JSONDictionary],
+        @"YES": [_yes JSONDictionary],
+        @"yield": [_yield JSONDictionary],
+    }];
+
+    return dict;
 }
 @end
 
-@implementation QTSelf
+@implementation QTStruct
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"Self": @"self",
+        @"struct": @"structStruct",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStruct alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"Self"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"Self"] doubleValue] != [dict[@"Self"] longLongValue]) return nil;
+        if (![dict[@"struct"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"struct"] doubleValue] != [dict[@"struct"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15415,22 +15461,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelf.properties[key];
+    id resolved = QTStruct.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelf.properties[key];
+    id resolved = QTStruct.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTSelf.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTStruct.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTSelf.properties) {
-        id propertyName = QTSelf.properties[jsonName];
+    for (id jsonName in QTStruct.properties) {
+        id propertyName = QTStruct.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -15441,25 +15487,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTSerialize
+@implementation QTSwitch
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"serialize": @"serialize",
+        @"switch": @"switchSwitch",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerialize alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSwitch alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"serialize"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"serialize"] doubleValue] != [dict[@"serialize"] longLongValue]) return nil;
+        if (![dict[@"switch"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"switch"] doubleValue] != [dict[@"switch"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15467,83 +15513,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSerialize.properties[key];
+    id resolved = QTSwitch.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSerialize.properties[key];
+    id resolved = QTSwitch.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSerialize.properties.allValues];
-}
-@end
-
-@implementation QTSet
-+ (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"set": @"set",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSet alloc] initWithJSONDictionary:dict] : nil;
-}
+    id dict = [[self dictionaryWithValuesForKeys:QTSwitch.properties.allValues] mutableCopy];
 
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"set"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"set"] doubleValue] != [dict[@"set"] longLongValue]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
+    for (id jsonName in QTSwitch.properties) {
+        id propertyName = QTSwitch.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
     }
-    return self;
-}
-
-- (void)setValue:(nullable id)value forKey:(NSString *)key
-{
-    id resolved = QTSet.properties[key];
-    if (resolved) [super setValue:value forKey:resolved];
-}
 
-- (void)setNilValueForKey:(NSString *)key
-{
-    id resolved = QTSet.properties[key];
-    if (resolved) [super setValue:@(0) forKey:resolved];
-}
-
-- (NSDictionary *)JSONDictionary
-{
-    return [self dictionaryWithValuesForKeys:QTSet.properties.allValues];
+    return dict;
 }
 @end
 
-@implementation QTStackalloc
+@implementation QTTrue
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"stackalloc": @"stackalloc",
+        @"True": @"trueTrue",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStackalloc alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrue alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"stackalloc"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"stackalloc"] doubleValue] != [dict[@"stackalloc"] longLongValue]) return nil;
+        if (![dict[@"True"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"True"] doubleValue] != [dict[@"True"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15551,41 +15565,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStackalloc.properties[key];
+    id resolved = QTTrue.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStackalloc.properties[key];
+    id resolved = QTTrue.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStackalloc.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTTrue.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTTrue.properties) {
+        id propertyName = QTTrue.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTStandards
+@implementation QTTypeClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"Standards": @"standards",
+        @"type": @"type",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStandards alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"Standards"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"Standards"] doubleValue] != [dict[@"Standards"] longLongValue]) return nil;
+        if (![dict[@"type"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"type"] doubleValue] != [dict[@"type"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15593,51 +15617,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStandards.properties[key];
+    id resolved = QTTypeClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStandards.properties[key];
+    id resolved = QTTypeClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStandards.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTStandards.properties) {
-        id propertyName = QTStandards.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTTypeClass.properties.allValues];
 }
 @end
 
-@implementation QTStaticAssert
+@implementation QTTypedef
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"static_assert": @"staticAssert",
+        @"typedef": @"typedefTypedef",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticAssert alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypedef alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"static_assert"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"static_assert"] doubleValue] != [dict[@"static_assert"] longLongValue]) return nil;
+        if (![dict[@"typedef"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"typedef"] doubleValue] != [dict[@"typedef"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15645,22 +15659,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStaticAssert.properties[key];
+    id resolved = QTTypedef.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStaticAssert.properties[key];
+    id resolved = QTTypedef.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStaticAssert.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTTypedef.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTStaticAssert.properties) {
-        id propertyName = QTStaticAssert.properties[jsonName];
+    for (id jsonName in QTTypedef.properties) {
+        id propertyName = QTTypedef.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -15671,25 +15685,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTStaticCast
+@implementation QTTypeof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"static_cast": @"staticCast",
+        @"typeof": @"typeofTypeof",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticCast alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"static_cast"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"static_cast"] doubleValue] != [dict[@"static_cast"] longLongValue]) return nil;
+        if (![dict[@"typeof"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"typeof"] doubleValue] != [dict[@"typeof"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15697,22 +15711,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStaticCast.properties[key];
+    id resolved = QTTypeof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStaticCast.properties[key];
+    id resolved = QTTypeof.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTStaticCast.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTTypeof.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTStaticCast.properties) {
-        id propertyName = QTStaticCast.properties[jsonName];
+    for (id jsonName in QTTypeof.properties) {
+        id propertyName = QTTypeof.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -15723,25 +15737,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTStrictfp
+@implementation QTUnion
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"strictfp": @"strictfp",
+        @"union": @"unionUnion",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStrictfp alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnion alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"strictfp"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"strictfp"] doubleValue] != [dict[@"strictfp"] longLongValue]) return nil;
+        if (![dict[@"union"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"union"] doubleValue] != [dict[@"union"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15749,41 +15763,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStrictfp.properties[key];
+    id resolved = QTUnion.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStrictfp.properties[key];
+    id resolved = QTUnion.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStrictfp.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTUnion.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTUnion.properties) {
+        id propertyName = QTUnion.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTString
+@implementation QTUnsigned
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"string": @"string",
+        @"unsigned": @"unsignedUnsigned",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTString alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnsigned alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"string"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"string"] doubleValue] != [dict[@"string"] longLongValue]) return nil;
+        if (![dict[@"unsigned"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"unsigned"] doubleValue] != [dict[@"unsigned"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15791,41 +15815,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTString.properties[key];
+    id resolved = QTUnsigned.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTString.properties[key];
+    id resolved = QTUnsigned.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTString.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTUnsigned.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTUnsigned.properties) {
+        id propertyName = QTUnsigned.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSubscript
+@implementation QTVoid
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"subscript": @"subscript",
+        @"void": @"voidVoid",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSubscript alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTVoid alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"subscript"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"subscript"] doubleValue] != [dict[@"subscript"] longLongValue]) return nil;
+        if (![dict[@"void"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"void"] doubleValue] != [dict[@"void"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15833,41 +15867,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSubscript.properties[key];
+    id resolved = QTVoid.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSubscript.properties[key];
+    id resolved = QTVoid.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSubscript.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTVoid.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTVoid.properties) {
+        id propertyName = QTVoid.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSuper
+@implementation QTVolatile
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"super": @"super",
+        @"volatile": @"volatileVolatile",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSuper alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTVolatile alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"super"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"super"] doubleValue] != [dict[@"super"] longLongValue]) return nil;
+        if (![dict[@"volatile"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"volatile"] doubleValue] != [dict[@"volatile"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15875,41 +15919,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSuper.properties[key];
+    id resolved = QTVolatile.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSuper.properties[key];
+    id resolved = QTVolatile.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSuper.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTVolatile.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTVolatile.properties) {
+        id propertyName = QTVolatile.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSymbol
+@implementation QTWhile
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"symbol": @"symbol",
+        @"while": @"whileWhile",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSymbol alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTWhile alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"symbol"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"symbol"] doubleValue] != [dict[@"symbol"] longLongValue]) return nil;
+        if (![dict[@"while"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"while"] doubleValue] != [dict[@"while"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15917,41 +15971,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSymbol.properties[key];
+    id resolved = QTWhile.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSymbol.properties[key];
+    id resolved = QTWhile.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSymbol.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTWhile.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTWhile.properties) {
+        id propertyName = QTWhile.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSynchronized
+@implementation QTStaticCast
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"synchronized": @"synchronized",
+        @"static_cast": @"staticCast",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSynchronized alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticCast alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"synchronized"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"synchronized"] doubleValue] != [dict[@"synchronized"] longLongValue]) return nil;
+        if (![dict[@"static_cast"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"static_cast"] doubleValue] != [dict[@"static_cast"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -15959,41 +16023,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSynchronized.properties[key];
+    id resolved = QTStaticCast.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSynchronized.properties[key];
+    id resolved = QTStaticCast.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSynchronized.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTStaticCast.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTStaticCast.properties) {
+        id propertyName = QTStaticCast.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTSystem
+@implementation QTStdDeserializer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"system": @"system",
+        @"StdDeserializer": @"stdDeserializer",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSystem alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdDeserializer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"system"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"system"] doubleValue] != [dict[@"system"] longLongValue]) return nil;
+        if (![dict[@"StdDeserializer"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"StdDeserializer"] doubleValue] != [dict[@"StdDeserializer"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16001,41 +16075,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSystem.properties[key];
+    id resolved = QTStdDeserializer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSystem.properties[key];
+    id resolved = QTStdDeserializer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSystem.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTStdDeserializer.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTStdDeserializer.properties) {
+        id propertyName = QTStdDeserializer.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTemplate
+@implementation QTStdSerializer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"template": @"template",
+        @"StdSerializer": @"stdSerializer",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTemplate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdSerializer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"template"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"template"] doubleValue] != [dict[@"template"] longLongValue]) return nil;
+        if (![dict[@"StdSerializer"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"StdSerializer"] doubleValue] != [dict[@"StdSerializer"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16043,41 +16127,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTemplate.properties[key];
+    id resolved = QTStdSerializer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTemplate.properties[key];
+    id resolved = QTStdSerializer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTemplate.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTStdSerializer.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTStdSerializer.properties) {
+        id propertyName = QTStdSerializer.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTrueClass
+@implementation QTStrictfp
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"true": @"trueTrue",
+        @"strictfp": @"strictfp",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrueClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStrictfp alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"true"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"true"] doubleValue] != [dict[@"true"] longLongValue]) return nil;
+        if (![dict[@"strictfp"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"strictfp"] doubleValue] != [dict[@"strictfp"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16085,51 +16179,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTrueClass.properties[key];
+    id resolved = QTStrictfp.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTrueClass.properties[key];
+    id resolved = QTStrictfp.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTrueClass.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTrueClass.properties) {
-        id propertyName = QTTrueClass.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTStrictfp.properties.allValues];
 }
 @end
 
-@implementation QTThen
+@implementation QTString
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"then": @"then",
+        @"string": @"string",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTThen alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTString alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"then"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"then"] doubleValue] != [dict[@"then"] longLongValue]) return nil;
+        if (![dict[@"string"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"string"] doubleValue] != [dict[@"string"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16137,41 +16221,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTThen.properties[key];
+    id resolved = QTString.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTThen.properties[key];
+    id resolved = QTString.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTThen.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTString.properties.allValues];
 }
 @end
 
-@implementation QTThis
+@implementation QTSubscript
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"this": @"this",
+        @"subscript": @"subscript",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTThis alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSubscript alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"this"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"this"] doubleValue] != [dict[@"this"] longLongValue]) return nil;
+        if (![dict[@"subscript"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"subscript"] doubleValue] != [dict[@"subscript"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16179,41 +16263,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTThis.properties[key];
+    id resolved = QTSubscript.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTThis.properties[key];
+    id resolved = QTSubscript.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTThis.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSubscript.properties.allValues];
 }
 @end
 
-@implementation QTThreadLocal
+@implementation QTSuper
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"thread_local": @"threadLocal",
+        @"super": @"super",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTThreadLocal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSuper alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"thread_local"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"thread_local"] doubleValue] != [dict[@"thread_local"] longLongValue]) return nil;
+        if (![dict[@"super"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"super"] doubleValue] != [dict[@"super"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16221,51 +16305,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTThreadLocal.properties[key];
+    id resolved = QTSuper.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTThreadLocal.properties[key];
+    id resolved = QTSuper.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTThreadLocal.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTThreadLocal.properties) {
-        id propertyName = QTThreadLocal.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTSuper.properties.allValues];
 }
 @end
 
-@implementation QTThrow
+@implementation QTSymbol
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"throw": @"throw",
+        @"symbol": @"symbol",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTThrow alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSymbol alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"throw"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"throw"] doubleValue] != [dict[@"throw"] longLongValue]) return nil;
+        if (![dict[@"symbol"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"symbol"] doubleValue] != [dict[@"symbol"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16273,41 +16347,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTThrow.properties[key];
+    id resolved = QTSymbol.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTThrow.properties[key];
+    id resolved = QTSymbol.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTThrow.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSymbol.properties.allValues];
 }
 @end
 
-@implementation QTThrows
+@implementation QTSynchronized
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"throws": @"throws",
+        @"synchronized": @"synchronized",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTThrows alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSynchronized alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"throws"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"throws"] doubleValue] != [dict[@"throws"] longLongValue]) return nil;
+        if (![dict[@"synchronized"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"synchronized"] doubleValue] != [dict[@"synchronized"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16315,41 +16389,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTThrows.properties[key];
+    id resolved = QTSynchronized.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTThrows.properties[key];
+    id resolved = QTSynchronized.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTThrows.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSynchronized.properties.allValues];
 }
 @end
 
-@implementation QTTimeOnly
+@implementation QTSystem
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"TimeOnly": @"timeOnly",
+        @"system": @"system",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnly alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSystem alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"TimeOnly"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"TimeOnly"] doubleValue] != [dict[@"TimeOnly"] longLongValue]) return nil;
+        if (![dict[@"system"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"system"] doubleValue] != [dict[@"system"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16357,51 +16431,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTimeOnly.properties[key];
+    id resolved = QTSystem.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTimeOnly.properties[key];
+    id resolved = QTSystem.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTimeOnly.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTimeOnly.properties) {
-        id propertyName = QTTimeOnly.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTSystem.properties.allValues];
 }
 @end
 
-@implementation QTTimeOnlyConverter
+@implementation QTTemplate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"TimeOnlyConverter": @"timeOnlyConverter",
+        @"template": @"template",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnlyConverter alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTemplate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"TimeOnlyConverter"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"TimeOnlyConverter"] doubleValue] != [dict[@"TimeOnlyConverter"] longLongValue]) return nil;
+        if (![dict[@"template"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"template"] doubleValue] != [dict[@"template"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16409,51 +16473,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTimeOnlyConverter.properties[key];
+    id resolved = QTTemplate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTimeOnlyConverter.properties[key];
+    id resolved = QTTemplate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTimeOnlyConverter.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTimeOnlyConverter.properties) {
-        id propertyName = QTTimeOnlyConverter.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTTemplate.properties.allValues];
 }
 @end
 
-@implementation QTToJSON
+@implementation QTTrueClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"to_json": @"toJSON",
+        @"true": @"trueTrue",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTToJSON alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrueClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"to_json"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"to_json"] doubleValue] != [dict[@"to_json"] longLongValue]) return nil;
+        if (![dict[@"true"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"true"] doubleValue] != [dict[@"true"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16461,22 +16515,22 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTToJSON.properties[key];
+    id resolved = QTTrueClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTToJSON.properties[key];
+    id resolved = QTTrueClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTToJSON.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTTrueClass.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTToJSON.properties) {
-        id propertyName = QTToJSON.properties[jsonName];
+    for (id jsonName in QTTrueClass.properties) {
+        id propertyName = QTTrueClass.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
@@ -16487,25 +16541,25 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTToString
+@implementation QTThen
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"toString": @"toString",
+        @"then": @"then",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTToString alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTThen alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"toString"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"toString"] doubleValue] != [dict[@"toString"] longLongValue]) return nil;
+        if (![dict[@"then"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"then"] doubleValue] != [dict[@"then"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16513,41 +16567,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTToString.properties[key];
+    id resolved = QTThen.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTToString.properties[key];
+    id resolved = QTThen.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTToString.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTThen.properties.allValues];
 }
 @end
 
-@implementation QTTopLevelClass
+@implementation QTThis
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"top_level": @"topLevel",
+        @"this": @"this",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTopLevelClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTThis alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"top_level"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"top_level"] doubleValue] != [dict[@"top_level"] longLongValue]) return nil;
+        if (![dict[@"this"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"this"] doubleValue] != [dict[@"this"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16555,51 +16609,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTopLevelClass.properties[key];
+    id resolved = QTThis.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTopLevelClass.properties[key];
+    id resolved = QTThis.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTTopLevelClass.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTTopLevelClass.properties) {
-        id propertyName = QTTopLevelClass.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTThis.properties.allValues];
 }
 @end
 
-@implementation QTTransient
+@implementation QTThreadLocal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"transient": @"transient",
+        @"thread_local": @"threadLocal",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTransient alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTThreadLocal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"transient"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"transient"] doubleValue] != [dict[@"transient"] longLongValue]) return nil;
+        if (![dict[@"thread_local"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"thread_local"] doubleValue] != [dict[@"thread_local"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16607,41 +16651,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTransient.properties[key];
+    id resolved = QTThreadLocal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTransient.properties[key];
+    id resolved = QTThreadLocal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTransient.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTThreadLocal.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTThreadLocal.properties) {
+        id propertyName = QTThreadLocal.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTry
+@implementation QTThrow
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"try": @"try",
+        @"throw": @"throw",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTry alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTThrow alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"try"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"try"] doubleValue] != [dict[@"try"] longLongValue]) return nil;
+        if (![dict[@"throw"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"throw"] doubleValue] != [dict[@"throw"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16649,41 +16703,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTry.properties[key];
+    id resolved = QTThrow.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTry.properties[key];
+    id resolved = QTThrow.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTry.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTThrow.properties.allValues];
 }
 @end
 
-@implementation QTType
+@implementation QTThrows
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"Type": @"type",
+        @"throws": @"throws",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTType alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTThrows alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"Type"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"Type"] doubleValue] != [dict[@"Type"] longLongValue]) return nil;
+        if (![dict[@"throws"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"throws"] doubleValue] != [dict[@"throws"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16691,51 +16745,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTType.properties[key];
+    id resolved = QTThrows.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTType.properties[key];
+    id resolved = QTThrows.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTType.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTType.properties) {
-        id propertyName = QTType.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTThrows.properties.allValues];
 }
 @end
 
-@implementation QTTypealias
+@implementation QTTimeOnly
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"typealias": @"typealias",
+        @"TimeOnly": @"timeOnly",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypealias alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnly alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"typealias"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"typealias"] doubleValue] != [dict[@"typealias"] longLongValue]) return nil;
+        if (![dict[@"TimeOnly"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"TimeOnly"] doubleValue] != [dict[@"TimeOnly"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16743,41 +16787,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypealias.properties[key];
+    id resolved = QTTimeOnly.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypealias.properties[key];
+    id resolved = QTTimeOnly.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypealias.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTTimeOnly.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTTimeOnly.properties) {
+        id propertyName = QTTimeOnly.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTypeid
+@implementation QTTimeOnlyConverter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"typeid": @"typeid",
+        @"TimeOnlyConverter": @"timeOnlyConverter",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeid alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnlyConverter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"typeid"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"typeid"] doubleValue] != [dict[@"typeid"] longLongValue]) return nil;
+        if (![dict[@"TimeOnlyConverter"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"TimeOnlyConverter"] doubleValue] != [dict[@"TimeOnlyConverter"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16785,41 +16839,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypeid.properties[key];
+    id resolved = QTTimeOnlyConverter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypeid.properties[key];
+    id resolved = QTTimeOnlyConverter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypeid.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTTimeOnlyConverter.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTTimeOnlyConverter.properties) {
+        id propertyName = QTTimeOnlyConverter.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTTypename
+@implementation QTToJSON
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"typename": @"typename",
+        @"to_json": @"toJSON",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypename alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTToJSON alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"typename"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"typename"] doubleValue] != [dict[@"typename"] longLongValue]) return nil;
+        if (![dict[@"to_json"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"to_json"] doubleValue] != [dict[@"to_json"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16827,41 +16891,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypename.properties[key];
+    id resolved = QTToJSON.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypename.properties[key];
+    id resolved = QTToJSON.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypename.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTToJSON.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTToJSON.properties) {
+        id propertyName = QTToJSON.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTUint
+@implementation QTToString
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"uint": @"uint",
+        @"toString": @"toString",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUint alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTToString alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"uint"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"uint"] doubleValue] != [dict[@"uint"] longLongValue]) return nil;
+        if (![dict[@"toString"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"toString"] doubleValue] != [dict[@"toString"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16869,41 +16943,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUint.properties[key];
+    id resolved = QTToString.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUint.properties[key];
+    id resolved = QTToString.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUint.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTToString.properties.allValues];
 }
 @end
 
-@implementation QTUlong
+@implementation QTTopLevelClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"ulong": @"ulong",
+        @"top_level": @"topLevel",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUlong alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTopLevelClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"ulong"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"ulong"] doubleValue] != [dict[@"ulong"] longLongValue]) return nil;
+        if (![dict[@"top_level"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"top_level"] doubleValue] != [dict[@"top_level"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16911,41 +16985,51 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUlong.properties[key];
+    id resolved = QTTopLevelClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUlong.properties[key];
+    id resolved = QTTopLevelClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUlong.properties.allValues];
+    id dict = [[self dictionaryWithValuesForKeys:QTTopLevelClass.properties.allValues] mutableCopy];
+
+    for (id jsonName in QTTopLevelClass.properties) {
+        id propertyName = QTTopLevelClass.properties[jsonName];
+        if (![jsonName isEqualToString:propertyName]) {
+            dict[jsonName] = dict[propertyName];
+            [dict removeObjectForKey:propertyName];
+        }
+    }
+
+    return dict;
 }
 @end
 
-@implementation QTUnchecked
+@implementation QTTransient
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"unchecked": @"unchecked",
+        @"transient": @"transient",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnchecked alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTransient alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"unchecked"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"unchecked"] doubleValue] != [dict[@"unchecked"] longLongValue]) return nil;
+        if (![dict[@"transient"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"transient"] doubleValue] != [dict[@"transient"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16953,41 +17037,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUnchecked.properties[key];
+    id resolved = QTTransient.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUnchecked.properties[key];
+    id resolved = QTTransient.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUnchecked.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTransient.properties.allValues];
 }
 @end
 
-@implementation QTUndefined
+@implementation QTTry
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"undefined": @"undefined",
+        @"try": @"try",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUndefined alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTry alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"undefined"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"undefined"] doubleValue] != [dict[@"undefined"] longLongValue]) return nil;
+        if (![dict[@"try"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"try"] doubleValue] != [dict[@"try"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -16995,211 +17079,93 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUndefined.properties[key];
+    id resolved = QTTry.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUndefined.properties[key];
+    id resolved = QTTry.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUndefined.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTry.properties.allValues];
 }
 @end
 
-@implementation QTObj5
+@implementation QTType
 + (NSDictionary<NSString *, NSString *> *)properties
-{
-    static NSDictionary<NSString *, NSString *> *properties;
-    return properties = properties ? properties : @{
-        @"dummy": @"dummy",
-        @"union": @"obj5Union",
-        @"unsigned": @"obj5Unsigned",
-        @"void": @"obj5Void",
-        @"volatile": @"obj5Volatile",
-        @"while": @"obj5While",
-        @"unowned": @"unowned",
-        @"unsafe": @"unsafe",
-        @"ushort": @"ushort",
-        @"using": @"using",
-        @"Utf8JsonReader": @"utf8JSONReader",
-        @"Utf8JsonWriter": @"utf8JSONWriter",
-        @"UUID": @"uuid",
-        @"var": @"var",
-        @"virtual": @"virtual",
-        @"wchar_t": @"wcharT",
-        @"weak": @"weak",
-        @"where": @"where",
-        @"willSet": @"willSet",
-        @"with": @"with",
-        @"xor": @"xor",
-        @"xor_eq": @"xorEq",
-        @"YES": @"yes",
-        @"yield": @"yield",
-    };
-}
-
-+ (instancetype)fromJSONDictionary:(NSDictionary *)dict
-{
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObj5 alloc] initWithJSONDictionary:dict] : nil;
-}
-
-- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
-{
-    if (self = [super init]) {
-        if (![dict[@"dummy"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"dummy"] doubleValue] != [dict[@"dummy"] longLongValue]) return nil;
-        if (![dict[@"union"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"unsigned"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"void"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"volatile"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"while"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"unowned"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"unsafe"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"ushort"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"using"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Utf8JsonReader"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"Utf8JsonWriter"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"UUID"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"var"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"virtual"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"wchar_t"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"weak"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"where"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"willSet"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"with"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"xor"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"xor_eq"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"YES"] isKindOfClass:NSDictionary.class]) return nil;
-        if (![dict[@"yield"] isKindOfClass:NSDictionary.class]) return nil;
-        [self setValuesForKeysWithDictionary:dict];
-        _obj5Union = [QTUnion fromJSONDictionary:(id)_obj5Union];
-        if (!_obj5Union && dict[@"union"] && ![dict[@"union"] isKindOfClass:NSNull.class]) return nil;
-        _obj5Unsigned = [QTUnsigned fromJSONDictionary:(id)_obj5Unsigned];
-        if (!_obj5Unsigned && dict[@"unsigned"] && ![dict[@"unsigned"] isKindOfClass:NSNull.class]) return nil;
-        _obj5Void = [QTVoid fromJSONDictionary:(id)_obj5Void];
-        if (!_obj5Void && dict[@"void"] && ![dict[@"void"] isKindOfClass:NSNull.class]) return nil;
-        _obj5Volatile = [QTVolatile fromJSONDictionary:(id)_obj5Volatile];
-        if (!_obj5Volatile && dict[@"volatile"] && ![dict[@"volatile"] isKindOfClass:NSNull.class]) return nil;
-        _obj5While = [QTWhile fromJSONDictionary:(id)_obj5While];
-        if (!_obj5While && dict[@"while"] && ![dict[@"while"] isKindOfClass:NSNull.class]) return nil;
-        _unowned = [QTUnowned fromJSONDictionary:(id)_unowned];
-        if (!_unowned && dict[@"unowned"] && ![dict[@"unowned"] isKindOfClass:NSNull.class]) return nil;
-        _unsafe = [QTUnsafe fromJSONDictionary:(id)_unsafe];
-        if (!_unsafe && dict[@"unsafe"] && ![dict[@"unsafe"] isKindOfClass:NSNull.class]) return nil;
-        _ushort = [QTUshort fromJSONDictionary:(id)_ushort];
-        if (!_ushort && dict[@"ushort"] && ![dict[@"ushort"] isKindOfClass:NSNull.class]) return nil;
-        _using = [QTUsing fromJSONDictionary:(id)_using];
-        if (!_using && dict[@"using"] && ![dict[@"using"] isKindOfClass:NSNull.class]) return nil;
-        _utf8JSONReader = [QTUtf8JSONReader fromJSONDictionary:(id)_utf8JSONReader];
-        if (!_utf8JSONReader && dict[@"Utf8JsonReader"] && ![dict[@"Utf8JsonReader"] isKindOfClass:NSNull.class]) return nil;
-        _utf8JSONWriter = [QTUtf8JSONWriter fromJSONDictionary:(id)_utf8JSONWriter];
-        if (!_utf8JSONWriter && dict[@"Utf8JsonWriter"] && ![dict[@"Utf8JsonWriter"] isKindOfClass:NSNull.class]) return nil;
-        _uuid = [QTUUID fromJSONDictionary:(id)_uuid];
-        if (!_uuid && dict[@"UUID"] && ![dict[@"UUID"] isKindOfClass:NSNull.class]) return nil;
-        _var = [QTVar fromJSONDictionary:(id)_var];
-        if (!_var && dict[@"var"] && ![dict[@"var"] isKindOfClass:NSNull.class]) return nil;
-        _virtual = [QTVirtual fromJSONDictionary:(id)_virtual];
-        if (!_virtual && dict[@"virtual"] && ![dict[@"virtual"] isKindOfClass:NSNull.class]) return nil;
-        _wcharT = [QTWcharT fromJSONDictionary:(id)_wcharT];
-        if (!_wcharT && dict[@"wchar_t"] && ![dict[@"wchar_t"] isKindOfClass:NSNull.class]) return nil;
-        _weak = [QTWeak fromJSONDictionary:(id)_weak];
-        if (!_weak && dict[@"weak"] && ![dict[@"weak"] isKindOfClass:NSNull.class]) return nil;
-        _where = [QTWhere fromJSONDictionary:(id)_where];
-        if (!_where && dict[@"where"] && ![dict[@"where"] isKindOfClass:NSNull.class]) return nil;
-        _willSet = [QTWillSet fromJSONDictionary:(id)_willSet];
-        if (!_willSet && dict[@"willSet"] && ![dict[@"willSet"] isKindOfClass:NSNull.class]) return nil;
-        _with = [QTWith fromJSONDictionary:(id)_with];
-        if (!_with && dict[@"with"] && ![dict[@"with"] isKindOfClass:NSNull.class]) return nil;
-        _xor = [QTXor fromJSONDictionary:(id)_xor];
-        if (!_xor && dict[@"xor"] && ![dict[@"xor"] isKindOfClass:NSNull.class]) return nil;
-        _xorEq = [QTXorEq fromJSONDictionary:(id)_xorEq];
-        if (!_xorEq && dict[@"xor_eq"] && ![dict[@"xor_eq"] isKindOfClass:NSNull.class]) return nil;
-        _yes = [QTYes fromJSONDictionary:(id)_yes];
-        if (!_yes && dict[@"YES"] && ![dict[@"YES"] isKindOfClass:NSNull.class]) return nil;
-        _yield = [QTYield fromJSONDictionary:(id)_yield];
-        if (!_yield && dict[@"yield"] && ![dict[@"yield"] isKindOfClass:NSNull.class]) return nil;
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"Type": @"type",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTType alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"Type"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"Type"] doubleValue] != [dict[@"Type"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
     return self;
 }
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObj5.properties[key];
+    id resolved = QTType.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObj5.properties[key];
+    id resolved = QTType.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTObj5.properties.allValues] mutableCopy];
+    id dict = [[self dictionaryWithValuesForKeys:QTType.properties.allValues] mutableCopy];
 
-    for (id jsonName in QTObj5.properties) {
-        id propertyName = QTObj5.properties[jsonName];
+    for (id jsonName in QTType.properties) {
+        id propertyName = QTType.properties[jsonName];
         if (![jsonName isEqualToString:propertyName]) {
             dict[jsonName] = dict[propertyName];
             [dict removeObjectForKey:propertyName];
         }
     }
 
-    [dict addEntriesFromDictionary:@{
-        @"union": [_obj5Union JSONDictionary],
-        @"unsigned": [_obj5Unsigned JSONDictionary],
-        @"void": [_obj5Void JSONDictionary],
-        @"volatile": [_obj5Volatile JSONDictionary],
-        @"while": [_obj5While JSONDictionary],
-        @"unowned": [_unowned JSONDictionary],
-        @"unsafe": [_unsafe JSONDictionary],
-        @"ushort": [_ushort JSONDictionary],
-        @"using": [_using JSONDictionary],
-        @"Utf8JsonReader": [_utf8JSONReader JSONDictionary],
-        @"Utf8JsonWriter": [_utf8JSONWriter JSONDictionary],
-        @"UUID": [_uuid JSONDictionary],
-        @"var": [_var JSONDictionary],
-        @"virtual": [_virtual JSONDictionary],
-        @"wchar_t": [_wcharT JSONDictionary],
-        @"weak": [_weak JSONDictionary],
-        @"where": [_where JSONDictionary],
-        @"willSet": [_willSet JSONDictionary],
-        @"with": [_with JSONDictionary],
-        @"xor": [_xor JSONDictionary],
-        @"xor_eq": [_xorEq JSONDictionary],
-        @"YES": [_yes JSONDictionary],
-        @"yield": [_yield JSONDictionary],
-    }];
-
     return dict;
 }
 @end
 
-@implementation QTUnion
+@implementation QTTypealias
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"union": @"unionUnion",
+        @"typealias": @"typealias",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnion alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypealias alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"union"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"union"] doubleValue] != [dict[@"union"] longLongValue]) return nil;
+        if (![dict[@"typealias"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"typealias"] doubleValue] != [dict[@"typealias"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -17207,51 +17173,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUnion.properties[key];
+    id resolved = QTTypealias.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUnion.properties[key];
+    id resolved = QTTypealias.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTUnion.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTUnion.properties) {
-        id propertyName = QTUnion.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTTypealias.properties.allValues];
 }
 @end
 
-@implementation QTUnsigned
+@implementation QTTypeid
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"unsigned": @"unsignedUnsigned",
+        @"typeid": @"typeid",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnsigned alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeid alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"unsigned"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"unsigned"] doubleValue] != [dict[@"unsigned"] longLongValue]) return nil;
+        if (![dict[@"typeid"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"typeid"] doubleValue] != [dict[@"typeid"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -17259,51 +17215,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUnsigned.properties[key];
+    id resolved = QTTypeid.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUnsigned.properties[key];
+    id resolved = QTTypeid.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTUnsigned.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTUnsigned.properties) {
-        id propertyName = QTUnsigned.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTTypeid.properties.allValues];
 }
 @end
 
-@implementation QTVoid
+@implementation QTTypename
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"void": @"voidVoid",
+        @"typename": @"typename",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTVoid alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypename alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"void"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"void"] doubleValue] != [dict[@"void"] longLongValue]) return nil;
+        if (![dict[@"typename"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"typename"] doubleValue] != [dict[@"typename"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -17311,51 +17257,41 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTVoid.properties[key];
+    id resolved = QTTypename.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTVoid.properties[key];
+    id resolved = QTTypename.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTVoid.properties.allValues] mutableCopy];
-
-    for (id jsonName in QTVoid.properties) {
-        id propertyName = QTVoid.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
-    }
-
-    return dict;
+    return [self dictionaryWithValuesForKeys:QTTypename.properties.allValues];
 }
 @end
 
-@implementation QTVolatile
+@implementation QTUint
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"volatile": @"volatileVolatile",
+        @"uint": @"uint",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTVolatile alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUint alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"volatile"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"volatile"] doubleValue] != [dict[@"volatile"] longLongValue]) return nil;
+        if (![dict[@"uint"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"uint"] doubleValue] != [dict[@"uint"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -17363,51 +17299,83 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTVolatile.properties[key];
+    id resolved = QTUint.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTVolatile.properties[key];
+    id resolved = QTUint.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTVolatile.properties.allValues] mutableCopy];
+    return [self dictionaryWithValuesForKeys:QTUint.properties.allValues];
+}
+@end
 
-    for (id jsonName in QTVolatile.properties) {
-        id propertyName = QTVolatile.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
+@implementation QTUlong
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"ulong": @"ulong",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUlong alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"ulong"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"ulong"] doubleValue] != [dict[@"ulong"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
+    return self;
+}
 
-    return dict;
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUlong.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUlong.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUlong.properties.allValues];
 }
 @end
 
-@implementation QTWhile
+@implementation QTUnchecked
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
     return properties = properties ? properties : @{
-        @"while": @"whileWhile",
+        @"unchecked": @"unchecked",
     };
 }
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTWhile alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnchecked alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (![dict[@"while"] isKindOfClass:NSNumber.class]) return nil;
-        if ([dict[@"while"] doubleValue] != [dict[@"while"] longLongValue]) return nil;
+        if (![dict[@"unchecked"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"unchecked"] doubleValue] != [dict[@"unchecked"] longLongValue]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
     return self;
@@ -17415,29 +17383,61 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTWhile.properties[key];
+    id resolved = QTUnchecked.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTWhile.properties[key];
+    id resolved = QTUnchecked.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    id dict = [[self dictionaryWithValuesForKeys:QTWhile.properties.allValues] mutableCopy];
+    return [self dictionaryWithValuesForKeys:QTUnchecked.properties.allValues];
+}
+@end
 
-    for (id jsonName in QTWhile.properties) {
-        id propertyName = QTWhile.properties[jsonName];
-        if (![jsonName isEqualToString:propertyName]) {
-            dict[jsonName] = dict[propertyName];
-            [dict removeObjectForKey:propertyName];
-        }
+@implementation QTUndefined
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+        @"undefined": @"undefined",
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUndefined alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        if (![dict[@"undefined"] isKindOfClass:NSNumber.class]) return nil;
+        if ([dict[@"undefined"] doubleValue] != [dict[@"undefined"] longLongValue]) return nil;
+        [self setValuesForKeysWithDictionary:dict];
     }
+    return self;
+}
 
-    return dict;
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUndefined.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUndefined.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUndefined.properties.allValues];
 }
 @end
 
diff --git a/base/php/test/inputs/json/priority/keywords.json/default/TopLevel.php b/head/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
index 06768aa..aa9e18f 100644
--- a/base/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
@@ -453,13 +453,6 @@ class Obj1 {
     private DateOnly $dateOnly; // json:DateOnly Required
     private DateOnlyConverter $dateOnlyConverter; // json:DateOnlyConverter Required
     private DateParseHandling $dateParseHandling; // json:date_parse_handling Required
-    private DateTimeClass $dateTime; // json:DateTime Required
-    private DateTimeStyles $dateTimeStyles; // json:DateTimeStyles Required
-    private Debugger $debugger; // json:debugger Required
-    private Decimal $decimal; // json:decimal Required
-    private DeclareClass $declare; // json:declare Required
-    private Decltype $decltype; // json:decltype Required
-    private DecodeString $decodeString; // json:decode_string Required
     private int $dummy; // json:dummy Required
     private Purple $empty; // json:_ Required
     private Imaginery $imaginery; // json:_Imaginery Required
@@ -527,13 +520,6 @@ class Obj1 {
      * @param DateOnly $dateOnly
      * @param DateOnlyConverter $dateOnlyConverter
      * @param DateParseHandling $dateParseHandling
-     * @param DateTimeClass $dateTime
-     * @param DateTimeStyles $dateTimeStyles
-     * @param Debugger $debugger
-     * @param Decimal $decimal
-     * @param DeclareClass $declare
-     * @param Decltype $decltype
-     * @param DecodeString $decodeString
      * @param int $dummy
      * @param Purple $empty
      * @param Imaginery $imaginery
@@ -542,7 +528,7 @@ class Obj1 {
      * @param Obj1Class $obj1Class
      * @param Obj1BoolClass $purpleBool
      */
-    public function __construct(AbstractClass $abstract, Alignas $alignas, Alignof $alignof, AndClass $and, AndEq $andEq, Any $any, ArrayClass $array, AsClass $as, ASM $asm, Assert $assert, Associatedtype $associatedtype, Associativity $associativity, Async $async, Atomic $atomic, AtomicCancel $atomicCancel, AtomicCommit $atomicCommit, AtomicNoexcept $atomicNoexcept, Auto $auto, Await $await, Base $base, Bitand $bitand, Bitor $bitor, BOOLClass $bool, Boolean $boolean, BreakClass $break, Bycopy $bycopy, Byref $byref, Byte $byte, CaseClass $case, CatchClass $catch, Chan $chan, Char $char, Char16T $char16T, Char32T $char32T, Checked $checked, ClassClass $class, CloneClass $clone, CoAwait $coAwait, CoReturn $coReturn, CoYield $coYield, Compl $compl, Complex $complex, Concept $concept, Console $console, ConstClass $const, ConstCast $constCast, Constexpr $constexpr, Constructor $constructor, ContinueClass $continue, Convenience $convenience, Convert $convert, ConverterClass $converter, CultureInfo $cultureInfo, Date $date, DateFormatter $dateFormatter, DateOnly $dateOnly, DateOnlyConverter $dateOnlyConverter, DateParseHandling $dateParseHandling, DateTimeClass $dateTime, DateTimeStyles $dateTimeStyles, Debugger $debugger, Decimal $decimal, DeclareClass $declare, Decltype $decltype, DecodeString $decodeString, int $dummy, Purple $empty, Imaginery $imaginery, AnyClass $obj1Any, Obj1Bool $obj1Bool, Obj1Class $obj1Class, Obj1BoolClass $purpleBool) {
+    public function __construct(AbstractClass $abstract, Alignas $alignas, Alignof $alignof, AndClass $and, AndEq $andEq, Any $any, ArrayClass $array, AsClass $as, ASM $asm, Assert $assert, Associatedtype $associatedtype, Associativity $associativity, Async $async, Atomic $atomic, AtomicCancel $atomicCancel, AtomicCommit $atomicCommit, AtomicNoexcept $atomicNoexcept, Auto $auto, Await $await, Base $base, Bitand $bitand, Bitor $bitor, BOOLClass $bool, Boolean $boolean, BreakClass $break, Bycopy $bycopy, Byref $byref, Byte $byte, CaseClass $case, CatchClass $catch, Chan $chan, Char $char, Char16T $char16T, Char32T $char32T, Checked $checked, ClassClass $class, CloneClass $clone, CoAwait $coAwait, CoReturn $coReturn, CoYield $coYield, Compl $compl, Complex $complex, Concept $concept, Console $console, ConstClass $const, ConstCast $constCast, Constexpr $constexpr, Constructor $constructor, ContinueClass $continue, Convenience $convenience, Convert $convert, ConverterClass $converter, CultureInfo $cultureInfo, Date $date, DateFormatter $dateFormatter, DateOnly $dateOnly, DateOnlyConverter $dateOnlyConverter, DateParseHandling $dateParseHandling, int $dummy, Purple $empty, Imaginery $imaginery, AnyClass $obj1Any, Obj1Bool $obj1Bool, Obj1Class $obj1Class, Obj1BoolClass $purpleBool) {
         $this->abstract = $abstract;
         $this->alignas = $alignas;
         $this->alignof = $alignof;
@@ -601,13 +587,6 @@ class Obj1 {
         $this->dateOnly = $dateOnly;
         $this->dateOnlyConverter = $dateOnlyConverter;
         $this->dateParseHandling = $dateParseHandling;
-        $this->dateTime = $dateTime;
-        $this->dateTimeStyles = $dateTimeStyles;
-        $this->debugger = $debugger;
-        $this->decimal = $decimal;
-        $this->declare = $declare;
-        $this->decltype = $decltype;
-        $this->decodeString = $decodeString;
         $this->dummy = $dummy;
         $this->empty = $empty;
         $this->imaginery = $imaginery;
@@ -3401,342 +3380,6 @@ class Obj1 {
         return DateParseHandling::sample(); /*88:dateParseHandling*/
     }
 
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return DateTimeClass
-     */
-    public static function fromDateTime(stdClass $value): DateTimeClass {
-        return DateTimeClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDateTime(): stdClass {
-        if (Obj1::validateDateTime($this->dateTime))  {
-            return $this->dateTime->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::dateTime');
-    }
-
-    /**
-     * @param DateTimeClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDateTime(DateTimeClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return DateTimeClass
-     */
-    public function getDateTime(): DateTimeClass {
-        if (Obj1::validateDateTime($this->dateTime))  {
-            return $this->dateTime;
-        }
-        throw new Exception('never get to getDateTime Obj1::dateTime');
-    }
-
-    /**
-     * @return DateTimeClass
-     */
-    public static function sampleDateTime(): DateTimeClass {
-        return DateTimeClass::sample(); /*89:dateTime*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return DateTimeStyles
-     */
-    public static function fromDateTimeStyles(stdClass $value): DateTimeStyles {
-        return DateTimeStyles::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDateTimeStyles(): stdClass {
-        if (Obj1::validateDateTimeStyles($this->dateTimeStyles))  {
-            return $this->dateTimeStyles->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::dateTimeStyles');
-    }
-
-    /**
-     * @param DateTimeStyles
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDateTimeStyles(DateTimeStyles $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return DateTimeStyles
-     */
-    public function getDateTimeStyles(): DateTimeStyles {
-        if (Obj1::validateDateTimeStyles($this->dateTimeStyles))  {
-            return $this->dateTimeStyles;
-        }
-        throw new Exception('never get to getDateTimeStyles Obj1::dateTimeStyles');
-    }
-
-    /**
-     * @return DateTimeStyles
-     */
-    public static function sampleDateTimeStyles(): DateTimeStyles {
-        return DateTimeStyles::sample(); /*90:dateTimeStyles*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Debugger
-     */
-    public static function fromDebugger(stdClass $value): Debugger {
-        return Debugger::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDebugger(): stdClass {
-        if (Obj1::validateDebugger($this->debugger))  {
-            return $this->debugger->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::debugger');
-    }
-
-    /**
-     * @param Debugger
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDebugger(Debugger $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Debugger
-     */
-    public function getDebugger(): Debugger {
-        if (Obj1::validateDebugger($this->debugger))  {
-            return $this->debugger;
-        }
-        throw new Exception('never get to getDebugger Obj1::debugger');
-    }
-
-    /**
-     * @return Debugger
-     */
-    public static function sampleDebugger(): Debugger {
-        return Debugger::sample(); /*91:debugger*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Decimal
-     */
-    public static function fromDecimal(stdClass $value): Decimal {
-        return Decimal::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDecimal(): stdClass {
-        if (Obj1::validateDecimal($this->decimal))  {
-            return $this->decimal->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::decimal');
-    }
-
-    /**
-     * @param Decimal
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDecimal(Decimal $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Decimal
-     */
-    public function getDecimal(): Decimal {
-        if (Obj1::validateDecimal($this->decimal))  {
-            return $this->decimal;
-        }
-        throw new Exception('never get to getDecimal Obj1::decimal');
-    }
-
-    /**
-     * @return Decimal
-     */
-    public static function sampleDecimal(): Decimal {
-        return Decimal::sample(); /*92:decimal*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return DeclareClass
-     */
-    public static function fromDeclare(stdClass $value): DeclareClass {
-        return DeclareClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDeclare(): stdClass {
-        if (Obj1::validateDeclare($this->declare))  {
-            return $this->declare->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::declare');
-    }
-
-    /**
-     * @param DeclareClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDeclare(DeclareClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return DeclareClass
-     */
-    public function getDeclare(): DeclareClass {
-        if (Obj1::validateDeclare($this->declare))  {
-            return $this->declare;
-        }
-        throw new Exception('never get to getDeclare Obj1::declare');
-    }
-
-    /**
-     * @return DeclareClass
-     */
-    public static function sampleDeclare(): DeclareClass {
-        return DeclareClass::sample(); /*93:declare*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Decltype
-     */
-    public static function fromDecltype(stdClass $value): Decltype {
-        return Decltype::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDecltype(): stdClass {
-        if (Obj1::validateDecltype($this->decltype))  {
-            return $this->decltype->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::decltype');
-    }
-
-    /**
-     * @param Decltype
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDecltype(Decltype $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Decltype
-     */
-    public function getDecltype(): Decltype {
-        if (Obj1::validateDecltype($this->decltype))  {
-            return $this->decltype;
-        }
-        throw new Exception('never get to getDecltype Obj1::decltype');
-    }
-
-    /**
-     * @return Decltype
-     */
-    public static function sampleDecltype(): Decltype {
-        return Decltype::sample(); /*94:decltype*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return DecodeString
-     */
-    public static function fromDecodeString(stdClass $value): DecodeString {
-        return DecodeString::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDecodeString(): stdClass {
-        if (Obj1::validateDecodeString($this->decodeString))  {
-            return $this->decodeString->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj1::decodeString');
-    }
-
-    /**
-     * @param DecodeString
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDecodeString(DecodeString $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return DecodeString
-     */
-    public function getDecodeString(): DecodeString {
-        if (Obj1::validateDecodeString($this->decodeString))  {
-            return $this->decodeString;
-        }
-        throw new Exception('never get to getDecodeString Obj1::decodeString');
-    }
-
-    /**
-     * @return DecodeString
-     */
-    public static function sampleDecodeString(): DecodeString {
-        return DecodeString::sample(); /*95:decodeString*/
-    }
-
     /**
      * @param int $value
      * @throws Exception
@@ -3781,7 +3424,7 @@ class Obj1 {
      * @return int
      */
     public static function sampleDummy(): int {
-        return 96; /*96:dummy*/
+        return 89; /*89:dummy*/
     }
 
     /**
@@ -3829,7 +3472,7 @@ class Obj1 {
      * @return Purple
      */
     public static function sampleEmpty(): Purple {
-        return Purple::sample(); /*97:empty*/
+        return Purple::sample(); /*90:empty*/
     }
 
     /**
@@ -3877,7 +3520,7 @@ class Obj1 {
      * @return Imaginery
      */
     public static function sampleImaginery(): Imaginery {
-        return Imaginery::sample(); /*98:imaginery*/
+        return Imaginery::sample(); /*91:imaginery*/
     }
 
     /**
@@ -3925,7 +3568,7 @@ class Obj1 {
      * @return AnyClass
      */
     public static function sampleObj1Any(): AnyClass {
-        return AnyClass::sample(); /*99:obj1Any*/
+        return AnyClass::sample(); /*92:obj1Any*/
     }
 
     /**
@@ -3973,7 +3616,7 @@ class Obj1 {
      * @return Obj1Bool
      */
     public static function sampleObj1Bool(): Obj1Bool {
-        return Obj1Bool::sample(); /*100:obj1Bool*/
+        return Obj1Bool::sample(); /*93:obj1Bool*/
     }
 
     /**
@@ -4021,7 +3664,7 @@ class Obj1 {
      * @return Obj1Class
      */
     public static function sampleObj1Class(): Obj1Class {
-        return Obj1Class::sample(); /*101:obj1Class*/
+        return Obj1Class::sample(); /*94:obj1Class*/
     }
 
     /**
@@ -4069,7 +3712,7 @@ class Obj1 {
      * @return Obj1BoolClass
      */
     public static function samplePurpleBool(): Obj1BoolClass {
-        return Obj1BoolClass::sample(); /*102:purpleBool*/
+        return Obj1BoolClass::sample(); /*95:purpleBool*/
     }
 
     /**
@@ -4135,13 +3778,6 @@ class Obj1 {
         || Obj1::validateDateOnly($this->dateOnly)
         || Obj1::validateDateOnlyConverter($this->dateOnlyConverter)
         || Obj1::validateDateParseHandling($this->dateParseHandling)
-        || Obj1::validateDateTime($this->dateTime)
-        || Obj1::validateDateTimeStyles($this->dateTimeStyles)
-        || Obj1::validateDebugger($this->debugger)
-        || Obj1::validateDecimal($this->decimal)
-        || Obj1::validateDeclare($this->declare)
-        || Obj1::validateDecltype($this->decltype)
-        || Obj1::validateDecodeString($this->decodeString)
         || Obj1::validateDummy($this->dummy)
         || Obj1::validateEmpty($this->empty)
         || Obj1::validateImaginery($this->imaginery)
@@ -4215,13 +3851,6 @@ class Obj1 {
         $out->{'DateOnly'} = $this->toDateOnly();
         $out->{'DateOnlyConverter'} = $this->toDateOnlyConverter();
         $out->{'date_parse_handling'} = $this->toDateParseHandling();
-        $out->{'DateTime'} = $this->toDateTime();
-        $out->{'DateTimeStyles'} = $this->toDateTimeStyles();
-        $out->{'debugger'} = $this->toDebugger();
-        $out->{'decimal'} = $this->toDecimal();
-        $out->{'declare'} = $this->toDeclare();
-        $out->{'decltype'} = $this->toDecltype();
-        $out->{'decode_string'} = $this->toDecodeString();
         $out->{'dummy'} = $this->toDummy();
         $out->{'_'} = $this->toEmpty();
         $out->{'_Imaginery'} = $this->toImaginery();
@@ -4412,27 +4041,6 @@ class Obj1 {
         if (!property_exists($obj, 'date_parse_handling')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'DateTime')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'DateTimeStyles')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'debugger')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'decimal')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'declare')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'decltype')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'decode_string')) {
-            throw new Exception("Missing required property");
-        }
         if (!property_exists($obj, 'dummy')) {
             throw new Exception("Missing required property");
         }
@@ -4513,13 +4121,6 @@ class Obj1 {
         ,Obj1::fromDateOnly($obj->{'DateOnly'})
         ,Obj1::fromDateOnlyConverter($obj->{'DateOnlyConverter'})
         ,Obj1::fromDateParseHandling($obj->{'date_parse_handling'})
-        ,Obj1::fromDateTime($obj->{'DateTime'})
-        ,Obj1::fromDateTimeStyles($obj->{'DateTimeStyles'})
-        ,Obj1::fromDebugger($obj->{'debugger'})
-        ,Obj1::fromDecimal($obj->{'decimal'})
-        ,Obj1::fromDeclare($obj->{'declare'})
-        ,Obj1::fromDecltype($obj->{'decltype'})
-        ,Obj1::fromDecodeString($obj->{'decode_string'})
         ,Obj1::fromDummy($obj->{'dummy'})
         ,Obj1::fromEmpty($obj->{'_'})
         ,Obj1::fromImaginery($obj->{'_Imaginery'})
@@ -4593,13 +4194,6 @@ class Obj1 {
         ,Obj1::sampleDateOnly()
         ,Obj1::sampleDateOnlyConverter()
         ,Obj1::sampleDateParseHandling()
-        ,Obj1::sampleDateTime()
-        ,Obj1::sampleDateTimeStyles()
-        ,Obj1::sampleDebugger()
-        ,Obj1::sampleDecimal()
-        ,Obj1::sampleDeclare()
-        ,Obj1::sampleDecltype()
-        ,Obj1::sampleDecodeString()
         ,Obj1::sampleDummy()
         ,Obj1::sampleEmpty()
         ,Obj1::sampleImaginery()
@@ -10469,124 +10063,16 @@ class DateParseHandling {
     }
 }
 
-// This is an autogenerated file:DateTimeClass
-
-class DateTimeClass {
-    private DateTime $dateTime; // json:DateTime Required
-
-    /**
-     * @param DateTime $dateTime
-     */
-    public function __construct(DateTime $dateTime) {
-        $this->dateTime = $dateTime;
-    }
-
-    /**
-     * @param string $value
-     * @throws Exception
-     * @return DateTime
-     */
-    public static function fromDateTime(string $value): DateTime {
-        $tmp = new DateTime($value);
-        if (!is_a($tmp, 'DateTime')) {
-            throw new Exception('Attribute Error:DateTimeClass::');
-        }
-        return $tmp;
-    }
-
-    /**
-     * @throws Exception
-     * @return string
-     */
-    public function toDateTime(): string {
-        if (DateTimeClass::validateDateTime($this->dateTime))  {
-            return $this->dateTime->format("Y-m-d\\TH:i:s.uP");
-        }
-        throw new Exception('never get to this DateTimeClass::dateTime');
-    }
-
-    /**
-     * @param DateTime
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateDateTime(DateTime $value): bool {
-        if (!is_a($value, 'DateTime')) {
-            throw new Exception('Attribute Error:DateTimeClass::dateTime');
-        }
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return DateTime
-     */
-    public function getDateTime(): DateTime {
-        if (DateTimeClass::validateDateTime($this->dateTime))  {
-            return $this->dateTime;
-        }
-        throw new Exception('never get to getDateTime DateTimeClass::dateTime');
-    }
-
-    /**
-     * @return DateTime
-     */
-    public static function sampleDateTime(): DateTime {
-        return DateTime::createFromFormat(DateTimeInterface::ISO8601, '2020-12-10T12:10:10+00:00');
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return DateTimeClass::validateDateTime($this->dateTime);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'DateTime'} = $this->toDateTime();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return DateTimeClass
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): DateTimeClass {
-        if (!property_exists($obj, 'DateTime')) {
-            throw new Exception("Missing required property");
-        }
-        return new DateTimeClass(
-         DateTimeClass::fromDateTime($obj->{'DateTime'})
-        );
-    }
-
-    /**
-     * @return DateTimeClass
-     */
-    public static function sample(): DateTimeClass {
-        return new DateTimeClass(
-         DateTimeClass::sampleDateTime()
-        );
-    }
-}
-
-// This is an autogenerated file:DateTimeStyles
+// This is an autogenerated file:Purple
 
-class DateTimeStyles {
-    private int $dateTimeStyles; // json:DateTimeStyles Required
+class Purple {
+    private int $empty; // json:_ Required
 
     /**
-     * @param int $dateTimeStyles
+     * @param int $empty
      */
-    public function __construct(int $dateTimeStyles) {
-        $this->dateTimeStyles = $dateTimeStyles;
+    public function __construct(int $empty) {
+        $this->empty = $empty;
     }
 
     /**
@@ -10594,7 +10080,7 @@ class DateTimeStyles {
      * @throws Exception
      * @return int
      */
-    public static function fromDateTimeStyles(int $value): int {
+    public static function fromEmpty(int $value): int {
         return $value; /*int*/
     }
 
@@ -10602,11 +10088,11 @@ class DateTimeStyles {
      * @throws Exception
      * @return int
      */
-    public function toDateTimeStyles(): int {
-        if (DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles))  {
-            return $this->dateTimeStyles; /*int*/
+    public function toEmpty(): int {
+        if (Purple::validateEmpty($this->empty))  {
+            return $this->empty; /*int*/
         }
-        throw new Exception('never get to this DateTimeStyles::dateTimeStyles');
+        throw new Exception('never get to this Purple::empty');
     }
 
     /**
@@ -10614,7 +10100,7 @@ class DateTimeStyles {
      * @return bool
      * @throws Exception
      */
-    public static function validateDateTimeStyles(int $value): bool {
+    public static function validateEmpty(int $value): bool {
         return true;
     }
 
@@ -10622,18 +10108,18 @@ class DateTimeStyles {
      * @throws Exception
      * @return int
      */
-    public function getDateTimeStyles(): int {
-        if (DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles))  {
-            return $this->dateTimeStyles;
+    public function getEmpty(): int {
+        if (Purple::validateEmpty($this->empty))  {
+            return $this->empty;
         }
-        throw new Exception('never get to getDateTimeStyles DateTimeStyles::dateTimeStyles');
+        throw new Exception('never get to getEmpty Purple::empty');
     }
 
     /**
      * @return int
      */
-    public static function sampleDateTimeStyles(): int {
-        return 31; /*31:dateTimeStyles*/
+    public static function sampleEmpty(): int {
+        return 31; /*31:empty*/
     }
 
     /**
@@ -10641,7 +10127,7 @@ class DateTimeStyles {
      * @return bool
      */
     public function validate(): bool {
-        return DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles);
+        return Purple::validateEmpty($this->empty);
     }
 
     /**
@@ -10650,44 +10136,44 @@ class DateTimeStyles {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'DateTimeStyles'} = $this->toDateTimeStyles();
+        $out->{'_'} = $this->toEmpty();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DateTimeStyles
+     * @return Purple
      * @throws Exception
      */
-    public static function from(stdClass $obj): DateTimeStyles {
-        if (!property_exists($obj, 'DateTimeStyles')) {
+    public static function from(stdClass $obj): Purple {
+        if (!property_exists($obj, '_')) {
             throw new Exception("Missing required property");
         }
-        return new DateTimeStyles(
-         DateTimeStyles::fromDateTimeStyles($obj->{'DateTimeStyles'})
+        return new Purple(
+         Purple::fromEmpty($obj->{'_'})
         );
     }
 
     /**
-     * @return DateTimeStyles
+     * @return Purple
      */
-    public static function sample(): DateTimeStyles {
-        return new DateTimeStyles(
-         DateTimeStyles::sampleDateTimeStyles()
+    public static function sample(): Purple {
+        return new Purple(
+         Purple::sampleEmpty()
         );
     }
 }
 
-// This is an autogenerated file:Debugger
+// This is an autogenerated file:Imaginery
 
-class Debugger {
-    private int $debugger; // json:debugger Required
+class Imaginery {
+    private int $imaginery; // json:_Imaginery Required
 
     /**
-     * @param int $debugger
+     * @param int $imaginery
      */
-    public function __construct(int $debugger) {
-        $this->debugger = $debugger;
+    public function __construct(int $imaginery) {
+        $this->imaginery = $imaginery;
     }
 
     /**
@@ -10695,7 +10181,7 @@ class Debugger {
      * @throws Exception
      * @return int
      */
-    public static function fromDebugger(int $value): int {
+    public static function fromImaginery(int $value): int {
         return $value; /*int*/
     }
 
@@ -10703,11 +10189,11 @@ class Debugger {
      * @throws Exception
      * @return int
      */
-    public function toDebugger(): int {
-        if (Debugger::validateDebugger($this->debugger))  {
-            return $this->debugger; /*int*/
+    public function toImaginery(): int {
+        if (Imaginery::validateImaginery($this->imaginery))  {
+            return $this->imaginery; /*int*/
         }
-        throw new Exception('never get to this Debugger::debugger');
+        throw new Exception('never get to this Imaginery::imaginery');
     }
 
     /**
@@ -10715,7 +10201,7 @@ class Debugger {
      * @return bool
      * @throws Exception
      */
-    public static function validateDebugger(int $value): bool {
+    public static function validateImaginery(int $value): bool {
         return true;
     }
 
@@ -10723,18 +10209,18 @@ class Debugger {
      * @throws Exception
      * @return int
      */
-    public function getDebugger(): int {
-        if (Debugger::validateDebugger($this->debugger))  {
-            return $this->debugger;
+    public function getImaginery(): int {
+        if (Imaginery::validateImaginery($this->imaginery))  {
+            return $this->imaginery;
         }
-        throw new Exception('never get to getDebugger Debugger::debugger');
+        throw new Exception('never get to getImaginery Imaginery::imaginery');
     }
 
     /**
      * @return int
      */
-    public static function sampleDebugger(): int {
-        return 31; /*31:debugger*/
+    public static function sampleImaginery(): int {
+        return 31; /*31:imaginery*/
     }
 
     /**
@@ -10742,7 +10228,7 @@ class Debugger {
      * @return bool
      */
     public function validate(): bool {
-        return Debugger::validateDebugger($this->debugger);
+        return Imaginery::validateImaginery($this->imaginery);
     }
 
     /**
@@ -10751,44 +10237,44 @@ class Debugger {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'debugger'} = $this->toDebugger();
+        $out->{'_Imaginery'} = $this->toImaginery();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Debugger
+     * @return Imaginery
      * @throws Exception
      */
-    public static function from(stdClass $obj): Debugger {
-        if (!property_exists($obj, 'debugger')) {
+    public static function from(stdClass $obj): Imaginery {
+        if (!property_exists($obj, '_Imaginery')) {
             throw new Exception("Missing required property");
         }
-        return new Debugger(
-         Debugger::fromDebugger($obj->{'debugger'})
+        return new Imaginery(
+         Imaginery::fromImaginery($obj->{'_Imaginery'})
         );
     }
 
     /**
-     * @return Debugger
+     * @return Imaginery
      */
-    public static function sample(): Debugger {
-        return new Debugger(
-         Debugger::sampleDebugger()
+    public static function sample(): Imaginery {
+        return new Imaginery(
+         Imaginery::sampleImaginery()
         );
     }
 }
 
-// This is an autogenerated file:Decimal
+// This is an autogenerated file:AnyClass
 
-class Decimal {
-    private int $decimal; // json:decimal Required
+class AnyClass {
+    private int $any; // json:any Required
 
     /**
-     * @param int $decimal
+     * @param int $any
      */
-    public function __construct(int $decimal) {
-        $this->decimal = $decimal;
+    public function __construct(int $any) {
+        $this->any = $any;
     }
 
     /**
@@ -10796,7 +10282,7 @@ class Decimal {
      * @throws Exception
      * @return int
      */
-    public static function fromDecimal(int $value): int {
+    public static function fromAny(int $value): int {
         return $value; /*int*/
     }
 
@@ -10804,11 +10290,11 @@ class Decimal {
      * @throws Exception
      * @return int
      */
-    public function toDecimal(): int {
-        if (Decimal::validateDecimal($this->decimal))  {
-            return $this->decimal; /*int*/
+    public function toAny(): int {
+        if (AnyClass::validateAny($this->any))  {
+            return $this->any; /*int*/
         }
-        throw new Exception('never get to this Decimal::decimal');
+        throw new Exception('never get to this AnyClass::any');
     }
 
     /**
@@ -10816,7 +10302,7 @@ class Decimal {
      * @return bool
      * @throws Exception
      */
-    public static function validateDecimal(int $value): bool {
+    public static function validateAny(int $value): bool {
         return true;
     }
 
@@ -10824,18 +10310,18 @@ class Decimal {
      * @throws Exception
      * @return int
      */
-    public function getDecimal(): int {
-        if (Decimal::validateDecimal($this->decimal))  {
-            return $this->decimal;
+    public function getAny(): int {
+        if (AnyClass::validateAny($this->any))  {
+            return $this->any;
         }
-        throw new Exception('never get to getDecimal Decimal::decimal');
+        throw new Exception('never get to getAny AnyClass::any');
     }
 
     /**
      * @return int
      */
-    public static function sampleDecimal(): int {
-        return 31; /*31:decimal*/
+    public static function sampleAny(): int {
+        return 31; /*31:any*/
     }
 
     /**
@@ -10843,7 +10329,7 @@ class Decimal {
      * @return bool
      */
     public function validate(): bool {
-        return Decimal::validateDecimal($this->decimal);
+        return AnyClass::validateAny($this->any);
     }
 
     /**
@@ -10852,44 +10338,44 @@ class Decimal {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'decimal'} = $this->toDecimal();
+        $out->{'any'} = $this->toAny();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Decimal
+     * @return AnyClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Decimal {
-        if (!property_exists($obj, 'decimal')) {
+    public static function from(stdClass $obj): AnyClass {
+        if (!property_exists($obj, 'any')) {
             throw new Exception("Missing required property");
         }
-        return new Decimal(
-         Decimal::fromDecimal($obj->{'decimal'})
+        return new AnyClass(
+         AnyClass::fromAny($obj->{'any'})
         );
     }
 
     /**
-     * @return Decimal
+     * @return AnyClass
      */
-    public static function sample(): Decimal {
-        return new Decimal(
-         Decimal::sampleDecimal()
+    public static function sample(): AnyClass {
+        return new AnyClass(
+         AnyClass::sampleAny()
         );
     }
 }
 
-// This is an autogenerated file:DeclareClass
+// This is an autogenerated file:Obj1Bool
 
-class DeclareClass {
-    private int $declare; // json:declare Required
+class Obj1Bool {
+    private int $bool; // json:_Bool Required
 
     /**
-     * @param int $declare
+     * @param int $bool
      */
-    public function __construct(int $declare) {
-        $this->declare = $declare;
+    public function __construct(int $bool) {
+        $this->bool = $bool;
     }
 
     /**
@@ -10897,7 +10383,7 @@ class DeclareClass {
      * @throws Exception
      * @return int
      */
-    public static function fromDeclare(int $value): int {
+    public static function fromBool(int $value): int {
         return $value; /*int*/
     }
 
@@ -10905,11 +10391,11 @@ class DeclareClass {
      * @throws Exception
      * @return int
      */
-    public function toDeclare(): int {
-        if (DeclareClass::validateDeclare($this->declare))  {
-            return $this->declare; /*int*/
+    public function toBool(): int {
+        if (Obj1Bool::validateBool($this->bool))  {
+            return $this->bool; /*int*/
         }
-        throw new Exception('never get to this DeclareClass::declare');
+        throw new Exception('never get to this Obj1Bool::bool');
     }
 
     /**
@@ -10917,7 +10403,7 @@ class DeclareClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateDeclare(int $value): bool {
+    public static function validateBool(int $value): bool {
         return true;
     }
 
@@ -10925,18 +10411,18 @@ class DeclareClass {
      * @throws Exception
      * @return int
      */
-    public function getDeclare(): int {
-        if (DeclareClass::validateDeclare($this->declare))  {
-            return $this->declare;
+    public function getBool(): int {
+        if (Obj1Bool::validateBool($this->bool))  {
+            return $this->bool;
         }
-        throw new Exception('never get to getDeclare DeclareClass::declare');
+        throw new Exception('never get to getBool Obj1Bool::bool');
     }
 
     /**
      * @return int
      */
-    public static function sampleDeclare(): int {
-        return 31; /*31:declare*/
+    public static function sampleBool(): int {
+        return 31; /*31:bool*/
     }
 
     /**
@@ -10944,7 +10430,7 @@ class DeclareClass {
      * @return bool
      */
     public function validate(): bool {
-        return DeclareClass::validateDeclare($this->declare);
+        return Obj1Bool::validateBool($this->bool);
     }
 
     /**
@@ -10953,44 +10439,44 @@ class DeclareClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'declare'} = $this->toDeclare();
+        $out->{'_Bool'} = $this->toBool();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DeclareClass
+     * @return Obj1Bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): DeclareClass {
-        if (!property_exists($obj, 'declare')) {
+    public static function from(stdClass $obj): Obj1Bool {
+        if (!property_exists($obj, '_Bool')) {
             throw new Exception("Missing required property");
         }
-        return new DeclareClass(
-         DeclareClass::fromDeclare($obj->{'declare'})
+        return new Obj1Bool(
+         Obj1Bool::fromBool($obj->{'_Bool'})
         );
     }
 
     /**
-     * @return DeclareClass
+     * @return Obj1Bool
      */
-    public static function sample(): DeclareClass {
-        return new DeclareClass(
-         DeclareClass::sampleDeclare()
+    public static function sample(): Obj1Bool {
+        return new Obj1Bool(
+         Obj1Bool::sampleBool()
         );
     }
 }
 
-// This is an autogenerated file:Decltype
+// This is an autogenerated file:Obj1Class
 
-class Decltype {
-    private int $decltype; // json:decltype Required
+class Obj1Class {
+    private int $class; // json:class Required
 
     /**
-     * @param int $decltype
+     * @param int $class
      */
-    public function __construct(int $decltype) {
-        $this->decltype = $decltype;
+    public function __construct(int $class) {
+        $this->class = $class;
     }
 
     /**
@@ -10998,7 +10484,7 @@ class Decltype {
      * @throws Exception
      * @return int
      */
-    public static function fromDecltype(int $value): int {
+    public static function fromClass(int $value): int {
         return $value; /*int*/
     }
 
@@ -11006,11 +10492,11 @@ class Decltype {
      * @throws Exception
      * @return int
      */
-    public function toDecltype(): int {
-        if (Decltype::validateDecltype($this->decltype))  {
-            return $this->decltype; /*int*/
+    public function toClass(): int {
+        if (Obj1Class::validateClass($this->class))  {
+            return $this->class; /*int*/
         }
-        throw new Exception('never get to this Decltype::decltype');
+        throw new Exception('never get to this Obj1Class::class');
     }
 
     /**
@@ -11018,7 +10504,7 @@ class Decltype {
      * @return bool
      * @throws Exception
      */
-    public static function validateDecltype(int $value): bool {
+    public static function validateClass(int $value): bool {
         return true;
     }
 
@@ -11026,18 +10512,18 @@ class Decltype {
      * @throws Exception
      * @return int
      */
-    public function getDecltype(): int {
-        if (Decltype::validateDecltype($this->decltype))  {
-            return $this->decltype;
+    public function getClass(): int {
+        if (Obj1Class::validateClass($this->class))  {
+            return $this->class;
         }
-        throw new Exception('never get to getDecltype Decltype::decltype');
+        throw new Exception('never get to getClass Obj1Class::class');
     }
 
     /**
      * @return int
      */
-    public static function sampleDecltype(): int {
-        return 31; /*31:decltype*/
+    public static function sampleClass(): int {
+        return 31; /*31:class*/
     }
 
     /**
@@ -11045,7 +10531,7 @@ class Decltype {
      * @return bool
      */
     public function validate(): bool {
-        return Decltype::validateDecltype($this->decltype);
+        return Obj1Class::validateClass($this->class);
     }
 
     /**
@@ -11054,44 +10540,44 @@ class Decltype {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'decltype'} = $this->toDecltype();
+        $out->{'class'} = $this->toClass();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Decltype
+     * @return Obj1Class
      * @throws Exception
      */
-    public static function from(stdClass $obj): Decltype {
-        if (!property_exists($obj, 'decltype')) {
+    public static function from(stdClass $obj): Obj1Class {
+        if (!property_exists($obj, 'class')) {
             throw new Exception("Missing required property");
         }
-        return new Decltype(
-         Decltype::fromDecltype($obj->{'decltype'})
+        return new Obj1Class(
+         Obj1Class::fromClass($obj->{'class'})
         );
     }
 
     /**
-     * @return Decltype
+     * @return Obj1Class
      */
-    public static function sample(): Decltype {
-        return new Decltype(
-         Decltype::sampleDecltype()
+    public static function sample(): Obj1Class {
+        return new Obj1Class(
+         Obj1Class::sampleClass()
         );
     }
 }
 
-// This is an autogenerated file:DecodeString
+// This is an autogenerated file:Obj1BoolClass
 
-class DecodeString {
-    private int $decodeString; // json:decode_string Required
+class Obj1BoolClass {
+    private int $bool; // json:bool Required
 
     /**
-     * @param int $decodeString
+     * @param int $bool
      */
-    public function __construct(int $decodeString) {
-        $this->decodeString = $decodeString;
+    public function __construct(int $bool) {
+        $this->bool = $bool;
     }
 
     /**
@@ -11099,7 +10585,7 @@ class DecodeString {
      * @throws Exception
      * @return int
      */
-    public static function fromDecodeString(int $value): int {
+    public static function fromBool(int $value): int {
         return $value; /*int*/
     }
 
@@ -11107,11 +10593,11 @@ class DecodeString {
      * @throws Exception
      * @return int
      */
-    public function toDecodeString(): int {
-        if (DecodeString::validateDecodeString($this->decodeString))  {
-            return $this->decodeString; /*int*/
+    public function toBool(): int {
+        if (Obj1BoolClass::validateBool($this->bool))  {
+            return $this->bool; /*int*/
         }
-        throw new Exception('never get to this DecodeString::decodeString');
+        throw new Exception('never get to this Obj1BoolClass::bool');
     }
 
     /**
@@ -11119,7 +10605,7 @@ class DecodeString {
      * @return bool
      * @throws Exception
      */
-    public static function validateDecodeString(int $value): bool {
+    public static function validateBool(int $value): bool {
         return true;
     }
 
@@ -11127,18 +10613,18 @@ class DecodeString {
      * @throws Exception
      * @return int
      */
-    public function getDecodeString(): int {
-        if (DecodeString::validateDecodeString($this->decodeString))  {
-            return $this->decodeString;
+    public function getBool(): int {
+        if (Obj1BoolClass::validateBool($this->bool))  {
+            return $this->bool;
         }
-        throw new Exception('never get to getDecodeString DecodeString::decodeString');
+        throw new Exception('never get to getBool Obj1BoolClass::bool');
     }
 
     /**
      * @return int
      */
-    public static function sampleDecodeString(): int {
-        return 31; /*31:decodeString*/
+    public static function sampleBool(): int {
+        return 31; /*31:bool*/
     }
 
     /**
@@ -11146,7 +10632,7 @@ class DecodeString {
      * @return bool
      */
     public function validate(): bool {
-        return DecodeString::validateDecodeString($this->decodeString);
+        return Obj1BoolClass::validateBool($this->bool);
     }
 
     /**
@@ -11155,879 +10641,597 @@ class DecodeString {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'decode_string'} = $this->toDecodeString();
+        $out->{'bool'} = $this->toBool();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DecodeString
+     * @return Obj1BoolClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): DecodeString {
-        if (!property_exists($obj, 'decode_string')) {
+    public static function from(stdClass $obj): Obj1BoolClass {
+        if (!property_exists($obj, 'bool')) {
             throw new Exception("Missing required property");
         }
-        return new DecodeString(
-         DecodeString::fromDecodeString($obj->{'decode_string'})
+        return new Obj1BoolClass(
+         Obj1BoolClass::fromBool($obj->{'bool'})
         );
     }
 
     /**
-     * @return DecodeString
+     * @return Obj1BoolClass
      */
-    public static function sample(): DecodeString {
-        return new DecodeString(
-         DecodeString::sampleDecodeString()
+    public static function sample(): Obj1BoolClass {
+        return new Obj1BoolClass(
+         Obj1BoolClass::sampleBool()
         );
     }
 }
 
-// This is an autogenerated file:Purple
-
-class Purple {
-    private int $empty; // json:_ Required
-
-    /**
-     * @param int $empty
-     */
-    public function __construct(int $empty) {
-        $this->empty = $empty;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromEmpty(int $value): int {
-        return $value; /*int*/
-    }
+// This is an autogenerated file:Obj2
 
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toEmpty(): int {
-        if (Purple::validateEmpty($this->empty))  {
-            return $this->empty; /*int*/
+class Obj2 {
+    private DateTimeClass $dateTime; // json:DateTime Required
+    private DateTimeStyles $dateTimeStyles; // json:DateTimeStyles Required
+    private Debugger $debugger; // json:debugger Required
+    private Decimal $decimal; // json:decimal Required
+    private DeclareClass $declare; // json:declare Required
+    private Decltype $decltype; // json:decltype Required
+    private DecodeString $decodeString; // json:decode_string Required
+    private Def $def; // json:def Required
+    private DefaultClass $default; // json:default Required
+    private Defer $defer; // json:defer Required
+    private Deinit $deinit; // json:deinit Required
+    private Del $del; // json:del Required
+    private Delegate $delegate; // json:delegate Required
+    private Delete $delete; // json:delete Required
+    private Dict $dict; // json:dict Required
+    private Dictionary $dictionary; // json:dictionary Required
+    private DidSet $didSet; // json:didSet Required
+    private DoClass $do; // json:do Required
+    private Double $double; // json:double Required
+    private int $dummy; // json:dummy Required
+    private Dynamic $dynamic; // json:dynamic Required
+    private DynamicCast $dynamicCast; // json:dynamic_cast Required
+    private Elif $elif; // json:elif Required
+    private ElseClass $else; // json:else Required
+    private EncodeQuickType $encodeQuickType; // json:encode_quick_type Required
+    private EnumClass $enum; // json:enum Required
+    private EnumValues $enumValues; // json:EnumValues Required
+    private EqualityContract $equalityContract; // json:equalityContract Required
+    private Event $event; // json:event Required
+    private Except $except; // json:except Required
+    private ExceptionClass $exception; // json:exception Required
+    private Explicit $explicit; // json:explicit Required
+    private Export $export; // json:export Required
+    private Exposing $exposing; // json:exposing Required
+    private ExtendsClass $extends; // json:extends Required
+    private Extension $extension; // json:extension Required
+    private Extern $extern; // json:extern Required
+    private Fallthrough $fallthrough; // json:fallthrough Required
+    private FalseClass $false; // json:False Required
+    private Fileprivate $fileprivate; // json:fileprivate Required
+    private FinalClass $final; // json:final Required
+    private FinallyClass $finally; // json:finally Required
+    private Fixed $fixed; // json:fixed Required
+    private FloatClass $float; // json:float Required
+    private ForClass $for; // json:for Required
+    private ForeachClass $foreach; // json:foreach Required
+    private FormatException $formatException; // json:FormatException Required
+    private Friend $friend; // json:friend Required
+    private From $from; // json:from Required
+    private FromJSON $fromJSON; // json:from_json Required
+    private Func $func; // json:func Required
+    private FunctionClass $function; // json:function Required
+    private Get $get; // json:get Required
+    private GlobalClass $global; // json:global Required
+    private Go $go; // json:go Required
+    private GotoClass $goto; // json:goto Required
+    private Guard $guard; // json:guard Required
+    private HasOwnProperty $hasOwnProperty; // json:hasOwnProperty Required
+    private HashCode $hashCode; // json:hashCode Required
+    private ID $id; // json:id Required
+    private IfClass $if; // json:if Required
+    private Imp $imp; // json:IMP Required
+    private ImplementsClass $implements; // json:implements Required
+    private Implicit $implicit; // json:implicit Required
+    private Obj2False $obj2False; // json:false Required
+
+    /**
+     * @param DateTimeClass $dateTime
+     * @param DateTimeStyles $dateTimeStyles
+     * @param Debugger $debugger
+     * @param Decimal $decimal
+     * @param DeclareClass $declare
+     * @param Decltype $decltype
+     * @param DecodeString $decodeString
+     * @param Def $def
+     * @param DefaultClass $default
+     * @param Defer $defer
+     * @param Deinit $deinit
+     * @param Del $del
+     * @param Delegate $delegate
+     * @param Delete $delete
+     * @param Dict $dict
+     * @param Dictionary $dictionary
+     * @param DidSet $didSet
+     * @param DoClass $do
+     * @param Double $double
+     * @param int $dummy
+     * @param Dynamic $dynamic
+     * @param DynamicCast $dynamicCast
+     * @param Elif $elif
+     * @param ElseClass $else
+     * @param EncodeQuickType $encodeQuickType
+     * @param EnumClass $enum
+     * @param EnumValues $enumValues
+     * @param EqualityContract $equalityContract
+     * @param Event $event
+     * @param Except $except
+     * @param ExceptionClass $exception
+     * @param Explicit $explicit
+     * @param Export $export
+     * @param Exposing $exposing
+     * @param ExtendsClass $extends
+     * @param Extension $extension
+     * @param Extern $extern
+     * @param Fallthrough $fallthrough
+     * @param FalseClass $false
+     * @param Fileprivate $fileprivate
+     * @param FinalClass $final
+     * @param FinallyClass $finally
+     * @param Fixed $fixed
+     * @param FloatClass $float
+     * @param ForClass $for
+     * @param ForeachClass $foreach
+     * @param FormatException $formatException
+     * @param Friend $friend
+     * @param From $from
+     * @param FromJSON $fromJSON
+     * @param Func $func
+     * @param FunctionClass $function
+     * @param Get $get
+     * @param GlobalClass $global
+     * @param Go $go
+     * @param GotoClass $goto
+     * @param Guard $guard
+     * @param HasOwnProperty $hasOwnProperty
+     * @param HashCode $hashCode
+     * @param ID $id
+     * @param IfClass $if
+     * @param Imp $imp
+     * @param ImplementsClass $implements
+     * @param Implicit $implicit
+     * @param Obj2False $obj2False
+     */
+    public function __construct(DateTimeClass $dateTime, DateTimeStyles $dateTimeStyles, Debugger $debugger, Decimal $decimal, DeclareClass $declare, Decltype $decltype, DecodeString $decodeString, Def $def, DefaultClass $default, Defer $defer, Deinit $deinit, Del $del, Delegate $delegate, Delete $delete, Dict $dict, Dictionary $dictionary, DidSet $didSet, DoClass $do, Double $double, int $dummy, Dynamic $dynamic, DynamicCast $dynamicCast, Elif $elif, ElseClass $else, EncodeQuickType $encodeQuickType, EnumClass $enum, EnumValues $enumValues, EqualityContract $equalityContract, Event $event, Except $except, ExceptionClass $exception, Explicit $explicit, Export $export, Exposing $exposing, ExtendsClass $extends, Extension $extension, Extern $extern, Fallthrough $fallthrough, FalseClass $false, Fileprivate $fileprivate, FinalClass $final, FinallyClass $finally, Fixed $fixed, FloatClass $float, ForClass $for, ForeachClass $foreach, FormatException $formatException, Friend $friend, From $from, FromJSON $fromJSON, Func $func, FunctionClass $function, Get $get, GlobalClass $global, Go $go, GotoClass $goto, Guard $guard, HasOwnProperty $hasOwnProperty, HashCode $hashCode, ID $id, IfClass $if, Imp $imp, ImplementsClass $implements, Implicit $implicit, Obj2False $obj2False) {
+        $this->dateTime = $dateTime;
+        $this->dateTimeStyles = $dateTimeStyles;
+        $this->debugger = $debugger;
+        $this->decimal = $decimal;
+        $this->declare = $declare;
+        $this->decltype = $decltype;
+        $this->decodeString = $decodeString;
+        $this->def = $def;
+        $this->default = $default;
+        $this->defer = $defer;
+        $this->deinit = $deinit;
+        $this->del = $del;
+        $this->delegate = $delegate;
+        $this->delete = $delete;
+        $this->dict = $dict;
+        $this->dictionary = $dictionary;
+        $this->didSet = $didSet;
+        $this->do = $do;
+        $this->double = $double;
+        $this->dummy = $dummy;
+        $this->dynamic = $dynamic;
+        $this->dynamicCast = $dynamicCast;
+        $this->elif = $elif;
+        $this->else = $else;
+        $this->encodeQuickType = $encodeQuickType;
+        $this->enum = $enum;
+        $this->enumValues = $enumValues;
+        $this->equalityContract = $equalityContract;
+        $this->event = $event;
+        $this->except = $except;
+        $this->exception = $exception;
+        $this->explicit = $explicit;
+        $this->export = $export;
+        $this->exposing = $exposing;
+        $this->extends = $extends;
+        $this->extension = $extension;
+        $this->extern = $extern;
+        $this->fallthrough = $fallthrough;
+        $this->false = $false;
+        $this->fileprivate = $fileprivate;
+        $this->final = $final;
+        $this->finally = $finally;
+        $this->fixed = $fixed;
+        $this->float = $float;
+        $this->for = $for;
+        $this->foreach = $foreach;
+        $this->formatException = $formatException;
+        $this->friend = $friend;
+        $this->from = $from;
+        $this->fromJSON = $fromJSON;
+        $this->func = $func;
+        $this->function = $function;
+        $this->get = $get;
+        $this->global = $global;
+        $this->go = $go;
+        $this->goto = $goto;
+        $this->guard = $guard;
+        $this->hasOwnProperty = $hasOwnProperty;
+        $this->hashCode = $hashCode;
+        $this->id = $id;
+        $this->if = $if;
+        $this->imp = $imp;
+        $this->implements = $implements;
+        $this->implicit = $implicit;
+        $this->obj2False = $obj2False;
+    }
+
+    /**
+     * @param stdClass $value
+     * @throws Exception
+     * @return DateTimeClass
+     */
+    public static function fromDateTime(stdClass $value): DateTimeClass {
+        return DateTimeClass::from($value); /*class*/
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toDateTime(): stdClass {
+        if (Obj2::validateDateTime($this->dateTime))  {
+            return $this->dateTime->to(); /*class*/
         }
-        throw new Exception('never get to this Purple::empty');
+        throw new Exception('never get to this Obj2::dateTime');
     }
 
     /**
-     * @param int
+     * @param DateTimeClass
      * @return bool
      * @throws Exception
      */
-    public static function validateEmpty(int $value): bool {
+    public static function validateDateTime(DateTimeClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return DateTimeClass
      */
-    public function getEmpty(): int {
-        if (Purple::validateEmpty($this->empty))  {
-            return $this->empty;
+    public function getDateTime(): DateTimeClass {
+        if (Obj2::validateDateTime($this->dateTime))  {
+            return $this->dateTime;
         }
-        throw new Exception('never get to getEmpty Purple::empty');
+        throw new Exception('never get to getDateTime Obj2::dateTime');
     }
 
     /**
-     * @return int
+     * @return DateTimeClass
      */
-    public static function sampleEmpty(): int {
-        return 31; /*31:empty*/
+    public static function sampleDateTime(): DateTimeClass {
+        return DateTimeClass::sample(); /*31:dateTime*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return DateTimeStyles
      */
-    public function validate(): bool {
-        return Purple::validateEmpty($this->empty);
+    public static function fromDateTimeStyles(stdClass $value): DateTimeStyles {
+        return DateTimeStyles::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'_'} = $this->toEmpty();
-        return $out;
+    public function toDateTimeStyles(): stdClass {
+        if (Obj2::validateDateTimeStyles($this->dateTimeStyles))  {
+            return $this->dateTimeStyles->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj2::dateTimeStyles');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Purple
+     * @param DateTimeStyles
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Purple {
-        if (!property_exists($obj, '_')) {
-            throw new Exception("Missing required property");
-        }
-        return new Purple(
-         Purple::fromEmpty($obj->{'_'})
-        );
+    public static function validateDateTimeStyles(DateTimeStyles $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Purple
+     * @throws Exception
+     * @return DateTimeStyles
      */
-    public static function sample(): Purple {
-        return new Purple(
-         Purple::sampleEmpty()
-        );
+    public function getDateTimeStyles(): DateTimeStyles {
+        if (Obj2::validateDateTimeStyles($this->dateTimeStyles))  {
+            return $this->dateTimeStyles;
+        }
+        throw new Exception('never get to getDateTimeStyles Obj2::dateTimeStyles');
     }
-}
-
-// This is an autogenerated file:Imaginery
-
-class Imaginery {
-    private int $imaginery; // json:_Imaginery Required
 
     /**
-     * @param int $imaginery
+     * @return DateTimeStyles
      */
-    public function __construct(int $imaginery) {
-        $this->imaginery = $imaginery;
+    public static function sampleDateTimeStyles(): DateTimeStyles {
+        return DateTimeStyles::sample(); /*32:dateTimeStyles*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Debugger
      */
-    public static function fromImaginery(int $value): int {
-        return $value; /*int*/
+    public static function fromDebugger(stdClass $value): Debugger {
+        return Debugger::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toImaginery(): int {
-        if (Imaginery::validateImaginery($this->imaginery))  {
-            return $this->imaginery; /*int*/
+    public function toDebugger(): stdClass {
+        if (Obj2::validateDebugger($this->debugger))  {
+            return $this->debugger->to(); /*class*/
         }
-        throw new Exception('never get to this Imaginery::imaginery');
+        throw new Exception('never get to this Obj2::debugger');
     }
 
     /**
-     * @param int
+     * @param Debugger
      * @return bool
      * @throws Exception
      */
-    public static function validateImaginery(int $value): bool {
+    public static function validateDebugger(Debugger $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Debugger
      */
-    public function getImaginery(): int {
-        if (Imaginery::validateImaginery($this->imaginery))  {
-            return $this->imaginery;
+    public function getDebugger(): Debugger {
+        if (Obj2::validateDebugger($this->debugger))  {
+            return $this->debugger;
         }
-        throw new Exception('never get to getImaginery Imaginery::imaginery');
+        throw new Exception('never get to getDebugger Obj2::debugger');
     }
 
     /**
-     * @return int
+     * @return Debugger
      */
-    public static function sampleImaginery(): int {
-        return 31; /*31:imaginery*/
+    public static function sampleDebugger(): Debugger {
+        return Debugger::sample(); /*33:debugger*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Decimal
      */
-    public function validate(): bool {
-        return Imaginery::validateImaginery($this->imaginery);
+    public static function fromDecimal(stdClass $value): Decimal {
+        return Decimal::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'_Imaginery'} = $this->toImaginery();
-        return $out;
+    public function toDecimal(): stdClass {
+        if (Obj2::validateDecimal($this->decimal))  {
+            return $this->decimal->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj2::decimal');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Imaginery
+     * @param Decimal
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Imaginery {
-        if (!property_exists($obj, '_Imaginery')) {
-            throw new Exception("Missing required property");
-        }
-        return new Imaginery(
-         Imaginery::fromImaginery($obj->{'_Imaginery'})
-        );
+    public static function validateDecimal(Decimal $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Imaginery
+     * @throws Exception
+     * @return Decimal
      */
-    public static function sample(): Imaginery {
-        return new Imaginery(
-         Imaginery::sampleImaginery()
-        );
+    public function getDecimal(): Decimal {
+        if (Obj2::validateDecimal($this->decimal))  {
+            return $this->decimal;
+        }
+        throw new Exception('never get to getDecimal Obj2::decimal');
     }
-}
-
-// This is an autogenerated file:AnyClass
-
-class AnyClass {
-    private int $any; // json:any Required
 
     /**
-     * @param int $any
+     * @return Decimal
      */
-    public function __construct(int $any) {
-        $this->any = $any;
+    public static function sampleDecimal(): Decimal {
+        return Decimal::sample(); /*34:decimal*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return DeclareClass
      */
-    public static function fromAny(int $value): int {
-        return $value; /*int*/
+    public static function fromDeclare(stdClass $value): DeclareClass {
+        return DeclareClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toAny(): int {
-        if (AnyClass::validateAny($this->any))  {
-            return $this->any; /*int*/
+    public function toDeclare(): stdClass {
+        if (Obj2::validateDeclare($this->declare))  {
+            return $this->declare->to(); /*class*/
         }
-        throw new Exception('never get to this AnyClass::any');
+        throw new Exception('never get to this Obj2::declare');
     }
 
     /**
-     * @param int
+     * @param DeclareClass
      * @return bool
      * @throws Exception
      */
-    public static function validateAny(int $value): bool {
+    public static function validateDeclare(DeclareClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return DeclareClass
      */
-    public function getAny(): int {
-        if (AnyClass::validateAny($this->any))  {
-            return $this->any;
+    public function getDeclare(): DeclareClass {
+        if (Obj2::validateDeclare($this->declare))  {
+            return $this->declare;
         }
-        throw new Exception('never get to getAny AnyClass::any');
+        throw new Exception('never get to getDeclare Obj2::declare');
     }
 
     /**
-     * @return int
+     * @return DeclareClass
      */
-    public static function sampleAny(): int {
-        return 31; /*31:any*/
+    public static function sampleDeclare(): DeclareClass {
+        return DeclareClass::sample(); /*35:declare*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Decltype
      */
-    public function validate(): bool {
-        return AnyClass::validateAny($this->any);
+    public static function fromDecltype(stdClass $value): Decltype {
+        return Decltype::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'any'} = $this->toAny();
-        return $out;
+    public function toDecltype(): stdClass {
+        if (Obj2::validateDecltype($this->decltype))  {
+            return $this->decltype->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj2::decltype');
     }
 
     /**
-     * @param stdClass $obj
-     * @return AnyClass
+     * @param Decltype
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): AnyClass {
-        if (!property_exists($obj, 'any')) {
-            throw new Exception("Missing required property");
-        }
-        return new AnyClass(
-         AnyClass::fromAny($obj->{'any'})
-        );
+    public static function validateDecltype(Decltype $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return AnyClass
+     * @throws Exception
+     * @return Decltype
      */
-    public static function sample(): AnyClass {
-        return new AnyClass(
-         AnyClass::sampleAny()
-        );
+    public function getDecltype(): Decltype {
+        if (Obj2::validateDecltype($this->decltype))  {
+            return $this->decltype;
+        }
+        throw new Exception('never get to getDecltype Obj2::decltype');
     }
-}
-
-// This is an autogenerated file:Obj1Bool
-
-class Obj1Bool {
-    private int $bool; // json:_Bool Required
 
     /**
-     * @param int $bool
+     * @return Decltype
      */
-    public function __construct(int $bool) {
-        $this->bool = $bool;
+    public static function sampleDecltype(): Decltype {
+        return Decltype::sample(); /*36:decltype*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return DecodeString
      */
-    public static function fromBool(int $value): int {
-        return $value; /*int*/
+    public static function fromDecodeString(stdClass $value): DecodeString {
+        return DecodeString::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toBool(): int {
-        if (Obj1Bool::validateBool($this->bool))  {
-            return $this->bool; /*int*/
+    public function toDecodeString(): stdClass {
+        if (Obj2::validateDecodeString($this->decodeString))  {
+            return $this->decodeString->to(); /*class*/
         }
-        throw new Exception('never get to this Obj1Bool::bool');
+        throw new Exception('never get to this Obj2::decodeString');
     }
 
     /**
-     * @param int
+     * @param DecodeString
      * @return bool
      * @throws Exception
      */
-    public static function validateBool(int $value): bool {
+    public static function validateDecodeString(DecodeString $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return DecodeString
      */
-    public function getBool(): int {
-        if (Obj1Bool::validateBool($this->bool))  {
-            return $this->bool;
+    public function getDecodeString(): DecodeString {
+        if (Obj2::validateDecodeString($this->decodeString))  {
+            return $this->decodeString;
         }
-        throw new Exception('never get to getBool Obj1Bool::bool');
+        throw new Exception('never get to getDecodeString Obj2::decodeString');
     }
 
     /**
-     * @return int
+     * @return DecodeString
      */
-    public static function sampleBool(): int {
-        return 31; /*31:bool*/
+    public static function sampleDecodeString(): DecodeString {
+        return DecodeString::sample(); /*37:decodeString*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Def
      */
-    public function validate(): bool {
-        return Obj1Bool::validateBool($this->bool);
+    public static function fromDef(stdClass $value): Def {
+        return Def::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'_Bool'} = $this->toBool();
-        return $out;
+    public function toDef(): stdClass {
+        if (Obj2::validateDef($this->def))  {
+            return $this->def->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj2::def');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Obj1Bool
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): Obj1Bool {
-        if (!property_exists($obj, '_Bool')) {
-            throw new Exception("Missing required property");
-        }
-        return new Obj1Bool(
-         Obj1Bool::fromBool($obj->{'_Bool'})
-        );
-    }
-
-    /**
-     * @return Obj1Bool
-     */
-    public static function sample(): Obj1Bool {
-        return new Obj1Bool(
-         Obj1Bool::sampleBool()
-        );
-    }
-}
-
-// This is an autogenerated file:Obj1Class
-
-class Obj1Class {
-    private int $class; // json:class Required
-
-    /**
-     * @param int $class
-     */
-    public function __construct(int $class) {
-        $this->class = $class;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromClass(int $value): int {
-        return $value; /*int*/
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toClass(): int {
-        if (Obj1Class::validateClass($this->class))  {
-            return $this->class; /*int*/
-        }
-        throw new Exception('never get to this Obj1Class::class');
-    }
-
-    /**
-     * @param int
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateClass(int $value): bool {
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function getClass(): int {
-        if (Obj1Class::validateClass($this->class))  {
-            return $this->class;
-        }
-        throw new Exception('never get to getClass Obj1Class::class');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleClass(): int {
-        return 31; /*31:class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return Obj1Class::validateClass($this->class);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'class'} = $this->toClass();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return Obj1Class
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): Obj1Class {
-        if (!property_exists($obj, 'class')) {
-            throw new Exception("Missing required property");
-        }
-        return new Obj1Class(
-         Obj1Class::fromClass($obj->{'class'})
-        );
-    }
-
-    /**
-     * @return Obj1Class
-     */
-    public static function sample(): Obj1Class {
-        return new Obj1Class(
-         Obj1Class::sampleClass()
-        );
-    }
-}
-
-// This is an autogenerated file:Obj1BoolClass
-
-class Obj1BoolClass {
-    private int $bool; // json:bool Required
-
-    /**
-     * @param int $bool
-     */
-    public function __construct(int $bool) {
-        $this->bool = $bool;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromBool(int $value): int {
-        return $value; /*int*/
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toBool(): int {
-        if (Obj1BoolClass::validateBool($this->bool))  {
-            return $this->bool; /*int*/
-        }
-        throw new Exception('never get to this Obj1BoolClass::bool');
-    }
-
-    /**
-     * @param int
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateBool(int $value): bool {
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function getBool(): int {
-        if (Obj1BoolClass::validateBool($this->bool))  {
-            return $this->bool;
-        }
-        throw new Exception('never get to getBool Obj1BoolClass::bool');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleBool(): int {
-        return 31; /*31:bool*/
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return Obj1BoolClass::validateBool($this->bool);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'bool'} = $this->toBool();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return Obj1BoolClass
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): Obj1BoolClass {
-        if (!property_exists($obj, 'bool')) {
-            throw new Exception("Missing required property");
-        }
-        return new Obj1BoolClass(
-         Obj1BoolClass::fromBool($obj->{'bool'})
-        );
-    }
-
-    /**
-     * @return Obj1BoolClass
-     */
-    public static function sample(): Obj1BoolClass {
-        return new Obj1BoolClass(
-         Obj1BoolClass::sampleBool()
-        );
-    }
-}
-
-// This is an autogenerated file:Obj2
-
-class Obj2 {
-    private Def $def; // json:def Required
-    private DefaultClass $default; // json:default Required
-    private Defer $defer; // json:defer Required
-    private Deinit $deinit; // json:deinit Required
-    private Del $del; // json:del Required
-    private Delegate $delegate; // json:delegate Required
-    private Delete $delete; // json:delete Required
-    private Dict $dict; // json:dict Required
-    private Dictionary $dictionary; // json:dictionary Required
-    private DidSet $didSet; // json:didSet Required
-    private DoClass $do; // json:do Required
-    private Double $double; // json:double Required
-    private int $dummy; // json:dummy Required
-    private Dynamic $dynamic; // json:dynamic Required
-    private DynamicCast $dynamicCast; // json:dynamic_cast Required
-    private Elif $elif; // json:elif Required
-    private ElseClass $else; // json:else Required
-    private EncodeQuickType $encodeQuickType; // json:encode_quick_type Required
-    private EnumClass $enum; // json:enum Required
-    private EnumValues $enumValues; // json:EnumValues Required
-    private EqualityContract $equalityContract; // json:equalityContract Required
-    private Event $event; // json:event Required
-    private Except $except; // json:except Required
-    private ExceptionClass $exception; // json:exception Required
-    private Explicit $explicit; // json:explicit Required
-    private Export $export; // json:export Required
-    private Exposing $exposing; // json:exposing Required
-    private ExtendsClass $extends; // json:extends Required
-    private Extension $extension; // json:extension Required
-    private Extern $extern; // json:extern Required
-    private Fallthrough $fallthrough; // json:fallthrough Required
-    private FalseClass $false; // json:False Required
-    private Fileprivate $fileprivate; // json:fileprivate Required
-    private FinalClass $final; // json:final Required
-    private FinallyClass $finally; // json:finally Required
-    private Fixed $fixed; // json:fixed Required
-    private FloatClass $float; // json:float Required
-    private ForClass $for; // json:for Required
-    private ForeachClass $foreach; // json:foreach Required
-    private FormatException $formatException; // json:FormatException Required
-    private Friend $friend; // json:friend Required
-    private From $from; // json:from Required
-    private FromJSON $fromJSON; // json:from_json Required
-    private Func $func; // json:func Required
-    private FunctionClass $function; // json:function Required
-    private Get $get; // json:get Required
-    private GlobalClass $global; // json:global Required
-    private Go $go; // json:go Required
-    private GotoClass $goto; // json:goto Required
-    private Guard $guard; // json:guard Required
-    private HasOwnProperty $hasOwnProperty; // json:hasOwnProperty Required
-    private HashCode $hashCode; // json:hashCode Required
-    private ID $id; // json:id Required
-    private IfClass $if; // json:if Required
-    private Imp $imp; // json:IMP Required
-    private ImplementsClass $implements; // json:implements Required
-    private Implicit $implicit; // json:implicit Required
-    private Import $import; // json:import Required
-    private In $in; // json:in Required
-    private Indirect $indirect; // json:indirect Required
-    private Infix $infix; // json:infix Required
-    private Init $init; // json:init Required
-    private Inline $inline; // json:inline Required
-    private Inout $inout; // json:inout Required
-    private InstanceofClass $instanceof; // json:instanceof Required
-    private IntClass $int; // json:int Required
-    private InterfaceClass $interface; // json:interface Required
-    private Internal $internal; // json:internal Required
-    private Obj2False $obj2False; // json:false Required
-
-    /**
-     * @param Def $def
-     * @param DefaultClass $default
-     * @param Defer $defer
-     * @param Deinit $deinit
-     * @param Del $del
-     * @param Delegate $delegate
-     * @param Delete $delete
-     * @param Dict $dict
-     * @param Dictionary $dictionary
-     * @param DidSet $didSet
-     * @param DoClass $do
-     * @param Double $double
-     * @param int $dummy
-     * @param Dynamic $dynamic
-     * @param DynamicCast $dynamicCast
-     * @param Elif $elif
-     * @param ElseClass $else
-     * @param EncodeQuickType $encodeQuickType
-     * @param EnumClass $enum
-     * @param EnumValues $enumValues
-     * @param EqualityContract $equalityContract
-     * @param Event $event
-     * @param Except $except
-     * @param ExceptionClass $exception
-     * @param Explicit $explicit
-     * @param Export $export
-     * @param Exposing $exposing
-     * @param ExtendsClass $extends
-     * @param Extension $extension
-     * @param Extern $extern
-     * @param Fallthrough $fallthrough
-     * @param FalseClass $false
-     * @param Fileprivate $fileprivate
-     * @param FinalClass $final
-     * @param FinallyClass $finally
-     * @param Fixed $fixed
-     * @param FloatClass $float
-     * @param ForClass $for
-     * @param ForeachClass $foreach
-     * @param FormatException $formatException
-     * @param Friend $friend
-     * @param From $from
-     * @param FromJSON $fromJSON
-     * @param Func $func
-     * @param FunctionClass $function
-     * @param Get $get
-     * @param GlobalClass $global
-     * @param Go $go
-     * @param GotoClass $goto
-     * @param Guard $guard
-     * @param HasOwnProperty $hasOwnProperty
-     * @param HashCode $hashCode
-     * @param ID $id
-     * @param IfClass $if
-     * @param Imp $imp
-     * @param ImplementsClass $implements
-     * @param Implicit $implicit
-     * @param Import $import
-     * @param In $in
-     * @param Indirect $indirect
-     * @param Infix $infix
-     * @param Init $init
-     * @param Inline $inline
-     * @param Inout $inout
-     * @param InstanceofClass $instanceof
-     * @param IntClass $int
-     * @param InterfaceClass $interface
-     * @param Internal $internal
-     * @param Obj2False $obj2False
-     */
-    public function __construct(Def $def, DefaultClass $default, Defer $defer, Deinit $deinit, Del $del, Delegate $delegate, Delete $delete, Dict $dict, Dictionary $dictionary, DidSet $didSet, DoClass $do, Double $double, int $dummy, Dynamic $dynamic, DynamicCast $dynamicCast, Elif $elif, ElseClass $else, EncodeQuickType $encodeQuickType, EnumClass $enum, EnumValues $enumValues, EqualityContract $equalityContract, Event $event, Except $except, ExceptionClass $exception, Explicit $explicit, Export $export, Exposing $exposing, ExtendsClass $extends, Extension $extension, Extern $extern, Fallthrough $fallthrough, FalseClass $false, Fileprivate $fileprivate, FinalClass $final, FinallyClass $finally, Fixed $fixed, FloatClass $float, ForClass $for, ForeachClass $foreach, FormatException $formatException, Friend $friend, From $from, FromJSON $fromJSON, Func $func, FunctionClass $function, Get $get, GlobalClass $global, Go $go, GotoClass $goto, Guard $guard, HasOwnProperty $hasOwnProperty, HashCode $hashCode, ID $id, IfClass $if, Imp $imp, ImplementsClass $implements, Implicit $implicit, Import $import, In $in, Indirect $indirect, Infix $infix, Init $init, Inline $inline, Inout $inout, InstanceofClass $instanceof, IntClass $int, InterfaceClass $interface, Internal $internal, Obj2False $obj2False) {
-        $this->def = $def;
-        $this->default = $default;
-        $this->defer = $defer;
-        $this->deinit = $deinit;
-        $this->del = $del;
-        $this->delegate = $delegate;
-        $this->delete = $delete;
-        $this->dict = $dict;
-        $this->dictionary = $dictionary;
-        $this->didSet = $didSet;
-        $this->do = $do;
-        $this->double = $double;
-        $this->dummy = $dummy;
-        $this->dynamic = $dynamic;
-        $this->dynamicCast = $dynamicCast;
-        $this->elif = $elif;
-        $this->else = $else;
-        $this->encodeQuickType = $encodeQuickType;
-        $this->enum = $enum;
-        $this->enumValues = $enumValues;
-        $this->equalityContract = $equalityContract;
-        $this->event = $event;
-        $this->except = $except;
-        $this->exception = $exception;
-        $this->explicit = $explicit;
-        $this->export = $export;
-        $this->exposing = $exposing;
-        $this->extends = $extends;
-        $this->extension = $extension;
-        $this->extern = $extern;
-        $this->fallthrough = $fallthrough;
-        $this->false = $false;
-        $this->fileprivate = $fileprivate;
-        $this->final = $final;
-        $this->finally = $finally;
-        $this->fixed = $fixed;
-        $this->float = $float;
-        $this->for = $for;
-        $this->foreach = $foreach;
-        $this->formatException = $formatException;
-        $this->friend = $friend;
-        $this->from = $from;
-        $this->fromJSON = $fromJSON;
-        $this->func = $func;
-        $this->function = $function;
-        $this->get = $get;
-        $this->global = $global;
-        $this->go = $go;
-        $this->goto = $goto;
-        $this->guard = $guard;
-        $this->hasOwnProperty = $hasOwnProperty;
-        $this->hashCode = $hashCode;
-        $this->id = $id;
-        $this->if = $if;
-        $this->imp = $imp;
-        $this->implements = $implements;
-        $this->implicit = $implicit;
-        $this->import = $import;
-        $this->in = $in;
-        $this->indirect = $indirect;
-        $this->infix = $infix;
-        $this->init = $init;
-        $this->inline = $inline;
-        $this->inout = $inout;
-        $this->instanceof = $instanceof;
-        $this->int = $int;
-        $this->interface = $interface;
-        $this->internal = $internal;
-        $this->obj2False = $obj2False;
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Def
-     */
-    public static function fromDef(stdClass $value): Def {
-        return Def::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toDef(): stdClass {
-        if (Obj2::validateDef($this->def))  {
-            return $this->def->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::def');
-    }
-
-    /**
-     * @param Def
-     * @return bool
+     * @param Def
+     * @return bool
      * @throws Exception
      */
     public static function validateDef(Def $value): bool {
@@ -12050,7 +11254,7 @@ class Obj2 {
      * @return Def
      */
     public static function sampleDef(): Def {
-        return Def::sample(); /*31:def*/
+        return Def::sample(); /*38:def*/
     }
 
     /**
@@ -12098,7 +11302,7 @@ class Obj2 {
      * @return DefaultClass
      */
     public static function sampleDefault(): DefaultClass {
-        return DefaultClass::sample(); /*32:default*/
+        return DefaultClass::sample(); /*39:default*/
     }
 
     /**
@@ -12146,7 +11350,7 @@ class Obj2 {
      * @return Defer
      */
     public static function sampleDefer(): Defer {
-        return Defer::sample(); /*33:defer*/
+        return Defer::sample(); /*40:defer*/
     }
 
     /**
@@ -12194,7 +11398,7 @@ class Obj2 {
      * @return Deinit
      */
     public static function sampleDeinit(): Deinit {
-        return Deinit::sample(); /*34:deinit*/
+        return Deinit::sample(); /*41:deinit*/
     }
 
     /**
@@ -12242,7 +11446,7 @@ class Obj2 {
      * @return Del
      */
     public static function sampleDel(): Del {
-        return Del::sample(); /*35:del*/
+        return Del::sample(); /*42:del*/
     }
 
     /**
@@ -12290,7 +11494,7 @@ class Obj2 {
      * @return Delegate
      */
     public static function sampleDelegate(): Delegate {
-        return Delegate::sample(); /*36:delegate*/
+        return Delegate::sample(); /*43:delegate*/
     }
 
     /**
@@ -12338,7 +11542,7 @@ class Obj2 {
      * @return Delete
      */
     public static function sampleDelete(): Delete {
-        return Delete::sample(); /*37:delete*/
+        return Delete::sample(); /*44:delete*/
     }
 
     /**
@@ -12386,7 +11590,7 @@ class Obj2 {
      * @return Dict
      */
     public static function sampleDict(): Dict {
-        return Dict::sample(); /*38:dict*/
+        return Dict::sample(); /*45:dict*/
     }
 
     /**
@@ -12434,7 +11638,7 @@ class Obj2 {
      * @return Dictionary
      */
     public static function sampleDictionary(): Dictionary {
-        return Dictionary::sample(); /*39:dictionary*/
+        return Dictionary::sample(); /*46:dictionary*/
     }
 
     /**
@@ -12482,7 +11686,7 @@ class Obj2 {
      * @return DidSet
      */
     public static function sampleDidSet(): DidSet {
-        return DidSet::sample(); /*40:didSet*/
+        return DidSet::sample(); /*47:didSet*/
     }
 
     /**
@@ -12530,7 +11734,7 @@ class Obj2 {
      * @return DoClass
      */
     public static function sampleDo(): DoClass {
-        return DoClass::sample(); /*41:do*/
+        return DoClass::sample(); /*48:do*/
     }
 
     /**
@@ -12578,7 +11782,7 @@ class Obj2 {
      * @return Double
      */
     public static function sampleDouble(): Double {
-        return Double::sample(); /*42:double*/
+        return Double::sample(); /*49:double*/
     }
 
     /**
@@ -12625,7 +11829,7 @@ class Obj2 {
      * @return int
      */
     public static function sampleDummy(): int {
-        return 43; /*43:dummy*/
+        return 50; /*50:dummy*/
     }
 
     /**
@@ -12673,7 +11877,7 @@ class Obj2 {
      * @return Dynamic
      */
     public static function sampleDynamic(): Dynamic {
-        return Dynamic::sample(); /*44:dynamic*/
+        return Dynamic::sample(); /*51:dynamic*/
     }
 
     /**
@@ -12721,7 +11925,7 @@ class Obj2 {
      * @return DynamicCast
      */
     public static function sampleDynamicCast(): DynamicCast {
-        return DynamicCast::sample(); /*45:dynamicCast*/
+        return DynamicCast::sample(); /*52:dynamicCast*/
     }
 
     /**
@@ -12769,7 +11973,7 @@ class Obj2 {
      * @return Elif
      */
     public static function sampleElif(): Elif {
-        return Elif::sample(); /*46:elif*/
+        return Elif::sample(); /*53:elif*/
     }
 
     /**
@@ -12817,7 +12021,7 @@ class Obj2 {
      * @return ElseClass
      */
     public static function sampleElse(): ElseClass {
-        return ElseClass::sample(); /*47:else*/
+        return ElseClass::sample(); /*54:else*/
     }
 
     /**
@@ -12865,7 +12069,7 @@ class Obj2 {
      * @return EncodeQuickType
      */
     public static function sampleEncodeQuickType(): EncodeQuickType {
-        return EncodeQuickType::sample(); /*48:encodeQuickType*/
+        return EncodeQuickType::sample(); /*55:encodeQuickType*/
     }
 
     /**
@@ -12913,7 +12117,7 @@ class Obj2 {
      * @return EnumClass
      */
     public static function sampleEnum(): EnumClass {
-        return EnumClass::sample(); /*49:enum*/
+        return EnumClass::sample(); /*56:enum*/
     }
 
     /**
@@ -12961,7 +12165,7 @@ class Obj2 {
      * @return EnumValues
      */
     public static function sampleEnumValues(): EnumValues {
-        return EnumValues::sample(); /*50:enumValues*/
+        return EnumValues::sample(); /*57:enumValues*/
     }
 
     /**
@@ -13009,7 +12213,7 @@ class Obj2 {
      * @return EqualityContract
      */
     public static function sampleEqualityContract(): EqualityContract {
-        return EqualityContract::sample(); /*51:equalityContract*/
+        return EqualityContract::sample(); /*58:equalityContract*/
     }
 
     /**
@@ -13057,7 +12261,7 @@ class Obj2 {
      * @return Event
      */
     public static function sampleEvent(): Event {
-        return Event::sample(); /*52:event*/
+        return Event::sample(); /*59:event*/
     }
 
     /**
@@ -13105,7 +12309,7 @@ class Obj2 {
      * @return Except
      */
     public static function sampleExcept(): Except {
-        return Except::sample(); /*53:except*/
+        return Except::sample(); /*60:except*/
     }
 
     /**
@@ -13153,7 +12357,7 @@ class Obj2 {
      * @return ExceptionClass
      */
     public static function sampleException(): ExceptionClass {
-        return ExceptionClass::sample(); /*54:exception*/
+        return ExceptionClass::sample(); /*61:exception*/
     }
 
     /**
@@ -13201,7 +12405,7 @@ class Obj2 {
      * @return Explicit
      */
     public static function sampleExplicit(): Explicit {
-        return Explicit::sample(); /*55:explicit*/
+        return Explicit::sample(); /*62:explicit*/
     }
 
     /**
@@ -13249,7 +12453,7 @@ class Obj2 {
      * @return Export
      */
     public static function sampleExport(): Export {
-        return Export::sample(); /*56:export*/
+        return Export::sample(); /*63:export*/
     }
 
     /**
@@ -13297,7 +12501,7 @@ class Obj2 {
      * @return Exposing
      */
     public static function sampleExposing(): Exposing {
-        return Exposing::sample(); /*57:exposing*/
+        return Exposing::sample(); /*64:exposing*/
     }
 
     /**
@@ -13345,7 +12549,7 @@ class Obj2 {
      * @return ExtendsClass
      */
     public static function sampleExtends(): ExtendsClass {
-        return ExtendsClass::sample(); /*58:extends*/
+        return ExtendsClass::sample(); /*65:extends*/
     }
 
     /**
@@ -13393,7 +12597,7 @@ class Obj2 {
      * @return Extension
      */
     public static function sampleExtension(): Extension {
-        return Extension::sample(); /*59:extension*/
+        return Extension::sample(); /*66:extension*/
     }
 
     /**
@@ -13441,7 +12645,7 @@ class Obj2 {
      * @return Extern
      */
     public static function sampleExtern(): Extern {
-        return Extern::sample(); /*60:extern*/
+        return Extern::sample(); /*67:extern*/
     }
 
     /**
@@ -13489,7 +12693,7 @@ class Obj2 {
      * @return Fallthrough
      */
     public static function sampleFallthrough(): Fallthrough {
-        return Fallthrough::sample(); /*61:fallthrough*/
+        return Fallthrough::sample(); /*68:fallthrough*/
     }
 
     /**
@@ -13537,7 +12741,7 @@ class Obj2 {
      * @return FalseClass
      */
     public static function sampleFalse(): FalseClass {
-        return FalseClass::sample(); /*62:false*/
+        return FalseClass::sample(); /*69:false*/
     }
 
     /**
@@ -13585,7 +12789,7 @@ class Obj2 {
      * @return Fileprivate
      */
     public static function sampleFileprivate(): Fileprivate {
-        return Fileprivate::sample(); /*63:fileprivate*/
+        return Fileprivate::sample(); /*70:fileprivate*/
     }
 
     /**
@@ -13633,7 +12837,7 @@ class Obj2 {
      * @return FinalClass
      */
     public static function sampleFinal(): FinalClass {
-        return FinalClass::sample(); /*64:final*/
+        return FinalClass::sample(); /*71:final*/
     }
 
     /**
@@ -13681,7 +12885,7 @@ class Obj2 {
      * @return FinallyClass
      */
     public static function sampleFinally(): FinallyClass {
-        return FinallyClass::sample(); /*65:finally*/
+        return FinallyClass::sample(); /*72:finally*/
     }
 
     /**
@@ -13729,7 +12933,7 @@ class Obj2 {
      * @return Fixed
      */
     public static function sampleFixed(): Fixed {
-        return Fixed::sample(); /*66:fixed*/
+        return Fixed::sample(); /*73:fixed*/
     }
 
     /**
@@ -13777,7 +12981,7 @@ class Obj2 {
      * @return FloatClass
      */
     public static function sampleFloat(): FloatClass {
-        return FloatClass::sample(); /*67:float*/
+        return FloatClass::sample(); /*74:float*/
     }
 
     /**
@@ -13825,7 +13029,7 @@ class Obj2 {
      * @return ForClass
      */
     public static function sampleFor(): ForClass {
-        return ForClass::sample(); /*68:for*/
+        return ForClass::sample(); /*75:for*/
     }
 
     /**
@@ -13873,7 +13077,7 @@ class Obj2 {
      * @return ForeachClass
      */
     public static function sampleForeach(): ForeachClass {
-        return ForeachClass::sample(); /*69:foreach*/
+        return ForeachClass::sample(); /*76:foreach*/
     }
 
     /**
@@ -13921,7 +13125,7 @@ class Obj2 {
      * @return FormatException
      */
     public static function sampleFormatException(): FormatException {
-        return FormatException::sample(); /*70:formatException*/
+        return FormatException::sample(); /*77:formatException*/
     }
 
     /**
@@ -13969,7 +13173,7 @@ class Obj2 {
      * @return Friend
      */
     public static function sampleFriend(): Friend {
-        return Friend::sample(); /*71:friend*/
+        return Friend::sample(); /*78:friend*/
     }
 
     /**
@@ -14017,7 +13221,7 @@ class Obj2 {
      * @return From
      */
     public static function sampleFrom(): From {
-        return From::sample(); /*72:from*/
+        return From::sample(); /*79:from*/
     }
 
     /**
@@ -14065,7 +13269,7 @@ class Obj2 {
      * @return FromJSON
      */
     public static function sampleFromJSON(): FromJSON {
-        return FromJSON::sample(); /*73:fromJSON*/
+        return FromJSON::sample(); /*80:fromJSON*/
     }
 
     /**
@@ -14113,7 +13317,7 @@ class Obj2 {
      * @return Func
      */
     public static function sampleFunc(): Func {
-        return Func::sample(); /*74:func*/
+        return Func::sample(); /*81:func*/
     }
 
     /**
@@ -14161,7 +13365,7 @@ class Obj2 {
      * @return FunctionClass
      */
     public static function sampleFunction(): FunctionClass {
-        return FunctionClass::sample(); /*75:function*/
+        return FunctionClass::sample(); /*82:function*/
     }
 
     /**
@@ -14209,7 +13413,7 @@ class Obj2 {
      * @return Get
      */
     public static function sampleGet(): Get {
-        return Get::sample(); /*76:get*/
+        return Get::sample(); /*83:get*/
     }
 
     /**
@@ -14257,7 +13461,7 @@ class Obj2 {
      * @return GlobalClass
      */
     public static function sampleGlobal(): GlobalClass {
-        return GlobalClass::sample(); /*77:global*/
+        return GlobalClass::sample(); /*84:global*/
     }
 
     /**
@@ -14305,7 +13509,7 @@ class Obj2 {
      * @return Go
      */
     public static function sampleGo(): Go {
-        return Go::sample(); /*78:go*/
+        return Go::sample(); /*85:go*/
     }
 
     /**
@@ -14353,7 +13557,7 @@ class Obj2 {
      * @return GotoClass
      */
     public static function sampleGoto(): GotoClass {
-        return GotoClass::sample(); /*79:goto*/
+        return GotoClass::sample(); /*86:goto*/
     }
 
     /**
@@ -14401,7 +13605,7 @@ class Obj2 {
      * @return Guard
      */
     public static function sampleGuard(): Guard {
-        return Guard::sample(); /*80:guard*/
+        return Guard::sample(); /*87:guard*/
     }
 
     /**
@@ -14449,7 +13653,7 @@ class Obj2 {
      * @return HasOwnProperty
      */
     public static function sampleHasOwnProperty(): HasOwnProperty {
-        return HasOwnProperty::sample(); /*81:hasOwnProperty*/
+        return HasOwnProperty::sample(); /*88:hasOwnProperty*/
     }
 
     /**
@@ -14497,7 +13701,7 @@ class Obj2 {
      * @return HashCode
      */
     public static function sampleHashCode(): HashCode {
-        return HashCode::sample(); /*82:hashCode*/
+        return HashCode::sample(); /*89:hashCode*/
     }
 
     /**
@@ -14545,7 +13749,7 @@ class Obj2 {
      * @return ID
      */
     public static function sampleID(): ID {
-        return ID::sample(); /*83:id*/
+        return ID::sample(); /*90:id*/
     }
 
     /**
@@ -14593,7 +13797,7 @@ class Obj2 {
      * @return IfClass
      */
     public static function sampleIf(): IfClass {
-        return IfClass::sample(); /*84:if*/
+        return IfClass::sample(); /*91:if*/
     }
 
     /**
@@ -14641,7 +13845,7 @@ class Obj2 {
      * @return Imp
      */
     public static function sampleImp(): Imp {
-        return Imp::sample(); /*85:imp*/
+        return Imp::sample(); /*92:imp*/
     }
 
     /**
@@ -14689,7 +13893,7 @@ class Obj2 {
      * @return ImplementsClass
      */
     public static function sampleImplements(): ImplementsClass {
-        return ImplementsClass::sample(); /*86:implements*/
+        return ImplementsClass::sample(); /*93:implements*/
     }
 
     /**
@@ -14737,535 +13941,7 @@ class Obj2 {
      * @return Implicit
      */
     public static function sampleImplicit(): Implicit {
-        return Implicit::sample(); /*87:implicit*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Import
-     */
-    public static function fromImport(stdClass $value): Import {
-        return Import::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toImport(): stdClass {
-        if (Obj2::validateImport($this->import))  {
-            return $this->import->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::import');
-    }
-
-    /**
-     * @param Import
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateImport(Import $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Import
-     */
-    public function getImport(): Import {
-        if (Obj2::validateImport($this->import))  {
-            return $this->import;
-        }
-        throw new Exception('never get to getImport Obj2::import');
-    }
-
-    /**
-     * @return Import
-     */
-    public static function sampleImport(): Import {
-        return Import::sample(); /*88:import*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return In
-     */
-    public static function fromIn(stdClass $value): In {
-        return In::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toIn(): stdClass {
-        if (Obj2::validateIn($this->in))  {
-            return $this->in->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::in');
-    }
-
-    /**
-     * @param In
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateIn(In $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return In
-     */
-    public function getIn(): In {
-        if (Obj2::validateIn($this->in))  {
-            return $this->in;
-        }
-        throw new Exception('never get to getIn Obj2::in');
-    }
-
-    /**
-     * @return In
-     */
-    public static function sampleIn(): In {
-        return In::sample(); /*89:in*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Indirect
-     */
-    public static function fromIndirect(stdClass $value): Indirect {
-        return Indirect::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toIndirect(): stdClass {
-        if (Obj2::validateIndirect($this->indirect))  {
-            return $this->indirect->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::indirect');
-    }
-
-    /**
-     * @param Indirect
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateIndirect(Indirect $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Indirect
-     */
-    public function getIndirect(): Indirect {
-        if (Obj2::validateIndirect($this->indirect))  {
-            return $this->indirect;
-        }
-        throw new Exception('never get to getIndirect Obj2::indirect');
-    }
-
-    /**
-     * @return Indirect
-     */
-    public static function sampleIndirect(): Indirect {
-        return Indirect::sample(); /*90:indirect*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Infix
-     */
-    public static function fromInfix(stdClass $value): Infix {
-        return Infix::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInfix(): stdClass {
-        if (Obj2::validateInfix($this->infix))  {
-            return $this->infix->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::infix');
-    }
-
-    /**
-     * @param Infix
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInfix(Infix $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Infix
-     */
-    public function getInfix(): Infix {
-        if (Obj2::validateInfix($this->infix))  {
-            return $this->infix;
-        }
-        throw new Exception('never get to getInfix Obj2::infix');
-    }
-
-    /**
-     * @return Infix
-     */
-    public static function sampleInfix(): Infix {
-        return Infix::sample(); /*91:infix*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Init
-     */
-    public static function fromInit(stdClass $value): Init {
-        return Init::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInit(): stdClass {
-        if (Obj2::validateInit($this->init))  {
-            return $this->init->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::init');
-    }
-
-    /**
-     * @param Init
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInit(Init $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Init
-     */
-    public function getInit(): Init {
-        if (Obj2::validateInit($this->init))  {
-            return $this->init;
-        }
-        throw new Exception('never get to getInit Obj2::init');
-    }
-
-    /**
-     * @return Init
-     */
-    public static function sampleInit(): Init {
-        return Init::sample(); /*92:init*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Inline
-     */
-    public static function fromInline(stdClass $value): Inline {
-        return Inline::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInline(): stdClass {
-        if (Obj2::validateInline($this->inline))  {
-            return $this->inline->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::inline');
-    }
-
-    /**
-     * @param Inline
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInline(Inline $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Inline
-     */
-    public function getInline(): Inline {
-        if (Obj2::validateInline($this->inline))  {
-            return $this->inline;
-        }
-        throw new Exception('never get to getInline Obj2::inline');
-    }
-
-    /**
-     * @return Inline
-     */
-    public static function sampleInline(): Inline {
-        return Inline::sample(); /*93:inline*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Inout
-     */
-    public static function fromInout(stdClass $value): Inout {
-        return Inout::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInout(): stdClass {
-        if (Obj2::validateInout($this->inout))  {
-            return $this->inout->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::inout');
-    }
-
-    /**
-     * @param Inout
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInout(Inout $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Inout
-     */
-    public function getInout(): Inout {
-        if (Obj2::validateInout($this->inout))  {
-            return $this->inout;
-        }
-        throw new Exception('never get to getInout Obj2::inout');
-    }
-
-    /**
-     * @return Inout
-     */
-    public static function sampleInout(): Inout {
-        return Inout::sample(); /*94:inout*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return InstanceofClass
-     */
-    public static function fromInstanceof(stdClass $value): InstanceofClass {
-        return InstanceofClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInstanceof(): stdClass {
-        if (Obj2::validateInstanceof($this->instanceof))  {
-            return $this->instanceof->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::instanceof');
-    }
-
-    /**
-     * @param InstanceofClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInstanceof(InstanceofClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return InstanceofClass
-     */
-    public function getInstanceof(): InstanceofClass {
-        if (Obj2::validateInstanceof($this->instanceof))  {
-            return $this->instanceof;
-        }
-        throw new Exception('never get to getInstanceof Obj2::instanceof');
-    }
-
-    /**
-     * @return InstanceofClass
-     */
-    public static function sampleInstanceof(): InstanceofClass {
-        return InstanceofClass::sample(); /*95:instanceof*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return IntClass
-     */
-    public static function fromInt(stdClass $value): IntClass {
-        return IntClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInt(): stdClass {
-        if (Obj2::validateInt($this->int))  {
-            return $this->int->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::int');
-    }
-
-    /**
-     * @param IntClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInt(IntClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return IntClass
-     */
-    public function getInt(): IntClass {
-        if (Obj2::validateInt($this->int))  {
-            return $this->int;
-        }
-        throw new Exception('never get to getInt Obj2::int');
-    }
-
-    /**
-     * @return IntClass
-     */
-    public static function sampleInt(): IntClass {
-        return IntClass::sample(); /*96:int*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return InterfaceClass
-     */
-    public static function fromInterface(stdClass $value): InterfaceClass {
-        return InterfaceClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInterface(): stdClass {
-        if (Obj2::validateInterface($this->interface))  {
-            return $this->interface->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::interface');
-    }
-
-    /**
-     * @param InterfaceClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInterface(InterfaceClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return InterfaceClass
-     */
-    public function getInterface(): InterfaceClass {
-        if (Obj2::validateInterface($this->interface))  {
-            return $this->interface;
-        }
-        throw new Exception('never get to getInterface Obj2::interface');
-    }
-
-    /**
-     * @return InterfaceClass
-     */
-    public static function sampleInterface(): InterfaceClass {
-        return InterfaceClass::sample(); /*97:interface*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Internal
-     */
-    public static function fromInternal(stdClass $value): Internal {
-        return Internal::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toInternal(): stdClass {
-        if (Obj2::validateInternal($this->internal))  {
-            return $this->internal->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj2::internal');
-    }
-
-    /**
-     * @param Internal
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInternal(Internal $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Internal
-     */
-    public function getInternal(): Internal {
-        if (Obj2::validateInternal($this->internal))  {
-            return $this->internal;
-        }
-        throw new Exception('never get to getInternal Obj2::internal');
-    }
-
-    /**
-     * @return Internal
-     */
-    public static function sampleInternal(): Internal {
-        return Internal::sample(); /*98:internal*/
+        return Implicit::sample(); /*94:implicit*/
     }
 
     /**
@@ -15313,7 +13989,7 @@ class Obj2 {
      * @return Obj2False
      */
     public static function sampleObj2False(): Obj2False {
-        return Obj2False::sample(); /*99:obj2False*/
+        return Obj2False::sample(); /*95:obj2False*/
     }
 
     /**
@@ -15321,7 +13997,14 @@ class Obj2 {
      * @return bool
      */
     public function validate(): bool {
-        return Obj2::validateDef($this->def)
+        return Obj2::validateDateTime($this->dateTime)
+        || Obj2::validateDateTimeStyles($this->dateTimeStyles)
+        || Obj2::validateDebugger($this->debugger)
+        || Obj2::validateDecimal($this->decimal)
+        || Obj2::validateDeclare($this->declare)
+        || Obj2::validateDecltype($this->decltype)
+        || Obj2::validateDecodeString($this->decodeString)
+        || Obj2::validateDef($this->def)
         || Obj2::validateDefault($this->default)
         || Obj2::validateDefer($this->defer)
         || Obj2::validateDeinit($this->deinit)
@@ -15378,17 +14061,6 @@ class Obj2 {
         || Obj2::validateImp($this->imp)
         || Obj2::validateImplements($this->implements)
         || Obj2::validateImplicit($this->implicit)
-        || Obj2::validateImport($this->import)
-        || Obj2::validateIn($this->in)
-        || Obj2::validateIndirect($this->indirect)
-        || Obj2::validateInfix($this->infix)
-        || Obj2::validateInit($this->init)
-        || Obj2::validateInline($this->inline)
-        || Obj2::validateInout($this->inout)
-        || Obj2::validateInstanceof($this->instanceof)
-        || Obj2::validateInt($this->int)
-        || Obj2::validateInterface($this->interface)
-        || Obj2::validateInternal($this->internal)
         || Obj2::validateObj2False($this->obj2False);
     }
 
@@ -15398,6 +14070,13 @@ class Obj2 {
      */
     public function to(): stdClass  {
         $out = new stdClass();
+        $out->{'DateTime'} = $this->toDateTime();
+        $out->{'DateTimeStyles'} = $this->toDateTimeStyles();
+        $out->{'debugger'} = $this->toDebugger();
+        $out->{'decimal'} = $this->toDecimal();
+        $out->{'declare'} = $this->toDeclare();
+        $out->{'decltype'} = $this->toDecltype();
+        $out->{'decode_string'} = $this->toDecodeString();
         $out->{'def'} = $this->toDef();
         $out->{'default'} = $this->toDefault();
         $out->{'defer'} = $this->toDefer();
@@ -15455,17 +14134,6 @@ class Obj2 {
         $out->{'IMP'} = $this->toImp();
         $out->{'implements'} = $this->toImplements();
         $out->{'implicit'} = $this->toImplicit();
-        $out->{'import'} = $this->toImport();
-        $out->{'in'} = $this->toIn();
-        $out->{'indirect'} = $this->toIndirect();
-        $out->{'infix'} = $this->toInfix();
-        $out->{'init'} = $this->toInit();
-        $out->{'inline'} = $this->toInline();
-        $out->{'inout'} = $this->toInout();
-        $out->{'instanceof'} = $this->toInstanceof();
-        $out->{'int'} = $this->toInt();
-        $out->{'interface'} = $this->toInterface();
-        $out->{'internal'} = $this->toInternal();
         $out->{'false'} = $this->toObj2False();
         return $out;
     }
@@ -15476,6 +14144,27 @@ class Obj2 {
      * @throws Exception
      */
     public static function from(stdClass $obj): Obj2 {
+        if (!property_exists($obj, 'DateTime')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'DateTimeStyles')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'debugger')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'decimal')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'declare')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'decltype')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'decode_string')) {
+            throw new Exception("Missing required property");
+        }
         if (!property_exists($obj, 'def')) {
             throw new Exception("Missing required property");
         }
@@ -15647,44 +14336,18 @@ class Obj2 {
         if (!property_exists($obj, 'implicit')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'import')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'in')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'indirect')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'infix')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'init')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'inline')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'inout')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'instanceof')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'int')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'interface')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'internal')) {
-            throw new Exception("Missing required property");
-        }
         if (!property_exists($obj, 'false')) {
             throw new Exception("Missing required property");
         }
         return new Obj2(
-         Obj2::fromDef($obj->{'def'})
+         Obj2::fromDateTime($obj->{'DateTime'})
+        ,Obj2::fromDateTimeStyles($obj->{'DateTimeStyles'})
+        ,Obj2::fromDebugger($obj->{'debugger'})
+        ,Obj2::fromDecimal($obj->{'decimal'})
+        ,Obj2::fromDeclare($obj->{'declare'})
+        ,Obj2::fromDecltype($obj->{'decltype'})
+        ,Obj2::fromDecodeString($obj->{'decode_string'})
+        ,Obj2::fromDef($obj->{'def'})
         ,Obj2::fromDefault($obj->{'default'})
         ,Obj2::fromDefer($obj->{'defer'})
         ,Obj2::fromDeinit($obj->{'deinit'})
@@ -15741,17 +14404,6 @@ class Obj2 {
         ,Obj2::fromImp($obj->{'IMP'})
         ,Obj2::fromImplements($obj->{'implements'})
         ,Obj2::fromImplicit($obj->{'implicit'})
-        ,Obj2::fromImport($obj->{'import'})
-        ,Obj2::fromIn($obj->{'in'})
-        ,Obj2::fromIndirect($obj->{'indirect'})
-        ,Obj2::fromInfix($obj->{'infix'})
-        ,Obj2::fromInit($obj->{'init'})
-        ,Obj2::fromInline($obj->{'inline'})
-        ,Obj2::fromInout($obj->{'inout'})
-        ,Obj2::fromInstanceof($obj->{'instanceof'})
-        ,Obj2::fromInt($obj->{'int'})
-        ,Obj2::fromInterface($obj->{'interface'})
-        ,Obj2::fromInternal($obj->{'internal'})
         ,Obj2::fromObj2False($obj->{'false'})
         );
     }
@@ -15761,7 +14413,14 @@ class Obj2 {
      */
     public static function sample(): Obj2 {
         return new Obj2(
-         Obj2::sampleDef()
+         Obj2::sampleDateTime()
+        ,Obj2::sampleDateTimeStyles()
+        ,Obj2::sampleDebugger()
+        ,Obj2::sampleDecimal()
+        ,Obj2::sampleDeclare()
+        ,Obj2::sampleDecltype()
+        ,Obj2::sampleDecodeString()
+        ,Obj2::sampleDef()
         ,Obj2::sampleDefault()
         ,Obj2::sampleDefer()
         ,Obj2::sampleDeinit()
@@ -15818,79 +14477,75 @@ class Obj2 {
         ,Obj2::sampleImp()
         ,Obj2::sampleImplements()
         ,Obj2::sampleImplicit()
-        ,Obj2::sampleImport()
-        ,Obj2::sampleIn()
-        ,Obj2::sampleIndirect()
-        ,Obj2::sampleInfix()
-        ,Obj2::sampleInit()
-        ,Obj2::sampleInline()
-        ,Obj2::sampleInout()
-        ,Obj2::sampleInstanceof()
-        ,Obj2::sampleInt()
-        ,Obj2::sampleInterface()
-        ,Obj2::sampleInternal()
         ,Obj2::sampleObj2False()
         );
     }
 }
 
-// This is an autogenerated file:Def
+// This is an autogenerated file:DateTimeClass
 
-class Def {
-    private int $def; // json:def Required
+class DateTimeClass {
+    private DateTime $dateTime; // json:DateTime Required
 
     /**
-     * @param int $def
+     * @param DateTime $dateTime
      */
-    public function __construct(int $def) {
-        $this->def = $def;
+    public function __construct(DateTime $dateTime) {
+        $this->dateTime = $dateTime;
     }
 
     /**
-     * @param int $value
+     * @param string $value
      * @throws Exception
-     * @return int
+     * @return DateTime
      */
-    public static function fromDef(int $value): int {
-        return $value; /*int*/
+    public static function fromDateTime(string $value): DateTime {
+        $tmp = new DateTime($value);
+        if (!is_a($tmp, 'DateTime')) {
+            throw new Exception('Attribute Error:DateTimeClass::');
+        }
+        return $tmp;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return string
      */
-    public function toDef(): int {
-        if (Def::validateDef($this->def))  {
-            return $this->def; /*int*/
+    public function toDateTime(): string {
+        if (DateTimeClass::validateDateTime($this->dateTime))  {
+            return $this->dateTime->format("Y-m-d\\TH:i:s.uP");
         }
-        throw new Exception('never get to this Def::def');
+        throw new Exception('never get to this DateTimeClass::dateTime');
     }
 
     /**
-     * @param int
+     * @param DateTime
      * @return bool
      * @throws Exception
      */
-    public static function validateDef(int $value): bool {
+    public static function validateDateTime(DateTime $value): bool {
+        if (!is_a($value, 'DateTime')) {
+            throw new Exception('Attribute Error:DateTimeClass::dateTime');
+        }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return DateTime
      */
-    public function getDef(): int {
-        if (Def::validateDef($this->def))  {
-            return $this->def;
+    public function getDateTime(): DateTime {
+        if (DateTimeClass::validateDateTime($this->dateTime))  {
+            return $this->dateTime;
         }
-        throw new Exception('never get to getDef Def::def');
+        throw new Exception('never get to getDateTime DateTimeClass::dateTime');
     }
 
     /**
-     * @return int
+     * @return DateTime
      */
-    public static function sampleDef(): int {
-        return 31; /*31:def*/
+    public static function sampleDateTime(): DateTime {
+        return DateTime::createFromFormat(DateTimeInterface::ISO8601, '2020-12-10T12:10:10+00:00');
     }
 
     /**
@@ -15898,7 +14553,7 @@ class Def {
      * @return bool
      */
     public function validate(): bool {
-        return Def::validateDef($this->def);
+        return DateTimeClass::validateDateTime($this->dateTime);
     }
 
     /**
@@ -15907,44 +14562,44 @@ class Def {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'def'} = $this->toDef();
+        $out->{'DateTime'} = $this->toDateTime();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Def
+     * @return DateTimeClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Def {
-        if (!property_exists($obj, 'def')) {
+    public static function from(stdClass $obj): DateTimeClass {
+        if (!property_exists($obj, 'DateTime')) {
             throw new Exception("Missing required property");
         }
-        return new Def(
-         Def::fromDef($obj->{'def'})
+        return new DateTimeClass(
+         DateTimeClass::fromDateTime($obj->{'DateTime'})
         );
     }
 
     /**
-     * @return Def
+     * @return DateTimeClass
      */
-    public static function sample(): Def {
-        return new Def(
-         Def::sampleDef()
+    public static function sample(): DateTimeClass {
+        return new DateTimeClass(
+         DateTimeClass::sampleDateTime()
         );
     }
 }
 
-// This is an autogenerated file:DefaultClass
+// This is an autogenerated file:DateTimeStyles
 
-class DefaultClass {
-    private int $default; // json:default Required
+class DateTimeStyles {
+    private int $dateTimeStyles; // json:DateTimeStyles Required
 
     /**
-     * @param int $default
+     * @param int $dateTimeStyles
      */
-    public function __construct(int $default) {
-        $this->default = $default;
+    public function __construct(int $dateTimeStyles) {
+        $this->dateTimeStyles = $dateTimeStyles;
     }
 
     /**
@@ -15952,7 +14607,7 @@ class DefaultClass {
      * @throws Exception
      * @return int
      */
-    public static function fromDefault(int $value): int {
+    public static function fromDateTimeStyles(int $value): int {
         return $value; /*int*/
     }
 
@@ -15960,11 +14615,11 @@ class DefaultClass {
      * @throws Exception
      * @return int
      */
-    public function toDefault(): int {
-        if (DefaultClass::validateDefault($this->default))  {
-            return $this->default; /*int*/
+    public function toDateTimeStyles(): int {
+        if (DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles))  {
+            return $this->dateTimeStyles; /*int*/
         }
-        throw new Exception('never get to this DefaultClass::default');
+        throw new Exception('never get to this DateTimeStyles::dateTimeStyles');
     }
 
     /**
@@ -15972,7 +14627,7 @@ class DefaultClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateDefault(int $value): bool {
+    public static function validateDateTimeStyles(int $value): bool {
         return true;
     }
 
@@ -15980,18 +14635,18 @@ class DefaultClass {
      * @throws Exception
      * @return int
      */
-    public function getDefault(): int {
-        if (DefaultClass::validateDefault($this->default))  {
-            return $this->default;
+    public function getDateTimeStyles(): int {
+        if (DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles))  {
+            return $this->dateTimeStyles;
         }
-        throw new Exception('never get to getDefault DefaultClass::default');
+        throw new Exception('never get to getDateTimeStyles DateTimeStyles::dateTimeStyles');
     }
 
     /**
      * @return int
      */
-    public static function sampleDefault(): int {
-        return 31; /*31:default*/
+    public static function sampleDateTimeStyles(): int {
+        return 31; /*31:dateTimeStyles*/
     }
 
     /**
@@ -15999,7 +14654,7 @@ class DefaultClass {
      * @return bool
      */
     public function validate(): bool {
-        return DefaultClass::validateDefault($this->default);
+        return DateTimeStyles::validateDateTimeStyles($this->dateTimeStyles);
     }
 
     /**
@@ -16008,44 +14663,44 @@ class DefaultClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'default'} = $this->toDefault();
+        $out->{'DateTimeStyles'} = $this->toDateTimeStyles();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DefaultClass
+     * @return DateTimeStyles
      * @throws Exception
      */
-    public static function from(stdClass $obj): DefaultClass {
-        if (!property_exists($obj, 'default')) {
+    public static function from(stdClass $obj): DateTimeStyles {
+        if (!property_exists($obj, 'DateTimeStyles')) {
             throw new Exception("Missing required property");
         }
-        return new DefaultClass(
-         DefaultClass::fromDefault($obj->{'default'})
+        return new DateTimeStyles(
+         DateTimeStyles::fromDateTimeStyles($obj->{'DateTimeStyles'})
         );
     }
 
     /**
-     * @return DefaultClass
+     * @return DateTimeStyles
      */
-    public static function sample(): DefaultClass {
-        return new DefaultClass(
-         DefaultClass::sampleDefault()
+    public static function sample(): DateTimeStyles {
+        return new DateTimeStyles(
+         DateTimeStyles::sampleDateTimeStyles()
         );
     }
 }
 
-// This is an autogenerated file:Defer
+// This is an autogenerated file:Debugger
 
-class Defer {
-    private int $defer; // json:defer Required
+class Debugger {
+    private int $debugger; // json:debugger Required
 
     /**
-     * @param int $defer
+     * @param int $debugger
      */
-    public function __construct(int $defer) {
-        $this->defer = $defer;
+    public function __construct(int $debugger) {
+        $this->debugger = $debugger;
     }
 
     /**
@@ -16053,7 +14708,7 @@ class Defer {
      * @throws Exception
      * @return int
      */
-    public static function fromDefer(int $value): int {
+    public static function fromDebugger(int $value): int {
         return $value; /*int*/
     }
 
@@ -16061,11 +14716,11 @@ class Defer {
      * @throws Exception
      * @return int
      */
-    public function toDefer(): int {
-        if (Defer::validateDefer($this->defer))  {
-            return $this->defer; /*int*/
+    public function toDebugger(): int {
+        if (Debugger::validateDebugger($this->debugger))  {
+            return $this->debugger; /*int*/
         }
-        throw new Exception('never get to this Defer::defer');
+        throw new Exception('never get to this Debugger::debugger');
     }
 
     /**
@@ -16073,7 +14728,7 @@ class Defer {
      * @return bool
      * @throws Exception
      */
-    public static function validateDefer(int $value): bool {
+    public static function validateDebugger(int $value): bool {
         return true;
     }
 
@@ -16081,18 +14736,18 @@ class Defer {
      * @throws Exception
      * @return int
      */
-    public function getDefer(): int {
-        if (Defer::validateDefer($this->defer))  {
-            return $this->defer;
+    public function getDebugger(): int {
+        if (Debugger::validateDebugger($this->debugger))  {
+            return $this->debugger;
         }
-        throw new Exception('never get to getDefer Defer::defer');
+        throw new Exception('never get to getDebugger Debugger::debugger');
     }
 
     /**
      * @return int
      */
-    public static function sampleDefer(): int {
-        return 31; /*31:defer*/
+    public static function sampleDebugger(): int {
+        return 31; /*31:debugger*/
     }
 
     /**
@@ -16100,7 +14755,7 @@ class Defer {
      * @return bool
      */
     public function validate(): bool {
-        return Defer::validateDefer($this->defer);
+        return Debugger::validateDebugger($this->debugger);
     }
 
     /**
@@ -16109,44 +14764,44 @@ class Defer {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'defer'} = $this->toDefer();
+        $out->{'debugger'} = $this->toDebugger();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Defer
+     * @return Debugger
      * @throws Exception
      */
-    public static function from(stdClass $obj): Defer {
-        if (!property_exists($obj, 'defer')) {
+    public static function from(stdClass $obj): Debugger {
+        if (!property_exists($obj, 'debugger')) {
             throw new Exception("Missing required property");
         }
-        return new Defer(
-         Defer::fromDefer($obj->{'defer'})
+        return new Debugger(
+         Debugger::fromDebugger($obj->{'debugger'})
         );
     }
 
     /**
-     * @return Defer
+     * @return Debugger
      */
-    public static function sample(): Defer {
-        return new Defer(
-         Defer::sampleDefer()
+    public static function sample(): Debugger {
+        return new Debugger(
+         Debugger::sampleDebugger()
         );
     }
 }
 
-// This is an autogenerated file:Deinit
+// This is an autogenerated file:Decimal
 
-class Deinit {
-    private int $deinit; // json:deinit Required
+class Decimal {
+    private int $decimal; // json:decimal Required
 
     /**
-     * @param int $deinit
+     * @param int $decimal
      */
-    public function __construct(int $deinit) {
-        $this->deinit = $deinit;
+    public function __construct(int $decimal) {
+        $this->decimal = $decimal;
     }
 
     /**
@@ -16154,7 +14809,7 @@ class Deinit {
      * @throws Exception
      * @return int
      */
-    public static function fromDeinit(int $value): int {
+    public static function fromDecimal(int $value): int {
         return $value; /*int*/
     }
 
@@ -16162,11 +14817,11 @@ class Deinit {
      * @throws Exception
      * @return int
      */
-    public function toDeinit(): int {
-        if (Deinit::validateDeinit($this->deinit))  {
-            return $this->deinit; /*int*/
+    public function toDecimal(): int {
+        if (Decimal::validateDecimal($this->decimal))  {
+            return $this->decimal; /*int*/
         }
-        throw new Exception('never get to this Deinit::deinit');
+        throw new Exception('never get to this Decimal::decimal');
     }
 
     /**
@@ -16174,7 +14829,7 @@ class Deinit {
      * @return bool
      * @throws Exception
      */
-    public static function validateDeinit(int $value): bool {
+    public static function validateDecimal(int $value): bool {
         return true;
     }
 
@@ -16182,18 +14837,18 @@ class Deinit {
      * @throws Exception
      * @return int
      */
-    public function getDeinit(): int {
-        if (Deinit::validateDeinit($this->deinit))  {
-            return $this->deinit;
+    public function getDecimal(): int {
+        if (Decimal::validateDecimal($this->decimal))  {
+            return $this->decimal;
         }
-        throw new Exception('never get to getDeinit Deinit::deinit');
+        throw new Exception('never get to getDecimal Decimal::decimal');
     }
 
     /**
      * @return int
      */
-    public static function sampleDeinit(): int {
-        return 31; /*31:deinit*/
+    public static function sampleDecimal(): int {
+        return 31; /*31:decimal*/
     }
 
     /**
@@ -16201,7 +14856,7 @@ class Deinit {
      * @return bool
      */
     public function validate(): bool {
-        return Deinit::validateDeinit($this->deinit);
+        return Decimal::validateDecimal($this->decimal);
     }
 
     /**
@@ -16210,44 +14865,44 @@ class Deinit {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'deinit'} = $this->toDeinit();
+        $out->{'decimal'} = $this->toDecimal();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Deinit
+     * @return Decimal
      * @throws Exception
      */
-    public static function from(stdClass $obj): Deinit {
-        if (!property_exists($obj, 'deinit')) {
+    public static function from(stdClass $obj): Decimal {
+        if (!property_exists($obj, 'decimal')) {
             throw new Exception("Missing required property");
         }
-        return new Deinit(
-         Deinit::fromDeinit($obj->{'deinit'})
+        return new Decimal(
+         Decimal::fromDecimal($obj->{'decimal'})
         );
     }
 
     /**
-     * @return Deinit
+     * @return Decimal
      */
-    public static function sample(): Deinit {
-        return new Deinit(
-         Deinit::sampleDeinit()
+    public static function sample(): Decimal {
+        return new Decimal(
+         Decimal::sampleDecimal()
         );
     }
 }
 
-// This is an autogenerated file:Del
+// This is an autogenerated file:DeclareClass
 
-class Del {
-    private int $del; // json:del Required
+class DeclareClass {
+    private int $declare; // json:declare Required
 
     /**
-     * @param int $del
+     * @param int $declare
      */
-    public function __construct(int $del) {
-        $this->del = $del;
+    public function __construct(int $declare) {
+        $this->declare = $declare;
     }
 
     /**
@@ -16255,7 +14910,7 @@ class Del {
      * @throws Exception
      * @return int
      */
-    public static function fromDel(int $value): int {
+    public static function fromDeclare(int $value): int {
         return $value; /*int*/
     }
 
@@ -16263,11 +14918,11 @@ class Del {
      * @throws Exception
      * @return int
      */
-    public function toDel(): int {
-        if (Del::validateDel($this->del))  {
-            return $this->del; /*int*/
+    public function toDeclare(): int {
+        if (DeclareClass::validateDeclare($this->declare))  {
+            return $this->declare; /*int*/
         }
-        throw new Exception('never get to this Del::del');
+        throw new Exception('never get to this DeclareClass::declare');
     }
 
     /**
@@ -16275,7 +14930,7 @@ class Del {
      * @return bool
      * @throws Exception
      */
-    public static function validateDel(int $value): bool {
+    public static function validateDeclare(int $value): bool {
         return true;
     }
 
@@ -16283,18 +14938,18 @@ class Del {
      * @throws Exception
      * @return int
      */
-    public function getDel(): int {
-        if (Del::validateDel($this->del))  {
-            return $this->del;
+    public function getDeclare(): int {
+        if (DeclareClass::validateDeclare($this->declare))  {
+            return $this->declare;
         }
-        throw new Exception('never get to getDel Del::del');
+        throw new Exception('never get to getDeclare DeclareClass::declare');
     }
 
     /**
      * @return int
      */
-    public static function sampleDel(): int {
-        return 31; /*31:del*/
+    public static function sampleDeclare(): int {
+        return 31; /*31:declare*/
     }
 
     /**
@@ -16302,7 +14957,7 @@ class Del {
      * @return bool
      */
     public function validate(): bool {
-        return Del::validateDel($this->del);
+        return DeclareClass::validateDeclare($this->declare);
     }
 
     /**
@@ -16311,44 +14966,44 @@ class Del {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'del'} = $this->toDel();
+        $out->{'declare'} = $this->toDeclare();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Del
+     * @return DeclareClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Del {
-        if (!property_exists($obj, 'del')) {
+    public static function from(stdClass $obj): DeclareClass {
+        if (!property_exists($obj, 'declare')) {
             throw new Exception("Missing required property");
         }
-        return new Del(
-         Del::fromDel($obj->{'del'})
+        return new DeclareClass(
+         DeclareClass::fromDeclare($obj->{'declare'})
         );
     }
 
     /**
-     * @return Del
+     * @return DeclareClass
      */
-    public static function sample(): Del {
-        return new Del(
-         Del::sampleDel()
+    public static function sample(): DeclareClass {
+        return new DeclareClass(
+         DeclareClass::sampleDeclare()
         );
     }
 }
 
-// This is an autogenerated file:Delegate
+// This is an autogenerated file:Decltype
 
-class Delegate {
-    private int $delegate; // json:delegate Required
+class Decltype {
+    private int $decltype; // json:decltype Required
 
     /**
-     * @param int $delegate
+     * @param int $decltype
      */
-    public function __construct(int $delegate) {
-        $this->delegate = $delegate;
+    public function __construct(int $decltype) {
+        $this->decltype = $decltype;
     }
 
     /**
@@ -16356,7 +15011,7 @@ class Delegate {
      * @throws Exception
      * @return int
      */
-    public static function fromDelegate(int $value): int {
+    public static function fromDecltype(int $value): int {
         return $value; /*int*/
     }
 
@@ -16364,11 +15019,11 @@ class Delegate {
      * @throws Exception
      * @return int
      */
-    public function toDelegate(): int {
-        if (Delegate::validateDelegate($this->delegate))  {
-            return $this->delegate; /*int*/
+    public function toDecltype(): int {
+        if (Decltype::validateDecltype($this->decltype))  {
+            return $this->decltype; /*int*/
         }
-        throw new Exception('never get to this Delegate::delegate');
+        throw new Exception('never get to this Decltype::decltype');
     }
 
     /**
@@ -16376,7 +15031,7 @@ class Delegate {
      * @return bool
      * @throws Exception
      */
-    public static function validateDelegate(int $value): bool {
+    public static function validateDecltype(int $value): bool {
         return true;
     }
 
@@ -16384,18 +15039,18 @@ class Delegate {
      * @throws Exception
      * @return int
      */
-    public function getDelegate(): int {
-        if (Delegate::validateDelegate($this->delegate))  {
-            return $this->delegate;
+    public function getDecltype(): int {
+        if (Decltype::validateDecltype($this->decltype))  {
+            return $this->decltype;
         }
-        throw new Exception('never get to getDelegate Delegate::delegate');
+        throw new Exception('never get to getDecltype Decltype::decltype');
     }
 
     /**
      * @return int
      */
-    public static function sampleDelegate(): int {
-        return 31; /*31:delegate*/
+    public static function sampleDecltype(): int {
+        return 31; /*31:decltype*/
     }
 
     /**
@@ -16403,7 +15058,7 @@ class Delegate {
      * @return bool
      */
     public function validate(): bool {
-        return Delegate::validateDelegate($this->delegate);
+        return Decltype::validateDecltype($this->decltype);
     }
 
     /**
@@ -16412,44 +15067,44 @@ class Delegate {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'delegate'} = $this->toDelegate();
+        $out->{'decltype'} = $this->toDecltype();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Delegate
+     * @return Decltype
      * @throws Exception
      */
-    public static function from(stdClass $obj): Delegate {
-        if (!property_exists($obj, 'delegate')) {
+    public static function from(stdClass $obj): Decltype {
+        if (!property_exists($obj, 'decltype')) {
             throw new Exception("Missing required property");
         }
-        return new Delegate(
-         Delegate::fromDelegate($obj->{'delegate'})
+        return new Decltype(
+         Decltype::fromDecltype($obj->{'decltype'})
         );
     }
 
     /**
-     * @return Delegate
+     * @return Decltype
      */
-    public static function sample(): Delegate {
-        return new Delegate(
-         Delegate::sampleDelegate()
+    public static function sample(): Decltype {
+        return new Decltype(
+         Decltype::sampleDecltype()
         );
     }
 }
 
-// This is an autogenerated file:Delete
+// This is an autogenerated file:DecodeString
 
-class Delete {
-    private int $delete; // json:delete Required
+class DecodeString {
+    private int $decodeString; // json:decode_string Required
 
     /**
-     * @param int $delete
+     * @param int $decodeString
      */
-    public function __construct(int $delete) {
-        $this->delete = $delete;
+    public function __construct(int $decodeString) {
+        $this->decodeString = $decodeString;
     }
 
     /**
@@ -16457,7 +15112,7 @@ class Delete {
      * @throws Exception
      * @return int
      */
-    public static function fromDelete(int $value): int {
+    public static function fromDecodeString(int $value): int {
         return $value; /*int*/
     }
 
@@ -16465,11 +15120,11 @@ class Delete {
      * @throws Exception
      * @return int
      */
-    public function toDelete(): int {
-        if (Delete::validateDelete($this->delete))  {
-            return $this->delete; /*int*/
+    public function toDecodeString(): int {
+        if (DecodeString::validateDecodeString($this->decodeString))  {
+            return $this->decodeString; /*int*/
         }
-        throw new Exception('never get to this Delete::delete');
+        throw new Exception('never get to this DecodeString::decodeString');
     }
 
     /**
@@ -16477,7 +15132,7 @@ class Delete {
      * @return bool
      * @throws Exception
      */
-    public static function validateDelete(int $value): bool {
+    public static function validateDecodeString(int $value): bool {
         return true;
     }
 
@@ -16485,18 +15140,18 @@ class Delete {
      * @throws Exception
      * @return int
      */
-    public function getDelete(): int {
-        if (Delete::validateDelete($this->delete))  {
-            return $this->delete;
+    public function getDecodeString(): int {
+        if (DecodeString::validateDecodeString($this->decodeString))  {
+            return $this->decodeString;
         }
-        throw new Exception('never get to getDelete Delete::delete');
+        throw new Exception('never get to getDecodeString DecodeString::decodeString');
     }
 
     /**
      * @return int
      */
-    public static function sampleDelete(): int {
-        return 31; /*31:delete*/
+    public static function sampleDecodeString(): int {
+        return 31; /*31:decodeString*/
     }
 
     /**
@@ -16504,7 +15159,7 @@ class Delete {
      * @return bool
      */
     public function validate(): bool {
-        return Delete::validateDelete($this->delete);
+        return DecodeString::validateDecodeString($this->decodeString);
     }
 
     /**
@@ -16513,44 +15168,44 @@ class Delete {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'delete'} = $this->toDelete();
+        $out->{'decode_string'} = $this->toDecodeString();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Delete
+     * @return DecodeString
      * @throws Exception
      */
-    public static function from(stdClass $obj): Delete {
-        if (!property_exists($obj, 'delete')) {
+    public static function from(stdClass $obj): DecodeString {
+        if (!property_exists($obj, 'decode_string')) {
             throw new Exception("Missing required property");
         }
-        return new Delete(
-         Delete::fromDelete($obj->{'delete'})
+        return new DecodeString(
+         DecodeString::fromDecodeString($obj->{'decode_string'})
         );
     }
 
     /**
-     * @return Delete
+     * @return DecodeString
      */
-    public static function sample(): Delete {
-        return new Delete(
-         Delete::sampleDelete()
+    public static function sample(): DecodeString {
+        return new DecodeString(
+         DecodeString::sampleDecodeString()
         );
     }
 }
 
-// This is an autogenerated file:Dict
+// This is an autogenerated file:Def
 
-class Dict {
-    private int $dict; // json:dict Required
+class Def {
+    private int $def; // json:def Required
 
     /**
-     * @param int $dict
+     * @param int $def
      */
-    public function __construct(int $dict) {
-        $this->dict = $dict;
+    public function __construct(int $def) {
+        $this->def = $def;
     }
 
     /**
@@ -16558,7 +15213,7 @@ class Dict {
      * @throws Exception
      * @return int
      */
-    public static function fromDict(int $value): int {
+    public static function fromDef(int $value): int {
         return $value; /*int*/
     }
 
@@ -16566,11 +15221,11 @@ class Dict {
      * @throws Exception
      * @return int
      */
-    public function toDict(): int {
-        if (Dict::validateDict($this->dict))  {
-            return $this->dict; /*int*/
+    public function toDef(): int {
+        if (Def::validateDef($this->def))  {
+            return $this->def; /*int*/
         }
-        throw new Exception('never get to this Dict::dict');
+        throw new Exception('never get to this Def::def');
     }
 
     /**
@@ -16578,7 +15233,7 @@ class Dict {
      * @return bool
      * @throws Exception
      */
-    public static function validateDict(int $value): bool {
+    public static function validateDef(int $value): bool {
         return true;
     }
 
@@ -16586,18 +15241,18 @@ class Dict {
      * @throws Exception
      * @return int
      */
-    public function getDict(): int {
-        if (Dict::validateDict($this->dict))  {
-            return $this->dict;
+    public function getDef(): int {
+        if (Def::validateDef($this->def))  {
+            return $this->def;
         }
-        throw new Exception('never get to getDict Dict::dict');
+        throw new Exception('never get to getDef Def::def');
     }
 
     /**
      * @return int
      */
-    public static function sampleDict(): int {
-        return 31; /*31:dict*/
+    public static function sampleDef(): int {
+        return 31; /*31:def*/
     }
 
     /**
@@ -16605,7 +15260,7 @@ class Dict {
      * @return bool
      */
     public function validate(): bool {
-        return Dict::validateDict($this->dict);
+        return Def::validateDef($this->def);
     }
 
     /**
@@ -16614,44 +15269,44 @@ class Dict {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dict'} = $this->toDict();
+        $out->{'def'} = $this->toDef();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Dict
+     * @return Def
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dict {
-        if (!property_exists($obj, 'dict')) {
+    public static function from(stdClass $obj): Def {
+        if (!property_exists($obj, 'def')) {
             throw new Exception("Missing required property");
         }
-        return new Dict(
-         Dict::fromDict($obj->{'dict'})
+        return new Def(
+         Def::fromDef($obj->{'def'})
         );
     }
 
     /**
-     * @return Dict
+     * @return Def
      */
-    public static function sample(): Dict {
-        return new Dict(
-         Dict::sampleDict()
+    public static function sample(): Def {
+        return new Def(
+         Def::sampleDef()
         );
     }
 }
 
-// This is an autogenerated file:Dictionary
+// This is an autogenerated file:DefaultClass
 
-class Dictionary {
-    private int $dictionary; // json:dictionary Required
+class DefaultClass {
+    private int $default; // json:default Required
 
     /**
-     * @param int $dictionary
+     * @param int $default
      */
-    public function __construct(int $dictionary) {
-        $this->dictionary = $dictionary;
+    public function __construct(int $default) {
+        $this->default = $default;
     }
 
     /**
@@ -16659,7 +15314,7 @@ class Dictionary {
      * @throws Exception
      * @return int
      */
-    public static function fromDictionary(int $value): int {
+    public static function fromDefault(int $value): int {
         return $value; /*int*/
     }
 
@@ -16667,11 +15322,11 @@ class Dictionary {
      * @throws Exception
      * @return int
      */
-    public function toDictionary(): int {
-        if (Dictionary::validateDictionary($this->dictionary))  {
-            return $this->dictionary; /*int*/
+    public function toDefault(): int {
+        if (DefaultClass::validateDefault($this->default))  {
+            return $this->default; /*int*/
         }
-        throw new Exception('never get to this Dictionary::dictionary');
+        throw new Exception('never get to this DefaultClass::default');
     }
 
     /**
@@ -16679,7 +15334,7 @@ class Dictionary {
      * @return bool
      * @throws Exception
      */
-    public static function validateDictionary(int $value): bool {
+    public static function validateDefault(int $value): bool {
         return true;
     }
 
@@ -16687,18 +15342,18 @@ class Dictionary {
      * @throws Exception
      * @return int
      */
-    public function getDictionary(): int {
-        if (Dictionary::validateDictionary($this->dictionary))  {
-            return $this->dictionary;
+    public function getDefault(): int {
+        if (DefaultClass::validateDefault($this->default))  {
+            return $this->default;
         }
-        throw new Exception('never get to getDictionary Dictionary::dictionary');
+        throw new Exception('never get to getDefault DefaultClass::default');
     }
 
     /**
      * @return int
      */
-    public static function sampleDictionary(): int {
-        return 31; /*31:dictionary*/
+    public static function sampleDefault(): int {
+        return 31; /*31:default*/
     }
 
     /**
@@ -16706,7 +15361,7 @@ class Dictionary {
      * @return bool
      */
     public function validate(): bool {
-        return Dictionary::validateDictionary($this->dictionary);
+        return DefaultClass::validateDefault($this->default);
     }
 
     /**
@@ -16715,44 +15370,44 @@ class Dictionary {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dictionary'} = $this->toDictionary();
+        $out->{'default'} = $this->toDefault();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Dictionary
+     * @return DefaultClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dictionary {
-        if (!property_exists($obj, 'dictionary')) {
+    public static function from(stdClass $obj): DefaultClass {
+        if (!property_exists($obj, 'default')) {
             throw new Exception("Missing required property");
         }
-        return new Dictionary(
-         Dictionary::fromDictionary($obj->{'dictionary'})
+        return new DefaultClass(
+         DefaultClass::fromDefault($obj->{'default'})
         );
     }
 
     /**
-     * @return Dictionary
+     * @return DefaultClass
      */
-    public static function sample(): Dictionary {
-        return new Dictionary(
-         Dictionary::sampleDictionary()
+    public static function sample(): DefaultClass {
+        return new DefaultClass(
+         DefaultClass::sampleDefault()
         );
     }
 }
 
-// This is an autogenerated file:DidSet
+// This is an autogenerated file:Defer
 
-class DidSet {
-    private int $didSet; // json:didSet Required
+class Defer {
+    private int $defer; // json:defer Required
 
     /**
-     * @param int $didSet
+     * @param int $defer
      */
-    public function __construct(int $didSet) {
-        $this->didSet = $didSet;
+    public function __construct(int $defer) {
+        $this->defer = $defer;
     }
 
     /**
@@ -16760,7 +15415,7 @@ class DidSet {
      * @throws Exception
      * @return int
      */
-    public static function fromDidSet(int $value): int {
+    public static function fromDefer(int $value): int {
         return $value; /*int*/
     }
 
@@ -16768,11 +15423,11 @@ class DidSet {
      * @throws Exception
      * @return int
      */
-    public function toDidSet(): int {
-        if (DidSet::validateDidSet($this->didSet))  {
-            return $this->didSet; /*int*/
+    public function toDefer(): int {
+        if (Defer::validateDefer($this->defer))  {
+            return $this->defer; /*int*/
         }
-        throw new Exception('never get to this DidSet::didSet');
+        throw new Exception('never get to this Defer::defer');
     }
 
     /**
@@ -16780,7 +15435,7 @@ class DidSet {
      * @return bool
      * @throws Exception
      */
-    public static function validateDidSet(int $value): bool {
+    public static function validateDefer(int $value): bool {
         return true;
     }
 
@@ -16788,18 +15443,18 @@ class DidSet {
      * @throws Exception
      * @return int
      */
-    public function getDidSet(): int {
-        if (DidSet::validateDidSet($this->didSet))  {
-            return $this->didSet;
+    public function getDefer(): int {
+        if (Defer::validateDefer($this->defer))  {
+            return $this->defer;
         }
-        throw new Exception('never get to getDidSet DidSet::didSet');
+        throw new Exception('never get to getDefer Defer::defer');
     }
 
     /**
      * @return int
      */
-    public static function sampleDidSet(): int {
-        return 31; /*31:didSet*/
+    public static function sampleDefer(): int {
+        return 31; /*31:defer*/
     }
 
     /**
@@ -16807,7 +15462,7 @@ class DidSet {
      * @return bool
      */
     public function validate(): bool {
-        return DidSet::validateDidSet($this->didSet);
+        return Defer::validateDefer($this->defer);
     }
 
     /**
@@ -16816,44 +15471,44 @@ class DidSet {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'didSet'} = $this->toDidSet();
+        $out->{'defer'} = $this->toDefer();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DidSet
+     * @return Defer
      * @throws Exception
      */
-    public static function from(stdClass $obj): DidSet {
-        if (!property_exists($obj, 'didSet')) {
+    public static function from(stdClass $obj): Defer {
+        if (!property_exists($obj, 'defer')) {
             throw new Exception("Missing required property");
         }
-        return new DidSet(
-         DidSet::fromDidSet($obj->{'didSet'})
+        return new Defer(
+         Defer::fromDefer($obj->{'defer'})
         );
     }
 
     /**
-     * @return DidSet
+     * @return Defer
      */
-    public static function sample(): DidSet {
-        return new DidSet(
-         DidSet::sampleDidSet()
+    public static function sample(): Defer {
+        return new Defer(
+         Defer::sampleDefer()
         );
     }
 }
 
-// This is an autogenerated file:DoClass
+// This is an autogenerated file:Deinit
 
-class DoClass {
-    private int $do; // json:do Required
+class Deinit {
+    private int $deinit; // json:deinit Required
 
     /**
-     * @param int $do
+     * @param int $deinit
      */
-    public function __construct(int $do) {
-        $this->do = $do;
+    public function __construct(int $deinit) {
+        $this->deinit = $deinit;
     }
 
     /**
@@ -16861,7 +15516,7 @@ class DoClass {
      * @throws Exception
      * @return int
      */
-    public static function fromDo(int $value): int {
+    public static function fromDeinit(int $value): int {
         return $value; /*int*/
     }
 
@@ -16869,11 +15524,11 @@ class DoClass {
      * @throws Exception
      * @return int
      */
-    public function toDo(): int {
-        if (DoClass::validateDo($this->do))  {
-            return $this->do; /*int*/
+    public function toDeinit(): int {
+        if (Deinit::validateDeinit($this->deinit))  {
+            return $this->deinit; /*int*/
         }
-        throw new Exception('never get to this DoClass::do');
+        throw new Exception('never get to this Deinit::deinit');
     }
 
     /**
@@ -16881,7 +15536,7 @@ class DoClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateDo(int $value): bool {
+    public static function validateDeinit(int $value): bool {
         return true;
     }
 
@@ -16889,18 +15544,18 @@ class DoClass {
      * @throws Exception
      * @return int
      */
-    public function getDo(): int {
-        if (DoClass::validateDo($this->do))  {
-            return $this->do;
+    public function getDeinit(): int {
+        if (Deinit::validateDeinit($this->deinit))  {
+            return $this->deinit;
         }
-        throw new Exception('never get to getDo DoClass::do');
+        throw new Exception('never get to getDeinit Deinit::deinit');
     }
 
     /**
      * @return int
      */
-    public static function sampleDo(): int {
-        return 31; /*31:do*/
+    public static function sampleDeinit(): int {
+        return 31; /*31:deinit*/
     }
 
     /**
@@ -16908,7 +15563,7 @@ class DoClass {
      * @return bool
      */
     public function validate(): bool {
-        return DoClass::validateDo($this->do);
+        return Deinit::validateDeinit($this->deinit);
     }
 
     /**
@@ -16917,44 +15572,44 @@ class DoClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'do'} = $this->toDo();
+        $out->{'deinit'} = $this->toDeinit();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DoClass
+     * @return Deinit
      * @throws Exception
      */
-    public static function from(stdClass $obj): DoClass {
-        if (!property_exists($obj, 'do')) {
+    public static function from(stdClass $obj): Deinit {
+        if (!property_exists($obj, 'deinit')) {
             throw new Exception("Missing required property");
         }
-        return new DoClass(
-         DoClass::fromDo($obj->{'do'})
+        return new Deinit(
+         Deinit::fromDeinit($obj->{'deinit'})
         );
     }
 
     /**
-     * @return DoClass
+     * @return Deinit
      */
-    public static function sample(): DoClass {
-        return new DoClass(
-         DoClass::sampleDo()
+    public static function sample(): Deinit {
+        return new Deinit(
+         Deinit::sampleDeinit()
         );
     }
 }
 
-// This is an autogenerated file:Double
+// This is an autogenerated file:Del
 
-class Double {
-    private int $double; // json:double Required
+class Del {
+    private int $del; // json:del Required
 
     /**
-     * @param int $double
+     * @param int $del
      */
-    public function __construct(int $double) {
-        $this->double = $double;
+    public function __construct(int $del) {
+        $this->del = $del;
     }
 
     /**
@@ -16962,7 +15617,7 @@ class Double {
      * @throws Exception
      * @return int
      */
-    public static function fromDouble(int $value): int {
+    public static function fromDel(int $value): int {
         return $value; /*int*/
     }
 
@@ -16970,11 +15625,11 @@ class Double {
      * @throws Exception
      * @return int
      */
-    public function toDouble(): int {
-        if (Double::validateDouble($this->double))  {
-            return $this->double; /*int*/
+    public function toDel(): int {
+        if (Del::validateDel($this->del))  {
+            return $this->del; /*int*/
         }
-        throw new Exception('never get to this Double::double');
+        throw new Exception('never get to this Del::del');
     }
 
     /**
@@ -16982,7 +15637,7 @@ class Double {
      * @return bool
      * @throws Exception
      */
-    public static function validateDouble(int $value): bool {
+    public static function validateDel(int $value): bool {
         return true;
     }
 
@@ -16990,18 +15645,18 @@ class Double {
      * @throws Exception
      * @return int
      */
-    public function getDouble(): int {
-        if (Double::validateDouble($this->double))  {
-            return $this->double;
+    public function getDel(): int {
+        if (Del::validateDel($this->del))  {
+            return $this->del;
         }
-        throw new Exception('never get to getDouble Double::double');
+        throw new Exception('never get to getDel Del::del');
     }
 
     /**
      * @return int
      */
-    public static function sampleDouble(): int {
-        return 31; /*31:double*/
+    public static function sampleDel(): int {
+        return 31; /*31:del*/
     }
 
     /**
@@ -17009,7 +15664,7 @@ class Double {
      * @return bool
      */
     public function validate(): bool {
-        return Double::validateDouble($this->double);
+        return Del::validateDel($this->del);
     }
 
     /**
@@ -17018,44 +15673,44 @@ class Double {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'double'} = $this->toDouble();
+        $out->{'del'} = $this->toDel();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Double
+     * @return Del
      * @throws Exception
      */
-    public static function from(stdClass $obj): Double {
-        if (!property_exists($obj, 'double')) {
+    public static function from(stdClass $obj): Del {
+        if (!property_exists($obj, 'del')) {
             throw new Exception("Missing required property");
         }
-        return new Double(
-         Double::fromDouble($obj->{'double'})
+        return new Del(
+         Del::fromDel($obj->{'del'})
         );
     }
 
     /**
-     * @return Double
+     * @return Del
      */
-    public static function sample(): Double {
-        return new Double(
-         Double::sampleDouble()
+    public static function sample(): Del {
+        return new Del(
+         Del::sampleDel()
         );
     }
 }
 
-// This is an autogenerated file:Dynamic
+// This is an autogenerated file:Delegate
 
-class Dynamic {
-    private int $dynamic; // json:dynamic Required
+class Delegate {
+    private int $delegate; // json:delegate Required
 
     /**
-     * @param int $dynamic
+     * @param int $delegate
      */
-    public function __construct(int $dynamic) {
-        $this->dynamic = $dynamic;
+    public function __construct(int $delegate) {
+        $this->delegate = $delegate;
     }
 
     /**
@@ -17063,7 +15718,7 @@ class Dynamic {
      * @throws Exception
      * @return int
      */
-    public static function fromDynamic(int $value): int {
+    public static function fromDelegate(int $value): int {
         return $value; /*int*/
     }
 
@@ -17071,11 +15726,11 @@ class Dynamic {
      * @throws Exception
      * @return int
      */
-    public function toDynamic(): int {
-        if (Dynamic::validateDynamic($this->dynamic))  {
-            return $this->dynamic; /*int*/
+    public function toDelegate(): int {
+        if (Delegate::validateDelegate($this->delegate))  {
+            return $this->delegate; /*int*/
         }
-        throw new Exception('never get to this Dynamic::dynamic');
+        throw new Exception('never get to this Delegate::delegate');
     }
 
     /**
@@ -17083,7 +15738,7 @@ class Dynamic {
      * @return bool
      * @throws Exception
      */
-    public static function validateDynamic(int $value): bool {
+    public static function validateDelegate(int $value): bool {
         return true;
     }
 
@@ -17091,18 +15746,18 @@ class Dynamic {
      * @throws Exception
      * @return int
      */
-    public function getDynamic(): int {
-        if (Dynamic::validateDynamic($this->dynamic))  {
-            return $this->dynamic;
+    public function getDelegate(): int {
+        if (Delegate::validateDelegate($this->delegate))  {
+            return $this->delegate;
         }
-        throw new Exception('never get to getDynamic Dynamic::dynamic');
+        throw new Exception('never get to getDelegate Delegate::delegate');
     }
 
     /**
      * @return int
      */
-    public static function sampleDynamic(): int {
-        return 31; /*31:dynamic*/
+    public static function sampleDelegate(): int {
+        return 31; /*31:delegate*/
     }
 
     /**
@@ -17110,7 +15765,7 @@ class Dynamic {
      * @return bool
      */
     public function validate(): bool {
-        return Dynamic::validateDynamic($this->dynamic);
+        return Delegate::validateDelegate($this->delegate);
     }
 
     /**
@@ -17119,44 +15774,44 @@ class Dynamic {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dynamic'} = $this->toDynamic();
+        $out->{'delegate'} = $this->toDelegate();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Dynamic
+     * @return Delegate
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dynamic {
-        if (!property_exists($obj, 'dynamic')) {
+    public static function from(stdClass $obj): Delegate {
+        if (!property_exists($obj, 'delegate')) {
             throw new Exception("Missing required property");
         }
-        return new Dynamic(
-         Dynamic::fromDynamic($obj->{'dynamic'})
+        return new Delegate(
+         Delegate::fromDelegate($obj->{'delegate'})
         );
     }
 
     /**
-     * @return Dynamic
+     * @return Delegate
      */
-    public static function sample(): Dynamic {
-        return new Dynamic(
-         Dynamic::sampleDynamic()
+    public static function sample(): Delegate {
+        return new Delegate(
+         Delegate::sampleDelegate()
         );
     }
 }
 
-// This is an autogenerated file:DynamicCast
+// This is an autogenerated file:Delete
 
-class DynamicCast {
-    private int $dynamicCast; // json:dynamic_cast Required
+class Delete {
+    private int $delete; // json:delete Required
 
     /**
-     * @param int $dynamicCast
+     * @param int $delete
      */
-    public function __construct(int $dynamicCast) {
-        $this->dynamicCast = $dynamicCast;
+    public function __construct(int $delete) {
+        $this->delete = $delete;
     }
 
     /**
@@ -17164,7 +15819,7 @@ class DynamicCast {
      * @throws Exception
      * @return int
      */
-    public static function fromDynamicCast(int $value): int {
+    public static function fromDelete(int $value): int {
         return $value; /*int*/
     }
 
@@ -17172,11 +15827,11 @@ class DynamicCast {
      * @throws Exception
      * @return int
      */
-    public function toDynamicCast(): int {
-        if (DynamicCast::validateDynamicCast($this->dynamicCast))  {
-            return $this->dynamicCast; /*int*/
+    public function toDelete(): int {
+        if (Delete::validateDelete($this->delete))  {
+            return $this->delete; /*int*/
         }
-        throw new Exception('never get to this DynamicCast::dynamicCast');
+        throw new Exception('never get to this Delete::delete');
     }
 
     /**
@@ -17184,7 +15839,7 @@ class DynamicCast {
      * @return bool
      * @throws Exception
      */
-    public static function validateDynamicCast(int $value): bool {
+    public static function validateDelete(int $value): bool {
         return true;
     }
 
@@ -17192,18 +15847,18 @@ class DynamicCast {
      * @throws Exception
      * @return int
      */
-    public function getDynamicCast(): int {
-        if (DynamicCast::validateDynamicCast($this->dynamicCast))  {
-            return $this->dynamicCast;
+    public function getDelete(): int {
+        if (Delete::validateDelete($this->delete))  {
+            return $this->delete;
         }
-        throw new Exception('never get to getDynamicCast DynamicCast::dynamicCast');
+        throw new Exception('never get to getDelete Delete::delete');
     }
 
     /**
      * @return int
      */
-    public static function sampleDynamicCast(): int {
-        return 31; /*31:dynamicCast*/
+    public static function sampleDelete(): int {
+        return 31; /*31:delete*/
     }
 
     /**
@@ -17211,7 +15866,7 @@ class DynamicCast {
      * @return bool
      */
     public function validate(): bool {
-        return DynamicCast::validateDynamicCast($this->dynamicCast);
+        return Delete::validateDelete($this->delete);
     }
 
     /**
@@ -17220,44 +15875,44 @@ class DynamicCast {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dynamic_cast'} = $this->toDynamicCast();
+        $out->{'delete'} = $this->toDelete();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return DynamicCast
+     * @return Delete
      * @throws Exception
      */
-    public static function from(stdClass $obj): DynamicCast {
-        if (!property_exists($obj, 'dynamic_cast')) {
+    public static function from(stdClass $obj): Delete {
+        if (!property_exists($obj, 'delete')) {
             throw new Exception("Missing required property");
         }
-        return new DynamicCast(
-         DynamicCast::fromDynamicCast($obj->{'dynamic_cast'})
+        return new Delete(
+         Delete::fromDelete($obj->{'delete'})
         );
     }
 
     /**
-     * @return DynamicCast
+     * @return Delete
      */
-    public static function sample(): DynamicCast {
-        return new DynamicCast(
-         DynamicCast::sampleDynamicCast()
+    public static function sample(): Delete {
+        return new Delete(
+         Delete::sampleDelete()
         );
     }
 }
 
-// This is an autogenerated file:Elif
+// This is an autogenerated file:Dict
 
-class Elif {
-    private int $elif; // json:elif Required
+class Dict {
+    private int $dict; // json:dict Required
 
     /**
-     * @param int $elif
+     * @param int $dict
      */
-    public function __construct(int $elif) {
-        $this->elif = $elif;
+    public function __construct(int $dict) {
+        $this->dict = $dict;
     }
 
     /**
@@ -17265,7 +15920,7 @@ class Elif {
      * @throws Exception
      * @return int
      */
-    public static function fromElif(int $value): int {
+    public static function fromDict(int $value): int {
         return $value; /*int*/
     }
 
@@ -17273,11 +15928,11 @@ class Elif {
      * @throws Exception
      * @return int
      */
-    public function toElif(): int {
-        if (Elif::validateElif($this->elif))  {
-            return $this->elif; /*int*/
+    public function toDict(): int {
+        if (Dict::validateDict($this->dict))  {
+            return $this->dict; /*int*/
         }
-        throw new Exception('never get to this Elif::elif');
+        throw new Exception('never get to this Dict::dict');
     }
 
     /**
@@ -17285,7 +15940,7 @@ class Elif {
      * @return bool
      * @throws Exception
      */
-    public static function validateElif(int $value): bool {
+    public static function validateDict(int $value): bool {
         return true;
     }
 
@@ -17293,18 +15948,18 @@ class Elif {
      * @throws Exception
      * @return int
      */
-    public function getElif(): int {
-        if (Elif::validateElif($this->elif))  {
-            return $this->elif;
+    public function getDict(): int {
+        if (Dict::validateDict($this->dict))  {
+            return $this->dict;
         }
-        throw new Exception('never get to getElif Elif::elif');
+        throw new Exception('never get to getDict Dict::dict');
     }
 
     /**
      * @return int
      */
-    public static function sampleElif(): int {
-        return 31; /*31:elif*/
+    public static function sampleDict(): int {
+        return 31; /*31:dict*/
     }
 
     /**
@@ -17312,7 +15967,7 @@ class Elif {
      * @return bool
      */
     public function validate(): bool {
-        return Elif::validateElif($this->elif);
+        return Dict::validateDict($this->dict);
     }
 
     /**
@@ -17321,44 +15976,44 @@ class Elif {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'elif'} = $this->toElif();
+        $out->{'dict'} = $this->toDict();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Elif
+     * @return Dict
      * @throws Exception
      */
-    public static function from(stdClass $obj): Elif {
-        if (!property_exists($obj, 'elif')) {
+    public static function from(stdClass $obj): Dict {
+        if (!property_exists($obj, 'dict')) {
             throw new Exception("Missing required property");
         }
-        return new Elif(
-         Elif::fromElif($obj->{'elif'})
+        return new Dict(
+         Dict::fromDict($obj->{'dict'})
         );
     }
 
     /**
-     * @return Elif
+     * @return Dict
      */
-    public static function sample(): Elif {
-        return new Elif(
-         Elif::sampleElif()
+    public static function sample(): Dict {
+        return new Dict(
+         Dict::sampleDict()
         );
     }
 }
 
-// This is an autogenerated file:ElseClass
+// This is an autogenerated file:Dictionary
 
-class ElseClass {
-    private int $else; // json:else Required
+class Dictionary {
+    private int $dictionary; // json:dictionary Required
 
     /**
-     * @param int $else
+     * @param int $dictionary
      */
-    public function __construct(int $else) {
-        $this->else = $else;
+    public function __construct(int $dictionary) {
+        $this->dictionary = $dictionary;
     }
 
     /**
@@ -17366,7 +16021,7 @@ class ElseClass {
      * @throws Exception
      * @return int
      */
-    public static function fromElse(int $value): int {
+    public static function fromDictionary(int $value): int {
         return $value; /*int*/
     }
 
@@ -17374,11 +16029,11 @@ class ElseClass {
      * @throws Exception
      * @return int
      */
-    public function toElse(): int {
-        if (ElseClass::validateElse($this->else))  {
-            return $this->else; /*int*/
+    public function toDictionary(): int {
+        if (Dictionary::validateDictionary($this->dictionary))  {
+            return $this->dictionary; /*int*/
         }
-        throw new Exception('never get to this ElseClass::else');
+        throw new Exception('never get to this Dictionary::dictionary');
     }
 
     /**
@@ -17386,7 +16041,7 @@ class ElseClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateElse(int $value): bool {
+    public static function validateDictionary(int $value): bool {
         return true;
     }
 
@@ -17394,18 +16049,18 @@ class ElseClass {
      * @throws Exception
      * @return int
      */
-    public function getElse(): int {
-        if (ElseClass::validateElse($this->else))  {
-            return $this->else;
+    public function getDictionary(): int {
+        if (Dictionary::validateDictionary($this->dictionary))  {
+            return $this->dictionary;
         }
-        throw new Exception('never get to getElse ElseClass::else');
+        throw new Exception('never get to getDictionary Dictionary::dictionary');
     }
 
     /**
      * @return int
      */
-    public static function sampleElse(): int {
-        return 31; /*31:else*/
+    public static function sampleDictionary(): int {
+        return 31; /*31:dictionary*/
     }
 
     /**
@@ -17413,7 +16068,7 @@ class ElseClass {
      * @return bool
      */
     public function validate(): bool {
-        return ElseClass::validateElse($this->else);
+        return Dictionary::validateDictionary($this->dictionary);
     }
 
     /**
@@ -17422,44 +16077,44 @@ class ElseClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'else'} = $this->toElse();
+        $out->{'dictionary'} = $this->toDictionary();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ElseClass
+     * @return Dictionary
      * @throws Exception
      */
-    public static function from(stdClass $obj): ElseClass {
-        if (!property_exists($obj, 'else')) {
+    public static function from(stdClass $obj): Dictionary {
+        if (!property_exists($obj, 'dictionary')) {
             throw new Exception("Missing required property");
         }
-        return new ElseClass(
-         ElseClass::fromElse($obj->{'else'})
+        return new Dictionary(
+         Dictionary::fromDictionary($obj->{'dictionary'})
         );
     }
 
     /**
-     * @return ElseClass
+     * @return Dictionary
      */
-    public static function sample(): ElseClass {
-        return new ElseClass(
-         ElseClass::sampleElse()
+    public static function sample(): Dictionary {
+        return new Dictionary(
+         Dictionary::sampleDictionary()
         );
     }
 }
 
-// This is an autogenerated file:EncodeQuickType
+// This is an autogenerated file:DidSet
 
-class EncodeQuickType {
-    private int $encodeQuickType; // json:encode_quick_type Required
+class DidSet {
+    private int $didSet; // json:didSet Required
 
     /**
-     * @param int $encodeQuickType
+     * @param int $didSet
      */
-    public function __construct(int $encodeQuickType) {
-        $this->encodeQuickType = $encodeQuickType;
+    public function __construct(int $didSet) {
+        $this->didSet = $didSet;
     }
 
     /**
@@ -17467,7 +16122,7 @@ class EncodeQuickType {
      * @throws Exception
      * @return int
      */
-    public static function fromEncodeQuickType(int $value): int {
+    public static function fromDidSet(int $value): int {
         return $value; /*int*/
     }
 
@@ -17475,11 +16130,11 @@ class EncodeQuickType {
      * @throws Exception
      * @return int
      */
-    public function toEncodeQuickType(): int {
-        if (EncodeQuickType::validateEncodeQuickType($this->encodeQuickType))  {
-            return $this->encodeQuickType; /*int*/
+    public function toDidSet(): int {
+        if (DidSet::validateDidSet($this->didSet))  {
+            return $this->didSet; /*int*/
         }
-        throw new Exception('never get to this EncodeQuickType::encodeQuickType');
+        throw new Exception('never get to this DidSet::didSet');
     }
 
     /**
@@ -17487,7 +16142,7 @@ class EncodeQuickType {
      * @return bool
      * @throws Exception
      */
-    public static function validateEncodeQuickType(int $value): bool {
+    public static function validateDidSet(int $value): bool {
         return true;
     }
 
@@ -17495,18 +16150,18 @@ class EncodeQuickType {
      * @throws Exception
      * @return int
      */
-    public function getEncodeQuickType(): int {
-        if (EncodeQuickType::validateEncodeQuickType($this->encodeQuickType))  {
-            return $this->encodeQuickType;
+    public function getDidSet(): int {
+        if (DidSet::validateDidSet($this->didSet))  {
+            return $this->didSet;
         }
-        throw new Exception('never get to getEncodeQuickType EncodeQuickType::encodeQuickType');
+        throw new Exception('never get to getDidSet DidSet::didSet');
     }
 
     /**
      * @return int
      */
-    public static function sampleEncodeQuickType(): int {
-        return 31; /*31:encodeQuickType*/
+    public static function sampleDidSet(): int {
+        return 31; /*31:didSet*/
     }
 
     /**
@@ -17514,7 +16169,7 @@ class EncodeQuickType {
      * @return bool
      */
     public function validate(): bool {
-        return EncodeQuickType::validateEncodeQuickType($this->encodeQuickType);
+        return DidSet::validateDidSet($this->didSet);
     }
 
     /**
@@ -17523,44 +16178,44 @@ class EncodeQuickType {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'encode_quick_type'} = $this->toEncodeQuickType();
+        $out->{'didSet'} = $this->toDidSet();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return EncodeQuickType
+     * @return DidSet
      * @throws Exception
      */
-    public static function from(stdClass $obj): EncodeQuickType {
-        if (!property_exists($obj, 'encode_quick_type')) {
+    public static function from(stdClass $obj): DidSet {
+        if (!property_exists($obj, 'didSet')) {
             throw new Exception("Missing required property");
         }
-        return new EncodeQuickType(
-         EncodeQuickType::fromEncodeQuickType($obj->{'encode_quick_type'})
+        return new DidSet(
+         DidSet::fromDidSet($obj->{'didSet'})
         );
     }
 
     /**
-     * @return EncodeQuickType
+     * @return DidSet
      */
-    public static function sample(): EncodeQuickType {
-        return new EncodeQuickType(
-         EncodeQuickType::sampleEncodeQuickType()
+    public static function sample(): DidSet {
+        return new DidSet(
+         DidSet::sampleDidSet()
         );
     }
 }
 
-// This is an autogenerated file:EnumClass
+// This is an autogenerated file:DoClass
 
-class EnumClass {
-    private int $enum; // json:enum Required
+class DoClass {
+    private int $do; // json:do Required
 
     /**
-     * @param int $enum
+     * @param int $do
      */
-    public function __construct(int $enum) {
-        $this->enum = $enum;
+    public function __construct(int $do) {
+        $this->do = $do;
     }
 
     /**
@@ -17568,7 +16223,7 @@ class EnumClass {
      * @throws Exception
      * @return int
      */
-    public static function fromEnum(int $value): int {
+    public static function fromDo(int $value): int {
         return $value; /*int*/
     }
 
@@ -17576,11 +16231,11 @@ class EnumClass {
      * @throws Exception
      * @return int
      */
-    public function toEnum(): int {
-        if (EnumClass::validateEnum($this->enum))  {
-            return $this->enum; /*int*/
+    public function toDo(): int {
+        if (DoClass::validateDo($this->do))  {
+            return $this->do; /*int*/
         }
-        throw new Exception('never get to this EnumClass::enum');
+        throw new Exception('never get to this DoClass::do');
     }
 
     /**
@@ -17588,7 +16243,7 @@ class EnumClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateEnum(int $value): bool {
+    public static function validateDo(int $value): bool {
         return true;
     }
 
@@ -17596,18 +16251,18 @@ class EnumClass {
      * @throws Exception
      * @return int
      */
-    public function getEnum(): int {
-        if (EnumClass::validateEnum($this->enum))  {
-            return $this->enum;
+    public function getDo(): int {
+        if (DoClass::validateDo($this->do))  {
+            return $this->do;
         }
-        throw new Exception('never get to getEnum EnumClass::enum');
+        throw new Exception('never get to getDo DoClass::do');
     }
 
     /**
      * @return int
      */
-    public static function sampleEnum(): int {
-        return 31; /*31:enum*/
+    public static function sampleDo(): int {
+        return 31; /*31:do*/
     }
 
     /**
@@ -17615,7 +16270,7 @@ class EnumClass {
      * @return bool
      */
     public function validate(): bool {
-        return EnumClass::validateEnum($this->enum);
+        return DoClass::validateDo($this->do);
     }
 
     /**
@@ -17624,103 +16279,91 @@ class EnumClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'enum'} = $this->toEnum();
+        $out->{'do'} = $this->toDo();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return EnumClass
+     * @return DoClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): EnumClass {
-        if (!property_exists($obj, 'enum')) {
+    public static function from(stdClass $obj): DoClass {
+        if (!property_exists($obj, 'do')) {
             throw new Exception("Missing required property");
         }
-        return new EnumClass(
-         EnumClass::fromEnum($obj->{'enum'})
+        return new DoClass(
+         DoClass::fromDo($obj->{'do'})
         );
     }
 
     /**
-     * @return EnumClass
+     * @return DoClass
      */
-    public static function sample(): EnumClass {
-        return new EnumClass(
-         EnumClass::sampleEnum()
+    public static function sample(): DoClass {
+        return new DoClass(
+         DoClass::sampleDo()
         );
     }
 }
 
-// This is an autogenerated file:EnumValues
+// This is an autogenerated file:Double
 
-class EnumValues {
-    private array $enumValues; // json:EnumValues Required
+class Double {
+    private int $double; // json:double Required
 
     /**
-     * @param array $enumValues
+     * @param int $double
      */
-    public function __construct(array $enumValues) {
-        $this->enumValues = $enumValues;
+    public function __construct(int $double) {
+        $this->double = $double;
     }
 
     /**
-     * @param array $value
+     * @param int $value
      * @throws Exception
-     * @return array
+     * @return int
      */
-    public static function fromEnumValues(array $value): array {
-        return  array_map(function ($value) {
-            return EnumValue::from($value); /*enum*/
-        }, $value);
+    public static function fromDouble(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return array
+     * @return int
      */
-    public function toEnumValues(): array {
-        if (EnumValues::validateEnumValues($this->enumValues))  {
-            return array_map(function ($value) {
-                return EnumValue::to($value); /*enum*/
-            }, $this->enumValues);
+    public function toDouble(): int {
+        if (Double::validateDouble($this->double))  {
+            return $this->double; /*int*/
         }
-        throw new Exception('never get to this EnumValues::enumValues');
+        throw new Exception('never get to this Double::double');
     }
 
     /**
-     * @param array
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateEnumValues(array $value): bool {
-        if (!is_array($value)) {
-            throw new Exception("Attribute Error:EnumValues::enumValues");
-        }
-        array_walk($value, function($value_v) {
-            EnumValue::to($value_v);
-        });
+    public static function validateDouble(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return array
+     * @return int
      */
-    public function getEnumValues(): array {
-        if (EnumValues::validateEnumValues($this->enumValues))  {
-            return $this->enumValues;
+    public function getDouble(): int {
+        if (Double::validateDouble($this->double))  {
+            return $this->double;
         }
-        throw new Exception('never get to getEnumValues EnumValues::enumValues');
+        throw new Exception('never get to getDouble Double::double');
     }
 
     /**
-     * @return array
+     * @return int
      */
-    public static function sampleEnumValues(): array {
-        return  array(
-            EnumValue::sample() /*enum*/
-        ); /* 31:enumValues*/
+    public static function sampleDouble(): int {
+        return 31; /*31:double*/
     }
 
     /**
@@ -17728,7 +16371,7 @@ class EnumValues {
      * @return bool
      */
     public function validate(): bool {
-        return EnumValues::validateEnumValues($this->enumValues);
+        return Double::validateDouble($this->double);
     }
 
     /**
@@ -17737,93 +16380,44 @@ class EnumValues {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'EnumValues'} = $this->toEnumValues();
+        $out->{'double'} = $this->toDouble();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return EnumValues
+     * @return Double
      * @throws Exception
      */
-    public static function from(stdClass $obj): EnumValues {
-        if (!property_exists($obj, 'EnumValues')) {
+    public static function from(stdClass $obj): Double {
+        if (!property_exists($obj, 'double')) {
             throw new Exception("Missing required property");
         }
-        return new EnumValues(
-         EnumValues::fromEnumValues($obj->{'EnumValues'})
+        return new Double(
+         Double::fromDouble($obj->{'double'})
         );
     }
 
     /**
-     * @return EnumValues
+     * @return Double
      */
-    public static function sample(): EnumValues {
-        return new EnumValues(
-         EnumValues::sampleEnumValues()
+    public static function sample(): Double {
+        return new Double(
+         Double::sampleDouble()
         );
     }
 }
 
-// This is an autogenerated file:EnumValue
-
-class EnumValue {
-    public static EnumValue $READY;
-    public static EnumValue $DONE;
-    public static function init() {
-        EnumValue::$READY = new EnumValue('ready');
-        EnumValue::$DONE = new EnumValue('done');
-    }
-    private string $enum;
-    public function __construct(string $enum) {
-        $this->enum = $enum;
-    }
-
-    /**
-     * @param EnumValue
-     * @return string
-     * @throws Exception
-     */
-    public static function to(EnumValue $obj): string {
-        switch ($obj->enum) {
-            case EnumValue::$READY->enum: return 'ready';
-            case EnumValue::$DONE->enum: return 'done';
-        }
-        throw new Exception('the give value is not an enum-value.');
-    }
-
-    /**
-     * @param mixed
-     * @return EnumValue
-     * @throws Exception
-     */
-    public static function from($obj): EnumValue {
-        switch ($obj) {
-            case 'ready': return EnumValue::$READY;
-            case 'done': return EnumValue::$DONE;
-        }
-        throw new Exception("Cannot deserialize EnumValue");
-    }
-
-    /**
-     * @return EnumValue
-     */
-    public static function sample(): EnumValue {
-        return EnumValue::$READY;
-    }
-}
-EnumValue::init();
-
-// This is an autogenerated file:EqualityContract
+// This is an autogenerated file:Dynamic
 
-class EqualityContract {
-    private int $equalityContract; // json:equalityContract Required
+class Dynamic {
+    private int $dynamic; // json:dynamic Required
 
     /**
-     * @param int $equalityContract
+     * @param int $dynamic
      */
-    public function __construct(int $equalityContract) {
-        $this->equalityContract = $equalityContract;
+    public function __construct(int $dynamic) {
+        $this->dynamic = $dynamic;
     }
 
     /**
@@ -17831,7 +16425,7 @@ class EqualityContract {
      * @throws Exception
      * @return int
      */
-    public static function fromEqualityContract(int $value): int {
+    public static function fromDynamic(int $value): int {
         return $value; /*int*/
     }
 
@@ -17839,11 +16433,11 @@ class EqualityContract {
      * @throws Exception
      * @return int
      */
-    public function toEqualityContract(): int {
-        if (EqualityContract::validateEqualityContract($this->equalityContract))  {
-            return $this->equalityContract; /*int*/
+    public function toDynamic(): int {
+        if (Dynamic::validateDynamic($this->dynamic))  {
+            return $this->dynamic; /*int*/
         }
-        throw new Exception('never get to this EqualityContract::equalityContract');
+        throw new Exception('never get to this Dynamic::dynamic');
     }
 
     /**
@@ -17851,7 +16445,7 @@ class EqualityContract {
      * @return bool
      * @throws Exception
      */
-    public static function validateEqualityContract(int $value): bool {
+    public static function validateDynamic(int $value): bool {
         return true;
     }
 
@@ -17859,18 +16453,18 @@ class EqualityContract {
      * @throws Exception
      * @return int
      */
-    public function getEqualityContract(): int {
-        if (EqualityContract::validateEqualityContract($this->equalityContract))  {
-            return $this->equalityContract;
+    public function getDynamic(): int {
+        if (Dynamic::validateDynamic($this->dynamic))  {
+            return $this->dynamic;
         }
-        throw new Exception('never get to getEqualityContract EqualityContract::equalityContract');
+        throw new Exception('never get to getDynamic Dynamic::dynamic');
     }
 
     /**
      * @return int
      */
-    public static function sampleEqualityContract(): int {
-        return 31; /*31:equalityContract*/
+    public static function sampleDynamic(): int {
+        return 31; /*31:dynamic*/
     }
 
     /**
@@ -17878,7 +16472,7 @@ class EqualityContract {
      * @return bool
      */
     public function validate(): bool {
-        return EqualityContract::validateEqualityContract($this->equalityContract);
+        return Dynamic::validateDynamic($this->dynamic);
     }
 
     /**
@@ -17887,44 +16481,44 @@ class EqualityContract {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'equalityContract'} = $this->toEqualityContract();
+        $out->{'dynamic'} = $this->toDynamic();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return EqualityContract
+     * @return Dynamic
      * @throws Exception
      */
-    public static function from(stdClass $obj): EqualityContract {
-        if (!property_exists($obj, 'equalityContract')) {
+    public static function from(stdClass $obj): Dynamic {
+        if (!property_exists($obj, 'dynamic')) {
             throw new Exception("Missing required property");
         }
-        return new EqualityContract(
-         EqualityContract::fromEqualityContract($obj->{'equalityContract'})
+        return new Dynamic(
+         Dynamic::fromDynamic($obj->{'dynamic'})
         );
     }
 
     /**
-     * @return EqualityContract
+     * @return Dynamic
      */
-    public static function sample(): EqualityContract {
-        return new EqualityContract(
-         EqualityContract::sampleEqualityContract()
+    public static function sample(): Dynamic {
+        return new Dynamic(
+         Dynamic::sampleDynamic()
         );
     }
 }
 
-// This is an autogenerated file:Event
+// This is an autogenerated file:DynamicCast
 
-class Event {
-    private int $event; // json:event Required
+class DynamicCast {
+    private int $dynamicCast; // json:dynamic_cast Required
 
     /**
-     * @param int $event
+     * @param int $dynamicCast
      */
-    public function __construct(int $event) {
-        $this->event = $event;
+    public function __construct(int $dynamicCast) {
+        $this->dynamicCast = $dynamicCast;
     }
 
     /**
@@ -17932,7 +16526,7 @@ class Event {
      * @throws Exception
      * @return int
      */
-    public static function fromEvent(int $value): int {
+    public static function fromDynamicCast(int $value): int {
         return $value; /*int*/
     }
 
@@ -17940,11 +16534,11 @@ class Event {
      * @throws Exception
      * @return int
      */
-    public function toEvent(): int {
-        if (Event::validateEvent($this->event))  {
-            return $this->event; /*int*/
+    public function toDynamicCast(): int {
+        if (DynamicCast::validateDynamicCast($this->dynamicCast))  {
+            return $this->dynamicCast; /*int*/
         }
-        throw new Exception('never get to this Event::event');
+        throw new Exception('never get to this DynamicCast::dynamicCast');
     }
 
     /**
@@ -17952,7 +16546,7 @@ class Event {
      * @return bool
      * @throws Exception
      */
-    public static function validateEvent(int $value): bool {
+    public static function validateDynamicCast(int $value): bool {
         return true;
     }
 
@@ -17960,18 +16554,18 @@ class Event {
      * @throws Exception
      * @return int
      */
-    public function getEvent(): int {
-        if (Event::validateEvent($this->event))  {
-            return $this->event;
+    public function getDynamicCast(): int {
+        if (DynamicCast::validateDynamicCast($this->dynamicCast))  {
+            return $this->dynamicCast;
         }
-        throw new Exception('never get to getEvent Event::event');
+        throw new Exception('never get to getDynamicCast DynamicCast::dynamicCast');
     }
 
     /**
      * @return int
      */
-    public static function sampleEvent(): int {
-        return 31; /*31:event*/
+    public static function sampleDynamicCast(): int {
+        return 31; /*31:dynamicCast*/
     }
 
     /**
@@ -17979,7 +16573,7 @@ class Event {
      * @return bool
      */
     public function validate(): bool {
-        return Event::validateEvent($this->event);
+        return DynamicCast::validateDynamicCast($this->dynamicCast);
     }
 
     /**
@@ -17988,44 +16582,44 @@ class Event {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'event'} = $this->toEvent();
+        $out->{'dynamic_cast'} = $this->toDynamicCast();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Event
+     * @return DynamicCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): Event {
-        if (!property_exists($obj, 'event')) {
+    public static function from(stdClass $obj): DynamicCast {
+        if (!property_exists($obj, 'dynamic_cast')) {
             throw new Exception("Missing required property");
         }
-        return new Event(
-         Event::fromEvent($obj->{'event'})
+        return new DynamicCast(
+         DynamicCast::fromDynamicCast($obj->{'dynamic_cast'})
         );
     }
 
     /**
-     * @return Event
+     * @return DynamicCast
      */
-    public static function sample(): Event {
-        return new Event(
-         Event::sampleEvent()
+    public static function sample(): DynamicCast {
+        return new DynamicCast(
+         DynamicCast::sampleDynamicCast()
         );
     }
 }
 
-// This is an autogenerated file:Except
+// This is an autogenerated file:Elif
 
-class Except {
-    private int $except; // json:except Required
+class Elif {
+    private int $elif; // json:elif Required
 
     /**
-     * @param int $except
+     * @param int $elif
      */
-    public function __construct(int $except) {
-        $this->except = $except;
+    public function __construct(int $elif) {
+        $this->elif = $elif;
     }
 
     /**
@@ -18033,7 +16627,7 @@ class Except {
      * @throws Exception
      * @return int
      */
-    public static function fromExcept(int $value): int {
+    public static function fromElif(int $value): int {
         return $value; /*int*/
     }
 
@@ -18041,11 +16635,11 @@ class Except {
      * @throws Exception
      * @return int
      */
-    public function toExcept(): int {
-        if (Except::validateExcept($this->except))  {
-            return $this->except; /*int*/
+    public function toElif(): int {
+        if (Elif::validateElif($this->elif))  {
+            return $this->elif; /*int*/
         }
-        throw new Exception('never get to this Except::except');
+        throw new Exception('never get to this Elif::elif');
     }
 
     /**
@@ -18053,7 +16647,7 @@ class Except {
      * @return bool
      * @throws Exception
      */
-    public static function validateExcept(int $value): bool {
+    public static function validateElif(int $value): bool {
         return true;
     }
 
@@ -18061,18 +16655,18 @@ class Except {
      * @throws Exception
      * @return int
      */
-    public function getExcept(): int {
-        if (Except::validateExcept($this->except))  {
-            return $this->except;
+    public function getElif(): int {
+        if (Elif::validateElif($this->elif))  {
+            return $this->elif;
         }
-        throw new Exception('never get to getExcept Except::except');
+        throw new Exception('never get to getElif Elif::elif');
     }
 
     /**
      * @return int
      */
-    public static function sampleExcept(): int {
-        return 31; /*31:except*/
+    public static function sampleElif(): int {
+        return 31; /*31:elif*/
     }
 
     /**
@@ -18080,7 +16674,7 @@ class Except {
      * @return bool
      */
     public function validate(): bool {
-        return Except::validateExcept($this->except);
+        return Elif::validateElif($this->elif);
     }
 
     /**
@@ -18089,44 +16683,44 @@ class Except {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'except'} = $this->toExcept();
+        $out->{'elif'} = $this->toElif();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Except
+     * @return Elif
      * @throws Exception
      */
-    public static function from(stdClass $obj): Except {
-        if (!property_exists($obj, 'except')) {
+    public static function from(stdClass $obj): Elif {
+        if (!property_exists($obj, 'elif')) {
             throw new Exception("Missing required property");
         }
-        return new Except(
-         Except::fromExcept($obj->{'except'})
+        return new Elif(
+         Elif::fromElif($obj->{'elif'})
         );
     }
 
     /**
-     * @return Except
+     * @return Elif
      */
-    public static function sample(): Except {
-        return new Except(
-         Except::sampleExcept()
+    public static function sample(): Elif {
+        return new Elif(
+         Elif::sampleElif()
         );
     }
 }
 
-// This is an autogenerated file:ExceptionClass
+// This is an autogenerated file:ElseClass
 
-class ExceptionClass {
-    private int $exception; // json:exception Required
+class ElseClass {
+    private int $else; // json:else Required
 
     /**
-     * @param int $exception
+     * @param int $else
      */
-    public function __construct(int $exception) {
-        $this->exception = $exception;
+    public function __construct(int $else) {
+        $this->else = $else;
     }
 
     /**
@@ -18134,7 +16728,7 @@ class ExceptionClass {
      * @throws Exception
      * @return int
      */
-    public static function fromException(int $value): int {
+    public static function fromElse(int $value): int {
         return $value; /*int*/
     }
 
@@ -18142,11 +16736,11 @@ class ExceptionClass {
      * @throws Exception
      * @return int
      */
-    public function toException(): int {
-        if (ExceptionClass::validateException($this->exception))  {
-            return $this->exception; /*int*/
+    public function toElse(): int {
+        if (ElseClass::validateElse($this->else))  {
+            return $this->else; /*int*/
         }
-        throw new Exception('never get to this ExceptionClass::exception');
+        throw new Exception('never get to this ElseClass::else');
     }
 
     /**
@@ -18154,7 +16748,7 @@ class ExceptionClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateException(int $value): bool {
+    public static function validateElse(int $value): bool {
         return true;
     }
 
@@ -18162,18 +16756,18 @@ class ExceptionClass {
      * @throws Exception
      * @return int
      */
-    public function getException(): int {
-        if (ExceptionClass::validateException($this->exception))  {
-            return $this->exception;
+    public function getElse(): int {
+        if (ElseClass::validateElse($this->else))  {
+            return $this->else;
         }
-        throw new Exception('never get to getException ExceptionClass::exception');
+        throw new Exception('never get to getElse ElseClass::else');
     }
 
     /**
      * @return int
      */
-    public static function sampleException(): int {
-        return 31; /*31:exception*/
+    public static function sampleElse(): int {
+        return 31; /*31:else*/
     }
 
     /**
@@ -18181,7 +16775,7 @@ class ExceptionClass {
      * @return bool
      */
     public function validate(): bool {
-        return ExceptionClass::validateException($this->exception);
+        return ElseClass::validateElse($this->else);
     }
 
     /**
@@ -18190,44 +16784,44 @@ class ExceptionClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'exception'} = $this->toException();
+        $out->{'else'} = $this->toElse();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ExceptionClass
+     * @return ElseClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ExceptionClass {
-        if (!property_exists($obj, 'exception')) {
+    public static function from(stdClass $obj): ElseClass {
+        if (!property_exists($obj, 'else')) {
             throw new Exception("Missing required property");
         }
-        return new ExceptionClass(
-         ExceptionClass::fromException($obj->{'exception'})
+        return new ElseClass(
+         ElseClass::fromElse($obj->{'else'})
         );
     }
 
     /**
-     * @return ExceptionClass
+     * @return ElseClass
      */
-    public static function sample(): ExceptionClass {
-        return new ExceptionClass(
-         ExceptionClass::sampleException()
+    public static function sample(): ElseClass {
+        return new ElseClass(
+         ElseClass::sampleElse()
         );
     }
 }
 
-// This is an autogenerated file:Explicit
+// This is an autogenerated file:EncodeQuickType
 
-class Explicit {
-    private int $explicit; // json:explicit Required
+class EncodeQuickType {
+    private int $encodeQuickType; // json:encode_quick_type Required
 
     /**
-     * @param int $explicit
+     * @param int $encodeQuickType
      */
-    public function __construct(int $explicit) {
-        $this->explicit = $explicit;
+    public function __construct(int $encodeQuickType) {
+        $this->encodeQuickType = $encodeQuickType;
     }
 
     /**
@@ -18235,7 +16829,7 @@ class Explicit {
      * @throws Exception
      * @return int
      */
-    public static function fromExplicit(int $value): int {
+    public static function fromEncodeQuickType(int $value): int {
         return $value; /*int*/
     }
 
@@ -18243,11 +16837,11 @@ class Explicit {
      * @throws Exception
      * @return int
      */
-    public function toExplicit(): int {
-        if (Explicit::validateExplicit($this->explicit))  {
-            return $this->explicit; /*int*/
+    public function toEncodeQuickType(): int {
+        if (EncodeQuickType::validateEncodeQuickType($this->encodeQuickType))  {
+            return $this->encodeQuickType; /*int*/
         }
-        throw new Exception('never get to this Explicit::explicit');
+        throw new Exception('never get to this EncodeQuickType::encodeQuickType');
     }
 
     /**
@@ -18255,7 +16849,7 @@ class Explicit {
      * @return bool
      * @throws Exception
      */
-    public static function validateExplicit(int $value): bool {
+    public static function validateEncodeQuickType(int $value): bool {
         return true;
     }
 
@@ -18263,18 +16857,18 @@ class Explicit {
      * @throws Exception
      * @return int
      */
-    public function getExplicit(): int {
-        if (Explicit::validateExplicit($this->explicit))  {
-            return $this->explicit;
+    public function getEncodeQuickType(): int {
+        if (EncodeQuickType::validateEncodeQuickType($this->encodeQuickType))  {
+            return $this->encodeQuickType;
         }
-        throw new Exception('never get to getExplicit Explicit::explicit');
+        throw new Exception('never get to getEncodeQuickType EncodeQuickType::encodeQuickType');
     }
 
     /**
      * @return int
      */
-    public static function sampleExplicit(): int {
-        return 31; /*31:explicit*/
+    public static function sampleEncodeQuickType(): int {
+        return 31; /*31:encodeQuickType*/
     }
 
     /**
@@ -18282,7 +16876,7 @@ class Explicit {
      * @return bool
      */
     public function validate(): bool {
-        return Explicit::validateExplicit($this->explicit);
+        return EncodeQuickType::validateEncodeQuickType($this->encodeQuickType);
     }
 
     /**
@@ -18291,44 +16885,44 @@ class Explicit {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'explicit'} = $this->toExplicit();
+        $out->{'encode_quick_type'} = $this->toEncodeQuickType();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Explicit
+     * @return EncodeQuickType
      * @throws Exception
      */
-    public static function from(stdClass $obj): Explicit {
-        if (!property_exists($obj, 'explicit')) {
+    public static function from(stdClass $obj): EncodeQuickType {
+        if (!property_exists($obj, 'encode_quick_type')) {
             throw new Exception("Missing required property");
         }
-        return new Explicit(
-         Explicit::fromExplicit($obj->{'explicit'})
+        return new EncodeQuickType(
+         EncodeQuickType::fromEncodeQuickType($obj->{'encode_quick_type'})
         );
     }
 
     /**
-     * @return Explicit
+     * @return EncodeQuickType
      */
-    public static function sample(): Explicit {
-        return new Explicit(
-         Explicit::sampleExplicit()
+    public static function sample(): EncodeQuickType {
+        return new EncodeQuickType(
+         EncodeQuickType::sampleEncodeQuickType()
         );
     }
 }
 
-// This is an autogenerated file:Export
+// This is an autogenerated file:EnumClass
 
-class Export {
-    private int $export; // json:export Required
+class EnumClass {
+    private int $enum; // json:enum Required
 
     /**
-     * @param int $export
+     * @param int $enum
      */
-    public function __construct(int $export) {
-        $this->export = $export;
+    public function __construct(int $enum) {
+        $this->enum = $enum;
     }
 
     /**
@@ -18336,7 +16930,7 @@ class Export {
      * @throws Exception
      * @return int
      */
-    public static function fromExport(int $value): int {
+    public static function fromEnum(int $value): int {
         return $value; /*int*/
     }
 
@@ -18344,11 +16938,11 @@ class Export {
      * @throws Exception
      * @return int
      */
-    public function toExport(): int {
-        if (Export::validateExport($this->export))  {
-            return $this->export; /*int*/
+    public function toEnum(): int {
+        if (EnumClass::validateEnum($this->enum))  {
+            return $this->enum; /*int*/
         }
-        throw new Exception('never get to this Export::export');
+        throw new Exception('never get to this EnumClass::enum');
     }
 
     /**
@@ -18356,7 +16950,7 @@ class Export {
      * @return bool
      * @throws Exception
      */
-    public static function validateExport(int $value): bool {
+    public static function validateEnum(int $value): bool {
         return true;
     }
 
@@ -18364,18 +16958,18 @@ class Export {
      * @throws Exception
      * @return int
      */
-    public function getExport(): int {
-        if (Export::validateExport($this->export))  {
-            return $this->export;
+    public function getEnum(): int {
+        if (EnumClass::validateEnum($this->enum))  {
+            return $this->enum;
         }
-        throw new Exception('never get to getExport Export::export');
+        throw new Exception('never get to getEnum EnumClass::enum');
     }
 
     /**
      * @return int
      */
-    public static function sampleExport(): int {
-        return 31; /*31:export*/
+    public static function sampleEnum(): int {
+        return 31; /*31:enum*/
     }
 
     /**
@@ -18383,7 +16977,7 @@ class Export {
      * @return bool
      */
     public function validate(): bool {
-        return Export::validateExport($this->export);
+        return EnumClass::validateEnum($this->enum);
     }
 
     /**
@@ -18392,91 +16986,103 @@ class Export {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'export'} = $this->toExport();
+        $out->{'enum'} = $this->toEnum();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Export
+     * @return EnumClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Export {
-        if (!property_exists($obj, 'export')) {
+    public static function from(stdClass $obj): EnumClass {
+        if (!property_exists($obj, 'enum')) {
             throw new Exception("Missing required property");
         }
-        return new Export(
-         Export::fromExport($obj->{'export'})
+        return new EnumClass(
+         EnumClass::fromEnum($obj->{'enum'})
         );
     }
 
     /**
-     * @return Export
+     * @return EnumClass
      */
-    public static function sample(): Export {
-        return new Export(
-         Export::sampleExport()
+    public static function sample(): EnumClass {
+        return new EnumClass(
+         EnumClass::sampleEnum()
         );
     }
 }
 
-// This is an autogenerated file:Exposing
+// This is an autogenerated file:EnumValues
 
-class Exposing {
-    private int $exposing; // json:exposing Required
+class EnumValues {
+    private array $enumValues; // json:EnumValues Required
 
     /**
-     * @param int $exposing
+     * @param array $enumValues
      */
-    public function __construct(int $exposing) {
-        $this->exposing = $exposing;
+    public function __construct(array $enumValues) {
+        $this->enumValues = $enumValues;
     }
 
     /**
-     * @param int $value
+     * @param array $value
      * @throws Exception
-     * @return int
+     * @return array
      */
-    public static function fromExposing(int $value): int {
-        return $value; /*int*/
+    public static function fromEnumValues(array $value): array {
+        return  array_map(function ($value) {
+            return EnumValue::from($value); /*enum*/
+        }, $value);
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return array
      */
-    public function toExposing(): int {
-        if (Exposing::validateExposing($this->exposing))  {
-            return $this->exposing; /*int*/
+    public function toEnumValues(): array {
+        if (EnumValues::validateEnumValues($this->enumValues))  {
+            return array_map(function ($value) {
+                return EnumValue::to($value); /*enum*/
+            }, $this->enumValues);
         }
-        throw new Exception('never get to this Exposing::exposing');
+        throw new Exception('never get to this EnumValues::enumValues');
     }
 
     /**
-     * @param int
+     * @param array
      * @return bool
      * @throws Exception
      */
-    public static function validateExposing(int $value): bool {
+    public static function validateEnumValues(array $value): bool {
+        if (!is_array($value)) {
+            throw new Exception("Attribute Error:EnumValues::enumValues");
+        }
+        array_walk($value, function($value_v) {
+            EnumValue::to($value_v);
+        });
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return array
      */
-    public function getExposing(): int {
-        if (Exposing::validateExposing($this->exposing))  {
-            return $this->exposing;
+    public function getEnumValues(): array {
+        if (EnumValues::validateEnumValues($this->enumValues))  {
+            return $this->enumValues;
         }
-        throw new Exception('never get to getExposing Exposing::exposing');
+        throw new Exception('never get to getEnumValues EnumValues::enumValues');
     }
 
     /**
-     * @return int
+     * @return array
      */
-    public static function sampleExposing(): int {
-        return 31; /*31:exposing*/
+    public static function sampleEnumValues(): array {
+        return  array(
+            EnumValue::sample() /*enum*/
+        ); /* 31:enumValues*/
     }
 
     /**
@@ -18484,7 +17090,7 @@ class Exposing {
      * @return bool
      */
     public function validate(): bool {
-        return Exposing::validateExposing($this->exposing);
+        return EnumValues::validateEnumValues($this->enumValues);
     }
 
     /**
@@ -18493,44 +17099,93 @@ class Exposing {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'exposing'} = $this->toExposing();
+        $out->{'EnumValues'} = $this->toEnumValues();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Exposing
+     * @return EnumValues
      * @throws Exception
      */
-    public static function from(stdClass $obj): Exposing {
-        if (!property_exists($obj, 'exposing')) {
+    public static function from(stdClass $obj): EnumValues {
+        if (!property_exists($obj, 'EnumValues')) {
             throw new Exception("Missing required property");
         }
-        return new Exposing(
-         Exposing::fromExposing($obj->{'exposing'})
+        return new EnumValues(
+         EnumValues::fromEnumValues($obj->{'EnumValues'})
         );
     }
 
     /**
-     * @return Exposing
+     * @return EnumValues
      */
-    public static function sample(): Exposing {
-        return new Exposing(
-         Exposing::sampleExposing()
+    public static function sample(): EnumValues {
+        return new EnumValues(
+         EnumValues::sampleEnumValues()
         );
     }
 }
 
-// This is an autogenerated file:ExtendsClass
+// This is an autogenerated file:EnumValue
 
-class ExtendsClass {
-    private int $extends; // json:extends Required
+class EnumValue {
+    public static EnumValue $READY;
+    public static EnumValue $DONE;
+    public static function init() {
+        EnumValue::$READY = new EnumValue('ready');
+        EnumValue::$DONE = new EnumValue('done');
+    }
+    private string $enum;
+    public function __construct(string $enum) {
+        $this->enum = $enum;
+    }
 
     /**
-     * @param int $extends
+     * @param EnumValue
+     * @return string
+     * @throws Exception
      */
-    public function __construct(int $extends) {
-        $this->extends = $extends;
+    public static function to(EnumValue $obj): string {
+        switch ($obj->enum) {
+            case EnumValue::$READY->enum: return 'ready';
+            case EnumValue::$DONE->enum: return 'done';
+        }
+        throw new Exception('the give value is not an enum-value.');
+    }
+
+    /**
+     * @param mixed
+     * @return EnumValue
+     * @throws Exception
+     */
+    public static function from($obj): EnumValue {
+        switch ($obj) {
+            case 'ready': return EnumValue::$READY;
+            case 'done': return EnumValue::$DONE;
+        }
+        throw new Exception("Cannot deserialize EnumValue");
+    }
+
+    /**
+     * @return EnumValue
+     */
+    public static function sample(): EnumValue {
+        return EnumValue::$READY;
+    }
+}
+EnumValue::init();
+
+// This is an autogenerated file:EqualityContract
+
+class EqualityContract {
+    private int $equalityContract; // json:equalityContract Required
+
+    /**
+     * @param int $equalityContract
+     */
+    public function __construct(int $equalityContract) {
+        $this->equalityContract = $equalityContract;
     }
 
     /**
@@ -18538,7 +17193,7 @@ class ExtendsClass {
      * @throws Exception
      * @return int
      */
-    public static function fromExtends(int $value): int {
+    public static function fromEqualityContract(int $value): int {
         return $value; /*int*/
     }
 
@@ -18546,11 +17201,11 @@ class ExtendsClass {
      * @throws Exception
      * @return int
      */
-    public function toExtends(): int {
-        if (ExtendsClass::validateExtends($this->extends))  {
-            return $this->extends; /*int*/
+    public function toEqualityContract(): int {
+        if (EqualityContract::validateEqualityContract($this->equalityContract))  {
+            return $this->equalityContract; /*int*/
         }
-        throw new Exception('never get to this ExtendsClass::extends');
+        throw new Exception('never get to this EqualityContract::equalityContract');
     }
 
     /**
@@ -18558,7 +17213,7 @@ class ExtendsClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateExtends(int $value): bool {
+    public static function validateEqualityContract(int $value): bool {
         return true;
     }
 
@@ -18566,18 +17221,18 @@ class ExtendsClass {
      * @throws Exception
      * @return int
      */
-    public function getExtends(): int {
-        if (ExtendsClass::validateExtends($this->extends))  {
-            return $this->extends;
+    public function getEqualityContract(): int {
+        if (EqualityContract::validateEqualityContract($this->equalityContract))  {
+            return $this->equalityContract;
         }
-        throw new Exception('never get to getExtends ExtendsClass::extends');
+        throw new Exception('never get to getEqualityContract EqualityContract::equalityContract');
     }
 
     /**
      * @return int
      */
-    public static function sampleExtends(): int {
-        return 31; /*31:extends*/
+    public static function sampleEqualityContract(): int {
+        return 31; /*31:equalityContract*/
     }
 
     /**
@@ -18585,7 +17240,7 @@ class ExtendsClass {
      * @return bool
      */
     public function validate(): bool {
-        return ExtendsClass::validateExtends($this->extends);
+        return EqualityContract::validateEqualityContract($this->equalityContract);
     }
 
     /**
@@ -18594,44 +17249,44 @@ class ExtendsClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'extends'} = $this->toExtends();
+        $out->{'equalityContract'} = $this->toEqualityContract();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ExtendsClass
+     * @return EqualityContract
      * @throws Exception
      */
-    public static function from(stdClass $obj): ExtendsClass {
-        if (!property_exists($obj, 'extends')) {
+    public static function from(stdClass $obj): EqualityContract {
+        if (!property_exists($obj, 'equalityContract')) {
             throw new Exception("Missing required property");
         }
-        return new ExtendsClass(
-         ExtendsClass::fromExtends($obj->{'extends'})
+        return new EqualityContract(
+         EqualityContract::fromEqualityContract($obj->{'equalityContract'})
         );
     }
 
     /**
-     * @return ExtendsClass
+     * @return EqualityContract
      */
-    public static function sample(): ExtendsClass {
-        return new ExtendsClass(
-         ExtendsClass::sampleExtends()
+    public static function sample(): EqualityContract {
+        return new EqualityContract(
+         EqualityContract::sampleEqualityContract()
         );
     }
 }
 
-// This is an autogenerated file:Extension
+// This is an autogenerated file:Event
 
-class Extension {
-    private int $extension; // json:extension Required
+class Event {
+    private int $event; // json:event Required
 
     /**
-     * @param int $extension
+     * @param int $event
      */
-    public function __construct(int $extension) {
-        $this->extension = $extension;
+    public function __construct(int $event) {
+        $this->event = $event;
     }
 
     /**
@@ -18639,7 +17294,7 @@ class Extension {
      * @throws Exception
      * @return int
      */
-    public static function fromExtension(int $value): int {
+    public static function fromEvent(int $value): int {
         return $value; /*int*/
     }
 
@@ -18647,11 +17302,11 @@ class Extension {
      * @throws Exception
      * @return int
      */
-    public function toExtension(): int {
-        if (Extension::validateExtension($this->extension))  {
-            return $this->extension; /*int*/
+    public function toEvent(): int {
+        if (Event::validateEvent($this->event))  {
+            return $this->event; /*int*/
         }
-        throw new Exception('never get to this Extension::extension');
+        throw new Exception('never get to this Event::event');
     }
 
     /**
@@ -18659,7 +17314,7 @@ class Extension {
      * @return bool
      * @throws Exception
      */
-    public static function validateExtension(int $value): bool {
+    public static function validateEvent(int $value): bool {
         return true;
     }
 
@@ -18667,18 +17322,18 @@ class Extension {
      * @throws Exception
      * @return int
      */
-    public function getExtension(): int {
-        if (Extension::validateExtension($this->extension))  {
-            return $this->extension;
+    public function getEvent(): int {
+        if (Event::validateEvent($this->event))  {
+            return $this->event;
         }
-        throw new Exception('never get to getExtension Extension::extension');
+        throw new Exception('never get to getEvent Event::event');
     }
 
     /**
      * @return int
      */
-    public static function sampleExtension(): int {
-        return 31; /*31:extension*/
+    public static function sampleEvent(): int {
+        return 31; /*31:event*/
     }
 
     /**
@@ -18686,7 +17341,7 @@ class Extension {
      * @return bool
      */
     public function validate(): bool {
-        return Extension::validateExtension($this->extension);
+        return Event::validateEvent($this->event);
     }
 
     /**
@@ -18695,44 +17350,44 @@ class Extension {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'extension'} = $this->toExtension();
+        $out->{'event'} = $this->toEvent();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Extension
+     * @return Event
      * @throws Exception
      */
-    public static function from(stdClass $obj): Extension {
-        if (!property_exists($obj, 'extension')) {
+    public static function from(stdClass $obj): Event {
+        if (!property_exists($obj, 'event')) {
             throw new Exception("Missing required property");
         }
-        return new Extension(
-         Extension::fromExtension($obj->{'extension'})
+        return new Event(
+         Event::fromEvent($obj->{'event'})
         );
     }
 
     /**
-     * @return Extension
+     * @return Event
      */
-    public static function sample(): Extension {
-        return new Extension(
-         Extension::sampleExtension()
+    public static function sample(): Event {
+        return new Event(
+         Event::sampleEvent()
         );
     }
 }
 
-// This is an autogenerated file:Extern
+// This is an autogenerated file:Except
 
-class Extern {
-    private int $extern; // json:extern Required
+class Except {
+    private int $except; // json:except Required
 
     /**
-     * @param int $extern
+     * @param int $except
      */
-    public function __construct(int $extern) {
-        $this->extern = $extern;
+    public function __construct(int $except) {
+        $this->except = $except;
     }
 
     /**
@@ -18740,7 +17395,7 @@ class Extern {
      * @throws Exception
      * @return int
      */
-    public static function fromExtern(int $value): int {
+    public static function fromExcept(int $value): int {
         return $value; /*int*/
     }
 
@@ -18748,11 +17403,11 @@ class Extern {
      * @throws Exception
      * @return int
      */
-    public function toExtern(): int {
-        if (Extern::validateExtern($this->extern))  {
-            return $this->extern; /*int*/
+    public function toExcept(): int {
+        if (Except::validateExcept($this->except))  {
+            return $this->except; /*int*/
         }
-        throw new Exception('never get to this Extern::extern');
+        throw new Exception('never get to this Except::except');
     }
 
     /**
@@ -18760,7 +17415,7 @@ class Extern {
      * @return bool
      * @throws Exception
      */
-    public static function validateExtern(int $value): bool {
+    public static function validateExcept(int $value): bool {
         return true;
     }
 
@@ -18768,18 +17423,18 @@ class Extern {
      * @throws Exception
      * @return int
      */
-    public function getExtern(): int {
-        if (Extern::validateExtern($this->extern))  {
-            return $this->extern;
+    public function getExcept(): int {
+        if (Except::validateExcept($this->except))  {
+            return $this->except;
         }
-        throw new Exception('never get to getExtern Extern::extern');
+        throw new Exception('never get to getExcept Except::except');
     }
 
     /**
      * @return int
      */
-    public static function sampleExtern(): int {
-        return 31; /*31:extern*/
+    public static function sampleExcept(): int {
+        return 31; /*31:except*/
     }
 
     /**
@@ -18787,7 +17442,7 @@ class Extern {
      * @return bool
      */
     public function validate(): bool {
-        return Extern::validateExtern($this->extern);
+        return Except::validateExcept($this->except);
     }
 
     /**
@@ -18796,44 +17451,44 @@ class Extern {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'extern'} = $this->toExtern();
+        $out->{'except'} = $this->toExcept();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Extern
+     * @return Except
      * @throws Exception
      */
-    public static function from(stdClass $obj): Extern {
-        if (!property_exists($obj, 'extern')) {
+    public static function from(stdClass $obj): Except {
+        if (!property_exists($obj, 'except')) {
             throw new Exception("Missing required property");
         }
-        return new Extern(
-         Extern::fromExtern($obj->{'extern'})
+        return new Except(
+         Except::fromExcept($obj->{'except'})
         );
     }
 
     /**
-     * @return Extern
+     * @return Except
      */
-    public static function sample(): Extern {
-        return new Extern(
-         Extern::sampleExtern()
+    public static function sample(): Except {
+        return new Except(
+         Except::sampleExcept()
         );
     }
 }
 
-// This is an autogenerated file:Fallthrough
+// This is an autogenerated file:ExceptionClass
 
-class Fallthrough {
-    private int $fallthrough; // json:fallthrough Required
+class ExceptionClass {
+    private int $exception; // json:exception Required
 
     /**
-     * @param int $fallthrough
+     * @param int $exception
      */
-    public function __construct(int $fallthrough) {
-        $this->fallthrough = $fallthrough;
+    public function __construct(int $exception) {
+        $this->exception = $exception;
     }
 
     /**
@@ -18841,7 +17496,7 @@ class Fallthrough {
      * @throws Exception
      * @return int
      */
-    public static function fromFallthrough(int $value): int {
+    public static function fromException(int $value): int {
         return $value; /*int*/
     }
 
@@ -18849,11 +17504,11 @@ class Fallthrough {
      * @throws Exception
      * @return int
      */
-    public function toFallthrough(): int {
-        if (Fallthrough::validateFallthrough($this->fallthrough))  {
-            return $this->fallthrough; /*int*/
+    public function toException(): int {
+        if (ExceptionClass::validateException($this->exception))  {
+            return $this->exception; /*int*/
         }
-        throw new Exception('never get to this Fallthrough::fallthrough');
+        throw new Exception('never get to this ExceptionClass::exception');
     }
 
     /**
@@ -18861,7 +17516,7 @@ class Fallthrough {
      * @return bool
      * @throws Exception
      */
-    public static function validateFallthrough(int $value): bool {
+    public static function validateException(int $value): bool {
         return true;
     }
 
@@ -18869,18 +17524,18 @@ class Fallthrough {
      * @throws Exception
      * @return int
      */
-    public function getFallthrough(): int {
-        if (Fallthrough::validateFallthrough($this->fallthrough))  {
-            return $this->fallthrough;
+    public function getException(): int {
+        if (ExceptionClass::validateException($this->exception))  {
+            return $this->exception;
         }
-        throw new Exception('never get to getFallthrough Fallthrough::fallthrough');
+        throw new Exception('never get to getException ExceptionClass::exception');
     }
 
     /**
      * @return int
      */
-    public static function sampleFallthrough(): int {
-        return 31; /*31:fallthrough*/
+    public static function sampleException(): int {
+        return 31; /*31:exception*/
     }
 
     /**
@@ -18888,7 +17543,7 @@ class Fallthrough {
      * @return bool
      */
     public function validate(): bool {
-        return Fallthrough::validateFallthrough($this->fallthrough);
+        return ExceptionClass::validateException($this->exception);
     }
 
     /**
@@ -18897,44 +17552,44 @@ class Fallthrough {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'fallthrough'} = $this->toFallthrough();
+        $out->{'exception'} = $this->toException();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Fallthrough
+     * @return ExceptionClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fallthrough {
-        if (!property_exists($obj, 'fallthrough')) {
+    public static function from(stdClass $obj): ExceptionClass {
+        if (!property_exists($obj, 'exception')) {
             throw new Exception("Missing required property");
         }
-        return new Fallthrough(
-         Fallthrough::fromFallthrough($obj->{'fallthrough'})
+        return new ExceptionClass(
+         ExceptionClass::fromException($obj->{'exception'})
         );
     }
 
     /**
-     * @return Fallthrough
+     * @return ExceptionClass
      */
-    public static function sample(): Fallthrough {
-        return new Fallthrough(
-         Fallthrough::sampleFallthrough()
+    public static function sample(): ExceptionClass {
+        return new ExceptionClass(
+         ExceptionClass::sampleException()
         );
     }
 }
 
-// This is an autogenerated file:FalseClass
+// This is an autogenerated file:Explicit
 
-class FalseClass {
-    private int $false; // json:False Required
+class Explicit {
+    private int $explicit; // json:explicit Required
 
     /**
-     * @param int $false
+     * @param int $explicit
      */
-    public function __construct(int $false) {
-        $this->false = $false;
+    public function __construct(int $explicit) {
+        $this->explicit = $explicit;
     }
 
     /**
@@ -18942,7 +17597,7 @@ class FalseClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFalse(int $value): int {
+    public static function fromExplicit(int $value): int {
         return $value; /*int*/
     }
 
@@ -18950,11 +17605,11 @@ class FalseClass {
      * @throws Exception
      * @return int
      */
-    public function toFalse(): int {
-        if (FalseClass::validateFalse($this->false))  {
-            return $this->false; /*int*/
+    public function toExplicit(): int {
+        if (Explicit::validateExplicit($this->explicit))  {
+            return $this->explicit; /*int*/
         }
-        throw new Exception('never get to this FalseClass::false');
+        throw new Exception('never get to this Explicit::explicit');
     }
 
     /**
@@ -18962,7 +17617,7 @@ class FalseClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFalse(int $value): bool {
+    public static function validateExplicit(int $value): bool {
         return true;
     }
 
@@ -18970,18 +17625,18 @@ class FalseClass {
      * @throws Exception
      * @return int
      */
-    public function getFalse(): int {
-        if (FalseClass::validateFalse($this->false))  {
-            return $this->false;
+    public function getExplicit(): int {
+        if (Explicit::validateExplicit($this->explicit))  {
+            return $this->explicit;
         }
-        throw new Exception('never get to getFalse FalseClass::false');
+        throw new Exception('never get to getExplicit Explicit::explicit');
     }
 
     /**
      * @return int
      */
-    public static function sampleFalse(): int {
-        return 31; /*31:false*/
+    public static function sampleExplicit(): int {
+        return 31; /*31:explicit*/
     }
 
     /**
@@ -18989,7 +17644,7 @@ class FalseClass {
      * @return bool
      */
     public function validate(): bool {
-        return FalseClass::validateFalse($this->false);
+        return Explicit::validateExplicit($this->explicit);
     }
 
     /**
@@ -18998,44 +17653,44 @@ class FalseClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'False'} = $this->toFalse();
+        $out->{'explicit'} = $this->toExplicit();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FalseClass
+     * @return Explicit
      * @throws Exception
      */
-    public static function from(stdClass $obj): FalseClass {
-        if (!property_exists($obj, 'False')) {
+    public static function from(stdClass $obj): Explicit {
+        if (!property_exists($obj, 'explicit')) {
             throw new Exception("Missing required property");
         }
-        return new FalseClass(
-         FalseClass::fromFalse($obj->{'False'})
+        return new Explicit(
+         Explicit::fromExplicit($obj->{'explicit'})
         );
     }
 
     /**
-     * @return FalseClass
+     * @return Explicit
      */
-    public static function sample(): FalseClass {
-        return new FalseClass(
-         FalseClass::sampleFalse()
+    public static function sample(): Explicit {
+        return new Explicit(
+         Explicit::sampleExplicit()
         );
     }
 }
 
-// This is an autogenerated file:Fileprivate
+// This is an autogenerated file:Export
 
-class Fileprivate {
-    private int $fileprivate; // json:fileprivate Required
+class Export {
+    private int $export; // json:export Required
 
     /**
-     * @param int $fileprivate
+     * @param int $export
      */
-    public function __construct(int $fileprivate) {
-        $this->fileprivate = $fileprivate;
+    public function __construct(int $export) {
+        $this->export = $export;
     }
 
     /**
@@ -19043,7 +17698,7 @@ class Fileprivate {
      * @throws Exception
      * @return int
      */
-    public static function fromFileprivate(int $value): int {
+    public static function fromExport(int $value): int {
         return $value; /*int*/
     }
 
@@ -19051,11 +17706,11 @@ class Fileprivate {
      * @throws Exception
      * @return int
      */
-    public function toFileprivate(): int {
-        if (Fileprivate::validateFileprivate($this->fileprivate))  {
-            return $this->fileprivate; /*int*/
+    public function toExport(): int {
+        if (Export::validateExport($this->export))  {
+            return $this->export; /*int*/
         }
-        throw new Exception('never get to this Fileprivate::fileprivate');
+        throw new Exception('never get to this Export::export');
     }
 
     /**
@@ -19063,7 +17718,7 @@ class Fileprivate {
      * @return bool
      * @throws Exception
      */
-    public static function validateFileprivate(int $value): bool {
+    public static function validateExport(int $value): bool {
         return true;
     }
 
@@ -19071,18 +17726,18 @@ class Fileprivate {
      * @throws Exception
      * @return int
      */
-    public function getFileprivate(): int {
-        if (Fileprivate::validateFileprivate($this->fileprivate))  {
-            return $this->fileprivate;
+    public function getExport(): int {
+        if (Export::validateExport($this->export))  {
+            return $this->export;
         }
-        throw new Exception('never get to getFileprivate Fileprivate::fileprivate');
+        throw new Exception('never get to getExport Export::export');
     }
 
     /**
      * @return int
      */
-    public static function sampleFileprivate(): int {
-        return 31; /*31:fileprivate*/
+    public static function sampleExport(): int {
+        return 31; /*31:export*/
     }
 
     /**
@@ -19090,7 +17745,7 @@ class Fileprivate {
      * @return bool
      */
     public function validate(): bool {
-        return Fileprivate::validateFileprivate($this->fileprivate);
+        return Export::validateExport($this->export);
     }
 
     /**
@@ -19099,44 +17754,44 @@ class Fileprivate {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'fileprivate'} = $this->toFileprivate();
+        $out->{'export'} = $this->toExport();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Fileprivate
+     * @return Export
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fileprivate {
-        if (!property_exists($obj, 'fileprivate')) {
+    public static function from(stdClass $obj): Export {
+        if (!property_exists($obj, 'export')) {
             throw new Exception("Missing required property");
         }
-        return new Fileprivate(
-         Fileprivate::fromFileprivate($obj->{'fileprivate'})
+        return new Export(
+         Export::fromExport($obj->{'export'})
         );
     }
 
     /**
-     * @return Fileprivate
+     * @return Export
      */
-    public static function sample(): Fileprivate {
-        return new Fileprivate(
-         Fileprivate::sampleFileprivate()
+    public static function sample(): Export {
+        return new Export(
+         Export::sampleExport()
         );
     }
 }
 
-// This is an autogenerated file:FinalClass
+// This is an autogenerated file:Exposing
 
-class FinalClass {
-    private int $final; // json:final Required
+class Exposing {
+    private int $exposing; // json:exposing Required
 
     /**
-     * @param int $final
+     * @param int $exposing
      */
-    public function __construct(int $final) {
-        $this->final = $final;
+    public function __construct(int $exposing) {
+        $this->exposing = $exposing;
     }
 
     /**
@@ -19144,7 +17799,7 @@ class FinalClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFinal(int $value): int {
+    public static function fromExposing(int $value): int {
         return $value; /*int*/
     }
 
@@ -19152,11 +17807,11 @@ class FinalClass {
      * @throws Exception
      * @return int
      */
-    public function toFinal(): int {
-        if (FinalClass::validateFinal($this->final))  {
-            return $this->final; /*int*/
+    public function toExposing(): int {
+        if (Exposing::validateExposing($this->exposing))  {
+            return $this->exposing; /*int*/
         }
-        throw new Exception('never get to this FinalClass::final');
+        throw new Exception('never get to this Exposing::exposing');
     }
 
     /**
@@ -19164,7 +17819,7 @@ class FinalClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFinal(int $value): bool {
+    public static function validateExposing(int $value): bool {
         return true;
     }
 
@@ -19172,18 +17827,18 @@ class FinalClass {
      * @throws Exception
      * @return int
      */
-    public function getFinal(): int {
-        if (FinalClass::validateFinal($this->final))  {
-            return $this->final;
+    public function getExposing(): int {
+        if (Exposing::validateExposing($this->exposing))  {
+            return $this->exposing;
         }
-        throw new Exception('never get to getFinal FinalClass::final');
+        throw new Exception('never get to getExposing Exposing::exposing');
     }
 
     /**
      * @return int
      */
-    public static function sampleFinal(): int {
-        return 31; /*31:final*/
+    public static function sampleExposing(): int {
+        return 31; /*31:exposing*/
     }
 
     /**
@@ -19191,7 +17846,7 @@ class FinalClass {
      * @return bool
      */
     public function validate(): bool {
-        return FinalClass::validateFinal($this->final);
+        return Exposing::validateExposing($this->exposing);
     }
 
     /**
@@ -19200,44 +17855,44 @@ class FinalClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'final'} = $this->toFinal();
+        $out->{'exposing'} = $this->toExposing();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FinalClass
+     * @return Exposing
      * @throws Exception
      */
-    public static function from(stdClass $obj): FinalClass {
-        if (!property_exists($obj, 'final')) {
+    public static function from(stdClass $obj): Exposing {
+        if (!property_exists($obj, 'exposing')) {
             throw new Exception("Missing required property");
         }
-        return new FinalClass(
-         FinalClass::fromFinal($obj->{'final'})
+        return new Exposing(
+         Exposing::fromExposing($obj->{'exposing'})
         );
     }
 
     /**
-     * @return FinalClass
+     * @return Exposing
      */
-    public static function sample(): FinalClass {
-        return new FinalClass(
-         FinalClass::sampleFinal()
+    public static function sample(): Exposing {
+        return new Exposing(
+         Exposing::sampleExposing()
         );
     }
 }
 
-// This is an autogenerated file:FinallyClass
+// This is an autogenerated file:ExtendsClass
 
-class FinallyClass {
-    private int $finally; // json:finally Required
+class ExtendsClass {
+    private int $extends; // json:extends Required
 
     /**
-     * @param int $finally
+     * @param int $extends
      */
-    public function __construct(int $finally) {
-        $this->finally = $finally;
+    public function __construct(int $extends) {
+        $this->extends = $extends;
     }
 
     /**
@@ -19245,7 +17900,7 @@ class FinallyClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFinally(int $value): int {
+    public static function fromExtends(int $value): int {
         return $value; /*int*/
     }
 
@@ -19253,11 +17908,11 @@ class FinallyClass {
      * @throws Exception
      * @return int
      */
-    public function toFinally(): int {
-        if (FinallyClass::validateFinally($this->finally))  {
-            return $this->finally; /*int*/
+    public function toExtends(): int {
+        if (ExtendsClass::validateExtends($this->extends))  {
+            return $this->extends; /*int*/
         }
-        throw new Exception('never get to this FinallyClass::finally');
+        throw new Exception('never get to this ExtendsClass::extends');
     }
 
     /**
@@ -19265,7 +17920,7 @@ class FinallyClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFinally(int $value): bool {
+    public static function validateExtends(int $value): bool {
         return true;
     }
 
@@ -19273,18 +17928,18 @@ class FinallyClass {
      * @throws Exception
      * @return int
      */
-    public function getFinally(): int {
-        if (FinallyClass::validateFinally($this->finally))  {
-            return $this->finally;
+    public function getExtends(): int {
+        if (ExtendsClass::validateExtends($this->extends))  {
+            return $this->extends;
         }
-        throw new Exception('never get to getFinally FinallyClass::finally');
+        throw new Exception('never get to getExtends ExtendsClass::extends');
     }
 
     /**
      * @return int
      */
-    public static function sampleFinally(): int {
-        return 31; /*31:finally*/
+    public static function sampleExtends(): int {
+        return 31; /*31:extends*/
     }
 
     /**
@@ -19292,7 +17947,7 @@ class FinallyClass {
      * @return bool
      */
     public function validate(): bool {
-        return FinallyClass::validateFinally($this->finally);
+        return ExtendsClass::validateExtends($this->extends);
     }
 
     /**
@@ -19301,44 +17956,44 @@ class FinallyClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'finally'} = $this->toFinally();
+        $out->{'extends'} = $this->toExtends();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FinallyClass
+     * @return ExtendsClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): FinallyClass {
-        if (!property_exists($obj, 'finally')) {
+    public static function from(stdClass $obj): ExtendsClass {
+        if (!property_exists($obj, 'extends')) {
             throw new Exception("Missing required property");
         }
-        return new FinallyClass(
-         FinallyClass::fromFinally($obj->{'finally'})
+        return new ExtendsClass(
+         ExtendsClass::fromExtends($obj->{'extends'})
         );
     }
 
     /**
-     * @return FinallyClass
+     * @return ExtendsClass
      */
-    public static function sample(): FinallyClass {
-        return new FinallyClass(
-         FinallyClass::sampleFinally()
+    public static function sample(): ExtendsClass {
+        return new ExtendsClass(
+         ExtendsClass::sampleExtends()
         );
     }
 }
 
-// This is an autogenerated file:Fixed
+// This is an autogenerated file:Extension
 
-class Fixed {
-    private int $fixed; // json:fixed Required
+class Extension {
+    private int $extension; // json:extension Required
 
     /**
-     * @param int $fixed
+     * @param int $extension
      */
-    public function __construct(int $fixed) {
-        $this->fixed = $fixed;
+    public function __construct(int $extension) {
+        $this->extension = $extension;
     }
 
     /**
@@ -19346,7 +18001,7 @@ class Fixed {
      * @throws Exception
      * @return int
      */
-    public static function fromFixed(int $value): int {
+    public static function fromExtension(int $value): int {
         return $value; /*int*/
     }
 
@@ -19354,11 +18009,11 @@ class Fixed {
      * @throws Exception
      * @return int
      */
-    public function toFixed(): int {
-        if (Fixed::validateFixed($this->fixed))  {
-            return $this->fixed; /*int*/
+    public function toExtension(): int {
+        if (Extension::validateExtension($this->extension))  {
+            return $this->extension; /*int*/
         }
-        throw new Exception('never get to this Fixed::fixed');
+        throw new Exception('never get to this Extension::extension');
     }
 
     /**
@@ -19366,7 +18021,7 @@ class Fixed {
      * @return bool
      * @throws Exception
      */
-    public static function validateFixed(int $value): bool {
+    public static function validateExtension(int $value): bool {
         return true;
     }
 
@@ -19374,18 +18029,18 @@ class Fixed {
      * @throws Exception
      * @return int
      */
-    public function getFixed(): int {
-        if (Fixed::validateFixed($this->fixed))  {
-            return $this->fixed;
+    public function getExtension(): int {
+        if (Extension::validateExtension($this->extension))  {
+            return $this->extension;
         }
-        throw new Exception('never get to getFixed Fixed::fixed');
+        throw new Exception('never get to getExtension Extension::extension');
     }
 
     /**
      * @return int
      */
-    public static function sampleFixed(): int {
-        return 31; /*31:fixed*/
+    public static function sampleExtension(): int {
+        return 31; /*31:extension*/
     }
 
     /**
@@ -19393,7 +18048,7 @@ class Fixed {
      * @return bool
      */
     public function validate(): bool {
-        return Fixed::validateFixed($this->fixed);
+        return Extension::validateExtension($this->extension);
     }
 
     /**
@@ -19402,44 +18057,44 @@ class Fixed {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'fixed'} = $this->toFixed();
+        $out->{'extension'} = $this->toExtension();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Fixed
+     * @return Extension
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fixed {
-        if (!property_exists($obj, 'fixed')) {
+    public static function from(stdClass $obj): Extension {
+        if (!property_exists($obj, 'extension')) {
             throw new Exception("Missing required property");
         }
-        return new Fixed(
-         Fixed::fromFixed($obj->{'fixed'})
+        return new Extension(
+         Extension::fromExtension($obj->{'extension'})
         );
     }
 
     /**
-     * @return Fixed
+     * @return Extension
      */
-    public static function sample(): Fixed {
-        return new Fixed(
-         Fixed::sampleFixed()
+    public static function sample(): Extension {
+        return new Extension(
+         Extension::sampleExtension()
         );
     }
 }
 
-// This is an autogenerated file:FloatClass
+// This is an autogenerated file:Extern
 
-class FloatClass {
-    private int $float; // json:float Required
+class Extern {
+    private int $extern; // json:extern Required
 
     /**
-     * @param int $float
+     * @param int $extern
      */
-    public function __construct(int $float) {
-        $this->float = $float;
+    public function __construct(int $extern) {
+        $this->extern = $extern;
     }
 
     /**
@@ -19447,7 +18102,7 @@ class FloatClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFloat(int $value): int {
+    public static function fromExtern(int $value): int {
         return $value; /*int*/
     }
 
@@ -19455,11 +18110,11 @@ class FloatClass {
      * @throws Exception
      * @return int
      */
-    public function toFloat(): int {
-        if (FloatClass::validateFloat($this->float))  {
-            return $this->float; /*int*/
+    public function toExtern(): int {
+        if (Extern::validateExtern($this->extern))  {
+            return $this->extern; /*int*/
         }
-        throw new Exception('never get to this FloatClass::float');
+        throw new Exception('never get to this Extern::extern');
     }
 
     /**
@@ -19467,7 +18122,7 @@ class FloatClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFloat(int $value): bool {
+    public static function validateExtern(int $value): bool {
         return true;
     }
 
@@ -19475,18 +18130,18 @@ class FloatClass {
      * @throws Exception
      * @return int
      */
-    public function getFloat(): int {
-        if (FloatClass::validateFloat($this->float))  {
-            return $this->float;
+    public function getExtern(): int {
+        if (Extern::validateExtern($this->extern))  {
+            return $this->extern;
         }
-        throw new Exception('never get to getFloat FloatClass::float');
+        throw new Exception('never get to getExtern Extern::extern');
     }
 
     /**
      * @return int
      */
-    public static function sampleFloat(): int {
-        return 31; /*31:float*/
+    public static function sampleExtern(): int {
+        return 31; /*31:extern*/
     }
 
     /**
@@ -19494,7 +18149,7 @@ class FloatClass {
      * @return bool
      */
     public function validate(): bool {
-        return FloatClass::validateFloat($this->float);
+        return Extern::validateExtern($this->extern);
     }
 
     /**
@@ -19503,44 +18158,44 @@ class FloatClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'float'} = $this->toFloat();
+        $out->{'extern'} = $this->toExtern();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FloatClass
+     * @return Extern
      * @throws Exception
      */
-    public static function from(stdClass $obj): FloatClass {
-        if (!property_exists($obj, 'float')) {
+    public static function from(stdClass $obj): Extern {
+        if (!property_exists($obj, 'extern')) {
             throw new Exception("Missing required property");
         }
-        return new FloatClass(
-         FloatClass::fromFloat($obj->{'float'})
+        return new Extern(
+         Extern::fromExtern($obj->{'extern'})
         );
     }
 
     /**
-     * @return FloatClass
+     * @return Extern
      */
-    public static function sample(): FloatClass {
-        return new FloatClass(
-         FloatClass::sampleFloat()
+    public static function sample(): Extern {
+        return new Extern(
+         Extern::sampleExtern()
         );
     }
 }
 
-// This is an autogenerated file:ForClass
+// This is an autogenerated file:Fallthrough
 
-class ForClass {
-    private int $for; // json:for Required
+class Fallthrough {
+    private int $fallthrough; // json:fallthrough Required
 
     /**
-     * @param int $for
+     * @param int $fallthrough
      */
-    public function __construct(int $for) {
-        $this->for = $for;
+    public function __construct(int $fallthrough) {
+        $this->fallthrough = $fallthrough;
     }
 
     /**
@@ -19548,7 +18203,7 @@ class ForClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFor(int $value): int {
+    public static function fromFallthrough(int $value): int {
         return $value; /*int*/
     }
 
@@ -19556,11 +18211,11 @@ class ForClass {
      * @throws Exception
      * @return int
      */
-    public function toFor(): int {
-        if (ForClass::validateFor($this->for))  {
-            return $this->for; /*int*/
+    public function toFallthrough(): int {
+        if (Fallthrough::validateFallthrough($this->fallthrough))  {
+            return $this->fallthrough; /*int*/
         }
-        throw new Exception('never get to this ForClass::for');
+        throw new Exception('never get to this Fallthrough::fallthrough');
     }
 
     /**
@@ -19568,7 +18223,7 @@ class ForClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFor(int $value): bool {
+    public static function validateFallthrough(int $value): bool {
         return true;
     }
 
@@ -19576,18 +18231,18 @@ class ForClass {
      * @throws Exception
      * @return int
      */
-    public function getFor(): int {
-        if (ForClass::validateFor($this->for))  {
-            return $this->for;
+    public function getFallthrough(): int {
+        if (Fallthrough::validateFallthrough($this->fallthrough))  {
+            return $this->fallthrough;
         }
-        throw new Exception('never get to getFor ForClass::for');
+        throw new Exception('never get to getFallthrough Fallthrough::fallthrough');
     }
 
     /**
      * @return int
      */
-    public static function sampleFor(): int {
-        return 31; /*31:for*/
+    public static function sampleFallthrough(): int {
+        return 31; /*31:fallthrough*/
     }
 
     /**
@@ -19595,7 +18250,7 @@ class ForClass {
      * @return bool
      */
     public function validate(): bool {
-        return ForClass::validateFor($this->for);
+        return Fallthrough::validateFallthrough($this->fallthrough);
     }
 
     /**
@@ -19604,44 +18259,44 @@ class ForClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'for'} = $this->toFor();
+        $out->{'fallthrough'} = $this->toFallthrough();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ForClass
+     * @return Fallthrough
      * @throws Exception
      */
-    public static function from(stdClass $obj): ForClass {
-        if (!property_exists($obj, 'for')) {
+    public static function from(stdClass $obj): Fallthrough {
+        if (!property_exists($obj, 'fallthrough')) {
             throw new Exception("Missing required property");
         }
-        return new ForClass(
-         ForClass::fromFor($obj->{'for'})
+        return new Fallthrough(
+         Fallthrough::fromFallthrough($obj->{'fallthrough'})
         );
     }
 
     /**
-     * @return ForClass
+     * @return Fallthrough
      */
-    public static function sample(): ForClass {
-        return new ForClass(
-         ForClass::sampleFor()
+    public static function sample(): Fallthrough {
+        return new Fallthrough(
+         Fallthrough::sampleFallthrough()
         );
     }
 }
 
-// This is an autogenerated file:ForeachClass
+// This is an autogenerated file:FalseClass
 
-class ForeachClass {
-    private int $foreach; // json:foreach Required
+class FalseClass {
+    private int $false; // json:False Required
 
     /**
-     * @param int $foreach
+     * @param int $false
      */
-    public function __construct(int $foreach) {
-        $this->foreach = $foreach;
+    public function __construct(int $false) {
+        $this->false = $false;
     }
 
     /**
@@ -19649,7 +18304,7 @@ class ForeachClass {
      * @throws Exception
      * @return int
      */
-    public static function fromForeach(int $value): int {
+    public static function fromFalse(int $value): int {
         return $value; /*int*/
     }
 
@@ -19657,11 +18312,11 @@ class ForeachClass {
      * @throws Exception
      * @return int
      */
-    public function toForeach(): int {
-        if (ForeachClass::validateForeach($this->foreach))  {
-            return $this->foreach; /*int*/
+    public function toFalse(): int {
+        if (FalseClass::validateFalse($this->false))  {
+            return $this->false; /*int*/
         }
-        throw new Exception('never get to this ForeachClass::foreach');
+        throw new Exception('never get to this FalseClass::false');
     }
 
     /**
@@ -19669,7 +18324,7 @@ class ForeachClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateForeach(int $value): bool {
+    public static function validateFalse(int $value): bool {
         return true;
     }
 
@@ -19677,18 +18332,18 @@ class ForeachClass {
      * @throws Exception
      * @return int
      */
-    public function getForeach(): int {
-        if (ForeachClass::validateForeach($this->foreach))  {
-            return $this->foreach;
+    public function getFalse(): int {
+        if (FalseClass::validateFalse($this->false))  {
+            return $this->false;
         }
-        throw new Exception('never get to getForeach ForeachClass::foreach');
+        throw new Exception('never get to getFalse FalseClass::false');
     }
 
     /**
      * @return int
      */
-    public static function sampleForeach(): int {
-        return 31; /*31:foreach*/
+    public static function sampleFalse(): int {
+        return 31; /*31:false*/
     }
 
     /**
@@ -19696,7 +18351,7 @@ class ForeachClass {
      * @return bool
      */
     public function validate(): bool {
-        return ForeachClass::validateForeach($this->foreach);
+        return FalseClass::validateFalse($this->false);
     }
 
     /**
@@ -19705,44 +18360,44 @@ class ForeachClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'foreach'} = $this->toForeach();
+        $out->{'False'} = $this->toFalse();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ForeachClass
+     * @return FalseClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ForeachClass {
-        if (!property_exists($obj, 'foreach')) {
+    public static function from(stdClass $obj): FalseClass {
+        if (!property_exists($obj, 'False')) {
             throw new Exception("Missing required property");
         }
-        return new ForeachClass(
-         ForeachClass::fromForeach($obj->{'foreach'})
+        return new FalseClass(
+         FalseClass::fromFalse($obj->{'False'})
         );
     }
 
     /**
-     * @return ForeachClass
+     * @return FalseClass
      */
-    public static function sample(): ForeachClass {
-        return new ForeachClass(
-         ForeachClass::sampleForeach()
+    public static function sample(): FalseClass {
+        return new FalseClass(
+         FalseClass::sampleFalse()
         );
     }
 }
 
-// This is an autogenerated file:FormatException
+// This is an autogenerated file:Fileprivate
 
-class FormatException {
-    private int $formatException; // json:FormatException Required
+class Fileprivate {
+    private int $fileprivate; // json:fileprivate Required
 
     /**
-     * @param int $formatException
+     * @param int $fileprivate
      */
-    public function __construct(int $formatException) {
-        $this->formatException = $formatException;
+    public function __construct(int $fileprivate) {
+        $this->fileprivate = $fileprivate;
     }
 
     /**
@@ -19750,7 +18405,7 @@ class FormatException {
      * @throws Exception
      * @return int
      */
-    public static function fromFormatException(int $value): int {
+    public static function fromFileprivate(int $value): int {
         return $value; /*int*/
     }
 
@@ -19758,11 +18413,11 @@ class FormatException {
      * @throws Exception
      * @return int
      */
-    public function toFormatException(): int {
-        if (FormatException::validateFormatException($this->formatException))  {
-            return $this->formatException; /*int*/
+    public function toFileprivate(): int {
+        if (Fileprivate::validateFileprivate($this->fileprivate))  {
+            return $this->fileprivate; /*int*/
         }
-        throw new Exception('never get to this FormatException::formatException');
+        throw new Exception('never get to this Fileprivate::fileprivate');
     }
 
     /**
@@ -19770,7 +18425,7 @@ class FormatException {
      * @return bool
      * @throws Exception
      */
-    public static function validateFormatException(int $value): bool {
+    public static function validateFileprivate(int $value): bool {
         return true;
     }
 
@@ -19778,18 +18433,18 @@ class FormatException {
      * @throws Exception
      * @return int
      */
-    public function getFormatException(): int {
-        if (FormatException::validateFormatException($this->formatException))  {
-            return $this->formatException;
+    public function getFileprivate(): int {
+        if (Fileprivate::validateFileprivate($this->fileprivate))  {
+            return $this->fileprivate;
         }
-        throw new Exception('never get to getFormatException FormatException::formatException');
+        throw new Exception('never get to getFileprivate Fileprivate::fileprivate');
     }
 
     /**
      * @return int
      */
-    public static function sampleFormatException(): int {
-        return 31; /*31:formatException*/
+    public static function sampleFileprivate(): int {
+        return 31; /*31:fileprivate*/
     }
 
     /**
@@ -19797,7 +18452,7 @@ class FormatException {
      * @return bool
      */
     public function validate(): bool {
-        return FormatException::validateFormatException($this->formatException);
+        return Fileprivate::validateFileprivate($this->fileprivate);
     }
 
     /**
@@ -19806,44 +18461,44 @@ class FormatException {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'FormatException'} = $this->toFormatException();
+        $out->{'fileprivate'} = $this->toFileprivate();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FormatException
+     * @return Fileprivate
      * @throws Exception
      */
-    public static function from(stdClass $obj): FormatException {
-        if (!property_exists($obj, 'FormatException')) {
+    public static function from(stdClass $obj): Fileprivate {
+        if (!property_exists($obj, 'fileprivate')) {
             throw new Exception("Missing required property");
         }
-        return new FormatException(
-         FormatException::fromFormatException($obj->{'FormatException'})
+        return new Fileprivate(
+         Fileprivate::fromFileprivate($obj->{'fileprivate'})
         );
     }
 
     /**
-     * @return FormatException
+     * @return Fileprivate
      */
-    public static function sample(): FormatException {
-        return new FormatException(
-         FormatException::sampleFormatException()
+    public static function sample(): Fileprivate {
+        return new Fileprivate(
+         Fileprivate::sampleFileprivate()
         );
     }
 }
 
-// This is an autogenerated file:Friend
+// This is an autogenerated file:FinalClass
 
-class Friend {
-    private int $friend; // json:friend Required
+class FinalClass {
+    private int $final; // json:final Required
 
     /**
-     * @param int $friend
+     * @param int $final
      */
-    public function __construct(int $friend) {
-        $this->friend = $friend;
+    public function __construct(int $final) {
+        $this->final = $final;
     }
 
     /**
@@ -19851,7 +18506,7 @@ class Friend {
      * @throws Exception
      * @return int
      */
-    public static function fromFriend(int $value): int {
+    public static function fromFinal(int $value): int {
         return $value; /*int*/
     }
 
@@ -19859,11 +18514,11 @@ class Friend {
      * @throws Exception
      * @return int
      */
-    public function toFriend(): int {
-        if (Friend::validateFriend($this->friend))  {
-            return $this->friend; /*int*/
+    public function toFinal(): int {
+        if (FinalClass::validateFinal($this->final))  {
+            return $this->final; /*int*/
         }
-        throw new Exception('never get to this Friend::friend');
+        throw new Exception('never get to this FinalClass::final');
     }
 
     /**
@@ -19871,7 +18526,7 @@ class Friend {
      * @return bool
      * @throws Exception
      */
-    public static function validateFriend(int $value): bool {
+    public static function validateFinal(int $value): bool {
         return true;
     }
 
@@ -19879,18 +18534,18 @@ class Friend {
      * @throws Exception
      * @return int
      */
-    public function getFriend(): int {
-        if (Friend::validateFriend($this->friend))  {
-            return $this->friend;
+    public function getFinal(): int {
+        if (FinalClass::validateFinal($this->final))  {
+            return $this->final;
         }
-        throw new Exception('never get to getFriend Friend::friend');
+        throw new Exception('never get to getFinal FinalClass::final');
     }
 
     /**
      * @return int
      */
-    public static function sampleFriend(): int {
-        return 31; /*31:friend*/
+    public static function sampleFinal(): int {
+        return 31; /*31:final*/
     }
 
     /**
@@ -19898,7 +18553,7 @@ class Friend {
      * @return bool
      */
     public function validate(): bool {
-        return Friend::validateFriend($this->friend);
+        return FinalClass::validateFinal($this->final);
     }
 
     /**
@@ -19907,44 +18562,44 @@ class Friend {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'friend'} = $this->toFriend();
+        $out->{'final'} = $this->toFinal();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Friend
+     * @return FinalClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Friend {
-        if (!property_exists($obj, 'friend')) {
+    public static function from(stdClass $obj): FinalClass {
+        if (!property_exists($obj, 'final')) {
             throw new Exception("Missing required property");
         }
-        return new Friend(
-         Friend::fromFriend($obj->{'friend'})
+        return new FinalClass(
+         FinalClass::fromFinal($obj->{'final'})
         );
     }
 
     /**
-     * @return Friend
+     * @return FinalClass
      */
-    public static function sample(): Friend {
-        return new Friend(
-         Friend::sampleFriend()
+    public static function sample(): FinalClass {
+        return new FinalClass(
+         FinalClass::sampleFinal()
         );
     }
 }
 
-// This is an autogenerated file:From
+// This is an autogenerated file:FinallyClass
 
-class From {
-    private int $from; // json:from Required
+class FinallyClass {
+    private int $finally; // json:finally Required
 
     /**
-     * @param int $from
+     * @param int $finally
      */
-    public function __construct(int $from) {
-        $this->from = $from;
+    public function __construct(int $finally) {
+        $this->finally = $finally;
     }
 
     /**
@@ -19952,7 +18607,7 @@ class From {
      * @throws Exception
      * @return int
      */
-    public static function fromFrom(int $value): int {
+    public static function fromFinally(int $value): int {
         return $value; /*int*/
     }
 
@@ -19960,11 +18615,11 @@ class From {
      * @throws Exception
      * @return int
      */
-    public function toFrom(): int {
-        if (From::validateFrom($this->from))  {
-            return $this->from; /*int*/
+    public function toFinally(): int {
+        if (FinallyClass::validateFinally($this->finally))  {
+            return $this->finally; /*int*/
         }
-        throw new Exception('never get to this From::from');
+        throw new Exception('never get to this FinallyClass::finally');
     }
 
     /**
@@ -19972,7 +18627,7 @@ class From {
      * @return bool
      * @throws Exception
      */
-    public static function validateFrom(int $value): bool {
+    public static function validateFinally(int $value): bool {
         return true;
     }
 
@@ -19980,18 +18635,18 @@ class From {
      * @throws Exception
      * @return int
      */
-    public function getFrom(): int {
-        if (From::validateFrom($this->from))  {
-            return $this->from;
+    public function getFinally(): int {
+        if (FinallyClass::validateFinally($this->finally))  {
+            return $this->finally;
         }
-        throw new Exception('never get to getFrom From::from');
+        throw new Exception('never get to getFinally FinallyClass::finally');
     }
 
     /**
      * @return int
      */
-    public static function sampleFrom(): int {
-        return 31; /*31:from*/
+    public static function sampleFinally(): int {
+        return 31; /*31:finally*/
     }
 
     /**
@@ -19999,7 +18654,7 @@ class From {
      * @return bool
      */
     public function validate(): bool {
-        return From::validateFrom($this->from);
+        return FinallyClass::validateFinally($this->finally);
     }
 
     /**
@@ -20008,44 +18663,44 @@ class From {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'from'} = $this->toFrom();
+        $out->{'finally'} = $this->toFinally();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return From
+     * @return FinallyClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): From {
-        if (!property_exists($obj, 'from')) {
+    public static function from(stdClass $obj): FinallyClass {
+        if (!property_exists($obj, 'finally')) {
             throw new Exception("Missing required property");
         }
-        return new From(
-         From::fromFrom($obj->{'from'})
+        return new FinallyClass(
+         FinallyClass::fromFinally($obj->{'finally'})
         );
     }
 
     /**
-     * @return From
+     * @return FinallyClass
      */
-    public static function sample(): From {
-        return new From(
-         From::sampleFrom()
+    public static function sample(): FinallyClass {
+        return new FinallyClass(
+         FinallyClass::sampleFinally()
         );
     }
 }
 
-// This is an autogenerated file:FromJSON
+// This is an autogenerated file:Fixed
 
-class FromJSON {
-    private int $fromJSON; // json:from_json Required
+class Fixed {
+    private int $fixed; // json:fixed Required
 
     /**
-     * @param int $fromJSON
+     * @param int $fixed
      */
-    public function __construct(int $fromJSON) {
-        $this->fromJSON = $fromJSON;
+    public function __construct(int $fixed) {
+        $this->fixed = $fixed;
     }
 
     /**
@@ -20053,7 +18708,7 @@ class FromJSON {
      * @throws Exception
      * @return int
      */
-    public static function fromFromJSON(int $value): int {
+    public static function fromFixed(int $value): int {
         return $value; /*int*/
     }
 
@@ -20061,11 +18716,11 @@ class FromJSON {
      * @throws Exception
      * @return int
      */
-    public function toFromJSON(): int {
-        if (FromJSON::validateFromJSON($this->fromJSON))  {
-            return $this->fromJSON; /*int*/
+    public function toFixed(): int {
+        if (Fixed::validateFixed($this->fixed))  {
+            return $this->fixed; /*int*/
         }
-        throw new Exception('never get to this FromJSON::fromJSON');
+        throw new Exception('never get to this Fixed::fixed');
     }
 
     /**
@@ -20073,7 +18728,7 @@ class FromJSON {
      * @return bool
      * @throws Exception
      */
-    public static function validateFromJSON(int $value): bool {
+    public static function validateFixed(int $value): bool {
         return true;
     }
 
@@ -20081,18 +18736,18 @@ class FromJSON {
      * @throws Exception
      * @return int
      */
-    public function getFromJSON(): int {
-        if (FromJSON::validateFromJSON($this->fromJSON))  {
-            return $this->fromJSON;
+    public function getFixed(): int {
+        if (Fixed::validateFixed($this->fixed))  {
+            return $this->fixed;
         }
-        throw new Exception('never get to getFromJSON FromJSON::fromJSON');
+        throw new Exception('never get to getFixed Fixed::fixed');
     }
 
     /**
      * @return int
      */
-    public static function sampleFromJSON(): int {
-        return 31; /*31:fromJSON*/
+    public static function sampleFixed(): int {
+        return 31; /*31:fixed*/
     }
 
     /**
@@ -20100,7 +18755,7 @@ class FromJSON {
      * @return bool
      */
     public function validate(): bool {
-        return FromJSON::validateFromJSON($this->fromJSON);
+        return Fixed::validateFixed($this->fixed);
     }
 
     /**
@@ -20109,44 +18764,44 @@ class FromJSON {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'from_json'} = $this->toFromJSON();
+        $out->{'fixed'} = $this->toFixed();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FromJSON
+     * @return Fixed
      * @throws Exception
      */
-    public static function from(stdClass $obj): FromJSON {
-        if (!property_exists($obj, 'from_json')) {
+    public static function from(stdClass $obj): Fixed {
+        if (!property_exists($obj, 'fixed')) {
             throw new Exception("Missing required property");
         }
-        return new FromJSON(
-         FromJSON::fromFromJSON($obj->{'from_json'})
+        return new Fixed(
+         Fixed::fromFixed($obj->{'fixed'})
         );
     }
 
     /**
-     * @return FromJSON
+     * @return Fixed
      */
-    public static function sample(): FromJSON {
-        return new FromJSON(
-         FromJSON::sampleFromJSON()
+    public static function sample(): Fixed {
+        return new Fixed(
+         Fixed::sampleFixed()
         );
     }
 }
 
-// This is an autogenerated file:Func
+// This is an autogenerated file:FloatClass
 
-class Func {
-    private int $func; // json:func Required
+class FloatClass {
+    private int $float; // json:float Required
 
     /**
-     * @param int $func
+     * @param int $float
      */
-    public function __construct(int $func) {
-        $this->func = $func;
+    public function __construct(int $float) {
+        $this->float = $float;
     }
 
     /**
@@ -20154,7 +18809,7 @@ class Func {
      * @throws Exception
      * @return int
      */
-    public static function fromFunc(int $value): int {
+    public static function fromFloat(int $value): int {
         return $value; /*int*/
     }
 
@@ -20162,11 +18817,11 @@ class Func {
      * @throws Exception
      * @return int
      */
-    public function toFunc(): int {
-        if (Func::validateFunc($this->func))  {
-            return $this->func; /*int*/
+    public function toFloat(): int {
+        if (FloatClass::validateFloat($this->float))  {
+            return $this->float; /*int*/
         }
-        throw new Exception('never get to this Func::func');
+        throw new Exception('never get to this FloatClass::float');
     }
 
     /**
@@ -20174,7 +18829,7 @@ class Func {
      * @return bool
      * @throws Exception
      */
-    public static function validateFunc(int $value): bool {
+    public static function validateFloat(int $value): bool {
         return true;
     }
 
@@ -20182,18 +18837,18 @@ class Func {
      * @throws Exception
      * @return int
      */
-    public function getFunc(): int {
-        if (Func::validateFunc($this->func))  {
-            return $this->func;
+    public function getFloat(): int {
+        if (FloatClass::validateFloat($this->float))  {
+            return $this->float;
         }
-        throw new Exception('never get to getFunc Func::func');
+        throw new Exception('never get to getFloat FloatClass::float');
     }
 
     /**
      * @return int
      */
-    public static function sampleFunc(): int {
-        return 31; /*31:func*/
+    public static function sampleFloat(): int {
+        return 31; /*31:float*/
     }
 
     /**
@@ -20201,7 +18856,7 @@ class Func {
      * @return bool
      */
     public function validate(): bool {
-        return Func::validateFunc($this->func);
+        return FloatClass::validateFloat($this->float);
     }
 
     /**
@@ -20210,44 +18865,44 @@ class Func {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'func'} = $this->toFunc();
+        $out->{'float'} = $this->toFloat();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Func
+     * @return FloatClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Func {
-        if (!property_exists($obj, 'func')) {
+    public static function from(stdClass $obj): FloatClass {
+        if (!property_exists($obj, 'float')) {
             throw new Exception("Missing required property");
         }
-        return new Func(
-         Func::fromFunc($obj->{'func'})
+        return new FloatClass(
+         FloatClass::fromFloat($obj->{'float'})
         );
     }
 
     /**
-     * @return Func
+     * @return FloatClass
      */
-    public static function sample(): Func {
-        return new Func(
-         Func::sampleFunc()
+    public static function sample(): FloatClass {
+        return new FloatClass(
+         FloatClass::sampleFloat()
         );
     }
 }
 
-// This is an autogenerated file:FunctionClass
+// This is an autogenerated file:ForClass
 
-class FunctionClass {
-    private int $function; // json:function Required
+class ForClass {
+    private int $for; // json:for Required
 
     /**
-     * @param int $function
+     * @param int $for
      */
-    public function __construct(int $function) {
-        $this->function = $function;
+    public function __construct(int $for) {
+        $this->for = $for;
     }
 
     /**
@@ -20255,7 +18910,7 @@ class FunctionClass {
      * @throws Exception
      * @return int
      */
-    public static function fromFunction(int $value): int {
+    public static function fromFor(int $value): int {
         return $value; /*int*/
     }
 
@@ -20263,11 +18918,11 @@ class FunctionClass {
      * @throws Exception
      * @return int
      */
-    public function toFunction(): int {
-        if (FunctionClass::validateFunction($this->function))  {
-            return $this->function; /*int*/
+    public function toFor(): int {
+        if (ForClass::validateFor($this->for))  {
+            return $this->for; /*int*/
         }
-        throw new Exception('never get to this FunctionClass::function');
+        throw new Exception('never get to this ForClass::for');
     }
 
     /**
@@ -20275,7 +18930,7 @@ class FunctionClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateFunction(int $value): bool {
+    public static function validateFor(int $value): bool {
         return true;
     }
 
@@ -20283,18 +18938,18 @@ class FunctionClass {
      * @throws Exception
      * @return int
      */
-    public function getFunction(): int {
-        if (FunctionClass::validateFunction($this->function))  {
-            return $this->function;
+    public function getFor(): int {
+        if (ForClass::validateFor($this->for))  {
+            return $this->for;
         }
-        throw new Exception('never get to getFunction FunctionClass::function');
+        throw new Exception('never get to getFor ForClass::for');
     }
 
     /**
      * @return int
      */
-    public static function sampleFunction(): int {
-        return 31; /*31:function*/
+    public static function sampleFor(): int {
+        return 31; /*31:for*/
     }
 
     /**
@@ -20302,7 +18957,7 @@ class FunctionClass {
      * @return bool
      */
     public function validate(): bool {
-        return FunctionClass::validateFunction($this->function);
+        return ForClass::validateFor($this->for);
     }
 
     /**
@@ -20311,44 +18966,44 @@ class FunctionClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'function'} = $this->toFunction();
+        $out->{'for'} = $this->toFor();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return FunctionClass
+     * @return ForClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): FunctionClass {
-        if (!property_exists($obj, 'function')) {
+    public static function from(stdClass $obj): ForClass {
+        if (!property_exists($obj, 'for')) {
             throw new Exception("Missing required property");
         }
-        return new FunctionClass(
-         FunctionClass::fromFunction($obj->{'function'})
+        return new ForClass(
+         ForClass::fromFor($obj->{'for'})
         );
     }
 
     /**
-     * @return FunctionClass
+     * @return ForClass
      */
-    public static function sample(): FunctionClass {
-        return new FunctionClass(
-         FunctionClass::sampleFunction()
+    public static function sample(): ForClass {
+        return new ForClass(
+         ForClass::sampleFor()
         );
     }
 }
 
-// This is an autogenerated file:Get
+// This is an autogenerated file:ForeachClass
 
-class Get {
-    private int $get; // json:get Required
+class ForeachClass {
+    private int $foreach; // json:foreach Required
 
     /**
-     * @param int $get
+     * @param int $foreach
      */
-    public function __construct(int $get) {
-        $this->get = $get;
+    public function __construct(int $foreach) {
+        $this->foreach = $foreach;
     }
 
     /**
@@ -20356,7 +19011,7 @@ class Get {
      * @throws Exception
      * @return int
      */
-    public static function fromGet(int $value): int {
+    public static function fromForeach(int $value): int {
         return $value; /*int*/
     }
 
@@ -20364,11 +19019,11 @@ class Get {
      * @throws Exception
      * @return int
      */
-    public function toGet(): int {
-        if (Get::validateGet($this->get))  {
-            return $this->get; /*int*/
+    public function toForeach(): int {
+        if (ForeachClass::validateForeach($this->foreach))  {
+            return $this->foreach; /*int*/
         }
-        throw new Exception('never get to this Get::get');
+        throw new Exception('never get to this ForeachClass::foreach');
     }
 
     /**
@@ -20376,7 +19031,7 @@ class Get {
      * @return bool
      * @throws Exception
      */
-    public static function validateGet(int $value): bool {
+    public static function validateForeach(int $value): bool {
         return true;
     }
 
@@ -20384,18 +19039,18 @@ class Get {
      * @throws Exception
      * @return int
      */
-    public function getGet(): int {
-        if (Get::validateGet($this->get))  {
-            return $this->get;
+    public function getForeach(): int {
+        if (ForeachClass::validateForeach($this->foreach))  {
+            return $this->foreach;
         }
-        throw new Exception('never get to getGet Get::get');
+        throw new Exception('never get to getForeach ForeachClass::foreach');
     }
 
     /**
      * @return int
      */
-    public static function sampleGet(): int {
-        return 31; /*31:get*/
+    public static function sampleForeach(): int {
+        return 31; /*31:foreach*/
     }
 
     /**
@@ -20403,7 +19058,7 @@ class Get {
      * @return bool
      */
     public function validate(): bool {
-        return Get::validateGet($this->get);
+        return ForeachClass::validateForeach($this->foreach);
     }
 
     /**
@@ -20412,44 +19067,44 @@ class Get {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'get'} = $this->toGet();
+        $out->{'foreach'} = $this->toForeach();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Get
+     * @return ForeachClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Get {
-        if (!property_exists($obj, 'get')) {
+    public static function from(stdClass $obj): ForeachClass {
+        if (!property_exists($obj, 'foreach')) {
             throw new Exception("Missing required property");
         }
-        return new Get(
-         Get::fromGet($obj->{'get'})
+        return new ForeachClass(
+         ForeachClass::fromForeach($obj->{'foreach'})
         );
     }
 
     /**
-     * @return Get
+     * @return ForeachClass
      */
-    public static function sample(): Get {
-        return new Get(
-         Get::sampleGet()
+    public static function sample(): ForeachClass {
+        return new ForeachClass(
+         ForeachClass::sampleForeach()
         );
     }
 }
 
-// This is an autogenerated file:GlobalClass
+// This is an autogenerated file:FormatException
 
-class GlobalClass {
-    private int $global; // json:global Required
+class FormatException {
+    private int $formatException; // json:FormatException Required
 
     /**
-     * @param int $global
+     * @param int $formatException
      */
-    public function __construct(int $global) {
-        $this->global = $global;
+    public function __construct(int $formatException) {
+        $this->formatException = $formatException;
     }
 
     /**
@@ -20457,7 +19112,7 @@ class GlobalClass {
      * @throws Exception
      * @return int
      */
-    public static function fromGlobal(int $value): int {
+    public static function fromFormatException(int $value): int {
         return $value; /*int*/
     }
 
@@ -20465,11 +19120,11 @@ class GlobalClass {
      * @throws Exception
      * @return int
      */
-    public function toGlobal(): int {
-        if (GlobalClass::validateGlobal($this->global))  {
-            return $this->global; /*int*/
+    public function toFormatException(): int {
+        if (FormatException::validateFormatException($this->formatException))  {
+            return $this->formatException; /*int*/
         }
-        throw new Exception('never get to this GlobalClass::global');
+        throw new Exception('never get to this FormatException::formatException');
     }
 
     /**
@@ -20477,7 +19132,7 @@ class GlobalClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateGlobal(int $value): bool {
+    public static function validateFormatException(int $value): bool {
         return true;
     }
 
@@ -20485,18 +19140,18 @@ class GlobalClass {
      * @throws Exception
      * @return int
      */
-    public function getGlobal(): int {
-        if (GlobalClass::validateGlobal($this->global))  {
-            return $this->global;
+    public function getFormatException(): int {
+        if (FormatException::validateFormatException($this->formatException))  {
+            return $this->formatException;
         }
-        throw new Exception('never get to getGlobal GlobalClass::global');
+        throw new Exception('never get to getFormatException FormatException::formatException');
     }
 
     /**
      * @return int
      */
-    public static function sampleGlobal(): int {
-        return 31; /*31:global*/
+    public static function sampleFormatException(): int {
+        return 31; /*31:formatException*/
     }
 
     /**
@@ -20504,7 +19159,7 @@ class GlobalClass {
      * @return bool
      */
     public function validate(): bool {
-        return GlobalClass::validateGlobal($this->global);
+        return FormatException::validateFormatException($this->formatException);
     }
 
     /**
@@ -20513,44 +19168,44 @@ class GlobalClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'global'} = $this->toGlobal();
+        $out->{'FormatException'} = $this->toFormatException();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return GlobalClass
+     * @return FormatException
      * @throws Exception
      */
-    public static function from(stdClass $obj): GlobalClass {
-        if (!property_exists($obj, 'global')) {
+    public static function from(stdClass $obj): FormatException {
+        if (!property_exists($obj, 'FormatException')) {
             throw new Exception("Missing required property");
         }
-        return new GlobalClass(
-         GlobalClass::fromGlobal($obj->{'global'})
+        return new FormatException(
+         FormatException::fromFormatException($obj->{'FormatException'})
         );
     }
 
     /**
-     * @return GlobalClass
+     * @return FormatException
      */
-    public static function sample(): GlobalClass {
-        return new GlobalClass(
-         GlobalClass::sampleGlobal()
+    public static function sample(): FormatException {
+        return new FormatException(
+         FormatException::sampleFormatException()
         );
     }
 }
 
-// This is an autogenerated file:Go
+// This is an autogenerated file:Friend
 
-class Go {
-    private int $go; // json:go Required
+class Friend {
+    private int $friend; // json:friend Required
 
     /**
-     * @param int $go
+     * @param int $friend
      */
-    public function __construct(int $go) {
-        $this->go = $go;
+    public function __construct(int $friend) {
+        $this->friend = $friend;
     }
 
     /**
@@ -20558,7 +19213,7 @@ class Go {
      * @throws Exception
      * @return int
      */
-    public static function fromGo(int $value): int {
+    public static function fromFriend(int $value): int {
         return $value; /*int*/
     }
 
@@ -20566,11 +19221,11 @@ class Go {
      * @throws Exception
      * @return int
      */
-    public function toGo(): int {
-        if (Go::validateGo($this->go))  {
-            return $this->go; /*int*/
+    public function toFriend(): int {
+        if (Friend::validateFriend($this->friend))  {
+            return $this->friend; /*int*/
         }
-        throw new Exception('never get to this Go::go');
+        throw new Exception('never get to this Friend::friend');
     }
 
     /**
@@ -20578,7 +19233,7 @@ class Go {
      * @return bool
      * @throws Exception
      */
-    public static function validateGo(int $value): bool {
+    public static function validateFriend(int $value): bool {
         return true;
     }
 
@@ -20586,18 +19241,18 @@ class Go {
      * @throws Exception
      * @return int
      */
-    public function getGo(): int {
-        if (Go::validateGo($this->go))  {
-            return $this->go;
+    public function getFriend(): int {
+        if (Friend::validateFriend($this->friend))  {
+            return $this->friend;
         }
-        throw new Exception('never get to getGo Go::go');
+        throw new Exception('never get to getFriend Friend::friend');
     }
 
     /**
      * @return int
      */
-    public static function sampleGo(): int {
-        return 31; /*31:go*/
+    public static function sampleFriend(): int {
+        return 31; /*31:friend*/
     }
 
     /**
@@ -20605,7 +19260,7 @@ class Go {
      * @return bool
      */
     public function validate(): bool {
-        return Go::validateGo($this->go);
+        return Friend::validateFriend($this->friend);
     }
 
     /**
@@ -20614,44 +19269,44 @@ class Go {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'go'} = $this->toGo();
+        $out->{'friend'} = $this->toFriend();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Go
+     * @return Friend
      * @throws Exception
      */
-    public static function from(stdClass $obj): Go {
-        if (!property_exists($obj, 'go')) {
+    public static function from(stdClass $obj): Friend {
+        if (!property_exists($obj, 'friend')) {
             throw new Exception("Missing required property");
         }
-        return new Go(
-         Go::fromGo($obj->{'go'})
+        return new Friend(
+         Friend::fromFriend($obj->{'friend'})
         );
     }
 
     /**
-     * @return Go
+     * @return Friend
      */
-    public static function sample(): Go {
-        return new Go(
-         Go::sampleGo()
+    public static function sample(): Friend {
+        return new Friend(
+         Friend::sampleFriend()
         );
     }
 }
 
-// This is an autogenerated file:GotoClass
+// This is an autogenerated file:From
 
-class GotoClass {
-    private int $goto; // json:goto Required
+class From {
+    private int $from; // json:from Required
 
     /**
-     * @param int $goto
+     * @param int $from
      */
-    public function __construct(int $goto) {
-        $this->goto = $goto;
+    public function __construct(int $from) {
+        $this->from = $from;
     }
 
     /**
@@ -20659,7 +19314,7 @@ class GotoClass {
      * @throws Exception
      * @return int
      */
-    public static function fromGoto(int $value): int {
+    public static function fromFrom(int $value): int {
         return $value; /*int*/
     }
 
@@ -20667,11 +19322,11 @@ class GotoClass {
      * @throws Exception
      * @return int
      */
-    public function toGoto(): int {
-        if (GotoClass::validateGoto($this->goto))  {
-            return $this->goto; /*int*/
+    public function toFrom(): int {
+        if (From::validateFrom($this->from))  {
+            return $this->from; /*int*/
         }
-        throw new Exception('never get to this GotoClass::goto');
+        throw new Exception('never get to this From::from');
     }
 
     /**
@@ -20679,7 +19334,7 @@ class GotoClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateGoto(int $value): bool {
+    public static function validateFrom(int $value): bool {
         return true;
     }
 
@@ -20687,18 +19342,18 @@ class GotoClass {
      * @throws Exception
      * @return int
      */
-    public function getGoto(): int {
-        if (GotoClass::validateGoto($this->goto))  {
-            return $this->goto;
+    public function getFrom(): int {
+        if (From::validateFrom($this->from))  {
+            return $this->from;
         }
-        throw new Exception('never get to getGoto GotoClass::goto');
+        throw new Exception('never get to getFrom From::from');
     }
 
     /**
      * @return int
      */
-    public static function sampleGoto(): int {
-        return 31; /*31:goto*/
+    public static function sampleFrom(): int {
+        return 31; /*31:from*/
     }
 
     /**
@@ -20706,7 +19361,7 @@ class GotoClass {
      * @return bool
      */
     public function validate(): bool {
-        return GotoClass::validateGoto($this->goto);
+        return From::validateFrom($this->from);
     }
 
     /**
@@ -20715,44 +19370,44 @@ class GotoClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'goto'} = $this->toGoto();
+        $out->{'from'} = $this->toFrom();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return GotoClass
+     * @return From
      * @throws Exception
      */
-    public static function from(stdClass $obj): GotoClass {
-        if (!property_exists($obj, 'goto')) {
+    public static function from(stdClass $obj): From {
+        if (!property_exists($obj, 'from')) {
             throw new Exception("Missing required property");
         }
-        return new GotoClass(
-         GotoClass::fromGoto($obj->{'goto'})
+        return new From(
+         From::fromFrom($obj->{'from'})
         );
     }
 
     /**
-     * @return GotoClass
+     * @return From
      */
-    public static function sample(): GotoClass {
-        return new GotoClass(
-         GotoClass::sampleGoto()
+    public static function sample(): From {
+        return new From(
+         From::sampleFrom()
         );
     }
 }
 
-// This is an autogenerated file:Guard
+// This is an autogenerated file:FromJSON
 
-class Guard {
-    private int $guard; // json:guard Required
+class FromJSON {
+    private int $fromJSON; // json:from_json Required
 
     /**
-     * @param int $guard
+     * @param int $fromJSON
      */
-    public function __construct(int $guard) {
-        $this->guard = $guard;
+    public function __construct(int $fromJSON) {
+        $this->fromJSON = $fromJSON;
     }
 
     /**
@@ -20760,7 +19415,7 @@ class Guard {
      * @throws Exception
      * @return int
      */
-    public static function fromGuard(int $value): int {
+    public static function fromFromJSON(int $value): int {
         return $value; /*int*/
     }
 
@@ -20768,11 +19423,11 @@ class Guard {
      * @throws Exception
      * @return int
      */
-    public function toGuard(): int {
-        if (Guard::validateGuard($this->guard))  {
-            return $this->guard; /*int*/
+    public function toFromJSON(): int {
+        if (FromJSON::validateFromJSON($this->fromJSON))  {
+            return $this->fromJSON; /*int*/
         }
-        throw new Exception('never get to this Guard::guard');
+        throw new Exception('never get to this FromJSON::fromJSON');
     }
 
     /**
@@ -20780,7 +19435,7 @@ class Guard {
      * @return bool
      * @throws Exception
      */
-    public static function validateGuard(int $value): bool {
+    public static function validateFromJSON(int $value): bool {
         return true;
     }
 
@@ -20788,18 +19443,18 @@ class Guard {
      * @throws Exception
      * @return int
      */
-    public function getGuard(): int {
-        if (Guard::validateGuard($this->guard))  {
-            return $this->guard;
+    public function getFromJSON(): int {
+        if (FromJSON::validateFromJSON($this->fromJSON))  {
+            return $this->fromJSON;
         }
-        throw new Exception('never get to getGuard Guard::guard');
+        throw new Exception('never get to getFromJSON FromJSON::fromJSON');
     }
 
     /**
      * @return int
      */
-    public static function sampleGuard(): int {
-        return 31; /*31:guard*/
+    public static function sampleFromJSON(): int {
+        return 31; /*31:fromJSON*/
     }
 
     /**
@@ -20807,7 +19462,7 @@ class Guard {
      * @return bool
      */
     public function validate(): bool {
-        return Guard::validateGuard($this->guard);
+        return FromJSON::validateFromJSON($this->fromJSON);
     }
 
     /**
@@ -20816,44 +19471,44 @@ class Guard {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'guard'} = $this->toGuard();
+        $out->{'from_json'} = $this->toFromJSON();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Guard
+     * @return FromJSON
      * @throws Exception
      */
-    public static function from(stdClass $obj): Guard {
-        if (!property_exists($obj, 'guard')) {
+    public static function from(stdClass $obj): FromJSON {
+        if (!property_exists($obj, 'from_json')) {
             throw new Exception("Missing required property");
         }
-        return new Guard(
-         Guard::fromGuard($obj->{'guard'})
+        return new FromJSON(
+         FromJSON::fromFromJSON($obj->{'from_json'})
         );
     }
 
     /**
-     * @return Guard
+     * @return FromJSON
      */
-    public static function sample(): Guard {
-        return new Guard(
-         Guard::sampleGuard()
+    public static function sample(): FromJSON {
+        return new FromJSON(
+         FromJSON::sampleFromJSON()
         );
     }
 }
 
-// This is an autogenerated file:HasOwnProperty
+// This is an autogenerated file:Func
 
-class HasOwnProperty {
-    private int $hasOwnProperty; // json:hasOwnProperty Required
+class Func {
+    private int $func; // json:func Required
 
     /**
-     * @param int $hasOwnProperty
+     * @param int $func
      */
-    public function __construct(int $hasOwnProperty) {
-        $this->hasOwnProperty = $hasOwnProperty;
+    public function __construct(int $func) {
+        $this->func = $func;
     }
 
     /**
@@ -20861,7 +19516,7 @@ class HasOwnProperty {
      * @throws Exception
      * @return int
      */
-    public static function fromHasOwnProperty(int $value): int {
+    public static function fromFunc(int $value): int {
         return $value; /*int*/
     }
 
@@ -20869,11 +19524,11 @@ class HasOwnProperty {
      * @throws Exception
      * @return int
      */
-    public function toHasOwnProperty(): int {
-        if (HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty))  {
-            return $this->hasOwnProperty; /*int*/
+    public function toFunc(): int {
+        if (Func::validateFunc($this->func))  {
+            return $this->func; /*int*/
         }
-        throw new Exception('never get to this HasOwnProperty::hasOwnProperty');
+        throw new Exception('never get to this Func::func');
     }
 
     /**
@@ -20881,7 +19536,7 @@ class HasOwnProperty {
      * @return bool
      * @throws Exception
      */
-    public static function validateHasOwnProperty(int $value): bool {
+    public static function validateFunc(int $value): bool {
         return true;
     }
 
@@ -20889,18 +19544,18 @@ class HasOwnProperty {
      * @throws Exception
      * @return int
      */
-    public function getHasOwnProperty(): int {
-        if (HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty))  {
-            return $this->hasOwnProperty;
+    public function getFunc(): int {
+        if (Func::validateFunc($this->func))  {
+            return $this->func;
         }
-        throw new Exception('never get to getHasOwnProperty HasOwnProperty::hasOwnProperty');
+        throw new Exception('never get to getFunc Func::func');
     }
 
     /**
      * @return int
      */
-    public static function sampleHasOwnProperty(): int {
-        return 31; /*31:hasOwnProperty*/
+    public static function sampleFunc(): int {
+        return 31; /*31:func*/
     }
 
     /**
@@ -20908,7 +19563,7 @@ class HasOwnProperty {
      * @return bool
      */
     public function validate(): bool {
-        return HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty);
+        return Func::validateFunc($this->func);
     }
 
     /**
@@ -20917,44 +19572,44 @@ class HasOwnProperty {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'hasOwnProperty'} = $this->toHasOwnProperty();
+        $out->{'func'} = $this->toFunc();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return HasOwnProperty
+     * @return Func
      * @throws Exception
      */
-    public static function from(stdClass $obj): HasOwnProperty {
-        if (!property_exists($obj, 'hasOwnProperty')) {
+    public static function from(stdClass $obj): Func {
+        if (!property_exists($obj, 'func')) {
             throw new Exception("Missing required property");
         }
-        return new HasOwnProperty(
-         HasOwnProperty::fromHasOwnProperty($obj->{'hasOwnProperty'})
+        return new Func(
+         Func::fromFunc($obj->{'func'})
         );
     }
 
     /**
-     * @return HasOwnProperty
+     * @return Func
      */
-    public static function sample(): HasOwnProperty {
-        return new HasOwnProperty(
-         HasOwnProperty::sampleHasOwnProperty()
+    public static function sample(): Func {
+        return new Func(
+         Func::sampleFunc()
         );
     }
 }
 
-// This is an autogenerated file:HashCode
+// This is an autogenerated file:FunctionClass
 
-class HashCode {
-    private int $hashCode; // json:hashCode Required
+class FunctionClass {
+    private int $function; // json:function Required
 
     /**
-     * @param int $hashCode
+     * @param int $function
      */
-    public function __construct(int $hashCode) {
-        $this->hashCode = $hashCode;
+    public function __construct(int $function) {
+        $this->function = $function;
     }
 
     /**
@@ -20962,7 +19617,7 @@ class HashCode {
      * @throws Exception
      * @return int
      */
-    public static function fromHashCode(int $value): int {
+    public static function fromFunction(int $value): int {
         return $value; /*int*/
     }
 
@@ -20970,11 +19625,11 @@ class HashCode {
      * @throws Exception
      * @return int
      */
-    public function toHashCode(): int {
-        if (HashCode::validateHashCode($this->hashCode))  {
-            return $this->hashCode; /*int*/
+    public function toFunction(): int {
+        if (FunctionClass::validateFunction($this->function))  {
+            return $this->function; /*int*/
         }
-        throw new Exception('never get to this HashCode::hashCode');
+        throw new Exception('never get to this FunctionClass::function');
     }
 
     /**
@@ -20982,7 +19637,7 @@ class HashCode {
      * @return bool
      * @throws Exception
      */
-    public static function validateHashCode(int $value): bool {
+    public static function validateFunction(int $value): bool {
         return true;
     }
 
@@ -20990,18 +19645,18 @@ class HashCode {
      * @throws Exception
      * @return int
      */
-    public function getHashCode(): int {
-        if (HashCode::validateHashCode($this->hashCode))  {
-            return $this->hashCode;
+    public function getFunction(): int {
+        if (FunctionClass::validateFunction($this->function))  {
+            return $this->function;
         }
-        throw new Exception('never get to getHashCode HashCode::hashCode');
+        throw new Exception('never get to getFunction FunctionClass::function');
     }
 
     /**
      * @return int
      */
-    public static function sampleHashCode(): int {
-        return 31; /*31:hashCode*/
+    public static function sampleFunction(): int {
+        return 31; /*31:function*/
     }
 
     /**
@@ -21009,7 +19664,7 @@ class HashCode {
      * @return bool
      */
     public function validate(): bool {
-        return HashCode::validateHashCode($this->hashCode);
+        return FunctionClass::validateFunction($this->function);
     }
 
     /**
@@ -21018,44 +19673,44 @@ class HashCode {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'hashCode'} = $this->toHashCode();
+        $out->{'function'} = $this->toFunction();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return HashCode
+     * @return FunctionClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): HashCode {
-        if (!property_exists($obj, 'hashCode')) {
+    public static function from(stdClass $obj): FunctionClass {
+        if (!property_exists($obj, 'function')) {
             throw new Exception("Missing required property");
         }
-        return new HashCode(
-         HashCode::fromHashCode($obj->{'hashCode'})
+        return new FunctionClass(
+         FunctionClass::fromFunction($obj->{'function'})
         );
     }
 
     /**
-     * @return HashCode
+     * @return FunctionClass
      */
-    public static function sample(): HashCode {
-        return new HashCode(
-         HashCode::sampleHashCode()
+    public static function sample(): FunctionClass {
+        return new FunctionClass(
+         FunctionClass::sampleFunction()
         );
     }
 }
 
-// This is an autogenerated file:ID
+// This is an autogenerated file:Get
 
-class ID {
-    private int $id; // json:id Required
+class Get {
+    private int $get; // json:get Required
 
     /**
-     * @param int $id
+     * @param int $get
      */
-    public function __construct(int $id) {
-        $this->id = $id;
+    public function __construct(int $get) {
+        $this->get = $get;
     }
 
     /**
@@ -21063,7 +19718,7 @@ class ID {
      * @throws Exception
      * @return int
      */
-    public static function fromID(int $value): int {
+    public static function fromGet(int $value): int {
         return $value; /*int*/
     }
 
@@ -21071,11 +19726,11 @@ class ID {
      * @throws Exception
      * @return int
      */
-    public function toID(): int {
-        if (ID::validateID($this->id))  {
-            return $this->id; /*int*/
+    public function toGet(): int {
+        if (Get::validateGet($this->get))  {
+            return $this->get; /*int*/
         }
-        throw new Exception('never get to this ID::id');
+        throw new Exception('never get to this Get::get');
     }
 
     /**
@@ -21083,7 +19738,7 @@ class ID {
      * @return bool
      * @throws Exception
      */
-    public static function validateID(int $value): bool {
+    public static function validateGet(int $value): bool {
         return true;
     }
 
@@ -21091,18 +19746,18 @@ class ID {
      * @throws Exception
      * @return int
      */
-    public function getID(): int {
-        if (ID::validateID($this->id))  {
-            return $this->id;
+    public function getGet(): int {
+        if (Get::validateGet($this->get))  {
+            return $this->get;
         }
-        throw new Exception('never get to getID ID::id');
+        throw new Exception('never get to getGet Get::get');
     }
 
     /**
      * @return int
      */
-    public static function sampleID(): int {
-        return 31; /*31:id*/
+    public static function sampleGet(): int {
+        return 31; /*31:get*/
     }
 
     /**
@@ -21110,7 +19765,7 @@ class ID {
      * @return bool
      */
     public function validate(): bool {
-        return ID::validateID($this->id);
+        return Get::validateGet($this->get);
     }
 
     /**
@@ -21119,44 +19774,44 @@ class ID {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'id'} = $this->toID();
+        $out->{'get'} = $this->toGet();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ID
+     * @return Get
      * @throws Exception
      */
-    public static function from(stdClass $obj): ID {
-        if (!property_exists($obj, 'id')) {
+    public static function from(stdClass $obj): Get {
+        if (!property_exists($obj, 'get')) {
             throw new Exception("Missing required property");
         }
-        return new ID(
-         ID::fromID($obj->{'id'})
+        return new Get(
+         Get::fromGet($obj->{'get'})
         );
     }
 
     /**
-     * @return ID
+     * @return Get
      */
-    public static function sample(): ID {
-        return new ID(
-         ID::sampleID()
+    public static function sample(): Get {
+        return new Get(
+         Get::sampleGet()
         );
     }
 }
 
-// This is an autogenerated file:IfClass
+// This is an autogenerated file:GlobalClass
 
-class IfClass {
-    private int $if; // json:if Required
+class GlobalClass {
+    private int $global; // json:global Required
 
     /**
-     * @param int $if
+     * @param int $global
      */
-    public function __construct(int $if) {
-        $this->if = $if;
+    public function __construct(int $global) {
+        $this->global = $global;
     }
 
     /**
@@ -21164,7 +19819,7 @@ class IfClass {
      * @throws Exception
      * @return int
      */
-    public static function fromIf(int $value): int {
+    public static function fromGlobal(int $value): int {
         return $value; /*int*/
     }
 
@@ -21172,11 +19827,11 @@ class IfClass {
      * @throws Exception
      * @return int
      */
-    public function toIf(): int {
-        if (IfClass::validateIf($this->if))  {
-            return $this->if; /*int*/
+    public function toGlobal(): int {
+        if (GlobalClass::validateGlobal($this->global))  {
+            return $this->global; /*int*/
         }
-        throw new Exception('never get to this IfClass::if');
+        throw new Exception('never get to this GlobalClass::global');
     }
 
     /**
@@ -21184,7 +19839,7 @@ class IfClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateIf(int $value): bool {
+    public static function validateGlobal(int $value): bool {
         return true;
     }
 
@@ -21192,18 +19847,18 @@ class IfClass {
      * @throws Exception
      * @return int
      */
-    public function getIf(): int {
-        if (IfClass::validateIf($this->if))  {
-            return $this->if;
+    public function getGlobal(): int {
+        if (GlobalClass::validateGlobal($this->global))  {
+            return $this->global;
         }
-        throw new Exception('never get to getIf IfClass::if');
+        throw new Exception('never get to getGlobal GlobalClass::global');
     }
 
     /**
      * @return int
      */
-    public static function sampleIf(): int {
-        return 31; /*31:if*/
+    public static function sampleGlobal(): int {
+        return 31; /*31:global*/
     }
 
     /**
@@ -21211,7 +19866,7 @@ class IfClass {
      * @return bool
      */
     public function validate(): bool {
-        return IfClass::validateIf($this->if);
+        return GlobalClass::validateGlobal($this->global);
     }
 
     /**
@@ -21220,44 +19875,44 @@ class IfClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'if'} = $this->toIf();
+        $out->{'global'} = $this->toGlobal();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return IfClass
+     * @return GlobalClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): IfClass {
-        if (!property_exists($obj, 'if')) {
+    public static function from(stdClass $obj): GlobalClass {
+        if (!property_exists($obj, 'global')) {
             throw new Exception("Missing required property");
         }
-        return new IfClass(
-         IfClass::fromIf($obj->{'if'})
+        return new GlobalClass(
+         GlobalClass::fromGlobal($obj->{'global'})
         );
     }
 
     /**
-     * @return IfClass
+     * @return GlobalClass
      */
-    public static function sample(): IfClass {
-        return new IfClass(
-         IfClass::sampleIf()
+    public static function sample(): GlobalClass {
+        return new GlobalClass(
+         GlobalClass::sampleGlobal()
         );
     }
 }
 
-// This is an autogenerated file:Imp
+// This is an autogenerated file:Go
 
-class Imp {
-    private int $imp; // json:IMP Required
+class Go {
+    private int $go; // json:go Required
 
     /**
-     * @param int $imp
+     * @param int $go
      */
-    public function __construct(int $imp) {
-        $this->imp = $imp;
+    public function __construct(int $go) {
+        $this->go = $go;
     }
 
     /**
@@ -21265,7 +19920,7 @@ class Imp {
      * @throws Exception
      * @return int
      */
-    public static function fromImp(int $value): int {
+    public static function fromGo(int $value): int {
         return $value; /*int*/
     }
 
@@ -21273,11 +19928,11 @@ class Imp {
      * @throws Exception
      * @return int
      */
-    public function toImp(): int {
-        if (Imp::validateImp($this->imp))  {
-            return $this->imp; /*int*/
+    public function toGo(): int {
+        if (Go::validateGo($this->go))  {
+            return $this->go; /*int*/
         }
-        throw new Exception('never get to this Imp::imp');
+        throw new Exception('never get to this Go::go');
     }
 
     /**
@@ -21285,7 +19940,7 @@ class Imp {
      * @return bool
      * @throws Exception
      */
-    public static function validateImp(int $value): bool {
+    public static function validateGo(int $value): bool {
         return true;
     }
 
@@ -21293,18 +19948,18 @@ class Imp {
      * @throws Exception
      * @return int
      */
-    public function getImp(): int {
-        if (Imp::validateImp($this->imp))  {
-            return $this->imp;
+    public function getGo(): int {
+        if (Go::validateGo($this->go))  {
+            return $this->go;
         }
-        throw new Exception('never get to getImp Imp::imp');
+        throw new Exception('never get to getGo Go::go');
     }
 
     /**
      * @return int
      */
-    public static function sampleImp(): int {
-        return 31; /*31:imp*/
+    public static function sampleGo(): int {
+        return 31; /*31:go*/
     }
 
     /**
@@ -21312,7 +19967,7 @@ class Imp {
      * @return bool
      */
     public function validate(): bool {
-        return Imp::validateImp($this->imp);
+        return Go::validateGo($this->go);
     }
 
     /**
@@ -21321,44 +19976,44 @@ class Imp {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'IMP'} = $this->toImp();
+        $out->{'go'} = $this->toGo();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Imp
+     * @return Go
      * @throws Exception
      */
-    public static function from(stdClass $obj): Imp {
-        if (!property_exists($obj, 'IMP')) {
+    public static function from(stdClass $obj): Go {
+        if (!property_exists($obj, 'go')) {
             throw new Exception("Missing required property");
         }
-        return new Imp(
-         Imp::fromImp($obj->{'IMP'})
+        return new Go(
+         Go::fromGo($obj->{'go'})
         );
     }
 
     /**
-     * @return Imp
+     * @return Go
      */
-    public static function sample(): Imp {
-        return new Imp(
-         Imp::sampleImp()
+    public static function sample(): Go {
+        return new Go(
+         Go::sampleGo()
         );
     }
 }
 
-// This is an autogenerated file:ImplementsClass
+// This is an autogenerated file:GotoClass
 
-class ImplementsClass {
-    private int $implements; // json:implements Required
+class GotoClass {
+    private int $goto; // json:goto Required
 
     /**
-     * @param int $implements
+     * @param int $goto
      */
-    public function __construct(int $implements) {
-        $this->implements = $implements;
+    public function __construct(int $goto) {
+        $this->goto = $goto;
     }
 
     /**
@@ -21366,7 +20021,7 @@ class ImplementsClass {
      * @throws Exception
      * @return int
      */
-    public static function fromImplements(int $value): int {
+    public static function fromGoto(int $value): int {
         return $value; /*int*/
     }
 
@@ -21374,11 +20029,11 @@ class ImplementsClass {
      * @throws Exception
      * @return int
      */
-    public function toImplements(): int {
-        if (ImplementsClass::validateImplements($this->implements))  {
-            return $this->implements; /*int*/
+    public function toGoto(): int {
+        if (GotoClass::validateGoto($this->goto))  {
+            return $this->goto; /*int*/
         }
-        throw new Exception('never get to this ImplementsClass::implements');
+        throw new Exception('never get to this GotoClass::goto');
     }
 
     /**
@@ -21386,7 +20041,7 @@ class ImplementsClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateImplements(int $value): bool {
+    public static function validateGoto(int $value): bool {
         return true;
     }
 
@@ -21394,18 +20049,18 @@ class ImplementsClass {
      * @throws Exception
      * @return int
      */
-    public function getImplements(): int {
-        if (ImplementsClass::validateImplements($this->implements))  {
-            return $this->implements;
+    public function getGoto(): int {
+        if (GotoClass::validateGoto($this->goto))  {
+            return $this->goto;
         }
-        throw new Exception('never get to getImplements ImplementsClass::implements');
+        throw new Exception('never get to getGoto GotoClass::goto');
     }
 
     /**
      * @return int
      */
-    public static function sampleImplements(): int {
-        return 31; /*31:implements*/
+    public static function sampleGoto(): int {
+        return 31; /*31:goto*/
     }
 
     /**
@@ -21413,7 +20068,7 @@ class ImplementsClass {
      * @return bool
      */
     public function validate(): bool {
-        return ImplementsClass::validateImplements($this->implements);
+        return GotoClass::validateGoto($this->goto);
     }
 
     /**
@@ -21422,44 +20077,44 @@ class ImplementsClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'implements'} = $this->toImplements();
+        $out->{'goto'} = $this->toGoto();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ImplementsClass
+     * @return GotoClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ImplementsClass {
-        if (!property_exists($obj, 'implements')) {
+    public static function from(stdClass $obj): GotoClass {
+        if (!property_exists($obj, 'goto')) {
             throw new Exception("Missing required property");
         }
-        return new ImplementsClass(
-         ImplementsClass::fromImplements($obj->{'implements'})
+        return new GotoClass(
+         GotoClass::fromGoto($obj->{'goto'})
         );
     }
 
     /**
-     * @return ImplementsClass
+     * @return GotoClass
      */
-    public static function sample(): ImplementsClass {
-        return new ImplementsClass(
-         ImplementsClass::sampleImplements()
+    public static function sample(): GotoClass {
+        return new GotoClass(
+         GotoClass::sampleGoto()
         );
     }
 }
 
-// This is an autogenerated file:Implicit
+// This is an autogenerated file:Guard
 
-class Implicit {
-    private int $implicit; // json:implicit Required
+class Guard {
+    private int $guard; // json:guard Required
 
     /**
-     * @param int $implicit
+     * @param int $guard
      */
-    public function __construct(int $implicit) {
-        $this->implicit = $implicit;
+    public function __construct(int $guard) {
+        $this->guard = $guard;
     }
 
     /**
@@ -21467,7 +20122,7 @@ class Implicit {
      * @throws Exception
      * @return int
      */
-    public static function fromImplicit(int $value): int {
+    public static function fromGuard(int $value): int {
         return $value; /*int*/
     }
 
@@ -21475,11 +20130,11 @@ class Implicit {
      * @throws Exception
      * @return int
      */
-    public function toImplicit(): int {
-        if (Implicit::validateImplicit($this->implicit))  {
-            return $this->implicit; /*int*/
+    public function toGuard(): int {
+        if (Guard::validateGuard($this->guard))  {
+            return $this->guard; /*int*/
         }
-        throw new Exception('never get to this Implicit::implicit');
+        throw new Exception('never get to this Guard::guard');
     }
 
     /**
@@ -21487,7 +20142,7 @@ class Implicit {
      * @return bool
      * @throws Exception
      */
-    public static function validateImplicit(int $value): bool {
+    public static function validateGuard(int $value): bool {
         return true;
     }
 
@@ -21495,18 +20150,18 @@ class Implicit {
      * @throws Exception
      * @return int
      */
-    public function getImplicit(): int {
-        if (Implicit::validateImplicit($this->implicit))  {
-            return $this->implicit;
+    public function getGuard(): int {
+        if (Guard::validateGuard($this->guard))  {
+            return $this->guard;
         }
-        throw new Exception('never get to getImplicit Implicit::implicit');
+        throw new Exception('never get to getGuard Guard::guard');
     }
 
     /**
      * @return int
      */
-    public static function sampleImplicit(): int {
-        return 31; /*31:implicit*/
+    public static function sampleGuard(): int {
+        return 31; /*31:guard*/
     }
 
     /**
@@ -21514,7 +20169,7 @@ class Implicit {
      * @return bool
      */
     public function validate(): bool {
-        return Implicit::validateImplicit($this->implicit);
+        return Guard::validateGuard($this->guard);
     }
 
     /**
@@ -21523,44 +20178,44 @@ class Implicit {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'implicit'} = $this->toImplicit();
+        $out->{'guard'} = $this->toGuard();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Implicit
+     * @return Guard
      * @throws Exception
      */
-    public static function from(stdClass $obj): Implicit {
-        if (!property_exists($obj, 'implicit')) {
+    public static function from(stdClass $obj): Guard {
+        if (!property_exists($obj, 'guard')) {
             throw new Exception("Missing required property");
         }
-        return new Implicit(
-         Implicit::fromImplicit($obj->{'implicit'})
+        return new Guard(
+         Guard::fromGuard($obj->{'guard'})
         );
     }
 
     /**
-     * @return Implicit
+     * @return Guard
      */
-    public static function sample(): Implicit {
-        return new Implicit(
-         Implicit::sampleImplicit()
+    public static function sample(): Guard {
+        return new Guard(
+         Guard::sampleGuard()
         );
     }
 }
 
-// This is an autogenerated file:Import
+// This is an autogenerated file:HasOwnProperty
 
-class Import {
-    private int $import; // json:import Required
+class HasOwnProperty {
+    private int $hasOwnProperty; // json:hasOwnProperty Required
 
     /**
-     * @param int $import
+     * @param int $hasOwnProperty
      */
-    public function __construct(int $import) {
-        $this->import = $import;
+    public function __construct(int $hasOwnProperty) {
+        $this->hasOwnProperty = $hasOwnProperty;
     }
 
     /**
@@ -21568,7 +20223,7 @@ class Import {
      * @throws Exception
      * @return int
      */
-    public static function fromImport(int $value): int {
+    public static function fromHasOwnProperty(int $value): int {
         return $value; /*int*/
     }
 
@@ -21576,11 +20231,11 @@ class Import {
      * @throws Exception
      * @return int
      */
-    public function toImport(): int {
-        if (Import::validateImport($this->import))  {
-            return $this->import; /*int*/
+    public function toHasOwnProperty(): int {
+        if (HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty))  {
+            return $this->hasOwnProperty; /*int*/
         }
-        throw new Exception('never get to this Import::import');
+        throw new Exception('never get to this HasOwnProperty::hasOwnProperty');
     }
 
     /**
@@ -21588,7 +20243,7 @@ class Import {
      * @return bool
      * @throws Exception
      */
-    public static function validateImport(int $value): bool {
+    public static function validateHasOwnProperty(int $value): bool {
         return true;
     }
 
@@ -21596,18 +20251,18 @@ class Import {
      * @throws Exception
      * @return int
      */
-    public function getImport(): int {
-        if (Import::validateImport($this->import))  {
-            return $this->import;
+    public function getHasOwnProperty(): int {
+        if (HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty))  {
+            return $this->hasOwnProperty;
         }
-        throw new Exception('never get to getImport Import::import');
+        throw new Exception('never get to getHasOwnProperty HasOwnProperty::hasOwnProperty');
     }
 
     /**
      * @return int
      */
-    public static function sampleImport(): int {
-        return 31; /*31:import*/
+    public static function sampleHasOwnProperty(): int {
+        return 31; /*31:hasOwnProperty*/
     }
 
     /**
@@ -21615,7 +20270,7 @@ class Import {
      * @return bool
      */
     public function validate(): bool {
-        return Import::validateImport($this->import);
+        return HasOwnProperty::validateHasOwnProperty($this->hasOwnProperty);
     }
 
     /**
@@ -21624,44 +20279,44 @@ class Import {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'import'} = $this->toImport();
+        $out->{'hasOwnProperty'} = $this->toHasOwnProperty();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Import
+     * @return HasOwnProperty
      * @throws Exception
      */
-    public static function from(stdClass $obj): Import {
-        if (!property_exists($obj, 'import')) {
+    public static function from(stdClass $obj): HasOwnProperty {
+        if (!property_exists($obj, 'hasOwnProperty')) {
             throw new Exception("Missing required property");
         }
-        return new Import(
-         Import::fromImport($obj->{'import'})
+        return new HasOwnProperty(
+         HasOwnProperty::fromHasOwnProperty($obj->{'hasOwnProperty'})
         );
     }
 
     /**
-     * @return Import
+     * @return HasOwnProperty
      */
-    public static function sample(): Import {
-        return new Import(
-         Import::sampleImport()
+    public static function sample(): HasOwnProperty {
+        return new HasOwnProperty(
+         HasOwnProperty::sampleHasOwnProperty()
         );
     }
 }
 
-// This is an autogenerated file:In
+// This is an autogenerated file:HashCode
 
-class In {
-    private int $in; // json:in Required
+class HashCode {
+    private int $hashCode; // json:hashCode Required
 
     /**
-     * @param int $in
+     * @param int $hashCode
      */
-    public function __construct(int $in) {
-        $this->in = $in;
+    public function __construct(int $hashCode) {
+        $this->hashCode = $hashCode;
     }
 
     /**
@@ -21669,7 +20324,7 @@ class In {
      * @throws Exception
      * @return int
      */
-    public static function fromIn(int $value): int {
+    public static function fromHashCode(int $value): int {
         return $value; /*int*/
     }
 
@@ -21677,11 +20332,11 @@ class In {
      * @throws Exception
      * @return int
      */
-    public function toIn(): int {
-        if (In::validateIn($this->in))  {
-            return $this->in; /*int*/
+    public function toHashCode(): int {
+        if (HashCode::validateHashCode($this->hashCode))  {
+            return $this->hashCode; /*int*/
         }
-        throw new Exception('never get to this In::in');
+        throw new Exception('never get to this HashCode::hashCode');
     }
 
     /**
@@ -21689,7 +20344,7 @@ class In {
      * @return bool
      * @throws Exception
      */
-    public static function validateIn(int $value): bool {
+    public static function validateHashCode(int $value): bool {
         return true;
     }
 
@@ -21697,18 +20352,18 @@ class In {
      * @throws Exception
      * @return int
      */
-    public function getIn(): int {
-        if (In::validateIn($this->in))  {
-            return $this->in;
+    public function getHashCode(): int {
+        if (HashCode::validateHashCode($this->hashCode))  {
+            return $this->hashCode;
         }
-        throw new Exception('never get to getIn In::in');
+        throw new Exception('never get to getHashCode HashCode::hashCode');
     }
 
     /**
      * @return int
      */
-    public static function sampleIn(): int {
-        return 31; /*31:in*/
+    public static function sampleHashCode(): int {
+        return 31; /*31:hashCode*/
     }
 
     /**
@@ -21716,7 +20371,7 @@ class In {
      * @return bool
      */
     public function validate(): bool {
-        return In::validateIn($this->in);
+        return HashCode::validateHashCode($this->hashCode);
     }
 
     /**
@@ -21725,44 +20380,44 @@ class In {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'in'} = $this->toIn();
+        $out->{'hashCode'} = $this->toHashCode();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return In
+     * @return HashCode
      * @throws Exception
      */
-    public static function from(stdClass $obj): In {
-        if (!property_exists($obj, 'in')) {
+    public static function from(stdClass $obj): HashCode {
+        if (!property_exists($obj, 'hashCode')) {
             throw new Exception("Missing required property");
         }
-        return new In(
-         In::fromIn($obj->{'in'})
+        return new HashCode(
+         HashCode::fromHashCode($obj->{'hashCode'})
         );
     }
 
     /**
-     * @return In
+     * @return HashCode
      */
-    public static function sample(): In {
-        return new In(
-         In::sampleIn()
+    public static function sample(): HashCode {
+        return new HashCode(
+         HashCode::sampleHashCode()
         );
     }
 }
 
-// This is an autogenerated file:Indirect
+// This is an autogenerated file:ID
 
-class Indirect {
-    private int $indirect; // json:indirect Required
+class ID {
+    private int $id; // json:id Required
 
     /**
-     * @param int $indirect
+     * @param int $id
      */
-    public function __construct(int $indirect) {
-        $this->indirect = $indirect;
+    public function __construct(int $id) {
+        $this->id = $id;
     }
 
     /**
@@ -21770,7 +20425,7 @@ class Indirect {
      * @throws Exception
      * @return int
      */
-    public static function fromIndirect(int $value): int {
+    public static function fromID(int $value): int {
         return $value; /*int*/
     }
 
@@ -21778,11 +20433,11 @@ class Indirect {
      * @throws Exception
      * @return int
      */
-    public function toIndirect(): int {
-        if (Indirect::validateIndirect($this->indirect))  {
-            return $this->indirect; /*int*/
+    public function toID(): int {
+        if (ID::validateID($this->id))  {
+            return $this->id; /*int*/
         }
-        throw new Exception('never get to this Indirect::indirect');
+        throw new Exception('never get to this ID::id');
     }
 
     /**
@@ -21790,7 +20445,7 @@ class Indirect {
      * @return bool
      * @throws Exception
      */
-    public static function validateIndirect(int $value): bool {
+    public static function validateID(int $value): bool {
         return true;
     }
 
@@ -21798,18 +20453,18 @@ class Indirect {
      * @throws Exception
      * @return int
      */
-    public function getIndirect(): int {
-        if (Indirect::validateIndirect($this->indirect))  {
-            return $this->indirect;
+    public function getID(): int {
+        if (ID::validateID($this->id))  {
+            return $this->id;
         }
-        throw new Exception('never get to getIndirect Indirect::indirect');
+        throw new Exception('never get to getID ID::id');
     }
 
     /**
      * @return int
      */
-    public static function sampleIndirect(): int {
-        return 31; /*31:indirect*/
+    public static function sampleID(): int {
+        return 31; /*31:id*/
     }
 
     /**
@@ -21817,7 +20472,7 @@ class Indirect {
      * @return bool
      */
     public function validate(): bool {
-        return Indirect::validateIndirect($this->indirect);
+        return ID::validateID($this->id);
     }
 
     /**
@@ -21826,44 +20481,44 @@ class Indirect {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'indirect'} = $this->toIndirect();
+        $out->{'id'} = $this->toID();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Indirect
+     * @return ID
      * @throws Exception
      */
-    public static function from(stdClass $obj): Indirect {
-        if (!property_exists($obj, 'indirect')) {
+    public static function from(stdClass $obj): ID {
+        if (!property_exists($obj, 'id')) {
             throw new Exception("Missing required property");
         }
-        return new Indirect(
-         Indirect::fromIndirect($obj->{'indirect'})
+        return new ID(
+         ID::fromID($obj->{'id'})
         );
     }
 
     /**
-     * @return Indirect
+     * @return ID
      */
-    public static function sample(): Indirect {
-        return new Indirect(
-         Indirect::sampleIndirect()
+    public static function sample(): ID {
+        return new ID(
+         ID::sampleID()
         );
     }
 }
 
-// This is an autogenerated file:Infix
+// This is an autogenerated file:IfClass
 
-class Infix {
-    private int $infix; // json:infix Required
+class IfClass {
+    private int $if; // json:if Required
 
     /**
-     * @param int $infix
+     * @param int $if
      */
-    public function __construct(int $infix) {
-        $this->infix = $infix;
+    public function __construct(int $if) {
+        $this->if = $if;
     }
 
     /**
@@ -21871,7 +20526,7 @@ class Infix {
      * @throws Exception
      * @return int
      */
-    public static function fromInfix(int $value): int {
+    public static function fromIf(int $value): int {
         return $value; /*int*/
     }
 
@@ -21879,11 +20534,11 @@ class Infix {
      * @throws Exception
      * @return int
      */
-    public function toInfix(): int {
-        if (Infix::validateInfix($this->infix))  {
-            return $this->infix; /*int*/
+    public function toIf(): int {
+        if (IfClass::validateIf($this->if))  {
+            return $this->if; /*int*/
         }
-        throw new Exception('never get to this Infix::infix');
+        throw new Exception('never get to this IfClass::if');
     }
 
     /**
@@ -21891,7 +20546,7 @@ class Infix {
      * @return bool
      * @throws Exception
      */
-    public static function validateInfix(int $value): bool {
+    public static function validateIf(int $value): bool {
         return true;
     }
 
@@ -21899,18 +20554,18 @@ class Infix {
      * @throws Exception
      * @return int
      */
-    public function getInfix(): int {
-        if (Infix::validateInfix($this->infix))  {
-            return $this->infix;
+    public function getIf(): int {
+        if (IfClass::validateIf($this->if))  {
+            return $this->if;
         }
-        throw new Exception('never get to getInfix Infix::infix');
+        throw new Exception('never get to getIf IfClass::if');
     }
 
     /**
      * @return int
      */
-    public static function sampleInfix(): int {
-        return 31; /*31:infix*/
+    public static function sampleIf(): int {
+        return 31; /*31:if*/
     }
 
     /**
@@ -21918,7 +20573,7 @@ class Infix {
      * @return bool
      */
     public function validate(): bool {
-        return Infix::validateInfix($this->infix);
+        return IfClass::validateIf($this->if);
     }
 
     /**
@@ -21927,44 +20582,44 @@ class Infix {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'infix'} = $this->toInfix();
+        $out->{'if'} = $this->toIf();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Infix
+     * @return IfClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Infix {
-        if (!property_exists($obj, 'infix')) {
+    public static function from(stdClass $obj): IfClass {
+        if (!property_exists($obj, 'if')) {
             throw new Exception("Missing required property");
         }
-        return new Infix(
-         Infix::fromInfix($obj->{'infix'})
+        return new IfClass(
+         IfClass::fromIf($obj->{'if'})
         );
     }
 
     /**
-     * @return Infix
+     * @return IfClass
      */
-    public static function sample(): Infix {
-        return new Infix(
-         Infix::sampleInfix()
+    public static function sample(): IfClass {
+        return new IfClass(
+         IfClass::sampleIf()
         );
     }
 }
 
-// This is an autogenerated file:Init
+// This is an autogenerated file:Imp
 
-class Init {
-    private int $init; // json:init Required
+class Imp {
+    private int $imp; // json:IMP Required
 
     /**
-     * @param int $init
+     * @param int $imp
      */
-    public function __construct(int $init) {
-        $this->init = $init;
+    public function __construct(int $imp) {
+        $this->imp = $imp;
     }
 
     /**
@@ -21972,7 +20627,7 @@ class Init {
      * @throws Exception
      * @return int
      */
-    public static function fromInit(int $value): int {
+    public static function fromImp(int $value): int {
         return $value; /*int*/
     }
 
@@ -21980,11 +20635,11 @@ class Init {
      * @throws Exception
      * @return int
      */
-    public function toInit(): int {
-        if (Init::validateInit($this->init))  {
-            return $this->init; /*int*/
+    public function toImp(): int {
+        if (Imp::validateImp($this->imp))  {
+            return $this->imp; /*int*/
         }
-        throw new Exception('never get to this Init::init');
+        throw new Exception('never get to this Imp::imp');
     }
 
     /**
@@ -21992,7 +20647,7 @@ class Init {
      * @return bool
      * @throws Exception
      */
-    public static function validateInit(int $value): bool {
+    public static function validateImp(int $value): bool {
         return true;
     }
 
@@ -22000,18 +20655,18 @@ class Init {
      * @throws Exception
      * @return int
      */
-    public function getInit(): int {
-        if (Init::validateInit($this->init))  {
-            return $this->init;
+    public function getImp(): int {
+        if (Imp::validateImp($this->imp))  {
+            return $this->imp;
         }
-        throw new Exception('never get to getInit Init::init');
+        throw new Exception('never get to getImp Imp::imp');
     }
 
     /**
      * @return int
      */
-    public static function sampleInit(): int {
-        return 31; /*31:init*/
+    public static function sampleImp(): int {
+        return 31; /*31:imp*/
     }
 
     /**
@@ -22019,7 +20674,7 @@ class Init {
      * @return bool
      */
     public function validate(): bool {
-        return Init::validateInit($this->init);
+        return Imp::validateImp($this->imp);
     }
 
     /**
@@ -22028,44 +20683,44 @@ class Init {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'init'} = $this->toInit();
+        $out->{'IMP'} = $this->toImp();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Init
+     * @return Imp
      * @throws Exception
      */
-    public static function from(stdClass $obj): Init {
-        if (!property_exists($obj, 'init')) {
+    public static function from(stdClass $obj): Imp {
+        if (!property_exists($obj, 'IMP')) {
             throw new Exception("Missing required property");
         }
-        return new Init(
-         Init::fromInit($obj->{'init'})
+        return new Imp(
+         Imp::fromImp($obj->{'IMP'})
         );
     }
 
     /**
-     * @return Init
+     * @return Imp
      */
-    public static function sample(): Init {
-        return new Init(
-         Init::sampleInit()
+    public static function sample(): Imp {
+        return new Imp(
+         Imp::sampleImp()
         );
     }
 }
 
-// This is an autogenerated file:Inline
+// This is an autogenerated file:ImplementsClass
 
-class Inline {
-    private int $inline; // json:inline Required
+class ImplementsClass {
+    private int $implements; // json:implements Required
 
     /**
-     * @param int $inline
+     * @param int $implements
      */
-    public function __construct(int $inline) {
-        $this->inline = $inline;
+    public function __construct(int $implements) {
+        $this->implements = $implements;
     }
 
     /**
@@ -22073,7 +20728,7 @@ class Inline {
      * @throws Exception
      * @return int
      */
-    public static function fromInline(int $value): int {
+    public static function fromImplements(int $value): int {
         return $value; /*int*/
     }
 
@@ -22081,11 +20736,11 @@ class Inline {
      * @throws Exception
      * @return int
      */
-    public function toInline(): int {
-        if (Inline::validateInline($this->inline))  {
-            return $this->inline; /*int*/
+    public function toImplements(): int {
+        if (ImplementsClass::validateImplements($this->implements))  {
+            return $this->implements; /*int*/
         }
-        throw new Exception('never get to this Inline::inline');
+        throw new Exception('never get to this ImplementsClass::implements');
     }
 
     /**
@@ -22093,7 +20748,7 @@ class Inline {
      * @return bool
      * @throws Exception
      */
-    public static function validateInline(int $value): bool {
+    public static function validateImplements(int $value): bool {
         return true;
     }
 
@@ -22101,18 +20756,18 @@ class Inline {
      * @throws Exception
      * @return int
      */
-    public function getInline(): int {
-        if (Inline::validateInline($this->inline))  {
-            return $this->inline;
+    public function getImplements(): int {
+        if (ImplementsClass::validateImplements($this->implements))  {
+            return $this->implements;
         }
-        throw new Exception('never get to getInline Inline::inline');
+        throw new Exception('never get to getImplements ImplementsClass::implements');
     }
 
     /**
      * @return int
      */
-    public static function sampleInline(): int {
-        return 31; /*31:inline*/
+    public static function sampleImplements(): int {
+        return 31; /*31:implements*/
     }
 
     /**
@@ -22120,7 +20775,7 @@ class Inline {
      * @return bool
      */
     public function validate(): bool {
-        return Inline::validateInline($this->inline);
+        return ImplementsClass::validateImplements($this->implements);
     }
 
     /**
@@ -22129,44 +20784,44 @@ class Inline {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'inline'} = $this->toInline();
+        $out->{'implements'} = $this->toImplements();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Inline
+     * @return ImplementsClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Inline {
-        if (!property_exists($obj, 'inline')) {
+    public static function from(stdClass $obj): ImplementsClass {
+        if (!property_exists($obj, 'implements')) {
             throw new Exception("Missing required property");
         }
-        return new Inline(
-         Inline::fromInline($obj->{'inline'})
+        return new ImplementsClass(
+         ImplementsClass::fromImplements($obj->{'implements'})
         );
     }
 
     /**
-     * @return Inline
+     * @return ImplementsClass
      */
-    public static function sample(): Inline {
-        return new Inline(
-         Inline::sampleInline()
+    public static function sample(): ImplementsClass {
+        return new ImplementsClass(
+         ImplementsClass::sampleImplements()
         );
     }
 }
 
-// This is an autogenerated file:Inout
+// This is an autogenerated file:Implicit
 
-class Inout {
-    private int $inout; // json:inout Required
+class Implicit {
+    private int $implicit; // json:implicit Required
 
     /**
-     * @param int $inout
+     * @param int $implicit
      */
-    public function __construct(int $inout) {
-        $this->inout = $inout;
+    public function __construct(int $implicit) {
+        $this->implicit = $implicit;
     }
 
     /**
@@ -22174,7 +20829,7 @@ class Inout {
      * @throws Exception
      * @return int
      */
-    public static function fromInout(int $value): int {
+    public static function fromImplicit(int $value): int {
         return $value; /*int*/
     }
 
@@ -22182,11 +20837,11 @@ class Inout {
      * @throws Exception
      * @return int
      */
-    public function toInout(): int {
-        if (Inout::validateInout($this->inout))  {
-            return $this->inout; /*int*/
+    public function toImplicit(): int {
+        if (Implicit::validateImplicit($this->implicit))  {
+            return $this->implicit; /*int*/
         }
-        throw new Exception('never get to this Inout::inout');
+        throw new Exception('never get to this Implicit::implicit');
     }
 
     /**
@@ -22194,7 +20849,7 @@ class Inout {
      * @return bool
      * @throws Exception
      */
-    public static function validateInout(int $value): bool {
+    public static function validateImplicit(int $value): bool {
         return true;
     }
 
@@ -22202,18 +20857,18 @@ class Inout {
      * @throws Exception
      * @return int
      */
-    public function getInout(): int {
-        if (Inout::validateInout($this->inout))  {
-            return $this->inout;
+    public function getImplicit(): int {
+        if (Implicit::validateImplicit($this->implicit))  {
+            return $this->implicit;
         }
-        throw new Exception('never get to getInout Inout::inout');
+        throw new Exception('never get to getImplicit Implicit::implicit');
     }
 
     /**
      * @return int
      */
-    public static function sampleInout(): int {
-        return 31; /*31:inout*/
+    public static function sampleImplicit(): int {
+        return 31; /*31:implicit*/
     }
 
     /**
@@ -22221,7 +20876,7 @@ class Inout {
      * @return bool
      */
     public function validate(): bool {
-        return Inout::validateInout($this->inout);
+        return Implicit::validateImplicit($this->implicit);
     }
 
     /**
@@ -22230,44 +20885,44 @@ class Inout {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'inout'} = $this->toInout();
+        $out->{'implicit'} = $this->toImplicit();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Inout
+     * @return Implicit
      * @throws Exception
      */
-    public static function from(stdClass $obj): Inout {
-        if (!property_exists($obj, 'inout')) {
+    public static function from(stdClass $obj): Implicit {
+        if (!property_exists($obj, 'implicit')) {
             throw new Exception("Missing required property");
         }
-        return new Inout(
-         Inout::fromInout($obj->{'inout'})
+        return new Implicit(
+         Implicit::fromImplicit($obj->{'implicit'})
         );
     }
 
     /**
-     * @return Inout
+     * @return Implicit
      */
-    public static function sample(): Inout {
-        return new Inout(
-         Inout::sampleInout()
+    public static function sample(): Implicit {
+        return new Implicit(
+         Implicit::sampleImplicit()
         );
     }
 }
 
-// This is an autogenerated file:InstanceofClass
+// This is an autogenerated file:Obj2False
 
-class InstanceofClass {
-    private int $instanceof; // json:instanceof Required
+class Obj2False {
+    private int $false; // json:false Required
 
     /**
-     * @param int $instanceof
+     * @param int $false
      */
-    public function __construct(int $instanceof) {
-        $this->instanceof = $instanceof;
+    public function __construct(int $false) {
+        $this->false = $false;
     }
 
     /**
@@ -22275,7 +20930,7 @@ class InstanceofClass {
      * @throws Exception
      * @return int
      */
-    public static function fromInstanceof(int $value): int {
+    public static function fromFalse(int $value): int {
         return $value; /*int*/
     }
 
@@ -22283,11 +20938,11 @@ class InstanceofClass {
      * @throws Exception
      * @return int
      */
-    public function toInstanceof(): int {
-        if (InstanceofClass::validateInstanceof($this->instanceof))  {
-            return $this->instanceof; /*int*/
+    public function toFalse(): int {
+        if (Obj2False::validateFalse($this->false))  {
+            return $this->false; /*int*/
         }
-        throw new Exception('never get to this InstanceofClass::instanceof');
+        throw new Exception('never get to this Obj2False::false');
     }
 
     /**
@@ -22295,7 +20950,7 @@ class InstanceofClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateInstanceof(int $value): bool {
+    public static function validateFalse(int $value): bool {
         return true;
     }
 
@@ -22303,18 +20958,18 @@ class InstanceofClass {
      * @throws Exception
      * @return int
      */
-    public function getInstanceof(): int {
-        if (InstanceofClass::validateInstanceof($this->instanceof))  {
-            return $this->instanceof;
+    public function getFalse(): int {
+        if (Obj2False::validateFalse($this->false))  {
+            return $this->false;
         }
-        throw new Exception('never get to getInstanceof InstanceofClass::instanceof');
+        throw new Exception('never get to getFalse Obj2False::false');
     }
 
     /**
      * @return int
      */
-    public static function sampleInstanceof(): int {
-        return 31; /*31:instanceof*/
+    public static function sampleFalse(): int {
+        return 31; /*31:false*/
     }
 
     /**
@@ -22322,7 +20977,7 @@ class InstanceofClass {
      * @return bool
      */
     public function validate(): bool {
-        return InstanceofClass::validateInstanceof($this->instanceof);
+        return Obj2False::validateFalse($this->false);
     }
 
     /**
@@ -22331,747 +20986,811 @@ class InstanceofClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'instanceof'} = $this->toInstanceof();
+        $out->{'false'} = $this->toFalse();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return InstanceofClass
+     * @return Obj2False
      * @throws Exception
      */
-    public static function from(stdClass $obj): InstanceofClass {
-        if (!property_exists($obj, 'instanceof')) {
+    public static function from(stdClass $obj): Obj2False {
+        if (!property_exists($obj, 'false')) {
             throw new Exception("Missing required property");
         }
-        return new InstanceofClass(
-         InstanceofClass::fromInstanceof($obj->{'instanceof'})
+        return new Obj2False(
+         Obj2False::fromFalse($obj->{'false'})
         );
     }
 
     /**
-     * @return InstanceofClass
+     * @return Obj2False
      */
-    public static function sample(): InstanceofClass {
-        return new InstanceofClass(
-         InstanceofClass::sampleInstanceof()
+    public static function sample(): Obj2False {
+        return new Obj2False(
+         Obj2False::sampleFalse()
         );
     }
 }
 
-// This is an autogenerated file:IntClass
+// This is an autogenerated file:Obj3
 
-class IntClass {
-    private int $int; // json:int Required
+class Obj3 {
+    private int $dummy; // json:dummy Required
+    private Import $import; // json:import Required
+    private In $in; // json:in Required
+    private Indirect $indirect; // json:indirect Required
+    private Infix $infix; // json:infix Required
+    private Init $init; // json:init Required
+    private Inline $inline; // json:inline Required
+    private Inout $inout; // json:inout Required
+    private InstanceofClass $instanceof; // json:instanceof Required
+    private IntClass $int; // json:int Required
+    private InterfaceClass $interface; // json:interface Required
+    private Internal $internal; // json:internal Required
+    private Is $is; // json:is Required
+    private ISODateTimeOffsetConverter $isoDateTimeOffsetConverter; // json:IsoDateTimeOffsetConverter Required
+    private IterableClass $iterable; // json:iterable Required
+    private Jdec $jdec; // json:jdec Required
+    private Jenc $jenc; // json:jenc Required
+    private Jpipe $jpipe; // json:jpipe Required
+    private JSON $json; // json:json Required
+    private JSONAny $jsonAny; // json:JSONAny Required
+    private JSONCodingKey $jsonCodingKey; // json:JSONCodingKey Required
+    private JSONConverter $jsonConverter; // json:json_converter Required
+    private JSONDecoder $jsonDecoder; // json:JSONDecoder Required
+    private JSONEncoder $jsonEncoder; // json:JSONEncoder Required
+    private JSONExceptionClass $jsonException; // json:JsonException Required
+    private JSONGenerator $jsonGenerator; // json:JsonGenerator Required
+    private JSONNode $jsonNode; // json:JsonNode Required
+    private JSONNull $jsonNull; // json:JSONNull Required
+    private JSONParser $jsonParser; // json:JsonParser Required
+    private JSONReader $jsonReader; // json:JsonReader Required
+    private JSONSerializer $jsonSerializer; // json:json_serializer Required
+    private JSONToken $jsonToken; // json:json_token Required
+    private JSONTokenType $jsonTokenType; // json:JsonTokenType Required
+    private JSONWriter $jsonWriter; // json:json_writer Required
+    private Lambda $lambda; // json:lambda Required
+    private Lazy $lazy; // json:lazy Required
+    private Left $left; // json:left Required
+    private Let $let; // json:let Required
+    private ListClass $list; // json:list Required
+    private Lock $lock; // json:lock Required
+    private Long $long; // json:long Required
+    private Map $map; // json:map Required
+    private MetadataPropertyHandling $metadataPropertyHandling; // json:metadata_property_handling Required
+    private Module $module; // json:module Required
+    private Mutable $mutable; // json:mutable Required
+    private Mutating $mutating; // json:mutating Required
+    private NamespaceClass $namespace; // json:namespace Required
+    private Native $native; // json:native Required
+    private NewClass $new; // json:new Required
+    private Newtonsoft $newtonsoft; // json:newtonsoft Required
+    private Nil $nil; // json:nil Required
+    private No $no; // json:NO Required
+    private NoSuchMethod $noSuchMethod; // json:noSuchMethod Required
+    private Noexcept $noexcept; // json:noexcept Required
+    private Nonatomic $nonatomic; // json:nonatomic Required
+    private None $none; // json:None Required
+    private Nonlocal $nonlocal; // json:nonlocal Required
+    private Nonmutating $nonmutating; // json:nonmutating Required
+    private Not $not; // json:not Required
+    private NotEq $notEq; // json:not_eq Required
+    private NSError $nsError; // json:NSError Required
+    private NSString $nsString; // json:NSString Required
+    private NULLClass $null; // json:NULL Required
+    private NoneClass $obj3None; // json:none Required
+    private Obj3Null $obj3Null; // json:null Required
 
     /**
-     * @param int $int
+     * @param int $dummy
+     * @param Import $import
+     * @param In $in
+     * @param Indirect $indirect
+     * @param Infix $infix
+     * @param Init $init
+     * @param Inline $inline
+     * @param Inout $inout
+     * @param InstanceofClass $instanceof
+     * @param IntClass $int
+     * @param InterfaceClass $interface
+     * @param Internal $internal
+     * @param Is $is
+     * @param ISODateTimeOffsetConverter $isoDateTimeOffsetConverter
+     * @param IterableClass $iterable
+     * @param Jdec $jdec
+     * @param Jenc $jenc
+     * @param Jpipe $jpipe
+     * @param JSON $json
+     * @param JSONAny $jsonAny
+     * @param JSONCodingKey $jsonCodingKey
+     * @param JSONConverter $jsonConverter
+     * @param JSONDecoder $jsonDecoder
+     * @param JSONEncoder $jsonEncoder
+     * @param JSONExceptionClass $jsonException
+     * @param JSONGenerator $jsonGenerator
+     * @param JSONNode $jsonNode
+     * @param JSONNull $jsonNull
+     * @param JSONParser $jsonParser
+     * @param JSONReader $jsonReader
+     * @param JSONSerializer $jsonSerializer
+     * @param JSONToken $jsonToken
+     * @param JSONTokenType $jsonTokenType
+     * @param JSONWriter $jsonWriter
+     * @param Lambda $lambda
+     * @param Lazy $lazy
+     * @param Left $left
+     * @param Let $let
+     * @param ListClass $list
+     * @param Lock $lock
+     * @param Long $long
+     * @param Map $map
+     * @param MetadataPropertyHandling $metadataPropertyHandling
+     * @param Module $module
+     * @param Mutable $mutable
+     * @param Mutating $mutating
+     * @param NamespaceClass $namespace
+     * @param Native $native
+     * @param NewClass $new
+     * @param Newtonsoft $newtonsoft
+     * @param Nil $nil
+     * @param No $no
+     * @param NoSuchMethod $noSuchMethod
+     * @param Noexcept $noexcept
+     * @param Nonatomic $nonatomic
+     * @param None $none
+     * @param Nonlocal $nonlocal
+     * @param Nonmutating $nonmutating
+     * @param Not $not
+     * @param NotEq $notEq
+     * @param NSError $nsError
+     * @param NSString $nsString
+     * @param NULLClass $null
+     * @param NoneClass $obj3None
+     * @param Obj3Null $obj3Null
      */
-    public function __construct(int $int) {
+    public function __construct(int $dummy, Import $import, In $in, Indirect $indirect, Infix $infix, Init $init, Inline $inline, Inout $inout, InstanceofClass $instanceof, IntClass $int, InterfaceClass $interface, Internal $internal, Is $is, ISODateTimeOffsetConverter $isoDateTimeOffsetConverter, IterableClass $iterable, Jdec $jdec, Jenc $jenc, Jpipe $jpipe, JSON $json, JSONAny $jsonAny, JSONCodingKey $jsonCodingKey, JSONConverter $jsonConverter, JSONDecoder $jsonDecoder, JSONEncoder $jsonEncoder, JSONExceptionClass $jsonException, JSONGenerator $jsonGenerator, JSONNode $jsonNode, JSONNull $jsonNull, JSONParser $jsonParser, JSONReader $jsonReader, JSONSerializer $jsonSerializer, JSONToken $jsonToken, JSONTokenType $jsonTokenType, JSONWriter $jsonWriter, Lambda $lambda, Lazy $lazy, Left $left, Let $let, ListClass $list, Lock $lock, Long $long, Map $map, MetadataPropertyHandling $metadataPropertyHandling, Module $module, Mutable $mutable, Mutating $mutating, NamespaceClass $namespace, Native $native, NewClass $new, Newtonsoft $newtonsoft, Nil $nil, No $no, NoSuchMethod $noSuchMethod, Noexcept $noexcept, Nonatomic $nonatomic, None $none, Nonlocal $nonlocal, Nonmutating $nonmutating, Not $not, NotEq $notEq, NSError $nsError, NSString $nsString, NULLClass $null, NoneClass $obj3None, Obj3Null $obj3Null) {
+        $this->dummy = $dummy;
+        $this->import = $import;
+        $this->in = $in;
+        $this->indirect = $indirect;
+        $this->infix = $infix;
+        $this->init = $init;
+        $this->inline = $inline;
+        $this->inout = $inout;
+        $this->instanceof = $instanceof;
         $this->int = $int;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromInt(int $value): int {
-        return $value; /*int*/
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toInt(): int {
-        if (IntClass::validateInt($this->int))  {
-            return $this->int; /*int*/
-        }
-        throw new Exception('never get to this IntClass::int');
-    }
-
-    /**
-     * @param int
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateInt(int $value): bool {
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return int
+        $this->interface = $interface;
+        $this->internal = $internal;
+        $this->is = $is;
+        $this->isoDateTimeOffsetConverter = $isoDateTimeOffsetConverter;
+        $this->iterable = $iterable;
+        $this->jdec = $jdec;
+        $this->jenc = $jenc;
+        $this->jpipe = $jpipe;
+        $this->json = $json;
+        $this->jsonAny = $jsonAny;
+        $this->jsonCodingKey = $jsonCodingKey;
+        $this->jsonConverter = $jsonConverter;
+        $this->jsonDecoder = $jsonDecoder;
+        $this->jsonEncoder = $jsonEncoder;
+        $this->jsonException = $jsonException;
+        $this->jsonGenerator = $jsonGenerator;
+        $this->jsonNode = $jsonNode;
+        $this->jsonNull = $jsonNull;
+        $this->jsonParser = $jsonParser;
+        $this->jsonReader = $jsonReader;
+        $this->jsonSerializer = $jsonSerializer;
+        $this->jsonToken = $jsonToken;
+        $this->jsonTokenType = $jsonTokenType;
+        $this->jsonWriter = $jsonWriter;
+        $this->lambda = $lambda;
+        $this->lazy = $lazy;
+        $this->left = $left;
+        $this->let = $let;
+        $this->list = $list;
+        $this->lock = $lock;
+        $this->long = $long;
+        $this->map = $map;
+        $this->metadataPropertyHandling = $metadataPropertyHandling;
+        $this->module = $module;
+        $this->mutable = $mutable;
+        $this->mutating = $mutating;
+        $this->namespace = $namespace;
+        $this->native = $native;
+        $this->new = $new;
+        $this->newtonsoft = $newtonsoft;
+        $this->nil = $nil;
+        $this->no = $no;
+        $this->noSuchMethod = $noSuchMethod;
+        $this->noexcept = $noexcept;
+        $this->nonatomic = $nonatomic;
+        $this->none = $none;
+        $this->nonlocal = $nonlocal;
+        $this->nonmutating = $nonmutating;
+        $this->not = $not;
+        $this->notEq = $notEq;
+        $this->nsError = $nsError;
+        $this->nsString = $nsString;
+        $this->null = $null;
+        $this->obj3None = $obj3None;
+        $this->obj3Null = $obj3Null;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
      */
-    public function getInt(): int {
-        if (IntClass::validateInt($this->int))  {
-            return $this->int;
+    public static function fromDummy(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toDummy(): int {
+        if (Obj3::validateDummy($this->dummy))  {
+            return $this->dummy; /*int*/
         }
-        throw new Exception('never get to getInt IntClass::int');
+        throw new Exception('never get to this Obj3::dummy');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDummy(int $value): bool {
+        return true;
     }
 
     /**
+     * @throws Exception
      * @return int
      */
-    public static function sampleInt(): int {
-        return 31; /*31:int*/
+    public function getDummy(): int {
+        if (Obj3::validateDummy($this->dummy))  {
+            return $this->dummy;
+        }
+        throw new Exception('never get to getDummy Obj3::dummy');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleDummy(): int {
+        return 31; /*31:dummy*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Import
      */
-    public function validate(): bool {
-        return IntClass::validateInt($this->int);
+    public static function fromImport(stdClass $value): Import {
+        return Import::from($value); /*class*/
     }
 
     /**
+     * @throws Exception
      * @return stdClass
+     */
+    public function toImport(): stdClass {
+        if (Obj3::validateImport($this->import))  {
+            return $this->import->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::import');
+    }
+
+    /**
+     * @param Import
+     * @return bool
      * @throws Exception
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'int'} = $this->toInt();
-        return $out;
+    public static function validateImport(Import $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param stdClass $obj
-     * @return IntClass
      * @throws Exception
+     * @return Import
      */
-    public static function from(stdClass $obj): IntClass {
-        if (!property_exists($obj, 'int')) {
-            throw new Exception("Missing required property");
+    public function getImport(): Import {
+        if (Obj3::validateImport($this->import))  {
+            return $this->import;
         }
-        return new IntClass(
-         IntClass::fromInt($obj->{'int'})
-        );
+        throw new Exception('never get to getImport Obj3::import');
     }
 
     /**
-     * @return IntClass
+     * @return Import
      */
-    public static function sample(): IntClass {
-        return new IntClass(
-         IntClass::sampleInt()
-        );
+    public static function sampleImport(): Import {
+        return Import::sample(); /*32:import*/
     }
-}
 
-// This is an autogenerated file:InterfaceClass
+    /**
+     * @param stdClass $value
+     * @throws Exception
+     * @return In
+     */
+    public static function fromIn(stdClass $value): In {
+        return In::from($value); /*class*/
+    }
 
-class InterfaceClass {
-    private int $interface; // json:interface Required
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toIn(): stdClass {
+        if (Obj3::validateIn($this->in))  {
+            return $this->in->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::in');
+    }
 
     /**
-     * @param int $interface
+     * @param In
+     * @return bool
+     * @throws Exception
      */
-    public function __construct(int $interface) {
-        $this->interface = $interface;
+    public static function validateIn(In $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param int $value
      * @throws Exception
-     * @return int
+     * @return In
      */
-    public static function fromInterface(int $value): int {
-        return $value; /*int*/
+    public function getIn(): In {
+        if (Obj3::validateIn($this->in))  {
+            return $this->in;
+        }
+        throw new Exception('never get to getIn Obj3::in');
+    }
+
+    /**
+     * @return In
+     */
+    public static function sampleIn(): In {
+        return In::sample(); /*33:in*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Indirect
      */
-    public function toInterface(): int {
-        if (InterfaceClass::validateInterface($this->interface))  {
-            return $this->interface; /*int*/
+    public static function fromIndirect(stdClass $value): Indirect {
+        return Indirect::from($value); /*class*/
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toIndirect(): stdClass {
+        if (Obj3::validateIndirect($this->indirect))  {
+            return $this->indirect->to(); /*class*/
         }
-        throw new Exception('never get to this InterfaceClass::interface');
+        throw new Exception('never get to this Obj3::indirect');
     }
 
     /**
-     * @param int
+     * @param Indirect
      * @return bool
      * @throws Exception
      */
-    public static function validateInterface(int $value): bool {
+    public static function validateIndirect(Indirect $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Indirect
      */
-    public function getInterface(): int {
-        if (InterfaceClass::validateInterface($this->interface))  {
-            return $this->interface;
+    public function getIndirect(): Indirect {
+        if (Obj3::validateIndirect($this->indirect))  {
+            return $this->indirect;
         }
-        throw new Exception('never get to getInterface InterfaceClass::interface');
+        throw new Exception('never get to getIndirect Obj3::indirect');
     }
 
     /**
-     * @return int
+     * @return Indirect
      */
-    public static function sampleInterface(): int {
-        return 31; /*31:interface*/
+    public static function sampleIndirect(): Indirect {
+        return Indirect::sample(); /*34:indirect*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Infix
      */
-    public function validate(): bool {
-        return InterfaceClass::validateInterface($this->interface);
+    public static function fromInfix(stdClass $value): Infix {
+        return Infix::from($value); /*class*/
     }
 
     /**
+     * @throws Exception
      * @return stdClass
+     */
+    public function toInfix(): stdClass {
+        if (Obj3::validateInfix($this->infix))  {
+            return $this->infix->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::infix');
+    }
+
+    /**
+     * @param Infix
+     * @return bool
      * @throws Exception
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'interface'} = $this->toInterface();
-        return $out;
+    public static function validateInfix(Infix $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param stdClass $obj
-     * @return InterfaceClass
      * @throws Exception
+     * @return Infix
      */
-    public static function from(stdClass $obj): InterfaceClass {
-        if (!property_exists($obj, 'interface')) {
-            throw new Exception("Missing required property");
+    public function getInfix(): Infix {
+        if (Obj3::validateInfix($this->infix))  {
+            return $this->infix;
         }
-        return new InterfaceClass(
-         InterfaceClass::fromInterface($obj->{'interface'})
-        );
+        throw new Exception('never get to getInfix Obj3::infix');
     }
 
     /**
-     * @return InterfaceClass
+     * @return Infix
      */
-    public static function sample(): InterfaceClass {
-        return new InterfaceClass(
-         InterfaceClass::sampleInterface()
-        );
+    public static function sampleInfix(): Infix {
+        return Infix::sample(); /*35:infix*/
     }
-}
 
-// This is an autogenerated file:Internal
+    /**
+     * @param stdClass $value
+     * @throws Exception
+     * @return Init
+     */
+    public static function fromInit(stdClass $value): Init {
+        return Init::from($value); /*class*/
+    }
 
-class Internal {
-    private int $internal; // json:internal Required
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toInit(): stdClass {
+        if (Obj3::validateInit($this->init))  {
+            return $this->init->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::init');
+    }
 
     /**
-     * @param int $internal
+     * @param Init
+     * @return bool
+     * @throws Exception
      */
-    public function __construct(int $internal) {
-        $this->internal = $internal;
+    public static function validateInit(Init $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param int $value
      * @throws Exception
-     * @return int
+     * @return Init
      */
-    public static function fromInternal(int $value): int {
-        return $value; /*int*/
+    public function getInit(): Init {
+        if (Obj3::validateInit($this->init))  {
+            return $this->init;
+        }
+        throw new Exception('never get to getInit Obj3::init');
+    }
+
+    /**
+     * @return Init
+     */
+    public static function sampleInit(): Init {
+        return Init::sample(); /*36:init*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Inline
      */
-    public function toInternal(): int {
-        if (Internal::validateInternal($this->internal))  {
-            return $this->internal; /*int*/
+    public static function fromInline(stdClass $value): Inline {
+        return Inline::from($value); /*class*/
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toInline(): stdClass {
+        if (Obj3::validateInline($this->inline))  {
+            return $this->inline->to(); /*class*/
         }
-        throw new Exception('never get to this Internal::internal');
+        throw new Exception('never get to this Obj3::inline');
     }
 
     /**
-     * @param int
+     * @param Inline
      * @return bool
      * @throws Exception
      */
-    public static function validateInternal(int $value): bool {
+    public static function validateInline(Inline $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Inline
      */
-    public function getInternal(): int {
-        if (Internal::validateInternal($this->internal))  {
-            return $this->internal;
+    public function getInline(): Inline {
+        if (Obj3::validateInline($this->inline))  {
+            return $this->inline;
         }
-        throw new Exception('never get to getInternal Internal::internal');
+        throw new Exception('never get to getInline Obj3::inline');
     }
 
     /**
-     * @return int
+     * @return Inline
      */
-    public static function sampleInternal(): int {
-        return 31; /*31:internal*/
+    public static function sampleInline(): Inline {
+        return Inline::sample(); /*37:inline*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Inout
      */
-    public function validate(): bool {
-        return Internal::validateInternal($this->internal);
+    public static function fromInout(stdClass $value): Inout {
+        return Inout::from($value); /*class*/
     }
 
     /**
+     * @throws Exception
      * @return stdClass
+     */
+    public function toInout(): stdClass {
+        if (Obj3::validateInout($this->inout))  {
+            return $this->inout->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::inout');
+    }
+
+    /**
+     * @param Inout
+     * @return bool
      * @throws Exception
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'internal'} = $this->toInternal();
-        return $out;
+    public static function validateInout(Inout $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param stdClass $obj
-     * @return Internal
      * @throws Exception
+     * @return Inout
      */
-    public static function from(stdClass $obj): Internal {
-        if (!property_exists($obj, 'internal')) {
-            throw new Exception("Missing required property");
+    public function getInout(): Inout {
+        if (Obj3::validateInout($this->inout))  {
+            return $this->inout;
         }
-        return new Internal(
-         Internal::fromInternal($obj->{'internal'})
-        );
+        throw new Exception('never get to getInout Obj3::inout');
     }
 
     /**
-     * @return Internal
+     * @return Inout
      */
-    public static function sample(): Internal {
-        return new Internal(
-         Internal::sampleInternal()
-        );
+    public static function sampleInout(): Inout {
+        return Inout::sample(); /*38:inout*/
     }
-}
 
-// This is an autogenerated file:Obj2False
+    /**
+     * @param stdClass $value
+     * @throws Exception
+     * @return InstanceofClass
+     */
+    public static function fromInstanceof(stdClass $value): InstanceofClass {
+        return InstanceofClass::from($value); /*class*/
+    }
 
-class Obj2False {
-    private int $false; // json:false Required
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toInstanceof(): stdClass {
+        if (Obj3::validateInstanceof($this->instanceof))  {
+            return $this->instanceof->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::instanceof');
+    }
 
     /**
-     * @param int $false
+     * @param InstanceofClass
+     * @return bool
+     * @throws Exception
      */
-    public function __construct(int $false) {
-        $this->false = $false;
+    public static function validateInstanceof(InstanceofClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param int $value
      * @throws Exception
-     * @return int
+     * @return InstanceofClass
      */
-    public static function fromFalse(int $value): int {
-        return $value; /*int*/
+    public function getInstanceof(): InstanceofClass {
+        if (Obj3::validateInstanceof($this->instanceof))  {
+            return $this->instanceof;
+        }
+        throw new Exception('never get to getInstanceof Obj3::instanceof');
+    }
+
+    /**
+     * @return InstanceofClass
+     */
+    public static function sampleInstanceof(): InstanceofClass {
+        return InstanceofClass::sample(); /*39:instanceof*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return IntClass
      */
-    public function toFalse(): int {
-        if (Obj2False::validateFalse($this->false))  {
-            return $this->false; /*int*/
+    public static function fromInt(stdClass $value): IntClass {
+        return IntClass::from($value); /*class*/
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toInt(): stdClass {
+        if (Obj3::validateInt($this->int))  {
+            return $this->int->to(); /*class*/
         }
-        throw new Exception('never get to this Obj2False::false');
+        throw new Exception('never get to this Obj3::int');
     }
 
     /**
-     * @param int
+     * @param IntClass
      * @return bool
      * @throws Exception
      */
-    public static function validateFalse(int $value): bool {
+    public static function validateInt(IntClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return IntClass
      */
-    public function getFalse(): int {
-        if (Obj2False::validateFalse($this->false))  {
-            return $this->false;
+    public function getInt(): IntClass {
+        if (Obj3::validateInt($this->int))  {
+            return $this->int;
         }
-        throw new Exception('never get to getFalse Obj2False::false');
+        throw new Exception('never get to getInt Obj3::int');
     }
 
     /**
-     * @return int
+     * @return IntClass
      */
-    public static function sampleFalse(): int {
-        return 31; /*31:false*/
+    public static function sampleInt(): IntClass {
+        return IntClass::sample(); /*40:int*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return InterfaceClass
      */
-    public function validate(): bool {
-        return Obj2False::validateFalse($this->false);
+    public static function fromInterface(stdClass $value): InterfaceClass {
+        return InterfaceClass::from($value); /*class*/
     }
 
     /**
+     * @throws Exception
      * @return stdClass
+     */
+    public function toInterface(): stdClass {
+        if (Obj3::validateInterface($this->interface))  {
+            return $this->interface->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj3::interface');
+    }
+
+    /**
+     * @param InterfaceClass
+     * @return bool
      * @throws Exception
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'false'} = $this->toFalse();
-        return $out;
+    public static function validateInterface(InterfaceClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param stdClass $obj
-     * @return Obj2False
      * @throws Exception
+     * @return InterfaceClass
      */
-    public static function from(stdClass $obj): Obj2False {
-        if (!property_exists($obj, 'false')) {
-            throw new Exception("Missing required property");
+    public function getInterface(): InterfaceClass {
+        if (Obj3::validateInterface($this->interface))  {
+            return $this->interface;
         }
-        return new Obj2False(
-         Obj2False::fromFalse($obj->{'false'})
-        );
+        throw new Exception('never get to getInterface Obj3::interface');
     }
 
     /**
-     * @return Obj2False
+     * @return InterfaceClass
      */
-    public static function sample(): Obj2False {
-        return new Obj2False(
-         Obj2False::sampleFalse()
-        );
-    }
-}
-
-// This is an autogenerated file:Obj3
-
-class Obj3 {
-    private int $dummy; // json:dummy Required
-    private Is $is; // json:is Required
-    private ISODateTimeOffsetConverter $isoDateTimeOffsetConverter; // json:IsoDateTimeOffsetConverter Required
-    private IterableClass $iterable; // json:iterable Required
-    private Jdec $jdec; // json:jdec Required
-    private Jenc $jenc; // json:jenc Required
-    private Jpipe $jpipe; // json:jpipe Required
-    private JSON $json; // json:json Required
-    private JSONAny $jsonAny; // json:JSONAny Required
-    private JSONCodingKey $jsonCodingKey; // json:JSONCodingKey Required
-    private JSONConverter $jsonConverter; // json:json_converter Required
-    private JSONDecoder $jsonDecoder; // json:JSONDecoder Required
-    private JSONEncoder $jsonEncoder; // json:JSONEncoder Required
-    private JSONExceptionClass $jsonException; // json:JsonException Required
-    private JSONGenerator $jsonGenerator; // json:JsonGenerator Required
-    private JSONNode $jsonNode; // json:JsonNode Required
-    private JSONNull $jsonNull; // json:JSONNull Required
-    private JSONParser $jsonParser; // json:JsonParser Required
-    private JSONReader $jsonReader; // json:JsonReader Required
-    private JSONSerializer $jsonSerializer; // json:json_serializer Required
-    private JSONToken $jsonToken; // json:json_token Required
-    private JSONTokenType $jsonTokenType; // json:JsonTokenType Required
-    private JSONWriter $jsonWriter; // json:json_writer Required
-    private Lambda $lambda; // json:lambda Required
-    private Lazy $lazy; // json:lazy Required
-    private Left $left; // json:left Required
-    private Let $let; // json:let Required
-    private ListClass $list; // json:list Required
-    private Lock $lock; // json:lock Required
-    private Long $long; // json:long Required
-    private Map $map; // json:map Required
-    private MetadataPropertyHandling $metadataPropertyHandling; // json:metadata_property_handling Required
-    private Module $module; // json:module Required
-    private Mutable $mutable; // json:mutable Required
-    private Mutating $mutating; // json:mutating Required
-    private NamespaceClass $namespace; // json:namespace Required
-    private Native $native; // json:native Required
-    private NewClass $new; // json:new Required
-    private Newtonsoft $newtonsoft; // json:newtonsoft Required
-    private Nil $nil; // json:nil Required
-    private No $no; // json:NO Required
-    private NoSuchMethod $noSuchMethod; // json:noSuchMethod Required
-    private Noexcept $noexcept; // json:noexcept Required
-    private Nonatomic $nonatomic; // json:nonatomic Required
-    private None $none; // json:None Required
-    private Nonlocal $nonlocal; // json:nonlocal Required
-    private Nonmutating $nonmutating; // json:nonmutating Required
-    private Not $not; // json:not Required
-    private NotEq $notEq; // json:not_eq Required
-    private NSError $nsError; // json:NSError Required
-    private NSString $nsString; // json:NSString Required
-    private NULLClass $null; // json:NULL Required
-    private Nullptr $nullptr; // json:nullptr Required
-    private Number $number; // json:number Required
-    private NoneClass $obj3None; // json:none Required
-    private Obj3Null $obj3Null; // json:null Required
-    private ProtocolClass $obj3Protocol; // json:protocol Required
-    private ObjectClass $object; // json:object Required
-    private ObjectMapper $objectMapper; // json:ObjectMapper Required
-    private Of $of; // json:of Required
-    private Oneway $oneway; // json:oneway Required
-    private Open $open; // json:open Required
-    private Operator $operator; // json:operator Required
-    private Optional $optional; // json:optional Required
-    private OrClass $or; // json:or Required
-    private OrEq $orEq; // json:or_eq Required
-    private Out $out; // json:out Required
-    private OverrideClass $override; // json:override Required
-    private Package $package; // json:package Required
-    private Params $params; // json:params Required
-    private Pass $pass; // json:pass Required
-    private Port $port; // json:port Required
-    private Postfix $postfix; // json:postfix Required
-    private Precedence $precedence; // json:precedence Required
-    private Prefix $prefix; // json:prefix Required
-    private PrintClass $print; // json:print Required
-    private PrintMembers $printMembers; // json:printMembers Required
-    private Printf $printf; // json:printf Required
-    private PrivateClass $private; // json:private Required
-    private ProtectedClass $protected; // json:protected Required
-    private Protocol $protocol; // json:Protocol Required
-    private SerializerProvider $serializerProvider; // json:SerializerProvider Required
-    private SimpleModule $simpleModule; // json:SimpleModule Required
-    private StdDeserializer $stdDeserializer; // json:StdDeserializer Required
-    private StdSerializer $stdSerializer; // json:StdSerializer Required
-
-    /**
-     * @param int $dummy
-     * @param Is $is
-     * @param ISODateTimeOffsetConverter $isoDateTimeOffsetConverter
-     * @param IterableClass $iterable
-     * @param Jdec $jdec
-     * @param Jenc $jenc
-     * @param Jpipe $jpipe
-     * @param JSON $json
-     * @param JSONAny $jsonAny
-     * @param JSONCodingKey $jsonCodingKey
-     * @param JSONConverter $jsonConverter
-     * @param JSONDecoder $jsonDecoder
-     * @param JSONEncoder $jsonEncoder
-     * @param JSONExceptionClass $jsonException
-     * @param JSONGenerator $jsonGenerator
-     * @param JSONNode $jsonNode
-     * @param JSONNull $jsonNull
-     * @param JSONParser $jsonParser
-     * @param JSONReader $jsonReader
-     * @param JSONSerializer $jsonSerializer
-     * @param JSONToken $jsonToken
-     * @param JSONTokenType $jsonTokenType
-     * @param JSONWriter $jsonWriter
-     * @param Lambda $lambda
-     * @param Lazy $lazy
-     * @param Left $left
-     * @param Let $let
-     * @param ListClass $list
-     * @param Lock $lock
-     * @param Long $long
-     * @param Map $map
-     * @param MetadataPropertyHandling $metadataPropertyHandling
-     * @param Module $module
-     * @param Mutable $mutable
-     * @param Mutating $mutating
-     * @param NamespaceClass $namespace
-     * @param Native $native
-     * @param NewClass $new
-     * @param Newtonsoft $newtonsoft
-     * @param Nil $nil
-     * @param No $no
-     * @param NoSuchMethod $noSuchMethod
-     * @param Noexcept $noexcept
-     * @param Nonatomic $nonatomic
-     * @param None $none
-     * @param Nonlocal $nonlocal
-     * @param Nonmutating $nonmutating
-     * @param Not $not
-     * @param NotEq $notEq
-     * @param NSError $nsError
-     * @param NSString $nsString
-     * @param NULLClass $null
-     * @param Nullptr $nullptr
-     * @param Number $number
-     * @param NoneClass $obj3None
-     * @param Obj3Null $obj3Null
-     * @param ProtocolClass $obj3Protocol
-     * @param ObjectClass $object
-     * @param ObjectMapper $objectMapper
-     * @param Of $of
-     * @param Oneway $oneway
-     * @param Open $open
-     * @param Operator $operator
-     * @param Optional $optional
-     * @param OrClass $or
-     * @param OrEq $orEq
-     * @param Out $out
-     * @param OverrideClass $override
-     * @param Package $package
-     * @param Params $params
-     * @param Pass $pass
-     * @param Port $port
-     * @param Postfix $postfix
-     * @param Precedence $precedence
-     * @param Prefix $prefix
-     * @param PrintClass $print
-     * @param PrintMembers $printMembers
-     * @param Printf $printf
-     * @param PrivateClass $private
-     * @param ProtectedClass $protected
-     * @param Protocol $protocol
-     * @param SerializerProvider $serializerProvider
-     * @param SimpleModule $simpleModule
-     * @param StdDeserializer $stdDeserializer
-     * @param StdSerializer $stdSerializer
-     */
-    public function __construct(int $dummy, Is $is, ISODateTimeOffsetConverter $isoDateTimeOffsetConverter, IterableClass $iterable, Jdec $jdec, Jenc $jenc, Jpipe $jpipe, JSON $json, JSONAny $jsonAny, JSONCodingKey $jsonCodingKey, JSONConverter $jsonConverter, JSONDecoder $jsonDecoder, JSONEncoder $jsonEncoder, JSONExceptionClass $jsonException, JSONGenerator $jsonGenerator, JSONNode $jsonNode, JSONNull $jsonNull, JSONParser $jsonParser, JSONReader $jsonReader, JSONSerializer $jsonSerializer, JSONToken $jsonToken, JSONTokenType $jsonTokenType, JSONWriter $jsonWriter, Lambda $lambda, Lazy $lazy, Left $left, Let $let, ListClass $list, Lock $lock, Long $long, Map $map, MetadataPropertyHandling $metadataPropertyHandling, Module $module, Mutable $mutable, Mutating $mutating, NamespaceClass $namespace, Native $native, NewClass $new, Newtonsoft $newtonsoft, Nil $nil, No $no, NoSuchMethod $noSuchMethod, Noexcept $noexcept, Nonatomic $nonatomic, None $none, Nonlocal $nonlocal, Nonmutating $nonmutating, Not $not, NotEq $notEq, NSError $nsError, NSString $nsString, NULLClass $null, Nullptr $nullptr, Number $number, NoneClass $obj3None, Obj3Null $obj3Null, ProtocolClass $obj3Protocol, ObjectClass $object, ObjectMapper $objectMapper, Of $of, Oneway $oneway, Open $open, Operator $operator, Optional $optional, OrClass $or, OrEq $orEq, Out $out, OverrideClass $override, Package $package, Params $params, Pass $pass, Port $port, Postfix $postfix, Precedence $precedence, Prefix $prefix, PrintClass $print, PrintMembers $printMembers, Printf $printf, PrivateClass $private, ProtectedClass $protected, Protocol $protocol, SerializerProvider $serializerProvider, SimpleModule $simpleModule, StdDeserializer $stdDeserializer, StdSerializer $stdSerializer) {
-        $this->dummy = $dummy;
-        $this->is = $is;
-        $this->isoDateTimeOffsetConverter = $isoDateTimeOffsetConverter;
-        $this->iterable = $iterable;
-        $this->jdec = $jdec;
-        $this->jenc = $jenc;
-        $this->jpipe = $jpipe;
-        $this->json = $json;
-        $this->jsonAny = $jsonAny;
-        $this->jsonCodingKey = $jsonCodingKey;
-        $this->jsonConverter = $jsonConverter;
-        $this->jsonDecoder = $jsonDecoder;
-        $this->jsonEncoder = $jsonEncoder;
-        $this->jsonException = $jsonException;
-        $this->jsonGenerator = $jsonGenerator;
-        $this->jsonNode = $jsonNode;
-        $this->jsonNull = $jsonNull;
-        $this->jsonParser = $jsonParser;
-        $this->jsonReader = $jsonReader;
-        $this->jsonSerializer = $jsonSerializer;
-        $this->jsonToken = $jsonToken;
-        $this->jsonTokenType = $jsonTokenType;
-        $this->jsonWriter = $jsonWriter;
-        $this->lambda = $lambda;
-        $this->lazy = $lazy;
-        $this->left = $left;
-        $this->let = $let;
-        $this->list = $list;
-        $this->lock = $lock;
-        $this->long = $long;
-        $this->map = $map;
-        $this->metadataPropertyHandling = $metadataPropertyHandling;
-        $this->module = $module;
-        $this->mutable = $mutable;
-        $this->mutating = $mutating;
-        $this->namespace = $namespace;
-        $this->native = $native;
-        $this->new = $new;
-        $this->newtonsoft = $newtonsoft;
-        $this->nil = $nil;
-        $this->no = $no;
-        $this->noSuchMethod = $noSuchMethod;
-        $this->noexcept = $noexcept;
-        $this->nonatomic = $nonatomic;
-        $this->none = $none;
-        $this->nonlocal = $nonlocal;
-        $this->nonmutating = $nonmutating;
-        $this->not = $not;
-        $this->notEq = $notEq;
-        $this->nsError = $nsError;
-        $this->nsString = $nsString;
-        $this->null = $null;
-        $this->nullptr = $nullptr;
-        $this->number = $number;
-        $this->obj3None = $obj3None;
-        $this->obj3Null = $obj3Null;
-        $this->obj3Protocol = $obj3Protocol;
-        $this->object = $object;
-        $this->objectMapper = $objectMapper;
-        $this->of = $of;
-        $this->oneway = $oneway;
-        $this->open = $open;
-        $this->operator = $operator;
-        $this->optional = $optional;
-        $this->or = $or;
-        $this->orEq = $orEq;
-        $this->out = $out;
-        $this->override = $override;
-        $this->package = $package;
-        $this->params = $params;
-        $this->pass = $pass;
-        $this->port = $port;
-        $this->postfix = $postfix;
-        $this->precedence = $precedence;
-        $this->prefix = $prefix;
-        $this->print = $print;
-        $this->printMembers = $printMembers;
-        $this->printf = $printf;
-        $this->private = $private;
-        $this->protected = $protected;
-        $this->protocol = $protocol;
-        $this->serializerProvider = $serializerProvider;
-        $this->simpleModule = $simpleModule;
-        $this->stdDeserializer = $stdDeserializer;
-        $this->stdSerializer = $stdSerializer;
+    public static function sampleInterface(): InterfaceClass {
+        return InterfaceClass::sample(); /*41:interface*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Internal
      */
-    public static function fromDummy(int $value): int {
-        return $value; /*int*/
+    public static function fromInternal(stdClass $value): Internal {
+        return Internal::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toDummy(): int {
-        if (Obj3::validateDummy($this->dummy))  {
-            return $this->dummy; /*int*/
+    public function toInternal(): stdClass {
+        if (Obj3::validateInternal($this->internal))  {
+            return $this->internal->to(); /*class*/
         }
-        throw new Exception('never get to this Obj3::dummy');
+        throw new Exception('never get to this Obj3::internal');
     }
 
     /**
-     * @param int
+     * @param Internal
      * @return bool
      * @throws Exception
      */
-    public static function validateDummy(int $value): bool {
+    public static function validateInternal(Internal $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Internal
      */
-    public function getDummy(): int {
-        if (Obj3::validateDummy($this->dummy))  {
-            return $this->dummy;
+    public function getInternal(): Internal {
+        if (Obj3::validateInternal($this->internal))  {
+            return $this->internal;
         }
-        throw new Exception('never get to getDummy Obj3::dummy');
+        throw new Exception('never get to getInternal Obj3::internal');
     }
 
     /**
-     * @return int
+     * @return Internal
      */
-    public static function sampleDummy(): int {
-        return 31; /*31:dummy*/
+    public static function sampleInternal(): Internal {
+        return Internal::sample(); /*42:internal*/
     }
 
     /**
@@ -23119,7 +21838,7 @@ class Obj3 {
      * @return Is
      */
     public static function sampleIs(): Is {
-        return Is::sample(); /*32:is*/
+        return Is::sample(); /*43:is*/
     }
 
     /**
@@ -23167,7 +21886,7 @@ class Obj3 {
      * @return ISODateTimeOffsetConverter
      */
     public static function sampleISODateTimeOffsetConverter(): ISODateTimeOffsetConverter {
-        return ISODateTimeOffsetConverter::sample(); /*33:isoDateTimeOffsetConverter*/
+        return ISODateTimeOffsetConverter::sample(); /*44:isoDateTimeOffsetConverter*/
     }
 
     /**
@@ -23215,7 +21934,7 @@ class Obj3 {
      * @return IterableClass
      */
     public static function sampleIterable(): IterableClass {
-        return IterableClass::sample(); /*34:iterable*/
+        return IterableClass::sample(); /*45:iterable*/
     }
 
     /**
@@ -23263,7 +21982,7 @@ class Obj3 {
      * @return Jdec
      */
     public static function sampleJdec(): Jdec {
-        return Jdec::sample(); /*35:jdec*/
+        return Jdec::sample(); /*46:jdec*/
     }
 
     /**
@@ -23311,7 +22030,7 @@ class Obj3 {
      * @return Jenc
      */
     public static function sampleJenc(): Jenc {
-        return Jenc::sample(); /*36:jenc*/
+        return Jenc::sample(); /*47:jenc*/
     }
 
     /**
@@ -23359,7 +22078,7 @@ class Obj3 {
      * @return Jpipe
      */
     public static function sampleJpipe(): Jpipe {
-        return Jpipe::sample(); /*37:jpipe*/
+        return Jpipe::sample(); /*48:jpipe*/
     }
 
     /**
@@ -23407,7 +22126,7 @@ class Obj3 {
      * @return JSON
      */
     public static function sampleJSON(): JSON {
-        return JSON::sample(); /*38:json*/
+        return JSON::sample(); /*49:json*/
     }
 
     /**
@@ -23455,7 +22174,7 @@ class Obj3 {
      * @return JSONAny
      */
     public static function sampleJSONAny(): JSONAny {
-        return JSONAny::sample(); /*39:jsonAny*/
+        return JSONAny::sample(); /*50:jsonAny*/
     }
 
     /**
@@ -23503,7 +22222,7 @@ class Obj3 {
      * @return JSONCodingKey
      */
     public static function sampleJSONCodingKey(): JSONCodingKey {
-        return JSONCodingKey::sample(); /*40:jsonCodingKey*/
+        return JSONCodingKey::sample(); /*51:jsonCodingKey*/
     }
 
     /**
@@ -23551,7 +22270,7 @@ class Obj3 {
      * @return JSONConverter
      */
     public static function sampleJSONConverter(): JSONConverter {
-        return JSONConverter::sample(); /*41:jsonConverter*/
+        return JSONConverter::sample(); /*52:jsonConverter*/
     }
 
     /**
@@ -23599,7 +22318,7 @@ class Obj3 {
      * @return JSONDecoder
      */
     public static function sampleJSONDecoder(): JSONDecoder {
-        return JSONDecoder::sample(); /*42:jsonDecoder*/
+        return JSONDecoder::sample(); /*53:jsonDecoder*/
     }
 
     /**
@@ -23647,7 +22366,7 @@ class Obj3 {
      * @return JSONEncoder
      */
     public static function sampleJSONEncoder(): JSONEncoder {
-        return JSONEncoder::sample(); /*43:jsonEncoder*/
+        return JSONEncoder::sample(); /*54:jsonEncoder*/
     }
 
     /**
@@ -23695,7 +22414,7 @@ class Obj3 {
      * @return JSONExceptionClass
      */
     public static function sampleJSONException(): JSONExceptionClass {
-        return JSONExceptionClass::sample(); /*44:jsonException*/
+        return JSONExceptionClass::sample(); /*55:jsonException*/
     }
 
     /**
@@ -23743,7 +22462,7 @@ class Obj3 {
      * @return JSONGenerator
      */
     public static function sampleJSONGenerator(): JSONGenerator {
-        return JSONGenerator::sample(); /*45:jsonGenerator*/
+        return JSONGenerator::sample(); /*56:jsonGenerator*/
     }
 
     /**
@@ -23791,7 +22510,7 @@ class Obj3 {
      * @return JSONNode
      */
     public static function sampleJSONNode(): JSONNode {
-        return JSONNode::sample(); /*46:jsonNode*/
+        return JSONNode::sample(); /*57:jsonNode*/
     }
 
     /**
@@ -23839,7 +22558,7 @@ class Obj3 {
      * @return JSONNull
      */
     public static function sampleJSONNull(): JSONNull {
-        return JSONNull::sample(); /*47:jsonNull*/
+        return JSONNull::sample(); /*58:jsonNull*/
     }
 
     /**
@@ -23887,7 +22606,7 @@ class Obj3 {
      * @return JSONParser
      */
     public static function sampleJSONParser(): JSONParser {
-        return JSONParser::sample(); /*48:jsonParser*/
+        return JSONParser::sample(); /*59:jsonParser*/
     }
 
     /**
@@ -23935,7 +22654,7 @@ class Obj3 {
      * @return JSONReader
      */
     public static function sampleJSONReader(): JSONReader {
-        return JSONReader::sample(); /*49:jsonReader*/
+        return JSONReader::sample(); /*60:jsonReader*/
     }
 
     /**
@@ -23983,7 +22702,7 @@ class Obj3 {
      * @return JSONSerializer
      */
     public static function sampleJSONSerializer(): JSONSerializer {
-        return JSONSerializer::sample(); /*50:jsonSerializer*/
+        return JSONSerializer::sample(); /*61:jsonSerializer*/
     }
 
     /**
@@ -24031,7 +22750,7 @@ class Obj3 {
      * @return JSONToken
      */
     public static function sampleJSONToken(): JSONToken {
-        return JSONToken::sample(); /*51:jsonToken*/
+        return JSONToken::sample(); /*62:jsonToken*/
     }
 
     /**
@@ -24079,7 +22798,7 @@ class Obj3 {
      * @return JSONTokenType
      */
     public static function sampleJSONTokenType(): JSONTokenType {
-        return JSONTokenType::sample(); /*52:jsonTokenType*/
+        return JSONTokenType::sample(); /*63:jsonTokenType*/
     }
 
     /**
@@ -24127,7 +22846,7 @@ class Obj3 {
      * @return JSONWriter
      */
     public static function sampleJSONWriter(): JSONWriter {
-        return JSONWriter::sample(); /*53:jsonWriter*/
+        return JSONWriter::sample(); /*64:jsonWriter*/
     }
 
     /**
@@ -24175,7 +22894,7 @@ class Obj3 {
      * @return Lambda
      */
     public static function sampleLambda(): Lambda {
-        return Lambda::sample(); /*54:lambda*/
+        return Lambda::sample(); /*65:lambda*/
     }
 
     /**
@@ -24223,7 +22942,7 @@ class Obj3 {
      * @return Lazy
      */
     public static function sampleLazy(): Lazy {
-        return Lazy::sample(); /*55:lazy*/
+        return Lazy::sample(); /*66:lazy*/
     }
 
     /**
@@ -24271,7 +22990,7 @@ class Obj3 {
      * @return Left
      */
     public static function sampleLeft(): Left {
-        return Left::sample(); /*56:left*/
+        return Left::sample(); /*67:left*/
     }
 
     /**
@@ -24319,7 +23038,7 @@ class Obj3 {
      * @return Let
      */
     public static function sampleLet(): Let {
-        return Let::sample(); /*57:let*/
+        return Let::sample(); /*68:let*/
     }
 
     /**
@@ -24367,7 +23086,7 @@ class Obj3 {
      * @return ListClass
      */
     public static function sampleList(): ListClass {
-        return ListClass::sample(); /*58:list*/
+        return ListClass::sample(); /*69:list*/
     }
 
     /**
@@ -24415,7 +23134,7 @@ class Obj3 {
      * @return Lock
      */
     public static function sampleLock(): Lock {
-        return Lock::sample(); /*59:lock*/
+        return Lock::sample(); /*70:lock*/
     }
 
     /**
@@ -24463,7 +23182,7 @@ class Obj3 {
      * @return Long
      */
     public static function sampleLong(): Long {
-        return Long::sample(); /*60:long*/
+        return Long::sample(); /*71:long*/
     }
 
     /**
@@ -24511,7 +23230,7 @@ class Obj3 {
      * @return Map
      */
     public static function sampleMap(): Map {
-        return Map::sample(); /*61:map*/
+        return Map::sample(); /*72:map*/
     }
 
     /**
@@ -24559,7 +23278,7 @@ class Obj3 {
      * @return MetadataPropertyHandling
      */
     public static function sampleMetadataPropertyHandling(): MetadataPropertyHandling {
-        return MetadataPropertyHandling::sample(); /*62:metadataPropertyHandling*/
+        return MetadataPropertyHandling::sample(); /*73:metadataPropertyHandling*/
     }
 
     /**
@@ -24607,7 +23326,7 @@ class Obj3 {
      * @return Module
      */
     public static function sampleModule(): Module {
-        return Module::sample(); /*63:module*/
+        return Module::sample(); /*74:module*/
     }
 
     /**
@@ -24655,7 +23374,7 @@ class Obj3 {
      * @return Mutable
      */
     public static function sampleMutable(): Mutable {
-        return Mutable::sample(); /*64:mutable*/
+        return Mutable::sample(); /*75:mutable*/
     }
 
     /**
@@ -24703,7 +23422,7 @@ class Obj3 {
      * @return Mutating
      */
     public static function sampleMutating(): Mutating {
-        return Mutating::sample(); /*65:mutating*/
+        return Mutating::sample(); /*76:mutating*/
     }
 
     /**
@@ -24751,7 +23470,7 @@ class Obj3 {
      * @return NamespaceClass
      */
     public static function sampleNamespace(): NamespaceClass {
-        return NamespaceClass::sample(); /*66:namespace*/
+        return NamespaceClass::sample(); /*77:namespace*/
     }
 
     /**
@@ -24799,7 +23518,7 @@ class Obj3 {
      * @return Native
      */
     public static function sampleNative(): Native {
-        return Native::sample(); /*67:native*/
+        return Native::sample(); /*78:native*/
     }
 
     /**
@@ -24847,7 +23566,7 @@ class Obj3 {
      * @return NewClass
      */
     public static function sampleNew(): NewClass {
-        return NewClass::sample(); /*68:new*/
+        return NewClass::sample(); /*79:new*/
     }
 
     /**
@@ -24895,7 +23614,7 @@ class Obj3 {
      * @return Newtonsoft
      */
     public static function sampleNewtonsoft(): Newtonsoft {
-        return Newtonsoft::sample(); /*69:newtonsoft*/
+        return Newtonsoft::sample(); /*80:newtonsoft*/
     }
 
     /**
@@ -24943,7 +23662,7 @@ class Obj3 {
      * @return Nil
      */
     public static function sampleNil(): Nil {
-        return Nil::sample(); /*70:nil*/
+        return Nil::sample(); /*81:nil*/
     }
 
     /**
@@ -24991,7 +23710,7 @@ class Obj3 {
      * @return No
      */
     public static function sampleNo(): No {
-        return No::sample(); /*71:no*/
+        return No::sample(); /*82:no*/
     }
 
     /**
@@ -25039,7 +23758,7 @@ class Obj3 {
      * @return NoSuchMethod
      */
     public static function sampleNoSuchMethod(): NoSuchMethod {
-        return NoSuchMethod::sample(); /*72:noSuchMethod*/
+        return NoSuchMethod::sample(); /*83:noSuchMethod*/
     }
 
     /**
@@ -25087,7 +23806,7 @@ class Obj3 {
      * @return Noexcept
      */
     public static function sampleNoexcept(): Noexcept {
-        return Noexcept::sample(); /*73:noexcept*/
+        return Noexcept::sample(); /*84:noexcept*/
     }
 
     /**
@@ -25135,7 +23854,7 @@ class Obj3 {
      * @return Nonatomic
      */
     public static function sampleNonatomic(): Nonatomic {
-        return Nonatomic::sample(); /*74:nonatomic*/
+        return Nonatomic::sample(); /*85:nonatomic*/
     }
 
     /**
@@ -25183,7 +23902,7 @@ class Obj3 {
      * @return None
      */
     public static function sampleNone(): None {
-        return None::sample(); /*75:none*/
+        return None::sample(); /*86:none*/
     }
 
     /**
@@ -25231,7 +23950,7 @@ class Obj3 {
      * @return Nonlocal
      */
     public static function sampleNonlocal(): Nonlocal {
-        return Nonlocal::sample(); /*76:nonlocal*/
+        return Nonlocal::sample(); /*87:nonlocal*/
     }
 
     /**
@@ -25279,7 +23998,7 @@ class Obj3 {
      * @return Nonmutating
      */
     public static function sampleNonmutating(): Nonmutating {
-        return Nonmutating::sample(); /*77:nonmutating*/
+        return Nonmutating::sample(); /*88:nonmutating*/
     }
 
     /**
@@ -25327,7 +24046,7 @@ class Obj3 {
      * @return Not
      */
     public static function sampleNot(): Not {
-        return Not::sample(); /*78:not*/
+        return Not::sample(); /*89:not*/
     }
 
     /**
@@ -25375,7 +24094,7 @@ class Obj3 {
      * @return NotEq
      */
     public static function sampleNotEq(): NotEq {
-        return NotEq::sample(); /*79:notEq*/
+        return NotEq::sample(); /*90:notEq*/
     }
 
     /**
@@ -25423,7 +24142,7 @@ class Obj3 {
      * @return NSError
      */
     public static function sampleNSError(): NSError {
-        return NSError::sample(); /*80:nsError*/
+        return NSError::sample(); /*91:nsError*/
     }
 
     /**
@@ -25471,7 +24190,7 @@ class Obj3 {
      * @return NSString
      */
     public static function sampleNSString(): NSString {
-        return NSString::sample(); /*81:nsString*/
+        return NSString::sample(); /*92:nsString*/
     }
 
     /**
@@ -25519,103 +24238,7 @@ class Obj3 {
      * @return NULLClass
      */
     public static function sampleNull(): NULLClass {
-        return NULLClass::sample(); /*82:null*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Nullptr
-     */
-    public static function fromNullptr(stdClass $value): Nullptr {
-        return Nullptr::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toNullptr(): stdClass {
-        if (Obj3::validateNullptr($this->nullptr))  {
-            return $this->nullptr->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::nullptr');
-    }
-
-    /**
-     * @param Nullptr
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateNullptr(Nullptr $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Nullptr
-     */
-    public function getNullptr(): Nullptr {
-        if (Obj3::validateNullptr($this->nullptr))  {
-            return $this->nullptr;
-        }
-        throw new Exception('never get to getNullptr Obj3::nullptr');
-    }
-
-    /**
-     * @return Nullptr
-     */
-    public static function sampleNullptr(): Nullptr {
-        return Nullptr::sample(); /*83:nullptr*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Number
-     */
-    public static function fromNumber(stdClass $value): Number {
-        return Number::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toNumber(): stdClass {
-        if (Obj3::validateNumber($this->number))  {
-            return $this->number->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::number');
-    }
-
-    /**
-     * @param Number
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateNumber(Number $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Number
-     */
-    public function getNumber(): Number {
-        if (Obj3::validateNumber($this->number))  {
-            return $this->number;
-        }
-        throw new Exception('never get to getNumber Obj3::number');
-    }
-
-    /**
-     * @return Number
-     */
-    public static function sampleNumber(): Number {
-        return Number::sample(); /*84:number*/
+        return NULLClass::sample(); /*93:null*/
     }
 
     /**
@@ -25663,7 +24286,7 @@ class Obj3 {
      * @return NoneClass
      */
     public static function sampleObj3None(): NoneClass {
-        return NoneClass::sample(); /*85:obj3None*/
+        return NoneClass::sample(); /*94:obj3None*/
     }
 
     /**
@@ -25711,1399 +24334,1768 @@ class Obj3 {
      * @return Obj3Null
      */
     public static function sampleObj3Null(): Obj3Null {
-        return Obj3Null::sample(); /*86:obj3Null*/
+        return Obj3Null::sample(); /*95:obj3Null*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return ProtocolClass
+     * @return bool
      */
-    public static function fromObj3Protocol(stdClass $value): ProtocolClass {
-        return ProtocolClass::from($value); /*class*/
+    public function validate(): bool {
+        return Obj3::validateDummy($this->dummy)
+        || Obj3::validateImport($this->import)
+        || Obj3::validateIn($this->in)
+        || Obj3::validateIndirect($this->indirect)
+        || Obj3::validateInfix($this->infix)
+        || Obj3::validateInit($this->init)
+        || Obj3::validateInline($this->inline)
+        || Obj3::validateInout($this->inout)
+        || Obj3::validateInstanceof($this->instanceof)
+        || Obj3::validateInt($this->int)
+        || Obj3::validateInterface($this->interface)
+        || Obj3::validateInternal($this->internal)
+        || Obj3::validateIs($this->is)
+        || Obj3::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter)
+        || Obj3::validateIterable($this->iterable)
+        || Obj3::validateJdec($this->jdec)
+        || Obj3::validateJenc($this->jenc)
+        || Obj3::validateJpipe($this->jpipe)
+        || Obj3::validateJSON($this->json)
+        || Obj3::validateJSONAny($this->jsonAny)
+        || Obj3::validateJSONCodingKey($this->jsonCodingKey)
+        || Obj3::validateJSONConverter($this->jsonConverter)
+        || Obj3::validateJSONDecoder($this->jsonDecoder)
+        || Obj3::validateJSONEncoder($this->jsonEncoder)
+        || Obj3::validateJSONException($this->jsonException)
+        || Obj3::validateJSONGenerator($this->jsonGenerator)
+        || Obj3::validateJSONNode($this->jsonNode)
+        || Obj3::validateJSONNull($this->jsonNull)
+        || Obj3::validateJSONParser($this->jsonParser)
+        || Obj3::validateJSONReader($this->jsonReader)
+        || Obj3::validateJSONSerializer($this->jsonSerializer)
+        || Obj3::validateJSONToken($this->jsonToken)
+        || Obj3::validateJSONTokenType($this->jsonTokenType)
+        || Obj3::validateJSONWriter($this->jsonWriter)
+        || Obj3::validateLambda($this->lambda)
+        || Obj3::validateLazy($this->lazy)
+        || Obj3::validateLeft($this->left)
+        || Obj3::validateLet($this->let)
+        || Obj3::validateList($this->list)
+        || Obj3::validateLock($this->lock)
+        || Obj3::validateLong($this->long)
+        || Obj3::validateMap($this->map)
+        || Obj3::validateMetadataPropertyHandling($this->metadataPropertyHandling)
+        || Obj3::validateModule($this->module)
+        || Obj3::validateMutable($this->mutable)
+        || Obj3::validateMutating($this->mutating)
+        || Obj3::validateNamespace($this->namespace)
+        || Obj3::validateNative($this->native)
+        || Obj3::validateNew($this->new)
+        || Obj3::validateNewtonsoft($this->newtonsoft)
+        || Obj3::validateNil($this->nil)
+        || Obj3::validateNo($this->no)
+        || Obj3::validateNoSuchMethod($this->noSuchMethod)
+        || Obj3::validateNoexcept($this->noexcept)
+        || Obj3::validateNonatomic($this->nonatomic)
+        || Obj3::validateNone($this->none)
+        || Obj3::validateNonlocal($this->nonlocal)
+        || Obj3::validateNonmutating($this->nonmutating)
+        || Obj3::validateNot($this->not)
+        || Obj3::validateNotEq($this->notEq)
+        || Obj3::validateNSError($this->nsError)
+        || Obj3::validateNSString($this->nsString)
+        || Obj3::validateNull($this->null)
+        || Obj3::validateObj3None($this->obj3None)
+        || Obj3::validateObj3Null($this->obj3Null);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
-     */
-    public function toObj3Protocol(): stdClass {
-        if (Obj3::validateObj3Protocol($this->obj3Protocol))  {
-            return $this->obj3Protocol->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::obj3Protocol');
-    }
-
-    /**
-     * @param ProtocolClass
-     * @return bool
      * @throws Exception
      */
-    public static function validateObj3Protocol(ProtocolClass $value): bool {
-        $value->validate();
-        return true;
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'dummy'} = $this->toDummy();
+        $out->{'import'} = $this->toImport();
+        $out->{'in'} = $this->toIn();
+        $out->{'indirect'} = $this->toIndirect();
+        $out->{'infix'} = $this->toInfix();
+        $out->{'init'} = $this->toInit();
+        $out->{'inline'} = $this->toInline();
+        $out->{'inout'} = $this->toInout();
+        $out->{'instanceof'} = $this->toInstanceof();
+        $out->{'int'} = $this->toInt();
+        $out->{'interface'} = $this->toInterface();
+        $out->{'internal'} = $this->toInternal();
+        $out->{'is'} = $this->toIs();
+        $out->{'IsoDateTimeOffsetConverter'} = $this->toISODateTimeOffsetConverter();
+        $out->{'iterable'} = $this->toIterable();
+        $out->{'jdec'} = $this->toJdec();
+        $out->{'jenc'} = $this->toJenc();
+        $out->{'jpipe'} = $this->toJpipe();
+        $out->{'json'} = $this->toJSON();
+        $out->{'JSONAny'} = $this->toJSONAny();
+        $out->{'JSONCodingKey'} = $this->toJSONCodingKey();
+        $out->{'json_converter'} = $this->toJSONConverter();
+        $out->{'JSONDecoder'} = $this->toJSONDecoder();
+        $out->{'JSONEncoder'} = $this->toJSONEncoder();
+        $out->{'JsonException'} = $this->toJSONException();
+        $out->{'JsonGenerator'} = $this->toJSONGenerator();
+        $out->{'JsonNode'} = $this->toJSONNode();
+        $out->{'JSONNull'} = $this->toJSONNull();
+        $out->{'JsonParser'} = $this->toJSONParser();
+        $out->{'JsonReader'} = $this->toJSONReader();
+        $out->{'json_serializer'} = $this->toJSONSerializer();
+        $out->{'json_token'} = $this->toJSONToken();
+        $out->{'JsonTokenType'} = $this->toJSONTokenType();
+        $out->{'json_writer'} = $this->toJSONWriter();
+        $out->{'lambda'} = $this->toLambda();
+        $out->{'lazy'} = $this->toLazy();
+        $out->{'left'} = $this->toLeft();
+        $out->{'let'} = $this->toLet();
+        $out->{'list'} = $this->toList();
+        $out->{'lock'} = $this->toLock();
+        $out->{'long'} = $this->toLong();
+        $out->{'map'} = $this->toMap();
+        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
+        $out->{'module'} = $this->toModule();
+        $out->{'mutable'} = $this->toMutable();
+        $out->{'mutating'} = $this->toMutating();
+        $out->{'namespace'} = $this->toNamespace();
+        $out->{'native'} = $this->toNative();
+        $out->{'new'} = $this->toNew();
+        $out->{'newtonsoft'} = $this->toNewtonsoft();
+        $out->{'nil'} = $this->toNil();
+        $out->{'NO'} = $this->toNo();
+        $out->{'noSuchMethod'} = $this->toNoSuchMethod();
+        $out->{'noexcept'} = $this->toNoexcept();
+        $out->{'nonatomic'} = $this->toNonatomic();
+        $out->{'None'} = $this->toNone();
+        $out->{'nonlocal'} = $this->toNonlocal();
+        $out->{'nonmutating'} = $this->toNonmutating();
+        $out->{'not'} = $this->toNot();
+        $out->{'not_eq'} = $this->toNotEq();
+        $out->{'NSError'} = $this->toNSError();
+        $out->{'NSString'} = $this->toNSString();
+        $out->{'NULL'} = $this->toNull();
+        $out->{'none'} = $this->toObj3None();
+        $out->{'null'} = $this->toObj3Null();
+        return $out;
     }
 
     /**
+     * @param stdClass $obj
+     * @return Obj3
      * @throws Exception
-     * @return ProtocolClass
      */
-    public function getObj3Protocol(): ProtocolClass {
-        if (Obj3::validateObj3Protocol($this->obj3Protocol))  {
-            return $this->obj3Protocol;
+    public static function from(stdClass $obj): Obj3 {
+        if (!property_exists($obj, 'dummy')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getObj3Protocol Obj3::obj3Protocol');
-    }
-
-    /**
-     * @return ProtocolClass
-     */
-    public static function sampleObj3Protocol(): ProtocolClass {
-        return ProtocolClass::sample(); /*87:obj3Protocol*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return ObjectClass
-     */
-    public static function fromObject(stdClass $value): ObjectClass {
-        return ObjectClass::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toObject(): stdClass {
-        if (Obj3::validateObject($this->object))  {
-            return $this->object->to(); /*class*/
+        if (!property_exists($obj, 'import')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::object');
-    }
-
-    /**
-     * @param ObjectClass
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateObject(ObjectClass $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return ObjectClass
-     */
-    public function getObject(): ObjectClass {
-        if (Obj3::validateObject($this->object))  {
-            return $this->object;
+        if (!property_exists($obj, 'in')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getObject Obj3::object');
-    }
-
-    /**
-     * @return ObjectClass
-     */
-    public static function sampleObject(): ObjectClass {
-        return ObjectClass::sample(); /*88:object*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return ObjectMapper
-     */
-    public static function fromObjectMapper(stdClass $value): ObjectMapper {
-        return ObjectMapper::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toObjectMapper(): stdClass {
-        if (Obj3::validateObjectMapper($this->objectMapper))  {
-            return $this->objectMapper->to(); /*class*/
+        if (!property_exists($obj, 'indirect')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::objectMapper');
-    }
-
-    /**
-     * @param ObjectMapper
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateObjectMapper(ObjectMapper $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return ObjectMapper
-     */
-    public function getObjectMapper(): ObjectMapper {
-        if (Obj3::validateObjectMapper($this->objectMapper))  {
-            return $this->objectMapper;
+        if (!property_exists($obj, 'infix')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getObjectMapper Obj3::objectMapper');
-    }
-
-    /**
-     * @return ObjectMapper
-     */
-    public static function sampleObjectMapper(): ObjectMapper {
-        return ObjectMapper::sample(); /*89:objectMapper*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Of
-     */
-    public static function fromOf(stdClass $value): Of {
-        return Of::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toOf(): stdClass {
-        if (Obj3::validateOf($this->of))  {
-            return $this->of->to(); /*class*/
+        if (!property_exists($obj, 'init')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::of');
-    }
-
-    /**
-     * @param Of
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateOf(Of $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Of
-     */
-    public function getOf(): Of {
-        if (Obj3::validateOf($this->of))  {
-            return $this->of;
+        if (!property_exists($obj, 'inline')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getOf Obj3::of');
-    }
-
-    /**
-     * @return Of
-     */
-    public static function sampleOf(): Of {
-        return Of::sample(); /*90:of*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Oneway
-     */
-    public static function fromOneway(stdClass $value): Oneway {
-        return Oneway::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toOneway(): stdClass {
-        if (Obj3::validateOneway($this->oneway))  {
-            return $this->oneway->to(); /*class*/
+        if (!property_exists($obj, 'inout')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::oneway');
-    }
-
-    /**
-     * @param Oneway
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateOneway(Oneway $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Oneway
-     */
-    public function getOneway(): Oneway {
-        if (Obj3::validateOneway($this->oneway))  {
-            return $this->oneway;
+        if (!property_exists($obj, 'instanceof')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getOneway Obj3::oneway');
-    }
-
-    /**
-     * @return Oneway
-     */
-    public static function sampleOneway(): Oneway {
-        return Oneway::sample(); /*91:oneway*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Open
-     */
-    public static function fromOpen(stdClass $value): Open {
-        return Open::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toOpen(): stdClass {
-        if (Obj3::validateOpen($this->open))  {
-            return $this->open->to(); /*class*/
+        if (!property_exists($obj, 'int')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::open');
-    }
-
-    /**
-     * @param Open
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateOpen(Open $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Open
-     */
-    public function getOpen(): Open {
-        if (Obj3::validateOpen($this->open))  {
-            return $this->open;
+        if (!property_exists($obj, 'interface')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getOpen Obj3::open');
-    }
-
-    /**
-     * @return Open
-     */
-    public static function sampleOpen(): Open {
-        return Open::sample(); /*92:open*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Operator
-     */
-    public static function fromOperator(stdClass $value): Operator {
-        return Operator::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toOperator(): stdClass {
-        if (Obj3::validateOperator($this->operator))  {
-            return $this->operator->to(); /*class*/
+        if (!property_exists($obj, 'internal')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::operator');
-    }
-
-    /**
-     * @param Operator
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateOperator(Operator $value): bool {
-        $value->validate();
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return Operator
-     */
-    public function getOperator(): Operator {
-        if (Obj3::validateOperator($this->operator))  {
-            return $this->operator;
+        if (!property_exists($obj, 'is')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getOperator Obj3::operator');
-    }
-
-    /**
-     * @return Operator
-     */
-    public static function sampleOperator(): Operator {
-        return Operator::sample(); /*93:operator*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Optional
-     */
-    public static function fromOptional(stdClass $value): Optional {
-        return Optional::from($value); /*class*/
-    }
-
-    /**
-     * @throws Exception
-     * @return stdClass
-     */
-    public function toOptional(): stdClass {
-        if (Obj3::validateOptional($this->optional))  {
-            return $this->optional->to(); /*class*/
+        if (!property_exists($obj, 'IsoDateTimeOffsetConverter')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'iterable')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'jdec')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'jenc')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'jpipe')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'json')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JSONAny')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JSONCodingKey')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'json_converter')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JSONDecoder')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JSONEncoder')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonException')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonGenerator')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonNode')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JSONNull')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonParser')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonReader')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'json_serializer')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'json_token')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'JsonTokenType')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'json_writer')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'lambda')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'lazy')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'left')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'let')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'list')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'lock')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'long')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'map')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'metadata_property_handling')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'module')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'mutable')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'mutating')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'namespace')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'native')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'new')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'newtonsoft')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'nil')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'NO')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'noSuchMethod')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'noexcept')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'nonatomic')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'None')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'nonlocal')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'nonmutating')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'not')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'not_eq')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'NSError')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'NSString')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'NULL')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'none')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::optional');
+        if (!property_exists($obj, 'null')) {
+            throw new Exception("Missing required property");
+        }
+        return new Obj3(
+         Obj3::fromDummy($obj->{'dummy'})
+        ,Obj3::fromImport($obj->{'import'})
+        ,Obj3::fromIn($obj->{'in'})
+        ,Obj3::fromIndirect($obj->{'indirect'})
+        ,Obj3::fromInfix($obj->{'infix'})
+        ,Obj3::fromInit($obj->{'init'})
+        ,Obj3::fromInline($obj->{'inline'})
+        ,Obj3::fromInout($obj->{'inout'})
+        ,Obj3::fromInstanceof($obj->{'instanceof'})
+        ,Obj3::fromInt($obj->{'int'})
+        ,Obj3::fromInterface($obj->{'interface'})
+        ,Obj3::fromInternal($obj->{'internal'})
+        ,Obj3::fromIs($obj->{'is'})
+        ,Obj3::fromISODateTimeOffsetConverter($obj->{'IsoDateTimeOffsetConverter'})
+        ,Obj3::fromIterable($obj->{'iterable'})
+        ,Obj3::fromJdec($obj->{'jdec'})
+        ,Obj3::fromJenc($obj->{'jenc'})
+        ,Obj3::fromJpipe($obj->{'jpipe'})
+        ,Obj3::fromJSON($obj->{'json'})
+        ,Obj3::fromJSONAny($obj->{'JSONAny'})
+        ,Obj3::fromJSONCodingKey($obj->{'JSONCodingKey'})
+        ,Obj3::fromJSONConverter($obj->{'json_converter'})
+        ,Obj3::fromJSONDecoder($obj->{'JSONDecoder'})
+        ,Obj3::fromJSONEncoder($obj->{'JSONEncoder'})
+        ,Obj3::fromJSONException($obj->{'JsonException'})
+        ,Obj3::fromJSONGenerator($obj->{'JsonGenerator'})
+        ,Obj3::fromJSONNode($obj->{'JsonNode'})
+        ,Obj3::fromJSONNull($obj->{'JSONNull'})
+        ,Obj3::fromJSONParser($obj->{'JsonParser'})
+        ,Obj3::fromJSONReader($obj->{'JsonReader'})
+        ,Obj3::fromJSONSerializer($obj->{'json_serializer'})
+        ,Obj3::fromJSONToken($obj->{'json_token'})
+        ,Obj3::fromJSONTokenType($obj->{'JsonTokenType'})
+        ,Obj3::fromJSONWriter($obj->{'json_writer'})
+        ,Obj3::fromLambda($obj->{'lambda'})
+        ,Obj3::fromLazy($obj->{'lazy'})
+        ,Obj3::fromLeft($obj->{'left'})
+        ,Obj3::fromLet($obj->{'let'})
+        ,Obj3::fromList($obj->{'list'})
+        ,Obj3::fromLock($obj->{'lock'})
+        ,Obj3::fromLong($obj->{'long'})
+        ,Obj3::fromMap($obj->{'map'})
+        ,Obj3::fromMetadataPropertyHandling($obj->{'metadata_property_handling'})
+        ,Obj3::fromModule($obj->{'module'})
+        ,Obj3::fromMutable($obj->{'mutable'})
+        ,Obj3::fromMutating($obj->{'mutating'})
+        ,Obj3::fromNamespace($obj->{'namespace'})
+        ,Obj3::fromNative($obj->{'native'})
+        ,Obj3::fromNew($obj->{'new'})
+        ,Obj3::fromNewtonsoft($obj->{'newtonsoft'})
+        ,Obj3::fromNil($obj->{'nil'})
+        ,Obj3::fromNo($obj->{'NO'})
+        ,Obj3::fromNoSuchMethod($obj->{'noSuchMethod'})
+        ,Obj3::fromNoexcept($obj->{'noexcept'})
+        ,Obj3::fromNonatomic($obj->{'nonatomic'})
+        ,Obj3::fromNone($obj->{'None'})
+        ,Obj3::fromNonlocal($obj->{'nonlocal'})
+        ,Obj3::fromNonmutating($obj->{'nonmutating'})
+        ,Obj3::fromNot($obj->{'not'})
+        ,Obj3::fromNotEq($obj->{'not_eq'})
+        ,Obj3::fromNSError($obj->{'NSError'})
+        ,Obj3::fromNSString($obj->{'NSString'})
+        ,Obj3::fromNull($obj->{'NULL'})
+        ,Obj3::fromObj3None($obj->{'none'})
+        ,Obj3::fromObj3Null($obj->{'null'})
+        );
     }
 
     /**
-     * @param Optional
-     * @return bool
-     * @throws Exception
+     * @return Obj3
      */
-    public static function validateOptional(Optional $value): bool {
-        $value->validate();
-        return true;
+    public static function sample(): Obj3 {
+        return new Obj3(
+         Obj3::sampleDummy()
+        ,Obj3::sampleImport()
+        ,Obj3::sampleIn()
+        ,Obj3::sampleIndirect()
+        ,Obj3::sampleInfix()
+        ,Obj3::sampleInit()
+        ,Obj3::sampleInline()
+        ,Obj3::sampleInout()
+        ,Obj3::sampleInstanceof()
+        ,Obj3::sampleInt()
+        ,Obj3::sampleInterface()
+        ,Obj3::sampleInternal()
+        ,Obj3::sampleIs()
+        ,Obj3::sampleISODateTimeOffsetConverter()
+        ,Obj3::sampleIterable()
+        ,Obj3::sampleJdec()
+        ,Obj3::sampleJenc()
+        ,Obj3::sampleJpipe()
+        ,Obj3::sampleJSON()
+        ,Obj3::sampleJSONAny()
+        ,Obj3::sampleJSONCodingKey()
+        ,Obj3::sampleJSONConverter()
+        ,Obj3::sampleJSONDecoder()
+        ,Obj3::sampleJSONEncoder()
+        ,Obj3::sampleJSONException()
+        ,Obj3::sampleJSONGenerator()
+        ,Obj3::sampleJSONNode()
+        ,Obj3::sampleJSONNull()
+        ,Obj3::sampleJSONParser()
+        ,Obj3::sampleJSONReader()
+        ,Obj3::sampleJSONSerializer()
+        ,Obj3::sampleJSONToken()
+        ,Obj3::sampleJSONTokenType()
+        ,Obj3::sampleJSONWriter()
+        ,Obj3::sampleLambda()
+        ,Obj3::sampleLazy()
+        ,Obj3::sampleLeft()
+        ,Obj3::sampleLet()
+        ,Obj3::sampleList()
+        ,Obj3::sampleLock()
+        ,Obj3::sampleLong()
+        ,Obj3::sampleMap()
+        ,Obj3::sampleMetadataPropertyHandling()
+        ,Obj3::sampleModule()
+        ,Obj3::sampleMutable()
+        ,Obj3::sampleMutating()
+        ,Obj3::sampleNamespace()
+        ,Obj3::sampleNative()
+        ,Obj3::sampleNew()
+        ,Obj3::sampleNewtonsoft()
+        ,Obj3::sampleNil()
+        ,Obj3::sampleNo()
+        ,Obj3::sampleNoSuchMethod()
+        ,Obj3::sampleNoexcept()
+        ,Obj3::sampleNonatomic()
+        ,Obj3::sampleNone()
+        ,Obj3::sampleNonlocal()
+        ,Obj3::sampleNonmutating()
+        ,Obj3::sampleNot()
+        ,Obj3::sampleNotEq()
+        ,Obj3::sampleNSError()
+        ,Obj3::sampleNSString()
+        ,Obj3::sampleNull()
+        ,Obj3::sampleObj3None()
+        ,Obj3::sampleObj3Null()
+        );
     }
+}
 
-    /**
-     * @throws Exception
-     * @return Optional
-     */
-    public function getOptional(): Optional {
-        if (Obj3::validateOptional($this->optional))  {
-            return $this->optional;
-        }
-        throw new Exception('never get to getOptional Obj3::optional');
-    }
+// This is an autogenerated file:Import
+
+class Import {
+    private int $import; // json:import Required
 
     /**
-     * @return Optional
+     * @param int $import
      */
-    public static function sampleOptional(): Optional {
-        return Optional::sample(); /*94:optional*/
+    public function __construct(int $import) {
+        $this->import = $import;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return OrClass
+     * @return int
      */
-    public static function fromOr(stdClass $value): OrClass {
-        return OrClass::from($value); /*class*/
+    public static function fromImport(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toOr(): stdClass {
-        if (Obj3::validateOr($this->or))  {
-            return $this->or->to(); /*class*/
+    public function toImport(): int {
+        if (Import::validateImport($this->import))  {
+            return $this->import; /*int*/
         }
-        throw new Exception('never get to this Obj3::or');
+        throw new Exception('never get to this Import::import');
     }
 
     /**
-     * @param OrClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateOr(OrClass $value): bool {
-        $value->validate();
+    public static function validateImport(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return OrClass
+     * @return int
      */
-    public function getOr(): OrClass {
-        if (Obj3::validateOr($this->or))  {
-            return $this->or;
+    public function getImport(): int {
+        if (Import::validateImport($this->import))  {
+            return $this->import;
         }
-        throw new Exception('never get to getOr Obj3::or');
+        throw new Exception('never get to getImport Import::import');
     }
 
     /**
-     * @return OrClass
+     * @return int
      */
-    public static function sampleOr(): OrClass {
-        return OrClass::sample(); /*95:or*/
+    public static function sampleImport(): int {
+        return 31; /*31:import*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return OrEq
+     * @return bool
      */
-    public static function fromOrEq(stdClass $value): OrEq {
-        return OrEq::from($value); /*class*/
+    public function validate(): bool {
+        return Import::validateImport($this->import);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toOrEq(): stdClass {
-        if (Obj3::validateOrEq($this->orEq))  {
-            return $this->orEq->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::orEq');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'import'} = $this->toImport();
+        return $out;
     }
 
     /**
-     * @param OrEq
-     * @return bool
+     * @param stdClass $obj
+     * @return Import
      * @throws Exception
      */
-    public static function validateOrEq(OrEq $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Import {
+        if (!property_exists($obj, 'import')) {
+            throw new Exception("Missing required property");
+        }
+        return new Import(
+         Import::fromImport($obj->{'import'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return OrEq
+     * @return Import
      */
-    public function getOrEq(): OrEq {
-        if (Obj3::validateOrEq($this->orEq))  {
-            return $this->orEq;
-        }
-        throw new Exception('never get to getOrEq Obj3::orEq');
+    public static function sample(): Import {
+        return new Import(
+         Import::sampleImport()
+        );
     }
+}
+
+// This is an autogenerated file:In
+
+class In {
+    private int $in; // json:in Required
 
     /**
-     * @return OrEq
+     * @param int $in
      */
-    public static function sampleOrEq(): OrEq {
-        return OrEq::sample(); /*96:orEq*/
+    public function __construct(int $in) {
+        $this->in = $in;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Out
+     * @return int
      */
-    public static function fromOut(stdClass $value): Out {
-        return Out::from($value); /*class*/
+    public static function fromIn(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toOut(): stdClass {
-        if (Obj3::validateOut($this->out))  {
-            return $this->out->to(); /*class*/
+    public function toIn(): int {
+        if (In::validateIn($this->in))  {
+            return $this->in; /*int*/
         }
-        throw new Exception('never get to this Obj3::out');
+        throw new Exception('never get to this In::in');
     }
 
     /**
-     * @param Out
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateOut(Out $value): bool {
-        $value->validate();
+    public static function validateIn(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Out
+     * @return int
      */
-    public function getOut(): Out {
-        if (Obj3::validateOut($this->out))  {
-            return $this->out;
+    public function getIn(): int {
+        if (In::validateIn($this->in))  {
+            return $this->in;
         }
-        throw new Exception('never get to getOut Obj3::out');
+        throw new Exception('never get to getIn In::in');
     }
 
     /**
-     * @return Out
+     * @return int
      */
-    public static function sampleOut(): Out {
-        return Out::sample(); /*97:out*/
+    public static function sampleIn(): int {
+        return 31; /*31:in*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return OverrideClass
+     * @return bool
      */
-    public static function fromOverride(stdClass $value): OverrideClass {
-        return OverrideClass::from($value); /*class*/
+    public function validate(): bool {
+        return In::validateIn($this->in);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toOverride(): stdClass {
-        if (Obj3::validateOverride($this->override))  {
-            return $this->override->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::override');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'in'} = $this->toIn();
+        return $out;
     }
 
     /**
-     * @param OverrideClass
-     * @return bool
+     * @param stdClass $obj
+     * @return In
      * @throws Exception
      */
-    public static function validateOverride(OverrideClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): In {
+        if (!property_exists($obj, 'in')) {
+            throw new Exception("Missing required property");
+        }
+        return new In(
+         In::fromIn($obj->{'in'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return OverrideClass
+     * @return In
      */
-    public function getOverride(): OverrideClass {
-        if (Obj3::validateOverride($this->override))  {
-            return $this->override;
-        }
-        throw new Exception('never get to getOverride Obj3::override');
+    public static function sample(): In {
+        return new In(
+         In::sampleIn()
+        );
     }
+}
+
+// This is an autogenerated file:Indirect
+
+class Indirect {
+    private int $indirect; // json:indirect Required
 
     /**
-     * @return OverrideClass
+     * @param int $indirect
      */
-    public static function sampleOverride(): OverrideClass {
-        return OverrideClass::sample(); /*98:override*/
+    public function __construct(int $indirect) {
+        $this->indirect = $indirect;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Package
+     * @return int
      */
-    public static function fromPackage(stdClass $value): Package {
-        return Package::from($value); /*class*/
+    public static function fromIndirect(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPackage(): stdClass {
-        if (Obj3::validatePackage($this->package))  {
-            return $this->package->to(); /*class*/
+    public function toIndirect(): int {
+        if (Indirect::validateIndirect($this->indirect))  {
+            return $this->indirect; /*int*/
         }
-        throw new Exception('never get to this Obj3::package');
+        throw new Exception('never get to this Indirect::indirect');
     }
 
     /**
-     * @param Package
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePackage(Package $value): bool {
-        $value->validate();
+    public static function validateIndirect(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Package
+     * @return int
      */
-    public function getPackage(): Package {
-        if (Obj3::validatePackage($this->package))  {
-            return $this->package;
+    public function getIndirect(): int {
+        if (Indirect::validateIndirect($this->indirect))  {
+            return $this->indirect;
         }
-        throw new Exception('never get to getPackage Obj3::package');
+        throw new Exception('never get to getIndirect Indirect::indirect');
     }
 
     /**
-     * @return Package
+     * @return int
      */
-    public static function samplePackage(): Package {
-        return Package::sample(); /*99:package*/
+    public static function sampleIndirect(): int {
+        return 31; /*31:indirect*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Params
+     * @return bool
      */
-    public static function fromParams(stdClass $value): Params {
-        return Params::from($value); /*class*/
+    public function validate(): bool {
+        return Indirect::validateIndirect($this->indirect);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toParams(): stdClass {
-        if (Obj3::validateParams($this->params))  {
-            return $this->params->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::params');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'indirect'} = $this->toIndirect();
+        return $out;
     }
 
     /**
-     * @param Params
-     * @return bool
+     * @param stdClass $obj
+     * @return Indirect
      * @throws Exception
      */
-    public static function validateParams(Params $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Indirect {
+        if (!property_exists($obj, 'indirect')) {
+            throw new Exception("Missing required property");
+        }
+        return new Indirect(
+         Indirect::fromIndirect($obj->{'indirect'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Params
+     * @return Indirect
      */
-    public function getParams(): Params {
-        if (Obj3::validateParams($this->params))  {
-            return $this->params;
-        }
-        throw new Exception('never get to getParams Obj3::params');
+    public static function sample(): Indirect {
+        return new Indirect(
+         Indirect::sampleIndirect()
+        );
     }
+}
+
+// This is an autogenerated file:Infix
+
+class Infix {
+    private int $infix; // json:infix Required
 
     /**
-     * @return Params
+     * @param int $infix
      */
-    public static function sampleParams(): Params {
-        return Params::sample(); /*100:params*/
+    public function __construct(int $infix) {
+        $this->infix = $infix;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Pass
+     * @return int
      */
-    public static function fromPass(stdClass $value): Pass {
-        return Pass::from($value); /*class*/
+    public static function fromInfix(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPass(): stdClass {
-        if (Obj3::validatePass($this->pass))  {
-            return $this->pass->to(); /*class*/
+    public function toInfix(): int {
+        if (Infix::validateInfix($this->infix))  {
+            return $this->infix; /*int*/
         }
-        throw new Exception('never get to this Obj3::pass');
+        throw new Exception('never get to this Infix::infix');
     }
 
     /**
-     * @param Pass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePass(Pass $value): bool {
-        $value->validate();
+    public static function validateInfix(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Pass
+     * @return int
      */
-    public function getPass(): Pass {
-        if (Obj3::validatePass($this->pass))  {
-            return $this->pass;
+    public function getInfix(): int {
+        if (Infix::validateInfix($this->infix))  {
+            return $this->infix;
         }
-        throw new Exception('never get to getPass Obj3::pass');
+        throw new Exception('never get to getInfix Infix::infix');
     }
 
     /**
-     * @return Pass
+     * @return int
      */
-    public static function samplePass(): Pass {
-        return Pass::sample(); /*101:pass*/
+    public static function sampleInfix(): int {
+        return 31; /*31:infix*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Port
+     * @return bool
      */
-    public static function fromPort(stdClass $value): Port {
-        return Port::from($value); /*class*/
+    public function validate(): bool {
+        return Infix::validateInfix($this->infix);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toPort(): stdClass {
-        if (Obj3::validatePort($this->port))  {
-            return $this->port->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::port');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'infix'} = $this->toInfix();
+        return $out;
     }
 
     /**
-     * @param Port
-     * @return bool
+     * @param stdClass $obj
+     * @return Infix
      * @throws Exception
      */
-    public static function validatePort(Port $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Infix {
+        if (!property_exists($obj, 'infix')) {
+            throw new Exception("Missing required property");
+        }
+        return new Infix(
+         Infix::fromInfix($obj->{'infix'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Port
+     * @return Infix
      */
-    public function getPort(): Port {
-        if (Obj3::validatePort($this->port))  {
-            return $this->port;
-        }
-        throw new Exception('never get to getPort Obj3::port');
+    public static function sample(): Infix {
+        return new Infix(
+         Infix::sampleInfix()
+        );
     }
+}
+
+// This is an autogenerated file:Init
+
+class Init {
+    private int $init; // json:init Required
 
     /**
-     * @return Port
+     * @param int $init
      */
-    public static function samplePort(): Port {
-        return Port::sample(); /*102:port*/
+    public function __construct(int $init) {
+        $this->init = $init;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Postfix
+     * @return int
      */
-    public static function fromPostfix(stdClass $value): Postfix {
-        return Postfix::from($value); /*class*/
+    public static function fromInit(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPostfix(): stdClass {
-        if (Obj3::validatePostfix($this->postfix))  {
-            return $this->postfix->to(); /*class*/
+    public function toInit(): int {
+        if (Init::validateInit($this->init))  {
+            return $this->init; /*int*/
         }
-        throw new Exception('never get to this Obj3::postfix');
+        throw new Exception('never get to this Init::init');
     }
 
     /**
-     * @param Postfix
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePostfix(Postfix $value): bool {
-        $value->validate();
+    public static function validateInit(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Postfix
+     * @return int
      */
-    public function getPostfix(): Postfix {
-        if (Obj3::validatePostfix($this->postfix))  {
-            return $this->postfix;
+    public function getInit(): int {
+        if (Init::validateInit($this->init))  {
+            return $this->init;
         }
-        throw new Exception('never get to getPostfix Obj3::postfix');
+        throw new Exception('never get to getInit Init::init');
     }
 
     /**
-     * @return Postfix
+     * @return int
      */
-    public static function samplePostfix(): Postfix {
-        return Postfix::sample(); /*103:postfix*/
+    public static function sampleInit(): int {
+        return 31; /*31:init*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Precedence
+     * @return bool
      */
-    public static function fromPrecedence(stdClass $value): Precedence {
-        return Precedence::from($value); /*class*/
+    public function validate(): bool {
+        return Init::validateInit($this->init);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toPrecedence(): stdClass {
-        if (Obj3::validatePrecedence($this->precedence))  {
-            return $this->precedence->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::precedence');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'init'} = $this->toInit();
+        return $out;
     }
 
     /**
-     * @param Precedence
-     * @return bool
+     * @param stdClass $obj
+     * @return Init
      * @throws Exception
      */
-    public static function validatePrecedence(Precedence $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Init {
+        if (!property_exists($obj, 'init')) {
+            throw new Exception("Missing required property");
+        }
+        return new Init(
+         Init::fromInit($obj->{'init'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Precedence
+     * @return Init
      */
-    public function getPrecedence(): Precedence {
-        if (Obj3::validatePrecedence($this->precedence))  {
-            return $this->precedence;
-        }
-        throw new Exception('never get to getPrecedence Obj3::precedence');
+    public static function sample(): Init {
+        return new Init(
+         Init::sampleInit()
+        );
     }
+}
+
+// This is an autogenerated file:Inline
+
+class Inline {
+    private int $inline; // json:inline Required
 
     /**
-     * @return Precedence
+     * @param int $inline
      */
-    public static function samplePrecedence(): Precedence {
-        return Precedence::sample(); /*104:precedence*/
+    public function __construct(int $inline) {
+        $this->inline = $inline;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Prefix
+     * @return int
      */
-    public static function fromPrefix(stdClass $value): Prefix {
-        return Prefix::from($value); /*class*/
+    public static function fromInline(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPrefix(): stdClass {
-        if (Obj3::validatePrefix($this->prefix))  {
-            return $this->prefix->to(); /*class*/
+    public function toInline(): int {
+        if (Inline::validateInline($this->inline))  {
+            return $this->inline; /*int*/
         }
-        throw new Exception('never get to this Obj3::prefix');
+        throw new Exception('never get to this Inline::inline');
     }
 
     /**
-     * @param Prefix
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePrefix(Prefix $value): bool {
-        $value->validate();
+    public static function validateInline(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Prefix
+     * @return int
      */
-    public function getPrefix(): Prefix {
-        if (Obj3::validatePrefix($this->prefix))  {
-            return $this->prefix;
+    public function getInline(): int {
+        if (Inline::validateInline($this->inline))  {
+            return $this->inline;
         }
-        throw new Exception('never get to getPrefix Obj3::prefix');
+        throw new Exception('never get to getInline Inline::inline');
     }
 
     /**
-     * @return Prefix
+     * @return int
      */
-    public static function samplePrefix(): Prefix {
-        return Prefix::sample(); /*105:prefix*/
+    public static function sampleInline(): int {
+        return 31; /*31:inline*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return PrintClass
+     * @return bool
      */
-    public static function fromPrint(stdClass $value): PrintClass {
-        return PrintClass::from($value); /*class*/
+    public function validate(): bool {
+        return Inline::validateInline($this->inline);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toPrint(): stdClass {
-        if (Obj3::validatePrint($this->print))  {
-            return $this->print->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::print');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'inline'} = $this->toInline();
+        return $out;
     }
 
     /**
-     * @param PrintClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Inline
      * @throws Exception
      */
-    public static function validatePrint(PrintClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Inline {
+        if (!property_exists($obj, 'inline')) {
+            throw new Exception("Missing required property");
+        }
+        return new Inline(
+         Inline::fromInline($obj->{'inline'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return PrintClass
+     * @return Inline
      */
-    public function getPrint(): PrintClass {
-        if (Obj3::validatePrint($this->print))  {
-            return $this->print;
-        }
-        throw new Exception('never get to getPrint Obj3::print');
+    public static function sample(): Inline {
+        return new Inline(
+         Inline::sampleInline()
+        );
     }
+}
+
+// This is an autogenerated file:Inout
+
+class Inout {
+    private int $inout; // json:inout Required
 
     /**
-     * @return PrintClass
+     * @param int $inout
      */
-    public static function samplePrint(): PrintClass {
-        return PrintClass::sample(); /*106:print*/
+    public function __construct(int $inout) {
+        $this->inout = $inout;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return PrintMembers
+     * @return int
      */
-    public static function fromPrintMembers(stdClass $value): PrintMembers {
-        return PrintMembers::from($value); /*class*/
+    public static function fromInout(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPrintMembers(): stdClass {
-        if (Obj3::validatePrintMembers($this->printMembers))  {
-            return $this->printMembers->to(); /*class*/
+    public function toInout(): int {
+        if (Inout::validateInout($this->inout))  {
+            return $this->inout; /*int*/
         }
-        throw new Exception('never get to this Obj3::printMembers');
+        throw new Exception('never get to this Inout::inout');
     }
 
     /**
-     * @param PrintMembers
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePrintMembers(PrintMembers $value): bool {
-        $value->validate();
+    public static function validateInout(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return PrintMembers
+     * @return int
      */
-    public function getPrintMembers(): PrintMembers {
-        if (Obj3::validatePrintMembers($this->printMembers))  {
-            return $this->printMembers;
+    public function getInout(): int {
+        if (Inout::validateInout($this->inout))  {
+            return $this->inout;
         }
-        throw new Exception('never get to getPrintMembers Obj3::printMembers');
+        throw new Exception('never get to getInout Inout::inout');
     }
 
     /**
-     * @return PrintMembers
+     * @return int
      */
-    public static function samplePrintMembers(): PrintMembers {
-        return PrintMembers::sample(); /*107:printMembers*/
+    public static function sampleInout(): int {
+        return 31; /*31:inout*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Printf
+     * @return bool
      */
-    public static function fromPrintf(stdClass $value): Printf {
-        return Printf::from($value); /*class*/
+    public function validate(): bool {
+        return Inout::validateInout($this->inout);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toPrintf(): stdClass {
-        if (Obj3::validatePrintf($this->printf))  {
-            return $this->printf->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::printf');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'inout'} = $this->toInout();
+        return $out;
     }
 
     /**
-     * @param Printf
-     * @return bool
+     * @param stdClass $obj
+     * @return Inout
      * @throws Exception
      */
-    public static function validatePrintf(Printf $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Inout {
+        if (!property_exists($obj, 'inout')) {
+            throw new Exception("Missing required property");
+        }
+        return new Inout(
+         Inout::fromInout($obj->{'inout'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Printf
+     * @return Inout
      */
-    public function getPrintf(): Printf {
-        if (Obj3::validatePrintf($this->printf))  {
-            return $this->printf;
-        }
-        throw new Exception('never get to getPrintf Obj3::printf');
+    public static function sample(): Inout {
+        return new Inout(
+         Inout::sampleInout()
+        );
     }
+}
+
+// This is an autogenerated file:InstanceofClass
+
+class InstanceofClass {
+    private int $instanceof; // json:instanceof Required
 
     /**
-     * @return Printf
+     * @param int $instanceof
      */
-    public static function samplePrintf(): Printf {
-        return Printf::sample(); /*108:printf*/
+    public function __construct(int $instanceof) {
+        $this->instanceof = $instanceof;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return PrivateClass
+     * @return int
      */
-    public static function fromPrivate(stdClass $value): PrivateClass {
-        return PrivateClass::from($value); /*class*/
+    public static function fromInstanceof(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toPrivate(): stdClass {
-        if (Obj3::validatePrivate($this->private))  {
-            return $this->private->to(); /*class*/
+    public function toInstanceof(): int {
+        if (InstanceofClass::validateInstanceof($this->instanceof))  {
+            return $this->instanceof; /*int*/
         }
-        throw new Exception('never get to this Obj3::private');
+        throw new Exception('never get to this InstanceofClass::instanceof');
     }
 
     /**
-     * @param PrivateClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validatePrivate(PrivateClass $value): bool {
-        $value->validate();
+    public static function validateInstanceof(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return PrivateClass
+     * @return int
      */
-    public function getPrivate(): PrivateClass {
-        if (Obj3::validatePrivate($this->private))  {
-            return $this->private;
+    public function getInstanceof(): int {
+        if (InstanceofClass::validateInstanceof($this->instanceof))  {
+            return $this->instanceof;
         }
-        throw new Exception('never get to getPrivate Obj3::private');
+        throw new Exception('never get to getInstanceof InstanceofClass::instanceof');
     }
 
     /**
-     * @return PrivateClass
+     * @return int
      */
-    public static function samplePrivate(): PrivateClass {
-        return PrivateClass::sample(); /*109:private*/
+    public static function sampleInstanceof(): int {
+        return 31; /*31:instanceof*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return ProtectedClass
+     * @return bool
      */
-    public static function fromProtected(stdClass $value): ProtectedClass {
-        return ProtectedClass::from($value); /*class*/
+    public function validate(): bool {
+        return InstanceofClass::validateInstanceof($this->instanceof);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toProtected(): stdClass {
-        if (Obj3::validateProtected($this->protected))  {
-            return $this->protected->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj3::protected');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'instanceof'} = $this->toInstanceof();
+        return $out;
     }
 
     /**
-     * @param ProtectedClass
-     * @return bool
+     * @param stdClass $obj
+     * @return InstanceofClass
      * @throws Exception
      */
-    public static function validateProtected(ProtectedClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): InstanceofClass {
+        if (!property_exists($obj, 'instanceof')) {
+            throw new Exception("Missing required property");
+        }
+        return new InstanceofClass(
+         InstanceofClass::fromInstanceof($obj->{'instanceof'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return ProtectedClass
+     * @return InstanceofClass
      */
-    public function getProtected(): ProtectedClass {
-        if (Obj3::validateProtected($this->protected))  {
-            return $this->protected;
-        }
-        throw new Exception('never get to getProtected Obj3::protected');
+    public static function sample(): InstanceofClass {
+        return new InstanceofClass(
+         InstanceofClass::sampleInstanceof()
+        );
     }
+}
+
+// This is an autogenerated file:IntClass
+
+class IntClass {
+    private int $int; // json:int Required
 
     /**
-     * @return ProtectedClass
+     * @param int $int
      */
-    public static function sampleProtected(): ProtectedClass {
-        return ProtectedClass::sample(); /*110:protected*/
+    public function __construct(int $int) {
+        $this->int = $int;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Protocol
+     * @return int
      */
-    public static function fromProtocol(stdClass $value): Protocol {
-        return Protocol::from($value); /*class*/
+    public static function fromInt(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toProtocol(): stdClass {
-        if (Obj3::validateProtocol($this->protocol))  {
-            return $this->protocol->to(); /*class*/
+    public function toInt(): int {
+        if (IntClass::validateInt($this->int))  {
+            return $this->int; /*int*/
         }
-        throw new Exception('never get to this Obj3::protocol');
+        throw new Exception('never get to this IntClass::int');
     }
 
     /**
-     * @param Protocol
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateProtocol(Protocol $value): bool {
-        $value->validate();
+    public static function validateInt(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Protocol
+     * @return int
      */
-    public function getProtocol(): Protocol {
-        if (Obj3::validateProtocol($this->protocol))  {
-            return $this->protocol;
+    public function getInt(): int {
+        if (IntClass::validateInt($this->int))  {
+            return $this->int;
         }
-        throw new Exception('never get to getProtocol Obj3::protocol');
+        throw new Exception('never get to getInt IntClass::int');
     }
 
     /**
-     * @return Protocol
+     * @return int
      */
-    public static function sampleProtocol(): Protocol {
-        return Protocol::sample(); /*111:protocol*/
+    public static function sampleInt(): int {
+        return 31; /*31:int*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return SerializerProvider
+     * @return bool
      */
-    public static function fromSerializerProvider(stdClass $value): SerializerProvider {
-        return SerializerProvider::from($value); /*class*/
+    public function validate(): bool {
+        return IntClass::validateInt($this->int);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSerializerProvider(): stdClass {
-        if (Obj3::validateSerializerProvider($this->serializerProvider))  {
-            return $this->serializerProvider->to(); /*class*/
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'int'} = $this->toInt();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return IntClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): IntClass {
+        if (!property_exists($obj, 'int')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::serializerProvider');
+        return new IntClass(
+         IntClass::fromInt($obj->{'int'})
+        );
     }
 
     /**
-     * @param SerializerProvider
+     * @return IntClass
+     */
+    public static function sample(): IntClass {
+        return new IntClass(
+         IntClass::sampleInt()
+        );
+    }
+}
+
+// This is an autogenerated file:InterfaceClass
+
+class InterfaceClass {
+    private int $interface; // json:interface Required
+
+    /**
+     * @param int $interface
+     */
+    public function __construct(int $interface) {
+        $this->interface = $interface;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromInterface(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toInterface(): int {
+        if (InterfaceClass::validateInterface($this->interface))  {
+            return $this->interface; /*int*/
+        }
+        throw new Exception('never get to this InterfaceClass::interface');
+    }
+
+    /**
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSerializerProvider(SerializerProvider $value): bool {
-        $value->validate();
+    public static function validateInterface(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SerializerProvider
+     * @return int
      */
-    public function getSerializerProvider(): SerializerProvider {
-        if (Obj3::validateSerializerProvider($this->serializerProvider))  {
-            return $this->serializerProvider;
+    public function getInterface(): int {
+        if (InterfaceClass::validateInterface($this->interface))  {
+            return $this->interface;
         }
-        throw new Exception('never get to getSerializerProvider Obj3::serializerProvider');
+        throw new Exception('never get to getInterface InterfaceClass::interface');
     }
 
     /**
-     * @return SerializerProvider
+     * @return int
      */
-    public static function sampleSerializerProvider(): SerializerProvider {
-        return SerializerProvider::sample(); /*112:serializerProvider*/
+    public static function sampleInterface(): int {
+        return 31; /*31:interface*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return SimpleModule
+     * @return bool
      */
-    public static function fromSimpleModule(stdClass $value): SimpleModule {
-        return SimpleModule::from($value); /*class*/
+    public function validate(): bool {
+        return InterfaceClass::validateInterface($this->interface);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSimpleModule(): stdClass {
-        if (Obj3::validateSimpleModule($this->simpleModule))  {
-            return $this->simpleModule->to(); /*class*/
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'interface'} = $this->toInterface();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return InterfaceClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): InterfaceClass {
+        if (!property_exists($obj, 'interface')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::simpleModule');
+        return new InterfaceClass(
+         InterfaceClass::fromInterface($obj->{'interface'})
+        );
     }
 
     /**
-     * @param SimpleModule
+     * @return InterfaceClass
+     */
+    public static function sample(): InterfaceClass {
+        return new InterfaceClass(
+         InterfaceClass::sampleInterface()
+        );
+    }
+}
+
+// This is an autogenerated file:Internal
+
+class Internal {
+    private int $internal; // json:internal Required
+
+    /**
+     * @param int $internal
+     */
+    public function __construct(int $internal) {
+        $this->internal = $internal;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromInternal(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toInternal(): int {
+        if (Internal::validateInternal($this->internal))  {
+            return $this->internal; /*int*/
+        }
+        throw new Exception('never get to this Internal::internal');
+    }
+
+    /**
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSimpleModule(SimpleModule $value): bool {
-        $value->validate();
+    public static function validateInternal(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SimpleModule
+     * @return int
      */
-    public function getSimpleModule(): SimpleModule {
-        if (Obj3::validateSimpleModule($this->simpleModule))  {
-            return $this->simpleModule;
+    public function getInternal(): int {
+        if (Internal::validateInternal($this->internal))  {
+            return $this->internal;
         }
-        throw new Exception('never get to getSimpleModule Obj3::simpleModule');
+        throw new Exception('never get to getInternal Internal::internal');
     }
 
     /**
-     * @return SimpleModule
+     * @return int
      */
-    public static function sampleSimpleModule(): SimpleModule {
-        return SimpleModule::sample(); /*113:simpleModule*/
+    public static function sampleInternal(): int {
+        return 31; /*31:internal*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return StdDeserializer
+     * @return bool
      */
-    public static function fromStdDeserializer(stdClass $value): StdDeserializer {
-        return StdDeserializer::from($value); /*class*/
+    public function validate(): bool {
+        return Internal::validateInternal($this->internal);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStdDeserializer(): stdClass {
-        if (Obj3::validateStdDeserializer($this->stdDeserializer))  {
-            return $this->stdDeserializer->to(); /*class*/
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'internal'} = $this->toInternal();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Internal
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Internal {
+        if (!property_exists($obj, 'internal')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::stdDeserializer');
+        return new Internal(
+         Internal::fromInternal($obj->{'internal'})
+        );
     }
 
     /**
-     * @param StdDeserializer
+     * @return Internal
+     */
+    public static function sample(): Internal {
+        return new Internal(
+         Internal::sampleInternal()
+        );
+    }
+}
+
+// This is an autogenerated file:Is
+
+class Is {
+    private int $is; // json:is Required
+
+    /**
+     * @param int $is
+     */
+    public function __construct(int $is) {
+        $this->is = $is;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromIs(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toIs(): int {
+        if (Is::validateIs($this->is))  {
+            return $this->is; /*int*/
+        }
+        throw new Exception('never get to this Is::is');
+    }
+
+    /**
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateStdDeserializer(StdDeserializer $value): bool {
-        $value->validate();
+    public static function validateIs(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StdDeserializer
+     * @return int
      */
-    public function getStdDeserializer(): StdDeserializer {
-        if (Obj3::validateStdDeserializer($this->stdDeserializer))  {
-            return $this->stdDeserializer;
+    public function getIs(): int {
+        if (Is::validateIs($this->is))  {
+            return $this->is;
         }
-        throw new Exception('never get to getStdDeserializer Obj3::stdDeserializer');
+        throw new Exception('never get to getIs Is::is');
     }
 
     /**
-     * @return StdDeserializer
+     * @return int
      */
-    public static function sampleStdDeserializer(): StdDeserializer {
-        return StdDeserializer::sample(); /*114:stdDeserializer*/
+    public static function sampleIs(): int {
+        return 31; /*31:is*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return StdSerializer
+     * @return bool
      */
-    public static function fromStdSerializer(stdClass $value): StdSerializer {
-        return StdSerializer::from($value); /*class*/
+    public function validate(): bool {
+        return Is::validateIs($this->is);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStdSerializer(): stdClass {
-        if (Obj3::validateStdSerializer($this->stdSerializer))  {
-            return $this->stdSerializer->to(); /*class*/
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'is'} = $this->toIs();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Is
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Is {
+        if (!property_exists($obj, 'is')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj3::stdSerializer');
+        return new Is(
+         Is::fromIs($obj->{'is'})
+        );
     }
 
     /**
-     * @param StdSerializer
+     * @return Is
+     */
+    public static function sample(): Is {
+        return new Is(
+         Is::sampleIs()
+        );
+    }
+}
+
+// This is an autogenerated file:ISODateTimeOffsetConverter
+
+class ISODateTimeOffsetConverter {
+    private int $isoDateTimeOffsetConverter; // json:IsoDateTimeOffsetConverter Required
+
+    /**
+     * @param int $isoDateTimeOffsetConverter
+     */
+    public function __construct(int $isoDateTimeOffsetConverter) {
+        $this->isoDateTimeOffsetConverter = $isoDateTimeOffsetConverter;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromISODateTimeOffsetConverter(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toISODateTimeOffsetConverter(): int {
+        if (ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
+            return $this->isoDateTimeOffsetConverter; /*int*/
+        }
+        throw new Exception('never get to this ISODateTimeOffsetConverter::isoDateTimeOffsetConverter');
+    }
+
+    /**
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateStdSerializer(StdSerializer $value): bool {
-        $value->validate();
+    public static function validateISODateTimeOffsetConverter(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StdSerializer
+     * @return int
      */
-    public function getStdSerializer(): StdSerializer {
-        if (Obj3::validateStdSerializer($this->stdSerializer))  {
-            return $this->stdSerializer;
+    public function getISODateTimeOffsetConverter(): int {
+        if (ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
+            return $this->isoDateTimeOffsetConverter;
         }
-        throw new Exception('never get to getStdSerializer Obj3::stdSerializer');
+        throw new Exception('never get to getISODateTimeOffsetConverter ISODateTimeOffsetConverter::isoDateTimeOffsetConverter');
     }
 
     /**
-     * @return StdSerializer
+     * @return int
      */
-    public static function sampleStdSerializer(): StdSerializer {
-        return StdSerializer::sample(); /*115:stdSerializer*/
+    public static function sampleISODateTimeOffsetConverter(): int {
+        return 31; /*31:isoDateTimeOffsetConverter*/
     }
 
     /**
@@ -27111,91 +26103,7 @@ class Obj3 {
      * @return bool
      */
     public function validate(): bool {
-        return Obj3::validateDummy($this->dummy)
-        || Obj3::validateIs($this->is)
-        || Obj3::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter)
-        || Obj3::validateIterable($this->iterable)
-        || Obj3::validateJdec($this->jdec)
-        || Obj3::validateJenc($this->jenc)
-        || Obj3::validateJpipe($this->jpipe)
-        || Obj3::validateJSON($this->json)
-        || Obj3::validateJSONAny($this->jsonAny)
-        || Obj3::validateJSONCodingKey($this->jsonCodingKey)
-        || Obj3::validateJSONConverter($this->jsonConverter)
-        || Obj3::validateJSONDecoder($this->jsonDecoder)
-        || Obj3::validateJSONEncoder($this->jsonEncoder)
-        || Obj3::validateJSONException($this->jsonException)
-        || Obj3::validateJSONGenerator($this->jsonGenerator)
-        || Obj3::validateJSONNode($this->jsonNode)
-        || Obj3::validateJSONNull($this->jsonNull)
-        || Obj3::validateJSONParser($this->jsonParser)
-        || Obj3::validateJSONReader($this->jsonReader)
-        || Obj3::validateJSONSerializer($this->jsonSerializer)
-        || Obj3::validateJSONToken($this->jsonToken)
-        || Obj3::validateJSONTokenType($this->jsonTokenType)
-        || Obj3::validateJSONWriter($this->jsonWriter)
-        || Obj3::validateLambda($this->lambda)
-        || Obj3::validateLazy($this->lazy)
-        || Obj3::validateLeft($this->left)
-        || Obj3::validateLet($this->let)
-        || Obj3::validateList($this->list)
-        || Obj3::validateLock($this->lock)
-        || Obj3::validateLong($this->long)
-        || Obj3::validateMap($this->map)
-        || Obj3::validateMetadataPropertyHandling($this->metadataPropertyHandling)
-        || Obj3::validateModule($this->module)
-        || Obj3::validateMutable($this->mutable)
-        || Obj3::validateMutating($this->mutating)
-        || Obj3::validateNamespace($this->namespace)
-        || Obj3::validateNative($this->native)
-        || Obj3::validateNew($this->new)
-        || Obj3::validateNewtonsoft($this->newtonsoft)
-        || Obj3::validateNil($this->nil)
-        || Obj3::validateNo($this->no)
-        || Obj3::validateNoSuchMethod($this->noSuchMethod)
-        || Obj3::validateNoexcept($this->noexcept)
-        || Obj3::validateNonatomic($this->nonatomic)
-        || Obj3::validateNone($this->none)
-        || Obj3::validateNonlocal($this->nonlocal)
-        || Obj3::validateNonmutating($this->nonmutating)
-        || Obj3::validateNot($this->not)
-        || Obj3::validateNotEq($this->notEq)
-        || Obj3::validateNSError($this->nsError)
-        || Obj3::validateNSString($this->nsString)
-        || Obj3::validateNull($this->null)
-        || Obj3::validateNullptr($this->nullptr)
-        || Obj3::validateNumber($this->number)
-        || Obj3::validateObj3None($this->obj3None)
-        || Obj3::validateObj3Null($this->obj3Null)
-        || Obj3::validateObj3Protocol($this->obj3Protocol)
-        || Obj3::validateObject($this->object)
-        || Obj3::validateObjectMapper($this->objectMapper)
-        || Obj3::validateOf($this->of)
-        || Obj3::validateOneway($this->oneway)
-        || Obj3::validateOpen($this->open)
-        || Obj3::validateOperator($this->operator)
-        || Obj3::validateOptional($this->optional)
-        || Obj3::validateOr($this->or)
-        || Obj3::validateOrEq($this->orEq)
-        || Obj3::validateOut($this->out)
-        || Obj3::validateOverride($this->override)
-        || Obj3::validatePackage($this->package)
-        || Obj3::validateParams($this->params)
-        || Obj3::validatePass($this->pass)
-        || Obj3::validatePort($this->port)
-        || Obj3::validatePostfix($this->postfix)
-        || Obj3::validatePrecedence($this->precedence)
-        || Obj3::validatePrefix($this->prefix)
-        || Obj3::validatePrint($this->print)
-        || Obj3::validatePrintMembers($this->printMembers)
-        || Obj3::validatePrintf($this->printf)
-        || Obj3::validatePrivate($this->private)
-        || Obj3::validateProtected($this->protected)
-        || Obj3::validateProtocol($this->protocol)
-        || Obj3::validateSerializerProvider($this->serializerProvider)
-        || Obj3::validateSimpleModule($this->simpleModule)
-        || Obj3::validateStdDeserializer($this->stdDeserializer)
-        || Obj3::validateStdSerializer($this->stdSerializer);
+        return ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter);
     }
 
     /**
@@ -27204,548 +26112,1461 @@ class Obj3 {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dummy'} = $this->toDummy();
-        $out->{'is'} = $this->toIs();
         $out->{'IsoDateTimeOffsetConverter'} = $this->toISODateTimeOffsetConverter();
-        $out->{'iterable'} = $this->toIterable();
-        $out->{'jdec'} = $this->toJdec();
-        $out->{'jenc'} = $this->toJenc();
-        $out->{'jpipe'} = $this->toJpipe();
-        $out->{'json'} = $this->toJSON();
-        $out->{'JSONAny'} = $this->toJSONAny();
-        $out->{'JSONCodingKey'} = $this->toJSONCodingKey();
-        $out->{'json_converter'} = $this->toJSONConverter();
-        $out->{'JSONDecoder'} = $this->toJSONDecoder();
-        $out->{'JSONEncoder'} = $this->toJSONEncoder();
-        $out->{'JsonException'} = $this->toJSONException();
-        $out->{'JsonGenerator'} = $this->toJSONGenerator();
-        $out->{'JsonNode'} = $this->toJSONNode();
-        $out->{'JSONNull'} = $this->toJSONNull();
-        $out->{'JsonParser'} = $this->toJSONParser();
-        $out->{'JsonReader'} = $this->toJSONReader();
-        $out->{'json_serializer'} = $this->toJSONSerializer();
-        $out->{'json_token'} = $this->toJSONToken();
-        $out->{'JsonTokenType'} = $this->toJSONTokenType();
-        $out->{'json_writer'} = $this->toJSONWriter();
-        $out->{'lambda'} = $this->toLambda();
-        $out->{'lazy'} = $this->toLazy();
-        $out->{'left'} = $this->toLeft();
-        $out->{'let'} = $this->toLet();
-        $out->{'list'} = $this->toList();
-        $out->{'lock'} = $this->toLock();
-        $out->{'long'} = $this->toLong();
-        $out->{'map'} = $this->toMap();
-        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
-        $out->{'module'} = $this->toModule();
-        $out->{'mutable'} = $this->toMutable();
-        $out->{'mutating'} = $this->toMutating();
-        $out->{'namespace'} = $this->toNamespace();
-        $out->{'native'} = $this->toNative();
-        $out->{'new'} = $this->toNew();
-        $out->{'newtonsoft'} = $this->toNewtonsoft();
-        $out->{'nil'} = $this->toNil();
-        $out->{'NO'} = $this->toNo();
-        $out->{'noSuchMethod'} = $this->toNoSuchMethod();
-        $out->{'noexcept'} = $this->toNoexcept();
-        $out->{'nonatomic'} = $this->toNonatomic();
-        $out->{'None'} = $this->toNone();
-        $out->{'nonlocal'} = $this->toNonlocal();
-        $out->{'nonmutating'} = $this->toNonmutating();
-        $out->{'not'} = $this->toNot();
-        $out->{'not_eq'} = $this->toNotEq();
-        $out->{'NSError'} = $this->toNSError();
-        $out->{'NSString'} = $this->toNSString();
-        $out->{'NULL'} = $this->toNull();
-        $out->{'nullptr'} = $this->toNullptr();
-        $out->{'number'} = $this->toNumber();
-        $out->{'none'} = $this->toObj3None();
-        $out->{'null'} = $this->toObj3Null();
-        $out->{'protocol'} = $this->toObj3Protocol();
-        $out->{'object'} = $this->toObject();
-        $out->{'ObjectMapper'} = $this->toObjectMapper();
-        $out->{'of'} = $this->toOf();
-        $out->{'oneway'} = $this->toOneway();
-        $out->{'open'} = $this->toOpen();
-        $out->{'operator'} = $this->toOperator();
-        $out->{'optional'} = $this->toOptional();
-        $out->{'or'} = $this->toOr();
-        $out->{'or_eq'} = $this->toOrEq();
-        $out->{'out'} = $this->toOut();
-        $out->{'override'} = $this->toOverride();
-        $out->{'package'} = $this->toPackage();
-        $out->{'params'} = $this->toParams();
-        $out->{'pass'} = $this->toPass();
-        $out->{'port'} = $this->toPort();
-        $out->{'postfix'} = $this->toPostfix();
-        $out->{'precedence'} = $this->toPrecedence();
-        $out->{'prefix'} = $this->toPrefix();
-        $out->{'print'} = $this->toPrint();
-        $out->{'printMembers'} = $this->toPrintMembers();
-        $out->{'printf'} = $this->toPrintf();
-        $out->{'private'} = $this->toPrivate();
-        $out->{'protected'} = $this->toProtected();
-        $out->{'Protocol'} = $this->toProtocol();
-        $out->{'SerializerProvider'} = $this->toSerializerProvider();
-        $out->{'SimpleModule'} = $this->toSimpleModule();
-        $out->{'StdDeserializer'} = $this->toStdDeserializer();
-        $out->{'StdSerializer'} = $this->toStdSerializer();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Obj3
+     * @return ISODateTimeOffsetConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj3 {
-        if (!property_exists($obj, 'dummy')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'is')) {
-            throw new Exception("Missing required property");
-        }
+    public static function from(stdClass $obj): ISODateTimeOffsetConverter {
         if (!property_exists($obj, 'IsoDateTimeOffsetConverter')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'iterable')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'jdec')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'jenc')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'jpipe')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'json')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JSONAny')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JSONCodingKey')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'json_converter')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JSONDecoder')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JSONEncoder')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonException')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonGenerator')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonNode')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JSONNull')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonParser')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonReader')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'json_serializer')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'json_token')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'JsonTokenType')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'json_writer')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'lambda')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'lazy')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'left')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'let')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'list')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'lock')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'long')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'map')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'metadata_property_handling')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'module')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'mutable')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'mutating')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'namespace')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'native')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'new')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'newtonsoft')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'nil')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'NO')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'noSuchMethod')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'noexcept')) {
-            throw new Exception("Missing required property");
+        return new ISODateTimeOffsetConverter(
+         ISODateTimeOffsetConverter::fromISODateTimeOffsetConverter($obj->{'IsoDateTimeOffsetConverter'})
+        );
+    }
+
+    /**
+     * @return ISODateTimeOffsetConverter
+     */
+    public static function sample(): ISODateTimeOffsetConverter {
+        return new ISODateTimeOffsetConverter(
+         ISODateTimeOffsetConverter::sampleISODateTimeOffsetConverter()
+        );
+    }
+}
+
+// This is an autogenerated file:IterableClass
+
+class IterableClass {
+    private int $iterable; // json:iterable Required
+
+    /**
+     * @param int $iterable
+     */
+    public function __construct(int $iterable) {
+        $this->iterable = $iterable;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromIterable(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toIterable(): int {
+        if (IterableClass::validateIterable($this->iterable))  {
+            return $this->iterable; /*int*/
         }
-        if (!property_exists($obj, 'nonatomic')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this IterableClass::iterable');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateIterable(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getIterable(): int {
+        if (IterableClass::validateIterable($this->iterable))  {
+            return $this->iterable;
         }
-        if (!property_exists($obj, 'None')) {
+        throw new Exception('never get to getIterable IterableClass::iterable');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleIterable(): int {
+        return 31; /*31:iterable*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return IterableClass::validateIterable($this->iterable);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'iterable'} = $this->toIterable();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return IterableClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): IterableClass {
+        if (!property_exists($obj, 'iterable')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'nonlocal')) {
-            throw new Exception("Missing required property");
+        return new IterableClass(
+         IterableClass::fromIterable($obj->{'iterable'})
+        );
+    }
+
+    /**
+     * @return IterableClass
+     */
+    public static function sample(): IterableClass {
+        return new IterableClass(
+         IterableClass::sampleIterable()
+        );
+    }
+}
+
+// This is an autogenerated file:Jdec
+
+class Jdec {
+    private int $jdec; // json:jdec Required
+
+    /**
+     * @param int $jdec
+     */
+    public function __construct(int $jdec) {
+        $this->jdec = $jdec;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJdec(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJdec(): int {
+        if (Jdec::validateJdec($this->jdec))  {
+            return $this->jdec; /*int*/
         }
-        if (!property_exists($obj, 'nonmutating')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this Jdec::jdec');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJdec(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJdec(): int {
+        if (Jdec::validateJdec($this->jdec))  {
+            return $this->jdec;
         }
-        if (!property_exists($obj, 'not')) {
+        throw new Exception('never get to getJdec Jdec::jdec');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJdec(): int {
+        return 31; /*31:jdec*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return Jdec::validateJdec($this->jdec);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'jdec'} = $this->toJdec();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Jdec
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Jdec {
+        if (!property_exists($obj, 'jdec')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'not_eq')) {
-            throw new Exception("Missing required property");
+        return new Jdec(
+         Jdec::fromJdec($obj->{'jdec'})
+        );
+    }
+
+    /**
+     * @return Jdec
+     */
+    public static function sample(): Jdec {
+        return new Jdec(
+         Jdec::sampleJdec()
+        );
+    }
+}
+
+// This is an autogenerated file:Jenc
+
+class Jenc {
+    private int $jenc; // json:jenc Required
+
+    /**
+     * @param int $jenc
+     */
+    public function __construct(int $jenc) {
+        $this->jenc = $jenc;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJenc(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJenc(): int {
+        if (Jenc::validateJenc($this->jenc))  {
+            return $this->jenc; /*int*/
         }
-        if (!property_exists($obj, 'NSError')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this Jenc::jenc');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJenc(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJenc(): int {
+        if (Jenc::validateJenc($this->jenc))  {
+            return $this->jenc;
         }
-        if (!property_exists($obj, 'NSString')) {
+        throw new Exception('never get to getJenc Jenc::jenc');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJenc(): int {
+        return 31; /*31:jenc*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return Jenc::validateJenc($this->jenc);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'jenc'} = $this->toJenc();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Jenc
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Jenc {
+        if (!property_exists($obj, 'jenc')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'NULL')) {
-            throw new Exception("Missing required property");
+        return new Jenc(
+         Jenc::fromJenc($obj->{'jenc'})
+        );
+    }
+
+    /**
+     * @return Jenc
+     */
+    public static function sample(): Jenc {
+        return new Jenc(
+         Jenc::sampleJenc()
+        );
+    }
+}
+
+// This is an autogenerated file:Jpipe
+
+class Jpipe {
+    private int $jpipe; // json:jpipe Required
+
+    /**
+     * @param int $jpipe
+     */
+    public function __construct(int $jpipe) {
+        $this->jpipe = $jpipe;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJpipe(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJpipe(): int {
+        if (Jpipe::validateJpipe($this->jpipe))  {
+            return $this->jpipe; /*int*/
         }
-        if (!property_exists($obj, 'nullptr')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this Jpipe::jpipe');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJpipe(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJpipe(): int {
+        if (Jpipe::validateJpipe($this->jpipe))  {
+            return $this->jpipe;
         }
-        if (!property_exists($obj, 'number')) {
+        throw new Exception('never get to getJpipe Jpipe::jpipe');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJpipe(): int {
+        return 31; /*31:jpipe*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return Jpipe::validateJpipe($this->jpipe);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'jpipe'} = $this->toJpipe();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Jpipe
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Jpipe {
+        if (!property_exists($obj, 'jpipe')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'none')) {
-            throw new Exception("Missing required property");
+        return new Jpipe(
+         Jpipe::fromJpipe($obj->{'jpipe'})
+        );
+    }
+
+    /**
+     * @return Jpipe
+     */
+    public static function sample(): Jpipe {
+        return new Jpipe(
+         Jpipe::sampleJpipe()
+        );
+    }
+}
+
+// This is an autogenerated file:JSON
+
+class JSON {
+    private int $json; // json:json Required
+
+    /**
+     * @param int $json
+     */
+    public function __construct(int $json) {
+        $this->json = $json;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSON(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSON(): int {
+        if (JSON::validateJSON($this->json))  {
+            return $this->json; /*int*/
         }
-        if (!property_exists($obj, 'null')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSON::json');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSON(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSON(): int {
+        if (JSON::validateJSON($this->json))  {
+            return $this->json;
         }
-        if (!property_exists($obj, 'protocol')) {
+        throw new Exception('never get to getJSON JSON::json');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSON(): int {
+        return 31; /*31:json*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSON::validateJSON($this->json);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'json'} = $this->toJSON();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSON
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSON {
+        if (!property_exists($obj, 'json')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'object')) {
-            throw new Exception("Missing required property");
+        return new JSON(
+         JSON::fromJSON($obj->{'json'})
+        );
+    }
+
+    /**
+     * @return JSON
+     */
+    public static function sample(): JSON {
+        return new JSON(
+         JSON::sampleJSON()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONAny
+
+class JSONAny {
+    private mixed $jsonAny; // json:JSONAny Optional
+
+    /**
+     * @param mixed $jsonAny
+     */
+    public function __construct(mixed $jsonAny) {
+        $this->jsonAny = $jsonAny;
+    }
+
+    /**
+     * @param mixed $value
+     * @throws Exception
+     * @return mixed
+     */
+    public static function fromJSONAny(mixed $value): mixed {
+        return $value; /*null*/
+    }
+
+    /**
+     * @throws Exception
+     * @return mixed
+     */
+    public function toJSONAny(): mixed {
+        if (JSONAny::validateJSONAny($this->jsonAny))  {
+            return $this->jsonAny; /*null*/
         }
-        if (!property_exists($obj, 'ObjectMapper')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONAny::jsonAny');
+    }
+
+    /**
+     * @param mixed
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONAny(mixed $value): bool {
+        if (!is_null($value)) {
+            throw new Exception("Attribute Error:JSONAny::jsonAny");
         }
-        if (!property_exists($obj, 'of')) {
-            throw new Exception("Missing required property");
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return mixed
+     */
+    public function getJSONAny(): mixed {
+        if (JSONAny::validateJSONAny($this->jsonAny))  {
+            return $this->jsonAny;
         }
-        if (!property_exists($obj, 'oneway')) {
+        throw new Exception('never get to getJSONAny JSONAny::jsonAny');
+    }
+
+    /**
+     * @return mixed
+     */
+    public static function sampleJSONAny(): mixed {
+        return null; /*31:jsonAny*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONAny::validateJSONAny($this->jsonAny);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JSONAny'} = $this->toJSONAny();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONAny
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONAny {
+        if (!property_exists($obj, 'JSONAny')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'open')) {
-            throw new Exception("Missing required property");
+        return new JSONAny(
+         JSONAny::fromJSONAny($obj->{'JSONAny'})
+        );
+    }
+
+    /**
+     * @return JSONAny
+     */
+    public static function sample(): JSONAny {
+        return new JSONAny(
+         JSONAny::sampleJSONAny()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONCodingKey
+
+class JSONCodingKey {
+    private int $jsonCodingKey; // json:JSONCodingKey Required
+
+    /**
+     * @param int $jsonCodingKey
+     */
+    public function __construct(int $jsonCodingKey) {
+        $this->jsonCodingKey = $jsonCodingKey;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONCodingKey(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONCodingKey(): int {
+        if (JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey))  {
+            return $this->jsonCodingKey; /*int*/
         }
-        if (!property_exists($obj, 'operator')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONCodingKey::jsonCodingKey');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONCodingKey(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONCodingKey(): int {
+        if (JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey))  {
+            return $this->jsonCodingKey;
         }
-        if (!property_exists($obj, 'optional')) {
+        throw new Exception('never get to getJSONCodingKey JSONCodingKey::jsonCodingKey');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONCodingKey(): int {
+        return 31; /*31:jsonCodingKey*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JSONCodingKey'} = $this->toJSONCodingKey();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONCodingKey
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONCodingKey {
+        if (!property_exists($obj, 'JSONCodingKey')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'or')) {
-            throw new Exception("Missing required property");
+        return new JSONCodingKey(
+         JSONCodingKey::fromJSONCodingKey($obj->{'JSONCodingKey'})
+        );
+    }
+
+    /**
+     * @return JSONCodingKey
+     */
+    public static function sample(): JSONCodingKey {
+        return new JSONCodingKey(
+         JSONCodingKey::sampleJSONCodingKey()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONConverter
+
+class JSONConverter {
+    private int $jsonConverter; // json:json_converter Required
+
+    /**
+     * @param int $jsonConverter
+     */
+    public function __construct(int $jsonConverter) {
+        $this->jsonConverter = $jsonConverter;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONConverter(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONConverter(): int {
+        if (JSONConverter::validateJSONConverter($this->jsonConverter))  {
+            return $this->jsonConverter; /*int*/
         }
-        if (!property_exists($obj, 'or_eq')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONConverter::jsonConverter');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONConverter(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONConverter(): int {
+        if (JSONConverter::validateJSONConverter($this->jsonConverter))  {
+            return $this->jsonConverter;
         }
-        if (!property_exists($obj, 'out')) {
+        throw new Exception('never get to getJSONConverter JSONConverter::jsonConverter');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONConverter(): int {
+        return 31; /*31:jsonConverter*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONConverter::validateJSONConverter($this->jsonConverter);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'json_converter'} = $this->toJSONConverter();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONConverter
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONConverter {
+        if (!property_exists($obj, 'json_converter')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'override')) {
-            throw new Exception("Missing required property");
+        return new JSONConverter(
+         JSONConverter::fromJSONConverter($obj->{'json_converter'})
+        );
+    }
+
+    /**
+     * @return JSONConverter
+     */
+    public static function sample(): JSONConverter {
+        return new JSONConverter(
+         JSONConverter::sampleJSONConverter()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONDecoder
+
+class JSONDecoder {
+    private int $jsonDecoder; // json:JSONDecoder Required
+
+    /**
+     * @param int $jsonDecoder
+     */
+    public function __construct(int $jsonDecoder) {
+        $this->jsonDecoder = $jsonDecoder;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONDecoder(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONDecoder(): int {
+        if (JSONDecoder::validateJSONDecoder($this->jsonDecoder))  {
+            return $this->jsonDecoder; /*int*/
         }
-        if (!property_exists($obj, 'package')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONDecoder::jsonDecoder');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONDecoder(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONDecoder(): int {
+        if (JSONDecoder::validateJSONDecoder($this->jsonDecoder))  {
+            return $this->jsonDecoder;
         }
-        if (!property_exists($obj, 'params')) {
+        throw new Exception('never get to getJSONDecoder JSONDecoder::jsonDecoder');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONDecoder(): int {
+        return 31; /*31:jsonDecoder*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONDecoder::validateJSONDecoder($this->jsonDecoder);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JSONDecoder'} = $this->toJSONDecoder();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONDecoder
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONDecoder {
+        if (!property_exists($obj, 'JSONDecoder')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'pass')) {
-            throw new Exception("Missing required property");
+        return new JSONDecoder(
+         JSONDecoder::fromJSONDecoder($obj->{'JSONDecoder'})
+        );
+    }
+
+    /**
+     * @return JSONDecoder
+     */
+    public static function sample(): JSONDecoder {
+        return new JSONDecoder(
+         JSONDecoder::sampleJSONDecoder()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONEncoder
+
+class JSONEncoder {
+    private int $jsonEncoder; // json:JSONEncoder Required
+
+    /**
+     * @param int $jsonEncoder
+     */
+    public function __construct(int $jsonEncoder) {
+        $this->jsonEncoder = $jsonEncoder;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONEncoder(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONEncoder(): int {
+        if (JSONEncoder::validateJSONEncoder($this->jsonEncoder))  {
+            return $this->jsonEncoder; /*int*/
         }
-        if (!property_exists($obj, 'port')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONEncoder::jsonEncoder');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONEncoder(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONEncoder(): int {
+        if (JSONEncoder::validateJSONEncoder($this->jsonEncoder))  {
+            return $this->jsonEncoder;
         }
-        if (!property_exists($obj, 'postfix')) {
+        throw new Exception('never get to getJSONEncoder JSONEncoder::jsonEncoder');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONEncoder(): int {
+        return 31; /*31:jsonEncoder*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONEncoder::validateJSONEncoder($this->jsonEncoder);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JSONEncoder'} = $this->toJSONEncoder();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONEncoder
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONEncoder {
+        if (!property_exists($obj, 'JSONEncoder')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'precedence')) {
-            throw new Exception("Missing required property");
+        return new JSONEncoder(
+         JSONEncoder::fromJSONEncoder($obj->{'JSONEncoder'})
+        );
+    }
+
+    /**
+     * @return JSONEncoder
+     */
+    public static function sample(): JSONEncoder {
+        return new JSONEncoder(
+         JSONEncoder::sampleJSONEncoder()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONExceptionClass
+
+class JSONExceptionClass {
+    private int $jsonException; // json:JsonException Required
+
+    /**
+     * @param int $jsonException
+     */
+    public function __construct(int $jsonException) {
+        $this->jsonException = $jsonException;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONException(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONException(): int {
+        if (JSONExceptionClass::validateJSONException($this->jsonException))  {
+            return $this->jsonException; /*int*/
         }
-        if (!property_exists($obj, 'prefix')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONExceptionClass::jsonException');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONException(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONException(): int {
+        if (JSONExceptionClass::validateJSONException($this->jsonException))  {
+            return $this->jsonException;
         }
-        if (!property_exists($obj, 'print')) {
+        throw new Exception('never get to getJSONException JSONExceptionClass::jsonException');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONException(): int {
+        return 31; /*31:jsonException*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONExceptionClass::validateJSONException($this->jsonException);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JsonException'} = $this->toJSONException();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONExceptionClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONExceptionClass {
+        if (!property_exists($obj, 'JsonException')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'printMembers')) {
-            throw new Exception("Missing required property");
+        return new JSONExceptionClass(
+         JSONExceptionClass::fromJSONException($obj->{'JsonException'})
+        );
+    }
+
+    /**
+     * @return JSONExceptionClass
+     */
+    public static function sample(): JSONExceptionClass {
+        return new JSONExceptionClass(
+         JSONExceptionClass::sampleJSONException()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONGenerator
+
+class JSONGenerator {
+    private int $jsonGenerator; // json:JsonGenerator Required
+
+    /**
+     * @param int $jsonGenerator
+     */
+    public function __construct(int $jsonGenerator) {
+        $this->jsonGenerator = $jsonGenerator;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONGenerator(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONGenerator(): int {
+        if (JSONGenerator::validateJSONGenerator($this->jsonGenerator))  {
+            return $this->jsonGenerator; /*int*/
         }
-        if (!property_exists($obj, 'printf')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONGenerator::jsonGenerator');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONGenerator(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONGenerator(): int {
+        if (JSONGenerator::validateJSONGenerator($this->jsonGenerator))  {
+            return $this->jsonGenerator;
         }
-        if (!property_exists($obj, 'private')) {
+        throw new Exception('never get to getJSONGenerator JSONGenerator::jsonGenerator');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONGenerator(): int {
+        return 31; /*31:jsonGenerator*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONGenerator::validateJSONGenerator($this->jsonGenerator);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JsonGenerator'} = $this->toJSONGenerator();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONGenerator
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONGenerator {
+        if (!property_exists($obj, 'JsonGenerator')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'protected')) {
-            throw new Exception("Missing required property");
+        return new JSONGenerator(
+         JSONGenerator::fromJSONGenerator($obj->{'JsonGenerator'})
+        );
+    }
+
+    /**
+     * @return JSONGenerator
+     */
+    public static function sample(): JSONGenerator {
+        return new JSONGenerator(
+         JSONGenerator::sampleJSONGenerator()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONNode
+
+class JSONNode {
+    private int $jsonNode; // json:JsonNode Required
+
+    /**
+     * @param int $jsonNode
+     */
+    public function __construct(int $jsonNode) {
+        $this->jsonNode = $jsonNode;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONNode(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONNode(): int {
+        if (JSONNode::validateJSONNode($this->jsonNode))  {
+            return $this->jsonNode; /*int*/
         }
-        if (!property_exists($obj, 'Protocol')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONNode::jsonNode');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONNode(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONNode(): int {
+        if (JSONNode::validateJSONNode($this->jsonNode))  {
+            return $this->jsonNode;
         }
-        if (!property_exists($obj, 'SerializerProvider')) {
+        throw new Exception('never get to getJSONNode JSONNode::jsonNode');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONNode(): int {
+        return 31; /*31:jsonNode*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONNode::validateJSONNode($this->jsonNode);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JsonNode'} = $this->toJSONNode();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONNode
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONNode {
+        if (!property_exists($obj, 'JsonNode')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'SimpleModule')) {
-            throw new Exception("Missing required property");
+        return new JSONNode(
+         JSONNode::fromJSONNode($obj->{'JsonNode'})
+        );
+    }
+
+    /**
+     * @return JSONNode
+     */
+    public static function sample(): JSONNode {
+        return new JSONNode(
+         JSONNode::sampleJSONNode()
+        );
+    }
+}
+
+// This is an autogenerated file:JSONNull
+
+class JSONNull {
+    private int $jsonNull; // json:JSONNull Required
+
+    /**
+     * @param int $jsonNull
+     */
+    public function __construct(int $jsonNull) {
+        $this->jsonNull = $jsonNull;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromJSONNull(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toJSONNull(): int {
+        if (JSONNull::validateJSONNull($this->jsonNull))  {
+            return $this->jsonNull; /*int*/
         }
-        if (!property_exists($obj, 'StdDeserializer')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this JSONNull::jsonNull');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateJSONNull(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getJSONNull(): int {
+        if (JSONNull::validateJSONNull($this->jsonNull))  {
+            return $this->jsonNull;
         }
-        if (!property_exists($obj, 'StdSerializer')) {
+        throw new Exception('never get to getJSONNull JSONNull::jsonNull');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleJSONNull(): int {
+        return 31; /*31:jsonNull*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return JSONNull::validateJSONNull($this->jsonNull);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'JSONNull'} = $this->toJSONNull();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return JSONNull
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): JSONNull {
+        if (!property_exists($obj, 'JSONNull')) {
             throw new Exception("Missing required property");
         }
-        return new Obj3(
-         Obj3::fromDummy($obj->{'dummy'})
-        ,Obj3::fromIs($obj->{'is'})
-        ,Obj3::fromISODateTimeOffsetConverter($obj->{'IsoDateTimeOffsetConverter'})
-        ,Obj3::fromIterable($obj->{'iterable'})
-        ,Obj3::fromJdec($obj->{'jdec'})
-        ,Obj3::fromJenc($obj->{'jenc'})
-        ,Obj3::fromJpipe($obj->{'jpipe'})
-        ,Obj3::fromJSON($obj->{'json'})
-        ,Obj3::fromJSONAny($obj->{'JSONAny'})
-        ,Obj3::fromJSONCodingKey($obj->{'JSONCodingKey'})
-        ,Obj3::fromJSONConverter($obj->{'json_converter'})
-        ,Obj3::fromJSONDecoder($obj->{'JSONDecoder'})
-        ,Obj3::fromJSONEncoder($obj->{'JSONEncoder'})
-        ,Obj3::fromJSONException($obj->{'JsonException'})
-        ,Obj3::fromJSONGenerator($obj->{'JsonGenerator'})
-        ,Obj3::fromJSONNode($obj->{'JsonNode'})
-        ,Obj3::fromJSONNull($obj->{'JSONNull'})
-        ,Obj3::fromJSONParser($obj->{'JsonParser'})
-        ,Obj3::fromJSONReader($obj->{'JsonReader'})
-        ,Obj3::fromJSONSerializer($obj->{'json_serializer'})
-        ,Obj3::fromJSONToken($obj->{'json_token'})
-        ,Obj3::fromJSONTokenType($obj->{'JsonTokenType'})
-        ,Obj3::fromJSONWriter($obj->{'json_writer'})
-        ,Obj3::fromLambda($obj->{'lambda'})
-        ,Obj3::fromLazy($obj->{'lazy'})
-        ,Obj3::fromLeft($obj->{'left'})
-        ,Obj3::fromLet($obj->{'let'})
-        ,Obj3::fromList($obj->{'list'})
-        ,Obj3::fromLock($obj->{'lock'})
-        ,Obj3::fromLong($obj->{'long'})
-        ,Obj3::fromMap($obj->{'map'})
-        ,Obj3::fromMetadataPropertyHandling($obj->{'metadata_property_handling'})
-        ,Obj3::fromModule($obj->{'module'})
-        ,Obj3::fromMutable($obj->{'mutable'})
-        ,Obj3::fromMutating($obj->{'mutating'})
-        ,Obj3::fromNamespace($obj->{'namespace'})
-        ,Obj3::fromNative($obj->{'native'})
-        ,Obj3::fromNew($obj->{'new'})
-        ,Obj3::fromNewtonsoft($obj->{'newtonsoft'})
-        ,Obj3::fromNil($obj->{'nil'})
-        ,Obj3::fromNo($obj->{'NO'})
-        ,Obj3::fromNoSuchMethod($obj->{'noSuchMethod'})
-        ,Obj3::fromNoexcept($obj->{'noexcept'})
-        ,Obj3::fromNonatomic($obj->{'nonatomic'})
-        ,Obj3::fromNone($obj->{'None'})
-        ,Obj3::fromNonlocal($obj->{'nonlocal'})
-        ,Obj3::fromNonmutating($obj->{'nonmutating'})
-        ,Obj3::fromNot($obj->{'not'})
-        ,Obj3::fromNotEq($obj->{'not_eq'})
-        ,Obj3::fromNSError($obj->{'NSError'})
-        ,Obj3::fromNSString($obj->{'NSString'})
-        ,Obj3::fromNull($obj->{'NULL'})
-        ,Obj3::fromNullptr($obj->{'nullptr'})
-        ,Obj3::fromNumber($obj->{'number'})
-        ,Obj3::fromObj3None($obj->{'none'})
-        ,Obj3::fromObj3Null($obj->{'null'})
-        ,Obj3::fromObj3Protocol($obj->{'protocol'})
-        ,Obj3::fromObject($obj->{'object'})
-        ,Obj3::fromObjectMapper($obj->{'ObjectMapper'})
-        ,Obj3::fromOf($obj->{'of'})
-        ,Obj3::fromOneway($obj->{'oneway'})
-        ,Obj3::fromOpen($obj->{'open'})
-        ,Obj3::fromOperator($obj->{'operator'})
-        ,Obj3::fromOptional($obj->{'optional'})
-        ,Obj3::fromOr($obj->{'or'})
-        ,Obj3::fromOrEq($obj->{'or_eq'})
-        ,Obj3::fromOut($obj->{'out'})
-        ,Obj3::fromOverride($obj->{'override'})
-        ,Obj3::fromPackage($obj->{'package'})
-        ,Obj3::fromParams($obj->{'params'})
-        ,Obj3::fromPass($obj->{'pass'})
-        ,Obj3::fromPort($obj->{'port'})
-        ,Obj3::fromPostfix($obj->{'postfix'})
-        ,Obj3::fromPrecedence($obj->{'precedence'})
-        ,Obj3::fromPrefix($obj->{'prefix'})
-        ,Obj3::fromPrint($obj->{'print'})
-        ,Obj3::fromPrintMembers($obj->{'printMembers'})
-        ,Obj3::fromPrintf($obj->{'printf'})
-        ,Obj3::fromPrivate($obj->{'private'})
-        ,Obj3::fromProtected($obj->{'protected'})
-        ,Obj3::fromProtocol($obj->{'Protocol'})
-        ,Obj3::fromSerializerProvider($obj->{'SerializerProvider'})
-        ,Obj3::fromSimpleModule($obj->{'SimpleModule'})
-        ,Obj3::fromStdDeserializer($obj->{'StdDeserializer'})
-        ,Obj3::fromStdSerializer($obj->{'StdSerializer'})
+        return new JSONNull(
+         JSONNull::fromJSONNull($obj->{'JSONNull'})
         );
     }
 
     /**
-     * @return Obj3
+     * @return JSONNull
      */
-    public static function sample(): Obj3 {
-        return new Obj3(
-         Obj3::sampleDummy()
-        ,Obj3::sampleIs()
-        ,Obj3::sampleISODateTimeOffsetConverter()
-        ,Obj3::sampleIterable()
-        ,Obj3::sampleJdec()
-        ,Obj3::sampleJenc()
-        ,Obj3::sampleJpipe()
-        ,Obj3::sampleJSON()
-        ,Obj3::sampleJSONAny()
-        ,Obj3::sampleJSONCodingKey()
-        ,Obj3::sampleJSONConverter()
-        ,Obj3::sampleJSONDecoder()
-        ,Obj3::sampleJSONEncoder()
-        ,Obj3::sampleJSONException()
-        ,Obj3::sampleJSONGenerator()
-        ,Obj3::sampleJSONNode()
-        ,Obj3::sampleJSONNull()
-        ,Obj3::sampleJSONParser()
-        ,Obj3::sampleJSONReader()
-        ,Obj3::sampleJSONSerializer()
-        ,Obj3::sampleJSONToken()
-        ,Obj3::sampleJSONTokenType()
-        ,Obj3::sampleJSONWriter()
-        ,Obj3::sampleLambda()
-        ,Obj3::sampleLazy()
-        ,Obj3::sampleLeft()
-        ,Obj3::sampleLet()
-        ,Obj3::sampleList()
-        ,Obj3::sampleLock()
-        ,Obj3::sampleLong()
-        ,Obj3::sampleMap()
-        ,Obj3::sampleMetadataPropertyHandling()
-        ,Obj3::sampleModule()
-        ,Obj3::sampleMutable()
-        ,Obj3::sampleMutating()
-        ,Obj3::sampleNamespace()
-        ,Obj3::sampleNative()
-        ,Obj3::sampleNew()
-        ,Obj3::sampleNewtonsoft()
-        ,Obj3::sampleNil()
-        ,Obj3::sampleNo()
-        ,Obj3::sampleNoSuchMethod()
-        ,Obj3::sampleNoexcept()
-        ,Obj3::sampleNonatomic()
-        ,Obj3::sampleNone()
-        ,Obj3::sampleNonlocal()
-        ,Obj3::sampleNonmutating()
-        ,Obj3::sampleNot()
-        ,Obj3::sampleNotEq()
-        ,Obj3::sampleNSError()
-        ,Obj3::sampleNSString()
-        ,Obj3::sampleNull()
-        ,Obj3::sampleNullptr()
-        ,Obj3::sampleNumber()
-        ,Obj3::sampleObj3None()
-        ,Obj3::sampleObj3Null()
-        ,Obj3::sampleObj3Protocol()
-        ,Obj3::sampleObject()
-        ,Obj3::sampleObjectMapper()
-        ,Obj3::sampleOf()
-        ,Obj3::sampleOneway()
-        ,Obj3::sampleOpen()
-        ,Obj3::sampleOperator()
-        ,Obj3::sampleOptional()
-        ,Obj3::sampleOr()
-        ,Obj3::sampleOrEq()
-        ,Obj3::sampleOut()
-        ,Obj3::sampleOverride()
-        ,Obj3::samplePackage()
-        ,Obj3::sampleParams()
-        ,Obj3::samplePass()
-        ,Obj3::samplePort()
-        ,Obj3::samplePostfix()
-        ,Obj3::samplePrecedence()
-        ,Obj3::samplePrefix()
-        ,Obj3::samplePrint()
-        ,Obj3::samplePrintMembers()
-        ,Obj3::samplePrintf()
-        ,Obj3::samplePrivate()
-        ,Obj3::sampleProtected()
-        ,Obj3::sampleProtocol()
-        ,Obj3::sampleSerializerProvider()
-        ,Obj3::sampleSimpleModule()
-        ,Obj3::sampleStdDeserializer()
-        ,Obj3::sampleStdSerializer()
+    public static function sample(): JSONNull {
+        return new JSONNull(
+         JSONNull::sampleJSONNull()
         );
     }
 }
 
-// This is an autogenerated file:Is
+// This is an autogenerated file:JSONParser
 
-class Is {
-    private int $is; // json:is Required
+class JSONParser {
+    private int $jsonParser; // json:JsonParser Required
 
     /**
-     * @param int $is
+     * @param int $jsonParser
      */
-    public function __construct(int $is) {
-        $this->is = $is;
+    public function __construct(int $jsonParser) {
+        $this->jsonParser = $jsonParser;
     }
 
     /**
@@ -27753,7 +27574,7 @@ class Is {
      * @throws Exception
      * @return int
      */
-    public static function fromIs(int $value): int {
+    public static function fromJSONParser(int $value): int {
         return $value; /*int*/
     }
 
@@ -27761,11 +27582,11 @@ class Is {
      * @throws Exception
      * @return int
      */
-    public function toIs(): int {
-        if (Is::validateIs($this->is))  {
-            return $this->is; /*int*/
+    public function toJSONParser(): int {
+        if (JSONParser::validateJSONParser($this->jsonParser))  {
+            return $this->jsonParser; /*int*/
         }
-        throw new Exception('never get to this Is::is');
+        throw new Exception('never get to this JSONParser::jsonParser');
     }
 
     /**
@@ -27773,7 +27594,7 @@ class Is {
      * @return bool
      * @throws Exception
      */
-    public static function validateIs(int $value): bool {
+    public static function validateJSONParser(int $value): bool {
         return true;
     }
 
@@ -27781,18 +27602,18 @@ class Is {
      * @throws Exception
      * @return int
      */
-    public function getIs(): int {
-        if (Is::validateIs($this->is))  {
-            return $this->is;
+    public function getJSONParser(): int {
+        if (JSONParser::validateJSONParser($this->jsonParser))  {
+            return $this->jsonParser;
         }
-        throw new Exception('never get to getIs Is::is');
+        throw new Exception('never get to getJSONParser JSONParser::jsonParser');
     }
 
     /**
      * @return int
      */
-    public static function sampleIs(): int {
-        return 31; /*31:is*/
+    public static function sampleJSONParser(): int {
+        return 31; /*31:jsonParser*/
     }
 
     /**
@@ -27800,7 +27621,7 @@ class Is {
      * @return bool
      */
     public function validate(): bool {
-        return Is::validateIs($this->is);
+        return JSONParser::validateJSONParser($this->jsonParser);
     }
 
     /**
@@ -27809,44 +27630,44 @@ class Is {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'is'} = $this->toIs();
+        $out->{'JsonParser'} = $this->toJSONParser();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Is
+     * @return JSONParser
      * @throws Exception
      */
-    public static function from(stdClass $obj): Is {
-        if (!property_exists($obj, 'is')) {
+    public static function from(stdClass $obj): JSONParser {
+        if (!property_exists($obj, 'JsonParser')) {
             throw new Exception("Missing required property");
         }
-        return new Is(
-         Is::fromIs($obj->{'is'})
+        return new JSONParser(
+         JSONParser::fromJSONParser($obj->{'JsonParser'})
         );
     }
 
     /**
-     * @return Is
+     * @return JSONParser
      */
-    public static function sample(): Is {
-        return new Is(
-         Is::sampleIs()
+    public static function sample(): JSONParser {
+        return new JSONParser(
+         JSONParser::sampleJSONParser()
         );
     }
 }
 
-// This is an autogenerated file:ISODateTimeOffsetConverter
+// This is an autogenerated file:JSONReader
 
-class ISODateTimeOffsetConverter {
-    private int $isoDateTimeOffsetConverter; // json:IsoDateTimeOffsetConverter Required
+class JSONReader {
+    private int $jsonReader; // json:JsonReader Required
 
     /**
-     * @param int $isoDateTimeOffsetConverter
+     * @param int $jsonReader
      */
-    public function __construct(int $isoDateTimeOffsetConverter) {
-        $this->isoDateTimeOffsetConverter = $isoDateTimeOffsetConverter;
+    public function __construct(int $jsonReader) {
+        $this->jsonReader = $jsonReader;
     }
 
     /**
@@ -27854,7 +27675,7 @@ class ISODateTimeOffsetConverter {
      * @throws Exception
      * @return int
      */
-    public static function fromISODateTimeOffsetConverter(int $value): int {
+    public static function fromJSONReader(int $value): int {
         return $value; /*int*/
     }
 
@@ -27862,11 +27683,11 @@ class ISODateTimeOffsetConverter {
      * @throws Exception
      * @return int
      */
-    public function toISODateTimeOffsetConverter(): int {
-        if (ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
-            return $this->isoDateTimeOffsetConverter; /*int*/
+    public function toJSONReader(): int {
+        if (JSONReader::validateJSONReader($this->jsonReader))  {
+            return $this->jsonReader; /*int*/
         }
-        throw new Exception('never get to this ISODateTimeOffsetConverter::isoDateTimeOffsetConverter');
+        throw new Exception('never get to this JSONReader::jsonReader');
     }
 
     /**
@@ -27874,7 +27695,7 @@ class ISODateTimeOffsetConverter {
      * @return bool
      * @throws Exception
      */
-    public static function validateISODateTimeOffsetConverter(int $value): bool {
+    public static function validateJSONReader(int $value): bool {
         return true;
     }
 
@@ -27882,18 +27703,18 @@ class ISODateTimeOffsetConverter {
      * @throws Exception
      * @return int
      */
-    public function getISODateTimeOffsetConverter(): int {
-        if (ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
-            return $this->isoDateTimeOffsetConverter;
+    public function getJSONReader(): int {
+        if (JSONReader::validateJSONReader($this->jsonReader))  {
+            return $this->jsonReader;
         }
-        throw new Exception('never get to getISODateTimeOffsetConverter ISODateTimeOffsetConverter::isoDateTimeOffsetConverter');
+        throw new Exception('never get to getJSONReader JSONReader::jsonReader');
     }
 
     /**
      * @return int
      */
-    public static function sampleISODateTimeOffsetConverter(): int {
-        return 31; /*31:isoDateTimeOffsetConverter*/
+    public static function sampleJSONReader(): int {
+        return 31; /*31:jsonReader*/
     }
 
     /**
@@ -27901,7 +27722,7 @@ class ISODateTimeOffsetConverter {
      * @return bool
      */
     public function validate(): bool {
-        return ISODateTimeOffsetConverter::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter);
+        return JSONReader::validateJSONReader($this->jsonReader);
     }
 
     /**
@@ -27910,44 +27731,44 @@ class ISODateTimeOffsetConverter {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'IsoDateTimeOffsetConverter'} = $this->toISODateTimeOffsetConverter();
+        $out->{'JsonReader'} = $this->toJSONReader();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ISODateTimeOffsetConverter
+     * @return JSONReader
      * @throws Exception
      */
-    public static function from(stdClass $obj): ISODateTimeOffsetConverter {
-        if (!property_exists($obj, 'IsoDateTimeOffsetConverter')) {
+    public static function from(stdClass $obj): JSONReader {
+        if (!property_exists($obj, 'JsonReader')) {
             throw new Exception("Missing required property");
         }
-        return new ISODateTimeOffsetConverter(
-         ISODateTimeOffsetConverter::fromISODateTimeOffsetConverter($obj->{'IsoDateTimeOffsetConverter'})
+        return new JSONReader(
+         JSONReader::fromJSONReader($obj->{'JsonReader'})
         );
     }
 
     /**
-     * @return ISODateTimeOffsetConverter
+     * @return JSONReader
      */
-    public static function sample(): ISODateTimeOffsetConverter {
-        return new ISODateTimeOffsetConverter(
-         ISODateTimeOffsetConverter::sampleISODateTimeOffsetConverter()
+    public static function sample(): JSONReader {
+        return new JSONReader(
+         JSONReader::sampleJSONReader()
         );
     }
 }
 
-// This is an autogenerated file:IterableClass
+// This is an autogenerated file:JSONSerializer
 
-class IterableClass {
-    private int $iterable; // json:iterable Required
+class JSONSerializer {
+    private int $jsonSerializer; // json:json_serializer Required
 
     /**
-     * @param int $iterable
+     * @param int $jsonSerializer
      */
-    public function __construct(int $iterable) {
-        $this->iterable = $iterable;
+    public function __construct(int $jsonSerializer) {
+        $this->jsonSerializer = $jsonSerializer;
     }
 
     /**
@@ -27955,7 +27776,7 @@ class IterableClass {
      * @throws Exception
      * @return int
      */
-    public static function fromIterable(int $value): int {
+    public static function fromJSONSerializer(int $value): int {
         return $value; /*int*/
     }
 
@@ -27963,11 +27784,11 @@ class IterableClass {
      * @throws Exception
      * @return int
      */
-    public function toIterable(): int {
-        if (IterableClass::validateIterable($this->iterable))  {
-            return $this->iterable; /*int*/
+    public function toJSONSerializer(): int {
+        if (JSONSerializer::validateJSONSerializer($this->jsonSerializer))  {
+            return $this->jsonSerializer; /*int*/
         }
-        throw new Exception('never get to this IterableClass::iterable');
+        throw new Exception('never get to this JSONSerializer::jsonSerializer');
     }
 
     /**
@@ -27975,7 +27796,7 @@ class IterableClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateIterable(int $value): bool {
+    public static function validateJSONSerializer(int $value): bool {
         return true;
     }
 
@@ -27983,18 +27804,18 @@ class IterableClass {
      * @throws Exception
      * @return int
      */
-    public function getIterable(): int {
-        if (IterableClass::validateIterable($this->iterable))  {
-            return $this->iterable;
+    public function getJSONSerializer(): int {
+        if (JSONSerializer::validateJSONSerializer($this->jsonSerializer))  {
+            return $this->jsonSerializer;
         }
-        throw new Exception('never get to getIterable IterableClass::iterable');
+        throw new Exception('never get to getJSONSerializer JSONSerializer::jsonSerializer');
     }
 
     /**
      * @return int
      */
-    public static function sampleIterable(): int {
-        return 31; /*31:iterable*/
+    public static function sampleJSONSerializer(): int {
+        return 31; /*31:jsonSerializer*/
     }
 
     /**
@@ -28002,7 +27823,7 @@ class IterableClass {
      * @return bool
      */
     public function validate(): bool {
-        return IterableClass::validateIterable($this->iterable);
+        return JSONSerializer::validateJSONSerializer($this->jsonSerializer);
     }
 
     /**
@@ -28011,44 +27832,44 @@ class IterableClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'iterable'} = $this->toIterable();
+        $out->{'json_serializer'} = $this->toJSONSerializer();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return IterableClass
+     * @return JSONSerializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): IterableClass {
-        if (!property_exists($obj, 'iterable')) {
+    public static function from(stdClass $obj): JSONSerializer {
+        if (!property_exists($obj, 'json_serializer')) {
             throw new Exception("Missing required property");
         }
-        return new IterableClass(
-         IterableClass::fromIterable($obj->{'iterable'})
+        return new JSONSerializer(
+         JSONSerializer::fromJSONSerializer($obj->{'json_serializer'})
         );
     }
 
     /**
-     * @return IterableClass
+     * @return JSONSerializer
      */
-    public static function sample(): IterableClass {
-        return new IterableClass(
-         IterableClass::sampleIterable()
+    public static function sample(): JSONSerializer {
+        return new JSONSerializer(
+         JSONSerializer::sampleJSONSerializer()
         );
     }
 }
 
-// This is an autogenerated file:Jdec
+// This is an autogenerated file:JSONToken
 
-class Jdec {
-    private int $jdec; // json:jdec Required
+class JSONToken {
+    private int $jsonToken; // json:json_token Required
 
     /**
-     * @param int $jdec
+     * @param int $jsonToken
      */
-    public function __construct(int $jdec) {
-        $this->jdec = $jdec;
+    public function __construct(int $jsonToken) {
+        $this->jsonToken = $jsonToken;
     }
 
     /**
@@ -28056,7 +27877,7 @@ class Jdec {
      * @throws Exception
      * @return int
      */
-    public static function fromJdec(int $value): int {
+    public static function fromJSONToken(int $value): int {
         return $value; /*int*/
     }
 
@@ -28064,11 +27885,11 @@ class Jdec {
      * @throws Exception
      * @return int
      */
-    public function toJdec(): int {
-        if (Jdec::validateJdec($this->jdec))  {
-            return $this->jdec; /*int*/
+    public function toJSONToken(): int {
+        if (JSONToken::validateJSONToken($this->jsonToken))  {
+            return $this->jsonToken; /*int*/
         }
-        throw new Exception('never get to this Jdec::jdec');
+        throw new Exception('never get to this JSONToken::jsonToken');
     }
 
     /**
@@ -28076,7 +27897,7 @@ class Jdec {
      * @return bool
      * @throws Exception
      */
-    public static function validateJdec(int $value): bool {
+    public static function validateJSONToken(int $value): bool {
         return true;
     }
 
@@ -28084,18 +27905,18 @@ class Jdec {
      * @throws Exception
      * @return int
      */
-    public function getJdec(): int {
-        if (Jdec::validateJdec($this->jdec))  {
-            return $this->jdec;
+    public function getJSONToken(): int {
+        if (JSONToken::validateJSONToken($this->jsonToken))  {
+            return $this->jsonToken;
         }
-        throw new Exception('never get to getJdec Jdec::jdec');
+        throw new Exception('never get to getJSONToken JSONToken::jsonToken');
     }
 
     /**
      * @return int
      */
-    public static function sampleJdec(): int {
-        return 31; /*31:jdec*/
+    public static function sampleJSONToken(): int {
+        return 31; /*31:jsonToken*/
     }
 
     /**
@@ -28103,7 +27924,7 @@ class Jdec {
      * @return bool
      */
     public function validate(): bool {
-        return Jdec::validateJdec($this->jdec);
+        return JSONToken::validateJSONToken($this->jsonToken);
     }
 
     /**
@@ -28112,44 +27933,44 @@ class Jdec {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'jdec'} = $this->toJdec();
+        $out->{'json_token'} = $this->toJSONToken();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Jdec
+     * @return JSONToken
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jdec {
-        if (!property_exists($obj, 'jdec')) {
+    public static function from(stdClass $obj): JSONToken {
+        if (!property_exists($obj, 'json_token')) {
             throw new Exception("Missing required property");
         }
-        return new Jdec(
-         Jdec::fromJdec($obj->{'jdec'})
+        return new JSONToken(
+         JSONToken::fromJSONToken($obj->{'json_token'})
         );
     }
 
     /**
-     * @return Jdec
+     * @return JSONToken
      */
-    public static function sample(): Jdec {
-        return new Jdec(
-         Jdec::sampleJdec()
+    public static function sample(): JSONToken {
+        return new JSONToken(
+         JSONToken::sampleJSONToken()
         );
     }
 }
 
-// This is an autogenerated file:Jenc
+// This is an autogenerated file:JSONTokenType
 
-class Jenc {
-    private int $jenc; // json:jenc Required
+class JSONTokenType {
+    private int $jsonTokenType; // json:JsonTokenType Required
 
     /**
-     * @param int $jenc
+     * @param int $jsonTokenType
      */
-    public function __construct(int $jenc) {
-        $this->jenc = $jenc;
+    public function __construct(int $jsonTokenType) {
+        $this->jsonTokenType = $jsonTokenType;
     }
 
     /**
@@ -28157,7 +27978,7 @@ class Jenc {
      * @throws Exception
      * @return int
      */
-    public static function fromJenc(int $value): int {
+    public static function fromJSONTokenType(int $value): int {
         return $value; /*int*/
     }
 
@@ -28165,11 +27986,11 @@ class Jenc {
      * @throws Exception
      * @return int
      */
-    public function toJenc(): int {
-        if (Jenc::validateJenc($this->jenc))  {
-            return $this->jenc; /*int*/
+    public function toJSONTokenType(): int {
+        if (JSONTokenType::validateJSONTokenType($this->jsonTokenType))  {
+            return $this->jsonTokenType; /*int*/
         }
-        throw new Exception('never get to this Jenc::jenc');
+        throw new Exception('never get to this JSONTokenType::jsonTokenType');
     }
 
     /**
@@ -28177,7 +27998,7 @@ class Jenc {
      * @return bool
      * @throws Exception
      */
-    public static function validateJenc(int $value): bool {
+    public static function validateJSONTokenType(int $value): bool {
         return true;
     }
 
@@ -28185,18 +28006,18 @@ class Jenc {
      * @throws Exception
      * @return int
      */
-    public function getJenc(): int {
-        if (Jenc::validateJenc($this->jenc))  {
-            return $this->jenc;
+    public function getJSONTokenType(): int {
+        if (JSONTokenType::validateJSONTokenType($this->jsonTokenType))  {
+            return $this->jsonTokenType;
         }
-        throw new Exception('never get to getJenc Jenc::jenc');
+        throw new Exception('never get to getJSONTokenType JSONTokenType::jsonTokenType');
     }
 
     /**
      * @return int
      */
-    public static function sampleJenc(): int {
-        return 31; /*31:jenc*/
+    public static function sampleJSONTokenType(): int {
+        return 31; /*31:jsonTokenType*/
     }
 
     /**
@@ -28204,7 +28025,7 @@ class Jenc {
      * @return bool
      */
     public function validate(): bool {
-        return Jenc::validateJenc($this->jenc);
+        return JSONTokenType::validateJSONTokenType($this->jsonTokenType);
     }
 
     /**
@@ -28213,44 +28034,44 @@ class Jenc {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'jenc'} = $this->toJenc();
+        $out->{'JsonTokenType'} = $this->toJSONTokenType();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Jenc
+     * @return JSONTokenType
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jenc {
-        if (!property_exists($obj, 'jenc')) {
+    public static function from(stdClass $obj): JSONTokenType {
+        if (!property_exists($obj, 'JsonTokenType')) {
             throw new Exception("Missing required property");
         }
-        return new Jenc(
-         Jenc::fromJenc($obj->{'jenc'})
+        return new JSONTokenType(
+         JSONTokenType::fromJSONTokenType($obj->{'JsonTokenType'})
         );
     }
 
     /**
-     * @return Jenc
+     * @return JSONTokenType
      */
-    public static function sample(): Jenc {
-        return new Jenc(
-         Jenc::sampleJenc()
+    public static function sample(): JSONTokenType {
+        return new JSONTokenType(
+         JSONTokenType::sampleJSONTokenType()
         );
     }
 }
 
-// This is an autogenerated file:Jpipe
+// This is an autogenerated file:JSONWriter
 
-class Jpipe {
-    private int $jpipe; // json:jpipe Required
+class JSONWriter {
+    private int $jsonWriter; // json:json_writer Required
 
     /**
-     * @param int $jpipe
+     * @param int $jsonWriter
      */
-    public function __construct(int $jpipe) {
-        $this->jpipe = $jpipe;
+    public function __construct(int $jsonWriter) {
+        $this->jsonWriter = $jsonWriter;
     }
 
     /**
@@ -28258,7 +28079,7 @@ class Jpipe {
      * @throws Exception
      * @return int
      */
-    public static function fromJpipe(int $value): int {
+    public static function fromJSONWriter(int $value): int {
         return $value; /*int*/
     }
 
@@ -28266,11 +28087,11 @@ class Jpipe {
      * @throws Exception
      * @return int
      */
-    public function toJpipe(): int {
-        if (Jpipe::validateJpipe($this->jpipe))  {
-            return $this->jpipe; /*int*/
+    public function toJSONWriter(): int {
+        if (JSONWriter::validateJSONWriter($this->jsonWriter))  {
+            return $this->jsonWriter; /*int*/
         }
-        throw new Exception('never get to this Jpipe::jpipe');
+        throw new Exception('never get to this JSONWriter::jsonWriter');
     }
 
     /**
@@ -28278,7 +28099,7 @@ class Jpipe {
      * @return bool
      * @throws Exception
      */
-    public static function validateJpipe(int $value): bool {
+    public static function validateJSONWriter(int $value): bool {
         return true;
     }
 
@@ -28286,18 +28107,18 @@ class Jpipe {
      * @throws Exception
      * @return int
      */
-    public function getJpipe(): int {
-        if (Jpipe::validateJpipe($this->jpipe))  {
-            return $this->jpipe;
+    public function getJSONWriter(): int {
+        if (JSONWriter::validateJSONWriter($this->jsonWriter))  {
+            return $this->jsonWriter;
         }
-        throw new Exception('never get to getJpipe Jpipe::jpipe');
+        throw new Exception('never get to getJSONWriter JSONWriter::jsonWriter');
     }
 
     /**
      * @return int
      */
-    public static function sampleJpipe(): int {
-        return 31; /*31:jpipe*/
+    public static function sampleJSONWriter(): int {
+        return 31; /*31:jsonWriter*/
     }
 
     /**
@@ -28305,7 +28126,7 @@ class Jpipe {
      * @return bool
      */
     public function validate(): bool {
-        return Jpipe::validateJpipe($this->jpipe);
+        return JSONWriter::validateJSONWriter($this->jsonWriter);
     }
 
     /**
@@ -28314,44 +28135,44 @@ class Jpipe {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'jpipe'} = $this->toJpipe();
+        $out->{'json_writer'} = $this->toJSONWriter();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Jpipe
+     * @return JSONWriter
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jpipe {
-        if (!property_exists($obj, 'jpipe')) {
+    public static function from(stdClass $obj): JSONWriter {
+        if (!property_exists($obj, 'json_writer')) {
             throw new Exception("Missing required property");
         }
-        return new Jpipe(
-         Jpipe::fromJpipe($obj->{'jpipe'})
+        return new JSONWriter(
+         JSONWriter::fromJSONWriter($obj->{'json_writer'})
         );
     }
 
     /**
-     * @return Jpipe
+     * @return JSONWriter
      */
-    public static function sample(): Jpipe {
-        return new Jpipe(
-         Jpipe::sampleJpipe()
+    public static function sample(): JSONWriter {
+        return new JSONWriter(
+         JSONWriter::sampleJSONWriter()
         );
     }
 }
 
-// This is an autogenerated file:JSON
+// This is an autogenerated file:Lambda
 
-class JSON {
-    private int $json; // json:json Required
+class Lambda {
+    private int $lambda; // json:lambda Required
 
     /**
-     * @param int $json
+     * @param int $lambda
      */
-    public function __construct(int $json) {
-        $this->json = $json;
+    public function __construct(int $lambda) {
+        $this->lambda = $lambda;
     }
 
     /**
@@ -28359,7 +28180,7 @@ class JSON {
      * @throws Exception
      * @return int
      */
-    public static function fromJSON(int $value): int {
+    public static function fromLambda(int $value): int {
         return $value; /*int*/
     }
 
@@ -28367,11 +28188,11 @@ class JSON {
      * @throws Exception
      * @return int
      */
-    public function toJSON(): int {
-        if (JSON::validateJSON($this->json))  {
-            return $this->json; /*int*/
+    public function toLambda(): int {
+        if (Lambda::validateLambda($this->lambda))  {
+            return $this->lambda; /*int*/
         }
-        throw new Exception('never get to this JSON::json');
+        throw new Exception('never get to this Lambda::lambda');
     }
 
     /**
@@ -28379,7 +28200,7 @@ class JSON {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSON(int $value): bool {
+    public static function validateLambda(int $value): bool {
         return true;
     }
 
@@ -28387,18 +28208,18 @@ class JSON {
      * @throws Exception
      * @return int
      */
-    public function getJSON(): int {
-        if (JSON::validateJSON($this->json))  {
-            return $this->json;
+    public function getLambda(): int {
+        if (Lambda::validateLambda($this->lambda))  {
+            return $this->lambda;
         }
-        throw new Exception('never get to getJSON JSON::json');
+        throw new Exception('never get to getLambda Lambda::lambda');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSON(): int {
-        return 31; /*31:json*/
+    public static function sampleLambda(): int {
+        return 31; /*31:lambda*/
     }
 
     /**
@@ -28406,7 +28227,7 @@ class JSON {
      * @return bool
      */
     public function validate(): bool {
-        return JSON::validateJSON($this->json);
+        return Lambda::validateLambda($this->lambda);
     }
 
     /**
@@ -28415,94 +28236,91 @@ class JSON {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'json'} = $this->toJSON();
+        $out->{'lambda'} = $this->toLambda();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSON
+     * @return Lambda
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSON {
-        if (!property_exists($obj, 'json')) {
+    public static function from(stdClass $obj): Lambda {
+        if (!property_exists($obj, 'lambda')) {
             throw new Exception("Missing required property");
         }
-        return new JSON(
-         JSON::fromJSON($obj->{'json'})
+        return new Lambda(
+         Lambda::fromLambda($obj->{'lambda'})
         );
     }
 
     /**
-     * @return JSON
+     * @return Lambda
      */
-    public static function sample(): JSON {
-        return new JSON(
-         JSON::sampleJSON()
+    public static function sample(): Lambda {
+        return new Lambda(
+         Lambda::sampleLambda()
         );
     }
 }
 
-// This is an autogenerated file:JSONAny
+// This is an autogenerated file:Lazy
 
-class JSONAny {
-    private mixed $jsonAny; // json:JSONAny Optional
+class Lazy {
+    private int $lazy; // json:lazy Required
 
     /**
-     * @param mixed $jsonAny
+     * @param int $lazy
      */
-    public function __construct(mixed $jsonAny) {
-        $this->jsonAny = $jsonAny;
+    public function __construct(int $lazy) {
+        $this->lazy = $lazy;
     }
 
     /**
-     * @param mixed $value
+     * @param int $value
      * @throws Exception
-     * @return mixed
+     * @return int
      */
-    public static function fromJSONAny(mixed $value): mixed {
-        return $value; /*null*/
+    public static function fromLazy(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return mixed
+     * @return int
      */
-    public function toJSONAny(): mixed {
-        if (JSONAny::validateJSONAny($this->jsonAny))  {
-            return $this->jsonAny; /*null*/
+    public function toLazy(): int {
+        if (Lazy::validateLazy($this->lazy))  {
+            return $this->lazy; /*int*/
         }
-        throw new Exception('never get to this JSONAny::jsonAny');
+        throw new Exception('never get to this Lazy::lazy');
     }
 
     /**
-     * @param mixed
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONAny(mixed $value): bool {
-        if (!is_null($value)) {
-            throw new Exception("Attribute Error:JSONAny::jsonAny");
-        }
+    public static function validateLazy(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return mixed
+     * @return int
      */
-    public function getJSONAny(): mixed {
-        if (JSONAny::validateJSONAny($this->jsonAny))  {
-            return $this->jsonAny;
+    public function getLazy(): int {
+        if (Lazy::validateLazy($this->lazy))  {
+            return $this->lazy;
         }
-        throw new Exception('never get to getJSONAny JSONAny::jsonAny');
+        throw new Exception('never get to getLazy Lazy::lazy');
     }
 
     /**
-     * @return mixed
+     * @return int
      */
-    public static function sampleJSONAny(): mixed {
-        return null; /*31:jsonAny*/
+    public static function sampleLazy(): int {
+        return 31; /*31:lazy*/
     }
 
     /**
@@ -28510,7 +28328,7 @@ class JSONAny {
      * @return bool
      */
     public function validate(): bool {
-        return JSONAny::validateJSONAny($this->jsonAny);
+        return Lazy::validateLazy($this->lazy);
     }
 
     /**
@@ -28519,44 +28337,44 @@ class JSONAny {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JSONAny'} = $this->toJSONAny();
+        $out->{'lazy'} = $this->toLazy();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONAny
+     * @return Lazy
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONAny {
-        if (!property_exists($obj, 'JSONAny')) {
+    public static function from(stdClass $obj): Lazy {
+        if (!property_exists($obj, 'lazy')) {
             throw new Exception("Missing required property");
         }
-        return new JSONAny(
-         JSONAny::fromJSONAny($obj->{'JSONAny'})
+        return new Lazy(
+         Lazy::fromLazy($obj->{'lazy'})
         );
     }
 
     /**
-     * @return JSONAny
+     * @return Lazy
      */
-    public static function sample(): JSONAny {
-        return new JSONAny(
-         JSONAny::sampleJSONAny()
+    public static function sample(): Lazy {
+        return new Lazy(
+         Lazy::sampleLazy()
         );
     }
 }
 
-// This is an autogenerated file:JSONCodingKey
+// This is an autogenerated file:Left
 
-class JSONCodingKey {
-    private int $jsonCodingKey; // json:JSONCodingKey Required
+class Left {
+    private int $left; // json:left Required
 
     /**
-     * @param int $jsonCodingKey
+     * @param int $left
      */
-    public function __construct(int $jsonCodingKey) {
-        $this->jsonCodingKey = $jsonCodingKey;
+    public function __construct(int $left) {
+        $this->left = $left;
     }
 
     /**
@@ -28564,7 +28382,7 @@ class JSONCodingKey {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONCodingKey(int $value): int {
+    public static function fromLeft(int $value): int {
         return $value; /*int*/
     }
 
@@ -28572,11 +28390,11 @@ class JSONCodingKey {
      * @throws Exception
      * @return int
      */
-    public function toJSONCodingKey(): int {
-        if (JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey))  {
-            return $this->jsonCodingKey; /*int*/
+    public function toLeft(): int {
+        if (Left::validateLeft($this->left))  {
+            return $this->left; /*int*/
         }
-        throw new Exception('never get to this JSONCodingKey::jsonCodingKey');
+        throw new Exception('never get to this Left::left');
     }
 
     /**
@@ -28584,7 +28402,7 @@ class JSONCodingKey {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONCodingKey(int $value): bool {
+    public static function validateLeft(int $value): bool {
         return true;
     }
 
@@ -28592,18 +28410,18 @@ class JSONCodingKey {
      * @throws Exception
      * @return int
      */
-    public function getJSONCodingKey(): int {
-        if (JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey))  {
-            return $this->jsonCodingKey;
+    public function getLeft(): int {
+        if (Left::validateLeft($this->left))  {
+            return $this->left;
         }
-        throw new Exception('never get to getJSONCodingKey JSONCodingKey::jsonCodingKey');
+        throw new Exception('never get to getLeft Left::left');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONCodingKey(): int {
-        return 31; /*31:jsonCodingKey*/
+    public static function sampleLeft(): int {
+        return 31; /*31:left*/
     }
 
     /**
@@ -28611,7 +28429,7 @@ class JSONCodingKey {
      * @return bool
      */
     public function validate(): bool {
-        return JSONCodingKey::validateJSONCodingKey($this->jsonCodingKey);
+        return Left::validateLeft($this->left);
     }
 
     /**
@@ -28620,44 +28438,44 @@ class JSONCodingKey {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JSONCodingKey'} = $this->toJSONCodingKey();
+        $out->{'left'} = $this->toLeft();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONCodingKey
+     * @return Left
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONCodingKey {
-        if (!property_exists($obj, 'JSONCodingKey')) {
+    public static function from(stdClass $obj): Left {
+        if (!property_exists($obj, 'left')) {
             throw new Exception("Missing required property");
         }
-        return new JSONCodingKey(
-         JSONCodingKey::fromJSONCodingKey($obj->{'JSONCodingKey'})
+        return new Left(
+         Left::fromLeft($obj->{'left'})
         );
     }
 
     /**
-     * @return JSONCodingKey
+     * @return Left
      */
-    public static function sample(): JSONCodingKey {
-        return new JSONCodingKey(
-         JSONCodingKey::sampleJSONCodingKey()
+    public static function sample(): Left {
+        return new Left(
+         Left::sampleLeft()
         );
     }
 }
 
-// This is an autogenerated file:JSONConverter
+// This is an autogenerated file:Let
 
-class JSONConverter {
-    private int $jsonConverter; // json:json_converter Required
+class Let {
+    private int $let; // json:let Required
 
     /**
-     * @param int $jsonConverter
+     * @param int $let
      */
-    public function __construct(int $jsonConverter) {
-        $this->jsonConverter = $jsonConverter;
+    public function __construct(int $let) {
+        $this->let = $let;
     }
 
     /**
@@ -28665,7 +28483,7 @@ class JSONConverter {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONConverter(int $value): int {
+    public static function fromLet(int $value): int {
         return $value; /*int*/
     }
 
@@ -28673,11 +28491,11 @@ class JSONConverter {
      * @throws Exception
      * @return int
      */
-    public function toJSONConverter(): int {
-        if (JSONConverter::validateJSONConverter($this->jsonConverter))  {
-            return $this->jsonConverter; /*int*/
+    public function toLet(): int {
+        if (Let::validateLet($this->let))  {
+            return $this->let; /*int*/
         }
-        throw new Exception('never get to this JSONConverter::jsonConverter');
+        throw new Exception('never get to this Let::let');
     }
 
     /**
@@ -28685,7 +28503,7 @@ class JSONConverter {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONConverter(int $value): bool {
+    public static function validateLet(int $value): bool {
         return true;
     }
 
@@ -28693,18 +28511,18 @@ class JSONConverter {
      * @throws Exception
      * @return int
      */
-    public function getJSONConverter(): int {
-        if (JSONConverter::validateJSONConverter($this->jsonConverter))  {
-            return $this->jsonConverter;
+    public function getLet(): int {
+        if (Let::validateLet($this->let))  {
+            return $this->let;
         }
-        throw new Exception('never get to getJSONConverter JSONConverter::jsonConverter');
+        throw new Exception('never get to getLet Let::let');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONConverter(): int {
-        return 31; /*31:jsonConverter*/
+    public static function sampleLet(): int {
+        return 31; /*31:let*/
     }
 
     /**
@@ -28712,7 +28530,7 @@ class JSONConverter {
      * @return bool
      */
     public function validate(): bool {
-        return JSONConverter::validateJSONConverter($this->jsonConverter);
+        return Let::validateLet($this->let);
     }
 
     /**
@@ -28721,44 +28539,44 @@ class JSONConverter {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'json_converter'} = $this->toJSONConverter();
+        $out->{'let'} = $this->toLet();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONConverter
+     * @return Let
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONConverter {
-        if (!property_exists($obj, 'json_converter')) {
+    public static function from(stdClass $obj): Let {
+        if (!property_exists($obj, 'let')) {
             throw new Exception("Missing required property");
         }
-        return new JSONConverter(
-         JSONConverter::fromJSONConverter($obj->{'json_converter'})
+        return new Let(
+         Let::fromLet($obj->{'let'})
         );
     }
 
     /**
-     * @return JSONConverter
+     * @return Let
      */
-    public static function sample(): JSONConverter {
-        return new JSONConverter(
-         JSONConverter::sampleJSONConverter()
+    public static function sample(): Let {
+        return new Let(
+         Let::sampleLet()
         );
     }
 }
 
-// This is an autogenerated file:JSONDecoder
+// This is an autogenerated file:ListClass
 
-class JSONDecoder {
-    private int $jsonDecoder; // json:JSONDecoder Required
+class ListClass {
+    private int $list; // json:list Required
 
     /**
-     * @param int $jsonDecoder
+     * @param int $list
      */
-    public function __construct(int $jsonDecoder) {
-        $this->jsonDecoder = $jsonDecoder;
+    public function __construct(int $list) {
+        $this->list = $list;
     }
 
     /**
@@ -28766,7 +28584,7 @@ class JSONDecoder {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONDecoder(int $value): int {
+    public static function fromList(int $value): int {
         return $value; /*int*/
     }
 
@@ -28774,11 +28592,11 @@ class JSONDecoder {
      * @throws Exception
      * @return int
      */
-    public function toJSONDecoder(): int {
-        if (JSONDecoder::validateJSONDecoder($this->jsonDecoder))  {
-            return $this->jsonDecoder; /*int*/
+    public function toList(): int {
+        if (ListClass::validateList($this->list))  {
+            return $this->list; /*int*/
         }
-        throw new Exception('never get to this JSONDecoder::jsonDecoder');
+        throw new Exception('never get to this ListClass::list');
     }
 
     /**
@@ -28786,7 +28604,7 @@ class JSONDecoder {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONDecoder(int $value): bool {
+    public static function validateList(int $value): bool {
         return true;
     }
 
@@ -28794,18 +28612,18 @@ class JSONDecoder {
      * @throws Exception
      * @return int
      */
-    public function getJSONDecoder(): int {
-        if (JSONDecoder::validateJSONDecoder($this->jsonDecoder))  {
-            return $this->jsonDecoder;
+    public function getList(): int {
+        if (ListClass::validateList($this->list))  {
+            return $this->list;
         }
-        throw new Exception('never get to getJSONDecoder JSONDecoder::jsonDecoder');
+        throw new Exception('never get to getList ListClass::list');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONDecoder(): int {
-        return 31; /*31:jsonDecoder*/
+    public static function sampleList(): int {
+        return 31; /*31:list*/
     }
 
     /**
@@ -28813,7 +28631,7 @@ class JSONDecoder {
      * @return bool
      */
     public function validate(): bool {
-        return JSONDecoder::validateJSONDecoder($this->jsonDecoder);
+        return ListClass::validateList($this->list);
     }
 
     /**
@@ -28822,44 +28640,44 @@ class JSONDecoder {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JSONDecoder'} = $this->toJSONDecoder();
+        $out->{'list'} = $this->toList();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONDecoder
+     * @return ListClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONDecoder {
-        if (!property_exists($obj, 'JSONDecoder')) {
+    public static function from(stdClass $obj): ListClass {
+        if (!property_exists($obj, 'list')) {
             throw new Exception("Missing required property");
         }
-        return new JSONDecoder(
-         JSONDecoder::fromJSONDecoder($obj->{'JSONDecoder'})
+        return new ListClass(
+         ListClass::fromList($obj->{'list'})
         );
     }
 
     /**
-     * @return JSONDecoder
+     * @return ListClass
      */
-    public static function sample(): JSONDecoder {
-        return new JSONDecoder(
-         JSONDecoder::sampleJSONDecoder()
+    public static function sample(): ListClass {
+        return new ListClass(
+         ListClass::sampleList()
         );
     }
 }
 
-// This is an autogenerated file:JSONEncoder
+// This is an autogenerated file:Lock
 
-class JSONEncoder {
-    private int $jsonEncoder; // json:JSONEncoder Required
+class Lock {
+    private int $lock; // json:lock Required
 
     /**
-     * @param int $jsonEncoder
+     * @param int $lock
      */
-    public function __construct(int $jsonEncoder) {
-        $this->jsonEncoder = $jsonEncoder;
+    public function __construct(int $lock) {
+        $this->lock = $lock;
     }
 
     /**
@@ -28867,7 +28685,7 @@ class JSONEncoder {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONEncoder(int $value): int {
+    public static function fromLock(int $value): int {
         return $value; /*int*/
     }
 
@@ -28875,11 +28693,11 @@ class JSONEncoder {
      * @throws Exception
      * @return int
      */
-    public function toJSONEncoder(): int {
-        if (JSONEncoder::validateJSONEncoder($this->jsonEncoder))  {
-            return $this->jsonEncoder; /*int*/
+    public function toLock(): int {
+        if (Lock::validateLock($this->lock))  {
+            return $this->lock; /*int*/
         }
-        throw new Exception('never get to this JSONEncoder::jsonEncoder');
+        throw new Exception('never get to this Lock::lock');
     }
 
     /**
@@ -28887,7 +28705,7 @@ class JSONEncoder {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONEncoder(int $value): bool {
+    public static function validateLock(int $value): bool {
         return true;
     }
 
@@ -28895,18 +28713,18 @@ class JSONEncoder {
      * @throws Exception
      * @return int
      */
-    public function getJSONEncoder(): int {
-        if (JSONEncoder::validateJSONEncoder($this->jsonEncoder))  {
-            return $this->jsonEncoder;
+    public function getLock(): int {
+        if (Lock::validateLock($this->lock))  {
+            return $this->lock;
         }
-        throw new Exception('never get to getJSONEncoder JSONEncoder::jsonEncoder');
+        throw new Exception('never get to getLock Lock::lock');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONEncoder(): int {
-        return 31; /*31:jsonEncoder*/
+    public static function sampleLock(): int {
+        return 31; /*31:lock*/
     }
 
     /**
@@ -28914,7 +28732,7 @@ class JSONEncoder {
      * @return bool
      */
     public function validate(): bool {
-        return JSONEncoder::validateJSONEncoder($this->jsonEncoder);
+        return Lock::validateLock($this->lock);
     }
 
     /**
@@ -28923,44 +28741,44 @@ class JSONEncoder {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JSONEncoder'} = $this->toJSONEncoder();
+        $out->{'lock'} = $this->toLock();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONEncoder
+     * @return Lock
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONEncoder {
-        if (!property_exists($obj, 'JSONEncoder')) {
+    public static function from(stdClass $obj): Lock {
+        if (!property_exists($obj, 'lock')) {
             throw new Exception("Missing required property");
         }
-        return new JSONEncoder(
-         JSONEncoder::fromJSONEncoder($obj->{'JSONEncoder'})
+        return new Lock(
+         Lock::fromLock($obj->{'lock'})
         );
     }
 
     /**
-     * @return JSONEncoder
+     * @return Lock
      */
-    public static function sample(): JSONEncoder {
-        return new JSONEncoder(
-         JSONEncoder::sampleJSONEncoder()
+    public static function sample(): Lock {
+        return new Lock(
+         Lock::sampleLock()
         );
     }
 }
 
-// This is an autogenerated file:JSONExceptionClass
+// This is an autogenerated file:Long
 
-class JSONExceptionClass {
-    private int $jsonException; // json:JsonException Required
+class Long {
+    private int $long; // json:long Required
 
     /**
-     * @param int $jsonException
+     * @param int $long
      */
-    public function __construct(int $jsonException) {
-        $this->jsonException = $jsonException;
+    public function __construct(int $long) {
+        $this->long = $long;
     }
 
     /**
@@ -28968,7 +28786,7 @@ class JSONExceptionClass {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONException(int $value): int {
+    public static function fromLong(int $value): int {
         return $value; /*int*/
     }
 
@@ -28976,11 +28794,11 @@ class JSONExceptionClass {
      * @throws Exception
      * @return int
      */
-    public function toJSONException(): int {
-        if (JSONExceptionClass::validateJSONException($this->jsonException))  {
-            return $this->jsonException; /*int*/
+    public function toLong(): int {
+        if (Long::validateLong($this->long))  {
+            return $this->long; /*int*/
         }
-        throw new Exception('never get to this JSONExceptionClass::jsonException');
+        throw new Exception('never get to this Long::long');
     }
 
     /**
@@ -28988,7 +28806,7 @@ class JSONExceptionClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONException(int $value): bool {
+    public static function validateLong(int $value): bool {
         return true;
     }
 
@@ -28996,18 +28814,18 @@ class JSONExceptionClass {
      * @throws Exception
      * @return int
      */
-    public function getJSONException(): int {
-        if (JSONExceptionClass::validateJSONException($this->jsonException))  {
-            return $this->jsonException;
+    public function getLong(): int {
+        if (Long::validateLong($this->long))  {
+            return $this->long;
         }
-        throw new Exception('never get to getJSONException JSONExceptionClass::jsonException');
+        throw new Exception('never get to getLong Long::long');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONException(): int {
-        return 31; /*31:jsonException*/
+    public static function sampleLong(): int {
+        return 31; /*31:long*/
     }
 
     /**
@@ -29015,7 +28833,7 @@ class JSONExceptionClass {
      * @return bool
      */
     public function validate(): bool {
-        return JSONExceptionClass::validateJSONException($this->jsonException);
+        return Long::validateLong($this->long);
     }
 
     /**
@@ -29024,44 +28842,44 @@ class JSONExceptionClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonException'} = $this->toJSONException();
+        $out->{'long'} = $this->toLong();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONExceptionClass
+     * @return Long
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONExceptionClass {
-        if (!property_exists($obj, 'JsonException')) {
+    public static function from(stdClass $obj): Long {
+        if (!property_exists($obj, 'long')) {
             throw new Exception("Missing required property");
         }
-        return new JSONExceptionClass(
-         JSONExceptionClass::fromJSONException($obj->{'JsonException'})
+        return new Long(
+         Long::fromLong($obj->{'long'})
         );
     }
 
     /**
-     * @return JSONExceptionClass
+     * @return Long
      */
-    public static function sample(): JSONExceptionClass {
-        return new JSONExceptionClass(
-         JSONExceptionClass::sampleJSONException()
+    public static function sample(): Long {
+        return new Long(
+         Long::sampleLong()
         );
     }
 }
 
-// This is an autogenerated file:JSONGenerator
+// This is an autogenerated file:Map
 
-class JSONGenerator {
-    private int $jsonGenerator; // json:JsonGenerator Required
+class Map {
+    private int $map; // json:map Required
 
     /**
-     * @param int $jsonGenerator
+     * @param int $map
      */
-    public function __construct(int $jsonGenerator) {
-        $this->jsonGenerator = $jsonGenerator;
+    public function __construct(int $map) {
+        $this->map = $map;
     }
 
     /**
@@ -29069,7 +28887,7 @@ class JSONGenerator {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONGenerator(int $value): int {
+    public static function fromMap(int $value): int {
         return $value; /*int*/
     }
 
@@ -29077,11 +28895,11 @@ class JSONGenerator {
      * @throws Exception
      * @return int
      */
-    public function toJSONGenerator(): int {
-        if (JSONGenerator::validateJSONGenerator($this->jsonGenerator))  {
-            return $this->jsonGenerator; /*int*/
+    public function toMap(): int {
+        if (Map::validateMap($this->map))  {
+            return $this->map; /*int*/
         }
-        throw new Exception('never get to this JSONGenerator::jsonGenerator');
+        throw new Exception('never get to this Map::map');
     }
 
     /**
@@ -29089,7 +28907,7 @@ class JSONGenerator {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONGenerator(int $value): bool {
+    public static function validateMap(int $value): bool {
         return true;
     }
 
@@ -29097,18 +28915,18 @@ class JSONGenerator {
      * @throws Exception
      * @return int
      */
-    public function getJSONGenerator(): int {
-        if (JSONGenerator::validateJSONGenerator($this->jsonGenerator))  {
-            return $this->jsonGenerator;
+    public function getMap(): int {
+        if (Map::validateMap($this->map))  {
+            return $this->map;
         }
-        throw new Exception('never get to getJSONGenerator JSONGenerator::jsonGenerator');
+        throw new Exception('never get to getMap Map::map');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONGenerator(): int {
-        return 31; /*31:jsonGenerator*/
+    public static function sampleMap(): int {
+        return 31; /*31:map*/
     }
 
     /**
@@ -29116,7 +28934,7 @@ class JSONGenerator {
      * @return bool
      */
     public function validate(): bool {
-        return JSONGenerator::validateJSONGenerator($this->jsonGenerator);
+        return Map::validateMap($this->map);
     }
 
     /**
@@ -29125,44 +28943,44 @@ class JSONGenerator {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonGenerator'} = $this->toJSONGenerator();
+        $out->{'map'} = $this->toMap();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONGenerator
+     * @return Map
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONGenerator {
-        if (!property_exists($obj, 'JsonGenerator')) {
+    public static function from(stdClass $obj): Map {
+        if (!property_exists($obj, 'map')) {
             throw new Exception("Missing required property");
         }
-        return new JSONGenerator(
-         JSONGenerator::fromJSONGenerator($obj->{'JsonGenerator'})
+        return new Map(
+         Map::fromMap($obj->{'map'})
         );
     }
 
     /**
-     * @return JSONGenerator
+     * @return Map
      */
-    public static function sample(): JSONGenerator {
-        return new JSONGenerator(
-         JSONGenerator::sampleJSONGenerator()
+    public static function sample(): Map {
+        return new Map(
+         Map::sampleMap()
         );
     }
 }
 
-// This is an autogenerated file:JSONNode
+// This is an autogenerated file:MetadataPropertyHandling
 
-class JSONNode {
-    private int $jsonNode; // json:JsonNode Required
+class MetadataPropertyHandling {
+    private int $metadataPropertyHandling; // json:metadata_property_handling Required
 
     /**
-     * @param int $jsonNode
+     * @param int $metadataPropertyHandling
      */
-    public function __construct(int $jsonNode) {
-        $this->jsonNode = $jsonNode;
+    public function __construct(int $metadataPropertyHandling) {
+        $this->metadataPropertyHandling = $metadataPropertyHandling;
     }
 
     /**
@@ -29170,7 +28988,7 @@ class JSONNode {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONNode(int $value): int {
+    public static function fromMetadataPropertyHandling(int $value): int {
         return $value; /*int*/
     }
 
@@ -29178,11 +28996,11 @@ class JSONNode {
      * @throws Exception
      * @return int
      */
-    public function toJSONNode(): int {
-        if (JSONNode::validateJSONNode($this->jsonNode))  {
-            return $this->jsonNode; /*int*/
+    public function toMetadataPropertyHandling(): int {
+        if (MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
+            return $this->metadataPropertyHandling; /*int*/
         }
-        throw new Exception('never get to this JSONNode::jsonNode');
+        throw new Exception('never get to this MetadataPropertyHandling::metadataPropertyHandling');
     }
 
     /**
@@ -29190,7 +29008,7 @@ class JSONNode {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONNode(int $value): bool {
+    public static function validateMetadataPropertyHandling(int $value): bool {
         return true;
     }
 
@@ -29198,18 +29016,18 @@ class JSONNode {
      * @throws Exception
      * @return int
      */
-    public function getJSONNode(): int {
-        if (JSONNode::validateJSONNode($this->jsonNode))  {
-            return $this->jsonNode;
+    public function getMetadataPropertyHandling(): int {
+        if (MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
+            return $this->metadataPropertyHandling;
         }
-        throw new Exception('never get to getJSONNode JSONNode::jsonNode');
+        throw new Exception('never get to getMetadataPropertyHandling MetadataPropertyHandling::metadataPropertyHandling');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONNode(): int {
-        return 31; /*31:jsonNode*/
+    public static function sampleMetadataPropertyHandling(): int {
+        return 31; /*31:metadataPropertyHandling*/
     }
 
     /**
@@ -29217,7 +29035,7 @@ class JSONNode {
      * @return bool
      */
     public function validate(): bool {
-        return JSONNode::validateJSONNode($this->jsonNode);
+        return MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling);
     }
 
     /**
@@ -29226,44 +29044,44 @@ class JSONNode {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonNode'} = $this->toJSONNode();
+        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONNode
+     * @return MetadataPropertyHandling
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONNode {
-        if (!property_exists($obj, 'JsonNode')) {
+    public static function from(stdClass $obj): MetadataPropertyHandling {
+        if (!property_exists($obj, 'metadata_property_handling')) {
             throw new Exception("Missing required property");
         }
-        return new JSONNode(
-         JSONNode::fromJSONNode($obj->{'JsonNode'})
+        return new MetadataPropertyHandling(
+         MetadataPropertyHandling::fromMetadataPropertyHandling($obj->{'metadata_property_handling'})
         );
     }
 
     /**
-     * @return JSONNode
+     * @return MetadataPropertyHandling
      */
-    public static function sample(): JSONNode {
-        return new JSONNode(
-         JSONNode::sampleJSONNode()
+    public static function sample(): MetadataPropertyHandling {
+        return new MetadataPropertyHandling(
+         MetadataPropertyHandling::sampleMetadataPropertyHandling()
         );
     }
 }
 
-// This is an autogenerated file:JSONNull
+// This is an autogenerated file:Module
 
-class JSONNull {
-    private int $jsonNull; // json:JSONNull Required
+class Module {
+    private int $module; // json:module Required
 
     /**
-     * @param int $jsonNull
+     * @param int $module
      */
-    public function __construct(int $jsonNull) {
-        $this->jsonNull = $jsonNull;
+    public function __construct(int $module) {
+        $this->module = $module;
     }
 
     /**
@@ -29271,7 +29089,7 @@ class JSONNull {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONNull(int $value): int {
+    public static function fromModule(int $value): int {
         return $value; /*int*/
     }
 
@@ -29279,11 +29097,11 @@ class JSONNull {
      * @throws Exception
      * @return int
      */
-    public function toJSONNull(): int {
-        if (JSONNull::validateJSONNull($this->jsonNull))  {
-            return $this->jsonNull; /*int*/
+    public function toModule(): int {
+        if (Module::validateModule($this->module))  {
+            return $this->module; /*int*/
         }
-        throw new Exception('never get to this JSONNull::jsonNull');
+        throw new Exception('never get to this Module::module');
     }
 
     /**
@@ -29291,7 +29109,7 @@ class JSONNull {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONNull(int $value): bool {
+    public static function validateModule(int $value): bool {
         return true;
     }
 
@@ -29299,18 +29117,18 @@ class JSONNull {
      * @throws Exception
      * @return int
      */
-    public function getJSONNull(): int {
-        if (JSONNull::validateJSONNull($this->jsonNull))  {
-            return $this->jsonNull;
+    public function getModule(): int {
+        if (Module::validateModule($this->module))  {
+            return $this->module;
         }
-        throw new Exception('never get to getJSONNull JSONNull::jsonNull');
+        throw new Exception('never get to getModule Module::module');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONNull(): int {
-        return 31; /*31:jsonNull*/
+    public static function sampleModule(): int {
+        return 31; /*31:module*/
     }
 
     /**
@@ -29318,7 +29136,7 @@ class JSONNull {
      * @return bool
      */
     public function validate(): bool {
-        return JSONNull::validateJSONNull($this->jsonNull);
+        return Module::validateModule($this->module);
     }
 
     /**
@@ -29327,44 +29145,44 @@ class JSONNull {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JSONNull'} = $this->toJSONNull();
+        $out->{'module'} = $this->toModule();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONNull
+     * @return Module
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONNull {
-        if (!property_exists($obj, 'JSONNull')) {
+    public static function from(stdClass $obj): Module {
+        if (!property_exists($obj, 'module')) {
             throw new Exception("Missing required property");
         }
-        return new JSONNull(
-         JSONNull::fromJSONNull($obj->{'JSONNull'})
+        return new Module(
+         Module::fromModule($obj->{'module'})
         );
     }
 
     /**
-     * @return JSONNull
+     * @return Module
      */
-    public static function sample(): JSONNull {
-        return new JSONNull(
-         JSONNull::sampleJSONNull()
+    public static function sample(): Module {
+        return new Module(
+         Module::sampleModule()
         );
     }
 }
 
-// This is an autogenerated file:JSONParser
+// This is an autogenerated file:Mutable
 
-class JSONParser {
-    private int $jsonParser; // json:JsonParser Required
+class Mutable {
+    private int $mutable; // json:mutable Required
 
     /**
-     * @param int $jsonParser
+     * @param int $mutable
      */
-    public function __construct(int $jsonParser) {
-        $this->jsonParser = $jsonParser;
+    public function __construct(int $mutable) {
+        $this->mutable = $mutable;
     }
 
     /**
@@ -29372,7 +29190,7 @@ class JSONParser {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONParser(int $value): int {
+    public static function fromMutable(int $value): int {
         return $value; /*int*/
     }
 
@@ -29380,11 +29198,11 @@ class JSONParser {
      * @throws Exception
      * @return int
      */
-    public function toJSONParser(): int {
-        if (JSONParser::validateJSONParser($this->jsonParser))  {
-            return $this->jsonParser; /*int*/
+    public function toMutable(): int {
+        if (Mutable::validateMutable($this->mutable))  {
+            return $this->mutable; /*int*/
         }
-        throw new Exception('never get to this JSONParser::jsonParser');
+        throw new Exception('never get to this Mutable::mutable');
     }
 
     /**
@@ -29392,7 +29210,7 @@ class JSONParser {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONParser(int $value): bool {
+    public static function validateMutable(int $value): bool {
         return true;
     }
 
@@ -29400,18 +29218,18 @@ class JSONParser {
      * @throws Exception
      * @return int
      */
-    public function getJSONParser(): int {
-        if (JSONParser::validateJSONParser($this->jsonParser))  {
-            return $this->jsonParser;
+    public function getMutable(): int {
+        if (Mutable::validateMutable($this->mutable))  {
+            return $this->mutable;
         }
-        throw new Exception('never get to getJSONParser JSONParser::jsonParser');
+        throw new Exception('never get to getMutable Mutable::mutable');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONParser(): int {
-        return 31; /*31:jsonParser*/
+    public static function sampleMutable(): int {
+        return 31; /*31:mutable*/
     }
 
     /**
@@ -29419,7 +29237,7 @@ class JSONParser {
      * @return bool
      */
     public function validate(): bool {
-        return JSONParser::validateJSONParser($this->jsonParser);
+        return Mutable::validateMutable($this->mutable);
     }
 
     /**
@@ -29428,44 +29246,44 @@ class JSONParser {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonParser'} = $this->toJSONParser();
+        $out->{'mutable'} = $this->toMutable();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONParser
+     * @return Mutable
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONParser {
-        if (!property_exists($obj, 'JsonParser')) {
+    public static function from(stdClass $obj): Mutable {
+        if (!property_exists($obj, 'mutable')) {
             throw new Exception("Missing required property");
         }
-        return new JSONParser(
-         JSONParser::fromJSONParser($obj->{'JsonParser'})
+        return new Mutable(
+         Mutable::fromMutable($obj->{'mutable'})
         );
     }
 
     /**
-     * @return JSONParser
+     * @return Mutable
      */
-    public static function sample(): JSONParser {
-        return new JSONParser(
-         JSONParser::sampleJSONParser()
+    public static function sample(): Mutable {
+        return new Mutable(
+         Mutable::sampleMutable()
         );
     }
 }
 
-// This is an autogenerated file:JSONReader
+// This is an autogenerated file:Mutating
 
-class JSONReader {
-    private int $jsonReader; // json:JsonReader Required
+class Mutating {
+    private int $mutating; // json:mutating Required
 
     /**
-     * @param int $jsonReader
+     * @param int $mutating
      */
-    public function __construct(int $jsonReader) {
-        $this->jsonReader = $jsonReader;
+    public function __construct(int $mutating) {
+        $this->mutating = $mutating;
     }
 
     /**
@@ -29473,7 +29291,7 @@ class JSONReader {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONReader(int $value): int {
+    public static function fromMutating(int $value): int {
         return $value; /*int*/
     }
 
@@ -29481,11 +29299,11 @@ class JSONReader {
      * @throws Exception
      * @return int
      */
-    public function toJSONReader(): int {
-        if (JSONReader::validateJSONReader($this->jsonReader))  {
-            return $this->jsonReader; /*int*/
+    public function toMutating(): int {
+        if (Mutating::validateMutating($this->mutating))  {
+            return $this->mutating; /*int*/
         }
-        throw new Exception('never get to this JSONReader::jsonReader');
+        throw new Exception('never get to this Mutating::mutating');
     }
 
     /**
@@ -29493,7 +29311,7 @@ class JSONReader {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONReader(int $value): bool {
+    public static function validateMutating(int $value): bool {
         return true;
     }
 
@@ -29501,18 +29319,18 @@ class JSONReader {
      * @throws Exception
      * @return int
      */
-    public function getJSONReader(): int {
-        if (JSONReader::validateJSONReader($this->jsonReader))  {
-            return $this->jsonReader;
+    public function getMutating(): int {
+        if (Mutating::validateMutating($this->mutating))  {
+            return $this->mutating;
         }
-        throw new Exception('never get to getJSONReader JSONReader::jsonReader');
+        throw new Exception('never get to getMutating Mutating::mutating');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONReader(): int {
-        return 31; /*31:jsonReader*/
+    public static function sampleMutating(): int {
+        return 31; /*31:mutating*/
     }
 
     /**
@@ -29520,7 +29338,7 @@ class JSONReader {
      * @return bool
      */
     public function validate(): bool {
-        return JSONReader::validateJSONReader($this->jsonReader);
+        return Mutating::validateMutating($this->mutating);
     }
 
     /**
@@ -29529,44 +29347,44 @@ class JSONReader {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonReader'} = $this->toJSONReader();
+        $out->{'mutating'} = $this->toMutating();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONReader
+     * @return Mutating
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONReader {
-        if (!property_exists($obj, 'JsonReader')) {
+    public static function from(stdClass $obj): Mutating {
+        if (!property_exists($obj, 'mutating')) {
             throw new Exception("Missing required property");
         }
-        return new JSONReader(
-         JSONReader::fromJSONReader($obj->{'JsonReader'})
+        return new Mutating(
+         Mutating::fromMutating($obj->{'mutating'})
         );
     }
 
     /**
-     * @return JSONReader
+     * @return Mutating
      */
-    public static function sample(): JSONReader {
-        return new JSONReader(
-         JSONReader::sampleJSONReader()
+    public static function sample(): Mutating {
+        return new Mutating(
+         Mutating::sampleMutating()
         );
     }
 }
 
-// This is an autogenerated file:JSONSerializer
+// This is an autogenerated file:NamespaceClass
 
-class JSONSerializer {
-    private int $jsonSerializer; // json:json_serializer Required
+class NamespaceClass {
+    private int $namespace; // json:namespace Required
 
     /**
-     * @param int $jsonSerializer
+     * @param int $namespace
      */
-    public function __construct(int $jsonSerializer) {
-        $this->jsonSerializer = $jsonSerializer;
+    public function __construct(int $namespace) {
+        $this->namespace = $namespace;
     }
 
     /**
@@ -29574,7 +29392,7 @@ class JSONSerializer {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONSerializer(int $value): int {
+    public static function fromNamespace(int $value): int {
         return $value; /*int*/
     }
 
@@ -29582,11 +29400,11 @@ class JSONSerializer {
      * @throws Exception
      * @return int
      */
-    public function toJSONSerializer(): int {
-        if (JSONSerializer::validateJSONSerializer($this->jsonSerializer))  {
-            return $this->jsonSerializer; /*int*/
+    public function toNamespace(): int {
+        if (NamespaceClass::validateNamespace($this->namespace))  {
+            return $this->namespace; /*int*/
         }
-        throw new Exception('never get to this JSONSerializer::jsonSerializer');
+        throw new Exception('never get to this NamespaceClass::namespace');
     }
 
     /**
@@ -29594,7 +29412,7 @@ class JSONSerializer {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONSerializer(int $value): bool {
+    public static function validateNamespace(int $value): bool {
         return true;
     }
 
@@ -29602,18 +29420,18 @@ class JSONSerializer {
      * @throws Exception
      * @return int
      */
-    public function getJSONSerializer(): int {
-        if (JSONSerializer::validateJSONSerializer($this->jsonSerializer))  {
-            return $this->jsonSerializer;
+    public function getNamespace(): int {
+        if (NamespaceClass::validateNamespace($this->namespace))  {
+            return $this->namespace;
         }
-        throw new Exception('never get to getJSONSerializer JSONSerializer::jsonSerializer');
+        throw new Exception('never get to getNamespace NamespaceClass::namespace');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONSerializer(): int {
-        return 31; /*31:jsonSerializer*/
+    public static function sampleNamespace(): int {
+        return 31; /*31:namespace*/
     }
 
     /**
@@ -29621,7 +29439,7 @@ class JSONSerializer {
      * @return bool
      */
     public function validate(): bool {
-        return JSONSerializer::validateJSONSerializer($this->jsonSerializer);
+        return NamespaceClass::validateNamespace($this->namespace);
     }
 
     /**
@@ -29630,44 +29448,44 @@ class JSONSerializer {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'json_serializer'} = $this->toJSONSerializer();
+        $out->{'namespace'} = $this->toNamespace();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONSerializer
+     * @return NamespaceClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONSerializer {
-        if (!property_exists($obj, 'json_serializer')) {
+    public static function from(stdClass $obj): NamespaceClass {
+        if (!property_exists($obj, 'namespace')) {
             throw new Exception("Missing required property");
         }
-        return new JSONSerializer(
-         JSONSerializer::fromJSONSerializer($obj->{'json_serializer'})
+        return new NamespaceClass(
+         NamespaceClass::fromNamespace($obj->{'namespace'})
         );
     }
 
     /**
-     * @return JSONSerializer
+     * @return NamespaceClass
      */
-    public static function sample(): JSONSerializer {
-        return new JSONSerializer(
-         JSONSerializer::sampleJSONSerializer()
+    public static function sample(): NamespaceClass {
+        return new NamespaceClass(
+         NamespaceClass::sampleNamespace()
         );
     }
 }
 
-// This is an autogenerated file:JSONToken
+// This is an autogenerated file:Native
 
-class JSONToken {
-    private int $jsonToken; // json:json_token Required
+class Native {
+    private int $native; // json:native Required
 
     /**
-     * @param int $jsonToken
+     * @param int $native
      */
-    public function __construct(int $jsonToken) {
-        $this->jsonToken = $jsonToken;
+    public function __construct(int $native) {
+        $this->native = $native;
     }
 
     /**
@@ -29675,7 +29493,7 @@ class JSONToken {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONToken(int $value): int {
+    public static function fromNative(int $value): int {
         return $value; /*int*/
     }
 
@@ -29683,11 +29501,11 @@ class JSONToken {
      * @throws Exception
      * @return int
      */
-    public function toJSONToken(): int {
-        if (JSONToken::validateJSONToken($this->jsonToken))  {
-            return $this->jsonToken; /*int*/
+    public function toNative(): int {
+        if (Native::validateNative($this->native))  {
+            return $this->native; /*int*/
         }
-        throw new Exception('never get to this JSONToken::jsonToken');
+        throw new Exception('never get to this Native::native');
     }
 
     /**
@@ -29695,7 +29513,7 @@ class JSONToken {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONToken(int $value): bool {
+    public static function validateNative(int $value): bool {
         return true;
     }
 
@@ -29703,18 +29521,18 @@ class JSONToken {
      * @throws Exception
      * @return int
      */
-    public function getJSONToken(): int {
-        if (JSONToken::validateJSONToken($this->jsonToken))  {
-            return $this->jsonToken;
+    public function getNative(): int {
+        if (Native::validateNative($this->native))  {
+            return $this->native;
         }
-        throw new Exception('never get to getJSONToken JSONToken::jsonToken');
+        throw new Exception('never get to getNative Native::native');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONToken(): int {
-        return 31; /*31:jsonToken*/
+    public static function sampleNative(): int {
+        return 31; /*31:native*/
     }
 
     /**
@@ -29722,7 +29540,7 @@ class JSONToken {
      * @return bool
      */
     public function validate(): bool {
-        return JSONToken::validateJSONToken($this->jsonToken);
+        return Native::validateNative($this->native);
     }
 
     /**
@@ -29731,44 +29549,44 @@ class JSONToken {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'json_token'} = $this->toJSONToken();
+        $out->{'native'} = $this->toNative();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONToken
+     * @return Native
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONToken {
-        if (!property_exists($obj, 'json_token')) {
+    public static function from(stdClass $obj): Native {
+        if (!property_exists($obj, 'native')) {
             throw new Exception("Missing required property");
         }
-        return new JSONToken(
-         JSONToken::fromJSONToken($obj->{'json_token'})
+        return new Native(
+         Native::fromNative($obj->{'native'})
         );
     }
 
     /**
-     * @return JSONToken
+     * @return Native
      */
-    public static function sample(): JSONToken {
-        return new JSONToken(
-         JSONToken::sampleJSONToken()
+    public static function sample(): Native {
+        return new Native(
+         Native::sampleNative()
         );
     }
 }
 
-// This is an autogenerated file:JSONTokenType
+// This is an autogenerated file:NewClass
 
-class JSONTokenType {
-    private int $jsonTokenType; // json:JsonTokenType Required
+class NewClass {
+    private int $new; // json:new Required
 
     /**
-     * @param int $jsonTokenType
+     * @param int $new
      */
-    public function __construct(int $jsonTokenType) {
-        $this->jsonTokenType = $jsonTokenType;
+    public function __construct(int $new) {
+        $this->new = $new;
     }
 
     /**
@@ -29776,7 +29594,7 @@ class JSONTokenType {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONTokenType(int $value): int {
+    public static function fromNew(int $value): int {
         return $value; /*int*/
     }
 
@@ -29784,11 +29602,11 @@ class JSONTokenType {
      * @throws Exception
      * @return int
      */
-    public function toJSONTokenType(): int {
-        if (JSONTokenType::validateJSONTokenType($this->jsonTokenType))  {
-            return $this->jsonTokenType; /*int*/
+    public function toNew(): int {
+        if (NewClass::validateNew($this->new))  {
+            return $this->new; /*int*/
         }
-        throw new Exception('never get to this JSONTokenType::jsonTokenType');
+        throw new Exception('never get to this NewClass::new');
     }
 
     /**
@@ -29796,7 +29614,7 @@ class JSONTokenType {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONTokenType(int $value): bool {
+    public static function validateNew(int $value): bool {
         return true;
     }
 
@@ -29804,18 +29622,18 @@ class JSONTokenType {
      * @throws Exception
      * @return int
      */
-    public function getJSONTokenType(): int {
-        if (JSONTokenType::validateJSONTokenType($this->jsonTokenType))  {
-            return $this->jsonTokenType;
+    public function getNew(): int {
+        if (NewClass::validateNew($this->new))  {
+            return $this->new;
         }
-        throw new Exception('never get to getJSONTokenType JSONTokenType::jsonTokenType');
+        throw new Exception('never get to getNew NewClass::new');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONTokenType(): int {
-        return 31; /*31:jsonTokenType*/
+    public static function sampleNew(): int {
+        return 31; /*31:new*/
     }
 
     /**
@@ -29823,7 +29641,7 @@ class JSONTokenType {
      * @return bool
      */
     public function validate(): bool {
-        return JSONTokenType::validateJSONTokenType($this->jsonTokenType);
+        return NewClass::validateNew($this->new);
     }
 
     /**
@@ -29832,44 +29650,44 @@ class JSONTokenType {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'JsonTokenType'} = $this->toJSONTokenType();
+        $out->{'new'} = $this->toNew();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONTokenType
+     * @return NewClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONTokenType {
-        if (!property_exists($obj, 'JsonTokenType')) {
+    public static function from(stdClass $obj): NewClass {
+        if (!property_exists($obj, 'new')) {
             throw new Exception("Missing required property");
         }
-        return new JSONTokenType(
-         JSONTokenType::fromJSONTokenType($obj->{'JsonTokenType'})
+        return new NewClass(
+         NewClass::fromNew($obj->{'new'})
         );
     }
 
     /**
-     * @return JSONTokenType
+     * @return NewClass
      */
-    public static function sample(): JSONTokenType {
-        return new JSONTokenType(
-         JSONTokenType::sampleJSONTokenType()
+    public static function sample(): NewClass {
+        return new NewClass(
+         NewClass::sampleNew()
         );
     }
 }
 
-// This is an autogenerated file:JSONWriter
+// This is an autogenerated file:Newtonsoft
 
-class JSONWriter {
-    private int $jsonWriter; // json:json_writer Required
+class Newtonsoft {
+    private int $newtonsoft; // json:newtonsoft Required
 
     /**
-     * @param int $jsonWriter
+     * @param int $newtonsoft
      */
-    public function __construct(int $jsonWriter) {
-        $this->jsonWriter = $jsonWriter;
+    public function __construct(int $newtonsoft) {
+        $this->newtonsoft = $newtonsoft;
     }
 
     /**
@@ -29877,7 +29695,7 @@ class JSONWriter {
      * @throws Exception
      * @return int
      */
-    public static function fromJSONWriter(int $value): int {
+    public static function fromNewtonsoft(int $value): int {
         return $value; /*int*/
     }
 
@@ -29885,11 +29703,11 @@ class JSONWriter {
      * @throws Exception
      * @return int
      */
-    public function toJSONWriter(): int {
-        if (JSONWriter::validateJSONWriter($this->jsonWriter))  {
-            return $this->jsonWriter; /*int*/
+    public function toNewtonsoft(): int {
+        if (Newtonsoft::validateNewtonsoft($this->newtonsoft))  {
+            return $this->newtonsoft; /*int*/
         }
-        throw new Exception('never get to this JSONWriter::jsonWriter');
+        throw new Exception('never get to this Newtonsoft::newtonsoft');
     }
 
     /**
@@ -29897,7 +29715,7 @@ class JSONWriter {
      * @return bool
      * @throws Exception
      */
-    public static function validateJSONWriter(int $value): bool {
+    public static function validateNewtonsoft(int $value): bool {
         return true;
     }
 
@@ -29905,18 +29723,18 @@ class JSONWriter {
      * @throws Exception
      * @return int
      */
-    public function getJSONWriter(): int {
-        if (JSONWriter::validateJSONWriter($this->jsonWriter))  {
-            return $this->jsonWriter;
+    public function getNewtonsoft(): int {
+        if (Newtonsoft::validateNewtonsoft($this->newtonsoft))  {
+            return $this->newtonsoft;
         }
-        throw new Exception('never get to getJSONWriter JSONWriter::jsonWriter');
+        throw new Exception('never get to getNewtonsoft Newtonsoft::newtonsoft');
     }
 
     /**
      * @return int
      */
-    public static function sampleJSONWriter(): int {
-        return 31; /*31:jsonWriter*/
+    public static function sampleNewtonsoft(): int {
+        return 31; /*31:newtonsoft*/
     }
 
     /**
@@ -29924,7 +29742,7 @@ class JSONWriter {
      * @return bool
      */
     public function validate(): bool {
-        return JSONWriter::validateJSONWriter($this->jsonWriter);
+        return Newtonsoft::validateNewtonsoft($this->newtonsoft);
     }
 
     /**
@@ -29933,44 +29751,44 @@ class JSONWriter {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'json_writer'} = $this->toJSONWriter();
+        $out->{'newtonsoft'} = $this->toNewtonsoft();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return JSONWriter
+     * @return Newtonsoft
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONWriter {
-        if (!property_exists($obj, 'json_writer')) {
+    public static function from(stdClass $obj): Newtonsoft {
+        if (!property_exists($obj, 'newtonsoft')) {
             throw new Exception("Missing required property");
         }
-        return new JSONWriter(
-         JSONWriter::fromJSONWriter($obj->{'json_writer'})
+        return new Newtonsoft(
+         Newtonsoft::fromNewtonsoft($obj->{'newtonsoft'})
         );
     }
 
     /**
-     * @return JSONWriter
+     * @return Newtonsoft
      */
-    public static function sample(): JSONWriter {
-        return new JSONWriter(
-         JSONWriter::sampleJSONWriter()
+    public static function sample(): Newtonsoft {
+        return new Newtonsoft(
+         Newtonsoft::sampleNewtonsoft()
         );
     }
 }
 
-// This is an autogenerated file:Lambda
+// This is an autogenerated file:Nil
 
-class Lambda {
-    private int $lambda; // json:lambda Required
+class Nil {
+    private int $nil; // json:nil Required
 
     /**
-     * @param int $lambda
+     * @param int $nil
      */
-    public function __construct(int $lambda) {
-        $this->lambda = $lambda;
+    public function __construct(int $nil) {
+        $this->nil = $nil;
     }
 
     /**
@@ -29978,7 +29796,7 @@ class Lambda {
      * @throws Exception
      * @return int
      */
-    public static function fromLambda(int $value): int {
+    public static function fromNil(int $value): int {
         return $value; /*int*/
     }
 
@@ -29986,11 +29804,11 @@ class Lambda {
      * @throws Exception
      * @return int
      */
-    public function toLambda(): int {
-        if (Lambda::validateLambda($this->lambda))  {
-            return $this->lambda; /*int*/
+    public function toNil(): int {
+        if (Nil::validateNil($this->nil))  {
+            return $this->nil; /*int*/
         }
-        throw new Exception('never get to this Lambda::lambda');
+        throw new Exception('never get to this Nil::nil');
     }
 
     /**
@@ -29998,7 +29816,7 @@ class Lambda {
      * @return bool
      * @throws Exception
      */
-    public static function validateLambda(int $value): bool {
+    public static function validateNil(int $value): bool {
         return true;
     }
 
@@ -30006,18 +29824,18 @@ class Lambda {
      * @throws Exception
      * @return int
      */
-    public function getLambda(): int {
-        if (Lambda::validateLambda($this->lambda))  {
-            return $this->lambda;
+    public function getNil(): int {
+        if (Nil::validateNil($this->nil))  {
+            return $this->nil;
         }
-        throw new Exception('never get to getLambda Lambda::lambda');
+        throw new Exception('never get to getNil Nil::nil');
     }
 
     /**
      * @return int
      */
-    public static function sampleLambda(): int {
-        return 31; /*31:lambda*/
+    public static function sampleNil(): int {
+        return 31; /*31:nil*/
     }
 
     /**
@@ -30025,7 +29843,7 @@ class Lambda {
      * @return bool
      */
     public function validate(): bool {
-        return Lambda::validateLambda($this->lambda);
+        return Nil::validateNil($this->nil);
     }
 
     /**
@@ -30034,44 +29852,44 @@ class Lambda {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'lambda'} = $this->toLambda();
+        $out->{'nil'} = $this->toNil();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Lambda
+     * @return Nil
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lambda {
-        if (!property_exists($obj, 'lambda')) {
+    public static function from(stdClass $obj): Nil {
+        if (!property_exists($obj, 'nil')) {
             throw new Exception("Missing required property");
         }
-        return new Lambda(
-         Lambda::fromLambda($obj->{'lambda'})
+        return new Nil(
+         Nil::fromNil($obj->{'nil'})
         );
     }
 
     /**
-     * @return Lambda
+     * @return Nil
      */
-    public static function sample(): Lambda {
-        return new Lambda(
-         Lambda::sampleLambda()
+    public static function sample(): Nil {
+        return new Nil(
+         Nil::sampleNil()
         );
     }
 }
 
-// This is an autogenerated file:Lazy
+// This is an autogenerated file:No
 
-class Lazy {
-    private int $lazy; // json:lazy Required
+class No {
+    private int $no; // json:NO Required
 
     /**
-     * @param int $lazy
+     * @param int $no
      */
-    public function __construct(int $lazy) {
-        $this->lazy = $lazy;
+    public function __construct(int $no) {
+        $this->no = $no;
     }
 
     /**
@@ -30079,7 +29897,7 @@ class Lazy {
      * @throws Exception
      * @return int
      */
-    public static function fromLazy(int $value): int {
+    public static function fromNo(int $value): int {
         return $value; /*int*/
     }
 
@@ -30087,11 +29905,11 @@ class Lazy {
      * @throws Exception
      * @return int
      */
-    public function toLazy(): int {
-        if (Lazy::validateLazy($this->lazy))  {
-            return $this->lazy; /*int*/
+    public function toNo(): int {
+        if (No::validateNo($this->no))  {
+            return $this->no; /*int*/
         }
-        throw new Exception('never get to this Lazy::lazy');
+        throw new Exception('never get to this No::no');
     }
 
     /**
@@ -30099,7 +29917,7 @@ class Lazy {
      * @return bool
      * @throws Exception
      */
-    public static function validateLazy(int $value): bool {
+    public static function validateNo(int $value): bool {
         return true;
     }
 
@@ -30107,18 +29925,18 @@ class Lazy {
      * @throws Exception
      * @return int
      */
-    public function getLazy(): int {
-        if (Lazy::validateLazy($this->lazy))  {
-            return $this->lazy;
+    public function getNo(): int {
+        if (No::validateNo($this->no))  {
+            return $this->no;
         }
-        throw new Exception('never get to getLazy Lazy::lazy');
+        throw new Exception('never get to getNo No::no');
     }
 
     /**
      * @return int
      */
-    public static function sampleLazy(): int {
-        return 31; /*31:lazy*/
+    public static function sampleNo(): int {
+        return 31; /*31:no*/
     }
 
     /**
@@ -30126,7 +29944,7 @@ class Lazy {
      * @return bool
      */
     public function validate(): bool {
-        return Lazy::validateLazy($this->lazy);
+        return No::validateNo($this->no);
     }
 
     /**
@@ -30135,44 +29953,44 @@ class Lazy {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'lazy'} = $this->toLazy();
+        $out->{'NO'} = $this->toNo();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Lazy
+     * @return No
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lazy {
-        if (!property_exists($obj, 'lazy')) {
+    public static function from(stdClass $obj): No {
+        if (!property_exists($obj, 'NO')) {
             throw new Exception("Missing required property");
         }
-        return new Lazy(
-         Lazy::fromLazy($obj->{'lazy'})
+        return new No(
+         No::fromNo($obj->{'NO'})
         );
     }
 
     /**
-     * @return Lazy
+     * @return No
      */
-    public static function sample(): Lazy {
-        return new Lazy(
-         Lazy::sampleLazy()
+    public static function sample(): No {
+        return new No(
+         No::sampleNo()
         );
     }
 }
 
-// This is an autogenerated file:Left
+// This is an autogenerated file:NoSuchMethod
 
-class Left {
-    private int $left; // json:left Required
+class NoSuchMethod {
+    private int $noSuchMethod; // json:noSuchMethod Required
 
     /**
-     * @param int $left
+     * @param int $noSuchMethod
      */
-    public function __construct(int $left) {
-        $this->left = $left;
+    public function __construct(int $noSuchMethod) {
+        $this->noSuchMethod = $noSuchMethod;
     }
 
     /**
@@ -30180,7 +29998,7 @@ class Left {
      * @throws Exception
      * @return int
      */
-    public static function fromLeft(int $value): int {
+    public static function fromNoSuchMethod(int $value): int {
         return $value; /*int*/
     }
 
@@ -30188,11 +30006,11 @@ class Left {
      * @throws Exception
      * @return int
      */
-    public function toLeft(): int {
-        if (Left::validateLeft($this->left))  {
-            return $this->left; /*int*/
+    public function toNoSuchMethod(): int {
+        if (NoSuchMethod::validateNoSuchMethod($this->noSuchMethod))  {
+            return $this->noSuchMethod; /*int*/
         }
-        throw new Exception('never get to this Left::left');
+        throw new Exception('never get to this NoSuchMethod::noSuchMethod');
     }
 
     /**
@@ -30200,7 +30018,7 @@ class Left {
      * @return bool
      * @throws Exception
      */
-    public static function validateLeft(int $value): bool {
+    public static function validateNoSuchMethod(int $value): bool {
         return true;
     }
 
@@ -30208,18 +30026,18 @@ class Left {
      * @throws Exception
      * @return int
      */
-    public function getLeft(): int {
-        if (Left::validateLeft($this->left))  {
-            return $this->left;
+    public function getNoSuchMethod(): int {
+        if (NoSuchMethod::validateNoSuchMethod($this->noSuchMethod))  {
+            return $this->noSuchMethod;
         }
-        throw new Exception('never get to getLeft Left::left');
+        throw new Exception('never get to getNoSuchMethod NoSuchMethod::noSuchMethod');
     }
 
     /**
      * @return int
      */
-    public static function sampleLeft(): int {
-        return 31; /*31:left*/
+    public static function sampleNoSuchMethod(): int {
+        return 31; /*31:noSuchMethod*/
     }
 
     /**
@@ -30227,7 +30045,7 @@ class Left {
      * @return bool
      */
     public function validate(): bool {
-        return Left::validateLeft($this->left);
+        return NoSuchMethod::validateNoSuchMethod($this->noSuchMethod);
     }
 
     /**
@@ -30236,44 +30054,44 @@ class Left {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'left'} = $this->toLeft();
+        $out->{'noSuchMethod'} = $this->toNoSuchMethod();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Left
+     * @return NoSuchMethod
      * @throws Exception
      */
-    public static function from(stdClass $obj): Left {
-        if (!property_exists($obj, 'left')) {
+    public static function from(stdClass $obj): NoSuchMethod {
+        if (!property_exists($obj, 'noSuchMethod')) {
             throw new Exception("Missing required property");
         }
-        return new Left(
-         Left::fromLeft($obj->{'left'})
+        return new NoSuchMethod(
+         NoSuchMethod::fromNoSuchMethod($obj->{'noSuchMethod'})
         );
     }
 
     /**
-     * @return Left
+     * @return NoSuchMethod
      */
-    public static function sample(): Left {
-        return new Left(
-         Left::sampleLeft()
+    public static function sample(): NoSuchMethod {
+        return new NoSuchMethod(
+         NoSuchMethod::sampleNoSuchMethod()
         );
     }
 }
 
-// This is an autogenerated file:Let
+// This is an autogenerated file:Noexcept
 
-class Let {
-    private int $let; // json:let Required
+class Noexcept {
+    private int $noexcept; // json:noexcept Required
 
     /**
-     * @param int $let
+     * @param int $noexcept
      */
-    public function __construct(int $let) {
-        $this->let = $let;
+    public function __construct(int $noexcept) {
+        $this->noexcept = $noexcept;
     }
 
     /**
@@ -30281,7 +30099,7 @@ class Let {
      * @throws Exception
      * @return int
      */
-    public static function fromLet(int $value): int {
+    public static function fromNoexcept(int $value): int {
         return $value; /*int*/
     }
 
@@ -30289,11 +30107,11 @@ class Let {
      * @throws Exception
      * @return int
      */
-    public function toLet(): int {
-        if (Let::validateLet($this->let))  {
-            return $this->let; /*int*/
+    public function toNoexcept(): int {
+        if (Noexcept::validateNoexcept($this->noexcept))  {
+            return $this->noexcept; /*int*/
         }
-        throw new Exception('never get to this Let::let');
+        throw new Exception('never get to this Noexcept::noexcept');
     }
 
     /**
@@ -30301,7 +30119,7 @@ class Let {
      * @return bool
      * @throws Exception
      */
-    public static function validateLet(int $value): bool {
+    public static function validateNoexcept(int $value): bool {
         return true;
     }
 
@@ -30309,18 +30127,18 @@ class Let {
      * @throws Exception
      * @return int
      */
-    public function getLet(): int {
-        if (Let::validateLet($this->let))  {
-            return $this->let;
+    public function getNoexcept(): int {
+        if (Noexcept::validateNoexcept($this->noexcept))  {
+            return $this->noexcept;
         }
-        throw new Exception('never get to getLet Let::let');
+        throw new Exception('never get to getNoexcept Noexcept::noexcept');
     }
 
     /**
      * @return int
      */
-    public static function sampleLet(): int {
-        return 31; /*31:let*/
+    public static function sampleNoexcept(): int {
+        return 31; /*31:noexcept*/
     }
 
     /**
@@ -30328,7 +30146,7 @@ class Let {
      * @return bool
      */
     public function validate(): bool {
-        return Let::validateLet($this->let);
+        return Noexcept::validateNoexcept($this->noexcept);
     }
 
     /**
@@ -30337,44 +30155,44 @@ class Let {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'let'} = $this->toLet();
+        $out->{'noexcept'} = $this->toNoexcept();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Let
+     * @return Noexcept
      * @throws Exception
      */
-    public static function from(stdClass $obj): Let {
-        if (!property_exists($obj, 'let')) {
+    public static function from(stdClass $obj): Noexcept {
+        if (!property_exists($obj, 'noexcept')) {
             throw new Exception("Missing required property");
         }
-        return new Let(
-         Let::fromLet($obj->{'let'})
+        return new Noexcept(
+         Noexcept::fromNoexcept($obj->{'noexcept'})
         );
     }
 
     /**
-     * @return Let
+     * @return Noexcept
      */
-    public static function sample(): Let {
-        return new Let(
-         Let::sampleLet()
+    public static function sample(): Noexcept {
+        return new Noexcept(
+         Noexcept::sampleNoexcept()
         );
     }
 }
 
-// This is an autogenerated file:ListClass
+// This is an autogenerated file:Nonatomic
 
-class ListClass {
-    private int $list; // json:list Required
+class Nonatomic {
+    private int $nonatomic; // json:nonatomic Required
 
     /**
-     * @param int $list
+     * @param int $nonatomic
      */
-    public function __construct(int $list) {
-        $this->list = $list;
+    public function __construct(int $nonatomic) {
+        $this->nonatomic = $nonatomic;
     }
 
     /**
@@ -30382,7 +30200,7 @@ class ListClass {
      * @throws Exception
      * @return int
      */
-    public static function fromList(int $value): int {
+    public static function fromNonatomic(int $value): int {
         return $value; /*int*/
     }
 
@@ -30390,11 +30208,11 @@ class ListClass {
      * @throws Exception
      * @return int
      */
-    public function toList(): int {
-        if (ListClass::validateList($this->list))  {
-            return $this->list; /*int*/
+    public function toNonatomic(): int {
+        if (Nonatomic::validateNonatomic($this->nonatomic))  {
+            return $this->nonatomic; /*int*/
         }
-        throw new Exception('never get to this ListClass::list');
+        throw new Exception('never get to this Nonatomic::nonatomic');
     }
 
     /**
@@ -30402,7 +30220,7 @@ class ListClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateList(int $value): bool {
+    public static function validateNonatomic(int $value): bool {
         return true;
     }
 
@@ -30410,18 +30228,18 @@ class ListClass {
      * @throws Exception
      * @return int
      */
-    public function getList(): int {
-        if (ListClass::validateList($this->list))  {
-            return $this->list;
+    public function getNonatomic(): int {
+        if (Nonatomic::validateNonatomic($this->nonatomic))  {
+            return $this->nonatomic;
         }
-        throw new Exception('never get to getList ListClass::list');
+        throw new Exception('never get to getNonatomic Nonatomic::nonatomic');
     }
 
     /**
      * @return int
      */
-    public static function sampleList(): int {
-        return 31; /*31:list*/
+    public static function sampleNonatomic(): int {
+        return 31; /*31:nonatomic*/
     }
 
     /**
@@ -30429,7 +30247,7 @@ class ListClass {
      * @return bool
      */
     public function validate(): bool {
-        return ListClass::validateList($this->list);
+        return Nonatomic::validateNonatomic($this->nonatomic);
     }
 
     /**
@@ -30438,44 +30256,44 @@ class ListClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'list'} = $this->toList();
+        $out->{'nonatomic'} = $this->toNonatomic();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ListClass
+     * @return Nonatomic
      * @throws Exception
      */
-    public static function from(stdClass $obj): ListClass {
-        if (!property_exists($obj, 'list')) {
+    public static function from(stdClass $obj): Nonatomic {
+        if (!property_exists($obj, 'nonatomic')) {
             throw new Exception("Missing required property");
         }
-        return new ListClass(
-         ListClass::fromList($obj->{'list'})
+        return new Nonatomic(
+         Nonatomic::fromNonatomic($obj->{'nonatomic'})
         );
     }
 
     /**
-     * @return ListClass
+     * @return Nonatomic
      */
-    public static function sample(): ListClass {
-        return new ListClass(
-         ListClass::sampleList()
+    public static function sample(): Nonatomic {
+        return new Nonatomic(
+         Nonatomic::sampleNonatomic()
         );
     }
 }
 
-// This is an autogenerated file:Lock
+// This is an autogenerated file:None
 
-class Lock {
-    private int $lock; // json:lock Required
+class None {
+    private int $none; // json:None Required
 
     /**
-     * @param int $lock
+     * @param int $none
      */
-    public function __construct(int $lock) {
-        $this->lock = $lock;
+    public function __construct(int $none) {
+        $this->none = $none;
     }
 
     /**
@@ -30483,7 +30301,7 @@ class Lock {
      * @throws Exception
      * @return int
      */
-    public static function fromLock(int $value): int {
+    public static function fromNone(int $value): int {
         return $value; /*int*/
     }
 
@@ -30491,11 +30309,11 @@ class Lock {
      * @throws Exception
      * @return int
      */
-    public function toLock(): int {
-        if (Lock::validateLock($this->lock))  {
-            return $this->lock; /*int*/
+    public function toNone(): int {
+        if (None::validateNone($this->none))  {
+            return $this->none; /*int*/
         }
-        throw new Exception('never get to this Lock::lock');
+        throw new Exception('never get to this None::none');
     }
 
     /**
@@ -30503,7 +30321,7 @@ class Lock {
      * @return bool
      * @throws Exception
      */
-    public static function validateLock(int $value): bool {
+    public static function validateNone(int $value): bool {
         return true;
     }
 
@@ -30511,18 +30329,18 @@ class Lock {
      * @throws Exception
      * @return int
      */
-    public function getLock(): int {
-        if (Lock::validateLock($this->lock))  {
-            return $this->lock;
+    public function getNone(): int {
+        if (None::validateNone($this->none))  {
+            return $this->none;
         }
-        throw new Exception('never get to getLock Lock::lock');
+        throw new Exception('never get to getNone None::none');
     }
 
     /**
      * @return int
      */
-    public static function sampleLock(): int {
-        return 31; /*31:lock*/
+    public static function sampleNone(): int {
+        return 31; /*31:none*/
     }
 
     /**
@@ -30530,7 +30348,7 @@ class Lock {
      * @return bool
      */
     public function validate(): bool {
-        return Lock::validateLock($this->lock);
+        return None::validateNone($this->none);
     }
 
     /**
@@ -30539,44 +30357,44 @@ class Lock {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'lock'} = $this->toLock();
+        $out->{'None'} = $this->toNone();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Lock
+     * @return None
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lock {
-        if (!property_exists($obj, 'lock')) {
+    public static function from(stdClass $obj): None {
+        if (!property_exists($obj, 'None')) {
             throw new Exception("Missing required property");
         }
-        return new Lock(
-         Lock::fromLock($obj->{'lock'})
+        return new None(
+         None::fromNone($obj->{'None'})
         );
     }
 
     /**
-     * @return Lock
+     * @return None
      */
-    public static function sample(): Lock {
-        return new Lock(
-         Lock::sampleLock()
+    public static function sample(): None {
+        return new None(
+         None::sampleNone()
         );
     }
 }
 
-// This is an autogenerated file:Long
+// This is an autogenerated file:Nonlocal
 
-class Long {
-    private int $long; // json:long Required
+class Nonlocal {
+    private int $nonlocal; // json:nonlocal Required
 
     /**
-     * @param int $long
+     * @param int $nonlocal
      */
-    public function __construct(int $long) {
-        $this->long = $long;
+    public function __construct(int $nonlocal) {
+        $this->nonlocal = $nonlocal;
     }
 
     /**
@@ -30584,7 +30402,7 @@ class Long {
      * @throws Exception
      * @return int
      */
-    public static function fromLong(int $value): int {
+    public static function fromNonlocal(int $value): int {
         return $value; /*int*/
     }
 
@@ -30592,11 +30410,11 @@ class Long {
      * @throws Exception
      * @return int
      */
-    public function toLong(): int {
-        if (Long::validateLong($this->long))  {
-            return $this->long; /*int*/
+    public function toNonlocal(): int {
+        if (Nonlocal::validateNonlocal($this->nonlocal))  {
+            return $this->nonlocal; /*int*/
         }
-        throw new Exception('never get to this Long::long');
+        throw new Exception('never get to this Nonlocal::nonlocal');
     }
 
     /**
@@ -30604,7 +30422,7 @@ class Long {
      * @return bool
      * @throws Exception
      */
-    public static function validateLong(int $value): bool {
+    public static function validateNonlocal(int $value): bool {
         return true;
     }
 
@@ -30612,18 +30430,18 @@ class Long {
      * @throws Exception
      * @return int
      */
-    public function getLong(): int {
-        if (Long::validateLong($this->long))  {
-            return $this->long;
+    public function getNonlocal(): int {
+        if (Nonlocal::validateNonlocal($this->nonlocal))  {
+            return $this->nonlocal;
         }
-        throw new Exception('never get to getLong Long::long');
+        throw new Exception('never get to getNonlocal Nonlocal::nonlocal');
     }
 
     /**
      * @return int
      */
-    public static function sampleLong(): int {
-        return 31; /*31:long*/
+    public static function sampleNonlocal(): int {
+        return 31; /*31:nonlocal*/
     }
 
     /**
@@ -30631,7 +30449,7 @@ class Long {
      * @return bool
      */
     public function validate(): bool {
-        return Long::validateLong($this->long);
+        return Nonlocal::validateNonlocal($this->nonlocal);
     }
 
     /**
@@ -30640,44 +30458,44 @@ class Long {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'long'} = $this->toLong();
+        $out->{'nonlocal'} = $this->toNonlocal();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Long
+     * @return Nonlocal
      * @throws Exception
      */
-    public static function from(stdClass $obj): Long {
-        if (!property_exists($obj, 'long')) {
+    public static function from(stdClass $obj): Nonlocal {
+        if (!property_exists($obj, 'nonlocal')) {
             throw new Exception("Missing required property");
         }
-        return new Long(
-         Long::fromLong($obj->{'long'})
+        return new Nonlocal(
+         Nonlocal::fromNonlocal($obj->{'nonlocal'})
         );
     }
 
     /**
-     * @return Long
+     * @return Nonlocal
      */
-    public static function sample(): Long {
-        return new Long(
-         Long::sampleLong()
+    public static function sample(): Nonlocal {
+        return new Nonlocal(
+         Nonlocal::sampleNonlocal()
         );
     }
 }
 
-// This is an autogenerated file:Map
+// This is an autogenerated file:Nonmutating
 
-class Map {
-    private int $map; // json:map Required
+class Nonmutating {
+    private int $nonmutating; // json:nonmutating Required
 
     /**
-     * @param int $map
+     * @param int $nonmutating
      */
-    public function __construct(int $map) {
-        $this->map = $map;
+    public function __construct(int $nonmutating) {
+        $this->nonmutating = $nonmutating;
     }
 
     /**
@@ -30685,7 +30503,7 @@ class Map {
      * @throws Exception
      * @return int
      */
-    public static function fromMap(int $value): int {
+    public static function fromNonmutating(int $value): int {
         return $value; /*int*/
     }
 
@@ -30693,11 +30511,11 @@ class Map {
      * @throws Exception
      * @return int
      */
-    public function toMap(): int {
-        if (Map::validateMap($this->map))  {
-            return $this->map; /*int*/
+    public function toNonmutating(): int {
+        if (Nonmutating::validateNonmutating($this->nonmutating))  {
+            return $this->nonmutating; /*int*/
         }
-        throw new Exception('never get to this Map::map');
+        throw new Exception('never get to this Nonmutating::nonmutating');
     }
 
     /**
@@ -30705,7 +30523,7 @@ class Map {
      * @return bool
      * @throws Exception
      */
-    public static function validateMap(int $value): bool {
+    public static function validateNonmutating(int $value): bool {
         return true;
     }
 
@@ -30713,18 +30531,18 @@ class Map {
      * @throws Exception
      * @return int
      */
-    public function getMap(): int {
-        if (Map::validateMap($this->map))  {
-            return $this->map;
+    public function getNonmutating(): int {
+        if (Nonmutating::validateNonmutating($this->nonmutating))  {
+            return $this->nonmutating;
         }
-        throw new Exception('never get to getMap Map::map');
+        throw new Exception('never get to getNonmutating Nonmutating::nonmutating');
     }
 
     /**
      * @return int
      */
-    public static function sampleMap(): int {
-        return 31; /*31:map*/
+    public static function sampleNonmutating(): int {
+        return 31; /*31:nonmutating*/
     }
 
     /**
@@ -30732,7 +30550,7 @@ class Map {
      * @return bool
      */
     public function validate(): bool {
-        return Map::validateMap($this->map);
+        return Nonmutating::validateNonmutating($this->nonmutating);
     }
 
     /**
@@ -30741,44 +30559,44 @@ class Map {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'map'} = $this->toMap();
+        $out->{'nonmutating'} = $this->toNonmutating();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Map
+     * @return Nonmutating
      * @throws Exception
      */
-    public static function from(stdClass $obj): Map {
-        if (!property_exists($obj, 'map')) {
+    public static function from(stdClass $obj): Nonmutating {
+        if (!property_exists($obj, 'nonmutating')) {
             throw new Exception("Missing required property");
         }
-        return new Map(
-         Map::fromMap($obj->{'map'})
+        return new Nonmutating(
+         Nonmutating::fromNonmutating($obj->{'nonmutating'})
         );
     }
 
     /**
-     * @return Map
+     * @return Nonmutating
      */
-    public static function sample(): Map {
-        return new Map(
-         Map::sampleMap()
+    public static function sample(): Nonmutating {
+        return new Nonmutating(
+         Nonmutating::sampleNonmutating()
         );
     }
 }
 
-// This is an autogenerated file:MetadataPropertyHandling
+// This is an autogenerated file:Not
 
-class MetadataPropertyHandling {
-    private int $metadataPropertyHandling; // json:metadata_property_handling Required
+class Not {
+    private int $not; // json:not Required
 
     /**
-     * @param int $metadataPropertyHandling
+     * @param int $not
      */
-    public function __construct(int $metadataPropertyHandling) {
-        $this->metadataPropertyHandling = $metadataPropertyHandling;
+    public function __construct(int $not) {
+        $this->not = $not;
     }
 
     /**
@@ -30786,7 +30604,7 @@ class MetadataPropertyHandling {
      * @throws Exception
      * @return int
      */
-    public static function fromMetadataPropertyHandling(int $value): int {
+    public static function fromNot(int $value): int {
         return $value; /*int*/
     }
 
@@ -30794,11 +30612,11 @@ class MetadataPropertyHandling {
      * @throws Exception
      * @return int
      */
-    public function toMetadataPropertyHandling(): int {
-        if (MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
-            return $this->metadataPropertyHandling; /*int*/
+    public function toNot(): int {
+        if (Not::validateNot($this->not))  {
+            return $this->not; /*int*/
         }
-        throw new Exception('never get to this MetadataPropertyHandling::metadataPropertyHandling');
+        throw new Exception('never get to this Not::not');
     }
 
     /**
@@ -30806,7 +30624,7 @@ class MetadataPropertyHandling {
      * @return bool
      * @throws Exception
      */
-    public static function validateMetadataPropertyHandling(int $value): bool {
+    public static function validateNot(int $value): bool {
         return true;
     }
 
@@ -30814,18 +30632,18 @@ class MetadataPropertyHandling {
      * @throws Exception
      * @return int
      */
-    public function getMetadataPropertyHandling(): int {
-        if (MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
-            return $this->metadataPropertyHandling;
+    public function getNot(): int {
+        if (Not::validateNot($this->not))  {
+            return $this->not;
         }
-        throw new Exception('never get to getMetadataPropertyHandling MetadataPropertyHandling::metadataPropertyHandling');
+        throw new Exception('never get to getNot Not::not');
     }
 
     /**
      * @return int
      */
-    public static function sampleMetadataPropertyHandling(): int {
-        return 31; /*31:metadataPropertyHandling*/
+    public static function sampleNot(): int {
+        return 31; /*31:not*/
     }
 
     /**
@@ -30833,7 +30651,7 @@ class MetadataPropertyHandling {
      * @return bool
      */
     public function validate(): bool {
-        return MetadataPropertyHandling::validateMetadataPropertyHandling($this->metadataPropertyHandling);
+        return Not::validateNot($this->not);
     }
 
     /**
@@ -30842,44 +30660,44 @@ class MetadataPropertyHandling {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
+        $out->{'not'} = $this->toNot();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return MetadataPropertyHandling
+     * @return Not
      * @throws Exception
      */
-    public static function from(stdClass $obj): MetadataPropertyHandling {
-        if (!property_exists($obj, 'metadata_property_handling')) {
+    public static function from(stdClass $obj): Not {
+        if (!property_exists($obj, 'not')) {
             throw new Exception("Missing required property");
         }
-        return new MetadataPropertyHandling(
-         MetadataPropertyHandling::fromMetadataPropertyHandling($obj->{'metadata_property_handling'})
+        return new Not(
+         Not::fromNot($obj->{'not'})
         );
     }
 
     /**
-     * @return MetadataPropertyHandling
+     * @return Not
      */
-    public static function sample(): MetadataPropertyHandling {
-        return new MetadataPropertyHandling(
-         MetadataPropertyHandling::sampleMetadataPropertyHandling()
+    public static function sample(): Not {
+        return new Not(
+         Not::sampleNot()
         );
     }
 }
 
-// This is an autogenerated file:Module
+// This is an autogenerated file:NotEq
 
-class Module {
-    private int $module; // json:module Required
+class NotEq {
+    private int $notEq; // json:not_eq Required
 
     /**
-     * @param int $module
+     * @param int $notEq
      */
-    public function __construct(int $module) {
-        $this->module = $module;
+    public function __construct(int $notEq) {
+        $this->notEq = $notEq;
     }
 
     /**
@@ -30887,7 +30705,7 @@ class Module {
      * @throws Exception
      * @return int
      */
-    public static function fromModule(int $value): int {
+    public static function fromNotEq(int $value): int {
         return $value; /*int*/
     }
 
@@ -30895,11 +30713,11 @@ class Module {
      * @throws Exception
      * @return int
      */
-    public function toModule(): int {
-        if (Module::validateModule($this->module))  {
-            return $this->module; /*int*/
+    public function toNotEq(): int {
+        if (NotEq::validateNotEq($this->notEq))  {
+            return $this->notEq; /*int*/
         }
-        throw new Exception('never get to this Module::module');
+        throw new Exception('never get to this NotEq::notEq');
     }
 
     /**
@@ -30907,7 +30725,7 @@ class Module {
      * @return bool
      * @throws Exception
      */
-    public static function validateModule(int $value): bool {
+    public static function validateNotEq(int $value): bool {
         return true;
     }
 
@@ -30915,18 +30733,18 @@ class Module {
      * @throws Exception
      * @return int
      */
-    public function getModule(): int {
-        if (Module::validateModule($this->module))  {
-            return $this->module;
+    public function getNotEq(): int {
+        if (NotEq::validateNotEq($this->notEq))  {
+            return $this->notEq;
         }
-        throw new Exception('never get to getModule Module::module');
+        throw new Exception('never get to getNotEq NotEq::notEq');
     }
 
     /**
      * @return int
      */
-    public static function sampleModule(): int {
-        return 31; /*31:module*/
+    public static function sampleNotEq(): int {
+        return 31; /*31:notEq*/
     }
 
     /**
@@ -30934,7 +30752,7 @@ class Module {
      * @return bool
      */
     public function validate(): bool {
-        return Module::validateModule($this->module);
+        return NotEq::validateNotEq($this->notEq);
     }
 
     /**
@@ -30943,44 +30761,44 @@ class Module {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'module'} = $this->toModule();
+        $out->{'not_eq'} = $this->toNotEq();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Module
+     * @return NotEq
      * @throws Exception
      */
-    public static function from(stdClass $obj): Module {
-        if (!property_exists($obj, 'module')) {
+    public static function from(stdClass $obj): NotEq {
+        if (!property_exists($obj, 'not_eq')) {
             throw new Exception("Missing required property");
         }
-        return new Module(
-         Module::fromModule($obj->{'module'})
+        return new NotEq(
+         NotEq::fromNotEq($obj->{'not_eq'})
         );
     }
 
     /**
-     * @return Module
+     * @return NotEq
      */
-    public static function sample(): Module {
-        return new Module(
-         Module::sampleModule()
+    public static function sample(): NotEq {
+        return new NotEq(
+         NotEq::sampleNotEq()
         );
     }
 }
 
-// This is an autogenerated file:Mutable
+// This is an autogenerated file:NSError
 
-class Mutable {
-    private int $mutable; // json:mutable Required
+class NSError {
+    private int $nsError; // json:NSError Required
 
     /**
-     * @param int $mutable
+     * @param int $nsError
      */
-    public function __construct(int $mutable) {
-        $this->mutable = $mutable;
+    public function __construct(int $nsError) {
+        $this->nsError = $nsError;
     }
 
     /**
@@ -30988,7 +30806,7 @@ class Mutable {
      * @throws Exception
      * @return int
      */
-    public static function fromMutable(int $value): int {
+    public static function fromNSError(int $value): int {
         return $value; /*int*/
     }
 
@@ -30996,11 +30814,11 @@ class Mutable {
      * @throws Exception
      * @return int
      */
-    public function toMutable(): int {
-        if (Mutable::validateMutable($this->mutable))  {
-            return $this->mutable; /*int*/
+    public function toNSError(): int {
+        if (NSError::validateNSError($this->nsError))  {
+            return $this->nsError; /*int*/
         }
-        throw new Exception('never get to this Mutable::mutable');
+        throw new Exception('never get to this NSError::nsError');
     }
 
     /**
@@ -31008,7 +30826,7 @@ class Mutable {
      * @return bool
      * @throws Exception
      */
-    public static function validateMutable(int $value): bool {
+    public static function validateNSError(int $value): bool {
         return true;
     }
 
@@ -31016,18 +30834,18 @@ class Mutable {
      * @throws Exception
      * @return int
      */
-    public function getMutable(): int {
-        if (Mutable::validateMutable($this->mutable))  {
-            return $this->mutable;
+    public function getNSError(): int {
+        if (NSError::validateNSError($this->nsError))  {
+            return $this->nsError;
         }
-        throw new Exception('never get to getMutable Mutable::mutable');
+        throw new Exception('never get to getNSError NSError::nsError');
     }
 
     /**
      * @return int
      */
-    public static function sampleMutable(): int {
-        return 31; /*31:mutable*/
+    public static function sampleNSError(): int {
+        return 31; /*31:nsError*/
     }
 
     /**
@@ -31035,7 +30853,7 @@ class Mutable {
      * @return bool
      */
     public function validate(): bool {
-        return Mutable::validateMutable($this->mutable);
+        return NSError::validateNSError($this->nsError);
     }
 
     /**
@@ -31044,44 +30862,44 @@ class Mutable {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'mutable'} = $this->toMutable();
+        $out->{'NSError'} = $this->toNSError();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Mutable
+     * @return NSError
      * @throws Exception
      */
-    public static function from(stdClass $obj): Mutable {
-        if (!property_exists($obj, 'mutable')) {
+    public static function from(stdClass $obj): NSError {
+        if (!property_exists($obj, 'NSError')) {
             throw new Exception("Missing required property");
         }
-        return new Mutable(
-         Mutable::fromMutable($obj->{'mutable'})
+        return new NSError(
+         NSError::fromNSError($obj->{'NSError'})
         );
     }
 
     /**
-     * @return Mutable
+     * @return NSError
      */
-    public static function sample(): Mutable {
-        return new Mutable(
-         Mutable::sampleMutable()
+    public static function sample(): NSError {
+        return new NSError(
+         NSError::sampleNSError()
         );
     }
 }
 
-// This is an autogenerated file:Mutating
+// This is an autogenerated file:NSString
 
-class Mutating {
-    private int $mutating; // json:mutating Required
+class NSString {
+    private int $nsString; // json:NSString Required
 
     /**
-     * @param int $mutating
+     * @param int $nsString
      */
-    public function __construct(int $mutating) {
-        $this->mutating = $mutating;
+    public function __construct(int $nsString) {
+        $this->nsString = $nsString;
     }
 
     /**
@@ -31089,7 +30907,7 @@ class Mutating {
      * @throws Exception
      * @return int
      */
-    public static function fromMutating(int $value): int {
+    public static function fromNSString(int $value): int {
         return $value; /*int*/
     }
 
@@ -31097,11 +30915,11 @@ class Mutating {
      * @throws Exception
      * @return int
      */
-    public function toMutating(): int {
-        if (Mutating::validateMutating($this->mutating))  {
-            return $this->mutating; /*int*/
+    public function toNSString(): int {
+        if (NSString::validateNSString($this->nsString))  {
+            return $this->nsString; /*int*/
         }
-        throw new Exception('never get to this Mutating::mutating');
+        throw new Exception('never get to this NSString::nsString');
     }
 
     /**
@@ -31109,7 +30927,7 @@ class Mutating {
      * @return bool
      * @throws Exception
      */
-    public static function validateMutating(int $value): bool {
+    public static function validateNSString(int $value): bool {
         return true;
     }
 
@@ -31117,18 +30935,18 @@ class Mutating {
      * @throws Exception
      * @return int
      */
-    public function getMutating(): int {
-        if (Mutating::validateMutating($this->mutating))  {
-            return $this->mutating;
+    public function getNSString(): int {
+        if (NSString::validateNSString($this->nsString))  {
+            return $this->nsString;
         }
-        throw new Exception('never get to getMutating Mutating::mutating');
+        throw new Exception('never get to getNSString NSString::nsString');
     }
 
     /**
      * @return int
      */
-    public static function sampleMutating(): int {
-        return 31; /*31:mutating*/
+    public static function sampleNSString(): int {
+        return 31; /*31:nsString*/
     }
 
     /**
@@ -31136,7 +30954,7 @@ class Mutating {
      * @return bool
      */
     public function validate(): bool {
-        return Mutating::validateMutating($this->mutating);
+        return NSString::validateNSString($this->nsString);
     }
 
     /**
@@ -31145,44 +30963,44 @@ class Mutating {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'mutating'} = $this->toMutating();
+        $out->{'NSString'} = $this->toNSString();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Mutating
+     * @return NSString
      * @throws Exception
      */
-    public static function from(stdClass $obj): Mutating {
-        if (!property_exists($obj, 'mutating')) {
+    public static function from(stdClass $obj): NSString {
+        if (!property_exists($obj, 'NSString')) {
             throw new Exception("Missing required property");
         }
-        return new Mutating(
-         Mutating::fromMutating($obj->{'mutating'})
+        return new NSString(
+         NSString::fromNSString($obj->{'NSString'})
         );
     }
 
     /**
-     * @return Mutating
+     * @return NSString
      */
-    public static function sample(): Mutating {
-        return new Mutating(
-         Mutating::sampleMutating()
+    public static function sample(): NSString {
+        return new NSString(
+         NSString::sampleNSString()
         );
     }
 }
 
-// This is an autogenerated file:NamespaceClass
+// This is an autogenerated file:NULLClass
 
-class NamespaceClass {
-    private int $namespace; // json:namespace Required
+class NULLClass {
+    private int $null; // json:NULL Required
 
     /**
-     * @param int $namespace
+     * @param int $null
      */
-    public function __construct(int $namespace) {
-        $this->namespace = $namespace;
+    public function __construct(int $null) {
+        $this->null = $null;
     }
 
     /**
@@ -31190,7 +31008,7 @@ class NamespaceClass {
      * @throws Exception
      * @return int
      */
-    public static function fromNamespace(int $value): int {
+    public static function fromNull(int $value): int {
         return $value; /*int*/
     }
 
@@ -31198,11 +31016,11 @@ class NamespaceClass {
      * @throws Exception
      * @return int
      */
-    public function toNamespace(): int {
-        if (NamespaceClass::validateNamespace($this->namespace))  {
-            return $this->namespace; /*int*/
+    public function toNull(): int {
+        if (NULLClass::validateNull($this->null))  {
+            return $this->null; /*int*/
         }
-        throw new Exception('never get to this NamespaceClass::namespace');
+        throw new Exception('never get to this NULLClass::null');
     }
 
     /**
@@ -31210,7 +31028,7 @@ class NamespaceClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateNamespace(int $value): bool {
+    public static function validateNull(int $value): bool {
         return true;
     }
 
@@ -31218,18 +31036,18 @@ class NamespaceClass {
      * @throws Exception
      * @return int
      */
-    public function getNamespace(): int {
-        if (NamespaceClass::validateNamespace($this->namespace))  {
-            return $this->namespace;
+    public function getNull(): int {
+        if (NULLClass::validateNull($this->null))  {
+            return $this->null;
         }
-        throw new Exception('never get to getNamespace NamespaceClass::namespace');
+        throw new Exception('never get to getNull NULLClass::null');
     }
 
     /**
      * @return int
      */
-    public static function sampleNamespace(): int {
-        return 31; /*31:namespace*/
+    public static function sampleNull(): int {
+        return 31; /*31:null*/
     }
 
     /**
@@ -31237,7 +31055,7 @@ class NamespaceClass {
      * @return bool
      */
     public function validate(): bool {
-        return NamespaceClass::validateNamespace($this->namespace);
+        return NULLClass::validateNull($this->null);
     }
 
     /**
@@ -31246,44 +31064,44 @@ class NamespaceClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'namespace'} = $this->toNamespace();
+        $out->{'NULL'} = $this->toNull();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return NamespaceClass
+     * @return NULLClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): NamespaceClass {
-        if (!property_exists($obj, 'namespace')) {
+    public static function from(stdClass $obj): NULLClass {
+        if (!property_exists($obj, 'NULL')) {
             throw new Exception("Missing required property");
         }
-        return new NamespaceClass(
-         NamespaceClass::fromNamespace($obj->{'namespace'})
+        return new NULLClass(
+         NULLClass::fromNull($obj->{'NULL'})
         );
     }
 
     /**
-     * @return NamespaceClass
+     * @return NULLClass
      */
-    public static function sample(): NamespaceClass {
-        return new NamespaceClass(
-         NamespaceClass::sampleNamespace()
+    public static function sample(): NULLClass {
+        return new NULLClass(
+         NULLClass::sampleNull()
         );
     }
 }
 
-// This is an autogenerated file:Native
+// This is an autogenerated file:NoneClass
 
-class Native {
-    private int $native; // json:native Required
+class NoneClass {
+    private int $none; // json:none Required
 
     /**
-     * @param int $native
-     */
-    public function __construct(int $native) {
-        $this->native = $native;
+     * @param int $none
+     */
+    public function __construct(int $none) {
+        $this->none = $none;
     }
 
     /**
@@ -31291,7 +31109,7 @@ class Native {
      * @throws Exception
      * @return int
      */
-    public static function fromNative(int $value): int {
+    public static function fromNone(int $value): int {
         return $value; /*int*/
     }
 
@@ -31299,11 +31117,11 @@ class Native {
      * @throws Exception
      * @return int
      */
-    public function toNative(): int {
-        if (Native::validateNative($this->native))  {
-            return $this->native; /*int*/
+    public function toNone(): int {
+        if (NoneClass::validateNone($this->none))  {
+            return $this->none; /*int*/
         }
-        throw new Exception('never get to this Native::native');
+        throw new Exception('never get to this NoneClass::none');
     }
 
     /**
@@ -31311,7 +31129,7 @@ class Native {
      * @return bool
      * @throws Exception
      */
-    public static function validateNative(int $value): bool {
+    public static function validateNone(int $value): bool {
         return true;
     }
 
@@ -31319,18 +31137,18 @@ class Native {
      * @throws Exception
      * @return int
      */
-    public function getNative(): int {
-        if (Native::validateNative($this->native))  {
-            return $this->native;
+    public function getNone(): int {
+        if (NoneClass::validateNone($this->none))  {
+            return $this->none;
         }
-        throw new Exception('never get to getNative Native::native');
+        throw new Exception('never get to getNone NoneClass::none');
     }
 
     /**
      * @return int
      */
-    public static function sampleNative(): int {
-        return 31; /*31:native*/
+    public static function sampleNone(): int {
+        return 31; /*31:none*/
     }
 
     /**
@@ -31338,7 +31156,7 @@ class Native {
      * @return bool
      */
     public function validate(): bool {
-        return Native::validateNative($this->native);
+        return NoneClass::validateNone($this->none);
     }
 
     /**
@@ -31347,44 +31165,44 @@ class Native {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'native'} = $this->toNative();
+        $out->{'none'} = $this->toNone();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Native
+     * @return NoneClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Native {
-        if (!property_exists($obj, 'native')) {
+    public static function from(stdClass $obj): NoneClass {
+        if (!property_exists($obj, 'none')) {
             throw new Exception("Missing required property");
         }
-        return new Native(
-         Native::fromNative($obj->{'native'})
+        return new NoneClass(
+         NoneClass::fromNone($obj->{'none'})
         );
     }
 
     /**
-     * @return Native
+     * @return NoneClass
      */
-    public static function sample(): Native {
-        return new Native(
-         Native::sampleNative()
+    public static function sample(): NoneClass {
+        return new NoneClass(
+         NoneClass::sampleNone()
         );
     }
 }
 
-// This is an autogenerated file:NewClass
+// This is an autogenerated file:Obj3Null
 
-class NewClass {
-    private int $new; // json:new Required
+class Obj3Null {
+    private int $null; // json:null Required
 
     /**
-     * @param int $new
+     * @param int $null
      */
-    public function __construct(int $new) {
-        $this->new = $new;
+    public function __construct(int $null) {
+        $this->null = $null;
     }
 
     /**
@@ -31392,7 +31210,7 @@ class NewClass {
      * @throws Exception
      * @return int
      */
-    public static function fromNew(int $value): int {
+    public static function fromNull(int $value): int {
         return $value; /*int*/
     }
 
@@ -31400,11 +31218,11 @@ class NewClass {
      * @throws Exception
      * @return int
      */
-    public function toNew(): int {
-        if (NewClass::validateNew($this->new))  {
-            return $this->new; /*int*/
+    public function toNull(): int {
+        if (Obj3Null::validateNull($this->null))  {
+            return $this->null; /*int*/
         }
-        throw new Exception('never get to this NewClass::new');
+        throw new Exception('never get to this Obj3Null::null');
     }
 
     /**
@@ -31412,7 +31230,7 @@ class NewClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateNew(int $value): bool {
+    public static function validateNull(int $value): bool {
         return true;
     }
 
@@ -31420,18 +31238,18 @@ class NewClass {
      * @throws Exception
      * @return int
      */
-    public function getNew(): int {
-        if (NewClass::validateNew($this->new))  {
-            return $this->new;
+    public function getNull(): int {
+        if (Obj3Null::validateNull($this->null))  {
+            return $this->null;
         }
-        throw new Exception('never get to getNew NewClass::new');
+        throw new Exception('never get to getNull Obj3Null::null');
     }
 
     /**
      * @return int
      */
-    public static function sampleNew(): int {
-        return 31; /*31:new*/
+    public static function sampleNull(): int {
+        return 31; /*31:null*/
     }
 
     /**
@@ -31439,7 +31257,7 @@ class NewClass {
      * @return bool
      */
     public function validate(): bool {
-        return NewClass::validateNew($this->new);
+        return Obj3Null::validateNull($this->null);
     }
 
     /**
@@ -31448,44 +31266,236 @@ class NewClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'new'} = $this->toNew();
+        $out->{'null'} = $this->toNull();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return NewClass
+     * @return Obj3Null
      * @throws Exception
      */
-    public static function from(stdClass $obj): NewClass {
-        if (!property_exists($obj, 'new')) {
+    public static function from(stdClass $obj): Obj3Null {
+        if (!property_exists($obj, 'null')) {
             throw new Exception("Missing required property");
         }
-        return new NewClass(
-         NewClass::fromNew($obj->{'new'})
+        return new Obj3Null(
+         Obj3Null::fromNull($obj->{'null'})
         );
     }
 
     /**
-     * @return NewClass
+     * @return Obj3Null
      */
-    public static function sample(): NewClass {
-        return new NewClass(
-         NewClass::sampleNew()
+    public static function sample(): Obj3Null {
+        return new Obj3Null(
+         Obj3Null::sampleNull()
         );
     }
 }
 
-// This is an autogenerated file:Newtonsoft
+// This is an autogenerated file:Obj4
 
-class Newtonsoft {
-    private int $newtonsoft; // json:newtonsoft Required
+class Obj4 {
+    private int $dummy; // json:dummy Required
+    private Nullptr $nullptr; // json:nullptr Required
+    private Number $number; // json:number Required
+    private ProtocolClass $obj4Protocol; // json:protocol Required
+    private Obj4Self $obj4Self; // json:self Required
+    private ObjectClass $object; // json:object Required
+    private ObjectMapper $objectMapper; // json:ObjectMapper Required
+    private Of $of; // json:of Required
+    private Oneway $oneway; // json:oneway Required
+    private Open $open; // json:open Required
+    private Operator $operator; // json:operator Required
+    private Optional $optional; // json:optional Required
+    private OrClass $or; // json:or Required
+    private OrEq $orEq; // json:or_eq Required
+    private Out $out; // json:out Required
+    private OverrideClass $override; // json:override Required
+    private Package $package; // json:package Required
+    private Params $params; // json:params Required
+    private Pass $pass; // json:pass Required
+    private Port $port; // json:port Required
+    private Postfix $postfix; // json:postfix Required
+    private Precedence $precedence; // json:precedence Required
+    private Prefix $prefix; // json:prefix Required
+    private PrintClass $print; // json:print Required
+    private PrintMembers $printMembers; // json:printMembers Required
+    private Printf $printf; // json:printf Required
+    private PrivateClass $private; // json:private Required
+    private ProtectedClass $protected; // json:protected Required
+    private Protocol $protocol; // json:Protocol Required
+    private PublicClass $public; // json:public Required
+    private Quicktype $quicktype; // json:quicktype Required
+    private Raise $raise; // json:raise Required
+    private Range $range; // json:range Required
+    private ReadonlyClass $readonly; // json:readonly Required
+    private Ref $ref; // json:ref Required
+    private RegExp $regExp; // json:RegExp Required
+    private Register $register; // json:register Required
+    private ReinterpretCast $reinterpretCast; // json:reinterpret_cast Required
+    private Repeat $repeat; // json:repeat Required
+    private RequireClass $require; // json:require Required
+    private Required $required; // json:required Required
+    private Requires $requires; // json:requires Required
+    private Restrict $restrict; // json:restrict Required
+    private Retain $retain; // json:retain Required
+    private Rethrows $rethrows; // json:rethrows Required
+    private ReturnClass $return; // json:return Required
+    private Right $right; // json:right Required
+    private RuntimeType $runtimeType; // json:runtimeType Required
+    private S $s; // json:s Required
+    private Sbyte $sbyte; // json:sbyte Required
+    private Sealed $sealed; // json:sealed Required
+    private Sel $sel; // json:SEL Required
+    private Select $select; // json:select Required
+    private SelfClass $self; // json:Self Required
+    private Serialize $serialize; // json:serialize Required
+    private SerializerProvider $serializerProvider; // json:SerializerProvider Required
+    private Set $set; // json:set Required
+    private Short $short; // json:short Required
+    private Signed $signed; // json:signed Required
+    private SimpleModule $simpleModule; // json:SimpleModule Required
+    private Sizeof $sizeof; // json:sizeof Required
+    private Stackalloc $stackalloc; // json:stackalloc Required
+    private Standards $standards; // json:Standards Required
+    private StaticClass $static; // json:static Required
+    private StaticAssert $staticAssert; // json:static_assert Required
 
     /**
-     * @param int $newtonsoft
+     * @param int $dummy
+     * @param Nullptr $nullptr
+     * @param Number $number
+     * @param ProtocolClass $obj4Protocol
+     * @param Obj4Self $obj4Self
+     * @param ObjectClass $object
+     * @param ObjectMapper $objectMapper
+     * @param Of $of
+     * @param Oneway $oneway
+     * @param Open $open
+     * @param Operator $operator
+     * @param Optional $optional
+     * @param OrClass $or
+     * @param OrEq $orEq
+     * @param Out $out
+     * @param OverrideClass $override
+     * @param Package $package
+     * @param Params $params
+     * @param Pass $pass
+     * @param Port $port
+     * @param Postfix $postfix
+     * @param Precedence $precedence
+     * @param Prefix $prefix
+     * @param PrintClass $print
+     * @param PrintMembers $printMembers
+     * @param Printf $printf
+     * @param PrivateClass $private
+     * @param ProtectedClass $protected
+     * @param Protocol $protocol
+     * @param PublicClass $public
+     * @param Quicktype $quicktype
+     * @param Raise $raise
+     * @param Range $range
+     * @param ReadonlyClass $readonly
+     * @param Ref $ref
+     * @param RegExp $regExp
+     * @param Register $register
+     * @param ReinterpretCast $reinterpretCast
+     * @param Repeat $repeat
+     * @param RequireClass $require
+     * @param Required $required
+     * @param Requires $requires
+     * @param Restrict $restrict
+     * @param Retain $retain
+     * @param Rethrows $rethrows
+     * @param ReturnClass $return
+     * @param Right $right
+     * @param RuntimeType $runtimeType
+     * @param S $s
+     * @param Sbyte $sbyte
+     * @param Sealed $sealed
+     * @param Sel $sel
+     * @param Select $select
+     * @param SelfClass $self
+     * @param Serialize $serialize
+     * @param SerializerProvider $serializerProvider
+     * @param Set $set
+     * @param Short $short
+     * @param Signed $signed
+     * @param SimpleModule $simpleModule
+     * @param Sizeof $sizeof
+     * @param Stackalloc $stackalloc
+     * @param Standards $standards
+     * @param StaticClass $static
+     * @param StaticAssert $staticAssert
      */
-    public function __construct(int $newtonsoft) {
-        $this->newtonsoft = $newtonsoft;
+    public function __construct(int $dummy, Nullptr $nullptr, Number $number, ProtocolClass $obj4Protocol, Obj4Self $obj4Self, ObjectClass $object, ObjectMapper $objectMapper, Of $of, Oneway $oneway, Open $open, Operator $operator, Optional $optional, OrClass $or, OrEq $orEq, Out $out, OverrideClass $override, Package $package, Params $params, Pass $pass, Port $port, Postfix $postfix, Precedence $precedence, Prefix $prefix, PrintClass $print, PrintMembers $printMembers, Printf $printf, PrivateClass $private, ProtectedClass $protected, Protocol $protocol, PublicClass $public, Quicktype $quicktype, Raise $raise, Range $range, ReadonlyClass $readonly, Ref $ref, RegExp $regExp, Register $register, ReinterpretCast $reinterpretCast, Repeat $repeat, RequireClass $require, Required $required, Requires $requires, Restrict $restrict, Retain $retain, Rethrows $rethrows, ReturnClass $return, Right $right, RuntimeType $runtimeType, S $s, Sbyte $sbyte, Sealed $sealed, Sel $sel, Select $select, SelfClass $self, Serialize $serialize, SerializerProvider $serializerProvider, Set $set, Short $short, Signed $signed, SimpleModule $simpleModule, Sizeof $sizeof, Stackalloc $stackalloc, Standards $standards, StaticClass $static, StaticAssert $staticAssert) {
+        $this->dummy = $dummy;
+        $this->nullptr = $nullptr;
+        $this->number = $number;
+        $this->obj4Protocol = $obj4Protocol;
+        $this->obj4Self = $obj4Self;
+        $this->object = $object;
+        $this->objectMapper = $objectMapper;
+        $this->of = $of;
+        $this->oneway = $oneway;
+        $this->open = $open;
+        $this->operator = $operator;
+        $this->optional = $optional;
+        $this->or = $or;
+        $this->orEq = $orEq;
+        $this->out = $out;
+        $this->override = $override;
+        $this->package = $package;
+        $this->params = $params;
+        $this->pass = $pass;
+        $this->port = $port;
+        $this->postfix = $postfix;
+        $this->precedence = $precedence;
+        $this->prefix = $prefix;
+        $this->print = $print;
+        $this->printMembers = $printMembers;
+        $this->printf = $printf;
+        $this->private = $private;
+        $this->protected = $protected;
+        $this->protocol = $protocol;
+        $this->public = $public;
+        $this->quicktype = $quicktype;
+        $this->raise = $raise;
+        $this->range = $range;
+        $this->readonly = $readonly;
+        $this->ref = $ref;
+        $this->regExp = $regExp;
+        $this->register = $register;
+        $this->reinterpretCast = $reinterpretCast;
+        $this->repeat = $repeat;
+        $this->require = $require;
+        $this->required = $required;
+        $this->requires = $requires;
+        $this->restrict = $restrict;
+        $this->retain = $retain;
+        $this->rethrows = $rethrows;
+        $this->return = $return;
+        $this->right = $right;
+        $this->runtimeType = $runtimeType;
+        $this->s = $s;
+        $this->sbyte = $sbyte;
+        $this->sealed = $sealed;
+        $this->sel = $sel;
+        $this->select = $select;
+        $this->self = $self;
+        $this->serialize = $serialize;
+        $this->serializerProvider = $serializerProvider;
+        $this->set = $set;
+        $this->short = $short;
+        $this->signed = $signed;
+        $this->simpleModule = $simpleModule;
+        $this->sizeof = $sizeof;
+        $this->stackalloc = $stackalloc;
+        $this->standards = $standards;
+        $this->static = $static;
+        $this->staticAssert = $staticAssert;
     }
 
     /**
@@ -31493,7 +31503,7 @@ class Newtonsoft {
      * @throws Exception
      * @return int
      */
-    public static function fromNewtonsoft(int $value): int {
+    public static function fromDummy(int $value): int {
         return $value; /*int*/
     }
 
@@ -31501,11 +31511,11 @@ class Newtonsoft {
      * @throws Exception
      * @return int
      */
-    public function toNewtonsoft(): int {
-        if (Newtonsoft::validateNewtonsoft($this->newtonsoft))  {
-            return $this->newtonsoft; /*int*/
+    public function toDummy(): int {
+        if (Obj4::validateDummy($this->dummy))  {
+            return $this->dummy; /*int*/
         }
-        throw new Exception('never get to this Newtonsoft::newtonsoft');
+        throw new Exception('never get to this Obj4::dummy');
     }
 
     /**
@@ -31513,7 +31523,7 @@ class Newtonsoft {
      * @return bool
      * @throws Exception
      */
-    public static function validateNewtonsoft(int $value): bool {
+    public static function validateDummy(int $value): bool {
         return true;
     }
 
@@ -31521,3250 +31531,3090 @@ class Newtonsoft {
      * @throws Exception
      * @return int
      */
-    public function getNewtonsoft(): int {
-        if (Newtonsoft::validateNewtonsoft($this->newtonsoft))  {
-            return $this->newtonsoft;
+    public function getDummy(): int {
+        if (Obj4::validateDummy($this->dummy))  {
+            return $this->dummy;
         }
-        throw new Exception('never get to getNewtonsoft Newtonsoft::newtonsoft');
+        throw new Exception('never get to getDummy Obj4::dummy');
     }
 
     /**
      * @return int
      */
-    public static function sampleNewtonsoft(): int {
-        return 31; /*31:newtonsoft*/
+    public static function sampleDummy(): int {
+        return 31; /*31:dummy*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Nullptr
      */
-    public function validate(): bool {
-        return Newtonsoft::validateNewtonsoft($this->newtonsoft);
+    public static function fromNullptr(stdClass $value): Nullptr {
+        return Nullptr::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'newtonsoft'} = $this->toNewtonsoft();
-        return $out;
+    public function toNullptr(): stdClass {
+        if (Obj4::validateNullptr($this->nullptr))  {
+            return $this->nullptr->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::nullptr');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Newtonsoft
+     * @param Nullptr
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Newtonsoft {
-        if (!property_exists($obj, 'newtonsoft')) {
-            throw new Exception("Missing required property");
-        }
-        return new Newtonsoft(
-         Newtonsoft::fromNewtonsoft($obj->{'newtonsoft'})
-        );
+    public static function validateNullptr(Nullptr $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Newtonsoft
+     * @throws Exception
+     * @return Nullptr
      */
-    public static function sample(): Newtonsoft {
-        return new Newtonsoft(
-         Newtonsoft::sampleNewtonsoft()
-        );
+    public function getNullptr(): Nullptr {
+        if (Obj4::validateNullptr($this->nullptr))  {
+            return $this->nullptr;
+        }
+        throw new Exception('never get to getNullptr Obj4::nullptr');
     }
-}
-
-// This is an autogenerated file:Nil
-
-class Nil {
-    private int $nil; // json:nil Required
 
     /**
-     * @param int $nil
+     * @return Nullptr
      */
-    public function __construct(int $nil) {
-        $this->nil = $nil;
+    public static function sampleNullptr(): Nullptr {
+        return Nullptr::sample(); /*32:nullptr*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Number
      */
-    public static function fromNil(int $value): int {
-        return $value; /*int*/
+    public static function fromNumber(stdClass $value): Number {
+        return Number::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNil(): int {
-        if (Nil::validateNil($this->nil))  {
-            return $this->nil; /*int*/
+    public function toNumber(): stdClass {
+        if (Obj4::validateNumber($this->number))  {
+            return $this->number->to(); /*class*/
         }
-        throw new Exception('never get to this Nil::nil');
+        throw new Exception('never get to this Obj4::number');
     }
 
     /**
-     * @param int
+     * @param Number
      * @return bool
      * @throws Exception
      */
-    public static function validateNil(int $value): bool {
+    public static function validateNumber(Number $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Number
      */
-    public function getNil(): int {
-        if (Nil::validateNil($this->nil))  {
-            return $this->nil;
+    public function getNumber(): Number {
+        if (Obj4::validateNumber($this->number))  {
+            return $this->number;
         }
-        throw new Exception('never get to getNil Nil::nil');
+        throw new Exception('never get to getNumber Obj4::number');
     }
 
     /**
-     * @return int
+     * @return Number
      */
-    public static function sampleNil(): int {
-        return 31; /*31:nil*/
+    public static function sampleNumber(): Number {
+        return Number::sample(); /*33:number*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ProtocolClass
      */
-    public function validate(): bool {
-        return Nil::validateNil($this->nil);
+    public static function fromObj4Protocol(stdClass $value): ProtocolClass {
+        return ProtocolClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'nil'} = $this->toNil();
-        return $out;
+    public function toObj4Protocol(): stdClass {
+        if (Obj4::validateObj4Protocol($this->obj4Protocol))  {
+            return $this->obj4Protocol->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::obj4Protocol');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Nil
+     * @param ProtocolClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nil {
-        if (!property_exists($obj, 'nil')) {
-            throw new Exception("Missing required property");
-        }
-        return new Nil(
-         Nil::fromNil($obj->{'nil'})
-        );
+    public static function validateObj4Protocol(ProtocolClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Nil
+     * @throws Exception
+     * @return ProtocolClass
      */
-    public static function sample(): Nil {
-        return new Nil(
-         Nil::sampleNil()
-        );
+    public function getObj4Protocol(): ProtocolClass {
+        if (Obj4::validateObj4Protocol($this->obj4Protocol))  {
+            return $this->obj4Protocol;
+        }
+        throw new Exception('never get to getObj4Protocol Obj4::obj4Protocol');
     }
-}
-
-// This is an autogenerated file:No
-
-class No {
-    private int $no; // json:NO Required
 
     /**
-     * @param int $no
+     * @return ProtocolClass
      */
-    public function __construct(int $no) {
-        $this->no = $no;
+    public static function sampleObj4Protocol(): ProtocolClass {
+        return ProtocolClass::sample(); /*34:obj4Protocol*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Obj4Self
      */
-    public static function fromNo(int $value): int {
-        return $value; /*int*/
+    public static function fromObj4Self(stdClass $value): Obj4Self {
+        return Obj4Self::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNo(): int {
-        if (No::validateNo($this->no))  {
-            return $this->no; /*int*/
+    public function toObj4Self(): stdClass {
+        if (Obj4::validateObj4Self($this->obj4Self))  {
+            return $this->obj4Self->to(); /*class*/
         }
-        throw new Exception('never get to this No::no');
+        throw new Exception('never get to this Obj4::obj4Self');
     }
 
     /**
-     * @param int
+     * @param Obj4Self
      * @return bool
      * @throws Exception
      */
-    public static function validateNo(int $value): bool {
+    public static function validateObj4Self(Obj4Self $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Obj4Self
      */
-    public function getNo(): int {
-        if (No::validateNo($this->no))  {
-            return $this->no;
+    public function getObj4Self(): Obj4Self {
+        if (Obj4::validateObj4Self($this->obj4Self))  {
+            return $this->obj4Self;
         }
-        throw new Exception('never get to getNo No::no');
+        throw new Exception('never get to getObj4Self Obj4::obj4Self');
     }
 
     /**
-     * @return int
+     * @return Obj4Self
      */
-    public static function sampleNo(): int {
-        return 31; /*31:no*/
+    public static function sampleObj4Self(): Obj4Self {
+        return Obj4Self::sample(); /*35:obj4Self*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ObjectClass
      */
-    public function validate(): bool {
-        return No::validateNo($this->no);
+    public static function fromObject(stdClass $value): ObjectClass {
+        return ObjectClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'NO'} = $this->toNo();
-        return $out;
+    public function toObject(): stdClass {
+        if (Obj4::validateObject($this->object))  {
+            return $this->object->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::object');
     }
 
     /**
-     * @param stdClass $obj
-     * @return No
+     * @param ObjectClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): No {
-        if (!property_exists($obj, 'NO')) {
-            throw new Exception("Missing required property");
-        }
-        return new No(
-         No::fromNo($obj->{'NO'})
-        );
+    public static function validateObject(ObjectClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return No
+     * @throws Exception
+     * @return ObjectClass
      */
-    public static function sample(): No {
-        return new No(
-         No::sampleNo()
-        );
+    public function getObject(): ObjectClass {
+        if (Obj4::validateObject($this->object))  {
+            return $this->object;
+        }
+        throw new Exception('never get to getObject Obj4::object');
     }
-}
-
-// This is an autogenerated file:NoSuchMethod
-
-class NoSuchMethod {
-    private int $noSuchMethod; // json:noSuchMethod Required
 
     /**
-     * @param int $noSuchMethod
+     * @return ObjectClass
      */
-    public function __construct(int $noSuchMethod) {
-        $this->noSuchMethod = $noSuchMethod;
+    public static function sampleObject(): ObjectClass {
+        return ObjectClass::sample(); /*36:object*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return ObjectMapper
      */
-    public static function fromNoSuchMethod(int $value): int {
-        return $value; /*int*/
+    public static function fromObjectMapper(stdClass $value): ObjectMapper {
+        return ObjectMapper::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNoSuchMethod(): int {
-        if (NoSuchMethod::validateNoSuchMethod($this->noSuchMethod))  {
-            return $this->noSuchMethod; /*int*/
+    public function toObjectMapper(): stdClass {
+        if (Obj4::validateObjectMapper($this->objectMapper))  {
+            return $this->objectMapper->to(); /*class*/
         }
-        throw new Exception('never get to this NoSuchMethod::noSuchMethod');
+        throw new Exception('never get to this Obj4::objectMapper');
     }
 
     /**
-     * @param int
+     * @param ObjectMapper
      * @return bool
      * @throws Exception
      */
-    public static function validateNoSuchMethod(int $value): bool {
+    public static function validateObjectMapper(ObjectMapper $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return ObjectMapper
      */
-    public function getNoSuchMethod(): int {
-        if (NoSuchMethod::validateNoSuchMethod($this->noSuchMethod))  {
-            return $this->noSuchMethod;
+    public function getObjectMapper(): ObjectMapper {
+        if (Obj4::validateObjectMapper($this->objectMapper))  {
+            return $this->objectMapper;
         }
-        throw new Exception('never get to getNoSuchMethod NoSuchMethod::noSuchMethod');
+        throw new Exception('never get to getObjectMapper Obj4::objectMapper');
     }
 
     /**
-     * @return int
+     * @return ObjectMapper
      */
-    public static function sampleNoSuchMethod(): int {
-        return 31; /*31:noSuchMethod*/
+    public static function sampleObjectMapper(): ObjectMapper {
+        return ObjectMapper::sample(); /*37:objectMapper*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Of
      */
-    public function validate(): bool {
-        return NoSuchMethod::validateNoSuchMethod($this->noSuchMethod);
+    public static function fromOf(stdClass $value): Of {
+        return Of::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'noSuchMethod'} = $this->toNoSuchMethod();
-        return $out;
+    public function toOf(): stdClass {
+        if (Obj4::validateOf($this->of))  {
+            return $this->of->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::of');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NoSuchMethod
+     * @param Of
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NoSuchMethod {
-        if (!property_exists($obj, 'noSuchMethod')) {
-            throw new Exception("Missing required property");
-        }
-        return new NoSuchMethod(
-         NoSuchMethod::fromNoSuchMethod($obj->{'noSuchMethod'})
-        );
+    public static function validateOf(Of $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NoSuchMethod
+     * @throws Exception
+     * @return Of
      */
-    public static function sample(): NoSuchMethod {
-        return new NoSuchMethod(
-         NoSuchMethod::sampleNoSuchMethod()
-        );
+    public function getOf(): Of {
+        if (Obj4::validateOf($this->of))  {
+            return $this->of;
+        }
+        throw new Exception('never get to getOf Obj4::of');
     }
-}
-
-// This is an autogenerated file:Noexcept
-
-class Noexcept {
-    private int $noexcept; // json:noexcept Required
 
     /**
-     * @param int $noexcept
+     * @return Of
      */
-    public function __construct(int $noexcept) {
-        $this->noexcept = $noexcept;
+    public static function sampleOf(): Of {
+        return Of::sample(); /*38:of*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Oneway
      */
-    public static function fromNoexcept(int $value): int {
-        return $value; /*int*/
+    public static function fromOneway(stdClass $value): Oneway {
+        return Oneway::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNoexcept(): int {
-        if (Noexcept::validateNoexcept($this->noexcept))  {
-            return $this->noexcept; /*int*/
+    public function toOneway(): stdClass {
+        if (Obj4::validateOneway($this->oneway))  {
+            return $this->oneway->to(); /*class*/
         }
-        throw new Exception('never get to this Noexcept::noexcept');
+        throw new Exception('never get to this Obj4::oneway');
     }
 
     /**
-     * @param int
+     * @param Oneway
      * @return bool
      * @throws Exception
      */
-    public static function validateNoexcept(int $value): bool {
+    public static function validateOneway(Oneway $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Oneway
      */
-    public function getNoexcept(): int {
-        if (Noexcept::validateNoexcept($this->noexcept))  {
-            return $this->noexcept;
+    public function getOneway(): Oneway {
+        if (Obj4::validateOneway($this->oneway))  {
+            return $this->oneway;
         }
-        throw new Exception('never get to getNoexcept Noexcept::noexcept');
+        throw new Exception('never get to getOneway Obj4::oneway');
     }
 
     /**
-     * @return int
+     * @return Oneway
      */
-    public static function sampleNoexcept(): int {
-        return 31; /*31:noexcept*/
+    public static function sampleOneway(): Oneway {
+        return Oneway::sample(); /*39:oneway*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Open
      */
-    public function validate(): bool {
-        return Noexcept::validateNoexcept($this->noexcept);
+    public static function fromOpen(stdClass $value): Open {
+        return Open::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'noexcept'} = $this->toNoexcept();
-        return $out;
+    public function toOpen(): stdClass {
+        if (Obj4::validateOpen($this->open))  {
+            return $this->open->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::open');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Noexcept
+     * @param Open
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Noexcept {
-        if (!property_exists($obj, 'noexcept')) {
-            throw new Exception("Missing required property");
-        }
-        return new Noexcept(
-         Noexcept::fromNoexcept($obj->{'noexcept'})
-        );
+    public static function validateOpen(Open $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Noexcept
+     * @throws Exception
+     * @return Open
      */
-    public static function sample(): Noexcept {
-        return new Noexcept(
-         Noexcept::sampleNoexcept()
-        );
+    public function getOpen(): Open {
+        if (Obj4::validateOpen($this->open))  {
+            return $this->open;
+        }
+        throw new Exception('never get to getOpen Obj4::open');
     }
-}
-
-// This is an autogenerated file:Nonatomic
-
-class Nonatomic {
-    private int $nonatomic; // json:nonatomic Required
 
     /**
-     * @param int $nonatomic
+     * @return Open
      */
-    public function __construct(int $nonatomic) {
-        $this->nonatomic = $nonatomic;
+    public static function sampleOpen(): Open {
+        return Open::sample(); /*40:open*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Operator
      */
-    public static function fromNonatomic(int $value): int {
-        return $value; /*int*/
+    public static function fromOperator(stdClass $value): Operator {
+        return Operator::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNonatomic(): int {
-        if (Nonatomic::validateNonatomic($this->nonatomic))  {
-            return $this->nonatomic; /*int*/
+    public function toOperator(): stdClass {
+        if (Obj4::validateOperator($this->operator))  {
+            return $this->operator->to(); /*class*/
         }
-        throw new Exception('never get to this Nonatomic::nonatomic');
+        throw new Exception('never get to this Obj4::operator');
     }
 
     /**
-     * @param int
+     * @param Operator
      * @return bool
      * @throws Exception
      */
-    public static function validateNonatomic(int $value): bool {
+    public static function validateOperator(Operator $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Operator
      */
-    public function getNonatomic(): int {
-        if (Nonatomic::validateNonatomic($this->nonatomic))  {
-            return $this->nonatomic;
+    public function getOperator(): Operator {
+        if (Obj4::validateOperator($this->operator))  {
+            return $this->operator;
         }
-        throw new Exception('never get to getNonatomic Nonatomic::nonatomic');
+        throw new Exception('never get to getOperator Obj4::operator');
     }
 
     /**
-     * @return int
+     * @return Operator
      */
-    public static function sampleNonatomic(): int {
-        return 31; /*31:nonatomic*/
+    public static function sampleOperator(): Operator {
+        return Operator::sample(); /*41:operator*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Optional
      */
-    public function validate(): bool {
-        return Nonatomic::validateNonatomic($this->nonatomic);
+    public static function fromOptional(stdClass $value): Optional {
+        return Optional::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'nonatomic'} = $this->toNonatomic();
-        return $out;
+    public function toOptional(): stdClass {
+        if (Obj4::validateOptional($this->optional))  {
+            return $this->optional->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::optional');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Nonatomic
+     * @param Optional
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonatomic {
-        if (!property_exists($obj, 'nonatomic')) {
-            throw new Exception("Missing required property");
-        }
-        return new Nonatomic(
-         Nonatomic::fromNonatomic($obj->{'nonatomic'})
-        );
+    public static function validateOptional(Optional $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Nonatomic
+     * @throws Exception
+     * @return Optional
      */
-    public static function sample(): Nonatomic {
-        return new Nonatomic(
-         Nonatomic::sampleNonatomic()
-        );
+    public function getOptional(): Optional {
+        if (Obj4::validateOptional($this->optional))  {
+            return $this->optional;
+        }
+        throw new Exception('never get to getOptional Obj4::optional');
     }
-}
-
-// This is an autogenerated file:None
-
-class None {
-    private int $none; // json:None Required
 
     /**
-     * @param int $none
+     * @return Optional
      */
-    public function __construct(int $none) {
-        $this->none = $none;
+    public static function sampleOptional(): Optional {
+        return Optional::sample(); /*42:optional*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return OrClass
      */
-    public static function fromNone(int $value): int {
-        return $value; /*int*/
+    public static function fromOr(stdClass $value): OrClass {
+        return OrClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNone(): int {
-        if (None::validateNone($this->none))  {
-            return $this->none; /*int*/
+    public function toOr(): stdClass {
+        if (Obj4::validateOr($this->or))  {
+            return $this->or->to(); /*class*/
         }
-        throw new Exception('never get to this None::none');
+        throw new Exception('never get to this Obj4::or');
     }
 
     /**
-     * @param int
+     * @param OrClass
      * @return bool
      * @throws Exception
      */
-    public static function validateNone(int $value): bool {
+    public static function validateOr(OrClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return OrClass
      */
-    public function getNone(): int {
-        if (None::validateNone($this->none))  {
-            return $this->none;
+    public function getOr(): OrClass {
+        if (Obj4::validateOr($this->or))  {
+            return $this->or;
         }
-        throw new Exception('never get to getNone None::none');
+        throw new Exception('never get to getOr Obj4::or');
     }
 
     /**
-     * @return int
+     * @return OrClass
      */
-    public static function sampleNone(): int {
-        return 31; /*31:none*/
+    public static function sampleOr(): OrClass {
+        return OrClass::sample(); /*43:or*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return OrEq
      */
-    public function validate(): bool {
-        return None::validateNone($this->none);
+    public static function fromOrEq(stdClass $value): OrEq {
+        return OrEq::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'None'} = $this->toNone();
-        return $out;
+    public function toOrEq(): stdClass {
+        if (Obj4::validateOrEq($this->orEq))  {
+            return $this->orEq->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::orEq');
     }
 
     /**
-     * @param stdClass $obj
-     * @return None
+     * @param OrEq
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): None {
-        if (!property_exists($obj, 'None')) {
-            throw new Exception("Missing required property");
-        }
-        return new None(
-         None::fromNone($obj->{'None'})
-        );
+    public static function validateOrEq(OrEq $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return None
+     * @throws Exception
+     * @return OrEq
      */
-    public static function sample(): None {
-        return new None(
-         None::sampleNone()
-        );
+    public function getOrEq(): OrEq {
+        if (Obj4::validateOrEq($this->orEq))  {
+            return $this->orEq;
+        }
+        throw new Exception('never get to getOrEq Obj4::orEq');
     }
-}
-
-// This is an autogenerated file:Nonlocal
-
-class Nonlocal {
-    private int $nonlocal; // json:nonlocal Required
 
     /**
-     * @param int $nonlocal
+     * @return OrEq
      */
-    public function __construct(int $nonlocal) {
-        $this->nonlocal = $nonlocal;
+    public static function sampleOrEq(): OrEq {
+        return OrEq::sample(); /*44:orEq*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Out
      */
-    public static function fromNonlocal(int $value): int {
-        return $value; /*int*/
+    public static function fromOut(stdClass $value): Out {
+        return Out::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNonlocal(): int {
-        if (Nonlocal::validateNonlocal($this->nonlocal))  {
-            return $this->nonlocal; /*int*/
+    public function toOut(): stdClass {
+        if (Obj4::validateOut($this->out))  {
+            return $this->out->to(); /*class*/
         }
-        throw new Exception('never get to this Nonlocal::nonlocal');
+        throw new Exception('never get to this Obj4::out');
     }
 
     /**
-     * @param int
+     * @param Out
      * @return bool
      * @throws Exception
      */
-    public static function validateNonlocal(int $value): bool {
+    public static function validateOut(Out $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Out
      */
-    public function getNonlocal(): int {
-        if (Nonlocal::validateNonlocal($this->nonlocal))  {
-            return $this->nonlocal;
+    public function getOut(): Out {
+        if (Obj4::validateOut($this->out))  {
+            return $this->out;
         }
-        throw new Exception('never get to getNonlocal Nonlocal::nonlocal');
+        throw new Exception('never get to getOut Obj4::out');
     }
 
     /**
-     * @return int
+     * @return Out
      */
-    public static function sampleNonlocal(): int {
-        return 31; /*31:nonlocal*/
+    public static function sampleOut(): Out {
+        return Out::sample(); /*45:out*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return OverrideClass
      */
-    public function validate(): bool {
-        return Nonlocal::validateNonlocal($this->nonlocal);
+    public static function fromOverride(stdClass $value): OverrideClass {
+        return OverrideClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'nonlocal'} = $this->toNonlocal();
-        return $out;
+    public function toOverride(): stdClass {
+        if (Obj4::validateOverride($this->override))  {
+            return $this->override->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::override');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Nonlocal
+     * @param OverrideClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonlocal {
-        if (!property_exists($obj, 'nonlocal')) {
-            throw new Exception("Missing required property");
-        }
-        return new Nonlocal(
-         Nonlocal::fromNonlocal($obj->{'nonlocal'})
-        );
+    public static function validateOverride(OverrideClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Nonlocal
+     * @throws Exception
+     * @return OverrideClass
      */
-    public static function sample(): Nonlocal {
-        return new Nonlocal(
-         Nonlocal::sampleNonlocal()
-        );
+    public function getOverride(): OverrideClass {
+        if (Obj4::validateOverride($this->override))  {
+            return $this->override;
+        }
+        throw new Exception('never get to getOverride Obj4::override');
     }
-}
-
-// This is an autogenerated file:Nonmutating
-
-class Nonmutating {
-    private int $nonmutating; // json:nonmutating Required
 
     /**
-     * @param int $nonmutating
+     * @return OverrideClass
      */
-    public function __construct(int $nonmutating) {
-        $this->nonmutating = $nonmutating;
+    public static function sampleOverride(): OverrideClass {
+        return OverrideClass::sample(); /*46:override*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Package
      */
-    public static function fromNonmutating(int $value): int {
-        return $value; /*int*/
+    public static function fromPackage(stdClass $value): Package {
+        return Package::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNonmutating(): int {
-        if (Nonmutating::validateNonmutating($this->nonmutating))  {
-            return $this->nonmutating; /*int*/
+    public function toPackage(): stdClass {
+        if (Obj4::validatePackage($this->package))  {
+            return $this->package->to(); /*class*/
         }
-        throw new Exception('never get to this Nonmutating::nonmutating');
+        throw new Exception('never get to this Obj4::package');
     }
 
     /**
-     * @param int
+     * @param Package
      * @return bool
      * @throws Exception
      */
-    public static function validateNonmutating(int $value): bool {
+    public static function validatePackage(Package $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Package
      */
-    public function getNonmutating(): int {
-        if (Nonmutating::validateNonmutating($this->nonmutating))  {
-            return $this->nonmutating;
+    public function getPackage(): Package {
+        if (Obj4::validatePackage($this->package))  {
+            return $this->package;
         }
-        throw new Exception('never get to getNonmutating Nonmutating::nonmutating');
+        throw new Exception('never get to getPackage Obj4::package');
     }
 
     /**
-     * @return int
+     * @return Package
      */
-    public static function sampleNonmutating(): int {
-        return 31; /*31:nonmutating*/
+    public static function samplePackage(): Package {
+        return Package::sample(); /*47:package*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Params
      */
-    public function validate(): bool {
-        return Nonmutating::validateNonmutating($this->nonmutating);
+    public static function fromParams(stdClass $value): Params {
+        return Params::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'nonmutating'} = $this->toNonmutating();
-        return $out;
+    public function toParams(): stdClass {
+        if (Obj4::validateParams($this->params))  {
+            return $this->params->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::params');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Nonmutating
+     * @param Params
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonmutating {
-        if (!property_exists($obj, 'nonmutating')) {
-            throw new Exception("Missing required property");
-        }
-        return new Nonmutating(
-         Nonmutating::fromNonmutating($obj->{'nonmutating'})
-        );
+    public static function validateParams(Params $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Nonmutating
+     * @throws Exception
+     * @return Params
      */
-    public static function sample(): Nonmutating {
-        return new Nonmutating(
-         Nonmutating::sampleNonmutating()
-        );
+    public function getParams(): Params {
+        if (Obj4::validateParams($this->params))  {
+            return $this->params;
+        }
+        throw new Exception('never get to getParams Obj4::params');
     }
-}
-
-// This is an autogenerated file:Not
-
-class Not {
-    private int $not; // json:not Required
 
     /**
-     * @param int $not
+     * @return Params
      */
-    public function __construct(int $not) {
-        $this->not = $not;
+    public static function sampleParams(): Params {
+        return Params::sample(); /*48:params*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Pass
      */
-    public static function fromNot(int $value): int {
-        return $value; /*int*/
+    public static function fromPass(stdClass $value): Pass {
+        return Pass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNot(): int {
-        if (Not::validateNot($this->not))  {
-            return $this->not; /*int*/
+    public function toPass(): stdClass {
+        if (Obj4::validatePass($this->pass))  {
+            return $this->pass->to(); /*class*/
         }
-        throw new Exception('never get to this Not::not');
+        throw new Exception('never get to this Obj4::pass');
     }
 
     /**
-     * @param int
+     * @param Pass
      * @return bool
      * @throws Exception
      */
-    public static function validateNot(int $value): bool {
+    public static function validatePass(Pass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Pass
      */
-    public function getNot(): int {
-        if (Not::validateNot($this->not))  {
-            return $this->not;
+    public function getPass(): Pass {
+        if (Obj4::validatePass($this->pass))  {
+            return $this->pass;
         }
-        throw new Exception('never get to getNot Not::not');
+        throw new Exception('never get to getPass Obj4::pass');
     }
 
     /**
-     * @return int
+     * @return Pass
      */
-    public static function sampleNot(): int {
-        return 31; /*31:not*/
+    public static function samplePass(): Pass {
+        return Pass::sample(); /*49:pass*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Port
      */
-    public function validate(): bool {
-        return Not::validateNot($this->not);
+    public static function fromPort(stdClass $value): Port {
+        return Port::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'not'} = $this->toNot();
-        return $out;
+    public function toPort(): stdClass {
+        if (Obj4::validatePort($this->port))  {
+            return $this->port->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::port');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Not
+     * @param Port
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Not {
-        if (!property_exists($obj, 'not')) {
-            throw new Exception("Missing required property");
-        }
-        return new Not(
-         Not::fromNot($obj->{'not'})
-        );
+    public static function validatePort(Port $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Not
+     * @throws Exception
+     * @return Port
      */
-    public static function sample(): Not {
-        return new Not(
-         Not::sampleNot()
-        );
+    public function getPort(): Port {
+        if (Obj4::validatePort($this->port))  {
+            return $this->port;
+        }
+        throw new Exception('never get to getPort Obj4::port');
     }
-}
-
-// This is an autogenerated file:NotEq
-
-class NotEq {
-    private int $notEq; // json:not_eq Required
 
     /**
-     * @param int $notEq
+     * @return Port
      */
-    public function __construct(int $notEq) {
-        $this->notEq = $notEq;
+    public static function samplePort(): Port {
+        return Port::sample(); /*50:port*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Postfix
      */
-    public static function fromNotEq(int $value): int {
-        return $value; /*int*/
+    public static function fromPostfix(stdClass $value): Postfix {
+        return Postfix::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNotEq(): int {
-        if (NotEq::validateNotEq($this->notEq))  {
-            return $this->notEq; /*int*/
+    public function toPostfix(): stdClass {
+        if (Obj4::validatePostfix($this->postfix))  {
+            return $this->postfix->to(); /*class*/
         }
-        throw new Exception('never get to this NotEq::notEq');
+        throw new Exception('never get to this Obj4::postfix');
     }
 
     /**
-     * @param int
+     * @param Postfix
      * @return bool
      * @throws Exception
      */
-    public static function validateNotEq(int $value): bool {
+    public static function validatePostfix(Postfix $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Postfix
      */
-    public function getNotEq(): int {
-        if (NotEq::validateNotEq($this->notEq))  {
-            return $this->notEq;
+    public function getPostfix(): Postfix {
+        if (Obj4::validatePostfix($this->postfix))  {
+            return $this->postfix;
         }
-        throw new Exception('never get to getNotEq NotEq::notEq');
+        throw new Exception('never get to getPostfix Obj4::postfix');
     }
 
     /**
-     * @return int
+     * @return Postfix
      */
-    public static function sampleNotEq(): int {
-        return 31; /*31:notEq*/
+    public static function samplePostfix(): Postfix {
+        return Postfix::sample(); /*51:postfix*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Precedence
      */
-    public function validate(): bool {
-        return NotEq::validateNotEq($this->notEq);
+    public static function fromPrecedence(stdClass $value): Precedence {
+        return Precedence::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'not_eq'} = $this->toNotEq();
-        return $out;
+    public function toPrecedence(): stdClass {
+        if (Obj4::validatePrecedence($this->precedence))  {
+            return $this->precedence->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::precedence');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NotEq
+     * @param Precedence
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NotEq {
-        if (!property_exists($obj, 'not_eq')) {
-            throw new Exception("Missing required property");
-        }
-        return new NotEq(
-         NotEq::fromNotEq($obj->{'not_eq'})
-        );
+    public static function validatePrecedence(Precedence $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NotEq
+     * @throws Exception
+     * @return Precedence
      */
-    public static function sample(): NotEq {
-        return new NotEq(
-         NotEq::sampleNotEq()
-        );
+    public function getPrecedence(): Precedence {
+        if (Obj4::validatePrecedence($this->precedence))  {
+            return $this->precedence;
+        }
+        throw new Exception('never get to getPrecedence Obj4::precedence');
     }
-}
-
-// This is an autogenerated file:NSError
-
-class NSError {
-    private int $nsError; // json:NSError Required
 
     /**
-     * @param int $nsError
+     * @return Precedence
      */
-    public function __construct(int $nsError) {
-        $this->nsError = $nsError;
+    public static function samplePrecedence(): Precedence {
+        return Precedence::sample(); /*52:precedence*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Prefix
      */
-    public static function fromNSError(int $value): int {
-        return $value; /*int*/
+    public static function fromPrefix(stdClass $value): Prefix {
+        return Prefix::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNSError(): int {
-        if (NSError::validateNSError($this->nsError))  {
-            return $this->nsError; /*int*/
+    public function toPrefix(): stdClass {
+        if (Obj4::validatePrefix($this->prefix))  {
+            return $this->prefix->to(); /*class*/
         }
-        throw new Exception('never get to this NSError::nsError');
+        throw new Exception('never get to this Obj4::prefix');
     }
 
     /**
-     * @param int
+     * @param Prefix
      * @return bool
      * @throws Exception
      */
-    public static function validateNSError(int $value): bool {
+    public static function validatePrefix(Prefix $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Prefix
      */
-    public function getNSError(): int {
-        if (NSError::validateNSError($this->nsError))  {
-            return $this->nsError;
+    public function getPrefix(): Prefix {
+        if (Obj4::validatePrefix($this->prefix))  {
+            return $this->prefix;
         }
-        throw new Exception('never get to getNSError NSError::nsError');
+        throw new Exception('never get to getPrefix Obj4::prefix');
     }
 
     /**
-     * @return int
+     * @return Prefix
      */
-    public static function sampleNSError(): int {
-        return 31; /*31:nsError*/
+    public static function samplePrefix(): Prefix {
+        return Prefix::sample(); /*53:prefix*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return PrintClass
      */
-    public function validate(): bool {
-        return NSError::validateNSError($this->nsError);
+    public static function fromPrint(stdClass $value): PrintClass {
+        return PrintClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'NSError'} = $this->toNSError();
-        return $out;
+    public function toPrint(): stdClass {
+        if (Obj4::validatePrint($this->print))  {
+            return $this->print->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::print');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NSError
+     * @param PrintClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NSError {
-        if (!property_exists($obj, 'NSError')) {
-            throw new Exception("Missing required property");
-        }
-        return new NSError(
-         NSError::fromNSError($obj->{'NSError'})
-        );
+    public static function validatePrint(PrintClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NSError
+     * @throws Exception
+     * @return PrintClass
      */
-    public static function sample(): NSError {
-        return new NSError(
-         NSError::sampleNSError()
-        );
+    public function getPrint(): PrintClass {
+        if (Obj4::validatePrint($this->print))  {
+            return $this->print;
+        }
+        throw new Exception('never get to getPrint Obj4::print');
     }
-}
-
-// This is an autogenerated file:NSString
-
-class NSString {
-    private int $nsString; // json:NSString Required
 
     /**
-     * @param int $nsString
+     * @return PrintClass
      */
-    public function __construct(int $nsString) {
-        $this->nsString = $nsString;
+    public static function samplePrint(): PrintClass {
+        return PrintClass::sample(); /*54:print*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return PrintMembers
      */
-    public static function fromNSString(int $value): int {
-        return $value; /*int*/
+    public static function fromPrintMembers(stdClass $value): PrintMembers {
+        return PrintMembers::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNSString(): int {
-        if (NSString::validateNSString($this->nsString))  {
-            return $this->nsString; /*int*/
+    public function toPrintMembers(): stdClass {
+        if (Obj4::validatePrintMembers($this->printMembers))  {
+            return $this->printMembers->to(); /*class*/
         }
-        throw new Exception('never get to this NSString::nsString');
+        throw new Exception('never get to this Obj4::printMembers');
     }
 
     /**
-     * @param int
+     * @param PrintMembers
      * @return bool
      * @throws Exception
      */
-    public static function validateNSString(int $value): bool {
+    public static function validatePrintMembers(PrintMembers $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return PrintMembers
      */
-    public function getNSString(): int {
-        if (NSString::validateNSString($this->nsString))  {
-            return $this->nsString;
+    public function getPrintMembers(): PrintMembers {
+        if (Obj4::validatePrintMembers($this->printMembers))  {
+            return $this->printMembers;
         }
-        throw new Exception('never get to getNSString NSString::nsString');
+        throw new Exception('never get to getPrintMembers Obj4::printMembers');
     }
 
     /**
-     * @return int
+     * @return PrintMembers
      */
-    public static function sampleNSString(): int {
-        return 31; /*31:nsString*/
+    public static function samplePrintMembers(): PrintMembers {
+        return PrintMembers::sample(); /*55:printMembers*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Printf
      */
-    public function validate(): bool {
-        return NSString::validateNSString($this->nsString);
+    public static function fromPrintf(stdClass $value): Printf {
+        return Printf::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'NSString'} = $this->toNSString();
-        return $out;
+    public function toPrintf(): stdClass {
+        if (Obj4::validatePrintf($this->printf))  {
+            return $this->printf->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::printf');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NSString
+     * @param Printf
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NSString {
-        if (!property_exists($obj, 'NSString')) {
-            throw new Exception("Missing required property");
-        }
-        return new NSString(
-         NSString::fromNSString($obj->{'NSString'})
-        );
+    public static function validatePrintf(Printf $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NSString
+     * @throws Exception
+     * @return Printf
      */
-    public static function sample(): NSString {
-        return new NSString(
-         NSString::sampleNSString()
-        );
+    public function getPrintf(): Printf {
+        if (Obj4::validatePrintf($this->printf))  {
+            return $this->printf;
+        }
+        throw new Exception('never get to getPrintf Obj4::printf');
     }
-}
-
-// This is an autogenerated file:NULLClass
-
-class NULLClass {
-    private int $null; // json:NULL Required
 
     /**
-     * @param int $null
+     * @return Printf
      */
-    public function __construct(int $null) {
-        $this->null = $null;
+    public static function samplePrintf(): Printf {
+        return Printf::sample(); /*56:printf*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return PrivateClass
      */
-    public static function fromNull(int $value): int {
-        return $value; /*int*/
+    public static function fromPrivate(stdClass $value): PrivateClass {
+        return PrivateClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNull(): int {
-        if (NULLClass::validateNull($this->null))  {
-            return $this->null; /*int*/
+    public function toPrivate(): stdClass {
+        if (Obj4::validatePrivate($this->private))  {
+            return $this->private->to(); /*class*/
         }
-        throw new Exception('never get to this NULLClass::null');
+        throw new Exception('never get to this Obj4::private');
     }
 
     /**
-     * @param int
+     * @param PrivateClass
      * @return bool
      * @throws Exception
      */
-    public static function validateNull(int $value): bool {
+    public static function validatePrivate(PrivateClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return PrivateClass
      */
-    public function getNull(): int {
-        if (NULLClass::validateNull($this->null))  {
-            return $this->null;
+    public function getPrivate(): PrivateClass {
+        if (Obj4::validatePrivate($this->private))  {
+            return $this->private;
         }
-        throw new Exception('never get to getNull NULLClass::null');
+        throw new Exception('never get to getPrivate Obj4::private');
     }
 
     /**
-     * @return int
+     * @return PrivateClass
      */
-    public static function sampleNull(): int {
-        return 31; /*31:null*/
+    public static function samplePrivate(): PrivateClass {
+        return PrivateClass::sample(); /*57:private*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ProtectedClass
      */
-    public function validate(): bool {
-        return NULLClass::validateNull($this->null);
+    public static function fromProtected(stdClass $value): ProtectedClass {
+        return ProtectedClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'NULL'} = $this->toNull();
-        return $out;
+    public function toProtected(): stdClass {
+        if (Obj4::validateProtected($this->protected))  {
+            return $this->protected->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::protected');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NULLClass
+     * @param ProtectedClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NULLClass {
-        if (!property_exists($obj, 'NULL')) {
-            throw new Exception("Missing required property");
-        }
-        return new NULLClass(
-         NULLClass::fromNull($obj->{'NULL'})
-        );
+    public static function validateProtected(ProtectedClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NULLClass
+     * @throws Exception
+     * @return ProtectedClass
      */
-    public static function sample(): NULLClass {
-        return new NULLClass(
-         NULLClass::sampleNull()
-        );
+    public function getProtected(): ProtectedClass {
+        if (Obj4::validateProtected($this->protected))  {
+            return $this->protected;
+        }
+        throw new Exception('never get to getProtected Obj4::protected');
     }
-}
-
-// This is an autogenerated file:Nullptr
-
-class Nullptr {
-    private int $nullptr; // json:nullptr Required
 
     /**
-     * @param int $nullptr
+     * @return ProtectedClass
      */
-    public function __construct(int $nullptr) {
-        $this->nullptr = $nullptr;
+    public static function sampleProtected(): ProtectedClass {
+        return ProtectedClass::sample(); /*58:protected*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Protocol
      */
-    public static function fromNullptr(int $value): int {
-        return $value; /*int*/
+    public static function fromProtocol(stdClass $value): Protocol {
+        return Protocol::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNullptr(): int {
-        if (Nullptr::validateNullptr($this->nullptr))  {
-            return $this->nullptr; /*int*/
+    public function toProtocol(): stdClass {
+        if (Obj4::validateProtocol($this->protocol))  {
+            return $this->protocol->to(); /*class*/
         }
-        throw new Exception('never get to this Nullptr::nullptr');
+        throw new Exception('never get to this Obj4::protocol');
     }
 
     /**
-     * @param int
+     * @param Protocol
      * @return bool
      * @throws Exception
      */
-    public static function validateNullptr(int $value): bool {
+    public static function validateProtocol(Protocol $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Protocol
      */
-    public function getNullptr(): int {
-        if (Nullptr::validateNullptr($this->nullptr))  {
-            return $this->nullptr;
+    public function getProtocol(): Protocol {
+        if (Obj4::validateProtocol($this->protocol))  {
+            return $this->protocol;
         }
-        throw new Exception('never get to getNullptr Nullptr::nullptr');
+        throw new Exception('never get to getProtocol Obj4::protocol');
     }
 
     /**
-     * @return int
+     * @return Protocol
      */
-    public static function sampleNullptr(): int {
-        return 31; /*31:nullptr*/
+    public static function sampleProtocol(): Protocol {
+        return Protocol::sample(); /*59:protocol*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return PublicClass
      */
-    public function validate(): bool {
-        return Nullptr::validateNullptr($this->nullptr);
+    public static function fromPublic(stdClass $value): PublicClass {
+        return PublicClass::from($value); /*class*/
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass
+     */
+    public function toPublic(): stdClass {
+        if (Obj4::validatePublic($this->public))  {
+            return $this->public->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::public');
     }
 
     /**
-     * @return stdClass
+     * @param PublicClass
+     * @return bool
      * @throws Exception
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'nullptr'} = $this->toNullptr();
-        return $out;
+    public static function validatePublic(PublicClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @param stdClass $obj
-     * @return Nullptr
      * @throws Exception
+     * @return PublicClass
      */
-    public static function from(stdClass $obj): Nullptr {
-        if (!property_exists($obj, 'nullptr')) {
-            throw new Exception("Missing required property");
+    public function getPublic(): PublicClass {
+        if (Obj4::validatePublic($this->public))  {
+            return $this->public;
         }
-        return new Nullptr(
-         Nullptr::fromNullptr($obj->{'nullptr'})
-        );
-    }
-
-    /**
-     * @return Nullptr
-     */
-    public static function sample(): Nullptr {
-        return new Nullptr(
-         Nullptr::sampleNullptr()
-        );
+        throw new Exception('never get to getPublic Obj4::public');
     }
-}
-
-// This is an autogenerated file:Number
-
-class Number {
-    private int $number; // json:number Required
 
     /**
-     * @param int $number
+     * @return PublicClass
      */
-    public function __construct(int $number) {
-        $this->number = $number;
+    public static function samplePublic(): PublicClass {
+        return PublicClass::sample(); /*60:public*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Quicktype
      */
-    public static function fromNumber(int $value): int {
-        return $value; /*int*/
+    public static function fromQuicktype(stdClass $value): Quicktype {
+        return Quicktype::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNumber(): int {
-        if (Number::validateNumber($this->number))  {
-            return $this->number; /*int*/
+    public function toQuicktype(): stdClass {
+        if (Obj4::validateQuicktype($this->quicktype))  {
+            return $this->quicktype->to(); /*class*/
         }
-        throw new Exception('never get to this Number::number');
+        throw new Exception('never get to this Obj4::quicktype');
     }
 
     /**
-     * @param int
+     * @param Quicktype
      * @return bool
      * @throws Exception
      */
-    public static function validateNumber(int $value): bool {
+    public static function validateQuicktype(Quicktype $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Quicktype
      */
-    public function getNumber(): int {
-        if (Number::validateNumber($this->number))  {
-            return $this->number;
+    public function getQuicktype(): Quicktype {
+        if (Obj4::validateQuicktype($this->quicktype))  {
+            return $this->quicktype;
         }
-        throw new Exception('never get to getNumber Number::number');
+        throw new Exception('never get to getQuicktype Obj4::quicktype');
     }
 
     /**
-     * @return int
+     * @return Quicktype
      */
-    public static function sampleNumber(): int {
-        return 31; /*31:number*/
+    public static function sampleQuicktype(): Quicktype {
+        return Quicktype::sample(); /*61:quicktype*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Raise
      */
-    public function validate(): bool {
-        return Number::validateNumber($this->number);
+    public static function fromRaise(stdClass $value): Raise {
+        return Raise::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'number'} = $this->toNumber();
-        return $out;
+    public function toRaise(): stdClass {
+        if (Obj4::validateRaise($this->raise))  {
+            return $this->raise->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::raise');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Number
+     * @param Raise
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Number {
-        if (!property_exists($obj, 'number')) {
-            throw new Exception("Missing required property");
-        }
-        return new Number(
-         Number::fromNumber($obj->{'number'})
-        );
+    public static function validateRaise(Raise $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Number
+     * @throws Exception
+     * @return Raise
      */
-    public static function sample(): Number {
-        return new Number(
-         Number::sampleNumber()
-        );
+    public function getRaise(): Raise {
+        if (Obj4::validateRaise($this->raise))  {
+            return $this->raise;
+        }
+        throw new Exception('never get to getRaise Obj4::raise');
     }
-}
-
-// This is an autogenerated file:NoneClass
-
-class NoneClass {
-    private int $none; // json:none Required
 
     /**
-     * @param int $none
+     * @return Raise
      */
-    public function __construct(int $none) {
-        $this->none = $none;
+    public static function sampleRaise(): Raise {
+        return Raise::sample(); /*62:raise*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Range
      */
-    public static function fromNone(int $value): int {
-        return $value; /*int*/
+    public static function fromRange(stdClass $value): Range {
+        return Range::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNone(): int {
-        if (NoneClass::validateNone($this->none))  {
-            return $this->none; /*int*/
+    public function toRange(): stdClass {
+        if (Obj4::validateRange($this->range))  {
+            return $this->range->to(); /*class*/
         }
-        throw new Exception('never get to this NoneClass::none');
+        throw new Exception('never get to this Obj4::range');
     }
 
     /**
-     * @param int
+     * @param Range
      * @return bool
      * @throws Exception
      */
-    public static function validateNone(int $value): bool {
+    public static function validateRange(Range $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Range
      */
-    public function getNone(): int {
-        if (NoneClass::validateNone($this->none))  {
-            return $this->none;
+    public function getRange(): Range {
+        if (Obj4::validateRange($this->range))  {
+            return $this->range;
         }
-        throw new Exception('never get to getNone NoneClass::none');
+        throw new Exception('never get to getRange Obj4::range');
     }
 
     /**
-     * @return int
+     * @return Range
      */
-    public static function sampleNone(): int {
-        return 31; /*31:none*/
+    public static function sampleRange(): Range {
+        return Range::sample(); /*63:range*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ReadonlyClass
      */
-    public function validate(): bool {
-        return NoneClass::validateNone($this->none);
+    public static function fromReadonly(stdClass $value): ReadonlyClass {
+        return ReadonlyClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'none'} = $this->toNone();
-        return $out;
+    public function toReadonly(): stdClass {
+        if (Obj4::validateReadonly($this->readonly))  {
+            return $this->readonly->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::readonly');
     }
 
     /**
-     * @param stdClass $obj
-     * @return NoneClass
+     * @param ReadonlyClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): NoneClass {
-        if (!property_exists($obj, 'none')) {
-            throw new Exception("Missing required property");
-        }
-        return new NoneClass(
-         NoneClass::fromNone($obj->{'none'})
-        );
+    public static function validateReadonly(ReadonlyClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return NoneClass
+     * @throws Exception
+     * @return ReadonlyClass
      */
-    public static function sample(): NoneClass {
-        return new NoneClass(
-         NoneClass::sampleNone()
-        );
+    public function getReadonly(): ReadonlyClass {
+        if (Obj4::validateReadonly($this->readonly))  {
+            return $this->readonly;
+        }
+        throw new Exception('never get to getReadonly Obj4::readonly');
     }
-}
-
-// This is an autogenerated file:Obj3Null
-
-class Obj3Null {
-    private int $null; // json:null Required
 
     /**
-     * @param int $null
+     * @return ReadonlyClass
      */
-    public function __construct(int $null) {
-        $this->null = $null;
+    public static function sampleReadonly(): ReadonlyClass {
+        return ReadonlyClass::sample(); /*64:readonly*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Ref
      */
-    public static function fromNull(int $value): int {
-        return $value; /*int*/
+    public static function fromRef(stdClass $value): Ref {
+        return Ref::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toNull(): int {
-        if (Obj3Null::validateNull($this->null))  {
-            return $this->null; /*int*/
+    public function toRef(): stdClass {
+        if (Obj4::validateRef($this->ref))  {
+            return $this->ref->to(); /*class*/
         }
-        throw new Exception('never get to this Obj3Null::null');
+        throw new Exception('never get to this Obj4::ref');
     }
 
     /**
-     * @param int
+     * @param Ref
      * @return bool
      * @throws Exception
      */
-    public static function validateNull(int $value): bool {
+    public static function validateRef(Ref $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Ref
      */
-    public function getNull(): int {
-        if (Obj3Null::validateNull($this->null))  {
-            return $this->null;
+    public function getRef(): Ref {
+        if (Obj4::validateRef($this->ref))  {
+            return $this->ref;
         }
-        throw new Exception('never get to getNull Obj3Null::null');
+        throw new Exception('never get to getRef Obj4::ref');
     }
 
     /**
-     * @return int
+     * @return Ref
      */
-    public static function sampleNull(): int {
-        return 31; /*31:null*/
+    public static function sampleRef(): Ref {
+        return Ref::sample(); /*65:ref*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return RegExp
      */
-    public function validate(): bool {
-        return Obj3Null::validateNull($this->null);
+    public static function fromRegExp(stdClass $value): RegExp {
+        return RegExp::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'null'} = $this->toNull();
-        return $out;
+    public function toRegExp(): stdClass {
+        if (Obj4::validateRegExp($this->regExp))  {
+            return $this->regExp->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::regExp');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Obj3Null
+     * @param RegExp
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj3Null {
-        if (!property_exists($obj, 'null')) {
-            throw new Exception("Missing required property");
-        }
-        return new Obj3Null(
-         Obj3Null::fromNull($obj->{'null'})
-        );
+    public static function validateRegExp(RegExp $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Obj3Null
+     * @throws Exception
+     * @return RegExp
      */
-    public static function sample(): Obj3Null {
-        return new Obj3Null(
-         Obj3Null::sampleNull()
-        );
+    public function getRegExp(): RegExp {
+        if (Obj4::validateRegExp($this->regExp))  {
+            return $this->regExp;
+        }
+        throw new Exception('never get to getRegExp Obj4::regExp');
     }
-}
-
-// This is an autogenerated file:ProtocolClass
-
-class ProtocolClass {
-    private int $protocol; // json:protocol Required
 
     /**
-     * @param int $protocol
+     * @return RegExp
      */
-    public function __construct(int $protocol) {
-        $this->protocol = $protocol;
+    public static function sampleRegExp(): RegExp {
+        return RegExp::sample(); /*66:regExp*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Register
      */
-    public static function fromProtocol(int $value): int {
-        return $value; /*int*/
+    public static function fromRegister(stdClass $value): Register {
+        return Register::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toProtocol(): int {
-        if (ProtocolClass::validateProtocol($this->protocol))  {
-            return $this->protocol; /*int*/
+    public function toRegister(): stdClass {
+        if (Obj4::validateRegister($this->register))  {
+            return $this->register->to(); /*class*/
         }
-        throw new Exception('never get to this ProtocolClass::protocol');
+        throw new Exception('never get to this Obj4::register');
     }
 
     /**
-     * @param int
+     * @param Register
      * @return bool
      * @throws Exception
      */
-    public static function validateProtocol(int $value): bool {
+    public static function validateRegister(Register $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Register
      */
-    public function getProtocol(): int {
-        if (ProtocolClass::validateProtocol($this->protocol))  {
-            return $this->protocol;
+    public function getRegister(): Register {
+        if (Obj4::validateRegister($this->register))  {
+            return $this->register;
         }
-        throw new Exception('never get to getProtocol ProtocolClass::protocol');
+        throw new Exception('never get to getRegister Obj4::register');
     }
 
     /**
-     * @return int
+     * @return Register
      */
-    public static function sampleProtocol(): int {
-        return 31; /*31:protocol*/
+    public static function sampleRegister(): Register {
+        return Register::sample(); /*67:register*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ReinterpretCast
      */
-    public function validate(): bool {
-        return ProtocolClass::validateProtocol($this->protocol);
+    public static function fromReinterpretCast(stdClass $value): ReinterpretCast {
+        return ReinterpretCast::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'protocol'} = $this->toProtocol();
-        return $out;
+    public function toReinterpretCast(): stdClass {
+        if (Obj4::validateReinterpretCast($this->reinterpretCast))  {
+            return $this->reinterpretCast->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::reinterpretCast');
     }
 
     /**
-     * @param stdClass $obj
-     * @return ProtocolClass
+     * @param ReinterpretCast
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): ProtocolClass {
-        if (!property_exists($obj, 'protocol')) {
-            throw new Exception("Missing required property");
-        }
-        return new ProtocolClass(
-         ProtocolClass::fromProtocol($obj->{'protocol'})
-        );
+    public static function validateReinterpretCast(ReinterpretCast $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return ProtocolClass
+     * @throws Exception
+     * @return ReinterpretCast
      */
-    public static function sample(): ProtocolClass {
-        return new ProtocolClass(
-         ProtocolClass::sampleProtocol()
-        );
+    public function getReinterpretCast(): ReinterpretCast {
+        if (Obj4::validateReinterpretCast($this->reinterpretCast))  {
+            return $this->reinterpretCast;
+        }
+        throw new Exception('never get to getReinterpretCast Obj4::reinterpretCast');
     }
-}
-
-// This is an autogenerated file:ObjectClass
-
-class ObjectClass {
-    private int $object; // json:object Required
 
     /**
-     * @param int $object
+     * @return ReinterpretCast
      */
-    public function __construct(int $object) {
-        $this->object = $object;
+    public static function sampleReinterpretCast(): ReinterpretCast {
+        return ReinterpretCast::sample(); /*68:reinterpretCast*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Repeat
      */
-    public static function fromObject(int $value): int {
-        return $value; /*int*/
+    public static function fromRepeat(stdClass $value): Repeat {
+        return Repeat::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toObject(): int {
-        if (ObjectClass::validateObject($this->object))  {
-            return $this->object; /*int*/
+    public function toRepeat(): stdClass {
+        if (Obj4::validateRepeat($this->repeat))  {
+            return $this->repeat->to(); /*class*/
         }
-        throw new Exception('never get to this ObjectClass::object');
+        throw new Exception('never get to this Obj4::repeat');
     }
 
     /**
-     * @param int
+     * @param Repeat
      * @return bool
      * @throws Exception
      */
-    public static function validateObject(int $value): bool {
+    public static function validateRepeat(Repeat $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Repeat
      */
-    public function getObject(): int {
-        if (ObjectClass::validateObject($this->object))  {
-            return $this->object;
+    public function getRepeat(): Repeat {
+        if (Obj4::validateRepeat($this->repeat))  {
+            return $this->repeat;
         }
-        throw new Exception('never get to getObject ObjectClass::object');
+        throw new Exception('never get to getRepeat Obj4::repeat');
     }
 
     /**
-     * @return int
+     * @return Repeat
      */
-    public static function sampleObject(): int {
-        return 31; /*31:object*/
+    public static function sampleRepeat(): Repeat {
+        return Repeat::sample(); /*69:repeat*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return RequireClass
      */
-    public function validate(): bool {
-        return ObjectClass::validateObject($this->object);
+    public static function fromRequire(stdClass $value): RequireClass {
+        return RequireClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'object'} = $this->toObject();
-        return $out;
+    public function toRequire(): stdClass {
+        if (Obj4::validateRequire($this->require))  {
+            return $this->require->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::require');
     }
 
     /**
-     * @param stdClass $obj
-     * @return ObjectClass
+     * @param RequireClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): ObjectClass {
-        if (!property_exists($obj, 'object')) {
-            throw new Exception("Missing required property");
-        }
-        return new ObjectClass(
-         ObjectClass::fromObject($obj->{'object'})
-        );
+    public static function validateRequire(RequireClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return ObjectClass
+     * @throws Exception
+     * @return RequireClass
      */
-    public static function sample(): ObjectClass {
-        return new ObjectClass(
-         ObjectClass::sampleObject()
-        );
+    public function getRequire(): RequireClass {
+        if (Obj4::validateRequire($this->require))  {
+            return $this->require;
+        }
+        throw new Exception('never get to getRequire Obj4::require');
     }
-}
-
-// This is an autogenerated file:ObjectMapper
-
-class ObjectMapper {
-    private int $objectMapper; // json:ObjectMapper Required
 
     /**
-     * @param int $objectMapper
+     * @return RequireClass
      */
-    public function __construct(int $objectMapper) {
-        $this->objectMapper = $objectMapper;
+    public static function sampleRequire(): RequireClass {
+        return RequireClass::sample(); /*70:require*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Required
      */
-    public static function fromObjectMapper(int $value): int {
-        return $value; /*int*/
+    public static function fromRequired(stdClass $value): Required {
+        return Required::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toObjectMapper(): int {
-        if (ObjectMapper::validateObjectMapper($this->objectMapper))  {
-            return $this->objectMapper; /*int*/
+    public function toRequired(): stdClass {
+        if (Obj4::validateRequired($this->required))  {
+            return $this->required->to(); /*class*/
         }
-        throw new Exception('never get to this ObjectMapper::objectMapper');
+        throw new Exception('never get to this Obj4::required');
     }
 
     /**
-     * @param int
+     * @param Required
      * @return bool
      * @throws Exception
      */
-    public static function validateObjectMapper(int $value): bool {
+    public static function validateRequired(Required $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Required
      */
-    public function getObjectMapper(): int {
-        if (ObjectMapper::validateObjectMapper($this->objectMapper))  {
-            return $this->objectMapper;
+    public function getRequired(): Required {
+        if (Obj4::validateRequired($this->required))  {
+            return $this->required;
         }
-        throw new Exception('never get to getObjectMapper ObjectMapper::objectMapper');
+        throw new Exception('never get to getRequired Obj4::required');
     }
 
     /**
-     * @return int
+     * @return Required
      */
-    public static function sampleObjectMapper(): int {
-        return 31; /*31:objectMapper*/
+    public static function sampleRequired(): Required {
+        return Required::sample(); /*71:required*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Requires
      */
-    public function validate(): bool {
-        return ObjectMapper::validateObjectMapper($this->objectMapper);
+    public static function fromRequires(stdClass $value): Requires {
+        return Requires::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'ObjectMapper'} = $this->toObjectMapper();
-        return $out;
+    public function toRequires(): stdClass {
+        if (Obj4::validateRequires($this->requires))  {
+            return $this->requires->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::requires');
     }
 
     /**
-     * @param stdClass $obj
-     * @return ObjectMapper
+     * @param Requires
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): ObjectMapper {
-        if (!property_exists($obj, 'ObjectMapper')) {
-            throw new Exception("Missing required property");
-        }
-        return new ObjectMapper(
-         ObjectMapper::fromObjectMapper($obj->{'ObjectMapper'})
-        );
+    public static function validateRequires(Requires $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return ObjectMapper
+     * @throws Exception
+     * @return Requires
      */
-    public static function sample(): ObjectMapper {
-        return new ObjectMapper(
-         ObjectMapper::sampleObjectMapper()
-        );
+    public function getRequires(): Requires {
+        if (Obj4::validateRequires($this->requires))  {
+            return $this->requires;
+        }
+        throw new Exception('never get to getRequires Obj4::requires');
     }
-}
-
-// This is an autogenerated file:Of
-
-class Of {
-    private int $of; // json:of Required
 
     /**
-     * @param int $of
+     * @return Requires
      */
-    public function __construct(int $of) {
-        $this->of = $of;
+    public static function sampleRequires(): Requires {
+        return Requires::sample(); /*72:requires*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Restrict
      */
-    public static function fromOf(int $value): int {
-        return $value; /*int*/
+    public static function fromRestrict(stdClass $value): Restrict {
+        return Restrict::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOf(): int {
-        if (Of::validateOf($this->of))  {
-            return $this->of; /*int*/
+    public function toRestrict(): stdClass {
+        if (Obj4::validateRestrict($this->restrict))  {
+            return $this->restrict->to(); /*class*/
         }
-        throw new Exception('never get to this Of::of');
+        throw new Exception('never get to this Obj4::restrict');
     }
 
     /**
-     * @param int
+     * @param Restrict
      * @return bool
      * @throws Exception
      */
-    public static function validateOf(int $value): bool {
+    public static function validateRestrict(Restrict $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Restrict
      */
-    public function getOf(): int {
-        if (Of::validateOf($this->of))  {
-            return $this->of;
+    public function getRestrict(): Restrict {
+        if (Obj4::validateRestrict($this->restrict))  {
+            return $this->restrict;
         }
-        throw new Exception('never get to getOf Of::of');
+        throw new Exception('never get to getRestrict Obj4::restrict');
     }
 
     /**
-     * @return int
+     * @return Restrict
      */
-    public static function sampleOf(): int {
-        return 31; /*31:of*/
+    public static function sampleRestrict(): Restrict {
+        return Restrict::sample(); /*73:restrict*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Retain
      */
-    public function validate(): bool {
-        return Of::validateOf($this->of);
+    public static function fromRetain(stdClass $value): Retain {
+        return Retain::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'of'} = $this->toOf();
-        return $out;
+    public function toRetain(): stdClass {
+        if (Obj4::validateRetain($this->retain))  {
+            return $this->retain->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::retain');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Of
+     * @param Retain
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Of {
-        if (!property_exists($obj, 'of')) {
-            throw new Exception("Missing required property");
-        }
-        return new Of(
-         Of::fromOf($obj->{'of'})
-        );
+    public static function validateRetain(Retain $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Of
+     * @throws Exception
+     * @return Retain
      */
-    public static function sample(): Of {
-        return new Of(
-         Of::sampleOf()
-        );
+    public function getRetain(): Retain {
+        if (Obj4::validateRetain($this->retain))  {
+            return $this->retain;
+        }
+        throw new Exception('never get to getRetain Obj4::retain');
     }
-}
-
-// This is an autogenerated file:Oneway
-
-class Oneway {
-    private int $oneway; // json:oneway Required
 
     /**
-     * @param int $oneway
+     * @return Retain
      */
-    public function __construct(int $oneway) {
-        $this->oneway = $oneway;
+    public static function sampleRetain(): Retain {
+        return Retain::sample(); /*74:retain*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Rethrows
      */
-    public static function fromOneway(int $value): int {
-        return $value; /*int*/
+    public static function fromRethrows(stdClass $value): Rethrows {
+        return Rethrows::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOneway(): int {
-        if (Oneway::validateOneway($this->oneway))  {
-            return $this->oneway; /*int*/
+    public function toRethrows(): stdClass {
+        if (Obj4::validateRethrows($this->rethrows))  {
+            return $this->rethrows->to(); /*class*/
         }
-        throw new Exception('never get to this Oneway::oneway');
+        throw new Exception('never get to this Obj4::rethrows');
     }
 
     /**
-     * @param int
+     * @param Rethrows
      * @return bool
      * @throws Exception
      */
-    public static function validateOneway(int $value): bool {
+    public static function validateRethrows(Rethrows $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Rethrows
      */
-    public function getOneway(): int {
-        if (Oneway::validateOneway($this->oneway))  {
-            return $this->oneway;
+    public function getRethrows(): Rethrows {
+        if (Obj4::validateRethrows($this->rethrows))  {
+            return $this->rethrows;
         }
-        throw new Exception('never get to getOneway Oneway::oneway');
+        throw new Exception('never get to getRethrows Obj4::rethrows');
     }
 
     /**
-     * @return int
+     * @return Rethrows
      */
-    public static function sampleOneway(): int {
-        return 31; /*31:oneway*/
+    public static function sampleRethrows(): Rethrows {
+        return Rethrows::sample(); /*75:rethrows*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ReturnClass
      */
-    public function validate(): bool {
-        return Oneway::validateOneway($this->oneway);
+    public static function fromReturn(stdClass $value): ReturnClass {
+        return ReturnClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'oneway'} = $this->toOneway();
-        return $out;
+    public function toReturn(): stdClass {
+        if (Obj4::validateReturn($this->return))  {
+            return $this->return->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::return');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Oneway
+     * @param ReturnClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Oneway {
-        if (!property_exists($obj, 'oneway')) {
-            throw new Exception("Missing required property");
-        }
-        return new Oneway(
-         Oneway::fromOneway($obj->{'oneway'})
-        );
+    public static function validateReturn(ReturnClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Oneway
+     * @throws Exception
+     * @return ReturnClass
      */
-    public static function sample(): Oneway {
-        return new Oneway(
-         Oneway::sampleOneway()
-        );
+    public function getReturn(): ReturnClass {
+        if (Obj4::validateReturn($this->return))  {
+            return $this->return;
+        }
+        throw new Exception('never get to getReturn Obj4::return');
     }
-}
-
-// This is an autogenerated file:Open
-
-class Open {
-    private int $open; // json:open Required
 
     /**
-     * @param int $open
+     * @return ReturnClass
      */
-    public function __construct(int $open) {
-        $this->open = $open;
+    public static function sampleReturn(): ReturnClass {
+        return ReturnClass::sample(); /*76:return*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Right
      */
-    public static function fromOpen(int $value): int {
-        return $value; /*int*/
+    public static function fromRight(stdClass $value): Right {
+        return Right::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOpen(): int {
-        if (Open::validateOpen($this->open))  {
-            return $this->open; /*int*/
+    public function toRight(): stdClass {
+        if (Obj4::validateRight($this->right))  {
+            return $this->right->to(); /*class*/
         }
-        throw new Exception('never get to this Open::open');
+        throw new Exception('never get to this Obj4::right');
     }
 
     /**
-     * @param int
+     * @param Right
      * @return bool
      * @throws Exception
      */
-    public static function validateOpen(int $value): bool {
+    public static function validateRight(Right $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Right
      */
-    public function getOpen(): int {
-        if (Open::validateOpen($this->open))  {
-            return $this->open;
+    public function getRight(): Right {
+        if (Obj4::validateRight($this->right))  {
+            return $this->right;
         }
-        throw new Exception('never get to getOpen Open::open');
+        throw new Exception('never get to getRight Obj4::right');
     }
 
     /**
-     * @return int
+     * @return Right
      */
-    public static function sampleOpen(): int {
-        return 31; /*31:open*/
+    public static function sampleRight(): Right {
+        return Right::sample(); /*77:right*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return RuntimeType
      */
-    public function validate(): bool {
-        return Open::validateOpen($this->open);
+    public static function fromRuntimeType(stdClass $value): RuntimeType {
+        return RuntimeType::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'open'} = $this->toOpen();
-        return $out;
+    public function toRuntimeType(): stdClass {
+        if (Obj4::validateRuntimeType($this->runtimeType))  {
+            return $this->runtimeType->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::runtimeType');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Open
+     * @param RuntimeType
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Open {
-        if (!property_exists($obj, 'open')) {
-            throw new Exception("Missing required property");
-        }
-        return new Open(
-         Open::fromOpen($obj->{'open'})
-        );
+    public static function validateRuntimeType(RuntimeType $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Open
+     * @throws Exception
+     * @return RuntimeType
      */
-    public static function sample(): Open {
-        return new Open(
-         Open::sampleOpen()
-        );
+    public function getRuntimeType(): RuntimeType {
+        if (Obj4::validateRuntimeType($this->runtimeType))  {
+            return $this->runtimeType;
+        }
+        throw new Exception('never get to getRuntimeType Obj4::runtimeType');
     }
-}
-
-// This is an autogenerated file:Operator
-
-class Operator {
-    private int $operator; // json:operator Required
 
     /**
-     * @param int $operator
+     * @return RuntimeType
      */
-    public function __construct(int $operator) {
-        $this->operator = $operator;
+    public static function sampleRuntimeType(): RuntimeType {
+        return RuntimeType::sample(); /*78:runtimeType*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return S
      */
-    public static function fromOperator(int $value): int {
-        return $value; /*int*/
+    public static function fromS(stdClass $value): S {
+        return S::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOperator(): int {
-        if (Operator::validateOperator($this->operator))  {
-            return $this->operator; /*int*/
+    public function toS(): stdClass {
+        if (Obj4::validateS($this->s))  {
+            return $this->s->to(); /*class*/
         }
-        throw new Exception('never get to this Operator::operator');
+        throw new Exception('never get to this Obj4::s');
     }
 
     /**
-     * @param int
+     * @param S
      * @return bool
      * @throws Exception
      */
-    public static function validateOperator(int $value): bool {
+    public static function validateS(S $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return S
      */
-    public function getOperator(): int {
-        if (Operator::validateOperator($this->operator))  {
-            return $this->operator;
+    public function getS(): S {
+        if (Obj4::validateS($this->s))  {
+            return $this->s;
         }
-        throw new Exception('never get to getOperator Operator::operator');
+        throw new Exception('never get to getS Obj4::s');
     }
 
     /**
-     * @return int
+     * @return S
      */
-    public static function sampleOperator(): int {
-        return 31; /*31:operator*/
+    public static function sampleS(): S {
+        return S::sample(); /*79:s*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Sbyte
      */
-    public function validate(): bool {
-        return Operator::validateOperator($this->operator);
+    public static function fromSbyte(stdClass $value): Sbyte {
+        return Sbyte::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'operator'} = $this->toOperator();
-        return $out;
+    public function toSbyte(): stdClass {
+        if (Obj4::validateSbyte($this->sbyte))  {
+            return $this->sbyte->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::sbyte');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Operator
+     * @param Sbyte
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Operator {
-        if (!property_exists($obj, 'operator')) {
-            throw new Exception("Missing required property");
-        }
-        return new Operator(
-         Operator::fromOperator($obj->{'operator'})
-        );
+    public static function validateSbyte(Sbyte $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Operator
+     * @throws Exception
+     * @return Sbyte
      */
-    public static function sample(): Operator {
-        return new Operator(
-         Operator::sampleOperator()
-        );
+    public function getSbyte(): Sbyte {
+        if (Obj4::validateSbyte($this->sbyte))  {
+            return $this->sbyte;
+        }
+        throw new Exception('never get to getSbyte Obj4::sbyte');
     }
-}
-
-// This is an autogenerated file:Optional
-
-class Optional {
-    private int $optional; // json:optional Required
 
     /**
-     * @param int $optional
+     * @return Sbyte
      */
-    public function __construct(int $optional) {
-        $this->optional = $optional;
+    public static function sampleSbyte(): Sbyte {
+        return Sbyte::sample(); /*80:sbyte*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Sealed
      */
-    public static function fromOptional(int $value): int {
-        return $value; /*int*/
+    public static function fromSealed(stdClass $value): Sealed {
+        return Sealed::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOptional(): int {
-        if (Optional::validateOptional($this->optional))  {
-            return $this->optional; /*int*/
+    public function toSealed(): stdClass {
+        if (Obj4::validateSealed($this->sealed))  {
+            return $this->sealed->to(); /*class*/
         }
-        throw new Exception('never get to this Optional::optional');
+        throw new Exception('never get to this Obj4::sealed');
     }
 
     /**
-     * @param int
+     * @param Sealed
      * @return bool
      * @throws Exception
      */
-    public static function validateOptional(int $value): bool {
+    public static function validateSealed(Sealed $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Sealed
      */
-    public function getOptional(): int {
-        if (Optional::validateOptional($this->optional))  {
-            return $this->optional;
+    public function getSealed(): Sealed {
+        if (Obj4::validateSealed($this->sealed))  {
+            return $this->sealed;
         }
-        throw new Exception('never get to getOptional Optional::optional');
+        throw new Exception('never get to getSealed Obj4::sealed');
     }
 
     /**
-     * @return int
+     * @return Sealed
      */
-    public static function sampleOptional(): int {
-        return 31; /*31:optional*/
+    public static function sampleSealed(): Sealed {
+        return Sealed::sample(); /*81:sealed*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Sel
      */
-    public function validate(): bool {
-        return Optional::validateOptional($this->optional);
+    public static function fromSel(stdClass $value): Sel {
+        return Sel::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'optional'} = $this->toOptional();
-        return $out;
+    public function toSel(): stdClass {
+        if (Obj4::validateSel($this->sel))  {
+            return $this->sel->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::sel');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Optional
+     * @param Sel
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Optional {
-        if (!property_exists($obj, 'optional')) {
-            throw new Exception("Missing required property");
-        }
-        return new Optional(
-         Optional::fromOptional($obj->{'optional'})
-        );
+    public static function validateSel(Sel $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Optional
+     * @throws Exception
+     * @return Sel
      */
-    public static function sample(): Optional {
-        return new Optional(
-         Optional::sampleOptional()
-        );
+    public function getSel(): Sel {
+        if (Obj4::validateSel($this->sel))  {
+            return $this->sel;
+        }
+        throw new Exception('never get to getSel Obj4::sel');
     }
-}
-
-// This is an autogenerated file:OrClass
-
-class OrClass {
-    private int $or; // json:or Required
 
     /**
-     * @param int $or
+     * @return Sel
      */
-    public function __construct(int $or) {
-        $this->or = $or;
+    public static function sampleSel(): Sel {
+        return Sel::sample(); /*82:sel*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Select
      */
-    public static function fromOr(int $value): int {
-        return $value; /*int*/
+    public static function fromSelect(stdClass $value): Select {
+        return Select::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOr(): int {
-        if (OrClass::validateOr($this->or))  {
-            return $this->or; /*int*/
+    public function toSelect(): stdClass {
+        if (Obj4::validateSelect($this->select))  {
+            return $this->select->to(); /*class*/
         }
-        throw new Exception('never get to this OrClass::or');
+        throw new Exception('never get to this Obj4::select');
     }
 
     /**
-     * @param int
+     * @param Select
      * @return bool
      * @throws Exception
      */
-    public static function validateOr(int $value): bool {
+    public static function validateSelect(Select $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Select
      */
-    public function getOr(): int {
-        if (OrClass::validateOr($this->or))  {
-            return $this->or;
+    public function getSelect(): Select {
+        if (Obj4::validateSelect($this->select))  {
+            return $this->select;
         }
-        throw new Exception('never get to getOr OrClass::or');
+        throw new Exception('never get to getSelect Obj4::select');
     }
 
     /**
-     * @return int
+     * @return Select
      */
-    public static function sampleOr(): int {
-        return 31; /*31:or*/
+    public static function sampleSelect(): Select {
+        return Select::sample(); /*83:select*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return SelfClass
      */
-    public function validate(): bool {
-        return OrClass::validateOr($this->or);
+    public static function fromSelf(stdClass $value): SelfClass {
+        return SelfClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'or'} = $this->toOr();
-        return $out;
+    public function toSelf(): stdClass {
+        if (Obj4::validateSelf($this->self))  {
+            return $this->self->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::self');
     }
 
     /**
-     * @param stdClass $obj
-     * @return OrClass
+     * @param SelfClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): OrClass {
-        if (!property_exists($obj, 'or')) {
-            throw new Exception("Missing required property");
-        }
-        return new OrClass(
-         OrClass::fromOr($obj->{'or'})
-        );
+    public static function validateSelf(SelfClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return OrClass
+     * @throws Exception
+     * @return SelfClass
      */
-    public static function sample(): OrClass {
-        return new OrClass(
-         OrClass::sampleOr()
-        );
+    public function getSelf(): SelfClass {
+        if (Obj4::validateSelf($this->self))  {
+            return $this->self;
+        }
+        throw new Exception('never get to getSelf Obj4::self');
     }
-}
-
-// This is an autogenerated file:OrEq
-
-class OrEq {
-    private int $orEq; // json:or_eq Required
 
     /**
-     * @param int $orEq
+     * @return SelfClass
      */
-    public function __construct(int $orEq) {
-        $this->orEq = $orEq;
+    public static function sampleSelf(): SelfClass {
+        return SelfClass::sample(); /*84:self*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Serialize
      */
-    public static function fromOrEq(int $value): int {
-        return $value; /*int*/
+    public static function fromSerialize(stdClass $value): Serialize {
+        return Serialize::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOrEq(): int {
-        if (OrEq::validateOrEq($this->orEq))  {
-            return $this->orEq; /*int*/
+    public function toSerialize(): stdClass {
+        if (Obj4::validateSerialize($this->serialize))  {
+            return $this->serialize->to(); /*class*/
         }
-        throw new Exception('never get to this OrEq::orEq');
+        throw new Exception('never get to this Obj4::serialize');
     }
 
     /**
-     * @param int
+     * @param Serialize
      * @return bool
      * @throws Exception
      */
-    public static function validateOrEq(int $value): bool {
+    public static function validateSerialize(Serialize $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Serialize
      */
-    public function getOrEq(): int {
-        if (OrEq::validateOrEq($this->orEq))  {
-            return $this->orEq;
+    public function getSerialize(): Serialize {
+        if (Obj4::validateSerialize($this->serialize))  {
+            return $this->serialize;
         }
-        throw new Exception('never get to getOrEq OrEq::orEq');
+        throw new Exception('never get to getSerialize Obj4::serialize');
     }
 
     /**
-     * @return int
+     * @return Serialize
      */
-    public static function sampleOrEq(): int {
-        return 31; /*31:orEq*/
+    public static function sampleSerialize(): Serialize {
+        return Serialize::sample(); /*85:serialize*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return SerializerProvider
      */
-    public function validate(): bool {
-        return OrEq::validateOrEq($this->orEq);
+    public static function fromSerializerProvider(stdClass $value): SerializerProvider {
+        return SerializerProvider::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'or_eq'} = $this->toOrEq();
-        return $out;
+    public function toSerializerProvider(): stdClass {
+        if (Obj4::validateSerializerProvider($this->serializerProvider))  {
+            return $this->serializerProvider->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::serializerProvider');
     }
 
     /**
-     * @param stdClass $obj
-     * @return OrEq
+     * @param SerializerProvider
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): OrEq {
-        if (!property_exists($obj, 'or_eq')) {
-            throw new Exception("Missing required property");
-        }
-        return new OrEq(
-         OrEq::fromOrEq($obj->{'or_eq'})
-        );
+    public static function validateSerializerProvider(SerializerProvider $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return OrEq
+     * @throws Exception
+     * @return SerializerProvider
      */
-    public static function sample(): OrEq {
-        return new OrEq(
-         OrEq::sampleOrEq()
-        );
+    public function getSerializerProvider(): SerializerProvider {
+        if (Obj4::validateSerializerProvider($this->serializerProvider))  {
+            return $this->serializerProvider;
+        }
+        throw new Exception('never get to getSerializerProvider Obj4::serializerProvider');
     }
-}
-
-// This is an autogenerated file:Out
-
-class Out {
-    private int $out; // json:out Required
 
     /**
-     * @param int $out
+     * @return SerializerProvider
      */
-    public function __construct(int $out) {
-        $this->out = $out;
+    public static function sampleSerializerProvider(): SerializerProvider {
+        return SerializerProvider::sample(); /*86:serializerProvider*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Set
      */
-    public static function fromOut(int $value): int {
-        return $value; /*int*/
+    public static function fromSet(stdClass $value): Set {
+        return Set::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOut(): int {
-        if (Out::validateOut($this->out))  {
-            return $this->out; /*int*/
+    public function toSet(): stdClass {
+        if (Obj4::validateSet($this->set))  {
+            return $this->set->to(); /*class*/
         }
-        throw new Exception('never get to this Out::out');
+        throw new Exception('never get to this Obj4::set');
     }
 
     /**
-     * @param int
+     * @param Set
      * @return bool
      * @throws Exception
      */
-    public static function validateOut(int $value): bool {
+    public static function validateSet(Set $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Set
      */
-    public function getOut(): int {
-        if (Out::validateOut($this->out))  {
-            return $this->out;
+    public function getSet(): Set {
+        if (Obj4::validateSet($this->set))  {
+            return $this->set;
         }
-        throw new Exception('never get to getOut Out::out');
+        throw new Exception('never get to getSet Obj4::set');
     }
 
     /**
-     * @return int
+     * @return Set
      */
-    public static function sampleOut(): int {
-        return 31; /*31:out*/
+    public static function sampleSet(): Set {
+        return Set::sample(); /*87:set*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Short
      */
-    public function validate(): bool {
-        return Out::validateOut($this->out);
+    public static function fromShort(stdClass $value): Short {
+        return Short::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'out'} = $this->toOut();
-        return $out;
+    public function toShort(): stdClass {
+        if (Obj4::validateShort($this->short))  {
+            return $this->short->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::short');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Out
+     * @param Short
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Out {
-        if (!property_exists($obj, 'out')) {
-            throw new Exception("Missing required property");
-        }
-        return new Out(
-         Out::fromOut($obj->{'out'})
-        );
+    public static function validateShort(Short $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Out
+     * @throws Exception
+     * @return Short
      */
-    public static function sample(): Out {
-        return new Out(
-         Out::sampleOut()
-        );
+    public function getShort(): Short {
+        if (Obj4::validateShort($this->short))  {
+            return $this->short;
+        }
+        throw new Exception('never get to getShort Obj4::short');
     }
-}
-
-// This is an autogenerated file:OverrideClass
-
-class OverrideClass {
-    private int $override; // json:override Required
 
     /**
-     * @param int $override
+     * @return Short
      */
-    public function __construct(int $override) {
-        $this->override = $override;
+    public static function sampleShort(): Short {
+        return Short::sample(); /*88:short*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Signed
      */
-    public static function fromOverride(int $value): int {
-        return $value; /*int*/
+    public static function fromSigned(stdClass $value): Signed {
+        return Signed::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toOverride(): int {
-        if (OverrideClass::validateOverride($this->override))  {
-            return $this->override; /*int*/
+    public function toSigned(): stdClass {
+        if (Obj4::validateSigned($this->signed))  {
+            return $this->signed->to(); /*class*/
         }
-        throw new Exception('never get to this OverrideClass::override');
+        throw new Exception('never get to this Obj4::signed');
     }
 
     /**
-     * @param int
+     * @param Signed
      * @return bool
      * @throws Exception
      */
-    public static function validateOverride(int $value): bool {
+    public static function validateSigned(Signed $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Signed
      */
-    public function getOverride(): int {
-        if (OverrideClass::validateOverride($this->override))  {
-            return $this->override;
+    public function getSigned(): Signed {
+        if (Obj4::validateSigned($this->signed))  {
+            return $this->signed;
         }
-        throw new Exception('never get to getOverride OverrideClass::override');
+        throw new Exception('never get to getSigned Obj4::signed');
     }
 
     /**
-     * @return int
+     * @return Signed
      */
-    public static function sampleOverride(): int {
-        return 31; /*31:override*/
+    public static function sampleSigned(): Signed {
+        return Signed::sample(); /*89:signed*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return SimpleModule
      */
-    public function validate(): bool {
-        return OverrideClass::validateOverride($this->override);
+    public static function fromSimpleModule(stdClass $value): SimpleModule {
+        return SimpleModule::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'override'} = $this->toOverride();
-        return $out;
+    public function toSimpleModule(): stdClass {
+        if (Obj4::validateSimpleModule($this->simpleModule))  {
+            return $this->simpleModule->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::simpleModule');
     }
 
     /**
-     * @param stdClass $obj
-     * @return OverrideClass
+     * @param SimpleModule
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): OverrideClass {
-        if (!property_exists($obj, 'override')) {
-            throw new Exception("Missing required property");
-        }
-        return new OverrideClass(
-         OverrideClass::fromOverride($obj->{'override'})
-        );
+    public static function validateSimpleModule(SimpleModule $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return OverrideClass
+     * @throws Exception
+     * @return SimpleModule
      */
-    public static function sample(): OverrideClass {
-        return new OverrideClass(
-         OverrideClass::sampleOverride()
-        );
+    public function getSimpleModule(): SimpleModule {
+        if (Obj4::validateSimpleModule($this->simpleModule))  {
+            return $this->simpleModule;
+        }
+        throw new Exception('never get to getSimpleModule Obj4::simpleModule');
     }
-}
-
-// This is an autogenerated file:Package
-
-class Package {
-    private int $package; // json:package Required
 
     /**
-     * @param int $package
+     * @return SimpleModule
      */
-    public function __construct(int $package) {
-        $this->package = $package;
+    public static function sampleSimpleModule(): SimpleModule {
+        return SimpleModule::sample(); /*90:simpleModule*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Sizeof
      */
-    public static function fromPackage(int $value): int {
-        return $value; /*int*/
+    public static function fromSizeof(stdClass $value): Sizeof {
+        return Sizeof::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toPackage(): int {
-        if (Package::validatePackage($this->package))  {
-            return $this->package; /*int*/
+    public function toSizeof(): stdClass {
+        if (Obj4::validateSizeof($this->sizeof))  {
+            return $this->sizeof->to(); /*class*/
         }
-        throw new Exception('never get to this Package::package');
+        throw new Exception('never get to this Obj4::sizeof');
     }
 
     /**
-     * @param int
+     * @param Sizeof
      * @return bool
      * @throws Exception
      */
-    public static function validatePackage(int $value): bool {
+    public static function validateSizeof(Sizeof $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Sizeof
      */
-    public function getPackage(): int {
-        if (Package::validatePackage($this->package))  {
-            return $this->package;
+    public function getSizeof(): Sizeof {
+        if (Obj4::validateSizeof($this->sizeof))  {
+            return $this->sizeof;
         }
-        throw new Exception('never get to getPackage Package::package');
+        throw new Exception('never get to getSizeof Obj4::sizeof');
     }
 
     /**
-     * @return int
+     * @return Sizeof
      */
-    public static function samplePackage(): int {
-        return 31; /*31:package*/
+    public static function sampleSizeof(): Sizeof {
+        return Sizeof::sample(); /*91:sizeof*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Stackalloc
      */
-    public function validate(): bool {
-        return Package::validatePackage($this->package);
+    public static function fromStackalloc(stdClass $value): Stackalloc {
+        return Stackalloc::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'package'} = $this->toPackage();
-        return $out;
+    public function toStackalloc(): stdClass {
+        if (Obj4::validateStackalloc($this->stackalloc))  {
+            return $this->stackalloc->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::stackalloc');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Package
+     * @param Stackalloc
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Package {
-        if (!property_exists($obj, 'package')) {
-            throw new Exception("Missing required property");
-        }
-        return new Package(
-         Package::fromPackage($obj->{'package'})
-        );
+    public static function validateStackalloc(Stackalloc $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Package
+     * @throws Exception
+     * @return Stackalloc
      */
-    public static function sample(): Package {
-        return new Package(
-         Package::samplePackage()
-        );
+    public function getStackalloc(): Stackalloc {
+        if (Obj4::validateStackalloc($this->stackalloc))  {
+            return $this->stackalloc;
+        }
+        throw new Exception('never get to getStackalloc Obj4::stackalloc');
     }
-}
-
-// This is an autogenerated file:Params
-
-class Params {
-    private int $params; // json:params Required
 
     /**
-     * @param int $params
+     * @return Stackalloc
      */
-    public function __construct(int $params) {
-        $this->params = $params;
+    public static function sampleStackalloc(): Stackalloc {
+        return Stackalloc::sample(); /*92:stackalloc*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Standards
      */
-    public static function fromParams(int $value): int {
-        return $value; /*int*/
+    public static function fromStandards(stdClass $value): Standards {
+        return Standards::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toParams(): int {
-        if (Params::validateParams($this->params))  {
-            return $this->params; /*int*/
+    public function toStandards(): stdClass {
+        if (Obj4::validateStandards($this->standards))  {
+            return $this->standards->to(); /*class*/
         }
-        throw new Exception('never get to this Params::params');
+        throw new Exception('never get to this Obj4::standards');
     }
 
     /**
-     * @param int
+     * @param Standards
      * @return bool
      * @throws Exception
      */
-    public static function validateParams(int $value): bool {
+    public static function validateStandards(Standards $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Standards
      */
-    public function getParams(): int {
-        if (Params::validateParams($this->params))  {
-            return $this->params;
+    public function getStandards(): Standards {
+        if (Obj4::validateStandards($this->standards))  {
+            return $this->standards;
         }
-        throw new Exception('never get to getParams Params::params');
+        throw new Exception('never get to getStandards Obj4::standards');
     }
 
     /**
-     * @return int
+     * @return Standards
      */
-    public static function sampleParams(): int {
-        return 31; /*31:params*/
+    public static function sampleStandards(): Standards {
+        return Standards::sample(); /*93:standards*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return StaticClass
      */
-    public function validate(): bool {
-        return Params::validateParams($this->params);
+    public static function fromStatic(stdClass $value): StaticClass {
+        return StaticClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'params'} = $this->toParams();
-        return $out;
+    public function toStatic(): stdClass {
+        if (Obj4::validateStatic($this->static))  {
+            return $this->static->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj4::static');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Params
+     * @param StaticClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Params {
-        if (!property_exists($obj, 'params')) {
-            throw new Exception("Missing required property");
-        }
-        return new Params(
-         Params::fromParams($obj->{'params'})
-        );
+    public static function validateStatic(StaticClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Params
+     * @throws Exception
+     * @return StaticClass
      */
-    public static function sample(): Params {
-        return new Params(
-         Params::sampleParams()
-        );
+    public function getStatic(): StaticClass {
+        if (Obj4::validateStatic($this->static))  {
+            return $this->static;
+        }
+        throw new Exception('never get to getStatic Obj4::static');
     }
-}
-
-// This is an autogenerated file:Pass
-
-class Pass {
-    private int $pass; // json:pass Required
 
     /**
-     * @param int $pass
+     * @return StaticClass
      */
-    public function __construct(int $pass) {
-        $this->pass = $pass;
+    public static function sampleStatic(): StaticClass {
+        return StaticClass::sample(); /*94:static*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return StaticAssert
      */
-    public static function fromPass(int $value): int {
-        return $value; /*int*/
+    public static function fromStaticAssert(stdClass $value): StaticAssert {
+        return StaticAssert::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toPass(): int {
-        if (Pass::validatePass($this->pass))  {
-            return $this->pass; /*int*/
+    public function toStaticAssert(): stdClass {
+        if (Obj4::validateStaticAssert($this->staticAssert))  {
+            return $this->staticAssert->to(); /*class*/
         }
-        throw new Exception('never get to this Pass::pass');
+        throw new Exception('never get to this Obj4::staticAssert');
     }
 
     /**
-     * @param int
+     * @param StaticAssert
      * @return bool
      * @throws Exception
      */
-    public static function validatePass(int $value): bool {
+    public static function validateStaticAssert(StaticAssert $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return StaticAssert
      */
-    public function getPass(): int {
-        if (Pass::validatePass($this->pass))  {
-            return $this->pass;
+    public function getStaticAssert(): StaticAssert {
+        if (Obj4::validateStaticAssert($this->staticAssert))  {
+            return $this->staticAssert;
         }
-        throw new Exception('never get to getPass Pass::pass');
+        throw new Exception('never get to getStaticAssert Obj4::staticAssert');
     }
 
     /**
-     * @return int
+     * @return StaticAssert
      */
-    public static function samplePass(): int {
-        return 31; /*31:pass*/
+    public static function sampleStaticAssert(): StaticAssert {
+        return StaticAssert::sample(); /*95:staticAssert*/
     }
 
     /**
@@ -34772,7 +34622,71 @@ class Pass {
      * @return bool
      */
     public function validate(): bool {
-        return Pass::validatePass($this->pass);
+        return Obj4::validateDummy($this->dummy)
+        || Obj4::validateNullptr($this->nullptr)
+        || Obj4::validateNumber($this->number)
+        || Obj4::validateObj4Protocol($this->obj4Protocol)
+        || Obj4::validateObj4Self($this->obj4Self)
+        || Obj4::validateObject($this->object)
+        || Obj4::validateObjectMapper($this->objectMapper)
+        || Obj4::validateOf($this->of)
+        || Obj4::validateOneway($this->oneway)
+        || Obj4::validateOpen($this->open)
+        || Obj4::validateOperator($this->operator)
+        || Obj4::validateOptional($this->optional)
+        || Obj4::validateOr($this->or)
+        || Obj4::validateOrEq($this->orEq)
+        || Obj4::validateOut($this->out)
+        || Obj4::validateOverride($this->override)
+        || Obj4::validatePackage($this->package)
+        || Obj4::validateParams($this->params)
+        || Obj4::validatePass($this->pass)
+        || Obj4::validatePort($this->port)
+        || Obj4::validatePostfix($this->postfix)
+        || Obj4::validatePrecedence($this->precedence)
+        || Obj4::validatePrefix($this->prefix)
+        || Obj4::validatePrint($this->print)
+        || Obj4::validatePrintMembers($this->printMembers)
+        || Obj4::validatePrintf($this->printf)
+        || Obj4::validatePrivate($this->private)
+        || Obj4::validateProtected($this->protected)
+        || Obj4::validateProtocol($this->protocol)
+        || Obj4::validatePublic($this->public)
+        || Obj4::validateQuicktype($this->quicktype)
+        || Obj4::validateRaise($this->raise)
+        || Obj4::validateRange($this->range)
+        || Obj4::validateReadonly($this->readonly)
+        || Obj4::validateRef($this->ref)
+        || Obj4::validateRegExp($this->regExp)
+        || Obj4::validateRegister($this->register)
+        || Obj4::validateReinterpretCast($this->reinterpretCast)
+        || Obj4::validateRepeat($this->repeat)
+        || Obj4::validateRequire($this->require)
+        || Obj4::validateRequired($this->required)
+        || Obj4::validateRequires($this->requires)
+        || Obj4::validateRestrict($this->restrict)
+        || Obj4::validateRetain($this->retain)
+        || Obj4::validateRethrows($this->rethrows)
+        || Obj4::validateReturn($this->return)
+        || Obj4::validateRight($this->right)
+        || Obj4::validateRuntimeType($this->runtimeType)
+        || Obj4::validateS($this->s)
+        || Obj4::validateSbyte($this->sbyte)
+        || Obj4::validateSealed($this->sealed)
+        || Obj4::validateSel($this->sel)
+        || Obj4::validateSelect($this->select)
+        || Obj4::validateSelf($this->self)
+        || Obj4::validateSerialize($this->serialize)
+        || Obj4::validateSerializerProvider($this->serializerProvider)
+        || Obj4::validateSet($this->set)
+        || Obj4::validateShort($this->short)
+        || Obj4::validateSigned($this->signed)
+        || Obj4::validateSimpleModule($this->simpleModule)
+        || Obj4::validateSizeof($this->sizeof)
+        || Obj4::validateStackalloc($this->stackalloc)
+        || Obj4::validateStandards($this->standards)
+        || Obj4::validateStatic($this->static)
+        || Obj4::validateStaticAssert($this->staticAssert);
     }
 
     /**
@@ -34781,44 +34695,428 @@ class Pass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
+        $out->{'dummy'} = $this->toDummy();
+        $out->{'nullptr'} = $this->toNullptr();
+        $out->{'number'} = $this->toNumber();
+        $out->{'protocol'} = $this->toObj4Protocol();
+        $out->{'self'} = $this->toObj4Self();
+        $out->{'object'} = $this->toObject();
+        $out->{'ObjectMapper'} = $this->toObjectMapper();
+        $out->{'of'} = $this->toOf();
+        $out->{'oneway'} = $this->toOneway();
+        $out->{'open'} = $this->toOpen();
+        $out->{'operator'} = $this->toOperator();
+        $out->{'optional'} = $this->toOptional();
+        $out->{'or'} = $this->toOr();
+        $out->{'or_eq'} = $this->toOrEq();
+        $out->{'out'} = $this->toOut();
+        $out->{'override'} = $this->toOverride();
+        $out->{'package'} = $this->toPackage();
+        $out->{'params'} = $this->toParams();
         $out->{'pass'} = $this->toPass();
+        $out->{'port'} = $this->toPort();
+        $out->{'postfix'} = $this->toPostfix();
+        $out->{'precedence'} = $this->toPrecedence();
+        $out->{'prefix'} = $this->toPrefix();
+        $out->{'print'} = $this->toPrint();
+        $out->{'printMembers'} = $this->toPrintMembers();
+        $out->{'printf'} = $this->toPrintf();
+        $out->{'private'} = $this->toPrivate();
+        $out->{'protected'} = $this->toProtected();
+        $out->{'Protocol'} = $this->toProtocol();
+        $out->{'public'} = $this->toPublic();
+        $out->{'quicktype'} = $this->toQuicktype();
+        $out->{'raise'} = $this->toRaise();
+        $out->{'range'} = $this->toRange();
+        $out->{'readonly'} = $this->toReadonly();
+        $out->{'ref'} = $this->toRef();
+        $out->{'RegExp'} = $this->toRegExp();
+        $out->{'register'} = $this->toRegister();
+        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
+        $out->{'repeat'} = $this->toRepeat();
+        $out->{'require'} = $this->toRequire();
+        $out->{'required'} = $this->toRequired();
+        $out->{'requires'} = $this->toRequires();
+        $out->{'restrict'} = $this->toRestrict();
+        $out->{'retain'} = $this->toRetain();
+        $out->{'rethrows'} = $this->toRethrows();
+        $out->{'return'} = $this->toReturn();
+        $out->{'right'} = $this->toRight();
+        $out->{'runtimeType'} = $this->toRuntimeType();
+        $out->{'s'} = $this->toS();
+        $out->{'sbyte'} = $this->toSbyte();
+        $out->{'sealed'} = $this->toSealed();
+        $out->{'SEL'} = $this->toSel();
+        $out->{'select'} = $this->toSelect();
+        $out->{'Self'} = $this->toSelf();
+        $out->{'serialize'} = $this->toSerialize();
+        $out->{'SerializerProvider'} = $this->toSerializerProvider();
+        $out->{'set'} = $this->toSet();
+        $out->{'short'} = $this->toShort();
+        $out->{'signed'} = $this->toSigned();
+        $out->{'SimpleModule'} = $this->toSimpleModule();
+        $out->{'sizeof'} = $this->toSizeof();
+        $out->{'stackalloc'} = $this->toStackalloc();
+        $out->{'Standards'} = $this->toStandards();
+        $out->{'static'} = $this->toStatic();
+        $out->{'static_assert'} = $this->toStaticAssert();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Pass
+     * @return Obj4
      * @throws Exception
      */
-    public static function from(stdClass $obj): Pass {
+    public static function from(stdClass $obj): Obj4 {
+        if (!property_exists($obj, 'dummy')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'nullptr')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'number')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'protocol')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'self')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'object')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'ObjectMapper')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'of')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'oneway')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'open')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'operator')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'optional')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'or')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'or_eq')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'out')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'override')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'package')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'params')) {
+            throw new Exception("Missing required property");
+        }
         if (!property_exists($obj, 'pass')) {
             throw new Exception("Missing required property");
         }
-        return new Pass(
-         Pass::fromPass($obj->{'pass'})
+        if (!property_exists($obj, 'port')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'postfix')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'precedence')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'prefix')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'print')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'printMembers')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'printf')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'private')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'protected')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Protocol')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'public')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'quicktype')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'raise')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'range')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'readonly')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'ref')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'RegExp')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'register')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'reinterpret_cast')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'repeat')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'require')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'required')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'requires')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'restrict')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'retain')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'rethrows')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'return')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'right')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'runtimeType')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 's')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'sbyte')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'sealed')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'SEL')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'select')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Self')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'serialize')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'SerializerProvider')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'set')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'short')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'signed')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'SimpleModule')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'sizeof')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'stackalloc')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Standards')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'static')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'static_assert')) {
+            throw new Exception("Missing required property");
+        }
+        return new Obj4(
+         Obj4::fromDummy($obj->{'dummy'})
+        ,Obj4::fromNullptr($obj->{'nullptr'})
+        ,Obj4::fromNumber($obj->{'number'})
+        ,Obj4::fromObj4Protocol($obj->{'protocol'})
+        ,Obj4::fromObj4Self($obj->{'self'})
+        ,Obj4::fromObject($obj->{'object'})
+        ,Obj4::fromObjectMapper($obj->{'ObjectMapper'})
+        ,Obj4::fromOf($obj->{'of'})
+        ,Obj4::fromOneway($obj->{'oneway'})
+        ,Obj4::fromOpen($obj->{'open'})
+        ,Obj4::fromOperator($obj->{'operator'})
+        ,Obj4::fromOptional($obj->{'optional'})
+        ,Obj4::fromOr($obj->{'or'})
+        ,Obj4::fromOrEq($obj->{'or_eq'})
+        ,Obj4::fromOut($obj->{'out'})
+        ,Obj4::fromOverride($obj->{'override'})
+        ,Obj4::fromPackage($obj->{'package'})
+        ,Obj4::fromParams($obj->{'params'})
+        ,Obj4::fromPass($obj->{'pass'})
+        ,Obj4::fromPort($obj->{'port'})
+        ,Obj4::fromPostfix($obj->{'postfix'})
+        ,Obj4::fromPrecedence($obj->{'precedence'})
+        ,Obj4::fromPrefix($obj->{'prefix'})
+        ,Obj4::fromPrint($obj->{'print'})
+        ,Obj4::fromPrintMembers($obj->{'printMembers'})
+        ,Obj4::fromPrintf($obj->{'printf'})
+        ,Obj4::fromPrivate($obj->{'private'})
+        ,Obj4::fromProtected($obj->{'protected'})
+        ,Obj4::fromProtocol($obj->{'Protocol'})
+        ,Obj4::fromPublic($obj->{'public'})
+        ,Obj4::fromQuicktype($obj->{'quicktype'})
+        ,Obj4::fromRaise($obj->{'raise'})
+        ,Obj4::fromRange($obj->{'range'})
+        ,Obj4::fromReadonly($obj->{'readonly'})
+        ,Obj4::fromRef($obj->{'ref'})
+        ,Obj4::fromRegExp($obj->{'RegExp'})
+        ,Obj4::fromRegister($obj->{'register'})
+        ,Obj4::fromReinterpretCast($obj->{'reinterpret_cast'})
+        ,Obj4::fromRepeat($obj->{'repeat'})
+        ,Obj4::fromRequire($obj->{'require'})
+        ,Obj4::fromRequired($obj->{'required'})
+        ,Obj4::fromRequires($obj->{'requires'})
+        ,Obj4::fromRestrict($obj->{'restrict'})
+        ,Obj4::fromRetain($obj->{'retain'})
+        ,Obj4::fromRethrows($obj->{'rethrows'})
+        ,Obj4::fromReturn($obj->{'return'})
+        ,Obj4::fromRight($obj->{'right'})
+        ,Obj4::fromRuntimeType($obj->{'runtimeType'})
+        ,Obj4::fromS($obj->{'s'})
+        ,Obj4::fromSbyte($obj->{'sbyte'})
+        ,Obj4::fromSealed($obj->{'sealed'})
+        ,Obj4::fromSel($obj->{'SEL'})
+        ,Obj4::fromSelect($obj->{'select'})
+        ,Obj4::fromSelf($obj->{'Self'})
+        ,Obj4::fromSerialize($obj->{'serialize'})
+        ,Obj4::fromSerializerProvider($obj->{'SerializerProvider'})
+        ,Obj4::fromSet($obj->{'set'})
+        ,Obj4::fromShort($obj->{'short'})
+        ,Obj4::fromSigned($obj->{'signed'})
+        ,Obj4::fromSimpleModule($obj->{'SimpleModule'})
+        ,Obj4::fromSizeof($obj->{'sizeof'})
+        ,Obj4::fromStackalloc($obj->{'stackalloc'})
+        ,Obj4::fromStandards($obj->{'Standards'})
+        ,Obj4::fromStatic($obj->{'static'})
+        ,Obj4::fromStaticAssert($obj->{'static_assert'})
         );
     }
 
     /**
-     * @return Pass
+     * @return Obj4
      */
-    public static function sample(): Pass {
-        return new Pass(
-         Pass::samplePass()
+    public static function sample(): Obj4 {
+        return new Obj4(
+         Obj4::sampleDummy()
+        ,Obj4::sampleNullptr()
+        ,Obj4::sampleNumber()
+        ,Obj4::sampleObj4Protocol()
+        ,Obj4::sampleObj4Self()
+        ,Obj4::sampleObject()
+        ,Obj4::sampleObjectMapper()
+        ,Obj4::sampleOf()
+        ,Obj4::sampleOneway()
+        ,Obj4::sampleOpen()
+        ,Obj4::sampleOperator()
+        ,Obj4::sampleOptional()
+        ,Obj4::sampleOr()
+        ,Obj4::sampleOrEq()
+        ,Obj4::sampleOut()
+        ,Obj4::sampleOverride()
+        ,Obj4::samplePackage()
+        ,Obj4::sampleParams()
+        ,Obj4::samplePass()
+        ,Obj4::samplePort()
+        ,Obj4::samplePostfix()
+        ,Obj4::samplePrecedence()
+        ,Obj4::samplePrefix()
+        ,Obj4::samplePrint()
+        ,Obj4::samplePrintMembers()
+        ,Obj4::samplePrintf()
+        ,Obj4::samplePrivate()
+        ,Obj4::sampleProtected()
+        ,Obj4::sampleProtocol()
+        ,Obj4::samplePublic()
+        ,Obj4::sampleQuicktype()
+        ,Obj4::sampleRaise()
+        ,Obj4::sampleRange()
+        ,Obj4::sampleReadonly()
+        ,Obj4::sampleRef()
+        ,Obj4::sampleRegExp()
+        ,Obj4::sampleRegister()
+        ,Obj4::sampleReinterpretCast()
+        ,Obj4::sampleRepeat()
+        ,Obj4::sampleRequire()
+        ,Obj4::sampleRequired()
+        ,Obj4::sampleRequires()
+        ,Obj4::sampleRestrict()
+        ,Obj4::sampleRetain()
+        ,Obj4::sampleRethrows()
+        ,Obj4::sampleReturn()
+        ,Obj4::sampleRight()
+        ,Obj4::sampleRuntimeType()
+        ,Obj4::sampleS()
+        ,Obj4::sampleSbyte()
+        ,Obj4::sampleSealed()
+        ,Obj4::sampleSel()
+        ,Obj4::sampleSelect()
+        ,Obj4::sampleSelf()
+        ,Obj4::sampleSerialize()
+        ,Obj4::sampleSerializerProvider()
+        ,Obj4::sampleSet()
+        ,Obj4::sampleShort()
+        ,Obj4::sampleSigned()
+        ,Obj4::sampleSimpleModule()
+        ,Obj4::sampleSizeof()
+        ,Obj4::sampleStackalloc()
+        ,Obj4::sampleStandards()
+        ,Obj4::sampleStatic()
+        ,Obj4::sampleStaticAssert()
         );
     }
 }
 
-// This is an autogenerated file:Port
+// This is an autogenerated file:Nullptr
 
-class Port {
-    private int $port; // json:port Required
+class Nullptr {
+    private int $nullptr; // json:nullptr Required
 
     /**
-     * @param int $port
+     * @param int $nullptr
      */
-    public function __construct(int $port) {
-        $this->port = $port;
+    public function __construct(int $nullptr) {
+        $this->nullptr = $nullptr;
     }
 
     /**
@@ -34826,7 +35124,7 @@ class Port {
      * @throws Exception
      * @return int
      */
-    public static function fromPort(int $value): int {
+    public static function fromNullptr(int $value): int {
         return $value; /*int*/
     }
 
@@ -34834,11 +35132,11 @@ class Port {
      * @throws Exception
      * @return int
      */
-    public function toPort(): int {
-        if (Port::validatePort($this->port))  {
-            return $this->port; /*int*/
+    public function toNullptr(): int {
+        if (Nullptr::validateNullptr($this->nullptr))  {
+            return $this->nullptr; /*int*/
         }
-        throw new Exception('never get to this Port::port');
+        throw new Exception('never get to this Nullptr::nullptr');
     }
 
     /**
@@ -34846,7 +35144,7 @@ class Port {
      * @return bool
      * @throws Exception
      */
-    public static function validatePort(int $value): bool {
+    public static function validateNullptr(int $value): bool {
         return true;
     }
 
@@ -34854,18 +35152,18 @@ class Port {
      * @throws Exception
      * @return int
      */
-    public function getPort(): int {
-        if (Port::validatePort($this->port))  {
-            return $this->port;
+    public function getNullptr(): int {
+        if (Nullptr::validateNullptr($this->nullptr))  {
+            return $this->nullptr;
         }
-        throw new Exception('never get to getPort Port::port');
+        throw new Exception('never get to getNullptr Nullptr::nullptr');
     }
 
     /**
      * @return int
      */
-    public static function samplePort(): int {
-        return 31; /*31:port*/
+    public static function sampleNullptr(): int {
+        return 31; /*31:nullptr*/
     }
 
     /**
@@ -34873,7 +35171,7 @@ class Port {
      * @return bool
      */
     public function validate(): bool {
-        return Port::validatePort($this->port);
+        return Nullptr::validateNullptr($this->nullptr);
     }
 
     /**
@@ -34882,44 +35180,44 @@ class Port {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'port'} = $this->toPort();
+        $out->{'nullptr'} = $this->toNullptr();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Port
+     * @return Nullptr
      * @throws Exception
      */
-    public static function from(stdClass $obj): Port {
-        if (!property_exists($obj, 'port')) {
+    public static function from(stdClass $obj): Nullptr {
+        if (!property_exists($obj, 'nullptr')) {
             throw new Exception("Missing required property");
         }
-        return new Port(
-         Port::fromPort($obj->{'port'})
+        return new Nullptr(
+         Nullptr::fromNullptr($obj->{'nullptr'})
         );
     }
 
     /**
-     * @return Port
+     * @return Nullptr
      */
-    public static function sample(): Port {
-        return new Port(
-         Port::samplePort()
+    public static function sample(): Nullptr {
+        return new Nullptr(
+         Nullptr::sampleNullptr()
         );
     }
 }
 
-// This is an autogenerated file:Postfix
+// This is an autogenerated file:Number
 
-class Postfix {
-    private int $postfix; // json:postfix Required
+class Number {
+    private int $number; // json:number Required
 
     /**
-     * @param int $postfix
+     * @param int $number
      */
-    public function __construct(int $postfix) {
-        $this->postfix = $postfix;
+    public function __construct(int $number) {
+        $this->number = $number;
     }
 
     /**
@@ -34927,7 +35225,7 @@ class Postfix {
      * @throws Exception
      * @return int
      */
-    public static function fromPostfix(int $value): int {
+    public static function fromNumber(int $value): int {
         return $value; /*int*/
     }
 
@@ -34935,11 +35233,11 @@ class Postfix {
      * @throws Exception
      * @return int
      */
-    public function toPostfix(): int {
-        if (Postfix::validatePostfix($this->postfix))  {
-            return $this->postfix; /*int*/
+    public function toNumber(): int {
+        if (Number::validateNumber($this->number))  {
+            return $this->number; /*int*/
         }
-        throw new Exception('never get to this Postfix::postfix');
+        throw new Exception('never get to this Number::number');
     }
 
     /**
@@ -34947,7 +35245,7 @@ class Postfix {
      * @return bool
      * @throws Exception
      */
-    public static function validatePostfix(int $value): bool {
+    public static function validateNumber(int $value): bool {
         return true;
     }
 
@@ -34955,18 +35253,18 @@ class Postfix {
      * @throws Exception
      * @return int
      */
-    public function getPostfix(): int {
-        if (Postfix::validatePostfix($this->postfix))  {
-            return $this->postfix;
+    public function getNumber(): int {
+        if (Number::validateNumber($this->number))  {
+            return $this->number;
         }
-        throw new Exception('never get to getPostfix Postfix::postfix');
+        throw new Exception('never get to getNumber Number::number');
     }
 
     /**
      * @return int
      */
-    public static function samplePostfix(): int {
-        return 31; /*31:postfix*/
+    public static function sampleNumber(): int {
+        return 31; /*31:number*/
     }
 
     /**
@@ -34974,7 +35272,7 @@ class Postfix {
      * @return bool
      */
     public function validate(): bool {
-        return Postfix::validatePostfix($this->postfix);
+        return Number::validateNumber($this->number);
     }
 
     /**
@@ -34983,44 +35281,44 @@ class Postfix {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'postfix'} = $this->toPostfix();
+        $out->{'number'} = $this->toNumber();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Postfix
+     * @return Number
      * @throws Exception
      */
-    public static function from(stdClass $obj): Postfix {
-        if (!property_exists($obj, 'postfix')) {
+    public static function from(stdClass $obj): Number {
+        if (!property_exists($obj, 'number')) {
             throw new Exception("Missing required property");
         }
-        return new Postfix(
-         Postfix::fromPostfix($obj->{'postfix'})
+        return new Number(
+         Number::fromNumber($obj->{'number'})
         );
     }
 
     /**
-     * @return Postfix
+     * @return Number
      */
-    public static function sample(): Postfix {
-        return new Postfix(
-         Postfix::samplePostfix()
+    public static function sample(): Number {
+        return new Number(
+         Number::sampleNumber()
         );
     }
 }
 
-// This is an autogenerated file:Precedence
+// This is an autogenerated file:ProtocolClass
 
-class Precedence {
-    private int $precedence; // json:precedence Required
+class ProtocolClass {
+    private int $protocol; // json:protocol Required
 
     /**
-     * @param int $precedence
+     * @param int $protocol
      */
-    public function __construct(int $precedence) {
-        $this->precedence = $precedence;
+    public function __construct(int $protocol) {
+        $this->protocol = $protocol;
     }
 
     /**
@@ -35028,7 +35326,7 @@ class Precedence {
      * @throws Exception
      * @return int
      */
-    public static function fromPrecedence(int $value): int {
+    public static function fromProtocol(int $value): int {
         return $value; /*int*/
     }
 
@@ -35036,11 +35334,11 @@ class Precedence {
      * @throws Exception
      * @return int
      */
-    public function toPrecedence(): int {
-        if (Precedence::validatePrecedence($this->precedence))  {
-            return $this->precedence; /*int*/
+    public function toProtocol(): int {
+        if (ProtocolClass::validateProtocol($this->protocol))  {
+            return $this->protocol; /*int*/
         }
-        throw new Exception('never get to this Precedence::precedence');
+        throw new Exception('never get to this ProtocolClass::protocol');
     }
 
     /**
@@ -35048,7 +35346,7 @@ class Precedence {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrecedence(int $value): bool {
+    public static function validateProtocol(int $value): bool {
         return true;
     }
 
@@ -35056,18 +35354,18 @@ class Precedence {
      * @throws Exception
      * @return int
      */
-    public function getPrecedence(): int {
-        if (Precedence::validatePrecedence($this->precedence))  {
-            return $this->precedence;
+    public function getProtocol(): int {
+        if (ProtocolClass::validateProtocol($this->protocol))  {
+            return $this->protocol;
         }
-        throw new Exception('never get to getPrecedence Precedence::precedence');
+        throw new Exception('never get to getProtocol ProtocolClass::protocol');
     }
 
     /**
      * @return int
      */
-    public static function samplePrecedence(): int {
-        return 31; /*31:precedence*/
+    public static function sampleProtocol(): int {
+        return 31; /*31:protocol*/
     }
 
     /**
@@ -35075,7 +35373,7 @@ class Precedence {
      * @return bool
      */
     public function validate(): bool {
-        return Precedence::validatePrecedence($this->precedence);
+        return ProtocolClass::validateProtocol($this->protocol);
     }
 
     /**
@@ -35084,44 +35382,44 @@ class Precedence {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'precedence'} = $this->toPrecedence();
+        $out->{'protocol'} = $this->toProtocol();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Precedence
+     * @return ProtocolClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Precedence {
-        if (!property_exists($obj, 'precedence')) {
+    public static function from(stdClass $obj): ProtocolClass {
+        if (!property_exists($obj, 'protocol')) {
             throw new Exception("Missing required property");
         }
-        return new Precedence(
-         Precedence::fromPrecedence($obj->{'precedence'})
+        return new ProtocolClass(
+         ProtocolClass::fromProtocol($obj->{'protocol'})
         );
     }
 
     /**
-     * @return Precedence
+     * @return ProtocolClass
      */
-    public static function sample(): Precedence {
-        return new Precedence(
-         Precedence::samplePrecedence()
+    public static function sample(): ProtocolClass {
+        return new ProtocolClass(
+         ProtocolClass::sampleProtocol()
         );
     }
 }
 
-// This is an autogenerated file:Prefix
+// This is an autogenerated file:Obj4Self
 
-class Prefix {
-    private int $prefix; // json:prefix Required
+class Obj4Self {
+    private int $self; // json:self Required
 
     /**
-     * @param int $prefix
+     * @param int $self
      */
-    public function __construct(int $prefix) {
-        $this->prefix = $prefix;
+    public function __construct(int $self) {
+        $this->self = $self;
     }
 
     /**
@@ -35129,7 +35427,7 @@ class Prefix {
      * @throws Exception
      * @return int
      */
-    public static function fromPrefix(int $value): int {
+    public static function fromSelf(int $value): int {
         return $value; /*int*/
     }
 
@@ -35137,11 +35435,11 @@ class Prefix {
      * @throws Exception
      * @return int
      */
-    public function toPrefix(): int {
-        if (Prefix::validatePrefix($this->prefix))  {
-            return $this->prefix; /*int*/
+    public function toSelf(): int {
+        if (Obj4Self::validateSelf($this->self))  {
+            return $this->self; /*int*/
         }
-        throw new Exception('never get to this Prefix::prefix');
+        throw new Exception('never get to this Obj4Self::self');
     }
 
     /**
@@ -35149,7 +35447,7 @@ class Prefix {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrefix(int $value): bool {
+    public static function validateSelf(int $value): bool {
         return true;
     }
 
@@ -35157,18 +35455,18 @@ class Prefix {
      * @throws Exception
      * @return int
      */
-    public function getPrefix(): int {
-        if (Prefix::validatePrefix($this->prefix))  {
-            return $this->prefix;
+    public function getSelf(): int {
+        if (Obj4Self::validateSelf($this->self))  {
+            return $this->self;
         }
-        throw new Exception('never get to getPrefix Prefix::prefix');
+        throw new Exception('never get to getSelf Obj4Self::self');
     }
 
     /**
      * @return int
      */
-    public static function samplePrefix(): int {
-        return 31; /*31:prefix*/
+    public static function sampleSelf(): int {
+        return 31; /*31:self*/
     }
 
     /**
@@ -35176,7 +35474,7 @@ class Prefix {
      * @return bool
      */
     public function validate(): bool {
-        return Prefix::validatePrefix($this->prefix);
+        return Obj4Self::validateSelf($this->self);
     }
 
     /**
@@ -35185,44 +35483,44 @@ class Prefix {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'prefix'} = $this->toPrefix();
+        $out->{'self'} = $this->toSelf();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Prefix
+     * @return Obj4Self
      * @throws Exception
      */
-    public static function from(stdClass $obj): Prefix {
-        if (!property_exists($obj, 'prefix')) {
+    public static function from(stdClass $obj): Obj4Self {
+        if (!property_exists($obj, 'self')) {
             throw new Exception("Missing required property");
         }
-        return new Prefix(
-         Prefix::fromPrefix($obj->{'prefix'})
+        return new Obj4Self(
+         Obj4Self::fromSelf($obj->{'self'})
         );
     }
 
     /**
-     * @return Prefix
+     * @return Obj4Self
      */
-    public static function sample(): Prefix {
-        return new Prefix(
-         Prefix::samplePrefix()
+    public static function sample(): Obj4Self {
+        return new Obj4Self(
+         Obj4Self::sampleSelf()
         );
     }
 }
 
-// This is an autogenerated file:PrintClass
+// This is an autogenerated file:ObjectClass
 
-class PrintClass {
-    private int $print; // json:print Required
+class ObjectClass {
+    private int $object; // json:object Required
 
     /**
-     * @param int $print
+     * @param int $object
      */
-    public function __construct(int $print) {
-        $this->print = $print;
+    public function __construct(int $object) {
+        $this->object = $object;
     }
 
     /**
@@ -35230,7 +35528,7 @@ class PrintClass {
      * @throws Exception
      * @return int
      */
-    public static function fromPrint(int $value): int {
+    public static function fromObject(int $value): int {
         return $value; /*int*/
     }
 
@@ -35238,11 +35536,11 @@ class PrintClass {
      * @throws Exception
      * @return int
      */
-    public function toPrint(): int {
-        if (PrintClass::validatePrint($this->print))  {
-            return $this->print; /*int*/
+    public function toObject(): int {
+        if (ObjectClass::validateObject($this->object))  {
+            return $this->object; /*int*/
         }
-        throw new Exception('never get to this PrintClass::print');
+        throw new Exception('never get to this ObjectClass::object');
     }
 
     /**
@@ -35250,7 +35548,7 @@ class PrintClass {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrint(int $value): bool {
+    public static function validateObject(int $value): bool {
         return true;
     }
 
@@ -35258,18 +35556,18 @@ class PrintClass {
      * @throws Exception
      * @return int
      */
-    public function getPrint(): int {
-        if (PrintClass::validatePrint($this->print))  {
-            return $this->print;
+    public function getObject(): int {
+        if (ObjectClass::validateObject($this->object))  {
+            return $this->object;
         }
-        throw new Exception('never get to getPrint PrintClass::print');
+        throw new Exception('never get to getObject ObjectClass::object');
     }
 
     /**
      * @return int
      */
-    public static function samplePrint(): int {
-        return 31; /*31:print*/
+    public static function sampleObject(): int {
+        return 31; /*31:object*/
     }
 
     /**
@@ -35277,7 +35575,7 @@ class PrintClass {
      * @return bool
      */
     public function validate(): bool {
-        return PrintClass::validatePrint($this->print);
+        return ObjectClass::validateObject($this->object);
     }
 
     /**
@@ -35286,44 +35584,44 @@ class PrintClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'print'} = $this->toPrint();
+        $out->{'object'} = $this->toObject();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return PrintClass
+     * @return ObjectClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): PrintClass {
-        if (!property_exists($obj, 'print')) {
+    public static function from(stdClass $obj): ObjectClass {
+        if (!property_exists($obj, 'object')) {
             throw new Exception("Missing required property");
         }
-        return new PrintClass(
-         PrintClass::fromPrint($obj->{'print'})
+        return new ObjectClass(
+         ObjectClass::fromObject($obj->{'object'})
         );
     }
 
     /**
-     * @return PrintClass
+     * @return ObjectClass
      */
-    public static function sample(): PrintClass {
-        return new PrintClass(
-         PrintClass::samplePrint()
+    public static function sample(): ObjectClass {
+        return new ObjectClass(
+         ObjectClass::sampleObject()
         );
     }
 }
 
-// This is an autogenerated file:PrintMembers
+// This is an autogenerated file:ObjectMapper
 
-class PrintMembers {
-    private int $printMembers; // json:printMembers Required
+class ObjectMapper {
+    private int $objectMapper; // json:ObjectMapper Required
 
     /**
-     * @param int $printMembers
+     * @param int $objectMapper
      */
-    public function __construct(int $printMembers) {
-        $this->printMembers = $printMembers;
+    public function __construct(int $objectMapper) {
+        $this->objectMapper = $objectMapper;
     }
 
     /**
@@ -35331,7 +35629,7 @@ class PrintMembers {
      * @throws Exception
      * @return int
      */
-    public static function fromPrintMembers(int $value): int {
+    public static function fromObjectMapper(int $value): int {
         return $value; /*int*/
     }
 
@@ -35339,11 +35637,11 @@ class PrintMembers {
      * @throws Exception
      * @return int
      */
-    public function toPrintMembers(): int {
-        if (PrintMembers::validatePrintMembers($this->printMembers))  {
-            return $this->printMembers; /*int*/
+    public function toObjectMapper(): int {
+        if (ObjectMapper::validateObjectMapper($this->objectMapper))  {
+            return $this->objectMapper; /*int*/
         }
-        throw new Exception('never get to this PrintMembers::printMembers');
+        throw new Exception('never get to this ObjectMapper::objectMapper');
     }
 
     /**
@@ -35351,7 +35649,7 @@ class PrintMembers {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrintMembers(int $value): bool {
+    public static function validateObjectMapper(int $value): bool {
         return true;
     }
 
@@ -35359,18 +35657,18 @@ class PrintMembers {
      * @throws Exception
      * @return int
      */
-    public function getPrintMembers(): int {
-        if (PrintMembers::validatePrintMembers($this->printMembers))  {
-            return $this->printMembers;
+    public function getObjectMapper(): int {
+        if (ObjectMapper::validateObjectMapper($this->objectMapper))  {
+            return $this->objectMapper;
         }
-        throw new Exception('never get to getPrintMembers PrintMembers::printMembers');
+        throw new Exception('never get to getObjectMapper ObjectMapper::objectMapper');
     }
 
     /**
      * @return int
      */
-    public static function samplePrintMembers(): int {
-        return 31; /*31:printMembers*/
+    public static function sampleObjectMapper(): int {
+        return 31; /*31:objectMapper*/
     }
 
     /**
@@ -35378,7 +35676,7 @@ class PrintMembers {
      * @return bool
      */
     public function validate(): bool {
-        return PrintMembers::validatePrintMembers($this->printMembers);
+        return ObjectMapper::validateObjectMapper($this->objectMapper);
     }
 
     /**
@@ -35387,44 +35685,44 @@ class PrintMembers {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'printMembers'} = $this->toPrintMembers();
+        $out->{'ObjectMapper'} = $this->toObjectMapper();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return PrintMembers
+     * @return ObjectMapper
      * @throws Exception
      */
-    public static function from(stdClass $obj): PrintMembers {
-        if (!property_exists($obj, 'printMembers')) {
+    public static function from(stdClass $obj): ObjectMapper {
+        if (!property_exists($obj, 'ObjectMapper')) {
             throw new Exception("Missing required property");
         }
-        return new PrintMembers(
-         PrintMembers::fromPrintMembers($obj->{'printMembers'})
+        return new ObjectMapper(
+         ObjectMapper::fromObjectMapper($obj->{'ObjectMapper'})
         );
     }
 
     /**
-     * @return PrintMembers
+     * @return ObjectMapper
      */
-    public static function sample(): PrintMembers {
-        return new PrintMembers(
-         PrintMembers::samplePrintMembers()
+    public static function sample(): ObjectMapper {
+        return new ObjectMapper(
+         ObjectMapper::sampleObjectMapper()
         );
     }
 }
 
-// This is an autogenerated file:Printf
+// This is an autogenerated file:Of
 
-class Printf {
-    private int $printf; // json:printf Required
+class Of {
+    private int $of; // json:of Required
 
     /**
-     * @param int $printf
+     * @param int $of
      */
-    public function __construct(int $printf) {
-        $this->printf = $printf;
+    public function __construct(int $of) {
+        $this->of = $of;
     }
 
     /**
@@ -35432,7 +35730,7 @@ class Printf {
      * @throws Exception
      * @return int
      */
-    public static function fromPrintf(int $value): int {
+    public static function fromOf(int $value): int {
         return $value; /*int*/
     }
 
@@ -35440,11 +35738,11 @@ class Printf {
      * @throws Exception
      * @return int
      */
-    public function toPrintf(): int {
-        if (Printf::validatePrintf($this->printf))  {
-            return $this->printf; /*int*/
+    public function toOf(): int {
+        if (Of::validateOf($this->of))  {
+            return $this->of; /*int*/
         }
-        throw new Exception('never get to this Printf::printf');
+        throw new Exception('never get to this Of::of');
     }
 
     /**
@@ -35452,7 +35750,7 @@ class Printf {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrintf(int $value): bool {
+    public static function validateOf(int $value): bool {
         return true;
     }
 
@@ -35460,18 +35758,18 @@ class Printf {
      * @throws Exception
      * @return int
      */
-    public function getPrintf(): int {
-        if (Printf::validatePrintf($this->printf))  {
-            return $this->printf;
+    public function getOf(): int {
+        if (Of::validateOf($this->of))  {
+            return $this->of;
         }
-        throw new Exception('never get to getPrintf Printf::printf');
+        throw new Exception('never get to getOf Of::of');
     }
 
     /**
      * @return int
      */
-    public static function samplePrintf(): int {
-        return 31; /*31:printf*/
+    public static function sampleOf(): int {
+        return 31; /*31:of*/
     }
 
     /**
@@ -35479,7 +35777,7 @@ class Printf {
      * @return bool
      */
     public function validate(): bool {
-        return Printf::validatePrintf($this->printf);
+        return Of::validateOf($this->of);
     }
 
     /**
@@ -35488,44 +35786,44 @@ class Printf {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'printf'} = $this->toPrintf();
+        $out->{'of'} = $this->toOf();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Printf
+     * @return Of
      * @throws Exception
      */
-    public static function from(stdClass $obj): Printf {
-        if (!property_exists($obj, 'printf')) {
+    public static function from(stdClass $obj): Of {
+        if (!property_exists($obj, 'of')) {
             throw new Exception("Missing required property");
         }
-        return new Printf(
-         Printf::fromPrintf($obj->{'printf'})
+        return new Of(
+         Of::fromOf($obj->{'of'})
         );
     }
 
     /**
-     * @return Printf
+     * @return Of
      */
-    public static function sample(): Printf {
-        return new Printf(
-         Printf::samplePrintf()
+    public static function sample(): Of {
+        return new Of(
+         Of::sampleOf()
         );
     }
 }
 
-// This is an autogenerated file:PrivateClass
+// This is an autogenerated file:Oneway
 
-class PrivateClass {
-    private int $private; // json:private Required
+class Oneway {
+    private int $oneway; // json:oneway Required
 
     /**
-     * @param int $private
+     * @param int $oneway
      */
-    public function __construct(int $private) {
-        $this->private = $private;
+    public function __construct(int $oneway) {
+        $this->oneway = $oneway;
     }
 
     /**
@@ -35533,7 +35831,7 @@ class PrivateClass {
      * @throws Exception
      * @return int
      */
-    public static function fromPrivate(int $value): int {
+    public static function fromOneway(int $value): int {
         return $value; /*int*/
     }
 
@@ -35541,11 +35839,11 @@ class PrivateClass {
      * @throws Exception
      * @return int
      */
-    public function toPrivate(): int {
-        if (PrivateClass::validatePrivate($this->private))  {
-            return $this->private; /*int*/
+    public function toOneway(): int {
+        if (Oneway::validateOneway($this->oneway))  {
+            return $this->oneway; /*int*/
         }
-        throw new Exception('never get to this PrivateClass::private');
+        throw new Exception('never get to this Oneway::oneway');
     }
 
     /**
@@ -35553,7 +35851,7 @@ class PrivateClass {
      * @return bool
      * @throws Exception
      */
-    public static function validatePrivate(int $value): bool {
+    public static function validateOneway(int $value): bool {
         return true;
     }
 
@@ -35561,18 +35859,18 @@ class PrivateClass {
      * @throws Exception
      * @return int
      */
-    public function getPrivate(): int {
-        if (PrivateClass::validatePrivate($this->private))  {
-            return $this->private;
+    public function getOneway(): int {
+        if (Oneway::validateOneway($this->oneway))  {
+            return $this->oneway;
         }
-        throw new Exception('never get to getPrivate PrivateClass::private');
+        throw new Exception('never get to getOneway Oneway::oneway');
     }
 
     /**
      * @return int
      */
-    public static function samplePrivate(): int {
-        return 31; /*31:private*/
+    public static function sampleOneway(): int {
+        return 31; /*31:oneway*/
     }
 
     /**
@@ -35580,7 +35878,7 @@ class PrivateClass {
      * @return bool
      */
     public function validate(): bool {
-        return PrivateClass::validatePrivate($this->private);
+        return Oneway::validateOneway($this->oneway);
     }
 
     /**
@@ -35589,44 +35887,44 @@ class PrivateClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'private'} = $this->toPrivate();
+        $out->{'oneway'} = $this->toOneway();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return PrivateClass
+     * @return Oneway
      * @throws Exception
      */
-    public static function from(stdClass $obj): PrivateClass {
-        if (!property_exists($obj, 'private')) {
+    public static function from(stdClass $obj): Oneway {
+        if (!property_exists($obj, 'oneway')) {
             throw new Exception("Missing required property");
         }
-        return new PrivateClass(
-         PrivateClass::fromPrivate($obj->{'private'})
+        return new Oneway(
+         Oneway::fromOneway($obj->{'oneway'})
         );
     }
 
     /**
-     * @return PrivateClass
+     * @return Oneway
      */
-    public static function sample(): PrivateClass {
-        return new PrivateClass(
-         PrivateClass::samplePrivate()
+    public static function sample(): Oneway {
+        return new Oneway(
+         Oneway::sampleOneway()
         );
     }
 }
 
-// This is an autogenerated file:ProtectedClass
+// This is an autogenerated file:Open
 
-class ProtectedClass {
-    private int $protected; // json:protected Required
+class Open {
+    private int $open; // json:open Required
 
     /**
-     * @param int $protected
+     * @param int $open
      */
-    public function __construct(int $protected) {
-        $this->protected = $protected;
+    public function __construct(int $open) {
+        $this->open = $open;
     }
 
     /**
@@ -35634,7 +35932,7 @@ class ProtectedClass {
      * @throws Exception
      * @return int
      */
-    public static function fromProtected(int $value): int {
+    public static function fromOpen(int $value): int {
         return $value; /*int*/
     }
 
@@ -35642,11 +35940,11 @@ class ProtectedClass {
      * @throws Exception
      * @return int
      */
-    public function toProtected(): int {
-        if (ProtectedClass::validateProtected($this->protected))  {
-            return $this->protected; /*int*/
+    public function toOpen(): int {
+        if (Open::validateOpen($this->open))  {
+            return $this->open; /*int*/
         }
-        throw new Exception('never get to this ProtectedClass::protected');
+        throw new Exception('never get to this Open::open');
     }
 
     /**
@@ -35654,7 +35952,7 @@ class ProtectedClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateProtected(int $value): bool {
+    public static function validateOpen(int $value): bool {
         return true;
     }
 
@@ -35662,18 +35960,18 @@ class ProtectedClass {
      * @throws Exception
      * @return int
      */
-    public function getProtected(): int {
-        if (ProtectedClass::validateProtected($this->protected))  {
-            return $this->protected;
+    public function getOpen(): int {
+        if (Open::validateOpen($this->open))  {
+            return $this->open;
         }
-        throw new Exception('never get to getProtected ProtectedClass::protected');
+        throw new Exception('never get to getOpen Open::open');
     }
 
     /**
      * @return int
      */
-    public static function sampleProtected(): int {
-        return 31; /*31:protected*/
+    public static function sampleOpen(): int {
+        return 31; /*31:open*/
     }
 
     /**
@@ -35681,7 +35979,7 @@ class ProtectedClass {
      * @return bool
      */
     public function validate(): bool {
-        return ProtectedClass::validateProtected($this->protected);
+        return Open::validateOpen($this->open);
     }
 
     /**
@@ -35690,44 +35988,44 @@ class ProtectedClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'protected'} = $this->toProtected();
+        $out->{'open'} = $this->toOpen();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ProtectedClass
+     * @return Open
      * @throws Exception
      */
-    public static function from(stdClass $obj): ProtectedClass {
-        if (!property_exists($obj, 'protected')) {
+    public static function from(stdClass $obj): Open {
+        if (!property_exists($obj, 'open')) {
             throw new Exception("Missing required property");
         }
-        return new ProtectedClass(
-         ProtectedClass::fromProtected($obj->{'protected'})
+        return new Open(
+         Open::fromOpen($obj->{'open'})
         );
     }
 
     /**
-     * @return ProtectedClass
+     * @return Open
      */
-    public static function sample(): ProtectedClass {
-        return new ProtectedClass(
-         ProtectedClass::sampleProtected()
+    public static function sample(): Open {
+        return new Open(
+         Open::sampleOpen()
         );
     }
 }
 
-// This is an autogenerated file:Protocol
+// This is an autogenerated file:Operator
 
-class Protocol {
-    private int $protocol; // json:Protocol Required
+class Operator {
+    private int $operator; // json:operator Required
 
     /**
-     * @param int $protocol
+     * @param int $operator
      */
-    public function __construct(int $protocol) {
-        $this->protocol = $protocol;
+    public function __construct(int $operator) {
+        $this->operator = $operator;
     }
 
     /**
@@ -35735,7 +36033,7 @@ class Protocol {
      * @throws Exception
      * @return int
      */
-    public static function fromProtocol(int $value): int {
+    public static function fromOperator(int $value): int {
         return $value; /*int*/
     }
 
@@ -35743,11 +36041,11 @@ class Protocol {
      * @throws Exception
      * @return int
      */
-    public function toProtocol(): int {
-        if (Protocol::validateProtocol($this->protocol))  {
-            return $this->protocol; /*int*/
+    public function toOperator(): int {
+        if (Operator::validateOperator($this->operator))  {
+            return $this->operator; /*int*/
         }
-        throw new Exception('never get to this Protocol::protocol');
+        throw new Exception('never get to this Operator::operator');
     }
 
     /**
@@ -35755,7 +36053,7 @@ class Protocol {
      * @return bool
      * @throws Exception
      */
-    public static function validateProtocol(int $value): bool {
+    public static function validateOperator(int $value): bool {
         return true;
     }
 
@@ -35763,18 +36061,18 @@ class Protocol {
      * @throws Exception
      * @return int
      */
-    public function getProtocol(): int {
-        if (Protocol::validateProtocol($this->protocol))  {
-            return $this->protocol;
+    public function getOperator(): int {
+        if (Operator::validateOperator($this->operator))  {
+            return $this->operator;
         }
-        throw new Exception('never get to getProtocol Protocol::protocol');
+        throw new Exception('never get to getOperator Operator::operator');
     }
 
     /**
      * @return int
      */
-    public static function sampleProtocol(): int {
-        return 31; /*31:protocol*/
+    public static function sampleOperator(): int {
+        return 31; /*31:operator*/
     }
 
     /**
@@ -35782,7 +36080,7 @@ class Protocol {
      * @return bool
      */
     public function validate(): bool {
-        return Protocol::validateProtocol($this->protocol);
+        return Operator::validateOperator($this->operator);
     }
 
     /**
@@ -35791,44 +36089,44 @@ class Protocol {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'Protocol'} = $this->toProtocol();
+        $out->{'operator'} = $this->toOperator();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Protocol
+     * @return Operator
      * @throws Exception
      */
-    public static function from(stdClass $obj): Protocol {
-        if (!property_exists($obj, 'Protocol')) {
+    public static function from(stdClass $obj): Operator {
+        if (!property_exists($obj, 'operator')) {
             throw new Exception("Missing required property");
         }
-        return new Protocol(
-         Protocol::fromProtocol($obj->{'Protocol'})
+        return new Operator(
+         Operator::fromOperator($obj->{'operator'})
         );
     }
 
     /**
-     * @return Protocol
+     * @return Operator
      */
-    public static function sample(): Protocol {
-        return new Protocol(
-         Protocol::sampleProtocol()
+    public static function sample(): Operator {
+        return new Operator(
+         Operator::sampleOperator()
         );
     }
 }
 
-// This is an autogenerated file:SerializerProvider
+// This is an autogenerated file:Optional
 
-class SerializerProvider {
-    private int $serializerProvider; // json:SerializerProvider Required
+class Optional {
+    private int $optional; // json:optional Required
 
     /**
-     * @param int $serializerProvider
+     * @param int $optional
      */
-    public function __construct(int $serializerProvider) {
-        $this->serializerProvider = $serializerProvider;
+    public function __construct(int $optional) {
+        $this->optional = $optional;
     }
 
     /**
@@ -35836,7 +36134,7 @@ class SerializerProvider {
      * @throws Exception
      * @return int
      */
-    public static function fromSerializerProvider(int $value): int {
+    public static function fromOptional(int $value): int {
         return $value; /*int*/
     }
 
@@ -35844,11 +36142,11 @@ class SerializerProvider {
      * @throws Exception
      * @return int
      */
-    public function toSerializerProvider(): int {
-        if (SerializerProvider::validateSerializerProvider($this->serializerProvider))  {
-            return $this->serializerProvider; /*int*/
+    public function toOptional(): int {
+        if (Optional::validateOptional($this->optional))  {
+            return $this->optional; /*int*/
         }
-        throw new Exception('never get to this SerializerProvider::serializerProvider');
+        throw new Exception('never get to this Optional::optional');
     }
 
     /**
@@ -35856,7 +36154,7 @@ class SerializerProvider {
      * @return bool
      * @throws Exception
      */
-    public static function validateSerializerProvider(int $value): bool {
+    public static function validateOptional(int $value): bool {
         return true;
     }
 
@@ -35864,18 +36162,18 @@ class SerializerProvider {
      * @throws Exception
      * @return int
      */
-    public function getSerializerProvider(): int {
-        if (SerializerProvider::validateSerializerProvider($this->serializerProvider))  {
-            return $this->serializerProvider;
+    public function getOptional(): int {
+        if (Optional::validateOptional($this->optional))  {
+            return $this->optional;
         }
-        throw new Exception('never get to getSerializerProvider SerializerProvider::serializerProvider');
+        throw new Exception('never get to getOptional Optional::optional');
     }
 
     /**
      * @return int
      */
-    public static function sampleSerializerProvider(): int {
-        return 31; /*31:serializerProvider*/
+    public static function sampleOptional(): int {
+        return 31; /*31:optional*/
     }
 
     /**
@@ -35883,7 +36181,7 @@ class SerializerProvider {
      * @return bool
      */
     public function validate(): bool {
-        return SerializerProvider::validateSerializerProvider($this->serializerProvider);
+        return Optional::validateOptional($this->optional);
     }
 
     /**
@@ -35892,44 +36190,44 @@ class SerializerProvider {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'SerializerProvider'} = $this->toSerializerProvider();
+        $out->{'optional'} = $this->toOptional();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return SerializerProvider
+     * @return Optional
      * @throws Exception
      */
-    public static function from(stdClass $obj): SerializerProvider {
-        if (!property_exists($obj, 'SerializerProvider')) {
+    public static function from(stdClass $obj): Optional {
+        if (!property_exists($obj, 'optional')) {
             throw new Exception("Missing required property");
         }
-        return new SerializerProvider(
-         SerializerProvider::fromSerializerProvider($obj->{'SerializerProvider'})
+        return new Optional(
+         Optional::fromOptional($obj->{'optional'})
         );
     }
 
     /**
-     * @return SerializerProvider
+     * @return Optional
      */
-    public static function sample(): SerializerProvider {
-        return new SerializerProvider(
-         SerializerProvider::sampleSerializerProvider()
+    public static function sample(): Optional {
+        return new Optional(
+         Optional::sampleOptional()
         );
     }
 }
 
-// This is an autogenerated file:SimpleModule
+// This is an autogenerated file:OrClass
 
-class SimpleModule {
-    private int $simpleModule; // json:SimpleModule Required
+class OrClass {
+    private int $or; // json:or Required
 
     /**
-     * @param int $simpleModule
+     * @param int $or
      */
-    public function __construct(int $simpleModule) {
-        $this->simpleModule = $simpleModule;
+    public function __construct(int $or) {
+        $this->or = $or;
     }
 
     /**
@@ -35937,7 +36235,7 @@ class SimpleModule {
      * @throws Exception
      * @return int
      */
-    public static function fromSimpleModule(int $value): int {
+    public static function fromOr(int $value): int {
         return $value; /*int*/
     }
 
@@ -35945,11 +36243,11 @@ class SimpleModule {
      * @throws Exception
      * @return int
      */
-    public function toSimpleModule(): int {
-        if (SimpleModule::validateSimpleModule($this->simpleModule))  {
-            return $this->simpleModule; /*int*/
+    public function toOr(): int {
+        if (OrClass::validateOr($this->or))  {
+            return $this->or; /*int*/
         }
-        throw new Exception('never get to this SimpleModule::simpleModule');
+        throw new Exception('never get to this OrClass::or');
     }
 
     /**
@@ -35957,7 +36255,7 @@ class SimpleModule {
      * @return bool
      * @throws Exception
      */
-    public static function validateSimpleModule(int $value): bool {
+    public static function validateOr(int $value): bool {
         return true;
     }
 
@@ -35965,18 +36263,18 @@ class SimpleModule {
      * @throws Exception
      * @return int
      */
-    public function getSimpleModule(): int {
-        if (SimpleModule::validateSimpleModule($this->simpleModule))  {
-            return $this->simpleModule;
+    public function getOr(): int {
+        if (OrClass::validateOr($this->or))  {
+            return $this->or;
         }
-        throw new Exception('never get to getSimpleModule SimpleModule::simpleModule');
+        throw new Exception('never get to getOr OrClass::or');
     }
 
     /**
      * @return int
      */
-    public static function sampleSimpleModule(): int {
-        return 31; /*31:simpleModule*/
+    public static function sampleOr(): int {
+        return 31; /*31:or*/
     }
 
     /**
@@ -35984,7 +36282,7 @@ class SimpleModule {
      * @return bool
      */
     public function validate(): bool {
-        return SimpleModule::validateSimpleModule($this->simpleModule);
+        return OrClass::validateOr($this->or);
     }
 
     /**
@@ -35993,44 +36291,44 @@ class SimpleModule {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'SimpleModule'} = $this->toSimpleModule();
+        $out->{'or'} = $this->toOr();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return SimpleModule
+     * @return OrClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): SimpleModule {
-        if (!property_exists($obj, 'SimpleModule')) {
+    public static function from(stdClass $obj): OrClass {
+        if (!property_exists($obj, 'or')) {
             throw new Exception("Missing required property");
         }
-        return new SimpleModule(
-         SimpleModule::fromSimpleModule($obj->{'SimpleModule'})
+        return new OrClass(
+         OrClass::fromOr($obj->{'or'})
         );
     }
 
     /**
-     * @return SimpleModule
+     * @return OrClass
      */
-    public static function sample(): SimpleModule {
-        return new SimpleModule(
-         SimpleModule::sampleSimpleModule()
+    public static function sample(): OrClass {
+        return new OrClass(
+         OrClass::sampleOr()
         );
     }
 }
 
-// This is an autogenerated file:StdDeserializer
+// This is an autogenerated file:OrEq
 
-class StdDeserializer {
-    private int $stdDeserializer; // json:StdDeserializer Required
+class OrEq {
+    private int $orEq; // json:or_eq Required
 
     /**
-     * @param int $stdDeserializer
+     * @param int $orEq
      */
-    public function __construct(int $stdDeserializer) {
-        $this->stdDeserializer = $stdDeserializer;
+    public function __construct(int $orEq) {
+        $this->orEq = $orEq;
     }
 
     /**
@@ -36038,7 +36336,7 @@ class StdDeserializer {
      * @throws Exception
      * @return int
      */
-    public static function fromStdDeserializer(int $value): int {
+    public static function fromOrEq(int $value): int {
         return $value; /*int*/
     }
 
@@ -36046,11 +36344,11 @@ class StdDeserializer {
      * @throws Exception
      * @return int
      */
-    public function toStdDeserializer(): int {
-        if (StdDeserializer::validateStdDeserializer($this->stdDeserializer))  {
-            return $this->stdDeserializer; /*int*/
+    public function toOrEq(): int {
+        if (OrEq::validateOrEq($this->orEq))  {
+            return $this->orEq; /*int*/
         }
-        throw new Exception('never get to this StdDeserializer::stdDeserializer');
+        throw new Exception('never get to this OrEq::orEq');
     }
 
     /**
@@ -36058,7 +36356,7 @@ class StdDeserializer {
      * @return bool
      * @throws Exception
      */
-    public static function validateStdDeserializer(int $value): bool {
+    public static function validateOrEq(int $value): bool {
         return true;
     }
 
@@ -36066,18 +36364,18 @@ class StdDeserializer {
      * @throws Exception
      * @return int
      */
-    public function getStdDeserializer(): int {
-        if (StdDeserializer::validateStdDeserializer($this->stdDeserializer))  {
-            return $this->stdDeserializer;
+    public function getOrEq(): int {
+        if (OrEq::validateOrEq($this->orEq))  {
+            return $this->orEq;
         }
-        throw new Exception('never get to getStdDeserializer StdDeserializer::stdDeserializer');
+        throw new Exception('never get to getOrEq OrEq::orEq');
     }
 
     /**
      * @return int
      */
-    public static function sampleStdDeserializer(): int {
-        return 31; /*31:stdDeserializer*/
+    public static function sampleOrEq(): int {
+        return 31; /*31:orEq*/
     }
 
     /**
@@ -36085,7 +36383,7 @@ class StdDeserializer {
      * @return bool
      */
     public function validate(): bool {
-        return StdDeserializer::validateStdDeserializer($this->stdDeserializer);
+        return OrEq::validateOrEq($this->orEq);
     }
 
     /**
@@ -36094,44 +36392,44 @@ class StdDeserializer {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'StdDeserializer'} = $this->toStdDeserializer();
+        $out->{'or_eq'} = $this->toOrEq();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return StdDeserializer
+     * @return OrEq
      * @throws Exception
      */
-    public static function from(stdClass $obj): StdDeserializer {
-        if (!property_exists($obj, 'StdDeserializer')) {
+    public static function from(stdClass $obj): OrEq {
+        if (!property_exists($obj, 'or_eq')) {
             throw new Exception("Missing required property");
         }
-        return new StdDeserializer(
-         StdDeserializer::fromStdDeserializer($obj->{'StdDeserializer'})
+        return new OrEq(
+         OrEq::fromOrEq($obj->{'or_eq'})
         );
     }
 
     /**
-     * @return StdDeserializer
+     * @return OrEq
      */
-    public static function sample(): StdDeserializer {
-        return new StdDeserializer(
-         StdDeserializer::sampleStdDeserializer()
+    public static function sample(): OrEq {
+        return new OrEq(
+         OrEq::sampleOrEq()
         );
     }
 }
 
-// This is an autogenerated file:StdSerializer
+// This is an autogenerated file:Out
 
-class StdSerializer {
-    private int $stdSerializer; // json:StdSerializer Required
+class Out {
+    private int $out; // json:out Required
 
     /**
-     * @param int $stdSerializer
+     * @param int $out
      */
-    public function __construct(int $stdSerializer) {
-        $this->stdSerializer = $stdSerializer;
+    public function __construct(int $out) {
+        $this->out = $out;
     }
 
     /**
@@ -36139,7 +36437,7 @@ class StdSerializer {
      * @throws Exception
      * @return int
      */
-    public static function fromStdSerializer(int $value): int {
+    public static function fromOut(int $value): int {
         return $value; /*int*/
     }
 
@@ -36147,11 +36445,11 @@ class StdSerializer {
      * @throws Exception
      * @return int
      */
-    public function toStdSerializer(): int {
-        if (StdSerializer::validateStdSerializer($this->stdSerializer))  {
-            return $this->stdSerializer; /*int*/
+    public function toOut(): int {
+        if (Out::validateOut($this->out))  {
+            return $this->out; /*int*/
         }
-        throw new Exception('never get to this StdSerializer::stdSerializer');
+        throw new Exception('never get to this Out::out');
     }
 
     /**
@@ -36159,7 +36457,7 @@ class StdSerializer {
      * @return bool
      * @throws Exception
      */
-    public static function validateStdSerializer(int $value): bool {
+    public static function validateOut(int $value): bool {
         return true;
     }
 
@@ -36167,285 +36465,72 @@ class StdSerializer {
      * @throws Exception
      * @return int
      */
-    public function getStdSerializer(): int {
-        if (StdSerializer::validateStdSerializer($this->stdSerializer))  {
-            return $this->stdSerializer;
+    public function getOut(): int {
+        if (Out::validateOut($this->out))  {
+            return $this->out;
         }
-        throw new Exception('never get to getStdSerializer StdSerializer::stdSerializer');
+        throw new Exception('never get to getOut Out::out');
     }
 
     /**
      * @return int
      */
-    public static function sampleStdSerializer(): int {
-        return 31; /*31:stdSerializer*/
+    public static function sampleOut(): int {
+        return 31; /*31:out*/
     }
 
     /**
      * @throws Exception
      * @return bool
      */
-    public function validate(): bool {
-        return StdSerializer::validateStdSerializer($this->stdSerializer);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'StdSerializer'} = $this->toStdSerializer();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return StdSerializer
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): StdSerializer {
-        if (!property_exists($obj, 'StdSerializer')) {
-            throw new Exception("Missing required property");
-        }
-        return new StdSerializer(
-         StdSerializer::fromStdSerializer($obj->{'StdSerializer'})
-        );
-    }
-
-    /**
-     * @return StdSerializer
-     */
-    public static function sample(): StdSerializer {
-        return new StdSerializer(
-         StdSerializer::sampleStdSerializer()
-        );
-    }
-}
-
-// This is an autogenerated file:Obj4
-
-class Obj4 {
-    private int $dummy; // json:dummy Required
-    private Obj4Self $obj4Self; // json:self Required
-    private This $obj4This; // json:this Required
-    private Obj4True $obj4True; // json:true Required
-    private TypeClass $obj4Type; // json:type Required
-    private PublicClass $public; // json:public Required
-    private Quicktype $quicktype; // json:quicktype Required
-    private Raise $raise; // json:raise Required
-    private Range $range; // json:range Required
-    private ReadonlyClass $readonly; // json:readonly Required
-    private Ref $ref; // json:ref Required
-    private RegExp $regExp; // json:RegExp Required
-    private Register $register; // json:register Required
-    private ReinterpretCast $reinterpretCast; // json:reinterpret_cast Required
-    private Repeat $repeat; // json:repeat Required
-    private RequireClass $require; // json:require Required
-    private Required $required; // json:required Required
-    private Requires $requires; // json:requires Required
-    private Restrict $restrict; // json:restrict Required
-    private Retain $retain; // json:retain Required
-    private Rethrows $rethrows; // json:rethrows Required
-    private ReturnClass $return; // json:return Required
-    private Right $right; // json:right Required
-    private RuntimeType $runtimeType; // json:runtimeType Required
-    private S $s; // json:s Required
-    private Sbyte $sbyte; // json:sbyte Required
-    private Sealed $sealed; // json:sealed Required
-    private Sel $sel; // json:SEL Required
-    private Select $select; // json:select Required
-    private SelfClass $self; // json:Self Required
-    private Serialize $serialize; // json:serialize Required
-    private Set $set; // json:set Required
-    private Short $short; // json:short Required
-    private Signed $signed; // json:signed Required
-    private Sizeof $sizeof; // json:sizeof Required
-    private Stackalloc $stackalloc; // json:stackalloc Required
-    private Standards $standards; // json:Standards Required
-    private StaticClass $static; // json:static Required
-    private StaticAssert $staticAssert; // json:static_assert Required
-    private StaticCast $staticCast; // json:static_cast Required
-    private Strictfp $strictfp; // json:strictfp Required
-    private StringClass $string; // json:string Required
-    private Struct $struct; // json:struct Required
-    private Subscript $subscript; // json:subscript Required
-    private Super $super; // json:super Required
-    private SwitchClass $switch; // json:switch Required
-    private Symbol $symbol; // json:symbol Required
-    private Synchronized $synchronized; // json:synchronized Required
-    private System $system; // json:system Required
-    private Template $template; // json:template Required
-    private Then $then; // json:then Required
-    private ThreadLocal $threadLocal; // json:thread_local Required
-    private ThrowClass $throw; // json:throw Required
-    private Throws $throws; // json:throws Required
-    private TimeOnly $timeOnly; // json:TimeOnly Required
-    private TimeOnlyConverter $timeOnlyConverter; // json:TimeOnlyConverter Required
-    private ToJSON $toJSON; // json:to_json Required
-    private ToString $toString; // json:toString Required
-    private TopLevelClass $topLevel; // json:top_level Required
-    private Transient $transient; // json:transient Required
-    private TrueClass $true; // json:True Required
-    private TryClass $try; // json:try Required
-    private Type $type; // json:Type Required
-    private Typealias $typealias; // json:typealias Required
-    private Typedef $typedef; // json:typedef Required
-    private Typeid $typeid; // json:typeid Required
-    private Typename $typename; // json:typename Required
-    private Typeof $typeof; // json:typeof Required
-    private Uint $uint; // json:uint Required
-    private Ulong $ulong; // json:ulong Required
-    private Unchecked $unchecked; // json:unchecked Required
-    private Undefined $undefined; // json:undefined Required
-
-    /**
-     * @param int $dummy
-     * @param Obj4Self $obj4Self
-     * @param This $obj4This
-     * @param Obj4True $obj4True
-     * @param TypeClass $obj4Type
-     * @param PublicClass $public
-     * @param Quicktype $quicktype
-     * @param Raise $raise
-     * @param Range $range
-     * @param ReadonlyClass $readonly
-     * @param Ref $ref
-     * @param RegExp $regExp
-     * @param Register $register
-     * @param ReinterpretCast $reinterpretCast
-     * @param Repeat $repeat
-     * @param RequireClass $require
-     * @param Required $required
-     * @param Requires $requires
-     * @param Restrict $restrict
-     * @param Retain $retain
-     * @param Rethrows $rethrows
-     * @param ReturnClass $return
-     * @param Right $right
-     * @param RuntimeType $runtimeType
-     * @param S $s
-     * @param Sbyte $sbyte
-     * @param Sealed $sealed
-     * @param Sel $sel
-     * @param Select $select
-     * @param SelfClass $self
-     * @param Serialize $serialize
-     * @param Set $set
-     * @param Short $short
-     * @param Signed $signed
-     * @param Sizeof $sizeof
-     * @param Stackalloc $stackalloc
-     * @param Standards $standards
-     * @param StaticClass $static
-     * @param StaticAssert $staticAssert
-     * @param StaticCast $staticCast
-     * @param Strictfp $strictfp
-     * @param StringClass $string
-     * @param Struct $struct
-     * @param Subscript $subscript
-     * @param Super $super
-     * @param SwitchClass $switch
-     * @param Symbol $symbol
-     * @param Synchronized $synchronized
-     * @param System $system
-     * @param Template $template
-     * @param Then $then
-     * @param ThreadLocal $threadLocal
-     * @param ThrowClass $throw
-     * @param Throws $throws
-     * @param TimeOnly $timeOnly
-     * @param TimeOnlyConverter $timeOnlyConverter
-     * @param ToJSON $toJSON
-     * @param ToString $toString
-     * @param TopLevelClass $topLevel
-     * @param Transient $transient
-     * @param TrueClass $true
-     * @param TryClass $try
-     * @param Type $type
-     * @param Typealias $typealias
-     * @param Typedef $typedef
-     * @param Typeid $typeid
-     * @param Typename $typename
-     * @param Typeof $typeof
-     * @param Uint $uint
-     * @param Ulong $ulong
-     * @param Unchecked $unchecked
-     * @param Undefined $undefined
-     */
-    public function __construct(int $dummy, Obj4Self $obj4Self, This $obj4This, Obj4True $obj4True, TypeClass $obj4Type, PublicClass $public, Quicktype $quicktype, Raise $raise, Range $range, ReadonlyClass $readonly, Ref $ref, RegExp $regExp, Register $register, ReinterpretCast $reinterpretCast, Repeat $repeat, RequireClass $require, Required $required, Requires $requires, Restrict $restrict, Retain $retain, Rethrows $rethrows, ReturnClass $return, Right $right, RuntimeType $runtimeType, S $s, Sbyte $sbyte, Sealed $sealed, Sel $sel, Select $select, SelfClass $self, Serialize $serialize, Set $set, Short $short, Signed $signed, Sizeof $sizeof, Stackalloc $stackalloc, Standards $standards, StaticClass $static, StaticAssert $staticAssert, StaticCast $staticCast, Strictfp $strictfp, StringClass $string, Struct $struct, Subscript $subscript, Super $super, SwitchClass $switch, Symbol $symbol, Synchronized $synchronized, System $system, Template $template, Then $then, ThreadLocal $threadLocal, ThrowClass $throw, Throws $throws, TimeOnly $timeOnly, TimeOnlyConverter $timeOnlyConverter, ToJSON $toJSON, ToString $toString, TopLevelClass $topLevel, Transient $transient, TrueClass $true, TryClass $try, Type $type, Typealias $typealias, Typedef $typedef, Typeid $typeid, Typename $typename, Typeof $typeof, Uint $uint, Ulong $ulong, Unchecked $unchecked, Undefined $undefined) {
-        $this->dummy = $dummy;
-        $this->obj4Self = $obj4Self;
-        $this->obj4This = $obj4This;
-        $this->obj4True = $obj4True;
-        $this->obj4Type = $obj4Type;
-        $this->public = $public;
-        $this->quicktype = $quicktype;
-        $this->raise = $raise;
-        $this->range = $range;
-        $this->readonly = $readonly;
-        $this->ref = $ref;
-        $this->regExp = $regExp;
-        $this->register = $register;
-        $this->reinterpretCast = $reinterpretCast;
-        $this->repeat = $repeat;
-        $this->require = $require;
-        $this->required = $required;
-        $this->requires = $requires;
-        $this->restrict = $restrict;
-        $this->retain = $retain;
-        $this->rethrows = $rethrows;
-        $this->return = $return;
-        $this->right = $right;
-        $this->runtimeType = $runtimeType;
-        $this->s = $s;
-        $this->sbyte = $sbyte;
-        $this->sealed = $sealed;
-        $this->sel = $sel;
-        $this->select = $select;
-        $this->self = $self;
-        $this->serialize = $serialize;
-        $this->set = $set;
-        $this->short = $short;
-        $this->signed = $signed;
-        $this->sizeof = $sizeof;
-        $this->stackalloc = $stackalloc;
-        $this->standards = $standards;
-        $this->static = $static;
-        $this->staticAssert = $staticAssert;
-        $this->staticCast = $staticCast;
-        $this->strictfp = $strictfp;
-        $this->string = $string;
-        $this->struct = $struct;
-        $this->subscript = $subscript;
-        $this->super = $super;
-        $this->switch = $switch;
-        $this->symbol = $symbol;
-        $this->synchronized = $synchronized;
-        $this->system = $system;
-        $this->template = $template;
-        $this->then = $then;
-        $this->threadLocal = $threadLocal;
-        $this->throw = $throw;
-        $this->throws = $throws;
-        $this->timeOnly = $timeOnly;
-        $this->timeOnlyConverter = $timeOnlyConverter;
-        $this->toJSON = $toJSON;
-        $this->toString = $toString;
-        $this->topLevel = $topLevel;
-        $this->transient = $transient;
-        $this->true = $true;
-        $this->try = $try;
-        $this->type = $type;
-        $this->typealias = $typealias;
-        $this->typedef = $typedef;
-        $this->typeid = $typeid;
-        $this->typename = $typename;
-        $this->typeof = $typeof;
-        $this->uint = $uint;
-        $this->ulong = $ulong;
-        $this->unchecked = $unchecked;
-        $this->undefined = $undefined;
+    public function validate(): bool {
+        return Out::validateOut($this->out);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'out'} = $this->toOut();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Out
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Out {
+        if (!property_exists($obj, 'out')) {
+            throw new Exception("Missing required property");
+        }
+        return new Out(
+         Out::fromOut($obj->{'out'})
+        );
+    }
+
+    /**
+     * @return Out
+     */
+    public static function sample(): Out {
+        return new Out(
+         Out::sampleOut()
+        );
+    }
+}
+
+// This is an autogenerated file:OverrideClass
+
+class OverrideClass {
+    private int $override; // json:override Required
+
+    /**
+     * @param int $override
+     */
+    public function __construct(int $override) {
+        $this->override = $override;
     }
 
     /**
@@ -36453,7 +36538,7 @@ class Obj4 {
      * @throws Exception
      * @return int
      */
-    public static function fromDummy(int $value): int {
+    public static function fromOverride(int $value): int {
         return $value; /*int*/
     }
 
@@ -36461,11 +36546,11 @@ class Obj4 {
      * @throws Exception
      * @return int
      */
-    public function toDummy(): int {
-        if (Obj4::validateDummy($this->dummy))  {
-            return $this->dummy; /*int*/
+    public function toOverride(): int {
+        if (OverrideClass::validateOverride($this->override))  {
+            return $this->override; /*int*/
         }
-        throw new Exception('never get to this Obj4::dummy');
+        throw new Exception('never get to this OverrideClass::override');
     }
 
     /**
@@ -36473,7 +36558,7 @@ class Obj4 {
      * @return bool
      * @throws Exception
      */
-    public static function validateDummy(int $value): bool {
+    public static function validateOverride(int $value): bool {
         return true;
     }
 
@@ -36481,3426 +36566,3657 @@ class Obj4 {
      * @throws Exception
      * @return int
      */
-    public function getDummy(): int {
-        if (Obj4::validateDummy($this->dummy))  {
-            return $this->dummy;
+    public function getOverride(): int {
+        if (OverrideClass::validateOverride($this->override))  {
+            return $this->override;
         }
-        throw new Exception('never get to getDummy Obj4::dummy');
+        throw new Exception('never get to getOverride OverrideClass::override');
     }
 
     /**
      * @return int
      */
-    public static function sampleDummy(): int {
-        return 31; /*31:dummy*/
+    public static function sampleOverride(): int {
+        return 31; /*31:override*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Obj4Self
+     * @return bool
      */
-    public static function fromObj4Self(stdClass $value): Obj4Self {
-        return Obj4Self::from($value); /*class*/
+    public function validate(): bool {
+        return OverrideClass::validateOverride($this->override);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toObj4Self(): stdClass {
-        if (Obj4::validateObj4Self($this->obj4Self))  {
-            return $this->obj4Self->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::obj4Self');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'override'} = $this->toOverride();
+        return $out;
     }
 
     /**
-     * @param Obj4Self
-     * @return bool
+     * @param stdClass $obj
+     * @return OverrideClass
      * @throws Exception
      */
-    public static function validateObj4Self(Obj4Self $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): OverrideClass {
+        if (!property_exists($obj, 'override')) {
+            throw new Exception("Missing required property");
+        }
+        return new OverrideClass(
+         OverrideClass::fromOverride($obj->{'override'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Obj4Self
+     * @return OverrideClass
      */
-    public function getObj4Self(): Obj4Self {
-        if (Obj4::validateObj4Self($this->obj4Self))  {
-            return $this->obj4Self;
-        }
-        throw new Exception('never get to getObj4Self Obj4::obj4Self');
+    public static function sample(): OverrideClass {
+        return new OverrideClass(
+         OverrideClass::sampleOverride()
+        );
     }
+}
+
+// This is an autogenerated file:Package
+
+class Package {
+    private int $package; // json:package Required
 
     /**
-     * @return Obj4Self
+     * @param int $package
      */
-    public static function sampleObj4Self(): Obj4Self {
-        return Obj4Self::sample(); /*32:obj4Self*/
+    public function __construct(int $package) {
+        $this->package = $package;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return This
+     * @return int
      */
-    public static function fromObj4This(stdClass $value): This {
-        return This::from($value); /*class*/
+    public static function fromPackage(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toObj4This(): stdClass {
-        if (Obj4::validateObj4This($this->obj4This))  {
-            return $this->obj4This->to(); /*class*/
+    public function toPackage(): int {
+        if (Package::validatePackage($this->package))  {
+            return $this->package; /*int*/
         }
-        throw new Exception('never get to this Obj4::obj4This');
+        throw new Exception('never get to this Package::package');
     }
 
     /**
-     * @param This
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateObj4This(This $value): bool {
-        $value->validate();
+    public static function validatePackage(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return This
+     * @return int
      */
-    public function getObj4This(): This {
-        if (Obj4::validateObj4This($this->obj4This))  {
-            return $this->obj4This;
+    public function getPackage(): int {
+        if (Package::validatePackage($this->package))  {
+            return $this->package;
         }
-        throw new Exception('never get to getObj4This Obj4::obj4This');
+        throw new Exception('never get to getPackage Package::package');
     }
 
     /**
-     * @return This
+     * @return int
      */
-    public static function sampleObj4This(): This {
-        return This::sample(); /*33:obj4This*/
+    public static function samplePackage(): int {
+        return 31; /*31:package*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Obj4True
+     * @return bool
      */
-    public static function fromObj4True(stdClass $value): Obj4True {
-        return Obj4True::from($value); /*class*/
+    public function validate(): bool {
+        return Package::validatePackage($this->package);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toObj4True(): stdClass {
-        if (Obj4::validateObj4True($this->obj4True))  {
-            return $this->obj4True->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::obj4True');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'package'} = $this->toPackage();
+        return $out;
     }
 
     /**
-     * @param Obj4True
-     * @return bool
+     * @param stdClass $obj
+     * @return Package
      * @throws Exception
      */
-    public static function validateObj4True(Obj4True $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Package {
+        if (!property_exists($obj, 'package')) {
+            throw new Exception("Missing required property");
+        }
+        return new Package(
+         Package::fromPackage($obj->{'package'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Obj4True
+     * @return Package
      */
-    public function getObj4True(): Obj4True {
-        if (Obj4::validateObj4True($this->obj4True))  {
-            return $this->obj4True;
-        }
-        throw new Exception('never get to getObj4True Obj4::obj4True');
+    public static function sample(): Package {
+        return new Package(
+         Package::samplePackage()
+        );
     }
+}
+
+// This is an autogenerated file:Params
+
+class Params {
+    private int $params; // json:params Required
 
     /**
-     * @return Obj4True
+     * @param int $params
      */
-    public static function sampleObj4True(): Obj4True {
-        return Obj4True::sample(); /*34:obj4True*/
+    public function __construct(int $params) {
+        $this->params = $params;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return TypeClass
+     * @return int
      */
-    public static function fromObj4Type(stdClass $value): TypeClass {
-        return TypeClass::from($value); /*class*/
+    public static function fromParams(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toObj4Type(): stdClass {
-        if (Obj4::validateObj4Type($this->obj4Type))  {
-            return $this->obj4Type->to(); /*class*/
+    public function toParams(): int {
+        if (Params::validateParams($this->params))  {
+            return $this->params; /*int*/
         }
-        throw new Exception('never get to this Obj4::obj4Type');
+        throw new Exception('never get to this Params::params');
     }
 
     /**
-     * @param TypeClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateObj4Type(TypeClass $value): bool {
-        $value->validate();
+    public static function validateParams(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TypeClass
+     * @return int
      */
-    public function getObj4Type(): TypeClass {
-        if (Obj4::validateObj4Type($this->obj4Type))  {
-            return $this->obj4Type;
+    public function getParams(): int {
+        if (Params::validateParams($this->params))  {
+            return $this->params;
         }
-        throw new Exception('never get to getObj4Type Obj4::obj4Type');
+        throw new Exception('never get to getParams Params::params');
     }
 
     /**
-     * @return TypeClass
+     * @return int
      */
-    public static function sampleObj4Type(): TypeClass {
-        return TypeClass::sample(); /*35:obj4Type*/
+    public static function sampleParams(): int {
+        return 31; /*31:params*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return PublicClass
+     * @return bool
      */
-    public static function fromPublic(stdClass $value): PublicClass {
-        return PublicClass::from($value); /*class*/
+    public function validate(): bool {
+        return Params::validateParams($this->params);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toPublic(): stdClass {
-        if (Obj4::validatePublic($this->public))  {
-            return $this->public->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::public');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'params'} = $this->toParams();
+        return $out;
     }
 
     /**
-     * @param PublicClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Params
      * @throws Exception
      */
-    public static function validatePublic(PublicClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Params {
+        if (!property_exists($obj, 'params')) {
+            throw new Exception("Missing required property");
+        }
+        return new Params(
+         Params::fromParams($obj->{'params'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return PublicClass
+     * @return Params
      */
-    public function getPublic(): PublicClass {
-        if (Obj4::validatePublic($this->public))  {
-            return $this->public;
-        }
-        throw new Exception('never get to getPublic Obj4::public');
+    public static function sample(): Params {
+        return new Params(
+         Params::sampleParams()
+        );
     }
+}
+
+// This is an autogenerated file:Pass
+
+class Pass {
+    private int $pass; // json:pass Required
 
     /**
-     * @return PublicClass
+     * @param int $pass
      */
-    public static function samplePublic(): PublicClass {
-        return PublicClass::sample(); /*36:public*/
+    public function __construct(int $pass) {
+        $this->pass = $pass;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Quicktype
+     * @return int
      */
-    public static function fromQuicktype(stdClass $value): Quicktype {
-        return Quicktype::from($value); /*class*/
+    public static function fromPass(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toQuicktype(): stdClass {
-        if (Obj4::validateQuicktype($this->quicktype))  {
-            return $this->quicktype->to(); /*class*/
+    public function toPass(): int {
+        if (Pass::validatePass($this->pass))  {
+            return $this->pass; /*int*/
         }
-        throw new Exception('never get to this Obj4::quicktype');
+        throw new Exception('never get to this Pass::pass');
     }
 
     /**
-     * @param Quicktype
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateQuicktype(Quicktype $value): bool {
-        $value->validate();
+    public static function validatePass(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Quicktype
+     * @return int
      */
-    public function getQuicktype(): Quicktype {
-        if (Obj4::validateQuicktype($this->quicktype))  {
-            return $this->quicktype;
+    public function getPass(): int {
+        if (Pass::validatePass($this->pass))  {
+            return $this->pass;
         }
-        throw new Exception('never get to getQuicktype Obj4::quicktype');
+        throw new Exception('never get to getPass Pass::pass');
     }
 
     /**
-     * @return Quicktype
+     * @return int
      */
-    public static function sampleQuicktype(): Quicktype {
-        return Quicktype::sample(); /*37:quicktype*/
+    public static function samplePass(): int {
+        return 31; /*31:pass*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Raise
+     * @return bool
      */
-    public static function fromRaise(stdClass $value): Raise {
-        return Raise::from($value); /*class*/
+    public function validate(): bool {
+        return Pass::validatePass($this->pass);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRaise(): stdClass {
-        if (Obj4::validateRaise($this->raise))  {
-            return $this->raise->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::raise');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'pass'} = $this->toPass();
+        return $out;
     }
 
     /**
-     * @param Raise
-     * @return bool
+     * @param stdClass $obj
+     * @return Pass
      * @throws Exception
      */
-    public static function validateRaise(Raise $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Pass {
+        if (!property_exists($obj, 'pass')) {
+            throw new Exception("Missing required property");
+        }
+        return new Pass(
+         Pass::fromPass($obj->{'pass'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Raise
+     * @return Pass
      */
-    public function getRaise(): Raise {
-        if (Obj4::validateRaise($this->raise))  {
-            return $this->raise;
-        }
-        throw new Exception('never get to getRaise Obj4::raise');
+    public static function sample(): Pass {
+        return new Pass(
+         Pass::samplePass()
+        );
     }
+}
+
+// This is an autogenerated file:Port
+
+class Port {
+    private int $port; // json:port Required
 
     /**
-     * @return Raise
+     * @param int $port
      */
-    public static function sampleRaise(): Raise {
-        return Raise::sample(); /*38:raise*/
+    public function __construct(int $port) {
+        $this->port = $port;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Range
+     * @return int
      */
-    public static function fromRange(stdClass $value): Range {
-        return Range::from($value); /*class*/
+    public static function fromPort(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRange(): stdClass {
-        if (Obj4::validateRange($this->range))  {
-            return $this->range->to(); /*class*/
+    public function toPort(): int {
+        if (Port::validatePort($this->port))  {
+            return $this->port; /*int*/
         }
-        throw new Exception('never get to this Obj4::range');
+        throw new Exception('never get to this Port::port');
     }
 
     /**
-     * @param Range
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRange(Range $value): bool {
-        $value->validate();
+    public static function validatePort(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Range
+     * @return int
      */
-    public function getRange(): Range {
-        if (Obj4::validateRange($this->range))  {
-            return $this->range;
+    public function getPort(): int {
+        if (Port::validatePort($this->port))  {
+            return $this->port;
         }
-        throw new Exception('never get to getRange Obj4::range');
+        throw new Exception('never get to getPort Port::port');
     }
 
     /**
-     * @return Range
+     * @return int
      */
-    public static function sampleRange(): Range {
-        return Range::sample(); /*39:range*/
+    public static function samplePort(): int {
+        return 31; /*31:port*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return ReadonlyClass
+     * @return bool
      */
-    public static function fromReadonly(stdClass $value): ReadonlyClass {
-        return ReadonlyClass::from($value); /*class*/
+    public function validate(): bool {
+        return Port::validatePort($this->port);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toReadonly(): stdClass {
-        if (Obj4::validateReadonly($this->readonly))  {
-            return $this->readonly->to(); /*class*/
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'port'} = $this->toPort();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Port
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Port {
+        if (!property_exists($obj, 'port')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Obj4::readonly');
+        return new Port(
+         Port::fromPort($obj->{'port'})
+        );
     }
 
     /**
-     * @param ReadonlyClass
+     * @return Port
+     */
+    public static function sample(): Port {
+        return new Port(
+         Port::samplePort()
+        );
+    }
+}
+
+// This is an autogenerated file:Postfix
+
+class Postfix {
+    private int $postfix; // json:postfix Required
+
+    /**
+     * @param int $postfix
+     */
+    public function __construct(int $postfix) {
+        $this->postfix = $postfix;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromPostfix(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toPostfix(): int {
+        if (Postfix::validatePostfix($this->postfix))  {
+            return $this->postfix; /*int*/
+        }
+        throw new Exception('never get to this Postfix::postfix');
+    }
+
+    /**
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateReadonly(ReadonlyClass $value): bool {
-        $value->validate();
+    public static function validatePostfix(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReadonlyClass
+     * @return int
      */
-    public function getReadonly(): ReadonlyClass {
-        if (Obj4::validateReadonly($this->readonly))  {
-            return $this->readonly;
+    public function getPostfix(): int {
+        if (Postfix::validatePostfix($this->postfix))  {
+            return $this->postfix;
         }
-        throw new Exception('never get to getReadonly Obj4::readonly');
+        throw new Exception('never get to getPostfix Postfix::postfix');
     }
 
     /**
-     * @return ReadonlyClass
+     * @return int
      */
-    public static function sampleReadonly(): ReadonlyClass {
-        return ReadonlyClass::sample(); /*40:readonly*/
+    public static function samplePostfix(): int {
+        return 31; /*31:postfix*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Ref
+     * @return bool
      */
-    public static function fromRef(stdClass $value): Ref {
-        return Ref::from($value); /*class*/
+    public function validate(): bool {
+        return Postfix::validatePostfix($this->postfix);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRef(): stdClass {
-        if (Obj4::validateRef($this->ref))  {
-            return $this->ref->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::ref');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'postfix'} = $this->toPostfix();
+        return $out;
     }
 
     /**
-     * @param Ref
-     * @return bool
+     * @param stdClass $obj
+     * @return Postfix
      * @throws Exception
      */
-    public static function validateRef(Ref $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Postfix {
+        if (!property_exists($obj, 'postfix')) {
+            throw new Exception("Missing required property");
+        }
+        return new Postfix(
+         Postfix::fromPostfix($obj->{'postfix'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Ref
+     * @return Postfix
      */
-    public function getRef(): Ref {
-        if (Obj4::validateRef($this->ref))  {
-            return $this->ref;
-        }
-        throw new Exception('never get to getRef Obj4::ref');
+    public static function sample(): Postfix {
+        return new Postfix(
+         Postfix::samplePostfix()
+        );
     }
+}
+
+// This is an autogenerated file:Precedence
+
+class Precedence {
+    private int $precedence; // json:precedence Required
 
     /**
-     * @return Ref
+     * @param int $precedence
      */
-    public static function sampleRef(): Ref {
-        return Ref::sample(); /*41:ref*/
+    public function __construct(int $precedence) {
+        $this->precedence = $precedence;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return RegExp
+     * @return int
      */
-    public static function fromRegExp(stdClass $value): RegExp {
-        return RegExp::from($value); /*class*/
+    public static function fromPrecedence(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRegExp(): stdClass {
-        if (Obj4::validateRegExp($this->regExp))  {
-            return $this->regExp->to(); /*class*/
+    public function toPrecedence(): int {
+        if (Precedence::validatePrecedence($this->precedence))  {
+            return $this->precedence; /*int*/
         }
-        throw new Exception('never get to this Obj4::regExp');
+        throw new Exception('never get to this Precedence::precedence');
     }
 
     /**
-     * @param RegExp
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRegExp(RegExp $value): bool {
-        $value->validate();
+    public static function validatePrecedence(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return RegExp
+     * @return int
      */
-    public function getRegExp(): RegExp {
-        if (Obj4::validateRegExp($this->regExp))  {
-            return $this->regExp;
+    public function getPrecedence(): int {
+        if (Precedence::validatePrecedence($this->precedence))  {
+            return $this->precedence;
         }
-        throw new Exception('never get to getRegExp Obj4::regExp');
+        throw new Exception('never get to getPrecedence Precedence::precedence');
     }
 
     /**
-     * @return RegExp
+     * @return int
      */
-    public static function sampleRegExp(): RegExp {
-        return RegExp::sample(); /*42:regExp*/
+    public static function samplePrecedence(): int {
+        return 31; /*31:precedence*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Register
+     * @return bool
      */
-    public static function fromRegister(stdClass $value): Register {
-        return Register::from($value); /*class*/
+    public function validate(): bool {
+        return Precedence::validatePrecedence($this->precedence);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRegister(): stdClass {
-        if (Obj4::validateRegister($this->register))  {
-            return $this->register->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::register');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'precedence'} = $this->toPrecedence();
+        return $out;
     }
 
     /**
-     * @param Register
-     * @return bool
+     * @param stdClass $obj
+     * @return Precedence
      * @throws Exception
      */
-    public static function validateRegister(Register $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Precedence {
+        if (!property_exists($obj, 'precedence')) {
+            throw new Exception("Missing required property");
+        }
+        return new Precedence(
+         Precedence::fromPrecedence($obj->{'precedence'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Register
+     * @return Precedence
      */
-    public function getRegister(): Register {
-        if (Obj4::validateRegister($this->register))  {
-            return $this->register;
-        }
-        throw new Exception('never get to getRegister Obj4::register');
+    public static function sample(): Precedence {
+        return new Precedence(
+         Precedence::samplePrecedence()
+        );
     }
+}
+
+// This is an autogenerated file:Prefix
+
+class Prefix {
+    private int $prefix; // json:prefix Required
 
     /**
-     * @return Register
+     * @param int $prefix
      */
-    public static function sampleRegister(): Register {
-        return Register::sample(); /*43:register*/
+    public function __construct(int $prefix) {
+        $this->prefix = $prefix;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return ReinterpretCast
+     * @return int
      */
-    public static function fromReinterpretCast(stdClass $value): ReinterpretCast {
-        return ReinterpretCast::from($value); /*class*/
+    public static function fromPrefix(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toReinterpretCast(): stdClass {
-        if (Obj4::validateReinterpretCast($this->reinterpretCast))  {
-            return $this->reinterpretCast->to(); /*class*/
+    public function toPrefix(): int {
+        if (Prefix::validatePrefix($this->prefix))  {
+            return $this->prefix; /*int*/
         }
-        throw new Exception('never get to this Obj4::reinterpretCast');
+        throw new Exception('never get to this Prefix::prefix');
     }
 
     /**
-     * @param ReinterpretCast
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateReinterpretCast(ReinterpretCast $value): bool {
-        $value->validate();
+    public static function validatePrefix(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReinterpretCast
+     * @return int
      */
-    public function getReinterpretCast(): ReinterpretCast {
-        if (Obj4::validateReinterpretCast($this->reinterpretCast))  {
-            return $this->reinterpretCast;
+    public function getPrefix(): int {
+        if (Prefix::validatePrefix($this->prefix))  {
+            return $this->prefix;
         }
-        throw new Exception('never get to getReinterpretCast Obj4::reinterpretCast');
+        throw new Exception('never get to getPrefix Prefix::prefix');
     }
 
     /**
-     * @return ReinterpretCast
+     * @return int
      */
-    public static function sampleReinterpretCast(): ReinterpretCast {
-        return ReinterpretCast::sample(); /*44:reinterpretCast*/
+    public static function samplePrefix(): int {
+        return 31; /*31:prefix*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Repeat
+     * @return bool
      */
-    public static function fromRepeat(stdClass $value): Repeat {
-        return Repeat::from($value); /*class*/
+    public function validate(): bool {
+        return Prefix::validatePrefix($this->prefix);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRepeat(): stdClass {
-        if (Obj4::validateRepeat($this->repeat))  {
-            return $this->repeat->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::repeat');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'prefix'} = $this->toPrefix();
+        return $out;
     }
 
     /**
-     * @param Repeat
-     * @return bool
+     * @param stdClass $obj
+     * @return Prefix
      * @throws Exception
      */
-    public static function validateRepeat(Repeat $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Prefix {
+        if (!property_exists($obj, 'prefix')) {
+            throw new Exception("Missing required property");
+        }
+        return new Prefix(
+         Prefix::fromPrefix($obj->{'prefix'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Repeat
+     * @return Prefix
      */
-    public function getRepeat(): Repeat {
-        if (Obj4::validateRepeat($this->repeat))  {
-            return $this->repeat;
-        }
-        throw new Exception('never get to getRepeat Obj4::repeat');
+    public static function sample(): Prefix {
+        return new Prefix(
+         Prefix::samplePrefix()
+        );
     }
+}
+
+// This is an autogenerated file:PrintClass
+
+class PrintClass {
+    private int $print; // json:print Required
 
     /**
-     * @return Repeat
+     * @param int $print
      */
-    public static function sampleRepeat(): Repeat {
-        return Repeat::sample(); /*45:repeat*/
+    public function __construct(int $print) {
+        $this->print = $print;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return RequireClass
+     * @return int
      */
-    public static function fromRequire(stdClass $value): RequireClass {
-        return RequireClass::from($value); /*class*/
+    public static function fromPrint(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRequire(): stdClass {
-        if (Obj4::validateRequire($this->require))  {
-            return $this->require->to(); /*class*/
+    public function toPrint(): int {
+        if (PrintClass::validatePrint($this->print))  {
+            return $this->print; /*int*/
         }
-        throw new Exception('never get to this Obj4::require');
+        throw new Exception('never get to this PrintClass::print');
     }
 
     /**
-     * @param RequireClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRequire(RequireClass $value): bool {
-        $value->validate();
+    public static function validatePrint(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return RequireClass
+     * @return int
      */
-    public function getRequire(): RequireClass {
-        if (Obj4::validateRequire($this->require))  {
-            return $this->require;
+    public function getPrint(): int {
+        if (PrintClass::validatePrint($this->print))  {
+            return $this->print;
         }
-        throw new Exception('never get to getRequire Obj4::require');
+        throw new Exception('never get to getPrint PrintClass::print');
     }
 
     /**
-     * @return RequireClass
+     * @return int
      */
-    public static function sampleRequire(): RequireClass {
-        return RequireClass::sample(); /*46:require*/
+    public static function samplePrint(): int {
+        return 31; /*31:print*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Required
+     * @return bool
      */
-    public static function fromRequired(stdClass $value): Required {
-        return Required::from($value); /*class*/
+    public function validate(): bool {
+        return PrintClass::validatePrint($this->print);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRequired(): stdClass {
-        if (Obj4::validateRequired($this->required))  {
-            return $this->required->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::required');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'print'} = $this->toPrint();
+        return $out;
     }
 
     /**
-     * @param Required
-     * @return bool
+     * @param stdClass $obj
+     * @return PrintClass
      * @throws Exception
      */
-    public static function validateRequired(Required $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): PrintClass {
+        if (!property_exists($obj, 'print')) {
+            throw new Exception("Missing required property");
+        }
+        return new PrintClass(
+         PrintClass::fromPrint($obj->{'print'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Required
+     * @return PrintClass
      */
-    public function getRequired(): Required {
-        if (Obj4::validateRequired($this->required))  {
-            return $this->required;
-        }
-        throw new Exception('never get to getRequired Obj4::required');
+    public static function sample(): PrintClass {
+        return new PrintClass(
+         PrintClass::samplePrint()
+        );
     }
+}
+
+// This is an autogenerated file:PrintMembers
+
+class PrintMembers {
+    private int $printMembers; // json:printMembers Required
 
     /**
-     * @return Required
+     * @param int $printMembers
      */
-    public static function sampleRequired(): Required {
-        return Required::sample(); /*47:required*/
+    public function __construct(int $printMembers) {
+        $this->printMembers = $printMembers;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Requires
+     * @return int
      */
-    public static function fromRequires(stdClass $value): Requires {
-        return Requires::from($value); /*class*/
+    public static function fromPrintMembers(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRequires(): stdClass {
-        if (Obj4::validateRequires($this->requires))  {
-            return $this->requires->to(); /*class*/
+    public function toPrintMembers(): int {
+        if (PrintMembers::validatePrintMembers($this->printMembers))  {
+            return $this->printMembers; /*int*/
         }
-        throw new Exception('never get to this Obj4::requires');
+        throw new Exception('never get to this PrintMembers::printMembers');
     }
 
     /**
-     * @param Requires
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRequires(Requires $value): bool {
-        $value->validate();
+    public static function validatePrintMembers(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Requires
+     * @return int
      */
-    public function getRequires(): Requires {
-        if (Obj4::validateRequires($this->requires))  {
-            return $this->requires;
+    public function getPrintMembers(): int {
+        if (PrintMembers::validatePrintMembers($this->printMembers))  {
+            return $this->printMembers;
         }
-        throw new Exception('never get to getRequires Obj4::requires');
+        throw new Exception('never get to getPrintMembers PrintMembers::printMembers');
     }
 
     /**
-     * @return Requires
+     * @return int
      */
-    public static function sampleRequires(): Requires {
-        return Requires::sample(); /*48:requires*/
+    public static function samplePrintMembers(): int {
+        return 31; /*31:printMembers*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Restrict
+     * @return bool
      */
-    public static function fromRestrict(stdClass $value): Restrict {
-        return Restrict::from($value); /*class*/
+    public function validate(): bool {
+        return PrintMembers::validatePrintMembers($this->printMembers);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRestrict(): stdClass {
-        if (Obj4::validateRestrict($this->restrict))  {
-            return $this->restrict->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::restrict');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'printMembers'} = $this->toPrintMembers();
+        return $out;
     }
 
     /**
-     * @param Restrict
-     * @return bool
+     * @param stdClass $obj
+     * @return PrintMembers
      * @throws Exception
      */
-    public static function validateRestrict(Restrict $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): PrintMembers {
+        if (!property_exists($obj, 'printMembers')) {
+            throw new Exception("Missing required property");
+        }
+        return new PrintMembers(
+         PrintMembers::fromPrintMembers($obj->{'printMembers'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Restrict
+     * @return PrintMembers
      */
-    public function getRestrict(): Restrict {
-        if (Obj4::validateRestrict($this->restrict))  {
-            return $this->restrict;
-        }
-        throw new Exception('never get to getRestrict Obj4::restrict');
+    public static function sample(): PrintMembers {
+        return new PrintMembers(
+         PrintMembers::samplePrintMembers()
+        );
     }
+}
+
+// This is an autogenerated file:Printf
+
+class Printf {
+    private int $printf; // json:printf Required
 
     /**
-     * @return Restrict
+     * @param int $printf
      */
-    public static function sampleRestrict(): Restrict {
-        return Restrict::sample(); /*49:restrict*/
+    public function __construct(int $printf) {
+        $this->printf = $printf;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Retain
+     * @return int
      */
-    public static function fromRetain(stdClass $value): Retain {
-        return Retain::from($value); /*class*/
+    public static function fromPrintf(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRetain(): stdClass {
-        if (Obj4::validateRetain($this->retain))  {
-            return $this->retain->to(); /*class*/
+    public function toPrintf(): int {
+        if (Printf::validatePrintf($this->printf))  {
+            return $this->printf; /*int*/
         }
-        throw new Exception('never get to this Obj4::retain');
+        throw new Exception('never get to this Printf::printf');
     }
 
     /**
-     * @param Retain
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRetain(Retain $value): bool {
-        $value->validate();
+    public static function validatePrintf(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Retain
+     * @return int
      */
-    public function getRetain(): Retain {
-        if (Obj4::validateRetain($this->retain))  {
-            return $this->retain;
+    public function getPrintf(): int {
+        if (Printf::validatePrintf($this->printf))  {
+            return $this->printf;
         }
-        throw new Exception('never get to getRetain Obj4::retain');
+        throw new Exception('never get to getPrintf Printf::printf');
     }
 
     /**
-     * @return Retain
+     * @return int
      */
-    public static function sampleRetain(): Retain {
-        return Retain::sample(); /*50:retain*/
+    public static function samplePrintf(): int {
+        return 31; /*31:printf*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Rethrows
+     * @return bool
      */
-    public static function fromRethrows(stdClass $value): Rethrows {
-        return Rethrows::from($value); /*class*/
+    public function validate(): bool {
+        return Printf::validatePrintf($this->printf);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRethrows(): stdClass {
-        if (Obj4::validateRethrows($this->rethrows))  {
-            return $this->rethrows->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::rethrows');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'printf'} = $this->toPrintf();
+        return $out;
     }
 
     /**
-     * @param Rethrows
-     * @return bool
+     * @param stdClass $obj
+     * @return Printf
      * @throws Exception
      */
-    public static function validateRethrows(Rethrows $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Printf {
+        if (!property_exists($obj, 'printf')) {
+            throw new Exception("Missing required property");
+        }
+        return new Printf(
+         Printf::fromPrintf($obj->{'printf'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Rethrows
+     * @return Printf
      */
-    public function getRethrows(): Rethrows {
-        if (Obj4::validateRethrows($this->rethrows))  {
-            return $this->rethrows;
-        }
-        throw new Exception('never get to getRethrows Obj4::rethrows');
+    public static function sample(): Printf {
+        return new Printf(
+         Printf::samplePrintf()
+        );
     }
+}
+
+// This is an autogenerated file:PrivateClass
+
+class PrivateClass {
+    private int $private; // json:private Required
 
     /**
-     * @return Rethrows
+     * @param int $private
      */
-    public static function sampleRethrows(): Rethrows {
-        return Rethrows::sample(); /*51:rethrows*/
+    public function __construct(int $private) {
+        $this->private = $private;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return ReturnClass
+     * @return int
      */
-    public static function fromReturn(stdClass $value): ReturnClass {
-        return ReturnClass::from($value); /*class*/
+    public static function fromPrivate(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toReturn(): stdClass {
-        if (Obj4::validateReturn($this->return))  {
-            return $this->return->to(); /*class*/
+    public function toPrivate(): int {
+        if (PrivateClass::validatePrivate($this->private))  {
+            return $this->private; /*int*/
         }
-        throw new Exception('never get to this Obj4::return');
+        throw new Exception('never get to this PrivateClass::private');
     }
 
     /**
-     * @param ReturnClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateReturn(ReturnClass $value): bool {
-        $value->validate();
+    public static function validatePrivate(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReturnClass
+     * @return int
      */
-    public function getReturn(): ReturnClass {
-        if (Obj4::validateReturn($this->return))  {
-            return $this->return;
+    public function getPrivate(): int {
+        if (PrivateClass::validatePrivate($this->private))  {
+            return $this->private;
         }
-        throw new Exception('never get to getReturn Obj4::return');
+        throw new Exception('never get to getPrivate PrivateClass::private');
     }
 
     /**
-     * @return ReturnClass
+     * @return int
      */
-    public static function sampleReturn(): ReturnClass {
-        return ReturnClass::sample(); /*52:return*/
+    public static function samplePrivate(): int {
+        return 31; /*31:private*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Right
+     * @return bool
      */
-    public static function fromRight(stdClass $value): Right {
-        return Right::from($value); /*class*/
+    public function validate(): bool {
+        return PrivateClass::validatePrivate($this->private);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toRight(): stdClass {
-        if (Obj4::validateRight($this->right))  {
-            return $this->right->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::right');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'private'} = $this->toPrivate();
+        return $out;
     }
 
     /**
-     * @param Right
-     * @return bool
+     * @param stdClass $obj
+     * @return PrivateClass
      * @throws Exception
      */
-    public static function validateRight(Right $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): PrivateClass {
+        if (!property_exists($obj, 'private')) {
+            throw new Exception("Missing required property");
+        }
+        return new PrivateClass(
+         PrivateClass::fromPrivate($obj->{'private'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Right
+     * @return PrivateClass
      */
-    public function getRight(): Right {
-        if (Obj4::validateRight($this->right))  {
-            return $this->right;
-        }
-        throw new Exception('never get to getRight Obj4::right');
+    public static function sample(): PrivateClass {
+        return new PrivateClass(
+         PrivateClass::samplePrivate()
+        );
     }
+}
+
+// This is an autogenerated file:ProtectedClass
+
+class ProtectedClass {
+    private int $protected; // json:protected Required
 
     /**
-     * @return Right
+     * @param int $protected
      */
-    public static function sampleRight(): Right {
-        return Right::sample(); /*53:right*/
+    public function __construct(int $protected) {
+        $this->protected = $protected;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return RuntimeType
+     * @return int
      */
-    public static function fromRuntimeType(stdClass $value): RuntimeType {
-        return RuntimeType::from($value); /*class*/
+    public static function fromProtected(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toRuntimeType(): stdClass {
-        if (Obj4::validateRuntimeType($this->runtimeType))  {
-            return $this->runtimeType->to(); /*class*/
+    public function toProtected(): int {
+        if (ProtectedClass::validateProtected($this->protected))  {
+            return $this->protected; /*int*/
         }
-        throw new Exception('never get to this Obj4::runtimeType');
+        throw new Exception('never get to this ProtectedClass::protected');
     }
 
     /**
-     * @param RuntimeType
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRuntimeType(RuntimeType $value): bool {
-        $value->validate();
+    public static function validateProtected(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return RuntimeType
+     * @return int
      */
-    public function getRuntimeType(): RuntimeType {
-        if (Obj4::validateRuntimeType($this->runtimeType))  {
-            return $this->runtimeType;
+    public function getProtected(): int {
+        if (ProtectedClass::validateProtected($this->protected))  {
+            return $this->protected;
         }
-        throw new Exception('never get to getRuntimeType Obj4::runtimeType');
+        throw new Exception('never get to getProtected ProtectedClass::protected');
     }
 
     /**
-     * @return RuntimeType
+     * @return int
      */
-    public static function sampleRuntimeType(): RuntimeType {
-        return RuntimeType::sample(); /*54:runtimeType*/
+    public static function sampleProtected(): int {
+        return 31; /*31:protected*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return S
+     * @return bool
      */
-    public static function fromS(stdClass $value): S {
-        return S::from($value); /*class*/
+    public function validate(): bool {
+        return ProtectedClass::validateProtected($this->protected);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toS(): stdClass {
-        if (Obj4::validateS($this->s))  {
-            return $this->s->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::s');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'protected'} = $this->toProtected();
+        return $out;
     }
 
     /**
-     * @param S
-     * @return bool
+     * @param stdClass $obj
+     * @return ProtectedClass
      * @throws Exception
      */
-    public static function validateS(S $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): ProtectedClass {
+        if (!property_exists($obj, 'protected')) {
+            throw new Exception("Missing required property");
+        }
+        return new ProtectedClass(
+         ProtectedClass::fromProtected($obj->{'protected'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return S
+     * @return ProtectedClass
      */
-    public function getS(): S {
-        if (Obj4::validateS($this->s))  {
-            return $this->s;
-        }
-        throw new Exception('never get to getS Obj4::s');
+    public static function sample(): ProtectedClass {
+        return new ProtectedClass(
+         ProtectedClass::sampleProtected()
+        );
     }
+}
+
+// This is an autogenerated file:Protocol
+
+class Protocol {
+    private int $protocol; // json:Protocol Required
 
     /**
-     * @return S
+     * @param int $protocol
      */
-    public static function sampleS(): S {
-        return S::sample(); /*55:s*/
+    public function __construct(int $protocol) {
+        $this->protocol = $protocol;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Sbyte
+     * @return int
      */
-    public static function fromSbyte(stdClass $value): Sbyte {
-        return Sbyte::from($value); /*class*/
+    public static function fromProtocol(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSbyte(): stdClass {
-        if (Obj4::validateSbyte($this->sbyte))  {
-            return $this->sbyte->to(); /*class*/
+    public function toProtocol(): int {
+        if (Protocol::validateProtocol($this->protocol))  {
+            return $this->protocol; /*int*/
         }
-        throw new Exception('never get to this Obj4::sbyte');
+        throw new Exception('never get to this Protocol::protocol');
     }
 
     /**
-     * @param Sbyte
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSbyte(Sbyte $value): bool {
-        $value->validate();
+    public static function validateProtocol(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sbyte
+     * @return int
      */
-    public function getSbyte(): Sbyte {
-        if (Obj4::validateSbyte($this->sbyte))  {
-            return $this->sbyte;
+    public function getProtocol(): int {
+        if (Protocol::validateProtocol($this->protocol))  {
+            return $this->protocol;
         }
-        throw new Exception('never get to getSbyte Obj4::sbyte');
+        throw new Exception('never get to getProtocol Protocol::protocol');
     }
 
     /**
-     * @return Sbyte
+     * @return int
      */
-    public static function sampleSbyte(): Sbyte {
-        return Sbyte::sample(); /*56:sbyte*/
+    public static function sampleProtocol(): int {
+        return 31; /*31:protocol*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Sealed
+     * @return bool
      */
-    public static function fromSealed(stdClass $value): Sealed {
-        return Sealed::from($value); /*class*/
+    public function validate(): bool {
+        return Protocol::validateProtocol($this->protocol);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSealed(): stdClass {
-        if (Obj4::validateSealed($this->sealed))  {
-            return $this->sealed->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::sealed');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'Protocol'} = $this->toProtocol();
+        return $out;
     }
 
     /**
-     * @param Sealed
-     * @return bool
+     * @param stdClass $obj
+     * @return Protocol
      * @throws Exception
      */
-    public static function validateSealed(Sealed $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Protocol {
+        if (!property_exists($obj, 'Protocol')) {
+            throw new Exception("Missing required property");
+        }
+        return new Protocol(
+         Protocol::fromProtocol($obj->{'Protocol'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Sealed
+     * @return Protocol
      */
-    public function getSealed(): Sealed {
-        if (Obj4::validateSealed($this->sealed))  {
-            return $this->sealed;
-        }
-        throw new Exception('never get to getSealed Obj4::sealed');
+    public static function sample(): Protocol {
+        return new Protocol(
+         Protocol::sampleProtocol()
+        );
     }
+}
+
+// This is an autogenerated file:PublicClass
+
+class PublicClass {
+    private int $public; // json:public Required
 
     /**
-     * @return Sealed
+     * @param int $public
      */
-    public static function sampleSealed(): Sealed {
-        return Sealed::sample(); /*57:sealed*/
+    public function __construct(int $public) {
+        $this->public = $public;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Sel
+     * @return int
      */
-    public static function fromSel(stdClass $value): Sel {
-        return Sel::from($value); /*class*/
+    public static function fromPublic(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSel(): stdClass {
-        if (Obj4::validateSel($this->sel))  {
-            return $this->sel->to(); /*class*/
+    public function toPublic(): int {
+        if (PublicClass::validatePublic($this->public))  {
+            return $this->public; /*int*/
         }
-        throw new Exception('never get to this Obj4::sel');
+        throw new Exception('never get to this PublicClass::public');
     }
 
     /**
-     * @param Sel
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSel(Sel $value): bool {
-        $value->validate();
+    public static function validatePublic(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sel
+     * @return int
      */
-    public function getSel(): Sel {
-        if (Obj4::validateSel($this->sel))  {
-            return $this->sel;
+    public function getPublic(): int {
+        if (PublicClass::validatePublic($this->public))  {
+            return $this->public;
         }
-        throw new Exception('never get to getSel Obj4::sel');
+        throw new Exception('never get to getPublic PublicClass::public');
     }
 
     /**
-     * @return Sel
+     * @return int
      */
-    public static function sampleSel(): Sel {
-        return Sel::sample(); /*58:sel*/
+    public static function samplePublic(): int {
+        return 31; /*31:public*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Select
+     * @return bool
      */
-    public static function fromSelect(stdClass $value): Select {
-        return Select::from($value); /*class*/
+    public function validate(): bool {
+        return PublicClass::validatePublic($this->public);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSelect(): stdClass {
-        if (Obj4::validateSelect($this->select))  {
-            return $this->select->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::select');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'public'} = $this->toPublic();
+        return $out;
     }
 
     /**
-     * @param Select
-     * @return bool
+     * @param stdClass $obj
+     * @return PublicClass
      * @throws Exception
      */
-    public static function validateSelect(Select $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): PublicClass {
+        if (!property_exists($obj, 'public')) {
+            throw new Exception("Missing required property");
+        }
+        return new PublicClass(
+         PublicClass::fromPublic($obj->{'public'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Select
+     * @return PublicClass
      */
-    public function getSelect(): Select {
-        if (Obj4::validateSelect($this->select))  {
-            return $this->select;
-        }
-        throw new Exception('never get to getSelect Obj4::select');
+    public static function sample(): PublicClass {
+        return new PublicClass(
+         PublicClass::samplePublic()
+        );
     }
+}
+
+// This is an autogenerated file:Quicktype
+
+class Quicktype {
+    private int $quicktype; // json:quicktype Required
 
     /**
-     * @return Select
+     * @param int $quicktype
      */
-    public static function sampleSelect(): Select {
-        return Select::sample(); /*59:select*/
+    public function __construct(int $quicktype) {
+        $this->quicktype = $quicktype;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return SelfClass
+     * @return int
      */
-    public static function fromSelf(stdClass $value): SelfClass {
-        return SelfClass::from($value); /*class*/
+    public static function fromQuicktype(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSelf(): stdClass {
-        if (Obj4::validateSelf($this->self))  {
-            return $this->self->to(); /*class*/
+    public function toQuicktype(): int {
+        if (Quicktype::validateQuicktype($this->quicktype))  {
+            return $this->quicktype; /*int*/
         }
-        throw new Exception('never get to this Obj4::self');
+        throw new Exception('never get to this Quicktype::quicktype');
     }
 
     /**
-     * @param SelfClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSelf(SelfClass $value): bool {
-        $value->validate();
+    public static function validateQuicktype(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SelfClass
+     * @return int
      */
-    public function getSelf(): SelfClass {
-        if (Obj4::validateSelf($this->self))  {
-            return $this->self;
+    public function getQuicktype(): int {
+        if (Quicktype::validateQuicktype($this->quicktype))  {
+            return $this->quicktype;
         }
-        throw new Exception('never get to getSelf Obj4::self');
+        throw new Exception('never get to getQuicktype Quicktype::quicktype');
     }
 
     /**
-     * @return SelfClass
+     * @return int
      */
-    public static function sampleSelf(): SelfClass {
-        return SelfClass::sample(); /*60:self*/
+    public static function sampleQuicktype(): int {
+        return 31; /*31:quicktype*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Serialize
+     * @return bool
      */
-    public static function fromSerialize(stdClass $value): Serialize {
-        return Serialize::from($value); /*class*/
+    public function validate(): bool {
+        return Quicktype::validateQuicktype($this->quicktype);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSerialize(): stdClass {
-        if (Obj4::validateSerialize($this->serialize))  {
-            return $this->serialize->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::serialize');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'quicktype'} = $this->toQuicktype();
+        return $out;
     }
 
     /**
-     * @param Serialize
-     * @return bool
+     * @param stdClass $obj
+     * @return Quicktype
      * @throws Exception
      */
-    public static function validateSerialize(Serialize $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Quicktype {
+        if (!property_exists($obj, 'quicktype')) {
+            throw new Exception("Missing required property");
+        }
+        return new Quicktype(
+         Quicktype::fromQuicktype($obj->{'quicktype'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Serialize
+     * @return Quicktype
      */
-    public function getSerialize(): Serialize {
-        if (Obj4::validateSerialize($this->serialize))  {
-            return $this->serialize;
-        }
-        throw new Exception('never get to getSerialize Obj4::serialize');
+    public static function sample(): Quicktype {
+        return new Quicktype(
+         Quicktype::sampleQuicktype()
+        );
     }
+}
+
+// This is an autogenerated file:Raise
+
+class Raise {
+    private int $raise; // json:raise Required
 
     /**
-     * @return Serialize
+     * @param int $raise
      */
-    public static function sampleSerialize(): Serialize {
-        return Serialize::sample(); /*61:serialize*/
+    public function __construct(int $raise) {
+        $this->raise = $raise;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Set
+     * @return int
      */
-    public static function fromSet(stdClass $value): Set {
-        return Set::from($value); /*class*/
+    public static function fromRaise(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSet(): stdClass {
-        if (Obj4::validateSet($this->set))  {
-            return $this->set->to(); /*class*/
+    public function toRaise(): int {
+        if (Raise::validateRaise($this->raise))  {
+            return $this->raise; /*int*/
         }
-        throw new Exception('never get to this Obj4::set');
+        throw new Exception('never get to this Raise::raise');
     }
 
     /**
-     * @param Set
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSet(Set $value): bool {
-        $value->validate();
+    public static function validateRaise(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Set
+     * @return int
      */
-    public function getSet(): Set {
-        if (Obj4::validateSet($this->set))  {
-            return $this->set;
+    public function getRaise(): int {
+        if (Raise::validateRaise($this->raise))  {
+            return $this->raise;
         }
-        throw new Exception('never get to getSet Obj4::set');
+        throw new Exception('never get to getRaise Raise::raise');
     }
 
     /**
-     * @return Set
+     * @return int
      */
-    public static function sampleSet(): Set {
-        return Set::sample(); /*62:set*/
+    public static function sampleRaise(): int {
+        return 31; /*31:raise*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Short
+     * @return bool
      */
-    public static function fromShort(stdClass $value): Short {
-        return Short::from($value); /*class*/
+    public function validate(): bool {
+        return Raise::validateRaise($this->raise);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
-     */
-    public function toShort(): stdClass {
-        if (Obj4::validateShort($this->short))  {
-            return $this->short->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::short');
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'raise'} = $this->toRaise();
+        return $out;
     }
 
     /**
-     * @param Short
-     * @return bool
+     * @param stdClass $obj
+     * @return Raise
      * @throws Exception
      */
-    public static function validateShort(Short $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Raise {
+        if (!property_exists($obj, 'raise')) {
+            throw new Exception("Missing required property");
+        }
+        return new Raise(
+         Raise::fromRaise($obj->{'raise'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Short
+     * @return Raise
      */
-    public function getShort(): Short {
-        if (Obj4::validateShort($this->short))  {
-            return $this->short;
-        }
-        throw new Exception('never get to getShort Obj4::short');
+    public static function sample(): Raise {
+        return new Raise(
+         Raise::sampleRaise()
+        );
     }
+}
+
+// This is an autogenerated file:Range
+
+class Range {
+    private int $range; // json:range Required
 
     /**
-     * @return Short
+     * @param int $range
      */
-    public static function sampleShort(): Short {
-        return Short::sample(); /*63:short*/
+    public function __construct(int $range) {
+        $this->range = $range;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Signed
+     * @return int
      */
-    public static function fromSigned(stdClass $value): Signed {
-        return Signed::from($value); /*class*/
+    public static function fromRange(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSigned(): stdClass {
-        if (Obj4::validateSigned($this->signed))  {
-            return $this->signed->to(); /*class*/
+    public function toRange(): int {
+        if (Range::validateRange($this->range))  {
+            return $this->range; /*int*/
         }
-        throw new Exception('never get to this Obj4::signed');
+        throw new Exception('never get to this Range::range');
     }
 
     /**
-     * @param Signed
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSigned(Signed $value): bool {
-        $value->validate();
+    public static function validateRange(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Signed
+     * @return int
      */
-    public function getSigned(): Signed {
-        if (Obj4::validateSigned($this->signed))  {
-            return $this->signed;
+    public function getRange(): int {
+        if (Range::validateRange($this->range))  {
+            return $this->range;
         }
-        throw new Exception('never get to getSigned Obj4::signed');
+        throw new Exception('never get to getRange Range::range');
     }
 
     /**
-     * @return Signed
+     * @return int
      */
-    public static function sampleSigned(): Signed {
-        return Signed::sample(); /*64:signed*/
+    public static function sampleRange(): int {
+        return 31; /*31:range*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Sizeof
+     * @return bool
      */
-    public static function fromSizeof(stdClass $value): Sizeof {
-        return Sizeof::from($value); /*class*/
+    public function validate(): bool {
+        return Range::validateRange($this->range);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSizeof(): stdClass {
-        if (Obj4::validateSizeof($this->sizeof))  {
-            return $this->sizeof->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::sizeof');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'range'} = $this->toRange();
+        return $out;
     }
 
     /**
-     * @param Sizeof
-     * @return bool
+     * @param stdClass $obj
+     * @return Range
      * @throws Exception
      */
-    public static function validateSizeof(Sizeof $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Range {
+        if (!property_exists($obj, 'range')) {
+            throw new Exception("Missing required property");
+        }
+        return new Range(
+         Range::fromRange($obj->{'range'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Sizeof
+     * @return Range
      */
-    public function getSizeof(): Sizeof {
-        if (Obj4::validateSizeof($this->sizeof))  {
-            return $this->sizeof;
-        }
-        throw new Exception('never get to getSizeof Obj4::sizeof');
+    public static function sample(): Range {
+        return new Range(
+         Range::sampleRange()
+        );
     }
+}
+
+// This is an autogenerated file:ReadonlyClass
+
+class ReadonlyClass {
+    private int $readonly; // json:readonly Required
 
     /**
-     * @return Sizeof
+     * @param int $readonly
      */
-    public static function sampleSizeof(): Sizeof {
-        return Sizeof::sample(); /*65:sizeof*/
+    public function __construct(int $readonly) {
+        $this->readonly = $readonly;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Stackalloc
+     * @return int
      */
-    public static function fromStackalloc(stdClass $value): Stackalloc {
-        return Stackalloc::from($value); /*class*/
+    public static function fromReadonly(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toStackalloc(): stdClass {
-        if (Obj4::validateStackalloc($this->stackalloc))  {
-            return $this->stackalloc->to(); /*class*/
+    public function toReadonly(): int {
+        if (ReadonlyClass::validateReadonly($this->readonly))  {
+            return $this->readonly; /*int*/
         }
-        throw new Exception('never get to this Obj4::stackalloc');
+        throw new Exception('never get to this ReadonlyClass::readonly');
     }
 
     /**
-     * @param Stackalloc
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateStackalloc(Stackalloc $value): bool {
-        $value->validate();
+    public static function validateReadonly(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Stackalloc
+     * @return int
      */
-    public function getStackalloc(): Stackalloc {
-        if (Obj4::validateStackalloc($this->stackalloc))  {
-            return $this->stackalloc;
+    public function getReadonly(): int {
+        if (ReadonlyClass::validateReadonly($this->readonly))  {
+            return $this->readonly;
         }
-        throw new Exception('never get to getStackalloc Obj4::stackalloc');
+        throw new Exception('never get to getReadonly ReadonlyClass::readonly');
     }
 
     /**
-     * @return Stackalloc
+     * @return int
      */
-    public static function sampleStackalloc(): Stackalloc {
-        return Stackalloc::sample(); /*66:stackalloc*/
+    public static function sampleReadonly(): int {
+        return 31; /*31:readonly*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Standards
+     * @return bool
      */
-    public static function fromStandards(stdClass $value): Standards {
-        return Standards::from($value); /*class*/
+    public function validate(): bool {
+        return ReadonlyClass::validateReadonly($this->readonly);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStandards(): stdClass {
-        if (Obj4::validateStandards($this->standards))  {
-            return $this->standards->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::standards');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'readonly'} = $this->toReadonly();
+        return $out;
     }
 
     /**
-     * @param Standards
-     * @return bool
+     * @param stdClass $obj
+     * @return ReadonlyClass
      * @throws Exception
      */
-    public static function validateStandards(Standards $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): ReadonlyClass {
+        if (!property_exists($obj, 'readonly')) {
+            throw new Exception("Missing required property");
+        }
+        return new ReadonlyClass(
+         ReadonlyClass::fromReadonly($obj->{'readonly'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Standards
+     * @return ReadonlyClass
      */
-    public function getStandards(): Standards {
-        if (Obj4::validateStandards($this->standards))  {
-            return $this->standards;
-        }
-        throw new Exception('never get to getStandards Obj4::standards');
+    public static function sample(): ReadonlyClass {
+        return new ReadonlyClass(
+         ReadonlyClass::sampleReadonly()
+        );
     }
+}
+
+// This is an autogenerated file:Ref
+
+class Ref {
+    private int $ref; // json:ref Required
 
     /**
-     * @return Standards
+     * @param int $ref
      */
-    public static function sampleStandards(): Standards {
-        return Standards::sample(); /*67:standards*/
+    public function __construct(int $ref) {
+        $this->ref = $ref;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return StaticClass
+     * @return int
      */
-    public static function fromStatic(stdClass $value): StaticClass {
-        return StaticClass::from($value); /*class*/
+    public static function fromRef(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toStatic(): stdClass {
-        if (Obj4::validateStatic($this->static))  {
-            return $this->static->to(); /*class*/
+    public function toRef(): int {
+        if (Ref::validateRef($this->ref))  {
+            return $this->ref; /*int*/
         }
-        throw new Exception('never get to this Obj4::static');
+        throw new Exception('never get to this Ref::ref');
     }
 
     /**
-     * @param StaticClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateStatic(StaticClass $value): bool {
-        $value->validate();
+    public static function validateRef(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StaticClass
+     * @return int
      */
-    public function getStatic(): StaticClass {
-        if (Obj4::validateStatic($this->static))  {
-            return $this->static;
+    public function getRef(): int {
+        if (Ref::validateRef($this->ref))  {
+            return $this->ref;
         }
-        throw new Exception('never get to getStatic Obj4::static');
+        throw new Exception('never get to getRef Ref::ref');
     }
 
     /**
-     * @return StaticClass
+     * @return int
      */
-    public static function sampleStatic(): StaticClass {
-        return StaticClass::sample(); /*68:static*/
+    public static function sampleRef(): int {
+        return 31; /*31:ref*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return StaticAssert
+     * @return bool
      */
-    public static function fromStaticAssert(stdClass $value): StaticAssert {
-        return StaticAssert::from($value); /*class*/
+    public function validate(): bool {
+        return Ref::validateRef($this->ref);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStaticAssert(): stdClass {
-        if (Obj4::validateStaticAssert($this->staticAssert))  {
-            return $this->staticAssert->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::staticAssert');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'ref'} = $this->toRef();
+        return $out;
     }
 
     /**
-     * @param StaticAssert
-     * @return bool
+     * @param stdClass $obj
+     * @return Ref
      * @throws Exception
      */
-    public static function validateStaticAssert(StaticAssert $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Ref {
+        if (!property_exists($obj, 'ref')) {
+            throw new Exception("Missing required property");
+        }
+        return new Ref(
+         Ref::fromRef($obj->{'ref'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return StaticAssert
+     * @return Ref
      */
-    public function getStaticAssert(): StaticAssert {
-        if (Obj4::validateStaticAssert($this->staticAssert))  {
-            return $this->staticAssert;
-        }
-        throw new Exception('never get to getStaticAssert Obj4::staticAssert');
+    public static function sample(): Ref {
+        return new Ref(
+         Ref::sampleRef()
+        );
     }
+}
+
+// This is an autogenerated file:RegExp
+
+class RegExp {
+    private string $regExp; // json:RegExp Required
 
     /**
-     * @return StaticAssert
+     * @param string $regExp
      */
-    public static function sampleStaticAssert(): StaticAssert {
-        return StaticAssert::sample(); /*69:staticAssert*/
+    public function __construct(string $regExp) {
+        $this->regExp = $regExp;
     }
 
     /**
-     * @param stdClass $value
+     * @param string $value
      * @throws Exception
-     * @return StaticCast
+     * @return string
      */
-    public static function fromStaticCast(stdClass $value): StaticCast {
-        return StaticCast::from($value); /*class*/
+    public static function fromRegExp(string $value): string {
+        return $value; /*uuid*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return string
      */
-    public function toStaticCast(): stdClass {
-        if (Obj4::validateStaticCast($this->staticCast))  {
-            return $this->staticCast->to(); /*class*/
+    public function toRegExp(): string {
+        if (RegExp::validateRegExp($this->regExp))  {
+            return $this->regExp; /*uuid*/
         }
-        throw new Exception('never get to this Obj4::staticCast');
+        throw new Exception('never get to this RegExp::regExp');
     }
 
     /**
-     * @param StaticCast
+     * @param string
      * @return bool
      * @throws Exception
      */
-    public static function validateStaticCast(StaticCast $value): bool {
-        $value->validate();
+    public static function validateRegExp(string $value): bool {
+        if (!preg_match('/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/', $value)) {
+            throw new Exception("Attribute Error:RegExp::regExp");
+        }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StaticCast
+     * @return string
      */
-    public function getStaticCast(): StaticCast {
-        if (Obj4::validateStaticCast($this->staticCast))  {
-            return $this->staticCast;
+    public function getRegExp(): string {
+        if (RegExp::validateRegExp($this->regExp))  {
+            return $this->regExp;
         }
-        throw new Exception('never get to getStaticCast Obj4::staticCast');
+        throw new Exception('never get to getRegExp RegExp::regExp');
     }
 
     /**
-     * @return StaticCast
+     * @return string
      */
-    public static function sampleStaticCast(): StaticCast {
-        return StaticCast::sample(); /*70:staticCast*/
+    public static function sampleRegExp(): string {
+        return '9277b8fb-2a65-4663-a36c-8d417e2d284b'; /*31:regExp*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Strictfp
+     * @return bool
      */
-    public static function fromStrictfp(stdClass $value): Strictfp {
-        return Strictfp::from($value); /*class*/
+    public function validate(): bool {
+        return RegExp::validateRegExp($this->regExp);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStrictfp(): stdClass {
-        if (Obj4::validateStrictfp($this->strictfp))  {
-            return $this->strictfp->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::strictfp');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'RegExp'} = $this->toRegExp();
+        return $out;
     }
 
     /**
-     * @param Strictfp
-     * @return bool
+     * @param stdClass $obj
+     * @return RegExp
      * @throws Exception
      */
-    public static function validateStrictfp(Strictfp $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): RegExp {
+        if (!property_exists($obj, 'RegExp')) {
+            throw new Exception("Missing required property");
+        }
+        return new RegExp(
+         RegExp::fromRegExp($obj->{'RegExp'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Strictfp
+     * @return RegExp
      */
-    public function getStrictfp(): Strictfp {
-        if (Obj4::validateStrictfp($this->strictfp))  {
-            return $this->strictfp;
-        }
-        throw new Exception('never get to getStrictfp Obj4::strictfp');
+    public static function sample(): RegExp {
+        return new RegExp(
+         RegExp::sampleRegExp()
+        );
     }
+}
+
+// This is an autogenerated file:Register
+
+class Register {
+    private int $register; // json:register Required
 
     /**
-     * @return Strictfp
+     * @param int $register
      */
-    public static function sampleStrictfp(): Strictfp {
-        return Strictfp::sample(); /*71:strictfp*/
+    public function __construct(int $register) {
+        $this->register = $register;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return StringClass
+     * @return int
      */
-    public static function fromString(stdClass $value): StringClass {
-        return StringClass::from($value); /*class*/
+    public static function fromRegister(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function purpleToString(): stdClass {
-        if (Obj4::validateString($this->string))  {
-            return $this->string->to(); /*class*/
+    public function toRegister(): int {
+        if (Register::validateRegister($this->register))  {
+            return $this->register; /*int*/
         }
-        throw new Exception('never get to this Obj4::string');
+        throw new Exception('never get to this Register::register');
     }
 
     /**
-     * @param StringClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateString(StringClass $value): bool {
-        $value->validate();
+    public static function validateRegister(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StringClass
+     * @return int
      */
-    public function getString(): StringClass {
-        if (Obj4::validateString($this->string))  {
-            return $this->string;
+    public function getRegister(): int {
+        if (Register::validateRegister($this->register))  {
+            return $this->register;
         }
-        throw new Exception('never get to getString Obj4::string');
+        throw new Exception('never get to getRegister Register::register');
     }
 
     /**
-     * @return StringClass
+     * @return int
      */
-    public static function sampleString(): StringClass {
-        return StringClass::sample(); /*72:string*/
+    public static function sampleRegister(): int {
+        return 31; /*31:register*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Struct
+     * @return bool
      */
-    public static function fromStruct(stdClass $value): Struct {
-        return Struct::from($value); /*class*/
+    public function validate(): bool {
+        return Register::validateRegister($this->register);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toStruct(): stdClass {
-        if (Obj4::validateStruct($this->struct))  {
-            return $this->struct->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::struct');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'register'} = $this->toRegister();
+        return $out;
     }
 
     /**
-     * @param Struct
-     * @return bool
+     * @param stdClass $obj
+     * @return Register
      * @throws Exception
      */
-    public static function validateStruct(Struct $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Register {
+        if (!property_exists($obj, 'register')) {
+            throw new Exception("Missing required property");
+        }
+        return new Register(
+         Register::fromRegister($obj->{'register'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Struct
+     * @return Register
      */
-    public function getStruct(): Struct {
-        if (Obj4::validateStruct($this->struct))  {
-            return $this->struct;
-        }
-        throw new Exception('never get to getStruct Obj4::struct');
+    public static function sample(): Register {
+        return new Register(
+         Register::sampleRegister()
+        );
     }
+}
+
+// This is an autogenerated file:ReinterpretCast
+
+class ReinterpretCast {
+    private int $reinterpretCast; // json:reinterpret_cast Required
 
     /**
-     * @return Struct
+     * @param int $reinterpretCast
      */
-    public static function sampleStruct(): Struct {
-        return Struct::sample(); /*73:struct*/
+    public function __construct(int $reinterpretCast) {
+        $this->reinterpretCast = $reinterpretCast;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Subscript
+     * @return int
      */
-    public static function fromSubscript(stdClass $value): Subscript {
-        return Subscript::from($value); /*class*/
+    public static function fromReinterpretCast(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSubscript(): stdClass {
-        if (Obj4::validateSubscript($this->subscript))  {
-            return $this->subscript->to(); /*class*/
+    public function toReinterpretCast(): int {
+        if (ReinterpretCast::validateReinterpretCast($this->reinterpretCast))  {
+            return $this->reinterpretCast; /*int*/
         }
-        throw new Exception('never get to this Obj4::subscript');
+        throw new Exception('never get to this ReinterpretCast::reinterpretCast');
     }
 
     /**
-     * @param Subscript
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSubscript(Subscript $value): bool {
-        $value->validate();
+    public static function validateReinterpretCast(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Subscript
+     * @return int
      */
-    public function getSubscript(): Subscript {
-        if (Obj4::validateSubscript($this->subscript))  {
-            return $this->subscript;
+    public function getReinterpretCast(): int {
+        if (ReinterpretCast::validateReinterpretCast($this->reinterpretCast))  {
+            return $this->reinterpretCast;
         }
-        throw new Exception('never get to getSubscript Obj4::subscript');
+        throw new Exception('never get to getReinterpretCast ReinterpretCast::reinterpretCast');
     }
 
     /**
-     * @return Subscript
+     * @return int
      */
-    public static function sampleSubscript(): Subscript {
-        return Subscript::sample(); /*74:subscript*/
+    public static function sampleReinterpretCast(): int {
+        return 31; /*31:reinterpretCast*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Super
+     * @return bool
      */
-    public static function fromSuper(stdClass $value): Super {
-        return Super::from($value); /*class*/
+    public function validate(): bool {
+        return ReinterpretCast::validateReinterpretCast($this->reinterpretCast);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSuper(): stdClass {
-        if (Obj4::validateSuper($this->super))  {
-            return $this->super->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::super');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
+        return $out;
     }
 
     /**
-     * @param Super
-     * @return bool
+     * @param stdClass $obj
+     * @return ReinterpretCast
      * @throws Exception
      */
-    public static function validateSuper(Super $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): ReinterpretCast {
+        if (!property_exists($obj, 'reinterpret_cast')) {
+            throw new Exception("Missing required property");
+        }
+        return new ReinterpretCast(
+         ReinterpretCast::fromReinterpretCast($obj->{'reinterpret_cast'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Super
+     * @return ReinterpretCast
      */
-    public function getSuper(): Super {
-        if (Obj4::validateSuper($this->super))  {
-            return $this->super;
-        }
-        throw new Exception('never get to getSuper Obj4::super');
+    public static function sample(): ReinterpretCast {
+        return new ReinterpretCast(
+         ReinterpretCast::sampleReinterpretCast()
+        );
     }
+}
+
+// This is an autogenerated file:Repeat
+
+class Repeat {
+    private int $repeat; // json:repeat Required
 
     /**
-     * @return Super
+     * @param int $repeat
      */
-    public static function sampleSuper(): Super {
-        return Super::sample(); /*75:super*/
+    public function __construct(int $repeat) {
+        $this->repeat = $repeat;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return SwitchClass
+     * @return int
      */
-    public static function fromSwitch(stdClass $value): SwitchClass {
-        return SwitchClass::from($value); /*class*/
+    public static function fromRepeat(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSwitch(): stdClass {
-        if (Obj4::validateSwitch($this->switch))  {
-            return $this->switch->to(); /*class*/
+    public function toRepeat(): int {
+        if (Repeat::validateRepeat($this->repeat))  {
+            return $this->repeat; /*int*/
         }
-        throw new Exception('never get to this Obj4::switch');
+        throw new Exception('never get to this Repeat::repeat');
     }
 
     /**
-     * @param SwitchClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSwitch(SwitchClass $value): bool {
-        $value->validate();
+    public static function validateRepeat(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SwitchClass
+     * @return int
      */
-    public function getSwitch(): SwitchClass {
-        if (Obj4::validateSwitch($this->switch))  {
-            return $this->switch;
+    public function getRepeat(): int {
+        if (Repeat::validateRepeat($this->repeat))  {
+            return $this->repeat;
         }
-        throw new Exception('never get to getSwitch Obj4::switch');
+        throw new Exception('never get to getRepeat Repeat::repeat');
     }
 
     /**
-     * @return SwitchClass
+     * @return int
      */
-    public static function sampleSwitch(): SwitchClass {
-        return SwitchClass::sample(); /*76:switch*/
+    public static function sampleRepeat(): int {
+        return 31; /*31:repeat*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Symbol
+     * @return bool
      */
-    public static function fromSymbol(stdClass $value): Symbol {
-        return Symbol::from($value); /*class*/
+    public function validate(): bool {
+        return Repeat::validateRepeat($this->repeat);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSymbol(): stdClass {
-        if (Obj4::validateSymbol($this->symbol))  {
-            return $this->symbol->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::symbol');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'repeat'} = $this->toRepeat();
+        return $out;
     }
 
     /**
-     * @param Symbol
-     * @return bool
+     * @param stdClass $obj
+     * @return Repeat
      * @throws Exception
      */
-    public static function validateSymbol(Symbol $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Repeat {
+        if (!property_exists($obj, 'repeat')) {
+            throw new Exception("Missing required property");
+        }
+        return new Repeat(
+         Repeat::fromRepeat($obj->{'repeat'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Symbol
+     * @return Repeat
      */
-    public function getSymbol(): Symbol {
-        if (Obj4::validateSymbol($this->symbol))  {
-            return $this->symbol;
-        }
-        throw new Exception('never get to getSymbol Obj4::symbol');
+    public static function sample(): Repeat {
+        return new Repeat(
+         Repeat::sampleRepeat()
+        );
     }
+}
+
+// This is an autogenerated file:RequireClass
+
+class RequireClass {
+    private int $require; // json:require Required
 
     /**
-     * @return Symbol
+     * @param int $require
      */
-    public static function sampleSymbol(): Symbol {
-        return Symbol::sample(); /*77:symbol*/
+    public function __construct(int $require) {
+        $this->require = $require;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Synchronized
+     * @return int
      */
-    public static function fromSynchronized(stdClass $value): Synchronized {
-        return Synchronized::from($value); /*class*/
+    public static function fromRequire(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toSynchronized(): stdClass {
-        if (Obj4::validateSynchronized($this->synchronized))  {
-            return $this->synchronized->to(); /*class*/
+    public function toRequire(): int {
+        if (RequireClass::validateRequire($this->require))  {
+            return $this->require; /*int*/
         }
-        throw new Exception('never get to this Obj4::synchronized');
+        throw new Exception('never get to this RequireClass::require');
     }
 
     /**
-     * @param Synchronized
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateSynchronized(Synchronized $value): bool {
-        $value->validate();
+    public static function validateRequire(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Synchronized
+     * @return int
      */
-    public function getSynchronized(): Synchronized {
-        if (Obj4::validateSynchronized($this->synchronized))  {
-            return $this->synchronized;
+    public function getRequire(): int {
+        if (RequireClass::validateRequire($this->require))  {
+            return $this->require;
         }
-        throw new Exception('never get to getSynchronized Obj4::synchronized');
+        throw new Exception('never get to getRequire RequireClass::require');
     }
 
     /**
-     * @return Synchronized
+     * @return int
      */
-    public static function sampleSynchronized(): Synchronized {
-        return Synchronized::sample(); /*78:synchronized*/
+    public static function sampleRequire(): int {
+        return 31; /*31:require*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return System
+     * @return bool
      */
-    public static function fromSystem(stdClass $value): System {
-        return System::from($value); /*class*/
+    public function validate(): bool {
+        return RequireClass::validateRequire($this->require);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toSystem(): stdClass {
-        if (Obj4::validateSystem($this->system))  {
-            return $this->system->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::system');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'require'} = $this->toRequire();
+        return $out;
     }
 
     /**
-     * @param System
-     * @return bool
+     * @param stdClass $obj
+     * @return RequireClass
      * @throws Exception
      */
-    public static function validateSystem(System $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): RequireClass {
+        if (!property_exists($obj, 'require')) {
+            throw new Exception("Missing required property");
+        }
+        return new RequireClass(
+         RequireClass::fromRequire($obj->{'require'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return System
+     * @return RequireClass
      */
-    public function getSystem(): System {
-        if (Obj4::validateSystem($this->system))  {
-            return $this->system;
-        }
-        throw new Exception('never get to getSystem Obj4::system');
+    public static function sample(): RequireClass {
+        return new RequireClass(
+         RequireClass::sampleRequire()
+        );
     }
+}
+
+// This is an autogenerated file:Required
+
+class Required {
+    private int $required; // json:required Required
 
     /**
-     * @return System
+     * @param int $required
      */
-    public static function sampleSystem(): System {
-        return System::sample(); /*79:system*/
+    public function __construct(int $required) {
+        $this->required = $required;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Template
+     * @return int
      */
-    public static function fromTemplate(stdClass $value): Template {
-        return Template::from($value); /*class*/
+    public static function fromRequired(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTemplate(): stdClass {
-        if (Obj4::validateTemplate($this->template))  {
-            return $this->template->to(); /*class*/
+    public function toRequired(): int {
+        if (Required::validateRequired($this->required))  {
+            return $this->required; /*int*/
         }
-        throw new Exception('never get to this Obj4::template');
+        throw new Exception('never get to this Required::required');
     }
 
     /**
-     * @param Template
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTemplate(Template $value): bool {
-        $value->validate();
+    public static function validateRequired(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Template
+     * @return int
      */
-    public function getTemplate(): Template {
-        if (Obj4::validateTemplate($this->template))  {
-            return $this->template;
+    public function getRequired(): int {
+        if (Required::validateRequired($this->required))  {
+            return $this->required;
         }
-        throw new Exception('never get to getTemplate Obj4::template');
+        throw new Exception('never get to getRequired Required::required');
     }
 
     /**
-     * @return Template
+     * @return int
      */
-    public static function sampleTemplate(): Template {
-        return Template::sample(); /*80:template*/
+    public static function sampleRequired(): int {
+        return 31; /*31:required*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Then
+     * @return bool
      */
-    public static function fromThen(stdClass $value): Then {
-        return Then::from($value); /*class*/
+    public function validate(): bool {
+        return Required::validateRequired($this->required);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toThen(): stdClass {
-        if (Obj4::validateThen($this->then))  {
-            return $this->then->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::then');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'required'} = $this->toRequired();
+        return $out;
     }
 
     /**
-     * @param Then
-     * @return bool
+     * @param stdClass $obj
+     * @return Required
      * @throws Exception
      */
-    public static function validateThen(Then $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Required {
+        if (!property_exists($obj, 'required')) {
+            throw new Exception("Missing required property");
+        }
+        return new Required(
+         Required::fromRequired($obj->{'required'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Then
+     * @return Required
      */
-    public function getThen(): Then {
-        if (Obj4::validateThen($this->then))  {
-            return $this->then;
-        }
-        throw new Exception('never get to getThen Obj4::then');
+    public static function sample(): Required {
+        return new Required(
+         Required::sampleRequired()
+        );
     }
+}
+
+// This is an autogenerated file:Requires
+
+class Requires {
+    private int $requires; // json:requires Required
 
     /**
-     * @return Then
+     * @param int $requires
      */
-    public static function sampleThen(): Then {
-        return Then::sample(); /*81:then*/
+    public function __construct(int $requires) {
+        $this->requires = $requires;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return ThreadLocal
+     * @return int
      */
-    public static function fromThreadLocal(stdClass $value): ThreadLocal {
-        return ThreadLocal::from($value); /*class*/
+    public static function fromRequires(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toThreadLocal(): stdClass {
-        if (Obj4::validateThreadLocal($this->threadLocal))  {
-            return $this->threadLocal->to(); /*class*/
+    public function toRequires(): int {
+        if (Requires::validateRequires($this->requires))  {
+            return $this->requires; /*int*/
         }
-        throw new Exception('never get to this Obj4::threadLocal');
+        throw new Exception('never get to this Requires::requires');
     }
 
     /**
-     * @param ThreadLocal
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateThreadLocal(ThreadLocal $value): bool {
-        $value->validate();
+    public static function validateRequires(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ThreadLocal
+     * @return int
      */
-    public function getThreadLocal(): ThreadLocal {
-        if (Obj4::validateThreadLocal($this->threadLocal))  {
-            return $this->threadLocal;
+    public function getRequires(): int {
+        if (Requires::validateRequires($this->requires))  {
+            return $this->requires;
         }
-        throw new Exception('never get to getThreadLocal Obj4::threadLocal');
+        throw new Exception('never get to getRequires Requires::requires');
     }
 
     /**
-     * @return ThreadLocal
+     * @return int
      */
-    public static function sampleThreadLocal(): ThreadLocal {
-        return ThreadLocal::sample(); /*82:threadLocal*/
+    public static function sampleRequires(): int {
+        return 31; /*31:requires*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return ThrowClass
+     * @return bool
      */
-    public static function fromThrow(stdClass $value): ThrowClass {
-        return ThrowClass::from($value); /*class*/
+    public function validate(): bool {
+        return Requires::validateRequires($this->requires);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toThrow(): stdClass {
-        if (Obj4::validateThrow($this->throw))  {
-            return $this->throw->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::throw');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'requires'} = $this->toRequires();
+        return $out;
     }
 
     /**
-     * @param ThrowClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Requires
      * @throws Exception
      */
-    public static function validateThrow(ThrowClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Requires {
+        if (!property_exists($obj, 'requires')) {
+            throw new Exception("Missing required property");
+        }
+        return new Requires(
+         Requires::fromRequires($obj->{'requires'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return ThrowClass
+     * @return Requires
      */
-    public function getThrow(): ThrowClass {
-        if (Obj4::validateThrow($this->throw))  {
-            return $this->throw;
-        }
-        throw new Exception('never get to getThrow Obj4::throw');
+    public static function sample(): Requires {
+        return new Requires(
+         Requires::sampleRequires()
+        );
     }
+}
+
+// This is an autogenerated file:Restrict
+
+class Restrict {
+    private int $restrict; // json:restrict Required
 
     /**
-     * @return ThrowClass
+     * @param int $restrict
      */
-    public static function sampleThrow(): ThrowClass {
-        return ThrowClass::sample(); /*83:throw*/
+    public function __construct(int $restrict) {
+        $this->restrict = $restrict;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Throws
+     * @return int
      */
-    public static function fromThrows(stdClass $value): Throws {
-        return Throws::from($value); /*class*/
+    public static function fromRestrict(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toThrows(): stdClass {
-        if (Obj4::validateThrows($this->throws))  {
-            return $this->throws->to(); /*class*/
+    public function toRestrict(): int {
+        if (Restrict::validateRestrict($this->restrict))  {
+            return $this->restrict; /*int*/
         }
-        throw new Exception('never get to this Obj4::throws');
+        throw new Exception('never get to this Restrict::restrict');
     }
 
     /**
-     * @param Throws
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateThrows(Throws $value): bool {
-        $value->validate();
+    public static function validateRestrict(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Throws
+     * @return int
      */
-    public function getThrows(): Throws {
-        if (Obj4::validateThrows($this->throws))  {
-            return $this->throws;
+    public function getRestrict(): int {
+        if (Restrict::validateRestrict($this->restrict))  {
+            return $this->restrict;
         }
-        throw new Exception('never get to getThrows Obj4::throws');
+        throw new Exception('never get to getRestrict Restrict::restrict');
     }
 
     /**
-     * @return Throws
+     * @return int
      */
-    public static function sampleThrows(): Throws {
-        return Throws::sample(); /*84:throws*/
+    public static function sampleRestrict(): int {
+        return 31; /*31:restrict*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return TimeOnly
+     * @return bool
      */
-    public static function fromTimeOnly(stdClass $value): TimeOnly {
-        return TimeOnly::from($value); /*class*/
+    public function validate(): bool {
+        return Restrict::validateRestrict($this->restrict);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toTimeOnly(): stdClass {
-        if (Obj4::validateTimeOnly($this->timeOnly))  {
-            return $this->timeOnly->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::timeOnly');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'restrict'} = $this->toRestrict();
+        return $out;
     }
 
     /**
-     * @param TimeOnly
-     * @return bool
+     * @param stdClass $obj
+     * @return Restrict
      * @throws Exception
      */
-    public static function validateTimeOnly(TimeOnly $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Restrict {
+        if (!property_exists($obj, 'restrict')) {
+            throw new Exception("Missing required property");
+        }
+        return new Restrict(
+         Restrict::fromRestrict($obj->{'restrict'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return TimeOnly
+     * @return Restrict
      */
-    public function getTimeOnly(): TimeOnly {
-        if (Obj4::validateTimeOnly($this->timeOnly))  {
-            return $this->timeOnly;
-        }
-        throw new Exception('never get to getTimeOnly Obj4::timeOnly');
+    public static function sample(): Restrict {
+        return new Restrict(
+         Restrict::sampleRestrict()
+        );
     }
+}
+
+// This is an autogenerated file:Retain
+
+class Retain {
+    private int $retain; // json:retain Required
 
     /**
-     * @return TimeOnly
+     * @param int $retain
      */
-    public static function sampleTimeOnly(): TimeOnly {
-        return TimeOnly::sample(); /*85:timeOnly*/
+    public function __construct(int $retain) {
+        $this->retain = $retain;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return TimeOnlyConverter
+     * @return int
      */
-    public static function fromTimeOnlyConverter(stdClass $value): TimeOnlyConverter {
-        return TimeOnlyConverter::from($value); /*class*/
+    public static function fromRetain(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTimeOnlyConverter(): stdClass {
-        if (Obj4::validateTimeOnlyConverter($this->timeOnlyConverter))  {
-            return $this->timeOnlyConverter->to(); /*class*/
+    public function toRetain(): int {
+        if (Retain::validateRetain($this->retain))  {
+            return $this->retain; /*int*/
         }
-        throw new Exception('never get to this Obj4::timeOnlyConverter');
+        throw new Exception('never get to this Retain::retain');
     }
 
     /**
-     * @param TimeOnlyConverter
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTimeOnlyConverter(TimeOnlyConverter $value): bool {
-        $value->validate();
+    public static function validateRetain(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TimeOnlyConverter
+     * @return int
      */
-    public function getTimeOnlyConverter(): TimeOnlyConverter {
-        if (Obj4::validateTimeOnlyConverter($this->timeOnlyConverter))  {
-            return $this->timeOnlyConverter;
+    public function getRetain(): int {
+        if (Retain::validateRetain($this->retain))  {
+            return $this->retain;
         }
-        throw new Exception('never get to getTimeOnlyConverter Obj4::timeOnlyConverter');
+        throw new Exception('never get to getRetain Retain::retain');
     }
 
     /**
-     * @return TimeOnlyConverter
+     * @return int
      */
-    public static function sampleTimeOnlyConverter(): TimeOnlyConverter {
-        return TimeOnlyConverter::sample(); /*86:timeOnlyConverter*/
+    public static function sampleRetain(): int {
+        return 31; /*31:retain*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return ToJSON
+     * @return bool
      */
-    public static function fromToJSON(stdClass $value): ToJSON {
-        return ToJSON::from($value); /*class*/
+    public function validate(): bool {
+        return Retain::validateRetain($this->retain);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toToJSON(): stdClass {
-        if (Obj4::validateToJSON($this->toJSON))  {
-            return $this->toJSON->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::toJSON');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'retain'} = $this->toRetain();
+        return $out;
     }
 
     /**
-     * @param ToJSON
-     * @return bool
+     * @param stdClass $obj
+     * @return Retain
      * @throws Exception
      */
-    public static function validateToJSON(ToJSON $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Retain {
+        if (!property_exists($obj, 'retain')) {
+            throw new Exception("Missing required property");
+        }
+        return new Retain(
+         Retain::fromRetain($obj->{'retain'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return ToJSON
+     * @return Retain
      */
-    public function getToJSON(): ToJSON {
-        if (Obj4::validateToJSON($this->toJSON))  {
-            return $this->toJSON;
-        }
-        throw new Exception('never get to getToJSON Obj4::toJSON');
+    public static function sample(): Retain {
+        return new Retain(
+         Retain::sampleRetain()
+        );
     }
+}
+
+// This is an autogenerated file:Rethrows
+
+class Rethrows {
+    private int $rethrows; // json:rethrows Required
 
     /**
-     * @return ToJSON
+     * @param int $rethrows
      */
-    public static function sampleToJSON(): ToJSON {
-        return ToJSON::sample(); /*87:toJSON*/
+    public function __construct(int $rethrows) {
+        $this->rethrows = $rethrows;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return ToString
+     * @return int
      */
-    public static function fromToString(stdClass $value): ToString {
-        return ToString::from($value); /*class*/
+    public static function fromRethrows(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toToString(): stdClass {
-        if (Obj4::validateToString($this->toString))  {
-            return $this->toString->to(); /*class*/
+    public function toRethrows(): int {
+        if (Rethrows::validateRethrows($this->rethrows))  {
+            return $this->rethrows; /*int*/
         }
-        throw new Exception('never get to this Obj4::toString');
+        throw new Exception('never get to this Rethrows::rethrows');
     }
 
     /**
-     * @param ToString
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateToString(ToString $value): bool {
-        $value->validate();
+    public static function validateRethrows(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ToString
+     * @return int
      */
-    public function getToString(): ToString {
-        if (Obj4::validateToString($this->toString))  {
-            return $this->toString;
+    public function getRethrows(): int {
+        if (Rethrows::validateRethrows($this->rethrows))  {
+            return $this->rethrows;
         }
-        throw new Exception('never get to getToString Obj4::toString');
+        throw new Exception('never get to getRethrows Rethrows::rethrows');
     }
 
     /**
-     * @return ToString
+     * @return int
      */
-    public static function sampleToString(): ToString {
-        return ToString::sample(); /*88:toString*/
+    public static function sampleRethrows(): int {
+        return 31; /*31:rethrows*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return TopLevelClass
+     * @return bool
      */
-    public static function fromTopLevel(stdClass $value): TopLevelClass {
-        return TopLevelClass::from($value); /*class*/
+    public function validate(): bool {
+        return Rethrows::validateRethrows($this->rethrows);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toTopLevel(): stdClass {
-        if (Obj4::validateTopLevel($this->topLevel))  {
-            return $this->topLevel->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::topLevel');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'rethrows'} = $this->toRethrows();
+        return $out;
     }
 
     /**
-     * @param TopLevelClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Rethrows
      * @throws Exception
      */
-    public static function validateTopLevel(TopLevelClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Rethrows {
+        if (!property_exists($obj, 'rethrows')) {
+            throw new Exception("Missing required property");
+        }
+        return new Rethrows(
+         Rethrows::fromRethrows($obj->{'rethrows'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return TopLevelClass
+     * @return Rethrows
      */
-    public function getTopLevel(): TopLevelClass {
-        if (Obj4::validateTopLevel($this->topLevel))  {
-            return $this->topLevel;
-        }
-        throw new Exception('never get to getTopLevel Obj4::topLevel');
+    public static function sample(): Rethrows {
+        return new Rethrows(
+         Rethrows::sampleRethrows()
+        );
     }
+}
+
+// This is an autogenerated file:ReturnClass
+
+class ReturnClass {
+    private int $return; // json:return Required
 
     /**
-     * @return TopLevelClass
+     * @param int $return
      */
-    public static function sampleTopLevel(): TopLevelClass {
-        return TopLevelClass::sample(); /*89:topLevel*/
+    public function __construct(int $return) {
+        $this->return = $return;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Transient
+     * @return int
      */
-    public static function fromTransient(stdClass $value): Transient {
-        return Transient::from($value); /*class*/
+    public static function fromReturn(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTransient(): stdClass {
-        if (Obj4::validateTransient($this->transient))  {
-            return $this->transient->to(); /*class*/
+    public function toReturn(): int {
+        if (ReturnClass::validateReturn($this->return))  {
+            return $this->return; /*int*/
         }
-        throw new Exception('never get to this Obj4::transient');
+        throw new Exception('never get to this ReturnClass::return');
     }
 
     /**
-     * @param Transient
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTransient(Transient $value): bool {
-        $value->validate();
+    public static function validateReturn(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Transient
+     * @return int
      */
-    public function getTransient(): Transient {
-        if (Obj4::validateTransient($this->transient))  {
-            return $this->transient;
+    public function getReturn(): int {
+        if (ReturnClass::validateReturn($this->return))  {
+            return $this->return;
         }
-        throw new Exception('never get to getTransient Obj4::transient');
+        throw new Exception('never get to getReturn ReturnClass::return');
     }
 
     /**
-     * @return Transient
+     * @return int
      */
-    public static function sampleTransient(): Transient {
-        return Transient::sample(); /*90:transient*/
+    public static function sampleReturn(): int {
+        return 31; /*31:return*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return TrueClass
+     * @return bool
      */
-    public static function fromTrue(stdClass $value): TrueClass {
-        return TrueClass::from($value); /*class*/
+    public function validate(): bool {
+        return ReturnClass::validateReturn($this->return);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toTrue(): stdClass {
-        if (Obj4::validateTrue($this->true))  {
-            return $this->true->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::true');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'return'} = $this->toReturn();
+        return $out;
     }
 
     /**
-     * @param TrueClass
-     * @return bool
+     * @param stdClass $obj
+     * @return ReturnClass
      * @throws Exception
      */
-    public static function validateTrue(TrueClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): ReturnClass {
+        if (!property_exists($obj, 'return')) {
+            throw new Exception("Missing required property");
+        }
+        return new ReturnClass(
+         ReturnClass::fromReturn($obj->{'return'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return TrueClass
+     * @return ReturnClass
      */
-    public function getTrue(): TrueClass {
-        if (Obj4::validateTrue($this->true))  {
-            return $this->true;
-        }
-        throw new Exception('never get to getTrue Obj4::true');
+    public static function sample(): ReturnClass {
+        return new ReturnClass(
+         ReturnClass::sampleReturn()
+        );
     }
+}
+
+// This is an autogenerated file:Right
+
+class Right {
+    private int $right; // json:right Required
 
     /**
-     * @return TrueClass
+     * @param int $right
      */
-    public static function sampleTrue(): TrueClass {
-        return TrueClass::sample(); /*91:true*/
+    public function __construct(int $right) {
+        $this->right = $right;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return TryClass
+     * @return int
      */
-    public static function fromTry(stdClass $value): TryClass {
-        return TryClass::from($value); /*class*/
+    public static function fromRight(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTry(): stdClass {
-        if (Obj4::validateTry($this->try))  {
-            return $this->try->to(); /*class*/
+    public function toRight(): int {
+        if (Right::validateRight($this->right))  {
+            return $this->right; /*int*/
         }
-        throw new Exception('never get to this Obj4::try');
+        throw new Exception('never get to this Right::right');
     }
 
     /**
-     * @param TryClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTry(TryClass $value): bool {
-        $value->validate();
+    public static function validateRight(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TryClass
+     * @return int
      */
-    public function getTry(): TryClass {
-        if (Obj4::validateTry($this->try))  {
-            return $this->try;
+    public function getRight(): int {
+        if (Right::validateRight($this->right))  {
+            return $this->right;
         }
-        throw new Exception('never get to getTry Obj4::try');
+        throw new Exception('never get to getRight Right::right');
     }
 
     /**
-     * @return TryClass
+     * @return int
      */
-    public static function sampleTry(): TryClass {
-        return TryClass::sample(); /*92:try*/
+    public static function sampleRight(): int {
+        return 31; /*31:right*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Type
+     * @return bool
      */
-    public static function fromType(stdClass $value): Type {
-        return Type::from($value); /*class*/
+    public function validate(): bool {
+        return Right::validateRight($this->right);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toType(): stdClass {
-        if (Obj4::validateType($this->type))  {
-            return $this->type->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::type');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'right'} = $this->toRight();
+        return $out;
     }
 
     /**
-     * @param Type
-     * @return bool
+     * @param stdClass $obj
+     * @return Right
      * @throws Exception
      */
-    public static function validateType(Type $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Right {
+        if (!property_exists($obj, 'right')) {
+            throw new Exception("Missing required property");
+        }
+        return new Right(
+         Right::fromRight($obj->{'right'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Type
+     * @return Right
      */
-    public function getType(): Type {
-        if (Obj4::validateType($this->type))  {
-            return $this->type;
-        }
-        throw new Exception('never get to getType Obj4::type');
+    public static function sample(): Right {
+        return new Right(
+         Right::sampleRight()
+        );
     }
+}
+
+// This is an autogenerated file:RuntimeType
+
+class RuntimeType {
+    private int $runtimeType; // json:runtimeType Required
 
     /**
-     * @return Type
+     * @param int $runtimeType
      */
-    public static function sampleType(): Type {
-        return Type::sample(); /*93:type*/
+    public function __construct(int $runtimeType) {
+        $this->runtimeType = $runtimeType;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Typealias
+     * @return int
      */
-    public static function fromTypealias(stdClass $value): Typealias {
-        return Typealias::from($value); /*class*/
+    public static function fromRuntimeType(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTypealias(): stdClass {
-        if (Obj4::validateTypealias($this->typealias))  {
-            return $this->typealias->to(); /*class*/
+    public function toRuntimeType(): int {
+        if (RuntimeType::validateRuntimeType($this->runtimeType))  {
+            return $this->runtimeType; /*int*/
         }
-        throw new Exception('never get to this Obj4::typealias');
+        throw new Exception('never get to this RuntimeType::runtimeType');
     }
 
     /**
-     * @param Typealias
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTypealias(Typealias $value): bool {
-        $value->validate();
+    public static function validateRuntimeType(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typealias
+     * @return int
      */
-    public function getTypealias(): Typealias {
-        if (Obj4::validateTypealias($this->typealias))  {
-            return $this->typealias;
+    public function getRuntimeType(): int {
+        if (RuntimeType::validateRuntimeType($this->runtimeType))  {
+            return $this->runtimeType;
         }
-        throw new Exception('never get to getTypealias Obj4::typealias');
+        throw new Exception('never get to getRuntimeType RuntimeType::runtimeType');
     }
 
     /**
-     * @return Typealias
+     * @return int
      */
-    public static function sampleTypealias(): Typealias {
-        return Typealias::sample(); /*94:typealias*/
+    public static function sampleRuntimeType(): int {
+        return 31; /*31:runtimeType*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Typedef
+     * @return bool
      */
-    public static function fromTypedef(stdClass $value): Typedef {
-        return Typedef::from($value); /*class*/
+    public function validate(): bool {
+        return RuntimeType::validateRuntimeType($this->runtimeType);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toTypedef(): stdClass {
-        if (Obj4::validateTypedef($this->typedef))  {
-            return $this->typedef->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::typedef');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'runtimeType'} = $this->toRuntimeType();
+        return $out;
     }
 
     /**
-     * @param Typedef
-     * @return bool
+     * @param stdClass $obj
+     * @return RuntimeType
      * @throws Exception
      */
-    public static function validateTypedef(Typedef $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): RuntimeType {
+        if (!property_exists($obj, 'runtimeType')) {
+            throw new Exception("Missing required property");
+        }
+        return new RuntimeType(
+         RuntimeType::fromRuntimeType($obj->{'runtimeType'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Typedef
+     * @return RuntimeType
      */
-    public function getTypedef(): Typedef {
-        if (Obj4::validateTypedef($this->typedef))  {
-            return $this->typedef;
-        }
-        throw new Exception('never get to getTypedef Obj4::typedef');
+    public static function sample(): RuntimeType {
+        return new RuntimeType(
+         RuntimeType::sampleRuntimeType()
+        );
     }
+}
+
+// This is an autogenerated file:S
+
+class S {
+    private int $s; // json:s Required
 
     /**
-     * @return Typedef
+     * @param int $s
      */
-    public static function sampleTypedef(): Typedef {
-        return Typedef::sample(); /*95:typedef*/
+    public function __construct(int $s) {
+        $this->s = $s;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Typeid
+     * @return int
      */
-    public static function fromTypeid(stdClass $value): Typeid {
-        return Typeid::from($value); /*class*/
+    public static function fromS(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTypeid(): stdClass {
-        if (Obj4::validateTypeid($this->typeid))  {
-            return $this->typeid->to(); /*class*/
+    public function toS(): int {
+        if (S::validateS($this->s))  {
+            return $this->s; /*int*/
         }
-        throw new Exception('never get to this Obj4::typeid');
+        throw new Exception('never get to this S::s');
     }
 
     /**
-     * @param Typeid
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeid(Typeid $value): bool {
-        $value->validate();
+    public static function validateS(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typeid
+     * @return int
      */
-    public function getTypeid(): Typeid {
-        if (Obj4::validateTypeid($this->typeid))  {
-            return $this->typeid;
+    public function getS(): int {
+        if (S::validateS($this->s))  {
+            return $this->s;
         }
-        throw new Exception('never get to getTypeid Obj4::typeid');
+        throw new Exception('never get to getS S::s');
     }
 
     /**
-     * @return Typeid
+     * @return int
      */
-    public static function sampleTypeid(): Typeid {
-        return Typeid::sample(); /*96:typeid*/
+    public static function sampleS(): int {
+        return 31; /*31:s*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Typename
+     * @return bool
      */
-    public static function fromTypename(stdClass $value): Typename {
-        return Typename::from($value); /*class*/
+    public function validate(): bool {
+        return S::validateS($this->s);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toTypename(): stdClass {
-        if (Obj4::validateTypename($this->typename))  {
-            return $this->typename->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::typename');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'s'} = $this->toS();
+        return $out;
     }
 
     /**
-     * @param Typename
-     * @return bool
+     * @param stdClass $obj
+     * @return S
      * @throws Exception
      */
-    public static function validateTypename(Typename $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): S {
+        if (!property_exists($obj, 's')) {
+            throw new Exception("Missing required property");
+        }
+        return new S(
+         S::fromS($obj->{'s'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Typename
+     * @return S
      */
-    public function getTypename(): Typename {
-        if (Obj4::validateTypename($this->typename))  {
-            return $this->typename;
-        }
-        throw new Exception('never get to getTypename Obj4::typename');
+    public static function sample(): S {
+        return new S(
+         S::sampleS()
+        );
     }
+}
+
+// This is an autogenerated file:Sbyte
+
+class Sbyte {
+    private int $sbyte; // json:sbyte Required
 
     /**
-     * @return Typename
+     * @param int $sbyte
      */
-    public static function sampleTypename(): Typename {
-        return Typename::sample(); /*97:typename*/
+    public function __construct(int $sbyte) {
+        $this->sbyte = $sbyte;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Typeof
+     * @return int
      */
-    public static function fromTypeof(stdClass $value): Typeof {
-        return Typeof::from($value); /*class*/
+    public static function fromSbyte(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toTypeof(): stdClass {
-        if (Obj4::validateTypeof($this->typeof))  {
-            return $this->typeof->to(); /*class*/
+    public function toSbyte(): int {
+        if (Sbyte::validateSbyte($this->sbyte))  {
+            return $this->sbyte; /*int*/
         }
-        throw new Exception('never get to this Obj4::typeof');
+        throw new Exception('never get to this Sbyte::sbyte');
     }
 
     /**
-     * @param Typeof
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeof(Typeof $value): bool {
-        $value->validate();
+    public static function validateSbyte(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typeof
+     * @return int
      */
-    public function getTypeof(): Typeof {
-        if (Obj4::validateTypeof($this->typeof))  {
-            return $this->typeof;
+    public function getSbyte(): int {
+        if (Sbyte::validateSbyte($this->sbyte))  {
+            return $this->sbyte;
         }
-        throw new Exception('never get to getTypeof Obj4::typeof');
+        throw new Exception('never get to getSbyte Sbyte::sbyte');
     }
 
     /**
-     * @return Typeof
+     * @return int
      */
-    public static function sampleTypeof(): Typeof {
-        return Typeof::sample(); /*98:typeof*/
+    public static function sampleSbyte(): int {
+        return 31; /*31:sbyte*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Uint
+     * @return bool
      */
-    public static function fromUint(stdClass $value): Uint {
-        return Uint::from($value); /*class*/
+    public function validate(): bool {
+        return Sbyte::validateSbyte($this->sbyte);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toUint(): stdClass {
-        if (Obj4::validateUint($this->uint))  {
-            return $this->uint->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::uint');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'sbyte'} = $this->toSbyte();
+        return $out;
     }
 
     /**
-     * @param Uint
-     * @return bool
+     * @param stdClass $obj
+     * @return Sbyte
      * @throws Exception
      */
-    public static function validateUint(Uint $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Sbyte {
+        if (!property_exists($obj, 'sbyte')) {
+            throw new Exception("Missing required property");
+        }
+        return new Sbyte(
+         Sbyte::fromSbyte($obj->{'sbyte'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Uint
+     * @return Sbyte
      */
-    public function getUint(): Uint {
-        if (Obj4::validateUint($this->uint))  {
-            return $this->uint;
-        }
-        throw new Exception('never get to getUint Obj4::uint');
+    public static function sample(): Sbyte {
+        return new Sbyte(
+         Sbyte::sampleSbyte()
+        );
     }
+}
+
+// This is an autogenerated file:Sealed
+
+class Sealed {
+    private int $sealed; // json:sealed Required
 
     /**
-     * @return Uint
+     * @param int $sealed
      */
-    public static function sampleUint(): Uint {
-        return Uint::sample(); /*99:uint*/
+    public function __construct(int $sealed) {
+        $this->sealed = $sealed;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Ulong
+     * @return int
      */
-    public static function fromUlong(stdClass $value): Ulong {
-        return Ulong::from($value); /*class*/
+    public static function fromSealed(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUlong(): stdClass {
-        if (Obj4::validateUlong($this->ulong))  {
-            return $this->ulong->to(); /*class*/
+    public function toSealed(): int {
+        if (Sealed::validateSealed($this->sealed))  {
+            return $this->sealed; /*int*/
         }
-        throw new Exception('never get to this Obj4::ulong');
+        throw new Exception('never get to this Sealed::sealed');
     }
 
     /**
-     * @param Ulong
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUlong(Ulong $value): bool {
-        $value->validate();
+    public static function validateSealed(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Ulong
+     * @return int
      */
-    public function getUlong(): Ulong {
-        if (Obj4::validateUlong($this->ulong))  {
-            return $this->ulong;
+    public function getSealed(): int {
+        if (Sealed::validateSealed($this->sealed))  {
+            return $this->sealed;
         }
-        throw new Exception('never get to getUlong Obj4::ulong');
+        throw new Exception('never get to getSealed Sealed::sealed');
     }
 
     /**
-     * @return Ulong
+     * @return int
      */
-    public static function sampleUlong(): Ulong {
-        return Ulong::sample(); /*100:ulong*/
+    public static function sampleSealed(): int {
+        return 31; /*31:sealed*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Unchecked
+     * @return bool
      */
-    public static function fromUnchecked(stdClass $value): Unchecked {
-        return Unchecked::from($value); /*class*/
+    public function validate(): bool {
+        return Sealed::validateSealed($this->sealed);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toUnchecked(): stdClass {
-        if (Obj4::validateUnchecked($this->unchecked))  {
-            return $this->unchecked->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj4::unchecked');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'sealed'} = $this->toSealed();
+        return $out;
     }
 
     /**
-     * @param Unchecked
-     * @return bool
+     * @param stdClass $obj
+     * @return Sealed
      * @throws Exception
      */
-    public static function validateUnchecked(Unchecked $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Sealed {
+        if (!property_exists($obj, 'sealed')) {
+            throw new Exception("Missing required property");
+        }
+        return new Sealed(
+         Sealed::fromSealed($obj->{'sealed'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Unchecked
+     * @return Sealed
      */
-    public function getUnchecked(): Unchecked {
-        if (Obj4::validateUnchecked($this->unchecked))  {
-            return $this->unchecked;
-        }
-        throw new Exception('never get to getUnchecked Obj4::unchecked');
+    public static function sample(): Sealed {
+        return new Sealed(
+         Sealed::sampleSealed()
+        );
     }
+}
+
+// This is an autogenerated file:Sel
+
+class Sel {
+    private int $sel; // json:SEL Required
 
     /**
-     * @return Unchecked
+     * @param int $sel
      */
-    public static function sampleUnchecked(): Unchecked {
-        return Unchecked::sample(); /*101:unchecked*/
+    public function __construct(int $sel) {
+        $this->sel = $sel;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Undefined
+     * @return int
      */
-    public static function fromUndefined(stdClass $value): Undefined {
-        return Undefined::from($value); /*class*/
+    public static function fromSel(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUndefined(): stdClass {
-        if (Obj4::validateUndefined($this->undefined))  {
-            return $this->undefined->to(); /*class*/
+    public function toSel(): int {
+        if (Sel::validateSel($this->sel))  {
+            return $this->sel; /*int*/
         }
-        throw new Exception('never get to this Obj4::undefined');
+        throw new Exception('never get to this Sel::sel');
     }
 
     /**
-     * @param Undefined
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUndefined(Undefined $value): bool {
-        $value->validate();
+    public static function validateSel(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Undefined
+     * @return int
      */
-    public function getUndefined(): Undefined {
-        if (Obj4::validateUndefined($this->undefined))  {
-            return $this->undefined;
+    public function getSel(): int {
+        if (Sel::validateSel($this->sel))  {
+            return $this->sel;
         }
-        throw new Exception('never get to getUndefined Obj4::undefined');
+        throw new Exception('never get to getSel Sel::sel');
     }
 
     /**
-     * @return Undefined
+     * @return int
      */
-    public static function sampleUndefined(): Undefined {
-        return Undefined::sample(); /*102:undefined*/
+    public static function sampleSel(): int {
+        return 31; /*31:sel*/
     }
 
     /**
@@ -39908,78 +40224,7 @@ class Obj4 {
      * @return bool
      */
     public function validate(): bool {
-        return Obj4::validateDummy($this->dummy)
-        || Obj4::validateObj4Self($this->obj4Self)
-        || Obj4::validateObj4This($this->obj4This)
-        || Obj4::validateObj4True($this->obj4True)
-        || Obj4::validateObj4Type($this->obj4Type)
-        || Obj4::validatePublic($this->public)
-        || Obj4::validateQuicktype($this->quicktype)
-        || Obj4::validateRaise($this->raise)
-        || Obj4::validateRange($this->range)
-        || Obj4::validateReadonly($this->readonly)
-        || Obj4::validateRef($this->ref)
-        || Obj4::validateRegExp($this->regExp)
-        || Obj4::validateRegister($this->register)
-        || Obj4::validateReinterpretCast($this->reinterpretCast)
-        || Obj4::validateRepeat($this->repeat)
-        || Obj4::validateRequire($this->require)
-        || Obj4::validateRequired($this->required)
-        || Obj4::validateRequires($this->requires)
-        || Obj4::validateRestrict($this->restrict)
-        || Obj4::validateRetain($this->retain)
-        || Obj4::validateRethrows($this->rethrows)
-        || Obj4::validateReturn($this->return)
-        || Obj4::validateRight($this->right)
-        || Obj4::validateRuntimeType($this->runtimeType)
-        || Obj4::validateS($this->s)
-        || Obj4::validateSbyte($this->sbyte)
-        || Obj4::validateSealed($this->sealed)
-        || Obj4::validateSel($this->sel)
-        || Obj4::validateSelect($this->select)
-        || Obj4::validateSelf($this->self)
-        || Obj4::validateSerialize($this->serialize)
-        || Obj4::validateSet($this->set)
-        || Obj4::validateShort($this->short)
-        || Obj4::validateSigned($this->signed)
-        || Obj4::validateSizeof($this->sizeof)
-        || Obj4::validateStackalloc($this->stackalloc)
-        || Obj4::validateStandards($this->standards)
-        || Obj4::validateStatic($this->static)
-        || Obj4::validateStaticAssert($this->staticAssert)
-        || Obj4::validateStaticCast($this->staticCast)
-        || Obj4::validateStrictfp($this->strictfp)
-        || Obj4::validateString($this->string)
-        || Obj4::validateStruct($this->struct)
-        || Obj4::validateSubscript($this->subscript)
-        || Obj4::validateSuper($this->super)
-        || Obj4::validateSwitch($this->switch)
-        || Obj4::validateSymbol($this->symbol)
-        || Obj4::validateSynchronized($this->synchronized)
-        || Obj4::validateSystem($this->system)
-        || Obj4::validateTemplate($this->template)
-        || Obj4::validateThen($this->then)
-        || Obj4::validateThreadLocal($this->threadLocal)
-        || Obj4::validateThrow($this->throw)
-        || Obj4::validateThrows($this->throws)
-        || Obj4::validateTimeOnly($this->timeOnly)
-        || Obj4::validateTimeOnlyConverter($this->timeOnlyConverter)
-        || Obj4::validateToJSON($this->toJSON)
-        || Obj4::validateToString($this->toString)
-        || Obj4::validateTopLevel($this->topLevel)
-        || Obj4::validateTransient($this->transient)
-        || Obj4::validateTrue($this->true)
-        || Obj4::validateTry($this->try)
-        || Obj4::validateType($this->type)
-        || Obj4::validateTypealias($this->typealias)
-        || Obj4::validateTypedef($this->typedef)
-        || Obj4::validateTypeid($this->typeid)
-        || Obj4::validateTypename($this->typename)
-        || Obj4::validateTypeof($this->typeof)
-        || Obj4::validateUint($this->uint)
-        || Obj4::validateUlong($this->ulong)
-        || Obj4::validateUnchecked($this->unchecked)
-        || Obj4::validateUndefined($this->undefined);
+        return Sel::validateSel($this->sel);
     }
 
     /**
@@ -39988,464 +40233,139 @@ class Obj4 {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dummy'} = $this->toDummy();
-        $out->{'self'} = $this->toObj4Self();
-        $out->{'this'} = $this->toObj4This();
-        $out->{'true'} = $this->toObj4True();
-        $out->{'type'} = $this->toObj4Type();
-        $out->{'public'} = $this->toPublic();
-        $out->{'quicktype'} = $this->toQuicktype();
-        $out->{'raise'} = $this->toRaise();
-        $out->{'range'} = $this->toRange();
-        $out->{'readonly'} = $this->toReadonly();
-        $out->{'ref'} = $this->toRef();
-        $out->{'RegExp'} = $this->toRegExp();
-        $out->{'register'} = $this->toRegister();
-        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
-        $out->{'repeat'} = $this->toRepeat();
-        $out->{'require'} = $this->toRequire();
-        $out->{'required'} = $this->toRequired();
-        $out->{'requires'} = $this->toRequires();
-        $out->{'restrict'} = $this->toRestrict();
-        $out->{'retain'} = $this->toRetain();
-        $out->{'rethrows'} = $this->toRethrows();
-        $out->{'return'} = $this->toReturn();
-        $out->{'right'} = $this->toRight();
-        $out->{'runtimeType'} = $this->toRuntimeType();
-        $out->{'s'} = $this->toS();
-        $out->{'sbyte'} = $this->toSbyte();
-        $out->{'sealed'} = $this->toSealed();
         $out->{'SEL'} = $this->toSel();
-        $out->{'select'} = $this->toSelect();
-        $out->{'Self'} = $this->toSelf();
-        $out->{'serialize'} = $this->toSerialize();
-        $out->{'set'} = $this->toSet();
-        $out->{'short'} = $this->toShort();
-        $out->{'signed'} = $this->toSigned();
-        $out->{'sizeof'} = $this->toSizeof();
-        $out->{'stackalloc'} = $this->toStackalloc();
-        $out->{'Standards'} = $this->toStandards();
-        $out->{'static'} = $this->toStatic();
-        $out->{'static_assert'} = $this->toStaticAssert();
-        $out->{'static_cast'} = $this->toStaticCast();
-        $out->{'strictfp'} = $this->toStrictfp();
-        $out->{'string'} = $this->purpleToString();
-        $out->{'struct'} = $this->toStruct();
-        $out->{'subscript'} = $this->toSubscript();
-        $out->{'super'} = $this->toSuper();
-        $out->{'switch'} = $this->toSwitch();
-        $out->{'symbol'} = $this->toSymbol();
-        $out->{'synchronized'} = $this->toSynchronized();
-        $out->{'system'} = $this->toSystem();
-        $out->{'template'} = $this->toTemplate();
-        $out->{'then'} = $this->toThen();
-        $out->{'thread_local'} = $this->toThreadLocal();
-        $out->{'throw'} = $this->toThrow();
-        $out->{'throws'} = $this->toThrows();
-        $out->{'TimeOnly'} = $this->toTimeOnly();
-        $out->{'TimeOnlyConverter'} = $this->toTimeOnlyConverter();
-        $out->{'to_json'} = $this->toToJSON();
-        $out->{'toString'} = $this->toToString();
-        $out->{'top_level'} = $this->toTopLevel();
-        $out->{'transient'} = $this->toTransient();
-        $out->{'True'} = $this->toTrue();
-        $out->{'try'} = $this->toTry();
-        $out->{'Type'} = $this->toType();
-        $out->{'typealias'} = $this->toTypealias();
-        $out->{'typedef'} = $this->toTypedef();
-        $out->{'typeid'} = $this->toTypeid();
-        $out->{'typename'} = $this->toTypename();
-        $out->{'typeof'} = $this->toTypeof();
-        $out->{'uint'} = $this->toUint();
-        $out->{'ulong'} = $this->toUlong();
-        $out->{'unchecked'} = $this->toUnchecked();
-        $out->{'undefined'} = $this->toUndefined();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Obj4
+     * @return Sel
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj4 {
-        if (!property_exists($obj, 'dummy')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'self')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'this')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'true')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'type')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'public')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'quicktype')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'raise')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'range')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'readonly')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'ref')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'RegExp')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'register')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'reinterpret_cast')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'repeat')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'require')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'required')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'requires')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'restrict')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'retain')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'rethrows')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'return')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'right')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'runtimeType')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 's')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'sbyte')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'sealed')) {
-            throw new Exception("Missing required property");
-        }
+    public static function from(stdClass $obj): Sel {
         if (!property_exists($obj, 'SEL')) {
             throw new Exception("Missing required property");
         }
-        if (!property_exists($obj, 'select')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'Self')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'serialize')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'set')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'short')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'signed')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'sizeof')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'stackalloc')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'Standards')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'static')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'static_assert')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'static_cast')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'strictfp')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'string')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'struct')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'subscript')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'super')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'switch')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'symbol')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'synchronized')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'system')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'template')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'then')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'thread_local')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'throw')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'throws')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'TimeOnly')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'TimeOnlyConverter')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'to_json')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'toString')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'top_level')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'transient')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'True')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'try')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'Type')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'typealias')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'typedef')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'typeid')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'typename')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'typeof')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'uint')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'ulong')) {
-            throw new Exception("Missing required property");
+        return new Sel(
+         Sel::fromSel($obj->{'SEL'})
+        );
+    }
+
+    /**
+     * @return Sel
+     */
+    public static function sample(): Sel {
+        return new Sel(
+         Sel::sampleSel()
+        );
+    }
+}
+
+// This is an autogenerated file:Select
+
+class Select {
+    private int $select; // json:select Required
+
+    /**
+     * @param int $select
+     */
+    public function __construct(int $select) {
+        $this->select = $select;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromSelect(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toSelect(): int {
+        if (Select::validateSelect($this->select))  {
+            return $this->select; /*int*/
         }
-        if (!property_exists($obj, 'unchecked')) {
-            throw new Exception("Missing required property");
+        throw new Exception('never get to this Select::select');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateSelect(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getSelect(): int {
+        if (Select::validateSelect($this->select))  {
+            return $this->select;
         }
-        if (!property_exists($obj, 'undefined')) {
+        throw new Exception('never get to getSelect Select::select');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleSelect(): int {
+        return 31; /*31:select*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return Select::validateSelect($this->select);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'select'} = $this->toSelect();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Select
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Select {
+        if (!property_exists($obj, 'select')) {
             throw new Exception("Missing required property");
         }
-        return new Obj4(
-         Obj4::fromDummy($obj->{'dummy'})
-        ,Obj4::fromObj4Self($obj->{'self'})
-        ,Obj4::fromObj4This($obj->{'this'})
-        ,Obj4::fromObj4True($obj->{'true'})
-        ,Obj4::fromObj4Type($obj->{'type'})
-        ,Obj4::fromPublic($obj->{'public'})
-        ,Obj4::fromQuicktype($obj->{'quicktype'})
-        ,Obj4::fromRaise($obj->{'raise'})
-        ,Obj4::fromRange($obj->{'range'})
-        ,Obj4::fromReadonly($obj->{'readonly'})
-        ,Obj4::fromRef($obj->{'ref'})
-        ,Obj4::fromRegExp($obj->{'RegExp'})
-        ,Obj4::fromRegister($obj->{'register'})
-        ,Obj4::fromReinterpretCast($obj->{'reinterpret_cast'})
-        ,Obj4::fromRepeat($obj->{'repeat'})
-        ,Obj4::fromRequire($obj->{'require'})
-        ,Obj4::fromRequired($obj->{'required'})
-        ,Obj4::fromRequires($obj->{'requires'})
-        ,Obj4::fromRestrict($obj->{'restrict'})
-        ,Obj4::fromRetain($obj->{'retain'})
-        ,Obj4::fromRethrows($obj->{'rethrows'})
-        ,Obj4::fromReturn($obj->{'return'})
-        ,Obj4::fromRight($obj->{'right'})
-        ,Obj4::fromRuntimeType($obj->{'runtimeType'})
-        ,Obj4::fromS($obj->{'s'})
-        ,Obj4::fromSbyte($obj->{'sbyte'})
-        ,Obj4::fromSealed($obj->{'sealed'})
-        ,Obj4::fromSel($obj->{'SEL'})
-        ,Obj4::fromSelect($obj->{'select'})
-        ,Obj4::fromSelf($obj->{'Self'})
-        ,Obj4::fromSerialize($obj->{'serialize'})
-        ,Obj4::fromSet($obj->{'set'})
-        ,Obj4::fromShort($obj->{'short'})
-        ,Obj4::fromSigned($obj->{'signed'})
-        ,Obj4::fromSizeof($obj->{'sizeof'})
-        ,Obj4::fromStackalloc($obj->{'stackalloc'})
-        ,Obj4::fromStandards($obj->{'Standards'})
-        ,Obj4::fromStatic($obj->{'static'})
-        ,Obj4::fromStaticAssert($obj->{'static_assert'})
-        ,Obj4::fromStaticCast($obj->{'static_cast'})
-        ,Obj4::fromStrictfp($obj->{'strictfp'})
-        ,Obj4::fromString($obj->{'string'})
-        ,Obj4::fromStruct($obj->{'struct'})
-        ,Obj4::fromSubscript($obj->{'subscript'})
-        ,Obj4::fromSuper($obj->{'super'})
-        ,Obj4::fromSwitch($obj->{'switch'})
-        ,Obj4::fromSymbol($obj->{'symbol'})
-        ,Obj4::fromSynchronized($obj->{'synchronized'})
-        ,Obj4::fromSystem($obj->{'system'})
-        ,Obj4::fromTemplate($obj->{'template'})
-        ,Obj4::fromThen($obj->{'then'})
-        ,Obj4::fromThreadLocal($obj->{'thread_local'})
-        ,Obj4::fromThrow($obj->{'throw'})
-        ,Obj4::fromThrows($obj->{'throws'})
-        ,Obj4::fromTimeOnly($obj->{'TimeOnly'})
-        ,Obj4::fromTimeOnlyConverter($obj->{'TimeOnlyConverter'})
-        ,Obj4::fromToJSON($obj->{'to_json'})
-        ,Obj4::fromToString($obj->{'toString'})
-        ,Obj4::fromTopLevel($obj->{'top_level'})
-        ,Obj4::fromTransient($obj->{'transient'})
-        ,Obj4::fromTrue($obj->{'True'})
-        ,Obj4::fromTry($obj->{'try'})
-        ,Obj4::fromType($obj->{'Type'})
-        ,Obj4::fromTypealias($obj->{'typealias'})
-        ,Obj4::fromTypedef($obj->{'typedef'})
-        ,Obj4::fromTypeid($obj->{'typeid'})
-        ,Obj4::fromTypename($obj->{'typename'})
-        ,Obj4::fromTypeof($obj->{'typeof'})
-        ,Obj4::fromUint($obj->{'uint'})
-        ,Obj4::fromUlong($obj->{'ulong'})
-        ,Obj4::fromUnchecked($obj->{'unchecked'})
-        ,Obj4::fromUndefined($obj->{'undefined'})
+        return new Select(
+         Select::fromSelect($obj->{'select'})
         );
     }
 
     /**
-     * @return Obj4
+     * @return Select
      */
-    public static function sample(): Obj4 {
-        return new Obj4(
-         Obj4::sampleDummy()
-        ,Obj4::sampleObj4Self()
-        ,Obj4::sampleObj4This()
-        ,Obj4::sampleObj4True()
-        ,Obj4::sampleObj4Type()
-        ,Obj4::samplePublic()
-        ,Obj4::sampleQuicktype()
-        ,Obj4::sampleRaise()
-        ,Obj4::sampleRange()
-        ,Obj4::sampleReadonly()
-        ,Obj4::sampleRef()
-        ,Obj4::sampleRegExp()
-        ,Obj4::sampleRegister()
-        ,Obj4::sampleReinterpretCast()
-        ,Obj4::sampleRepeat()
-        ,Obj4::sampleRequire()
-        ,Obj4::sampleRequired()
-        ,Obj4::sampleRequires()
-        ,Obj4::sampleRestrict()
-        ,Obj4::sampleRetain()
-        ,Obj4::sampleRethrows()
-        ,Obj4::sampleReturn()
-        ,Obj4::sampleRight()
-        ,Obj4::sampleRuntimeType()
-        ,Obj4::sampleS()
-        ,Obj4::sampleSbyte()
-        ,Obj4::sampleSealed()
-        ,Obj4::sampleSel()
-        ,Obj4::sampleSelect()
-        ,Obj4::sampleSelf()
-        ,Obj4::sampleSerialize()
-        ,Obj4::sampleSet()
-        ,Obj4::sampleShort()
-        ,Obj4::sampleSigned()
-        ,Obj4::sampleSizeof()
-        ,Obj4::sampleStackalloc()
-        ,Obj4::sampleStandards()
-        ,Obj4::sampleStatic()
-        ,Obj4::sampleStaticAssert()
-        ,Obj4::sampleStaticCast()
-        ,Obj4::sampleStrictfp()
-        ,Obj4::sampleString()
-        ,Obj4::sampleStruct()
-        ,Obj4::sampleSubscript()
-        ,Obj4::sampleSuper()
-        ,Obj4::sampleSwitch()
-        ,Obj4::sampleSymbol()
-        ,Obj4::sampleSynchronized()
-        ,Obj4::sampleSystem()
-        ,Obj4::sampleTemplate()
-        ,Obj4::sampleThen()
-        ,Obj4::sampleThreadLocal()
-        ,Obj4::sampleThrow()
-        ,Obj4::sampleThrows()
-        ,Obj4::sampleTimeOnly()
-        ,Obj4::sampleTimeOnlyConverter()
-        ,Obj4::sampleToJSON()
-        ,Obj4::sampleToString()
-        ,Obj4::sampleTopLevel()
-        ,Obj4::sampleTransient()
-        ,Obj4::sampleTrue()
-        ,Obj4::sampleTry()
-        ,Obj4::sampleType()
-        ,Obj4::sampleTypealias()
-        ,Obj4::sampleTypedef()
-        ,Obj4::sampleTypeid()
-        ,Obj4::sampleTypename()
-        ,Obj4::sampleTypeof()
-        ,Obj4::sampleUint()
-        ,Obj4::sampleUlong()
-        ,Obj4::sampleUnchecked()
-        ,Obj4::sampleUndefined()
+    public static function sample(): Select {
+        return new Select(
+         Select::sampleSelect()
         );
     }
 }
 
-// This is an autogenerated file:Obj4Self
+// This is an autogenerated file:SelfClass
 
-class Obj4Self {
-    private int $self; // json:self Required
+class SelfClass {
+    private int $self; // json:Self Required
 
     /**
      * @param int $self
@@ -40468,10 +40388,10 @@ class Obj4Self {
      * @return int
      */
     public function toSelf(): int {
-        if (Obj4Self::validateSelf($this->self))  {
+        if (SelfClass::validateSelf($this->self))  {
             return $this->self; /*int*/
         }
-        throw new Exception('never get to this Obj4Self::self');
+        throw new Exception('never get to this SelfClass::self');
     }
 
     /**
@@ -40488,10 +40408,10 @@ class Obj4Self {
      * @return int
      */
     public function getSelf(): int {
-        if (Obj4Self::validateSelf($this->self))  {
+        if (SelfClass::validateSelf($this->self))  {
             return $this->self;
         }
-        throw new Exception('never get to getSelf Obj4Self::self');
+        throw new Exception('never get to getSelf SelfClass::self');
     }
 
     /**
@@ -40506,7 +40426,7 @@ class Obj4Self {
      * @return bool
      */
     public function validate(): bool {
-        return Obj4Self::validateSelf($this->self);
+        return SelfClass::validateSelf($this->self);
     }
 
     /**
@@ -40515,44 +40435,44 @@ class Obj4Self {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'self'} = $this->toSelf();
+        $out->{'Self'} = $this->toSelf();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Obj4Self
+     * @return SelfClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj4Self {
-        if (!property_exists($obj, 'self')) {
+    public static function from(stdClass $obj): SelfClass {
+        if (!property_exists($obj, 'Self')) {
             throw new Exception("Missing required property");
         }
-        return new Obj4Self(
-         Obj4Self::fromSelf($obj->{'self'})
+        return new SelfClass(
+         SelfClass::fromSelf($obj->{'Self'})
         );
     }
 
     /**
-     * @return Obj4Self
+     * @return SelfClass
      */
-    public static function sample(): Obj4Self {
-        return new Obj4Self(
-         Obj4Self::sampleSelf()
+    public static function sample(): SelfClass {
+        return new SelfClass(
+         SelfClass::sampleSelf()
         );
     }
 }
 
-// This is an autogenerated file:This
+// This is an autogenerated file:Serialize
 
-class This {
-    private int $thisThis; // json:this Required
+class Serialize {
+    private int $serialize; // json:serialize Required
 
     /**
-     * @param int $thisThis
+     * @param int $serialize
      */
-    public function __construct(int $thisThis) {
-        $this->thisThis = $thisThis;
+    public function __construct(int $serialize) {
+        $this->serialize = $serialize;
     }
 
     /**
@@ -40560,7 +40480,7 @@ class This {
      * @throws Exception
      * @return int
      */
-    public static function fromThisThis(int $value): int {
+    public static function fromSerialize(int $value): int {
         return $value; /*int*/
     }
 
@@ -40568,11 +40488,11 @@ class This {
      * @throws Exception
      * @return int
      */
-    public function toThisThis(): int {
-        if (This::validateThisThis($this->thisThis))  {
-            return $this->thisThis; /*int*/
+    public function toSerialize(): int {
+        if (Serialize::validateSerialize($this->serialize))  {
+            return $this->serialize; /*int*/
         }
-        throw new Exception('never get to this This::thisThis');
+        throw new Exception('never get to this Serialize::serialize');
     }
 
     /**
@@ -40580,7 +40500,7 @@ class This {
      * @return bool
      * @throws Exception
      */
-    public static function validateThisThis(int $value): bool {
+    public static function validateSerialize(int $value): bool {
         return true;
     }
 
@@ -40588,18 +40508,18 @@ class This {
      * @throws Exception
      * @return int
      */
-    public function getThisThis(): int {
-        if (This::validateThisThis($this->thisThis))  {
-            return $this->thisThis;
+    public function getSerialize(): int {
+        if (Serialize::validateSerialize($this->serialize))  {
+            return $this->serialize;
         }
-        throw new Exception('never get to getThisThis This::thisThis');
+        throw new Exception('never get to getSerialize Serialize::serialize');
     }
 
     /**
      * @return int
      */
-    public static function sampleThisThis(): int {
-        return 31; /*31:thisThis*/
+    public static function sampleSerialize(): int {
+        return 31; /*31:serialize*/
     }
 
     /**
@@ -40607,7 +40527,7 @@ class This {
      * @return bool
      */
     public function validate(): bool {
-        return This::validateThisThis($this->thisThis);
+        return Serialize::validateSerialize($this->serialize);
     }
 
     /**
@@ -40616,44 +40536,44 @@ class This {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'this'} = $this->toThisThis();
+        $out->{'serialize'} = $this->toSerialize();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return This
+     * @return Serialize
      * @throws Exception
      */
-    public static function from(stdClass $obj): This {
-        if (!property_exists($obj, 'this')) {
+    public static function from(stdClass $obj): Serialize {
+        if (!property_exists($obj, 'serialize')) {
             throw new Exception("Missing required property");
         }
-        return new This(
-         This::fromThisThis($obj->{'this'})
+        return new Serialize(
+         Serialize::fromSerialize($obj->{'serialize'})
         );
     }
 
     /**
-     * @return This
+     * @return Serialize
      */
-    public static function sample(): This {
-        return new This(
-         This::sampleThisThis()
+    public static function sample(): Serialize {
+        return new Serialize(
+         Serialize::sampleSerialize()
         );
     }
 }
 
-// This is an autogenerated file:Obj4True
+// This is an autogenerated file:SerializerProvider
 
-class Obj4True {
-    private int $true; // json:true Required
+class SerializerProvider {
+    private int $serializerProvider; // json:SerializerProvider Required
 
     /**
-     * @param int $true
+     * @param int $serializerProvider
      */
-    public function __construct(int $true) {
-        $this->true = $true;
+    public function __construct(int $serializerProvider) {
+        $this->serializerProvider = $serializerProvider;
     }
 
     /**
@@ -40661,7 +40581,7 @@ class Obj4True {
      * @throws Exception
      * @return int
      */
-    public static function fromTrue(int $value): int {
+    public static function fromSerializerProvider(int $value): int {
         return $value; /*int*/
     }
 
@@ -40669,11 +40589,11 @@ class Obj4True {
      * @throws Exception
      * @return int
      */
-    public function toTrue(): int {
-        if (Obj4True::validateTrue($this->true))  {
-            return $this->true; /*int*/
+    public function toSerializerProvider(): int {
+        if (SerializerProvider::validateSerializerProvider($this->serializerProvider))  {
+            return $this->serializerProvider; /*int*/
         }
-        throw new Exception('never get to this Obj4True::true');
+        throw new Exception('never get to this SerializerProvider::serializerProvider');
     }
 
     /**
@@ -40681,7 +40601,7 @@ class Obj4True {
      * @return bool
      * @throws Exception
      */
-    public static function validateTrue(int $value): bool {
+    public static function validateSerializerProvider(int $value): bool {
         return true;
     }
 
@@ -40689,18 +40609,18 @@ class Obj4True {
      * @throws Exception
      * @return int
      */
-    public function getTrue(): int {
-        if (Obj4True::validateTrue($this->true))  {
-            return $this->true;
+    public function getSerializerProvider(): int {
+        if (SerializerProvider::validateSerializerProvider($this->serializerProvider))  {
+            return $this->serializerProvider;
         }
-        throw new Exception('never get to getTrue Obj4True::true');
+        throw new Exception('never get to getSerializerProvider SerializerProvider::serializerProvider');
     }
 
     /**
      * @return int
      */
-    public static function sampleTrue(): int {
-        return 31; /*31:true*/
+    public static function sampleSerializerProvider(): int {
+        return 31; /*31:serializerProvider*/
     }
 
     /**
@@ -40708,7 +40628,7 @@ class Obj4True {
      * @return bool
      */
     public function validate(): bool {
-        return Obj4True::validateTrue($this->true);
+        return SerializerProvider::validateSerializerProvider($this->serializerProvider);
     }
 
     /**
@@ -40717,44 +40637,44 @@ class Obj4True {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'true'} = $this->toTrue();
+        $out->{'SerializerProvider'} = $this->toSerializerProvider();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Obj4True
+     * @return SerializerProvider
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj4True {
-        if (!property_exists($obj, 'true')) {
+    public static function from(stdClass $obj): SerializerProvider {
+        if (!property_exists($obj, 'SerializerProvider')) {
             throw new Exception("Missing required property");
         }
-        return new Obj4True(
-         Obj4True::fromTrue($obj->{'true'})
+        return new SerializerProvider(
+         SerializerProvider::fromSerializerProvider($obj->{'SerializerProvider'})
         );
     }
 
     /**
-     * @return Obj4True
+     * @return SerializerProvider
      */
-    public static function sample(): Obj4True {
-        return new Obj4True(
-         Obj4True::sampleTrue()
+    public static function sample(): SerializerProvider {
+        return new SerializerProvider(
+         SerializerProvider::sampleSerializerProvider()
         );
     }
 }
 
-// This is an autogenerated file:TypeClass
+// This is an autogenerated file:Set
 
-class TypeClass {
-    private int $type; // json:type Required
+class Set {
+    private int $set; // json:set Required
 
     /**
-     * @param int $type
+     * @param int $set
      */
-    public function __construct(int $type) {
-        $this->type = $type;
+    public function __construct(int $set) {
+        $this->set = $set;
     }
 
     /**
@@ -40762,7 +40682,7 @@ class TypeClass {
      * @throws Exception
      * @return int
      */
-    public static function fromType(int $value): int {
+    public static function fromSet(int $value): int {
         return $value; /*int*/
     }
 
@@ -40770,11 +40690,11 @@ class TypeClass {
      * @throws Exception
      * @return int
      */
-    public function toType(): int {
-        if (TypeClass::validateType($this->type))  {
-            return $this->type; /*int*/
+    public function toSet(): int {
+        if (Set::validateSet($this->set))  {
+            return $this->set; /*int*/
         }
-        throw new Exception('never get to this TypeClass::type');
+        throw new Exception('never get to this Set::set');
     }
 
     /**
@@ -40782,7 +40702,7 @@ class TypeClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateType(int $value): bool {
+    public static function validateSet(int $value): bool {
         return true;
     }
 
@@ -40790,18 +40710,18 @@ class TypeClass {
      * @throws Exception
      * @return int
      */
-    public function getType(): int {
-        if (TypeClass::validateType($this->type))  {
-            return $this->type;
+    public function getSet(): int {
+        if (Set::validateSet($this->set))  {
+            return $this->set;
         }
-        throw new Exception('never get to getType TypeClass::type');
+        throw new Exception('never get to getSet Set::set');
     }
 
     /**
      * @return int
      */
-    public static function sampleType(): int {
-        return 31; /*31:type*/
+    public static function sampleSet(): int {
+        return 31; /*31:set*/
     }
 
     /**
@@ -40809,7 +40729,7 @@ class TypeClass {
      * @return bool
      */
     public function validate(): bool {
-        return TypeClass::validateType($this->type);
+        return Set::validateSet($this->set);
     }
 
     /**
@@ -40818,44 +40738,44 @@ class TypeClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'type'} = $this->toType();
+        $out->{'set'} = $this->toSet();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TypeClass
+     * @return Set
      * @throws Exception
      */
-    public static function from(stdClass $obj): TypeClass {
-        if (!property_exists($obj, 'type')) {
+    public static function from(stdClass $obj): Set {
+        if (!property_exists($obj, 'set')) {
             throw new Exception("Missing required property");
         }
-        return new TypeClass(
-         TypeClass::fromType($obj->{'type'})
+        return new Set(
+         Set::fromSet($obj->{'set'})
         );
     }
 
     /**
-     * @return TypeClass
+     * @return Set
      */
-    public static function sample(): TypeClass {
-        return new TypeClass(
-         TypeClass::sampleType()
+    public static function sample(): Set {
+        return new Set(
+         Set::sampleSet()
         );
     }
 }
 
-// This is an autogenerated file:PublicClass
+// This is an autogenerated file:Short
 
-class PublicClass {
-    private int $public; // json:public Required
+class Short {
+    private int $short; // json:short Required
 
     /**
-     * @param int $public
+     * @param int $short
      */
-    public function __construct(int $public) {
-        $this->public = $public;
+    public function __construct(int $short) {
+        $this->short = $short;
     }
 
     /**
@@ -40863,7 +40783,7 @@ class PublicClass {
      * @throws Exception
      * @return int
      */
-    public static function fromPublic(int $value): int {
+    public static function fromShort(int $value): int {
         return $value; /*int*/
     }
 
@@ -40871,11 +40791,11 @@ class PublicClass {
      * @throws Exception
      * @return int
      */
-    public function toPublic(): int {
-        if (PublicClass::validatePublic($this->public))  {
-            return $this->public; /*int*/
+    public function toShort(): int {
+        if (Short::validateShort($this->short))  {
+            return $this->short; /*int*/
         }
-        throw new Exception('never get to this PublicClass::public');
+        throw new Exception('never get to this Short::short');
     }
 
     /**
@@ -40883,7 +40803,7 @@ class PublicClass {
      * @return bool
      * @throws Exception
      */
-    public static function validatePublic(int $value): bool {
+    public static function validateShort(int $value): bool {
         return true;
     }
 
@@ -40891,18 +40811,18 @@ class PublicClass {
      * @throws Exception
      * @return int
      */
-    public function getPublic(): int {
-        if (PublicClass::validatePublic($this->public))  {
-            return $this->public;
+    public function getShort(): int {
+        if (Short::validateShort($this->short))  {
+            return $this->short;
         }
-        throw new Exception('never get to getPublic PublicClass::public');
+        throw new Exception('never get to getShort Short::short');
     }
 
     /**
      * @return int
      */
-    public static function samplePublic(): int {
-        return 31; /*31:public*/
+    public static function sampleShort(): int {
+        return 31; /*31:short*/
     }
 
     /**
@@ -40910,7 +40830,7 @@ class PublicClass {
      * @return bool
      */
     public function validate(): bool {
-        return PublicClass::validatePublic($this->public);
+        return Short::validateShort($this->short);
     }
 
     /**
@@ -40919,44 +40839,145 @@ class PublicClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'public'} = $this->toPublic();
+        $out->{'short'} = $this->toShort();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return PublicClass
+     * @return Short
      * @throws Exception
      */
-    public static function from(stdClass $obj): PublicClass {
-        if (!property_exists($obj, 'public')) {
+    public static function from(stdClass $obj): Short {
+        if (!property_exists($obj, 'short')) {
             throw new Exception("Missing required property");
         }
-        return new PublicClass(
-         PublicClass::fromPublic($obj->{'public'})
+        return new Short(
+         Short::fromShort($obj->{'short'})
+        );
+    }
+
+    /**
+     * @return Short
+     */
+    public static function sample(): Short {
+        return new Short(
+         Short::sampleShort()
+        );
+    }
+}
+
+// This is an autogenerated file:Signed
+
+class Signed {
+    private int $signed; // json:signed Required
+
+    /**
+     * @param int $signed
+     */
+    public function __construct(int $signed) {
+        $this->signed = $signed;
+    }
+
+    /**
+     * @param int $value
+     * @throws Exception
+     * @return int
+     */
+    public static function fromSigned(int $value): int {
+        return $value; /*int*/
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function toSigned(): int {
+        if (Signed::validateSigned($this->signed))  {
+            return $this->signed; /*int*/
+        }
+        throw new Exception('never get to this Signed::signed');
+    }
+
+    /**
+     * @param int
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateSigned(int $value): bool {
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return int
+     */
+    public function getSigned(): int {
+        if (Signed::validateSigned($this->signed))  {
+            return $this->signed;
+        }
+        throw new Exception('never get to getSigned Signed::signed');
+    }
+
+    /**
+     * @return int
+     */
+    public static function sampleSigned(): int {
+        return 31; /*31:signed*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return Signed::validateSigned($this->signed);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'signed'} = $this->toSigned();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Signed
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Signed {
+        if (!property_exists($obj, 'signed')) {
+            throw new Exception("Missing required property");
+        }
+        return new Signed(
+         Signed::fromSigned($obj->{'signed'})
         );
     }
 
     /**
-     * @return PublicClass
+     * @return Signed
      */
-    public static function sample(): PublicClass {
-        return new PublicClass(
-         PublicClass::samplePublic()
+    public static function sample(): Signed {
+        return new Signed(
+         Signed::sampleSigned()
         );
     }
 }
 
-// This is an autogenerated file:Quicktype
+// This is an autogenerated file:SimpleModule
 
-class Quicktype {
-    private int $quicktype; // json:quicktype Required
+class SimpleModule {
+    private int $simpleModule; // json:SimpleModule Required
 
     /**
-     * @param int $quicktype
+     * @param int $simpleModule
      */
-    public function __construct(int $quicktype) {
-        $this->quicktype = $quicktype;
+    public function __construct(int $simpleModule) {
+        $this->simpleModule = $simpleModule;
     }
 
     /**
@@ -40964,7 +40985,7 @@ class Quicktype {
      * @throws Exception
      * @return int
      */
-    public static function fromQuicktype(int $value): int {
+    public static function fromSimpleModule(int $value): int {
         return $value; /*int*/
     }
 
@@ -40972,11 +40993,11 @@ class Quicktype {
      * @throws Exception
      * @return int
      */
-    public function toQuicktype(): int {
-        if (Quicktype::validateQuicktype($this->quicktype))  {
-            return $this->quicktype; /*int*/
+    public function toSimpleModule(): int {
+        if (SimpleModule::validateSimpleModule($this->simpleModule))  {
+            return $this->simpleModule; /*int*/
         }
-        throw new Exception('never get to this Quicktype::quicktype');
+        throw new Exception('never get to this SimpleModule::simpleModule');
     }
 
     /**
@@ -40984,7 +41005,7 @@ class Quicktype {
      * @return bool
      * @throws Exception
      */
-    public static function validateQuicktype(int $value): bool {
+    public static function validateSimpleModule(int $value): bool {
         return true;
     }
 
@@ -40992,18 +41013,18 @@ class Quicktype {
      * @throws Exception
      * @return int
      */
-    public function getQuicktype(): int {
-        if (Quicktype::validateQuicktype($this->quicktype))  {
-            return $this->quicktype;
+    public function getSimpleModule(): int {
+        if (SimpleModule::validateSimpleModule($this->simpleModule))  {
+            return $this->simpleModule;
         }
-        throw new Exception('never get to getQuicktype Quicktype::quicktype');
+        throw new Exception('never get to getSimpleModule SimpleModule::simpleModule');
     }
 
     /**
      * @return int
      */
-    public static function sampleQuicktype(): int {
-        return 31; /*31:quicktype*/
+    public static function sampleSimpleModule(): int {
+        return 31; /*31:simpleModule*/
     }
 
     /**
@@ -41011,7 +41032,7 @@ class Quicktype {
      * @return bool
      */
     public function validate(): bool {
-        return Quicktype::validateQuicktype($this->quicktype);
+        return SimpleModule::validateSimpleModule($this->simpleModule);
     }
 
     /**
@@ -41020,44 +41041,44 @@ class Quicktype {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'quicktype'} = $this->toQuicktype();
+        $out->{'SimpleModule'} = $this->toSimpleModule();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Quicktype
+     * @return SimpleModule
      * @throws Exception
      */
-    public static function from(stdClass $obj): Quicktype {
-        if (!property_exists($obj, 'quicktype')) {
+    public static function from(stdClass $obj): SimpleModule {
+        if (!property_exists($obj, 'SimpleModule')) {
             throw new Exception("Missing required property");
         }
-        return new Quicktype(
-         Quicktype::fromQuicktype($obj->{'quicktype'})
+        return new SimpleModule(
+         SimpleModule::fromSimpleModule($obj->{'SimpleModule'})
         );
     }
 
     /**
-     * @return Quicktype
+     * @return SimpleModule
      */
-    public static function sample(): Quicktype {
-        return new Quicktype(
-         Quicktype::sampleQuicktype()
+    public static function sample(): SimpleModule {
+        return new SimpleModule(
+         SimpleModule::sampleSimpleModule()
         );
     }
 }
 
-// This is an autogenerated file:Raise
+// This is an autogenerated file:Sizeof
 
-class Raise {
-    private int $raise; // json:raise Required
+class Sizeof {
+    private int $sizeof; // json:sizeof Required
 
     /**
-     * @param int $raise
+     * @param int $sizeof
      */
-    public function __construct(int $raise) {
-        $this->raise = $raise;
+    public function __construct(int $sizeof) {
+        $this->sizeof = $sizeof;
     }
 
     /**
@@ -41065,7 +41086,7 @@ class Raise {
      * @throws Exception
      * @return int
      */
-    public static function fromRaise(int $value): int {
+    public static function fromSizeof(int $value): int {
         return $value; /*int*/
     }
 
@@ -41073,11 +41094,11 @@ class Raise {
      * @throws Exception
      * @return int
      */
-    public function toRaise(): int {
-        if (Raise::validateRaise($this->raise))  {
-            return $this->raise; /*int*/
+    public function toSizeof(): int {
+        if (Sizeof::validateSizeof($this->sizeof))  {
+            return $this->sizeof; /*int*/
         }
-        throw new Exception('never get to this Raise::raise');
+        throw new Exception('never get to this Sizeof::sizeof');
     }
 
     /**
@@ -41085,7 +41106,7 @@ class Raise {
      * @return bool
      * @throws Exception
      */
-    public static function validateRaise(int $value): bool {
+    public static function validateSizeof(int $value): bool {
         return true;
     }
 
@@ -41093,18 +41114,18 @@ class Raise {
      * @throws Exception
      * @return int
      */
-    public function getRaise(): int {
-        if (Raise::validateRaise($this->raise))  {
-            return $this->raise;
+    public function getSizeof(): int {
+        if (Sizeof::validateSizeof($this->sizeof))  {
+            return $this->sizeof;
         }
-        throw new Exception('never get to getRaise Raise::raise');
+        throw new Exception('never get to getSizeof Sizeof::sizeof');
     }
 
     /**
      * @return int
      */
-    public static function sampleRaise(): int {
-        return 31; /*31:raise*/
+    public static function sampleSizeof(): int {
+        return 31; /*31:sizeof*/
     }
 
     /**
@@ -41112,7 +41133,7 @@ class Raise {
      * @return bool
      */
     public function validate(): bool {
-        return Raise::validateRaise($this->raise);
+        return Sizeof::validateSizeof($this->sizeof);
     }
 
     /**
@@ -41121,44 +41142,44 @@ class Raise {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'raise'} = $this->toRaise();
+        $out->{'sizeof'} = $this->toSizeof();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Raise
+     * @return Sizeof
      * @throws Exception
      */
-    public static function from(stdClass $obj): Raise {
-        if (!property_exists($obj, 'raise')) {
+    public static function from(stdClass $obj): Sizeof {
+        if (!property_exists($obj, 'sizeof')) {
             throw new Exception("Missing required property");
         }
-        return new Raise(
-         Raise::fromRaise($obj->{'raise'})
+        return new Sizeof(
+         Sizeof::fromSizeof($obj->{'sizeof'})
         );
     }
 
     /**
-     * @return Raise
+     * @return Sizeof
      */
-    public static function sample(): Raise {
-        return new Raise(
-         Raise::sampleRaise()
+    public static function sample(): Sizeof {
+        return new Sizeof(
+         Sizeof::sampleSizeof()
         );
     }
 }
 
-// This is an autogenerated file:Range
+// This is an autogenerated file:Stackalloc
 
-class Range {
-    private int $range; // json:range Required
+class Stackalloc {
+    private int $stackalloc; // json:stackalloc Required
 
     /**
-     * @param int $range
+     * @param int $stackalloc
      */
-    public function __construct(int $range) {
-        $this->range = $range;
+    public function __construct(int $stackalloc) {
+        $this->stackalloc = $stackalloc;
     }
 
     /**
@@ -41166,7 +41187,7 @@ class Range {
      * @throws Exception
      * @return int
      */
-    public static function fromRange(int $value): int {
+    public static function fromStackalloc(int $value): int {
         return $value; /*int*/
     }
 
@@ -41174,11 +41195,11 @@ class Range {
      * @throws Exception
      * @return int
      */
-    public function toRange(): int {
-        if (Range::validateRange($this->range))  {
-            return $this->range; /*int*/
+    public function toStackalloc(): int {
+        if (Stackalloc::validateStackalloc($this->stackalloc))  {
+            return $this->stackalloc; /*int*/
         }
-        throw new Exception('never get to this Range::range');
+        throw new Exception('never get to this Stackalloc::stackalloc');
     }
 
     /**
@@ -41186,7 +41207,7 @@ class Range {
      * @return bool
      * @throws Exception
      */
-    public static function validateRange(int $value): bool {
+    public static function validateStackalloc(int $value): bool {
         return true;
     }
 
@@ -41194,18 +41215,18 @@ class Range {
      * @throws Exception
      * @return int
      */
-    public function getRange(): int {
-        if (Range::validateRange($this->range))  {
-            return $this->range;
+    public function getStackalloc(): int {
+        if (Stackalloc::validateStackalloc($this->stackalloc))  {
+            return $this->stackalloc;
         }
-        throw new Exception('never get to getRange Range::range');
+        throw new Exception('never get to getStackalloc Stackalloc::stackalloc');
     }
 
     /**
      * @return int
      */
-    public static function sampleRange(): int {
-        return 31; /*31:range*/
+    public static function sampleStackalloc(): int {
+        return 31; /*31:stackalloc*/
     }
 
     /**
@@ -41213,7 +41234,7 @@ class Range {
      * @return bool
      */
     public function validate(): bool {
-        return Range::validateRange($this->range);
+        return Stackalloc::validateStackalloc($this->stackalloc);
     }
 
     /**
@@ -41222,44 +41243,44 @@ class Range {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'range'} = $this->toRange();
+        $out->{'stackalloc'} = $this->toStackalloc();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Range
+     * @return Stackalloc
      * @throws Exception
      */
-    public static function from(stdClass $obj): Range {
-        if (!property_exists($obj, 'range')) {
+    public static function from(stdClass $obj): Stackalloc {
+        if (!property_exists($obj, 'stackalloc')) {
             throw new Exception("Missing required property");
         }
-        return new Range(
-         Range::fromRange($obj->{'range'})
+        return new Stackalloc(
+         Stackalloc::fromStackalloc($obj->{'stackalloc'})
         );
     }
 
     /**
-     * @return Range
+     * @return Stackalloc
      */
-    public static function sample(): Range {
-        return new Range(
-         Range::sampleRange()
+    public static function sample(): Stackalloc {
+        return new Stackalloc(
+         Stackalloc::sampleStackalloc()
         );
     }
 }
 
-// This is an autogenerated file:ReadonlyClass
+// This is an autogenerated file:Standards
 
-class ReadonlyClass {
-    private int $readonly; // json:readonly Required
+class Standards {
+    private int $standards; // json:Standards Required
 
     /**
-     * @param int $readonly
+     * @param int $standards
      */
-    public function __construct(int $readonly) {
-        $this->readonly = $readonly;
+    public function __construct(int $standards) {
+        $this->standards = $standards;
     }
 
     /**
@@ -41267,7 +41288,7 @@ class ReadonlyClass {
      * @throws Exception
      * @return int
      */
-    public static function fromReadonly(int $value): int {
+    public static function fromStandards(int $value): int {
         return $value; /*int*/
     }
 
@@ -41275,11 +41296,11 @@ class ReadonlyClass {
      * @throws Exception
      * @return int
      */
-    public function toReadonly(): int {
-        if (ReadonlyClass::validateReadonly($this->readonly))  {
-            return $this->readonly; /*int*/
+    public function toStandards(): int {
+        if (Standards::validateStandards($this->standards))  {
+            return $this->standards; /*int*/
         }
-        throw new Exception('never get to this ReadonlyClass::readonly');
+        throw new Exception('never get to this Standards::standards');
     }
 
     /**
@@ -41287,7 +41308,7 @@ class ReadonlyClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateReadonly(int $value): bool {
+    public static function validateStandards(int $value): bool {
         return true;
     }
 
@@ -41295,18 +41316,18 @@ class ReadonlyClass {
      * @throws Exception
      * @return int
      */
-    public function getReadonly(): int {
-        if (ReadonlyClass::validateReadonly($this->readonly))  {
-            return $this->readonly;
+    public function getStandards(): int {
+        if (Standards::validateStandards($this->standards))  {
+            return $this->standards;
         }
-        throw new Exception('never get to getReadonly ReadonlyClass::readonly');
+        throw new Exception('never get to getStandards Standards::standards');
     }
 
     /**
      * @return int
      */
-    public static function sampleReadonly(): int {
-        return 31; /*31:readonly*/
+    public static function sampleStandards(): int {
+        return 31; /*31:standards*/
     }
 
     /**
@@ -41314,7 +41335,7 @@ class ReadonlyClass {
      * @return bool
      */
     public function validate(): bool {
-        return ReadonlyClass::validateReadonly($this->readonly);
+        return Standards::validateStandards($this->standards);
     }
 
     /**
@@ -41323,44 +41344,44 @@ class ReadonlyClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'readonly'} = $this->toReadonly();
+        $out->{'Standards'} = $this->toStandards();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ReadonlyClass
+     * @return Standards
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReadonlyClass {
-        if (!property_exists($obj, 'readonly')) {
+    public static function from(stdClass $obj): Standards {
+        if (!property_exists($obj, 'Standards')) {
             throw new Exception("Missing required property");
         }
-        return new ReadonlyClass(
-         ReadonlyClass::fromReadonly($obj->{'readonly'})
+        return new Standards(
+         Standards::fromStandards($obj->{'Standards'})
         );
     }
 
     /**
-     * @return ReadonlyClass
+     * @return Standards
      */
-    public static function sample(): ReadonlyClass {
-        return new ReadonlyClass(
-         ReadonlyClass::sampleReadonly()
+    public static function sample(): Standards {
+        return new Standards(
+         Standards::sampleStandards()
         );
     }
 }
 
-// This is an autogenerated file:Ref
+// This is an autogenerated file:StaticClass
 
-class Ref {
-    private int $ref; // json:ref Required
+class StaticClass {
+    private int $static; // json:static Required
 
     /**
-     * @param int $ref
+     * @param int $static
      */
-    public function __construct(int $ref) {
-        $this->ref = $ref;
+    public function __construct(int $static) {
+        $this->static = $static;
     }
 
     /**
@@ -41368,7 +41389,7 @@ class Ref {
      * @throws Exception
      * @return int
      */
-    public static function fromRef(int $value): int {
+    public static function fromStatic(int $value): int {
         return $value; /*int*/
     }
 
@@ -41376,11 +41397,11 @@ class Ref {
      * @throws Exception
      * @return int
      */
-    public function toRef(): int {
-        if (Ref::validateRef($this->ref))  {
-            return $this->ref; /*int*/
+    public function toStatic(): int {
+        if (StaticClass::validateStatic($this->static))  {
+            return $this->static; /*int*/
         }
-        throw new Exception('never get to this Ref::ref');
+        throw new Exception('never get to this StaticClass::static');
     }
 
     /**
@@ -41388,7 +41409,7 @@ class Ref {
      * @return bool
      * @throws Exception
      */
-    public static function validateRef(int $value): bool {
+    public static function validateStatic(int $value): bool {
         return true;
     }
 
@@ -41396,18 +41417,18 @@ class Ref {
      * @throws Exception
      * @return int
      */
-    public function getRef(): int {
-        if (Ref::validateRef($this->ref))  {
-            return $this->ref;
+    public function getStatic(): int {
+        if (StaticClass::validateStatic($this->static))  {
+            return $this->static;
         }
-        throw new Exception('never get to getRef Ref::ref');
+        throw new Exception('never get to getStatic StaticClass::static');
     }
 
     /**
      * @return int
      */
-    public static function sampleRef(): int {
-        return 31; /*31:ref*/
+    public static function sampleStatic(): int {
+        return 31; /*31:static*/
     }
 
     /**
@@ -41415,7 +41436,7 @@ class Ref {
      * @return bool
      */
     public function validate(): bool {
-        return Ref::validateRef($this->ref);
+        return StaticClass::validateStatic($this->static);
     }
 
     /**
@@ -41424,94 +41445,91 @@ class Ref {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'ref'} = $this->toRef();
+        $out->{'static'} = $this->toStatic();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Ref
+     * @return StaticClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Ref {
-        if (!property_exists($obj, 'ref')) {
+    public static function from(stdClass $obj): StaticClass {
+        if (!property_exists($obj, 'static')) {
             throw new Exception("Missing required property");
         }
-        return new Ref(
-         Ref::fromRef($obj->{'ref'})
+        return new StaticClass(
+         StaticClass::fromStatic($obj->{'static'})
         );
     }
 
     /**
-     * @return Ref
+     * @return StaticClass
      */
-    public static function sample(): Ref {
-        return new Ref(
-         Ref::sampleRef()
+    public static function sample(): StaticClass {
+        return new StaticClass(
+         StaticClass::sampleStatic()
         );
     }
 }
 
-// This is an autogenerated file:RegExp
+// This is an autogenerated file:StaticAssert
 
-class RegExp {
-    private string $regExp; // json:RegExp Required
+class StaticAssert {
+    private int $staticAssert; // json:static_assert Required
 
     /**
-     * @param string $regExp
+     * @param int $staticAssert
      */
-    public function __construct(string $regExp) {
-        $this->regExp = $regExp;
+    public function __construct(int $staticAssert) {
+        $this->staticAssert = $staticAssert;
     }
 
     /**
-     * @param string $value
+     * @param int $value
      * @throws Exception
-     * @return string
+     * @return int
      */
-    public static function fromRegExp(string $value): string {
-        return $value; /*uuid*/
+    public static function fromStaticAssert(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return string
+     * @return int
      */
-    public function toRegExp(): string {
-        if (RegExp::validateRegExp($this->regExp))  {
-            return $this->regExp; /*uuid*/
+    public function toStaticAssert(): int {
+        if (StaticAssert::validateStaticAssert($this->staticAssert))  {
+            return $this->staticAssert; /*int*/
         }
-        throw new Exception('never get to this RegExp::regExp');
+        throw new Exception('never get to this StaticAssert::staticAssert');
     }
 
     /**
-     * @param string
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateRegExp(string $value): bool {
-        if (!preg_match('/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/', $value)) {
-            throw new Exception("Attribute Error:RegExp::regExp");
-        }
+    public static function validateStaticAssert(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return string
+     * @return int
      */
-    public function getRegExp(): string {
-        if (RegExp::validateRegExp($this->regExp))  {
-            return $this->regExp;
+    public function getStaticAssert(): int {
+        if (StaticAssert::validateStaticAssert($this->staticAssert))  {
+            return $this->staticAssert;
         }
-        throw new Exception('never get to getRegExp RegExp::regExp');
+        throw new Exception('never get to getStaticAssert StaticAssert::staticAssert');
     }
 
     /**
-     * @return string
+     * @return int
      */
-    public static function sampleRegExp(): string {
-        return '9277b8fb-2a65-4663-a36c-8d417e2d284b'; /*31:regExp*/
+    public static function sampleStaticAssert(): int {
+        return 31; /*31:staticAssert*/
     }
 
     /**
@@ -41519,7 +41537,7 @@ class RegExp {
      * @return bool
      */
     public function validate(): bool {
-        return RegExp::validateRegExp($this->regExp);
+        return StaticAssert::validateStaticAssert($this->staticAssert);
     }
 
     /**
@@ -41528,44 +41546,227 @@ class RegExp {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'RegExp'} = $this->toRegExp();
+        $out->{'static_assert'} = $this->toStaticAssert();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return RegExp
+     * @return StaticAssert
      * @throws Exception
      */
-    public static function from(stdClass $obj): RegExp {
-        if (!property_exists($obj, 'RegExp')) {
+    public static function from(stdClass $obj): StaticAssert {
+        if (!property_exists($obj, 'static_assert')) {
             throw new Exception("Missing required property");
         }
-        return new RegExp(
-         RegExp::fromRegExp($obj->{'RegExp'})
+        return new StaticAssert(
+         StaticAssert::fromStaticAssert($obj->{'static_assert'})
         );
     }
 
     /**
-     * @return RegExp
+     * @return StaticAssert
      */
-    public static function sample(): RegExp {
-        return new RegExp(
-         RegExp::sampleRegExp()
+    public static function sample(): StaticAssert {
+        return new StaticAssert(
+         StaticAssert::sampleStaticAssert()
         );
     }
 }
 
-// This is an autogenerated file:Register
+// This is an autogenerated file:Obj5
 
-class Register {
-    private int $register; // json:register Required
+class Obj5 {
+    private int $dummy; // json:dummy Required
+    private This $obj5This; // json:this Required
+    private Obj5True $obj5True; // json:true Required
+    private TypeClass $obj5Type; // json:type Required
+    private StaticCast $staticCast; // json:static_cast Required
+    private StdDeserializer $stdDeserializer; // json:StdDeserializer Required
+    private StdSerializer $stdSerializer; // json:StdSerializer Required
+    private Strictfp $strictfp; // json:strictfp Required
+    private StringClass $string; // json:string Required
+    private Struct $struct; // json:struct Required
+    private Subscript $subscript; // json:subscript Required
+    private Super $super; // json:super Required
+    private SwitchClass $switch; // json:switch Required
+    private Symbol $symbol; // json:symbol Required
+    private Synchronized $synchronized; // json:synchronized Required
+    private System $system; // json:system Required
+    private Template $template; // json:template Required
+    private Then $then; // json:then Required
+    private ThreadLocal $threadLocal; // json:thread_local Required
+    private ThrowClass $throw; // json:throw Required
+    private Throws $throws; // json:throws Required
+    private TimeOnly $timeOnly; // json:TimeOnly Required
+    private TimeOnlyConverter $timeOnlyConverter; // json:TimeOnlyConverter Required
+    private ToJSON $toJSON; // json:to_json Required
+    private ToString $toString; // json:toString Required
+    private TopLevelClass $topLevel; // json:top_level Required
+    private Transient $transient; // json:transient Required
+    private TrueClass $true; // json:True Required
+    private TryClass $try; // json:try Required
+    private Type $type; // json:Type Required
+    private Typealias $typealias; // json:typealias Required
+    private Typedef $typedef; // json:typedef Required
+    private Typeid $typeid; // json:typeid Required
+    private Typename $typename; // json:typename Required
+    private Typeof $typeof; // json:typeof Required
+    private Uint $uint; // json:uint Required
+    private Ulong $ulong; // json:ulong Required
+    private Unchecked $unchecked; // json:unchecked Required
+    private Undefined $undefined; // json:undefined Required
+    private Union $union; // json:union Required
+    private Unowned $unowned; // json:unowned Required
+    private Unsafe $unsafe; // json:unsafe Required
+    private Unsigned $unsigned; // json:unsigned Required
+    private Ushort $ushort; // json:ushort Required
+    private Using $using; // json:using Required
+    private Utf8JSONReader $utf8JSONReader; // json:Utf8JsonReader Required
+    private Utf8JSONWriter $utf8JSONWriter; // json:Utf8JsonWriter Required
+    private UUID $uuid; // json:UUID Required
+    private VarClass $var; // json:var Required
+    private Virtual $virtual; // json:virtual Required
+    private VoidClass $void; // json:void Required
+    private Volatile $volatile; // json:volatile Required
+    private WcharT $wcharT; // json:wchar_t Required
+    private Weak $weak; // json:weak Required
+    private Where $where; // json:where Required
+    private WhileClass $while; // json:while Required
+    private WillSet $willSet; // json:willSet Required
+    private With $with; // json:with Required
+    private XorClass $xor; // json:xor Required
+    private XorEq $xorEq; // json:xor_eq Required
+    private Yes $yes; // json:YES Required
+    private YieldClass $yield; // json:yield Required
 
     /**
-     * @param int $register
+     * @param int $dummy
+     * @param This $obj5This
+     * @param Obj5True $obj5True
+     * @param TypeClass $obj5Type
+     * @param StaticCast $staticCast
+     * @param StdDeserializer $stdDeserializer
+     * @param StdSerializer $stdSerializer
+     * @param Strictfp $strictfp
+     * @param StringClass $string
+     * @param Struct $struct
+     * @param Subscript $subscript
+     * @param Super $super
+     * @param SwitchClass $switch
+     * @param Symbol $symbol
+     * @param Synchronized $synchronized
+     * @param System $system
+     * @param Template $template
+     * @param Then $then
+     * @param ThreadLocal $threadLocal
+     * @param ThrowClass $throw
+     * @param Throws $throws
+     * @param TimeOnly $timeOnly
+     * @param TimeOnlyConverter $timeOnlyConverter
+     * @param ToJSON $toJSON
+     * @param ToString $toString
+     * @param TopLevelClass $topLevel
+     * @param Transient $transient
+     * @param TrueClass $true
+     * @param TryClass $try
+     * @param Type $type
+     * @param Typealias $typealias
+     * @param Typedef $typedef
+     * @param Typeid $typeid
+     * @param Typename $typename
+     * @param Typeof $typeof
+     * @param Uint $uint
+     * @param Ulong $ulong
+     * @param Unchecked $unchecked
+     * @param Undefined $undefined
+     * @param Union $union
+     * @param Unowned $unowned
+     * @param Unsafe $unsafe
+     * @param Unsigned $unsigned
+     * @param Ushort $ushort
+     * @param Using $using
+     * @param Utf8JSONReader $utf8JSONReader
+     * @param Utf8JSONWriter $utf8JSONWriter
+     * @param UUID $uuid
+     * @param VarClass $var
+     * @param Virtual $virtual
+     * @param VoidClass $void
+     * @param Volatile $volatile
+     * @param WcharT $wcharT
+     * @param Weak $weak
+     * @param Where $where
+     * @param WhileClass $while
+     * @param WillSet $willSet
+     * @param With $with
+     * @param XorClass $xor
+     * @param XorEq $xorEq
+     * @param Yes $yes
+     * @param YieldClass $yield
      */
-    public function __construct(int $register) {
-        $this->register = $register;
+    public function __construct(int $dummy, This $obj5This, Obj5True $obj5True, TypeClass $obj5Type, StaticCast $staticCast, StdDeserializer $stdDeserializer, StdSerializer $stdSerializer, Strictfp $strictfp, StringClass $string, Struct $struct, Subscript $subscript, Super $super, SwitchClass $switch, Symbol $symbol, Synchronized $synchronized, System $system, Template $template, Then $then, ThreadLocal $threadLocal, ThrowClass $throw, Throws $throws, TimeOnly $timeOnly, TimeOnlyConverter $timeOnlyConverter, ToJSON $toJSON, ToString $toString, TopLevelClass $topLevel, Transient $transient, TrueClass $true, TryClass $try, Type $type, Typealias $typealias, Typedef $typedef, Typeid $typeid, Typename $typename, Typeof $typeof, Uint $uint, Ulong $ulong, Unchecked $unchecked, Undefined $undefined, Union $union, Unowned $unowned, Unsafe $unsafe, Unsigned $unsigned, Ushort $ushort, Using $using, Utf8JSONReader $utf8JSONReader, Utf8JSONWriter $utf8JSONWriter, UUID $uuid, VarClass $var, Virtual $virtual, VoidClass $void, Volatile $volatile, WcharT $wcharT, Weak $weak, Where $where, WhileClass $while, WillSet $willSet, With $with, XorClass $xor, XorEq $xorEq, Yes $yes, YieldClass $yield) {
+        $this->dummy = $dummy;
+        $this->obj5This = $obj5This;
+        $this->obj5True = $obj5True;
+        $this->obj5Type = $obj5Type;
+        $this->staticCast = $staticCast;
+        $this->stdDeserializer = $stdDeserializer;
+        $this->stdSerializer = $stdSerializer;
+        $this->strictfp = $strictfp;
+        $this->string = $string;
+        $this->struct = $struct;
+        $this->subscript = $subscript;
+        $this->super = $super;
+        $this->switch = $switch;
+        $this->symbol = $symbol;
+        $this->synchronized = $synchronized;
+        $this->system = $system;
+        $this->template = $template;
+        $this->then = $then;
+        $this->threadLocal = $threadLocal;
+        $this->throw = $throw;
+        $this->throws = $throws;
+        $this->timeOnly = $timeOnly;
+        $this->timeOnlyConverter = $timeOnlyConverter;
+        $this->toJSON = $toJSON;
+        $this->toString = $toString;
+        $this->topLevel = $topLevel;
+        $this->transient = $transient;
+        $this->true = $true;
+        $this->try = $try;
+        $this->type = $type;
+        $this->typealias = $typealias;
+        $this->typedef = $typedef;
+        $this->typeid = $typeid;
+        $this->typename = $typename;
+        $this->typeof = $typeof;
+        $this->uint = $uint;
+        $this->ulong = $ulong;
+        $this->unchecked = $unchecked;
+        $this->undefined = $undefined;
+        $this->union = $union;
+        $this->unowned = $unowned;
+        $this->unsafe = $unsafe;
+        $this->unsigned = $unsigned;
+        $this->ushort = $ushort;
+        $this->using = $using;
+        $this->utf8JSONReader = $utf8JSONReader;
+        $this->utf8JSONWriter = $utf8JSONWriter;
+        $this->uuid = $uuid;
+        $this->var = $var;
+        $this->virtual = $virtual;
+        $this->void = $void;
+        $this->volatile = $volatile;
+        $this->wcharT = $wcharT;
+        $this->weak = $weak;
+        $this->where = $where;
+        $this->while = $while;
+        $this->willSet = $willSet;
+        $this->with = $with;
+        $this->xor = $xor;
+        $this->xorEq = $xorEq;
+        $this->yes = $yes;
+        $this->yield = $yield;
     }
 
     /**
@@ -41573,7 +41774,7 @@ class Register {
      * @throws Exception
      * @return int
      */
-    public static function fromRegister(int $value): int {
+    public static function fromDummy(int $value): int {
         return $value; /*int*/
     }
 
@@ -41581,11 +41782,11 @@ class Register {
      * @throws Exception
      * @return int
      */
-    public function toRegister(): int {
-        if (Register::validateRegister($this->register))  {
-            return $this->register; /*int*/
+    public function toDummy(): int {
+        if (Obj5::validateDummy($this->dummy))  {
+            return $this->dummy; /*int*/
         }
-        throw new Exception('never get to this Register::register');
+        throw new Exception('never get to this Obj5::dummy');
     }
 
     /**
@@ -41593,7 +41794,7 @@ class Register {
      * @return bool
      * @throws Exception
      */
-    public static function validateRegister(int $value): bool {
+    public static function validateDummy(int $value): bool {
         return true;
     }
 
@@ -41601,3149 +41802,2946 @@ class Register {
      * @throws Exception
      * @return int
      */
-    public function getRegister(): int {
-        if (Register::validateRegister($this->register))  {
-            return $this->register;
+    public function getDummy(): int {
+        if (Obj5::validateDummy($this->dummy))  {
+            return $this->dummy;
         }
-        throw new Exception('never get to getRegister Register::register');
+        throw new Exception('never get to getDummy Obj5::dummy');
     }
 
     /**
      * @return int
      */
-    public static function sampleRegister(): int {
-        return 31; /*31:register*/
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return Register::validateRegister($this->register);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'register'} = $this->toRegister();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return Register
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): Register {
-        if (!property_exists($obj, 'register')) {
-            throw new Exception("Missing required property");
-        }
-        return new Register(
-         Register::fromRegister($obj->{'register'})
-        );
-    }
-
-    /**
-     * @return Register
-     */
-    public static function sample(): Register {
-        return new Register(
-         Register::sampleRegister()
-        );
-    }
-}
-
-// This is an autogenerated file:ReinterpretCast
-
-class ReinterpretCast {
-    private int $reinterpretCast; // json:reinterpret_cast Required
-
-    /**
-     * @param int $reinterpretCast
-     */
-    public function __construct(int $reinterpretCast) {
-        $this->reinterpretCast = $reinterpretCast;
+    public static function sampleDummy(): int {
+        return 31; /*31:dummy*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return This
      */
-    public static function fromReinterpretCast(int $value): int {
-        return $value; /*int*/
+    public static function fromObj5This(stdClass $value): This {
+        return This::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toReinterpretCast(): int {
-        if (ReinterpretCast::validateReinterpretCast($this->reinterpretCast))  {
-            return $this->reinterpretCast; /*int*/
+    public function toObj5This(): stdClass {
+        if (Obj5::validateObj5This($this->obj5This))  {
+            return $this->obj5This->to(); /*class*/
         }
-        throw new Exception('never get to this ReinterpretCast::reinterpretCast');
+        throw new Exception('never get to this Obj5::obj5This');
     }
 
     /**
-     * @param int
+     * @param This
      * @return bool
      * @throws Exception
      */
-    public static function validateReinterpretCast(int $value): bool {
+    public static function validateObj5This(This $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return This
      */
-    public function getReinterpretCast(): int {
-        if (ReinterpretCast::validateReinterpretCast($this->reinterpretCast))  {
-            return $this->reinterpretCast;
+    public function getObj5This(): This {
+        if (Obj5::validateObj5This($this->obj5This))  {
+            return $this->obj5This;
         }
-        throw new Exception('never get to getReinterpretCast ReinterpretCast::reinterpretCast');
+        throw new Exception('never get to getObj5This Obj5::obj5This');
     }
 
     /**
-     * @return int
+     * @return This
      */
-    public static function sampleReinterpretCast(): int {
-        return 31; /*31:reinterpretCast*/
+    public static function sampleObj5This(): This {
+        return This::sample(); /*32:obj5This*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Obj5True
      */
-    public function validate(): bool {
-        return ReinterpretCast::validateReinterpretCast($this->reinterpretCast);
+    public static function fromObj5True(stdClass $value): Obj5True {
+        return Obj5True::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
-        return $out;
+    public function toObj5True(): stdClass {
+        if (Obj5::validateObj5True($this->obj5True))  {
+            return $this->obj5True->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::obj5True');
     }
 
     /**
-     * @param stdClass $obj
-     * @return ReinterpretCast
+     * @param Obj5True
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReinterpretCast {
-        if (!property_exists($obj, 'reinterpret_cast')) {
-            throw new Exception("Missing required property");
-        }
-        return new ReinterpretCast(
-         ReinterpretCast::fromReinterpretCast($obj->{'reinterpret_cast'})
-        );
+    public static function validateObj5True(Obj5True $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return ReinterpretCast
+     * @throws Exception
+     * @return Obj5True
      */
-    public static function sample(): ReinterpretCast {
-        return new ReinterpretCast(
-         ReinterpretCast::sampleReinterpretCast()
-        );
+    public function getObj5True(): Obj5True {
+        if (Obj5::validateObj5True($this->obj5True))  {
+            return $this->obj5True;
+        }
+        throw new Exception('never get to getObj5True Obj5::obj5True');
     }
-}
-
-// This is an autogenerated file:Repeat
-
-class Repeat {
-    private int $repeat; // json:repeat Required
 
     /**
-     * @param int $repeat
+     * @return Obj5True
      */
-    public function __construct(int $repeat) {
-        $this->repeat = $repeat;
+    public static function sampleObj5True(): Obj5True {
+        return Obj5True::sample(); /*33:obj5True*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return TypeClass
      */
-    public static function fromRepeat(int $value): int {
-        return $value; /*int*/
+    public static function fromObj5Type(stdClass $value): TypeClass {
+        return TypeClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRepeat(): int {
-        if (Repeat::validateRepeat($this->repeat))  {
-            return $this->repeat; /*int*/
+    public function toObj5Type(): stdClass {
+        if (Obj5::validateObj5Type($this->obj5Type))  {
+            return $this->obj5Type->to(); /*class*/
         }
-        throw new Exception('never get to this Repeat::repeat');
+        throw new Exception('never get to this Obj5::obj5Type');
     }
 
     /**
-     * @param int
+     * @param TypeClass
      * @return bool
      * @throws Exception
      */
-    public static function validateRepeat(int $value): bool {
+    public static function validateObj5Type(TypeClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return TypeClass
      */
-    public function getRepeat(): int {
-        if (Repeat::validateRepeat($this->repeat))  {
-            return $this->repeat;
+    public function getObj5Type(): TypeClass {
+        if (Obj5::validateObj5Type($this->obj5Type))  {
+            return $this->obj5Type;
         }
-        throw new Exception('never get to getRepeat Repeat::repeat');
+        throw new Exception('never get to getObj5Type Obj5::obj5Type');
     }
 
     /**
-     * @return int
+     * @return TypeClass
      */
-    public static function sampleRepeat(): int {
-        return 31; /*31:repeat*/
+    public static function sampleObj5Type(): TypeClass {
+        return TypeClass::sample(); /*34:obj5Type*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return StaticCast
      */
-    public function validate(): bool {
-        return Repeat::validateRepeat($this->repeat);
+    public static function fromStaticCast(stdClass $value): StaticCast {
+        return StaticCast::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'repeat'} = $this->toRepeat();
-        return $out;
+    public function toStaticCast(): stdClass {
+        if (Obj5::validateStaticCast($this->staticCast))  {
+            return $this->staticCast->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::staticCast');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Repeat
+     * @param StaticCast
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Repeat {
-        if (!property_exists($obj, 'repeat')) {
-            throw new Exception("Missing required property");
-        }
-        return new Repeat(
-         Repeat::fromRepeat($obj->{'repeat'})
-        );
+    public static function validateStaticCast(StaticCast $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Repeat
+     * @throws Exception
+     * @return StaticCast
      */
-    public static function sample(): Repeat {
-        return new Repeat(
-         Repeat::sampleRepeat()
-        );
+    public function getStaticCast(): StaticCast {
+        if (Obj5::validateStaticCast($this->staticCast))  {
+            return $this->staticCast;
+        }
+        throw new Exception('never get to getStaticCast Obj5::staticCast');
     }
-}
-
-// This is an autogenerated file:RequireClass
-
-class RequireClass {
-    private int $require; // json:require Required
 
     /**
-     * @param int $require
+     * @return StaticCast
      */
-    public function __construct(int $require) {
-        $this->require = $require;
+    public static function sampleStaticCast(): StaticCast {
+        return StaticCast::sample(); /*35:staticCast*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return StdDeserializer
      */
-    public static function fromRequire(int $value): int {
-        return $value; /*int*/
+    public static function fromStdDeserializer(stdClass $value): StdDeserializer {
+        return StdDeserializer::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRequire(): int {
-        if (RequireClass::validateRequire($this->require))  {
-            return $this->require; /*int*/
+    public function toStdDeserializer(): stdClass {
+        if (Obj5::validateStdDeserializer($this->stdDeserializer))  {
+            return $this->stdDeserializer->to(); /*class*/
         }
-        throw new Exception('never get to this RequireClass::require');
+        throw new Exception('never get to this Obj5::stdDeserializer');
     }
 
     /**
-     * @param int
+     * @param StdDeserializer
      * @return bool
      * @throws Exception
      */
-    public static function validateRequire(int $value): bool {
+    public static function validateStdDeserializer(StdDeserializer $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return StdDeserializer
      */
-    public function getRequire(): int {
-        if (RequireClass::validateRequire($this->require))  {
-            return $this->require;
+    public function getStdDeserializer(): StdDeserializer {
+        if (Obj5::validateStdDeserializer($this->stdDeserializer))  {
+            return $this->stdDeserializer;
         }
-        throw new Exception('never get to getRequire RequireClass::require');
+        throw new Exception('never get to getStdDeserializer Obj5::stdDeserializer');
     }
 
     /**
-     * @return int
+     * @return StdDeserializer
      */
-    public static function sampleRequire(): int {
-        return 31; /*31:require*/
+    public static function sampleStdDeserializer(): StdDeserializer {
+        return StdDeserializer::sample(); /*36:stdDeserializer*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return StdSerializer
      */
-    public function validate(): bool {
-        return RequireClass::validateRequire($this->require);
+    public static function fromStdSerializer(stdClass $value): StdSerializer {
+        return StdSerializer::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'require'} = $this->toRequire();
-        return $out;
+    public function toStdSerializer(): stdClass {
+        if (Obj5::validateStdSerializer($this->stdSerializer))  {
+            return $this->stdSerializer->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::stdSerializer');
     }
 
     /**
-     * @param stdClass $obj
-     * @return RequireClass
+     * @param StdSerializer
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): RequireClass {
-        if (!property_exists($obj, 'require')) {
-            throw new Exception("Missing required property");
-        }
-        return new RequireClass(
-         RequireClass::fromRequire($obj->{'require'})
-        );
+    public static function validateStdSerializer(StdSerializer $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return RequireClass
+     * @throws Exception
+     * @return StdSerializer
      */
-    public static function sample(): RequireClass {
-        return new RequireClass(
-         RequireClass::sampleRequire()
-        );
+    public function getStdSerializer(): StdSerializer {
+        if (Obj5::validateStdSerializer($this->stdSerializer))  {
+            return $this->stdSerializer;
+        }
+        throw new Exception('never get to getStdSerializer Obj5::stdSerializer');
     }
-}
-
-// This is an autogenerated file:Required
-
-class Required {
-    private int $required; // json:required Required
 
     /**
-     * @param int $required
+     * @return StdSerializer
      */
-    public function __construct(int $required) {
-        $this->required = $required;
+    public static function sampleStdSerializer(): StdSerializer {
+        return StdSerializer::sample(); /*37:stdSerializer*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Strictfp
      */
-    public static function fromRequired(int $value): int {
-        return $value; /*int*/
+    public static function fromStrictfp(stdClass $value): Strictfp {
+        return Strictfp::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRequired(): int {
-        if (Required::validateRequired($this->required))  {
-            return $this->required; /*int*/
+    public function toStrictfp(): stdClass {
+        if (Obj5::validateStrictfp($this->strictfp))  {
+            return $this->strictfp->to(); /*class*/
         }
-        throw new Exception('never get to this Required::required');
+        throw new Exception('never get to this Obj5::strictfp');
     }
 
     /**
-     * @param int
+     * @param Strictfp
      * @return bool
      * @throws Exception
      */
-    public static function validateRequired(int $value): bool {
+    public static function validateStrictfp(Strictfp $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Strictfp
      */
-    public function getRequired(): int {
-        if (Required::validateRequired($this->required))  {
-            return $this->required;
+    public function getStrictfp(): Strictfp {
+        if (Obj5::validateStrictfp($this->strictfp))  {
+            return $this->strictfp;
         }
-        throw new Exception('never get to getRequired Required::required');
+        throw new Exception('never get to getStrictfp Obj5::strictfp');
     }
 
     /**
-     * @return int
+     * @return Strictfp
      */
-    public static function sampleRequired(): int {
-        return 31; /*31:required*/
+    public static function sampleStrictfp(): Strictfp {
+        return Strictfp::sample(); /*38:strictfp*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return StringClass
      */
-    public function validate(): bool {
-        return Required::validateRequired($this->required);
+    public static function fromString(stdClass $value): StringClass {
+        return StringClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'required'} = $this->toRequired();
-        return $out;
+    public function purpleToString(): stdClass {
+        if (Obj5::validateString($this->string))  {
+            return $this->string->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::string');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Required
+     * @param StringClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Required {
-        if (!property_exists($obj, 'required')) {
-            throw new Exception("Missing required property");
-        }
-        return new Required(
-         Required::fromRequired($obj->{'required'})
-        );
+    public static function validateString(StringClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Required
+     * @throws Exception
+     * @return StringClass
      */
-    public static function sample(): Required {
-        return new Required(
-         Required::sampleRequired()
-        );
+    public function getString(): StringClass {
+        if (Obj5::validateString($this->string))  {
+            return $this->string;
+        }
+        throw new Exception('never get to getString Obj5::string');
     }
-}
-
-// This is an autogenerated file:Requires
-
-class Requires {
-    private int $requires; // json:requires Required
 
     /**
-     * @param int $requires
+     * @return StringClass
      */
-    public function __construct(int $requires) {
-        $this->requires = $requires;
+    public static function sampleString(): StringClass {
+        return StringClass::sample(); /*39:string*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Struct
      */
-    public static function fromRequires(int $value): int {
-        return $value; /*int*/
+    public static function fromStruct(stdClass $value): Struct {
+        return Struct::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRequires(): int {
-        if (Requires::validateRequires($this->requires))  {
-            return $this->requires; /*int*/
+    public function toStruct(): stdClass {
+        if (Obj5::validateStruct($this->struct))  {
+            return $this->struct->to(); /*class*/
         }
-        throw new Exception('never get to this Requires::requires');
+        throw new Exception('never get to this Obj5::struct');
     }
 
     /**
-     * @param int
+     * @param Struct
      * @return bool
      * @throws Exception
      */
-    public static function validateRequires(int $value): bool {
+    public static function validateStruct(Struct $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Struct
      */
-    public function getRequires(): int {
-        if (Requires::validateRequires($this->requires))  {
-            return $this->requires;
+    public function getStruct(): Struct {
+        if (Obj5::validateStruct($this->struct))  {
+            return $this->struct;
         }
-        throw new Exception('never get to getRequires Requires::requires');
+        throw new Exception('never get to getStruct Obj5::struct');
     }
 
     /**
-     * @return int
+     * @return Struct
      */
-    public static function sampleRequires(): int {
-        return 31; /*31:requires*/
+    public static function sampleStruct(): Struct {
+        return Struct::sample(); /*40:struct*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Subscript
      */
-    public function validate(): bool {
-        return Requires::validateRequires($this->requires);
+    public static function fromSubscript(stdClass $value): Subscript {
+        return Subscript::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'requires'} = $this->toRequires();
-        return $out;
+    public function toSubscript(): stdClass {
+        if (Obj5::validateSubscript($this->subscript))  {
+            return $this->subscript->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::subscript');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Requires
+     * @param Subscript
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Requires {
-        if (!property_exists($obj, 'requires')) {
-            throw new Exception("Missing required property");
-        }
-        return new Requires(
-         Requires::fromRequires($obj->{'requires'})
-        );
+    public static function validateSubscript(Subscript $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Requires
+     * @throws Exception
+     * @return Subscript
      */
-    public static function sample(): Requires {
-        return new Requires(
-         Requires::sampleRequires()
-        );
+    public function getSubscript(): Subscript {
+        if (Obj5::validateSubscript($this->subscript))  {
+            return $this->subscript;
+        }
+        throw new Exception('never get to getSubscript Obj5::subscript');
     }
-}
-
-// This is an autogenerated file:Restrict
-
-class Restrict {
-    private int $restrict; // json:restrict Required
 
     /**
-     * @param int $restrict
+     * @return Subscript
      */
-    public function __construct(int $restrict) {
-        $this->restrict = $restrict;
+    public static function sampleSubscript(): Subscript {
+        return Subscript::sample(); /*41:subscript*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Super
      */
-    public static function fromRestrict(int $value): int {
-        return $value; /*int*/
+    public static function fromSuper(stdClass $value): Super {
+        return Super::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRestrict(): int {
-        if (Restrict::validateRestrict($this->restrict))  {
-            return $this->restrict; /*int*/
+    public function toSuper(): stdClass {
+        if (Obj5::validateSuper($this->super))  {
+            return $this->super->to(); /*class*/
         }
-        throw new Exception('never get to this Restrict::restrict');
+        throw new Exception('never get to this Obj5::super');
     }
 
     /**
-     * @param int
+     * @param Super
      * @return bool
      * @throws Exception
      */
-    public static function validateRestrict(int $value): bool {
+    public static function validateSuper(Super $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Super
      */
-    public function getRestrict(): int {
-        if (Restrict::validateRestrict($this->restrict))  {
-            return $this->restrict;
+    public function getSuper(): Super {
+        if (Obj5::validateSuper($this->super))  {
+            return $this->super;
         }
-        throw new Exception('never get to getRestrict Restrict::restrict');
+        throw new Exception('never get to getSuper Obj5::super');
     }
 
     /**
-     * @return int
+     * @return Super
      */
-    public static function sampleRestrict(): int {
-        return 31; /*31:restrict*/
+    public static function sampleSuper(): Super {
+        return Super::sample(); /*42:super*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return SwitchClass
      */
-    public function validate(): bool {
-        return Restrict::validateRestrict($this->restrict);
+    public static function fromSwitch(stdClass $value): SwitchClass {
+        return SwitchClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'restrict'} = $this->toRestrict();
-        return $out;
+    public function toSwitch(): stdClass {
+        if (Obj5::validateSwitch($this->switch))  {
+            return $this->switch->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::switch');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Restrict
+     * @param SwitchClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Restrict {
-        if (!property_exists($obj, 'restrict')) {
-            throw new Exception("Missing required property");
-        }
-        return new Restrict(
-         Restrict::fromRestrict($obj->{'restrict'})
-        );
+    public static function validateSwitch(SwitchClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Restrict
+     * @throws Exception
+     * @return SwitchClass
      */
-    public static function sample(): Restrict {
-        return new Restrict(
-         Restrict::sampleRestrict()
-        );
+    public function getSwitch(): SwitchClass {
+        if (Obj5::validateSwitch($this->switch))  {
+            return $this->switch;
+        }
+        throw new Exception('never get to getSwitch Obj5::switch');
     }
-}
-
-// This is an autogenerated file:Retain
-
-class Retain {
-    private int $retain; // json:retain Required
 
     /**
-     * @param int $retain
+     * @return SwitchClass
      */
-    public function __construct(int $retain) {
-        $this->retain = $retain;
+    public static function sampleSwitch(): SwitchClass {
+        return SwitchClass::sample(); /*43:switch*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Symbol
      */
-    public static function fromRetain(int $value): int {
-        return $value; /*int*/
+    public static function fromSymbol(stdClass $value): Symbol {
+        return Symbol::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRetain(): int {
-        if (Retain::validateRetain($this->retain))  {
-            return $this->retain; /*int*/
+    public function toSymbol(): stdClass {
+        if (Obj5::validateSymbol($this->symbol))  {
+            return $this->symbol->to(); /*class*/
         }
-        throw new Exception('never get to this Retain::retain');
+        throw new Exception('never get to this Obj5::symbol');
     }
 
     /**
-     * @param int
+     * @param Symbol
      * @return bool
      * @throws Exception
      */
-    public static function validateRetain(int $value): bool {
+    public static function validateSymbol(Symbol $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Symbol
      */
-    public function getRetain(): int {
-        if (Retain::validateRetain($this->retain))  {
-            return $this->retain;
+    public function getSymbol(): Symbol {
+        if (Obj5::validateSymbol($this->symbol))  {
+            return $this->symbol;
         }
-        throw new Exception('never get to getRetain Retain::retain');
+        throw new Exception('never get to getSymbol Obj5::symbol');
     }
 
     /**
-     * @return int
+     * @return Symbol
      */
-    public static function sampleRetain(): int {
-        return 31; /*31:retain*/
+    public static function sampleSymbol(): Symbol {
+        return Symbol::sample(); /*44:symbol*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Synchronized
      */
-    public function validate(): bool {
-        return Retain::validateRetain($this->retain);
+    public static function fromSynchronized(stdClass $value): Synchronized {
+        return Synchronized::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'retain'} = $this->toRetain();
-        return $out;
+    public function toSynchronized(): stdClass {
+        if (Obj5::validateSynchronized($this->synchronized))  {
+            return $this->synchronized->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::synchronized');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Retain
+     * @param Synchronized
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Retain {
-        if (!property_exists($obj, 'retain')) {
-            throw new Exception("Missing required property");
-        }
-        return new Retain(
-         Retain::fromRetain($obj->{'retain'})
-        );
+    public static function validateSynchronized(Synchronized $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Retain
+     * @throws Exception
+     * @return Synchronized
      */
-    public static function sample(): Retain {
-        return new Retain(
-         Retain::sampleRetain()
-        );
+    public function getSynchronized(): Synchronized {
+        if (Obj5::validateSynchronized($this->synchronized))  {
+            return $this->synchronized;
+        }
+        throw new Exception('never get to getSynchronized Obj5::synchronized');
     }
-}
-
-// This is an autogenerated file:Rethrows
-
-class Rethrows {
-    private int $rethrows; // json:rethrows Required
 
     /**
-     * @param int $rethrows
+     * @return Synchronized
      */
-    public function __construct(int $rethrows) {
-        $this->rethrows = $rethrows;
+    public static function sampleSynchronized(): Synchronized {
+        return Synchronized::sample(); /*45:synchronized*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return System
      */
-    public static function fromRethrows(int $value): int {
-        return $value; /*int*/
+    public static function fromSystem(stdClass $value): System {
+        return System::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRethrows(): int {
-        if (Rethrows::validateRethrows($this->rethrows))  {
-            return $this->rethrows; /*int*/
+    public function toSystem(): stdClass {
+        if (Obj5::validateSystem($this->system))  {
+            return $this->system->to(); /*class*/
         }
-        throw new Exception('never get to this Rethrows::rethrows');
+        throw new Exception('never get to this Obj5::system');
     }
 
     /**
-     * @param int
+     * @param System
      * @return bool
      * @throws Exception
      */
-    public static function validateRethrows(int $value): bool {
+    public static function validateSystem(System $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return System
      */
-    public function getRethrows(): int {
-        if (Rethrows::validateRethrows($this->rethrows))  {
-            return $this->rethrows;
+    public function getSystem(): System {
+        if (Obj5::validateSystem($this->system))  {
+            return $this->system;
         }
-        throw new Exception('never get to getRethrows Rethrows::rethrows');
+        throw new Exception('never get to getSystem Obj5::system');
     }
 
     /**
-     * @return int
+     * @return System
      */
-    public static function sampleRethrows(): int {
-        return 31; /*31:rethrows*/
+    public static function sampleSystem(): System {
+        return System::sample(); /*46:system*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Template
      */
-    public function validate(): bool {
-        return Rethrows::validateRethrows($this->rethrows);
+    public static function fromTemplate(stdClass $value): Template {
+        return Template::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'rethrows'} = $this->toRethrows();
-        return $out;
+    public function toTemplate(): stdClass {
+        if (Obj5::validateTemplate($this->template))  {
+            return $this->template->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::template');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Rethrows
+     * @param Template
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Rethrows {
-        if (!property_exists($obj, 'rethrows')) {
-            throw new Exception("Missing required property");
-        }
-        return new Rethrows(
-         Rethrows::fromRethrows($obj->{'rethrows'})
-        );
+    public static function validateTemplate(Template $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Rethrows
+     * @throws Exception
+     * @return Template
      */
-    public static function sample(): Rethrows {
-        return new Rethrows(
-         Rethrows::sampleRethrows()
-        );
+    public function getTemplate(): Template {
+        if (Obj5::validateTemplate($this->template))  {
+            return $this->template;
+        }
+        throw new Exception('never get to getTemplate Obj5::template');
     }
-}
-
-// This is an autogenerated file:ReturnClass
-
-class ReturnClass {
-    private int $return; // json:return Required
 
     /**
-     * @param int $return
+     * @return Template
      */
-    public function __construct(int $return) {
-        $this->return = $return;
+    public static function sampleTemplate(): Template {
+        return Template::sample(); /*47:template*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Then
      */
-    public static function fromReturn(int $value): int {
-        return $value; /*int*/
+    public static function fromThen(stdClass $value): Then {
+        return Then::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toReturn(): int {
-        if (ReturnClass::validateReturn($this->return))  {
-            return $this->return; /*int*/
+    public function toThen(): stdClass {
+        if (Obj5::validateThen($this->then))  {
+            return $this->then->to(); /*class*/
         }
-        throw new Exception('never get to this ReturnClass::return');
+        throw new Exception('never get to this Obj5::then');
     }
 
     /**
-     * @param int
+     * @param Then
      * @return bool
      * @throws Exception
      */
-    public static function validateReturn(int $value): bool {
+    public static function validateThen(Then $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Then
      */
-    public function getReturn(): int {
-        if (ReturnClass::validateReturn($this->return))  {
-            return $this->return;
+    public function getThen(): Then {
+        if (Obj5::validateThen($this->then))  {
+            return $this->then;
         }
-        throw new Exception('never get to getReturn ReturnClass::return');
+        throw new Exception('never get to getThen Obj5::then');
     }
 
     /**
-     * @return int
+     * @return Then
      */
-    public static function sampleReturn(): int {
-        return 31; /*31:return*/
+    public static function sampleThen(): Then {
+        return Then::sample(); /*48:then*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ThreadLocal
      */
-    public function validate(): bool {
-        return ReturnClass::validateReturn($this->return);
+    public static function fromThreadLocal(stdClass $value): ThreadLocal {
+        return ThreadLocal::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'return'} = $this->toReturn();
-        return $out;
+    public function toThreadLocal(): stdClass {
+        if (Obj5::validateThreadLocal($this->threadLocal))  {
+            return $this->threadLocal->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::threadLocal');
     }
 
     /**
-     * @param stdClass $obj
-     * @return ReturnClass
+     * @param ThreadLocal
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReturnClass {
-        if (!property_exists($obj, 'return')) {
-            throw new Exception("Missing required property");
-        }
-        return new ReturnClass(
-         ReturnClass::fromReturn($obj->{'return'})
-        );
+    public static function validateThreadLocal(ThreadLocal $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return ReturnClass
+     * @throws Exception
+     * @return ThreadLocal
      */
-    public static function sample(): ReturnClass {
-        return new ReturnClass(
-         ReturnClass::sampleReturn()
-        );
+    public function getThreadLocal(): ThreadLocal {
+        if (Obj5::validateThreadLocal($this->threadLocal))  {
+            return $this->threadLocal;
+        }
+        throw new Exception('never get to getThreadLocal Obj5::threadLocal');
     }
-}
-
-// This is an autogenerated file:Right
-
-class Right {
-    private int $right; // json:right Required
 
     /**
-     * @param int $right
+     * @return ThreadLocal
      */
-    public function __construct(int $right) {
-        $this->right = $right;
+    public static function sampleThreadLocal(): ThreadLocal {
+        return ThreadLocal::sample(); /*49:threadLocal*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return ThrowClass
      */
-    public static function fromRight(int $value): int {
-        return $value; /*int*/
+    public static function fromThrow(stdClass $value): ThrowClass {
+        return ThrowClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRight(): int {
-        if (Right::validateRight($this->right))  {
-            return $this->right; /*int*/
+    public function toThrow(): stdClass {
+        if (Obj5::validateThrow($this->throw))  {
+            return $this->throw->to(); /*class*/
         }
-        throw new Exception('never get to this Right::right');
+        throw new Exception('never get to this Obj5::throw');
     }
 
     /**
-     * @param int
+     * @param ThrowClass
      * @return bool
      * @throws Exception
      */
-    public static function validateRight(int $value): bool {
+    public static function validateThrow(ThrowClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return ThrowClass
      */
-    public function getRight(): int {
-        if (Right::validateRight($this->right))  {
-            return $this->right;
+    public function getThrow(): ThrowClass {
+        if (Obj5::validateThrow($this->throw))  {
+            return $this->throw;
         }
-        throw new Exception('never get to getRight Right::right');
+        throw new Exception('never get to getThrow Obj5::throw');
     }
 
     /**
-     * @return int
+     * @return ThrowClass
      */
-    public static function sampleRight(): int {
-        return 31; /*31:right*/
+    public static function sampleThrow(): ThrowClass {
+        return ThrowClass::sample(); /*50:throw*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Throws
      */
-    public function validate(): bool {
-        return Right::validateRight($this->right);
+    public static function fromThrows(stdClass $value): Throws {
+        return Throws::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'right'} = $this->toRight();
-        return $out;
+    public function toThrows(): stdClass {
+        if (Obj5::validateThrows($this->throws))  {
+            return $this->throws->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::throws');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Right
+     * @param Throws
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Right {
-        if (!property_exists($obj, 'right')) {
-            throw new Exception("Missing required property");
-        }
-        return new Right(
-         Right::fromRight($obj->{'right'})
-        );
+    public static function validateThrows(Throws $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Right
+     * @throws Exception
+     * @return Throws
      */
-    public static function sample(): Right {
-        return new Right(
-         Right::sampleRight()
-        );
+    public function getThrows(): Throws {
+        if (Obj5::validateThrows($this->throws))  {
+            return $this->throws;
+        }
+        throw new Exception('never get to getThrows Obj5::throws');
     }
-}
-
-// This is an autogenerated file:RuntimeType
-
-class RuntimeType {
-    private int $runtimeType; // json:runtimeType Required
 
     /**
-     * @param int $runtimeType
+     * @return Throws
      */
-    public function __construct(int $runtimeType) {
-        $this->runtimeType = $runtimeType;
+    public static function sampleThrows(): Throws {
+        return Throws::sample(); /*51:throws*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return TimeOnly
      */
-    public static function fromRuntimeType(int $value): int {
-        return $value; /*int*/
+    public static function fromTimeOnly(stdClass $value): TimeOnly {
+        return TimeOnly::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toRuntimeType(): int {
-        if (RuntimeType::validateRuntimeType($this->runtimeType))  {
-            return $this->runtimeType; /*int*/
+    public function toTimeOnly(): stdClass {
+        if (Obj5::validateTimeOnly($this->timeOnly))  {
+            return $this->timeOnly->to(); /*class*/
         }
-        throw new Exception('never get to this RuntimeType::runtimeType');
+        throw new Exception('never get to this Obj5::timeOnly');
     }
 
     /**
-     * @param int
+     * @param TimeOnly
      * @return bool
      * @throws Exception
      */
-    public static function validateRuntimeType(int $value): bool {
+    public static function validateTimeOnly(TimeOnly $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return TimeOnly
      */
-    public function getRuntimeType(): int {
-        if (RuntimeType::validateRuntimeType($this->runtimeType))  {
-            return $this->runtimeType;
+    public function getTimeOnly(): TimeOnly {
+        if (Obj5::validateTimeOnly($this->timeOnly))  {
+            return $this->timeOnly;
         }
-        throw new Exception('never get to getRuntimeType RuntimeType::runtimeType');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleRuntimeType(): int {
-        return 31; /*31:runtimeType*/
+        throw new Exception('never get to getTimeOnly Obj5::timeOnly');
     }
 
     /**
-     * @throws Exception
-     * @return bool
+     * @return TimeOnly
      */
-    public function validate(): bool {
-        return RuntimeType::validateRuntimeType($this->runtimeType);
+    public static function sampleTimeOnly(): TimeOnly {
+        return TimeOnly::sample(); /*52:timeOnly*/
     }
 
     /**
-     * @return stdClass
+     * @param stdClass $value
      * @throws Exception
+     * @return TimeOnlyConverter
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'runtimeType'} = $this->toRuntimeType();
-        return $out;
+    public static function fromTimeOnlyConverter(stdClass $value): TimeOnlyConverter {
+        return TimeOnlyConverter::from($value); /*class*/
     }
 
     /**
-     * @param stdClass $obj
-     * @return RuntimeType
      * @throws Exception
+     * @return stdClass
      */
-    public static function from(stdClass $obj): RuntimeType {
-        if (!property_exists($obj, 'runtimeType')) {
-            throw new Exception("Missing required property");
+    public function toTimeOnlyConverter(): stdClass {
+        if (Obj5::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            return $this->timeOnlyConverter->to(); /*class*/
         }
-        return new RuntimeType(
-         RuntimeType::fromRuntimeType($obj->{'runtimeType'})
-        );
+        throw new Exception('never get to this Obj5::timeOnlyConverter');
     }
 
     /**
-     * @return RuntimeType
+     * @param TimeOnlyConverter
+     * @return bool
+     * @throws Exception
      */
-    public static function sample(): RuntimeType {
-        return new RuntimeType(
-         RuntimeType::sampleRuntimeType()
-        );
+    public static function validateTimeOnlyConverter(TimeOnlyConverter $value): bool {
+        $value->validate();
+        return true;
     }
-}
-
-// This is an autogenerated file:S
 
-class S {
-    private int $s; // json:s Required
+    /**
+     * @throws Exception
+     * @return TimeOnlyConverter
+     */
+    public function getTimeOnlyConverter(): TimeOnlyConverter {
+        if (Obj5::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            return $this->timeOnlyConverter;
+        }
+        throw new Exception('never get to getTimeOnlyConverter Obj5::timeOnlyConverter');
+    }
 
     /**
-     * @param int $s
+     * @return TimeOnlyConverter
      */
-    public function __construct(int $s) {
-        $this->s = $s;
+    public static function sampleTimeOnlyConverter(): TimeOnlyConverter {
+        return TimeOnlyConverter::sample(); /*53:timeOnlyConverter*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return ToJSON
      */
-    public static function fromS(int $value): int {
-        return $value; /*int*/
+    public static function fromToJSON(stdClass $value): ToJSON {
+        return ToJSON::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toS(): int {
-        if (S::validateS($this->s))  {
-            return $this->s; /*int*/
+    public function toToJSON(): stdClass {
+        if (Obj5::validateToJSON($this->toJSON))  {
+            return $this->toJSON->to(); /*class*/
         }
-        throw new Exception('never get to this S::s');
+        throw new Exception('never get to this Obj5::toJSON');
     }
 
     /**
-     * @param int
+     * @param ToJSON
      * @return bool
      * @throws Exception
      */
-    public static function validateS(int $value): bool {
+    public static function validateToJSON(ToJSON $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return ToJSON
      */
-    public function getS(): int {
-        if (S::validateS($this->s))  {
-            return $this->s;
+    public function getToJSON(): ToJSON {
+        if (Obj5::validateToJSON($this->toJSON))  {
+            return $this->toJSON;
         }
-        throw new Exception('never get to getS S::s');
+        throw new Exception('never get to getToJSON Obj5::toJSON');
     }
 
     /**
-     * @return int
+     * @return ToJSON
      */
-    public static function sampleS(): int {
-        return 31; /*31:s*/
+    public static function sampleToJSON(): ToJSON {
+        return ToJSON::sample(); /*54:toJSON*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return ToString
      */
-    public function validate(): bool {
-        return S::validateS($this->s);
+    public static function fromToString(stdClass $value): ToString {
+        return ToString::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'s'} = $this->toS();
-        return $out;
+    public function toToString(): stdClass {
+        if (Obj5::validateToString($this->toString))  {
+            return $this->toString->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::toString');
     }
 
     /**
-     * @param stdClass $obj
-     * @return S
+     * @param ToString
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): S {
-        if (!property_exists($obj, 's')) {
-            throw new Exception("Missing required property");
-        }
-        return new S(
-         S::fromS($obj->{'s'})
-        );
+    public static function validateToString(ToString $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return S
+     * @throws Exception
+     * @return ToString
      */
-    public static function sample(): S {
-        return new S(
-         S::sampleS()
-        );
+    public function getToString(): ToString {
+        if (Obj5::validateToString($this->toString))  {
+            return $this->toString;
+        }
+        throw new Exception('never get to getToString Obj5::toString');
     }
-}
-
-// This is an autogenerated file:Sbyte
-
-class Sbyte {
-    private int $sbyte; // json:sbyte Required
 
     /**
-     * @param int $sbyte
+     * @return ToString
      */
-    public function __construct(int $sbyte) {
-        $this->sbyte = $sbyte;
+    public static function sampleToString(): ToString {
+        return ToString::sample(); /*55:toString*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return TopLevelClass
      */
-    public static function fromSbyte(int $value): int {
-        return $value; /*int*/
+    public static function fromTopLevel(stdClass $value): TopLevelClass {
+        return TopLevelClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSbyte(): int {
-        if (Sbyte::validateSbyte($this->sbyte))  {
-            return $this->sbyte; /*int*/
+    public function toTopLevel(): stdClass {
+        if (Obj5::validateTopLevel($this->topLevel))  {
+            return $this->topLevel->to(); /*class*/
         }
-        throw new Exception('never get to this Sbyte::sbyte');
+        throw new Exception('never get to this Obj5::topLevel');
     }
 
     /**
-     * @param int
+     * @param TopLevelClass
      * @return bool
      * @throws Exception
      */
-    public static function validateSbyte(int $value): bool {
+    public static function validateTopLevel(TopLevelClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return TopLevelClass
      */
-    public function getSbyte(): int {
-        if (Sbyte::validateSbyte($this->sbyte))  {
-            return $this->sbyte;
+    public function getTopLevel(): TopLevelClass {
+        if (Obj5::validateTopLevel($this->topLevel))  {
+            return $this->topLevel;
         }
-        throw new Exception('never get to getSbyte Sbyte::sbyte');
+        throw new Exception('never get to getTopLevel Obj5::topLevel');
     }
 
     /**
-     * @return int
+     * @return TopLevelClass
      */
-    public static function sampleSbyte(): int {
-        return 31; /*31:sbyte*/
+    public static function sampleTopLevel(): TopLevelClass {
+        return TopLevelClass::sample(); /*56:topLevel*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Transient
      */
-    public function validate(): bool {
-        return Sbyte::validateSbyte($this->sbyte);
+    public static function fromTransient(stdClass $value): Transient {
+        return Transient::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'sbyte'} = $this->toSbyte();
-        return $out;
+    public function toTransient(): stdClass {
+        if (Obj5::validateTransient($this->transient))  {
+            return $this->transient->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::transient');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Sbyte
+     * @param Transient
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sbyte {
-        if (!property_exists($obj, 'sbyte')) {
-            throw new Exception("Missing required property");
-        }
-        return new Sbyte(
-         Sbyte::fromSbyte($obj->{'sbyte'})
-        );
+    public static function validateTransient(Transient $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Sbyte
+     * @throws Exception
+     * @return Transient
      */
-    public static function sample(): Sbyte {
-        return new Sbyte(
-         Sbyte::sampleSbyte()
-        );
+    public function getTransient(): Transient {
+        if (Obj5::validateTransient($this->transient))  {
+            return $this->transient;
+        }
+        throw new Exception('never get to getTransient Obj5::transient');
     }
-}
-
-// This is an autogenerated file:Sealed
-
-class Sealed {
-    private int $sealed; // json:sealed Required
 
     /**
-     * @param int $sealed
+     * @return Transient
      */
-    public function __construct(int $sealed) {
-        $this->sealed = $sealed;
+    public static function sampleTransient(): Transient {
+        return Transient::sample(); /*57:transient*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return TrueClass
      */
-    public static function fromSealed(int $value): int {
-        return $value; /*int*/
+    public static function fromTrue(stdClass $value): TrueClass {
+        return TrueClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSealed(): int {
-        if (Sealed::validateSealed($this->sealed))  {
-            return $this->sealed; /*int*/
+    public function toTrue(): stdClass {
+        if (Obj5::validateTrue($this->true))  {
+            return $this->true->to(); /*class*/
         }
-        throw new Exception('never get to this Sealed::sealed');
+        throw new Exception('never get to this Obj5::true');
     }
 
     /**
-     * @param int
+     * @param TrueClass
      * @return bool
      * @throws Exception
      */
-    public static function validateSealed(int $value): bool {
+    public static function validateTrue(TrueClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return TrueClass
      */
-    public function getSealed(): int {
-        if (Sealed::validateSealed($this->sealed))  {
-            return $this->sealed;
+    public function getTrue(): TrueClass {
+        if (Obj5::validateTrue($this->true))  {
+            return $this->true;
         }
-        throw new Exception('never get to getSealed Sealed::sealed');
+        throw new Exception('never get to getTrue Obj5::true');
     }
 
     /**
-     * @return int
+     * @return TrueClass
      */
-    public static function sampleSealed(): int {
-        return 31; /*31:sealed*/
+    public static function sampleTrue(): TrueClass {
+        return TrueClass::sample(); /*58:true*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return TryClass
      */
-    public function validate(): bool {
-        return Sealed::validateSealed($this->sealed);
+    public static function fromTry(stdClass $value): TryClass {
+        return TryClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'sealed'} = $this->toSealed();
-        return $out;
+    public function toTry(): stdClass {
+        if (Obj5::validateTry($this->try))  {
+            return $this->try->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::try');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Sealed
+     * @param TryClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sealed {
-        if (!property_exists($obj, 'sealed')) {
-            throw new Exception("Missing required property");
-        }
-        return new Sealed(
-         Sealed::fromSealed($obj->{'sealed'})
-        );
+    public static function validateTry(TryClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Sealed
+     * @throws Exception
+     * @return TryClass
      */
-    public static function sample(): Sealed {
-        return new Sealed(
-         Sealed::sampleSealed()
-        );
+    public function getTry(): TryClass {
+        if (Obj5::validateTry($this->try))  {
+            return $this->try;
+        }
+        throw new Exception('never get to getTry Obj5::try');
     }
-}
-
-// This is an autogenerated file:Sel
-
-class Sel {
-    private int $sel; // json:SEL Required
 
     /**
-     * @param int $sel
+     * @return TryClass
      */
-    public function __construct(int $sel) {
-        $this->sel = $sel;
+    public static function sampleTry(): TryClass {
+        return TryClass::sample(); /*59:try*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Type
      */
-    public static function fromSel(int $value): int {
-        return $value; /*int*/
+    public static function fromType(stdClass $value): Type {
+        return Type::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSel(): int {
-        if (Sel::validateSel($this->sel))  {
-            return $this->sel; /*int*/
+    public function toType(): stdClass {
+        if (Obj5::validateType($this->type))  {
+            return $this->type->to(); /*class*/
         }
-        throw new Exception('never get to this Sel::sel');
+        throw new Exception('never get to this Obj5::type');
     }
 
     /**
-     * @param int
+     * @param Type
      * @return bool
      * @throws Exception
      */
-    public static function validateSel(int $value): bool {
+    public static function validateType(Type $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Type
      */
-    public function getSel(): int {
-        if (Sel::validateSel($this->sel))  {
-            return $this->sel;
+    public function getType(): Type {
+        if (Obj5::validateType($this->type))  {
+            return $this->type;
         }
-        throw new Exception('never get to getSel Sel::sel');
+        throw new Exception('never get to getType Obj5::type');
     }
 
     /**
-     * @return int
+     * @return Type
      */
-    public static function sampleSel(): int {
-        return 31; /*31:sel*/
+    public static function sampleType(): Type {
+        return Type::sample(); /*60:type*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Typealias
      */
-    public function validate(): bool {
-        return Sel::validateSel($this->sel);
+    public static function fromTypealias(stdClass $value): Typealias {
+        return Typealias::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'SEL'} = $this->toSel();
-        return $out;
+    public function toTypealias(): stdClass {
+        if (Obj5::validateTypealias($this->typealias))  {
+            return $this->typealias->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::typealias');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Sel
+     * @param Typealias
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sel {
-        if (!property_exists($obj, 'SEL')) {
-            throw new Exception("Missing required property");
-        }
-        return new Sel(
-         Sel::fromSel($obj->{'SEL'})
-        );
+    public static function validateTypealias(Typealias $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Sel
+     * @throws Exception
+     * @return Typealias
      */
-    public static function sample(): Sel {
-        return new Sel(
-         Sel::sampleSel()
-        );
+    public function getTypealias(): Typealias {
+        if (Obj5::validateTypealias($this->typealias))  {
+            return $this->typealias;
+        }
+        throw new Exception('never get to getTypealias Obj5::typealias');
     }
-}
-
-// This is an autogenerated file:Select
-
-class Select {
-    private int $select; // json:select Required
 
     /**
-     * @param int $select
+     * @return Typealias
      */
-    public function __construct(int $select) {
-        $this->select = $select;
+    public static function sampleTypealias(): Typealias {
+        return Typealias::sample(); /*61:typealias*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Typedef
      */
-    public static function fromSelect(int $value): int {
-        return $value; /*int*/
+    public static function fromTypedef(stdClass $value): Typedef {
+        return Typedef::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSelect(): int {
-        if (Select::validateSelect($this->select))  {
-            return $this->select; /*int*/
+    public function toTypedef(): stdClass {
+        if (Obj5::validateTypedef($this->typedef))  {
+            return $this->typedef->to(); /*class*/
         }
-        throw new Exception('never get to this Select::select');
+        throw new Exception('never get to this Obj5::typedef');
     }
 
     /**
-     * @param int
+     * @param Typedef
      * @return bool
      * @throws Exception
      */
-    public static function validateSelect(int $value): bool {
+    public static function validateTypedef(Typedef $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Typedef
      */
-    public function getSelect(): int {
-        if (Select::validateSelect($this->select))  {
-            return $this->select;
+    public function getTypedef(): Typedef {
+        if (Obj5::validateTypedef($this->typedef))  {
+            return $this->typedef;
         }
-        throw new Exception('never get to getSelect Select::select');
+        throw new Exception('never get to getTypedef Obj5::typedef');
     }
 
     /**
-     * @return int
+     * @return Typedef
      */
-    public static function sampleSelect(): int {
-        return 31; /*31:select*/
+    public static function sampleTypedef(): Typedef {
+        return Typedef::sample(); /*62:typedef*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Typeid
      */
-    public function validate(): bool {
-        return Select::validateSelect($this->select);
+    public static function fromTypeid(stdClass $value): Typeid {
+        return Typeid::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'select'} = $this->toSelect();
-        return $out;
+    public function toTypeid(): stdClass {
+        if (Obj5::validateTypeid($this->typeid))  {
+            return $this->typeid->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::typeid');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Select
+     * @param Typeid
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Select {
-        if (!property_exists($obj, 'select')) {
-            throw new Exception("Missing required property");
-        }
-        return new Select(
-         Select::fromSelect($obj->{'select'})
-        );
+    public static function validateTypeid(Typeid $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Select
+     * @throws Exception
+     * @return Typeid
      */
-    public static function sample(): Select {
-        return new Select(
-         Select::sampleSelect()
-        );
+    public function getTypeid(): Typeid {
+        if (Obj5::validateTypeid($this->typeid))  {
+            return $this->typeid;
+        }
+        throw new Exception('never get to getTypeid Obj5::typeid');
     }
-}
-
-// This is an autogenerated file:SelfClass
-
-class SelfClass {
-    private int $self; // json:Self Required
 
     /**
-     * @param int $self
+     * @return Typeid
      */
-    public function __construct(int $self) {
-        $this->self = $self;
+    public static function sampleTypeid(): Typeid {
+        return Typeid::sample(); /*63:typeid*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Typename
      */
-    public static function fromSelf(int $value): int {
-        return $value; /*int*/
+    public static function fromTypename(stdClass $value): Typename {
+        return Typename::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSelf(): int {
-        if (SelfClass::validateSelf($this->self))  {
-            return $this->self; /*int*/
+    public function toTypename(): stdClass {
+        if (Obj5::validateTypename($this->typename))  {
+            return $this->typename->to(); /*class*/
         }
-        throw new Exception('never get to this SelfClass::self');
+        throw new Exception('never get to this Obj5::typename');
     }
 
     /**
-     * @param int
+     * @param Typename
      * @return bool
      * @throws Exception
      */
-    public static function validateSelf(int $value): bool {
+    public static function validateTypename(Typename $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Typename
      */
-    public function getSelf(): int {
-        if (SelfClass::validateSelf($this->self))  {
-            return $this->self;
+    public function getTypename(): Typename {
+        if (Obj5::validateTypename($this->typename))  {
+            return $this->typename;
         }
-        throw new Exception('never get to getSelf SelfClass::self');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleSelf(): int {
-        return 31; /*31:self*/
+        throw new Exception('never get to getTypename Obj5::typename');
     }
 
     /**
-     * @throws Exception
-     * @return bool
+     * @return Typename
      */
-    public function validate(): bool {
-        return SelfClass::validateSelf($this->self);
+    public static function sampleTypename(): Typename {
+        return Typename::sample(); /*64:typename*/
     }
 
     /**
-     * @return stdClass
+     * @param stdClass $value
      * @throws Exception
+     * @return Typeof
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'Self'} = $this->toSelf();
-        return $out;
+    public static function fromTypeof(stdClass $value): Typeof {
+        return Typeof::from($value); /*class*/
     }
 
     /**
-     * @param stdClass $obj
-     * @return SelfClass
      * @throws Exception
+     * @return stdClass
      */
-    public static function from(stdClass $obj): SelfClass {
-        if (!property_exists($obj, 'Self')) {
-            throw new Exception("Missing required property");
+    public function toTypeof(): stdClass {
+        if (Obj5::validateTypeof($this->typeof))  {
+            return $this->typeof->to(); /*class*/
         }
-        return new SelfClass(
-         SelfClass::fromSelf($obj->{'Self'})
-        );
+        throw new Exception('never get to this Obj5::typeof');
     }
 
     /**
-     * @return SelfClass
+     * @param Typeof
+     * @return bool
+     * @throws Exception
      */
-    public static function sample(): SelfClass {
-        return new SelfClass(
-         SelfClass::sampleSelf()
-        );
+    public static function validateTypeof(Typeof $value): bool {
+        $value->validate();
+        return true;
     }
-}
-
-// This is an autogenerated file:Serialize
 
-class Serialize {
-    private int $serialize; // json:serialize Required
+    /**
+     * @throws Exception
+     * @return Typeof
+     */
+    public function getTypeof(): Typeof {
+        if (Obj5::validateTypeof($this->typeof))  {
+            return $this->typeof;
+        }
+        throw new Exception('never get to getTypeof Obj5::typeof');
+    }
 
     /**
-     * @param int $serialize
+     * @return Typeof
      */
-    public function __construct(int $serialize) {
-        $this->serialize = $serialize;
+    public static function sampleTypeof(): Typeof {
+        return Typeof::sample(); /*65:typeof*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Uint
      */
-    public static function fromSerialize(int $value): int {
-        return $value; /*int*/
+    public static function fromUint(stdClass $value): Uint {
+        return Uint::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSerialize(): int {
-        if (Serialize::validateSerialize($this->serialize))  {
-            return $this->serialize; /*int*/
+    public function toUint(): stdClass {
+        if (Obj5::validateUint($this->uint))  {
+            return $this->uint->to(); /*class*/
         }
-        throw new Exception('never get to this Serialize::serialize');
+        throw new Exception('never get to this Obj5::uint');
     }
 
     /**
-     * @param int
+     * @param Uint
      * @return bool
      * @throws Exception
      */
-    public static function validateSerialize(int $value): bool {
+    public static function validateUint(Uint $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Uint
      */
-    public function getSerialize(): int {
-        if (Serialize::validateSerialize($this->serialize))  {
-            return $this->serialize;
+    public function getUint(): Uint {
+        if (Obj5::validateUint($this->uint))  {
+            return $this->uint;
         }
-        throw new Exception('never get to getSerialize Serialize::serialize');
+        throw new Exception('never get to getUint Obj5::uint');
     }
 
     /**
-     * @return int
+     * @return Uint
      */
-    public static function sampleSerialize(): int {
-        return 31; /*31:serialize*/
+    public static function sampleUint(): Uint {
+        return Uint::sample(); /*66:uint*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Ulong
      */
-    public function validate(): bool {
-        return Serialize::validateSerialize($this->serialize);
+    public static function fromUlong(stdClass $value): Ulong {
+        return Ulong::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'serialize'} = $this->toSerialize();
-        return $out;
+    public function toUlong(): stdClass {
+        if (Obj5::validateUlong($this->ulong))  {
+            return $this->ulong->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::ulong');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Serialize
+     * @param Ulong
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Serialize {
-        if (!property_exists($obj, 'serialize')) {
-            throw new Exception("Missing required property");
-        }
-        return new Serialize(
-         Serialize::fromSerialize($obj->{'serialize'})
-        );
+    public static function validateUlong(Ulong $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Serialize
+     * @throws Exception
+     * @return Ulong
      */
-    public static function sample(): Serialize {
-        return new Serialize(
-         Serialize::sampleSerialize()
-        );
+    public function getUlong(): Ulong {
+        if (Obj5::validateUlong($this->ulong))  {
+            return $this->ulong;
+        }
+        throw new Exception('never get to getUlong Obj5::ulong');
     }
-}
-
-// This is an autogenerated file:Set
-
-class Set {
-    private int $set; // json:set Required
 
     /**
-     * @param int $set
+     * @return Ulong
      */
-    public function __construct(int $set) {
-        $this->set = $set;
+    public static function sampleUlong(): Ulong {
+        return Ulong::sample(); /*67:ulong*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Unchecked
      */
-    public static function fromSet(int $value): int {
-        return $value; /*int*/
+    public static function fromUnchecked(stdClass $value): Unchecked {
+        return Unchecked::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSet(): int {
-        if (Set::validateSet($this->set))  {
-            return $this->set; /*int*/
+    public function toUnchecked(): stdClass {
+        if (Obj5::validateUnchecked($this->unchecked))  {
+            return $this->unchecked->to(); /*class*/
         }
-        throw new Exception('never get to this Set::set');
+        throw new Exception('never get to this Obj5::unchecked');
     }
 
     /**
-     * @param int
+     * @param Unchecked
      * @return bool
      * @throws Exception
      */
-    public static function validateSet(int $value): bool {
+    public static function validateUnchecked(Unchecked $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Unchecked
      */
-    public function getSet(): int {
-        if (Set::validateSet($this->set))  {
-            return $this->set;
+    public function getUnchecked(): Unchecked {
+        if (Obj5::validateUnchecked($this->unchecked))  {
+            return $this->unchecked;
         }
-        throw new Exception('never get to getSet Set::set');
+        throw new Exception('never get to getUnchecked Obj5::unchecked');
     }
 
     /**
-     * @return int
+     * @return Unchecked
      */
-    public static function sampleSet(): int {
-        return 31; /*31:set*/
+    public static function sampleUnchecked(): Unchecked {
+        return Unchecked::sample(); /*68:unchecked*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Undefined
      */
-    public function validate(): bool {
-        return Set::validateSet($this->set);
+    public static function fromUndefined(stdClass $value): Undefined {
+        return Undefined::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'set'} = $this->toSet();
-        return $out;
+    public function toUndefined(): stdClass {
+        if (Obj5::validateUndefined($this->undefined))  {
+            return $this->undefined->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::undefined');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Set
+     * @param Undefined
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Set {
-        if (!property_exists($obj, 'set')) {
-            throw new Exception("Missing required property");
-        }
-        return new Set(
-         Set::fromSet($obj->{'set'})
-        );
+    public static function validateUndefined(Undefined $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Set
+     * @throws Exception
+     * @return Undefined
      */
-    public static function sample(): Set {
-        return new Set(
-         Set::sampleSet()
-        );
+    public function getUndefined(): Undefined {
+        if (Obj5::validateUndefined($this->undefined))  {
+            return $this->undefined;
+        }
+        throw new Exception('never get to getUndefined Obj5::undefined');
     }
-}
-
-// This is an autogenerated file:Short
-
-class Short {
-    private int $short; // json:short Required
 
     /**
-     * @param int $short
+     * @return Undefined
      */
-    public function __construct(int $short) {
-        $this->short = $short;
+    public static function sampleUndefined(): Undefined {
+        return Undefined::sample(); /*69:undefined*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Union
      */
-    public static function fromShort(int $value): int {
-        return $value; /*int*/
+    public static function fromUnion(stdClass $value): Union {
+        return Union::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toShort(): int {
-        if (Short::validateShort($this->short))  {
-            return $this->short; /*int*/
+    public function toUnion(): stdClass {
+        if (Obj5::validateUnion($this->union))  {
+            return $this->union->to(); /*class*/
         }
-        throw new Exception('never get to this Short::short');
+        throw new Exception('never get to this Obj5::union');
     }
 
     /**
-     * @param int
+     * @param Union
      * @return bool
      * @throws Exception
      */
-    public static function validateShort(int $value): bool {
+    public static function validateUnion(Union $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Union
      */
-    public function getShort(): int {
-        if (Short::validateShort($this->short))  {
-            return $this->short;
+    public function getUnion(): Union {
+        if (Obj5::validateUnion($this->union))  {
+            return $this->union;
         }
-        throw new Exception('never get to getShort Short::short');
+        throw new Exception('never get to getUnion Obj5::union');
     }
 
     /**
-     * @return int
+     * @return Union
      */
-    public static function sampleShort(): int {
-        return 31; /*31:short*/
+    public static function sampleUnion(): Union {
+        return Union::sample(); /*70:union*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Unowned
      */
-    public function validate(): bool {
-        return Short::validateShort($this->short);
+    public static function fromUnowned(stdClass $value): Unowned {
+        return Unowned::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'short'} = $this->toShort();
-        return $out;
+    public function toUnowned(): stdClass {
+        if (Obj5::validateUnowned($this->unowned))  {
+            return $this->unowned->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::unowned');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Short
+     * @param Unowned
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Short {
-        if (!property_exists($obj, 'short')) {
-            throw new Exception("Missing required property");
-        }
-        return new Short(
-         Short::fromShort($obj->{'short'})
-        );
+    public static function validateUnowned(Unowned $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Short
+     * @throws Exception
+     * @return Unowned
      */
-    public static function sample(): Short {
-        return new Short(
-         Short::sampleShort()
-        );
+    public function getUnowned(): Unowned {
+        if (Obj5::validateUnowned($this->unowned))  {
+            return $this->unowned;
+        }
+        throw new Exception('never get to getUnowned Obj5::unowned');
     }
-}
-
-// This is an autogenerated file:Signed
-
-class Signed {
-    private int $signed; // json:signed Required
 
     /**
-     * @param int $signed
+     * @return Unowned
      */
-    public function __construct(int $signed) {
-        $this->signed = $signed;
+    public static function sampleUnowned(): Unowned {
+        return Unowned::sample(); /*71:unowned*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Unsafe
      */
-    public static function fromSigned(int $value): int {
-        return $value; /*int*/
+    public static function fromUnsafe(stdClass $value): Unsafe {
+        return Unsafe::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSigned(): int {
-        if (Signed::validateSigned($this->signed))  {
-            return $this->signed; /*int*/
+    public function toUnsafe(): stdClass {
+        if (Obj5::validateUnsafe($this->unsafe))  {
+            return $this->unsafe->to(); /*class*/
         }
-        throw new Exception('never get to this Signed::signed');
+        throw new Exception('never get to this Obj5::unsafe');
     }
 
     /**
-     * @param int
+     * @param Unsafe
      * @return bool
      * @throws Exception
      */
-    public static function validateSigned(int $value): bool {
+    public static function validateUnsafe(Unsafe $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Unsafe
      */
-    public function getSigned(): int {
-        if (Signed::validateSigned($this->signed))  {
-            return $this->signed;
+    public function getUnsafe(): Unsafe {
+        if (Obj5::validateUnsafe($this->unsafe))  {
+            return $this->unsafe;
         }
-        throw new Exception('never get to getSigned Signed::signed');
+        throw new Exception('never get to getUnsafe Obj5::unsafe');
     }
 
     /**
-     * @return int
+     * @return Unsafe
      */
-    public static function sampleSigned(): int {
-        return 31; /*31:signed*/
+    public static function sampleUnsafe(): Unsafe {
+        return Unsafe::sample(); /*72:unsafe*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Unsigned
      */
-    public function validate(): bool {
-        return Signed::validateSigned($this->signed);
+    public static function fromUnsigned(stdClass $value): Unsigned {
+        return Unsigned::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'signed'} = $this->toSigned();
-        return $out;
+    public function toUnsigned(): stdClass {
+        if (Obj5::validateUnsigned($this->unsigned))  {
+            return $this->unsigned->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::unsigned');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Signed
+     * @param Unsigned
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Signed {
-        if (!property_exists($obj, 'signed')) {
-            throw new Exception("Missing required property");
-        }
-        return new Signed(
-         Signed::fromSigned($obj->{'signed'})
-        );
+    public static function validateUnsigned(Unsigned $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Signed
+     * @throws Exception
+     * @return Unsigned
      */
-    public static function sample(): Signed {
-        return new Signed(
-         Signed::sampleSigned()
-        );
+    public function getUnsigned(): Unsigned {
+        if (Obj5::validateUnsigned($this->unsigned))  {
+            return $this->unsigned;
+        }
+        throw new Exception('never get to getUnsigned Obj5::unsigned');
     }
-}
-
-// This is an autogenerated file:Sizeof
-
-class Sizeof {
-    private int $sizeof; // json:sizeof Required
 
     /**
-     * @param int $sizeof
+     * @return Unsigned
      */
-    public function __construct(int $sizeof) {
-        $this->sizeof = $sizeof;
+    public static function sampleUnsigned(): Unsigned {
+        return Unsigned::sample(); /*73:unsigned*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Ushort
      */
-    public static function fromSizeof(int $value): int {
-        return $value; /*int*/
+    public static function fromUshort(stdClass $value): Ushort {
+        return Ushort::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSizeof(): int {
-        if (Sizeof::validateSizeof($this->sizeof))  {
-            return $this->sizeof; /*int*/
+    public function toUshort(): stdClass {
+        if (Obj5::validateUshort($this->ushort))  {
+            return $this->ushort->to(); /*class*/
         }
-        throw new Exception('never get to this Sizeof::sizeof');
+        throw new Exception('never get to this Obj5::ushort');
     }
 
     /**
-     * @param int
+     * @param Ushort
      * @return bool
      * @throws Exception
      */
-    public static function validateSizeof(int $value): bool {
+    public static function validateUshort(Ushort $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Ushort
      */
-    public function getSizeof(): int {
-        if (Sizeof::validateSizeof($this->sizeof))  {
-            return $this->sizeof;
+    public function getUshort(): Ushort {
+        if (Obj5::validateUshort($this->ushort))  {
+            return $this->ushort;
         }
-        throw new Exception('never get to getSizeof Sizeof::sizeof');
+        throw new Exception('never get to getUshort Obj5::ushort');
     }
 
     /**
-     * @return int
+     * @return Ushort
      */
-    public static function sampleSizeof(): int {
-        return 31; /*31:sizeof*/
+    public static function sampleUshort(): Ushort {
+        return Ushort::sample(); /*74:ushort*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Using
      */
-    public function validate(): bool {
-        return Sizeof::validateSizeof($this->sizeof);
+    public static function fromUsing(stdClass $value): Using {
+        return Using::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'sizeof'} = $this->toSizeof();
-        return $out;
+    public function toUsing(): stdClass {
+        if (Obj5::validateUsing($this->using))  {
+            return $this->using->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::using');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Sizeof
+     * @param Using
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sizeof {
-        if (!property_exists($obj, 'sizeof')) {
-            throw new Exception("Missing required property");
-        }
-        return new Sizeof(
-         Sizeof::fromSizeof($obj->{'sizeof'})
-        );
+    public static function validateUsing(Using $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Sizeof
+     * @throws Exception
+     * @return Using
      */
-    public static function sample(): Sizeof {
-        return new Sizeof(
-         Sizeof::sampleSizeof()
-        );
+    public function getUsing(): Using {
+        if (Obj5::validateUsing($this->using))  {
+            return $this->using;
+        }
+        throw new Exception('never get to getUsing Obj5::using');
     }
-}
-
-// This is an autogenerated file:Stackalloc
-
-class Stackalloc {
-    private int $stackalloc; // json:stackalloc Required
 
     /**
-     * @param int $stackalloc
+     * @return Using
      */
-    public function __construct(int $stackalloc) {
-        $this->stackalloc = $stackalloc;
+    public static function sampleUsing(): Using {
+        return Using::sample(); /*75:using*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Utf8JSONReader
      */
-    public static function fromStackalloc(int $value): int {
-        return $value; /*int*/
+    public static function fromUtf8JSONReader(stdClass $value): Utf8JSONReader {
+        return Utf8JSONReader::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStackalloc(): int {
-        if (Stackalloc::validateStackalloc($this->stackalloc))  {
-            return $this->stackalloc; /*int*/
+    public function toUtf8JSONReader(): stdClass {
+        if (Obj5::validateUtf8JSONReader($this->utf8JSONReader))  {
+            return $this->utf8JSONReader->to(); /*class*/
         }
-        throw new Exception('never get to this Stackalloc::stackalloc');
+        throw new Exception('never get to this Obj5::utf8JSONReader');
     }
 
     /**
-     * @param int
+     * @param Utf8JSONReader
      * @return bool
      * @throws Exception
      */
-    public static function validateStackalloc(int $value): bool {
+    public static function validateUtf8JSONReader(Utf8JSONReader $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Utf8JSONReader
      */
-    public function getStackalloc(): int {
-        if (Stackalloc::validateStackalloc($this->stackalloc))  {
-            return $this->stackalloc;
+    public function getUtf8JSONReader(): Utf8JSONReader {
+        if (Obj5::validateUtf8JSONReader($this->utf8JSONReader))  {
+            return $this->utf8JSONReader;
         }
-        throw new Exception('never get to getStackalloc Stackalloc::stackalloc');
+        throw new Exception('never get to getUtf8JSONReader Obj5::utf8JSONReader');
     }
 
     /**
-     * @return int
+     * @return Utf8JSONReader
      */
-    public static function sampleStackalloc(): int {
-        return 31; /*31:stackalloc*/
+    public static function sampleUtf8JSONReader(): Utf8JSONReader {
+        return Utf8JSONReader::sample(); /*76:utf8JSONReader*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return Stackalloc::validateStackalloc($this->stackalloc);
+     * @return Utf8JSONWriter
+     */
+    public static function fromUtf8JSONWriter(stdClass $value): Utf8JSONWriter {
+        return Utf8JSONWriter::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'stackalloc'} = $this->toStackalloc();
-        return $out;
+    public function toUtf8JSONWriter(): stdClass {
+        if (Obj5::validateUtf8JSONWriter($this->utf8JSONWriter))  {
+            return $this->utf8JSONWriter->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::utf8JSONWriter');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Stackalloc
+     * @param Utf8JSONWriter
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Stackalloc {
-        if (!property_exists($obj, 'stackalloc')) {
-            throw new Exception("Missing required property");
-        }
-        return new Stackalloc(
-         Stackalloc::fromStackalloc($obj->{'stackalloc'})
-        );
+    public static function validateUtf8JSONWriter(Utf8JSONWriter $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Stackalloc
+     * @throws Exception
+     * @return Utf8JSONWriter
      */
-    public static function sample(): Stackalloc {
-        return new Stackalloc(
-         Stackalloc::sampleStackalloc()
-        );
+    public function getUtf8JSONWriter(): Utf8JSONWriter {
+        if (Obj5::validateUtf8JSONWriter($this->utf8JSONWriter))  {
+            return $this->utf8JSONWriter;
+        }
+        throw new Exception('never get to getUtf8JSONWriter Obj5::utf8JSONWriter');
     }
-}
-
-// This is an autogenerated file:Standards
-
-class Standards {
-    private int $standards; // json:Standards Required
 
     /**
-     * @param int $standards
+     * @return Utf8JSONWriter
      */
-    public function __construct(int $standards) {
-        $this->standards = $standards;
+    public static function sampleUtf8JSONWriter(): Utf8JSONWriter {
+        return Utf8JSONWriter::sample(); /*77:utf8JSONWriter*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return UUID
      */
-    public static function fromStandards(int $value): int {
-        return $value; /*int*/
+    public static function fromUUID(stdClass $value): UUID {
+        return UUID::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStandards(): int {
-        if (Standards::validateStandards($this->standards))  {
-            return $this->standards; /*int*/
+    public function toUUID(): stdClass {
+        if (Obj5::validateUUID($this->uuid))  {
+            return $this->uuid->to(); /*class*/
         }
-        throw new Exception('never get to this Standards::standards');
+        throw new Exception('never get to this Obj5::uuid');
     }
 
     /**
-     * @param int
+     * @param UUID
      * @return bool
      * @throws Exception
      */
-    public static function validateStandards(int $value): bool {
+    public static function validateUUID(UUID $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return UUID
      */
-    public function getStandards(): int {
-        if (Standards::validateStandards($this->standards))  {
-            return $this->standards;
+    public function getUUID(): UUID {
+        if (Obj5::validateUUID($this->uuid))  {
+            return $this->uuid;
         }
-        throw new Exception('never get to getStandards Standards::standards');
+        throw new Exception('never get to getUUID Obj5::uuid');
     }
 
     /**
-     * @return int
+     * @return UUID
      */
-    public static function sampleStandards(): int {
-        return 31; /*31:standards*/
+    public static function sampleUUID(): UUID {
+        return UUID::sample(); /*78:uuid*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return VarClass
      */
-    public function validate(): bool {
-        return Standards::validateStandards($this->standards);
+    public static function fromVar(stdClass $value): VarClass {
+        return VarClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'Standards'} = $this->toStandards();
-        return $out;
+    public function toVar(): stdClass {
+        if (Obj5::validateVar($this->var))  {
+            return $this->var->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::var');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Standards
+     * @param VarClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Standards {
-        if (!property_exists($obj, 'Standards')) {
-            throw new Exception("Missing required property");
-        }
-        return new Standards(
-         Standards::fromStandards($obj->{'Standards'})
-        );
+    public static function validateVar(VarClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Standards
+     * @throws Exception
+     * @return VarClass
      */
-    public static function sample(): Standards {
-        return new Standards(
-         Standards::sampleStandards()
-        );
+    public function getVar(): VarClass {
+        if (Obj5::validateVar($this->var))  {
+            return $this->var;
+        }
+        throw new Exception('never get to getVar Obj5::var');
     }
-}
-
-// This is an autogenerated file:StaticClass
-
-class StaticClass {
-    private int $static; // json:static Required
 
     /**
-     * @param int $static
+     * @return VarClass
      */
-    public function __construct(int $static) {
-        $this->static = $static;
+    public static function sampleVar(): VarClass {
+        return VarClass::sample(); /*79:var*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Virtual
      */
-    public static function fromStatic(int $value): int {
-        return $value; /*int*/
+    public static function fromVirtual(stdClass $value): Virtual {
+        return Virtual::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStatic(): int {
-        if (StaticClass::validateStatic($this->static))  {
-            return $this->static; /*int*/
+    public function toVirtual(): stdClass {
+        if (Obj5::validateVirtual($this->virtual))  {
+            return $this->virtual->to(); /*class*/
         }
-        throw new Exception('never get to this StaticClass::static');
+        throw new Exception('never get to this Obj5::virtual');
     }
 
     /**
-     * @param int
+     * @param Virtual
      * @return bool
      * @throws Exception
      */
-    public static function validateStatic(int $value): bool {
+    public static function validateVirtual(Virtual $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Virtual
      */
-    public function getStatic(): int {
-        if (StaticClass::validateStatic($this->static))  {
-            return $this->static;
+    public function getVirtual(): Virtual {
+        if (Obj5::validateVirtual($this->virtual))  {
+            return $this->virtual;
         }
-        throw new Exception('never get to getStatic StaticClass::static');
+        throw new Exception('never get to getVirtual Obj5::virtual');
     }
 
     /**
-     * @return int
+     * @return Virtual
      */
-    public static function sampleStatic(): int {
-        return 31; /*31:static*/
+    public static function sampleVirtual(): Virtual {
+        return Virtual::sample(); /*80:virtual*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return VoidClass
      */
-    public function validate(): bool {
-        return StaticClass::validateStatic($this->static);
+    public static function fromVoid(stdClass $value): VoidClass {
+        return VoidClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'static'} = $this->toStatic();
-        return $out;
+    public function toVoid(): stdClass {
+        if (Obj5::validateVoid($this->void))  {
+            return $this->void->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::void');
     }
 
     /**
-     * @param stdClass $obj
-     * @return StaticClass
+     * @param VoidClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticClass {
-        if (!property_exists($obj, 'static')) {
-            throw new Exception("Missing required property");
-        }
-        return new StaticClass(
-         StaticClass::fromStatic($obj->{'static'})
-        );
+    public static function validateVoid(VoidClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return StaticClass
+     * @throws Exception
+     * @return VoidClass
      */
-    public static function sample(): StaticClass {
-        return new StaticClass(
-         StaticClass::sampleStatic()
-        );
+    public function getVoid(): VoidClass {
+        if (Obj5::validateVoid($this->void))  {
+            return $this->void;
+        }
+        throw new Exception('never get to getVoid Obj5::void');
     }
-}
-
-// This is an autogenerated file:StaticAssert
-
-class StaticAssert {
-    private int $staticAssert; // json:static_assert Required
 
     /**
-     * @param int $staticAssert
+     * @return VoidClass
      */
-    public function __construct(int $staticAssert) {
-        $this->staticAssert = $staticAssert;
+    public static function sampleVoid(): VoidClass {
+        return VoidClass::sample(); /*81:void*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Volatile
      */
-    public static function fromStaticAssert(int $value): int {
-        return $value; /*int*/
+    public static function fromVolatile(stdClass $value): Volatile {
+        return Volatile::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStaticAssert(): int {
-        if (StaticAssert::validateStaticAssert($this->staticAssert))  {
-            return $this->staticAssert; /*int*/
+    public function toVolatile(): stdClass {
+        if (Obj5::validateVolatile($this->volatile))  {
+            return $this->volatile->to(); /*class*/
         }
-        throw new Exception('never get to this StaticAssert::staticAssert');
+        throw new Exception('never get to this Obj5::volatile');
     }
 
     /**
-     * @param int
+     * @param Volatile
      * @return bool
      * @throws Exception
      */
-    public static function validateStaticAssert(int $value): bool {
+    public static function validateVolatile(Volatile $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Volatile
      */
-    public function getStaticAssert(): int {
-        if (StaticAssert::validateStaticAssert($this->staticAssert))  {
-            return $this->staticAssert;
+    public function getVolatile(): Volatile {
+        if (Obj5::validateVolatile($this->volatile))  {
+            return $this->volatile;
         }
-        throw new Exception('never get to getStaticAssert StaticAssert::staticAssert');
+        throw new Exception('never get to getVolatile Obj5::volatile');
     }
 
     /**
-     * @return int
+     * @return Volatile
      */
-    public static function sampleStaticAssert(): int {
-        return 31; /*31:staticAssert*/
+    public static function sampleVolatile(): Volatile {
+        return Volatile::sample(); /*82:volatile*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return WcharT
      */
-    public function validate(): bool {
-        return StaticAssert::validateStaticAssert($this->staticAssert);
+    public static function fromWcharT(stdClass $value): WcharT {
+        return WcharT::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'static_assert'} = $this->toStaticAssert();
-        return $out;
+    public function toWcharT(): stdClass {
+        if (Obj5::validateWcharT($this->wcharT))  {
+            return $this->wcharT->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::wcharT');
     }
 
     /**
-     * @param stdClass $obj
-     * @return StaticAssert
+     * @param WcharT
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticAssert {
-        if (!property_exists($obj, 'static_assert')) {
-            throw new Exception("Missing required property");
-        }
-        return new StaticAssert(
-         StaticAssert::fromStaticAssert($obj->{'static_assert'})
-        );
+    public static function validateWcharT(WcharT $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return StaticAssert
+     * @throws Exception
+     * @return WcharT
      */
-    public static function sample(): StaticAssert {
-        return new StaticAssert(
-         StaticAssert::sampleStaticAssert()
-        );
+    public function getWcharT(): WcharT {
+        if (Obj5::validateWcharT($this->wcharT))  {
+            return $this->wcharT;
+        }
+        throw new Exception('never get to getWcharT Obj5::wcharT');
     }
-}
-
-// This is an autogenerated file:StaticCast
-
-class StaticCast {
-    private int $staticCast; // json:static_cast Required
 
     /**
-     * @param int $staticCast
+     * @return WcharT
      */
-    public function __construct(int $staticCast) {
-        $this->staticCast = $staticCast;
+    public static function sampleWcharT(): WcharT {
+        return WcharT::sample(); /*83:wcharT*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return Weak
      */
-    public static function fromStaticCast(int $value): int {
-        return $value; /*int*/
+    public static function fromWeak(stdClass $value): Weak {
+        return Weak::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStaticCast(): int {
-        if (StaticCast::validateStaticCast($this->staticCast))  {
-            return $this->staticCast; /*int*/
+    public function toWeak(): stdClass {
+        if (Obj5::validateWeak($this->weak))  {
+            return $this->weak->to(); /*class*/
         }
-        throw new Exception('never get to this StaticCast::staticCast');
+        throw new Exception('never get to this Obj5::weak');
     }
 
     /**
-     * @param int
+     * @param Weak
      * @return bool
      * @throws Exception
      */
-    public static function validateStaticCast(int $value): bool {
+    public static function validateWeak(Weak $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return Weak
      */
-    public function getStaticCast(): int {
-        if (StaticCast::validateStaticCast($this->staticCast))  {
-            return $this->staticCast;
+    public function getWeak(): Weak {
+        if (Obj5::validateWeak($this->weak))  {
+            return $this->weak;
         }
-        throw new Exception('never get to getStaticCast StaticCast::staticCast');
+        throw new Exception('never get to getWeak Obj5::weak');
     }
 
     /**
-     * @return int
+     * @return Weak
      */
-    public static function sampleStaticCast(): int {
-        return 31; /*31:staticCast*/
+    public static function sampleWeak(): Weak {
+        return Weak::sample(); /*84:weak*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Where
      */
-    public function validate(): bool {
-        return StaticCast::validateStaticCast($this->staticCast);
+    public static function fromWhere(stdClass $value): Where {
+        return Where::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'static_cast'} = $this->toStaticCast();
-        return $out;
+    public function toWhere(): stdClass {
+        if (Obj5::validateWhere($this->where))  {
+            return $this->where->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::where');
     }
 
     /**
-     * @param stdClass $obj
-     * @return StaticCast
+     * @param Where
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticCast {
-        if (!property_exists($obj, 'static_cast')) {
-            throw new Exception("Missing required property");
-        }
-        return new StaticCast(
-         StaticCast::fromStaticCast($obj->{'static_cast'})
-        );
+    public static function validateWhere(Where $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return StaticCast
+     * @throws Exception
+     * @return Where
      */
-    public static function sample(): StaticCast {
-        return new StaticCast(
-         StaticCast::sampleStaticCast()
-        );
+    public function getWhere(): Where {
+        if (Obj5::validateWhere($this->where))  {
+            return $this->where;
+        }
+        throw new Exception('never get to getWhere Obj5::where');
     }
-}
-
-// This is an autogenerated file:Strictfp
-
-class Strictfp {
-    private int $strictfp; // json:strictfp Required
 
     /**
-     * @param int $strictfp
+     * @return Where
      */
-    public function __construct(int $strictfp) {
-        $this->strictfp = $strictfp;
+    public static function sampleWhere(): Where {
+        return Where::sample(); /*85:where*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return WhileClass
      */
-    public static function fromStrictfp(int $value): int {
-        return $value; /*int*/
+    public static function fromWhile(stdClass $value): WhileClass {
+        return WhileClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStrictfp(): int {
-        if (Strictfp::validateStrictfp($this->strictfp))  {
-            return $this->strictfp; /*int*/
+    public function toWhile(): stdClass {
+        if (Obj5::validateWhile($this->while))  {
+            return $this->while->to(); /*class*/
         }
-        throw new Exception('never get to this Strictfp::strictfp');
+        throw new Exception('never get to this Obj5::while');
     }
 
     /**
-     * @param int
+     * @param WhileClass
      * @return bool
      * @throws Exception
      */
-    public static function validateStrictfp(int $value): bool {
+    public static function validateWhile(WhileClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return WhileClass
      */
-    public function getStrictfp(): int {
-        if (Strictfp::validateStrictfp($this->strictfp))  {
-            return $this->strictfp;
+    public function getWhile(): WhileClass {
+        if (Obj5::validateWhile($this->while))  {
+            return $this->while;
         }
-        throw new Exception('never get to getStrictfp Strictfp::strictfp');
+        throw new Exception('never get to getWhile Obj5::while');
     }
 
     /**
-     * @return int
+     * @return WhileClass
      */
-    public static function sampleStrictfp(): int {
-        return 31; /*31:strictfp*/
+    public static function sampleWhile(): WhileClass {
+        return WhileClass::sample(); /*86:while*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return WillSet
      */
-    public function validate(): bool {
-        return Strictfp::validateStrictfp($this->strictfp);
+    public static function fromWillSet(stdClass $value): WillSet {
+        return WillSet::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'strictfp'} = $this->toStrictfp();
-        return $out;
+    public function toWillSet(): stdClass {
+        if (Obj5::validateWillSet($this->willSet))  {
+            return $this->willSet->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::willSet');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Strictfp
+     * @param WillSet
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Strictfp {
-        if (!property_exists($obj, 'strictfp')) {
-            throw new Exception("Missing required property");
-        }
-        return new Strictfp(
-         Strictfp::fromStrictfp($obj->{'strictfp'})
-        );
+    public static function validateWillSet(WillSet $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Strictfp
+     * @throws Exception
+     * @return WillSet
      */
-    public static function sample(): Strictfp {
-        return new Strictfp(
-         Strictfp::sampleStrictfp()
-        );
+    public function getWillSet(): WillSet {
+        if (Obj5::validateWillSet($this->willSet))  {
+            return $this->willSet;
+        }
+        throw new Exception('never get to getWillSet Obj5::willSet');
     }
-}
-
-// This is an autogenerated file:StringClass
-
-class StringClass {
-    private int $string; // json:string Required
 
     /**
-     * @param int $string
+     * @return WillSet
      */
-    public function __construct(int $string) {
-        $this->string = $string;
+    public static function sampleWillSet(): WillSet {
+        return WillSet::sample(); /*87:willSet*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return With
      */
-    public static function fromString(int $value): int {
-        return $value; /*int*/
+    public static function fromWith(stdClass $value): With {
+        return With::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toString(): int {
-        if (StringClass::validateString($this->string))  {
-            return $this->string; /*int*/
+    public function toWith(): stdClass {
+        if (Obj5::validateWith($this->with))  {
+            return $this->with->to(); /*class*/
         }
-        throw new Exception('never get to this StringClass::string');
+        throw new Exception('never get to this Obj5::with');
     }
 
     /**
-     * @param int
+     * @param With
      * @return bool
      * @throws Exception
      */
-    public static function validateString(int $value): bool {
+    public static function validateWith(With $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return With
      */
-    public function getString(): int {
-        if (StringClass::validateString($this->string))  {
-            return $this->string;
+    public function getWith(): With {
+        if (Obj5::validateWith($this->with))  {
+            return $this->with;
         }
-        throw new Exception('never get to getString StringClass::string');
+        throw new Exception('never get to getWith Obj5::with');
     }
 
     /**
-     * @return int
+     * @return With
      */
-    public static function sampleString(): int {
-        return 31; /*31:string*/
+    public static function sampleWith(): With {
+        return With::sample(); /*88:with*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return XorClass
      */
-    public function validate(): bool {
-        return StringClass::validateString($this->string);
+    public static function fromXor(stdClass $value): XorClass {
+        return XorClass::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'string'} = $this->toString();
-        return $out;
+    public function toXor(): stdClass {
+        if (Obj5::validateXor($this->xor))  {
+            return $this->xor->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::xor');
     }
 
     /**
-     * @param stdClass $obj
-     * @return StringClass
+     * @param XorClass
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): StringClass {
-        if (!property_exists($obj, 'string')) {
-            throw new Exception("Missing required property");
-        }
-        return new StringClass(
-         StringClass::fromString($obj->{'string'})
-        );
+    public static function validateXor(XorClass $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return StringClass
+     * @throws Exception
+     * @return XorClass
      */
-    public static function sample(): StringClass {
-        return new StringClass(
-         StringClass::sampleString()
-        );
+    public function getXor(): XorClass {
+        if (Obj5::validateXor($this->xor))  {
+            return $this->xor;
+        }
+        throw new Exception('never get to getXor Obj5::xor');
     }
-}
-
-// This is an autogenerated file:Struct
-
-class Struct {
-    private int $struct; // json:struct Required
 
     /**
-     * @param int $struct
+     * @return XorClass
      */
-    public function __construct(int $struct) {
-        $this->struct = $struct;
+    public static function sampleXor(): XorClass {
+        return XorClass::sample(); /*89:xor*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return XorEq
      */
-    public static function fromStruct(int $value): int {
-        return $value; /*int*/
+    public static function fromXorEq(stdClass $value): XorEq {
+        return XorEq::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toStruct(): int {
-        if (Struct::validateStruct($this->struct))  {
-            return $this->struct; /*int*/
+    public function toXorEq(): stdClass {
+        if (Obj5::validateXorEq($this->xorEq))  {
+            return $this->xorEq->to(); /*class*/
         }
-        throw new Exception('never get to this Struct::struct');
+        throw new Exception('never get to this Obj5::xorEq');
     }
 
     /**
-     * @param int
+     * @param XorEq
      * @return bool
      * @throws Exception
      */
-    public static function validateStruct(int $value): bool {
+    public static function validateXorEq(XorEq $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return XorEq
      */
-    public function getStruct(): int {
-        if (Struct::validateStruct($this->struct))  {
-            return $this->struct;
+    public function getXorEq(): XorEq {
+        if (Obj5::validateXorEq($this->xorEq))  {
+            return $this->xorEq;
         }
-        throw new Exception('never get to getStruct Struct::struct');
+        throw new Exception('never get to getXorEq Obj5::xorEq');
     }
 
     /**
-     * @return int
+     * @return XorEq
      */
-    public static function sampleStruct(): int {
-        return 31; /*31:struct*/
+    public static function sampleXorEq(): XorEq {
+        return XorEq::sample(); /*90:xorEq*/
     }
 
     /**
+     * @param stdClass $value
      * @throws Exception
-     * @return bool
+     * @return Yes
      */
-    public function validate(): bool {
-        return Struct::validateStruct($this->struct);
+    public static function fromYes(stdClass $value): Yes {
+        return Yes::from($value); /*class*/
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return stdClass
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'struct'} = $this->toStruct();
-        return $out;
+    public function toYes(): stdClass {
+        if (Obj5::validateYes($this->yes))  {
+            return $this->yes->to(); /*class*/
+        }
+        throw new Exception('never get to this Obj5::yes');
     }
 
     /**
-     * @param stdClass $obj
-     * @return Struct
+     * @param Yes
+     * @return bool
      * @throws Exception
      */
-    public static function from(stdClass $obj): Struct {
-        if (!property_exists($obj, 'struct')) {
-            throw new Exception("Missing required property");
-        }
-        return new Struct(
-         Struct::fromStruct($obj->{'struct'})
-        );
+    public static function validateYes(Yes $value): bool {
+        $value->validate();
+        return true;
     }
 
     /**
-     * @return Struct
+     * @throws Exception
+     * @return Yes
      */
-    public static function sample(): Struct {
-        return new Struct(
-         Struct::sampleStruct()
-        );
+    public function getYes(): Yes {
+        if (Obj5::validateYes($this->yes))  {
+            return $this->yes;
+        }
+        throw new Exception('never get to getYes Obj5::yes');
     }
-}
-
-// This is an autogenerated file:Subscript
-
-class Subscript {
-    private int $subscript; // json:subscript Required
 
     /**
-     * @param int $subscript
+     * @return Yes
      */
-    public function __construct(int $subscript) {
-        $this->subscript = $subscript;
+    public static function sampleYes(): Yes {
+        return Yes::sample(); /*91:yes*/
     }
 
     /**
-     * @param int $value
+     * @param stdClass $value
      * @throws Exception
-     * @return int
+     * @return YieldClass
      */
-    public static function fromSubscript(int $value): int {
-        return $value; /*int*/
+    public static function fromYield(stdClass $value): YieldClass {
+        return YieldClass::from($value); /*class*/
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return stdClass
      */
-    public function toSubscript(): int {
-        if (Subscript::validateSubscript($this->subscript))  {
-            return $this->subscript; /*int*/
+    public function toYield(): stdClass {
+        if (Obj5::validateYield($this->yield))  {
+            return $this->yield->to(); /*class*/
         }
-        throw new Exception('never get to this Subscript::subscript');
+        throw new Exception('never get to this Obj5::yield');
     }
 
     /**
-     * @param int
+     * @param YieldClass
      * @return bool
      * @throws Exception
      */
-    public static function validateSubscript(int $value): bool {
+    public static function validateYield(YieldClass $value): bool {
+        $value->validate();
         return true;
     }
 
     /**
      * @throws Exception
-     * @return int
+     * @return YieldClass
      */
-    public function getSubscript(): int {
-        if (Subscript::validateSubscript($this->subscript))  {
-            return $this->subscript;
+    public function getYield(): YieldClass {
+        if (Obj5::validateYield($this->yield))  {
+            return $this->yield;
         }
-        throw new Exception('never get to getSubscript Subscript::subscript');
+        throw new Exception('never get to getYield Obj5::yield');
     }
 
     /**
-     * @return int
+     * @return YieldClass
      */
-    public static function sampleSubscript(): int {
-        return 31; /*31:subscript*/
+    public static function sampleYield(): YieldClass {
+        return YieldClass::sample(); /*92:yield*/
     }
 
     /**
@@ -44751,7 +44749,68 @@ class Subscript {
      * @return bool
      */
     public function validate(): bool {
-        return Subscript::validateSubscript($this->subscript);
+        return Obj5::validateDummy($this->dummy)
+        || Obj5::validateObj5This($this->obj5This)
+        || Obj5::validateObj5True($this->obj5True)
+        || Obj5::validateObj5Type($this->obj5Type)
+        || Obj5::validateStaticCast($this->staticCast)
+        || Obj5::validateStdDeserializer($this->stdDeserializer)
+        || Obj5::validateStdSerializer($this->stdSerializer)
+        || Obj5::validateStrictfp($this->strictfp)
+        || Obj5::validateString($this->string)
+        || Obj5::validateStruct($this->struct)
+        || Obj5::validateSubscript($this->subscript)
+        || Obj5::validateSuper($this->super)
+        || Obj5::validateSwitch($this->switch)
+        || Obj5::validateSymbol($this->symbol)
+        || Obj5::validateSynchronized($this->synchronized)
+        || Obj5::validateSystem($this->system)
+        || Obj5::validateTemplate($this->template)
+        || Obj5::validateThen($this->then)
+        || Obj5::validateThreadLocal($this->threadLocal)
+        || Obj5::validateThrow($this->throw)
+        || Obj5::validateThrows($this->throws)
+        || Obj5::validateTimeOnly($this->timeOnly)
+        || Obj5::validateTimeOnlyConverter($this->timeOnlyConverter)
+        || Obj5::validateToJSON($this->toJSON)
+        || Obj5::validateToString($this->toString)
+        || Obj5::validateTopLevel($this->topLevel)
+        || Obj5::validateTransient($this->transient)
+        || Obj5::validateTrue($this->true)
+        || Obj5::validateTry($this->try)
+        || Obj5::validateType($this->type)
+        || Obj5::validateTypealias($this->typealias)
+        || Obj5::validateTypedef($this->typedef)
+        || Obj5::validateTypeid($this->typeid)
+        || Obj5::validateTypename($this->typename)
+        || Obj5::validateTypeof($this->typeof)
+        || Obj5::validateUint($this->uint)
+        || Obj5::validateUlong($this->ulong)
+        || Obj5::validateUnchecked($this->unchecked)
+        || Obj5::validateUndefined($this->undefined)
+        || Obj5::validateUnion($this->union)
+        || Obj5::validateUnowned($this->unowned)
+        || Obj5::validateUnsafe($this->unsafe)
+        || Obj5::validateUnsigned($this->unsigned)
+        || Obj5::validateUshort($this->ushort)
+        || Obj5::validateUsing($this->using)
+        || Obj5::validateUtf8JSONReader($this->utf8JSONReader)
+        || Obj5::validateUtf8JSONWriter($this->utf8JSONWriter)
+        || Obj5::validateUUID($this->uuid)
+        || Obj5::validateVar($this->var)
+        || Obj5::validateVirtual($this->virtual)
+        || Obj5::validateVoid($this->void)
+        || Obj5::validateVolatile($this->volatile)
+        || Obj5::validateWcharT($this->wcharT)
+        || Obj5::validateWeak($this->weak)
+        || Obj5::validateWhere($this->where)
+        || Obj5::validateWhile($this->while)
+        || Obj5::validateWillSet($this->willSet)
+        || Obj5::validateWith($this->with)
+        || Obj5::validateXor($this->xor)
+        || Obj5::validateXorEq($this->xorEq)
+        || Obj5::validateYes($this->yes)
+        || Obj5::validateYield($this->yield);
     }
 
     /**
@@ -44760,246 +44819,410 @@ class Subscript {
      */
     public function to(): stdClass  {
         $out = new stdClass();
+        $out->{'dummy'} = $this->toDummy();
+        $out->{'this'} = $this->toObj5This();
+        $out->{'true'} = $this->toObj5True();
+        $out->{'type'} = $this->toObj5Type();
+        $out->{'static_cast'} = $this->toStaticCast();
+        $out->{'StdDeserializer'} = $this->toStdDeserializer();
+        $out->{'StdSerializer'} = $this->toStdSerializer();
+        $out->{'strictfp'} = $this->toStrictfp();
+        $out->{'string'} = $this->purpleToString();
+        $out->{'struct'} = $this->toStruct();
         $out->{'subscript'} = $this->toSubscript();
+        $out->{'super'} = $this->toSuper();
+        $out->{'switch'} = $this->toSwitch();
+        $out->{'symbol'} = $this->toSymbol();
+        $out->{'synchronized'} = $this->toSynchronized();
+        $out->{'system'} = $this->toSystem();
+        $out->{'template'} = $this->toTemplate();
+        $out->{'then'} = $this->toThen();
+        $out->{'thread_local'} = $this->toThreadLocal();
+        $out->{'throw'} = $this->toThrow();
+        $out->{'throws'} = $this->toThrows();
+        $out->{'TimeOnly'} = $this->toTimeOnly();
+        $out->{'TimeOnlyConverter'} = $this->toTimeOnlyConverter();
+        $out->{'to_json'} = $this->toToJSON();
+        $out->{'toString'} = $this->toToString();
+        $out->{'top_level'} = $this->toTopLevel();
+        $out->{'transient'} = $this->toTransient();
+        $out->{'True'} = $this->toTrue();
+        $out->{'try'} = $this->toTry();
+        $out->{'Type'} = $this->toType();
+        $out->{'typealias'} = $this->toTypealias();
+        $out->{'typedef'} = $this->toTypedef();
+        $out->{'typeid'} = $this->toTypeid();
+        $out->{'typename'} = $this->toTypename();
+        $out->{'typeof'} = $this->toTypeof();
+        $out->{'uint'} = $this->toUint();
+        $out->{'ulong'} = $this->toUlong();
+        $out->{'unchecked'} = $this->toUnchecked();
+        $out->{'undefined'} = $this->toUndefined();
+        $out->{'union'} = $this->toUnion();
+        $out->{'unowned'} = $this->toUnowned();
+        $out->{'unsafe'} = $this->toUnsafe();
+        $out->{'unsigned'} = $this->toUnsigned();
+        $out->{'ushort'} = $this->toUshort();
+        $out->{'using'} = $this->toUsing();
+        $out->{'Utf8JsonReader'} = $this->toUtf8JSONReader();
+        $out->{'Utf8JsonWriter'} = $this->toUtf8JSONWriter();
+        $out->{'UUID'} = $this->toUUID();
+        $out->{'var'} = $this->toVar();
+        $out->{'virtual'} = $this->toVirtual();
+        $out->{'void'} = $this->toVoid();
+        $out->{'volatile'} = $this->toVolatile();
+        $out->{'wchar_t'} = $this->toWcharT();
+        $out->{'weak'} = $this->toWeak();
+        $out->{'where'} = $this->toWhere();
+        $out->{'while'} = $this->toWhile();
+        $out->{'willSet'} = $this->toWillSet();
+        $out->{'with'} = $this->toWith();
+        $out->{'xor'} = $this->toXor();
+        $out->{'xor_eq'} = $this->toXorEq();
+        $out->{'YES'} = $this->toYes();
+        $out->{'yield'} = $this->toYield();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Subscript
+     * @return Obj5
      * @throws Exception
      */
-    public static function from(stdClass $obj): Subscript {
+    public static function from(stdClass $obj): Obj5 {
+        if (!property_exists($obj, 'dummy')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'this')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'true')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'type')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'static_cast')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'StdDeserializer')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'StdSerializer')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'strictfp')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'string')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'struct')) {
+            throw new Exception("Missing required property");
+        }
         if (!property_exists($obj, 'subscript')) {
             throw new Exception("Missing required property");
         }
-        return new Subscript(
-         Subscript::fromSubscript($obj->{'subscript'})
-        );
-    }
-
-    /**
-     * @return Subscript
-     */
-    public static function sample(): Subscript {
-        return new Subscript(
-         Subscript::sampleSubscript()
-        );
-    }
-}
-
-// This is an autogenerated file:Super
-
-class Super {
-    private int $super; // json:super Required
-
-    /**
-     * @param int $super
-     */
-    public function __construct(int $super) {
-        $this->super = $super;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromSuper(int $value): int {
-        return $value; /*int*/
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toSuper(): int {
-        if (Super::validateSuper($this->super))  {
-            return $this->super; /*int*/
+        if (!property_exists($obj, 'super')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'switch')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'symbol')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'synchronized')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'system')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'template')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'then')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'thread_local')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'throw')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'throws')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'TimeOnly')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'TimeOnlyConverter')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'to_json')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'toString')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'top_level')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'transient')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'True')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'try')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Type')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'typealias')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'typedef')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'typeid')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'typename')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'typeof')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'uint')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'ulong')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'unchecked')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'undefined')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'union')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'unowned')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'unsafe')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'unsigned')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'ushort')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'using')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Utf8JsonReader')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'Utf8JsonWriter')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'UUID')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'var')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'virtual')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'void')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'volatile')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'wchar_t')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this Super::super');
-    }
-
-    /**
-     * @param int
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateSuper(int $value): bool {
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function getSuper(): int {
-        if (Super::validateSuper($this->super))  {
-            return $this->super;
+        if (!property_exists($obj, 'weak')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getSuper Super::super');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleSuper(): int {
-        return 31; /*31:super*/
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return Super::validateSuper($this->super);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'super'} = $this->toSuper();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return Super
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): Super {
-        if (!property_exists($obj, 'super')) {
+        if (!property_exists($obj, 'where')) {
             throw new Exception("Missing required property");
         }
-        return new Super(
-         Super::fromSuper($obj->{'super'})
-        );
-    }
-
-    /**
-     * @return Super
-     */
-    public static function sample(): Super {
-        return new Super(
-         Super::sampleSuper()
-        );
-    }
-}
-
-// This is an autogenerated file:SwitchClass
-
-class SwitchClass {
-    private int $switch; // json:switch Required
-
-    /**
-     * @param int $switch
-     */
-    public function __construct(int $switch) {
-        $this->switch = $switch;
-    }
-
-    /**
-     * @param int $value
-     * @throws Exception
-     * @return int
-     */
-    public static function fromSwitch(int $value): int {
-        return $value; /*int*/
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function toSwitch(): int {
-        if (SwitchClass::validateSwitch($this->switch))  {
-            return $this->switch; /*int*/
+        if (!property_exists($obj, 'while')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to this SwitchClass::switch');
-    }
-
-    /**
-     * @param int
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateSwitch(int $value): bool {
-        return true;
-    }
-
-    /**
-     * @throws Exception
-     * @return int
-     */
-    public function getSwitch(): int {
-        if (SwitchClass::validateSwitch($this->switch))  {
-            return $this->switch;
+        if (!property_exists($obj, 'willSet')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getSwitch SwitchClass::switch');
-    }
-
-    /**
-     * @return int
-     */
-    public static function sampleSwitch(): int {
-        return 31; /*31:switch*/
-    }
-
-    /**
-     * @throws Exception
-     * @return bool
-     */
-    public function validate(): bool {
-        return SwitchClass::validateSwitch($this->switch);
-    }
-
-    /**
-     * @return stdClass
-     * @throws Exception
-     */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'switch'} = $this->toSwitch();
-        return $out;
-    }
-
-    /**
-     * @param stdClass $obj
-     * @return SwitchClass
-     * @throws Exception
-     */
-    public static function from(stdClass $obj): SwitchClass {
-        if (!property_exists($obj, 'switch')) {
+        if (!property_exists($obj, 'with')) {
             throw new Exception("Missing required property");
         }
-        return new SwitchClass(
-         SwitchClass::fromSwitch($obj->{'switch'})
+        if (!property_exists($obj, 'xor')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'xor_eq')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'YES')) {
+            throw new Exception("Missing required property");
+        }
+        if (!property_exists($obj, 'yield')) {
+            throw new Exception("Missing required property");
+        }
+        return new Obj5(
+         Obj5::fromDummy($obj->{'dummy'})
+        ,Obj5::fromObj5This($obj->{'this'})
+        ,Obj5::fromObj5True($obj->{'true'})
+        ,Obj5::fromObj5Type($obj->{'type'})
+        ,Obj5::fromStaticCast($obj->{'static_cast'})
+        ,Obj5::fromStdDeserializer($obj->{'StdDeserializer'})
+        ,Obj5::fromStdSerializer($obj->{'StdSerializer'})
+        ,Obj5::fromStrictfp($obj->{'strictfp'})
+        ,Obj5::fromString($obj->{'string'})
+        ,Obj5::fromStruct($obj->{'struct'})
+        ,Obj5::fromSubscript($obj->{'subscript'})
+        ,Obj5::fromSuper($obj->{'super'})
+        ,Obj5::fromSwitch($obj->{'switch'})
+        ,Obj5::fromSymbol($obj->{'symbol'})
+        ,Obj5::fromSynchronized($obj->{'synchronized'})
+        ,Obj5::fromSystem($obj->{'system'})
+        ,Obj5::fromTemplate($obj->{'template'})
+        ,Obj5::fromThen($obj->{'then'})
+        ,Obj5::fromThreadLocal($obj->{'thread_local'})
+        ,Obj5::fromThrow($obj->{'throw'})
+        ,Obj5::fromThrows($obj->{'throws'})
+        ,Obj5::fromTimeOnly($obj->{'TimeOnly'})
+        ,Obj5::fromTimeOnlyConverter($obj->{'TimeOnlyConverter'})
+        ,Obj5::fromToJSON($obj->{'to_json'})
+        ,Obj5::fromToString($obj->{'toString'})
+        ,Obj5::fromTopLevel($obj->{'top_level'})
+        ,Obj5::fromTransient($obj->{'transient'})
+        ,Obj5::fromTrue($obj->{'True'})
+        ,Obj5::fromTry($obj->{'try'})
+        ,Obj5::fromType($obj->{'Type'})
+        ,Obj5::fromTypealias($obj->{'typealias'})
+        ,Obj5::fromTypedef($obj->{'typedef'})
+        ,Obj5::fromTypeid($obj->{'typeid'})
+        ,Obj5::fromTypename($obj->{'typename'})
+        ,Obj5::fromTypeof($obj->{'typeof'})
+        ,Obj5::fromUint($obj->{'uint'})
+        ,Obj5::fromUlong($obj->{'ulong'})
+        ,Obj5::fromUnchecked($obj->{'unchecked'})
+        ,Obj5::fromUndefined($obj->{'undefined'})
+        ,Obj5::fromUnion($obj->{'union'})
+        ,Obj5::fromUnowned($obj->{'unowned'})
+        ,Obj5::fromUnsafe($obj->{'unsafe'})
+        ,Obj5::fromUnsigned($obj->{'unsigned'})
+        ,Obj5::fromUshort($obj->{'ushort'})
+        ,Obj5::fromUsing($obj->{'using'})
+        ,Obj5::fromUtf8JSONReader($obj->{'Utf8JsonReader'})
+        ,Obj5::fromUtf8JSONWriter($obj->{'Utf8JsonWriter'})
+        ,Obj5::fromUUID($obj->{'UUID'})
+        ,Obj5::fromVar($obj->{'var'})
+        ,Obj5::fromVirtual($obj->{'virtual'})
+        ,Obj5::fromVoid($obj->{'void'})
+        ,Obj5::fromVolatile($obj->{'volatile'})
+        ,Obj5::fromWcharT($obj->{'wchar_t'})
+        ,Obj5::fromWeak($obj->{'weak'})
+        ,Obj5::fromWhere($obj->{'where'})
+        ,Obj5::fromWhile($obj->{'while'})
+        ,Obj5::fromWillSet($obj->{'willSet'})
+        ,Obj5::fromWith($obj->{'with'})
+        ,Obj5::fromXor($obj->{'xor'})
+        ,Obj5::fromXorEq($obj->{'xor_eq'})
+        ,Obj5::fromYes($obj->{'YES'})
+        ,Obj5::fromYield($obj->{'yield'})
         );
     }
 
     /**
-     * @return SwitchClass
+     * @return Obj5
      */
-    public static function sample(): SwitchClass {
-        return new SwitchClass(
-         SwitchClass::sampleSwitch()
+    public static function sample(): Obj5 {
+        return new Obj5(
+         Obj5::sampleDummy()
+        ,Obj5::sampleObj5This()
+        ,Obj5::sampleObj5True()
+        ,Obj5::sampleObj5Type()
+        ,Obj5::sampleStaticCast()
+        ,Obj5::sampleStdDeserializer()
+        ,Obj5::sampleStdSerializer()
+        ,Obj5::sampleStrictfp()
+        ,Obj5::sampleString()
+        ,Obj5::sampleStruct()
+        ,Obj5::sampleSubscript()
+        ,Obj5::sampleSuper()
+        ,Obj5::sampleSwitch()
+        ,Obj5::sampleSymbol()
+        ,Obj5::sampleSynchronized()
+        ,Obj5::sampleSystem()
+        ,Obj5::sampleTemplate()
+        ,Obj5::sampleThen()
+        ,Obj5::sampleThreadLocal()
+        ,Obj5::sampleThrow()
+        ,Obj5::sampleThrows()
+        ,Obj5::sampleTimeOnly()
+        ,Obj5::sampleTimeOnlyConverter()
+        ,Obj5::sampleToJSON()
+        ,Obj5::sampleToString()
+        ,Obj5::sampleTopLevel()
+        ,Obj5::sampleTransient()
+        ,Obj5::sampleTrue()
+        ,Obj5::sampleTry()
+        ,Obj5::sampleType()
+        ,Obj5::sampleTypealias()
+        ,Obj5::sampleTypedef()
+        ,Obj5::sampleTypeid()
+        ,Obj5::sampleTypename()
+        ,Obj5::sampleTypeof()
+        ,Obj5::sampleUint()
+        ,Obj5::sampleUlong()
+        ,Obj5::sampleUnchecked()
+        ,Obj5::sampleUndefined()
+        ,Obj5::sampleUnion()
+        ,Obj5::sampleUnowned()
+        ,Obj5::sampleUnsafe()
+        ,Obj5::sampleUnsigned()
+        ,Obj5::sampleUshort()
+        ,Obj5::sampleUsing()
+        ,Obj5::sampleUtf8JSONReader()
+        ,Obj5::sampleUtf8JSONWriter()
+        ,Obj5::sampleUUID()
+        ,Obj5::sampleVar()
+        ,Obj5::sampleVirtual()
+        ,Obj5::sampleVoid()
+        ,Obj5::sampleVolatile()
+        ,Obj5::sampleWcharT()
+        ,Obj5::sampleWeak()
+        ,Obj5::sampleWhere()
+        ,Obj5::sampleWhile()
+        ,Obj5::sampleWillSet()
+        ,Obj5::sampleWith()
+        ,Obj5::sampleXor()
+        ,Obj5::sampleXorEq()
+        ,Obj5::sampleYes()
+        ,Obj5::sampleYield()
         );
     }
 }
 
-// This is an autogenerated file:Symbol
+// This is an autogenerated file:This
 
-class Symbol {
-    private int $symbol; // json:symbol Required
+class This {
+    private int $thisThis; // json:this Required
 
     /**
-     * @param int $symbol
+     * @param int $thisThis
      */
-    public function __construct(int $symbol) {
-        $this->symbol = $symbol;
+    public function __construct(int $thisThis) {
+        $this->thisThis = $thisThis;
     }
 
     /**
@@ -45007,7 +45230,7 @@ class Symbol {
      * @throws Exception
      * @return int
      */
-    public static function fromSymbol(int $value): int {
+    public static function fromThisThis(int $value): int {
         return $value; /*int*/
     }
 
@@ -45015,11 +45238,11 @@ class Symbol {
      * @throws Exception
      * @return int
      */
-    public function toSymbol(): int {
-        if (Symbol::validateSymbol($this->symbol))  {
-            return $this->symbol; /*int*/
+    public function toThisThis(): int {
+        if (This::validateThisThis($this->thisThis))  {
+            return $this->thisThis; /*int*/
         }
-        throw new Exception('never get to this Symbol::symbol');
+        throw new Exception('never get to this This::thisThis');
     }
 
     /**
@@ -45027,7 +45250,7 @@ class Symbol {
      * @return bool
      * @throws Exception
      */
-    public static function validateSymbol(int $value): bool {
+    public static function validateThisThis(int $value): bool {
         return true;
     }
 
@@ -45035,18 +45258,18 @@ class Symbol {
      * @throws Exception
      * @return int
      */
-    public function getSymbol(): int {
-        if (Symbol::validateSymbol($this->symbol))  {
-            return $this->symbol;
+    public function getThisThis(): int {
+        if (This::validateThisThis($this->thisThis))  {
+            return $this->thisThis;
         }
-        throw new Exception('never get to getSymbol Symbol::symbol');
+        throw new Exception('never get to getThisThis This::thisThis');
     }
 
     /**
      * @return int
      */
-    public static function sampleSymbol(): int {
-        return 31; /*31:symbol*/
+    public static function sampleThisThis(): int {
+        return 31; /*31:thisThis*/
     }
 
     /**
@@ -45054,7 +45277,7 @@ class Symbol {
      * @return bool
      */
     public function validate(): bool {
-        return Symbol::validateSymbol($this->symbol);
+        return This::validateThisThis($this->thisThis);
     }
 
     /**
@@ -45063,44 +45286,44 @@ class Symbol {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'symbol'} = $this->toSymbol();
+        $out->{'this'} = $this->toThisThis();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Symbol
+     * @return This
      * @throws Exception
      */
-    public static function from(stdClass $obj): Symbol {
-        if (!property_exists($obj, 'symbol')) {
+    public static function from(stdClass $obj): This {
+        if (!property_exists($obj, 'this')) {
             throw new Exception("Missing required property");
         }
-        return new Symbol(
-         Symbol::fromSymbol($obj->{'symbol'})
+        return new This(
+         This::fromThisThis($obj->{'this'})
         );
     }
 
     /**
-     * @return Symbol
+     * @return This
      */
-    public static function sample(): Symbol {
-        return new Symbol(
-         Symbol::sampleSymbol()
+    public static function sample(): This {
+        return new This(
+         This::sampleThisThis()
         );
     }
 }
 
-// This is an autogenerated file:Synchronized
+// This is an autogenerated file:Obj5True
 
-class Synchronized {
-    private int $synchronized; // json:synchronized Required
+class Obj5True {
+    private int $true; // json:true Required
 
     /**
-     * @param int $synchronized
+     * @param int $true
      */
-    public function __construct(int $synchronized) {
-        $this->synchronized = $synchronized;
+    public function __construct(int $true) {
+        $this->true = $true;
     }
 
     /**
@@ -45108,7 +45331,7 @@ class Synchronized {
      * @throws Exception
      * @return int
      */
-    public static function fromSynchronized(int $value): int {
+    public static function fromTrue(int $value): int {
         return $value; /*int*/
     }
 
@@ -45116,11 +45339,11 @@ class Synchronized {
      * @throws Exception
      * @return int
      */
-    public function toSynchronized(): int {
-        if (Synchronized::validateSynchronized($this->synchronized))  {
-            return $this->synchronized; /*int*/
+    public function toTrue(): int {
+        if (Obj5True::validateTrue($this->true))  {
+            return $this->true; /*int*/
         }
-        throw new Exception('never get to this Synchronized::synchronized');
+        throw new Exception('never get to this Obj5True::true');
     }
 
     /**
@@ -45128,7 +45351,7 @@ class Synchronized {
      * @return bool
      * @throws Exception
      */
-    public static function validateSynchronized(int $value): bool {
+    public static function validateTrue(int $value): bool {
         return true;
     }
 
@@ -45136,18 +45359,18 @@ class Synchronized {
      * @throws Exception
      * @return int
      */
-    public function getSynchronized(): int {
-        if (Synchronized::validateSynchronized($this->synchronized))  {
-            return $this->synchronized;
+    public function getTrue(): int {
+        if (Obj5True::validateTrue($this->true))  {
+            return $this->true;
         }
-        throw new Exception('never get to getSynchronized Synchronized::synchronized');
+        throw new Exception('never get to getTrue Obj5True::true');
     }
 
     /**
      * @return int
      */
-    public static function sampleSynchronized(): int {
-        return 31; /*31:synchronized*/
+    public static function sampleTrue(): int {
+        return 31; /*31:true*/
     }
 
     /**
@@ -45155,7 +45378,7 @@ class Synchronized {
      * @return bool
      */
     public function validate(): bool {
-        return Synchronized::validateSynchronized($this->synchronized);
+        return Obj5True::validateTrue($this->true);
     }
 
     /**
@@ -45164,44 +45387,44 @@ class Synchronized {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'synchronized'} = $this->toSynchronized();
+        $out->{'true'} = $this->toTrue();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Synchronized
+     * @return Obj5True
      * @throws Exception
      */
-    public static function from(stdClass $obj): Synchronized {
-        if (!property_exists($obj, 'synchronized')) {
+    public static function from(stdClass $obj): Obj5True {
+        if (!property_exists($obj, 'true')) {
             throw new Exception("Missing required property");
         }
-        return new Synchronized(
-         Synchronized::fromSynchronized($obj->{'synchronized'})
+        return new Obj5True(
+         Obj5True::fromTrue($obj->{'true'})
         );
     }
 
     /**
-     * @return Synchronized
+     * @return Obj5True
      */
-    public static function sample(): Synchronized {
-        return new Synchronized(
-         Synchronized::sampleSynchronized()
+    public static function sample(): Obj5True {
+        return new Obj5True(
+         Obj5True::sampleTrue()
         );
     }
 }
 
-// This is an autogenerated file:System
+// This is an autogenerated file:TypeClass
 
-class System {
-    private int $system; // json:system Required
+class TypeClass {
+    private int $type; // json:type Required
 
     /**
-     * @param int $system
+     * @param int $type
      */
-    public function __construct(int $system) {
-        $this->system = $system;
+    public function __construct(int $type) {
+        $this->type = $type;
     }
 
     /**
@@ -45209,7 +45432,7 @@ class System {
      * @throws Exception
      * @return int
      */
-    public static function fromSystem(int $value): int {
+    public static function fromType(int $value): int {
         return $value; /*int*/
     }
 
@@ -45217,11 +45440,11 @@ class System {
      * @throws Exception
      * @return int
      */
-    public function toSystem(): int {
-        if (System::validateSystem($this->system))  {
-            return $this->system; /*int*/
+    public function toType(): int {
+        if (TypeClass::validateType($this->type))  {
+            return $this->type; /*int*/
         }
-        throw new Exception('never get to this System::system');
+        throw new Exception('never get to this TypeClass::type');
     }
 
     /**
@@ -45229,7 +45452,7 @@ class System {
      * @return bool
      * @throws Exception
      */
-    public static function validateSystem(int $value): bool {
+    public static function validateType(int $value): bool {
         return true;
     }
 
@@ -45237,18 +45460,18 @@ class System {
      * @throws Exception
      * @return int
      */
-    public function getSystem(): int {
-        if (System::validateSystem($this->system))  {
-            return $this->system;
+    public function getType(): int {
+        if (TypeClass::validateType($this->type))  {
+            return $this->type;
         }
-        throw new Exception('never get to getSystem System::system');
+        throw new Exception('never get to getType TypeClass::type');
     }
 
     /**
      * @return int
      */
-    public static function sampleSystem(): int {
-        return 31; /*31:system*/
+    public static function sampleType(): int {
+        return 31; /*31:type*/
     }
 
     /**
@@ -45256,7 +45479,7 @@ class System {
      * @return bool
      */
     public function validate(): bool {
-        return System::validateSystem($this->system);
+        return TypeClass::validateType($this->type);
     }
 
     /**
@@ -45265,44 +45488,44 @@ class System {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'system'} = $this->toSystem();
+        $out->{'type'} = $this->toType();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return System
+     * @return TypeClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): System {
-        if (!property_exists($obj, 'system')) {
+    public static function from(stdClass $obj): TypeClass {
+        if (!property_exists($obj, 'type')) {
             throw new Exception("Missing required property");
         }
-        return new System(
-         System::fromSystem($obj->{'system'})
+        return new TypeClass(
+         TypeClass::fromType($obj->{'type'})
         );
     }
 
     /**
-     * @return System
+     * @return TypeClass
      */
-    public static function sample(): System {
-        return new System(
-         System::sampleSystem()
+    public static function sample(): TypeClass {
+        return new TypeClass(
+         TypeClass::sampleType()
         );
     }
 }
 
-// This is an autogenerated file:Template
+// This is an autogenerated file:StaticCast
 
-class Template {
-    private int $template; // json:template Required
+class StaticCast {
+    private int $staticCast; // json:static_cast Required
 
     /**
-     * @param int $template
+     * @param int $staticCast
      */
-    public function __construct(int $template) {
-        $this->template = $template;
+    public function __construct(int $staticCast) {
+        $this->staticCast = $staticCast;
     }
 
     /**
@@ -45310,7 +45533,7 @@ class Template {
      * @throws Exception
      * @return int
      */
-    public static function fromTemplate(int $value): int {
+    public static function fromStaticCast(int $value): int {
         return $value; /*int*/
     }
 
@@ -45318,11 +45541,11 @@ class Template {
      * @throws Exception
      * @return int
      */
-    public function toTemplate(): int {
-        if (Template::validateTemplate($this->template))  {
-            return $this->template; /*int*/
+    public function toStaticCast(): int {
+        if (StaticCast::validateStaticCast($this->staticCast))  {
+            return $this->staticCast; /*int*/
         }
-        throw new Exception('never get to this Template::template');
+        throw new Exception('never get to this StaticCast::staticCast');
     }
 
     /**
@@ -45330,7 +45553,7 @@ class Template {
      * @return bool
      * @throws Exception
      */
-    public static function validateTemplate(int $value): bool {
+    public static function validateStaticCast(int $value): bool {
         return true;
     }
 
@@ -45338,18 +45561,18 @@ class Template {
      * @throws Exception
      * @return int
      */
-    public function getTemplate(): int {
-        if (Template::validateTemplate($this->template))  {
-            return $this->template;
+    public function getStaticCast(): int {
+        if (StaticCast::validateStaticCast($this->staticCast))  {
+            return $this->staticCast;
         }
-        throw new Exception('never get to getTemplate Template::template');
+        throw new Exception('never get to getStaticCast StaticCast::staticCast');
     }
 
     /**
      * @return int
      */
-    public static function sampleTemplate(): int {
-        return 31; /*31:template*/
+    public static function sampleStaticCast(): int {
+        return 31; /*31:staticCast*/
     }
 
     /**
@@ -45357,7 +45580,7 @@ class Template {
      * @return bool
      */
     public function validate(): bool {
-        return Template::validateTemplate($this->template);
+        return StaticCast::validateStaticCast($this->staticCast);
     }
 
     /**
@@ -45366,44 +45589,44 @@ class Template {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'template'} = $this->toTemplate();
+        $out->{'static_cast'} = $this->toStaticCast();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Template
+     * @return StaticCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): Template {
-        if (!property_exists($obj, 'template')) {
+    public static function from(stdClass $obj): StaticCast {
+        if (!property_exists($obj, 'static_cast')) {
             throw new Exception("Missing required property");
         }
-        return new Template(
-         Template::fromTemplate($obj->{'template'})
+        return new StaticCast(
+         StaticCast::fromStaticCast($obj->{'static_cast'})
         );
     }
 
     /**
-     * @return Template
+     * @return StaticCast
      */
-    public static function sample(): Template {
-        return new Template(
-         Template::sampleTemplate()
+    public static function sample(): StaticCast {
+        return new StaticCast(
+         StaticCast::sampleStaticCast()
         );
     }
 }
 
-// This is an autogenerated file:Then
+// This is an autogenerated file:StdDeserializer
 
-class Then {
-    private int $then; // json:then Required
+class StdDeserializer {
+    private int $stdDeserializer; // json:StdDeserializer Required
 
     /**
-     * @param int $then
+     * @param int $stdDeserializer
      */
-    public function __construct(int $then) {
-        $this->then = $then;
+    public function __construct(int $stdDeserializer) {
+        $this->stdDeserializer = $stdDeserializer;
     }
 
     /**
@@ -45411,7 +45634,7 @@ class Then {
      * @throws Exception
      * @return int
      */
-    public static function fromThen(int $value): int {
+    public static function fromStdDeserializer(int $value): int {
         return $value; /*int*/
     }
 
@@ -45419,11 +45642,11 @@ class Then {
      * @throws Exception
      * @return int
      */
-    public function toThen(): int {
-        if (Then::validateThen($this->then))  {
-            return $this->then; /*int*/
+    public function toStdDeserializer(): int {
+        if (StdDeserializer::validateStdDeserializer($this->stdDeserializer))  {
+            return $this->stdDeserializer; /*int*/
         }
-        throw new Exception('never get to this Then::then');
+        throw new Exception('never get to this StdDeserializer::stdDeserializer');
     }
 
     /**
@@ -45431,7 +45654,7 @@ class Then {
      * @return bool
      * @throws Exception
      */
-    public static function validateThen(int $value): bool {
+    public static function validateStdDeserializer(int $value): bool {
         return true;
     }
 
@@ -45439,18 +45662,18 @@ class Then {
      * @throws Exception
      * @return int
      */
-    public function getThen(): int {
-        if (Then::validateThen($this->then))  {
-            return $this->then;
+    public function getStdDeserializer(): int {
+        if (StdDeserializer::validateStdDeserializer($this->stdDeserializer))  {
+            return $this->stdDeserializer;
         }
-        throw new Exception('never get to getThen Then::then');
+        throw new Exception('never get to getStdDeserializer StdDeserializer::stdDeserializer');
     }
 
     /**
      * @return int
      */
-    public static function sampleThen(): int {
-        return 31; /*31:then*/
+    public static function sampleStdDeserializer(): int {
+        return 31; /*31:stdDeserializer*/
     }
 
     /**
@@ -45458,7 +45681,7 @@ class Then {
      * @return bool
      */
     public function validate(): bool {
-        return Then::validateThen($this->then);
+        return StdDeserializer::validateStdDeserializer($this->stdDeserializer);
     }
 
     /**
@@ -45467,44 +45690,44 @@ class Then {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'then'} = $this->toThen();
+        $out->{'StdDeserializer'} = $this->toStdDeserializer();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Then
+     * @return StdDeserializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): Then {
-        if (!property_exists($obj, 'then')) {
+    public static function from(stdClass $obj): StdDeserializer {
+        if (!property_exists($obj, 'StdDeserializer')) {
             throw new Exception("Missing required property");
         }
-        return new Then(
-         Then::fromThen($obj->{'then'})
+        return new StdDeserializer(
+         StdDeserializer::fromStdDeserializer($obj->{'StdDeserializer'})
         );
     }
 
     /**
-     * @return Then
+     * @return StdDeserializer
      */
-    public static function sample(): Then {
-        return new Then(
-         Then::sampleThen()
+    public static function sample(): StdDeserializer {
+        return new StdDeserializer(
+         StdDeserializer::sampleStdDeserializer()
         );
     }
 }
 
-// This is an autogenerated file:ThreadLocal
+// This is an autogenerated file:StdSerializer
 
-class ThreadLocal {
-    private int $threadLocal; // json:thread_local Required
+class StdSerializer {
+    private int $stdSerializer; // json:StdSerializer Required
 
     /**
-     * @param int $threadLocal
+     * @param int $stdSerializer
      */
-    public function __construct(int $threadLocal) {
-        $this->threadLocal = $threadLocal;
+    public function __construct(int $stdSerializer) {
+        $this->stdSerializer = $stdSerializer;
     }
 
     /**
@@ -45512,7 +45735,7 @@ class ThreadLocal {
      * @throws Exception
      * @return int
      */
-    public static function fromThreadLocal(int $value): int {
+    public static function fromStdSerializer(int $value): int {
         return $value; /*int*/
     }
 
@@ -45520,11 +45743,11 @@ class ThreadLocal {
      * @throws Exception
      * @return int
      */
-    public function toThreadLocal(): int {
-        if (ThreadLocal::validateThreadLocal($this->threadLocal))  {
-            return $this->threadLocal; /*int*/
+    public function toStdSerializer(): int {
+        if (StdSerializer::validateStdSerializer($this->stdSerializer))  {
+            return $this->stdSerializer; /*int*/
         }
-        throw new Exception('never get to this ThreadLocal::threadLocal');
+        throw new Exception('never get to this StdSerializer::stdSerializer');
     }
 
     /**
@@ -45532,7 +45755,7 @@ class ThreadLocal {
      * @return bool
      * @throws Exception
      */
-    public static function validateThreadLocal(int $value): bool {
+    public static function validateStdSerializer(int $value): bool {
         return true;
     }
 
@@ -45540,18 +45763,18 @@ class ThreadLocal {
      * @throws Exception
      * @return int
      */
-    public function getThreadLocal(): int {
-        if (ThreadLocal::validateThreadLocal($this->threadLocal))  {
-            return $this->threadLocal;
+    public function getStdSerializer(): int {
+        if (StdSerializer::validateStdSerializer($this->stdSerializer))  {
+            return $this->stdSerializer;
         }
-        throw new Exception('never get to getThreadLocal ThreadLocal::threadLocal');
+        throw new Exception('never get to getStdSerializer StdSerializer::stdSerializer');
     }
 
     /**
      * @return int
      */
-    public static function sampleThreadLocal(): int {
-        return 31; /*31:threadLocal*/
+    public static function sampleStdSerializer(): int {
+        return 31; /*31:stdSerializer*/
     }
 
     /**
@@ -45559,7 +45782,7 @@ class ThreadLocal {
      * @return bool
      */
     public function validate(): bool {
-        return ThreadLocal::validateThreadLocal($this->threadLocal);
+        return StdSerializer::validateStdSerializer($this->stdSerializer);
     }
 
     /**
@@ -45568,44 +45791,44 @@ class ThreadLocal {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'thread_local'} = $this->toThreadLocal();
+        $out->{'StdSerializer'} = $this->toStdSerializer();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ThreadLocal
+     * @return StdSerializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): ThreadLocal {
-        if (!property_exists($obj, 'thread_local')) {
+    public static function from(stdClass $obj): StdSerializer {
+        if (!property_exists($obj, 'StdSerializer')) {
             throw new Exception("Missing required property");
         }
-        return new ThreadLocal(
-         ThreadLocal::fromThreadLocal($obj->{'thread_local'})
+        return new StdSerializer(
+         StdSerializer::fromStdSerializer($obj->{'StdSerializer'})
         );
     }
 
     /**
-     * @return ThreadLocal
+     * @return StdSerializer
      */
-    public static function sample(): ThreadLocal {
-        return new ThreadLocal(
-         ThreadLocal::sampleThreadLocal()
+    public static function sample(): StdSerializer {
+        return new StdSerializer(
+         StdSerializer::sampleStdSerializer()
         );
     }
 }
 
-// This is an autogenerated file:ThrowClass
+// This is an autogenerated file:Strictfp
 
-class ThrowClass {
-    private int $throw; // json:throw Required
+class Strictfp {
+    private int $strictfp; // json:strictfp Required
 
     /**
-     * @param int $throw
+     * @param int $strictfp
      */
-    public function __construct(int $throw) {
-        $this->throw = $throw;
+    public function __construct(int $strictfp) {
+        $this->strictfp = $strictfp;
     }
 
     /**
@@ -45613,7 +45836,7 @@ class ThrowClass {
      * @throws Exception
      * @return int
      */
-    public static function fromThrow(int $value): int {
+    public static function fromStrictfp(int $value): int {
         return $value; /*int*/
     }
 
@@ -45621,11 +45844,11 @@ class ThrowClass {
      * @throws Exception
      * @return int
      */
-    public function toThrow(): int {
-        if (ThrowClass::validateThrow($this->throw))  {
-            return $this->throw; /*int*/
+    public function toStrictfp(): int {
+        if (Strictfp::validateStrictfp($this->strictfp))  {
+            return $this->strictfp; /*int*/
         }
-        throw new Exception('never get to this ThrowClass::throw');
+        throw new Exception('never get to this Strictfp::strictfp');
     }
 
     /**
@@ -45633,7 +45856,7 @@ class ThrowClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateThrow(int $value): bool {
+    public static function validateStrictfp(int $value): bool {
         return true;
     }
 
@@ -45641,18 +45864,18 @@ class ThrowClass {
      * @throws Exception
      * @return int
      */
-    public function getThrow(): int {
-        if (ThrowClass::validateThrow($this->throw))  {
-            return $this->throw;
+    public function getStrictfp(): int {
+        if (Strictfp::validateStrictfp($this->strictfp))  {
+            return $this->strictfp;
         }
-        throw new Exception('never get to getThrow ThrowClass::throw');
+        throw new Exception('never get to getStrictfp Strictfp::strictfp');
     }
 
     /**
      * @return int
      */
-    public static function sampleThrow(): int {
-        return 31; /*31:throw*/
+    public static function sampleStrictfp(): int {
+        return 31; /*31:strictfp*/
     }
 
     /**
@@ -45660,7 +45883,7 @@ class ThrowClass {
      * @return bool
      */
     public function validate(): bool {
-        return ThrowClass::validateThrow($this->throw);
+        return Strictfp::validateStrictfp($this->strictfp);
     }
 
     /**
@@ -45669,44 +45892,44 @@ class ThrowClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'throw'} = $this->toThrow();
+        $out->{'strictfp'} = $this->toStrictfp();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ThrowClass
+     * @return Strictfp
      * @throws Exception
      */
-    public static function from(stdClass $obj): ThrowClass {
-        if (!property_exists($obj, 'throw')) {
+    public static function from(stdClass $obj): Strictfp {
+        if (!property_exists($obj, 'strictfp')) {
             throw new Exception("Missing required property");
         }
-        return new ThrowClass(
-         ThrowClass::fromThrow($obj->{'throw'})
+        return new Strictfp(
+         Strictfp::fromStrictfp($obj->{'strictfp'})
         );
     }
 
     /**
-     * @return ThrowClass
+     * @return Strictfp
      */
-    public static function sample(): ThrowClass {
-        return new ThrowClass(
-         ThrowClass::sampleThrow()
+    public static function sample(): Strictfp {
+        return new Strictfp(
+         Strictfp::sampleStrictfp()
         );
     }
 }
 
-// This is an autogenerated file:Throws
+// This is an autogenerated file:StringClass
 
-class Throws {
-    private int $throws; // json:throws Required
+class StringClass {
+    private int $string; // json:string Required
 
     /**
-     * @param int $throws
+     * @param int $string
      */
-    public function __construct(int $throws) {
-        $this->throws = $throws;
+    public function __construct(int $string) {
+        $this->string = $string;
     }
 
     /**
@@ -45714,7 +45937,7 @@ class Throws {
      * @throws Exception
      * @return int
      */
-    public static function fromThrows(int $value): int {
+    public static function fromString(int $value): int {
         return $value; /*int*/
     }
 
@@ -45722,11 +45945,11 @@ class Throws {
      * @throws Exception
      * @return int
      */
-    public function toThrows(): int {
-        if (Throws::validateThrows($this->throws))  {
-            return $this->throws; /*int*/
+    public function toString(): int {
+        if (StringClass::validateString($this->string))  {
+            return $this->string; /*int*/
         }
-        throw new Exception('never get to this Throws::throws');
+        throw new Exception('never get to this StringClass::string');
     }
 
     /**
@@ -45734,7 +45957,7 @@ class Throws {
      * @return bool
      * @throws Exception
      */
-    public static function validateThrows(int $value): bool {
+    public static function validateString(int $value): bool {
         return true;
     }
 
@@ -45742,18 +45965,18 @@ class Throws {
      * @throws Exception
      * @return int
      */
-    public function getThrows(): int {
-        if (Throws::validateThrows($this->throws))  {
-            return $this->throws;
+    public function getString(): int {
+        if (StringClass::validateString($this->string))  {
+            return $this->string;
         }
-        throw new Exception('never get to getThrows Throws::throws');
+        throw new Exception('never get to getString StringClass::string');
     }
 
     /**
      * @return int
      */
-    public static function sampleThrows(): int {
-        return 31; /*31:throws*/
+    public static function sampleString(): int {
+        return 31; /*31:string*/
     }
 
     /**
@@ -45761,7 +45984,7 @@ class Throws {
      * @return bool
      */
     public function validate(): bool {
-        return Throws::validateThrows($this->throws);
+        return StringClass::validateString($this->string);
     }
 
     /**
@@ -45770,44 +45993,44 @@ class Throws {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'throws'} = $this->toThrows();
+        $out->{'string'} = $this->toString();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Throws
+     * @return StringClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Throws {
-        if (!property_exists($obj, 'throws')) {
+    public static function from(stdClass $obj): StringClass {
+        if (!property_exists($obj, 'string')) {
             throw new Exception("Missing required property");
         }
-        return new Throws(
-         Throws::fromThrows($obj->{'throws'})
+        return new StringClass(
+         StringClass::fromString($obj->{'string'})
         );
     }
 
     /**
-     * @return Throws
+     * @return StringClass
      */
-    public static function sample(): Throws {
-        return new Throws(
-         Throws::sampleThrows()
+    public static function sample(): StringClass {
+        return new StringClass(
+         StringClass::sampleString()
         );
     }
 }
 
-// This is an autogenerated file:TimeOnly
+// This is an autogenerated file:Struct
 
-class TimeOnly {
-    private int $timeOnly; // json:TimeOnly Required
+class Struct {
+    private int $struct; // json:struct Required
 
     /**
-     * @param int $timeOnly
+     * @param int $struct
      */
-    public function __construct(int $timeOnly) {
-        $this->timeOnly = $timeOnly;
+    public function __construct(int $struct) {
+        $this->struct = $struct;
     }
 
     /**
@@ -45815,7 +46038,7 @@ class TimeOnly {
      * @throws Exception
      * @return int
      */
-    public static function fromTimeOnly(int $value): int {
+    public static function fromStruct(int $value): int {
         return $value; /*int*/
     }
 
@@ -45823,11 +46046,11 @@ class TimeOnly {
      * @throws Exception
      * @return int
      */
-    public function toTimeOnly(): int {
-        if (TimeOnly::validateTimeOnly($this->timeOnly))  {
-            return $this->timeOnly; /*int*/
+    public function toStruct(): int {
+        if (Struct::validateStruct($this->struct))  {
+            return $this->struct; /*int*/
         }
-        throw new Exception('never get to this TimeOnly::timeOnly');
+        throw new Exception('never get to this Struct::struct');
     }
 
     /**
@@ -45835,7 +46058,7 @@ class TimeOnly {
      * @return bool
      * @throws Exception
      */
-    public static function validateTimeOnly(int $value): bool {
+    public static function validateStruct(int $value): bool {
         return true;
     }
 
@@ -45843,18 +46066,18 @@ class TimeOnly {
      * @throws Exception
      * @return int
      */
-    public function getTimeOnly(): int {
-        if (TimeOnly::validateTimeOnly($this->timeOnly))  {
-            return $this->timeOnly;
+    public function getStruct(): int {
+        if (Struct::validateStruct($this->struct))  {
+            return $this->struct;
         }
-        throw new Exception('never get to getTimeOnly TimeOnly::timeOnly');
+        throw new Exception('never get to getStruct Struct::struct');
     }
 
     /**
      * @return int
      */
-    public static function sampleTimeOnly(): int {
-        return 31; /*31:timeOnly*/
+    public static function sampleStruct(): int {
+        return 31; /*31:struct*/
     }
 
     /**
@@ -45862,7 +46085,7 @@ class TimeOnly {
      * @return bool
      */
     public function validate(): bool {
-        return TimeOnly::validateTimeOnly($this->timeOnly);
+        return Struct::validateStruct($this->struct);
     }
 
     /**
@@ -45871,44 +46094,44 @@ class TimeOnly {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'TimeOnly'} = $this->toTimeOnly();
+        $out->{'struct'} = $this->toStruct();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TimeOnly
+     * @return Struct
      * @throws Exception
      */
-    public static function from(stdClass $obj): TimeOnly {
-        if (!property_exists($obj, 'TimeOnly')) {
+    public static function from(stdClass $obj): Struct {
+        if (!property_exists($obj, 'struct')) {
             throw new Exception("Missing required property");
         }
-        return new TimeOnly(
-         TimeOnly::fromTimeOnly($obj->{'TimeOnly'})
+        return new Struct(
+         Struct::fromStruct($obj->{'struct'})
         );
     }
 
     /**
-     * @return TimeOnly
+     * @return Struct
      */
-    public static function sample(): TimeOnly {
-        return new TimeOnly(
-         TimeOnly::sampleTimeOnly()
+    public static function sample(): Struct {
+        return new Struct(
+         Struct::sampleStruct()
         );
     }
 }
 
-// This is an autogenerated file:TimeOnlyConverter
+// This is an autogenerated file:Subscript
 
-class TimeOnlyConverter {
-    private int $timeOnlyConverter; // json:TimeOnlyConverter Required
+class Subscript {
+    private int $subscript; // json:subscript Required
 
     /**
-     * @param int $timeOnlyConverter
+     * @param int $subscript
      */
-    public function __construct(int $timeOnlyConverter) {
-        $this->timeOnlyConverter = $timeOnlyConverter;
+    public function __construct(int $subscript) {
+        $this->subscript = $subscript;
     }
 
     /**
@@ -45916,7 +46139,7 @@ class TimeOnlyConverter {
      * @throws Exception
      * @return int
      */
-    public static function fromTimeOnlyConverter(int $value): int {
+    public static function fromSubscript(int $value): int {
         return $value; /*int*/
     }
 
@@ -45924,11 +46147,11 @@ class TimeOnlyConverter {
      * @throws Exception
      * @return int
      */
-    public function toTimeOnlyConverter(): int {
-        if (TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter))  {
-            return $this->timeOnlyConverter; /*int*/
+    public function toSubscript(): int {
+        if (Subscript::validateSubscript($this->subscript))  {
+            return $this->subscript; /*int*/
         }
-        throw new Exception('never get to this TimeOnlyConverter::timeOnlyConverter');
+        throw new Exception('never get to this Subscript::subscript');
     }
 
     /**
@@ -45936,7 +46159,7 @@ class TimeOnlyConverter {
      * @return bool
      * @throws Exception
      */
-    public static function validateTimeOnlyConverter(int $value): bool {
+    public static function validateSubscript(int $value): bool {
         return true;
     }
 
@@ -45944,18 +46167,18 @@ class TimeOnlyConverter {
      * @throws Exception
      * @return int
      */
-    public function getTimeOnlyConverter(): int {
-        if (TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter))  {
-            return $this->timeOnlyConverter;
+    public function getSubscript(): int {
+        if (Subscript::validateSubscript($this->subscript))  {
+            return $this->subscript;
         }
-        throw new Exception('never get to getTimeOnlyConverter TimeOnlyConverter::timeOnlyConverter');
+        throw new Exception('never get to getSubscript Subscript::subscript');
     }
 
     /**
      * @return int
      */
-    public static function sampleTimeOnlyConverter(): int {
-        return 31; /*31:timeOnlyConverter*/
+    public static function sampleSubscript(): int {
+        return 31; /*31:subscript*/
     }
 
     /**
@@ -45963,7 +46186,7 @@ class TimeOnlyConverter {
      * @return bool
      */
     public function validate(): bool {
-        return TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter);
+        return Subscript::validateSubscript($this->subscript);
     }
 
     /**
@@ -45972,44 +46195,44 @@ class TimeOnlyConverter {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'TimeOnlyConverter'} = $this->toTimeOnlyConverter();
+        $out->{'subscript'} = $this->toSubscript();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TimeOnlyConverter
+     * @return Subscript
      * @throws Exception
      */
-    public static function from(stdClass $obj): TimeOnlyConverter {
-        if (!property_exists($obj, 'TimeOnlyConverter')) {
+    public static function from(stdClass $obj): Subscript {
+        if (!property_exists($obj, 'subscript')) {
             throw new Exception("Missing required property");
         }
-        return new TimeOnlyConverter(
-         TimeOnlyConverter::fromTimeOnlyConverter($obj->{'TimeOnlyConverter'})
+        return new Subscript(
+         Subscript::fromSubscript($obj->{'subscript'})
         );
     }
 
     /**
-     * @return TimeOnlyConverter
+     * @return Subscript
      */
-    public static function sample(): TimeOnlyConverter {
-        return new TimeOnlyConverter(
-         TimeOnlyConverter::sampleTimeOnlyConverter()
+    public static function sample(): Subscript {
+        return new Subscript(
+         Subscript::sampleSubscript()
         );
     }
 }
 
-// This is an autogenerated file:ToJSON
+// This is an autogenerated file:Super
 
-class ToJSON {
-    private int $toJSON; // json:to_json Required
+class Super {
+    private int $super; // json:super Required
 
     /**
-     * @param int $toJSON
+     * @param int $super
      */
-    public function __construct(int $toJSON) {
-        $this->toJSON = $toJSON;
+    public function __construct(int $super) {
+        $this->super = $super;
     }
 
     /**
@@ -46017,7 +46240,7 @@ class ToJSON {
      * @throws Exception
      * @return int
      */
-    public static function fromToJSON(int $value): int {
+    public static function fromSuper(int $value): int {
         return $value; /*int*/
     }
 
@@ -46025,11 +46248,11 @@ class ToJSON {
      * @throws Exception
      * @return int
      */
-    public function toToJSON(): int {
-        if (ToJSON::validateToJSON($this->toJSON))  {
-            return $this->toJSON; /*int*/
+    public function toSuper(): int {
+        if (Super::validateSuper($this->super))  {
+            return $this->super; /*int*/
         }
-        throw new Exception('never get to this ToJSON::toJSON');
+        throw new Exception('never get to this Super::super');
     }
 
     /**
@@ -46037,7 +46260,7 @@ class ToJSON {
      * @return bool
      * @throws Exception
      */
-    public static function validateToJSON(int $value): bool {
+    public static function validateSuper(int $value): bool {
         return true;
     }
 
@@ -46045,18 +46268,18 @@ class ToJSON {
      * @throws Exception
      * @return int
      */
-    public function getToJSON(): int {
-        if (ToJSON::validateToJSON($this->toJSON))  {
-            return $this->toJSON;
+    public function getSuper(): int {
+        if (Super::validateSuper($this->super))  {
+            return $this->super;
         }
-        throw new Exception('never get to getToJSON ToJSON::toJSON');
+        throw new Exception('never get to getSuper Super::super');
     }
 
     /**
      * @return int
      */
-    public static function sampleToJSON(): int {
-        return 31; /*31:toJSON*/
+    public static function sampleSuper(): int {
+        return 31; /*31:super*/
     }
 
     /**
@@ -46064,7 +46287,7 @@ class ToJSON {
      * @return bool
      */
     public function validate(): bool {
-        return ToJSON::validateToJSON($this->toJSON);
+        return Super::validateSuper($this->super);
     }
 
     /**
@@ -46073,44 +46296,44 @@ class ToJSON {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'to_json'} = $this->toToJSON();
+        $out->{'super'} = $this->toSuper();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ToJSON
+     * @return Super
      * @throws Exception
      */
-    public static function from(stdClass $obj): ToJSON {
-        if (!property_exists($obj, 'to_json')) {
+    public static function from(stdClass $obj): Super {
+        if (!property_exists($obj, 'super')) {
             throw new Exception("Missing required property");
         }
-        return new ToJSON(
-         ToJSON::fromToJSON($obj->{'to_json'})
+        return new Super(
+         Super::fromSuper($obj->{'super'})
         );
     }
 
     /**
-     * @return ToJSON
+     * @return Super
      */
-    public static function sample(): ToJSON {
-        return new ToJSON(
-         ToJSON::sampleToJSON()
+    public static function sample(): Super {
+        return new Super(
+         Super::sampleSuper()
         );
     }
 }
 
-// This is an autogenerated file:ToString
+// This is an autogenerated file:SwitchClass
 
-class ToString {
-    private int $toString; // json:toString Required
+class SwitchClass {
+    private int $switch; // json:switch Required
 
     /**
-     * @param int $toString
+     * @param int $switch
      */
-    public function __construct(int $toString) {
-        $this->toString = $toString;
+    public function __construct(int $switch) {
+        $this->switch = $switch;
     }
 
     /**
@@ -46118,7 +46341,7 @@ class ToString {
      * @throws Exception
      * @return int
      */
-    public static function fromToString(int $value): int {
+    public static function fromSwitch(int $value): int {
         return $value; /*int*/
     }
 
@@ -46126,11 +46349,11 @@ class ToString {
      * @throws Exception
      * @return int
      */
-    public function toToString(): int {
-        if (ToString::validateToString($this->toString))  {
-            return $this->toString; /*int*/
+    public function toSwitch(): int {
+        if (SwitchClass::validateSwitch($this->switch))  {
+            return $this->switch; /*int*/
         }
-        throw new Exception('never get to this ToString::toString');
+        throw new Exception('never get to this SwitchClass::switch');
     }
 
     /**
@@ -46138,7 +46361,7 @@ class ToString {
      * @return bool
      * @throws Exception
      */
-    public static function validateToString(int $value): bool {
+    public static function validateSwitch(int $value): bool {
         return true;
     }
 
@@ -46146,18 +46369,18 @@ class ToString {
      * @throws Exception
      * @return int
      */
-    public function getToString(): int {
-        if (ToString::validateToString($this->toString))  {
-            return $this->toString;
+    public function getSwitch(): int {
+        if (SwitchClass::validateSwitch($this->switch))  {
+            return $this->switch;
         }
-        throw new Exception('never get to getToString ToString::toString');
+        throw new Exception('never get to getSwitch SwitchClass::switch');
     }
 
     /**
      * @return int
      */
-    public static function sampleToString(): int {
-        return 31; /*31:toString*/
+    public static function sampleSwitch(): int {
+        return 31; /*31:switch*/
     }
 
     /**
@@ -46165,7 +46388,7 @@ class ToString {
      * @return bool
      */
     public function validate(): bool {
-        return ToString::validateToString($this->toString);
+        return SwitchClass::validateSwitch($this->switch);
     }
 
     /**
@@ -46174,44 +46397,44 @@ class ToString {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'toString'} = $this->toToString();
+        $out->{'switch'} = $this->toSwitch();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return ToString
+     * @return SwitchClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ToString {
-        if (!property_exists($obj, 'toString')) {
+    public static function from(stdClass $obj): SwitchClass {
+        if (!property_exists($obj, 'switch')) {
             throw new Exception("Missing required property");
         }
-        return new ToString(
-         ToString::fromToString($obj->{'toString'})
+        return new SwitchClass(
+         SwitchClass::fromSwitch($obj->{'switch'})
         );
     }
 
     /**
-     * @return ToString
+     * @return SwitchClass
      */
-    public static function sample(): ToString {
-        return new ToString(
-         ToString::sampleToString()
+    public static function sample(): SwitchClass {
+        return new SwitchClass(
+         SwitchClass::sampleSwitch()
         );
     }
 }
 
-// This is an autogenerated file:TopLevelClass
+// This is an autogenerated file:Symbol
 
-class TopLevelClass {
-    private int $topLevel; // json:top_level Required
+class Symbol {
+    private int $symbol; // json:symbol Required
 
     /**
-     * @param int $topLevel
+     * @param int $symbol
      */
-    public function __construct(int $topLevel) {
-        $this->topLevel = $topLevel;
+    public function __construct(int $symbol) {
+        $this->symbol = $symbol;
     }
 
     /**
@@ -46219,7 +46442,7 @@ class TopLevelClass {
      * @throws Exception
      * @return int
      */
-    public static function fromTopLevel(int $value): int {
+    public static function fromSymbol(int $value): int {
         return $value; /*int*/
     }
 
@@ -46227,11 +46450,11 @@ class TopLevelClass {
      * @throws Exception
      * @return int
      */
-    public function toTopLevel(): int {
-        if (TopLevelClass::validateTopLevel($this->topLevel))  {
-            return $this->topLevel; /*int*/
+    public function toSymbol(): int {
+        if (Symbol::validateSymbol($this->symbol))  {
+            return $this->symbol; /*int*/
         }
-        throw new Exception('never get to this TopLevelClass::topLevel');
+        throw new Exception('never get to this Symbol::symbol');
     }
 
     /**
@@ -46239,7 +46462,7 @@ class TopLevelClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevel(int $value): bool {
+    public static function validateSymbol(int $value): bool {
         return true;
     }
 
@@ -46247,18 +46470,18 @@ class TopLevelClass {
      * @throws Exception
      * @return int
      */
-    public function getTopLevel(): int {
-        if (TopLevelClass::validateTopLevel($this->topLevel))  {
-            return $this->topLevel;
+    public function getSymbol(): int {
+        if (Symbol::validateSymbol($this->symbol))  {
+            return $this->symbol;
         }
-        throw new Exception('never get to getTopLevel TopLevelClass::topLevel');
+        throw new Exception('never get to getSymbol Symbol::symbol');
     }
 
     /**
      * @return int
      */
-    public static function sampleTopLevel(): int {
-        return 31; /*31:topLevel*/
+    public static function sampleSymbol(): int {
+        return 31; /*31:symbol*/
     }
 
     /**
@@ -46266,7 +46489,7 @@ class TopLevelClass {
      * @return bool
      */
     public function validate(): bool {
-        return TopLevelClass::validateTopLevel($this->topLevel);
+        return Symbol::validateSymbol($this->symbol);
     }
 
     /**
@@ -46275,44 +46498,44 @@ class TopLevelClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'top_level'} = $this->toTopLevel();
+        $out->{'symbol'} = $this->toSymbol();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TopLevelClass
+     * @return Symbol
      * @throws Exception
      */
-    public static function from(stdClass $obj): TopLevelClass {
-        if (!property_exists($obj, 'top_level')) {
+    public static function from(stdClass $obj): Symbol {
+        if (!property_exists($obj, 'symbol')) {
             throw new Exception("Missing required property");
         }
-        return new TopLevelClass(
-         TopLevelClass::fromTopLevel($obj->{'top_level'})
+        return new Symbol(
+         Symbol::fromSymbol($obj->{'symbol'})
         );
     }
 
     /**
-     * @return TopLevelClass
+     * @return Symbol
      */
-    public static function sample(): TopLevelClass {
-        return new TopLevelClass(
-         TopLevelClass::sampleTopLevel()
+    public static function sample(): Symbol {
+        return new Symbol(
+         Symbol::sampleSymbol()
         );
     }
 }
 
-// This is an autogenerated file:Transient
+// This is an autogenerated file:Synchronized
 
-class Transient {
-    private int $transient; // json:transient Required
+class Synchronized {
+    private int $synchronized; // json:synchronized Required
 
     /**
-     * @param int $transient
+     * @param int $synchronized
      */
-    public function __construct(int $transient) {
-        $this->transient = $transient;
+    public function __construct(int $synchronized) {
+        $this->synchronized = $synchronized;
     }
 
     /**
@@ -46320,7 +46543,7 @@ class Transient {
      * @throws Exception
      * @return int
      */
-    public static function fromTransient(int $value): int {
+    public static function fromSynchronized(int $value): int {
         return $value; /*int*/
     }
 
@@ -46328,11 +46551,11 @@ class Transient {
      * @throws Exception
      * @return int
      */
-    public function toTransient(): int {
-        if (Transient::validateTransient($this->transient))  {
-            return $this->transient; /*int*/
+    public function toSynchronized(): int {
+        if (Synchronized::validateSynchronized($this->synchronized))  {
+            return $this->synchronized; /*int*/
         }
-        throw new Exception('never get to this Transient::transient');
+        throw new Exception('never get to this Synchronized::synchronized');
     }
 
     /**
@@ -46340,7 +46563,7 @@ class Transient {
      * @return bool
      * @throws Exception
      */
-    public static function validateTransient(int $value): bool {
+    public static function validateSynchronized(int $value): bool {
         return true;
     }
 
@@ -46348,18 +46571,18 @@ class Transient {
      * @throws Exception
      * @return int
      */
-    public function getTransient(): int {
-        if (Transient::validateTransient($this->transient))  {
-            return $this->transient;
+    public function getSynchronized(): int {
+        if (Synchronized::validateSynchronized($this->synchronized))  {
+            return $this->synchronized;
         }
-        throw new Exception('never get to getTransient Transient::transient');
+        throw new Exception('never get to getSynchronized Synchronized::synchronized');
     }
 
     /**
      * @return int
      */
-    public static function sampleTransient(): int {
-        return 31; /*31:transient*/
+    public static function sampleSynchronized(): int {
+        return 31; /*31:synchronized*/
     }
 
     /**
@@ -46367,7 +46590,7 @@ class Transient {
      * @return bool
      */
     public function validate(): bool {
-        return Transient::validateTransient($this->transient);
+        return Synchronized::validateSynchronized($this->synchronized);
     }
 
     /**
@@ -46376,44 +46599,44 @@ class Transient {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'transient'} = $this->toTransient();
+        $out->{'synchronized'} = $this->toSynchronized();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Transient
+     * @return Synchronized
      * @throws Exception
      */
-    public static function from(stdClass $obj): Transient {
-        if (!property_exists($obj, 'transient')) {
+    public static function from(stdClass $obj): Synchronized {
+        if (!property_exists($obj, 'synchronized')) {
             throw new Exception("Missing required property");
         }
-        return new Transient(
-         Transient::fromTransient($obj->{'transient'})
+        return new Synchronized(
+         Synchronized::fromSynchronized($obj->{'synchronized'})
         );
     }
 
     /**
-     * @return Transient
+     * @return Synchronized
      */
-    public static function sample(): Transient {
-        return new Transient(
-         Transient::sampleTransient()
+    public static function sample(): Synchronized {
+        return new Synchronized(
+         Synchronized::sampleSynchronized()
         );
     }
 }
 
-// This is an autogenerated file:TrueClass
+// This is an autogenerated file:System
 
-class TrueClass {
-    private int $true; // json:True Required
+class System {
+    private int $system; // json:system Required
 
     /**
-     * @param int $true
+     * @param int $system
      */
-    public function __construct(int $true) {
-        $this->true = $true;
+    public function __construct(int $system) {
+        $this->system = $system;
     }
 
     /**
@@ -46421,7 +46644,7 @@ class TrueClass {
      * @throws Exception
      * @return int
      */
-    public static function fromTrue(int $value): int {
+    public static function fromSystem(int $value): int {
         return $value; /*int*/
     }
 
@@ -46429,11 +46652,11 @@ class TrueClass {
      * @throws Exception
      * @return int
      */
-    public function toTrue(): int {
-        if (TrueClass::validateTrue($this->true))  {
-            return $this->true; /*int*/
+    public function toSystem(): int {
+        if (System::validateSystem($this->system))  {
+            return $this->system; /*int*/
         }
-        throw new Exception('never get to this TrueClass::true');
+        throw new Exception('never get to this System::system');
     }
 
     /**
@@ -46441,7 +46664,7 @@ class TrueClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateTrue(int $value): bool {
+    public static function validateSystem(int $value): bool {
         return true;
     }
 
@@ -46449,18 +46672,18 @@ class TrueClass {
      * @throws Exception
      * @return int
      */
-    public function getTrue(): int {
-        if (TrueClass::validateTrue($this->true))  {
-            return $this->true;
+    public function getSystem(): int {
+        if (System::validateSystem($this->system))  {
+            return $this->system;
         }
-        throw new Exception('never get to getTrue TrueClass::true');
+        throw new Exception('never get to getSystem System::system');
     }
 
     /**
      * @return int
      */
-    public static function sampleTrue(): int {
-        return 31; /*31:true*/
+    public static function sampleSystem(): int {
+        return 31; /*31:system*/
     }
 
     /**
@@ -46468,7 +46691,7 @@ class TrueClass {
      * @return bool
      */
     public function validate(): bool {
-        return TrueClass::validateTrue($this->true);
+        return System::validateSystem($this->system);
     }
 
     /**
@@ -46477,44 +46700,44 @@ class TrueClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'True'} = $this->toTrue();
+        $out->{'system'} = $this->toSystem();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TrueClass
+     * @return System
      * @throws Exception
      */
-    public static function from(stdClass $obj): TrueClass {
-        if (!property_exists($obj, 'True')) {
+    public static function from(stdClass $obj): System {
+        if (!property_exists($obj, 'system')) {
             throw new Exception("Missing required property");
         }
-        return new TrueClass(
-         TrueClass::fromTrue($obj->{'True'})
+        return new System(
+         System::fromSystem($obj->{'system'})
         );
     }
 
     /**
-     * @return TrueClass
+     * @return System
      */
-    public static function sample(): TrueClass {
-        return new TrueClass(
-         TrueClass::sampleTrue()
+    public static function sample(): System {
+        return new System(
+         System::sampleSystem()
         );
     }
 }
 
-// This is an autogenerated file:TryClass
+// This is an autogenerated file:Template
 
-class TryClass {
-    private int $try; // json:try Required
+class Template {
+    private int $template; // json:template Required
 
     /**
-     * @param int $try
+     * @param int $template
      */
-    public function __construct(int $try) {
-        $this->try = $try;
+    public function __construct(int $template) {
+        $this->template = $template;
     }
 
     /**
@@ -46522,7 +46745,7 @@ class TryClass {
      * @throws Exception
      * @return int
      */
-    public static function fromTry(int $value): int {
+    public static function fromTemplate(int $value): int {
         return $value; /*int*/
     }
 
@@ -46530,11 +46753,11 @@ class TryClass {
      * @throws Exception
      * @return int
      */
-    public function toTry(): int {
-        if (TryClass::validateTry($this->try))  {
-            return $this->try; /*int*/
+    public function toTemplate(): int {
+        if (Template::validateTemplate($this->template))  {
+            return $this->template; /*int*/
         }
-        throw new Exception('never get to this TryClass::try');
+        throw new Exception('never get to this Template::template');
     }
 
     /**
@@ -46542,7 +46765,7 @@ class TryClass {
      * @return bool
      * @throws Exception
      */
-    public static function validateTry(int $value): bool {
+    public static function validateTemplate(int $value): bool {
         return true;
     }
 
@@ -46550,18 +46773,18 @@ class TryClass {
      * @throws Exception
      * @return int
      */
-    public function getTry(): int {
-        if (TryClass::validateTry($this->try))  {
-            return $this->try;
+    public function getTemplate(): int {
+        if (Template::validateTemplate($this->template))  {
+            return $this->template;
         }
-        throw new Exception('never get to getTry TryClass::try');
+        throw new Exception('never get to getTemplate Template::template');
     }
 
     /**
      * @return int
      */
-    public static function sampleTry(): int {
-        return 31; /*31:try*/
+    public static function sampleTemplate(): int {
+        return 31; /*31:template*/
     }
 
     /**
@@ -46569,7 +46792,7 @@ class TryClass {
      * @return bool
      */
     public function validate(): bool {
-        return TryClass::validateTry($this->try);
+        return Template::validateTemplate($this->template);
     }
 
     /**
@@ -46578,44 +46801,44 @@ class TryClass {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'try'} = $this->toTry();
+        $out->{'template'} = $this->toTemplate();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return TryClass
+     * @return Template
      * @throws Exception
      */
-    public static function from(stdClass $obj): TryClass {
-        if (!property_exists($obj, 'try')) {
+    public static function from(stdClass $obj): Template {
+        if (!property_exists($obj, 'template')) {
             throw new Exception("Missing required property");
         }
-        return new TryClass(
-         TryClass::fromTry($obj->{'try'})
+        return new Template(
+         Template::fromTemplate($obj->{'template'})
         );
     }
 
     /**
-     * @return TryClass
+     * @return Template
      */
-    public static function sample(): TryClass {
-        return new TryClass(
-         TryClass::sampleTry()
+    public static function sample(): Template {
+        return new Template(
+         Template::sampleTemplate()
         );
     }
 }
 
-// This is an autogenerated file:Type
+// This is an autogenerated file:Then
 
-class Type {
-    private int $type; // json:Type Required
+class Then {
+    private int $then; // json:then Required
 
     /**
-     * @param int $type
+     * @param int $then
      */
-    public function __construct(int $type) {
-        $this->type = $type;
+    public function __construct(int $then) {
+        $this->then = $then;
     }
 
     /**
@@ -46623,7 +46846,7 @@ class Type {
      * @throws Exception
      * @return int
      */
-    public static function fromType(int $value): int {
+    public static function fromThen(int $value): int {
         return $value; /*int*/
     }
 
@@ -46631,11 +46854,11 @@ class Type {
      * @throws Exception
      * @return int
      */
-    public function toType(): int {
-        if (Type::validateType($this->type))  {
-            return $this->type; /*int*/
+    public function toThen(): int {
+        if (Then::validateThen($this->then))  {
+            return $this->then; /*int*/
         }
-        throw new Exception('never get to this Type::type');
+        throw new Exception('never get to this Then::then');
     }
 
     /**
@@ -46643,7 +46866,7 @@ class Type {
      * @return bool
      * @throws Exception
      */
-    public static function validateType(int $value): bool {
+    public static function validateThen(int $value): bool {
         return true;
     }
 
@@ -46651,18 +46874,18 @@ class Type {
      * @throws Exception
      * @return int
      */
-    public function getType(): int {
-        if (Type::validateType($this->type))  {
-            return $this->type;
+    public function getThen(): int {
+        if (Then::validateThen($this->then))  {
+            return $this->then;
         }
-        throw new Exception('never get to getType Type::type');
+        throw new Exception('never get to getThen Then::then');
     }
 
     /**
      * @return int
      */
-    public static function sampleType(): int {
-        return 31; /*31:type*/
+    public static function sampleThen(): int {
+        return 31; /*31:then*/
     }
 
     /**
@@ -46670,7 +46893,7 @@ class Type {
      * @return bool
      */
     public function validate(): bool {
-        return Type::validateType($this->type);
+        return Then::validateThen($this->then);
     }
 
     /**
@@ -46679,44 +46902,44 @@ class Type {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'Type'} = $this->toType();
+        $out->{'then'} = $this->toThen();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Type
+     * @return Then
      * @throws Exception
      */
-    public static function from(stdClass $obj): Type {
-        if (!property_exists($obj, 'Type')) {
+    public static function from(stdClass $obj): Then {
+        if (!property_exists($obj, 'then')) {
             throw new Exception("Missing required property");
         }
-        return new Type(
-         Type::fromType($obj->{'Type'})
+        return new Then(
+         Then::fromThen($obj->{'then'})
         );
     }
 
     /**
-     * @return Type
+     * @return Then
      */
-    public static function sample(): Type {
-        return new Type(
-         Type::sampleType()
+    public static function sample(): Then {
+        return new Then(
+         Then::sampleThen()
         );
     }
 }
 
-// This is an autogenerated file:Typealias
+// This is an autogenerated file:ThreadLocal
 
-class Typealias {
-    private int $typealias; // json:typealias Required
+class ThreadLocal {
+    private int $threadLocal; // json:thread_local Required
 
     /**
-     * @param int $typealias
+     * @param int $threadLocal
      */
-    public function __construct(int $typealias) {
-        $this->typealias = $typealias;
+    public function __construct(int $threadLocal) {
+        $this->threadLocal = $threadLocal;
     }
 
     /**
@@ -46724,7 +46947,7 @@ class Typealias {
      * @throws Exception
      * @return int
      */
-    public static function fromTypealias(int $value): int {
+    public static function fromThreadLocal(int $value): int {
         return $value; /*int*/
     }
 
@@ -46732,11 +46955,11 @@ class Typealias {
      * @throws Exception
      * @return int
      */
-    public function toTypealias(): int {
-        if (Typealias::validateTypealias($this->typealias))  {
-            return $this->typealias; /*int*/
+    public function toThreadLocal(): int {
+        if (ThreadLocal::validateThreadLocal($this->threadLocal))  {
+            return $this->threadLocal; /*int*/
         }
-        throw new Exception('never get to this Typealias::typealias');
+        throw new Exception('never get to this ThreadLocal::threadLocal');
     }
 
     /**
@@ -46744,7 +46967,7 @@ class Typealias {
      * @return bool
      * @throws Exception
      */
-    public static function validateTypealias(int $value): bool {
+    public static function validateThreadLocal(int $value): bool {
         return true;
     }
 
@@ -46752,18 +46975,18 @@ class Typealias {
      * @throws Exception
      * @return int
      */
-    public function getTypealias(): int {
-        if (Typealias::validateTypealias($this->typealias))  {
-            return $this->typealias;
+    public function getThreadLocal(): int {
+        if (ThreadLocal::validateThreadLocal($this->threadLocal))  {
+            return $this->threadLocal;
         }
-        throw new Exception('never get to getTypealias Typealias::typealias');
+        throw new Exception('never get to getThreadLocal ThreadLocal::threadLocal');
     }
 
     /**
      * @return int
      */
-    public static function sampleTypealias(): int {
-        return 31; /*31:typealias*/
+    public static function sampleThreadLocal(): int {
+        return 31; /*31:threadLocal*/
     }
 
     /**
@@ -46771,7 +46994,7 @@ class Typealias {
      * @return bool
      */
     public function validate(): bool {
-        return Typealias::validateTypealias($this->typealias);
+        return ThreadLocal::validateThreadLocal($this->threadLocal);
     }
 
     /**
@@ -46780,44 +47003,44 @@ class Typealias {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'typealias'} = $this->toTypealias();
+        $out->{'thread_local'} = $this->toThreadLocal();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Typealias
+     * @return ThreadLocal
      * @throws Exception
      */
-    public static function from(stdClass $obj): Typealias {
-        if (!property_exists($obj, 'typealias')) {
+    public static function from(stdClass $obj): ThreadLocal {
+        if (!property_exists($obj, 'thread_local')) {
             throw new Exception("Missing required property");
         }
-        return new Typealias(
-         Typealias::fromTypealias($obj->{'typealias'})
+        return new ThreadLocal(
+         ThreadLocal::fromThreadLocal($obj->{'thread_local'})
         );
     }
 
     /**
-     * @return Typealias
+     * @return ThreadLocal
      */
-    public static function sample(): Typealias {
-        return new Typealias(
-         Typealias::sampleTypealias()
+    public static function sample(): ThreadLocal {
+        return new ThreadLocal(
+         ThreadLocal::sampleThreadLocal()
         );
     }
 }
 
-// This is an autogenerated file:Typedef
+// This is an autogenerated file:ThrowClass
 
-class Typedef {
-    private int $typedef; // json:typedef Required
+class ThrowClass {
+    private int $throw; // json:throw Required
 
     /**
-     * @param int $typedef
+     * @param int $throw
      */
-    public function __construct(int $typedef) {
-        $this->typedef = $typedef;
+    public function __construct(int $throw) {
+        $this->throw = $throw;
     }
 
     /**
@@ -46825,7 +47048,7 @@ class Typedef {
      * @throws Exception
      * @return int
      */
-    public static function fromTypedef(int $value): int {
+    public static function fromThrow(int $value): int {
         return $value; /*int*/
     }
 
@@ -46833,11 +47056,11 @@ class Typedef {
      * @throws Exception
      * @return int
      */
-    public function toTypedef(): int {
-        if (Typedef::validateTypedef($this->typedef))  {
-            return $this->typedef; /*int*/
+    public function toThrow(): int {
+        if (ThrowClass::validateThrow($this->throw))  {
+            return $this->throw; /*int*/
         }
-        throw new Exception('never get to this Typedef::typedef');
+        throw new Exception('never get to this ThrowClass::throw');
     }
 
     /**
@@ -46845,7 +47068,7 @@ class Typedef {
      * @return bool
      * @throws Exception
      */
-    public static function validateTypedef(int $value): bool {
+    public static function validateThrow(int $value): bool {
         return true;
     }
 
@@ -46853,18 +47076,18 @@ class Typedef {
      * @throws Exception
      * @return int
      */
-    public function getTypedef(): int {
-        if (Typedef::validateTypedef($this->typedef))  {
-            return $this->typedef;
+    public function getThrow(): int {
+        if (ThrowClass::validateThrow($this->throw))  {
+            return $this->throw;
         }
-        throw new Exception('never get to getTypedef Typedef::typedef');
+        throw new Exception('never get to getThrow ThrowClass::throw');
     }
 
     /**
      * @return int
      */
-    public static function sampleTypedef(): int {
-        return 31; /*31:typedef*/
+    public static function sampleThrow(): int {
+        return 31; /*31:throw*/
     }
 
     /**
@@ -46872,7 +47095,7 @@ class Typedef {
      * @return bool
      */
     public function validate(): bool {
-        return Typedef::validateTypedef($this->typedef);
+        return ThrowClass::validateThrow($this->throw);
     }
 
     /**
@@ -46881,44 +47104,44 @@ class Typedef {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'typedef'} = $this->toTypedef();
+        $out->{'throw'} = $this->toThrow();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Typedef
+     * @return ThrowClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Typedef {
-        if (!property_exists($obj, 'typedef')) {
+    public static function from(stdClass $obj): ThrowClass {
+        if (!property_exists($obj, 'throw')) {
             throw new Exception("Missing required property");
         }
-        return new Typedef(
-         Typedef::fromTypedef($obj->{'typedef'})
+        return new ThrowClass(
+         ThrowClass::fromThrow($obj->{'throw'})
         );
     }
 
     /**
-     * @return Typedef
+     * @return ThrowClass
      */
-    public static function sample(): Typedef {
-        return new Typedef(
-         Typedef::sampleTypedef()
+    public static function sample(): ThrowClass {
+        return new ThrowClass(
+         ThrowClass::sampleThrow()
         );
     }
 }
 
-// This is an autogenerated file:Typeid
+// This is an autogenerated file:Throws
 
-class Typeid {
-    private int $typeid; // json:typeid Required
+class Throws {
+    private int $throws; // json:throws Required
 
     /**
-     * @param int $typeid
+     * @param int $throws
      */
-    public function __construct(int $typeid) {
-        $this->typeid = $typeid;
+    public function __construct(int $throws) {
+        $this->throws = $throws;
     }
 
     /**
@@ -46926,7 +47149,7 @@ class Typeid {
      * @throws Exception
      * @return int
      */
-    public static function fromTypeid(int $value): int {
+    public static function fromThrows(int $value): int {
         return $value; /*int*/
     }
 
@@ -46934,11 +47157,11 @@ class Typeid {
      * @throws Exception
      * @return int
      */
-    public function toTypeid(): int {
-        if (Typeid::validateTypeid($this->typeid))  {
-            return $this->typeid; /*int*/
+    public function toThrows(): int {
+        if (Throws::validateThrows($this->throws))  {
+            return $this->throws; /*int*/
         }
-        throw new Exception('never get to this Typeid::typeid');
+        throw new Exception('never get to this Throws::throws');
     }
 
     /**
@@ -46946,7 +47169,7 @@ class Typeid {
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeid(int $value): bool {
+    public static function validateThrows(int $value): bool {
         return true;
     }
 
@@ -46954,18 +47177,18 @@ class Typeid {
      * @throws Exception
      * @return int
      */
-    public function getTypeid(): int {
-        if (Typeid::validateTypeid($this->typeid))  {
-            return $this->typeid;
+    public function getThrows(): int {
+        if (Throws::validateThrows($this->throws))  {
+            return $this->throws;
         }
-        throw new Exception('never get to getTypeid Typeid::typeid');
+        throw new Exception('never get to getThrows Throws::throws');
     }
 
     /**
      * @return int
      */
-    public static function sampleTypeid(): int {
-        return 31; /*31:typeid*/
+    public static function sampleThrows(): int {
+        return 31; /*31:throws*/
     }
 
     /**
@@ -46973,7 +47196,7 @@ class Typeid {
      * @return bool
      */
     public function validate(): bool {
-        return Typeid::validateTypeid($this->typeid);
+        return Throws::validateThrows($this->throws);
     }
 
     /**
@@ -46982,44 +47205,44 @@ class Typeid {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'typeid'} = $this->toTypeid();
+        $out->{'throws'} = $this->toThrows();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Typeid
+     * @return Throws
      * @throws Exception
      */
-    public static function from(stdClass $obj): Typeid {
-        if (!property_exists($obj, 'typeid')) {
+    public static function from(stdClass $obj): Throws {
+        if (!property_exists($obj, 'throws')) {
             throw new Exception("Missing required property");
         }
-        return new Typeid(
-         Typeid::fromTypeid($obj->{'typeid'})
+        return new Throws(
+         Throws::fromThrows($obj->{'throws'})
         );
     }
 
     /**
-     * @return Typeid
+     * @return Throws
      */
-    public static function sample(): Typeid {
-        return new Typeid(
-         Typeid::sampleTypeid()
+    public static function sample(): Throws {
+        return new Throws(
+         Throws::sampleThrows()
         );
     }
 }
 
-// This is an autogenerated file:Typename
+// This is an autogenerated file:TimeOnly
 
-class Typename {
-    private int $typename; // json:typename Required
+class TimeOnly {
+    private int $timeOnly; // json:TimeOnly Required
 
     /**
-     * @param int $typename
+     * @param int $timeOnly
      */
-    public function __construct(int $typename) {
-        $this->typename = $typename;
+    public function __construct(int $timeOnly) {
+        $this->timeOnly = $timeOnly;
     }
 
     /**
@@ -47027,7 +47250,7 @@ class Typename {
      * @throws Exception
      * @return int
      */
-    public static function fromTypename(int $value): int {
+    public static function fromTimeOnly(int $value): int {
         return $value; /*int*/
     }
 
@@ -47035,11 +47258,11 @@ class Typename {
      * @throws Exception
      * @return int
      */
-    public function toTypename(): int {
-        if (Typename::validateTypename($this->typename))  {
-            return $this->typename; /*int*/
+    public function toTimeOnly(): int {
+        if (TimeOnly::validateTimeOnly($this->timeOnly))  {
+            return $this->timeOnly; /*int*/
         }
-        throw new Exception('never get to this Typename::typename');
+        throw new Exception('never get to this TimeOnly::timeOnly');
     }
 
     /**
@@ -47047,7 +47270,7 @@ class Typename {
      * @return bool
      * @throws Exception
      */
-    public static function validateTypename(int $value): bool {
+    public static function validateTimeOnly(int $value): bool {
         return true;
     }
 
@@ -47055,18 +47278,18 @@ class Typename {
      * @throws Exception
      * @return int
      */
-    public function getTypename(): int {
-        if (Typename::validateTypename($this->typename))  {
-            return $this->typename;
+    public function getTimeOnly(): int {
+        if (TimeOnly::validateTimeOnly($this->timeOnly))  {
+            return $this->timeOnly;
         }
-        throw new Exception('never get to getTypename Typename::typename');
+        throw new Exception('never get to getTimeOnly TimeOnly::timeOnly');
     }
 
     /**
      * @return int
      */
-    public static function sampleTypename(): int {
-        return 31; /*31:typename*/
+    public static function sampleTimeOnly(): int {
+        return 31; /*31:timeOnly*/
     }
 
     /**
@@ -47074,7 +47297,7 @@ class Typename {
      * @return bool
      */
     public function validate(): bool {
-        return Typename::validateTypename($this->typename);
+        return TimeOnly::validateTimeOnly($this->timeOnly);
     }
 
     /**
@@ -47083,44 +47306,44 @@ class Typename {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'typename'} = $this->toTypename();
+        $out->{'TimeOnly'} = $this->toTimeOnly();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Typename
+     * @return TimeOnly
      * @throws Exception
      */
-    public static function from(stdClass $obj): Typename {
-        if (!property_exists($obj, 'typename')) {
+    public static function from(stdClass $obj): TimeOnly {
+        if (!property_exists($obj, 'TimeOnly')) {
             throw new Exception("Missing required property");
         }
-        return new Typename(
-         Typename::fromTypename($obj->{'typename'})
+        return new TimeOnly(
+         TimeOnly::fromTimeOnly($obj->{'TimeOnly'})
         );
     }
 
     /**
-     * @return Typename
+     * @return TimeOnly
      */
-    public static function sample(): Typename {
-        return new Typename(
-         Typename::sampleTypename()
+    public static function sample(): TimeOnly {
+        return new TimeOnly(
+         TimeOnly::sampleTimeOnly()
         );
     }
 }
 
-// This is an autogenerated file:Typeof
+// This is an autogenerated file:TimeOnlyConverter
 
-class Typeof {
-    private int $typeof; // json:typeof Required
+class TimeOnlyConverter {
+    private int $timeOnlyConverter; // json:TimeOnlyConverter Required
 
     /**
-     * @param int $typeof
+     * @param int $timeOnlyConverter
      */
-    public function __construct(int $typeof) {
-        $this->typeof = $typeof;
+    public function __construct(int $timeOnlyConverter) {
+        $this->timeOnlyConverter = $timeOnlyConverter;
     }
 
     /**
@@ -47128,7 +47351,7 @@ class Typeof {
      * @throws Exception
      * @return int
      */
-    public static function fromTypeof(int $value): int {
+    public static function fromTimeOnlyConverter(int $value): int {
         return $value; /*int*/
     }
 
@@ -47136,11 +47359,11 @@ class Typeof {
      * @throws Exception
      * @return int
      */
-    public function toTypeof(): int {
-        if (Typeof::validateTypeof($this->typeof))  {
-            return $this->typeof; /*int*/
+    public function toTimeOnlyConverter(): int {
+        if (TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            return $this->timeOnlyConverter; /*int*/
         }
-        throw new Exception('never get to this Typeof::typeof');
+        throw new Exception('never get to this TimeOnlyConverter::timeOnlyConverter');
     }
 
     /**
@@ -47148,7 +47371,7 @@ class Typeof {
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeof(int $value): bool {
+    public static function validateTimeOnlyConverter(int $value): bool {
         return true;
     }
 
@@ -47156,18 +47379,18 @@ class Typeof {
      * @throws Exception
      * @return int
      */
-    public function getTypeof(): int {
-        if (Typeof::validateTypeof($this->typeof))  {
-            return $this->typeof;
+    public function getTimeOnlyConverter(): int {
+        if (TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            return $this->timeOnlyConverter;
         }
-        throw new Exception('never get to getTypeof Typeof::typeof');
+        throw new Exception('never get to getTimeOnlyConverter TimeOnlyConverter::timeOnlyConverter');
     }
 
     /**
      * @return int
      */
-    public static function sampleTypeof(): int {
-        return 31; /*31:typeof*/
+    public static function sampleTimeOnlyConverter(): int {
+        return 31; /*31:timeOnlyConverter*/
     }
 
     /**
@@ -47175,7 +47398,7 @@ class Typeof {
      * @return bool
      */
     public function validate(): bool {
-        return Typeof::validateTypeof($this->typeof);
+        return TimeOnlyConverter::validateTimeOnlyConverter($this->timeOnlyConverter);
     }
 
     /**
@@ -47184,44 +47407,44 @@ class Typeof {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'typeof'} = $this->toTypeof();
+        $out->{'TimeOnlyConverter'} = $this->toTimeOnlyConverter();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Typeof
+     * @return TimeOnlyConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): Typeof {
-        if (!property_exists($obj, 'typeof')) {
+    public static function from(stdClass $obj): TimeOnlyConverter {
+        if (!property_exists($obj, 'TimeOnlyConverter')) {
             throw new Exception("Missing required property");
         }
-        return new Typeof(
-         Typeof::fromTypeof($obj->{'typeof'})
+        return new TimeOnlyConverter(
+         TimeOnlyConverter::fromTimeOnlyConverter($obj->{'TimeOnlyConverter'})
         );
     }
 
     /**
-     * @return Typeof
+     * @return TimeOnlyConverter
      */
-    public static function sample(): Typeof {
-        return new Typeof(
-         Typeof::sampleTypeof()
+    public static function sample(): TimeOnlyConverter {
+        return new TimeOnlyConverter(
+         TimeOnlyConverter::sampleTimeOnlyConverter()
         );
     }
 }
 
-// This is an autogenerated file:Uint
+// This is an autogenerated file:ToJSON
 
-class Uint {
-    private int $uint; // json:uint Required
+class ToJSON {
+    private int $toJSON; // json:to_json Required
 
     /**
-     * @param int $uint
+     * @param int $toJSON
      */
-    public function __construct(int $uint) {
-        $this->uint = $uint;
+    public function __construct(int $toJSON) {
+        $this->toJSON = $toJSON;
     }
 
     /**
@@ -47229,7 +47452,7 @@ class Uint {
      * @throws Exception
      * @return int
      */
-    public static function fromUint(int $value): int {
+    public static function fromToJSON(int $value): int {
         return $value; /*int*/
     }
 
@@ -47237,11 +47460,11 @@ class Uint {
      * @throws Exception
      * @return int
      */
-    public function toUint(): int {
-        if (Uint::validateUint($this->uint))  {
-            return $this->uint; /*int*/
+    public function toToJSON(): int {
+        if (ToJSON::validateToJSON($this->toJSON))  {
+            return $this->toJSON; /*int*/
         }
-        throw new Exception('never get to this Uint::uint');
+        throw new Exception('never get to this ToJSON::toJSON');
     }
 
     /**
@@ -47249,7 +47472,7 @@ class Uint {
      * @return bool
      * @throws Exception
      */
-    public static function validateUint(int $value): bool {
+    public static function validateToJSON(int $value): bool {
         return true;
     }
 
@@ -47257,18 +47480,18 @@ class Uint {
      * @throws Exception
      * @return int
      */
-    public function getUint(): int {
-        if (Uint::validateUint($this->uint))  {
-            return $this->uint;
+    public function getToJSON(): int {
+        if (ToJSON::validateToJSON($this->toJSON))  {
+            return $this->toJSON;
         }
-        throw new Exception('never get to getUint Uint::uint');
+        throw new Exception('never get to getToJSON ToJSON::toJSON');
     }
 
     /**
      * @return int
      */
-    public static function sampleUint(): int {
-        return 31; /*31:uint*/
+    public static function sampleToJSON(): int {
+        return 31; /*31:toJSON*/
     }
 
     /**
@@ -47276,7 +47499,7 @@ class Uint {
      * @return bool
      */
     public function validate(): bool {
-        return Uint::validateUint($this->uint);
+        return ToJSON::validateToJSON($this->toJSON);
     }
 
     /**
@@ -47285,44 +47508,44 @@ class Uint {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'uint'} = $this->toUint();
+        $out->{'to_json'} = $this->toToJSON();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Uint
+     * @return ToJSON
      * @throws Exception
      */
-    public static function from(stdClass $obj): Uint {
-        if (!property_exists($obj, 'uint')) {
+    public static function from(stdClass $obj): ToJSON {
+        if (!property_exists($obj, 'to_json')) {
             throw new Exception("Missing required property");
         }
-        return new Uint(
-         Uint::fromUint($obj->{'uint'})
+        return new ToJSON(
+         ToJSON::fromToJSON($obj->{'to_json'})
         );
     }
 
     /**
-     * @return Uint
+     * @return ToJSON
      */
-    public static function sample(): Uint {
-        return new Uint(
-         Uint::sampleUint()
+    public static function sample(): ToJSON {
+        return new ToJSON(
+         ToJSON::sampleToJSON()
         );
     }
 }
 
-// This is an autogenerated file:Ulong
+// This is an autogenerated file:ToString
 
-class Ulong {
-    private int $ulong; // json:ulong Required
+class ToString {
+    private int $toString; // json:toString Required
 
     /**
-     * @param int $ulong
+     * @param int $toString
      */
-    public function __construct(int $ulong) {
-        $this->ulong = $ulong;
+    public function __construct(int $toString) {
+        $this->toString = $toString;
     }
 
     /**
@@ -47330,7 +47553,7 @@ class Ulong {
      * @throws Exception
      * @return int
      */
-    public static function fromUlong(int $value): int {
+    public static function fromToString(int $value): int {
         return $value; /*int*/
     }
 
@@ -47338,11 +47561,11 @@ class Ulong {
      * @throws Exception
      * @return int
      */
-    public function toUlong(): int {
-        if (Ulong::validateUlong($this->ulong))  {
-            return $this->ulong; /*int*/
+    public function toToString(): int {
+        if (ToString::validateToString($this->toString))  {
+            return $this->toString; /*int*/
         }
-        throw new Exception('never get to this Ulong::ulong');
+        throw new Exception('never get to this ToString::toString');
     }
 
     /**
@@ -47350,7 +47573,7 @@ class Ulong {
      * @return bool
      * @throws Exception
      */
-    public static function validateUlong(int $value): bool {
+    public static function validateToString(int $value): bool {
         return true;
     }
 
@@ -47358,18 +47581,18 @@ class Ulong {
      * @throws Exception
      * @return int
      */
-    public function getUlong(): int {
-        if (Ulong::validateUlong($this->ulong))  {
-            return $this->ulong;
+    public function getToString(): int {
+        if (ToString::validateToString($this->toString))  {
+            return $this->toString;
         }
-        throw new Exception('never get to getUlong Ulong::ulong');
+        throw new Exception('never get to getToString ToString::toString');
     }
 
     /**
      * @return int
      */
-    public static function sampleUlong(): int {
-        return 31; /*31:ulong*/
+    public static function sampleToString(): int {
+        return 31; /*31:toString*/
     }
 
     /**
@@ -47377,7 +47600,7 @@ class Ulong {
      * @return bool
      */
     public function validate(): bool {
-        return Ulong::validateUlong($this->ulong);
+        return ToString::validateToString($this->toString);
     }
 
     /**
@@ -47386,44 +47609,44 @@ class Ulong {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'ulong'} = $this->toUlong();
+        $out->{'toString'} = $this->toToString();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Ulong
+     * @return ToString
      * @throws Exception
      */
-    public static function from(stdClass $obj): Ulong {
-        if (!property_exists($obj, 'ulong')) {
+    public static function from(stdClass $obj): ToString {
+        if (!property_exists($obj, 'toString')) {
             throw new Exception("Missing required property");
         }
-        return new Ulong(
-         Ulong::fromUlong($obj->{'ulong'})
+        return new ToString(
+         ToString::fromToString($obj->{'toString'})
         );
     }
 
     /**
-     * @return Ulong
+     * @return ToString
      */
-    public static function sample(): Ulong {
-        return new Ulong(
-         Ulong::sampleUlong()
+    public static function sample(): ToString {
+        return new ToString(
+         ToString::sampleToString()
         );
     }
 }
 
-// This is an autogenerated file:Unchecked
+// This is an autogenerated file:TopLevelClass
 
-class Unchecked {
-    private int $unchecked; // json:unchecked Required
+class TopLevelClass {
+    private int $topLevel; // json:top_level Required
 
     /**
-     * @param int $unchecked
+     * @param int $topLevel
      */
-    public function __construct(int $unchecked) {
-        $this->unchecked = $unchecked;
+    public function __construct(int $topLevel) {
+        $this->topLevel = $topLevel;
     }
 
     /**
@@ -47431,7 +47654,7 @@ class Unchecked {
      * @throws Exception
      * @return int
      */
-    public static function fromUnchecked(int $value): int {
+    public static function fromTopLevel(int $value): int {
         return $value; /*int*/
     }
 
@@ -47439,11 +47662,11 @@ class Unchecked {
      * @throws Exception
      * @return int
      */
-    public function toUnchecked(): int {
-        if (Unchecked::validateUnchecked($this->unchecked))  {
-            return $this->unchecked; /*int*/
+    public function toTopLevel(): int {
+        if (TopLevelClass::validateTopLevel($this->topLevel))  {
+            return $this->topLevel; /*int*/
         }
-        throw new Exception('never get to this Unchecked::unchecked');
+        throw new Exception('never get to this TopLevelClass::topLevel');
     }
 
     /**
@@ -47451,7 +47674,7 @@ class Unchecked {
      * @return bool
      * @throws Exception
      */
-    public static function validateUnchecked(int $value): bool {
+    public static function validateTopLevel(int $value): bool {
         return true;
     }
 
@@ -47459,18 +47682,18 @@ class Unchecked {
      * @throws Exception
      * @return int
      */
-    public function getUnchecked(): int {
-        if (Unchecked::validateUnchecked($this->unchecked))  {
-            return $this->unchecked;
+    public function getTopLevel(): int {
+        if (TopLevelClass::validateTopLevel($this->topLevel))  {
+            return $this->topLevel;
         }
-        throw new Exception('never get to getUnchecked Unchecked::unchecked');
+        throw new Exception('never get to getTopLevel TopLevelClass::topLevel');
     }
 
     /**
      * @return int
      */
-    public static function sampleUnchecked(): int {
-        return 31; /*31:unchecked*/
+    public static function sampleTopLevel(): int {
+        return 31; /*31:topLevel*/
     }
 
     /**
@@ -47478,7 +47701,7 @@ class Unchecked {
      * @return bool
      */
     public function validate(): bool {
-        return Unchecked::validateUnchecked($this->unchecked);
+        return TopLevelClass::validateTopLevel($this->topLevel);
     }
 
     /**
@@ -47487,44 +47710,44 @@ class Unchecked {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'unchecked'} = $this->toUnchecked();
+        $out->{'top_level'} = $this->toTopLevel();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Unchecked
+     * @return TopLevelClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Unchecked {
-        if (!property_exists($obj, 'unchecked')) {
+    public static function from(stdClass $obj): TopLevelClass {
+        if (!property_exists($obj, 'top_level')) {
             throw new Exception("Missing required property");
         }
-        return new Unchecked(
-         Unchecked::fromUnchecked($obj->{'unchecked'})
+        return new TopLevelClass(
+         TopLevelClass::fromTopLevel($obj->{'top_level'})
         );
     }
 
     /**
-     * @return Unchecked
+     * @return TopLevelClass
      */
-    public static function sample(): Unchecked {
-        return new Unchecked(
-         Unchecked::sampleUnchecked()
+    public static function sample(): TopLevelClass {
+        return new TopLevelClass(
+         TopLevelClass::sampleTopLevel()
         );
     }
 }
 
-// This is an autogenerated file:Undefined
+// This is an autogenerated file:Transient
 
-class Undefined {
-    private int $undefined; // json:undefined Required
+class Transient {
+    private int $transient; // json:transient Required
 
     /**
-     * @param int $undefined
+     * @param int $transient
      */
-    public function __construct(int $undefined) {
-        $this->undefined = $undefined;
+    public function __construct(int $transient) {
+        $this->transient = $transient;
     }
 
     /**
@@ -47532,7 +47755,7 @@ class Undefined {
      * @throws Exception
      * @return int
      */
-    public static function fromUndefined(int $value): int {
+    public static function fromTransient(int $value): int {
         return $value; /*int*/
     }
 
@@ -47540,11 +47763,11 @@ class Undefined {
      * @throws Exception
      * @return int
      */
-    public function toUndefined(): int {
-        if (Undefined::validateUndefined($this->undefined))  {
-            return $this->undefined; /*int*/
+    public function toTransient(): int {
+        if (Transient::validateTransient($this->transient))  {
+            return $this->transient; /*int*/
         }
-        throw new Exception('never get to this Undefined::undefined');
+        throw new Exception('never get to this Transient::transient');
     }
 
     /**
@@ -47552,7 +47775,7 @@ class Undefined {
      * @return bool
      * @throws Exception
      */
-    public static function validateUndefined(int $value): bool {
+    public static function validateTransient(int $value): bool {
         return true;
     }
 
@@ -47560,18 +47783,18 @@ class Undefined {
      * @throws Exception
      * @return int
      */
-    public function getUndefined(): int {
-        if (Undefined::validateUndefined($this->undefined))  {
-            return $this->undefined;
+    public function getTransient(): int {
+        if (Transient::validateTransient($this->transient))  {
+            return $this->transient;
         }
-        throw new Exception('never get to getUndefined Undefined::undefined');
+        throw new Exception('never get to getTransient Transient::transient');
     }
 
     /**
      * @return int
      */
-    public static function sampleUndefined(): int {
-        return 31; /*31:undefined*/
+    public static function sampleTransient(): int {
+        return 31; /*31:transient*/
     }
 
     /**
@@ -47579,7 +47802,7 @@ class Undefined {
      * @return bool
      */
     public function validate(): bool {
-        return Undefined::validateUndefined($this->undefined);
+        return Transient::validateTransient($this->transient);
     }
 
     /**
@@ -47588,113 +47811,44 @@ class Undefined {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'undefined'} = $this->toUndefined();
+        $out->{'transient'} = $this->toTransient();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Undefined
+     * @return Transient
      * @throws Exception
      */
-    public static function from(stdClass $obj): Undefined {
-        if (!property_exists($obj, 'undefined')) {
+    public static function from(stdClass $obj): Transient {
+        if (!property_exists($obj, 'transient')) {
             throw new Exception("Missing required property");
         }
-        return new Undefined(
-         Undefined::fromUndefined($obj->{'undefined'})
+        return new Transient(
+         Transient::fromTransient($obj->{'transient'})
         );
     }
 
     /**
-     * @return Undefined
+     * @return Transient
      */
-    public static function sample(): Undefined {
-        return new Undefined(
-         Undefined::sampleUndefined()
+    public static function sample(): Transient {
+        return new Transient(
+         Transient::sampleTransient()
         );
     }
 }
 
-// This is an autogenerated file:Obj5
+// This is an autogenerated file:TrueClass
 
-class Obj5 {
-    private int $dummy; // json:dummy Required
-    private Union $union; // json:union Required
-    private Unowned $unowned; // json:unowned Required
-    private Unsafe $unsafe; // json:unsafe Required
-    private Unsigned $unsigned; // json:unsigned Required
-    private Ushort $ushort; // json:ushort Required
-    private Using $using; // json:using Required
-    private Utf8JSONReader $utf8JSONReader; // json:Utf8JsonReader Required
-    private Utf8JSONWriter $utf8JSONWriter; // json:Utf8JsonWriter Required
-    private UUID $uuid; // json:UUID Required
-    private VarClass $var; // json:var Required
-    private Virtual $virtual; // json:virtual Required
-    private VoidClass $void; // json:void Required
-    private Volatile $volatile; // json:volatile Required
-    private WcharT $wcharT; // json:wchar_t Required
-    private Weak $weak; // json:weak Required
-    private Where $where; // json:where Required
-    private WhileClass $while; // json:while Required
-    private WillSet $willSet; // json:willSet Required
-    private With $with; // json:with Required
-    private XorClass $xor; // json:xor Required
-    private XorEq $xorEq; // json:xor_eq Required
-    private Yes $yes; // json:YES Required
-    private YieldClass $yield; // json:yield Required
+class TrueClass {
+    private int $true; // json:True Required
 
     /**
-     * @param int $dummy
-     * @param Union $union
-     * @param Unowned $unowned
-     * @param Unsafe $unsafe
-     * @param Unsigned $unsigned
-     * @param Ushort $ushort
-     * @param Using $using
-     * @param Utf8JSONReader $utf8JSONReader
-     * @param Utf8JSONWriter $utf8JSONWriter
-     * @param UUID $uuid
-     * @param VarClass $var
-     * @param Virtual $virtual
-     * @param VoidClass $void
-     * @param Volatile $volatile
-     * @param WcharT $wcharT
-     * @param Weak $weak
-     * @param Where $where
-     * @param WhileClass $while
-     * @param WillSet $willSet
-     * @param With $with
-     * @param XorClass $xor
-     * @param XorEq $xorEq
-     * @param Yes $yes
-     * @param YieldClass $yield
+     * @param int $true
      */
-    public function __construct(int $dummy, Union $union, Unowned $unowned, Unsafe $unsafe, Unsigned $unsigned, Ushort $ushort, Using $using, Utf8JSONReader $utf8JSONReader, Utf8JSONWriter $utf8JSONWriter, UUID $uuid, VarClass $var, Virtual $virtual, VoidClass $void, Volatile $volatile, WcharT $wcharT, Weak $weak, Where $where, WhileClass $while, WillSet $willSet, With $with, XorClass $xor, XorEq $xorEq, Yes $yes, YieldClass $yield) {
-        $this->dummy = $dummy;
-        $this->union = $union;
-        $this->unowned = $unowned;
-        $this->unsafe = $unsafe;
-        $this->unsigned = $unsigned;
-        $this->ushort = $ushort;
-        $this->using = $using;
-        $this->utf8JSONReader = $utf8JSONReader;
-        $this->utf8JSONWriter = $utf8JSONWriter;
-        $this->uuid = $uuid;
-        $this->var = $var;
-        $this->virtual = $virtual;
-        $this->void = $void;
-        $this->volatile = $volatile;
-        $this->wcharT = $wcharT;
-        $this->weak = $weak;
-        $this->where = $where;
-        $this->while = $while;
-        $this->willSet = $willSet;
-        $this->with = $with;
-        $this->xor = $xor;
-        $this->xorEq = $xorEq;
-        $this->yes = $yes;
-        $this->yield = $yield;
+    public function __construct(int $true) {
+        $this->true = $true;
     }
 
     /**
@@ -47702,7 +47856,7 @@ class Obj5 {
      * @throws Exception
      * @return int
      */
-    public static function fromDummy(int $value): int {
+    public static function fromTrue(int $value): int {
         return $value; /*int*/
     }
 
@@ -47710,11 +47864,11 @@ class Obj5 {
      * @throws Exception
      * @return int
      */
-    public function toDummy(): int {
-        if (Obj5::validateDummy($this->dummy))  {
-            return $this->dummy; /*int*/
+    public function toTrue(): int {
+        if (TrueClass::validateTrue($this->true))  {
+            return $this->true; /*int*/
         }
-        throw new Exception('never get to this Obj5::dummy');
+        throw new Exception('never get to this TrueClass::true');
     }
 
     /**
@@ -47722,7 +47876,7 @@ class Obj5 {
      * @return bool
      * @throws Exception
      */
-    public static function validateDummy(int $value): bool {
+    public static function validateTrue(int $value): bool {
         return true;
     }
 
@@ -47730,1122 +47884,1129 @@ class Obj5 {
      * @throws Exception
      * @return int
      */
-    public function getDummy(): int {
-        if (Obj5::validateDummy($this->dummy))  {
-            return $this->dummy;
+    public function getTrue(): int {
+        if (TrueClass::validateTrue($this->true))  {
+            return $this->true;
         }
-        throw new Exception('never get to getDummy Obj5::dummy');
+        throw new Exception('never get to getTrue TrueClass::true');
     }
 
     /**
      * @return int
      */
-    public static function sampleDummy(): int {
-        return 31; /*31:dummy*/
+    public static function sampleTrue(): int {
+        return 31; /*31:true*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Union
+     * @return bool
      */
-    public static function fromUnion(stdClass $value): Union {
-        return Union::from($value); /*class*/
+    public function validate(): bool {
+        return TrueClass::validateTrue($this->true);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
-     */
-    public function toUnion(): stdClass {
-        if (Obj5::validateUnion($this->union))  {
-            return $this->union->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::union');
-    }
-
-    /**
-     * @param Union
-     * @return bool
      * @throws Exception
      */
-    public static function validateUnion(Union $value): bool {
-        $value->validate();
-        return true;
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'True'} = $this->toTrue();
+        return $out;
     }
 
     /**
+     * @param stdClass $obj
+     * @return TrueClass
      * @throws Exception
-     * @return Union
      */
-    public function getUnion(): Union {
-        if (Obj5::validateUnion($this->union))  {
-            return $this->union;
+    public static function from(stdClass $obj): TrueClass {
+        if (!property_exists($obj, 'True')) {
+            throw new Exception("Missing required property");
         }
-        throw new Exception('never get to getUnion Obj5::union');
-    }
-
-    /**
-     * @return Union
-     */
-    public static function sampleUnion(): Union {
-        return Union::sample(); /*32:union*/
-    }
-
-    /**
-     * @param stdClass $value
-     * @throws Exception
-     * @return Unowned
-     */
-    public static function fromUnowned(stdClass $value): Unowned {
-        return Unowned::from($value); /*class*/
+        return new TrueClass(
+         TrueClass::fromTrue($obj->{'True'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return stdClass
+     * @return TrueClass
      */
-    public function toUnowned(): stdClass {
-        if (Obj5::validateUnowned($this->unowned))  {
-            return $this->unowned->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::unowned');
+    public static function sample(): TrueClass {
+        return new TrueClass(
+         TrueClass::sampleTrue()
+        );
     }
+}
 
-    /**
-     * @param Unowned
-     * @return bool
-     * @throws Exception
-     */
-    public static function validateUnowned(Unowned $value): bool {
-        $value->validate();
-        return true;
-    }
+// This is an autogenerated file:TryClass
 
-    /**
-     * @throws Exception
-     * @return Unowned
-     */
-    public function getUnowned(): Unowned {
-        if (Obj5::validateUnowned($this->unowned))  {
-            return $this->unowned;
-        }
-        throw new Exception('never get to getUnowned Obj5::unowned');
-    }
+class TryClass {
+    private int $try; // json:try Required
 
     /**
-     * @return Unowned
+     * @param int $try
      */
-    public static function sampleUnowned(): Unowned {
-        return Unowned::sample(); /*33:unowned*/
+    public function __construct(int $try) {
+        $this->try = $try;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Unsafe
+     * @return int
      */
-    public static function fromUnsafe(stdClass $value): Unsafe {
-        return Unsafe::from($value); /*class*/
+    public static function fromTry(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUnsafe(): stdClass {
-        if (Obj5::validateUnsafe($this->unsafe))  {
-            return $this->unsafe->to(); /*class*/
+    public function toTry(): int {
+        if (TryClass::validateTry($this->try))  {
+            return $this->try; /*int*/
         }
-        throw new Exception('never get to this Obj5::unsafe');
+        throw new Exception('never get to this TryClass::try');
     }
 
     /**
-     * @param Unsafe
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUnsafe(Unsafe $value): bool {
-        $value->validate();
+    public static function validateTry(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Unsafe
+     * @return int
      */
-    public function getUnsafe(): Unsafe {
-        if (Obj5::validateUnsafe($this->unsafe))  {
-            return $this->unsafe;
+    public function getTry(): int {
+        if (TryClass::validateTry($this->try))  {
+            return $this->try;
         }
-        throw new Exception('never get to getUnsafe Obj5::unsafe');
+        throw new Exception('never get to getTry TryClass::try');
     }
 
     /**
-     * @return Unsafe
+     * @return int
      */
-    public static function sampleUnsafe(): Unsafe {
-        return Unsafe::sample(); /*34:unsafe*/
+    public static function sampleTry(): int {
+        return 31; /*31:try*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Unsigned
+     * @return bool
      */
-    public static function fromUnsigned(stdClass $value): Unsigned {
-        return Unsigned::from($value); /*class*/
+    public function validate(): bool {
+        return TryClass::validateTry($this->try);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toUnsigned(): stdClass {
-        if (Obj5::validateUnsigned($this->unsigned))  {
-            return $this->unsigned->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::unsigned');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'try'} = $this->toTry();
+        return $out;
     }
 
     /**
-     * @param Unsigned
-     * @return bool
+     * @param stdClass $obj
+     * @return TryClass
      * @throws Exception
      */
-    public static function validateUnsigned(Unsigned $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): TryClass {
+        if (!property_exists($obj, 'try')) {
+            throw new Exception("Missing required property");
+        }
+        return new TryClass(
+         TryClass::fromTry($obj->{'try'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Unsigned
+     * @return TryClass
      */
-    public function getUnsigned(): Unsigned {
-        if (Obj5::validateUnsigned($this->unsigned))  {
-            return $this->unsigned;
-        }
-        throw new Exception('never get to getUnsigned Obj5::unsigned');
+    public static function sample(): TryClass {
+        return new TryClass(
+         TryClass::sampleTry()
+        );
     }
+}
+
+// This is an autogenerated file:Type
+
+class Type {
+    private int $type; // json:Type Required
 
     /**
-     * @return Unsigned
+     * @param int $type
      */
-    public static function sampleUnsigned(): Unsigned {
-        return Unsigned::sample(); /*35:unsigned*/
+    public function __construct(int $type) {
+        $this->type = $type;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Ushort
+     * @return int
      */
-    public static function fromUshort(stdClass $value): Ushort {
-        return Ushort::from($value); /*class*/
+    public static function fromType(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUshort(): stdClass {
-        if (Obj5::validateUshort($this->ushort))  {
-            return $this->ushort->to(); /*class*/
+    public function toType(): int {
+        if (Type::validateType($this->type))  {
+            return $this->type; /*int*/
         }
-        throw new Exception('never get to this Obj5::ushort');
+        throw new Exception('never get to this Type::type');
     }
 
     /**
-     * @param Ushort
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUshort(Ushort $value): bool {
-        $value->validate();
+    public static function validateType(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Ushort
+     * @return int
      */
-    public function getUshort(): Ushort {
-        if (Obj5::validateUshort($this->ushort))  {
-            return $this->ushort;
+    public function getType(): int {
+        if (Type::validateType($this->type))  {
+            return $this->type;
         }
-        throw new Exception('never get to getUshort Obj5::ushort');
+        throw new Exception('never get to getType Type::type');
     }
 
     /**
-     * @return Ushort
+     * @return int
      */
-    public static function sampleUshort(): Ushort {
-        return Ushort::sample(); /*36:ushort*/
+    public static function sampleType(): int {
+        return 31; /*31:type*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Using
+     * @return bool
      */
-    public static function fromUsing(stdClass $value): Using {
-        return Using::from($value); /*class*/
+    public function validate(): bool {
+        return Type::validateType($this->type);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toUsing(): stdClass {
-        if (Obj5::validateUsing($this->using))  {
-            return $this->using->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::using');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'Type'} = $this->toType();
+        return $out;
     }
 
     /**
-     * @param Using
-     * @return bool
+     * @param stdClass $obj
+     * @return Type
      * @throws Exception
      */
-    public static function validateUsing(Using $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Type {
+        if (!property_exists($obj, 'Type')) {
+            throw new Exception("Missing required property");
+        }
+        return new Type(
+         Type::fromType($obj->{'Type'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Using
+     * @return Type
      */
-    public function getUsing(): Using {
-        if (Obj5::validateUsing($this->using))  {
-            return $this->using;
-        }
-        throw new Exception('never get to getUsing Obj5::using');
+    public static function sample(): Type {
+        return new Type(
+         Type::sampleType()
+        );
     }
+}
+
+// This is an autogenerated file:Typealias
+
+class Typealias {
+    private int $typealias; // json:typealias Required
 
     /**
-     * @return Using
+     * @param int $typealias
      */
-    public static function sampleUsing(): Using {
-        return Using::sample(); /*37:using*/
+    public function __construct(int $typealias) {
+        $this->typealias = $typealias;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Utf8JSONReader
+     * @return int
      */
-    public static function fromUtf8JSONReader(stdClass $value): Utf8JSONReader {
-        return Utf8JSONReader::from($value); /*class*/
+    public static function fromTypealias(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUtf8JSONReader(): stdClass {
-        if (Obj5::validateUtf8JSONReader($this->utf8JSONReader))  {
-            return $this->utf8JSONReader->to(); /*class*/
+    public function toTypealias(): int {
+        if (Typealias::validateTypealias($this->typealias))  {
+            return $this->typealias; /*int*/
         }
-        throw new Exception('never get to this Obj5::utf8JSONReader');
+        throw new Exception('never get to this Typealias::typealias');
     }
 
     /**
-     * @param Utf8JSONReader
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUtf8JSONReader(Utf8JSONReader $value): bool {
-        $value->validate();
+    public static function validateTypealias(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Utf8JSONReader
+     * @return int
      */
-    public function getUtf8JSONReader(): Utf8JSONReader {
-        if (Obj5::validateUtf8JSONReader($this->utf8JSONReader))  {
-            return $this->utf8JSONReader;
+    public function getTypealias(): int {
+        if (Typealias::validateTypealias($this->typealias))  {
+            return $this->typealias;
         }
-        throw new Exception('never get to getUtf8JSONReader Obj5::utf8JSONReader');
+        throw new Exception('never get to getTypealias Typealias::typealias');
     }
 
     /**
-     * @return Utf8JSONReader
+     * @return int
      */
-    public static function sampleUtf8JSONReader(): Utf8JSONReader {
-        return Utf8JSONReader::sample(); /*38:utf8JSONReader*/
+    public static function sampleTypealias(): int {
+        return 31; /*31:typealias*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Utf8JSONWriter
+     * @return bool
      */
-    public static function fromUtf8JSONWriter(stdClass $value): Utf8JSONWriter {
-        return Utf8JSONWriter::from($value); /*class*/
+    public function validate(): bool {
+        return Typealias::validateTypealias($this->typealias);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toUtf8JSONWriter(): stdClass {
-        if (Obj5::validateUtf8JSONWriter($this->utf8JSONWriter))  {
-            return $this->utf8JSONWriter->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::utf8JSONWriter');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'typealias'} = $this->toTypealias();
+        return $out;
     }
 
     /**
-     * @param Utf8JSONWriter
-     * @return bool
+     * @param stdClass $obj
+     * @return Typealias
      * @throws Exception
      */
-    public static function validateUtf8JSONWriter(Utf8JSONWriter $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Typealias {
+        if (!property_exists($obj, 'typealias')) {
+            throw new Exception("Missing required property");
+        }
+        return new Typealias(
+         Typealias::fromTypealias($obj->{'typealias'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Utf8JSONWriter
+     * @return Typealias
      */
-    public function getUtf8JSONWriter(): Utf8JSONWriter {
-        if (Obj5::validateUtf8JSONWriter($this->utf8JSONWriter))  {
-            return $this->utf8JSONWriter;
-        }
-        throw new Exception('never get to getUtf8JSONWriter Obj5::utf8JSONWriter');
+    public static function sample(): Typealias {
+        return new Typealias(
+         Typealias::sampleTypealias()
+        );
     }
+}
+
+// This is an autogenerated file:Typedef
+
+class Typedef {
+    private int $typedef; // json:typedef Required
 
     /**
-     * @return Utf8JSONWriter
+     * @param int $typedef
      */
-    public static function sampleUtf8JSONWriter(): Utf8JSONWriter {
-        return Utf8JSONWriter::sample(); /*39:utf8JSONWriter*/
+    public function __construct(int $typedef) {
+        $this->typedef = $typedef;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return UUID
+     * @return int
      */
-    public static function fromUUID(stdClass $value): UUID {
-        return UUID::from($value); /*class*/
+    public static function fromTypedef(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toUUID(): stdClass {
-        if (Obj5::validateUUID($this->uuid))  {
-            return $this->uuid->to(); /*class*/
+    public function toTypedef(): int {
+        if (Typedef::validateTypedef($this->typedef))  {
+            return $this->typedef; /*int*/
         }
-        throw new Exception('never get to this Obj5::uuid');
+        throw new Exception('never get to this Typedef::typedef');
     }
 
     /**
-     * @param UUID
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateUUID(UUID $value): bool {
-        $value->validate();
+    public static function validateTypedef(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return UUID
+     * @return int
      */
-    public function getUUID(): UUID {
-        if (Obj5::validateUUID($this->uuid))  {
-            return $this->uuid;
+    public function getTypedef(): int {
+        if (Typedef::validateTypedef($this->typedef))  {
+            return $this->typedef;
         }
-        throw new Exception('never get to getUUID Obj5::uuid');
+        throw new Exception('never get to getTypedef Typedef::typedef');
     }
 
     /**
-     * @return UUID
+     * @return int
      */
-    public static function sampleUUID(): UUID {
-        return UUID::sample(); /*40:uuid*/
+    public static function sampleTypedef(): int {
+        return 31; /*31:typedef*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return VarClass
+     * @return bool
      */
-    public static function fromVar(stdClass $value): VarClass {
-        return VarClass::from($value); /*class*/
+    public function validate(): bool {
+        return Typedef::validateTypedef($this->typedef);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toVar(): stdClass {
-        if (Obj5::validateVar($this->var))  {
-            return $this->var->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::var');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'typedef'} = $this->toTypedef();
+        return $out;
     }
 
     /**
-     * @param VarClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Typedef
      * @throws Exception
      */
-    public static function validateVar(VarClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Typedef {
+        if (!property_exists($obj, 'typedef')) {
+            throw new Exception("Missing required property");
+        }
+        return new Typedef(
+         Typedef::fromTypedef($obj->{'typedef'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return VarClass
+     * @return Typedef
      */
-    public function getVar(): VarClass {
-        if (Obj5::validateVar($this->var))  {
-            return $this->var;
-        }
-        throw new Exception('never get to getVar Obj5::var');
+    public static function sample(): Typedef {
+        return new Typedef(
+         Typedef::sampleTypedef()
+        );
     }
+}
+
+// This is an autogenerated file:Typeid
+
+class Typeid {
+    private int $typeid; // json:typeid Required
 
     /**
-     * @return VarClass
+     * @param int $typeid
      */
-    public static function sampleVar(): VarClass {
-        return VarClass::sample(); /*41:var*/
+    public function __construct(int $typeid) {
+        $this->typeid = $typeid;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Virtual
+     * @return int
      */
-    public static function fromVirtual(stdClass $value): Virtual {
-        return Virtual::from($value); /*class*/
+    public static function fromTypeid(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toVirtual(): stdClass {
-        if (Obj5::validateVirtual($this->virtual))  {
-            return $this->virtual->to(); /*class*/
+    public function toTypeid(): int {
+        if (Typeid::validateTypeid($this->typeid))  {
+            return $this->typeid; /*int*/
         }
-        throw new Exception('never get to this Obj5::virtual');
+        throw new Exception('never get to this Typeid::typeid');
     }
 
     /**
-     * @param Virtual
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateVirtual(Virtual $value): bool {
-        $value->validate();
+    public static function validateTypeid(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Virtual
+     * @return int
      */
-    public function getVirtual(): Virtual {
-        if (Obj5::validateVirtual($this->virtual))  {
-            return $this->virtual;
+    public function getTypeid(): int {
+        if (Typeid::validateTypeid($this->typeid))  {
+            return $this->typeid;
         }
-        throw new Exception('never get to getVirtual Obj5::virtual');
+        throw new Exception('never get to getTypeid Typeid::typeid');
     }
 
     /**
-     * @return Virtual
+     * @return int
      */
-    public static function sampleVirtual(): Virtual {
-        return Virtual::sample(); /*42:virtual*/
+    public static function sampleTypeid(): int {
+        return 31; /*31:typeid*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return VoidClass
+     * @return bool
      */
-    public static function fromVoid(stdClass $value): VoidClass {
-        return VoidClass::from($value); /*class*/
+    public function validate(): bool {
+        return Typeid::validateTypeid($this->typeid);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toVoid(): stdClass {
-        if (Obj5::validateVoid($this->void))  {
-            return $this->void->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::void');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'typeid'} = $this->toTypeid();
+        return $out;
     }
 
     /**
-     * @param VoidClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Typeid
      * @throws Exception
      */
-    public static function validateVoid(VoidClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Typeid {
+        if (!property_exists($obj, 'typeid')) {
+            throw new Exception("Missing required property");
+        }
+        return new Typeid(
+         Typeid::fromTypeid($obj->{'typeid'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return VoidClass
+     * @return Typeid
      */
-    public function getVoid(): VoidClass {
-        if (Obj5::validateVoid($this->void))  {
-            return $this->void;
-        }
-        throw new Exception('never get to getVoid Obj5::void');
+    public static function sample(): Typeid {
+        return new Typeid(
+         Typeid::sampleTypeid()
+        );
     }
+}
+
+// This is an autogenerated file:Typename
+
+class Typename {
+    private int $typename; // json:typename Required
 
     /**
-     * @return VoidClass
+     * @param int $typename
      */
-    public static function sampleVoid(): VoidClass {
-        return VoidClass::sample(); /*43:void*/
+    public function __construct(int $typename) {
+        $this->typename = $typename;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Volatile
+     * @return int
      */
-    public static function fromVolatile(stdClass $value): Volatile {
-        return Volatile::from($value); /*class*/
+    public static function fromTypename(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toVolatile(): stdClass {
-        if (Obj5::validateVolatile($this->volatile))  {
-            return $this->volatile->to(); /*class*/
+    public function toTypename(): int {
+        if (Typename::validateTypename($this->typename))  {
+            return $this->typename; /*int*/
         }
-        throw new Exception('never get to this Obj5::volatile');
+        throw new Exception('never get to this Typename::typename');
     }
 
     /**
-     * @param Volatile
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateVolatile(Volatile $value): bool {
-        $value->validate();
+    public static function validateTypename(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Volatile
+     * @return int
      */
-    public function getVolatile(): Volatile {
-        if (Obj5::validateVolatile($this->volatile))  {
-            return $this->volatile;
+    public function getTypename(): int {
+        if (Typename::validateTypename($this->typename))  {
+            return $this->typename;
         }
-        throw new Exception('never get to getVolatile Obj5::volatile');
+        throw new Exception('never get to getTypename Typename::typename');
     }
 
     /**
-     * @return Volatile
+     * @return int
      */
-    public static function sampleVolatile(): Volatile {
-        return Volatile::sample(); /*44:volatile*/
+    public static function sampleTypename(): int {
+        return 31; /*31:typename*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return WcharT
+     * @return bool
      */
-    public static function fromWcharT(stdClass $value): WcharT {
-        return WcharT::from($value); /*class*/
+    public function validate(): bool {
+        return Typename::validateTypename($this->typename);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toWcharT(): stdClass {
-        if (Obj5::validateWcharT($this->wcharT))  {
-            return $this->wcharT->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::wcharT');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'typename'} = $this->toTypename();
+        return $out;
     }
 
     /**
-     * @param WcharT
-     * @return bool
+     * @param stdClass $obj
+     * @return Typename
      * @throws Exception
      */
-    public static function validateWcharT(WcharT $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Typename {
+        if (!property_exists($obj, 'typename')) {
+            throw new Exception("Missing required property");
+        }
+        return new Typename(
+         Typename::fromTypename($obj->{'typename'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return WcharT
+     * @return Typename
      */
-    public function getWcharT(): WcharT {
-        if (Obj5::validateWcharT($this->wcharT))  {
-            return $this->wcharT;
-        }
-        throw new Exception('never get to getWcharT Obj5::wcharT');
+    public static function sample(): Typename {
+        return new Typename(
+         Typename::sampleTypename()
+        );
     }
+}
+
+// This is an autogenerated file:Typeof
+
+class Typeof {
+    private int $typeof; // json:typeof Required
 
     /**
-     * @return WcharT
+     * @param int $typeof
      */
-    public static function sampleWcharT(): WcharT {
-        return WcharT::sample(); /*45:wcharT*/
+    public function __construct(int $typeof) {
+        $this->typeof = $typeof;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return Weak
+     * @return int
      */
-    public static function fromWeak(stdClass $value): Weak {
-        return Weak::from($value); /*class*/
+    public static function fromTypeof(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toWeak(): stdClass {
-        if (Obj5::validateWeak($this->weak))  {
-            return $this->weak->to(); /*class*/
+    public function toTypeof(): int {
+        if (Typeof::validateTypeof($this->typeof))  {
+            return $this->typeof; /*int*/
         }
-        throw new Exception('never get to this Obj5::weak');
+        throw new Exception('never get to this Typeof::typeof');
     }
 
     /**
-     * @param Weak
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateWeak(Weak $value): bool {
-        $value->validate();
+    public static function validateTypeof(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Weak
+     * @return int
      */
-    public function getWeak(): Weak {
-        if (Obj5::validateWeak($this->weak))  {
-            return $this->weak;
+    public function getTypeof(): int {
+        if (Typeof::validateTypeof($this->typeof))  {
+            return $this->typeof;
         }
-        throw new Exception('never get to getWeak Obj5::weak');
+        throw new Exception('never get to getTypeof Typeof::typeof');
     }
 
     /**
-     * @return Weak
+     * @return int
      */
-    public static function sampleWeak(): Weak {
-        return Weak::sample(); /*46:weak*/
+    public static function sampleTypeof(): int {
+        return 31; /*31:typeof*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Where
+     * @return bool
      */
-    public static function fromWhere(stdClass $value): Where {
-        return Where::from($value); /*class*/
+    public function validate(): bool {
+        return Typeof::validateTypeof($this->typeof);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toWhere(): stdClass {
-        if (Obj5::validateWhere($this->where))  {
-            return $this->where->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::where');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'typeof'} = $this->toTypeof();
+        return $out;
     }
 
     /**
-     * @param Where
-     * @return bool
+     * @param stdClass $obj
+     * @return Typeof
      * @throws Exception
      */
-    public static function validateWhere(Where $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Typeof {
+        if (!property_exists($obj, 'typeof')) {
+            throw new Exception("Missing required property");
+        }
+        return new Typeof(
+         Typeof::fromTypeof($obj->{'typeof'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Where
+     * @return Typeof
      */
-    public function getWhere(): Where {
-        if (Obj5::validateWhere($this->where))  {
-            return $this->where;
-        }
-        throw new Exception('never get to getWhere Obj5::where');
+    public static function sample(): Typeof {
+        return new Typeof(
+         Typeof::sampleTypeof()
+        );
     }
+}
+
+// This is an autogenerated file:Uint
+
+class Uint {
+    private int $uint; // json:uint Required
 
     /**
-     * @return Where
+     * @param int $uint
      */
-    public static function sampleWhere(): Where {
-        return Where::sample(); /*47:where*/
+    public function __construct(int $uint) {
+        $this->uint = $uint;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return WhileClass
+     * @return int
      */
-    public static function fromWhile(stdClass $value): WhileClass {
-        return WhileClass::from($value); /*class*/
+    public static function fromUint(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toWhile(): stdClass {
-        if (Obj5::validateWhile($this->while))  {
-            return $this->while->to(); /*class*/
+    public function toUint(): int {
+        if (Uint::validateUint($this->uint))  {
+            return $this->uint; /*int*/
         }
-        throw new Exception('never get to this Obj5::while');
+        throw new Exception('never get to this Uint::uint');
     }
 
     /**
-     * @param WhileClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateWhile(WhileClass $value): bool {
-        $value->validate();
+    public static function validateUint(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return WhileClass
+     * @return int
      */
-    public function getWhile(): WhileClass {
-        if (Obj5::validateWhile($this->while))  {
-            return $this->while;
+    public function getUint(): int {
+        if (Uint::validateUint($this->uint))  {
+            return $this->uint;
         }
-        throw new Exception('never get to getWhile Obj5::while');
+        throw new Exception('never get to getUint Uint::uint');
     }
 
     /**
-     * @return WhileClass
+     * @return int
      */
-    public static function sampleWhile(): WhileClass {
-        return WhileClass::sample(); /*48:while*/
+    public static function sampleUint(): int {
+        return 31; /*31:uint*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return WillSet
+     * @return bool
      */
-    public static function fromWillSet(stdClass $value): WillSet {
-        return WillSet::from($value); /*class*/
+    public function validate(): bool {
+        return Uint::validateUint($this->uint);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toWillSet(): stdClass {
-        if (Obj5::validateWillSet($this->willSet))  {
-            return $this->willSet->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::willSet');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'uint'} = $this->toUint();
+        return $out;
     }
 
     /**
-     * @param WillSet
-     * @return bool
+     * @param stdClass $obj
+     * @return Uint
      * @throws Exception
      */
-    public static function validateWillSet(WillSet $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Uint {
+        if (!property_exists($obj, 'uint')) {
+            throw new Exception("Missing required property");
+        }
+        return new Uint(
+         Uint::fromUint($obj->{'uint'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return WillSet
+     * @return Uint
      */
-    public function getWillSet(): WillSet {
-        if (Obj5::validateWillSet($this->willSet))  {
-            return $this->willSet;
-        }
-        throw new Exception('never get to getWillSet Obj5::willSet');
+    public static function sample(): Uint {
+        return new Uint(
+         Uint::sampleUint()
+        );
     }
+}
+
+// This is an autogenerated file:Ulong
+
+class Ulong {
+    private int $ulong; // json:ulong Required
 
     /**
-     * @return WillSet
+     * @param int $ulong
      */
-    public static function sampleWillSet(): WillSet {
-        return WillSet::sample(); /*49:willSet*/
+    public function __construct(int $ulong) {
+        $this->ulong = $ulong;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return With
+     * @return int
      */
-    public static function fromWith(stdClass $value): With {
-        return With::from($value); /*class*/
+    public static function fromUlong(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toWith(): stdClass {
-        if (Obj5::validateWith($this->with))  {
-            return $this->with->to(); /*class*/
+    public function toUlong(): int {
+        if (Ulong::validateUlong($this->ulong))  {
+            return $this->ulong; /*int*/
         }
-        throw new Exception('never get to this Obj5::with');
+        throw new Exception('never get to this Ulong::ulong');
     }
 
     /**
-     * @param With
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateWith(With $value): bool {
-        $value->validate();
+    public static function validateUlong(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return With
+     * @return int
      */
-    public function getWith(): With {
-        if (Obj5::validateWith($this->with))  {
-            return $this->with;
+    public function getUlong(): int {
+        if (Ulong::validateUlong($this->ulong))  {
+            return $this->ulong;
         }
-        throw new Exception('never get to getWith Obj5::with');
+        throw new Exception('never get to getUlong Ulong::ulong');
     }
 
     /**
-     * @return With
+     * @return int
      */
-    public static function sampleWith(): With {
-        return With::sample(); /*50:with*/
+    public static function sampleUlong(): int {
+        return 31; /*31:ulong*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return XorClass
+     * @return bool
      */
-    public static function fromXor(stdClass $value): XorClass {
-        return XorClass::from($value); /*class*/
+    public function validate(): bool {
+        return Ulong::validateUlong($this->ulong);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toXor(): stdClass {
-        if (Obj5::validateXor($this->xor))  {
-            return $this->xor->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::xor');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'ulong'} = $this->toUlong();
+        return $out;
     }
 
     /**
-     * @param XorClass
-     * @return bool
+     * @param stdClass $obj
+     * @return Ulong
      * @throws Exception
      */
-    public static function validateXor(XorClass $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Ulong {
+        if (!property_exists($obj, 'ulong')) {
+            throw new Exception("Missing required property");
+        }
+        return new Ulong(
+         Ulong::fromUlong($obj->{'ulong'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return XorClass
+     * @return Ulong
      */
-    public function getXor(): XorClass {
-        if (Obj5::validateXor($this->xor))  {
-            return $this->xor;
-        }
-        throw new Exception('never get to getXor Obj5::xor');
+    public static function sample(): Ulong {
+        return new Ulong(
+         Ulong::sampleUlong()
+        );
     }
+}
+
+// This is an autogenerated file:Unchecked
+
+class Unchecked {
+    private int $unchecked; // json:unchecked Required
 
     /**
-     * @return XorClass
+     * @param int $unchecked
      */
-    public static function sampleXor(): XorClass {
-        return XorClass::sample(); /*51:xor*/
+    public function __construct(int $unchecked) {
+        $this->unchecked = $unchecked;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return XorEq
+     * @return int
      */
-    public static function fromXorEq(stdClass $value): XorEq {
-        return XorEq::from($value); /*class*/
+    public static function fromUnchecked(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toXorEq(): stdClass {
-        if (Obj5::validateXorEq($this->xorEq))  {
-            return $this->xorEq->to(); /*class*/
+    public function toUnchecked(): int {
+        if (Unchecked::validateUnchecked($this->unchecked))  {
+            return $this->unchecked; /*int*/
         }
-        throw new Exception('never get to this Obj5::xorEq');
+        throw new Exception('never get to this Unchecked::unchecked');
     }
 
     /**
-     * @param XorEq
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateXorEq(XorEq $value): bool {
-        $value->validate();
+    public static function validateUnchecked(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return XorEq
+     * @return int
      */
-    public function getXorEq(): XorEq {
-        if (Obj5::validateXorEq($this->xorEq))  {
-            return $this->xorEq;
+    public function getUnchecked(): int {
+        if (Unchecked::validateUnchecked($this->unchecked))  {
+            return $this->unchecked;
         }
-        throw new Exception('never get to getXorEq Obj5::xorEq');
+        throw new Exception('never get to getUnchecked Unchecked::unchecked');
     }
 
     /**
-     * @return XorEq
+     * @return int
      */
-    public static function sampleXorEq(): XorEq {
-        return XorEq::sample(); /*52:xorEq*/
+    public static function sampleUnchecked(): int {
+        return 31; /*31:unchecked*/
     }
 
     /**
-     * @param stdClass $value
      * @throws Exception
-     * @return Yes
+     * @return bool
      */
-    public static function fromYes(stdClass $value): Yes {
-        return Yes::from($value); /*class*/
+    public function validate(): bool {
+        return Unchecked::validateUnchecked($this->unchecked);
     }
 
     /**
-     * @throws Exception
      * @return stdClass
+     * @throws Exception
      */
-    public function toYes(): stdClass {
-        if (Obj5::validateYes($this->yes))  {
-            return $this->yes->to(); /*class*/
-        }
-        throw new Exception('never get to this Obj5::yes');
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'unchecked'} = $this->toUnchecked();
+        return $out;
     }
 
     /**
-     * @param Yes
-     * @return bool
+     * @param stdClass $obj
+     * @return Unchecked
      * @throws Exception
      */
-    public static function validateYes(Yes $value): bool {
-        $value->validate();
-        return true;
+    public static function from(stdClass $obj): Unchecked {
+        if (!property_exists($obj, 'unchecked')) {
+            throw new Exception("Missing required property");
+        }
+        return new Unchecked(
+         Unchecked::fromUnchecked($obj->{'unchecked'})
+        );
     }
 
     /**
-     * @throws Exception
-     * @return Yes
+     * @return Unchecked
      */
-    public function getYes(): Yes {
-        if (Obj5::validateYes($this->yes))  {
-            return $this->yes;
-        }
-        throw new Exception('never get to getYes Obj5::yes');
+    public static function sample(): Unchecked {
+        return new Unchecked(
+         Unchecked::sampleUnchecked()
+        );
     }
+}
+
+// This is an autogenerated file:Undefined
+
+class Undefined {
+    private int $undefined; // json:undefined Required
 
     /**
-     * @return Yes
+     * @param int $undefined
      */
-    public static function sampleYes(): Yes {
-        return Yes::sample(); /*53:yes*/
+    public function __construct(int $undefined) {
+        $this->undefined = $undefined;
     }
 
     /**
-     * @param stdClass $value
+     * @param int $value
      * @throws Exception
-     * @return YieldClass
+     * @return int
      */
-    public static function fromYield(stdClass $value): YieldClass {
-        return YieldClass::from($value); /*class*/
+    public static function fromUndefined(int $value): int {
+        return $value; /*int*/
     }
 
     /**
      * @throws Exception
-     * @return stdClass
+     * @return int
      */
-    public function toYield(): stdClass {
-        if (Obj5::validateYield($this->yield))  {
-            return $this->yield->to(); /*class*/
+    public function toUndefined(): int {
+        if (Undefined::validateUndefined($this->undefined))  {
+            return $this->undefined; /*int*/
         }
-        throw new Exception('never get to this Obj5::yield');
+        throw new Exception('never get to this Undefined::undefined');
     }
 
     /**
-     * @param YieldClass
+     * @param int
      * @return bool
      * @throws Exception
      */
-    public static function validateYield(YieldClass $value): bool {
-        $value->validate();
+    public static function validateUndefined(int $value): bool {
         return true;
     }
 
     /**
      * @throws Exception
-     * @return YieldClass
+     * @return int
      */
-    public function getYield(): YieldClass {
-        if (Obj5::validateYield($this->yield))  {
-            return $this->yield;
+    public function getUndefined(): int {
+        if (Undefined::validateUndefined($this->undefined))  {
+            return $this->undefined;
         }
-        throw new Exception('never get to getYield Obj5::yield');
+        throw new Exception('never get to getUndefined Undefined::undefined');
     }
 
     /**
-     * @return YieldClass
+     * @return int
      */
-    public static function sampleYield(): YieldClass {
-        return YieldClass::sample(); /*54:yield*/
+    public static function sampleUndefined(): int {
+        return 31; /*31:undefined*/
     }
 
     /**
@@ -48853,30 +49014,7 @@ class Obj5 {
      * @return bool
      */
     public function validate(): bool {
-        return Obj5::validateDummy($this->dummy)
-        || Obj5::validateUnion($this->union)
-        || Obj5::validateUnowned($this->unowned)
-        || Obj5::validateUnsafe($this->unsafe)
-        || Obj5::validateUnsigned($this->unsigned)
-        || Obj5::validateUshort($this->ushort)
-        || Obj5::validateUsing($this->using)
-        || Obj5::validateUtf8JSONReader($this->utf8JSONReader)
-        || Obj5::validateUtf8JSONWriter($this->utf8JSONWriter)
-        || Obj5::validateUUID($this->uuid)
-        || Obj5::validateVar($this->var)
-        || Obj5::validateVirtual($this->virtual)
-        || Obj5::validateVoid($this->void)
-        || Obj5::validateVolatile($this->volatile)
-        || Obj5::validateWcharT($this->wcharT)
-        || Obj5::validateWeak($this->weak)
-        || Obj5::validateWhere($this->where)
-        || Obj5::validateWhile($this->while)
-        || Obj5::validateWillSet($this->willSet)
-        || Obj5::validateWith($this->with)
-        || Obj5::validateXor($this->xor)
-        || Obj5::validateXorEq($this->xorEq)
-        || Obj5::validateYes($this->yes)
-        || Obj5::validateYield($this->yield);
+        return Undefined::validateUndefined($this->undefined);
     }
 
     /**
@@ -48885,168 +49023,30 @@ class Obj5 {
      */
     public function to(): stdClass  {
         $out = new stdClass();
-        $out->{'dummy'} = $this->toDummy();
-        $out->{'union'} = $this->toUnion();
-        $out->{'unowned'} = $this->toUnowned();
-        $out->{'unsafe'} = $this->toUnsafe();
-        $out->{'unsigned'} = $this->toUnsigned();
-        $out->{'ushort'} = $this->toUshort();
-        $out->{'using'} = $this->toUsing();
-        $out->{'Utf8JsonReader'} = $this->toUtf8JSONReader();
-        $out->{'Utf8JsonWriter'} = $this->toUtf8JSONWriter();
-        $out->{'UUID'} = $this->toUUID();
-        $out->{'var'} = $this->toVar();
-        $out->{'virtual'} = $this->toVirtual();
-        $out->{'void'} = $this->toVoid();
-        $out->{'volatile'} = $this->toVolatile();
-        $out->{'wchar_t'} = $this->toWcharT();
-        $out->{'weak'} = $this->toWeak();
-        $out->{'where'} = $this->toWhere();
-        $out->{'while'} = $this->toWhile();
-        $out->{'willSet'} = $this->toWillSet();
-        $out->{'with'} = $this->toWith();
-        $out->{'xor'} = $this->toXor();
-        $out->{'xor_eq'} = $this->toXorEq();
-        $out->{'YES'} = $this->toYes();
-        $out->{'yield'} = $this->toYield();
+        $out->{'undefined'} = $this->toUndefined();
         return $out;
     }
 
     /**
      * @param stdClass $obj
-     * @return Obj5
+     * @return Undefined
      * @throws Exception
      */
-    public static function from(stdClass $obj): Obj5 {
-        if (!property_exists($obj, 'dummy')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'union')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'unowned')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'unsafe')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'unsigned')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'ushort')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'using')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'Utf8JsonReader')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'Utf8JsonWriter')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'UUID')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'var')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'virtual')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'void')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'volatile')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'wchar_t')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'weak')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'where')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'while')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'willSet')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'with')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'xor')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'xor_eq')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'YES')) {
-            throw new Exception("Missing required property");
-        }
-        if (!property_exists($obj, 'yield')) {
+    public static function from(stdClass $obj): Undefined {
+        if (!property_exists($obj, 'undefined')) {
             throw new Exception("Missing required property");
         }
-        return new Obj5(
-         Obj5::fromDummy($obj->{'dummy'})
-        ,Obj5::fromUnion($obj->{'union'})
-        ,Obj5::fromUnowned($obj->{'unowned'})
-        ,Obj5::fromUnsafe($obj->{'unsafe'})
-        ,Obj5::fromUnsigned($obj->{'unsigned'})
-        ,Obj5::fromUshort($obj->{'ushort'})
-        ,Obj5::fromUsing($obj->{'using'})
-        ,Obj5::fromUtf8JSONReader($obj->{'Utf8JsonReader'})
-        ,Obj5::fromUtf8JSONWriter($obj->{'Utf8JsonWriter'})
-        ,Obj5::fromUUID($obj->{'UUID'})
-        ,Obj5::fromVar($obj->{'var'})
-        ,Obj5::fromVirtual($obj->{'virtual'})
-        ,Obj5::fromVoid($obj->{'void'})
-        ,Obj5::fromVolatile($obj->{'volatile'})
-        ,Obj5::fromWcharT($obj->{'wchar_t'})
-        ,Obj5::fromWeak($obj->{'weak'})
-        ,Obj5::fromWhere($obj->{'where'})
-        ,Obj5::fromWhile($obj->{'while'})
-        ,Obj5::fromWillSet($obj->{'willSet'})
-        ,Obj5::fromWith($obj->{'with'})
-        ,Obj5::fromXor($obj->{'xor'})
-        ,Obj5::fromXorEq($obj->{'xor_eq'})
-        ,Obj5::fromYes($obj->{'YES'})
-        ,Obj5::fromYield($obj->{'yield'})
+        return new Undefined(
+         Undefined::fromUndefined($obj->{'undefined'})
         );
     }
 
     /**
-     * @return Obj5
+     * @return Undefined
      */
-    public static function sample(): Obj5 {
-        return new Obj5(
-         Obj5::sampleDummy()
-        ,Obj5::sampleUnion()
-        ,Obj5::sampleUnowned()
-        ,Obj5::sampleUnsafe()
-        ,Obj5::sampleUnsigned()
-        ,Obj5::sampleUshort()
-        ,Obj5::sampleUsing()
-        ,Obj5::sampleUtf8JSONReader()
-        ,Obj5::sampleUtf8JSONWriter()
-        ,Obj5::sampleUUID()
-        ,Obj5::sampleVar()
-        ,Obj5::sampleVirtual()
-        ,Obj5::sampleVoid()
-        ,Obj5::sampleVolatile()
-        ,Obj5::sampleWcharT()
-        ,Obj5::sampleWeak()
-        ,Obj5::sampleWhere()
-        ,Obj5::sampleWhile()
-        ,Obj5::sampleWillSet()
-        ,Obj5::sampleWith()
-        ,Obj5::sampleXor()
-        ,Obj5::sampleXorEq()
-        ,Obj5::sampleYes()
-        ,Obj5::sampleYield()
+    public static function sample(): Undefined {
+        return new Undefined(
+         Undefined::sampleUndefined()
         );
     }
 }
diff --git a/base/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod b/head/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
index 8f27493..665e6e1 100644
--- a/base/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
+++ b/head/pike/test/inputs/json/priority/keywords.json/default/TopLevel.pmod
@@ -104,13 +104,6 @@ class Obj1 {
     DateOnly          date_only;           // json: "DateOnly"
     DateOnlyConverter date_only_converter; // json: "DateOnlyConverter"
     DateParseHandling date_parse_handling; // json: "date_parse_handling"
-    DateTime          date_time;           // json: "DateTime"
-    DateTimeStyles    date_time_styles;    // json: "DateTimeStyles"
-    Debugger          debugger;            // json: "debugger"
-    Decimal           decimal;             // json: "decimal"
-    Declare           declare;             // json: "declare"
-    Decltype          decltype;            // json: "decltype"
-    DecodeString      decode_string;       // json: "decode_string"
     int               dummy;               // json: "dummy"
     Empty             empty;               // json: "_"
     Imaginery         imaginery;           // json: "_Imaginery"
@@ -179,13 +172,6 @@ class Obj1 {
             "DateOnly" : date_only,
             "DateOnlyConverter" : date_only_converter,
             "date_parse_handling" : date_parse_handling,
-            "DateTime" : date_time,
-            "DateTimeStyles" : date_time_styles,
-            "debugger" : debugger,
-            "decimal" : decimal,
-            "declare" : declare,
-            "decltype" : decltype,
-            "decode_string" : decode_string,
             "dummy" : dummy,
             "_" : empty,
             "_Imaginery" : imaginery,
@@ -310,20 +296,6 @@ Obj1 Obj1_from_JSON(mixed json) {
     retval.date_only_converter = json["DateOnlyConverter"];
     if (!mappingp(json["date_parse_handling"])) error("Expected object");
     retval.date_parse_handling = json["date_parse_handling"];
-    if (!mappingp(json["DateTime"])) error("Expected object");
-    retval.date_time = json["DateTime"];
-    if (!mappingp(json["DateTimeStyles"])) error("Expected object");
-    retval.date_time_styles = json["DateTimeStyles"];
-    if (!mappingp(json["debugger"])) error("Expected object");
-    retval.debugger = json["debugger"];
-    if (!mappingp(json["decimal"])) error("Expected object");
-    retval.decimal = json["decimal"];
-    if (!mappingp(json["declare"])) error("Expected object");
-    retval.declare = json["declare"];
-    if (!mappingp(json["decltype"])) error("Expected object");
-    retval.decltype = json["decltype"];
-    if (!mappingp(json["decode_string"])) error("Expected object");
-    retval.decode_string = json["decode_string"];
     if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
     if (!mappingp(json["_"])) error("Expected object");
@@ -1408,152 +1380,6 @@ DateParseHandling DateParseHandling_from_JSON(mixed json) {
     return retval;
 }
 
-class DateTime {
-    string date_time; // json: "DateTime"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "DateTime" : date_time,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-DateTime DateTime_from_JSON(mixed json) {
-    DateTime retval = DateTime();
-
-    retval.date_time = json["DateTime"];
-
-    return retval;
-}
-
-class DateTimeStyles {
-    int date_time_styles; // json: "DateTimeStyles"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "DateTimeStyles" : date_time_styles,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-DateTimeStyles DateTimeStyles_from_JSON(mixed json) {
-    DateTimeStyles retval = DateTimeStyles();
-
-    if (!intp(json["DateTimeStyles"])) error("Expected integer");
-    retval.date_time_styles = json["DateTimeStyles"];
-
-    return retval;
-}
-
-class Debugger {
-    int debugger; // json: "debugger"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "debugger" : debugger,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Debugger Debugger_from_JSON(mixed json) {
-    Debugger retval = Debugger();
-
-    if (!intp(json["debugger"])) error("Expected integer");
-    retval.debugger = json["debugger"];
-
-    return retval;
-}
-
-class Decimal {
-    int decimal; // json: "decimal"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "decimal" : decimal,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Decimal Decimal_from_JSON(mixed json) {
-    Decimal retval = Decimal();
-
-    if (!intp(json["decimal"])) error("Expected integer");
-    retval.decimal = json["decimal"];
-
-    return retval;
-}
-
-class Declare {
-    int declare; // json: "declare"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "declare" : declare,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Declare Declare_from_JSON(mixed json) {
-    Declare retval = Declare();
-
-    if (!intp(json["declare"])) error("Expected integer");
-    retval.declare = json["declare"];
-
-    return retval;
-}
-
-class Decltype {
-    int decltype; // json: "decltype"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "decltype" : decltype,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Decltype Decltype_from_JSON(mixed json) {
-    Decltype retval = Decltype();
-
-    if (!intp(json["decltype"])) error("Expected integer");
-    retval.decltype = json["decltype"];
-
-    return retval;
-}
-
-class DecodeString {
-    int decode_string; // json: "decode_string"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "decode_string" : decode_string,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-DecodeString DecodeString_from_JSON(mixed json) {
-    DecodeString retval = DecodeString();
-
-    if (!intp(json["decode_string"])) error("Expected integer");
-    retval.decode_string = json["decode_string"];
-
-    return retval;
-}
-
 class Empty {
     int empty; // json: "_"
 
@@ -1849,6 +1675,13 @@ ClassClass ClassClass_from_JSON(mixed json) {
 }
 
 class Obj2 {
+    DateTime         date_time;         // json: "DateTime"
+    DateTimeStyles   date_time_styles;  // json: "DateTimeStyles"
+    Debugger         debugger;          // json: "debugger"
+    Decimal          decimal;           // json: "decimal"
+    Declare          declare;           // json: "declare"
+    Decltype         decltype;          // json: "decltype"
+    DecodeString     decode_string;     // json: "decode_string"
     Def              def;               // json: "def"
     Defer            defer;             // json: "defer"
     Deinit           deinit;            // json: "deinit"
@@ -1894,14 +1727,6 @@ class Obj2 {
     Imp              imp;               // json: "IMP"
     Implements       implements;        // json: "implements"
     Implicit         implicit;          // json: "implicit"
-    In               in;                // json: "in"
-    Indirect         indirect;          // json: "indirect"
-    Infix            infix;             // json: "infix"
-    Init             init;              // json: "init"
-    Inout            inout;             // json: "inout"
-    Instanceof       instanceof;        // json: "instanceof"
-    Interface        interface;         // json: "interface"
-    Internal         internal;          // json: "internal"
     Default          obj2_default;      // json: "default"
     Do               obj2_do;           // json: "do"
     Else             obj2_else;         // json: "else"
@@ -1915,12 +1740,16 @@ class Obj2 {
     Function         obj2_function;     // json: "function"
     Global           obj2_global;       // json: "global"
     If               obj2_if;           // json: "if"
-    Import           obj2_import;       // json: "import"
-    Inline           obj2_inline;       // json: "inline"
-    Int              obj2_int;          // json: "int"
 
     string encode_json() {
         mapping(string:mixed) json = ([
+            "DateTime" : date_time,
+            "DateTimeStyles" : date_time_styles,
+            "debugger" : debugger,
+            "decimal" : decimal,
+            "declare" : declare,
+            "decltype" : decltype,
+            "decode_string" : decode_string,
             "def" : def,
             "defer" : defer,
             "deinit" : deinit,
@@ -1966,14 +1795,6 @@ class Obj2 {
             "IMP" : imp,
             "implements" : implements,
             "implicit" : implicit,
-            "in" : in,
-            "indirect" : indirect,
-            "infix" : infix,
-            "init" : init,
-            "inout" : inout,
-            "instanceof" : instanceof,
-            "interface" : interface,
-            "internal" : internal,
             "default" : obj2_default,
             "do" : obj2_do,
             "else" : obj2_else,
@@ -1987,9 +1808,6 @@ class Obj2 {
             "function" : obj2_function,
             "global" : obj2_global,
             "if" : obj2_if,
-            "import" : obj2_import,
-            "inline" : obj2_inline,
-            "int" : obj2_int,
         ]);
 
         return Standards.JSON.encode(json);
@@ -1999,6 +1817,20 @@ class Obj2 {
 Obj2 Obj2_from_JSON(mixed json) {
     Obj2 retval = Obj2();
 
+    if (!mappingp(json["DateTime"])) error("Expected object");
+    retval.date_time = json["DateTime"];
+    if (!mappingp(json["DateTimeStyles"])) error("Expected object");
+    retval.date_time_styles = json["DateTimeStyles"];
+    if (!mappingp(json["debugger"])) error("Expected object");
+    retval.debugger = json["debugger"];
+    if (!mappingp(json["decimal"])) error("Expected object");
+    retval.decimal = json["decimal"];
+    if (!mappingp(json["declare"])) error("Expected object");
+    retval.declare = json["declare"];
+    if (!mappingp(json["decltype"])) error("Expected object");
+    retval.decltype = json["decltype"];
+    if (!mappingp(json["decode_string"])) error("Expected object");
+    retval.decode_string = json["decode_string"];
     if (!mappingp(json["def"])) error("Expected object");
     retval.def = json["def"];
     if (!mappingp(json["defer"])) error("Expected object");
@@ -2089,22 +1921,6 @@ Obj2 Obj2_from_JSON(mixed json) {
     retval.implements = json["implements"];
     if (!mappingp(json["implicit"])) error("Expected object");
     retval.implicit = json["implicit"];
-    if (!mappingp(json["in"])) error("Expected object");
-    retval.in = json["in"];
-    if (!mappingp(json["indirect"])) error("Expected object");
-    retval.indirect = json["indirect"];
-    if (!mappingp(json["infix"])) error("Expected object");
-    retval.infix = json["infix"];
-    if (!mappingp(json["init"])) error("Expected object");
-    retval.init = json["init"];
-    if (!mappingp(json["inout"])) error("Expected object");
-    retval.inout = json["inout"];
-    if (!mappingp(json["instanceof"])) error("Expected object");
-    retval.instanceof = json["instanceof"];
-    if (!mappingp(json["interface"])) error("Expected object");
-    retval.interface = json["interface"];
-    if (!mappingp(json["internal"])) error("Expected object");
-    retval.internal = json["internal"];
     if (!mappingp(json["default"])) error("Expected object");
     retval.obj2_default = json["default"];
     if (!mappingp(json["do"])) error("Expected object");
@@ -2131,75 +1947,215 @@ Obj2 Obj2_from_JSON(mixed json) {
     retval.obj2_global = json["global"];
     if (!mappingp(json["if"])) error("Expected object");
     retval.obj2_if = json["if"];
-    if (!mappingp(json["import"])) error("Expected object");
-    retval.obj2_import = json["import"];
-    if (!mappingp(json["inline"])) error("Expected object");
-    retval.obj2_inline = json["inline"];
-    if (!mappingp(json["int"])) error("Expected object");
-    retval.obj2_int = json["int"];
 
     return retval;
 }
 
-class Def {
-    int def; // json: "def"
+class DateTime {
+    string date_time; // json: "DateTime"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "def" : def,
+            "DateTime" : date_time,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Def Def_from_JSON(mixed json) {
-    Def retval = Def();
+DateTime DateTime_from_JSON(mixed json) {
+    DateTime retval = DateTime();
 
-    if (!intp(json["def"])) error("Expected integer");
-    retval.def = json["def"];
+    retval.date_time = json["DateTime"];
 
     return retval;
 }
 
-class Defer {
-    int defer; // json: "defer"
+class DateTimeStyles {
+    int date_time_styles; // json: "DateTimeStyles"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "defer" : defer,
+            "DateTimeStyles" : date_time_styles,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Defer Defer_from_JSON(mixed json) {
-    Defer retval = Defer();
+DateTimeStyles DateTimeStyles_from_JSON(mixed json) {
+    DateTimeStyles retval = DateTimeStyles();
 
-    if (!intp(json["defer"])) error("Expected integer");
-    retval.defer = json["defer"];
+    if (!intp(json["DateTimeStyles"])) error("Expected integer");
+    retval.date_time_styles = json["DateTimeStyles"];
 
     return retval;
 }
 
-class Deinit {
-    int deinit; // json: "deinit"
+class Debugger {
+    int debugger; // json: "debugger"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "deinit" : deinit,
+            "debugger" : debugger,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Deinit Deinit_from_JSON(mixed json) {
-    Deinit retval = Deinit();
+Debugger Debugger_from_JSON(mixed json) {
+    Debugger retval = Debugger();
 
-    if (!intp(json["deinit"])) error("Expected integer");
-    retval.deinit = json["deinit"];
+    if (!intp(json["debugger"])) error("Expected integer");
+    retval.debugger = json["debugger"];
+
+    return retval;
+}
+
+class Decimal {
+    int decimal; // json: "decimal"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "decimal" : decimal,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Decimal Decimal_from_JSON(mixed json) {
+    Decimal retval = Decimal();
+
+    if (!intp(json["decimal"])) error("Expected integer");
+    retval.decimal = json["decimal"];
+
+    return retval;
+}
+
+class Declare {
+    int declare; // json: "declare"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "declare" : declare,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Declare Declare_from_JSON(mixed json) {
+    Declare retval = Declare();
+
+    if (!intp(json["declare"])) error("Expected integer");
+    retval.declare = json["declare"];
+
+    return retval;
+}
+
+class Decltype {
+    int decltype; // json: "decltype"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "decltype" : decltype,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Decltype Decltype_from_JSON(mixed json) {
+    Decltype retval = Decltype();
+
+    if (!intp(json["decltype"])) error("Expected integer");
+    retval.decltype = json["decltype"];
+
+    return retval;
+}
+
+class DecodeString {
+    int decode_string; // json: "decode_string"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "decode_string" : decode_string,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DecodeString DecodeString_from_JSON(mixed json) {
+    DecodeString retval = DecodeString();
+
+    if (!intp(json["decode_string"])) error("Expected integer");
+    retval.decode_string = json["decode_string"];
+
+    return retval;
+}
+
+class Def {
+    int def; // json: "def"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "def" : def,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Def Def_from_JSON(mixed json) {
+    Def retval = Def();
+
+    if (!intp(json["def"])) error("Expected integer");
+    retval.def = json["def"];
+
+    return retval;
+}
+
+class Defer {
+    int defer; // json: "defer"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "defer" : defer,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Defer Defer_from_JSON(mixed json) {
+    Defer retval = Defer();
+
+    if (!intp(json["defer"])) error("Expected integer");
+    retval.defer = json["defer"];
+
+    return retval;
+}
+
+class Deinit {
+    int deinit; // json: "deinit"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "deinit" : deinit,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Deinit Deinit_from_JSON(mixed json) {
+    Deinit retval = Deinit();
+
+    if (!intp(json["deinit"])) error("Expected integer");
+    retval.deinit = json["deinit"];
 
     return retval;
 }
@@ -3073,335 +3029,167 @@ Implicit Implicit_from_JSON(mixed json) {
     return retval;
 }
 
-class In {
-    int in; // json: "in"
+class Default {
+    int default_default; // json: "default"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "in" : in,
+            "default" : default_default,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-In In_from_JSON(mixed json) {
-    In retval = In();
+Default Default_from_JSON(mixed json) {
+    Default retval = Default();
 
-    if (!intp(json["in"])) error("Expected integer");
-    retval.in = json["in"];
+    if (!intp(json["default"])) error("Expected integer");
+    retval.default_default = json["default"];
 
     return retval;
 }
 
-class Indirect {
-    int indirect; // json: "indirect"
+class Do {
+    int do_do; // json: "do"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "indirect" : indirect,
+            "do" : do_do,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Indirect Indirect_from_JSON(mixed json) {
-    Indirect retval = Indirect();
+Do Do_from_JSON(mixed json) {
+    Do retval = Do();
 
-    if (!intp(json["indirect"])) error("Expected integer");
-    retval.indirect = json["indirect"];
+    if (!intp(json["do"])) error("Expected integer");
+    retval.do_do = json["do"];
 
     return retval;
 }
 
-class Infix {
-    int infix; // json: "infix"
+class Else {
+    int else_else; // json: "else"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "infix" : infix,
+            "else" : else_else,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Infix Infix_from_JSON(mixed json) {
-    Infix retval = Infix();
+Else Else_from_JSON(mixed json) {
+    Else retval = Else();
 
-    if (!intp(json["infix"])) error("Expected integer");
-    retval.infix = json["infix"];
+    if (!intp(json["else"])) error("Expected integer");
+    retval.else_else = json["else"];
 
     return retval;
 }
 
-class Init {
-    int init; // json: "init"
+class Enum {
+    int enum_enum; // json: "enum"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "init" : init,
+            "enum" : enum_enum,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Init Init_from_JSON(mixed json) {
-    Init retval = Init();
+Enum Enum_from_JSON(mixed json) {
+    Enum retval = Enum();
 
-    if (!intp(json["init"])) error("Expected integer");
-    retval.init = json["init"];
+    if (!intp(json["enum"])) error("Expected integer");
+    retval.enum_enum = json["enum"];
 
     return retval;
 }
 
-class Inout {
-    int inout; // json: "inout"
+class Extern {
+    int extern_extern; // json: "extern"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "inout" : inout,
+            "extern" : extern_extern,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Inout Inout_from_JSON(mixed json) {
-    Inout retval = Inout();
+Extern Extern_from_JSON(mixed json) {
+    Extern retval = Extern();
 
-    if (!intp(json["inout"])) error("Expected integer");
-    retval.inout = json["inout"];
+    if (!intp(json["extern"])) error("Expected integer");
+    retval.extern_extern = json["extern"];
 
     return retval;
 }
 
-class Instanceof {
-    int instanceof; // json: "instanceof"
+class FalseClass {
+    int false; // json: "false"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "instanceof" : instanceof,
+            "false" : false,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Instanceof Instanceof_from_JSON(mixed json) {
-    Instanceof retval = Instanceof();
+FalseClass FalseClass_from_JSON(mixed json) {
+    FalseClass retval = FalseClass();
 
-    if (!intp(json["instanceof"])) error("Expected integer");
-    retval.instanceof = json["instanceof"];
+    if (!intp(json["false"])) error("Expected integer");
+    retval.false = json["false"];
 
     return retval;
 }
 
-class Interface {
-    int interface; // json: "interface"
+class Final {
+    int final_final; // json: "final"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "interface" : interface,
+            "final" : final_final,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Interface Interface_from_JSON(mixed json) {
-    Interface retval = Interface();
+Final Final_from_JSON(mixed json) {
+    Final retval = Final();
 
-    if (!intp(json["interface"])) error("Expected integer");
-    retval.interface = json["interface"];
+    if (!intp(json["final"])) error("Expected integer");
+    retval.final_final = json["final"];
 
     return retval;
 }
 
-class Internal {
-    int internal; // json: "internal"
+class Float {
+    int float_float; // json: "float"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "internal" : internal,
+            "float" : float_float,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Internal Internal_from_JSON(mixed json) {
-    Internal retval = Internal();
-
-    if (!intp(json["internal"])) error("Expected integer");
-    retval.internal = json["internal"];
-
-    return retval;
-}
-
-class Default {
-    int default_default; // json: "default"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "default" : default_default,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Default Default_from_JSON(mixed json) {
-    Default retval = Default();
-
-    if (!intp(json["default"])) error("Expected integer");
-    retval.default_default = json["default"];
-
-    return retval;
-}
-
-class Do {
-    int do_do; // json: "do"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "do" : do_do,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Do Do_from_JSON(mixed json) {
-    Do retval = Do();
-
-    if (!intp(json["do"])) error("Expected integer");
-    retval.do_do = json["do"];
-
-    return retval;
-}
-
-class Else {
-    int else_else; // json: "else"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "else" : else_else,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Else Else_from_JSON(mixed json) {
-    Else retval = Else();
-
-    if (!intp(json["else"])) error("Expected integer");
-    retval.else_else = json["else"];
-
-    return retval;
-}
-
-class Enum {
-    int enum_enum; // json: "enum"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "enum" : enum_enum,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Enum Enum_from_JSON(mixed json) {
-    Enum retval = Enum();
-
-    if (!intp(json["enum"])) error("Expected integer");
-    retval.enum_enum = json["enum"];
-
-    return retval;
-}
-
-class Extern {
-    int extern_extern; // json: "extern"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "extern" : extern_extern,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Extern Extern_from_JSON(mixed json) {
-    Extern retval = Extern();
-
-    if (!intp(json["extern"])) error("Expected integer");
-    retval.extern_extern = json["extern"];
-
-    return retval;
-}
-
-class FalseClass {
-    int false; // json: "false"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "false" : false,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-FalseClass FalseClass_from_JSON(mixed json) {
-    FalseClass retval = FalseClass();
-
-    if (!intp(json["false"])) error("Expected integer");
-    retval.false = json["false"];
-
-    return retval;
-}
-
-class Final {
-    int final_final; // json: "final"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "final" : final_final,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Final Final_from_JSON(mixed json) {
-    Final retval = Final();
-
-    if (!intp(json["final"])) error("Expected integer");
-    retval.final_final = json["final"];
-
-    return retval;
-}
-
-class Float {
-    int float_float; // json: "float"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "float" : float_float,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Float Float_from_JSON(mixed json) {
-    Float retval = Float();
+Float Float_from_JSON(mixed json) {
+    Float retval = Float();
 
     if (!intp(json["float"])) error("Expected integer");
     retval.float_float = json["float"];
@@ -3514,71 +3302,16 @@ If If_from_JSON(mixed json) {
     return retval;
 }
 
-class Import {
-    int import_import; // json: "import"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "import" : import_import,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Import Import_from_JSON(mixed json) {
-    Import retval = Import();
-
-    if (!intp(json["import"])) error("Expected integer");
-    retval.import_import = json["import"];
-
-    return retval;
-}
-
-class Inline {
-    int inline_inline; // json: "inline"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "inline" : inline_inline,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Inline Inline_from_JSON(mixed json) {
-    Inline retval = Inline();
-
-    if (!intp(json["inline"])) error("Expected integer");
-    retval.inline_inline = json["inline"];
-
-    return retval;
-}
-
-class Int {
-    int int_int; // json: "int"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "int" : int_int,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Int Int_from_JSON(mixed json) {
-    Int retval = Int();
-
-    if (!intp(json["int"])) error("Expected integer");
-    retval.int_int = json["int"];
-
-    return retval;
-}
-
 class Obj3 {
     int                        dummy;                          // json: "dummy"
+    In                         in;                             // json: "in"
+    Indirect                   indirect;                       // json: "indirect"
+    Infix                      infix;                          // json: "infix"
+    Init                       init;                           // json: "init"
+    Inout                      inout;                          // json: "inout"
+    Instanceof                 instanceof;                     // json: "instanceof"
+    Interface                  interface;                      // json: "interface"
+    Internal                   internal;                       // json: "internal"
     Is                         is;                             // json: "is"
     IsoDateTimeOffsetConverter iso_date_time_offset_converter; // json: "IsoDateTimeOffsetConverter"
     Iterable                   iterable;                       // json: "iterable"
@@ -3629,44 +3362,24 @@ class Obj3 {
     NsError                    ns_error;                       // json: "NSError"
     NsString                   ns_string;                      // json: "NSString"
     Null                       null;                           // json: "NULL"
-    Nullptr                    nullptr;                        // json: "nullptr"
-    Number                     number;                         // json: "number"
+    Import                     obj3_import;                    // json: "import"
+    Inline                     obj3_inline;                    // json: "inline"
+    Int                        obj3_int;                       // json: "int"
     Lambda                     obj3_lambda;                    // json: "lambda"
     NoneClass                  obj3_none;                      // json: "none"
     NullClass                  obj3_null;                      // json: "null"
-    Object                     obj3_object;                    // json: "object"
-    Optional                   obj3_optional;                  // json: "optional"
-    Private                    obj3_private;                   // json: "private"
-    Protected                  obj3_protected;                 // json: "protected"
-    ProtocolClass              obj3_protocol;                  // json: "protocol"
-    ObjectMapper               object_mapper;                  // json: "ObjectMapper"
-    Of                         of;                             // json: "of"
-    Oneway                     oneway;                         // json: "oneway"
-    Open                       open;                           // json: "open"
-    Operator                   operator;                       // json: "operator"
-    Or                         or;                             // json: "or"
-    OrEq                       or_eq;                          // json: "or_eq"
-    Out                        out;                            // json: "out"
-    Override                   override;                       // json: "override"
-    Package                    package;                        // json: "package"
-    Params                     params;                         // json: "params"
-    Pass                       pass;                           // json: "pass"
-    Port                       port;                           // json: "port"
-    Postfix                    postfix;                        // json: "postfix"
-    Precedence                 precedence;                     // json: "precedence"
-    Prefix                     prefix;                         // json: "prefix"
-    Print                      print;                          // json: "print"
-    PrintMembers               print_members;                  // json: "printMembers"
-    Printf                     printf;                         // json: "printf"
-    Protocol                   protocol;                       // json: "Protocol"
-    SerializerProvider         serializer_provider;            // json: "SerializerProvider"
-    SimpleModule               simple_module;                  // json: "SimpleModule"
-    StdDeserializer            std_deserializer;               // json: "StdDeserializer"
-    StdSerializer              std_serializer;                 // json: "StdSerializer"
 
     string encode_json() {
         mapping(string:mixed) json = ([
             "dummy" : dummy,
+            "in" : in,
+            "indirect" : indirect,
+            "infix" : infix,
+            "init" : init,
+            "inout" : inout,
+            "instanceof" : instanceof,
+            "interface" : interface,
+            "internal" : internal,
             "is" : is,
             "IsoDateTimeOffsetConverter" : iso_date_time_offset_converter,
             "iterable" : iterable,
@@ -3717,40 +3430,12 @@ class Obj3 {
             "NSError" : ns_error,
             "NSString" : ns_string,
             "NULL" : null,
-            "nullptr" : nullptr,
-            "number" : number,
+            "import" : obj3_import,
+            "inline" : obj3_inline,
+            "int" : obj3_int,
             "lambda" : obj3_lambda,
             "none" : obj3_none,
             "null" : obj3_null,
-            "object" : obj3_object,
-            "optional" : obj3_optional,
-            "private" : obj3_private,
-            "protected" : obj3_protected,
-            "protocol" : obj3_protocol,
-            "ObjectMapper" : object_mapper,
-            "of" : of,
-            "oneway" : oneway,
-            "open" : open,
-            "operator" : operator,
-            "or" : or,
-            "or_eq" : or_eq,
-            "out" : out,
-            "override" : override,
-            "package" : package,
-            "params" : params,
-            "pass" : pass,
-            "port" : port,
-            "postfix" : postfix,
-            "precedence" : precedence,
-            "prefix" : prefix,
-            "print" : print,
-            "printMembers" : print_members,
-            "printf" : printf,
-            "Protocol" : protocol,
-            "SerializerProvider" : serializer_provider,
-            "SimpleModule" : simple_module,
-            "StdDeserializer" : std_deserializer,
-            "StdSerializer" : std_serializer,
         ]);
 
         return Standards.JSON.encode(json);
@@ -3762,6 +3447,22 @@ Obj3 Obj3_from_JSON(mixed json) {
 
     if (!intp(json["dummy"])) error("Expected integer");
     retval.dummy = json["dummy"];
+    if (!mappingp(json["in"])) error("Expected object");
+    retval.in = json["in"];
+    if (!mappingp(json["indirect"])) error("Expected object");
+    retval.indirect = json["indirect"];
+    if (!mappingp(json["infix"])) error("Expected object");
+    retval.infix = json["infix"];
+    if (!mappingp(json["init"])) error("Expected object");
+    retval.init = json["init"];
+    if (!mappingp(json["inout"])) error("Expected object");
+    retval.inout = json["inout"];
+    if (!mappingp(json["instanceof"])) error("Expected object");
+    retval.instanceof = json["instanceof"];
+    if (!mappingp(json["interface"])) error("Expected object");
+    retval.interface = json["interface"];
+    if (!mappingp(json["internal"])) error("Expected object");
+    retval.internal = json["internal"];
     if (!mappingp(json["is"])) error("Expected object");
     retval.is = json["is"];
     if (!mappingp(json["IsoDateTimeOffsetConverter"])) error("Expected object");
@@ -3862,74 +3563,186 @@ Obj3 Obj3_from_JSON(mixed json) {
     retval.ns_string = json["NSString"];
     if (!mappingp(json["NULL"])) error("Expected object");
     retval.null = json["NULL"];
-    if (!mappingp(json["nullptr"])) error("Expected object");
-    retval.nullptr = json["nullptr"];
-    if (!mappingp(json["number"])) error("Expected object");
-    retval.number = json["number"];
+    if (!mappingp(json["import"])) error("Expected object");
+    retval.obj3_import = json["import"];
+    if (!mappingp(json["inline"])) error("Expected object");
+    retval.obj3_inline = json["inline"];
+    if (!mappingp(json["int"])) error("Expected object");
+    retval.obj3_int = json["int"];
     if (!mappingp(json["lambda"])) error("Expected object");
     retval.obj3_lambda = json["lambda"];
     if (!mappingp(json["none"])) error("Expected object");
     retval.obj3_none = json["none"];
     if (!mappingp(json["null"])) error("Expected object");
     retval.obj3_null = json["null"];
-    if (!mappingp(json["object"])) error("Expected object");
-    retval.obj3_object = json["object"];
-    if (!mappingp(json["optional"])) error("Expected object");
-    retval.obj3_optional = json["optional"];
-    if (!mappingp(json["private"])) error("Expected object");
-    retval.obj3_private = json["private"];
-    if (!mappingp(json["protected"])) error("Expected object");
-    retval.obj3_protected = json["protected"];
-    if (!mappingp(json["protocol"])) error("Expected object");
-    retval.obj3_protocol = json["protocol"];
-    if (!mappingp(json["ObjectMapper"])) error("Expected object");
-    retval.object_mapper = json["ObjectMapper"];
-    if (!mappingp(json["of"])) error("Expected object");
-    retval.of = json["of"];
-    if (!mappingp(json["oneway"])) error("Expected object");
-    retval.oneway = json["oneway"];
-    if (!mappingp(json["open"])) error("Expected object");
-    retval.open = json["open"];
-    if (!mappingp(json["operator"])) error("Expected object");
-    retval.operator = json["operator"];
-    if (!mappingp(json["or"])) error("Expected object");
-    retval.or = json["or"];
-    if (!mappingp(json["or_eq"])) error("Expected object");
-    retval.or_eq = json["or_eq"];
-    if (!mappingp(json["out"])) error("Expected object");
-    retval.out = json["out"];
-    if (!mappingp(json["override"])) error("Expected object");
-    retval.override = json["override"];
-    if (!mappingp(json["package"])) error("Expected object");
-    retval.package = json["package"];
-    if (!mappingp(json["params"])) error("Expected object");
-    retval.params = json["params"];
-    if (!mappingp(json["pass"])) error("Expected object");
-    retval.pass = json["pass"];
-    if (!mappingp(json["port"])) error("Expected object");
-    retval.port = json["port"];
-    if (!mappingp(json["postfix"])) error("Expected object");
-    retval.postfix = json["postfix"];
-    if (!mappingp(json["precedence"])) error("Expected object");
-    retval.precedence = json["precedence"];
-    if (!mappingp(json["prefix"])) error("Expected object");
-    retval.prefix = json["prefix"];
-    if (!mappingp(json["print"])) error("Expected object");
-    retval.print = json["print"];
-    if (!mappingp(json["printMembers"])) error("Expected object");
-    retval.print_members = json["printMembers"];
-    if (!mappingp(json["printf"])) error("Expected object");
-    retval.printf = json["printf"];
-    if (!mappingp(json["Protocol"])) error("Expected object");
-    retval.protocol = json["Protocol"];
-    if (!mappingp(json["SerializerProvider"])) error("Expected object");
-    retval.serializer_provider = json["SerializerProvider"];
-    if (!mappingp(json["SimpleModule"])) error("Expected object");
-    retval.simple_module = json["SimpleModule"];
-    if (!mappingp(json["StdDeserializer"])) error("Expected object");
-    retval.std_deserializer = json["StdDeserializer"];
-    if (!mappingp(json["StdSerializer"])) error("Expected object");
-    retval.std_serializer = json["StdSerializer"];
+
+    return retval;
+}
+
+class In {
+    int in; // json: "in"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "in" : in,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+In In_from_JSON(mixed json) {
+    In retval = In();
+
+    if (!intp(json["in"])) error("Expected integer");
+    retval.in = json["in"];
+
+    return retval;
+}
+
+class Indirect {
+    int indirect; // json: "indirect"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "indirect" : indirect,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Indirect Indirect_from_JSON(mixed json) {
+    Indirect retval = Indirect();
+
+    if (!intp(json["indirect"])) error("Expected integer");
+    retval.indirect = json["indirect"];
+
+    return retval;
+}
+
+class Infix {
+    int infix; // json: "infix"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "infix" : infix,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Infix Infix_from_JSON(mixed json) {
+    Infix retval = Infix();
+
+    if (!intp(json["infix"])) error("Expected integer");
+    retval.infix = json["infix"];
+
+    return retval;
+}
+
+class Init {
+    int init; // json: "init"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "init" : init,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Init Init_from_JSON(mixed json) {
+    Init retval = Init();
+
+    if (!intp(json["init"])) error("Expected integer");
+    retval.init = json["init"];
+
+    return retval;
+}
+
+class Inout {
+    int inout; // json: "inout"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "inout" : inout,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Inout Inout_from_JSON(mixed json) {
+    Inout retval = Inout();
+
+    if (!intp(json["inout"])) error("Expected integer");
+    retval.inout = json["inout"];
+
+    return retval;
+}
+
+class Instanceof {
+    int instanceof; // json: "instanceof"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "instanceof" : instanceof,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Instanceof Instanceof_from_JSON(mixed json) {
+    Instanceof retval = Instanceof();
+
+    if (!intp(json["instanceof"])) error("Expected integer");
+    retval.instanceof = json["instanceof"];
+
+    return retval;
+}
+
+class Interface {
+    int interface; // json: "interface"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "interface" : interface,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Interface Interface_from_JSON(mixed json) {
+    Interface retval = Interface();
+
+    if (!intp(json["interface"])) error("Expected integer");
+    retval.interface = json["interface"];
+
+    return retval;
+}
+
+class Internal {
+    int internal; // json: "internal"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "internal" : internal,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Internal Internal_from_JSON(mixed json) {
+    Internal retval = Internal();
+
+    if (!intp(json["internal"])) error("Expected integer");
+    retval.internal = json["internal"];
 
     return retval;
 }
@@ -4983,44 +4796,65 @@ Null Null_from_JSON(mixed json) {
     return retval;
 }
 
-class Nullptr {
-    int nullptr; // json: "nullptr"
+class Import {
+    int import_import; // json: "import"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "nullptr" : nullptr,
+            "import" : import_import,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Nullptr Nullptr_from_JSON(mixed json) {
-    Nullptr retval = Nullptr();
+Import Import_from_JSON(mixed json) {
+    Import retval = Import();
 
-    if (!intp(json["nullptr"])) error("Expected integer");
-    retval.nullptr = json["nullptr"];
+    if (!intp(json["import"])) error("Expected integer");
+    retval.import_import = json["import"];
 
     return retval;
 }
 
-class Number {
-    int number; // json: "number"
+class Inline {
+    int inline_inline; // json: "inline"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "number" : number,
+            "inline" : inline_inline,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Number Number_from_JSON(mixed json) {
-    Number retval = Number();
+Inline Inline_from_JSON(mixed json) {
+    Inline retval = Inline();
 
-    if (!intp(json["number"])) error("Expected integer");
-    retval.number = json["number"];
+    if (!intp(json["inline"])) error("Expected integer");
+    retval.inline_inline = json["inline"];
+
+    return retval;
+}
+
+class Int {
+    int int_int; // json: "int"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "int" : int_int,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Int Int_from_JSON(mixed json) {
+    Int retval = Int();
+
+    if (!intp(json["int"])) error("Expected integer");
+    retval.int_int = json["int"];
 
     return retval;
 }
@@ -5088,50 +4922,369 @@ NullClass NullClass_from_JSON(mixed json) {
     return retval;
 }
 
-class Object {
-    int object_object; // json: "object"
+class Obj4 {
+    int                dummy;               // json: "dummy"
+    Nullptr            nullptr;             // json: "nullptr"
+    Number             number;              // json: "number"
+    Object             obj4_object;         // json: "object"
+    Optional           obj4_optional;       // json: "optional"
+    Private            obj4_private;        // json: "private"
+    Protected          obj4_protected;      // json: "protected"
+    ProtocolClass      obj4_protocol;       // json: "protocol"
+    Public             obj4_public;         // json: "public"
+    Return             obj4_return;         // json: "return"
+    SelfClass          obj4_self;           // json: "self"
+    Static             obj4_static;         // json: "static"
+    ObjectMapper       object_mapper;       // json: "ObjectMapper"
+    Of                 of;                  // json: "of"
+    Oneway             oneway;              // json: "oneway"
+    Open               open;                // json: "open"
+    Operator           operator;            // json: "operator"
+    Or                 or;                  // json: "or"
+    OrEq               or_eq;               // json: "or_eq"
+    Out                out;                 // json: "out"
+    Override           override;            // json: "override"
+    Package            package;             // json: "package"
+    Params             params;              // json: "params"
+    Pass               pass;                // json: "pass"
+    Port               port;                // json: "port"
+    Postfix            postfix;             // json: "postfix"
+    Precedence         precedence;          // json: "precedence"
+    Prefix             prefix;              // json: "prefix"
+    Print              print;               // json: "print"
+    PrintMembers       print_members;       // json: "printMembers"
+    Printf             printf;              // json: "printf"
+    Protocol           protocol;            // json: "Protocol"
+    Quicktype          quicktype;           // json: "quicktype"
+    Raise              raise;               // json: "raise"
+    Range              range;               // json: "range"
+    Readonly           readonly;            // json: "readonly"
+    Ref                ref;                 // json: "ref"
+    RegExp             reg_exp;             // json: "RegExp"
+    Register           register;            // json: "register"
+    ReinterpretCast    reinterpret_cast;    // json: "reinterpret_cast"
+    Repeat             repeat;              // json: "repeat"
+    Require            require;             // json: "require"
+    Required           required;            // json: "required"
+    Requires           requires;            // json: "requires"
+    Restrict           restrict;            // json: "restrict"
+    Retain             retain;              // json: "retain"
+    Rethrows           rethrows;            // json: "rethrows"
+    Right              right;               // json: "right"
+    RuntimeType        runtime_type;        // json: "runtimeType"
+    S                  s;                   // json: "s"
+    Sbyte              sbyte;               // json: "sbyte"
+    Sealed             sealed;              // json: "sealed"
+    Sel                sel;                 // json: "SEL"
+    Select             select;              // json: "select"
+    Self               self;                // json: "Self"
+    Serialize          serialize;           // json: "serialize"
+    SerializerProvider serializer_provider; // json: "SerializerProvider"
+    Set                set;                 // json: "set"
+    Short              short;               // json: "short"
+    Signed             signed;              // json: "signed"
+    SimpleModule       simple_module;       // json: "SimpleModule"
+    Sizeof             sizeof;              // json: "sizeof"
+    Stackalloc         stackalloc;          // json: "stackalloc"
+    StandardsClass     standards;           // json: "Standards"
+    StaticAssert       static_assert;       // json: "static_assert"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "object" : object_object,
+            "dummy" : dummy,
+            "nullptr" : nullptr,
+            "number" : number,
+            "object" : obj4_object,
+            "optional" : obj4_optional,
+            "private" : obj4_private,
+            "protected" : obj4_protected,
+            "protocol" : obj4_protocol,
+            "public" : obj4_public,
+            "return" : obj4_return,
+            "self" : obj4_self,
+            "static" : obj4_static,
+            "ObjectMapper" : object_mapper,
+            "of" : of,
+            "oneway" : oneway,
+            "open" : open,
+            "operator" : operator,
+            "or" : or,
+            "or_eq" : or_eq,
+            "out" : out,
+            "override" : override,
+            "package" : package,
+            "params" : params,
+            "pass" : pass,
+            "port" : port,
+            "postfix" : postfix,
+            "precedence" : precedence,
+            "prefix" : prefix,
+            "print" : print,
+            "printMembers" : print_members,
+            "printf" : printf,
+            "Protocol" : protocol,
+            "quicktype" : quicktype,
+            "raise" : raise,
+            "range" : range,
+            "readonly" : readonly,
+            "ref" : ref,
+            "RegExp" : reg_exp,
+            "register" : register,
+            "reinterpret_cast" : reinterpret_cast,
+            "repeat" : repeat,
+            "require" : require,
+            "required" : required,
+            "requires" : requires,
+            "restrict" : restrict,
+            "retain" : retain,
+            "rethrows" : rethrows,
+            "right" : right,
+            "runtimeType" : runtime_type,
+            "s" : s,
+            "sbyte" : sbyte,
+            "sealed" : sealed,
+            "SEL" : sel,
+            "select" : select,
+            "Self" : self,
+            "serialize" : serialize,
+            "SerializerProvider" : serializer_provider,
+            "set" : set,
+            "short" : short,
+            "signed" : signed,
+            "SimpleModule" : simple_module,
+            "sizeof" : sizeof,
+            "stackalloc" : stackalloc,
+            "Standards" : standards,
+            "static_assert" : static_assert,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Object Object_from_JSON(mixed json) {
-    Object retval = Object();
+Obj4 Obj4_from_JSON(mixed json) {
+    Obj4 retval = Obj4();
 
-    if (!intp(json["object"])) error("Expected integer");
-    retval.object_object = json["object"];
+    if (!intp(json["dummy"])) error("Expected integer");
+    retval.dummy = json["dummy"];
+    if (!mappingp(json["nullptr"])) error("Expected object");
+    retval.nullptr = json["nullptr"];
+    if (!mappingp(json["number"])) error("Expected object");
+    retval.number = json["number"];
+    if (!mappingp(json["object"])) error("Expected object");
+    retval.obj4_object = json["object"];
+    if (!mappingp(json["optional"])) error("Expected object");
+    retval.obj4_optional = json["optional"];
+    if (!mappingp(json["private"])) error("Expected object");
+    retval.obj4_private = json["private"];
+    if (!mappingp(json["protected"])) error("Expected object");
+    retval.obj4_protected = json["protected"];
+    if (!mappingp(json["protocol"])) error("Expected object");
+    retval.obj4_protocol = json["protocol"];
+    if (!mappingp(json["public"])) error("Expected object");
+    retval.obj4_public = json["public"];
+    if (!mappingp(json["return"])) error("Expected object");
+    retval.obj4_return = json["return"];
+    if (!mappingp(json["self"])) error("Expected object");
+    retval.obj4_self = json["self"];
+    if (!mappingp(json["static"])) error("Expected object");
+    retval.obj4_static = json["static"];
+    if (!mappingp(json["ObjectMapper"])) error("Expected object");
+    retval.object_mapper = json["ObjectMapper"];
+    if (!mappingp(json["of"])) error("Expected object");
+    retval.of = json["of"];
+    if (!mappingp(json["oneway"])) error("Expected object");
+    retval.oneway = json["oneway"];
+    if (!mappingp(json["open"])) error("Expected object");
+    retval.open = json["open"];
+    if (!mappingp(json["operator"])) error("Expected object");
+    retval.operator = json["operator"];
+    if (!mappingp(json["or"])) error("Expected object");
+    retval.or = json["or"];
+    if (!mappingp(json["or_eq"])) error("Expected object");
+    retval.or_eq = json["or_eq"];
+    if (!mappingp(json["out"])) error("Expected object");
+    retval.out = json["out"];
+    if (!mappingp(json["override"])) error("Expected object");
+    retval.override = json["override"];
+    if (!mappingp(json["package"])) error("Expected object");
+    retval.package = json["package"];
+    if (!mappingp(json["params"])) error("Expected object");
+    retval.params = json["params"];
+    if (!mappingp(json["pass"])) error("Expected object");
+    retval.pass = json["pass"];
+    if (!mappingp(json["port"])) error("Expected object");
+    retval.port = json["port"];
+    if (!mappingp(json["postfix"])) error("Expected object");
+    retval.postfix = json["postfix"];
+    if (!mappingp(json["precedence"])) error("Expected object");
+    retval.precedence = json["precedence"];
+    if (!mappingp(json["prefix"])) error("Expected object");
+    retval.prefix = json["prefix"];
+    if (!mappingp(json["print"])) error("Expected object");
+    retval.print = json["print"];
+    if (!mappingp(json["printMembers"])) error("Expected object");
+    retval.print_members = json["printMembers"];
+    if (!mappingp(json["printf"])) error("Expected object");
+    retval.printf = json["printf"];
+    if (!mappingp(json["Protocol"])) error("Expected object");
+    retval.protocol = json["Protocol"];
+    if (!mappingp(json["quicktype"])) error("Expected object");
+    retval.quicktype = json["quicktype"];
+    if (!mappingp(json["raise"])) error("Expected object");
+    retval.raise = json["raise"];
+    if (!mappingp(json["range"])) error("Expected object");
+    retval.range = json["range"];
+    if (!mappingp(json["readonly"])) error("Expected object");
+    retval.readonly = json["readonly"];
+    if (!mappingp(json["ref"])) error("Expected object");
+    retval.ref = json["ref"];
+    if (!mappingp(json["RegExp"])) error("Expected object");
+    retval.reg_exp = json["RegExp"];
+    if (!mappingp(json["register"])) error("Expected object");
+    retval.register = json["register"];
+    if (!mappingp(json["reinterpret_cast"])) error("Expected object");
+    retval.reinterpret_cast = json["reinterpret_cast"];
+    if (!mappingp(json["repeat"])) error("Expected object");
+    retval.repeat = json["repeat"];
+    if (!mappingp(json["require"])) error("Expected object");
+    retval.require = json["require"];
+    if (!mappingp(json["required"])) error("Expected object");
+    retval.required = json["required"];
+    if (!mappingp(json["requires"])) error("Expected object");
+    retval.requires = json["requires"];
+    if (!mappingp(json["restrict"])) error("Expected object");
+    retval.restrict = json["restrict"];
+    if (!mappingp(json["retain"])) error("Expected object");
+    retval.retain = json["retain"];
+    if (!mappingp(json["rethrows"])) error("Expected object");
+    retval.rethrows = json["rethrows"];
+    if (!mappingp(json["right"])) error("Expected object");
+    retval.right = json["right"];
+    if (!mappingp(json["runtimeType"])) error("Expected object");
+    retval.runtime_type = json["runtimeType"];
+    if (!mappingp(json["s"])) error("Expected object");
+    retval.s = json["s"];
+    if (!mappingp(json["sbyte"])) error("Expected object");
+    retval.sbyte = json["sbyte"];
+    if (!mappingp(json["sealed"])) error("Expected object");
+    retval.sealed = json["sealed"];
+    if (!mappingp(json["SEL"])) error("Expected object");
+    retval.sel = json["SEL"];
+    if (!mappingp(json["select"])) error("Expected object");
+    retval.select = json["select"];
+    if (!mappingp(json["Self"])) error("Expected object");
+    retval.self = json["Self"];
+    if (!mappingp(json["serialize"])) error("Expected object");
+    retval.serialize = json["serialize"];
+    if (!mappingp(json["SerializerProvider"])) error("Expected object");
+    retval.serializer_provider = json["SerializerProvider"];
+    if (!mappingp(json["set"])) error("Expected object");
+    retval.set = json["set"];
+    if (!mappingp(json["short"])) error("Expected object");
+    retval.short = json["short"];
+    if (!mappingp(json["signed"])) error("Expected object");
+    retval.signed = json["signed"];
+    if (!mappingp(json["SimpleModule"])) error("Expected object");
+    retval.simple_module = json["SimpleModule"];
+    if (!mappingp(json["sizeof"])) error("Expected object");
+    retval.sizeof = json["sizeof"];
+    if (!mappingp(json["stackalloc"])) error("Expected object");
+    retval.stackalloc = json["stackalloc"];
+    if (!mappingp(json["Standards"])) error("Expected object");
+    retval.standards = json["Standards"];
+    if (!mappingp(json["static_assert"])) error("Expected object");
+    retval.static_assert = json["static_assert"];
 
     return retval;
 }
 
-class Optional {
-    int optional_optional; // json: "optional"
+class Nullptr {
+    int nullptr; // json: "nullptr"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "optional" : optional_optional,
+            "nullptr" : nullptr,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Optional Optional_from_JSON(mixed json) {
-    Optional retval = Optional();
+Nullptr Nullptr_from_JSON(mixed json) {
+    Nullptr retval = Nullptr();
 
-    if (!intp(json["optional"])) error("Expected integer");
-    retval.optional_optional = json["optional"];
+    if (!intp(json["nullptr"])) error("Expected integer");
+    retval.nullptr = json["nullptr"];
 
     return retval;
 }
 
-class Private {
-    int private_private; // json: "private"
+class Number {
+    int number; // json: "number"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "number" : number,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Number Number_from_JSON(mixed json) {
+    Number retval = Number();
+
+    if (!intp(json["number"])) error("Expected integer");
+    retval.number = json["number"];
+
+    return retval;
+}
+
+class Object {
+    int object_object; // json: "object"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "object" : object_object,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Object Object_from_JSON(mixed json) {
+    Object retval = Object();
+
+    if (!intp(json["object"])) error("Expected integer");
+    retval.object_object = json["object"];
+
+    return retval;
+}
+
+class Optional {
+    int optional_optional; // json: "optional"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "optional" : optional_optional,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Optional Optional_from_JSON(mixed json) {
+    Optional retval = Optional();
+
+    if (!intp(json["optional"])) error("Expected integer");
+    retval.optional_optional = json["optional"];
+
+    return retval;
+}
+
+class Private {
+    int private_private; // json: "private"
 
     string encode_json() {
         mapping(string:mixed) json = ([
@@ -5193,6 +5346,90 @@ ProtocolClass ProtocolClass_from_JSON(mixed json) {
     return retval;
 }
 
+class Public {
+    int public_public; // json: "public"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "public" : public_public,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Public Public_from_JSON(mixed json) {
+    Public retval = Public();
+
+    if (!intp(json["public"])) error("Expected integer");
+    retval.public_public = json["public"];
+
+    return retval;
+}
+
+class Return {
+    int return_return; // json: "return"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "return" : return_return,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Return Return_from_JSON(mixed json) {
+    Return retval = Return();
+
+    if (!intp(json["return"])) error("Expected integer");
+    retval.return_return = json["return"];
+
+    return retval;
+}
+
+class SelfClass {
+    int self; // json: "self"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "self" : self,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+SelfClass SelfClass_from_JSON(mixed json) {
+    SelfClass retval = SelfClass();
+
+    if (!intp(json["self"])) error("Expected integer");
+    retval.self = json["self"];
+
+    return retval;
+}
+
+class Static {
+    int static_static; // json: "static"
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+            "static" : static_static,
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Static Static_from_JSON(mixed json) {
+    Static retval = Static();
+
+    if (!intp(json["static"])) error("Expected integer");
+    retval.static_static = json["static"];
+
+    return retval;
+}
+
 class ObjectMapper {
     int object_mapper; // json: "ObjectMapper"
 
@@ -5613,1272 +5850,1190 @@ Protocol Protocol_from_JSON(mixed json) {
     return retval;
 }
 
-class SerializerProvider {
-    int serializer_provider; // json: "SerializerProvider"
+class Quicktype {
+    int quicktype; // json: "quicktype"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "SerializerProvider" : serializer_provider,
+            "quicktype" : quicktype,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-SerializerProvider SerializerProvider_from_JSON(mixed json) {
-    SerializerProvider retval = SerializerProvider();
+Quicktype Quicktype_from_JSON(mixed json) {
+    Quicktype retval = Quicktype();
 
-    if (!intp(json["SerializerProvider"])) error("Expected integer");
-    retval.serializer_provider = json["SerializerProvider"];
+    if (!intp(json["quicktype"])) error("Expected integer");
+    retval.quicktype = json["quicktype"];
 
     return retval;
 }
 
-class SimpleModule {
-    int simple_module; // json: "SimpleModule"
+class Raise {
+    int raise; // json: "raise"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "SimpleModule" : simple_module,
+            "raise" : raise,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-SimpleModule SimpleModule_from_JSON(mixed json) {
-    SimpleModule retval = SimpleModule();
+Raise Raise_from_JSON(mixed json) {
+    Raise retval = Raise();
 
-    if (!intp(json["SimpleModule"])) error("Expected integer");
-    retval.simple_module = json["SimpleModule"];
+    if (!intp(json["raise"])) error("Expected integer");
+    retval.raise = json["raise"];
 
     return retval;
 }
 
-class StdDeserializer {
-    int std_deserializer; // json: "StdDeserializer"
+class Range {
+    int range; // json: "range"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "StdDeserializer" : std_deserializer,
+            "range" : range,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-StdDeserializer StdDeserializer_from_JSON(mixed json) {
-    StdDeserializer retval = StdDeserializer();
+Range Range_from_JSON(mixed json) {
+    Range retval = Range();
 
-    if (!intp(json["StdDeserializer"])) error("Expected integer");
-    retval.std_deserializer = json["StdDeserializer"];
+    if (!intp(json["range"])) error("Expected integer");
+    retval.range = json["range"];
 
     return retval;
 }
 
-class StdSerializer {
-    int std_serializer; // json: "StdSerializer"
+class Readonly {
+    int readonly; // json: "readonly"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "StdSerializer" : std_serializer,
+            "readonly" : readonly,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-StdSerializer StdSerializer_from_JSON(mixed json) {
-    StdSerializer retval = StdSerializer();
+Readonly Readonly_from_JSON(mixed json) {
+    Readonly retval = Readonly();
 
-    if (!intp(json["StdSerializer"])) error("Expected integer");
-    retval.std_serializer = json["StdSerializer"];
+    if (!intp(json["readonly"])) error("Expected integer");
+    retval.readonly = json["readonly"];
 
     return retval;
 }
 
-class Obj4 {
-    int               dummy;               // json: "dummy"
-    Public            obj4_public;         // json: "public"
-    Return            obj4_return;         // json: "return"
-    SelfClass         obj4_self;           // json: "self"
-    Static            obj4_static;         // json: "static"
-    String            obj4_string;         // json: "string"
-    Switch            obj4_switch;         // json: "switch"
-    TrueClass         obj4_true;           // json: "true"
-    TypeClass         obj4_type;           // json: "type"
-    Typedef           obj4_typedef;        // json: "typedef"
-    Typeof            obj4_typeof;         // json: "typeof"
-    Quicktype         quicktype;           // json: "quicktype"
-    Raise             raise;               // json: "raise"
-    Range             range;               // json: "range"
-    Readonly          readonly;            // json: "readonly"
-    Ref               ref;                 // json: "ref"
-    RegExp            reg_exp;             // json: "RegExp"
-    Register          register;            // json: "register"
-    ReinterpretCast   reinterpret_cast;    // json: "reinterpret_cast"
-    Repeat            repeat;              // json: "repeat"
-    Require           require;             // json: "require"
-    Required          required;            // json: "required"
-    Requires          requires;            // json: "requires"
-    Restrict          restrict;            // json: "restrict"
-    Retain            retain;              // json: "retain"
-    Rethrows          rethrows;            // json: "rethrows"
-    Right             right;               // json: "right"
-    RuntimeType       runtime_type;        // json: "runtimeType"
-    S                 s;                   // json: "s"
-    Sbyte             sbyte;               // json: "sbyte"
-    Sealed            sealed;              // json: "sealed"
-    Sel               sel;                 // json: "SEL"
-    Select            select;              // json: "select"
-    Self              self;                // json: "Self"
-    Serialize         serialize;           // json: "serialize"
-    Set               set;                 // json: "set"
-    Short             short;               // json: "short"
-    Signed            signed;              // json: "signed"
-    Sizeof            sizeof;              // json: "sizeof"
-    Stackalloc        stackalloc;          // json: "stackalloc"
-    StandardsClass    standards;           // json: "Standards"
-    StaticAssert      static_assert;       // json: "static_assert"
-    StaticCast        static_cast;         // json: "static_cast"
-    Strictfp          strictfp;            // json: "strictfp"
-    Struct            struct;              // json: "struct"
-    Subscript         subscript;           // json: "subscript"
-    Super             super;               // json: "super"
-    Symbol            symbol;              // json: "symbol"
-    Synchronized      synchronized;        // json: "synchronized"
-    System            system;              // json: "system"
-    Template          template;            // json: "template"
-    Then              then;                // json: "then"
-    This              this;                // json: "this"
-    ThreadLocal       thread_local;        // json: "thread_local"
-    Throw             throw;               // json: "throw"
-    Throws            throws;              // json: "throws"
-    TimeOnly          time_only;           // json: "TimeOnly"
-    TimeOnlyConverter time_only_converter; // json: "TimeOnlyConverter"
-    ToJson            to_json;             // json: "to_json"
-    ToString          to_string;           // json: "toString"
-    TopLevelClass     top_level;           // json: "top_level"
-    Transient         transient;           // json: "transient"
-    True              true;                // json: "True"
-    Try               try;                 // json: "try"
-    Type              type;                // json: "Type"
-    Typealias         typealias;           // json: "typealias"
-    Typeid            typeid;              // json: "typeid"
-    Typename          typename;            // json: "typename"
-    Uint              uint;                // json: "uint"
-    Ulong             ulong;               // json: "ulong"
-    Unchecked         unchecked;           // json: "unchecked"
-    Undefined         undefined;           // json: "undefined"
+class Ref {
+    int ref; // json: "ref"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "dummy" : dummy,
-            "public" : obj4_public,
-            "return" : obj4_return,
-            "self" : obj4_self,
-            "static" : obj4_static,
-            "string" : obj4_string,
-            "switch" : obj4_switch,
-            "true" : obj4_true,
-            "type" : obj4_type,
-            "typedef" : obj4_typedef,
-            "typeof" : obj4_typeof,
-            "quicktype" : quicktype,
-            "raise" : raise,
-            "range" : range,
-            "readonly" : readonly,
             "ref" : ref,
-            "RegExp" : reg_exp,
-            "register" : register,
-            "reinterpret_cast" : reinterpret_cast,
-            "repeat" : repeat,
-            "require" : require,
-            "required" : required,
-            "requires" : requires,
-            "restrict" : restrict,
-            "retain" : retain,
-            "rethrows" : rethrows,
-            "right" : right,
-            "runtimeType" : runtime_type,
-            "s" : s,
-            "sbyte" : sbyte,
-            "sealed" : sealed,
-            "SEL" : sel,
-            "select" : select,
-            "Self" : self,
-            "serialize" : serialize,
-            "set" : set,
-            "short" : short,
-            "signed" : signed,
-            "sizeof" : sizeof,
-            "stackalloc" : stackalloc,
-            "Standards" : standards,
-            "static_assert" : static_assert,
-            "static_cast" : static_cast,
-            "strictfp" : strictfp,
-            "struct" : struct,
-            "subscript" : subscript,
-            "super" : super,
-            "symbol" : symbol,
-            "synchronized" : synchronized,
-            "system" : system,
-            "template" : template,
-            "then" : then,
-            "this" : this,
-            "thread_local" : thread_local,
-            "throw" : throw,
-            "throws" : throws,
-            "TimeOnly" : time_only,
-            "TimeOnlyConverter" : time_only_converter,
-            "to_json" : to_json,
-            "toString" : to_string,
-            "top_level" : top_level,
-            "transient" : transient,
-            "True" : true,
-            "try" : try,
-            "Type" : type,
-            "typealias" : typealias,
-            "typeid" : typeid,
-            "typename" : typename,
-            "uint" : uint,
-            "ulong" : ulong,
-            "unchecked" : unchecked,
-            "undefined" : undefined,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Obj4 Obj4_from_JSON(mixed json) {
-    Obj4 retval = Obj4();
+Ref Ref_from_JSON(mixed json) {
+    Ref retval = Ref();
 
-    if (!intp(json["dummy"])) error("Expected integer");
-    retval.dummy = json["dummy"];
-    if (!mappingp(json["public"])) error("Expected object");
-    retval.obj4_public = json["public"];
-    if (!mappingp(json["return"])) error("Expected object");
-    retval.obj4_return = json["return"];
-    if (!mappingp(json["self"])) error("Expected object");
-    retval.obj4_self = json["self"];
-    if (!mappingp(json["static"])) error("Expected object");
-    retval.obj4_static = json["static"];
-    if (!mappingp(json["string"])) error("Expected object");
-    retval.obj4_string = json["string"];
-    if (!mappingp(json["switch"])) error("Expected object");
-    retval.obj4_switch = json["switch"];
-    if (!mappingp(json["true"])) error("Expected object");
-    retval.obj4_true = json["true"];
-    if (!mappingp(json["type"])) error("Expected object");
-    retval.obj4_type = json["type"];
-    if (!mappingp(json["typedef"])) error("Expected object");
-    retval.obj4_typedef = json["typedef"];
-    if (!mappingp(json["typeof"])) error("Expected object");
-    retval.obj4_typeof = json["typeof"];
-    if (!mappingp(json["quicktype"])) error("Expected object");
-    retval.quicktype = json["quicktype"];
-    if (!mappingp(json["raise"])) error("Expected object");
-    retval.raise = json["raise"];
-    if (!mappingp(json["range"])) error("Expected object");
-    retval.range = json["range"];
-    if (!mappingp(json["readonly"])) error("Expected object");
-    retval.readonly = json["readonly"];
-    if (!mappingp(json["ref"])) error("Expected object");
+    if (!intp(json["ref"])) error("Expected integer");
     retval.ref = json["ref"];
-    if (!mappingp(json["RegExp"])) error("Expected object");
-    retval.reg_exp = json["RegExp"];
-    if (!mappingp(json["register"])) error("Expected object");
-    retval.register = json["register"];
-    if (!mappingp(json["reinterpret_cast"])) error("Expected object");
-    retval.reinterpret_cast = json["reinterpret_cast"];
-    if (!mappingp(json["repeat"])) error("Expected object");
-    retval.repeat = json["repeat"];
-    if (!mappingp(json["require"])) error("Expected object");
-    retval.require = json["require"];
-    if (!mappingp(json["required"])) error("Expected object");
-    retval.required = json["required"];
-    if (!mappingp(json["requires"])) error("Expected object");
-    retval.requires = json["requires"];
-    if (!mappingp(json["restrict"])) error("Expected object");
-    retval.restrict = json["restrict"];
-    if (!mappingp(json["retain"])) error("Expected object");
-    retval.retain = json["retain"];
-    if (!mappingp(json["rethrows"])) error("Expected object");
-    retval.rethrows = json["rethrows"];
-    if (!mappingp(json["right"])) error("Expected object");
-    retval.right = json["right"];
-    if (!mappingp(json["runtimeType"])) error("Expected object");
-    retval.runtime_type = json["runtimeType"];
-    if (!mappingp(json["s"])) error("Expected object");
-    retval.s = json["s"];
-    if (!mappingp(json["sbyte"])) error("Expected object");
-    retval.sbyte = json["sbyte"];
-    if (!mappingp(json["sealed"])) error("Expected object");
-    retval.sealed = json["sealed"];
-    if (!mappingp(json["SEL"])) error("Expected object");
-    retval.sel = json["SEL"];
-    if (!mappingp(json["select"])) error("Expected object");
-    retval.select = json["select"];
-    if (!mappingp(json["Self"])) error("Expected object");
-    retval.self = json["Self"];
-    if (!mappingp(json["serialize"])) error("Expected object");
-    retval.serialize = json["serialize"];
-    if (!mappingp(json["set"])) error("Expected object");
-    retval.set = json["set"];
-    if (!mappingp(json["short"])) error("Expected object");
-    retval.short = json["short"];
-    if (!mappingp(json["signed"])) error("Expected object");
-    retval.signed = json["signed"];
-    if (!mappingp(json["sizeof"])) error("Expected object");
-    retval.sizeof = json["sizeof"];
-    if (!mappingp(json["stackalloc"])) error("Expected object");
-    retval.stackalloc = json["stackalloc"];
-    if (!mappingp(json["Standards"])) error("Expected object");
-    retval.standards = json["Standards"];
-    if (!mappingp(json["static_assert"])) error("Expected object");
-    retval.static_assert = json["static_assert"];
-    if (!mappingp(json["static_cast"])) error("Expected object");
-    retval.static_cast = json["static_cast"];
-    if (!mappingp(json["strictfp"])) error("Expected object");
-    retval.strictfp = json["strictfp"];
-    if (!mappingp(json["struct"])) error("Expected object");
-    retval.struct = json["struct"];
-    if (!mappingp(json["subscript"])) error("Expected object");
-    retval.subscript = json["subscript"];
-    if (!mappingp(json["super"])) error("Expected object");
-    retval.super = json["super"];
-    if (!mappingp(json["symbol"])) error("Expected object");
-    retval.symbol = json["symbol"];
-    if (!mappingp(json["synchronized"])) error("Expected object");
-    retval.synchronized = json["synchronized"];
-    if (!mappingp(json["system"])) error("Expected object");
-    retval.system = json["system"];
-    if (!mappingp(json["template"])) error("Expected object");
-    retval.template = json["template"];
-    if (!mappingp(json["then"])) error("Expected object");
-    retval.then = json["then"];
-    if (!mappingp(json["this"])) error("Expected object");
-    retval.this = json["this"];
-    if (!mappingp(json["thread_local"])) error("Expected object");
-    retval.thread_local = json["thread_local"];
-    if (!mappingp(json["throw"])) error("Expected object");
-    retval.throw = json["throw"];
-    if (!mappingp(json["throws"])) error("Expected object");
-    retval.throws = json["throws"];
-    if (!mappingp(json["TimeOnly"])) error("Expected object");
-    retval.time_only = json["TimeOnly"];
-    if (!mappingp(json["TimeOnlyConverter"])) error("Expected object");
-    retval.time_only_converter = json["TimeOnlyConverter"];
-    if (!mappingp(json["to_json"])) error("Expected object");
-    retval.to_json = json["to_json"];
-    if (!mappingp(json["toString"])) error("Expected object");
-    retval.to_string = json["toString"];
-    if (!mappingp(json["top_level"])) error("Expected object");
-    retval.top_level = json["top_level"];
-    if (!mappingp(json["transient"])) error("Expected object");
-    retval.transient = json["transient"];
-    if (!mappingp(json["True"])) error("Expected object");
-    retval.true = json["True"];
-    if (!mappingp(json["try"])) error("Expected object");
-    retval.try = json["try"];
-    if (!mappingp(json["Type"])) error("Expected object");
-    retval.type = json["Type"];
-    if (!mappingp(json["typealias"])) error("Expected object");
-    retval.typealias = json["typealias"];
-    if (!mappingp(json["typeid"])) error("Expected object");
-    retval.typeid = json["typeid"];
-    if (!mappingp(json["typename"])) error("Expected object");
-    retval.typename = json["typename"];
-    if (!mappingp(json["uint"])) error("Expected object");
-    retval.uint = json["uint"];
-    if (!mappingp(json["ulong"])) error("Expected object");
-    retval.ulong = json["ulong"];
-    if (!mappingp(json["unchecked"])) error("Expected object");
-    retval.unchecked = json["unchecked"];
-    if (!mappingp(json["undefined"])) error("Expected object");
-    retval.undefined = json["undefined"];
 
     return retval;
 }
 
-class Public {
-    int public_public; // json: "public"
+class RegExp {
+    string reg_exp; // json: "RegExp"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "public" : public_public,
+            "RegExp" : reg_exp,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Public Public_from_JSON(mixed json) {
-    Public retval = Public();
+RegExp RegExp_from_JSON(mixed json) {
+    RegExp retval = RegExp();
 
-    if (!intp(json["public"])) error("Expected integer");
-    retval.public_public = json["public"];
+    retval.reg_exp = json["RegExp"];
 
     return retval;
 }
 
-class Return {
-    int return_return; // json: "return"
+class Register {
+    int register; // json: "register"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "return" : return_return,
+            "register" : register,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Return Return_from_JSON(mixed json) {
-    Return retval = Return();
+Register Register_from_JSON(mixed json) {
+    Register retval = Register();
 
-    if (!intp(json["return"])) error("Expected integer");
-    retval.return_return = json["return"];
+    if (!intp(json["register"])) error("Expected integer");
+    retval.register = json["register"];
 
     return retval;
 }
 
-class SelfClass {
-    int self; // json: "self"
+class ReinterpretCast {
+    int reinterpret_cast; // json: "reinterpret_cast"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "self" : self,
+            "reinterpret_cast" : reinterpret_cast,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-SelfClass SelfClass_from_JSON(mixed json) {
-    SelfClass retval = SelfClass();
+ReinterpretCast ReinterpretCast_from_JSON(mixed json) {
+    ReinterpretCast retval = ReinterpretCast();
 
-    if (!intp(json["self"])) error("Expected integer");
-    retval.self = json["self"];
+    if (!intp(json["reinterpret_cast"])) error("Expected integer");
+    retval.reinterpret_cast = json["reinterpret_cast"];
 
     return retval;
 }
 
-class Static {
-    int static_static; // json: "static"
+class Repeat {
+    int repeat; // json: "repeat"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "static" : static_static,
+            "repeat" : repeat,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Static Static_from_JSON(mixed json) {
-    Static retval = Static();
+Repeat Repeat_from_JSON(mixed json) {
+    Repeat retval = Repeat();
 
-    if (!intp(json["static"])) error("Expected integer");
-    retval.static_static = json["static"];
+    if (!intp(json["repeat"])) error("Expected integer");
+    retval.repeat = json["repeat"];
 
     return retval;
 }
 
-class String {
-    int string_string; // json: "string"
+class Require {
+    int require; // json: "require"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "string" : string_string,
+            "require" : require,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-String String_from_JSON(mixed json) {
-    String retval = String();
+Require Require_from_JSON(mixed json) {
+    Require retval = Require();
 
-    if (!intp(json["string"])) error("Expected integer");
-    retval.string_string = json["string"];
+    if (!intp(json["require"])) error("Expected integer");
+    retval.require = json["require"];
 
     return retval;
 }
 
-class Switch {
-    int switch_switch; // json: "switch"
+class Required {
+    int required; // json: "required"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "switch" : switch_switch,
+            "required" : required,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Switch Switch_from_JSON(mixed json) {
-    Switch retval = Switch();
+Required Required_from_JSON(mixed json) {
+    Required retval = Required();
 
-    if (!intp(json["switch"])) error("Expected integer");
-    retval.switch_switch = json["switch"];
+    if (!intp(json["required"])) error("Expected integer");
+    retval.required = json["required"];
 
     return retval;
 }
 
-class TrueClass {
-    int true; // json: "true"
+class Requires {
+    int requires; // json: "requires"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "true" : true,
+            "requires" : requires,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-TrueClass TrueClass_from_JSON(mixed json) {
-    TrueClass retval = TrueClass();
+Requires Requires_from_JSON(mixed json) {
+    Requires retval = Requires();
 
-    if (!intp(json["true"])) error("Expected integer");
-    retval.true = json["true"];
+    if (!intp(json["requires"])) error("Expected integer");
+    retval.requires = json["requires"];
 
     return retval;
 }
 
-class TypeClass {
-    int type; // json: "type"
+class Restrict {
+    int restrict; // json: "restrict"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "type" : type,
+            "restrict" : restrict,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-TypeClass TypeClass_from_JSON(mixed json) {
-    TypeClass retval = TypeClass();
+Restrict Restrict_from_JSON(mixed json) {
+    Restrict retval = Restrict();
 
-    if (!intp(json["type"])) error("Expected integer");
-    retval.type = json["type"];
+    if (!intp(json["restrict"])) error("Expected integer");
+    retval.restrict = json["restrict"];
 
     return retval;
 }
 
-class Typedef {
-    int typedef_typedef; // json: "typedef"
+class Retain {
+    int retain; // json: "retain"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "typedef" : typedef_typedef,
+            "retain" : retain,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Typedef Typedef_from_JSON(mixed json) {
-    Typedef retval = Typedef();
+Retain Retain_from_JSON(mixed json) {
+    Retain retval = Retain();
 
-    if (!intp(json["typedef"])) error("Expected integer");
-    retval.typedef_typedef = json["typedef"];
+    if (!intp(json["retain"])) error("Expected integer");
+    retval.retain = json["retain"];
 
     return retval;
 }
 
-class Typeof {
-    int typeof_typeof; // json: "typeof"
+class Rethrows {
+    int rethrows; // json: "rethrows"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "typeof" : typeof_typeof,
+            "rethrows" : rethrows,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Typeof Typeof_from_JSON(mixed json) {
-    Typeof retval = Typeof();
+Rethrows Rethrows_from_JSON(mixed json) {
+    Rethrows retval = Rethrows();
 
-    if (!intp(json["typeof"])) error("Expected integer");
-    retval.typeof_typeof = json["typeof"];
+    if (!intp(json["rethrows"])) error("Expected integer");
+    retval.rethrows = json["rethrows"];
 
     return retval;
 }
 
-class Quicktype {
-    int quicktype; // json: "quicktype"
+class Right {
+    int right; // json: "right"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "quicktype" : quicktype,
+            "right" : right,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Quicktype Quicktype_from_JSON(mixed json) {
-    Quicktype retval = Quicktype();
+Right Right_from_JSON(mixed json) {
+    Right retval = Right();
 
-    if (!intp(json["quicktype"])) error("Expected integer");
-    retval.quicktype = json["quicktype"];
+    if (!intp(json["right"])) error("Expected integer");
+    retval.right = json["right"];
 
     return retval;
 }
 
-class Raise {
-    int raise; // json: "raise"
+class RuntimeType {
+    int runtime_type; // json: "runtimeType"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "raise" : raise,
+            "runtimeType" : runtime_type,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Raise Raise_from_JSON(mixed json) {
-    Raise retval = Raise();
+RuntimeType RuntimeType_from_JSON(mixed json) {
+    RuntimeType retval = RuntimeType();
 
-    if (!intp(json["raise"])) error("Expected integer");
-    retval.raise = json["raise"];
+    if (!intp(json["runtimeType"])) error("Expected integer");
+    retval.runtime_type = json["runtimeType"];
 
     return retval;
 }
 
-class Range {
-    int range; // json: "range"
+class S {
+    int s; // json: "s"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "range" : range,
+            "s" : s,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Range Range_from_JSON(mixed json) {
-    Range retval = Range();
+S S_from_JSON(mixed json) {
+    S retval = S();
 
-    if (!intp(json["range"])) error("Expected integer");
-    retval.range = json["range"];
+    if (!intp(json["s"])) error("Expected integer");
+    retval.s = json["s"];
 
     return retval;
 }
 
-class Readonly {
-    int readonly; // json: "readonly"
+class Sbyte {
+    int sbyte; // json: "sbyte"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "readonly" : readonly,
+            "sbyte" : sbyte,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Readonly Readonly_from_JSON(mixed json) {
-    Readonly retval = Readonly();
+Sbyte Sbyte_from_JSON(mixed json) {
+    Sbyte retval = Sbyte();
 
-    if (!intp(json["readonly"])) error("Expected integer");
-    retval.readonly = json["readonly"];
+    if (!intp(json["sbyte"])) error("Expected integer");
+    retval.sbyte = json["sbyte"];
 
     return retval;
 }
 
-class Ref {
-    int ref; // json: "ref"
+class Sealed {
+    int sealed; // json: "sealed"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "ref" : ref,
+            "sealed" : sealed,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Ref Ref_from_JSON(mixed json) {
-    Ref retval = Ref();
+Sealed Sealed_from_JSON(mixed json) {
+    Sealed retval = Sealed();
 
-    if (!intp(json["ref"])) error("Expected integer");
-    retval.ref = json["ref"];
+    if (!intp(json["sealed"])) error("Expected integer");
+    retval.sealed = json["sealed"];
 
     return retval;
 }
 
-class RegExp {
-    string reg_exp; // json: "RegExp"
+class Sel {
+    int sel; // json: "SEL"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "RegExp" : reg_exp,
+            "SEL" : sel,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-RegExp RegExp_from_JSON(mixed json) {
-    RegExp retval = RegExp();
+Sel Sel_from_JSON(mixed json) {
+    Sel retval = Sel();
 
-    retval.reg_exp = json["RegExp"];
+    if (!intp(json["SEL"])) error("Expected integer");
+    retval.sel = json["SEL"];
 
     return retval;
 }
 
-class Register {
-    int register; // json: "register"
+class Select {
+    int select; // json: "select"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "register" : register,
+            "select" : select,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Register Register_from_JSON(mixed json) {
-    Register retval = Register();
+Select Select_from_JSON(mixed json) {
+    Select retval = Select();
 
-    if (!intp(json["register"])) error("Expected integer");
-    retval.register = json["register"];
+    if (!intp(json["select"])) error("Expected integer");
+    retval.select = json["select"];
 
     return retval;
 }
 
-class ReinterpretCast {
-    int reinterpret_cast; // json: "reinterpret_cast"
+class Self {
+    int self; // json: "Self"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "reinterpret_cast" : reinterpret_cast,
+            "Self" : self,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-ReinterpretCast ReinterpretCast_from_JSON(mixed json) {
-    ReinterpretCast retval = ReinterpretCast();
+Self Self_from_JSON(mixed json) {
+    Self retval = Self();
 
-    if (!intp(json["reinterpret_cast"])) error("Expected integer");
-    retval.reinterpret_cast = json["reinterpret_cast"];
+    if (!intp(json["Self"])) error("Expected integer");
+    retval.self = json["Self"];
 
     return retval;
 }
 
-class Repeat {
-    int repeat; // json: "repeat"
+class Serialize {
+    int serialize; // json: "serialize"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "repeat" : repeat,
+            "serialize" : serialize,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Repeat Repeat_from_JSON(mixed json) {
-    Repeat retval = Repeat();
+Serialize Serialize_from_JSON(mixed json) {
+    Serialize retval = Serialize();
 
-    if (!intp(json["repeat"])) error("Expected integer");
-    retval.repeat = json["repeat"];
+    if (!intp(json["serialize"])) error("Expected integer");
+    retval.serialize = json["serialize"];
 
     return retval;
 }
 
-class Require {
-    int require; // json: "require"
+class SerializerProvider {
+    int serializer_provider; // json: "SerializerProvider"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "require" : require,
+            "SerializerProvider" : serializer_provider,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Require Require_from_JSON(mixed json) {
-    Require retval = Require();
+SerializerProvider SerializerProvider_from_JSON(mixed json) {
+    SerializerProvider retval = SerializerProvider();
 
-    if (!intp(json["require"])) error("Expected integer");
-    retval.require = json["require"];
+    if (!intp(json["SerializerProvider"])) error("Expected integer");
+    retval.serializer_provider = json["SerializerProvider"];
 
     return retval;
 }
 
-class Required {
-    int required; // json: "required"
+class Set {
+    int set; // json: "set"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "required" : required,
+            "set" : set,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Required Required_from_JSON(mixed json) {
-    Required retval = Required();
+Set Set_from_JSON(mixed json) {
+    Set retval = Set();
 
-    if (!intp(json["required"])) error("Expected integer");
-    retval.required = json["required"];
+    if (!intp(json["set"])) error("Expected integer");
+    retval.set = json["set"];
 
     return retval;
 }
 
-class Requires {
-    int requires; // json: "requires"
+class Short {
+    int short; // json: "short"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "requires" : requires,
+            "short" : short,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Requires Requires_from_JSON(mixed json) {
-    Requires retval = Requires();
+Short Short_from_JSON(mixed json) {
+    Short retval = Short();
 
-    if (!intp(json["requires"])) error("Expected integer");
-    retval.requires = json["requires"];
+    if (!intp(json["short"])) error("Expected integer");
+    retval.short = json["short"];
 
     return retval;
 }
 
-class Restrict {
-    int restrict; // json: "restrict"
+class Signed {
+    int signed; // json: "signed"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "restrict" : restrict,
+            "signed" : signed,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Restrict Restrict_from_JSON(mixed json) {
-    Restrict retval = Restrict();
+Signed Signed_from_JSON(mixed json) {
+    Signed retval = Signed();
 
-    if (!intp(json["restrict"])) error("Expected integer");
-    retval.restrict = json["restrict"];
+    if (!intp(json["signed"])) error("Expected integer");
+    retval.signed = json["signed"];
 
     return retval;
 }
 
-class Retain {
-    int retain; // json: "retain"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "retain" : retain,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Retain Retain_from_JSON(mixed json) {
-    Retain retval = Retain();
-
-    if (!intp(json["retain"])) error("Expected integer");
-    retval.retain = json["retain"];
-
-    return retval;
-}
-
-class Rethrows {
-    int rethrows; // json: "rethrows"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "rethrows" : rethrows,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Rethrows Rethrows_from_JSON(mixed json) {
-    Rethrows retval = Rethrows();
-
-    if (!intp(json["rethrows"])) error("Expected integer");
-    retval.rethrows = json["rethrows"];
-
-    return retval;
-}
-
-class Right {
-    int right; // json: "right"
+class SimpleModule {
+    int simple_module; // json: "SimpleModule"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "right" : right,
+            "SimpleModule" : simple_module,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Right Right_from_JSON(mixed json) {
-    Right retval = Right();
+SimpleModule SimpleModule_from_JSON(mixed json) {
+    SimpleModule retval = SimpleModule();
 
-    if (!intp(json["right"])) error("Expected integer");
-    retval.right = json["right"];
+    if (!intp(json["SimpleModule"])) error("Expected integer");
+    retval.simple_module = json["SimpleModule"];
 
     return retval;
 }
 
-class RuntimeType {
-    int runtime_type; // json: "runtimeType"
+class Sizeof {
+    int sizeof; // json: "sizeof"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "runtimeType" : runtime_type,
+            "sizeof" : sizeof,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-RuntimeType RuntimeType_from_JSON(mixed json) {
-    RuntimeType retval = RuntimeType();
+Sizeof Sizeof_from_JSON(mixed json) {
+    Sizeof retval = Sizeof();
 
-    if (!intp(json["runtimeType"])) error("Expected integer");
-    retval.runtime_type = json["runtimeType"];
+    if (!intp(json["sizeof"])) error("Expected integer");
+    retval.sizeof = json["sizeof"];
 
     return retval;
 }
 
-class S {
-    int s; // json: "s"
+class Stackalloc {
+    int stackalloc; // json: "stackalloc"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "s" : s,
+            "stackalloc" : stackalloc,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-S S_from_JSON(mixed json) {
-    S retval = S();
+Stackalloc Stackalloc_from_JSON(mixed json) {
+    Stackalloc retval = Stackalloc();
 
-    if (!intp(json["s"])) error("Expected integer");
-    retval.s = json["s"];
+    if (!intp(json["stackalloc"])) error("Expected integer");
+    retval.stackalloc = json["stackalloc"];
 
     return retval;
 }
 
-class Sbyte {
-    int sbyte; // json: "sbyte"
+class StandardsClass {
+    int standards; // json: "Standards"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "sbyte" : sbyte,
+            "Standards" : standards,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Sbyte Sbyte_from_JSON(mixed json) {
-    Sbyte retval = Sbyte();
+StandardsClass StandardsClass_from_JSON(mixed json) {
+    StandardsClass retval = StandardsClass();
 
-    if (!intp(json["sbyte"])) error("Expected integer");
-    retval.sbyte = json["sbyte"];
+    if (!intp(json["Standards"])) error("Expected integer");
+    retval.standards = json["Standards"];
 
     return retval;
 }
 
-class Sealed {
-    int sealed; // json: "sealed"
+class StaticAssert {
+    int static_assert; // json: "static_assert"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "sealed" : sealed,
+            "static_assert" : static_assert,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Sealed Sealed_from_JSON(mixed json) {
-    Sealed retval = Sealed();
+StaticAssert StaticAssert_from_JSON(mixed json) {
+    StaticAssert retval = StaticAssert();
 
-    if (!intp(json["sealed"])) error("Expected integer");
-    retval.sealed = json["sealed"];
+    if (!intp(json["static_assert"])) error("Expected integer");
+    retval.static_assert = json["static_assert"];
 
     return retval;
 }
 
-class Sel {
-    int sel; // json: "SEL"
+class Obj5 {
+    int               dummy;               // json: "dummy"
+    String            obj5_string;         // json: "string"
+    Switch            obj5_switch;         // json: "switch"
+    TrueClass         obj5_true;           // json: "true"
+    TypeClass         obj5_type;           // json: "type"
+    Typedef           obj5_typedef;        // json: "typedef"
+    Typeof            obj5_typeof;         // json: "typeof"
+    Void              obj5_void;           // json: "void"
+    While             obj5_while;          // json: "while"
+    StaticCast        static_cast;         // json: "static_cast"
+    StdDeserializer   std_deserializer;    // json: "StdDeserializer"
+    StdSerializer     std_serializer;      // json: "StdSerializer"
+    Strictfp          strictfp;            // json: "strictfp"
+    Struct            struct;              // json: "struct"
+    Subscript         subscript;           // json: "subscript"
+    Super             super;               // json: "super"
+    Symbol            symbol;              // json: "symbol"
+    Synchronized      synchronized;        // json: "synchronized"
+    System            system;              // json: "system"
+    Template          template;            // json: "template"
+    Then              then;                // json: "then"
+    This              this;                // json: "this"
+    ThreadLocal       thread_local;        // json: "thread_local"
+    Throw             throw;               // json: "throw"
+    Throws            throws;              // json: "throws"
+    TimeOnly          time_only;           // json: "TimeOnly"
+    TimeOnlyConverter time_only_converter; // json: "TimeOnlyConverter"
+    ToJson            to_json;             // json: "to_json"
+    ToString          to_string;           // json: "toString"
+    TopLevelClass     top_level;           // json: "top_level"
+    Transient         transient;           // json: "transient"
+    True              true;                // json: "True"
+    Try               try;                 // json: "try"
+    Type              type;                // json: "Type"
+    Typealias         typealias;           // json: "typealias"
+    Typeid            typeid;              // json: "typeid"
+    Typename          typename;            // json: "typename"
+    Uint              uint;                // json: "uint"
+    Ulong             ulong;               // json: "ulong"
+    Unchecked         unchecked;           // json: "unchecked"
+    Undefined         undefined;           // json: "undefined"
+    Union             union;               // json: "union"
+    Unowned           unowned;             // json: "unowned"
+    Unsafe            unsafe;              // json: "unsafe"
+    Unsigned          unsigned;            // json: "unsigned"
+    Ushort            ushort;              // json: "ushort"
+    Using             using;               // json: "using"
+    Utf8JsonReader    utf8_json_reader;    // json: "Utf8JsonReader"
+    Utf8JsonWriter    utf8_json_writer;    // json: "Utf8JsonWriter"
+    Uuid              uuid;                // json: "UUID"
+    Var               var;                 // json: "var"
+    Virtual           virtual;             // json: "virtual"
+    Volatile          volatile;            // json: "volatile"
+    WcharT            wchar_t;             // json: "wchar_t"
+    Weak              weak;                // json: "weak"
+    Where             where;               // json: "where"
+    WillSet           will_set;            // json: "willSet"
+    With              with;                // json: "with"
+    Xor               xor;                 // json: "xor"
+    XorEq             xor_eq;              // json: "xor_eq"
+    Yes               yes;                 // json: "YES"
+    Yield             yield;               // json: "yield"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "SEL" : sel,
+            "dummy" : dummy,
+            "string" : obj5_string,
+            "switch" : obj5_switch,
+            "true" : obj5_true,
+            "type" : obj5_type,
+            "typedef" : obj5_typedef,
+            "typeof" : obj5_typeof,
+            "void" : obj5_void,
+            "while" : obj5_while,
+            "static_cast" : static_cast,
+            "StdDeserializer" : std_deserializer,
+            "StdSerializer" : std_serializer,
+            "strictfp" : strictfp,
+            "struct" : struct,
+            "subscript" : subscript,
+            "super" : super,
+            "symbol" : symbol,
+            "synchronized" : synchronized,
+            "system" : system,
+            "template" : template,
+            "then" : then,
+            "this" : this,
+            "thread_local" : thread_local,
+            "throw" : throw,
+            "throws" : throws,
+            "TimeOnly" : time_only,
+            "TimeOnlyConverter" : time_only_converter,
+            "to_json" : to_json,
+            "toString" : to_string,
+            "top_level" : top_level,
+            "transient" : transient,
+            "True" : true,
+            "try" : try,
+            "Type" : type,
+            "typealias" : typealias,
+            "typeid" : typeid,
+            "typename" : typename,
+            "uint" : uint,
+            "ulong" : ulong,
+            "unchecked" : unchecked,
+            "undefined" : undefined,
+            "union" : union,
+            "unowned" : unowned,
+            "unsafe" : unsafe,
+            "unsigned" : unsigned,
+            "ushort" : ushort,
+            "using" : using,
+            "Utf8JsonReader" : utf8_json_reader,
+            "Utf8JsonWriter" : utf8_json_writer,
+            "UUID" : uuid,
+            "var" : var,
+            "virtual" : virtual,
+            "volatile" : volatile,
+            "wchar_t" : wchar_t,
+            "weak" : weak,
+            "where" : where,
+            "willSet" : will_set,
+            "with" : with,
+            "xor" : xor,
+            "xor_eq" : xor_eq,
+            "YES" : yes,
+            "yield" : yield,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Sel Sel_from_JSON(mixed json) {
-    Sel retval = Sel();
+Obj5 Obj5_from_JSON(mixed json) {
+    Obj5 retval = Obj5();
 
-    if (!intp(json["SEL"])) error("Expected integer");
-    retval.sel = json["SEL"];
+    if (!intp(json["dummy"])) error("Expected integer");
+    retval.dummy = json["dummy"];
+    if (!mappingp(json["string"])) error("Expected object");
+    retval.obj5_string = json["string"];
+    if (!mappingp(json["switch"])) error("Expected object");
+    retval.obj5_switch = json["switch"];
+    if (!mappingp(json["true"])) error("Expected object");
+    retval.obj5_true = json["true"];
+    if (!mappingp(json["type"])) error("Expected object");
+    retval.obj5_type = json["type"];
+    if (!mappingp(json["typedef"])) error("Expected object");
+    retval.obj5_typedef = json["typedef"];
+    if (!mappingp(json["typeof"])) error("Expected object");
+    retval.obj5_typeof = json["typeof"];
+    if (!mappingp(json["void"])) error("Expected object");
+    retval.obj5_void = json["void"];
+    if (!mappingp(json["while"])) error("Expected object");
+    retval.obj5_while = json["while"];
+    if (!mappingp(json["static_cast"])) error("Expected object");
+    retval.static_cast = json["static_cast"];
+    if (!mappingp(json["StdDeserializer"])) error("Expected object");
+    retval.std_deserializer = json["StdDeserializer"];
+    if (!mappingp(json["StdSerializer"])) error("Expected object");
+    retval.std_serializer = json["StdSerializer"];
+    if (!mappingp(json["strictfp"])) error("Expected object");
+    retval.strictfp = json["strictfp"];
+    if (!mappingp(json["struct"])) error("Expected object");
+    retval.struct = json["struct"];
+    if (!mappingp(json["subscript"])) error("Expected object");
+    retval.subscript = json["subscript"];
+    if (!mappingp(json["super"])) error("Expected object");
+    retval.super = json["super"];
+    if (!mappingp(json["symbol"])) error("Expected object");
+    retval.symbol = json["symbol"];
+    if (!mappingp(json["synchronized"])) error("Expected object");
+    retval.synchronized = json["synchronized"];
+    if (!mappingp(json["system"])) error("Expected object");
+    retval.system = json["system"];
+    if (!mappingp(json["template"])) error("Expected object");
+    retval.template = json["template"];
+    if (!mappingp(json["then"])) error("Expected object");
+    retval.then = json["then"];
+    if (!mappingp(json["this"])) error("Expected object");
+    retval.this = json["this"];
+    if (!mappingp(json["thread_local"])) error("Expected object");
+    retval.thread_local = json["thread_local"];
+    if (!mappingp(json["throw"])) error("Expected object");
+    retval.throw = json["throw"];
+    if (!mappingp(json["throws"])) error("Expected object");
+    retval.throws = json["throws"];
+    if (!mappingp(json["TimeOnly"])) error("Expected object");
+    retval.time_only = json["TimeOnly"];
+    if (!mappingp(json["TimeOnlyConverter"])) error("Expected object");
+    retval.time_only_converter = json["TimeOnlyConverter"];
+    if (!mappingp(json["to_json"])) error("Expected object");
+    retval.to_json = json["to_json"];
+    if (!mappingp(json["toString"])) error("Expected object");
+    retval.to_string = json["toString"];
+    if (!mappingp(json["top_level"])) error("Expected object");
+    retval.top_level = json["top_level"];
+    if (!mappingp(json["transient"])) error("Expected object");
+    retval.transient = json["transient"];
+    if (!mappingp(json["True"])) error("Expected object");
+    retval.true = json["True"];
+    if (!mappingp(json["try"])) error("Expected object");
+    retval.try = json["try"];
+    if (!mappingp(json["Type"])) error("Expected object");
+    retval.type = json["Type"];
+    if (!mappingp(json["typealias"])) error("Expected object");
+    retval.typealias = json["typealias"];
+    if (!mappingp(json["typeid"])) error("Expected object");
+    retval.typeid = json["typeid"];
+    if (!mappingp(json["typename"])) error("Expected object");
+    retval.typename = json["typename"];
+    if (!mappingp(json["uint"])) error("Expected object");
+    retval.uint = json["uint"];
+    if (!mappingp(json["ulong"])) error("Expected object");
+    retval.ulong = json["ulong"];
+    if (!mappingp(json["unchecked"])) error("Expected object");
+    retval.unchecked = json["unchecked"];
+    if (!mappingp(json["undefined"])) error("Expected object");
+    retval.undefined = json["undefined"];
+    if (!mappingp(json["union"])) error("Expected object");
+    retval.union = json["union"];
+    if (!mappingp(json["unowned"])) error("Expected object");
+    retval.unowned = json["unowned"];
+    if (!mappingp(json["unsafe"])) error("Expected object");
+    retval.unsafe = json["unsafe"];
+    if (!mappingp(json["unsigned"])) error("Expected object");
+    retval.unsigned = json["unsigned"];
+    if (!mappingp(json["ushort"])) error("Expected object");
+    retval.ushort = json["ushort"];
+    if (!mappingp(json["using"])) error("Expected object");
+    retval.using = json["using"];
+    if (!mappingp(json["Utf8JsonReader"])) error("Expected object");
+    retval.utf8_json_reader = json["Utf8JsonReader"];
+    if (!mappingp(json["Utf8JsonWriter"])) error("Expected object");
+    retval.utf8_json_writer = json["Utf8JsonWriter"];
+    if (!mappingp(json["UUID"])) error("Expected object");
+    retval.uuid = json["UUID"];
+    if (!mappingp(json["var"])) error("Expected object");
+    retval.var = json["var"];
+    if (!mappingp(json["virtual"])) error("Expected object");
+    retval.virtual = json["virtual"];
+    if (!mappingp(json["volatile"])) error("Expected object");
+    retval.volatile = json["volatile"];
+    if (!mappingp(json["wchar_t"])) error("Expected object");
+    retval.wchar_t = json["wchar_t"];
+    if (!mappingp(json["weak"])) error("Expected object");
+    retval.weak = json["weak"];
+    if (!mappingp(json["where"])) error("Expected object");
+    retval.where = json["where"];
+    if (!mappingp(json["willSet"])) error("Expected object");
+    retval.will_set = json["willSet"];
+    if (!mappingp(json["with"])) error("Expected object");
+    retval.with = json["with"];
+    if (!mappingp(json["xor"])) error("Expected object");
+    retval.xor = json["xor"];
+    if (!mappingp(json["xor_eq"])) error("Expected object");
+    retval.xor_eq = json["xor_eq"];
+    if (!mappingp(json["YES"])) error("Expected object");
+    retval.yes = json["YES"];
+    if (!mappingp(json["yield"])) error("Expected object");
+    retval.yield = json["yield"];
 
     return retval;
 }
 
-class Select {
-    int select; // json: "select"
+class String {
+    int string_string; // json: "string"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "select" : select,
+            "string" : string_string,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Select Select_from_JSON(mixed json) {
-    Select retval = Select();
+String String_from_JSON(mixed json) {
+    String retval = String();
 
-    if (!intp(json["select"])) error("Expected integer");
-    retval.select = json["select"];
+    if (!intp(json["string"])) error("Expected integer");
+    retval.string_string = json["string"];
 
     return retval;
 }
 
-class Self {
-    int self; // json: "Self"
+class Switch {
+    int switch_switch; // json: "switch"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "Self" : self,
+            "switch" : switch_switch,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Self Self_from_JSON(mixed json) {
-    Self retval = Self();
+Switch Switch_from_JSON(mixed json) {
+    Switch retval = Switch();
 
-    if (!intp(json["Self"])) error("Expected integer");
-    retval.self = json["Self"];
+    if (!intp(json["switch"])) error("Expected integer");
+    retval.switch_switch = json["switch"];
 
     return retval;
 }
 
-class Serialize {
-    int serialize; // json: "serialize"
-
+class TrueClass {
+    int true; // json: "true"
+
     string encode_json() {
         mapping(string:mixed) json = ([
-            "serialize" : serialize,
+            "true" : true,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Serialize Serialize_from_JSON(mixed json) {
-    Serialize retval = Serialize();
+TrueClass TrueClass_from_JSON(mixed json) {
+    TrueClass retval = TrueClass();
 
-    if (!intp(json["serialize"])) error("Expected integer");
-    retval.serialize = json["serialize"];
+    if (!intp(json["true"])) error("Expected integer");
+    retval.true = json["true"];
 
     return retval;
 }
 
-class Set {
-    int set; // json: "set"
+class TypeClass {
+    int type; // json: "type"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "set" : set,
+            "type" : type,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Set Set_from_JSON(mixed json) {
-    Set retval = Set();
+TypeClass TypeClass_from_JSON(mixed json) {
+    TypeClass retval = TypeClass();
 
-    if (!intp(json["set"])) error("Expected integer");
-    retval.set = json["set"];
+    if (!intp(json["type"])) error("Expected integer");
+    retval.type = json["type"];
 
     return retval;
 }
 
-class Short {
-    int short; // json: "short"
+class Typedef {
+    int typedef_typedef; // json: "typedef"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "short" : short,
+            "typedef" : typedef_typedef,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Short Short_from_JSON(mixed json) {
-    Short retval = Short();
+Typedef Typedef_from_JSON(mixed json) {
+    Typedef retval = Typedef();
 
-    if (!intp(json["short"])) error("Expected integer");
-    retval.short = json["short"];
+    if (!intp(json["typedef"])) error("Expected integer");
+    retval.typedef_typedef = json["typedef"];
 
     return retval;
 }
 
-class Signed {
-    int signed; // json: "signed"
+class Typeof {
+    int typeof_typeof; // json: "typeof"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "signed" : signed,
+            "typeof" : typeof_typeof,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Signed Signed_from_JSON(mixed json) {
-    Signed retval = Signed();
+Typeof Typeof_from_JSON(mixed json) {
+    Typeof retval = Typeof();
 
-    if (!intp(json["signed"])) error("Expected integer");
-    retval.signed = json["signed"];
+    if (!intp(json["typeof"])) error("Expected integer");
+    retval.typeof_typeof = json["typeof"];
 
     return retval;
 }
 
-class Sizeof {
-    int sizeof; // json: "sizeof"
+class Void {
+    int void_void; // json: "void"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "sizeof" : sizeof,
+            "void" : void_void,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Sizeof Sizeof_from_JSON(mixed json) {
-    Sizeof retval = Sizeof();
+Void Void_from_JSON(mixed json) {
+    Void retval = Void();
 
-    if (!intp(json["sizeof"])) error("Expected integer");
-    retval.sizeof = json["sizeof"];
+    if (!intp(json["void"])) error("Expected integer");
+    retval.void_void = json["void"];
 
     return retval;
 }
 
-class Stackalloc {
-    int stackalloc; // json: "stackalloc"
+class While {
+    int while_while; // json: "while"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "stackalloc" : stackalloc,
+            "while" : while_while,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-Stackalloc Stackalloc_from_JSON(mixed json) {
-    Stackalloc retval = Stackalloc();
+While While_from_JSON(mixed json) {
+    While retval = While();
 
-    if (!intp(json["stackalloc"])) error("Expected integer");
-    retval.stackalloc = json["stackalloc"];
+    if (!intp(json["while"])) error("Expected integer");
+    retval.while_while = json["while"];
 
     return retval;
 }
 
-class StandardsClass {
-    int standards; // json: "Standards"
+class StaticCast {
+    int static_cast; // json: "static_cast"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "Standards" : standards,
+            "static_cast" : static_cast,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-StandardsClass StandardsClass_from_JSON(mixed json) {
-    StandardsClass retval = StandardsClass();
+StaticCast StaticCast_from_JSON(mixed json) {
+    StaticCast retval = StaticCast();
 
-    if (!intp(json["Standards"])) error("Expected integer");
-    retval.standards = json["Standards"];
+    if (!intp(json["static_cast"])) error("Expected integer");
+    retval.static_cast = json["static_cast"];
 
     return retval;
 }
 
-class StaticAssert {
-    int static_assert; // json: "static_assert"
+class StdDeserializer {
+    int std_deserializer; // json: "StdDeserializer"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "static_assert" : static_assert,
+            "StdDeserializer" : std_deserializer,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-StaticAssert StaticAssert_from_JSON(mixed json) {
-    StaticAssert retval = StaticAssert();
+StdDeserializer StdDeserializer_from_JSON(mixed json) {
+    StdDeserializer retval = StdDeserializer();
 
-    if (!intp(json["static_assert"])) error("Expected integer");
-    retval.static_assert = json["static_assert"];
+    if (!intp(json["StdDeserializer"])) error("Expected integer");
+    retval.std_deserializer = json["StdDeserializer"];
 
     return retval;
 }
 
-class StaticCast {
-    int static_cast; // json: "static_cast"
+class StdSerializer {
+    int std_serializer; // json: "StdSerializer"
 
     string encode_json() {
         mapping(string:mixed) json = ([
-            "static_cast" : static_cast,
+            "StdSerializer" : std_serializer,
         ]);
 
         return Standards.JSON.encode(json);
     }
 }
 
-StaticCast StaticCast_from_JSON(mixed json) {
-    StaticCast retval = StaticCast();
+StdSerializer StdSerializer_from_JSON(mixed json) {
+    StdSerializer retval = StdSerializer();
 
-    if (!intp(json["static_cast"])) error("Expected integer");
-    retval.static_cast = json["static_cast"];
+    if (!intp(json["StdSerializer"])) error("Expected integer");
+    retval.std_serializer = json["StdSerializer"];
 
     return retval;
 }
@@ -7492,161 +7647,6 @@ Undefined Undefined_from_JSON(mixed json) {
     return retval;
 }
 
-class Obj5 {
-    int            dummy;            // json: "dummy"
-    Void           obj5_void;        // json: "void"
-    While          obj5_while;       // json: "while"
-    Union          union;            // json: "union"
-    Unowned        unowned;          // json: "unowned"
-    Unsafe         unsafe;           // json: "unsafe"
-    Unsigned       unsigned;         // json: "unsigned"
-    Ushort         ushort;           // json: "ushort"
-    Using          using;            // json: "using"
-    Utf8JsonReader utf8_json_reader; // json: "Utf8JsonReader"
-    Utf8JsonWriter utf8_json_writer; // json: "Utf8JsonWriter"
-    Uuid           uuid;             // json: "UUID"
-    Var            var;              // json: "var"
-    Virtual        virtual;          // json: "virtual"
-    Volatile       volatile;         // json: "volatile"
-    WcharT         wchar_t;          // json: "wchar_t"
-    Weak           weak;             // json: "weak"
-    Where          where;            // json: "where"
-    WillSet        will_set;         // json: "willSet"
-    With           with;             // json: "with"
-    Xor            xor;              // json: "xor"
-    XorEq          xor_eq;           // json: "xor_eq"
-    Yes            yes;              // json: "YES"
-    Yield          yield;            // json: "yield"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "dummy" : dummy,
-            "void" : obj5_void,
-            "while" : obj5_while,
-            "union" : union,
-            "unowned" : unowned,
-            "unsafe" : unsafe,
-            "unsigned" : unsigned,
-            "ushort" : ushort,
-            "using" : using,
-            "Utf8JsonReader" : utf8_json_reader,
-            "Utf8JsonWriter" : utf8_json_writer,
-            "UUID" : uuid,
-            "var" : var,
-            "virtual" : virtual,
-            "volatile" : volatile,
-            "wchar_t" : wchar_t,
-            "weak" : weak,
-            "where" : where,
-            "willSet" : will_set,
-            "with" : with,
-            "xor" : xor,
-            "xor_eq" : xor_eq,
-            "YES" : yes,
-            "yield" : yield,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Obj5 Obj5_from_JSON(mixed json) {
-    Obj5 retval = Obj5();
-
-    if (!intp(json["dummy"])) error("Expected integer");
-    retval.dummy = json["dummy"];
-    if (!mappingp(json["void"])) error("Expected object");
-    retval.obj5_void = json["void"];
-    if (!mappingp(json["while"])) error("Expected object");
-    retval.obj5_while = json["while"];
-    if (!mappingp(json["union"])) error("Expected object");
-    retval.union = json["union"];
-    if (!mappingp(json["unowned"])) error("Expected object");
-    retval.unowned = json["unowned"];
-    if (!mappingp(json["unsafe"])) error("Expected object");
-    retval.unsafe = json["unsafe"];
-    if (!mappingp(json["unsigned"])) error("Expected object");
-    retval.unsigned = json["unsigned"];
-    if (!mappingp(json["ushort"])) error("Expected object");
-    retval.ushort = json["ushort"];
-    if (!mappingp(json["using"])) error("Expected object");
-    retval.using = json["using"];
-    if (!mappingp(json["Utf8JsonReader"])) error("Expected object");
-    retval.utf8_json_reader = json["Utf8JsonReader"];
-    if (!mappingp(json["Utf8JsonWriter"])) error("Expected object");
-    retval.utf8_json_writer = json["Utf8JsonWriter"];
-    if (!mappingp(json["UUID"])) error("Expected object");
-    retval.uuid = json["UUID"];
-    if (!mappingp(json["var"])) error("Expected object");
-    retval.var = json["var"];
-    if (!mappingp(json["virtual"])) error("Expected object");
-    retval.virtual = json["virtual"];
-    if (!mappingp(json["volatile"])) error("Expected object");
-    retval.volatile = json["volatile"];
-    if (!mappingp(json["wchar_t"])) error("Expected object");
-    retval.wchar_t = json["wchar_t"];
-    if (!mappingp(json["weak"])) error("Expected object");
-    retval.weak = json["weak"];
-    if (!mappingp(json["where"])) error("Expected object");
-    retval.where = json["where"];
-    if (!mappingp(json["willSet"])) error("Expected object");
-    retval.will_set = json["willSet"];
-    if (!mappingp(json["with"])) error("Expected object");
-    retval.with = json["with"];
-    if (!mappingp(json["xor"])) error("Expected object");
-    retval.xor = json["xor"];
-    if (!mappingp(json["xor_eq"])) error("Expected object");
-    retval.xor_eq = json["xor_eq"];
-    if (!mappingp(json["YES"])) error("Expected object");
-    retval.yes = json["YES"];
-    if (!mappingp(json["yield"])) error("Expected object");
-    retval.yield = json["yield"];
-
-    return retval;
-}
-
-class Void {
-    int void_void; // json: "void"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "void" : void_void,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-Void Void_from_JSON(mixed json) {
-    Void retval = Void();
-
-    if (!intp(json["void"])) error("Expected integer");
-    retval.void_void = json["void"];
-
-    return retval;
-}
-
-class While {
-    int while_while; // json: "while"
-
-    string encode_json() {
-        mapping(string:mixed) json = ([
-            "while" : while_while,
-        ]);
-
-        return Standards.JSON.encode(json);
-    }
-}
-
-While While_from_JSON(mixed json) {
-    While retval = While();
-
-    if (!intp(json["while"])) error("Expected integer");
-    retval.while_while = json["while"];
-
-    return retval;
-}
-
 class Union {
     int union; // json: "union"
 
diff --git a/base/python/test/inputs/json/priority/keywords.json/default/quicktype.py b/head/python/test/inputs/json/priority/keywords.json/default/quicktype.py
index 0d12c4b..ee29592 100644
--- a/base/python/test/inputs/json/priority/keywords.json/default/quicktype.py
+++ b/head/python/test/inputs/json/priority/keywords.json/default/quicktype.py
@@ -15,15 +15,15 @@ def from_int(x: Any) -> int:
     return x
 
 
-def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
-
-
 def to_class(c: Type[T], x: Any) -> dict:
     assert isinstance(x, c)
     return cast(Any, x).to_dict()
 
 
+def from_datetime(x: Any) -> datetime.datetime:
+    return dateutil.parser.parse(x)
+
+
 def from_list(f: Callable[[Any], T], x: Any) -> list[T]:
     assert isinstance(x, list)
     return [f(y) for y in x]
@@ -823,118 +823,6 @@ class DateParseHandling:
         return result
 
 
-@dataclass
-class DateTime:
-    date_time: datetime.datetime
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'DateTime':
-        assert isinstance(obj, dict)
-        date_time = from_datetime(obj["DateTime"])
-        return DateTime(date_time)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["DateTime"] = self.date_time.isoformat()
-        return result
-
-
-@dataclass
-class DateTimeStyles:
-    date_time_styles: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'DateTimeStyles':
-        assert isinstance(obj, dict)
-        date_time_styles = from_int(obj["DateTimeStyles"])
-        return DateTimeStyles(date_time_styles)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["DateTimeStyles"] = from_int(self.date_time_styles)
-        return result
-
-
-@dataclass
-class Debugger:
-    debugger: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Debugger':
-        assert isinstance(obj, dict)
-        debugger = from_int(obj["debugger"])
-        return Debugger(debugger)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["debugger"] = from_int(self.debugger)
-        return result
-
-
-@dataclass
-class Decimal:
-    decimal: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Decimal':
-        assert isinstance(obj, dict)
-        decimal = from_int(obj["decimal"])
-        return Decimal(decimal)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["decimal"] = from_int(self.decimal)
-        return result
-
-
-@dataclass
-class Declare:
-    declare: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Declare':
-        assert isinstance(obj, dict)
-        declare = from_int(obj["declare"])
-        return Declare(declare)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["declare"] = from_int(self.declare)
-        return result
-
-
-@dataclass
-class Decltype:
-    decltype: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Decltype':
-        assert isinstance(obj, dict)
-        decltype = from_int(obj["decltype"])
-        return Decltype(decltype)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["decltype"] = from_int(self.decltype)
-        return result
-
-
-@dataclass
-class DecodeString:
-    decode_string: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'DecodeString':
-        assert isinstance(obj, dict)
-        decode_string = from_int(obj["decode_string"])
-        return DecodeString(decode_string)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["decode_string"] = from_int(self.decode_string)
-        return result
-
-
 @dataclass
 class Empty:
     empty: int
@@ -1184,8 +1072,6 @@ class Obj1:
     date_formatter: DateFormatter
     date_only: DateOnly
     date_only_converter: DateOnlyConverter
-    date_time: DateTime
-    date_time_styles: DateTimeStyles
     empty: Empty
     purple_bool: BoolClass
     complex: Complex
@@ -1243,11 +1129,6 @@ class Obj1:
     converter: Converter
     date: Date
     date_parse_handling: DateParseHandling
-    debugger: Debugger
-    decimal: Decimal
-    declare: Declare
-    decltype: Decltype
-    decode_string: DecodeString
     dummy: int
 
     @staticmethod
@@ -1260,8 +1141,6 @@ class Obj1:
         date_formatter = DateFormatter.from_dict(obj["DateFormatter"])
         date_only = DateOnly.from_dict(obj["DateOnly"])
         date_only_converter = DateOnlyConverter.from_dict(obj["DateOnlyConverter"])
-        date_time = DateTime.from_dict(obj["DateTime"])
-        date_time_styles = DateTimeStyles.from_dict(obj["DateTimeStyles"])
         empty = Empty.from_dict(obj["_"])
         purple_bool = BoolClass.from_dict(obj["_Bool"])
         complex = Complex.from_dict(obj["_Complex"])
@@ -1319,13 +1198,8 @@ class Obj1:
         converter = Converter.from_dict(obj["converter"])
         date = Date.from_dict(obj["date"])
         date_parse_handling = DateParseHandling.from_dict(obj["date_parse_handling"])
-        debugger = Debugger.from_dict(obj["debugger"])
-        decimal = Decimal.from_dict(obj["decimal"])
-        declare = Declare.from_dict(obj["declare"])
-        decltype = Decltype.from_dict(obj["decltype"])
-        decode_string = DecodeString.from_dict(obj["decode_string"])
         dummy = from_int(obj["dummy"])
-        return Obj1(any, obj1_bool, obj1_class, culture_info, date_formatter, date_only, date_only_converter, date_time, date_time_styles, empty, purple_bool, complex, imaginery, abstract, alignas, alignof, obj1_and, and_eq, obj1_any, array, obj1_as, asm, obj1_assert, associatedtype, associativity, obj1_async, atomic, atomic_cancel, atomic_commit, atomic_noexcept, auto, obj1_await, base, bitand, bitor, fluffy_bool, boolean, obj1_break, bycopy, byref, byte, case, catch, chan, char, char16_t, char32_t, checked, purple_class, clone, co_await, co_return, co_yield, compl, concept, console, const, const_cast, constexpr, constructor, obj1_continue, convenience, convert, converter, date, date_parse_handling, debugger, decimal, declare, decltype, decode_string, dummy)
+        return Obj1(any, obj1_bool, obj1_class, culture_info, date_formatter, date_only, date_only_converter, empty, purple_bool, complex, imaginery, abstract, alignas, alignof, obj1_and, and_eq, obj1_any, array, obj1_as, asm, obj1_assert, associatedtype, associativity, obj1_async, atomic, atomic_cancel, atomic_commit, atomic_noexcept, auto, obj1_await, base, bitand, bitor, fluffy_bool, boolean, obj1_break, bycopy, byref, byte, case, catch, chan, char, char16_t, char32_t, checked, purple_class, clone, co_await, co_return, co_yield, compl, concept, console, const, const_cast, constexpr, constructor, obj1_continue, convenience, convert, converter, date, date_parse_handling, dummy)
 
     def to_dict(self) -> dict:
         result: dict = {}
@@ -1336,8 +1210,6 @@ class Obj1:
         result["DateFormatter"] = to_class(DateFormatter, self.date_formatter)
         result["DateOnly"] = to_class(DateOnly, self.date_only)
         result["DateOnlyConverter"] = to_class(DateOnlyConverter, self.date_only_converter)
-        result["DateTime"] = to_class(DateTime, self.date_time)
-        result["DateTimeStyles"] = to_class(DateTimeStyles, self.date_time_styles)
         result["_"] = to_class(Empty, self.empty)
         result["_Bool"] = to_class(BoolClass, self.purple_bool)
         result["_Complex"] = to_class(Complex, self.complex)
@@ -1395,15 +1267,122 @@ class Obj1:
         result["converter"] = to_class(Converter, self.converter)
         result["date"] = to_class(Date, self.date)
         result["date_parse_handling"] = to_class(DateParseHandling, self.date_parse_handling)
-        result["debugger"] = to_class(Debugger, self.debugger)
-        result["decimal"] = to_class(Decimal, self.decimal)
-        result["declare"] = to_class(Declare, self.declare)
-        result["decltype"] = to_class(Decltype, self.decltype)
-        result["decode_string"] = to_class(DecodeString, self.decode_string)
         result["dummy"] = from_int(self.dummy)
         return result
 
 
+@dataclass
+class DateTime:
+    date_time: datetime.datetime
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateTime':
+        assert isinstance(obj, dict)
+        date_time = from_datetime(obj["DateTime"])
+        return DateTime(date_time)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["DateTime"] = self.date_time.isoformat()
+        return result
+
+
+@dataclass
+class DateTimeStyles:
+    date_time_styles: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateTimeStyles':
+        assert isinstance(obj, dict)
+        date_time_styles = from_int(obj["DateTimeStyles"])
+        return DateTimeStyles(date_time_styles)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["DateTimeStyles"] = from_int(self.date_time_styles)
+        return result
+
+
+@dataclass
+class Debugger:
+    debugger: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Debugger':
+        assert isinstance(obj, dict)
+        debugger = from_int(obj["debugger"])
+        return Debugger(debugger)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["debugger"] = from_int(self.debugger)
+        return result
+
+
+@dataclass
+class Decimal:
+    decimal: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Decimal':
+        assert isinstance(obj, dict)
+        decimal = from_int(obj["decimal"])
+        return Decimal(decimal)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["decimal"] = from_int(self.decimal)
+        return result
+
+
+@dataclass
+class Declare:
+    declare: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Declare':
+        assert isinstance(obj, dict)
+        declare = from_int(obj["declare"])
+        return Declare(declare)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["declare"] = from_int(self.declare)
+        return result
+
+
+@dataclass
+class Decltype:
+    decltype: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Decltype':
+        assert isinstance(obj, dict)
+        decltype = from_int(obj["decltype"])
+        return Decltype(decltype)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["decltype"] = from_int(self.decltype)
+        return result
+
+
+@dataclass
+class DecodeString:
+    decode_string: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DecodeString':
+        assert isinstance(obj, dict)
+        decode_string = from_int(obj["decode_string"])
+        return DecodeString(decode_string)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["decode_string"] = from_int(self.decode_string)
+        return result
+
+
 @dataclass
 class Default:
     default: int
@@ -2113,134 +2092,6 @@ class Implicit:
         return result
 
 
-@dataclass
-class Indirect:
-    indirect: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Indirect':
-        assert isinstance(obj, dict)
-        indirect = from_int(obj["indirect"])
-        return Indirect(indirect)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["indirect"] = from_int(self.indirect)
-        return result
-
-
-@dataclass
-class Infix:
-    infix: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Infix':
-        assert isinstance(obj, dict)
-        infix = from_int(obj["infix"])
-        return Infix(infix)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["infix"] = from_int(self.infix)
-        return result
-
-
-@dataclass
-class Init:
-    init: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Init':
-        assert isinstance(obj, dict)
-        init = from_int(obj["init"])
-        return Init(init)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["init"] = from_int(self.init)
-        return result
-
-
-@dataclass
-class Inline:
-    inline: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Inline':
-        assert isinstance(obj, dict)
-        inline = from_int(obj["inline"])
-        return Inline(inline)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["inline"] = from_int(self.inline)
-        return result
-
-
-@dataclass
-class Inout:
-    inout: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Inout':
-        assert isinstance(obj, dict)
-        inout = from_int(obj["inout"])
-        return Inout(inout)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["inout"] = from_int(self.inout)
-        return result
-
-
-@dataclass
-class Instanceof:
-    instanceof: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Instanceof':
-        assert isinstance(obj, dict)
-        instanceof = from_int(obj["instanceof"])
-        return Instanceof(instanceof)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["instanceof"] = from_int(self.instanceof)
-        return result
-
-
-@dataclass
-class Interface:
-    interface: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Interface':
-        assert isinstance(obj, dict)
-        interface = from_int(obj["interface"])
-        return Interface(interface)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["interface"] = from_int(self.interface)
-        return result
-
-
-@dataclass
-class Internal:
-    internal: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Internal':
-        assert isinstance(obj, dict)
-        internal = from_int(obj["internal"])
-        return Internal(internal)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["internal"] = from_int(self.internal)
-        return result
-
-
 @dataclass
 class Def:
     def_def: int
@@ -2449,60 +2300,19 @@ class If:
         return result
 
 
-@dataclass
-class Import:
-    import_import: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Import':
-        assert isinstance(obj, dict)
-        import_import = from_int(obj["import"])
-        return Import(import_import)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["import"] = from_int(self.import_import)
-        return result
-
-
-@dataclass
-class In:
-    in_in: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'In':
-        assert isinstance(obj, dict)
-        in_in = from_int(obj["in"])
-        return In(in_in)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["in"] = from_int(self.in_in)
-        return result
-
-
-@dataclass
-class Int:
-    int_int: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Int':
-        assert isinstance(obj, dict)
-        int_int = from_int(obj["int"])
-        return Int(int_int)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["int"] = from_int(self.int_int)
-        return result
-
-
 @dataclass
 class Obj2:
+    date_time: DateTime
+    date_time_styles: DateTimeStyles
     enum_values: EnumValues
     false: FalseClass
     format_exception: FormatException
     imp: Imp
+    debugger: Debugger
+    decimal: Decimal
+    declare: Declare
+    decltype: Decltype
+    decode_string: DecodeString
     obj2_def: Def
     default: Default
     defer: Defer
@@ -2557,25 +2367,21 @@ class Obj2:
     obj2_if: If
     implements: Implements
     implicit: Implicit
-    obj2_import: Import
-    obj2_in: In
-    indirect: Indirect
-    infix: Infix
-    init: Init
-    inline: Inline
-    inout: Inout
-    instanceof: Instanceof
-    obj2_int: Int
-    interface: Interface
-    internal: Internal
 
     @staticmethod
     def from_dict(obj: Any) -> 'Obj2':
         assert isinstance(obj, dict)
+        date_time = DateTime.from_dict(obj["DateTime"])
+        date_time_styles = DateTimeStyles.from_dict(obj["DateTimeStyles"])
         enum_values = EnumValues.from_dict(obj["EnumValues"])
         false = FalseClass.from_dict(obj["False"])
         format_exception = FormatException.from_dict(obj["FormatException"])
         imp = Imp.from_dict(obj["IMP"])
+        debugger = Debugger.from_dict(obj["debugger"])
+        decimal = Decimal.from_dict(obj["decimal"])
+        declare = Declare.from_dict(obj["declare"])
+        decltype = Decltype.from_dict(obj["decltype"])
+        decode_string = DecodeString.from_dict(obj["decode_string"])
         obj2_def = Def.from_dict(obj["def"])
         default = Default.from_dict(obj["default"])
         defer = Defer.from_dict(obj["defer"])
@@ -2630,25 +2436,21 @@ class Obj2:
         obj2_if = If.from_dict(obj["if"])
         implements = Implements.from_dict(obj["implements"])
         implicit = Implicit.from_dict(obj["implicit"])
-        obj2_import = Import.from_dict(obj["import"])
-        obj2_in = In.from_dict(obj["in"])
-        indirect = Indirect.from_dict(obj["indirect"])
-        infix = Infix.from_dict(obj["infix"])
-        init = Init.from_dict(obj["init"])
-        inline = Inline.from_dict(obj["inline"])
-        inout = Inout.from_dict(obj["inout"])
-        instanceof = Instanceof.from_dict(obj["instanceof"])
-        obj2_int = Int.from_dict(obj["int"])
-        interface = Interface.from_dict(obj["interface"])
-        internal = Internal.from_dict(obj["internal"])
-        return Obj2(enum_values, false, format_exception, imp, obj2_def, default, defer, deinit, obj2_del, delegate, delete, obj2_dict, dictionary, did_set, do, double, dummy, dynamic, dynamic_cast, obj2_elif, obj2_else, encode_quick_type, enum, equality_contract, event, obj2_except, exception, explicit, export, exposing, extends, extension, extern, fallthrough, obj2_false, fileprivate, final, obj2_finally, fixed, obj2_float, obj2_for, foreach, friend, obj2_from, from_json, func, function, get, obj2_global, go, goto, guard, has_own_property, hash_code, id, obj2_if, implements, implicit, obj2_import, obj2_in, indirect, infix, init, inline, inout, instanceof, obj2_int, interface, internal)
+        return Obj2(date_time, date_time_styles, enum_values, false, format_exception, imp, debugger, decimal, declare, decltype, decode_string, obj2_def, default, defer, deinit, obj2_del, delegate, delete, obj2_dict, dictionary, did_set, do, double, dummy, dynamic, dynamic_cast, obj2_elif, obj2_else, encode_quick_type, enum, equality_contract, event, obj2_except, exception, explicit, export, exposing, extends, extension, extern, fallthrough, obj2_false, fileprivate, final, obj2_finally, fixed, obj2_float, obj2_for, foreach, friend, obj2_from, from_json, func, function, get, obj2_global, go, goto, guard, has_own_property, hash_code, id, obj2_if, implements, implicit)
 
     def to_dict(self) -> dict:
         result: dict = {}
+        result["DateTime"] = to_class(DateTime, self.date_time)
+        result["DateTimeStyles"] = to_class(DateTimeStyles, self.date_time_styles)
         result["EnumValues"] = to_class(EnumValues, self.enum_values)
         result["False"] = to_class(FalseClass, self.false)
         result["FormatException"] = to_class(FormatException, self.format_exception)
         result["IMP"] = to_class(Imp, self.imp)
+        result["debugger"] = to_class(Debugger, self.debugger)
+        result["decimal"] = to_class(Decimal, self.decimal)
+        result["declare"] = to_class(Declare, self.declare)
+        result["decltype"] = to_class(Decltype, self.decltype)
+        result["decode_string"] = to_class(DecodeString, self.decode_string)
         result["def"] = to_class(Def, self.obj2_def)
         result["default"] = to_class(Default, self.default)
         result["defer"] = to_class(Defer, self.defer)
@@ -2703,71 +2505,188 @@ class Obj2:
         result["if"] = to_class(If, self.obj2_if)
         result["implements"] = to_class(Implements, self.implements)
         result["implicit"] = to_class(Implicit, self.implicit)
-        result["import"] = to_class(Import, self.obj2_import)
-        result["in"] = to_class(In, self.obj2_in)
-        result["indirect"] = to_class(Indirect, self.indirect)
-        result["infix"] = to_class(Infix, self.infix)
-        result["init"] = to_class(Init, self.init)
-        result["inline"] = to_class(Inline, self.inline)
-        result["inout"] = to_class(Inout, self.inout)
-        result["instanceof"] = to_class(Instanceof, self.instanceof)
-        result["int"] = to_class(Int, self.obj2_int)
-        result["interface"] = to_class(Interface, self.interface)
-        result["internal"] = to_class(Internal, self.internal)
         return result
 
 
 @dataclass
-class ISODateTimeOffsetConverter:
-    iso_date_time_offset_converter: int
+class Indirect:
+    indirect: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'ISODateTimeOffsetConverter':
+    def from_dict(obj: Any) -> 'Indirect':
         assert isinstance(obj, dict)
-        iso_date_time_offset_converter = from_int(obj["IsoDateTimeOffsetConverter"])
-        return ISODateTimeOffsetConverter(iso_date_time_offset_converter)
+        indirect = from_int(obj["indirect"])
+        return Indirect(indirect)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["IsoDateTimeOffsetConverter"] = from_int(self.iso_date_time_offset_converter)
+        result["indirect"] = from_int(self.indirect)
         return result
 
 
 @dataclass
-class IterableClass:
-    iterable: int
+class Infix:
+    infix: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'IterableClass':
+    def from_dict(obj: Any) -> 'Infix':
         assert isinstance(obj, dict)
-        iterable = from_int(obj["iterable"])
-        return IterableClass(iterable)
+        infix = from_int(obj["infix"])
+        return Infix(infix)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["iterable"] = from_int(self.iterable)
+        result["infix"] = from_int(self.infix)
         return result
 
 
 @dataclass
-class Jdec:
-    jdec: int
+class Init:
+    init: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Jdec':
+    def from_dict(obj: Any) -> 'Init':
         assert isinstance(obj, dict)
-        jdec = from_int(obj["jdec"])
-        return Jdec(jdec)
+        init = from_int(obj["init"])
+        return Init(init)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["jdec"] = from_int(self.jdec)
+        result["init"] = from_int(self.init)
         return result
 
 
 @dataclass
-class Jenc:
-    jenc: int
+class Inline:
+    inline: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Inline':
+        assert isinstance(obj, dict)
+        inline = from_int(obj["inline"])
+        return Inline(inline)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["inline"] = from_int(self.inline)
+        return result
+
+
+@dataclass
+class Inout:
+    inout: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Inout':
+        assert isinstance(obj, dict)
+        inout = from_int(obj["inout"])
+        return Inout(inout)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["inout"] = from_int(self.inout)
+        return result
+
+
+@dataclass
+class Instanceof:
+    instanceof: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Instanceof':
+        assert isinstance(obj, dict)
+        instanceof = from_int(obj["instanceof"])
+        return Instanceof(instanceof)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["instanceof"] = from_int(self.instanceof)
+        return result
+
+
+@dataclass
+class Interface:
+    interface: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Interface':
+        assert isinstance(obj, dict)
+        interface = from_int(obj["interface"])
+        return Interface(interface)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["interface"] = from_int(self.interface)
+        return result
+
+
+@dataclass
+class Internal:
+    internal: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Internal':
+        assert isinstance(obj, dict)
+        internal = from_int(obj["internal"])
+        return Internal(internal)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["internal"] = from_int(self.internal)
+        return result
+
+
+@dataclass
+class ISODateTimeOffsetConverter:
+    iso_date_time_offset_converter: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'ISODateTimeOffsetConverter':
+        assert isinstance(obj, dict)
+        iso_date_time_offset_converter = from_int(obj["IsoDateTimeOffsetConverter"])
+        return ISODateTimeOffsetConverter(iso_date_time_offset_converter)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["IsoDateTimeOffsetConverter"] = from_int(self.iso_date_time_offset_converter)
+        return result
+
+
+@dataclass
+class IterableClass:
+    iterable: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'IterableClass':
+        assert isinstance(obj, dict)
+        iterable = from_int(obj["iterable"])
+        return IterableClass(iterable)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["iterable"] = from_int(self.iterable)
+        return result
+
+
+@dataclass
+class Jdec:
+    jdec: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Jdec':
+        assert isinstance(obj, dict)
+        jdec = from_int(obj["jdec"])
+        return Jdec(jdec)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["jdec"] = from_int(self.jdec)
+        return result
+
+
+@dataclass
+class Jenc:
+    jenc: int
 
     @staticmethod
     def from_dict(obj: Any) -> 'Jenc':
@@ -3470,34 +3389,50 @@ class Null:
 
 
 @dataclass
-class Nullptr:
-    nullptr: int
+class Import:
+    import_import: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Nullptr':
+    def from_dict(obj: Any) -> 'Import':
         assert isinstance(obj, dict)
-        nullptr = from_int(obj["nullptr"])
-        return Nullptr(nullptr)
+        import_import = from_int(obj["import"])
+        return Import(import_import)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["nullptr"] = from_int(self.nullptr)
+        result["import"] = from_int(self.import_import)
         return result
 
 
 @dataclass
-class Number:
-    number: int
+class In:
+    in_in: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Number':
+    def from_dict(obj: Any) -> 'In':
         assert isinstance(obj, dict)
-        number = from_int(obj["number"])
-        return Number(number)
+        in_in = from_int(obj["in"])
+        return In(in_in)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["number"] = from_int(self.number)
+        result["in"] = from_int(self.in_in)
+        return result
+
+
+@dataclass
+class Int:
+    int_int: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Int':
+        assert isinstance(obj, dict)
+        int_int = from_int(obj["int"])
+        return Int(int_int)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["int"] = from_int(self.int_int)
         return result
 
 
@@ -3598,31 +3533,271 @@ class NullClass:
 
 
 @dataclass
-class Or:
-    or_or: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Or':
-        assert isinstance(obj, dict)
-        or_or = from_int(obj["or"])
-        return Or(or_or)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["or"] = from_int(self.or_or)
-        return result
-
-
-@dataclass
-class Pass:
-    pass_pass: int
+class Obj3:
+    iso_date_time_offset_converter: ISODateTimeOffsetConverter
+    json_any: JSONAny
+    json_coding_key: JSONCodingKey
+    json_decoder: JSONDecoder
+    json_encoder: JSONEncoder
+    json_null: JSONNull
+    json_exception: JSONException
+    json_generator: JSONGenerator
+    json_node: JSONNode
+    json_parser: JSONParser
+    json_reader: JSONReader
+    json_token_type: JSONTokenType
+    no: No
+    ns_error: NSError
+    ns_string: NSString
+    null: Null
+    none: NoneClass
+    dummy: int
+    obj3_import: Import
+    obj3_in: In
+    indirect: Indirect
+    infix: Infix
+    init: Init
+    inline: Inline
+    inout: Inout
+    instanceof: Instanceof
+    obj3_int: Int
+    interface: Interface
+    internal: Internal
+    obj3_is: Is
+    iterable: IterableClass
+    jdec: Jdec
+    jenc: Jenc
+    jpipe: Jpipe
+    json: JSON
+    json_converter: JSONConverter
+    json_serializer: JSONSerializer
+    json_token: JSONToken
+    json_writer: JSONWriter
+    obj3_lambda: Lambda
+    lazy: Lazy
+    left: Left
+    let: Let
+    list: ListClass
+    lock: Lock
+    long: Long
+    map: Map
+    metadata_property_handling: MetadataPropertyHandling
+    module: Module
+    mutable: Mutable
+    mutating: Mutating
+    namespace: Namespace
+    native: Native
+    new: New
+    newtonsoft: Newtonsoft
+    nil: Nil
+    no_such_method: NoSuchMethod
+    noexcept: Noexcept
+    nonatomic: Nonatomic
+    obj3_none: Obj3None
+    obj3_nonlocal: Nonlocal
+    nonmutating: Nonmutating
+    obj3_not: Not
+    not_eq: NotEq
+    obj3_null: NullClass
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Pass':
+    def from_dict(obj: Any) -> 'Obj3':
         assert isinstance(obj, dict)
-        pass_pass = from_int(obj["pass"])
-        return Pass(pass_pass)
-
+        iso_date_time_offset_converter = ISODateTimeOffsetConverter.from_dict(obj["IsoDateTimeOffsetConverter"])
+        json_any = JSONAny.from_dict(obj["JSONAny"])
+        json_coding_key = JSONCodingKey.from_dict(obj["JSONCodingKey"])
+        json_decoder = JSONDecoder.from_dict(obj["JSONDecoder"])
+        json_encoder = JSONEncoder.from_dict(obj["JSONEncoder"])
+        json_null = JSONNull.from_dict(obj["JSONNull"])
+        json_exception = JSONException.from_dict(obj["JsonException"])
+        json_generator = JSONGenerator.from_dict(obj["JsonGenerator"])
+        json_node = JSONNode.from_dict(obj["JsonNode"])
+        json_parser = JSONParser.from_dict(obj["JsonParser"])
+        json_reader = JSONReader.from_dict(obj["JsonReader"])
+        json_token_type = JSONTokenType.from_dict(obj["JsonTokenType"])
+        no = No.from_dict(obj["NO"])
+        ns_error = NSError.from_dict(obj["NSError"])
+        ns_string = NSString.from_dict(obj["NSString"])
+        null = Null.from_dict(obj["NULL"])
+        none = NoneClass.from_dict(obj["None"])
+        dummy = from_int(obj["dummy"])
+        obj3_import = Import.from_dict(obj["import"])
+        obj3_in = In.from_dict(obj["in"])
+        indirect = Indirect.from_dict(obj["indirect"])
+        infix = Infix.from_dict(obj["infix"])
+        init = Init.from_dict(obj["init"])
+        inline = Inline.from_dict(obj["inline"])
+        inout = Inout.from_dict(obj["inout"])
+        instanceof = Instanceof.from_dict(obj["instanceof"])
+        obj3_int = Int.from_dict(obj["int"])
+        interface = Interface.from_dict(obj["interface"])
+        internal = Internal.from_dict(obj["internal"])
+        obj3_is = Is.from_dict(obj["is"])
+        iterable = IterableClass.from_dict(obj["iterable"])
+        jdec = Jdec.from_dict(obj["jdec"])
+        jenc = Jenc.from_dict(obj["jenc"])
+        jpipe = Jpipe.from_dict(obj["jpipe"])
+        json = JSON.from_dict(obj["json"])
+        json_converter = JSONConverter.from_dict(obj["json_converter"])
+        json_serializer = JSONSerializer.from_dict(obj["json_serializer"])
+        json_token = JSONToken.from_dict(obj["json_token"])
+        json_writer = JSONWriter.from_dict(obj["json_writer"])
+        obj3_lambda = Lambda.from_dict(obj["lambda"])
+        lazy = Lazy.from_dict(obj["lazy"])
+        left = Left.from_dict(obj["left"])
+        let = Let.from_dict(obj["let"])
+        list = ListClass.from_dict(obj["list"])
+        lock = Lock.from_dict(obj["lock"])
+        long = Long.from_dict(obj["long"])
+        map = Map.from_dict(obj["map"])
+        metadata_property_handling = MetadataPropertyHandling.from_dict(obj["metadata_property_handling"])
+        module = Module.from_dict(obj["module"])
+        mutable = Mutable.from_dict(obj["mutable"])
+        mutating = Mutating.from_dict(obj["mutating"])
+        namespace = Namespace.from_dict(obj["namespace"])
+        native = Native.from_dict(obj["native"])
+        new = New.from_dict(obj["new"])
+        newtonsoft = Newtonsoft.from_dict(obj["newtonsoft"])
+        nil = Nil.from_dict(obj["nil"])
+        no_such_method = NoSuchMethod.from_dict(obj["noSuchMethod"])
+        noexcept = Noexcept.from_dict(obj["noexcept"])
+        nonatomic = Nonatomic.from_dict(obj["nonatomic"])
+        obj3_none = Obj3None.from_dict(obj["none"])
+        obj3_nonlocal = Nonlocal.from_dict(obj["nonlocal"])
+        nonmutating = Nonmutating.from_dict(obj["nonmutating"])
+        obj3_not = Not.from_dict(obj["not"])
+        not_eq = NotEq.from_dict(obj["not_eq"])
+        obj3_null = NullClass.from_dict(obj["null"])
+        return Obj3(iso_date_time_offset_converter, json_any, json_coding_key, json_decoder, json_encoder, json_null, json_exception, json_generator, json_node, json_parser, json_reader, json_token_type, no, ns_error, ns_string, null, none, dummy, obj3_import, obj3_in, indirect, infix, init, inline, inout, instanceof, obj3_int, interface, internal, obj3_is, iterable, jdec, jenc, jpipe, json, json_converter, json_serializer, json_token, json_writer, obj3_lambda, lazy, left, let, list, lock, long, map, metadata_property_handling, module, mutable, mutating, namespace, native, new, newtonsoft, nil, no_such_method, noexcept, nonatomic, obj3_none, obj3_nonlocal, nonmutating, obj3_not, not_eq, obj3_null)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["IsoDateTimeOffsetConverter"] = to_class(ISODateTimeOffsetConverter, self.iso_date_time_offset_converter)
+        result["JSONAny"] = to_class(JSONAny, self.json_any)
+        result["JSONCodingKey"] = to_class(JSONCodingKey, self.json_coding_key)
+        result["JSONDecoder"] = to_class(JSONDecoder, self.json_decoder)
+        result["JSONEncoder"] = to_class(JSONEncoder, self.json_encoder)
+        result["JSONNull"] = to_class(JSONNull, self.json_null)
+        result["JsonException"] = to_class(JSONException, self.json_exception)
+        result["JsonGenerator"] = to_class(JSONGenerator, self.json_generator)
+        result["JsonNode"] = to_class(JSONNode, self.json_node)
+        result["JsonParser"] = to_class(JSONParser, self.json_parser)
+        result["JsonReader"] = to_class(JSONReader, self.json_reader)
+        result["JsonTokenType"] = to_class(JSONTokenType, self.json_token_type)
+        result["NO"] = to_class(No, self.no)
+        result["NSError"] = to_class(NSError, self.ns_error)
+        result["NSString"] = to_class(NSString, self.ns_string)
+        result["NULL"] = to_class(Null, self.null)
+        result["None"] = to_class(NoneClass, self.none)
+        result["dummy"] = from_int(self.dummy)
+        result["import"] = to_class(Import, self.obj3_import)
+        result["in"] = to_class(In, self.obj3_in)
+        result["indirect"] = to_class(Indirect, self.indirect)
+        result["infix"] = to_class(Infix, self.infix)
+        result["init"] = to_class(Init, self.init)
+        result["inline"] = to_class(Inline, self.inline)
+        result["inout"] = to_class(Inout, self.inout)
+        result["instanceof"] = to_class(Instanceof, self.instanceof)
+        result["int"] = to_class(Int, self.obj3_int)
+        result["interface"] = to_class(Interface, self.interface)
+        result["internal"] = to_class(Internal, self.internal)
+        result["is"] = to_class(Is, self.obj3_is)
+        result["iterable"] = to_class(IterableClass, self.iterable)
+        result["jdec"] = to_class(Jdec, self.jdec)
+        result["jenc"] = to_class(Jenc, self.jenc)
+        result["jpipe"] = to_class(Jpipe, self.jpipe)
+        result["json"] = to_class(JSON, self.json)
+        result["json_converter"] = to_class(JSONConverter, self.json_converter)
+        result["json_serializer"] = to_class(JSONSerializer, self.json_serializer)
+        result["json_token"] = to_class(JSONToken, self.json_token)
+        result["json_writer"] = to_class(JSONWriter, self.json_writer)
+        result["lambda"] = to_class(Lambda, self.obj3_lambda)
+        result["lazy"] = to_class(Lazy, self.lazy)
+        result["left"] = to_class(Left, self.left)
+        result["let"] = to_class(Let, self.let)
+        result["list"] = to_class(ListClass, self.list)
+        result["lock"] = to_class(Lock, self.lock)
+        result["long"] = to_class(Long, self.long)
+        result["map"] = to_class(Map, self.map)
+        result["metadata_property_handling"] = to_class(MetadataPropertyHandling, self.metadata_property_handling)
+        result["module"] = to_class(Module, self.module)
+        result["mutable"] = to_class(Mutable, self.mutable)
+        result["mutating"] = to_class(Mutating, self.mutating)
+        result["namespace"] = to_class(Namespace, self.namespace)
+        result["native"] = to_class(Native, self.native)
+        result["new"] = to_class(New, self.new)
+        result["newtonsoft"] = to_class(Newtonsoft, self.newtonsoft)
+        result["nil"] = to_class(Nil, self.nil)
+        result["noSuchMethod"] = to_class(NoSuchMethod, self.no_such_method)
+        result["noexcept"] = to_class(Noexcept, self.noexcept)
+        result["nonatomic"] = to_class(Nonatomic, self.nonatomic)
+        result["none"] = to_class(Obj3None, self.obj3_none)
+        result["nonlocal"] = to_class(Nonlocal, self.obj3_nonlocal)
+        result["nonmutating"] = to_class(Nonmutating, self.nonmutating)
+        result["not"] = to_class(Not, self.obj3_not)
+        result["not_eq"] = to_class(NotEq, self.not_eq)
+        result["null"] = to_class(NullClass, self.obj3_null)
+        return result
+
+
+@dataclass
+class Nullptr:
+    nullptr: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Nullptr':
+        assert isinstance(obj, dict)
+        nullptr = from_int(obj["nullptr"])
+        return Nullptr(nullptr)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["nullptr"] = from_int(self.nullptr)
+        return result
+
+
+@dataclass
+class Number:
+    number: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Number':
+        assert isinstance(obj, dict)
+        number = from_int(obj["number"])
+        return Number(number)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["number"] = from_int(self.number)
+        return result
+
+
+@dataclass
+class Or:
+    or_or: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Or':
+        assert isinstance(obj, dict)
+        or_or = from_int(obj["or"])
+        return Or(or_or)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["or"] = from_int(self.or_or)
+        return result
+
+
+@dataclass
+class Pass:
+    pass_pass: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Pass':
+        assert isinstance(obj, dict)
+        pass_pass = from_int(obj["pass"])
+        return Pass(pass_pass)
+
     def to_dict(self) -> dict:
         result: dict = {}
         result["pass"] = from_int(self.pass_pass)
@@ -3661,6 +3836,54 @@ class ProtocolClass:
         return result
 
 
+@dataclass
+class Raise:
+    raise_raise: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Raise':
+        assert isinstance(obj, dict)
+        raise_raise = from_int(obj["raise"])
+        return Raise(raise_raise)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["raise"] = from_int(self.raise_raise)
+        return result
+
+
+@dataclass
+class Return:
+    return_return: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Return':
+        assert isinstance(obj, dict)
+        return_return = from_int(obj["return"])
+        return Return(return_return)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["return"] = from_int(self.return_return)
+        return result
+
+
+@dataclass
+class Self:
+    self_self: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Self':
+        assert isinstance(obj, dict)
+        self_self = from_int(obj["Self"])
+        return Self(self_self)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["Self"] = from_int(self.self_self)
+        return result
+
+
 @dataclass
 class Object:
     object: int
@@ -3998,455 +4221,27 @@ class Protocol:
 
 
 @dataclass
-class SerializerProvider:
-    serializer_provider: int
+class Public:
+    public: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'SerializerProvider':
+    def from_dict(obj: Any) -> 'Public':
         assert isinstance(obj, dict)
-        serializer_provider = from_int(obj["SerializerProvider"])
-        return SerializerProvider(serializer_provider)
+        public = from_int(obj["public"])
+        return Public(public)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["SerializerProvider"] = from_int(self.serializer_provider)
+        result["public"] = from_int(self.public)
         return result
 
 
 @dataclass
-class SimpleModule:
-    simple_module: int
+class SelfClass:
+    self_self: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'SimpleModule':
-        assert isinstance(obj, dict)
-        simple_module = from_int(obj["SimpleModule"])
-        return SimpleModule(simple_module)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["SimpleModule"] = from_int(self.simple_module)
-        return result
-
-
-@dataclass
-class StdDeserializer:
-    std_deserializer: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'StdDeserializer':
-        assert isinstance(obj, dict)
-        std_deserializer = from_int(obj["StdDeserializer"])
-        return StdDeserializer(std_deserializer)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["StdDeserializer"] = from_int(self.std_deserializer)
-        return result
-
-
-@dataclass
-class StdSerializer:
-    std_serializer: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'StdSerializer':
-        assert isinstance(obj, dict)
-        std_serializer = from_int(obj["StdSerializer"])
-        return StdSerializer(std_serializer)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["StdSerializer"] = from_int(self.std_serializer)
-        return result
-
-
-@dataclass
-class Obj3:
-    iso_date_time_offset_converter: ISODateTimeOffsetConverter
-    json_any: JSONAny
-    json_coding_key: JSONCodingKey
-    json_decoder: JSONDecoder
-    json_encoder: JSONEncoder
-    json_null: JSONNull
-    json_exception: JSONException
-    json_generator: JSONGenerator
-    json_node: JSONNode
-    json_parser: JSONParser
-    json_reader: JSONReader
-    json_token_type: JSONTokenType
-    no: No
-    ns_error: NSError
-    ns_string: NSString
-    null: Null
-    none: NoneClass
-    object_mapper: ObjectMapper
-    protocol: Protocol
-    serializer_provider: SerializerProvider
-    simple_module: SimpleModule
-    std_deserializer: StdDeserializer
-    std_serializer: StdSerializer
-    dummy: int
-    obj3_is: Is
-    iterable: IterableClass
-    jdec: Jdec
-    jenc: Jenc
-    jpipe: Jpipe
-    json: JSON
-    json_converter: JSONConverter
-    json_serializer: JSONSerializer
-    json_token: JSONToken
-    json_writer: JSONWriter
-    obj3_lambda: Lambda
-    lazy: Lazy
-    left: Left
-    let: Let
-    list: ListClass
-    lock: Lock
-    long: Long
-    map: Map
-    metadata_property_handling: MetadataPropertyHandling
-    module: Module
-    mutable: Mutable
-    mutating: Mutating
-    namespace: Namespace
-    native: Native
-    new: New
-    newtonsoft: Newtonsoft
-    nil: Nil
-    no_such_method: NoSuchMethod
-    noexcept: Noexcept
-    nonatomic: Nonatomic
-    obj3_none: Obj3None
-    obj3_nonlocal: Nonlocal
-    nonmutating: Nonmutating
-    obj3_not: Not
-    not_eq: NotEq
-    obj3_null: NullClass
-    nullptr: Nullptr
-    number: Number
-    object: Object
-    of: Of
-    oneway: Oneway
-    open: Open
-    operator: Operator
-    optional: OptionalClass
-    obj3_or: Or
-    or_eq: OrEq
-    out: Out
-    override: Override
-    package: Package
-    params: Params
-    obj3_pass: Pass
-    port: Port
-    postfix: Postfix
-    precedence: Precedence
-    prefix: Prefix
-    obj3_print: Print
-    print_members: PrintMembers
-    printf: Printf
-    private: Private
-    protected: Protected
-    obj3_protocol: ProtocolClass
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Obj3':
-        assert isinstance(obj, dict)
-        iso_date_time_offset_converter = ISODateTimeOffsetConverter.from_dict(obj["IsoDateTimeOffsetConverter"])
-        json_any = JSONAny.from_dict(obj["JSONAny"])
-        json_coding_key = JSONCodingKey.from_dict(obj["JSONCodingKey"])
-        json_decoder = JSONDecoder.from_dict(obj["JSONDecoder"])
-        json_encoder = JSONEncoder.from_dict(obj["JSONEncoder"])
-        json_null = JSONNull.from_dict(obj["JSONNull"])
-        json_exception = JSONException.from_dict(obj["JsonException"])
-        json_generator = JSONGenerator.from_dict(obj["JsonGenerator"])
-        json_node = JSONNode.from_dict(obj["JsonNode"])
-        json_parser = JSONParser.from_dict(obj["JsonParser"])
-        json_reader = JSONReader.from_dict(obj["JsonReader"])
-        json_token_type = JSONTokenType.from_dict(obj["JsonTokenType"])
-        no = No.from_dict(obj["NO"])
-        ns_error = NSError.from_dict(obj["NSError"])
-        ns_string = NSString.from_dict(obj["NSString"])
-        null = Null.from_dict(obj["NULL"])
-        none = NoneClass.from_dict(obj["None"])
-        object_mapper = ObjectMapper.from_dict(obj["ObjectMapper"])
-        protocol = Protocol.from_dict(obj["Protocol"])
-        serializer_provider = SerializerProvider.from_dict(obj["SerializerProvider"])
-        simple_module = SimpleModule.from_dict(obj["SimpleModule"])
-        std_deserializer = StdDeserializer.from_dict(obj["StdDeserializer"])
-        std_serializer = StdSerializer.from_dict(obj["StdSerializer"])
-        dummy = from_int(obj["dummy"])
-        obj3_is = Is.from_dict(obj["is"])
-        iterable = IterableClass.from_dict(obj["iterable"])
-        jdec = Jdec.from_dict(obj["jdec"])
-        jenc = Jenc.from_dict(obj["jenc"])
-        jpipe = Jpipe.from_dict(obj["jpipe"])
-        json = JSON.from_dict(obj["json"])
-        json_converter = JSONConverter.from_dict(obj["json_converter"])
-        json_serializer = JSONSerializer.from_dict(obj["json_serializer"])
-        json_token = JSONToken.from_dict(obj["json_token"])
-        json_writer = JSONWriter.from_dict(obj["json_writer"])
-        obj3_lambda = Lambda.from_dict(obj["lambda"])
-        lazy = Lazy.from_dict(obj["lazy"])
-        left = Left.from_dict(obj["left"])
-        let = Let.from_dict(obj["let"])
-        list = ListClass.from_dict(obj["list"])
-        lock = Lock.from_dict(obj["lock"])
-        long = Long.from_dict(obj["long"])
-        map = Map.from_dict(obj["map"])
-        metadata_property_handling = MetadataPropertyHandling.from_dict(obj["metadata_property_handling"])
-        module = Module.from_dict(obj["module"])
-        mutable = Mutable.from_dict(obj["mutable"])
-        mutating = Mutating.from_dict(obj["mutating"])
-        namespace = Namespace.from_dict(obj["namespace"])
-        native = Native.from_dict(obj["native"])
-        new = New.from_dict(obj["new"])
-        newtonsoft = Newtonsoft.from_dict(obj["newtonsoft"])
-        nil = Nil.from_dict(obj["nil"])
-        no_such_method = NoSuchMethod.from_dict(obj["noSuchMethod"])
-        noexcept = Noexcept.from_dict(obj["noexcept"])
-        nonatomic = Nonatomic.from_dict(obj["nonatomic"])
-        obj3_none = Obj3None.from_dict(obj["none"])
-        obj3_nonlocal = Nonlocal.from_dict(obj["nonlocal"])
-        nonmutating = Nonmutating.from_dict(obj["nonmutating"])
-        obj3_not = Not.from_dict(obj["not"])
-        not_eq = NotEq.from_dict(obj["not_eq"])
-        obj3_null = NullClass.from_dict(obj["null"])
-        nullptr = Nullptr.from_dict(obj["nullptr"])
-        number = Number.from_dict(obj["number"])
-        object = Object.from_dict(obj["object"])
-        of = Of.from_dict(obj["of"])
-        oneway = Oneway.from_dict(obj["oneway"])
-        open = Open.from_dict(obj["open"])
-        operator = Operator.from_dict(obj["operator"])
-        optional = OptionalClass.from_dict(obj["optional"])
-        obj3_or = Or.from_dict(obj["or"])
-        or_eq = OrEq.from_dict(obj["or_eq"])
-        out = Out.from_dict(obj["out"])
-        override = Override.from_dict(obj["override"])
-        package = Package.from_dict(obj["package"])
-        params = Params.from_dict(obj["params"])
-        obj3_pass = Pass.from_dict(obj["pass"])
-        port = Port.from_dict(obj["port"])
-        postfix = Postfix.from_dict(obj["postfix"])
-        precedence = Precedence.from_dict(obj["precedence"])
-        prefix = Prefix.from_dict(obj["prefix"])
-        obj3_print = Print.from_dict(obj["print"])
-        print_members = PrintMembers.from_dict(obj["printMembers"])
-        printf = Printf.from_dict(obj["printf"])
-        private = Private.from_dict(obj["private"])
-        protected = Protected.from_dict(obj["protected"])
-        obj3_protocol = ProtocolClass.from_dict(obj["protocol"])
-        return Obj3(iso_date_time_offset_converter, json_any, json_coding_key, json_decoder, json_encoder, json_null, json_exception, json_generator, json_node, json_parser, json_reader, json_token_type, no, ns_error, ns_string, null, none, object_mapper, protocol, serializer_provider, simple_module, std_deserializer, std_serializer, dummy, obj3_is, iterable, jdec, jenc, jpipe, json, json_converter, json_serializer, json_token, json_writer, obj3_lambda, lazy, left, let, list, lock, long, map, metadata_property_handling, module, mutable, mutating, namespace, native, new, newtonsoft, nil, no_such_method, noexcept, nonatomic, obj3_none, obj3_nonlocal, nonmutating, obj3_not, not_eq, obj3_null, nullptr, number, object, of, oneway, open, operator, optional, obj3_or, or_eq, out, override, package, params, obj3_pass, port, postfix, precedence, prefix, obj3_print, print_members, printf, private, protected, obj3_protocol)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["IsoDateTimeOffsetConverter"] = to_class(ISODateTimeOffsetConverter, self.iso_date_time_offset_converter)
-        result["JSONAny"] = to_class(JSONAny, self.json_any)
-        result["JSONCodingKey"] = to_class(JSONCodingKey, self.json_coding_key)
-        result["JSONDecoder"] = to_class(JSONDecoder, self.json_decoder)
-        result["JSONEncoder"] = to_class(JSONEncoder, self.json_encoder)
-        result["JSONNull"] = to_class(JSONNull, self.json_null)
-        result["JsonException"] = to_class(JSONException, self.json_exception)
-        result["JsonGenerator"] = to_class(JSONGenerator, self.json_generator)
-        result["JsonNode"] = to_class(JSONNode, self.json_node)
-        result["JsonParser"] = to_class(JSONParser, self.json_parser)
-        result["JsonReader"] = to_class(JSONReader, self.json_reader)
-        result["JsonTokenType"] = to_class(JSONTokenType, self.json_token_type)
-        result["NO"] = to_class(No, self.no)
-        result["NSError"] = to_class(NSError, self.ns_error)
-        result["NSString"] = to_class(NSString, self.ns_string)
-        result["NULL"] = to_class(Null, self.null)
-        result["None"] = to_class(NoneClass, self.none)
-        result["ObjectMapper"] = to_class(ObjectMapper, self.object_mapper)
-        result["Protocol"] = to_class(Protocol, self.protocol)
-        result["SerializerProvider"] = to_class(SerializerProvider, self.serializer_provider)
-        result["SimpleModule"] = to_class(SimpleModule, self.simple_module)
-        result["StdDeserializer"] = to_class(StdDeserializer, self.std_deserializer)
-        result["StdSerializer"] = to_class(StdSerializer, self.std_serializer)
-        result["dummy"] = from_int(self.dummy)
-        result["is"] = to_class(Is, self.obj3_is)
-        result["iterable"] = to_class(IterableClass, self.iterable)
-        result["jdec"] = to_class(Jdec, self.jdec)
-        result["jenc"] = to_class(Jenc, self.jenc)
-        result["jpipe"] = to_class(Jpipe, self.jpipe)
-        result["json"] = to_class(JSON, self.json)
-        result["json_converter"] = to_class(JSONConverter, self.json_converter)
-        result["json_serializer"] = to_class(JSONSerializer, self.json_serializer)
-        result["json_token"] = to_class(JSONToken, self.json_token)
-        result["json_writer"] = to_class(JSONWriter, self.json_writer)
-        result["lambda"] = to_class(Lambda, self.obj3_lambda)
-        result["lazy"] = to_class(Lazy, self.lazy)
-        result["left"] = to_class(Left, self.left)
-        result["let"] = to_class(Let, self.let)
-        result["list"] = to_class(ListClass, self.list)
-        result["lock"] = to_class(Lock, self.lock)
-        result["long"] = to_class(Long, self.long)
-        result["map"] = to_class(Map, self.map)
-        result["metadata_property_handling"] = to_class(MetadataPropertyHandling, self.metadata_property_handling)
-        result["module"] = to_class(Module, self.module)
-        result["mutable"] = to_class(Mutable, self.mutable)
-        result["mutating"] = to_class(Mutating, self.mutating)
-        result["namespace"] = to_class(Namespace, self.namespace)
-        result["native"] = to_class(Native, self.native)
-        result["new"] = to_class(New, self.new)
-        result["newtonsoft"] = to_class(Newtonsoft, self.newtonsoft)
-        result["nil"] = to_class(Nil, self.nil)
-        result["noSuchMethod"] = to_class(NoSuchMethod, self.no_such_method)
-        result["noexcept"] = to_class(Noexcept, self.noexcept)
-        result["nonatomic"] = to_class(Nonatomic, self.nonatomic)
-        result["none"] = to_class(Obj3None, self.obj3_none)
-        result["nonlocal"] = to_class(Nonlocal, self.obj3_nonlocal)
-        result["nonmutating"] = to_class(Nonmutating, self.nonmutating)
-        result["not"] = to_class(Not, self.obj3_not)
-        result["not_eq"] = to_class(NotEq, self.not_eq)
-        result["null"] = to_class(NullClass, self.obj3_null)
-        result["nullptr"] = to_class(Nullptr, self.nullptr)
-        result["number"] = to_class(Number, self.number)
-        result["object"] = to_class(Object, self.object)
-        result["of"] = to_class(Of, self.of)
-        result["oneway"] = to_class(Oneway, self.oneway)
-        result["open"] = to_class(Open, self.open)
-        result["operator"] = to_class(Operator, self.operator)
-        result["optional"] = to_class(OptionalClass, self.optional)
-        result["or"] = to_class(Or, self.obj3_or)
-        result["or_eq"] = to_class(OrEq, self.or_eq)
-        result["out"] = to_class(Out, self.out)
-        result["override"] = to_class(Override, self.override)
-        result["package"] = to_class(Package, self.package)
-        result["params"] = to_class(Params, self.params)
-        result["pass"] = to_class(Pass, self.obj3_pass)
-        result["port"] = to_class(Port, self.port)
-        result["postfix"] = to_class(Postfix, self.postfix)
-        result["precedence"] = to_class(Precedence, self.precedence)
-        result["prefix"] = to_class(Prefix, self.prefix)
-        result["print"] = to_class(Print, self.obj3_print)
-        result["printMembers"] = to_class(PrintMembers, self.print_members)
-        result["printf"] = to_class(Printf, self.printf)
-        result["private"] = to_class(Private, self.private)
-        result["protected"] = to_class(Protected, self.protected)
-        result["protocol"] = to_class(ProtocolClass, self.obj3_protocol)
-        return result
-
-
-@dataclass
-class Raise:
-    raise_raise: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Raise':
-        assert isinstance(obj, dict)
-        raise_raise = from_int(obj["raise"])
-        return Raise(raise_raise)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["raise"] = from_int(self.raise_raise)
-        return result
-
-
-@dataclass
-class Return:
-    return_return: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Return':
-        assert isinstance(obj, dict)
-        return_return = from_int(obj["return"])
-        return Return(return_return)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["return"] = from_int(self.return_return)
-        return result
-
-
-@dataclass
-class Self:
-    self_self: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Self':
-        assert isinstance(obj, dict)
-        self_self = from_int(obj["Self"])
-        return Self(self_self)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["Self"] = from_int(self.self_self)
-        return result
-
-
-@dataclass
-class Obj4True:
-    true: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Obj4True':
-        assert isinstance(obj, dict)
-        true = from_int(obj["true"])
-        return Obj4True(true)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["true"] = from_int(self.true)
-        return result
-
-
-@dataclass
-class Try:
-    try_try: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Try':
-        assert isinstance(obj, dict)
-        try_try = from_int(obj["try"])
-        return Try(try_try)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["try"] = from_int(self.try_try)
-        return result
-
-
-@dataclass
-class Obj4Type:
-    type: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Obj4Type':
-        assert isinstance(obj, dict)
-        type = from_int(obj["type"])
-        return Obj4Type(type)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["type"] = from_int(self.type)
-        return result
-
-
-@dataclass
-class Public:
-    public: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Public':
-        assert isinstance(obj, dict)
-        public = from_int(obj["public"])
-        return Public(public)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["public"] = from_int(self.public)
-        return result
-
-
-@dataclass
-class SelfClass:
-    self_self: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'SelfClass':
+    def from_dict(obj: Any) -> 'SelfClass':
         assert isinstance(obj, dict)
         self_self = from_int(obj["self"])
         return SelfClass(self_self)
@@ -4798,158 +4593,526 @@ class Serialize:
     serialize: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Serialize':
+    def from_dict(obj: Any) -> 'Serialize':
+        assert isinstance(obj, dict)
+        serialize = from_int(obj["serialize"])
+        return Serialize(serialize)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["serialize"] = from_int(self.serialize)
+        return result
+
+
+@dataclass
+class SerializerProvider:
+    serializer_provider: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'SerializerProvider':
+        assert isinstance(obj, dict)
+        serializer_provider = from_int(obj["SerializerProvider"])
+        return SerializerProvider(serializer_provider)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["SerializerProvider"] = from_int(self.serializer_provider)
+        return result
+
+
+@dataclass
+class Set:
+    set: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Set':
+        assert isinstance(obj, dict)
+        set = from_int(obj["set"])
+        return Set(set)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["set"] = from_int(self.set)
+        return result
+
+
+@dataclass
+class Short:
+    short: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Short':
+        assert isinstance(obj, dict)
+        short = from_int(obj["short"])
+        return Short(short)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["short"] = from_int(self.short)
+        return result
+
+
+@dataclass
+class Signed:
+    signed: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Signed':
+        assert isinstance(obj, dict)
+        signed = from_int(obj["signed"])
+        return Signed(signed)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["signed"] = from_int(self.signed)
+        return result
+
+
+@dataclass
+class SimpleModule:
+    simple_module: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'SimpleModule':
+        assert isinstance(obj, dict)
+        simple_module = from_int(obj["SimpleModule"])
+        return SimpleModule(simple_module)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["SimpleModule"] = from_int(self.simple_module)
+        return result
+
+
+@dataclass
+class Sizeof:
+    sizeof: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Sizeof':
+        assert isinstance(obj, dict)
+        sizeof = from_int(obj["sizeof"])
+        return Sizeof(sizeof)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["sizeof"] = from_int(self.sizeof)
+        return result
+
+
+@dataclass
+class Stackalloc:
+    stackalloc: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Stackalloc':
+        assert isinstance(obj, dict)
+        stackalloc = from_int(obj["stackalloc"])
+        return Stackalloc(stackalloc)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["stackalloc"] = from_int(self.stackalloc)
+        return result
+
+
+@dataclass
+class Standards:
+    standards: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Standards':
+        assert isinstance(obj, dict)
+        standards = from_int(obj["Standards"])
+        return Standards(standards)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["Standards"] = from_int(self.standards)
+        return result
+
+
+@dataclass
+class Static:
+    static: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Static':
+        assert isinstance(obj, dict)
+        static = from_int(obj["static"])
+        return Static(static)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["static"] = from_int(self.static)
+        return result
+
+
+@dataclass
+class StaticAssert:
+    static_assert: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'StaticAssert':
+        assert isinstance(obj, dict)
+        static_assert = from_int(obj["static_assert"])
+        return StaticAssert(static_assert)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["static_assert"] = from_int(self.static_assert)
+        return result
+
+
+@dataclass
+class Obj4:
+    object_mapper: ObjectMapper
+    protocol: Protocol
+    reg_exp: RegExp
+    sel: Sel
+    obj4_self: Self
+    serializer_provider: SerializerProvider
+    simple_module: SimpleModule
+    standards: Standards
+    dummy: int
+    nullptr: Nullptr
+    number: Number
+    object: Object
+    of: Of
+    oneway: Oneway
+    open: Open
+    operator: Operator
+    optional: OptionalClass
+    obj4_or: Or
+    or_eq: OrEq
+    out: Out
+    override: Override
+    package: Package
+    params: Params
+    obj4_pass: Pass
+    port: Port
+    postfix: Postfix
+    precedence: Precedence
+    prefix: Prefix
+    obj4_print: Print
+    print_members: PrintMembers
+    printf: Printf
+    private: Private
+    protected: Protected
+    obj4_protocol: ProtocolClass
+    public: Public
+    quicktype: Quicktype
+    obj4_raise: Raise
+    range: Range
+    readonly: Readonly
+    ref: Ref
+    register: Register
+    reinterpret_cast: ReinterpretCast
+    repeat: Repeat
+    require: Require
+    required: Required
+    requires: Requires
+    restrict: Restrict
+    retain: Retain
+    rethrows: Rethrows
+    obj4_return: Return
+    right: Right
+    runtime_type: RuntimeType
+    s: S
+    sbyte: Sbyte
+    sealed: Sealed
+    select: Select
+    purple_self: SelfClass
+    serialize: Serialize
+    set: Set
+    short: Short
+    signed: Signed
+    sizeof: Sizeof
+    stackalloc: Stackalloc
+    static: Static
+    static_assert: StaticAssert
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Obj4':
         assert isinstance(obj, dict)
-        serialize = from_int(obj["serialize"])
-        return Serialize(serialize)
+        object_mapper = ObjectMapper.from_dict(obj["ObjectMapper"])
+        protocol = Protocol.from_dict(obj["Protocol"])
+        reg_exp = RegExp.from_dict(obj["RegExp"])
+        sel = Sel.from_dict(obj["SEL"])
+        obj4_self = Self.from_dict(obj["Self"])
+        serializer_provider = SerializerProvider.from_dict(obj["SerializerProvider"])
+        simple_module = SimpleModule.from_dict(obj["SimpleModule"])
+        standards = Standards.from_dict(obj["Standards"])
+        dummy = from_int(obj["dummy"])
+        nullptr = Nullptr.from_dict(obj["nullptr"])
+        number = Number.from_dict(obj["number"])
+        object = Object.from_dict(obj["object"])
+        of = Of.from_dict(obj["of"])
+        oneway = Oneway.from_dict(obj["oneway"])
+        open = Open.from_dict(obj["open"])
+        operator = Operator.from_dict(obj["operator"])
+        optional = OptionalClass.from_dict(obj["optional"])
+        obj4_or = Or.from_dict(obj["or"])
+        or_eq = OrEq.from_dict(obj["or_eq"])
+        out = Out.from_dict(obj["out"])
+        override = Override.from_dict(obj["override"])
+        package = Package.from_dict(obj["package"])
+        params = Params.from_dict(obj["params"])
+        obj4_pass = Pass.from_dict(obj["pass"])
+        port = Port.from_dict(obj["port"])
+        postfix = Postfix.from_dict(obj["postfix"])
+        precedence = Precedence.from_dict(obj["precedence"])
+        prefix = Prefix.from_dict(obj["prefix"])
+        obj4_print = Print.from_dict(obj["print"])
+        print_members = PrintMembers.from_dict(obj["printMembers"])
+        printf = Printf.from_dict(obj["printf"])
+        private = Private.from_dict(obj["private"])
+        protected = Protected.from_dict(obj["protected"])
+        obj4_protocol = ProtocolClass.from_dict(obj["protocol"])
+        public = Public.from_dict(obj["public"])
+        quicktype = Quicktype.from_dict(obj["quicktype"])
+        obj4_raise = Raise.from_dict(obj["raise"])
+        range = Range.from_dict(obj["range"])
+        readonly = Readonly.from_dict(obj["readonly"])
+        ref = Ref.from_dict(obj["ref"])
+        register = Register.from_dict(obj["register"])
+        reinterpret_cast = ReinterpretCast.from_dict(obj["reinterpret_cast"])
+        repeat = Repeat.from_dict(obj["repeat"])
+        require = Require.from_dict(obj["require"])
+        required = Required.from_dict(obj["required"])
+        requires = Requires.from_dict(obj["requires"])
+        restrict = Restrict.from_dict(obj["restrict"])
+        retain = Retain.from_dict(obj["retain"])
+        rethrows = Rethrows.from_dict(obj["rethrows"])
+        obj4_return = Return.from_dict(obj["return"])
+        right = Right.from_dict(obj["right"])
+        runtime_type = RuntimeType.from_dict(obj["runtimeType"])
+        s = S.from_dict(obj["s"])
+        sbyte = Sbyte.from_dict(obj["sbyte"])
+        sealed = Sealed.from_dict(obj["sealed"])
+        select = Select.from_dict(obj["select"])
+        purple_self = SelfClass.from_dict(obj["self"])
+        serialize = Serialize.from_dict(obj["serialize"])
+        set = Set.from_dict(obj["set"])
+        short = Short.from_dict(obj["short"])
+        signed = Signed.from_dict(obj["signed"])
+        sizeof = Sizeof.from_dict(obj["sizeof"])
+        stackalloc = Stackalloc.from_dict(obj["stackalloc"])
+        static = Static.from_dict(obj["static"])
+        static_assert = StaticAssert.from_dict(obj["static_assert"])
+        return Obj4(object_mapper, protocol, reg_exp, sel, obj4_self, serializer_provider, simple_module, standards, dummy, nullptr, number, object, of, oneway, open, operator, optional, obj4_or, or_eq, out, override, package, params, obj4_pass, port, postfix, precedence, prefix, obj4_print, print_members, printf, private, protected, obj4_protocol, public, quicktype, obj4_raise, range, readonly, ref, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, obj4_return, right, runtime_type, s, sbyte, sealed, select, purple_self, serialize, set, short, signed, sizeof, stackalloc, static, static_assert)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["serialize"] = from_int(self.serialize)
+        result["ObjectMapper"] = to_class(ObjectMapper, self.object_mapper)
+        result["Protocol"] = to_class(Protocol, self.protocol)
+        result["RegExp"] = to_class(RegExp, self.reg_exp)
+        result["SEL"] = to_class(Sel, self.sel)
+        result["Self"] = to_class(Self, self.obj4_self)
+        result["SerializerProvider"] = to_class(SerializerProvider, self.serializer_provider)
+        result["SimpleModule"] = to_class(SimpleModule, self.simple_module)
+        result["Standards"] = to_class(Standards, self.standards)
+        result["dummy"] = from_int(self.dummy)
+        result["nullptr"] = to_class(Nullptr, self.nullptr)
+        result["number"] = to_class(Number, self.number)
+        result["object"] = to_class(Object, self.object)
+        result["of"] = to_class(Of, self.of)
+        result["oneway"] = to_class(Oneway, self.oneway)
+        result["open"] = to_class(Open, self.open)
+        result["operator"] = to_class(Operator, self.operator)
+        result["optional"] = to_class(OptionalClass, self.optional)
+        result["or"] = to_class(Or, self.obj4_or)
+        result["or_eq"] = to_class(OrEq, self.or_eq)
+        result["out"] = to_class(Out, self.out)
+        result["override"] = to_class(Override, self.override)
+        result["package"] = to_class(Package, self.package)
+        result["params"] = to_class(Params, self.params)
+        result["pass"] = to_class(Pass, self.obj4_pass)
+        result["port"] = to_class(Port, self.port)
+        result["postfix"] = to_class(Postfix, self.postfix)
+        result["precedence"] = to_class(Precedence, self.precedence)
+        result["prefix"] = to_class(Prefix, self.prefix)
+        result["print"] = to_class(Print, self.obj4_print)
+        result["printMembers"] = to_class(PrintMembers, self.print_members)
+        result["printf"] = to_class(Printf, self.printf)
+        result["private"] = to_class(Private, self.private)
+        result["protected"] = to_class(Protected, self.protected)
+        result["protocol"] = to_class(ProtocolClass, self.obj4_protocol)
+        result["public"] = to_class(Public, self.public)
+        result["quicktype"] = to_class(Quicktype, self.quicktype)
+        result["raise"] = to_class(Raise, self.obj4_raise)
+        result["range"] = to_class(Range, self.range)
+        result["readonly"] = to_class(Readonly, self.readonly)
+        result["ref"] = to_class(Ref, self.ref)
+        result["register"] = to_class(Register, self.register)
+        result["reinterpret_cast"] = to_class(ReinterpretCast, self.reinterpret_cast)
+        result["repeat"] = to_class(Repeat, self.repeat)
+        result["require"] = to_class(Require, self.require)
+        result["required"] = to_class(Required, self.required)
+        result["requires"] = to_class(Requires, self.requires)
+        result["restrict"] = to_class(Restrict, self.restrict)
+        result["retain"] = to_class(Retain, self.retain)
+        result["rethrows"] = to_class(Rethrows, self.rethrows)
+        result["return"] = to_class(Return, self.obj4_return)
+        result["right"] = to_class(Right, self.right)
+        result["runtimeType"] = to_class(RuntimeType, self.runtime_type)
+        result["s"] = to_class(S, self.s)
+        result["sbyte"] = to_class(Sbyte, self.sbyte)
+        result["sealed"] = to_class(Sealed, self.sealed)
+        result["select"] = to_class(Select, self.select)
+        result["self"] = to_class(SelfClass, self.purple_self)
+        result["serialize"] = to_class(Serialize, self.serialize)
+        result["set"] = to_class(Set, self.set)
+        result["short"] = to_class(Short, self.short)
+        result["signed"] = to_class(Signed, self.signed)
+        result["sizeof"] = to_class(Sizeof, self.sizeof)
+        result["stackalloc"] = to_class(Stackalloc, self.stackalloc)
+        result["static"] = to_class(Static, self.static)
+        result["static_assert"] = to_class(StaticAssert, self.static_assert)
         return result
 
 
 @dataclass
-class Set:
-    set: int
+class Obj5True:
+    true: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Set':
+    def from_dict(obj: Any) -> 'Obj5True':
         assert isinstance(obj, dict)
-        set = from_int(obj["set"])
-        return Set(set)
+        true = from_int(obj["true"])
+        return Obj5True(true)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["set"] = from_int(self.set)
+        result["true"] = from_int(self.true)
         return result
 
 
 @dataclass
-class Short:
-    short: int
+class Try:
+    try_try: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Short':
+    def from_dict(obj: Any) -> 'Try':
         assert isinstance(obj, dict)
-        short = from_int(obj["short"])
-        return Short(short)
+        try_try = from_int(obj["try"])
+        return Try(try_try)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["short"] = from_int(self.short)
+        result["try"] = from_int(self.try_try)
         return result
 
 
 @dataclass
-class Signed:
-    signed: int
+class Obj5Type:
+    type: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Signed':
+    def from_dict(obj: Any) -> 'Obj5Type':
         assert isinstance(obj, dict)
-        signed = from_int(obj["signed"])
-        return Signed(signed)
+        type = from_int(obj["type"])
+        return Obj5Type(type)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["signed"] = from_int(self.signed)
+        result["type"] = from_int(self.type)
         return result
 
 
 @dataclass
-class Sizeof:
-    sizeof: int
+class While:
+    while_while: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Sizeof':
+    def from_dict(obj: Any) -> 'While':
         assert isinstance(obj, dict)
-        sizeof = from_int(obj["sizeof"])
-        return Sizeof(sizeof)
+        while_while = from_int(obj["while"])
+        return While(while_while)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["sizeof"] = from_int(self.sizeof)
+        result["while"] = from_int(self.while_while)
         return result
 
 
 @dataclass
-class Stackalloc:
-    stackalloc: int
+class With:
+    with_with: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Stackalloc':
+    def from_dict(obj: Any) -> 'With':
         assert isinstance(obj, dict)
-        stackalloc = from_int(obj["stackalloc"])
-        return Stackalloc(stackalloc)
+        with_with = from_int(obj["with"])
+        return With(with_with)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["stackalloc"] = from_int(self.stackalloc)
+        result["with"] = from_int(self.with_with)
         return result
 
 
 @dataclass
-class Standards:
-    standards: int
+class Yield:
+    yield_yield: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Standards':
+    def from_dict(obj: Any) -> 'Yield':
         assert isinstance(obj, dict)
-        standards = from_int(obj["Standards"])
-        return Standards(standards)
+        yield_yield = from_int(obj["yield"])
+        return Yield(yield_yield)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["Standards"] = from_int(self.standards)
+        result["yield"] = from_int(self.yield_yield)
         return result
 
 
 @dataclass
-class Static:
-    static: int
+class StaticCast:
+    static_cast: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Static':
+    def from_dict(obj: Any) -> 'StaticCast':
         assert isinstance(obj, dict)
-        static = from_int(obj["static"])
-        return Static(static)
+        static_cast = from_int(obj["static_cast"])
+        return StaticCast(static_cast)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["static"] = from_int(self.static)
+        result["static_cast"] = from_int(self.static_cast)
         return result
 
 
 @dataclass
-class StaticAssert:
-    static_assert: int
+class StdDeserializer:
+    std_deserializer: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'StaticAssert':
+    def from_dict(obj: Any) -> 'StdDeserializer':
         assert isinstance(obj, dict)
-        static_assert = from_int(obj["static_assert"])
-        return StaticAssert(static_assert)
+        std_deserializer = from_int(obj["StdDeserializer"])
+        return StdDeserializer(std_deserializer)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["static_assert"] = from_int(self.static_assert)
+        result["StdDeserializer"] = from_int(self.std_deserializer)
         return result
 
 
 @dataclass
-class StaticCast:
-    static_cast: int
+class StdSerializer:
+    std_serializer: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'StaticCast':
+    def from_dict(obj: Any) -> 'StdSerializer':
         assert isinstance(obj, dict)
-        static_cast = from_int(obj["static_cast"])
-        return StaticCast(static_cast)
+        std_serializer = from_int(obj["StdSerializer"])
+        return StdSerializer(std_serializer)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["static_cast"] = from_int(self.static_cast)
+        result["StdSerializer"] = from_int(self.std_serializer)
         return result
 
 
@@ -5365,380 +5528,103 @@ class Typeid:
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["typeid"] = from_int(self.typeid)
-        return result
-
-
-@dataclass
-class Typename:
-    typename: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Typename':
-        assert isinstance(obj, dict)
-        typename = from_int(obj["typename"])
-        return Typename(typename)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["typename"] = from_int(self.typename)
-        return result
-
-
-@dataclass
-class Typeof:
-    typeof: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Typeof':
-        assert isinstance(obj, dict)
-        typeof = from_int(obj["typeof"])
-        return Typeof(typeof)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["typeof"] = from_int(self.typeof)
-        return result
-
-
-@dataclass
-class Uint:
-    uint: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Uint':
-        assert isinstance(obj, dict)
-        uint = from_int(obj["uint"])
-        return Uint(uint)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["uint"] = from_int(self.uint)
-        return result
-
-
-@dataclass
-class Ulong:
-    ulong: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Ulong':
-        assert isinstance(obj, dict)
-        ulong = from_int(obj["ulong"])
-        return Ulong(ulong)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["ulong"] = from_int(self.ulong)
-        return result
-
-
-@dataclass
-class Unchecked:
-    unchecked: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Unchecked':
-        assert isinstance(obj, dict)
-        unchecked = from_int(obj["unchecked"])
-        return Unchecked(unchecked)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["unchecked"] = from_int(self.unchecked)
-        return result
-
-
-@dataclass
-class Undefined:
-    undefined: int
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Undefined':
-        assert isinstance(obj, dict)
-        undefined = from_int(obj["undefined"])
-        return Undefined(undefined)
-
-    def to_dict(self) -> dict:
-        result: dict = {}
-        result["undefined"] = from_int(self.undefined)
-        return result
-
-
-@dataclass
-class Obj4:
-    reg_exp: RegExp
-    sel: Sel
-    obj4_self: Self
-    standards: Standards
-    time_only: TimeOnly
-    time_only_converter: TimeOnlyConverter
-    true: TrueClass
-    type: TypeClass
-    dummy: int
-    public: Public
-    quicktype: Quicktype
-    obj4_raise: Raise
-    range: Range
-    readonly: Readonly
-    ref: Ref
-    register: Register
-    reinterpret_cast: ReinterpretCast
-    repeat: Repeat
-    require: Require
-    required: Required
-    requires: Requires
-    restrict: Restrict
-    retain: Retain
-    rethrows: Rethrows
-    obj4_return: Return
-    right: Right
-    runtime_type: RuntimeType
-    s: S
-    sbyte: Sbyte
-    sealed: Sealed
-    select: Select
-    purple_self: SelfClass
-    serialize: Serialize
-    set: Set
-    short: Short
-    signed: Signed
-    sizeof: Sizeof
-    stackalloc: Stackalloc
-    static: Static
-    static_assert: StaticAssert
-    static_cast: StaticCast
-    strictfp: Strictfp
-    string: String
-    struct: Struct
-    subscript: Subscript
-    super: Super
-    switch: Switch
-    symbol: Symbol
-    synchronized: Synchronized
-    system: System
-    template: Template
-    then: Then
-    this: This
-    thread_local: ThreadLocal
-    throw: Throw
-    throws: Throws
-    to_string: ToString
-    to_json: ToJSON
-    top_level: TopLevelClass
-    transient: Transient
-    obj4_true: Obj4True
-    obj4_try: Try
-    obj4_type: Obj4Type
-    typealias: Typealias
-    typedef: Typedef
-    typeid: Typeid
-    typename: Typename
-    typeof: Typeof
-    uint: Uint
-    ulong: Ulong
-    unchecked: Unchecked
-    undefined: Undefined
-
-    @staticmethod
-    def from_dict(obj: Any) -> 'Obj4':
-        assert isinstance(obj, dict)
-        reg_exp = RegExp.from_dict(obj["RegExp"])
-        sel = Sel.from_dict(obj["SEL"])
-        obj4_self = Self.from_dict(obj["Self"])
-        standards = Standards.from_dict(obj["Standards"])
-        time_only = TimeOnly.from_dict(obj["TimeOnly"])
-        time_only_converter = TimeOnlyConverter.from_dict(obj["TimeOnlyConverter"])
-        true = TrueClass.from_dict(obj["True"])
-        type = TypeClass.from_dict(obj["Type"])
-        dummy = from_int(obj["dummy"])
-        public = Public.from_dict(obj["public"])
-        quicktype = Quicktype.from_dict(obj["quicktype"])
-        obj4_raise = Raise.from_dict(obj["raise"])
-        range = Range.from_dict(obj["range"])
-        readonly = Readonly.from_dict(obj["readonly"])
-        ref = Ref.from_dict(obj["ref"])
-        register = Register.from_dict(obj["register"])
-        reinterpret_cast = ReinterpretCast.from_dict(obj["reinterpret_cast"])
-        repeat = Repeat.from_dict(obj["repeat"])
-        require = Require.from_dict(obj["require"])
-        required = Required.from_dict(obj["required"])
-        requires = Requires.from_dict(obj["requires"])
-        restrict = Restrict.from_dict(obj["restrict"])
-        retain = Retain.from_dict(obj["retain"])
-        rethrows = Rethrows.from_dict(obj["rethrows"])
-        obj4_return = Return.from_dict(obj["return"])
-        right = Right.from_dict(obj["right"])
-        runtime_type = RuntimeType.from_dict(obj["runtimeType"])
-        s = S.from_dict(obj["s"])
-        sbyte = Sbyte.from_dict(obj["sbyte"])
-        sealed = Sealed.from_dict(obj["sealed"])
-        select = Select.from_dict(obj["select"])
-        purple_self = SelfClass.from_dict(obj["self"])
-        serialize = Serialize.from_dict(obj["serialize"])
-        set = Set.from_dict(obj["set"])
-        short = Short.from_dict(obj["short"])
-        signed = Signed.from_dict(obj["signed"])
-        sizeof = Sizeof.from_dict(obj["sizeof"])
-        stackalloc = Stackalloc.from_dict(obj["stackalloc"])
-        static = Static.from_dict(obj["static"])
-        static_assert = StaticAssert.from_dict(obj["static_assert"])
-        static_cast = StaticCast.from_dict(obj["static_cast"])
-        strictfp = Strictfp.from_dict(obj["strictfp"])
-        string = String.from_dict(obj["string"])
-        struct = Struct.from_dict(obj["struct"])
-        subscript = Subscript.from_dict(obj["subscript"])
-        super = Super.from_dict(obj["super"])
-        switch = Switch.from_dict(obj["switch"])
-        symbol = Symbol.from_dict(obj["symbol"])
-        synchronized = Synchronized.from_dict(obj["synchronized"])
-        system = System.from_dict(obj["system"])
-        template = Template.from_dict(obj["template"])
-        then = Then.from_dict(obj["then"])
-        this = This.from_dict(obj["this"])
-        thread_local = ThreadLocal.from_dict(obj["thread_local"])
-        throw = Throw.from_dict(obj["throw"])
-        throws = Throws.from_dict(obj["throws"])
-        to_string = ToString.from_dict(obj["toString"])
-        to_json = ToJSON.from_dict(obj["to_json"])
-        top_level = TopLevelClass.from_dict(obj["top_level"])
-        transient = Transient.from_dict(obj["transient"])
-        obj4_true = Obj4True.from_dict(obj["true"])
-        obj4_try = Try.from_dict(obj["try"])
-        obj4_type = Obj4Type.from_dict(obj["type"])
-        typealias = Typealias.from_dict(obj["typealias"])
-        typedef = Typedef.from_dict(obj["typedef"])
-        typeid = Typeid.from_dict(obj["typeid"])
-        typename = Typename.from_dict(obj["typename"])
-        typeof = Typeof.from_dict(obj["typeof"])
-        uint = Uint.from_dict(obj["uint"])
-        ulong = Ulong.from_dict(obj["ulong"])
-        unchecked = Unchecked.from_dict(obj["unchecked"])
-        undefined = Undefined.from_dict(obj["undefined"])
-        return Obj4(reg_exp, sel, obj4_self, standards, time_only, time_only_converter, true, type, dummy, public, quicktype, obj4_raise, range, readonly, ref, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, obj4_return, right, runtime_type, s, sbyte, sealed, select, purple_self, serialize, set, short, signed, sizeof, stackalloc, static, static_assert, static_cast, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, to_string, to_json, top_level, transient, obj4_true, obj4_try, obj4_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined)
+        result["typeid"] = from_int(self.typeid)
+        return result
+
+
+@dataclass
+class Typename:
+    typename: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Typename':
+        assert isinstance(obj, dict)
+        typename = from_int(obj["typename"])
+        return Typename(typename)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["RegExp"] = to_class(RegExp, self.reg_exp)
-        result["SEL"] = to_class(Sel, self.sel)
-        result["Self"] = to_class(Self, self.obj4_self)
-        result["Standards"] = to_class(Standards, self.standards)
-        result["TimeOnly"] = to_class(TimeOnly, self.time_only)
-        result["TimeOnlyConverter"] = to_class(TimeOnlyConverter, self.time_only_converter)
-        result["True"] = to_class(TrueClass, self.true)
-        result["Type"] = to_class(TypeClass, self.type)
-        result["dummy"] = from_int(self.dummy)
-        result["public"] = to_class(Public, self.public)
-        result["quicktype"] = to_class(Quicktype, self.quicktype)
-        result["raise"] = to_class(Raise, self.obj4_raise)
-        result["range"] = to_class(Range, self.range)
-        result["readonly"] = to_class(Readonly, self.readonly)
-        result["ref"] = to_class(Ref, self.ref)
-        result["register"] = to_class(Register, self.register)
-        result["reinterpret_cast"] = to_class(ReinterpretCast, self.reinterpret_cast)
-        result["repeat"] = to_class(Repeat, self.repeat)
-        result["require"] = to_class(Require, self.require)
-        result["required"] = to_class(Required, self.required)
-        result["requires"] = to_class(Requires, self.requires)
-        result["restrict"] = to_class(Restrict, self.restrict)
-        result["retain"] = to_class(Retain, self.retain)
-        result["rethrows"] = to_class(Rethrows, self.rethrows)
-        result["return"] = to_class(Return, self.obj4_return)
-        result["right"] = to_class(Right, self.right)
-        result["runtimeType"] = to_class(RuntimeType, self.runtime_type)
-        result["s"] = to_class(S, self.s)
-        result["sbyte"] = to_class(Sbyte, self.sbyte)
-        result["sealed"] = to_class(Sealed, self.sealed)
-        result["select"] = to_class(Select, self.select)
-        result["self"] = to_class(SelfClass, self.purple_self)
-        result["serialize"] = to_class(Serialize, self.serialize)
-        result["set"] = to_class(Set, self.set)
-        result["short"] = to_class(Short, self.short)
-        result["signed"] = to_class(Signed, self.signed)
-        result["sizeof"] = to_class(Sizeof, self.sizeof)
-        result["stackalloc"] = to_class(Stackalloc, self.stackalloc)
-        result["static"] = to_class(Static, self.static)
-        result["static_assert"] = to_class(StaticAssert, self.static_assert)
-        result["static_cast"] = to_class(StaticCast, self.static_cast)
-        result["strictfp"] = to_class(Strictfp, self.strictfp)
-        result["string"] = to_class(String, self.string)
-        result["struct"] = to_class(Struct, self.struct)
-        result["subscript"] = to_class(Subscript, self.subscript)
-        result["super"] = to_class(Super, self.super)
-        result["switch"] = to_class(Switch, self.switch)
-        result["symbol"] = to_class(Symbol, self.symbol)
-        result["synchronized"] = to_class(Synchronized, self.synchronized)
-        result["system"] = to_class(System, self.system)
-        result["template"] = to_class(Template, self.template)
-        result["then"] = to_class(Then, self.then)
-        result["this"] = to_class(This, self.this)
-        result["thread_local"] = to_class(ThreadLocal, self.thread_local)
-        result["throw"] = to_class(Throw, self.throw)
-        result["throws"] = to_class(Throws, self.throws)
-        result["toString"] = to_class(ToString, self.to_string)
-        result["to_json"] = to_class(ToJSON, self.to_json)
-        result["top_level"] = to_class(TopLevelClass, self.top_level)
-        result["transient"] = to_class(Transient, self.transient)
-        result["true"] = to_class(Obj4True, self.obj4_true)
-        result["try"] = to_class(Try, self.obj4_try)
-        result["type"] = to_class(Obj4Type, self.obj4_type)
-        result["typealias"] = to_class(Typealias, self.typealias)
-        result["typedef"] = to_class(Typedef, self.typedef)
-        result["typeid"] = to_class(Typeid, self.typeid)
-        result["typename"] = to_class(Typename, self.typename)
-        result["typeof"] = to_class(Typeof, self.typeof)
-        result["uint"] = to_class(Uint, self.uint)
-        result["ulong"] = to_class(Ulong, self.ulong)
-        result["unchecked"] = to_class(Unchecked, self.unchecked)
-        result["undefined"] = to_class(Undefined, self.undefined)
+        result["typename"] = from_int(self.typename)
         return result
 
 
 @dataclass
-class While:
-    while_while: int
+class Typeof:
+    typeof: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'While':
+    def from_dict(obj: Any) -> 'Typeof':
         assert isinstance(obj, dict)
-        while_while = from_int(obj["while"])
-        return While(while_while)
+        typeof = from_int(obj["typeof"])
+        return Typeof(typeof)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["while"] = from_int(self.while_while)
+        result["typeof"] = from_int(self.typeof)
         return result
 
 
 @dataclass
-class With:
-    with_with: int
+class Uint:
+    uint: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'With':
+    def from_dict(obj: Any) -> 'Uint':
         assert isinstance(obj, dict)
-        with_with = from_int(obj["with"])
-        return With(with_with)
+        uint = from_int(obj["uint"])
+        return Uint(uint)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["with"] = from_int(self.with_with)
+        result["uint"] = from_int(self.uint)
         return result
 
 
 @dataclass
-class Yield:
-    yield_yield: int
+class Ulong:
+    ulong: int
 
     @staticmethod
-    def from_dict(obj: Any) -> 'Yield':
+    def from_dict(obj: Any) -> 'Ulong':
         assert isinstance(obj, dict)
-        yield_yield = from_int(obj["yield"])
-        return Yield(yield_yield)
+        ulong = from_int(obj["ulong"])
+        return Ulong(ulong)
 
     def to_dict(self) -> dict:
         result: dict = {}
-        result["yield"] = from_int(self.yield_yield)
+        result["ulong"] = from_int(self.ulong)
+        return result
+
+
+@dataclass
+class Unchecked:
+    unchecked: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Unchecked':
+        assert isinstance(obj, dict)
+        unchecked = from_int(obj["unchecked"])
+        return Unchecked(unchecked)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["unchecked"] = from_int(self.unchecked)
+        return result
+
+
+@dataclass
+class Undefined:
+    undefined: int
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Undefined':
+        assert isinstance(obj, dict)
+        undefined = from_int(obj["undefined"])
+        return Undefined(undefined)
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        result["undefined"] = from_int(self.undefined)
         return result
 
 
@@ -6064,11 +5950,49 @@ class Yes:
 
 @dataclass
 class Obj5:
+    std_deserializer: StdDeserializer
+    std_serializer: StdSerializer
+    time_only: TimeOnly
+    time_only_converter: TimeOnlyConverter
+    true: TrueClass
+    type: TypeClass
     uuid: UUIDClass
     utf8_json_reader: Utf8JSONReader
     utf8_json_writer: Utf8JSONWriter
     yes: Yes
     dummy: int
+    static_cast: StaticCast
+    strictfp: Strictfp
+    string: String
+    struct: Struct
+    subscript: Subscript
+    super: Super
+    switch: Switch
+    symbol: Symbol
+    synchronized: Synchronized
+    system: System
+    template: Template
+    then: Then
+    this: This
+    thread_local: ThreadLocal
+    throw: Throw
+    throws: Throws
+    to_string: ToString
+    to_json: ToJSON
+    top_level: TopLevelClass
+    transient: Transient
+    obj5_true: Obj5True
+    obj5_try: Try
+    obj5_type: Obj5Type
+    typealias: Typealias
+    typedef: Typedef
+    typeid: Typeid
+    typename: Typename
+    typeof: Typeof
+    uint: Uint
+    ulong: Ulong
+    unchecked: Unchecked
+    undefined: Undefined
     union: UnionClass
     unowned: Unowned
     unsafe: Unsafe
@@ -6092,11 +6016,49 @@ class Obj5:
     @staticmethod
     def from_dict(obj: Any) -> 'Obj5':
         assert isinstance(obj, dict)
+        std_deserializer = StdDeserializer.from_dict(obj["StdDeserializer"])
+        std_serializer = StdSerializer.from_dict(obj["StdSerializer"])
+        time_only = TimeOnly.from_dict(obj["TimeOnly"])
+        time_only_converter = TimeOnlyConverter.from_dict(obj["TimeOnlyConverter"])
+        true = TrueClass.from_dict(obj["True"])
+        type = TypeClass.from_dict(obj["Type"])
         uuid = UUIDClass.from_dict(obj["UUID"])
         utf8_json_reader = Utf8JSONReader.from_dict(obj["Utf8JsonReader"])
         utf8_json_writer = Utf8JSONWriter.from_dict(obj["Utf8JsonWriter"])
         yes = Yes.from_dict(obj["YES"])
         dummy = from_int(obj["dummy"])
+        static_cast = StaticCast.from_dict(obj["static_cast"])
+        strictfp = Strictfp.from_dict(obj["strictfp"])
+        string = String.from_dict(obj["string"])
+        struct = Struct.from_dict(obj["struct"])
+        subscript = Subscript.from_dict(obj["subscript"])
+        super = Super.from_dict(obj["super"])
+        switch = Switch.from_dict(obj["switch"])
+        symbol = Symbol.from_dict(obj["symbol"])
+        synchronized = Synchronized.from_dict(obj["synchronized"])
+        system = System.from_dict(obj["system"])
+        template = Template.from_dict(obj["template"])
+        then = Then.from_dict(obj["then"])
+        this = This.from_dict(obj["this"])
+        thread_local = ThreadLocal.from_dict(obj["thread_local"])
+        throw = Throw.from_dict(obj["throw"])
+        throws = Throws.from_dict(obj["throws"])
+        to_string = ToString.from_dict(obj["toString"])
+        to_json = ToJSON.from_dict(obj["to_json"])
+        top_level = TopLevelClass.from_dict(obj["top_level"])
+        transient = Transient.from_dict(obj["transient"])
+        obj5_true = Obj5True.from_dict(obj["true"])
+        obj5_try = Try.from_dict(obj["try"])
+        obj5_type = Obj5Type.from_dict(obj["type"])
+        typealias = Typealias.from_dict(obj["typealias"])
+        typedef = Typedef.from_dict(obj["typedef"])
+        typeid = Typeid.from_dict(obj["typeid"])
+        typename = Typename.from_dict(obj["typename"])
+        typeof = Typeof.from_dict(obj["typeof"])
+        uint = Uint.from_dict(obj["uint"])
+        ulong = Ulong.from_dict(obj["ulong"])
+        unchecked = Unchecked.from_dict(obj["unchecked"])
+        undefined = Undefined.from_dict(obj["undefined"])
         union = UnionClass.from_dict(obj["union"])
         unowned = Unowned.from_dict(obj["unowned"])
         unsafe = Unsafe.from_dict(obj["unsafe"])
@@ -6116,15 +6078,53 @@ class Obj5:
         xor = Xor.from_dict(obj["xor"])
         xor_eq = XorEq.from_dict(obj["xor_eq"])
         obj5_yield = Yield.from_dict(obj["yield"])
-        return Obj5(uuid, utf8_json_reader, utf8_json_writer, yes, dummy, union, unowned, unsafe, unsigned, ushort, using, var, virtual, void, volatile, wchar_t, weak, where, obj5_while, will_set, obj5_with, xor, xor_eq, obj5_yield)
+        return Obj5(std_deserializer, std_serializer, time_only, time_only_converter, true, type, uuid, utf8_json_reader, utf8_json_writer, yes, dummy, static_cast, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, to_string, to_json, top_level, transient, obj5_true, obj5_try, obj5_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined, union, unowned, unsafe, unsigned, ushort, using, var, virtual, void, volatile, wchar_t, weak, where, obj5_while, will_set, obj5_with, xor, xor_eq, obj5_yield)
 
     def to_dict(self) -> dict:
         result: dict = {}
+        result["StdDeserializer"] = to_class(StdDeserializer, self.std_deserializer)
+        result["StdSerializer"] = to_class(StdSerializer, self.std_serializer)
+        result["TimeOnly"] = to_class(TimeOnly, self.time_only)
+        result["TimeOnlyConverter"] = to_class(TimeOnlyConverter, self.time_only_converter)
+        result["True"] = to_class(TrueClass, self.true)
+        result["Type"] = to_class(TypeClass, self.type)
         result["UUID"] = to_class(UUIDClass, self.uuid)
         result["Utf8JsonReader"] = to_class(Utf8JSONReader, self.utf8_json_reader)
         result["Utf8JsonWriter"] = to_class(Utf8JSONWriter, self.utf8_json_writer)
         result["YES"] = to_class(Yes, self.yes)
         result["dummy"] = from_int(self.dummy)
+        result["static_cast"] = to_class(StaticCast, self.static_cast)
+        result["strictfp"] = to_class(Strictfp, self.strictfp)
+        result["string"] = to_class(String, self.string)
+        result["struct"] = to_class(Struct, self.struct)
+        result["subscript"] = to_class(Subscript, self.subscript)
+        result["super"] = to_class(Super, self.super)
+        result["switch"] = to_class(Switch, self.switch)
+        result["symbol"] = to_class(Symbol, self.symbol)
+        result["synchronized"] = to_class(Synchronized, self.synchronized)
+        result["system"] = to_class(System, self.system)
+        result["template"] = to_class(Template, self.template)
+        result["then"] = to_class(Then, self.then)
+        result["this"] = to_class(This, self.this)
+        result["thread_local"] = to_class(ThreadLocal, self.thread_local)
+        result["throw"] = to_class(Throw, self.throw)
+        result["throws"] = to_class(Throws, self.throws)
+        result["toString"] = to_class(ToString, self.to_string)
+        result["to_json"] = to_class(ToJSON, self.to_json)
+        result["top_level"] = to_class(TopLevelClass, self.top_level)
+        result["transient"] = to_class(Transient, self.transient)
+        result["true"] = to_class(Obj5True, self.obj5_true)
+        result["try"] = to_class(Try, self.obj5_try)
+        result["type"] = to_class(Obj5Type, self.obj5_type)
+        result["typealias"] = to_class(Typealias, self.typealias)
+        result["typedef"] = to_class(Typedef, self.typedef)
+        result["typeid"] = to_class(Typeid, self.typeid)
+        result["typename"] = to_class(Typename, self.typename)
+        result["typeof"] = to_class(Typeof, self.typeof)
+        result["uint"] = to_class(Uint, self.uint)
+        result["ulong"] = to_class(Ulong, self.ulong)
+        result["unchecked"] = to_class(Unchecked, self.unchecked)
+        result["undefined"] = to_class(Undefined, self.undefined)
         result["union"] = to_class(UnionClass, self.union)
         result["unowned"] = to_class(Unowned, self.unowned)
         result["unsafe"] = to_class(Unsafe, self.unsafe)
diff --git a/base/ruby/test/inputs/json/priority/keywords.json/default/TopLevel.rb b/head/ruby/test/inputs/json/priority/keywords.json/default/TopLevel.rb
index 269645e..4b45d41 100644
--- a/base/ruby/test/inputs/json/priority/keywords.json/default/TopLevel.rb
+++ b/head/ruby/test/inputs/json/priority/keywords.json/default/TopLevel.rb
@@ -1347,181 +1347,6 @@ class DateParseHandling < Dry::Struct
   end
 end
 
-class DateTimeClass < Dry::Struct
-  attribute :date_time, Types::String.constrained(format: /\A\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.\d+)?(?:Z|[+-]\d\d:\d\d)\z/i)
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      date_time: d.fetch("DateTime"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "DateTime" => date_time,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class DateTimeStyles < Dry::Struct
-  attribute :date_time_styles, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      date_time_styles: d.fetch("DateTimeStyles"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "DateTimeStyles" => date_time_styles,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Debugger < Dry::Struct
-  attribute :debugger, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      debugger: d.fetch("debugger"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "debugger" => debugger,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Decimal < Dry::Struct
-  attribute :decimal, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      decimal: d.fetch("decimal"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "decimal" => decimal,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Declare < Dry::Struct
-  attribute :declare, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      declare: d.fetch("declare"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "declare" => declare,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Decltype < Dry::Struct
-  attribute :decltype, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      decltype: d.fetch("decltype"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "decltype" => decltype,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class DecodeString < Dry::Struct
-  attribute :decode_string, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      decode_string: d.fetch("decode_string"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "decode_string" => decode_string,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
 class Empty < Dry::Struct
   attribute :empty, Types::Integer
 
@@ -1851,13 +1676,6 @@ class Obj1 < Dry::Struct
   attribute :date_only,           DateOnly
   attribute :date_only_converter, DateOnlyConverter
   attribute :date_parse_handling, DateParseHandling
-  attribute :date_time,           DateTimeClass
-  attribute :date_time_styles,    DateTimeStyles
-  attribute :debugger,            Debugger
-  attribute :decimal,             Decimal
-  attribute :declare,             Declare
-  attribute :decltype,            Decltype
-  attribute :decode_string,       DecodeString
   attribute :dummy,               Types::Integer
   attribute :empty,               Empty
   attribute :imaginery,           Imaginery
@@ -1927,13 +1745,6 @@ class Obj1 < Dry::Struct
       date_only:           DateOnly.from_dynamic!(d.fetch("DateOnly")),
       date_only_converter: DateOnlyConverter.from_dynamic!(d.fetch("DateOnlyConverter")),
       date_parse_handling: DateParseHandling.from_dynamic!(d.fetch("date_parse_handling")),
-      date_time:           DateTimeClass.from_dynamic!(d.fetch("DateTime")),
-      date_time_styles:    DateTimeStyles.from_dynamic!(d.fetch("DateTimeStyles")),
-      debugger:            Debugger.from_dynamic!(d.fetch("debugger")),
-      decimal:             Decimal.from_dynamic!(d.fetch("decimal")),
-      declare:             Declare.from_dynamic!(d.fetch("declare")),
-      decltype:            Decltype.from_dynamic!(d.fetch("decltype")),
-      decode_string:       DecodeString.from_dynamic!(d.fetch("decode_string")),
       dummy:               d.fetch("dummy"),
       empty:               Empty.from_dynamic!(d.fetch("_")),
       imaginery:           Imaginery.from_dynamic!(d.fetch("_Imaginery")),
@@ -2008,13 +1819,6 @@ class Obj1 < Dry::Struct
       "DateOnly"            => date_only.to_dynamic,
       "DateOnlyConverter"   => date_only_converter.to_dynamic,
       "date_parse_handling" => date_parse_handling.to_dynamic,
-      "DateTime"            => date_time.to_dynamic,
-      "DateTimeStyles"      => date_time_styles.to_dynamic,
-      "debugger"            => debugger.to_dynamic,
-      "decimal"             => decimal.to_dynamic,
-      "declare"             => declare.to_dynamic,
-      "decltype"            => decltype.to_dynamic,
-      "decode_string"       => decode_string.to_dynamic,
       "dummy"               => dummy,
       "_"                   => empty.to_dynamic,
       "_Imaginery"          => imaginery.to_dynamic,
@@ -2035,13 +1839,13 @@ class Obj1 < Dry::Struct
   end
 end
 
-class Defer < Dry::Struct
-  attribute :defer, Types::Integer
+class DateTimeClass < Dry::Struct
+  attribute :date_time, Types::String.constrained(format: /\A\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.\d+)?(?:Z|[+-]\d\d:\d\d)\z/i)
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      defer: d.fetch("defer"),
+      date_time: d.fetch("DateTime"),
     )
   end
 
@@ -2051,7 +1855,7 @@ class Defer < Dry::Struct
 
   def to_dynamic
     {
-      "defer" => defer,
+      "DateTime" => date_time,
     }
   end
 
@@ -2060,13 +1864,13 @@ class Defer < Dry::Struct
   end
 end
 
-class Deinit < Dry::Struct
-  attribute :deinit, Types::Integer
+class DateTimeStyles < Dry::Struct
+  attribute :date_time_styles, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      deinit: d.fetch("deinit"),
+      date_time_styles: d.fetch("DateTimeStyles"),
     )
   end
 
@@ -2076,7 +1880,7 @@ class Deinit < Dry::Struct
 
   def to_dynamic
     {
-      "deinit" => deinit,
+      "DateTimeStyles" => date_time_styles,
     }
   end
 
@@ -2085,13 +1889,13 @@ class Deinit < Dry::Struct
   end
 end
 
-class Del < Dry::Struct
-  attribute :del, Types::Integer
+class Debugger < Dry::Struct
+  attribute :debugger, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      del: d.fetch("del"),
+      debugger: d.fetch("debugger"),
     )
   end
 
@@ -2101,7 +1905,7 @@ class Del < Dry::Struct
 
   def to_dynamic
     {
-      "del" => del,
+      "debugger" => debugger,
     }
   end
 
@@ -2110,13 +1914,13 @@ class Del < Dry::Struct
   end
 end
 
-class Delegate < Dry::Struct
-  attribute :delegate, Types::Integer
+class Decimal < Dry::Struct
+  attribute :decimal, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      delegate: d.fetch("delegate"),
+      decimal: d.fetch("decimal"),
     )
   end
 
@@ -2126,7 +1930,7 @@ class Delegate < Dry::Struct
 
   def to_dynamic
     {
-      "delegate" => delegate,
+      "decimal" => decimal,
     }
   end
 
@@ -2135,13 +1939,13 @@ class Delegate < Dry::Struct
   end
 end
 
-class Delete < Dry::Struct
-  attribute :delete, Types::Integer
+class Declare < Dry::Struct
+  attribute :declare, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      delete: d.fetch("delete"),
+      declare: d.fetch("declare"),
     )
   end
 
@@ -2151,7 +1955,7 @@ class Delete < Dry::Struct
 
   def to_dynamic
     {
-      "delete" => delete,
+      "declare" => declare,
     }
   end
 
@@ -2160,13 +1964,13 @@ class Delete < Dry::Struct
   end
 end
 
-class Dict < Dry::Struct
-  attribute :dict, Types::Integer
+class Decltype < Dry::Struct
+  attribute :decltype, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      dict: d.fetch("dict"),
+      decltype: d.fetch("decltype"),
     )
   end
 
@@ -2176,7 +1980,7 @@ class Dict < Dry::Struct
 
   def to_dynamic
     {
-      "dict" => dict,
+      "decltype" => decltype,
     }
   end
 
@@ -2185,13 +1989,13 @@ class Dict < Dry::Struct
   end
 end
 
-class Dictionary < Dry::Struct
-  attribute :dictionary, Types::Integer
+class DecodeString < Dry::Struct
+  attribute :decode_string, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      dictionary: d.fetch("dictionary"),
+      decode_string: d.fetch("decode_string"),
     )
   end
 
@@ -2201,7 +2005,7 @@ class Dictionary < Dry::Struct
 
   def to_dynamic
     {
-      "dictionary" => dictionary,
+      "decode_string" => decode_string,
     }
   end
 
@@ -2210,13 +2014,13 @@ class Dictionary < Dry::Struct
   end
 end
 
-class DidSet < Dry::Struct
-  attribute :did_set, Types::Integer
+class Defer < Dry::Struct
+  attribute :defer, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      did_set: d.fetch("didSet"),
+      defer: d.fetch("defer"),
     )
   end
 
@@ -2226,7 +2030,7 @@ class DidSet < Dry::Struct
 
   def to_dynamic
     {
-      "didSet" => did_set,
+      "defer" => defer,
     }
   end
 
@@ -2235,13 +2039,13 @@ class DidSet < Dry::Struct
   end
 end
 
-class Double < Dry::Struct
-  attribute :double, Types::Integer
+class Deinit < Dry::Struct
+  attribute :deinit, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      double: d.fetch("double"),
+      deinit: d.fetch("deinit"),
     )
   end
 
@@ -2251,7 +2055,7 @@ class Double < Dry::Struct
 
   def to_dynamic
     {
-      "double" => double,
+      "deinit" => deinit,
     }
   end
 
@@ -2260,13 +2064,13 @@ class Double < Dry::Struct
   end
 end
 
-class Dynamic < Dry::Struct
-  attribute :dynamic, Types::Integer
+class Del < Dry::Struct
+  attribute :del, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      dynamic: d.fetch("dynamic"),
+      del: d.fetch("del"),
     )
   end
 
@@ -2276,7 +2080,7 @@ class Dynamic < Dry::Struct
 
   def to_dynamic
     {
-      "dynamic" => dynamic,
+      "del" => del,
     }
   end
 
@@ -2285,7 +2089,182 @@ class Dynamic < Dry::Struct
   end
 end
 
-class DynamicCast < Dry::Struct
+class Delegate < Dry::Struct
+  attribute :delegate, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      delegate: d.fetch("delegate"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "delegate" => delegate,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Delete < Dry::Struct
+  attribute :delete, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      delete: d.fetch("delete"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "delete" => delete,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dict < Dry::Struct
+  attribute :dict, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      dict: d.fetch("dict"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "dict" => dict,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dictionary < Dry::Struct
+  attribute :dictionary, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      dictionary: d.fetch("dictionary"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "dictionary" => dictionary,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DidSet < Dry::Struct
+  attribute :did_set, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      did_set: d.fetch("didSet"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "didSet" => did_set,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Double < Dry::Struct
+  attribute :double, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      double: d.fetch("double"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "double" => double,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dynamic < Dry::Struct
+  attribute :dynamic, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      dynamic: d.fetch("dynamic"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "dynamic" => dynamic,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DynamicCast < Dry::Struct
   attribute :dynamic_cast, Types::Integer
 
   def self.from_dynamic!(d)
@@ -3265,13 +3244,13 @@ class Implicit < Dry::Struct
   end
 end
 
-class Import < Dry::Struct
-  attribute :import, Types::Integer
+class Def < Dry::Struct
+  attribute :def_def, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      import: d.fetch("import"),
+      def_def: d.fetch("def"),
     )
   end
 
@@ -3281,7 +3260,7 @@ class Import < Dry::Struct
 
   def to_dynamic
     {
-      "import" => import,
+      "def" => def_def,
     }
   end
 
@@ -3290,13 +3269,13 @@ class Import < Dry::Struct
   end
 end
 
-class Indirect < Dry::Struct
-  attribute :indirect, Types::Integer
+class Default < Dry::Struct
+  attribute :default_default, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      indirect: d.fetch("indirect"),
+      default_default: d.fetch("default"),
     )
   end
 
@@ -3306,7 +3285,7 @@ class Indirect < Dry::Struct
 
   def to_dynamic
     {
-      "indirect" => indirect,
+      "default" => default_default,
     }
   end
 
@@ -3315,13 +3294,13 @@ class Indirect < Dry::Struct
   end
 end
 
-class Infix < Dry::Struct
-  attribute :infix, Types::Integer
+class Do < Dry::Struct
+  attribute :do_do, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      infix: d.fetch("infix"),
+      do_do: d.fetch("do"),
     )
   end
 
@@ -3331,7 +3310,7 @@ class Infix < Dry::Struct
 
   def to_dynamic
     {
-      "infix" => infix,
+      "do" => do_do,
     }
   end
 
@@ -3340,13 +3319,13 @@ class Infix < Dry::Struct
   end
 end
 
-class Init < Dry::Struct
-  attribute :init, Types::Integer
+class Else < Dry::Struct
+  attribute :else_else, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      init: d.fetch("init"),
+      else_else: d.fetch("else"),
     )
   end
 
@@ -3356,7 +3335,7 @@ class Init < Dry::Struct
 
   def to_dynamic
     {
-      "init" => init,
+      "else" => else_else,
     }
   end
 
@@ -3365,13 +3344,13 @@ class Init < Dry::Struct
   end
 end
 
-class Inline < Dry::Struct
-  attribute :inline, Types::Integer
+class Enum < Dry::Struct
+  attribute :enum_enum, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      inline: d.fetch("inline"),
+      enum_enum: d.fetch("enum"),
     )
   end
 
@@ -3381,7 +3360,7 @@ class Inline < Dry::Struct
 
   def to_dynamic
     {
-      "inline" => inline,
+      "enum" => enum_enum,
     }
   end
 
@@ -3390,13 +3369,13 @@ class Inline < Dry::Struct
   end
 end
 
-class Inout < Dry::Struct
-  attribute :inout, Types::Integer
+class False < Dry::Struct
+  attribute :false_false, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      inout: d.fetch("inout"),
+      false_false: d.fetch("False"),
     )
   end
 
@@ -3406,7 +3385,7 @@ class Inout < Dry::Struct
 
   def to_dynamic
     {
-      "inout" => inout,
+      "False" => false_false,
     }
   end
 
@@ -3415,13 +3394,13 @@ class Inout < Dry::Struct
   end
 end
 
-class Instanceof < Dry::Struct
-  attribute :instanceof, Types::Integer
+class For < Dry::Struct
+  attribute :for_for, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      instanceof: d.fetch("instanceof"),
+      for_for: d.fetch("for"),
     )
   end
 
@@ -3431,7 +3410,7 @@ class Instanceof < Dry::Struct
 
   def to_dynamic
     {
-      "instanceof" => instanceof,
+      "for" => for_for,
     }
   end
 
@@ -3440,13 +3419,13 @@ class Instanceof < Dry::Struct
   end
 end
 
-class Int < Dry::Struct
-  attribute :int, Types::Integer
+class If < Dry::Struct
+  attribute :if_if, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      int: d.fetch("int"),
+      if_if: d.fetch("if"),
     )
   end
 
@@ -3456,7 +3435,7 @@ class Int < Dry::Struct
 
   def to_dynamic
     {
-      "int" => int,
+      "if" => if_if,
     }
   end
 
@@ -3465,63 +3444,141 @@ class Int < Dry::Struct
   end
 end
 
-class Interface < Dry::Struct
-  attribute :interface, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      interface: d.fetch("interface"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "interface" => interface,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Internal < Dry::Struct
-  attribute :internal, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      internal: d.fetch("internal"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "internal" => internal,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Def < Dry::Struct
-  attribute :def_def, Types::Integer
+class Obj2 < Dry::Struct
+  attribute :date_time,         DateTimeClass
+  attribute :date_time_styles,  DateTimeStyles
+  attribute :debugger,          Debugger
+  attribute :decimal,           Decimal
+  attribute :declare,           Declare
+  attribute :decltype,          Decltype
+  attribute :decode_string,     DecodeString
+  attribute :defer,             Defer
+  attribute :deinit,            Deinit
+  attribute :del,               Del
+  attribute :delegate,          Delegate
+  attribute :delete,            Delete
+  attribute :dict,              Dict
+  attribute :dictionary,        Dictionary
+  attribute :did_set,           DidSet
+  attribute :double,            Double
+  attribute :dummy,             Types::Integer
+  attribute :dynamic,           Dynamic
+  attribute :dynamic_cast,      DynamicCast
+  attribute :elif,              Elif
+  attribute :encode_quick_type, EncodeQuickType
+  attribute :enum_values,       EnumValues
+  attribute :equality_contract, EqualityContract
+  attribute :event,             Event
+  attribute :except,            Except
+  attribute :exception,         ExceptionClass
+  attribute :explicit,          Explicit
+  attribute :export,            Export
+  attribute :exposing,          Exposing
+  attribute :extends,           Extends
+  attribute :extension,         Extension
+  attribute :extern,            Extern
+  attribute :fallthrough,       Fallthrough
+  attribute :false_1,           Obj2False
+  attribute :fileprivate,       Fileprivate
+  attribute :final,             Final
+  attribute :finally,           Finally
+  attribute :fixed,             Fixed
+  attribute :float,             FloatClass
+  attribute :foreach,           Foreach
+  attribute :format_exception,  FormatException
+  attribute :friend,            Friend
+  attribute :from,              From
+  attribute :from_json,         FromJSON
+  attribute :func,              Func
+  attribute :function,          Function
+  attribute :get,               Get
+  attribute :global,            Global
+  attribute :go,                Go
+  attribute :goto,              Goto
+  attribute :guard,             Guard
+  attribute :has_own_property,  HasOwnProperty
+  attribute :hash_code,         HashCode
+  attribute :id,                ID
+  attribute :imp,               Imp
+  attribute :implements,        Implements
+  attribute :implicit,          Implicit
+  attribute :obj2_def,          Def
+  attribute :obj2_default,      Default
+  attribute :obj2_do,           Do
+  attribute :obj2_else,         Else
+  attribute :obj2_enum,         Enum
+  attribute :obj2_false,        False
+  attribute :obj2_for,          For
+  attribute :obj2_if,           If
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      def_def: d.fetch("def"),
+      date_time:         DateTimeClass.from_dynamic!(d.fetch("DateTime")),
+      date_time_styles:  DateTimeStyles.from_dynamic!(d.fetch("DateTimeStyles")),
+      debugger:          Debugger.from_dynamic!(d.fetch("debugger")),
+      decimal:           Decimal.from_dynamic!(d.fetch("decimal")),
+      declare:           Declare.from_dynamic!(d.fetch("declare")),
+      decltype:          Decltype.from_dynamic!(d.fetch("decltype")),
+      decode_string:     DecodeString.from_dynamic!(d.fetch("decode_string")),
+      defer:             Defer.from_dynamic!(d.fetch("defer")),
+      deinit:            Deinit.from_dynamic!(d.fetch("deinit")),
+      del:               Del.from_dynamic!(d.fetch("del")),
+      delegate:          Delegate.from_dynamic!(d.fetch("delegate")),
+      delete:            Delete.from_dynamic!(d.fetch("delete")),
+      dict:              Dict.from_dynamic!(d.fetch("dict")),
+      dictionary:        Dictionary.from_dynamic!(d.fetch("dictionary")),
+      did_set:           DidSet.from_dynamic!(d.fetch("didSet")),
+      double:            Double.from_dynamic!(d.fetch("double")),
+      dummy:             d.fetch("dummy"),
+      dynamic:           Dynamic.from_dynamic!(d.fetch("dynamic")),
+      dynamic_cast:      DynamicCast.from_dynamic!(d.fetch("dynamic_cast")),
+      elif:              Elif.from_dynamic!(d.fetch("elif")),
+      encode_quick_type: EncodeQuickType.from_dynamic!(d.fetch("encode_quick_type")),
+      enum_values:       EnumValues.from_dynamic!(d.fetch("EnumValues")),
+      equality_contract: EqualityContract.from_dynamic!(d.fetch("equalityContract")),
+      event:             Event.from_dynamic!(d.fetch("event")),
+      except:            Except.from_dynamic!(d.fetch("except")),
+      exception:         ExceptionClass.from_dynamic!(d.fetch("exception")),
+      explicit:          Explicit.from_dynamic!(d.fetch("explicit")),
+      export:            Export.from_dynamic!(d.fetch("export")),
+      exposing:          Exposing.from_dynamic!(d.fetch("exposing")),
+      extends:           Extends.from_dynamic!(d.fetch("extends")),
+      extension:         Extension.from_dynamic!(d.fetch("extension")),
+      extern:            Extern.from_dynamic!(d.fetch("extern")),
+      fallthrough:       Fallthrough.from_dynamic!(d.fetch("fallthrough")),
+      false_1:           Obj2False.from_dynamic!(d.fetch("false")),
+      fileprivate:       Fileprivate.from_dynamic!(d.fetch("fileprivate")),
+      final:             Final.from_dynamic!(d.fetch("final")),
+      finally:           Finally.from_dynamic!(d.fetch("finally")),
+      fixed:             Fixed.from_dynamic!(d.fetch("fixed")),
+      float:             FloatClass.from_dynamic!(d.fetch("float")),
+      foreach:           Foreach.from_dynamic!(d.fetch("foreach")),
+      format_exception:  FormatException.from_dynamic!(d.fetch("FormatException")),
+      friend:            Friend.from_dynamic!(d.fetch("friend")),
+      from:              From.from_dynamic!(d.fetch("from")),
+      from_json:         FromJSON.from_dynamic!(d.fetch("from_json")),
+      func:              Func.from_dynamic!(d.fetch("func")),
+      function:          Function.from_dynamic!(d.fetch("function")),
+      get:               Get.from_dynamic!(d.fetch("get")),
+      global:            Global.from_dynamic!(d.fetch("global")),
+      go:                Go.from_dynamic!(d.fetch("go")),
+      goto:              Goto.from_dynamic!(d.fetch("goto")),
+      guard:             Guard.from_dynamic!(d.fetch("guard")),
+      has_own_property:  HasOwnProperty.from_dynamic!(d.fetch("hasOwnProperty")),
+      hash_code:         HashCode.from_dynamic!(d.fetch("hashCode")),
+      id:                ID.from_dynamic!(d.fetch("id")),
+      imp:               Imp.from_dynamic!(d.fetch("IMP")),
+      implements:        Implements.from_dynamic!(d.fetch("implements")),
+      implicit:          Implicit.from_dynamic!(d.fetch("implicit")),
+      obj2_def:          Def.from_dynamic!(d.fetch("def")),
+      obj2_default:      Default.from_dynamic!(d.fetch("default")),
+      obj2_do:           Do.from_dynamic!(d.fetch("do")),
+      obj2_else:         Else.from_dynamic!(d.fetch("else")),
+      obj2_enum:         Enum.from_dynamic!(d.fetch("enum")),
+      obj2_false:        False.from_dynamic!(d.fetch("False")),
+      obj2_for:          For.from_dynamic!(d.fetch("for")),
+      obj2_if:           If.from_dynamic!(d.fetch("if")),
     )
   end
 
@@ -3531,7 +3588,71 @@ class Def < Dry::Struct
 
   def to_dynamic
     {
-      "def" => def_def,
+      "DateTime"          => date_time.to_dynamic,
+      "DateTimeStyles"    => date_time_styles.to_dynamic,
+      "debugger"          => debugger.to_dynamic,
+      "decimal"           => decimal.to_dynamic,
+      "declare"           => declare.to_dynamic,
+      "decltype"          => decltype.to_dynamic,
+      "decode_string"     => decode_string.to_dynamic,
+      "defer"             => defer.to_dynamic,
+      "deinit"            => deinit.to_dynamic,
+      "del"               => del.to_dynamic,
+      "delegate"          => delegate.to_dynamic,
+      "delete"            => delete.to_dynamic,
+      "dict"              => dict.to_dynamic,
+      "dictionary"        => dictionary.to_dynamic,
+      "didSet"            => did_set.to_dynamic,
+      "double"            => double.to_dynamic,
+      "dummy"             => dummy,
+      "dynamic"           => dynamic.to_dynamic,
+      "dynamic_cast"      => dynamic_cast.to_dynamic,
+      "elif"              => elif.to_dynamic,
+      "encode_quick_type" => encode_quick_type.to_dynamic,
+      "EnumValues"        => enum_values.to_dynamic,
+      "equalityContract"  => equality_contract.to_dynamic,
+      "event"             => event.to_dynamic,
+      "except"            => except.to_dynamic,
+      "exception"         => exception.to_dynamic,
+      "explicit"          => explicit.to_dynamic,
+      "export"            => export.to_dynamic,
+      "exposing"          => exposing.to_dynamic,
+      "extends"           => extends.to_dynamic,
+      "extension"         => extension.to_dynamic,
+      "extern"            => extern.to_dynamic,
+      "fallthrough"       => fallthrough.to_dynamic,
+      "false"             => false_1.to_dynamic,
+      "fileprivate"       => fileprivate.to_dynamic,
+      "final"             => final.to_dynamic,
+      "finally"           => finally.to_dynamic,
+      "fixed"             => fixed.to_dynamic,
+      "float"             => float.to_dynamic,
+      "foreach"           => foreach.to_dynamic,
+      "FormatException"   => format_exception.to_dynamic,
+      "friend"            => friend.to_dynamic,
+      "from"              => from.to_dynamic,
+      "from_json"         => from_json.to_dynamic,
+      "func"              => func.to_dynamic,
+      "function"          => function.to_dynamic,
+      "get"               => get.to_dynamic,
+      "global"            => global.to_dynamic,
+      "go"                => go.to_dynamic,
+      "goto"              => goto.to_dynamic,
+      "guard"             => guard.to_dynamic,
+      "hasOwnProperty"    => has_own_property.to_dynamic,
+      "hashCode"          => hash_code.to_dynamic,
+      "id"                => id.to_dynamic,
+      "IMP"               => imp.to_dynamic,
+      "implements"        => implements.to_dynamic,
+      "implicit"          => implicit.to_dynamic,
+      "def"               => obj2_def.to_dynamic,
+      "default"           => obj2_default.to_dynamic,
+      "do"                => obj2_do.to_dynamic,
+      "else"              => obj2_else.to_dynamic,
+      "enum"              => obj2_enum.to_dynamic,
+      "False"             => obj2_false.to_dynamic,
+      "for"               => obj2_for.to_dynamic,
+      "if"                => obj2_if.to_dynamic,
     }
   end
 
@@ -3540,13 +3661,13 @@ class Def < Dry::Struct
   end
 end
 
-class Default < Dry::Struct
-  attribute :default_default, Types::Integer
+class Import < Dry::Struct
+  attribute :import, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      default_default: d.fetch("default"),
+      import: d.fetch("import"),
     )
   end
 
@@ -3556,7 +3677,7 @@ class Default < Dry::Struct
 
   def to_dynamic
     {
-      "default" => default_default,
+      "import" => import,
     }
   end
 
@@ -3565,13 +3686,13 @@ class Default < Dry::Struct
   end
 end
 
-class Do < Dry::Struct
-  attribute :do_do, Types::Integer
+class Indirect < Dry::Struct
+  attribute :indirect, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      do_do: d.fetch("do"),
+      indirect: d.fetch("indirect"),
     )
   end
 
@@ -3581,7 +3702,7 @@ class Do < Dry::Struct
 
   def to_dynamic
     {
-      "do" => do_do,
+      "indirect" => indirect,
     }
   end
 
@@ -3590,13 +3711,13 @@ class Do < Dry::Struct
   end
 end
 
-class Else < Dry::Struct
-  attribute :else_else, Types::Integer
+class Infix < Dry::Struct
+  attribute :infix, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      else_else: d.fetch("else"),
+      infix: d.fetch("infix"),
     )
   end
 
@@ -3606,7 +3727,7 @@ class Else < Dry::Struct
 
   def to_dynamic
     {
-      "else" => else_else,
+      "infix" => infix,
     }
   end
 
@@ -3615,13 +3736,13 @@ class Else < Dry::Struct
   end
 end
 
-class Enum < Dry::Struct
-  attribute :enum_enum, Types::Integer
+class Init < Dry::Struct
+  attribute :init, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      enum_enum: d.fetch("enum"),
+      init: d.fetch("init"),
     )
   end
 
@@ -3631,7 +3752,7 @@ class Enum < Dry::Struct
 
   def to_dynamic
     {
-      "enum" => enum_enum,
+      "init" => init,
     }
   end
 
@@ -3640,13 +3761,13 @@ class Enum < Dry::Struct
   end
 end
 
-class False < Dry::Struct
-  attribute :false_false, Types::Integer
+class Inline < Dry::Struct
+  attribute :inline, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      false_false: d.fetch("False"),
+      inline: d.fetch("inline"),
     )
   end
 
@@ -3656,7 +3777,7 @@ class False < Dry::Struct
 
   def to_dynamic
     {
-      "False" => false_false,
+      "inline" => inline,
     }
   end
 
@@ -3665,13 +3786,13 @@ class False < Dry::Struct
   end
 end
 
-class For < Dry::Struct
-  attribute :for_for, Types::Integer
+class Inout < Dry::Struct
+  attribute :inout, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      for_for: d.fetch("for"),
+      inout: d.fetch("inout"),
     )
   end
 
@@ -3681,7 +3802,7 @@ class For < Dry::Struct
 
   def to_dynamic
     {
-      "for" => for_for,
+      "inout" => inout,
     }
   end
 
@@ -3690,13 +3811,13 @@ class For < Dry::Struct
   end
 end
 
-class If < Dry::Struct
-  attribute :if_if, Types::Integer
+class Instanceof < Dry::Struct
+  attribute :instanceof, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      if_if: d.fetch("if"),
+      instanceof: d.fetch("instanceof"),
     )
   end
 
@@ -3706,7 +3827,7 @@ class If < Dry::Struct
 
   def to_dynamic
     {
-      "if" => if_if,
+      "instanceof" => instanceof,
     }
   end
 
@@ -3715,13 +3836,13 @@ class If < Dry::Struct
   end
 end
 
-class In < Dry::Struct
-  attribute :in_in, Types::Integer
+class Int < Dry::Struct
+  attribute :int, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      in_in: d.fetch("in"),
+      int: d.fetch("int"),
     )
   end
 
@@ -3731,7 +3852,7 @@ class In < Dry::Struct
 
   def to_dynamic
     {
-      "in" => in_in,
+      "int" => int,
     }
   end
 
@@ -3740,149 +3861,13 @@ class In < Dry::Struct
   end
 end
 
-class Obj2 < Dry::Struct
-  attribute :defer,             Defer
-  attribute :deinit,            Deinit
-  attribute :del,               Del
-  attribute :delegate,          Delegate
-  attribute :delete,            Delete
-  attribute :dict,              Dict
-  attribute :dictionary,        Dictionary
-  attribute :did_set,           DidSet
-  attribute :double,            Double
-  attribute :dummy,             Types::Integer
-  attribute :dynamic,           Dynamic
-  attribute :dynamic_cast,      DynamicCast
-  attribute :elif,              Elif
-  attribute :encode_quick_type, EncodeQuickType
-  attribute :enum_values,       EnumValues
-  attribute :equality_contract, EqualityContract
-  attribute :event,             Event
-  attribute :except,            Except
-  attribute :exception,         ExceptionClass
-  attribute :explicit,          Explicit
-  attribute :export,            Export
-  attribute :exposing,          Exposing
-  attribute :extends,           Extends
-  attribute :extension,         Extension
-  attribute :extern,            Extern
-  attribute :fallthrough,       Fallthrough
-  attribute :false_1,           Obj2False
-  attribute :fileprivate,       Fileprivate
-  attribute :final,             Final
-  attribute :finally,           Finally
-  attribute :fixed,             Fixed
-  attribute :float,             FloatClass
-  attribute :foreach,           Foreach
-  attribute :format_exception,  FormatException
-  attribute :friend,            Friend
-  attribute :from,              From
-  attribute :from_json,         FromJSON
-  attribute :func,              Func
-  attribute :function,          Function
-  attribute :get,               Get
-  attribute :global,            Global
-  attribute :go,                Go
-  attribute :goto,              Goto
-  attribute :guard,             Guard
-  attribute :has_own_property,  HasOwnProperty
-  attribute :hash_code,         HashCode
-  attribute :id,                ID
-  attribute :imp,               Imp
-  attribute :implements,        Implements
-  attribute :implicit,          Implicit
-  attribute :import,            Import
-  attribute :indirect,          Indirect
-  attribute :infix,             Infix
-  attribute :init,              Init
-  attribute :inline,            Inline
-  attribute :inout,             Inout
-  attribute :instanceof,        Instanceof
-  attribute :int,               Int
-  attribute :interface,         Interface
-  attribute :internal,          Internal
-  attribute :obj2_def,          Def
-  attribute :obj2_default,      Default
-  attribute :obj2_do,           Do
-  attribute :obj2_else,         Else
-  attribute :obj2_enum,         Enum
-  attribute :obj2_false,        False
-  attribute :obj2_for,          For
-  attribute :obj2_if,           If
-  attribute :obj2_in,           In
+class Interface < Dry::Struct
+  attribute :interface, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      defer:             Defer.from_dynamic!(d.fetch("defer")),
-      deinit:            Deinit.from_dynamic!(d.fetch("deinit")),
-      del:               Del.from_dynamic!(d.fetch("del")),
-      delegate:          Delegate.from_dynamic!(d.fetch("delegate")),
-      delete:            Delete.from_dynamic!(d.fetch("delete")),
-      dict:              Dict.from_dynamic!(d.fetch("dict")),
-      dictionary:        Dictionary.from_dynamic!(d.fetch("dictionary")),
-      did_set:           DidSet.from_dynamic!(d.fetch("didSet")),
-      double:            Double.from_dynamic!(d.fetch("double")),
-      dummy:             d.fetch("dummy"),
-      dynamic:           Dynamic.from_dynamic!(d.fetch("dynamic")),
-      dynamic_cast:      DynamicCast.from_dynamic!(d.fetch("dynamic_cast")),
-      elif:              Elif.from_dynamic!(d.fetch("elif")),
-      encode_quick_type: EncodeQuickType.from_dynamic!(d.fetch("encode_quick_type")),
-      enum_values:       EnumValues.from_dynamic!(d.fetch("EnumValues")),
-      equality_contract: EqualityContract.from_dynamic!(d.fetch("equalityContract")),
-      event:             Event.from_dynamic!(d.fetch("event")),
-      except:            Except.from_dynamic!(d.fetch("except")),
-      exception:         ExceptionClass.from_dynamic!(d.fetch("exception")),
-      explicit:          Explicit.from_dynamic!(d.fetch("explicit")),
-      export:            Export.from_dynamic!(d.fetch("export")),
-      exposing:          Exposing.from_dynamic!(d.fetch("exposing")),
-      extends:           Extends.from_dynamic!(d.fetch("extends")),
-      extension:         Extension.from_dynamic!(d.fetch("extension")),
-      extern:            Extern.from_dynamic!(d.fetch("extern")),
-      fallthrough:       Fallthrough.from_dynamic!(d.fetch("fallthrough")),
-      false_1:           Obj2False.from_dynamic!(d.fetch("false")),
-      fileprivate:       Fileprivate.from_dynamic!(d.fetch("fileprivate")),
-      final:             Final.from_dynamic!(d.fetch("final")),
-      finally:           Finally.from_dynamic!(d.fetch("finally")),
-      fixed:             Fixed.from_dynamic!(d.fetch("fixed")),
-      float:             FloatClass.from_dynamic!(d.fetch("float")),
-      foreach:           Foreach.from_dynamic!(d.fetch("foreach")),
-      format_exception:  FormatException.from_dynamic!(d.fetch("FormatException")),
-      friend:            Friend.from_dynamic!(d.fetch("friend")),
-      from:              From.from_dynamic!(d.fetch("from")),
-      from_json:         FromJSON.from_dynamic!(d.fetch("from_json")),
-      func:              Func.from_dynamic!(d.fetch("func")),
-      function:          Function.from_dynamic!(d.fetch("function")),
-      get:               Get.from_dynamic!(d.fetch("get")),
-      global:            Global.from_dynamic!(d.fetch("global")),
-      go:                Go.from_dynamic!(d.fetch("go")),
-      goto:              Goto.from_dynamic!(d.fetch("goto")),
-      guard:             Guard.from_dynamic!(d.fetch("guard")),
-      has_own_property:  HasOwnProperty.from_dynamic!(d.fetch("hasOwnProperty")),
-      hash_code:         HashCode.from_dynamic!(d.fetch("hashCode")),
-      id:                ID.from_dynamic!(d.fetch("id")),
-      imp:               Imp.from_dynamic!(d.fetch("IMP")),
-      implements:        Implements.from_dynamic!(d.fetch("implements")),
-      implicit:          Implicit.from_dynamic!(d.fetch("implicit")),
-      import:            Import.from_dynamic!(d.fetch("import")),
-      indirect:          Indirect.from_dynamic!(d.fetch("indirect")),
-      infix:             Infix.from_dynamic!(d.fetch("infix")),
-      init:              Init.from_dynamic!(d.fetch("init")),
-      inline:            Inline.from_dynamic!(d.fetch("inline")),
-      inout:             Inout.from_dynamic!(d.fetch("inout")),
-      instanceof:        Instanceof.from_dynamic!(d.fetch("instanceof")),
-      int:               Int.from_dynamic!(d.fetch("int")),
-      interface:         Interface.from_dynamic!(d.fetch("interface")),
-      internal:          Internal.from_dynamic!(d.fetch("internal")),
-      obj2_def:          Def.from_dynamic!(d.fetch("def")),
-      obj2_default:      Default.from_dynamic!(d.fetch("default")),
-      obj2_do:           Do.from_dynamic!(d.fetch("do")),
-      obj2_else:         Else.from_dynamic!(d.fetch("else")),
-      obj2_enum:         Enum.from_dynamic!(d.fetch("enum")),
-      obj2_false:        False.from_dynamic!(d.fetch("False")),
-      obj2_for:          For.from_dynamic!(d.fetch("for")),
-      obj2_if:           If.from_dynamic!(d.fetch("if")),
-      obj2_in:           In.from_dynamic!(d.fetch("in")),
+      interface: d.fetch("interface"),
     )
   end
 
@@ -3892,75 +3877,32 @@ class Obj2 < Dry::Struct
 
   def to_dynamic
     {
-      "defer"             => defer.to_dynamic,
-      "deinit"            => deinit.to_dynamic,
-      "del"               => del.to_dynamic,
-      "delegate"          => delegate.to_dynamic,
-      "delete"            => delete.to_dynamic,
-      "dict"              => dict.to_dynamic,
-      "dictionary"        => dictionary.to_dynamic,
-      "didSet"            => did_set.to_dynamic,
-      "double"            => double.to_dynamic,
-      "dummy"             => dummy,
-      "dynamic"           => dynamic.to_dynamic,
-      "dynamic_cast"      => dynamic_cast.to_dynamic,
-      "elif"              => elif.to_dynamic,
-      "encode_quick_type" => encode_quick_type.to_dynamic,
-      "EnumValues"        => enum_values.to_dynamic,
-      "equalityContract"  => equality_contract.to_dynamic,
-      "event"             => event.to_dynamic,
-      "except"            => except.to_dynamic,
-      "exception"         => exception.to_dynamic,
-      "explicit"          => explicit.to_dynamic,
-      "export"            => export.to_dynamic,
-      "exposing"          => exposing.to_dynamic,
-      "extends"           => extends.to_dynamic,
-      "extension"         => extension.to_dynamic,
-      "extern"            => extern.to_dynamic,
-      "fallthrough"       => fallthrough.to_dynamic,
-      "false"             => false_1.to_dynamic,
-      "fileprivate"       => fileprivate.to_dynamic,
-      "final"             => final.to_dynamic,
-      "finally"           => finally.to_dynamic,
-      "fixed"             => fixed.to_dynamic,
-      "float"             => float.to_dynamic,
-      "foreach"           => foreach.to_dynamic,
-      "FormatException"   => format_exception.to_dynamic,
-      "friend"            => friend.to_dynamic,
-      "from"              => from.to_dynamic,
-      "from_json"         => from_json.to_dynamic,
-      "func"              => func.to_dynamic,
-      "function"          => function.to_dynamic,
-      "get"               => get.to_dynamic,
-      "global"            => global.to_dynamic,
-      "go"                => go.to_dynamic,
-      "goto"              => goto.to_dynamic,
-      "guard"             => guard.to_dynamic,
-      "hasOwnProperty"    => has_own_property.to_dynamic,
-      "hashCode"          => hash_code.to_dynamic,
-      "id"                => id.to_dynamic,
-      "IMP"               => imp.to_dynamic,
-      "implements"        => implements.to_dynamic,
-      "implicit"          => implicit.to_dynamic,
-      "import"            => import.to_dynamic,
-      "indirect"          => indirect.to_dynamic,
-      "infix"             => infix.to_dynamic,
-      "init"              => init.to_dynamic,
-      "inline"            => inline.to_dynamic,
-      "inout"             => inout.to_dynamic,
-      "instanceof"        => instanceof.to_dynamic,
-      "int"               => int.to_dynamic,
-      "interface"         => interface.to_dynamic,
-      "internal"          => internal.to_dynamic,
-      "def"               => obj2_def.to_dynamic,
-      "default"           => obj2_default.to_dynamic,
-      "do"                => obj2_do.to_dynamic,
-      "else"              => obj2_else.to_dynamic,
-      "enum"              => obj2_enum.to_dynamic,
-      "False"             => obj2_false.to_dynamic,
-      "for"               => obj2_for.to_dynamic,
-      "if"                => obj2_if.to_dynamic,
-      "in"                => obj2_in.to_dynamic,
+      "interface" => interface,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Internal < Dry::Struct
+  attribute :internal, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      internal: d.fetch("internal"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "internal" => internal,
     }
   end
 
@@ -4850,7 +4792,182 @@ class No < Dry::Struct
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      no: d.fetch("NO"),
+      no: d.fetch("NO"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "NO" => no,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class NoSuchMethod < Dry::Struct
+  attribute :no_such_method, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      no_such_method: d.fetch("noSuchMethod"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "noSuchMethod" => no_such_method,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Noexcept < Dry::Struct
+  attribute :noexcept, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      noexcept: d.fetch("noexcept"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "noexcept" => noexcept,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Nonatomic < Dry::Struct
+  attribute :nonatomic, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      nonatomic: d.fetch("nonatomic"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "nonatomic" => nonatomic,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class None < Dry::Struct
+  attribute :none, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      none: d.fetch("None"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "None" => none,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Nonlocal < Dry::Struct
+  attribute :nonlocal, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      nonlocal: d.fetch("nonlocal"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "nonlocal" => nonlocal,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Nonmutating < Dry::Struct
+  attribute :nonmutating, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      nonmutating: d.fetch("nonmutating"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "nonmutating" => nonmutating,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class NotEq < Dry::Struct
+  attribute :not_eq, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      not_eq: d.fetch("not_eq"),
     )
   end
 
@@ -4860,7 +4977,7 @@ class No < Dry::Struct
 
   def to_dynamic
     {
-      "NO" => no,
+      "not_eq" => not_eq,
     }
   end
 
@@ -4869,13 +4986,13 @@ class No < Dry::Struct
   end
 end
 
-class NoSuchMethod < Dry::Struct
-  attribute :no_such_method, Types::Integer
+class NSError < Dry::Struct
+  attribute :ns_error, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      no_such_method: d.fetch("noSuchMethod"),
+      ns_error: d.fetch("NSError"),
     )
   end
 
@@ -4885,7 +5002,7 @@ class NoSuchMethod < Dry::Struct
 
   def to_dynamic
     {
-      "noSuchMethod" => no_such_method,
+      "NSError" => ns_error,
     }
   end
 
@@ -4894,13 +5011,13 @@ class NoSuchMethod < Dry::Struct
   end
 end
 
-class Noexcept < Dry::Struct
-  attribute :noexcept, Types::Integer
+class NSString < Dry::Struct
+  attribute :ns_string, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      noexcept: d.fetch("noexcept"),
+      ns_string: d.fetch("NSString"),
     )
   end
 
@@ -4910,7 +5027,7 @@ class Noexcept < Dry::Struct
 
   def to_dynamic
     {
-      "noexcept" => noexcept,
+      "NSString" => ns_string,
     }
   end
 
@@ -4919,13 +5036,13 @@ class Noexcept < Dry::Struct
   end
 end
 
-class Nonatomic < Dry::Struct
-  attribute :nonatomic, Types::Integer
+class Null < Dry::Struct
+  attribute :null, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      nonatomic: d.fetch("nonatomic"),
+      null: d.fetch("NULL"),
     )
   end
 
@@ -4935,7 +5052,7 @@ class Nonatomic < Dry::Struct
 
   def to_dynamic
     {
-      "nonatomic" => nonatomic,
+      "NULL" => null,
     }
   end
 
@@ -4944,13 +5061,13 @@ class Nonatomic < Dry::Struct
   end
 end
 
-class None < Dry::Struct
-  attribute :none, Types::Integer
+class In < Dry::Struct
+  attribute :in_in, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      none: d.fetch("None"),
+      in_in: d.fetch("in"),
     )
   end
 
@@ -4960,7 +5077,7 @@ class None < Dry::Struct
 
   def to_dynamic
     {
-      "None" => none,
+      "in" => in_in,
     }
   end
 
@@ -4969,13 +5086,13 @@ class None < Dry::Struct
   end
 end
 
-class Nonlocal < Dry::Struct
-  attribute :nonlocal, Types::Integer
+class Lambda < Dry::Struct
+  attribute :lambda_lambda, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      nonlocal: d.fetch("nonlocal"),
+      lambda_lambda: d.fetch("lambda"),
     )
   end
 
@@ -4985,7 +5102,7 @@ class Nonlocal < Dry::Struct
 
   def to_dynamic
     {
-      "nonlocal" => nonlocal,
+      "lambda" => lambda_lambda,
     }
   end
 
@@ -4994,13 +5111,13 @@ class Nonlocal < Dry::Struct
   end
 end
 
-class Nonmutating < Dry::Struct
-  attribute :nonmutating, Types::Integer
+class ModuleClass < Dry::Struct
+  attribute :module_module, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      nonmutating: d.fetch("nonmutating"),
+      module_module: d.fetch("module"),
     )
   end
 
@@ -5010,7 +5127,7 @@ class Nonmutating < Dry::Struct
 
   def to_dynamic
     {
-      "nonmutating" => nonmutating,
+      "module" => module_module,
     }
   end
 
@@ -5019,13 +5136,13 @@ class Nonmutating < Dry::Struct
   end
 end
 
-class NotEq < Dry::Struct
-  attribute :not_eq, Types::Integer
+class New < Dry::Struct
+  attribute :new_new, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      not_eq: d.fetch("not_eq"),
+      new_new: d.fetch("new"),
     )
   end
 
@@ -5035,7 +5152,7 @@ class NotEq < Dry::Struct
 
   def to_dynamic
     {
-      "not_eq" => not_eq,
+      "new" => new_new,
     }
   end
 
@@ -5044,13 +5161,13 @@ class NotEq < Dry::Struct
   end
 end
 
-class NSError < Dry::Struct
-  attribute :ns_error, Types::Integer
+class Nil < Dry::Struct
+  attribute :nil_nil, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      ns_error: d.fetch("NSError"),
+      nil_nil: d.fetch("nil"),
     )
   end
 
@@ -5060,7 +5177,7 @@ class NSError < Dry::Struct
 
   def to_dynamic
     {
-      "NSError" => ns_error,
+      "nil" => nil_nil,
     }
   end
 
@@ -5069,13 +5186,13 @@ class NSError < Dry::Struct
   end
 end
 
-class NSString < Dry::Struct
-  attribute :ns_string, Types::Integer
+class NoneClass < Dry::Struct
+  attribute :none, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      ns_string: d.fetch("NSString"),
+      none: d.fetch("none"),
     )
   end
 
@@ -5085,7 +5202,7 @@ class NSString < Dry::Struct
 
   def to_dynamic
     {
-      "NSString" => ns_string,
+      "none" => none,
     }
   end
 
@@ -5094,13 +5211,13 @@ class NSString < Dry::Struct
   end
 end
 
-class Null < Dry::Struct
-  attribute :null, Types::Integer
+class Not < Dry::Struct
+  attribute :not_not, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      null: d.fetch("NULL"),
+      not_not: d.fetch("not"),
     )
   end
 
@@ -5110,7 +5227,7 @@ class Null < Dry::Struct
 
   def to_dynamic
     {
-      "NULL" => null,
+      "not" => not_not,
     }
   end
 
@@ -5119,13 +5236,13 @@ class Null < Dry::Struct
   end
 end
 
-class Nullptr < Dry::Struct
-  attribute :nullptr, Types::Integer
+class NullClass < Dry::Struct
+  attribute :null, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      nullptr: d.fetch("nullptr"),
+      null: d.fetch("null"),
     )
   end
 
@@ -5135,7 +5252,7 @@ class Nullptr < Dry::Struct
 
   def to_dynamic
     {
-      "nullptr" => nullptr,
+      "null" => null,
     }
   end
 
@@ -5144,13 +5261,141 @@ class Nullptr < Dry::Struct
   end
 end
 
-class Number < Dry::Struct
-  attribute :number, Types::Integer
+class Obj3 < Dry::Struct
+  attribute :dummy,                          Types::Integer
+  attribute :import,                         Import
+  attribute :indirect,                       Indirect
+  attribute :infix,                          Infix
+  attribute :init,                           Init
+  attribute :inline,                         Inline
+  attribute :inout,                          Inout
+  attribute :instanceof,                     Instanceof
+  attribute :int,                            Int
+  attribute :interface,                      Interface
+  attribute :internal,                       Internal
+  attribute :is,                             Is
+  attribute :iso_date_time_offset_converter, ISODateTimeOffsetConverter
+  attribute :iterable,                       Iterable
+  attribute :jdec,                           Jdec
+  attribute :jenc,                           Jenc
+  attribute :jpipe,                          Jpipe
+  attribute :json,                           JSONClass
+  attribute :json_any,                       JSONAny
+  attribute :json_coding_key,                JSONCodingKey
+  attribute :json_converter,                 JSONConverter
+  attribute :json_decoder,                   JSONDecoder
+  attribute :json_encoder,                   JSONEncoder
+  attribute :json_exception,                 JSONException
+  attribute :json_generator,                 JSONGenerator
+  attribute :json_node,                      JSONNode
+  attribute :json_null,                      JSONNull
+  attribute :json_parser,                    JSONParser
+  attribute :json_reader,                    JSONReader
+  attribute :json_serializer,                JSONSerializer
+  attribute :json_token,                     JSONToken
+  attribute :json_token_type,                JSONTokenType
+  attribute :json_writer,                    JSONWriter
+  attribute :lazy,                           Lazy
+  attribute :left,                           Left
+  attribute :let,                            Let
+  attribute :list,                           List
+  attribute :lock,                           Lock
+  attribute :long,                           Long
+  attribute :map,                            Map
+  attribute :metadata_property_handling,     MetadataPropertyHandling
+  attribute :mutable,                        Mutable
+  attribute :mutating,                       Mutating
+  attribute :namespace,                      Namespace
+  attribute :native,                         Native
+  attribute :newtonsoft,                     Newtonsoft
+  attribute :no,                             No
+  attribute :no_such_method,                 NoSuchMethod
+  attribute :noexcept,                       Noexcept
+  attribute :nonatomic,                      Nonatomic
+  attribute :none,                           None
+  attribute :nonlocal,                       Nonlocal
+  attribute :nonmutating,                    Nonmutating
+  attribute :not_eq,                         NotEq
+  attribute :ns_error,                       NSError
+  attribute :ns_string,                      NSString
+  attribute :null,                           Null
+  attribute :obj3_in,                        In
+  attribute :obj3_lambda,                    Lambda
+  attribute :obj3_module,                    ModuleClass
+  attribute :obj3_new,                       New
+  attribute :obj3_nil,                       Nil
+  attribute :obj3_none,                      NoneClass
+  attribute :obj3_not,                       Not
+  attribute :obj3_null,                      NullClass
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      number: d.fetch("number"),
+      dummy:                          d.fetch("dummy"),
+      import:                         Import.from_dynamic!(d.fetch("import")),
+      indirect:                       Indirect.from_dynamic!(d.fetch("indirect")),
+      infix:                          Infix.from_dynamic!(d.fetch("infix")),
+      init:                           Init.from_dynamic!(d.fetch("init")),
+      inline:                         Inline.from_dynamic!(d.fetch("inline")),
+      inout:                          Inout.from_dynamic!(d.fetch("inout")),
+      instanceof:                     Instanceof.from_dynamic!(d.fetch("instanceof")),
+      int:                            Int.from_dynamic!(d.fetch("int")),
+      interface:                      Interface.from_dynamic!(d.fetch("interface")),
+      internal:                       Internal.from_dynamic!(d.fetch("internal")),
+      is:                             Is.from_dynamic!(d.fetch("is")),
+      iso_date_time_offset_converter: ISODateTimeOffsetConverter.from_dynamic!(d.fetch("IsoDateTimeOffsetConverter")),
+      iterable:                       Iterable.from_dynamic!(d.fetch("iterable")),
+      jdec:                           Jdec.from_dynamic!(d.fetch("jdec")),
+      jenc:                           Jenc.from_dynamic!(d.fetch("jenc")),
+      jpipe:                          Jpipe.from_dynamic!(d.fetch("jpipe")),
+      json:                           JSONClass.from_dynamic!(d.fetch("json")),
+      json_any:                       JSONAny.from_dynamic!(d.fetch("JSONAny")),
+      json_coding_key:                JSONCodingKey.from_dynamic!(d.fetch("JSONCodingKey")),
+      json_converter:                 JSONConverter.from_dynamic!(d.fetch("json_converter")),
+      json_decoder:                   JSONDecoder.from_dynamic!(d.fetch("JSONDecoder")),
+      json_encoder:                   JSONEncoder.from_dynamic!(d.fetch("JSONEncoder")),
+      json_exception:                 JSONException.from_dynamic!(d.fetch("JsonException")),
+      json_generator:                 JSONGenerator.from_dynamic!(d.fetch("JsonGenerator")),
+      json_node:                      JSONNode.from_dynamic!(d.fetch("JsonNode")),
+      json_null:                      JSONNull.from_dynamic!(d.fetch("JSONNull")),
+      json_parser:                    JSONParser.from_dynamic!(d.fetch("JsonParser")),
+      json_reader:                    JSONReader.from_dynamic!(d.fetch("JsonReader")),
+      json_serializer:                JSONSerializer.from_dynamic!(d.fetch("json_serializer")),
+      json_token:                     JSONToken.from_dynamic!(d.fetch("json_token")),
+      json_token_type:                JSONTokenType.from_dynamic!(d.fetch("JsonTokenType")),
+      json_writer:                    JSONWriter.from_dynamic!(d.fetch("json_writer")),
+      lazy:                           Lazy.from_dynamic!(d.fetch("lazy")),
+      left:                           Left.from_dynamic!(d.fetch("left")),
+      let:                            Let.from_dynamic!(d.fetch("let")),
+      list:                           List.from_dynamic!(d.fetch("list")),
+      lock:                           Lock.from_dynamic!(d.fetch("lock")),
+      long:                           Long.from_dynamic!(d.fetch("long")),
+      map:                            Map.from_dynamic!(d.fetch("map")),
+      metadata_property_handling:     MetadataPropertyHandling.from_dynamic!(d.fetch("metadata_property_handling")),
+      mutable:                        Mutable.from_dynamic!(d.fetch("mutable")),
+      mutating:                       Mutating.from_dynamic!(d.fetch("mutating")),
+      namespace:                      Namespace.from_dynamic!(d.fetch("namespace")),
+      native:                         Native.from_dynamic!(d.fetch("native")),
+      newtonsoft:                     Newtonsoft.from_dynamic!(d.fetch("newtonsoft")),
+      no:                             No.from_dynamic!(d.fetch("NO")),
+      no_such_method:                 NoSuchMethod.from_dynamic!(d.fetch("noSuchMethod")),
+      noexcept:                       Noexcept.from_dynamic!(d.fetch("noexcept")),
+      nonatomic:                      Nonatomic.from_dynamic!(d.fetch("nonatomic")),
+      none:                           None.from_dynamic!(d.fetch("None")),
+      nonlocal:                       Nonlocal.from_dynamic!(d.fetch("nonlocal")),
+      nonmutating:                    Nonmutating.from_dynamic!(d.fetch("nonmutating")),
+      not_eq:                         NotEq.from_dynamic!(d.fetch("not_eq")),
+      ns_error:                       NSError.from_dynamic!(d.fetch("NSError")),
+      ns_string:                      NSString.from_dynamic!(d.fetch("NSString")),
+      null:                           Null.from_dynamic!(d.fetch("NULL")),
+      obj3_in:                        In.from_dynamic!(d.fetch("in")),
+      obj3_lambda:                    Lambda.from_dynamic!(d.fetch("lambda")),
+      obj3_module:                    ModuleClass.from_dynamic!(d.fetch("module")),
+      obj3_new:                       New.from_dynamic!(d.fetch("new")),
+      obj3_nil:                       Nil.from_dynamic!(d.fetch("nil")),
+      obj3_none:                      NoneClass.from_dynamic!(d.fetch("none")),
+      obj3_not:                       Not.from_dynamic!(d.fetch("not")),
+      obj3_null:                      NullClass.from_dynamic!(d.fetch("null")),
     )
   end
 
@@ -5160,7 +5405,71 @@ class Number < Dry::Struct
 
   def to_dynamic
     {
-      "number" => number,
+      "dummy"                      => dummy,
+      "import"                     => import.to_dynamic,
+      "indirect"                   => indirect.to_dynamic,
+      "infix"                      => infix.to_dynamic,
+      "init"                       => init.to_dynamic,
+      "inline"                     => inline.to_dynamic,
+      "inout"                      => inout.to_dynamic,
+      "instanceof"                 => instanceof.to_dynamic,
+      "int"                        => int.to_dynamic,
+      "interface"                  => interface.to_dynamic,
+      "internal"                   => internal.to_dynamic,
+      "is"                         => is.to_dynamic,
+      "IsoDateTimeOffsetConverter" => iso_date_time_offset_converter.to_dynamic,
+      "iterable"                   => iterable.to_dynamic,
+      "jdec"                       => jdec.to_dynamic,
+      "jenc"                       => jenc.to_dynamic,
+      "jpipe"                      => jpipe.to_dynamic,
+      "json"                       => json.to_dynamic,
+      "JSONAny"                    => json_any.to_dynamic,
+      "JSONCodingKey"              => json_coding_key.to_dynamic,
+      "json_converter"             => json_converter.to_dynamic,
+      "JSONDecoder"                => json_decoder.to_dynamic,
+      "JSONEncoder"                => json_encoder.to_dynamic,
+      "JsonException"              => json_exception.to_dynamic,
+      "JsonGenerator"              => json_generator.to_dynamic,
+      "JsonNode"                   => json_node.to_dynamic,
+      "JSONNull"                   => json_null.to_dynamic,
+      "JsonParser"                 => json_parser.to_dynamic,
+      "JsonReader"                 => json_reader.to_dynamic,
+      "json_serializer"            => json_serializer.to_dynamic,
+      "json_token"                 => json_token.to_dynamic,
+      "JsonTokenType"              => json_token_type.to_dynamic,
+      "json_writer"                => json_writer.to_dynamic,
+      "lazy"                       => lazy.to_dynamic,
+      "left"                       => left.to_dynamic,
+      "let"                        => let.to_dynamic,
+      "list"                       => list.to_dynamic,
+      "lock"                       => lock.to_dynamic,
+      "long"                       => long.to_dynamic,
+      "map"                        => map.to_dynamic,
+      "metadata_property_handling" => metadata_property_handling.to_dynamic,
+      "mutable"                    => mutable.to_dynamic,
+      "mutating"                   => mutating.to_dynamic,
+      "namespace"                  => namespace.to_dynamic,
+      "native"                     => native.to_dynamic,
+      "newtonsoft"                 => newtonsoft.to_dynamic,
+      "NO"                         => no.to_dynamic,
+      "noSuchMethod"               => no_such_method.to_dynamic,
+      "noexcept"                   => noexcept.to_dynamic,
+      "nonatomic"                  => nonatomic.to_dynamic,
+      "None"                       => none.to_dynamic,
+      "nonlocal"                   => nonlocal.to_dynamic,
+      "nonmutating"                => nonmutating.to_dynamic,
+      "not_eq"                     => not_eq.to_dynamic,
+      "NSError"                    => ns_error.to_dynamic,
+      "NSString"                   => ns_string.to_dynamic,
+      "NULL"                       => null.to_dynamic,
+      "in"                         => obj3_in.to_dynamic,
+      "lambda"                     => obj3_lambda.to_dynamic,
+      "module"                     => obj3_module.to_dynamic,
+      "new"                        => obj3_new.to_dynamic,
+      "nil"                        => obj3_nil.to_dynamic,
+      "none"                       => obj3_none.to_dynamic,
+      "not"                        => obj3_not.to_dynamic,
+      "null"                       => obj3_null.to_dynamic,
     }
   end
 
@@ -5169,13 +5478,13 @@ class Number < Dry::Struct
   end
 end
 
-class Lambda < Dry::Struct
-  attribute :lambda_lambda, Types::Integer
+class Nullptr < Dry::Struct
+  attribute :nullptr, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      lambda_lambda: d.fetch("lambda"),
+      nullptr: d.fetch("nullptr"),
     )
   end
 
@@ -5185,7 +5494,7 @@ class Lambda < Dry::Struct
 
   def to_dynamic
     {
-      "lambda" => lambda_lambda,
+      "nullptr" => nullptr,
     }
   end
 
@@ -5194,13 +5503,13 @@ class Lambda < Dry::Struct
   end
 end
 
-class ModuleClass < Dry::Struct
-  attribute :module_module, Types::Integer
+class Number < Dry::Struct
+  attribute :number, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      module_module: d.fetch("module"),
+      number: d.fetch("number"),
     )
   end
 
@@ -5210,7 +5519,7 @@ class ModuleClass < Dry::Struct
 
   def to_dynamic
     {
-      "module" => module_module,
+      "number" => number,
     }
   end
 
@@ -5219,13 +5528,13 @@ class ModuleClass < Dry::Struct
   end
 end
 
-class New < Dry::Struct
-  attribute :new_new, Types::Integer
+class Open < Dry::Struct
+  attribute :open_open, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      new_new: d.fetch("new"),
+      open_open: d.fetch("open"),
     )
   end
 
@@ -5235,7 +5544,7 @@ class New < Dry::Struct
 
   def to_dynamic
     {
-      "new" => new_new,
+      "open" => open_open,
     }
   end
 
@@ -5244,13 +5553,13 @@ class New < Dry::Struct
   end
 end
 
-class Nil < Dry::Struct
-  attribute :nil_nil, Types::Integer
+class Optional < Dry::Struct
+  attribute :optional_optional, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      nil_nil: d.fetch("nil"),
+      optional_optional: d.fetch("optional"),
     )
   end
 
@@ -5260,7 +5569,7 @@ class Nil < Dry::Struct
 
   def to_dynamic
     {
-      "nil" => nil_nil,
+      "optional" => optional_optional,
     }
   end
 
@@ -5269,13 +5578,13 @@ class Nil < Dry::Struct
   end
 end
 
-class NoneClass < Dry::Struct
-  attribute :none, Types::Integer
+class Or < Dry::Struct
+  attribute :or_or, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      none: d.fetch("none"),
+      or_or: d.fetch("or"),
     )
   end
 
@@ -5285,7 +5594,7 @@ class NoneClass < Dry::Struct
 
   def to_dynamic
     {
-      "none" => none,
+      "or" => or_or,
     }
   end
 
@@ -5294,13 +5603,13 @@ class NoneClass < Dry::Struct
   end
 end
 
-class Not < Dry::Struct
-  attribute :not_not, Types::Integer
+class Print < Dry::Struct
+  attribute :print_print, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      not_not: d.fetch("not"),
+      print_print: d.fetch("print"),
     )
   end
 
@@ -5310,7 +5619,7 @@ class Not < Dry::Struct
 
   def to_dynamic
     {
-      "not" => not_not,
+      "print" => print_print,
     }
   end
 
@@ -5319,13 +5628,13 @@ class Not < Dry::Struct
   end
 end
 
-class NullClass < Dry::Struct
-  attribute :null, Types::Integer
+class Printf < Dry::Struct
+  attribute :printf_printf, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      null: d.fetch("null"),
+      printf_printf: d.fetch("printf"),
     )
   end
 
@@ -5335,7 +5644,7 @@ class NullClass < Dry::Struct
 
   def to_dynamic
     {
-      "null" => null,
+      "printf" => printf_printf,
     }
   end
 
@@ -5344,13 +5653,13 @@ class NullClass < Dry::Struct
   end
 end
 
-class Open < Dry::Struct
-  attribute :open_open, Types::Integer
+class ProtocolClass < Dry::Struct
+  attribute :protocol, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      open_open: d.fetch("open"),
+      protocol: d.fetch("protocol"),
     )
   end
 
@@ -5360,7 +5669,7 @@ class Open < Dry::Struct
 
   def to_dynamic
     {
-      "open" => open_open,
+      "protocol" => protocol,
     }
   end
 
@@ -5369,13 +5678,13 @@ class Open < Dry::Struct
   end
 end
 
-class Optional < Dry::Struct
-  attribute :optional_optional, Types::Integer
+class Raise < Dry::Struct
+  attribute :raise_raise, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      optional_optional: d.fetch("optional"),
+      raise_raise: d.fetch("raise"),
     )
   end
 
@@ -5385,7 +5694,7 @@ class Optional < Dry::Struct
 
   def to_dynamic
     {
-      "optional" => optional_optional,
+      "raise" => raise_raise,
     }
   end
 
@@ -5394,13 +5703,13 @@ class Optional < Dry::Struct
   end
 end
 
-class Or < Dry::Struct
-  attribute :or_or, Types::Integer
+class Require < Dry::Struct
+  attribute :require_require, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      or_or: d.fetch("or"),
+      require_require: d.fetch("require"),
     )
   end
 
@@ -5410,7 +5719,7 @@ class Or < Dry::Struct
 
   def to_dynamic
     {
-      "or" => or_or,
+      "require" => require_require,
     }
   end
 
@@ -5419,13 +5728,13 @@ class Or < Dry::Struct
   end
 end
 
-class Print < Dry::Struct
-  attribute :print_print, Types::Integer
+class Return < Dry::Struct
+  attribute :return_return, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      print_print: d.fetch("print"),
+      return_return: d.fetch("return"),
     )
   end
 
@@ -5435,7 +5744,7 @@ class Print < Dry::Struct
 
   def to_dynamic
     {
-      "print" => print_print,
+      "return" => return_return,
     }
   end
 
@@ -5444,13 +5753,13 @@ class Print < Dry::Struct
   end
 end
 
-class Printf < Dry::Struct
-  attribute :printf_printf, Types::Integer
+class Select < Dry::Struct
+  attribute :select_select, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      printf_printf: d.fetch("printf"),
+      select_select: d.fetch("select"),
     )
   end
 
@@ -5460,7 +5769,7 @@ class Printf < Dry::Struct
 
   def to_dynamic
     {
-      "printf" => printf_printf,
+      "select" => select_select,
     }
   end
 
@@ -5469,13 +5778,13 @@ class Printf < Dry::Struct
   end
 end
 
-class ProtocolClass < Dry::Struct
-  attribute :protocol, Types::Integer
+class SelfClass < Dry::Struct
+  attribute :self_self, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      protocol: d.fetch("protocol"),
+      self_self: d.fetch("Self"),
     )
   end
 
@@ -5485,7 +5794,7 @@ class ProtocolClass < Dry::Struct
 
   def to_dynamic
     {
-      "protocol" => protocol,
+      "Self" => self_self,
     }
   end
 
@@ -5969,88 +6278,13 @@ class Protocol < Dry::Struct
   end
 end
 
-class SerializerProvider < Dry::Struct
-  attribute :serializer_provider, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      serializer_provider: d.fetch("SerializerProvider"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "SerializerProvider" => serializer_provider,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class SimpleModule < Dry::Struct
-  attribute :simple_module, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      simple_module: d.fetch("SimpleModule"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "SimpleModule" => simple_module,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class StdDeserializer < Dry::Struct
-  attribute :std_deserializer, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      std_deserializer: d.fetch("StdDeserializer"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "StdDeserializer" => std_deserializer,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class StdSerializer < Dry::Struct
-  attribute :std_serializer, Types::Integer
+class Public < Dry::Struct
+  attribute :public, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      std_serializer: d.fetch("StdSerializer"),
+      public: d.fetch("public"),
     )
   end
 
@@ -6060,190 +6294,22 @@ class StdSerializer < Dry::Struct
 
   def to_dynamic
     {
-      "StdSerializer" => std_serializer,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Obj3 < Dry::Struct
-  attribute :dummy,                          Types::Integer
-  attribute :is,                             Is
-  attribute :iso_date_time_offset_converter, ISODateTimeOffsetConverter
-  attribute :iterable,                       Iterable
-  attribute :jdec,                           Jdec
-  attribute :jenc,                           Jenc
-  attribute :jpipe,                          Jpipe
-  attribute :json,                           JSONClass
-  attribute :json_any,                       JSONAny
-  attribute :json_coding_key,                JSONCodingKey
-  attribute :json_converter,                 JSONConverter
-  attribute :json_decoder,                   JSONDecoder
-  attribute :json_encoder,                   JSONEncoder
-  attribute :json_exception,                 JSONException
-  attribute :json_generator,                 JSONGenerator
-  attribute :json_node,                      JSONNode
-  attribute :json_null,                      JSONNull
-  attribute :json_parser,                    JSONParser
-  attribute :json_reader,                    JSONReader
-  attribute :json_serializer,                JSONSerializer
-  attribute :json_token,                     JSONToken
-  attribute :json_token_type,                JSONTokenType
-  attribute :json_writer,                    JSONWriter
-  attribute :lazy,                           Lazy
-  attribute :left,                           Left
-  attribute :let,                            Let
-  attribute :list,                           List
-  attribute :lock,                           Lock
-  attribute :long,                           Long
-  attribute :map,                            Map
-  attribute :metadata_property_handling,     MetadataPropertyHandling
-  attribute :mutable,                        Mutable
-  attribute :mutating,                       Mutating
-  attribute :namespace,                      Namespace
-  attribute :native,                         Native
-  attribute :newtonsoft,                     Newtonsoft
-  attribute :no,                             No
-  attribute :no_such_method,                 NoSuchMethod
-  attribute :noexcept,                       Noexcept
-  attribute :nonatomic,                      Nonatomic
-  attribute :none,                           None
-  attribute :nonlocal,                       Nonlocal
-  attribute :nonmutating,                    Nonmutating
-  attribute :not_eq,                         NotEq
-  attribute :ns_error,                       NSError
-  attribute :ns_string,                      NSString
-  attribute :null,                           Null
-  attribute :nullptr,                        Nullptr
-  attribute :number,                         Number
-  attribute :obj3_lambda,                    Lambda
-  attribute :obj3_module,                    ModuleClass
-  attribute :obj3_new,                       New
-  attribute :obj3_nil,                       Nil
-  attribute :obj3_none,                      NoneClass
-  attribute :obj3_not,                       Not
-  attribute :obj3_null,                      NullClass
-  attribute :obj3_open,                      Open
-  attribute :obj3_optional,                  Optional
-  attribute :obj3_or,                        Or
-  attribute :obj3_print,                     Print
-  attribute :obj3_printf,                    Printf
-  attribute :obj3_protocol,                  ProtocolClass
-  attribute :object,                         ObjectClass
-  attribute :object_mapper,                  ObjectMapper
-  attribute :of,                             Of
-  attribute :oneway,                         Oneway
-  attribute :operator,                       Operator
-  attribute :or_eq,                          OrEq
-  attribute :out,                            Out
-  attribute :override,                       Override
-  attribute :package,                        Package
-  attribute :params,                         Params
-  attribute :pass,                           Pass
-  attribute :port,                           Port
-  attribute :postfix,                        Postfix
-  attribute :precedence,                     Precedence
-  attribute :prefix,                         Prefix
-  attribute :print_members,                  PrintMembers
-  attribute :private,                        Private
-  attribute :protected,                      Protected
-  attribute :protocol,                       Protocol
-  attribute :serializer_provider,            SerializerProvider
-  attribute :simple_module,                  SimpleModule
-  attribute :std_deserializer,               StdDeserializer
-  attribute :std_serializer,                 StdSerializer
+      "public" => public,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Quicktype < Dry::Struct
+  attribute :quicktype, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      dummy:                          d.fetch("dummy"),
-      is:                             Is.from_dynamic!(d.fetch("is")),
-      iso_date_time_offset_converter: ISODateTimeOffsetConverter.from_dynamic!(d.fetch("IsoDateTimeOffsetConverter")),
-      iterable:                       Iterable.from_dynamic!(d.fetch("iterable")),
-      jdec:                           Jdec.from_dynamic!(d.fetch("jdec")),
-      jenc:                           Jenc.from_dynamic!(d.fetch("jenc")),
-      jpipe:                          Jpipe.from_dynamic!(d.fetch("jpipe")),
-      json:                           JSONClass.from_dynamic!(d.fetch("json")),
-      json_any:                       JSONAny.from_dynamic!(d.fetch("JSONAny")),
-      json_coding_key:                JSONCodingKey.from_dynamic!(d.fetch("JSONCodingKey")),
-      json_converter:                 JSONConverter.from_dynamic!(d.fetch("json_converter")),
-      json_decoder:                   JSONDecoder.from_dynamic!(d.fetch("JSONDecoder")),
-      json_encoder:                   JSONEncoder.from_dynamic!(d.fetch("JSONEncoder")),
-      json_exception:                 JSONException.from_dynamic!(d.fetch("JsonException")),
-      json_generator:                 JSONGenerator.from_dynamic!(d.fetch("JsonGenerator")),
-      json_node:                      JSONNode.from_dynamic!(d.fetch("JsonNode")),
-      json_null:                      JSONNull.from_dynamic!(d.fetch("JSONNull")),
-      json_parser:                    JSONParser.from_dynamic!(d.fetch("JsonParser")),
-      json_reader:                    JSONReader.from_dynamic!(d.fetch("JsonReader")),
-      json_serializer:                JSONSerializer.from_dynamic!(d.fetch("json_serializer")),
-      json_token:                     JSONToken.from_dynamic!(d.fetch("json_token")),
-      json_token_type:                JSONTokenType.from_dynamic!(d.fetch("JsonTokenType")),
-      json_writer:                    JSONWriter.from_dynamic!(d.fetch("json_writer")),
-      lazy:                           Lazy.from_dynamic!(d.fetch("lazy")),
-      left:                           Left.from_dynamic!(d.fetch("left")),
-      let:                            Let.from_dynamic!(d.fetch("let")),
-      list:                           List.from_dynamic!(d.fetch("list")),
-      lock:                           Lock.from_dynamic!(d.fetch("lock")),
-      long:                           Long.from_dynamic!(d.fetch("long")),
-      map:                            Map.from_dynamic!(d.fetch("map")),
-      metadata_property_handling:     MetadataPropertyHandling.from_dynamic!(d.fetch("metadata_property_handling")),
-      mutable:                        Mutable.from_dynamic!(d.fetch("mutable")),
-      mutating:                       Mutating.from_dynamic!(d.fetch("mutating")),
-      namespace:                      Namespace.from_dynamic!(d.fetch("namespace")),
-      native:                         Native.from_dynamic!(d.fetch("native")),
-      newtonsoft:                     Newtonsoft.from_dynamic!(d.fetch("newtonsoft")),
-      no:                             No.from_dynamic!(d.fetch("NO")),
-      no_such_method:                 NoSuchMethod.from_dynamic!(d.fetch("noSuchMethod")),
-      noexcept:                       Noexcept.from_dynamic!(d.fetch("noexcept")),
-      nonatomic:                      Nonatomic.from_dynamic!(d.fetch("nonatomic")),
-      none:                           None.from_dynamic!(d.fetch("None")),
-      nonlocal:                       Nonlocal.from_dynamic!(d.fetch("nonlocal")),
-      nonmutating:                    Nonmutating.from_dynamic!(d.fetch("nonmutating")),
-      not_eq:                         NotEq.from_dynamic!(d.fetch("not_eq")),
-      ns_error:                       NSError.from_dynamic!(d.fetch("NSError")),
-      ns_string:                      NSString.from_dynamic!(d.fetch("NSString")),
-      null:                           Null.from_dynamic!(d.fetch("NULL")),
-      nullptr:                        Nullptr.from_dynamic!(d.fetch("nullptr")),
-      number:                         Number.from_dynamic!(d.fetch("number")),
-      obj3_lambda:                    Lambda.from_dynamic!(d.fetch("lambda")),
-      obj3_module:                    ModuleClass.from_dynamic!(d.fetch("module")),
-      obj3_new:                       New.from_dynamic!(d.fetch("new")),
-      obj3_nil:                       Nil.from_dynamic!(d.fetch("nil")),
-      obj3_none:                      NoneClass.from_dynamic!(d.fetch("none")),
-      obj3_not:                       Not.from_dynamic!(d.fetch("not")),
-      obj3_null:                      NullClass.from_dynamic!(d.fetch("null")),
-      obj3_open:                      Open.from_dynamic!(d.fetch("open")),
-      obj3_optional:                  Optional.from_dynamic!(d.fetch("optional")),
-      obj3_or:                        Or.from_dynamic!(d.fetch("or")),
-      obj3_print:                     Print.from_dynamic!(d.fetch("print")),
-      obj3_printf:                    Printf.from_dynamic!(d.fetch("printf")),
-      obj3_protocol:                  ProtocolClass.from_dynamic!(d.fetch("protocol")),
-      object:                         ObjectClass.from_dynamic!(d.fetch("object")),
-      object_mapper:                  ObjectMapper.from_dynamic!(d.fetch("ObjectMapper")),
-      of:                             Of.from_dynamic!(d.fetch("of")),
-      oneway:                         Oneway.from_dynamic!(d.fetch("oneway")),
-      operator:                       Operator.from_dynamic!(d.fetch("operator")),
-      or_eq:                          OrEq.from_dynamic!(d.fetch("or_eq")),
-      out:                            Out.from_dynamic!(d.fetch("out")),
-      override:                       Override.from_dynamic!(d.fetch("override")),
-      package:                        Package.from_dynamic!(d.fetch("package")),
-      params:                         Params.from_dynamic!(d.fetch("params")),
-      pass:                           Pass.from_dynamic!(d.fetch("pass")),
-      port:                           Port.from_dynamic!(d.fetch("port")),
-      postfix:                        Postfix.from_dynamic!(d.fetch("postfix")),
-      precedence:                     Precedence.from_dynamic!(d.fetch("precedence")),
-      prefix:                         Prefix.from_dynamic!(d.fetch("prefix")),
-      print_members:                  PrintMembers.from_dynamic!(d.fetch("printMembers")),
-      private:                        Private.from_dynamic!(d.fetch("private")),
-      protected:                      Protected.from_dynamic!(d.fetch("protected")),
-      protocol:                       Protocol.from_dynamic!(d.fetch("Protocol")),
-      serializer_provider:            SerializerProvider.from_dynamic!(d.fetch("SerializerProvider")),
-      simple_module:                  SimpleModule.from_dynamic!(d.fetch("SimpleModule")),
-      std_deserializer:               StdDeserializer.from_dynamic!(d.fetch("StdDeserializer")),
-      std_serializer:                 StdSerializer.from_dynamic!(d.fetch("StdSerializer")),
+      quicktype: d.fetch("quicktype"),
     )
   end
 
@@ -6253,91 +6319,7 @@ class Obj3 < Dry::Struct
 
   def to_dynamic
     {
-      "dummy"                      => dummy,
-      "is"                         => is.to_dynamic,
-      "IsoDateTimeOffsetConverter" => iso_date_time_offset_converter.to_dynamic,
-      "iterable"                   => iterable.to_dynamic,
-      "jdec"                       => jdec.to_dynamic,
-      "jenc"                       => jenc.to_dynamic,
-      "jpipe"                      => jpipe.to_dynamic,
-      "json"                       => json.to_dynamic,
-      "JSONAny"                    => json_any.to_dynamic,
-      "JSONCodingKey"              => json_coding_key.to_dynamic,
-      "json_converter"             => json_converter.to_dynamic,
-      "JSONDecoder"                => json_decoder.to_dynamic,
-      "JSONEncoder"                => json_encoder.to_dynamic,
-      "JsonException"              => json_exception.to_dynamic,
-      "JsonGenerator"              => json_generator.to_dynamic,
-      "JsonNode"                   => json_node.to_dynamic,
-      "JSONNull"                   => json_null.to_dynamic,
-      "JsonParser"                 => json_parser.to_dynamic,
-      "JsonReader"                 => json_reader.to_dynamic,
-      "json_serializer"            => json_serializer.to_dynamic,
-      "json_token"                 => json_token.to_dynamic,
-      "JsonTokenType"              => json_token_type.to_dynamic,
-      "json_writer"                => json_writer.to_dynamic,
-      "lazy"                       => lazy.to_dynamic,
-      "left"                       => left.to_dynamic,
-      "let"                        => let.to_dynamic,
-      "list"                       => list.to_dynamic,
-      "lock"                       => lock.to_dynamic,
-      "long"                       => long.to_dynamic,
-      "map"                        => map.to_dynamic,
-      "metadata_property_handling" => metadata_property_handling.to_dynamic,
-      "mutable"                    => mutable.to_dynamic,
-      "mutating"                   => mutating.to_dynamic,
-      "namespace"                  => namespace.to_dynamic,
-      "native"                     => native.to_dynamic,
-      "newtonsoft"                 => newtonsoft.to_dynamic,
-      "NO"                         => no.to_dynamic,
-      "noSuchMethod"               => no_such_method.to_dynamic,
-      "noexcept"                   => noexcept.to_dynamic,
-      "nonatomic"                  => nonatomic.to_dynamic,
-      "None"                       => none.to_dynamic,
-      "nonlocal"                   => nonlocal.to_dynamic,
-      "nonmutating"                => nonmutating.to_dynamic,
-      "not_eq"                     => not_eq.to_dynamic,
-      "NSError"                    => ns_error.to_dynamic,
-      "NSString"                   => ns_string.to_dynamic,
-      "NULL"                       => null.to_dynamic,
-      "nullptr"                    => nullptr.to_dynamic,
-      "number"                     => number.to_dynamic,
-      "lambda"                     => obj3_lambda.to_dynamic,
-      "module"                     => obj3_module.to_dynamic,
-      "new"                        => obj3_new.to_dynamic,
-      "nil"                        => obj3_nil.to_dynamic,
-      "none"                       => obj3_none.to_dynamic,
-      "not"                        => obj3_not.to_dynamic,
-      "null"                       => obj3_null.to_dynamic,
-      "open"                       => obj3_open.to_dynamic,
-      "optional"                   => obj3_optional.to_dynamic,
-      "or"                         => obj3_or.to_dynamic,
-      "print"                      => obj3_print.to_dynamic,
-      "printf"                     => obj3_printf.to_dynamic,
-      "protocol"                   => obj3_protocol.to_dynamic,
-      "object"                     => object.to_dynamic,
-      "ObjectMapper"               => object_mapper.to_dynamic,
-      "of"                         => of.to_dynamic,
-      "oneway"                     => oneway.to_dynamic,
-      "operator"                   => operator.to_dynamic,
-      "or_eq"                      => or_eq.to_dynamic,
-      "out"                        => out.to_dynamic,
-      "override"                   => override.to_dynamic,
-      "package"                    => package.to_dynamic,
-      "params"                     => params.to_dynamic,
-      "pass"                       => pass.to_dynamic,
-      "port"                       => port.to_dynamic,
-      "postfix"                    => postfix.to_dynamic,
-      "precedence"                 => precedence.to_dynamic,
-      "prefix"                     => prefix.to_dynamic,
-      "printMembers"               => print_members.to_dynamic,
-      "private"                    => private.to_dynamic,
-      "protected"                  => protected.to_dynamic,
-      "Protocol"                   => protocol.to_dynamic,
-      "SerializerProvider"         => serializer_provider.to_dynamic,
-      "SimpleModule"               => simple_module.to_dynamic,
-      "StdDeserializer"            => std_deserializer.to_dynamic,
-      "StdSerializer"              => std_serializer.to_dynamic,
+      "quicktype" => quicktype,
     }
   end
 
@@ -6346,13 +6328,13 @@ class Obj3 < Dry::Struct
   end
 end
 
-class Raise < Dry::Struct
-  attribute :raise_raise, Types::Integer
+class RangeClass < Dry::Struct
+  attribute :range, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      raise_raise: d.fetch("raise"),
+      range: d.fetch("range"),
     )
   end
 
@@ -6362,7 +6344,7 @@ class Raise < Dry::Struct
 
   def to_dynamic
     {
-      "raise" => raise_raise,
+      "range" => range,
     }
   end
 
@@ -6371,13 +6353,13 @@ class Raise < Dry::Struct
   end
 end
 
-class Require < Dry::Struct
-  attribute :require_require, Types::Integer
+class Readonly < Dry::Struct
+  attribute :readonly, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      require_require: d.fetch("require"),
+      readonly: d.fetch("readonly"),
     )
   end
 
@@ -6387,7 +6369,7 @@ class Require < Dry::Struct
 
   def to_dynamic
     {
-      "require" => require_require,
+      "readonly" => readonly,
     }
   end
 
@@ -6396,13 +6378,13 @@ class Require < Dry::Struct
   end
 end
 
-class Return < Dry::Struct
-  attribute :return_return, Types::Integer
+class Ref < Dry::Struct
+  attribute :ref, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      return_return: d.fetch("return"),
+      ref: d.fetch("ref"),
     )
   end
 
@@ -6412,7 +6394,7 @@ class Return < Dry::Struct
 
   def to_dynamic
     {
-      "return" => return_return,
+      "ref" => ref,
     }
   end
 
@@ -6421,13 +6403,13 @@ class Return < Dry::Struct
   end
 end
 
-class Select < Dry::Struct
-  attribute :select_select, Types::Integer
+class RegExp < Dry::Struct
+  attribute :reg_exp, Types::String.constrained(format: /\A[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}\z/i)
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      select_select: d.fetch("select"),
+      reg_exp: d.fetch("RegExp"),
     )
   end
 
@@ -6437,7 +6419,7 @@ class Select < Dry::Struct
 
   def to_dynamic
     {
-      "select" => select_select,
+      "RegExp" => reg_exp,
     }
   end
 
@@ -6446,13 +6428,13 @@ class Select < Dry::Struct
   end
 end
 
-class SelfClass < Dry::Struct
-  attribute :self_self, Types::Integer
+class Register < Dry::Struct
+  attribute :register, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      self_self: d.fetch("Self"),
+      register: d.fetch("register"),
     )
   end
 
@@ -6462,7 +6444,7 @@ class SelfClass < Dry::Struct
 
   def to_dynamic
     {
-      "Self" => self_self,
+      "register" => register,
     }
   end
 
@@ -6471,13 +6453,13 @@ class SelfClass < Dry::Struct
   end
 end
 
-class Super < Dry::Struct
-  attribute :super_super, Types::Integer
+class ReinterpretCast < Dry::Struct
+  attribute :reinterpret_cast, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      super_super: d.fetch("super"),
+      reinterpret_cast: d.fetch("reinterpret_cast"),
     )
   end
 
@@ -6487,7 +6469,7 @@ class Super < Dry::Struct
 
   def to_dynamic
     {
-      "super" => super_super,
+      "reinterpret_cast" => reinterpret_cast,
     }
   end
 
@@ -6496,13 +6478,13 @@ class Super < Dry::Struct
   end
 end
 
-class System < Dry::Struct
-  attribute :system_system, Types::Integer
+class Repeat < Dry::Struct
+  attribute :repeat, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      system_system: d.fetch("system"),
+      repeat: d.fetch("repeat"),
     )
   end
 
@@ -6512,7 +6494,7 @@ class System < Dry::Struct
 
   def to_dynamic
     {
-      "system" => system_system,
+      "repeat" => repeat,
     }
   end
 
@@ -6521,13 +6503,13 @@ class System < Dry::Struct
   end
 end
 
-class Then < Dry::Struct
-  attribute :then_then, Types::Integer
+class Required < Dry::Struct
+  attribute :required, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      then_then: d.fetch("then"),
+      required: d.fetch("required"),
     )
   end
 
@@ -6537,7 +6519,7 @@ class Then < Dry::Struct
 
   def to_dynamic
     {
-      "then" => then_then,
+      "required" => required,
     }
   end
 
@@ -6546,13 +6528,13 @@ class Then < Dry::Struct
   end
 end
 
-class Throw < Dry::Struct
-  attribute :throw_throw, Types::Integer
+class Requires < Dry::Struct
+  attribute :requires, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      throw_throw: d.fetch("throw"),
+      requires: d.fetch("requires"),
     )
   end
 
@@ -6562,7 +6544,7 @@ class Throw < Dry::Struct
 
   def to_dynamic
     {
-      "throw" => throw_throw,
+      "requires" => requires,
     }
   end
 
@@ -6571,13 +6553,13 @@ class Throw < Dry::Struct
   end
 end
 
-class ToJSON < Dry::Struct
-  attribute :to_json_to_json, Types::Integer
+class Restrict < Dry::Struct
+  attribute :restrict, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      to_json_to_json: d.fetch("to_json"),
+      restrict: d.fetch("restrict"),
     )
   end
 
@@ -6587,7 +6569,7 @@ class ToJSON < Dry::Struct
 
   def to_dynamic
     {
-      "to_json" => to_json_to_json,
+      "restrict" => restrict,
     }
   end
 
@@ -6596,13 +6578,13 @@ class ToJSON < Dry::Struct
   end
 end
 
-class True < Dry::Struct
-  attribute :true_true, Types::Integer
+class Retain < Dry::Struct
+  attribute :retain, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      true_true: d.fetch("True"),
+      retain: d.fetch("retain"),
     )
   end
 
@@ -6612,7 +6594,7 @@ class True < Dry::Struct
 
   def to_dynamic
     {
-      "True" => true_true,
+      "retain" => retain,
     }
   end
 
@@ -6621,13 +6603,13 @@ class True < Dry::Struct
   end
 end
 
-class Try < Dry::Struct
-  attribute :try_try, Types::Integer
+class Rethrows < Dry::Struct
+  attribute :rethrows, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      try_try: d.fetch("try"),
+      rethrows: d.fetch("rethrows"),
     )
   end
 
@@ -6637,7 +6619,7 @@ class Try < Dry::Struct
 
   def to_dynamic
     {
-      "try" => try_try,
+      "rethrows" => rethrows,
     }
   end
 
@@ -6646,13 +6628,13 @@ class Try < Dry::Struct
   end
 end
 
-class Type < Dry::Struct
-  attribute :type_type, Types::Integer
+class Right < Dry::Struct
+  attribute :right, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      type_type: d.fetch("Type"),
+      right: d.fetch("right"),
     )
   end
 
@@ -6662,7 +6644,7 @@ class Type < Dry::Struct
 
   def to_dynamic
     {
-      "Type" => type_type,
+      "right" => right,
     }
   end
 
@@ -6671,13 +6653,13 @@ class Type < Dry::Struct
   end
 end
 
-class Public < Dry::Struct
-  attribute :public, Types::Integer
+class RuntimeType < Dry::Struct
+  attribute :runtime_type, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      public: d.fetch("public"),
+      runtime_type: d.fetch("runtimeType"),
     )
   end
 
@@ -6687,7 +6669,32 @@ class Public < Dry::Struct
 
   def to_dynamic
     {
-      "public" => public,
+      "runtimeType" => runtime_type,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class S < Dry::Struct
+  attribute :s, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      s: d.fetch("s"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "s" => s,
     }
   end
 
@@ -6696,13 +6703,13 @@ class Public < Dry::Struct
   end
 end
 
-class Quicktype < Dry::Struct
-  attribute :quicktype, Types::Integer
+class Sbyte < Dry::Struct
+  attribute :sbyte, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      quicktype: d.fetch("quicktype"),
+      sbyte: d.fetch("sbyte"),
     )
   end
 
@@ -6712,7 +6719,7 @@ class Quicktype < Dry::Struct
 
   def to_dynamic
     {
-      "quicktype" => quicktype,
+      "sbyte" => sbyte,
     }
   end
 
@@ -6721,13 +6728,13 @@ class Quicktype < Dry::Struct
   end
 end
 
-class RangeClass < Dry::Struct
-  attribute :range, Types::Integer
+class Sealed < Dry::Struct
+  attribute :sealed, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      range: d.fetch("range"),
+      sealed: d.fetch("sealed"),
     )
   end
 
@@ -6737,7 +6744,7 @@ class RangeClass < Dry::Struct
 
   def to_dynamic
     {
-      "range" => range,
+      "sealed" => sealed,
     }
   end
 
@@ -6746,13 +6753,13 @@ class RangeClass < Dry::Struct
   end
 end
 
-class Readonly < Dry::Struct
-  attribute :readonly, Types::Integer
+class Sel < Dry::Struct
+  attribute :sel, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      readonly: d.fetch("readonly"),
+      sel: d.fetch("SEL"),
     )
   end
 
@@ -6762,7 +6769,7 @@ class Readonly < Dry::Struct
 
   def to_dynamic
     {
-      "readonly" => readonly,
+      "SEL" => sel,
     }
   end
 
@@ -6771,13 +6778,13 @@ class Readonly < Dry::Struct
   end
 end
 
-class Ref < Dry::Struct
-  attribute :ref, Types::Integer
+class Obj4Self < Dry::Struct
+  attribute :self_self, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      ref: d.fetch("ref"),
+      self_self: d.fetch("self"),
     )
   end
 
@@ -6787,7 +6794,7 @@ class Ref < Dry::Struct
 
   def to_dynamic
     {
-      "ref" => ref,
+      "self" => self_self,
     }
   end
 
@@ -6796,13 +6803,13 @@ class Ref < Dry::Struct
   end
 end
 
-class RegExp < Dry::Struct
-  attribute :reg_exp, Types::String.constrained(format: /\A[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}\z/i)
+class Serialize < Dry::Struct
+  attribute :serialize, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      reg_exp: d.fetch("RegExp"),
+      serialize: d.fetch("serialize"),
     )
   end
 
@@ -6812,7 +6819,7 @@ class RegExp < Dry::Struct
 
   def to_dynamic
     {
-      "RegExp" => reg_exp,
+      "serialize" => serialize,
     }
   end
 
@@ -6821,13 +6828,13 @@ class RegExp < Dry::Struct
   end
 end
 
-class Register < Dry::Struct
-  attribute :register, Types::Integer
+class SerializerProvider < Dry::Struct
+  attribute :serializer_provider, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      register: d.fetch("register"),
+      serializer_provider: d.fetch("SerializerProvider"),
     )
   end
 
@@ -6837,7 +6844,7 @@ class Register < Dry::Struct
 
   def to_dynamic
     {
-      "register" => register,
+      "SerializerProvider" => serializer_provider,
     }
   end
 
@@ -6846,13 +6853,13 @@ class Register < Dry::Struct
   end
 end
 
-class ReinterpretCast < Dry::Struct
-  attribute :reinterpret_cast, Types::Integer
+class SetClass < Dry::Struct
+  attribute :set, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      reinterpret_cast: d.fetch("reinterpret_cast"),
+      set: d.fetch("set"),
     )
   end
 
@@ -6862,7 +6869,7 @@ class ReinterpretCast < Dry::Struct
 
   def to_dynamic
     {
-      "reinterpret_cast" => reinterpret_cast,
+      "set" => set,
     }
   end
 
@@ -6871,13 +6878,13 @@ class ReinterpretCast < Dry::Struct
   end
 end
 
-class Repeat < Dry::Struct
-  attribute :repeat, Types::Integer
+class Short < Dry::Struct
+  attribute :short, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      repeat: d.fetch("repeat"),
+      short: d.fetch("short"),
     )
   end
 
@@ -6887,7 +6894,7 @@ class Repeat < Dry::Struct
 
   def to_dynamic
     {
-      "repeat" => repeat,
+      "short" => short,
     }
   end
 
@@ -6896,13 +6903,13 @@ class Repeat < Dry::Struct
   end
 end
 
-class Required < Dry::Struct
-  attribute :required, Types::Integer
+class Signed < Dry::Struct
+  attribute :signed, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      required: d.fetch("required"),
+      signed: d.fetch("signed"),
     )
   end
 
@@ -6912,7 +6919,7 @@ class Required < Dry::Struct
 
   def to_dynamic
     {
-      "required" => required,
+      "signed" => signed,
     }
   end
 
@@ -6921,13 +6928,13 @@ class Required < Dry::Struct
   end
 end
 
-class Requires < Dry::Struct
-  attribute :requires, Types::Integer
+class SimpleModule < Dry::Struct
+  attribute :simple_module, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      requires: d.fetch("requires"),
+      simple_module: d.fetch("SimpleModule"),
     )
   end
 
@@ -6937,7 +6944,7 @@ class Requires < Dry::Struct
 
   def to_dynamic
     {
-      "requires" => requires,
+      "SimpleModule" => simple_module,
     }
   end
 
@@ -6946,13 +6953,13 @@ class Requires < Dry::Struct
   end
 end
 
-class Restrict < Dry::Struct
-  attribute :restrict, Types::Integer
+class Sizeof < Dry::Struct
+  attribute :sizeof, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      restrict: d.fetch("restrict"),
+      sizeof: d.fetch("sizeof"),
     )
   end
 
@@ -6962,7 +6969,7 @@ class Restrict < Dry::Struct
 
   def to_dynamic
     {
-      "restrict" => restrict,
+      "sizeof" => sizeof,
     }
   end
 
@@ -6971,13 +6978,13 @@ class Restrict < Dry::Struct
   end
 end
 
-class Retain < Dry::Struct
-  attribute :retain, Types::Integer
+class Stackalloc < Dry::Struct
+  attribute :stackalloc, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      retain: d.fetch("retain"),
+      stackalloc: d.fetch("stackalloc"),
     )
   end
 
@@ -6987,7 +6994,7 @@ class Retain < Dry::Struct
 
   def to_dynamic
     {
-      "retain" => retain,
+      "stackalloc" => stackalloc,
     }
   end
 
@@ -6996,13 +7003,13 @@ class Retain < Dry::Struct
   end
 end
 
-class Rethrows < Dry::Struct
-  attribute :rethrows, Types::Integer
+class Standards < Dry::Struct
+  attribute :standards, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      rethrows: d.fetch("rethrows"),
+      standards: d.fetch("Standards"),
     )
   end
 
@@ -7012,7 +7019,7 @@ class Rethrows < Dry::Struct
 
   def to_dynamic
     {
-      "rethrows" => rethrows,
+      "Standards" => standards,
     }
   end
 
@@ -7021,13 +7028,13 @@ class Rethrows < Dry::Struct
   end
 end
 
-class Right < Dry::Struct
-  attribute :right, Types::Integer
+class Static < Dry::Struct
+  attribute :static, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      right: d.fetch("right"),
+      static: d.fetch("static"),
     )
   end
 
@@ -7037,7 +7044,7 @@ class Right < Dry::Struct
 
   def to_dynamic
     {
-      "right" => right,
+      "static" => static,
     }
   end
 
@@ -7046,13 +7053,13 @@ class Right < Dry::Struct
   end
 end
 
-class RuntimeType < Dry::Struct
-  attribute :runtime_type, Types::Integer
+class StaticAssert < Dry::Struct
+  attribute :static_assert, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      runtime_type: d.fetch("runtimeType"),
+      static_assert: d.fetch("static_assert"),
     )
   end
 
@@ -7062,7 +7069,7 @@ class RuntimeType < Dry::Struct
 
   def to_dynamic
     {
-      "runtimeType" => runtime_type,
+      "static_assert" => static_assert,
     }
   end
 
@@ -7071,13 +7078,141 @@ class RuntimeType < Dry::Struct
   end
 end
 
-class S < Dry::Struct
-  attribute :s, Types::Integer
+class Obj4 < Dry::Struct
+  attribute :dummy,               Types::Integer
+  attribute :nullptr,             Nullptr
+  attribute :number,              Number
+  attribute :obj4_open,           Open
+  attribute :obj4_optional,       Optional
+  attribute :obj4_or,             Or
+  attribute :obj4_print,          Print
+  attribute :obj4_printf,         Printf
+  attribute :obj4_protocol,       ProtocolClass
+  attribute :obj4_raise,          Raise
+  attribute :obj4_require,        Require
+  attribute :obj4_return,         Return
+  attribute :obj4_select,         Select
+  attribute :obj4_self,           SelfClass
+  attribute :object,              ObjectClass
+  attribute :object_mapper,       ObjectMapper
+  attribute :of,                  Of
+  attribute :oneway,              Oneway
+  attribute :operator,            Operator
+  attribute :or_eq,               OrEq
+  attribute :out,                 Out
+  attribute :override,            Override
+  attribute :package,             Package
+  attribute :params,              Params
+  attribute :pass,                Pass
+  attribute :port,                Port
+  attribute :postfix,             Postfix
+  attribute :precedence,          Precedence
+  attribute :prefix,              Prefix
+  attribute :print_members,       PrintMembers
+  attribute :private,             Private
+  attribute :protected,           Protected
+  attribute :protocol,            Protocol
+  attribute :public,              Public
+  attribute :quicktype,           Quicktype
+  attribute :range,               RangeClass
+  attribute :readonly,            Readonly
+  attribute :ref,                 Ref
+  attribute :reg_exp,             RegExp
+  attribute :register,            Register
+  attribute :reinterpret_cast,    ReinterpretCast
+  attribute :repeat,              Repeat
+  attribute :required,            Required
+  attribute :requires,            Requires
+  attribute :restrict,            Restrict
+  attribute :retain,              Retain
+  attribute :rethrows,            Rethrows
+  attribute :right,               Right
+  attribute :runtime_type,        RuntimeType
+  attribute :s,                   S
+  attribute :sbyte,               Sbyte
+  attribute :sealed,              Sealed
+  attribute :sel,                 Sel
+  attribute :self_1,              Obj4Self
+  attribute :serialize,           Serialize
+  attribute :serializer_provider, SerializerProvider
+  attribute :set,                 SetClass
+  attribute :short,               Short
+  attribute :signed,              Signed
+  attribute :simple_module,       SimpleModule
+  attribute :sizeof,              Sizeof
+  attribute :stackalloc,          Stackalloc
+  attribute :standards,           Standards
+  attribute :static,              Static
+  attribute :static_assert,       StaticAssert
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      s: d.fetch("s"),
+      dummy:               d.fetch("dummy"),
+      nullptr:             Nullptr.from_dynamic!(d.fetch("nullptr")),
+      number:              Number.from_dynamic!(d.fetch("number")),
+      obj4_open:           Open.from_dynamic!(d.fetch("open")),
+      obj4_optional:       Optional.from_dynamic!(d.fetch("optional")),
+      obj4_or:             Or.from_dynamic!(d.fetch("or")),
+      obj4_print:          Print.from_dynamic!(d.fetch("print")),
+      obj4_printf:         Printf.from_dynamic!(d.fetch("printf")),
+      obj4_protocol:       ProtocolClass.from_dynamic!(d.fetch("protocol")),
+      obj4_raise:          Raise.from_dynamic!(d.fetch("raise")),
+      obj4_require:        Require.from_dynamic!(d.fetch("require")),
+      obj4_return:         Return.from_dynamic!(d.fetch("return")),
+      obj4_select:         Select.from_dynamic!(d.fetch("select")),
+      obj4_self:           SelfClass.from_dynamic!(d.fetch("Self")),
+      object:              ObjectClass.from_dynamic!(d.fetch("object")),
+      object_mapper:       ObjectMapper.from_dynamic!(d.fetch("ObjectMapper")),
+      of:                  Of.from_dynamic!(d.fetch("of")),
+      oneway:              Oneway.from_dynamic!(d.fetch("oneway")),
+      operator:            Operator.from_dynamic!(d.fetch("operator")),
+      or_eq:               OrEq.from_dynamic!(d.fetch("or_eq")),
+      out:                 Out.from_dynamic!(d.fetch("out")),
+      override:            Override.from_dynamic!(d.fetch("override")),
+      package:             Package.from_dynamic!(d.fetch("package")),
+      params:              Params.from_dynamic!(d.fetch("params")),
+      pass:                Pass.from_dynamic!(d.fetch("pass")),
+      port:                Port.from_dynamic!(d.fetch("port")),
+      postfix:             Postfix.from_dynamic!(d.fetch("postfix")),
+      precedence:          Precedence.from_dynamic!(d.fetch("precedence")),
+      prefix:              Prefix.from_dynamic!(d.fetch("prefix")),
+      print_members:       PrintMembers.from_dynamic!(d.fetch("printMembers")),
+      private:             Private.from_dynamic!(d.fetch("private")),
+      protected:           Protected.from_dynamic!(d.fetch("protected")),
+      protocol:            Protocol.from_dynamic!(d.fetch("Protocol")),
+      public:              Public.from_dynamic!(d.fetch("public")),
+      quicktype:           Quicktype.from_dynamic!(d.fetch("quicktype")),
+      range:               RangeClass.from_dynamic!(d.fetch("range")),
+      readonly:            Readonly.from_dynamic!(d.fetch("readonly")),
+      ref:                 Ref.from_dynamic!(d.fetch("ref")),
+      reg_exp:             RegExp.from_dynamic!(d.fetch("RegExp")),
+      register:            Register.from_dynamic!(d.fetch("register")),
+      reinterpret_cast:    ReinterpretCast.from_dynamic!(d.fetch("reinterpret_cast")),
+      repeat:              Repeat.from_dynamic!(d.fetch("repeat")),
+      required:            Required.from_dynamic!(d.fetch("required")),
+      requires:            Requires.from_dynamic!(d.fetch("requires")),
+      restrict:            Restrict.from_dynamic!(d.fetch("restrict")),
+      retain:              Retain.from_dynamic!(d.fetch("retain")),
+      rethrows:            Rethrows.from_dynamic!(d.fetch("rethrows")),
+      right:               Right.from_dynamic!(d.fetch("right")),
+      runtime_type:        RuntimeType.from_dynamic!(d.fetch("runtimeType")),
+      s:                   S.from_dynamic!(d.fetch("s")),
+      sbyte:               Sbyte.from_dynamic!(d.fetch("sbyte")),
+      sealed:              Sealed.from_dynamic!(d.fetch("sealed")),
+      sel:                 Sel.from_dynamic!(d.fetch("SEL")),
+      self_1:              Obj4Self.from_dynamic!(d.fetch("self")),
+      serialize:           Serialize.from_dynamic!(d.fetch("serialize")),
+      serializer_provider: SerializerProvider.from_dynamic!(d.fetch("SerializerProvider")),
+      set:                 SetClass.from_dynamic!(d.fetch("set")),
+      short:               Short.from_dynamic!(d.fetch("short")),
+      signed:              Signed.from_dynamic!(d.fetch("signed")),
+      simple_module:       SimpleModule.from_dynamic!(d.fetch("SimpleModule")),
+      sizeof:              Sizeof.from_dynamic!(d.fetch("sizeof")),
+      stackalloc:          Stackalloc.from_dynamic!(d.fetch("stackalloc")),
+      standards:           Standards.from_dynamic!(d.fetch("Standards")),
+      static:              Static.from_dynamic!(d.fetch("static")),
+      static_assert:       StaticAssert.from_dynamic!(d.fetch("static_assert")),
     )
   end
 
@@ -7087,7 +7222,71 @@ class S < Dry::Struct
 
   def to_dynamic
     {
-      "s" => s,
+      "dummy"              => dummy,
+      "nullptr"            => nullptr.to_dynamic,
+      "number"             => number.to_dynamic,
+      "open"               => obj4_open.to_dynamic,
+      "optional"           => obj4_optional.to_dynamic,
+      "or"                 => obj4_or.to_dynamic,
+      "print"              => obj4_print.to_dynamic,
+      "printf"             => obj4_printf.to_dynamic,
+      "protocol"           => obj4_protocol.to_dynamic,
+      "raise"              => obj4_raise.to_dynamic,
+      "require"            => obj4_require.to_dynamic,
+      "return"             => obj4_return.to_dynamic,
+      "select"             => obj4_select.to_dynamic,
+      "Self"               => obj4_self.to_dynamic,
+      "object"             => object.to_dynamic,
+      "ObjectMapper"       => object_mapper.to_dynamic,
+      "of"                 => of.to_dynamic,
+      "oneway"             => oneway.to_dynamic,
+      "operator"           => operator.to_dynamic,
+      "or_eq"              => or_eq.to_dynamic,
+      "out"                => out.to_dynamic,
+      "override"           => override.to_dynamic,
+      "package"            => package.to_dynamic,
+      "params"             => params.to_dynamic,
+      "pass"               => pass.to_dynamic,
+      "port"               => port.to_dynamic,
+      "postfix"            => postfix.to_dynamic,
+      "precedence"         => precedence.to_dynamic,
+      "prefix"             => prefix.to_dynamic,
+      "printMembers"       => print_members.to_dynamic,
+      "private"            => private.to_dynamic,
+      "protected"          => protected.to_dynamic,
+      "Protocol"           => protocol.to_dynamic,
+      "public"             => public.to_dynamic,
+      "quicktype"          => quicktype.to_dynamic,
+      "range"              => range.to_dynamic,
+      "readonly"           => readonly.to_dynamic,
+      "ref"                => ref.to_dynamic,
+      "RegExp"             => reg_exp.to_dynamic,
+      "register"           => register.to_dynamic,
+      "reinterpret_cast"   => reinterpret_cast.to_dynamic,
+      "repeat"             => repeat.to_dynamic,
+      "required"           => required.to_dynamic,
+      "requires"           => requires.to_dynamic,
+      "restrict"           => restrict.to_dynamic,
+      "retain"             => retain.to_dynamic,
+      "rethrows"           => rethrows.to_dynamic,
+      "right"              => right.to_dynamic,
+      "runtimeType"        => runtime_type.to_dynamic,
+      "s"                  => s.to_dynamic,
+      "sbyte"              => sbyte.to_dynamic,
+      "sealed"             => sealed.to_dynamic,
+      "SEL"                => sel.to_dynamic,
+      "self"               => self_1.to_dynamic,
+      "serialize"          => serialize.to_dynamic,
+      "SerializerProvider" => serializer_provider.to_dynamic,
+      "set"                => set.to_dynamic,
+      "short"              => short.to_dynamic,
+      "signed"             => signed.to_dynamic,
+      "SimpleModule"       => simple_module.to_dynamic,
+      "sizeof"             => sizeof.to_dynamic,
+      "stackalloc"         => stackalloc.to_dynamic,
+      "Standards"          => standards.to_dynamic,
+      "static"             => static.to_dynamic,
+      "static_assert"      => static_assert.to_dynamic,
     }
   end
 
@@ -7096,13 +7295,13 @@ class S < Dry::Struct
   end
 end
 
-class Sbyte < Dry::Struct
-  attribute :sbyte, Types::Integer
+class Super < Dry::Struct
+  attribute :super_super, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      sbyte: d.fetch("sbyte"),
+      super_super: d.fetch("super"),
     )
   end
 
@@ -7112,7 +7311,7 @@ class Sbyte < Dry::Struct
 
   def to_dynamic
     {
-      "sbyte" => sbyte,
+      "super" => super_super,
     }
   end
 
@@ -7121,13 +7320,13 @@ class Sbyte < Dry::Struct
   end
 end
 
-class Sealed < Dry::Struct
-  attribute :sealed, Types::Integer
+class System < Dry::Struct
+  attribute :system_system, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      sealed: d.fetch("sealed"),
+      system_system: d.fetch("system"),
     )
   end
 
@@ -7137,7 +7336,7 @@ class Sealed < Dry::Struct
 
   def to_dynamic
     {
-      "sealed" => sealed,
+      "system" => system_system,
     }
   end
 
@@ -7146,13 +7345,13 @@ class Sealed < Dry::Struct
   end
 end
 
-class Sel < Dry::Struct
-  attribute :sel, Types::Integer
+class Then < Dry::Struct
+  attribute :then_then, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      sel: d.fetch("SEL"),
+      then_then: d.fetch("then"),
     )
   end
 
@@ -7162,7 +7361,7 @@ class Sel < Dry::Struct
 
   def to_dynamic
     {
-      "SEL" => sel,
+      "then" => then_then,
     }
   end
 
@@ -7171,13 +7370,13 @@ class Sel < Dry::Struct
   end
 end
 
-class Obj4Self < Dry::Struct
-  attribute :self_self, Types::Integer
+class Throw < Dry::Struct
+  attribute :throw_throw, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      self_self: d.fetch("self"),
+      throw_throw: d.fetch("throw"),
     )
   end
 
@@ -7187,7 +7386,7 @@ class Obj4Self < Dry::Struct
 
   def to_dynamic
     {
-      "self" => self_self,
+      "throw" => throw_throw,
     }
   end
 
@@ -7196,13 +7395,13 @@ class Obj4Self < Dry::Struct
   end
 end
 
-class Serialize < Dry::Struct
-  attribute :serialize, Types::Integer
+class ToJSON < Dry::Struct
+  attribute :to_json_to_json, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      serialize: d.fetch("serialize"),
+      to_json_to_json: d.fetch("to_json"),
     )
   end
 
@@ -7212,7 +7411,7 @@ class Serialize < Dry::Struct
 
   def to_dynamic
     {
-      "serialize" => serialize,
+      "to_json" => to_json_to_json,
     }
   end
 
@@ -7221,13 +7420,13 @@ class Serialize < Dry::Struct
   end
 end
 
-class SetClass < Dry::Struct
-  attribute :set, Types::Integer
+class True < Dry::Struct
+  attribute :true_true, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      set: d.fetch("set"),
+      true_true: d.fetch("True"),
     )
   end
 
@@ -7237,7 +7436,7 @@ class SetClass < Dry::Struct
 
   def to_dynamic
     {
-      "set" => set,
+      "True" => true_true,
     }
   end
 
@@ -7246,13 +7445,13 @@ class SetClass < Dry::Struct
   end
 end
 
-class Short < Dry::Struct
-  attribute :short, Types::Integer
+class Try < Dry::Struct
+  attribute :try_try, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      short: d.fetch("short"),
+      try_try: d.fetch("try"),
     )
   end
 
@@ -7262,7 +7461,7 @@ class Short < Dry::Struct
 
   def to_dynamic
     {
-      "short" => short,
+      "try" => try_try,
     }
   end
 
@@ -7271,13 +7470,13 @@ class Short < Dry::Struct
   end
 end
 
-class Signed < Dry::Struct
-  attribute :signed, Types::Integer
+class Type < Dry::Struct
+  attribute :type_type, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      signed: d.fetch("signed"),
+      type_type: d.fetch("Type"),
     )
   end
 
@@ -7287,7 +7486,7 @@ class Signed < Dry::Struct
 
   def to_dynamic
     {
-      "signed" => signed,
+      "Type" => type_type,
     }
   end
 
@@ -7296,13 +7495,13 @@ class Signed < Dry::Struct
   end
 end
 
-class Sizeof < Dry::Struct
-  attribute :sizeof, Types::Integer
+class While < Dry::Struct
+  attribute :while_while, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      sizeof: d.fetch("sizeof"),
+      while_while: d.fetch("while"),
     )
   end
 
@@ -7312,7 +7511,7 @@ class Sizeof < Dry::Struct
 
   def to_dynamic
     {
-      "sizeof" => sizeof,
+      "while" => while_while,
     }
   end
 
@@ -7321,13 +7520,13 @@ class Sizeof < Dry::Struct
   end
 end
 
-class Stackalloc < Dry::Struct
-  attribute :stackalloc, Types::Integer
+class With < Dry::Struct
+  attribute :with_with, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      stackalloc: d.fetch("stackalloc"),
+      with_with: d.fetch("with"),
     )
   end
 
@@ -7337,7 +7536,7 @@ class Stackalloc < Dry::Struct
 
   def to_dynamic
     {
-      "stackalloc" => stackalloc,
+      "with" => with_with,
     }
   end
 
@@ -7346,13 +7545,13 @@ class Stackalloc < Dry::Struct
   end
 end
 
-class Standards < Dry::Struct
-  attribute :standards, Types::Integer
+class Yield < Dry::Struct
+  attribute :yield_yield, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      standards: d.fetch("Standards"),
+      yield_yield: d.fetch("yield"),
     )
   end
 
@@ -7362,7 +7561,7 @@ class Standards < Dry::Struct
 
   def to_dynamic
     {
-      "Standards" => standards,
+      "yield" => yield_yield,
     }
   end
 
@@ -7371,13 +7570,13 @@ class Standards < Dry::Struct
   end
 end
 
-class Static < Dry::Struct
-  attribute :static, Types::Integer
+class StaticCast < Dry::Struct
+  attribute :static_cast, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      static: d.fetch("static"),
+      static_cast: d.fetch("static_cast"),
     )
   end
 
@@ -7387,7 +7586,7 @@ class Static < Dry::Struct
 
   def to_dynamic
     {
-      "static" => static,
+      "static_cast" => static_cast,
     }
   end
 
@@ -7396,13 +7595,13 @@ class Static < Dry::Struct
   end
 end
 
-class StaticAssert < Dry::Struct
-  attribute :static_assert, Types::Integer
+class StdDeserializer < Dry::Struct
+  attribute :std_deserializer, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      static_assert: d.fetch("static_assert"),
+      std_deserializer: d.fetch("StdDeserializer"),
     )
   end
 
@@ -7412,7 +7611,7 @@ class StaticAssert < Dry::Struct
 
   def to_dynamic
     {
-      "static_assert" => static_assert,
+      "StdDeserializer" => std_deserializer,
     }
   end
 
@@ -7421,13 +7620,13 @@ class StaticAssert < Dry::Struct
   end
 end
 
-class StaticCast < Dry::Struct
-  attribute :static_cast, Types::Integer
+class StdSerializer < Dry::Struct
+  attribute :std_serializer, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      static_cast: d.fetch("static_cast"),
+      std_serializer: d.fetch("StdSerializer"),
     )
   end
 
@@ -7437,7 +7636,7 @@ class StaticCast < Dry::Struct
 
   def to_dynamic
     {
-      "static_cast" => static_cast,
+      "StdSerializer" => std_serializer,
     }
   end
 
@@ -7846,7 +8045,7 @@ class Transient < Dry::Struct
   end
 end
 
-class Obj4True < Dry::Struct
+class Obj5True < Dry::Struct
   attribute :true_true, Types::Integer
 
   def self.from_dynamic!(d)
@@ -7983,293 +8182,26 @@ class Typename < Dry::Struct
 
   def self.from_json!(json)
     from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "typename" => typename,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Typeof < Dry::Struct
-  attribute :typeof, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      typeof: d.fetch("typeof"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "typeof" => typeof,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Uint < Dry::Struct
-  attribute :uint, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      uint: d.fetch("uint"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "uint" => uint,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Ulong < Dry::Struct
-  attribute :ulong, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      ulong: d.fetch("ulong"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "ulong" => ulong,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Unchecked < Dry::Struct
-  attribute :unchecked, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      unchecked: d.fetch("unchecked"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "unchecked" => unchecked,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class UndefinedClass < Dry::Struct
-  attribute :undefined, Types::Integer
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      undefined: d.fetch("undefined"),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "undefined" => undefined,
-    }
-  end
-
-  def to_json(options = nil)
-    JSON.generate(to_dynamic, options)
-  end
-end
-
-class Obj4 < Dry::Struct
-  attribute :dummy,               Types::Integer
-  attribute :obj4_raise,          Raise
-  attribute :obj4_require,        Require
-  attribute :obj4_return,         Return
-  attribute :obj4_select,         Select
-  attribute :obj4_self,           SelfClass
-  attribute :obj4_super,          Super
-  attribute :obj4_system,         System
-  attribute :obj4_then,           Then
-  attribute :obj4_throw,          Throw
-  attribute :obj4_to_json,        ToJSON
-  attribute :obj4_true,           True
-  attribute :obj4_try,            Try
-  attribute :obj4_type,           Type
-  attribute :public,              Public
-  attribute :quicktype,           Quicktype
-  attribute :range,               RangeClass
-  attribute :readonly,            Readonly
-  attribute :ref,                 Ref
-  attribute :reg_exp,             RegExp
-  attribute :register,            Register
-  attribute :reinterpret_cast,    ReinterpretCast
-  attribute :repeat,              Repeat
-  attribute :required,            Required
-  attribute :requires,            Requires
-  attribute :restrict,            Restrict
-  attribute :retain,              Retain
-  attribute :rethrows,            Rethrows
-  attribute :right,               Right
-  attribute :runtime_type,        RuntimeType
-  attribute :s,                   S
-  attribute :sbyte,               Sbyte
-  attribute :sealed,              Sealed
-  attribute :sel,                 Sel
-  attribute :self_1,              Obj4Self
-  attribute :serialize,           Serialize
-  attribute :set,                 SetClass
-  attribute :short,               Short
-  attribute :signed,              Signed
-  attribute :sizeof,              Sizeof
-  attribute :stackalloc,          Stackalloc
-  attribute :standards,           Standards
-  attribute :static,              Static
-  attribute :static_assert,       StaticAssert
-  attribute :static_cast,         StaticCast
-  attribute :strictfp,            Strictfp
-  attribute :string,              StringClass
-  attribute :struct,              StructClass
-  attribute :subscript,           Subscript
-  attribute :switch,              Switch
-  attribute :symbol,              SymbolClass
-  attribute :synchronized,        Synchronized
-  attribute :template,            Template
-  attribute :this,                This
-  attribute :thread_local,        ThreadLocal
-  attribute :throws,              Throws
-  attribute :time_only,           TimeOnly
-  attribute :time_only_converter, TimeOnlyConverter
-  attribute :to_string,           ToString
-  attribute :top_level,           TopLevelClass
-  attribute :transient,           Transient
-  attribute :true_1,              Obj4True
-  attribute :type_1,              TypeClass
-  attribute :typealias,           Typealias
-  attribute :typedef,             Typedef
-  attribute :typeid,              Typeid
-  attribute :typename,            Typename
-  attribute :typeof,              Typeof
-  attribute :uint,                Uint
-  attribute :ulong,               Ulong
-  attribute :unchecked,           Unchecked
-  attribute :undefined,           UndefinedClass
+  end
+
+  def to_dynamic
+    {
+      "typename" => typename,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Typeof < Dry::Struct
+  attribute :typeof, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      dummy:               d.fetch("dummy"),
-      obj4_raise:          Raise.from_dynamic!(d.fetch("raise")),
-      obj4_require:        Require.from_dynamic!(d.fetch("require")),
-      obj4_return:         Return.from_dynamic!(d.fetch("return")),
-      obj4_select:         Select.from_dynamic!(d.fetch("select")),
-      obj4_self:           SelfClass.from_dynamic!(d.fetch("Self")),
-      obj4_super:          Super.from_dynamic!(d.fetch("super")),
-      obj4_system:         System.from_dynamic!(d.fetch("system")),
-      obj4_then:           Then.from_dynamic!(d.fetch("then")),
-      obj4_throw:          Throw.from_dynamic!(d.fetch("throw")),
-      obj4_to_json:        ToJSON.from_dynamic!(d.fetch("to_json")),
-      obj4_true:           True.from_dynamic!(d.fetch("True")),
-      obj4_try:            Try.from_dynamic!(d.fetch("try")),
-      obj4_type:           Type.from_dynamic!(d.fetch("Type")),
-      public:              Public.from_dynamic!(d.fetch("public")),
-      quicktype:           Quicktype.from_dynamic!(d.fetch("quicktype")),
-      range:               RangeClass.from_dynamic!(d.fetch("range")),
-      readonly:            Readonly.from_dynamic!(d.fetch("readonly")),
-      ref:                 Ref.from_dynamic!(d.fetch("ref")),
-      reg_exp:             RegExp.from_dynamic!(d.fetch("RegExp")),
-      register:            Register.from_dynamic!(d.fetch("register")),
-      reinterpret_cast:    ReinterpretCast.from_dynamic!(d.fetch("reinterpret_cast")),
-      repeat:              Repeat.from_dynamic!(d.fetch("repeat")),
-      required:            Required.from_dynamic!(d.fetch("required")),
-      requires:            Requires.from_dynamic!(d.fetch("requires")),
-      restrict:            Restrict.from_dynamic!(d.fetch("restrict")),
-      retain:              Retain.from_dynamic!(d.fetch("retain")),
-      rethrows:            Rethrows.from_dynamic!(d.fetch("rethrows")),
-      right:               Right.from_dynamic!(d.fetch("right")),
-      runtime_type:        RuntimeType.from_dynamic!(d.fetch("runtimeType")),
-      s:                   S.from_dynamic!(d.fetch("s")),
-      sbyte:               Sbyte.from_dynamic!(d.fetch("sbyte")),
-      sealed:              Sealed.from_dynamic!(d.fetch("sealed")),
-      sel:                 Sel.from_dynamic!(d.fetch("SEL")),
-      self_1:              Obj4Self.from_dynamic!(d.fetch("self")),
-      serialize:           Serialize.from_dynamic!(d.fetch("serialize")),
-      set:                 SetClass.from_dynamic!(d.fetch("set")),
-      short:               Short.from_dynamic!(d.fetch("short")),
-      signed:              Signed.from_dynamic!(d.fetch("signed")),
-      sizeof:              Sizeof.from_dynamic!(d.fetch("sizeof")),
-      stackalloc:          Stackalloc.from_dynamic!(d.fetch("stackalloc")),
-      standards:           Standards.from_dynamic!(d.fetch("Standards")),
-      static:              Static.from_dynamic!(d.fetch("static")),
-      static_assert:       StaticAssert.from_dynamic!(d.fetch("static_assert")),
-      static_cast:         StaticCast.from_dynamic!(d.fetch("static_cast")),
-      strictfp:            Strictfp.from_dynamic!(d.fetch("strictfp")),
-      string:              StringClass.from_dynamic!(d.fetch("string")),
-      struct:              StructClass.from_dynamic!(d.fetch("struct")),
-      subscript:           Subscript.from_dynamic!(d.fetch("subscript")),
-      switch:              Switch.from_dynamic!(d.fetch("switch")),
-      symbol:              SymbolClass.from_dynamic!(d.fetch("symbol")),
-      synchronized:        Synchronized.from_dynamic!(d.fetch("synchronized")),
-      template:            Template.from_dynamic!(d.fetch("template")),
-      this:                This.from_dynamic!(d.fetch("this")),
-      thread_local:        ThreadLocal.from_dynamic!(d.fetch("thread_local")),
-      throws:              Throws.from_dynamic!(d.fetch("throws")),
-      time_only:           TimeOnly.from_dynamic!(d.fetch("TimeOnly")),
-      time_only_converter: TimeOnlyConverter.from_dynamic!(d.fetch("TimeOnlyConverter")),
-      to_string:           ToString.from_dynamic!(d.fetch("toString")),
-      top_level:           TopLevelClass.from_dynamic!(d.fetch("top_level")),
-      transient:           Transient.from_dynamic!(d.fetch("transient")),
-      true_1:              Obj4True.from_dynamic!(d.fetch("true")),
-      type_1:              TypeClass.from_dynamic!(d.fetch("type")),
-      typealias:           Typealias.from_dynamic!(d.fetch("typealias")),
-      typedef:             Typedef.from_dynamic!(d.fetch("typedef")),
-      typeid:              Typeid.from_dynamic!(d.fetch("typeid")),
-      typename:            Typename.from_dynamic!(d.fetch("typename")),
-      typeof:              Typeof.from_dynamic!(d.fetch("typeof")),
-      uint:                Uint.from_dynamic!(d.fetch("uint")),
-      ulong:               Ulong.from_dynamic!(d.fetch("ulong")),
-      unchecked:           Unchecked.from_dynamic!(d.fetch("unchecked")),
-      undefined:           UndefinedClass.from_dynamic!(d.fetch("undefined")),
+      typeof: d.fetch("typeof"),
     )
   end
 
@@ -8279,78 +8211,7 @@ class Obj4 < Dry::Struct
 
   def to_dynamic
     {
-      "dummy"             => dummy,
-      "raise"             => obj4_raise.to_dynamic,
-      "require"           => obj4_require.to_dynamic,
-      "return"            => obj4_return.to_dynamic,
-      "select"            => obj4_select.to_dynamic,
-      "Self"              => obj4_self.to_dynamic,
-      "super"             => obj4_super.to_dynamic,
-      "system"            => obj4_system.to_dynamic,
-      "then"              => obj4_then.to_dynamic,
-      "throw"             => obj4_throw.to_dynamic,
-      "to_json"           => obj4_to_json.to_dynamic,
-      "True"              => obj4_true.to_dynamic,
-      "try"               => obj4_try.to_dynamic,
-      "Type"              => obj4_type.to_dynamic,
-      "public"            => public.to_dynamic,
-      "quicktype"         => quicktype.to_dynamic,
-      "range"             => range.to_dynamic,
-      "readonly"          => readonly.to_dynamic,
-      "ref"               => ref.to_dynamic,
-      "RegExp"            => reg_exp.to_dynamic,
-      "register"          => register.to_dynamic,
-      "reinterpret_cast"  => reinterpret_cast.to_dynamic,
-      "repeat"            => repeat.to_dynamic,
-      "required"          => required.to_dynamic,
-      "requires"          => requires.to_dynamic,
-      "restrict"          => restrict.to_dynamic,
-      "retain"            => retain.to_dynamic,
-      "rethrows"          => rethrows.to_dynamic,
-      "right"             => right.to_dynamic,
-      "runtimeType"       => runtime_type.to_dynamic,
-      "s"                 => s.to_dynamic,
-      "sbyte"             => sbyte.to_dynamic,
-      "sealed"            => sealed.to_dynamic,
-      "SEL"               => sel.to_dynamic,
-      "self"              => self_1.to_dynamic,
-      "serialize"         => serialize.to_dynamic,
-      "set"               => set.to_dynamic,
-      "short"             => short.to_dynamic,
-      "signed"            => signed.to_dynamic,
-      "sizeof"            => sizeof.to_dynamic,
-      "stackalloc"        => stackalloc.to_dynamic,
-      "Standards"         => standards.to_dynamic,
-      "static"            => static.to_dynamic,
-      "static_assert"     => static_assert.to_dynamic,
-      "static_cast"       => static_cast.to_dynamic,
-      "strictfp"          => strictfp.to_dynamic,
-      "string"            => string.to_dynamic,
-      "struct"            => struct.to_dynamic,
-      "subscript"         => subscript.to_dynamic,
-      "switch"            => switch.to_dynamic,
-      "symbol"            => symbol.to_dynamic,
-      "synchronized"      => synchronized.to_dynamic,
-      "template"          => template.to_dynamic,
-      "this"              => this.to_dynamic,
-      "thread_local"      => thread_local.to_dynamic,
-      "throws"            => throws.to_dynamic,
-      "TimeOnly"          => time_only.to_dynamic,
-      "TimeOnlyConverter" => time_only_converter.to_dynamic,
-      "toString"          => to_string.to_dynamic,
-      "top_level"         => top_level.to_dynamic,
-      "transient"         => transient.to_dynamic,
-      "true"              => true_1.to_dynamic,
-      "type"              => type_1.to_dynamic,
-      "typealias"         => typealias.to_dynamic,
-      "typedef"           => typedef.to_dynamic,
-      "typeid"            => typeid.to_dynamic,
-      "typename"          => typename.to_dynamic,
-      "typeof"            => typeof.to_dynamic,
-      "uint"              => uint.to_dynamic,
-      "ulong"             => ulong.to_dynamic,
-      "unchecked"         => unchecked.to_dynamic,
-      "undefined"         => undefined.to_dynamic,
+      "typeof" => typeof,
     }
   end
 
@@ -8359,13 +8220,13 @@ class Obj4 < Dry::Struct
   end
 end
 
-class While < Dry::Struct
-  attribute :while_while, Types::Integer
+class Uint < Dry::Struct
+  attribute :uint, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      while_while: d.fetch("while"),
+      uint: d.fetch("uint"),
     )
   end
 
@@ -8375,7 +8236,7 @@ class While < Dry::Struct
 
   def to_dynamic
     {
-      "while" => while_while,
+      "uint" => uint,
     }
   end
 
@@ -8384,13 +8245,13 @@ class While < Dry::Struct
   end
 end
 
-class With < Dry::Struct
-  attribute :with_with, Types::Integer
+class Ulong < Dry::Struct
+  attribute :ulong, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      with_with: d.fetch("with"),
+      ulong: d.fetch("ulong"),
     )
   end
 
@@ -8400,7 +8261,7 @@ class With < Dry::Struct
 
   def to_dynamic
     {
-      "with" => with_with,
+      "ulong" => ulong,
     }
   end
 
@@ -8409,13 +8270,13 @@ class With < Dry::Struct
   end
 end
 
-class Yield < Dry::Struct
-  attribute :yield_yield, Types::Integer
+class Unchecked < Dry::Struct
+  attribute :unchecked, Types::Integer
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
     new(
-      yield_yield: d.fetch("yield"),
+      unchecked: d.fetch("unchecked"),
     )
   end
 
@@ -8425,7 +8286,32 @@ class Yield < Dry::Struct
 
   def to_dynamic
     {
-      "yield" => yield_yield,
+      "unchecked" => unchecked,
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UndefinedClass < Dry::Struct
+  attribute :undefined, Types::Integer
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      undefined: d.fetch("undefined"),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "undefined" => undefined,
     }
   end
 
@@ -8935,91 +8821,205 @@ class Yes < Dry::Struct
 end
 
 class Obj5 < Dry::Struct
-  attribute :dummy,            Types::Integer
-  attribute :obj5_while,       While
-  attribute :obj5_with,        With
-  attribute :obj5_yield,       Yield
-  attribute :union,            Union
-  attribute :unowned,          Unowned
-  attribute :unsafe,           Unsafe
-  attribute :unsigned,         Unsigned
-  attribute :ushort,           Ushort
-  attribute :using,            Using
-  attribute :utf8_json_reader, Utf8JSONReader
-  attribute :utf8_json_writer, Utf8JSONWriter
-  attribute :uuid,             UUID
-  attribute :var,              Var
-  attribute :virtual,          Virtual
-  attribute :void,             Void
-  attribute :volatile,         Volatile
-  attribute :wchar_t,          WcharT
-  attribute :weak,             Weak
-  attribute :where,            Where
-  attribute :will_set,         WillSet
-  attribute :xor,              Xor
-  attribute :xor_eq,           XorEq
-  attribute :yes,              Yes
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      dummy:            d.fetch("dummy"),
-      obj5_while:       While.from_dynamic!(d.fetch("while")),
-      obj5_with:        With.from_dynamic!(d.fetch("with")),
-      obj5_yield:       Yield.from_dynamic!(d.fetch("yield")),
-      union:            Union.from_dynamic!(d.fetch("union")),
-      unowned:          Unowned.from_dynamic!(d.fetch("unowned")),
-      unsafe:           Unsafe.from_dynamic!(d.fetch("unsafe")),
-      unsigned:         Unsigned.from_dynamic!(d.fetch("unsigned")),
-      ushort:           Ushort.from_dynamic!(d.fetch("ushort")),
-      using:            Using.from_dynamic!(d.fetch("using")),
-      utf8_json_reader: Utf8JSONReader.from_dynamic!(d.fetch("Utf8JsonReader")),
-      utf8_json_writer: Utf8JSONWriter.from_dynamic!(d.fetch("Utf8JsonWriter")),
-      uuid:             UUID.from_dynamic!(d.fetch("UUID")),
-      var:              Var.from_dynamic!(d.fetch("var")),
-      virtual:          Virtual.from_dynamic!(d.fetch("virtual")),
-      void:             Void.from_dynamic!(d.fetch("void")),
-      volatile:         Volatile.from_dynamic!(d.fetch("volatile")),
-      wchar_t:          WcharT.from_dynamic!(d.fetch("wchar_t")),
-      weak:             Weak.from_dynamic!(d.fetch("weak")),
-      where:            Where.from_dynamic!(d.fetch("where")),
-      will_set:         WillSet.from_dynamic!(d.fetch("willSet")),
-      xor:              Xor.from_dynamic!(d.fetch("xor")),
-      xor_eq:           XorEq.from_dynamic!(d.fetch("xor_eq")),
-      yes:              Yes.from_dynamic!(d.fetch("YES")),
-    )
-  end
-
-  def self.from_json!(json)
-    from_dynamic!(JSON.parse(json))
-  end
-
-  def to_dynamic
-    {
-      "dummy"          => dummy,
-      "while"          => obj5_while.to_dynamic,
-      "with"           => obj5_with.to_dynamic,
-      "yield"          => obj5_yield.to_dynamic,
-      "union"          => union.to_dynamic,
-      "unowned"        => unowned.to_dynamic,
-      "unsafe"         => unsafe.to_dynamic,
-      "unsigned"       => unsigned.to_dynamic,
-      "ushort"         => ushort.to_dynamic,
-      "using"          => using.to_dynamic,
-      "Utf8JsonReader" => utf8_json_reader.to_dynamic,
-      "Utf8JsonWriter" => utf8_json_writer.to_dynamic,
-      "UUID"           => uuid.to_dynamic,
-      "var"            => var.to_dynamic,
-      "virtual"        => virtual.to_dynamic,
-      "void"           => void.to_dynamic,
-      "volatile"       => volatile.to_dynamic,
-      "wchar_t"        => wchar_t.to_dynamic,
-      "weak"           => weak.to_dynamic,
-      "where"          => where.to_dynamic,
-      "willSet"        => will_set.to_dynamic,
-      "xor"            => xor.to_dynamic,
-      "xor_eq"         => xor_eq.to_dynamic,
-      "YES"            => yes.to_dynamic,
+  attribute :dummy,               Types::Integer
+  attribute :obj5_super,          Super
+  attribute :obj5_system,         System
+  attribute :obj5_then,           Then
+  attribute :obj5_throw,          Throw
+  attribute :obj5_to_json,        ToJSON
+  attribute :obj5_true,           True
+  attribute :obj5_try,            Try
+  attribute :obj5_type,           Type
+  attribute :obj5_while,          While
+  attribute :obj5_with,           With
+  attribute :obj5_yield,          Yield
+  attribute :static_cast,         StaticCast
+  attribute :std_deserializer,    StdDeserializer
+  attribute :std_serializer,      StdSerializer
+  attribute :strictfp,            Strictfp
+  attribute :string,              StringClass
+  attribute :struct,              StructClass
+  attribute :subscript,           Subscript
+  attribute :switch,              Switch
+  attribute :symbol,              SymbolClass
+  attribute :synchronized,        Synchronized
+  attribute :template,            Template
+  attribute :this,                This
+  attribute :thread_local,        ThreadLocal
+  attribute :throws,              Throws
+  attribute :time_only,           TimeOnly
+  attribute :time_only_converter, TimeOnlyConverter
+  attribute :to_string,           ToString
+  attribute :top_level,           TopLevelClass
+  attribute :transient,           Transient
+  attribute :true_1,              Obj5True
+  attribute :type_1,              TypeClass
+  attribute :typealias,           Typealias
+  attribute :typedef,             Typedef
+  attribute :typeid,              Typeid
+  attribute :typename,            Typename
+  attribute :typeof,              Typeof
+  attribute :uint,                Uint
+  attribute :ulong,               Ulong
+  attribute :unchecked,           Unchecked
+  attribute :undefined,           UndefinedClass
+  attribute :union,               Union
+  attribute :unowned,             Unowned
+  attribute :unsafe,              Unsafe
+  attribute :unsigned,            Unsigned
+  attribute :ushort,              Ushort
+  attribute :using,               Using
+  attribute :utf8_json_reader,    Utf8JSONReader
+  attribute :utf8_json_writer,    Utf8JSONWriter
+  attribute :uuid,                UUID
+  attribute :var,                 Var
+  attribute :virtual,             Virtual
+  attribute :void,                Void
+  attribute :volatile,            Volatile
+  attribute :wchar_t,             WcharT
+  attribute :weak,                Weak
+  attribute :where,               Where
+  attribute :will_set,            WillSet
+  attribute :xor,                 Xor
+  attribute :xor_eq,              XorEq
+  attribute :yes,                 Yes
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      dummy:               d.fetch("dummy"),
+      obj5_super:          Super.from_dynamic!(d.fetch("super")),
+      obj5_system:         System.from_dynamic!(d.fetch("system")),
+      obj5_then:           Then.from_dynamic!(d.fetch("then")),
+      obj5_throw:          Throw.from_dynamic!(d.fetch("throw")),
+      obj5_to_json:        ToJSON.from_dynamic!(d.fetch("to_json")),
+      obj5_true:           True.from_dynamic!(d.fetch("True")),
+      obj5_try:            Try.from_dynamic!(d.fetch("try")),
+      obj5_type:           Type.from_dynamic!(d.fetch("Type")),
+      obj5_while:          While.from_dynamic!(d.fetch("while")),
+      obj5_with:           With.from_dynamic!(d.fetch("with")),
+      obj5_yield:          Yield.from_dynamic!(d.fetch("yield")),
+      static_cast:         StaticCast.from_dynamic!(d.fetch("static_cast")),
+      std_deserializer:    StdDeserializer.from_dynamic!(d.fetch("StdDeserializer")),
+      std_serializer:      StdSerializer.from_dynamic!(d.fetch("StdSerializer")),
+      strictfp:            Strictfp.from_dynamic!(d.fetch("strictfp")),
+      string:              StringClass.from_dynamic!(d.fetch("string")),
+      struct:              StructClass.from_dynamic!(d.fetch("struct")),
+      subscript:           Subscript.from_dynamic!(d.fetch("subscript")),
+      switch:              Switch.from_dynamic!(d.fetch("switch")),
+      symbol:              SymbolClass.from_dynamic!(d.fetch("symbol")),
+      synchronized:        Synchronized.from_dynamic!(d.fetch("synchronized")),
+      template:            Template.from_dynamic!(d.fetch("template")),
+      this:                This.from_dynamic!(d.fetch("this")),
+      thread_local:        ThreadLocal.from_dynamic!(d.fetch("thread_local")),
+      throws:              Throws.from_dynamic!(d.fetch("throws")),
+      time_only:           TimeOnly.from_dynamic!(d.fetch("TimeOnly")),
+      time_only_converter: TimeOnlyConverter.from_dynamic!(d.fetch("TimeOnlyConverter")),
+      to_string:           ToString.from_dynamic!(d.fetch("toString")),
+      top_level:           TopLevelClass.from_dynamic!(d.fetch("top_level")),
+      transient:           Transient.from_dynamic!(d.fetch("transient")),
+      true_1:              Obj5True.from_dynamic!(d.fetch("true")),
+      type_1:              TypeClass.from_dynamic!(d.fetch("type")),
+      typealias:           Typealias.from_dynamic!(d.fetch("typealias")),
+      typedef:             Typedef.from_dynamic!(d.fetch("typedef")),
+      typeid:              Typeid.from_dynamic!(d.fetch("typeid")),
+      typename:            Typename.from_dynamic!(d.fetch("typename")),
+      typeof:              Typeof.from_dynamic!(d.fetch("typeof")),
+      uint:                Uint.from_dynamic!(d.fetch("uint")),
+      ulong:               Ulong.from_dynamic!(d.fetch("ulong")),
+      unchecked:           Unchecked.from_dynamic!(d.fetch("unchecked")),
+      undefined:           UndefinedClass.from_dynamic!(d.fetch("undefined")),
+      union:               Union.from_dynamic!(d.fetch("union")),
+      unowned:             Unowned.from_dynamic!(d.fetch("unowned")),
+      unsafe:              Unsafe.from_dynamic!(d.fetch("unsafe")),
+      unsigned:            Unsigned.from_dynamic!(d.fetch("unsigned")),
+      ushort:              Ushort.from_dynamic!(d.fetch("ushort")),
+      using:               Using.from_dynamic!(d.fetch("using")),
+      utf8_json_reader:    Utf8JSONReader.from_dynamic!(d.fetch("Utf8JsonReader")),
+      utf8_json_writer:    Utf8JSONWriter.from_dynamic!(d.fetch("Utf8JsonWriter")),
+      uuid:                UUID.from_dynamic!(d.fetch("UUID")),
+      var:                 Var.from_dynamic!(d.fetch("var")),
+      virtual:             Virtual.from_dynamic!(d.fetch("virtual")),
+      void:                Void.from_dynamic!(d.fetch("void")),
+      volatile:            Volatile.from_dynamic!(d.fetch("volatile")),
+      wchar_t:             WcharT.from_dynamic!(d.fetch("wchar_t")),
+      weak:                Weak.from_dynamic!(d.fetch("weak")),
+      where:               Where.from_dynamic!(d.fetch("where")),
+      will_set:            WillSet.from_dynamic!(d.fetch("willSet")),
+      xor:                 Xor.from_dynamic!(d.fetch("xor")),
+      xor_eq:              XorEq.from_dynamic!(d.fetch("xor_eq")),
+      yes:                 Yes.from_dynamic!(d.fetch("YES")),
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+      "dummy"             => dummy,
+      "super"             => obj5_super.to_dynamic,
+      "system"            => obj5_system.to_dynamic,
+      "then"              => obj5_then.to_dynamic,
+      "throw"             => obj5_throw.to_dynamic,
+      "to_json"           => obj5_to_json.to_dynamic,
+      "True"              => obj5_true.to_dynamic,
+      "try"               => obj5_try.to_dynamic,
+      "Type"              => obj5_type.to_dynamic,
+      "while"             => obj5_while.to_dynamic,
+      "with"              => obj5_with.to_dynamic,
+      "yield"             => obj5_yield.to_dynamic,
+      "static_cast"       => static_cast.to_dynamic,
+      "StdDeserializer"   => std_deserializer.to_dynamic,
+      "StdSerializer"     => std_serializer.to_dynamic,
+      "strictfp"          => strictfp.to_dynamic,
+      "string"            => string.to_dynamic,
+      "struct"            => struct.to_dynamic,
+      "subscript"         => subscript.to_dynamic,
+      "switch"            => switch.to_dynamic,
+      "symbol"            => symbol.to_dynamic,
+      "synchronized"      => synchronized.to_dynamic,
+      "template"          => template.to_dynamic,
+      "this"              => this.to_dynamic,
+      "thread_local"      => thread_local.to_dynamic,
+      "throws"            => throws.to_dynamic,
+      "TimeOnly"          => time_only.to_dynamic,
+      "TimeOnlyConverter" => time_only_converter.to_dynamic,
+      "toString"          => to_string.to_dynamic,
+      "top_level"         => top_level.to_dynamic,
+      "transient"         => transient.to_dynamic,
+      "true"              => true_1.to_dynamic,
+      "type"              => type_1.to_dynamic,
+      "typealias"         => typealias.to_dynamic,
+      "typedef"           => typedef.to_dynamic,
+      "typeid"            => typeid.to_dynamic,
+      "typename"          => typename.to_dynamic,
+      "typeof"            => typeof.to_dynamic,
+      "uint"              => uint.to_dynamic,
+      "ulong"             => ulong.to_dynamic,
+      "unchecked"         => unchecked.to_dynamic,
+      "undefined"         => undefined.to_dynamic,
+      "union"             => union.to_dynamic,
+      "unowned"           => unowned.to_dynamic,
+      "unsafe"            => unsafe.to_dynamic,
+      "unsigned"          => unsigned.to_dynamic,
+      "ushort"            => ushort.to_dynamic,
+      "using"             => using.to_dynamic,
+      "Utf8JsonReader"    => utf8_json_reader.to_dynamic,
+      "Utf8JsonWriter"    => utf8_json_writer.to_dynamic,
+      "UUID"              => uuid.to_dynamic,
+      "var"               => var.to_dynamic,
+      "virtual"           => virtual.to_dynamic,
+      "void"              => void.to_dynamic,
+      "volatile"          => volatile.to_dynamic,
+      "wchar_t"           => wchar_t.to_dynamic,
+      "weak"              => weak.to_dynamic,
+      "where"             => where.to_dynamic,
+      "willSet"           => will_set.to_dynamic,
+      "xor"               => xor.to_dynamic,
+      "xor_eq"            => xor_eq.to_dynamic,
+      "YES"               => yes.to_dynamic,
     }
   end
 
diff --git a/base/rust/test/inputs/json/priority/keywords.json/default/module_under_test.rs b/head/rust/test/inputs/json/priority/keywords.json/default/module_under_test.rs
index 799da0d..8081e80 100644
--- a/base/rust/test/inputs/json/priority/keywords.json/default/module_under_test.rs
+++ b/head/rust/test/inputs/json/priority/keywords.json/default/module_under_test.rs
@@ -138,22 +138,6 @@ pub struct Obj1 {
 
     pub date_parse_handling: DateParseHandling,
 
-    #[serde(rename = "DateTime")]
-    pub date_time: DateTime,
-
-    #[serde(rename = "DateTimeStyles")]
-    pub date_time_styles: DateTimeStyles,
-
-    pub debugger: Debugger,
-
-    pub decimal: Decimal,
-
-    pub declare: Declare,
-
-    pub decltype: Decltype,
-
-    pub decode_string: DecodeString,
-
     pub dummy: i64,
 
     #[serde(rename = "_")]
@@ -457,43 +441,6 @@ pub struct DateParseHandling {
     pub date_parse_handling: i64,
 }
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct DateTime {
-    pub date_time: String,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct DateTimeStyles {
-    pub date_time_styles: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Debugger {
-    pub debugger: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Decimal {
-    pub decimal: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Declare {
-    pub declare: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Decltype {
-    pub decltype: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct DecodeString {
-    pub decode_string: i64,
-}
-
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Empty {
     #[serde(rename = "_")]
@@ -576,8 +523,23 @@ pub struct Obj1Bool {
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "camelCase")]
 pub struct Obj2 {
+    #[serde(rename = "DateTime")]
+    pub date_time: DateTime,
+
+    #[serde(rename = "DateTimeStyles")]
+    pub date_time_styles: DateTimeStyles,
+
+    pub debugger: Debugger,
+
+    pub decimal: Decimal,
+
+    pub declare: Declare,
+
+    pub decltype: Decltype,
+
+    pub decode_string: DecodeString,
+
     pub def: Def,
 
     pub defer: Defer,
@@ -594,6 +556,7 @@ pub struct Obj2 {
 
     pub dictionary: Dictionary,
 
+    #[serde(rename = "didSet")]
     pub did_set: DidSet,
 
     pub double: Double,
@@ -602,17 +565,16 @@ pub struct Obj2 {
 
     pub dynamic: Dynamic,
 
-    #[serde(rename = "dynamic_cast")]
     pub dynamic_cast: DynamicCast,
 
     pub elif: Elif,
 
-    #[serde(rename = "encode_quick_type")]
     pub encode_quick_type: EncodeQuickType,
 
     #[serde(rename = "EnumValues")]
     pub enum_values: EnumValues,
 
+    #[serde(rename = "equalityContract")]
     pub equality_contract: EqualityContract,
 
     pub event: Event,
@@ -650,7 +612,6 @@ pub struct Obj2 {
 
     pub from: From,
 
-    #[serde(rename = "from_json")]
     pub from_json: FromJson,
 
     pub func: Func,
@@ -667,8 +628,10 @@ pub struct Obj2 {
 
     pub guard: Guard,
 
+    #[serde(rename = "hasOwnProperty")]
     pub has_own_property: HasOwnProperty,
 
+    #[serde(rename = "hashCode")]
     pub hash_code: HashCode,
 
     pub id: Id,
@@ -680,26 +643,6 @@ pub struct Obj2 {
 
     pub implicit: Implicit,
 
-    pub import: Import,
-
-    pub indirect: Indirect,
-
-    pub infix: Infix,
-
-    pub init: Init,
-
-    pub inline: Inline,
-
-    pub inout: Inout,
-
-    pub instanceof: Instanceof,
-
-    pub int: Int,
-
-    pub interface: Interface,
-
-    pub internal: Internal,
-
     #[serde(rename = "default")]
     pub obj2_default: Default,
 
@@ -727,13 +670,47 @@ pub struct Obj2 {
     #[serde(rename = "if")]
     pub obj2_if: If,
 
-    #[serde(rename = "in")]
-    pub obj2_in: In,
-
     #[serde(rename = "false")]
     pub purple_false: FalseClass,
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct DateTime {
+    pub date_time: String,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct DateTimeStyles {
+    pub date_time_styles: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Debugger {
+    pub debugger: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Decimal {
+    pub decimal: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Declare {
+    pub declare: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Decltype {
+    pub decltype: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DecodeString {
+    pub decode_string: i64,
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Def {
     pub def: i64,
@@ -984,56 +961,6 @@ pub struct Implicit {
     pub implicit: i64,
 }
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Import {
-    pub import: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Indirect {
-    pub indirect: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Infix {
-    pub infix: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Init {
-    pub init: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Inline {
-    pub inline: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Inout {
-    pub inout: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Instanceof {
-    pub instanceof: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Int {
-    pub int: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Interface {
-    pub interface: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Internal {
-    pub internal: i64,
-}
-
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Default {
     #[serde(rename = "default")]
@@ -1089,12 +1016,6 @@ pub struct If {
     pub if_if: i64,
 }
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct In {
-    #[serde(rename = "in")]
-    pub in_in: i64,
-}
-
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct FalseClass {
     #[serde(rename = "false")]
@@ -1105,6 +1026,26 @@ pub struct FalseClass {
 pub struct Obj3 {
     pub dummy: i64,
 
+    pub import: Import,
+
+    pub indirect: Indirect,
+
+    pub infix: Infix,
+
+    pub init: Init,
+
+    pub inline: Inline,
+
+    pub inout: Inout,
+
+    pub instanceof: Instanceof,
+
+    pub int: Int,
+
+    pub interface: Interface,
+
+    pub internal: Internal,
+
     pub is: Is,
 
     #[serde(rename = "IsoDateTimeOffsetConverter")]
@@ -1223,9 +1164,8 @@ pub struct Obj3 {
     #[serde(rename = "NULL")]
     pub null: Null,
 
-    pub nullptr: Nullptr,
-
-    pub number: Number,
+    #[serde(rename = "in")]
+    pub obj3_in: In,
 
     #[serde(rename = "let")]
     pub obj3_let: Let,
@@ -1235,73 +1175,56 @@ pub struct Obj3 {
 
     #[serde(rename = "null")]
     pub obj3_null: NullClass,
+}
 
-    #[serde(rename = "override")]
-    pub obj3_override: Override,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Import {
+    pub import: i64,
+}
 
-    #[serde(rename = "protocol")]
-    pub obj3_protocol: ProtocolClass,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Indirect {
+    pub indirect: i64,
+}
 
-    pub object: Object,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Infix {
+    pub infix: i64,
+}
 
-    #[serde(rename = "ObjectMapper")]
-    pub object_mapper: ObjectMapper,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Init {
+    pub init: i64,
+}
 
-    pub of: Of,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Inline {
+    pub inline: i64,
+}
 
-    pub oneway: Oneway,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Inout {
+    pub inout: i64,
+}
 
-    pub open: Open,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Instanceof {
+    pub instanceof: i64,
+}
 
-    pub operator: Operator,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Int {
+    pub int: i64,
+}
 
-    pub optional: Optional,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Interface {
+    pub interface: i64,
+}
 
-    pub or: Or,
-
-    pub or_eq: OrEq,
-
-    pub out: Out,
-
-    pub package: Package,
-
-    pub params: Params,
-
-    pub pass: Pass,
-
-    pub port: Port,
-
-    pub postfix: Postfix,
-
-    pub precedence: Precedence,
-
-    pub prefix: Prefix,
-
-    pub print: Print,
-
-    #[serde(rename = "printMembers")]
-    pub print_members: PrintMembers,
-
-    pub printf: Printf,
-
-    pub private: Private,
-
-    pub protected: Protected,
-
-    #[serde(rename = "Protocol")]
-    pub protocol: Protocol,
-
-    #[serde(rename = "SerializerProvider")]
-    pub serializer_provider: SerializerProvider,
-
-    #[serde(rename = "SimpleModule")]
-    pub simple_module: SimpleModule,
-
-    #[serde(rename = "StdDeserializer")]
-    pub std_deserializer: StdDeserializer,
-
-    #[serde(rename = "StdSerializer")]
-    pub std_serializer: StdSerializer,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Internal {
+    pub internal: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
@@ -1580,13 +1503,9 @@ pub struct Null {
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Nullptr {
-    pub nullptr: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Number {
-    pub number: i64,
+pub struct In {
+    #[serde(rename = "in")]
+    pub in_in: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
@@ -1605,6 +1524,166 @@ pub struct NullClass {
     pub null: i64,
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Obj4 {
+    pub dummy: i64,
+
+    pub nullptr: Nullptr,
+
+    pub number: Number,
+
+    #[serde(rename = "override")]
+    pub obj4_override: Override,
+
+    #[serde(rename = "protocol")]
+    pub obj4_protocol: ProtocolClass,
+
+    #[serde(rename = "ref")]
+    pub obj4_ref: Ref,
+
+    #[serde(rename = "return")]
+    pub obj4_return: Return,
+
+    #[serde(rename = "Self")]
+    pub obj4_self: SelfClass,
+
+    #[serde(rename = "sizeof")]
+    pub obj4_sizeof: Sizeof,
+
+    #[serde(rename = "static")]
+    pub obj4_static: Static,
+
+    pub object: Object,
+
+    #[serde(rename = "ObjectMapper")]
+    pub object_mapper: ObjectMapper,
+
+    pub of: Of,
+
+    pub oneway: Oneway,
+
+    pub open: Open,
+
+    pub operator: Operator,
+
+    pub optional: Optional,
+
+    pub or: Or,
+
+    pub or_eq: OrEq,
+
+    pub out: Out,
+
+    pub package: Package,
+
+    pub params: Params,
+
+    pub pass: Pass,
+
+    pub port: Port,
+
+    pub postfix: Postfix,
+
+    pub precedence: Precedence,
+
+    pub prefix: Prefix,
+
+    pub print: Print,
+
+    #[serde(rename = "printMembers")]
+    pub print_members: PrintMembers,
+
+    pub printf: Printf,
+
+    pub private: Private,
+
+    pub protected: Protected,
+
+    #[serde(rename = "Protocol")]
+    pub protocol: Protocol,
+
+    pub public: Public,
+
+    #[serde(rename = "self")]
+    pub purple_self: Obj4Self,
+
+    pub quicktype: Quicktype,
+
+    pub raise: Raise,
+
+    pub range: Range,
+
+    pub readonly: Readonly,
+
+    #[serde(rename = "RegExp")]
+    pub reg_exp: RegExp,
+
+    pub register: Register,
+
+    pub reinterpret_cast: ReinterpretCast,
+
+    pub repeat: Repeat,
+
+    pub require: Require,
+
+    pub required: Required,
+
+    pub requires: Requires,
+
+    pub restrict: Restrict,
+
+    pub retain: Retain,
+
+    pub rethrows: Rethrows,
+
+    pub right: Right,
+
+    #[serde(rename = "runtimeType")]
+    pub runtime_type: RuntimeType,
+
+    pub s: S,
+
+    pub sbyte: Sbyte,
+
+    pub sealed: Sealed,
+
+    #[serde(rename = "SEL")]
+    pub sel: Sel,
+
+    pub select: Select,
+
+    pub serialize: SerializeClass,
+
+    #[serde(rename = "SerializerProvider")]
+    pub serializer_provider: SerializerProvider,
+
+    pub set: Set,
+
+    pub short: Short,
+
+    pub signed: Signed,
+
+    #[serde(rename = "SimpleModule")]
+    pub simple_module: SimpleModule,
+
+    pub stackalloc: Stackalloc,
+
+    #[serde(rename = "Standards")]
+    pub standards: Standards,
+
+    pub static_assert: StaticAssert,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Nullptr {
+    pub nullptr: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Number {
+    pub number: i64,
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Override {
     #[serde(rename = "override")]
@@ -1616,6 +1695,37 @@ pub struct ProtocolClass {
     pub protocol: i64,
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Ref {
+    #[serde(rename = "ref")]
+    pub ref_ref: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Return {
+    #[serde(rename = "return")]
+    pub return_return: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct SelfClass {
+    #[serde(rename = "Self")]
+    pub self_self: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Sizeof {
+    #[serde(rename = "sizeof")]
+    pub sizeof_sizeof: i64,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Static {
+    #[serde(rename = "static")]
+    pub static_static: i64,
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Object {
     pub object: i64,
@@ -1735,136 +1845,223 @@ pub struct Protocol {
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct SerializerProvider {
-    pub serializer_provider: i64,
+pub struct Public {
+    pub public: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct SimpleModule {
-    pub simple_module: i64,
-}
+pub struct Obj4Self {
+    #[serde(rename = "self")]
+    pub self_self: i64,
+}
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct StdDeserializer {
-    pub std_deserializer: i64,
+pub struct Quicktype {
+    pub quicktype: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct StdSerializer {
-    pub std_serializer: i64,
+pub struct Raise {
+    pub raise: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Obj4 {
-    pub dummy: i64,
-
-    #[serde(rename = "ref")]
-    pub obj4_ref: Ref,
+pub struct Range {
+    pub range: i64,
+}
 
-    #[serde(rename = "return")]
-    pub obj4_return: Return,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Readonly {
+    pub readonly: i64,
+}
 
-    #[serde(rename = "Self")]
-    pub obj4_self: SelfClass,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct RegExp {
+    pub reg_exp: String,
+}
 
-    #[serde(rename = "sizeof")]
-    pub obj4_sizeof: Sizeof,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Register {
+    pub register: i64,
+}
 
-    #[serde(rename = "static")]
-    pub obj4_static: Static,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ReinterpretCast {
+    pub reinterpret_cast: i64,
+}
 
-    #[serde(rename = "struct")]
-    pub obj4_struct: Struct,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Repeat {
+    pub repeat: i64,
+}
 
-    #[serde(rename = "super")]
-    pub obj4_super: Super,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Require {
+    pub require: i64,
+}
 
-    #[serde(rename = "True")]
-    pub obj4_true: True,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Required {
+    pub required: i64,
+}
 
-    #[serde(rename = "Type")]
-    pub obj4_type: Type,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Requires {
+    pub requires: i64,
+}
 
-    #[serde(rename = "typeof")]
-    pub obj4_typeof: Typeof,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Restrict {
+    pub restrict: i64,
+}
 
-    pub public: Public,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Retain {
+    pub retain: i64,
+}
 
-    #[serde(rename = "self")]
-    pub purple_self: Obj4Self,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Rethrows {
+    pub rethrows: i64,
+}
 
-    #[serde(rename = "true")]
-    pub purple_true: TrueClass,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Right {
+    pub right: i64,
+}
 
-    #[serde(rename = "type")]
-    pub purple_type: TypeClass,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct RuntimeType {
+    pub runtime_type: i64,
+}
 
-    pub quicktype: Quicktype,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct S {
+    pub s: i64,
+}
 
-    pub raise: Raise,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Sbyte {
+    pub sbyte: i64,
+}
 
-    pub range: Range,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Sealed {
+    pub sealed: i64,
+}
 
-    pub readonly: Readonly,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
+pub struct Sel {
+    pub sel: i64,
+}
 
-    #[serde(rename = "RegExp")]
-    pub reg_exp: RegExp,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Select {
+    pub select: i64,
+}
 
-    pub register: Register,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct SerializeClass {
+    pub serialize: i64,
+}
 
-    pub reinterpret_cast: ReinterpretCast,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct SerializerProvider {
+    pub serializer_provider: i64,
+}
 
-    pub repeat: Repeat,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Set {
+    pub set: i64,
+}
 
-    pub require: Require,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Short {
+    pub short: i64,
+}
 
-    pub required: Required,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Signed {
+    pub signed: i64,
+}
 
-    pub requires: Requires,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct SimpleModule {
+    pub simple_module: i64,
+}
 
-    pub restrict: Restrict,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Stackalloc {
+    pub stackalloc: i64,
+}
 
-    pub retain: Retain,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct Standards {
+    pub standards: i64,
+}
 
-    pub rethrows: Rethrows,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct StaticAssert {
+    pub static_assert: i64,
+}
 
-    pub right: Right,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Obj5 {
+    pub dummy: i64,
 
-    #[serde(rename = "runtimeType")]
-    pub runtime_type: RuntimeType,
+    #[serde(rename = "struct")]
+    pub obj5_struct: Struct,
 
-    pub s: S,
+    #[serde(rename = "super")]
+    pub obj5_super: Super,
 
-    pub sbyte: Sbyte,
+    #[serde(rename = "True")]
+    pub obj5_true: True,
 
-    pub sealed: Sealed,
+    #[serde(rename = "Type")]
+    pub obj5_type: Type,
 
-    #[serde(rename = "SEL")]
-    pub sel: Sel,
+    #[serde(rename = "typeof")]
+    pub obj5_typeof: Typeof,
 
-    pub select: Select,
+    #[serde(rename = "union")]
+    pub obj5_union: Union,
 
-    pub serialize: SerializeClass,
+    #[serde(rename = "unsafe")]
+    pub obj5_unsafe: Unsafe,
 
-    pub set: Set,
+    #[serde(rename = "virtual")]
+    pub obj5_virtual: Virtual,
 
-    pub short: Short,
+    #[serde(rename = "where")]
+    pub obj5_where: Where,
 
-    pub signed: Signed,
+    #[serde(rename = "while")]
+    pub obj5_while: While,
 
-    pub stackalloc: Stackalloc,
+    #[serde(rename = "yield")]
+    pub obj5_yield: Yield,
 
-    #[serde(rename = "Standards")]
-    pub standards: Standards,
+    #[serde(rename = "true")]
+    pub purple_true: TrueClass,
 
-    pub static_assert: StaticAssert,
+    #[serde(rename = "type")]
+    pub purple_type: TypeClass,
 
     pub static_cast: StaticCast,
 
+    #[serde(rename = "StdDeserializer")]
+    pub std_deserializer: StdDeserializer,
+
+    #[serde(rename = "StdSerializer")]
+    pub std_serializer: StdSerializer,
+
     pub strictfp: Strictfp,
 
     pub string: StringClass,
@@ -1923,241 +2120,142 @@ pub struct Obj4 {
     pub unchecked: Unchecked,
 
     pub undefined: Undefined,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Ref {
-    #[serde(rename = "ref")]
-    pub ref_ref: i64,
-}
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Return {
-    #[serde(rename = "return")]
-    pub return_return: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct SelfClass {
-    #[serde(rename = "Self")]
-    pub self_self: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Sizeof {
-    #[serde(rename = "sizeof")]
-    pub sizeof_sizeof: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Static {
-    #[serde(rename = "static")]
-    pub static_static: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Struct {
-    #[serde(rename = "struct")]
-    pub struct_struct: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Super {
-    #[serde(rename = "super")]
-    pub super_super: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct True {
-    #[serde(rename = "True")]
-    pub true_true: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct Type {
-    #[serde(rename = "Type")]
-    pub type_type: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Typeof {
-    #[serde(rename = "typeof")]
-    pub typeof_typeof: i64,
-}
+    pub unowned: Unowned,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Public {
-    pub public: i64,
-}
+    pub unsigned: Unsigned,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Obj4Self {
-    #[serde(rename = "self")]
-    pub self_self: i64,
-}
+    pub ushort: Ushort,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct TrueClass {
-    #[serde(rename = "true")]
-    pub true_true: i64,
-}
+    pub using: Using,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct TypeClass {
-    #[serde(rename = "type")]
-    pub type_type: i64,
-}
+    #[serde(rename = "Utf8JsonReader")]
+    pub utf8_json_reader: Utf8JsonReader,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Quicktype {
-    pub quicktype: i64,
-}
+    #[serde(rename = "Utf8JsonWriter")]
+    pub utf8_json_writer: Utf8JsonWriter,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Raise {
-    pub raise: i64,
-}
+    #[serde(rename = "UUID")]
+    pub uuid: Uuid,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Range {
-    pub range: i64,
-}
+    pub var: Var,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Readonly {
-    pub readonly: i64,
-}
+    pub void: Void,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "PascalCase")]
-pub struct RegExp {
-    pub reg_exp: String,
-}
+    pub volatile: Volatile,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Register {
-    pub register: i64,
-}
+    pub wchar_t: WcharT,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct ReinterpretCast {
-    pub reinterpret_cast: i64,
-}
+    pub weak: Weak,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Repeat {
-    pub repeat: i64,
-}
+    #[serde(rename = "willSet")]
+    pub will_set: WillSet,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Require {
-    pub require: i64,
-}
+    pub with: With,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Required {
-    pub required: i64,
-}
+    pub xor: Xor,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Requires {
-    pub requires: i64,
-}
+    pub xor_eq: XorEq,
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Restrict {
-    pub restrict: i64,
+    #[serde(rename = "YES")]
+    pub yes: Yes,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Retain {
-    pub retain: i64,
+pub struct Struct {
+    #[serde(rename = "struct")]
+    pub struct_struct: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Rethrows {
-    pub rethrows: i64,
+pub struct Super {
+    #[serde(rename = "super")]
+    pub super_super: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Right {
-    pub right: i64,
+#[serde(rename_all = "PascalCase")]
+pub struct True {
+    #[serde(rename = "True")]
+    pub true_true: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "camelCase")]
-pub struct RuntimeType {
-    pub runtime_type: i64,
+#[serde(rename_all = "PascalCase")]
+pub struct Type {
+    #[serde(rename = "Type")]
+    pub type_type: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct S {
-    pub s: i64,
+pub struct Typeof {
+    #[serde(rename = "typeof")]
+    pub typeof_typeof: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Sbyte {
-    pub sbyte: i64,
+pub struct Union {
+    #[serde(rename = "union")]
+    pub union_union: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Sealed {
-    pub sealed: i64,
+pub struct Unsafe {
+    #[serde(rename = "unsafe")]
+    pub unsafe_unsafe: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
-pub struct Sel {
-    pub sel: i64,
+pub struct Virtual {
+    #[serde(rename = "virtual")]
+    pub virtual_virtual: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Select {
-    pub select: i64,
+pub struct Where {
+    #[serde(rename = "where")]
+    pub where_where: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct SerializeClass {
-    pub serialize: i64,
+pub struct While {
+    #[serde(rename = "while")]
+    pub while_while: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Set {
-    pub set: i64,
+pub struct Yield {
+    #[serde(rename = "yield")]
+    pub yield_yield: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Short {
-    pub short: i64,
+pub struct TrueClass {
+    #[serde(rename = "true")]
+    pub true_true: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Signed {
-    pub signed: i64,
+pub struct TypeClass {
+    #[serde(rename = "type")]
+    pub type_type: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Stackalloc {
-    pub stackalloc: i64,
+pub struct StaticCast {
+    pub static_cast: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(rename_all = "PascalCase")]
-pub struct Standards {
-    pub standards: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct StaticAssert {
-    pub static_assert: i64,
+pub struct StdDeserializer {
+    pub std_deserializer: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct StaticCast {
-    pub static_cast: i64,
+#[serde(rename_all = "PascalCase")]
+pub struct StdSerializer {
+    pub std_serializer: i64,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize)]
@@ -2303,104 +2401,6 @@ pub struct Undefined {
     pub undefined: i64,
 }
 
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Obj5 {
-    pub dummy: i64,
-
-    #[serde(rename = "union")]
-    pub obj5_union: Union,
-
-    #[serde(rename = "unsafe")]
-    pub obj5_unsafe: Unsafe,
-
-    #[serde(rename = "virtual")]
-    pub obj5_virtual: Virtual,
-
-    #[serde(rename = "where")]
-    pub obj5_where: Where,
-
-    #[serde(rename = "while")]
-    pub obj5_while: While,
-
-    #[serde(rename = "yield")]
-    pub obj5_yield: Yield,
-
-    pub unowned: Unowned,
-
-    pub unsigned: Unsigned,
-
-    pub ushort: Ushort,
-
-    pub using: Using,
-
-    #[serde(rename = "Utf8JsonReader")]
-    pub utf8_json_reader: Utf8JsonReader,
-
-    #[serde(rename = "Utf8JsonWriter")]
-    pub utf8_json_writer: Utf8JsonWriter,
-
-    #[serde(rename = "UUID")]
-    pub uuid: Uuid,
-
-    pub var: Var,
-
-    pub void: Void,
-
-    pub volatile: Volatile,
-
-    pub wchar_t: WcharT,
-
-    pub weak: Weak,
-
-    #[serde(rename = "willSet")]
-    pub will_set: WillSet,
-
-    pub with: With,
-
-    pub xor: Xor,
-
-    pub xor_eq: XorEq,
-
-    #[serde(rename = "YES")]
-    pub yes: Yes,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Union {
-    #[serde(rename = "union")]
-    pub union_union: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Unsafe {
-    #[serde(rename = "unsafe")]
-    pub unsafe_unsafe: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Virtual {
-    #[serde(rename = "virtual")]
-    pub virtual_virtual: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Where {
-    #[serde(rename = "where")]
-    pub where_where: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct While {
-    #[serde(rename = "while")]
-    pub while_while: i64,
-}
-
-#[derive(Debug, Clone, Serialize, Deserialize)]
-pub struct Yield {
-    #[serde(rename = "yield")]
-    pub yield_yield: i64,
-}
-
 #[derive(Debug, Clone, Serialize, Deserialize)]
 pub struct Unowned {
     pub unowned: i64,
diff --git a/base/scala3/test/inputs/json/priority/keywords.json/default/TopLevel.scala b/head/scala3/test/inputs/json/priority/keywords.json/default/TopLevel.scala
index d81900e..72270ff 100644
--- a/base/scala3/test/inputs/json/priority/keywords.json/default/TopLevel.scala
+++ b/head/scala3/test/inputs/json/priority/keywords.json/default/TopLevel.scala
@@ -71,13 +71,6 @@ case class Obj1 (
     val DateOnly : DateOnly,
     val DateOnlyConverter : DateOnlyConverter,
     val date_parse_handling : DateParseHandling,
-    val DateTime : DateTime,
-    val DateTimeStyles : DateTimeStyles,
-    val debugger : Debugger,
-    val decimal : Decimal,
-    val declare : Declare,
-    val decltype : Decltype,
-    val decode_string : DecodeString,
     val dummy : Long,
     val empty : Empty,
     val _Imaginery : Imaginery,
@@ -326,34 +319,6 @@ case class DateParseHandling (
     val date_parse_handling : Long
 ) derives Encoder.AsObject, Decoder
 
-case class DateTime (
-    val DateTime : java.time.Instant
-) derives Encoder.AsObject, Decoder
-
-case class DateTimeStyles (
-    val DateTimeStyles : Long
-) derives Encoder.AsObject, Decoder
-
-case class Debugger (
-    val debugger : Long
-) derives Encoder.AsObject, Decoder
-
-case class Decimal (
-    val decimal : Long
-) derives Encoder.AsObject, Decoder
-
-case class Declare (
-    val declare : Long
-) derives Encoder.AsObject, Decoder
-
-case class Decltype (
-    val decltype : Long
-) derives Encoder.AsObject, Decoder
-
-case class DecodeString (
-    val decode_string : Long
-) derives Encoder.AsObject, Decoder
-
 case class Empty (
     val empty : Long
 )
@@ -404,6 +369,13 @@ case class ClassClass (
 ) derives Encoder.AsObject, Decoder
 
 case class Obj2 (
+    val DateTime : DateTime,
+    val DateTimeStyles : DateTimeStyles,
+    val debugger : Debugger,
+    val decimal : Decimal,
+    val declare : Declare,
+    val decltype : Decltype,
+    val decode_string : DecodeString,
     val default : Default,
     val defer : Defer,
     val deinit : Deinit,
@@ -449,16 +421,6 @@ case class Obj2 (
     val id : ID,
     val IMP : Imp,
     val implements : Implements,
-    val in : In,
-    val indirect : Indirect,
-    val infix : Infix,
-    val init : Init,
-    val inline : Inline,
-    val inout : Inout,
-    val instanceof : Instanceof,
-    val int : IntClass,
-    val interface : Interface,
-    val internal : Internal,
     val `def` : Def,
     val `do` : Do,
     val `else` : Else,
@@ -471,7 +433,6 @@ case class Obj2 (
     val `for` : For,
     val `if` : If,
     val `implicit` : Implicit,
-    val `import` : Import,
     val `false` : FalseClass
 )
 
@@ -484,6 +445,34 @@ object Obj2:
         )
     given io.circe.Codec.AsObject[Obj2] = io.circe.derivation.ConfiguredCodec.derived
 
+case class DateTime (
+    val DateTime : java.time.Instant
+) derives Encoder.AsObject, Decoder
+
+case class DateTimeStyles (
+    val DateTimeStyles : Long
+) derives Encoder.AsObject, Decoder
+
+case class Debugger (
+    val debugger : Long
+) derives Encoder.AsObject, Decoder
+
+case class Decimal (
+    val decimal : Long
+) derives Encoder.AsObject, Decoder
+
+case class Declare (
+    val declare : Long
+) derives Encoder.AsObject, Decoder
+
+case class Decltype (
+    val decltype : Long
+) derives Encoder.AsObject, Decoder
+
+case class DecodeString (
+    val decode_string : Long
+) derives Encoder.AsObject, Decoder
+
 case class Default (
     val default : Long
 ) derives Encoder.AsObject, Decoder
@@ -683,46 +672,6 @@ case class Implements (
     val implements : Long
 ) derives Encoder.AsObject, Decoder
 
-case class In (
-    val in : Long
-) derives Encoder.AsObject, Decoder
-
-case class Indirect (
-    val indirect : Long
-) derives Encoder.AsObject, Decoder
-
-case class Infix (
-    val infix : Long
-) derives Encoder.AsObject, Decoder
-
-case class Init (
-    val init : Long
-) derives Encoder.AsObject, Decoder
-
-case class Inline (
-    val inline : Long
-) derives Encoder.AsObject, Decoder
-
-case class Inout (
-    val inout : Long
-) derives Encoder.AsObject, Decoder
-
-case class Instanceof (
-    val instanceof : Long
-) derives Encoder.AsObject, Decoder
-
-case class IntClass (
-    val int : Long
-) derives Encoder.AsObject, Decoder
-
-case class Interface (
-    val interface : Long
-) derives Encoder.AsObject, Decoder
-
-case class Internal (
-    val internal : Long
-) derives Encoder.AsObject, Decoder
-
 case class Def (
     val `def` : Long
 ) derives Encoder.AsObject, Decoder
@@ -771,16 +720,22 @@ case class Implicit (
     val `implicit` : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Import (
-    val `import` : Long
-) derives Encoder.AsObject, Decoder
-
 case class FalseClass (
     val `false` : Long
 ) derives Encoder.AsObject, Decoder
 
 case class Obj3 (
     val dummy : Long,
+    val in : In,
+    val indirect : Indirect,
+    val infix : Infix,
+    val init : Init,
+    val inline : Inline,
+    val inout : Inout,
+    val instanceof : Instanceof,
+    val int : IntClass,
+    val interface : Interface,
+    val internal : Internal,
     val is : Is,
     val IsoDateTimeOffsetConverter : ISODateTimeOffsetConverter,
     val iterable : Iterable,
@@ -829,42 +784,52 @@ case class Obj3 (
     val not_eq : NotEq,
     val NSError : NSError,
     val NSString : NSString,
-    val nullptr : Nullptr,
-    val number : Number,
+    val `import` : Import,
     val `lazy` : Lazy,
     val NULL : NULLClass,
     val `new` : New,
     val none : Obj3None,
-    val `null` : NullClass,
-    val `object` : Object,
-    val `override` : Override,
-    val `package` : Package,
-    val `private` : Private,
-    val `protected` : Protected,
-    val protocol : ProtocolClass,
-    val ObjectMapper : ObjectMapper,
-    val of : Of,
-    val oneway : Oneway,
-    val open : Open,
-    val operator : Operator,
-    val optional : Optional,
-    val or : Or,
-    val or_eq : OrEq,
-    val out : Out,
-    val params : Params,
-    val pass : Pass,
-    val port : Port,
-    val postfix : Postfix,
-    val precedence : Precedence,
-    val prefix : Prefix,
-    val print : Print,
-    val printMembers : PrintMembers,
-    val printf : Printf,
-    val Protocol : Protocol,
-    val SerializerProvider : SerializerProvider,
-    val SimpleModule : SimpleModule,
-    val StdDeserializer : StdDeserializer,
-    val StdSerializer : StdSerializer
+    val `null` : NullClass
+) derives Encoder.AsObject, Decoder
+
+case class In (
+    val in : Long
+) derives Encoder.AsObject, Decoder
+
+case class Indirect (
+    val indirect : Long
+) derives Encoder.AsObject, Decoder
+
+case class Infix (
+    val infix : Long
+) derives Encoder.AsObject, Decoder
+
+case class Init (
+    val init : Long
+) derives Encoder.AsObject, Decoder
+
+case class Inline (
+    val inline : Long
+) derives Encoder.AsObject, Decoder
+
+case class Inout (
+    val inout : Long
+) derives Encoder.AsObject, Decoder
+
+case class Instanceof (
+    val instanceof : Long
+) derives Encoder.AsObject, Decoder
+
+case class IntClass (
+    val int : Long
+) derives Encoder.AsObject, Decoder
+
+case class Interface (
+    val interface : Long
+) derives Encoder.AsObject, Decoder
+
+case class Internal (
+    val internal : Long
 ) derives Encoder.AsObject, Decoder
 
 case class Is (
@@ -1059,12 +1024,8 @@ case class NSString (
     val NSString : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Nullptr (
-    val nullptr : Long
-) derives Encoder.AsObject, Decoder
-
-case class Number (
-    val number : Long
+case class Import (
+    val `import` : Long
 ) derives Encoder.AsObject, Decoder
 
 case class Lazy (
@@ -1087,137 +1048,39 @@ case class NullClass (
     val `null` : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Object (
-    val `object` : Long
-) derives Encoder.AsObject, Decoder
-
-case class Override (
-    val `override` : Long
-) derives Encoder.AsObject, Decoder
-
-case class Package (
-    val `package` : Long
-) derives Encoder.AsObject, Decoder
-
-case class Private (
-    val `private` : Long
-) derives Encoder.AsObject, Decoder
-
-case class Protected (
-    val `protected` : Long
-) derives Encoder.AsObject, Decoder
-
-case class ProtocolClass (
-    val protocol : Long
-) derives Encoder.AsObject, Decoder
-
-case class ObjectMapper (
-    val ObjectMapper : Long
-) derives Encoder.AsObject, Decoder
-
-case class Of (
-    val of : Long
-) derives Encoder.AsObject, Decoder
-
-case class Oneway (
-    val oneway : Long
-) derives Encoder.AsObject, Decoder
-
-case class Open (
-    val open : Long
-) derives Encoder.AsObject, Decoder
-
-case class Operator (
-    val operator : Long
-) derives Encoder.AsObject, Decoder
-
-case class Optional (
-    val optional : Long
-) derives Encoder.AsObject, Decoder
-
-case class Or (
-    val or : Long
-) derives Encoder.AsObject, Decoder
-
-case class OrEq (
-    val or_eq : Long
-) derives Encoder.AsObject, Decoder
-
-case class Out (
-    val out : Long
-) derives Encoder.AsObject, Decoder
-
-case class Params (
-    val params : Long
-) derives Encoder.AsObject, Decoder
-
-case class Pass (
-    val pass : Long
-) derives Encoder.AsObject, Decoder
-
-case class Port (
-    val port : Long
-) derives Encoder.AsObject, Decoder
-
-case class Postfix (
-    val postfix : Long
-) derives Encoder.AsObject, Decoder
-
-case class Precedence (
-    val precedence : Long
-) derives Encoder.AsObject, Decoder
-
-case class Prefix (
-    val prefix : Long
-) derives Encoder.AsObject, Decoder
-
-case class Print (
-    val print : Long
-) derives Encoder.AsObject, Decoder
-
-case class PrintMembers (
-    val printMembers : Long
-) derives Encoder.AsObject, Decoder
-
-case class Printf (
-    val printf : Long
-) derives Encoder.AsObject, Decoder
-
-case class Protocol (
-    val Protocol : Long
-) derives Encoder.AsObject, Decoder
-
-case class SerializerProvider (
-    val SerializerProvider : Long
-) derives Encoder.AsObject, Decoder
-
-case class SimpleModule (
-    val SimpleModule : Long
-) derives Encoder.AsObject, Decoder
-
-case class StdDeserializer (
-    val StdDeserializer : Long
-) derives Encoder.AsObject, Decoder
-
-case class StdSerializer (
-    val StdSerializer : Long
-) derives Encoder.AsObject, Decoder
-
 case class Obj4 (
     val dummy : Long,
+    val nullptr : Nullptr,
+    val number : Number,
+    val `object` : Object,
+    val `override` : Override,
+    val `package` : Package,
+    val `private` : Private,
+    val `protected` : Protected,
+    val protocol : ProtocolClass,
     val `return` : Return,
     val `sealed` : Sealed,
     val self : SelfClass,
-    val `super` : Super,
-    val `then` : Then,
-    val `this` : This,
-    val `throw` : Throw,
-    val True : True,
-    val `try` : Try,
-    val Type : Type,
+    val ObjectMapper : ObjectMapper,
+    val of : Of,
+    val oneway : Oneway,
+    val open : Open,
+    val operator : Operator,
+    val optional : Optional,
+    val or : Or,
+    val or_eq : OrEq,
+    val out : Out,
+    val params : Params,
+    val pass : Pass,
+    val port : Port,
+    val postfix : Postfix,
+    val precedence : Precedence,
+    val prefix : Prefix,
+    val print : Print,
+    val printMembers : PrintMembers,
+    val printf : Printf,
+    val Protocol : Protocol,
     val public : Public,
-    val `true` : TrueClass,
-    val `type` : TypeClass,
     val quicktype : Quicktype,
     val raise : Raise,
     val range : Range,
@@ -1241,52 +1104,49 @@ case class Obj4 (
     val select : Select,
     val Self : Self,
     val serialize : Serialize,
+    val SerializerProvider : SerializerProvider,
     val set : Set,
     val short : ShortClass,
     val signed : Signed,
+    val SimpleModule : SimpleModule,
     val sizeof : Sizeof,
     val stackalloc : Stackalloc,
     val Standards : Standards,
     val static : Static,
-    val static_assert : StaticAssert,
-    val static_cast : StaticCast,
-    val strictfp : Strictfp,
-    val string : StringClass,
-    val struct : Struct,
-    val subscript : Subscript,
-    val switch : Switch,
-    val symbol : Symbol,
-    val synchronizedValue : Synchronized,
-    val system : SystemClass,
-    val template : Template,
-    val thread_local : ThreadLocal,
-    val throws : Throws,
-    val TimeOnly : TimeOnly,
-    val TimeOnlyConverter : TimeOnlyConverter,
-    val to_json : ToJSON,
-    val toStringValue : ToString,
-    val top_level : TopLevelClass,
-    val transient : Transient,
-    val typealias : Typealias,
-    val typedef : Typedef,
-    val typeid : Typeid,
-    val typename : Typename,
-    val typeof : Typeof,
-    val uint : Uint,
-    val ulong : Ulong,
-    val unchecked : Unchecked,
-    val undefined : Undefined
-)
+    val static_assert : StaticAssert
+) derives Encoder.AsObject, Decoder
 
-object Obj4:
-    given io.circe.derivation.Configuration =
-        io.circe.derivation.Configuration.default.withTransformMemberNames(
-            io.circe.derivation.renaming.replaceWith(
-                "synchronizedValue" -> "synchronized",
-                "toStringValue" -> "toString"
-            )
-        )
-    given io.circe.Codec.AsObject[Obj4] = io.circe.derivation.ConfiguredCodec.derived
+case class Nullptr (
+    val nullptr : Long
+) derives Encoder.AsObject, Decoder
+
+case class Number (
+    val number : Long
+) derives Encoder.AsObject, Decoder
+
+case class Object (
+    val `object` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Override (
+    val `override` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Package (
+    val `package` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Private (
+    val `private` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Protected (
+    val `protected` : Long
+) derives Encoder.AsObject, Decoder
+
+case class ProtocolClass (
+    val protocol : Long
+) derives Encoder.AsObject, Decoder
 
 case class Return (
     val `return` : Long
@@ -1300,44 +1160,84 @@ case class SelfClass (
     val self : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Super (
-    val `super` : Long
+case class ObjectMapper (
+    val ObjectMapper : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Then (
-    val `then` : Long
+case class Of (
+    val of : Long
 ) derives Encoder.AsObject, Decoder
 
-case class This (
-    val `this` : Long
+case class Oneway (
+    val oneway : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Throw (
-    val `throw` : Long
+case class Open (
+    val open : Long
 ) derives Encoder.AsObject, Decoder
 
-case class True (
-    val True : Long
+case class Operator (
+    val operator : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Try (
-    val `try` : Long
+case class Optional (
+    val optional : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Type (
-    val Type : Long
+case class Or (
+    val or : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Public (
-    val public : Long
+case class OrEq (
+    val or_eq : Long
 ) derives Encoder.AsObject, Decoder
 
-case class TrueClass (
-    val `true` : Long
+case class Out (
+    val out : Long
 ) derives Encoder.AsObject, Decoder
 
-case class TypeClass (
-    val `type` : Long
+case class Params (
+    val params : Long
+) derives Encoder.AsObject, Decoder
+
+case class Pass (
+    val pass : Long
+) derives Encoder.AsObject, Decoder
+
+case class Port (
+    val port : Long
+) derives Encoder.AsObject, Decoder
+
+case class Postfix (
+    val postfix : Long
+) derives Encoder.AsObject, Decoder
+
+case class Precedence (
+    val precedence : Long
+) derives Encoder.AsObject, Decoder
+
+case class Prefix (
+    val prefix : Long
+) derives Encoder.AsObject, Decoder
+
+case class Print (
+    val print : Long
+) derives Encoder.AsObject, Decoder
+
+case class PrintMembers (
+    val printMembers : Long
+) derives Encoder.AsObject, Decoder
+
+case class Printf (
+    val printf : Long
+) derives Encoder.AsObject, Decoder
+
+case class Protocol (
+    val Protocol : Long
+) derives Encoder.AsObject, Decoder
+
+case class Public (
+    val public : Long
 ) derives Encoder.AsObject, Decoder
 
 case class Quicktype (
@@ -1432,6 +1332,10 @@ case class Serialize (
     val serialize : Long
 ) derives Encoder.AsObject, Decoder
 
+case class SerializerProvider (
+    val SerializerProvider : Long
+) derives Encoder.AsObject, Decoder
+
 case class Set (
     val set : Long
 ) derives Encoder.AsObject, Decoder
@@ -1444,6 +1348,10 @@ case class Signed (
     val signed : Long
 ) derives Encoder.AsObject, Decoder
 
+case class SimpleModule (
+    val SimpleModule : Long
+) derives Encoder.AsObject, Decoder
+
 case class Sizeof (
     val sizeof : Long
 ) derives Encoder.AsObject, Decoder
@@ -1464,10 +1372,145 @@ case class StaticAssert (
     val static_assert : Long
 ) derives Encoder.AsObject, Decoder
 
+case class Obj5 (
+    val dummy : Long,
+    val `super` : Super,
+    val `then` : Then,
+    val `this` : This,
+    val `throw` : Throw,
+    val True : True,
+    val `try` : Try,
+    val Type : Type,
+    val `var` : Var,
+    val `while` : While,
+    val `with` : With,
+    val `yield` : Yield,
+    val `true` : TrueClass,
+    val `type` : TypeClass,
+    val static_cast : StaticCast,
+    val StdDeserializer : StdDeserializer,
+    val StdSerializer : StdSerializer,
+    val strictfp : Strictfp,
+    val string : StringClass,
+    val struct : Struct,
+    val subscript : Subscript,
+    val switch : Switch,
+    val symbol : Symbol,
+    val synchronizedValue : Synchronized,
+    val system : SystemClass,
+    val template : Template,
+    val thread_local : ThreadLocal,
+    val throws : Throws,
+    val TimeOnly : TimeOnly,
+    val TimeOnlyConverter : TimeOnlyConverter,
+    val to_json : ToJSON,
+    val toStringValue : ToString,
+    val top_level : TopLevelClass,
+    val transient : Transient,
+    val typealias : Typealias,
+    val typedef : Typedef,
+    val typeid : Typeid,
+    val typename : Typename,
+    val typeof : Typeof,
+    val uint : Uint,
+    val ulong : Ulong,
+    val unchecked : Unchecked,
+    val undefined : Undefined,
+    val union : Union,
+    val unowned : Unowned,
+    val unsafe : Unsafe,
+    val unsigned : Unsigned,
+    val ushort : Ushort,
+    val using : Using,
+    val Utf8JsonReader : Utf8JSONReader,
+    val Utf8JsonWriter : Utf8JSONWriter,
+    val UUID : UUID,
+    val virtual : Virtual,
+    val void : Void,
+    val volatile : Volatile,
+    val wchar_t : WcharT,
+    val weak : Weak,
+    val where : Where,
+    val willSet : WillSet,
+    val xor : Xor,
+    val xor_eq : XorEq,
+    val YES : Yes
+)
+
+object Obj5:
+    given io.circe.derivation.Configuration =
+        io.circe.derivation.Configuration.default.withTransformMemberNames(
+            io.circe.derivation.renaming.replaceWith(
+                "synchronizedValue" -> "synchronized",
+                "toStringValue" -> "toString"
+            )
+        )
+    given io.circe.Codec.AsObject[Obj5] = io.circe.derivation.ConfiguredCodec.derived
+
+case class Super (
+    val `super` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Then (
+    val `then` : Long
+) derives Encoder.AsObject, Decoder
+
+case class This (
+    val `this` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Throw (
+    val `throw` : Long
+) derives Encoder.AsObject, Decoder
+
+case class True (
+    val True : Long
+) derives Encoder.AsObject, Decoder
+
+case class Try (
+    val `try` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Type (
+    val Type : Long
+) derives Encoder.AsObject, Decoder
+
+case class Var (
+    val `var` : Long
+) derives Encoder.AsObject, Decoder
+
+case class While (
+    val `while` : Long
+) derives Encoder.AsObject, Decoder
+
+case class With (
+    val `with` : Long
+) derives Encoder.AsObject, Decoder
+
+case class Yield (
+    val `yield` : Long
+) derives Encoder.AsObject, Decoder
+
+case class TrueClass (
+    val `true` : Long
+) derives Encoder.AsObject, Decoder
+
+case class TypeClass (
+    val `type` : Long
+) derives Encoder.AsObject, Decoder
+
 case class StaticCast (
     val static_cast : Long
 ) derives Encoder.AsObject, Decoder
 
+case class StdDeserializer (
+    val StdDeserializer : Long
+) derives Encoder.AsObject, Decoder
+
+case class StdSerializer (
+    val StdSerializer : Long
+) derives Encoder.AsObject, Decoder
+
 case class Strictfp (
     val strictfp : Long
 ) derives Encoder.AsObject, Decoder
@@ -1590,49 +1633,6 @@ case class Undefined (
     val undefined : Long
 ) derives Encoder.AsObject, Decoder
 
-case class Obj5 (
-    val dummy : Long,
-    val `var` : Var,
-    val `while` : While,
-    val `with` : With,
-    val `yield` : Yield,
-    val union : Union,
-    val unowned : Unowned,
-    val unsafe : Unsafe,
-    val unsigned : Unsigned,
-    val ushort : Ushort,
-    val using : Using,
-    val Utf8JsonReader : Utf8JSONReader,
-    val Utf8JsonWriter : Utf8JSONWriter,
-    val UUID : UUID,
-    val virtual : Virtual,
-    val void : Void,
-    val volatile : Volatile,
-    val wchar_t : WcharT,
-    val weak : Weak,
-    val where : Where,
-    val willSet : WillSet,
-    val xor : Xor,
-    val xor_eq : XorEq,
-    val YES : Yes
-) derives Encoder.AsObject, Decoder
-
-case class Var (
-    val `var` : Long
-) derives Encoder.AsObject, Decoder
-
-case class While (
-    val `while` : Long
-) derives Encoder.AsObject, Decoder
-
-case class With (
-    val `with` : Long
-) derives Encoder.AsObject, Decoder
-
-case class Yield (
-    val `yield` : Long
-) derives Encoder.AsObject, Decoder
-
 case class Union (
     val union : Long
 ) derives Encoder.AsObject, Decoder
diff --git a/base/scala3-upickle/test/inputs/json/priority/keywords.json/default/TopLevel.scala b/head/scala3-upickle/test/inputs/json/priority/keywords.json/default/TopLevel.scala
index dca0bb1..adb3624 100644
--- a/base/scala3-upickle/test/inputs/json/priority/keywords.json/default/TopLevel.scala
+++ b/head/scala3-upickle/test/inputs/json/priority/keywords.json/default/TopLevel.scala
@@ -143,13 +143,6 @@ case class Obj1 (
     val DateOnly : DateOnly,
     val DateOnlyConverter : DateOnlyConverter,
     val date_parse_handling : DateParseHandling,
-    val DateTime : DateTime,
-    val DateTimeStyles : DateTimeStyles,
-    val debugger : Debugger,
-    val decimal : Decimal,
-    val declare : Declare,
-    val decltype : Decltype,
-    val decode_string : DecodeString,
     val dummy : Long,
     @upickle.implicits.key("_")
     val empty : Empty,
@@ -381,34 +374,6 @@ case class DateParseHandling (
     val date_parse_handling : Long
 ) derives OptionPickler.ReadWriter
 
-case class DateTime (
-    val DateTime : java.time.Instant
-) derives OptionPickler.ReadWriter
-
-case class DateTimeStyles (
-    val DateTimeStyles : Long
-) derives OptionPickler.ReadWriter
-
-case class Debugger (
-    val debugger : Long
-) derives OptionPickler.ReadWriter
-
-case class Decimal (
-    val decimal : Long
-) derives OptionPickler.ReadWriter
-
-case class Declare (
-    val declare : Long
-) derives OptionPickler.ReadWriter
-
-case class Decltype (
-    val decltype : Long
-) derives OptionPickler.ReadWriter
-
-case class DecodeString (
-    val decode_string : Long
-) derives OptionPickler.ReadWriter
-
 case class Empty (
     @upickle.implicits.key("_")
     val empty : Long
@@ -451,6 +416,13 @@ case class ClassClass (
 ) derives OptionPickler.ReadWriter
 
 case class Obj2 (
+    val DateTime : DateTime,
+    val DateTimeStyles : DateTimeStyles,
+    val debugger : Debugger,
+    val decimal : Decimal,
+    val declare : Declare,
+    val decltype : Decltype,
+    val decode_string : DecodeString,
     val default : Default,
     val defer : Defer,
     val deinit : Deinit,
@@ -497,16 +469,6 @@ case class Obj2 (
     val id : ID,
     val IMP : Imp,
     val implements : Implements,
-    val in : In,
-    val indirect : Indirect,
-    val infix : Infix,
-    val init : Init,
-    val inline : Inline,
-    val inout : Inout,
-    val instanceof : Instanceof,
-    val int : IntClass,
-    val interface : Interface,
-    val internal : Internal,
     val `def` : Def,
     val `do` : Do,
     val `else` : Else,
@@ -519,10 +481,37 @@ case class Obj2 (
     val `for` : For,
     val `if` : If,
     val `implicit` : Implicit,
-    val `import` : Import,
     val `false` : FalseClass
 ) derives OptionPickler.ReadWriter
 
+case class DateTime (
+    val DateTime : java.time.Instant
+) derives OptionPickler.ReadWriter
+
+case class DateTimeStyles (
+    val DateTimeStyles : Long
+) derives OptionPickler.ReadWriter
+
+case class Debugger (
+    val debugger : Long
+) derives OptionPickler.ReadWriter
+
+case class Decimal (
+    val decimal : Long
+) derives OptionPickler.ReadWriter
+
+case class Declare (
+    val declare : Long
+) derives OptionPickler.ReadWriter
+
+case class Decltype (
+    val decltype : Long
+) derives OptionPickler.ReadWriter
+
+case class DecodeString (
+    val decode_string : Long
+) derives OptionPickler.ReadWriter
+
 case class Default (
     val default : Long
 ) derives OptionPickler.ReadWriter
@@ -716,46 +705,6 @@ case class Implements (
     val implements : Long
 ) derives OptionPickler.ReadWriter
 
-case class In (
-    val in : Long
-) derives OptionPickler.ReadWriter
-
-case class Indirect (
-    val indirect : Long
-) derives OptionPickler.ReadWriter
-
-case class Infix (
-    val infix : Long
-) derives OptionPickler.ReadWriter
-
-case class Init (
-    val init : Long
-) derives OptionPickler.ReadWriter
-
-case class Inline (
-    val inline : Long
-) derives OptionPickler.ReadWriter
-
-case class Inout (
-    val inout : Long
-) derives OptionPickler.ReadWriter
-
-case class Instanceof (
-    val instanceof : Long
-) derives OptionPickler.ReadWriter
-
-case class IntClass (
-    val int : Long
-) derives OptionPickler.ReadWriter
-
-case class Interface (
-    val interface : Long
-) derives OptionPickler.ReadWriter
-
-case class Internal (
-    val internal : Long
-) derives OptionPickler.ReadWriter
-
 case class Def (
     val `def` : Long
 ) derives OptionPickler.ReadWriter
@@ -804,16 +753,22 @@ case class Implicit (
     val `implicit` : Long
 ) derives OptionPickler.ReadWriter
 
-case class Import (
-    val `import` : Long
-) derives OptionPickler.ReadWriter
-
 case class FalseClass (
     val `false` : Long
 ) derives OptionPickler.ReadWriter
 
 case class Obj3 (
     val dummy : Long,
+    val in : In,
+    val indirect : Indirect,
+    val infix : Infix,
+    val init : Init,
+    val inline : Inline,
+    val inout : Inout,
+    val instanceof : Instanceof,
+    val int : IntClass,
+    val interface : Interface,
+    val internal : Internal,
     val is : Is,
     val IsoDateTimeOffsetConverter : ISODateTimeOffsetConverter,
     val iterable : Iterable,
@@ -862,42 +817,52 @@ case class Obj3 (
     val not_eq : NotEq,
     val NSError : NSError,
     val NSString : NSString,
-    val nullptr : Nullptr,
-    val number : Number,
+    val `import` : Import,
     val `lazy` : Lazy,
     val NULL : NULLClass,
     val `new` : New,
     val none : Obj3None,
-    val `null` : NullClass,
-    val `object` : Object,
-    val `override` : Override,
-    val `package` : Package,
-    val `private` : Private,
-    val `protected` : Protected,
-    val protocol : ProtocolClass,
-    val ObjectMapper : ObjectMapper,
-    val of : Of,
-    val oneway : Oneway,
-    val open : Open,
-    val operator : Operator,
-    val optional : Optional,
-    val or : Or,
-    val or_eq : OrEq,
-    val out : Out,
-    val params : Params,
-    val pass : Pass,
-    val port : Port,
-    val postfix : Postfix,
-    val precedence : Precedence,
-    val prefix : Prefix,
-    val print : Print,
-    val printMembers : PrintMembers,
-    val printf : Printf,
-    val Protocol : Protocol,
-    val SerializerProvider : SerializerProvider,
-    val SimpleModule : SimpleModule,
-    val StdDeserializer : StdDeserializer,
-    val StdSerializer : StdSerializer
+    val `null` : NullClass
+) derives OptionPickler.ReadWriter
+
+case class In (
+    val in : Long
+) derives OptionPickler.ReadWriter
+
+case class Indirect (
+    val indirect : Long
+) derives OptionPickler.ReadWriter
+
+case class Infix (
+    val infix : Long
+) derives OptionPickler.ReadWriter
+
+case class Init (
+    val init : Long
+) derives OptionPickler.ReadWriter
+
+case class Inline (
+    val inline : Long
+) derives OptionPickler.ReadWriter
+
+case class Inout (
+    val inout : Long
+) derives OptionPickler.ReadWriter
+
+case class Instanceof (
+    val instanceof : Long
+) derives OptionPickler.ReadWriter
+
+case class IntClass (
+    val int : Long
+) derives OptionPickler.ReadWriter
+
+case class Interface (
+    val interface : Long
+) derives OptionPickler.ReadWriter
+
+case class Internal (
+    val internal : Long
 ) derives OptionPickler.ReadWriter
 
 case class Is (
@@ -1092,12 +1057,8 @@ case class NSString (
     val NSString : Long
 ) derives OptionPickler.ReadWriter
 
-case class Nullptr (
-    val nullptr : Long
-) derives OptionPickler.ReadWriter
-
-case class Number (
-    val number : Long
+case class Import (
+    val `import` : Long
 ) derives OptionPickler.ReadWriter
 
 case class Lazy (
@@ -1120,137 +1081,39 @@ case class NullClass (
     val `null` : Long
 ) derives OptionPickler.ReadWriter
 
-case class Object (
-    val `object` : Long
-) derives OptionPickler.ReadWriter
-
-case class Override (
-    val `override` : Long
-) derives OptionPickler.ReadWriter
-
-case class Package (
-    val `package` : Long
-) derives OptionPickler.ReadWriter
-
-case class Private (
-    val `private` : Long
-) derives OptionPickler.ReadWriter
-
-case class Protected (
-    val `protected` : Long
-) derives OptionPickler.ReadWriter
-
-case class ProtocolClass (
-    val protocol : Long
-) derives OptionPickler.ReadWriter
-
-case class ObjectMapper (
-    val ObjectMapper : Long
-) derives OptionPickler.ReadWriter
-
-case class Of (
-    val of : Long
-) derives OptionPickler.ReadWriter
-
-case class Oneway (
-    val oneway : Long
-) derives OptionPickler.ReadWriter
-
-case class Open (
-    val open : Long
-) derives OptionPickler.ReadWriter
-
-case class Operator (
-    val operator : Long
-) derives OptionPickler.ReadWriter
-
-case class Optional (
-    val optional : Long
-) derives OptionPickler.ReadWriter
-
-case class Or (
-    val or : Long
-) derives OptionPickler.ReadWriter
-
-case class OrEq (
-    val or_eq : Long
-) derives OptionPickler.ReadWriter
-
-case class Out (
-    val out : Long
-) derives OptionPickler.ReadWriter
-
-case class Params (
-    val params : Long
-) derives OptionPickler.ReadWriter
-
-case class Pass (
-    val pass : Long
-) derives OptionPickler.ReadWriter
-
-case class Port (
-    val port : Long
-) derives OptionPickler.ReadWriter
-
-case class Postfix (
-    val postfix : Long
-) derives OptionPickler.ReadWriter
-
-case class Precedence (
-    val precedence : Long
-) derives OptionPickler.ReadWriter
-
-case class Prefix (
-    val prefix : Long
-) derives OptionPickler.ReadWriter
-
-case class Print (
-    val print : Long
-) derives OptionPickler.ReadWriter
-
-case class PrintMembers (
-    val printMembers : Long
-) derives OptionPickler.ReadWriter
-
-case class Printf (
-    val printf : Long
-) derives OptionPickler.ReadWriter
-
-case class Protocol (
-    val Protocol : Long
-) derives OptionPickler.ReadWriter
-
-case class SerializerProvider (
-    val SerializerProvider : Long
-) derives OptionPickler.ReadWriter
-
-case class SimpleModule (
-    val SimpleModule : Long
-) derives OptionPickler.ReadWriter
-
-case class StdDeserializer (
-    val StdDeserializer : Long
-) derives OptionPickler.ReadWriter
-
-case class StdSerializer (
-    val StdSerializer : Long
-) derives OptionPickler.ReadWriter
-
 case class Obj4 (
     val dummy : Long,
+    val nullptr : Nullptr,
+    val number : Number,
+    val `object` : Object,
+    val `override` : Override,
+    val `package` : Package,
+    val `private` : Private,
+    val `protected` : Protected,
+    val protocol : ProtocolClass,
     val `return` : Return,
     val `sealed` : Sealed,
     val self : SelfClass,
-    val `super` : Super,
-    val `then` : Then,
-    val `this` : This,
-    val `throw` : Throw,
-    val True : True,
-    val `try` : Try,
-    val Type : Type,
+    val ObjectMapper : ObjectMapper,
+    val of : Of,
+    val oneway : Oneway,
+    val open : Open,
+    val operator : Operator,
+    val optional : Optional,
+    val or : Or,
+    val or_eq : OrEq,
+    val out : Out,
+    val params : Params,
+    val pass : Pass,
+    val port : Port,
+    val postfix : Postfix,
+    val precedence : Precedence,
+    val prefix : Prefix,
+    val print : Print,
+    val printMembers : PrintMembers,
+    val printf : Printf,
+    val Protocol : Protocol,
     val public : Public,
-    val `true` : TrueClass,
-    val `type` : TypeClass,
     val quicktype : Quicktype,
     val raise : Raise,
     val range : Range,
@@ -1274,43 +1137,48 @@ case class Obj4 (
     val select : Select,
     val Self : Self,
     val serialize : Serialize,
+    val SerializerProvider : SerializerProvider,
     val set : Set,
     val short : ShortClass,
     val signed : Signed,
+    val SimpleModule : SimpleModule,
     val sizeof : Sizeof,
     val stackalloc : Stackalloc,
     val Standards : Standards,
     val static : Static,
-    val static_assert : StaticAssert,
-    val static_cast : StaticCast,
-    val strictfp : Strictfp,
-    val string : StringClass,
-    val struct : Struct,
-    val subscript : Subscript,
-    val switch : Switch,
-    val symbol : Symbol,
-    @upickle.implicits.key("synchronized")
-    val synchronizedValue : Synchronized,
-    val system : SystemClass,
-    val template : Template,
-    val thread_local : ThreadLocal,
-    val throws : Throws,
-    val TimeOnly : TimeOnly,
-    val TimeOnlyConverter : TimeOnlyConverter,
-    val to_json : ToJSON,
-    @upickle.implicits.key("toString")
-    val toStringValue : ToString,
-    val top_level : TopLevelClass,
-    val transient : Transient,
-    val typealias : Typealias,
-    val typedef : Typedef,
-    val typeid : Typeid,
-    val typename : Typename,
-    val typeof : Typeof,
-    val uint : Uint,
-    val ulong : Ulong,
-    val unchecked : Unchecked,
-    val undefined : Undefined
+    val static_assert : StaticAssert
+) derives OptionPickler.ReadWriter
+
+case class Nullptr (
+    val nullptr : Long
+) derives OptionPickler.ReadWriter
+
+case class Number (
+    val number : Long
+) derives OptionPickler.ReadWriter
+
+case class Object (
+    val `object` : Long
+) derives OptionPickler.ReadWriter
+
+case class Override (
+    val `override` : Long
+) derives OptionPickler.ReadWriter
+
+case class Package (
+    val `package` : Long
+) derives OptionPickler.ReadWriter
+
+case class Private (
+    val `private` : Long
+) derives OptionPickler.ReadWriter
+
+case class Protected (
+    val `protected` : Long
+) derives OptionPickler.ReadWriter
+
+case class ProtocolClass (
+    val protocol : Long
 ) derives OptionPickler.ReadWriter
 
 case class Return (
@@ -1325,44 +1193,84 @@ case class SelfClass (
     val self : Long
 ) derives OptionPickler.ReadWriter
 
-case class Super (
-    val `super` : Long
+case class ObjectMapper (
+    val ObjectMapper : Long
 ) derives OptionPickler.ReadWriter
 
-case class Then (
-    val `then` : Long
+case class Of (
+    val of : Long
 ) derives OptionPickler.ReadWriter
 
-case class This (
-    val `this` : Long
+case class Oneway (
+    val oneway : Long
 ) derives OptionPickler.ReadWriter
 
-case class Throw (
-    val `throw` : Long
+case class Open (
+    val open : Long
 ) derives OptionPickler.ReadWriter
 
-case class True (
-    val True : Long
+case class Operator (
+    val operator : Long
 ) derives OptionPickler.ReadWriter
 
-case class Try (
-    val `try` : Long
+case class Optional (
+    val optional : Long
 ) derives OptionPickler.ReadWriter
 
-case class Type (
-    val Type : Long
+case class Or (
+    val or : Long
 ) derives OptionPickler.ReadWriter
 
-case class Public (
-    val public : Long
+case class OrEq (
+    val or_eq : Long
 ) derives OptionPickler.ReadWriter
 
-case class TrueClass (
-    val `true` : Long
+case class Out (
+    val out : Long
 ) derives OptionPickler.ReadWriter
 
-case class TypeClass (
-    val `type` : Long
+case class Params (
+    val params : Long
+) derives OptionPickler.ReadWriter
+
+case class Pass (
+    val pass : Long
+) derives OptionPickler.ReadWriter
+
+case class Port (
+    val port : Long
+) derives OptionPickler.ReadWriter
+
+case class Postfix (
+    val postfix : Long
+) derives OptionPickler.ReadWriter
+
+case class Precedence (
+    val precedence : Long
+) derives OptionPickler.ReadWriter
+
+case class Prefix (
+    val prefix : Long
+) derives OptionPickler.ReadWriter
+
+case class Print (
+    val print : Long
+) derives OptionPickler.ReadWriter
+
+case class PrintMembers (
+    val printMembers : Long
+) derives OptionPickler.ReadWriter
+
+case class Printf (
+    val printf : Long
+) derives OptionPickler.ReadWriter
+
+case class Protocol (
+    val Protocol : Long
+) derives OptionPickler.ReadWriter
+
+case class Public (
+    val public : Long
 ) derives OptionPickler.ReadWriter
 
 case class Quicktype (
@@ -1457,6 +1365,10 @@ case class Serialize (
     val serialize : Long
 ) derives OptionPickler.ReadWriter
 
+case class SerializerProvider (
+    val SerializerProvider : Long
+) derives OptionPickler.ReadWriter
+
 case class Set (
     val set : Long
 ) derives OptionPickler.ReadWriter
@@ -1469,6 +1381,10 @@ case class Signed (
     val signed : Long
 ) derives OptionPickler.ReadWriter
 
+case class SimpleModule (
+    val SimpleModule : Long
+) derives OptionPickler.ReadWriter
+
 case class Sizeof (
     val sizeof : Long
 ) derives OptionPickler.ReadWriter
@@ -1489,10 +1405,137 @@ case class StaticAssert (
     val static_assert : Long
 ) derives OptionPickler.ReadWriter
 
+case class Obj5 (
+    val dummy : Long,
+    val `super` : Super,
+    val `then` : Then,
+    val `this` : This,
+    val `throw` : Throw,
+    val True : True,
+    val `try` : Try,
+    val Type : Type,
+    val `var` : Var,
+    val `while` : While,
+    val `with` : With,
+    val `yield` : Yield,
+    val `true` : TrueClass,
+    val `type` : TypeClass,
+    val static_cast : StaticCast,
+    val StdDeserializer : StdDeserializer,
+    val StdSerializer : StdSerializer,
+    val strictfp : Strictfp,
+    val string : StringClass,
+    val struct : Struct,
+    val subscript : Subscript,
+    val switch : Switch,
+    val symbol : Symbol,
+    @upickle.implicits.key("synchronized")
+    val synchronizedValue : Synchronized,
+    val system : SystemClass,
+    val template : Template,
+    val thread_local : ThreadLocal,
+    val throws : Throws,
+    val TimeOnly : TimeOnly,
+    val TimeOnlyConverter : TimeOnlyConverter,
+    val to_json : ToJSON,
+    @upickle.implicits.key("toString")
+    val toStringValue : ToString,
+    val top_level : TopLevelClass,
+    val transient : Transient,
+    val typealias : Typealias,
+    val typedef : Typedef,
+    val typeid : Typeid,
+    val typename : Typename,
+    val typeof : Typeof,
+    val uint : Uint,
+    val ulong : Ulong,
+    val unchecked : Unchecked,
+    val undefined : Undefined,
+    val union : Union,
+    val unowned : Unowned,
+    val unsafe : Unsafe,
+    val unsigned : Unsigned,
+    val ushort : Ushort,
+    val using : Using,
+    val Utf8JsonReader : Utf8JSONReader,
+    val Utf8JsonWriter : Utf8JSONWriter,
+    val UUID : UUID,
+    val virtual : Virtual,
+    val void : Void,
+    val volatile : Volatile,
+    val wchar_t : WcharT,
+    val weak : Weak,
+    val where : Where,
+    val willSet : WillSet,
+    val xor : Xor,
+    val xor_eq : XorEq,
+    val YES : Yes
+) derives OptionPickler.ReadWriter
+
+case class Super (
+    val `super` : Long
+) derives OptionPickler.ReadWriter
+
+case class Then (
+    val `then` : Long
+) derives OptionPickler.ReadWriter
+
+case class This (
+    val `this` : Long
+) derives OptionPickler.ReadWriter
+
+case class Throw (
+    val `throw` : Long
+) derives OptionPickler.ReadWriter
+
+case class True (
+    val True : Long
+) derives OptionPickler.ReadWriter
+
+case class Try (
+    val `try` : Long
+) derives OptionPickler.ReadWriter
+
+case class Type (
+    val Type : Long
+) derives OptionPickler.ReadWriter
+
+case class Var (
+    val `var` : Long
+) derives OptionPickler.ReadWriter
+
+case class While (
+    val `while` : Long
+) derives OptionPickler.ReadWriter
+
+case class With (
+    val `with` : Long
+) derives OptionPickler.ReadWriter
+
+case class Yield (
+    val `yield` : Long
+) derives OptionPickler.ReadWriter
+
+case class TrueClass (
+    val `true` : Long
+) derives OptionPickler.ReadWriter
+
+case class TypeClass (
+    val `type` : Long
+) derives OptionPickler.ReadWriter
+
 case class StaticCast (
     val static_cast : Long
 ) derives OptionPickler.ReadWriter
 
+case class StdDeserializer (
+    val StdDeserializer : Long
+) derives OptionPickler.ReadWriter
+
+case class StdSerializer (
+    val StdSerializer : Long
+) derives OptionPickler.ReadWriter
+
 case class Strictfp (
     val strictfp : Long
 ) derives OptionPickler.ReadWriter
@@ -1599,49 +1642,6 @@ case class Undefined (
     val undefined : Long
 ) derives OptionPickler.ReadWriter
 
-case class Obj5 (
-    val dummy : Long,
-    val `var` : Var,
-    val `while` : While,
-    val `with` : With,
-    val `yield` : Yield,
-    val union : Union,
-    val unowned : Unowned,
-    val unsafe : Unsafe,
-    val unsigned : Unsigned,
-    val ushort : Ushort,
-    val using : Using,
-    val Utf8JsonReader : Utf8JSONReader,
-    val Utf8JsonWriter : Utf8JSONWriter,
-    val UUID : UUID,
-    val virtual : Virtual,
-    val void : Void,
-    val volatile : Volatile,
-    val wchar_t : WcharT,
-    val weak : Weak,
-    val where : Where,
-    val willSet : WillSet,
-    val xor : Xor,
-    val xor_eq : XorEq,
-    val YES : Yes
-) derives OptionPickler.ReadWriter
-
-case class Var (
-    val `var` : Long
-) derives OptionPickler.ReadWriter
-
-case class While (
-    val `while` : Long
-) derives OptionPickler.ReadWriter
-
-case class With (
-    val `with` : Long
-) derives OptionPickler.ReadWriter
-
-case class Yield (
-    val `yield` : Long
-) derives OptionPickler.ReadWriter
-
 case class Union (
     val union : Long
 ) derives OptionPickler.ReadWriter
diff --git a/base/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.c b/head/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.c
index 1474d7b..dada4b5 100644
--- a/base/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.c
+++ b/head/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.c
@@ -51,6 +51,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "checked")) x = ENUM_CHECKED;
         else if (!strcmp(cJSON_GetStringValue(j), "class")) x = ENUM_CLASS;
         else if (!strcmp(cJSON_GetStringValue(j), "Class")) x = ENUM_ENUM_CLASS;
+        else if (!strcmp(cJSON_GetStringValue(j), "clone")) x = ENUM_CLONE;
         else if (!strcmp(cJSON_GetStringValue(j), "co_await")) x = ENUM_CO_AWAIT;
         else if (!strcmp(cJSON_GetStringValue(j), "co_return")) x = ENUM_CO_RETURN;
         else if (!strcmp(cJSON_GetStringValue(j), "co_yield")) x = ENUM_CO_YIELD;
@@ -65,8 +66,14 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "convenience")) x = ENUM_CONVENIENCE;
         else if (!strcmp(cJSON_GetStringValue(j), "convert")) x = ENUM_CONVERT;
         else if (!strcmp(cJSON_GetStringValue(j), "converter")) x = ENUM_CONVERTER;
+        else if (!strcmp(cJSON_GetStringValue(j), "CultureInfo")) x = ENUM_CULTURE_INFO;
         else if (!strcmp(cJSON_GetStringValue(j), "date")) x = ENUM_DATE;
         else if (!strcmp(cJSON_GetStringValue(j), "date_parse_handling")) x = ENUM_DATE_PARSE_HANDLING;
+        else if (!strcmp(cJSON_GetStringValue(j), "DateFormatter")) x = ENUM_DATE_FORMATTER;
+        else if (!strcmp(cJSON_GetStringValue(j), "DateOnly")) x = ENUM_DATE_ONLY;
+        else if (!strcmp(cJSON_GetStringValue(j), "DateOnlyConverter")) x = ENUM_DATE_ONLY_CONVERTER;
+        else if (!strcmp(cJSON_GetStringValue(j), "DateTime")) x = ENUM_DATE_TIME;
+        else if (!strcmp(cJSON_GetStringValue(j), "DateTimeStyles")) x = ENUM_DATE_TIME_STYLES;
         else if (!strcmp(cJSON_GetStringValue(j), "debugger")) x = ENUM_DEBUGGER;
         else if (!strcmp(cJSON_GetStringValue(j), "decimal")) x = ENUM_DECIMAL;
         else if (!strcmp(cJSON_GetStringValue(j), "declare")) x = ENUM_DECLARE;
@@ -90,6 +97,8 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "else")) x = ENUM_ELSE;
         else if (!strcmp(cJSON_GetStringValue(j), "encode_quick_type")) x = ENUM_ENCODE_QUICK_TYPE;
         else if (!strcmp(cJSON_GetStringValue(j), "enum")) x = ENUM_ENUM;
+        else if (!strcmp(cJSON_GetStringValue(j), "EnumValues")) x = ENUM_ENUM_VALUES;
+        else if (!strcmp(cJSON_GetStringValue(j), "equalityContract")) x = ENUM_EQUALITY_CONTRACT;
         else if (!strcmp(cJSON_GetStringValue(j), "event")) x = ENUM_EVENT;
         else if (!strcmp(cJSON_GetStringValue(j), "except")) x = ENUM_EXCEPT;
         else if (!strcmp(cJSON_GetStringValue(j), "exception")) x = ENUM_EXCEPTION;
@@ -109,6 +118,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "float")) x = ENUM_FLOAT;
         else if (!strcmp(cJSON_GetStringValue(j), "for")) x = ENUM_FOR;
         else if (!strcmp(cJSON_GetStringValue(j), "foreach")) x = ENUM_FOREACH;
+        else if (!strcmp(cJSON_GetStringValue(j), "FormatException")) x = ENUM_FORMAT_EXCEPTION;
         else if (!strcmp(cJSON_GetStringValue(j), "friend")) x = ENUM_FRIEND;
         else if (!strcmp(cJSON_GetStringValue(j), "from")) x = ENUM_FROM;
         else if (!strcmp(cJSON_GetStringValue(j), "from_json")) x = ENUM_FROM_JSON;
@@ -119,6 +129,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "go")) x = ENUM_GO;
         else if (!strcmp(cJSON_GetStringValue(j), "goto")) x = ENUM_GOTO;
         else if (!strcmp(cJSON_GetStringValue(j), "guard")) x = ENUM_GUARD;
+        else if (!strcmp(cJSON_GetStringValue(j), "hashCode")) x = ENUM_HASH_CODE;
         else if (!strcmp(cJSON_GetStringValue(j), "hasOwnProperty")) x = ENUM_HAS_OWN_PROPERTY;
         else if (!strcmp(cJSON_GetStringValue(j), "id")) x = ENUM_ID;
         else if (!strcmp(cJSON_GetStringValue(j), "if")) x = ENUM_IF;
@@ -136,6 +147,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "int")) x = ENUM_INT;
         else if (!strcmp(cJSON_GetStringValue(j), "interface")) x = ENUM_INTERFACE;
         else if (!strcmp(cJSON_GetStringValue(j), "internal")) x = ENUM_INTERNAL;
+        else if (!strcmp(cJSON_GetStringValue(j), "IsoDateTimeOffsetConverter")) x = ENUM_ISO_DATE_TIME_OFFSET_CONVERTER;
         else if (!strcmp(cJSON_GetStringValue(j), "iterable")) x = ENUM_ITERABLE;
         else if (!strcmp(cJSON_GetStringValue(j), "is")) x = ENUM_IS;
         else if (!strcmp(cJSON_GetStringValue(j), "jdec")) x = ENUM_JDEC;
@@ -146,6 +158,17 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "json_serializer")) x = ENUM_JSON_SERIALIZER;
         else if (!strcmp(cJSON_GetStringValue(j), "json_token")) x = ENUM_JSON_TOKEN;
         else if (!strcmp(cJSON_GetStringValue(j), "json_writer")) x = ENUM_JSON_WRITER;
+        else if (!strcmp(cJSON_GetStringValue(j), "JSONAny")) x = ENUM_JSON_ANY;
+        else if (!strcmp(cJSON_GetStringValue(j), "JSONCodingKey")) x = ENUM_JSON_CODING_KEY;
+        else if (!strcmp(cJSON_GetStringValue(j), "JSONDecoder")) x = ENUM_JSON_DECODER;
+        else if (!strcmp(cJSON_GetStringValue(j), "JSONEncoder")) x = ENUM_JSON_ENCODER;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonException")) x = ENUM_JSON_EXCEPTION;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonGenerator")) x = ENUM_JSON_GENERATOR;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonNode")) x = ENUM_JSON_NODE;
+        else if (!strcmp(cJSON_GetStringValue(j), "JSONNull")) x = ENUM_JSON_NULL;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonParser")) x = ENUM_JSON_PARSER;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonReader")) x = ENUM_JSON_READER;
+        else if (!strcmp(cJSON_GetStringValue(j), "JsonTokenType")) x = ENUM_JSON_TOKEN_TYPE;
         else if (!strcmp(cJSON_GetStringValue(j), "lambda")) x = ENUM_LAMBDA;
         else if (!strcmp(cJSON_GetStringValue(j), "lazy")) x = ENUM_LAZY;
         else if (!strcmp(cJSON_GetStringValue(j), "left")) x = ENUM_LEFT;
@@ -170,14 +193,17 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "None")) x = ENUM_ENUM_NONE;
         else if (!strcmp(cJSON_GetStringValue(j), "nonlocal")) x = ENUM_NONLOCAL;
         else if (!strcmp(cJSON_GetStringValue(j), "nonmutating")) x = ENUM_NONMUTATING;
+        else if (!strcmp(cJSON_GetStringValue(j), "noSuchMethod")) x = ENUM_NO_SUCH_METHOD;
         else if (!strcmp(cJSON_GetStringValue(j), "not")) x = ENUM_NOT;
         else if (!strcmp(cJSON_GetStringValue(j), "not_eq")) x = ENUM_NOT_EQ;
+        else if (!strcmp(cJSON_GetStringValue(j), "NSError")) x = ENUM_NS_ERROR;
         else if (!strcmp(cJSON_GetStringValue(j), "NSString")) x = ENUM_NS_STRING;
         else if (!strcmp(cJSON_GetStringValue(j), "NULL")) x = ENUM_ENUM_NULL;
         else if (!strcmp(cJSON_GetStringValue(j), "null")) x = ENUM_PURPLE_NULL;
         else if (!strcmp(cJSON_GetStringValue(j), "nullptr")) x = ENUM_NULLPTR;
         else if (!strcmp(cJSON_GetStringValue(j), "number")) x = ENUM_NUMBER;
         else if (!strcmp(cJSON_GetStringValue(j), "object")) x = ENUM_OBJECT;
+        else if (!strcmp(cJSON_GetStringValue(j), "ObjectMapper")) x = ENUM_OBJECT_MAPPER;
         else if (!strcmp(cJSON_GetStringValue(j), "of")) x = ENUM_OF;
         else if (!strcmp(cJSON_GetStringValue(j), "oneway")) x = ENUM_ONEWAY;
         else if (!strcmp(cJSON_GetStringValue(j), "open")) x = ENUM_OPEN;
@@ -196,6 +222,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "prefix")) x = ENUM_PREFIX;
         else if (!strcmp(cJSON_GetStringValue(j), "print")) x = ENUM_PRINT;
         else if (!strcmp(cJSON_GetStringValue(j), "printf")) x = ENUM_PRINTF;
+        else if (!strcmp(cJSON_GetStringValue(j), "printMembers")) x = ENUM_PRINT_MEMBERS;
         else if (!strcmp(cJSON_GetStringValue(j), "private")) x = ENUM_PRIVATE;
         else if (!strcmp(cJSON_GetStringValue(j), "protected")) x = ENUM_PROTECTED;
         else if (!strcmp(cJSON_GetStringValue(j), "Protocol")) x = ENUM_PROTOCOL;
@@ -206,6 +233,7 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "range")) x = ENUM_RANGE;
         else if (!strcmp(cJSON_GetStringValue(j), "readonly")) x = ENUM_READONLY;
         else if (!strcmp(cJSON_GetStringValue(j), "ref")) x = ENUM_REF;
+        else if (!strcmp(cJSON_GetStringValue(j), "RegExp")) x = ENUM_REG_EXP;
         else if (!strcmp(cJSON_GetStringValue(j), "register")) x = ENUM_REGISTER;
         else if (!strcmp(cJSON_GetStringValue(j), "reinterpret_cast")) x = ENUM_REINTERPRET_CAST;
         else if (!strcmp(cJSON_GetStringValue(j), "repeat")) x = ENUM_REPEAT;
@@ -217,6 +245,8 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "rethrows")) x = ENUM_RETHROWS;
         else if (!strcmp(cJSON_GetStringValue(j), "return")) x = ENUM_RETURN;
         else if (!strcmp(cJSON_GetStringValue(j), "right")) x = ENUM_RIGHT;
+        else if (!strcmp(cJSON_GetStringValue(j), "runtimeType")) x = ENUM_RUNTIME_TYPE;
+        else if (!strcmp(cJSON_GetStringValue(j), "s")) x = ENUM_S;
         else if (!strcmp(cJSON_GetStringValue(j), "sbyte")) x = ENUM_SBYTE;
         else if (!strcmp(cJSON_GetStringValue(j), "sealed")) x = ENUM_SEALED;
         else if (!strcmp(cJSON_GetStringValue(j), "SEL")) x = ENUM_SEL;
@@ -224,14 +254,19 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "Self")) x = ENUM_SELF;
         else if (!strcmp(cJSON_GetStringValue(j), "self")) x = ENUM_ENUM_SELF;
         else if (!strcmp(cJSON_GetStringValue(j), "serialize")) x = ENUM_SERIALIZE;
+        else if (!strcmp(cJSON_GetStringValue(j), "SerializerProvider")) x = ENUM_SERIALIZER_PROVIDER;
         else if (!strcmp(cJSON_GetStringValue(j), "set")) x = ENUM_SET;
         else if (!strcmp(cJSON_GetStringValue(j), "short")) x = ENUM_SHORT;
         else if (!strcmp(cJSON_GetStringValue(j), "signed")) x = ENUM_SIGNED;
+        else if (!strcmp(cJSON_GetStringValue(j), "SimpleModule")) x = ENUM_SIMPLE_MODULE;
         else if (!strcmp(cJSON_GetStringValue(j), "sizeof")) x = ENUM_SIZEOF;
         else if (!strcmp(cJSON_GetStringValue(j), "stackalloc")) x = ENUM_STACKALLOC;
+        else if (!strcmp(cJSON_GetStringValue(j), "Standards")) x = ENUM_STANDARDS;
         else if (!strcmp(cJSON_GetStringValue(j), "static")) x = ENUM_STATIC;
         else if (!strcmp(cJSON_GetStringValue(j), "static_assert")) x = ENUM_STATIC_ASSERT;
         else if (!strcmp(cJSON_GetStringValue(j), "static_cast")) x = ENUM_STATIC_CAST;
+        else if (!strcmp(cJSON_GetStringValue(j), "StdDeserializer")) x = ENUM_STD_DESERIALIZER;
+        else if (!strcmp(cJSON_GetStringValue(j), "StdSerializer")) x = ENUM_STD_SERIALIZER;
         else if (!strcmp(cJSON_GetStringValue(j), "strictfp")) x = ENUM_STRICTFP;
         else if (!strcmp(cJSON_GetStringValue(j), "string")) x = ENUM_STRING;
         else if (!strcmp(cJSON_GetStringValue(j), "struct")) x = ENUM_STRUCT;
@@ -247,8 +282,11 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "thread_local")) x = ENUM_THREAD_LOCAL;
         else if (!strcmp(cJSON_GetStringValue(j), "throw")) x = ENUM_THROW;
         else if (!strcmp(cJSON_GetStringValue(j), "throws")) x = ENUM_THROWS;
+        else if (!strcmp(cJSON_GetStringValue(j), "TimeOnly")) x = ENUM_TIME_ONLY;
+        else if (!strcmp(cJSON_GetStringValue(j), "TimeOnlyConverter")) x = ENUM_TIME_ONLY_CONVERTER;
         else if (!strcmp(cJSON_GetStringValue(j), "to_json")) x = ENUM_TO_JSON;
         else if (!strcmp(cJSON_GetStringValue(j), "top_level")) x = ENUM_TOP_LEVEL;
+        else if (!strcmp(cJSON_GetStringValue(j), "toString")) x = ENUM_TO_STRING;
         else if (!strcmp(cJSON_GetStringValue(j), "transient")) x = ENUM_TRANSIENT;
         else if (!strcmp(cJSON_GetStringValue(j), "True")) x = ENUM_TRUE;
         else if (!strcmp(cJSON_GetStringValue(j), "true")) x = ENUM_ENUM_TRUE;
@@ -270,6 +308,9 @@ enum Enum cJSON_GetEnumValue(const cJSON * j) {
         else if (!strcmp(cJSON_GetStringValue(j), "unsigned")) x = ENUM_UNSIGNED;
         else if (!strcmp(cJSON_GetStringValue(j), "ushort")) x = ENUM_USHORT;
         else if (!strcmp(cJSON_GetStringValue(j), "using")) x = ENUM_USING;
+        else if (!strcmp(cJSON_GetStringValue(j), "Utf8JsonReader")) x = ENUM_UTF8_JSON_READER;
+        else if (!strcmp(cJSON_GetStringValue(j), "Utf8JsonWriter")) x = ENUM_UTF8_JSON_WRITER;
+        else if (!strcmp(cJSON_GetStringValue(j), "UUID")) x = ENUM_UUID;
         else if (!strcmp(cJSON_GetStringValue(j), "var")) x = ENUM_VAR;
         else if (!strcmp(cJSON_GetStringValue(j), "virtual")) x = ENUM_VIRTUAL;
         else if (!strcmp(cJSON_GetStringValue(j), "void")) x = ENUM_VOID;
@@ -335,6 +376,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_CHECKED: j = cJSON_CreateString("checked"); break;
         case ENUM_CLASS: j = cJSON_CreateString("class"); break;
         case ENUM_ENUM_CLASS: j = cJSON_CreateString("Class"); break;
+        case ENUM_CLONE: j = cJSON_CreateString("clone"); break;
         case ENUM_CO_AWAIT: j = cJSON_CreateString("co_await"); break;
         case ENUM_CO_RETURN: j = cJSON_CreateString("co_return"); break;
         case ENUM_CO_YIELD: j = cJSON_CreateString("co_yield"); break;
@@ -349,8 +391,14 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_CONVENIENCE: j = cJSON_CreateString("convenience"); break;
         case ENUM_CONVERT: j = cJSON_CreateString("convert"); break;
         case ENUM_CONVERTER: j = cJSON_CreateString("converter"); break;
+        case ENUM_CULTURE_INFO: j = cJSON_CreateString("CultureInfo"); break;
         case ENUM_DATE: j = cJSON_CreateString("date"); break;
         case ENUM_DATE_PARSE_HANDLING: j = cJSON_CreateString("date_parse_handling"); break;
+        case ENUM_DATE_FORMATTER: j = cJSON_CreateString("DateFormatter"); break;
+        case ENUM_DATE_ONLY: j = cJSON_CreateString("DateOnly"); break;
+        case ENUM_DATE_ONLY_CONVERTER: j = cJSON_CreateString("DateOnlyConverter"); break;
+        case ENUM_DATE_TIME: j = cJSON_CreateString("DateTime"); break;
+        case ENUM_DATE_TIME_STYLES: j = cJSON_CreateString("DateTimeStyles"); break;
         case ENUM_DEBUGGER: j = cJSON_CreateString("debugger"); break;
         case ENUM_DECIMAL: j = cJSON_CreateString("decimal"); break;
         case ENUM_DECLARE: j = cJSON_CreateString("declare"); break;
@@ -374,6 +422,8 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_ELSE: j = cJSON_CreateString("else"); break;
         case ENUM_ENCODE_QUICK_TYPE: j = cJSON_CreateString("encode_quick_type"); break;
         case ENUM_ENUM: j = cJSON_CreateString("enum"); break;
+        case ENUM_ENUM_VALUES: j = cJSON_CreateString("EnumValues"); break;
+        case ENUM_EQUALITY_CONTRACT: j = cJSON_CreateString("equalityContract"); break;
         case ENUM_EVENT: j = cJSON_CreateString("event"); break;
         case ENUM_EXCEPT: j = cJSON_CreateString("except"); break;
         case ENUM_EXCEPTION: j = cJSON_CreateString("exception"); break;
@@ -393,6 +443,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_FLOAT: j = cJSON_CreateString("float"); break;
         case ENUM_FOR: j = cJSON_CreateString("for"); break;
         case ENUM_FOREACH: j = cJSON_CreateString("foreach"); break;
+        case ENUM_FORMAT_EXCEPTION: j = cJSON_CreateString("FormatException"); break;
         case ENUM_FRIEND: j = cJSON_CreateString("friend"); break;
         case ENUM_FROM: j = cJSON_CreateString("from"); break;
         case ENUM_FROM_JSON: j = cJSON_CreateString("from_json"); break;
@@ -403,6 +454,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_GO: j = cJSON_CreateString("go"); break;
         case ENUM_GOTO: j = cJSON_CreateString("goto"); break;
         case ENUM_GUARD: j = cJSON_CreateString("guard"); break;
+        case ENUM_HASH_CODE: j = cJSON_CreateString("hashCode"); break;
         case ENUM_HAS_OWN_PROPERTY: j = cJSON_CreateString("hasOwnProperty"); break;
         case ENUM_ID: j = cJSON_CreateString("id"); break;
         case ENUM_IF: j = cJSON_CreateString("if"); break;
@@ -420,6 +472,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_INT: j = cJSON_CreateString("int"); break;
         case ENUM_INTERFACE: j = cJSON_CreateString("interface"); break;
         case ENUM_INTERNAL: j = cJSON_CreateString("internal"); break;
+        case ENUM_ISO_DATE_TIME_OFFSET_CONVERTER: j = cJSON_CreateString("IsoDateTimeOffsetConverter"); break;
         case ENUM_ITERABLE: j = cJSON_CreateString("iterable"); break;
         case ENUM_IS: j = cJSON_CreateString("is"); break;
         case ENUM_JDEC: j = cJSON_CreateString("jdec"); break;
@@ -430,6 +483,17 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_JSON_SERIALIZER: j = cJSON_CreateString("json_serializer"); break;
         case ENUM_JSON_TOKEN: j = cJSON_CreateString("json_token"); break;
         case ENUM_JSON_WRITER: j = cJSON_CreateString("json_writer"); break;
+        case ENUM_JSON_ANY: j = cJSON_CreateString("JSONAny"); break;
+        case ENUM_JSON_CODING_KEY: j = cJSON_CreateString("JSONCodingKey"); break;
+        case ENUM_JSON_DECODER: j = cJSON_CreateString("JSONDecoder"); break;
+        case ENUM_JSON_ENCODER: j = cJSON_CreateString("JSONEncoder"); break;
+        case ENUM_JSON_EXCEPTION: j = cJSON_CreateString("JsonException"); break;
+        case ENUM_JSON_GENERATOR: j = cJSON_CreateString("JsonGenerator"); break;
+        case ENUM_JSON_NODE: j = cJSON_CreateString("JsonNode"); break;
+        case ENUM_JSON_NULL: j = cJSON_CreateString("JSONNull"); break;
+        case ENUM_JSON_PARSER: j = cJSON_CreateString("JsonParser"); break;
+        case ENUM_JSON_READER: j = cJSON_CreateString("JsonReader"); break;
+        case ENUM_JSON_TOKEN_TYPE: j = cJSON_CreateString("JsonTokenType"); break;
         case ENUM_LAMBDA: j = cJSON_CreateString("lambda"); break;
         case ENUM_LAZY: j = cJSON_CreateString("lazy"); break;
         case ENUM_LEFT: j = cJSON_CreateString("left"); break;
@@ -454,14 +518,17 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_ENUM_NONE: j = cJSON_CreateString("None"); break;
         case ENUM_NONLOCAL: j = cJSON_CreateString("nonlocal"); break;
         case ENUM_NONMUTATING: j = cJSON_CreateString("nonmutating"); break;
+        case ENUM_NO_SUCH_METHOD: j = cJSON_CreateString("noSuchMethod"); break;
         case ENUM_NOT: j = cJSON_CreateString("not"); break;
         case ENUM_NOT_EQ: j = cJSON_CreateString("not_eq"); break;
+        case ENUM_NS_ERROR: j = cJSON_CreateString("NSError"); break;
         case ENUM_NS_STRING: j = cJSON_CreateString("NSString"); break;
         case ENUM_ENUM_NULL: j = cJSON_CreateString("NULL"); break;
         case ENUM_PURPLE_NULL: j = cJSON_CreateString("null"); break;
         case ENUM_NULLPTR: j = cJSON_CreateString("nullptr"); break;
         case ENUM_NUMBER: j = cJSON_CreateString("number"); break;
         case ENUM_OBJECT: j = cJSON_CreateString("object"); break;
+        case ENUM_OBJECT_MAPPER: j = cJSON_CreateString("ObjectMapper"); break;
         case ENUM_OF: j = cJSON_CreateString("of"); break;
         case ENUM_ONEWAY: j = cJSON_CreateString("oneway"); break;
         case ENUM_OPEN: j = cJSON_CreateString("open"); break;
@@ -480,6 +547,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_PREFIX: j = cJSON_CreateString("prefix"); break;
         case ENUM_PRINT: j = cJSON_CreateString("print"); break;
         case ENUM_PRINTF: j = cJSON_CreateString("printf"); break;
+        case ENUM_PRINT_MEMBERS: j = cJSON_CreateString("printMembers"); break;
         case ENUM_PRIVATE: j = cJSON_CreateString("private"); break;
         case ENUM_PROTECTED: j = cJSON_CreateString("protected"); break;
         case ENUM_PROTOCOL: j = cJSON_CreateString("Protocol"); break;
@@ -490,6 +558,7 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_RANGE: j = cJSON_CreateString("range"); break;
         case ENUM_READONLY: j = cJSON_CreateString("readonly"); break;
         case ENUM_REF: j = cJSON_CreateString("ref"); break;
+        case ENUM_REG_EXP: j = cJSON_CreateString("RegExp"); break;
         case ENUM_REGISTER: j = cJSON_CreateString("register"); break;
         case ENUM_REINTERPRET_CAST: j = cJSON_CreateString("reinterpret_cast"); break;
         case ENUM_REPEAT: j = cJSON_CreateString("repeat"); break;
@@ -501,6 +570,8 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_RETHROWS: j = cJSON_CreateString("rethrows"); break;
         case ENUM_RETURN: j = cJSON_CreateString("return"); break;
         case ENUM_RIGHT: j = cJSON_CreateString("right"); break;
+        case ENUM_RUNTIME_TYPE: j = cJSON_CreateString("runtimeType"); break;
+        case ENUM_S: j = cJSON_CreateString("s"); break;
         case ENUM_SBYTE: j = cJSON_CreateString("sbyte"); break;
         case ENUM_SEALED: j = cJSON_CreateString("sealed"); break;
         case ENUM_SEL: j = cJSON_CreateString("SEL"); break;
@@ -508,14 +579,19 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_SELF: j = cJSON_CreateString("Self"); break;
         case ENUM_ENUM_SELF: j = cJSON_CreateString("self"); break;
         case ENUM_SERIALIZE: j = cJSON_CreateString("serialize"); break;
+        case ENUM_SERIALIZER_PROVIDER: j = cJSON_CreateString("SerializerProvider"); break;
         case ENUM_SET: j = cJSON_CreateString("set"); break;
         case ENUM_SHORT: j = cJSON_CreateString("short"); break;
         case ENUM_SIGNED: j = cJSON_CreateString("signed"); break;
+        case ENUM_SIMPLE_MODULE: j = cJSON_CreateString("SimpleModule"); break;
         case ENUM_SIZEOF: j = cJSON_CreateString("sizeof"); break;
         case ENUM_STACKALLOC: j = cJSON_CreateString("stackalloc"); break;
+        case ENUM_STANDARDS: j = cJSON_CreateString("Standards"); break;
         case ENUM_STATIC: j = cJSON_CreateString("static"); break;
         case ENUM_STATIC_ASSERT: j = cJSON_CreateString("static_assert"); break;
         case ENUM_STATIC_CAST: j = cJSON_CreateString("static_cast"); break;
+        case ENUM_STD_DESERIALIZER: j = cJSON_CreateString("StdDeserializer"); break;
+        case ENUM_STD_SERIALIZER: j = cJSON_CreateString("StdSerializer"); break;
         case ENUM_STRICTFP: j = cJSON_CreateString("strictfp"); break;
         case ENUM_STRING: j = cJSON_CreateString("string"); break;
         case ENUM_STRUCT: j = cJSON_CreateString("struct"); break;
@@ -531,8 +607,11 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_THREAD_LOCAL: j = cJSON_CreateString("thread_local"); break;
         case ENUM_THROW: j = cJSON_CreateString("throw"); break;
         case ENUM_THROWS: j = cJSON_CreateString("throws"); break;
+        case ENUM_TIME_ONLY: j = cJSON_CreateString("TimeOnly"); break;
+        case ENUM_TIME_ONLY_CONVERTER: j = cJSON_CreateString("TimeOnlyConverter"); break;
         case ENUM_TO_JSON: j = cJSON_CreateString("to_json"); break;
         case ENUM_TOP_LEVEL: j = cJSON_CreateString("top_level"); break;
+        case ENUM_TO_STRING: j = cJSON_CreateString("toString"); break;
         case ENUM_TRANSIENT: j = cJSON_CreateString("transient"); break;
         case ENUM_TRUE: j = cJSON_CreateString("True"); break;
         case ENUM_ENUM_TRUE: j = cJSON_CreateString("true"); break;
@@ -554,6 +633,9 @@ cJSON * cJSON_CreateEnum(const enum Enum x) {
         case ENUM_UNSIGNED: j = cJSON_CreateString("unsigned"); break;
         case ENUM_USHORT: j = cJSON_CreateString("ushort"); break;
         case ENUM_USING: j = cJSON_CreateString("using"); break;
+        case ENUM_UTF8_JSON_READER: j = cJSON_CreateString("Utf8JsonReader"); break;
+        case ENUM_UTF8_JSON_WRITER: j = cJSON_CreateString("Utf8JsonWriter"); break;
+        case ENUM_UUID: j = cJSON_CreateString("UUID"); break;
         case ENUM_VAR: j = cJSON_CreateString("var"); break;
         case ENUM_VIRTUAL: j = cJSON_CreateString("virtual"); break;
         case ENUM_VOID: j = cJSON_CreateString("void"); break;
diff --git a/base/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.h b/head/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.h
index ca840fe..bbac634 100644
--- a/base/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.h
+++ b/head/schema-cjson/test/inputs/schema/keyword-enum.schema/default/TopLevel.h
@@ -82,6 +82,7 @@ enum Enum {
     ENUM_CHECKED,
     ENUM_CLASS,
     ENUM_ENUM_CLASS,
+    ENUM_CLONE,
     ENUM_CO_AWAIT,
     ENUM_CO_RETURN,
     ENUM_CO_YIELD,
@@ -96,8 +97,14 @@ enum Enum {
     ENUM_CONVENIENCE,
     ENUM_CONVERT,
     ENUM_CONVERTER,
+    ENUM_CULTURE_INFO,
     ENUM_DATE,
     ENUM_DATE_PARSE_HANDLING,
+    ENUM_DATE_FORMATTER,
+    ENUM_DATE_ONLY,
+    ENUM_DATE_ONLY_CONVERTER,
+    ENUM_DATE_TIME,
+    ENUM_DATE_TIME_STYLES,
     ENUM_DEBUGGER,
     ENUM_DECIMAL,
     ENUM_DECLARE,
@@ -121,6 +128,8 @@ enum Enum {
     ENUM_ELSE,
     ENUM_ENCODE_QUICK_TYPE,
     ENUM_ENUM,
+    ENUM_ENUM_VALUES,
+    ENUM_EQUALITY_CONTRACT,
     ENUM_EVENT,
     ENUM_EXCEPT,
     ENUM_EXCEPTION,
@@ -140,6 +149,7 @@ enum Enum {
     ENUM_FLOAT,
     ENUM_FOR,
     ENUM_FOREACH,
+    ENUM_FORMAT_EXCEPTION,
     ENUM_FRIEND,
     ENUM_FROM,
     ENUM_FROM_JSON,
@@ -150,6 +160,7 @@ enum Enum {
     ENUM_GO,
     ENUM_GOTO,
     ENUM_GUARD,
+    ENUM_HASH_CODE,
     ENUM_HAS_OWN_PROPERTY,
     ENUM_ID,
     ENUM_IF,
@@ -167,6 +178,7 @@ enum Enum {
     ENUM_INT,
     ENUM_INTERFACE,
     ENUM_INTERNAL,
+    ENUM_ISO_DATE_TIME_OFFSET_CONVERTER,
     ENUM_ITERABLE,
     ENUM_IS,
     ENUM_JDEC,
@@ -177,6 +189,17 @@ enum Enum {
     ENUM_JSON_SERIALIZER,
     ENUM_JSON_TOKEN,
     ENUM_JSON_WRITER,
+    ENUM_JSON_ANY,
+    ENUM_JSON_CODING_KEY,
+    ENUM_JSON_DECODER,
+    ENUM_JSON_ENCODER,
+    ENUM_JSON_EXCEPTION,
+    ENUM_JSON_GENERATOR,
+    ENUM_JSON_NODE,
+    ENUM_JSON_NULL,
+    ENUM_JSON_PARSER,
+    ENUM_JSON_READER,
+    ENUM_JSON_TOKEN_TYPE,
     ENUM_LAMBDA,
     ENUM_LAZY,
     ENUM_LEFT,
@@ -201,14 +224,17 @@ enum Enum {
     ENUM_ENUM_NONE,
     ENUM_NONLOCAL,
     ENUM_NONMUTATING,
+    ENUM_NO_SUCH_METHOD,
     ENUM_NOT,
     ENUM_NOT_EQ,
+    ENUM_NS_ERROR,
     ENUM_NS_STRING,
     ENUM_ENUM_NULL,
     ENUM_PURPLE_NULL,
     ENUM_NULLPTR,
     ENUM_NUMBER,
     ENUM_OBJECT,
+    ENUM_OBJECT_MAPPER,
     ENUM_OF,
     ENUM_ONEWAY,
     ENUM_OPEN,
@@ -227,6 +253,7 @@ enum Enum {
     ENUM_PREFIX,
     ENUM_PRINT,
     ENUM_PRINTF,
+    ENUM_PRINT_MEMBERS,
     ENUM_PRIVATE,
     ENUM_PROTECTED,
     ENUM_PROTOCOL,
@@ -237,6 +264,7 @@ enum Enum {
     ENUM_RANGE,
     ENUM_READONLY,
     ENUM_REF,
+    ENUM_REG_EXP,
     ENUM_REGISTER,
     ENUM_REINTERPRET_CAST,
     ENUM_REPEAT,
@@ -248,6 +276,8 @@ enum Enum {
     ENUM_RETHROWS,
     ENUM_RETURN,
     ENUM_RIGHT,
+    ENUM_RUNTIME_TYPE,
+    ENUM_S,
     ENUM_SBYTE,
     ENUM_SEALED,
     ENUM_SEL,
@@ -255,14 +285,19 @@ enum Enum {
     ENUM_SELF,
     ENUM_ENUM_SELF,
     ENUM_SERIALIZE,
+    ENUM_SERIALIZER_PROVIDER,
     ENUM_SET,
     ENUM_SHORT,
     ENUM_SIGNED,
+    ENUM_SIMPLE_MODULE,
     ENUM_SIZEOF,
     ENUM_STACKALLOC,
+    ENUM_STANDARDS,
     ENUM_STATIC,
     ENUM_STATIC_ASSERT,
     ENUM_STATIC_CAST,
+    ENUM_STD_DESERIALIZER,
+    ENUM_STD_SERIALIZER,
     ENUM_STRICTFP,
     ENUM_STRING,
     ENUM_STRUCT,
@@ -278,8 +313,11 @@ enum Enum {
     ENUM_THREAD_LOCAL,
     ENUM_THROW,
     ENUM_THROWS,
+    ENUM_TIME_ONLY,
+    ENUM_TIME_ONLY_CONVERTER,
     ENUM_TO_JSON,
     ENUM_TOP_LEVEL,
+    ENUM_TO_STRING,
     ENUM_TRANSIENT,
     ENUM_TRUE,
     ENUM_ENUM_TRUE,
@@ -301,6 +339,9 @@ enum Enum {
     ENUM_UNSIGNED,
     ENUM_USHORT,
     ENUM_USING,
+    ENUM_UTF8_JSON_READER,
+    ENUM_UTF8_JSON_WRITER,
+    ENUM_UUID,
     ENUM_VAR,
     ENUM_VIRTUAL,
     ENUM_VOID,
diff --git a/base/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.c b/head/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.c
index bbb5f72..0c77c63 100644
--- a/base/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.c
+++ b/head/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.c
@@ -753,6 +753,50 @@ void cJSON_DeleteUnionChecked(struct UnionChecked * x) {
     }
 }
 
+struct UnionClone * cJSON_GetUnionCloneValue(const cJSON * j) {
+    struct UnionClone * x = cJSON_malloc(sizeof(struct UnionClone));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionClone));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.clone = cJSON_GetCloneValue(j);
+            if (NULL == x->value.clone) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionClone * cJSON_ParseUnionClone(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionClone * x = j ? cJSON_GetUnionCloneValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionClone(const struct UnionClone * x) { cJSON * j = cJSON_CreateUnionClone(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionClone(const struct UnionClone * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateClone(x->value.clone);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionClone(struct UnionClone * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteClone(x->value.clone);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionComplex * cJSON_GetUnionComplexValue(const cJSON * j) {
     struct UnionComplex * x = cJSON_malloc(sizeof(struct UnionComplex));
     if (NULL != x) {
@@ -1017,6 +1061,50 @@ void cJSON_DeleteUnionConverter(struct UnionConverter * x) {
     }
 }
 
+struct UnionCultureInfo * cJSON_GetUnionCultureInfoValue(const cJSON * j) {
+    struct UnionCultureInfo * x = cJSON_malloc(sizeof(struct UnionCultureInfo));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionCultureInfo));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.culture_info = cJSON_GetCultureInfoValue(j);
+            if (NULL == x->value.culture_info) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionCultureInfo * cJSON_ParseUnionCultureInfo(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCultureInfo * x = j ? cJSON_GetUnionCultureInfoValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCultureInfo(const struct UnionCultureInfo * x) { cJSON * j = cJSON_CreateUnionCultureInfo(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionCultureInfo(const struct UnionCultureInfo * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateCultureInfo(x->value.culture_info);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionCultureInfo(struct UnionCultureInfo * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteCultureInfo(x->value.culture_info);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionDate * cJSON_GetUnionDateValue(const cJSON * j) {
     struct UnionDate * x = cJSON_malloc(sizeof(struct UnionDate));
     if (NULL != x) {
@@ -1061,6 +1149,138 @@ void cJSON_DeleteUnionDate(struct UnionDate * x) {
     }
 }
 
+struct UnionDateFormatter * cJSON_GetUnionDateFormatterValue(const cJSON * j) {
+    struct UnionDateFormatter * x = cJSON_malloc(sizeof(struct UnionDateFormatter));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionDateFormatter));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.date_formatter = cJSON_GetDateFormatterValue(j);
+            if (NULL == x->value.date_formatter) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionDateFormatter * cJSON_ParseUnionDateFormatter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDateFormatter * x = j ? cJSON_GetUnionDateFormatterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDateFormatter(const struct UnionDateFormatter * x) { cJSON * j = cJSON_CreateUnionDateFormatter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionDateFormatter(const struct UnionDateFormatter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateDateFormatter(x->value.date_formatter);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionDateFormatter(struct UnionDateFormatter * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteDateFormatter(x->value.date_formatter);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionDateOnly * cJSON_GetUnionDateOnlyValue(const cJSON * j) {
+    struct UnionDateOnly * x = cJSON_malloc(sizeof(struct UnionDateOnly));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionDateOnly));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.date_only = cJSON_GetDateOnlyValue(j);
+            if (NULL == x->value.date_only) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionDateOnly * cJSON_ParseUnionDateOnly(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDateOnly * x = j ? cJSON_GetUnionDateOnlyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDateOnly(const struct UnionDateOnly * x) { cJSON * j = cJSON_CreateUnionDateOnly(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionDateOnly(const struct UnionDateOnly * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateDateOnly(x->value.date_only);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionDateOnly(struct UnionDateOnly * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteDateOnly(x->value.date_only);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionDateOnlyConverter * cJSON_GetUnionDateOnlyConverterValue(const cJSON * j) {
+    struct UnionDateOnlyConverter * x = cJSON_malloc(sizeof(struct UnionDateOnlyConverter));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionDateOnlyConverter));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.date_only_converter = cJSON_GetDateOnlyConverterValue(j);
+            if (NULL == x->value.date_only_converter) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionDateOnlyConverter * cJSON_ParseUnionDateOnlyConverter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDateOnlyConverter * x = j ? cJSON_GetUnionDateOnlyConverterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDateOnlyConverter(const struct UnionDateOnlyConverter * x) { cJSON * j = cJSON_CreateUnionDateOnlyConverter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionDateOnlyConverter(const struct UnionDateOnlyConverter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateDateOnlyConverter(x->value.date_only_converter);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionDateOnlyConverter(struct UnionDateOnlyConverter * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteDateOnlyConverter(x->value.date_only_converter);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionDateParseHandling * cJSON_GetUnionDateParseHandlingValue(const cJSON * j) {
     struct UnionDateParseHandling * x = cJSON_malloc(sizeof(struct UnionDateParseHandling));
     if (NULL != x) {
@@ -1105,6 +1325,94 @@ void cJSON_DeleteUnionDateParseHandling(struct UnionDateParseHandling * x) {
     }
 }
 
+struct UnionDateTime * cJSON_GetUnionDateTimeValue(const cJSON * j) {
+    struct UnionDateTime * x = cJSON_malloc(sizeof(struct UnionDateTime));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionDateTime));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.date_time = cJSON_GetDateTimeValue(j);
+            if (NULL == x->value.date_time) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionDateTime * cJSON_ParseUnionDateTime(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDateTime * x = j ? cJSON_GetUnionDateTimeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDateTime(const struct UnionDateTime * x) { cJSON * j = cJSON_CreateUnionDateTime(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionDateTime(const struct UnionDateTime * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateDateTime(x->value.date_time);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionDateTime(struct UnionDateTime * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteDateTime(x->value.date_time);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionDateTimeStyles * cJSON_GetUnionDateTimeStylesValue(const cJSON * j) {
+    struct UnionDateTimeStyles * x = cJSON_malloc(sizeof(struct UnionDateTimeStyles));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionDateTimeStyles));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.date_time_styles = cJSON_GetDateTimeStylesValue(j);
+            if (NULL == x->value.date_time_styles) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionDateTimeStyles * cJSON_ParseUnionDateTimeStyles(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDateTimeStyles * x = j ? cJSON_GetUnionDateTimeStylesValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDateTimeStyles(const struct UnionDateTimeStyles * x) { cJSON * j = cJSON_CreateUnionDateTimeStyles(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionDateTimeStyles(const struct UnionDateTimeStyles * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateDateTimeStyles(x->value.date_time_styles);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionDateTimeStyles(struct UnionDateTimeStyles * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteDateTimeStyles(x->value.date_time_styles);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionDebugger * cJSON_GetUnionDebuggerValue(const cJSON * j) {
     struct UnionDebugger * x = cJSON_malloc(sizeof(struct UnionDebugger));
     if (NULL != x) {
@@ -1809,97 +2117,185 @@ void cJSON_DeleteUnionEncodeQuickType(struct UnionEncodeQuickType * x) {
     }
 }
 
-struct UnionEvent * cJSON_GetUnionEventValue(const cJSON * j) {
-    struct UnionEvent * x = cJSON_malloc(sizeof(struct UnionEvent));
+struct UnionEnumValues * cJSON_GetUnionEnumValuesValue(const cJSON * j) {
+    struct UnionEnumValues * x = cJSON_malloc(sizeof(struct UnionEnumValues));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionEvent));
+        memset(x, 0, sizeof(struct UnionEnumValues));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.event = cJSON_GetEventValue(j);
-            if (NULL == x->value.event) x->type = 0;
+            x->value.enum_values = cJSON_GetEnumValuesValue(j);
+            if (NULL == x->value.enum_values) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionEvent * cJSON_ParseUnionEvent(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEvent * x = j ? cJSON_GetUnionEventValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionEvent(const struct UnionEvent * x) { cJSON * j = cJSON_CreateUnionEvent(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionEnumValues * cJSON_ParseUnionEnumValues(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEnumValues * x = j ? cJSON_GetUnionEnumValuesValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionEnumValues(const struct UnionEnumValues * x) { cJSON * j = cJSON_CreateUnionEnumValues(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionEvent(const struct UnionEvent * x) {
+cJSON * cJSON_CreateUnionEnumValues(const struct UnionEnumValues * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateEvent(x->value.event);
+            j = cJSON_CreateEnumValues(x->value.enum_values);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionEvent(struct UnionEvent * x) {
+void cJSON_DeleteUnionEnumValues(struct UnionEnumValues * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteEvent(x->value.event);
+            cJSON_DeleteEnumValues(x->value.enum_values);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionExcept * cJSON_GetUnionExceptValue(const cJSON * j) {
-    struct UnionExcept * x = cJSON_malloc(sizeof(struct UnionExcept));
+struct UnionEqualityContract * cJSON_GetUnionEqualityContractValue(const cJSON * j) {
+    struct UnionEqualityContract * x = cJSON_malloc(sizeof(struct UnionEqualityContract));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionExcept));
+        memset(x, 0, sizeof(struct UnionEqualityContract));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.except = cJSON_GetExceptValue(j);
-            if (NULL == x->value.except) x->type = 0;
+            x->value.equality_contract = cJSON_GetEqualityContractValue(j);
+            if (NULL == x->value.equality_contract) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionExcept * cJSON_ParseUnionExcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExcept * x = j ? cJSON_GetUnionExceptValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionExcept(const struct UnionExcept * x) { cJSON * j = cJSON_CreateUnionExcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionEqualityContract * cJSON_ParseUnionEqualityContract(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEqualityContract * x = j ? cJSON_GetUnionEqualityContractValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionEqualityContract(const struct UnionEqualityContract * x) { cJSON * j = cJSON_CreateUnionEqualityContract(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionExcept(const struct UnionExcept * x) {
+cJSON * cJSON_CreateUnionEqualityContract(const struct UnionEqualityContract * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateExcept(x->value.except);
+            j = cJSON_CreateEqualityContract(x->value.equality_contract);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionExcept(struct UnionExcept * x) {
+void cJSON_DeleteUnionEqualityContract(struct UnionEqualityContract * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteExcept(x->value.except);
+            cJSON_DeleteEqualityContract(x->value.equality_contract);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionException * cJSON_GetUnionExceptionValue(const cJSON * j) {
-    struct UnionException * x = cJSON_malloc(sizeof(struct UnionException));
-    if (NULL != x) {
+struct UnionEvent * cJSON_GetUnionEventValue(const cJSON * j) {
+    struct UnionEvent * x = cJSON_malloc(sizeof(struct UnionEvent));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionEvent));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.event = cJSON_GetEventValue(j);
+            if (NULL == x->value.event) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionEvent * cJSON_ParseUnionEvent(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEvent * x = j ? cJSON_GetUnionEventValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionEvent(const struct UnionEvent * x) { cJSON * j = cJSON_CreateUnionEvent(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionEvent(const struct UnionEvent * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateEvent(x->value.event);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionEvent(struct UnionEvent * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteEvent(x->value.event);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionExcept * cJSON_GetUnionExceptValue(const cJSON * j) {
+    struct UnionExcept * x = cJSON_malloc(sizeof(struct UnionExcept));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionExcept));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.except = cJSON_GetExceptValue(j);
+            if (NULL == x->value.except) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionExcept * cJSON_ParseUnionExcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExcept * x = j ? cJSON_GetUnionExceptValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionExcept(const struct UnionExcept * x) { cJSON * j = cJSON_CreateUnionExcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionExcept(const struct UnionExcept * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateExcept(x->value.except);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionExcept(struct UnionExcept * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteExcept(x->value.except);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionException * cJSON_GetUnionExceptionValue(const cJSON * j) {
+    struct UnionException * x = cJSON_malloc(sizeof(struct UnionException));
+    if (NULL != x) {
         memset(x, 0, sizeof(struct UnionException));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
@@ -2337,6 +2733,50 @@ void cJSON_DeleteUnionForeach(struct UnionForeach * x) {
     }
 }
 
+struct UnionFormatException * cJSON_GetUnionFormatExceptionValue(const cJSON * j) {
+    struct UnionFormatException * x = cJSON_malloc(sizeof(struct UnionFormatException));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionFormatException));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.format_exception = cJSON_GetFormatExceptionValue(j);
+            if (NULL == x->value.format_exception) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionFormatException * cJSON_ParseUnionFormatException(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFormatException * x = j ? cJSON_GetUnionFormatExceptionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFormatException(const struct UnionFormatException * x) { cJSON * j = cJSON_CreateUnionFormatException(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionFormatException(const struct UnionFormatException * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateFormatException(x->value.format_exception);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionFormatException(struct UnionFormatException * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteFormatException(x->value.format_exception);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionFrom * cJSON_GetUnionFromValue(const cJSON * j) {
     struct UnionFrom * x = cJSON_malloc(sizeof(struct UnionFrom));
     if (NULL != x) {
@@ -2733,6 +3173,50 @@ void cJSON_DeleteUnionHasOwnProperty(struct UnionHasOwnProperty * x) {
     }
 }
 
+struct UnionHashCode * cJSON_GetUnionHashCodeValue(const cJSON * j) {
+    struct UnionHashCode * x = cJSON_malloc(sizeof(struct UnionHashCode));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionHashCode));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.hash_code = cJSON_GetHashCodeValue(j);
+            if (NULL == x->value.hash_code) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionHashCode * cJSON_ParseUnionHashCode(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionHashCode * x = j ? cJSON_GetUnionHashCodeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionHashCode(const struct UnionHashCode * x) { cJSON * j = cJSON_CreateUnionHashCode(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionHashCode(const struct UnionHashCode * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateHashCode(x->value.hash_code);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionHashCode(struct UnionHashCode * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteHashCode(x->value.hash_code);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionId * cJSON_GetUnionIdValue(const cJSON * j) {
     struct UnionId * x = cJSON_malloc(sizeof(struct UnionId));
     if (NULL != x) {
@@ -3349,6 +3833,50 @@ void cJSON_DeleteUnionIs(struct UnionIs * x) {
     }
 }
 
+struct UnionIsoDateTimeOffsetConverter * cJSON_GetUnionIsoDateTimeOffsetConverterValue(const cJSON * j) {
+    struct UnionIsoDateTimeOffsetConverter * x = cJSON_malloc(sizeof(struct UnionIsoDateTimeOffsetConverter));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionIsoDateTimeOffsetConverter));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.iso_date_time_offset_converter = cJSON_GetIsoDateTimeOffsetConverterValue(j);
+            if (NULL == x->value.iso_date_time_offset_converter) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionIsoDateTimeOffsetConverter * cJSON_ParseUnionIsoDateTimeOffsetConverter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionIsoDateTimeOffsetConverter * x = j ? cJSON_GetUnionIsoDateTimeOffsetConverterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionIsoDateTimeOffsetConverter(const struct UnionIsoDateTimeOffsetConverter * x) { cJSON * j = cJSON_CreateUnionIsoDateTimeOffsetConverter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionIsoDateTimeOffsetConverter(const struct UnionIsoDateTimeOffsetConverter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateIsoDateTimeOffsetConverter(x->value.iso_date_time_offset_converter);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionIsoDateTimeOffsetConverter(struct UnionIsoDateTimeOffsetConverter * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteIsoDateTimeOffsetConverter(x->value.iso_date_time_offset_converter);
+        }
+        cJSON_free(x);
+    }
+}
+
 struct UnionIterable * cJSON_GetUnionIterableValue(const cJSON * j) {
     struct UnionIterable * x = cJSON_malloc(sizeof(struct UnionIterable));
     if (NULL != x) {
@@ -3569,8609 +4097,11600 @@ void cJSON_DeleteUnionJson(struct UnionJson * x) {
     }
 }
 
-struct UnionJsonConverter * cJSON_GetUnionJsonConverterValue(const cJSON * j) {
-    struct UnionJsonConverter * x = cJSON_malloc(sizeof(struct UnionJsonConverter));
+struct UnionJsonAny * cJSON_GetUnionJsonAnyValue(const cJSON * j) {
+    struct UnionJsonAny * x = cJSON_malloc(sizeof(struct UnionJsonAny));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionJsonConverter));
+        memset(x, 0, sizeof(struct UnionJsonAny));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.json_converter = cJSON_GetJsonConverterValue(j);
-            if (NULL == x->value.json_converter) x->type = 0;
+            x->value.json_any = cJSON_GetJsonAnyValue(j);
+            if (NULL == x->value.json_any) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionJsonConverter * cJSON_ParseUnionJsonConverter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonConverter * x = j ? cJSON_GetUnionJsonConverterValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionJsonConverter(const struct UnionJsonConverter * x) { cJSON * j = cJSON_CreateUnionJsonConverter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonAny * cJSON_ParseUnionJsonAny(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonAny * x = j ? cJSON_GetUnionJsonAnyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonAny(const struct UnionJsonAny * x) { cJSON * j = cJSON_CreateUnionJsonAny(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionJsonConverter(const struct UnionJsonConverter * x) {
+cJSON * cJSON_CreateUnionJsonAny(const struct UnionJsonAny * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateJsonConverter(x->value.json_converter);
+            j = cJSON_CreateJsonAny(x->value.json_any);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionJsonConverter(struct UnionJsonConverter * x) {
+void cJSON_DeleteUnionJsonAny(struct UnionJsonAny * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteJsonConverter(x->value.json_converter);
+            cJSON_DeleteJsonAny(x->value.json_any);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionJsonSerializer * cJSON_GetUnionJsonSerializerValue(const cJSON * j) {
-    struct UnionJsonSerializer * x = cJSON_malloc(sizeof(struct UnionJsonSerializer));
+struct UnionJsonCodingKey * cJSON_GetUnionJsonCodingKeyValue(const cJSON * j) {
+    struct UnionJsonCodingKey * x = cJSON_malloc(sizeof(struct UnionJsonCodingKey));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionJsonSerializer));
+        memset(x, 0, sizeof(struct UnionJsonCodingKey));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.json_serializer = cJSON_GetJsonSerializerValue(j);
-            if (NULL == x->value.json_serializer) x->type = 0;
+            x->value.json_coding_key = cJSON_GetJsonCodingKeyValue(j);
+            if (NULL == x->value.json_coding_key) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionJsonSerializer * cJSON_ParseUnionJsonSerializer(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonSerializer * x = j ? cJSON_GetUnionJsonSerializerValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionJsonSerializer(const struct UnionJsonSerializer * x) { cJSON * j = cJSON_CreateUnionJsonSerializer(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonCodingKey * cJSON_ParseUnionJsonCodingKey(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonCodingKey * x = j ? cJSON_GetUnionJsonCodingKeyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonCodingKey(const struct UnionJsonCodingKey * x) { cJSON * j = cJSON_CreateUnionJsonCodingKey(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionJsonSerializer(const struct UnionJsonSerializer * x) {
+cJSON * cJSON_CreateUnionJsonCodingKey(const struct UnionJsonCodingKey * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateJsonSerializer(x->value.json_serializer);
+            j = cJSON_CreateJsonCodingKey(x->value.json_coding_key);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionJsonSerializer(struct UnionJsonSerializer * x) {
+void cJSON_DeleteUnionJsonCodingKey(struct UnionJsonCodingKey * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteJsonSerializer(x->value.json_serializer);
+            cJSON_DeleteJsonCodingKey(x->value.json_coding_key);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionJsonToken * cJSON_GetUnionJsonTokenValue(const cJSON * j) {
-    struct UnionJsonToken * x = cJSON_malloc(sizeof(struct UnionJsonToken));
+struct UnionJsonConverter * cJSON_GetUnionJsonConverterValue(const cJSON * j) {
+    struct UnionJsonConverter * x = cJSON_malloc(sizeof(struct UnionJsonConverter));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionJsonToken));
+        memset(x, 0, sizeof(struct UnionJsonConverter));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.json_token = cJSON_GetJsonTokenValue(j);
-            if (NULL == x->value.json_token) x->type = 0;
+            x->value.json_converter = cJSON_GetJsonConverterValue(j);
+            if (NULL == x->value.json_converter) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionJsonToken * cJSON_ParseUnionJsonToken(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonToken * x = j ? cJSON_GetUnionJsonTokenValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionJsonToken(const struct UnionJsonToken * x) { cJSON * j = cJSON_CreateUnionJsonToken(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonConverter * cJSON_ParseUnionJsonConverter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonConverter * x = j ? cJSON_GetUnionJsonConverterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonConverter(const struct UnionJsonConverter * x) { cJSON * j = cJSON_CreateUnionJsonConverter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionJsonToken(const struct UnionJsonToken * x) {
+cJSON * cJSON_CreateUnionJsonConverter(const struct UnionJsonConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateJsonToken(x->value.json_token);
+            j = cJSON_CreateJsonConverter(x->value.json_converter);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionJsonToken(struct UnionJsonToken * x) {
+void cJSON_DeleteUnionJsonConverter(struct UnionJsonConverter * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteJsonToken(x->value.json_token);
+            cJSON_DeleteJsonConverter(x->value.json_converter);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionJsonWriter * cJSON_GetUnionJsonWriterValue(const cJSON * j) {
-    struct UnionJsonWriter * x = cJSON_malloc(sizeof(struct UnionJsonWriter));
+struct UnionJsonDecoder * cJSON_GetUnionJsonDecoderValue(const cJSON * j) {
+    struct UnionJsonDecoder * x = cJSON_malloc(sizeof(struct UnionJsonDecoder));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionJsonWriter));
+        memset(x, 0, sizeof(struct UnionJsonDecoder));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.json_writer = cJSON_GetJsonWriterValue(j);
-            if (NULL == x->value.json_writer) x->type = 0;
+            x->value.json_decoder = cJSON_GetJsonDecoderValue(j);
+            if (NULL == x->value.json_decoder) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionJsonWriter * cJSON_ParseUnionJsonWriter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonWriter * x = j ? cJSON_GetUnionJsonWriterValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionJsonWriter(const struct UnionJsonWriter * x) { cJSON * j = cJSON_CreateUnionJsonWriter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonDecoder * cJSON_ParseUnionJsonDecoder(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonDecoder * x = j ? cJSON_GetUnionJsonDecoderValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonDecoder(const struct UnionJsonDecoder * x) { cJSON * j = cJSON_CreateUnionJsonDecoder(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionJsonWriter(const struct UnionJsonWriter * x) {
+cJSON * cJSON_CreateUnionJsonDecoder(const struct UnionJsonDecoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateJsonWriter(x->value.json_writer);
+            j = cJSON_CreateJsonDecoder(x->value.json_decoder);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionJsonWriter(struct UnionJsonWriter * x) {
+void cJSON_DeleteUnionJsonDecoder(struct UnionJsonDecoder * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteJsonWriter(x->value.json_writer);
+            cJSON_DeleteJsonDecoder(x->value.json_decoder);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLambda * cJSON_GetUnionLambdaValue(const cJSON * j) {
-    struct UnionLambda * x = cJSON_malloc(sizeof(struct UnionLambda));
+struct UnionJsonEncoder * cJSON_GetUnionJsonEncoderValue(const cJSON * j) {
+    struct UnionJsonEncoder * x = cJSON_malloc(sizeof(struct UnionJsonEncoder));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLambda));
+        memset(x, 0, sizeof(struct UnionJsonEncoder));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.lambda = cJSON_GetLambdaValue(j);
-            if (NULL == x->value.lambda) x->type = 0;
+            x->value.json_encoder = cJSON_GetJsonEncoderValue(j);
+            if (NULL == x->value.json_encoder) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLambda * cJSON_ParseUnionLambda(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLambda * x = j ? cJSON_GetUnionLambdaValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLambda(const struct UnionLambda * x) { cJSON * j = cJSON_CreateUnionLambda(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonEncoder * cJSON_ParseUnionJsonEncoder(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonEncoder * x = j ? cJSON_GetUnionJsonEncoderValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonEncoder(const struct UnionJsonEncoder * x) { cJSON * j = cJSON_CreateUnionJsonEncoder(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLambda(const struct UnionLambda * x) {
+cJSON * cJSON_CreateUnionJsonEncoder(const struct UnionJsonEncoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLambda(x->value.lambda);
+            j = cJSON_CreateJsonEncoder(x->value.json_encoder);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLambda(struct UnionLambda * x) {
+void cJSON_DeleteUnionJsonEncoder(struct UnionJsonEncoder * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLambda(x->value.lambda);
+            cJSON_DeleteJsonEncoder(x->value.json_encoder);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLazy * cJSON_GetUnionLazyValue(const cJSON * j) {
-    struct UnionLazy * x = cJSON_malloc(sizeof(struct UnionLazy));
+struct UnionJsonException * cJSON_GetUnionJsonExceptionValue(const cJSON * j) {
+    struct UnionJsonException * x = cJSON_malloc(sizeof(struct UnionJsonException));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLazy));
+        memset(x, 0, sizeof(struct UnionJsonException));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.lazy = cJSON_GetLazyValue(j);
-            if (NULL == x->value.lazy) x->type = 0;
+            x->value.json_exception = cJSON_GetJsonExceptionValue(j);
+            if (NULL == x->value.json_exception) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLazy * cJSON_ParseUnionLazy(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLazy * x = j ? cJSON_GetUnionLazyValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLazy(const struct UnionLazy * x) { cJSON * j = cJSON_CreateUnionLazy(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonException * cJSON_ParseUnionJsonException(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonException * x = j ? cJSON_GetUnionJsonExceptionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonException(const struct UnionJsonException * x) { cJSON * j = cJSON_CreateUnionJsonException(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLazy(const struct UnionLazy * x) {
+cJSON * cJSON_CreateUnionJsonException(const struct UnionJsonException * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLazy(x->value.lazy);
+            j = cJSON_CreateJsonException(x->value.json_exception);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLazy(struct UnionLazy * x) {
+void cJSON_DeleteUnionJsonException(struct UnionJsonException * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLazy(x->value.lazy);
+            cJSON_DeleteJsonException(x->value.json_exception);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLeft * cJSON_GetUnionLeftValue(const cJSON * j) {
-    struct UnionLeft * x = cJSON_malloc(sizeof(struct UnionLeft));
+struct UnionJsonGenerator * cJSON_GetUnionJsonGeneratorValue(const cJSON * j) {
+    struct UnionJsonGenerator * x = cJSON_malloc(sizeof(struct UnionJsonGenerator));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLeft));
+        memset(x, 0, sizeof(struct UnionJsonGenerator));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.left = cJSON_GetLeftValue(j);
-            if (NULL == x->value.left) x->type = 0;
+            x->value.json_generator = cJSON_GetJsonGeneratorValue(j);
+            if (NULL == x->value.json_generator) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLeft * cJSON_ParseUnionLeft(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLeft * x = j ? cJSON_GetUnionLeftValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLeft(const struct UnionLeft * x) { cJSON * j = cJSON_CreateUnionLeft(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonGenerator * cJSON_ParseUnionJsonGenerator(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonGenerator * x = j ? cJSON_GetUnionJsonGeneratorValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonGenerator(const struct UnionJsonGenerator * x) { cJSON * j = cJSON_CreateUnionJsonGenerator(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLeft(const struct UnionLeft * x) {
+cJSON * cJSON_CreateUnionJsonGenerator(const struct UnionJsonGenerator * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLeft(x->value.left);
+            j = cJSON_CreateJsonGenerator(x->value.json_generator);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLeft(struct UnionLeft * x) {
+void cJSON_DeleteUnionJsonGenerator(struct UnionJsonGenerator * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLeft(x->value.left);
+            cJSON_DeleteJsonGenerator(x->value.json_generator);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLet * cJSON_GetUnionLetValue(const cJSON * j) {
-    struct UnionLet * x = cJSON_malloc(sizeof(struct UnionLet));
+struct UnionJsonNode * cJSON_GetUnionJsonNodeValue(const cJSON * j) {
+    struct UnionJsonNode * x = cJSON_malloc(sizeof(struct UnionJsonNode));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLet));
+        memset(x, 0, sizeof(struct UnionJsonNode));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.let = cJSON_GetLetValue(j);
-            if (NULL == x->value.let) x->type = 0;
+            x->value.json_node = cJSON_GetJsonNodeValue(j);
+            if (NULL == x->value.json_node) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLet * cJSON_ParseUnionLet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLet * x = j ? cJSON_GetUnionLetValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLet(const struct UnionLet * x) { cJSON * j = cJSON_CreateUnionLet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonNode * cJSON_ParseUnionJsonNode(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonNode * x = j ? cJSON_GetUnionJsonNodeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonNode(const struct UnionJsonNode * x) { cJSON * j = cJSON_CreateUnionJsonNode(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLet(const struct UnionLet * x) {
+cJSON * cJSON_CreateUnionJsonNode(const struct UnionJsonNode * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLet(x->value.let);
+            j = cJSON_CreateJsonNode(x->value.json_node);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLet(struct UnionLet * x) {
+void cJSON_DeleteUnionJsonNode(struct UnionJsonNode * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLet(x->value.let);
+            cJSON_DeleteJsonNode(x->value.json_node);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionList * cJSON_GetUnionListValue(const cJSON * j) {
-    struct UnionList * x = cJSON_malloc(sizeof(struct UnionList));
+struct UnionJsonNull * cJSON_GetUnionJsonNullValue(const cJSON * j) {
+    struct UnionJsonNull * x = cJSON_malloc(sizeof(struct UnionJsonNull));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionList));
+        memset(x, 0, sizeof(struct UnionJsonNull));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.list = cJSON_GetListValue(j);
-            if (NULL == x->value.list) x->type = 0;
+            x->value.json_null = cJSON_GetJsonNullValue(j);
+            if (NULL == x->value.json_null) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionList * cJSON_ParseUnionList(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionList * x = j ? cJSON_GetUnionListValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionList(const struct UnionList * x) { cJSON * j = cJSON_CreateUnionList(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonNull * cJSON_ParseUnionJsonNull(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonNull * x = j ? cJSON_GetUnionJsonNullValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonNull(const struct UnionJsonNull * x) { cJSON * j = cJSON_CreateUnionJsonNull(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionList(const struct UnionList * x) {
+cJSON * cJSON_CreateUnionJsonNull(const struct UnionJsonNull * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateList(x->value.list);
+            j = cJSON_CreateJsonNull(x->value.json_null);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionList(struct UnionList * x) {
+void cJSON_DeleteUnionJsonNull(struct UnionJsonNull * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteList(x->value.list);
+            cJSON_DeleteJsonNull(x->value.json_null);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLock * cJSON_GetUnionLockValue(const cJSON * j) {
-    struct UnionLock * x = cJSON_malloc(sizeof(struct UnionLock));
+struct UnionJsonParser * cJSON_GetUnionJsonParserValue(const cJSON * j) {
+    struct UnionJsonParser * x = cJSON_malloc(sizeof(struct UnionJsonParser));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLock));
+        memset(x, 0, sizeof(struct UnionJsonParser));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.lock = cJSON_GetLockValue(j);
-            if (NULL == x->value.lock) x->type = 0;
+            x->value.json_parser = cJSON_GetJsonParserValue(j);
+            if (NULL == x->value.json_parser) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLock * cJSON_ParseUnionLock(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLock * x = j ? cJSON_GetUnionLockValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLock(const struct UnionLock * x) { cJSON * j = cJSON_CreateUnionLock(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonParser * cJSON_ParseUnionJsonParser(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonParser * x = j ? cJSON_GetUnionJsonParserValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonParser(const struct UnionJsonParser * x) { cJSON * j = cJSON_CreateUnionJsonParser(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLock(const struct UnionLock * x) {
+cJSON * cJSON_CreateUnionJsonParser(const struct UnionJsonParser * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLock(x->value.lock);
+            j = cJSON_CreateJsonParser(x->value.json_parser);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLock(struct UnionLock * x) {
+void cJSON_DeleteUnionJsonParser(struct UnionJsonParser * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLock(x->value.lock);
+            cJSON_DeleteJsonParser(x->value.json_parser);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionMap * cJSON_GetUnionMapValue(const cJSON * j) {
-    struct UnionMap * x = cJSON_malloc(sizeof(struct UnionMap));
+struct UnionJsonReader * cJSON_GetUnionJsonReaderValue(const cJSON * j) {
+    struct UnionJsonReader * x = cJSON_malloc(sizeof(struct UnionJsonReader));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionMap));
+        memset(x, 0, sizeof(struct UnionJsonReader));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.map = cJSON_GetMapValue(j);
-            if (NULL == x->value.map) x->type = 0;
+            x->value.json_reader = cJSON_GetJsonReaderValue(j);
+            if (NULL == x->value.json_reader) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionMap * cJSON_ParseUnionMap(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMap * x = j ? cJSON_GetUnionMapValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionMap(const struct UnionMap * x) { cJSON * j = cJSON_CreateUnionMap(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonReader * cJSON_ParseUnionJsonReader(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonReader * x = j ? cJSON_GetUnionJsonReaderValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonReader(const struct UnionJsonReader * x) { cJSON * j = cJSON_CreateUnionJsonReader(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionMap(const struct UnionMap * x) {
+cJSON * cJSON_CreateUnionJsonReader(const struct UnionJsonReader * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateMap(x->value.map);
+            j = cJSON_CreateJsonReader(x->value.json_reader);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionMap(struct UnionMap * x) {
+void cJSON_DeleteUnionJsonReader(struct UnionJsonReader * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteMap(x->value.map);
+            cJSON_DeleteJsonReader(x->value.json_reader);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionMetadataPropertyHandling * cJSON_GetUnionMetadataPropertyHandlingValue(const cJSON * j) {
-    struct UnionMetadataPropertyHandling * x = cJSON_malloc(sizeof(struct UnionMetadataPropertyHandling));
+struct UnionJsonSerializer * cJSON_GetUnionJsonSerializerValue(const cJSON * j) {
+    struct UnionJsonSerializer * x = cJSON_malloc(sizeof(struct UnionJsonSerializer));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionMetadataPropertyHandling));
+        memset(x, 0, sizeof(struct UnionJsonSerializer));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.metadata_property_handling = cJSON_GetMetadataPropertyHandlingValue(j);
-            if (NULL == x->value.metadata_property_handling) x->type = 0;
+            x->value.json_serializer = cJSON_GetJsonSerializerValue(j);
+            if (NULL == x->value.json_serializer) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionMetadataPropertyHandling * cJSON_ParseUnionMetadataPropertyHandling(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMetadataPropertyHandling * x = j ? cJSON_GetUnionMetadataPropertyHandlingValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionMetadataPropertyHandling(const struct UnionMetadataPropertyHandling * x) { cJSON * j = cJSON_CreateUnionMetadataPropertyHandling(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonSerializer * cJSON_ParseUnionJsonSerializer(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonSerializer * x = j ? cJSON_GetUnionJsonSerializerValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonSerializer(const struct UnionJsonSerializer * x) { cJSON * j = cJSON_CreateUnionJsonSerializer(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionMetadataPropertyHandling(const struct UnionMetadataPropertyHandling * x) {
+cJSON * cJSON_CreateUnionJsonSerializer(const struct UnionJsonSerializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateMetadataPropertyHandling(x->value.metadata_property_handling);
+            j = cJSON_CreateJsonSerializer(x->value.json_serializer);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionMetadataPropertyHandling(struct UnionMetadataPropertyHandling * x) {
+void cJSON_DeleteUnionJsonSerializer(struct UnionJsonSerializer * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteMetadataPropertyHandling(x->value.metadata_property_handling);
+            cJSON_DeleteJsonSerializer(x->value.json_serializer);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionMutating * cJSON_GetUnionMutatingValue(const cJSON * j) {
-    struct UnionMutating * x = cJSON_malloc(sizeof(struct UnionMutating));
+struct UnionJsonToken * cJSON_GetUnionJsonTokenValue(const cJSON * j) {
+    struct UnionJsonToken * x = cJSON_malloc(sizeof(struct UnionJsonToken));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionMutating));
+        memset(x, 0, sizeof(struct UnionJsonToken));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.mutating = cJSON_GetMutatingValue(j);
-            if (NULL == x->value.mutating) x->type = 0;
+            x->value.json_token = cJSON_GetJsonTokenValue(j);
+            if (NULL == x->value.json_token) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionMutating * cJSON_ParseUnionMutating(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMutating * x = j ? cJSON_GetUnionMutatingValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionMutating(const struct UnionMutating * x) { cJSON * j = cJSON_CreateUnionMutating(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonToken * cJSON_ParseUnionJsonToken(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonToken * x = j ? cJSON_GetUnionJsonTokenValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonToken(const struct UnionJsonToken * x) { cJSON * j = cJSON_CreateUnionJsonToken(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionMutating(const struct UnionMutating * x) {
+cJSON * cJSON_CreateUnionJsonToken(const struct UnionJsonToken * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateMutating(x->value.mutating);
+            j = cJSON_CreateJsonToken(x->value.json_token);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionMutating(struct UnionMutating * x) {
+void cJSON_DeleteUnionJsonToken(struct UnionJsonToken * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteMutating(x->value.mutating);
+            cJSON_DeleteJsonToken(x->value.json_token);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNative * cJSON_GetUnionNativeValue(const cJSON * j) {
-    struct UnionNative * x = cJSON_malloc(sizeof(struct UnionNative));
+struct UnionJsonTokenType * cJSON_GetUnionJsonTokenTypeValue(const cJSON * j) {
+    struct UnionJsonTokenType * x = cJSON_malloc(sizeof(struct UnionJsonTokenType));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNative));
+        memset(x, 0, sizeof(struct UnionJsonTokenType));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.native = cJSON_GetNativeValue(j);
-            if (NULL == x->value.native) x->type = 0;
+            x->value.json_token_type = cJSON_GetJsonTokenTypeValue(j);
+            if (NULL == x->value.json_token_type) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNative * cJSON_ParseUnionNative(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNative * x = j ? cJSON_GetUnionNativeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNative(const struct UnionNative * x) { cJSON * j = cJSON_CreateUnionNative(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonTokenType * cJSON_ParseUnionJsonTokenType(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonTokenType * x = j ? cJSON_GetUnionJsonTokenTypeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonTokenType(const struct UnionJsonTokenType * x) { cJSON * j = cJSON_CreateUnionJsonTokenType(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNative(const struct UnionNative * x) {
+cJSON * cJSON_CreateUnionJsonTokenType(const struct UnionJsonTokenType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNative(x->value.native);
+            j = cJSON_CreateJsonTokenType(x->value.json_token_type);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNative(struct UnionNative * x) {
+void cJSON_DeleteUnionJsonTokenType(struct UnionJsonTokenType * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNative(x->value.native);
+            cJSON_DeleteJsonTokenType(x->value.json_token_type);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNewtonsoft * cJSON_GetUnionNewtonsoftValue(const cJSON * j) {
-    struct UnionNewtonsoft * x = cJSON_malloc(sizeof(struct UnionNewtonsoft));
+struct UnionJsonWriter * cJSON_GetUnionJsonWriterValue(const cJSON * j) {
+    struct UnionJsonWriter * x = cJSON_malloc(sizeof(struct UnionJsonWriter));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNewtonsoft));
+        memset(x, 0, sizeof(struct UnionJsonWriter));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.newtonsoft = cJSON_GetNewtonsoftValue(j);
-            if (NULL == x->value.newtonsoft) x->type = 0;
+            x->value.json_writer = cJSON_GetJsonWriterValue(j);
+            if (NULL == x->value.json_writer) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNewtonsoft * cJSON_ParseUnionNewtonsoft(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNewtonsoft * x = j ? cJSON_GetUnionNewtonsoftValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNewtonsoft(const struct UnionNewtonsoft * x) { cJSON * j = cJSON_CreateUnionNewtonsoft(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionJsonWriter * cJSON_ParseUnionJsonWriter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionJsonWriter * x = j ? cJSON_GetUnionJsonWriterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionJsonWriter(const struct UnionJsonWriter * x) { cJSON * j = cJSON_CreateUnionJsonWriter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNewtonsoft(const struct UnionNewtonsoft * x) {
+cJSON * cJSON_CreateUnionJsonWriter(const struct UnionJsonWriter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNewtonsoft(x->value.newtonsoft);
+            j = cJSON_CreateJsonWriter(x->value.json_writer);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNewtonsoft(struct UnionNewtonsoft * x) {
+void cJSON_DeleteUnionJsonWriter(struct UnionJsonWriter * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNewtonsoft(x->value.newtonsoft);
+            cJSON_DeleteJsonWriter(x->value.json_writer);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNil * cJSON_GetUnionNilValue(const cJSON * j) {
-    struct UnionNil * x = cJSON_malloc(sizeof(struct UnionNil));
+struct UnionLambda * cJSON_GetUnionLambdaValue(const cJSON * j) {
+    struct UnionLambda * x = cJSON_malloc(sizeof(struct UnionLambda));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNil));
+        memset(x, 0, sizeof(struct UnionLambda));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.nil = cJSON_GetNilValue(j);
-            if (NULL == x->value.nil) x->type = 0;
+            x->value.lambda = cJSON_GetLambdaValue(j);
+            if (NULL == x->value.lambda) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNil * cJSON_ParseUnionNil(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNil * x = j ? cJSON_GetUnionNilValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNil(const struct UnionNil * x) { cJSON * j = cJSON_CreateUnionNil(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLambda * cJSON_ParseUnionLambda(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLambda * x = j ? cJSON_GetUnionLambdaValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLambda(const struct UnionLambda * x) { cJSON * j = cJSON_CreateUnionLambda(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNil(const struct UnionNil * x) {
+cJSON * cJSON_CreateUnionLambda(const struct UnionLambda * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNil(x->value.nil);
+            j = cJSON_CreateLambda(x->value.lambda);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNil(struct UnionNil * x) {
+void cJSON_DeleteUnionLambda(struct UnionLambda * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNil(x->value.nil);
+            cJSON_DeleteLambda(x->value.lambda);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNo * cJSON_GetUnionNoValue(const cJSON * j) {
-    struct UnionNo * x = cJSON_malloc(sizeof(struct UnionNo));
+struct UnionLazy * cJSON_GetUnionLazyValue(const cJSON * j) {
+    struct UnionLazy * x = cJSON_malloc(sizeof(struct UnionLazy));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNo));
+        memset(x, 0, sizeof(struct UnionLazy));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.no = cJSON_GetNoValue(j);
-            if (NULL == x->value.no) x->type = 0;
+            x->value.lazy = cJSON_GetLazyValue(j);
+            if (NULL == x->value.lazy) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNo * cJSON_ParseUnionNo(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNo * x = j ? cJSON_GetUnionNoValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNo(const struct UnionNo * x) { cJSON * j = cJSON_CreateUnionNo(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLazy * cJSON_ParseUnionLazy(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLazy * x = j ? cJSON_GetUnionLazyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLazy(const struct UnionLazy * x) { cJSON * j = cJSON_CreateUnionLazy(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNo(const struct UnionNo * x) {
+cJSON * cJSON_CreateUnionLazy(const struct UnionLazy * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNo(x->value.no);
+            j = cJSON_CreateLazy(x->value.lazy);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNo(struct UnionNo * x) {
+void cJSON_DeleteUnionLazy(struct UnionLazy * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNo(x->value.no);
+            cJSON_DeleteLazy(x->value.lazy);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNonatomic * cJSON_GetUnionNonatomicValue(const cJSON * j) {
-    struct UnionNonatomic * x = cJSON_malloc(sizeof(struct UnionNonatomic));
+struct UnionLeft * cJSON_GetUnionLeftValue(const cJSON * j) {
+    struct UnionLeft * x = cJSON_malloc(sizeof(struct UnionLeft));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNonatomic));
+        memset(x, 0, sizeof(struct UnionLeft));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.nonatomic = cJSON_GetNonatomicValue(j);
-            if (NULL == x->value.nonatomic) x->type = 0;
+            x->value.left = cJSON_GetLeftValue(j);
+            if (NULL == x->value.left) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNonatomic * cJSON_ParseUnionNonatomic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonatomic * x = j ? cJSON_GetUnionNonatomicValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNonatomic(const struct UnionNonatomic * x) { cJSON * j = cJSON_CreateUnionNonatomic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLeft * cJSON_ParseUnionLeft(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLeft * x = j ? cJSON_GetUnionLeftValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLeft(const struct UnionLeft * x) { cJSON * j = cJSON_CreateUnionLeft(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNonatomic(const struct UnionNonatomic * x) {
+cJSON * cJSON_CreateUnionLeft(const struct UnionLeft * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNonatomic(x->value.nonatomic);
+            j = cJSON_CreateLeft(x->value.left);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNonatomic(struct UnionNonatomic * x) {
+void cJSON_DeleteUnionLeft(struct UnionLeft * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNonatomic(x->value.nonatomic);
+            cJSON_DeleteLeft(x->value.left);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNone * cJSON_GetUnionNoneValue(const cJSON * j) {
-    struct UnionNone * x = cJSON_malloc(sizeof(struct UnionNone));
+struct UnionLet * cJSON_GetUnionLetValue(const cJSON * j) {
+    struct UnionLet * x = cJSON_malloc(sizeof(struct UnionLet));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNone));
+        memset(x, 0, sizeof(struct UnionLet));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.none = cJSON_GetNoneValue(j);
-            if (NULL == x->value.none) x->type = 0;
+            x->value.let = cJSON_GetLetValue(j);
+            if (NULL == x->value.let) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNone * cJSON_ParseUnionNone(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNone * x = j ? cJSON_GetUnionNoneValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNone(const struct UnionNone * x) { cJSON * j = cJSON_CreateUnionNone(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLet * cJSON_ParseUnionLet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLet * x = j ? cJSON_GetUnionLetValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLet(const struct UnionLet * x) { cJSON * j = cJSON_CreateUnionLet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNone(const struct UnionNone * x) {
+cJSON * cJSON_CreateUnionLet(const struct UnionLet * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNone(x->value.none);
+            j = cJSON_CreateLet(x->value.let);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNone(struct UnionNone * x) {
+void cJSON_DeleteUnionLet(struct UnionLet * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNone(x->value.none);
+            cJSON_DeleteLet(x->value.let);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNonlocal * cJSON_GetUnionNonlocalValue(const cJSON * j) {
-    struct UnionNonlocal * x = cJSON_malloc(sizeof(struct UnionNonlocal));
+struct UnionList * cJSON_GetUnionListValue(const cJSON * j) {
+    struct UnionList * x = cJSON_malloc(sizeof(struct UnionList));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNonlocal));
+        memset(x, 0, sizeof(struct UnionList));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.nonlocal = cJSON_GetNonlocalValue(j);
-            if (NULL == x->value.nonlocal) x->type = 0;
+            x->value.list = cJSON_GetListValue(j);
+            if (NULL == x->value.list) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNonlocal * cJSON_ParseUnionNonlocal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonlocal * x = j ? cJSON_GetUnionNonlocalValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNonlocal(const struct UnionNonlocal * x) { cJSON * j = cJSON_CreateUnionNonlocal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionList * cJSON_ParseUnionList(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionList * x = j ? cJSON_GetUnionListValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionList(const struct UnionList * x) { cJSON * j = cJSON_CreateUnionList(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNonlocal(const struct UnionNonlocal * x) {
+cJSON * cJSON_CreateUnionList(const struct UnionList * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNonlocal(x->value.nonlocal);
+            j = cJSON_CreateList(x->value.list);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNonlocal(struct UnionNonlocal * x) {
+void cJSON_DeleteUnionList(struct UnionList * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNonlocal(x->value.nonlocal);
+            cJSON_DeleteList(x->value.list);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNonmutating * cJSON_GetUnionNonmutatingValue(const cJSON * j) {
-    struct UnionNonmutating * x = cJSON_malloc(sizeof(struct UnionNonmutating));
-    if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNonmutating));
+struct UnionLock * cJSON_GetUnionLockValue(const cJSON * j) {
+    struct UnionLock * x = cJSON_malloc(sizeof(struct UnionLock));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionLock));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.nonmutating = cJSON_GetNonmutatingValue(j);
-            if (NULL == x->value.nonmutating) x->type = 0;
+            x->value.lock = cJSON_GetLockValue(j);
+            if (NULL == x->value.lock) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNonmutating * cJSON_ParseUnionNonmutating(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonmutating * x = j ? cJSON_GetUnionNonmutatingValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNonmutating(const struct UnionNonmutating * x) { cJSON * j = cJSON_CreateUnionNonmutating(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLock * cJSON_ParseUnionLock(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLock * x = j ? cJSON_GetUnionLockValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLock(const struct UnionLock * x) { cJSON * j = cJSON_CreateUnionLock(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNonmutating(const struct UnionNonmutating * x) {
+cJSON * cJSON_CreateUnionLock(const struct UnionLock * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNonmutating(x->value.nonmutating);
+            j = cJSON_CreateLock(x->value.lock);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNonmutating(struct UnionNonmutating * x) {
+void cJSON_DeleteUnionLock(struct UnionLock * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNonmutating(x->value.nonmutating);
+            cJSON_DeleteLock(x->value.lock);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNsString * cJSON_GetUnionNsStringValue(const cJSON * j) {
-    struct UnionNsString * x = cJSON_malloc(sizeof(struct UnionNsString));
+struct UnionMap * cJSON_GetUnionMapValue(const cJSON * j) {
+    struct UnionMap * x = cJSON_malloc(sizeof(struct UnionMap));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNsString));
+        memset(x, 0, sizeof(struct UnionMap));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.ns_string = cJSON_GetNsStringValue(j);
-            if (NULL == x->value.ns_string) x->type = 0;
+            x->value.map = cJSON_GetMapValue(j);
+            if (NULL == x->value.map) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNsString * cJSON_ParseUnionNsString(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNsString * x = j ? cJSON_GetUnionNsStringValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNsString(const struct UnionNsString * x) { cJSON * j = cJSON_CreateUnionNsString(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionMap * cJSON_ParseUnionMap(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMap * x = j ? cJSON_GetUnionMapValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionMap(const struct UnionMap * x) { cJSON * j = cJSON_CreateUnionMap(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNsString(const struct UnionNsString * x) {
+cJSON * cJSON_CreateUnionMap(const struct UnionMap * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNsString(x->value.ns_string);
+            j = cJSON_CreateMap(x->value.map);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNsString(struct UnionNsString * x) {
+void cJSON_DeleteUnionMap(struct UnionMap * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNsString(x->value.ns_string);
+            cJSON_DeleteMap(x->value.map);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNull * cJSON_GetUnionNullValue(const cJSON * j) {
-    struct UnionNull * x = cJSON_malloc(sizeof(struct UnionNull));
+struct UnionMetadataPropertyHandling * cJSON_GetUnionMetadataPropertyHandlingValue(const cJSON * j) {
+    struct UnionMetadataPropertyHandling * x = cJSON_malloc(sizeof(struct UnionMetadataPropertyHandling));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNull));
+        memset(x, 0, sizeof(struct UnionMetadataPropertyHandling));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.null_class = cJSON_GetNullClassValue(j);
-            if (NULL == x->value.null_class) x->type = 0;
+            x->value.metadata_property_handling = cJSON_GetMetadataPropertyHandlingValue(j);
+            if (NULL == x->value.metadata_property_handling) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNull * cJSON_ParseUnionNull(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNull * x = j ? cJSON_GetUnionNullValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNull(const struct UnionNull * x) { cJSON * j = cJSON_CreateUnionNull(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionMetadataPropertyHandling * cJSON_ParseUnionMetadataPropertyHandling(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMetadataPropertyHandling * x = j ? cJSON_GetUnionMetadataPropertyHandlingValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionMetadataPropertyHandling(const struct UnionMetadataPropertyHandling * x) { cJSON * j = cJSON_CreateUnionMetadataPropertyHandling(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNull(const struct UnionNull * x) {
+cJSON * cJSON_CreateUnionMetadataPropertyHandling(const struct UnionMetadataPropertyHandling * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNullClass(x->value.null_class);
+            j = cJSON_CreateMetadataPropertyHandling(x->value.metadata_property_handling);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNull(struct UnionNull * x) {
+void cJSON_DeleteUnionMetadataPropertyHandling(struct UnionMetadataPropertyHandling * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNullClass(x->value.null_class);
+            cJSON_DeleteMetadataPropertyHandling(x->value.metadata_property_handling);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNumber * cJSON_GetUnionNumberValue(const cJSON * j) {
-    struct UnionNumber * x = cJSON_malloc(sizeof(struct UnionNumber));
+struct UnionMutating * cJSON_GetUnionMutatingValue(const cJSON * j) {
+    struct UnionMutating * x = cJSON_malloc(sizeof(struct UnionMutating));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNumber));
+        memset(x, 0, sizeof(struct UnionMutating));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.number_class = cJSON_GetNumberClassValue(j);
-            if (NULL == x->value.number_class) x->type = 0;
+            x->value.mutating = cJSON_GetMutatingValue(j);
+            if (NULL == x->value.mutating) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNumber * cJSON_ParseUnionNumber(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNumber * x = j ? cJSON_GetUnionNumberValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNumber(const struct UnionNumber * x) { cJSON * j = cJSON_CreateUnionNumber(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionMutating * cJSON_ParseUnionMutating(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMutating * x = j ? cJSON_GetUnionMutatingValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionMutating(const struct UnionMutating * x) { cJSON * j = cJSON_CreateUnionMutating(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNumber(const struct UnionNumber * x) {
+cJSON * cJSON_CreateUnionMutating(const struct UnionMutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNumberClass(x->value.number_class);
+            j = cJSON_CreateMutating(x->value.mutating);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNumber(struct UnionNumber * x) {
+void cJSON_DeleteUnionMutating(struct UnionMutating * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNumberClass(x->value.number_class);
+            cJSON_DeleteMutating(x->value.mutating);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionObject * cJSON_GetUnionObjectValue(const cJSON * j) {
-    struct UnionObject * x = cJSON_malloc(sizeof(struct UnionObject));
+struct UnionNative * cJSON_GetUnionNativeValue(const cJSON * j) {
+    struct UnionNative * x = cJSON_malloc(sizeof(struct UnionNative));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionObject));
+        memset(x, 0, sizeof(struct UnionNative));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.object_class = cJSON_GetObjectClassValue(j);
-            if (NULL == x->value.object_class) x->type = 0;
+            x->value.native = cJSON_GetNativeValue(j);
+            if (NULL == x->value.native) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionObject * cJSON_ParseUnionObject(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionObject * x = j ? cJSON_GetUnionObjectValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionObject(const struct UnionObject * x) { cJSON * j = cJSON_CreateUnionObject(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNative * cJSON_ParseUnionNative(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNative * x = j ? cJSON_GetUnionNativeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNative(const struct UnionNative * x) { cJSON * j = cJSON_CreateUnionNative(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionObject(const struct UnionObject * x) {
+cJSON * cJSON_CreateUnionNative(const struct UnionNative * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateObjectClass(x->value.object_class);
+            j = cJSON_CreateNative(x->value.native);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionObject(struct UnionObject * x) {
+void cJSON_DeleteUnionNative(struct UnionNative * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteObjectClass(x->value.object_class);
+            cJSON_DeleteNative(x->value.native);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOf * cJSON_GetUnionOfValue(const cJSON * j) {
-    struct UnionOf * x = cJSON_malloc(sizeof(struct UnionOf));
+struct UnionNewtonsoft * cJSON_GetUnionNewtonsoftValue(const cJSON * j) {
+    struct UnionNewtonsoft * x = cJSON_malloc(sizeof(struct UnionNewtonsoft));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOf));
+        memset(x, 0, sizeof(struct UnionNewtonsoft));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.of = cJSON_GetOfValue(j);
-            if (NULL == x->value.of) x->type = 0;
+            x->value.newtonsoft = cJSON_GetNewtonsoftValue(j);
+            if (NULL == x->value.newtonsoft) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOf * cJSON_ParseUnionOf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOf * x = j ? cJSON_GetUnionOfValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOf(const struct UnionOf * x) { cJSON * j = cJSON_CreateUnionOf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNewtonsoft * cJSON_ParseUnionNewtonsoft(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNewtonsoft * x = j ? cJSON_GetUnionNewtonsoftValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNewtonsoft(const struct UnionNewtonsoft * x) { cJSON * j = cJSON_CreateUnionNewtonsoft(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOf(const struct UnionOf * x) {
+cJSON * cJSON_CreateUnionNewtonsoft(const struct UnionNewtonsoft * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOf(x->value.of);
+            j = cJSON_CreateNewtonsoft(x->value.newtonsoft);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOf(struct UnionOf * x) {
+void cJSON_DeleteUnionNewtonsoft(struct UnionNewtonsoft * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOf(x->value.of);
+            cJSON_DeleteNewtonsoft(x->value.newtonsoft);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOneway * cJSON_GetUnionOnewayValue(const cJSON * j) {
-    struct UnionOneway * x = cJSON_malloc(sizeof(struct UnionOneway));
+struct UnionNil * cJSON_GetUnionNilValue(const cJSON * j) {
+    struct UnionNil * x = cJSON_malloc(sizeof(struct UnionNil));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOneway));
+        memset(x, 0, sizeof(struct UnionNil));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.oneway = cJSON_GetOnewayValue(j);
-            if (NULL == x->value.oneway) x->type = 0;
+            x->value.nil = cJSON_GetNilValue(j);
+            if (NULL == x->value.nil) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOneway * cJSON_ParseUnionOneway(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOneway * x = j ? cJSON_GetUnionOnewayValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOneway(const struct UnionOneway * x) { cJSON * j = cJSON_CreateUnionOneway(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNil * cJSON_ParseUnionNil(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNil * x = j ? cJSON_GetUnionNilValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNil(const struct UnionNil * x) { cJSON * j = cJSON_CreateUnionNil(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOneway(const struct UnionOneway * x) {
+cJSON * cJSON_CreateUnionNil(const struct UnionNil * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOneway(x->value.oneway);
+            j = cJSON_CreateNil(x->value.nil);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOneway(struct UnionOneway * x) {
+void cJSON_DeleteUnionNil(struct UnionNil * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOneway(x->value.oneway);
+            cJSON_DeleteNil(x->value.nil);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOpen * cJSON_GetUnionOpenValue(const cJSON * j) {
-    struct UnionOpen * x = cJSON_malloc(sizeof(struct UnionOpen));
+struct UnionNo * cJSON_GetUnionNoValue(const cJSON * j) {
+    struct UnionNo * x = cJSON_malloc(sizeof(struct UnionNo));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOpen));
+        memset(x, 0, sizeof(struct UnionNo));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.open = cJSON_GetOpenValue(j);
-            if (NULL == x->value.open) x->type = 0;
+            x->value.no = cJSON_GetNoValue(j);
+            if (NULL == x->value.no) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOpen * cJSON_ParseUnionOpen(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOpen * x = j ? cJSON_GetUnionOpenValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOpen(const struct UnionOpen * x) { cJSON * j = cJSON_CreateUnionOpen(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNo * cJSON_ParseUnionNo(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNo * x = j ? cJSON_GetUnionNoValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNo(const struct UnionNo * x) { cJSON * j = cJSON_CreateUnionNo(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOpen(const struct UnionOpen * x) {
+cJSON * cJSON_CreateUnionNo(const struct UnionNo * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOpen(x->value.open);
+            j = cJSON_CreateNo(x->value.no);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOpen(struct UnionOpen * x) {
+void cJSON_DeleteUnionNo(struct UnionNo * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOpen(x->value.open);
+            cJSON_DeleteNo(x->value.no);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOptional * cJSON_GetUnionOptionalValue(const cJSON * j) {
-    struct UnionOptional * x = cJSON_malloc(sizeof(struct UnionOptional));
+struct UnionNoSuchMethod * cJSON_GetUnionNoSuchMethodValue(const cJSON * j) {
+    struct UnionNoSuchMethod * x = cJSON_malloc(sizeof(struct UnionNoSuchMethod));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOptional));
+        memset(x, 0, sizeof(struct UnionNoSuchMethod));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.optional = cJSON_GetOptionalValue(j);
-            if (NULL == x->value.optional) x->type = 0;
+            x->value.no_such_method = cJSON_GetNoSuchMethodValue(j);
+            if (NULL == x->value.no_such_method) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOptional * cJSON_ParseUnionOptional(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOptional * x = j ? cJSON_GetUnionOptionalValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOptional(const struct UnionOptional * x) { cJSON * j = cJSON_CreateUnionOptional(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNoSuchMethod * cJSON_ParseUnionNoSuchMethod(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNoSuchMethod * x = j ? cJSON_GetUnionNoSuchMethodValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNoSuchMethod(const struct UnionNoSuchMethod * x) { cJSON * j = cJSON_CreateUnionNoSuchMethod(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOptional(const struct UnionOptional * x) {
+cJSON * cJSON_CreateUnionNoSuchMethod(const struct UnionNoSuchMethod * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOptional(x->value.optional);
+            j = cJSON_CreateNoSuchMethod(x->value.no_such_method);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOptional(struct UnionOptional * x) {
+void cJSON_DeleteUnionNoSuchMethod(struct UnionNoSuchMethod * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOptional(x->value.optional);
+            cJSON_DeleteNoSuchMethod(x->value.no_such_method);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOut * cJSON_GetUnionOutValue(const cJSON * j) {
-    struct UnionOut * x = cJSON_malloc(sizeof(struct UnionOut));
+struct UnionNonatomic * cJSON_GetUnionNonatomicValue(const cJSON * j) {
+    struct UnionNonatomic * x = cJSON_malloc(sizeof(struct UnionNonatomic));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOut));
+        memset(x, 0, sizeof(struct UnionNonatomic));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.out = cJSON_GetOutValue(j);
-            if (NULL == x->value.out) x->type = 0;
+            x->value.nonatomic = cJSON_GetNonatomicValue(j);
+            if (NULL == x->value.nonatomic) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOut * cJSON_ParseUnionOut(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOut * x = j ? cJSON_GetUnionOutValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOut(const struct UnionOut * x) { cJSON * j = cJSON_CreateUnionOut(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNonatomic * cJSON_ParseUnionNonatomic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonatomic * x = j ? cJSON_GetUnionNonatomicValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNonatomic(const struct UnionNonatomic * x) { cJSON * j = cJSON_CreateUnionNonatomic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOut(const struct UnionOut * x) {
+cJSON * cJSON_CreateUnionNonatomic(const struct UnionNonatomic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOut(x->value.out);
+            j = cJSON_CreateNonatomic(x->value.nonatomic);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOut(struct UnionOut * x) {
+void cJSON_DeleteUnionNonatomic(struct UnionNonatomic * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOut(x->value.out);
+            cJSON_DeleteNonatomic(x->value.nonatomic);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPackage * cJSON_GetUnionPackageValue(const cJSON * j) {
-    struct UnionPackage * x = cJSON_malloc(sizeof(struct UnionPackage));
+struct UnionNone * cJSON_GetUnionNoneValue(const cJSON * j) {
+    struct UnionNone * x = cJSON_malloc(sizeof(struct UnionNone));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPackage));
+        memset(x, 0, sizeof(struct UnionNone));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.package = cJSON_GetPackageValue(j);
-            if (NULL == x->value.package) x->type = 0;
+            x->value.none = cJSON_GetNoneValue(j);
+            if (NULL == x->value.none) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPackage * cJSON_ParseUnionPackage(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPackage * x = j ? cJSON_GetUnionPackageValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPackage(const struct UnionPackage * x) { cJSON * j = cJSON_CreateUnionPackage(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNone * cJSON_ParseUnionNone(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNone * x = j ? cJSON_GetUnionNoneValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNone(const struct UnionNone * x) { cJSON * j = cJSON_CreateUnionNone(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPackage(const struct UnionPackage * x) {
+cJSON * cJSON_CreateUnionNone(const struct UnionNone * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePackage(x->value.package);
+            j = cJSON_CreateNone(x->value.none);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPackage(struct UnionPackage * x) {
+void cJSON_DeleteUnionNone(struct UnionNone * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePackage(x->value.package);
+            cJSON_DeleteNone(x->value.none);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionParams * cJSON_GetUnionParamsValue(const cJSON * j) {
-    struct UnionParams * x = cJSON_malloc(sizeof(struct UnionParams));
+struct UnionNonlocal * cJSON_GetUnionNonlocalValue(const cJSON * j) {
+    struct UnionNonlocal * x = cJSON_malloc(sizeof(struct UnionNonlocal));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionParams));
+        memset(x, 0, sizeof(struct UnionNonlocal));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.params = cJSON_GetParamsValue(j);
-            if (NULL == x->value.params) x->type = 0;
+            x->value.nonlocal = cJSON_GetNonlocalValue(j);
+            if (NULL == x->value.nonlocal) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionParams * cJSON_ParseUnionParams(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionParams * x = j ? cJSON_GetUnionParamsValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionParams(const struct UnionParams * x) { cJSON * j = cJSON_CreateUnionParams(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNonlocal * cJSON_ParseUnionNonlocal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonlocal * x = j ? cJSON_GetUnionNonlocalValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNonlocal(const struct UnionNonlocal * x) { cJSON * j = cJSON_CreateUnionNonlocal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionParams(const struct UnionParams * x) {
+cJSON * cJSON_CreateUnionNonlocal(const struct UnionNonlocal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateParams(x->value.params);
+            j = cJSON_CreateNonlocal(x->value.nonlocal);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionParams(struct UnionParams * x) {
+void cJSON_DeleteUnionNonlocal(struct UnionNonlocal * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteParams(x->value.params);
+            cJSON_DeleteNonlocal(x->value.nonlocal);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPass * cJSON_GetUnionPassValue(const cJSON * j) {
-    struct UnionPass * x = cJSON_malloc(sizeof(struct UnionPass));
+struct UnionNonmutating * cJSON_GetUnionNonmutatingValue(const cJSON * j) {
+    struct UnionNonmutating * x = cJSON_malloc(sizeof(struct UnionNonmutating));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPass));
+        memset(x, 0, sizeof(struct UnionNonmutating));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.pass = cJSON_GetPassValue(j);
-            if (NULL == x->value.pass) x->type = 0;
+            x->value.nonmutating = cJSON_GetNonmutatingValue(j);
+            if (NULL == x->value.nonmutating) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPass * cJSON_ParseUnionPass(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPass * x = j ? cJSON_GetUnionPassValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPass(const struct UnionPass * x) { cJSON * j = cJSON_CreateUnionPass(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNonmutating * cJSON_ParseUnionNonmutating(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNonmutating * x = j ? cJSON_GetUnionNonmutatingValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNonmutating(const struct UnionNonmutating * x) { cJSON * j = cJSON_CreateUnionNonmutating(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPass(const struct UnionPass * x) {
+cJSON * cJSON_CreateUnionNonmutating(const struct UnionNonmutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePass(x->value.pass);
+            j = cJSON_CreateNonmutating(x->value.nonmutating);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPass(struct UnionPass * x) {
+void cJSON_DeleteUnionNonmutating(struct UnionNonmutating * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePass(x->value.pass);
+            cJSON_DeleteNonmutating(x->value.nonmutating);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPort * cJSON_GetUnionPortValue(const cJSON * j) {
-    struct UnionPort * x = cJSON_malloc(sizeof(struct UnionPort));
+struct UnionNsError * cJSON_GetUnionNsErrorValue(const cJSON * j) {
+    struct UnionNsError * x = cJSON_malloc(sizeof(struct UnionNsError));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPort));
+        memset(x, 0, sizeof(struct UnionNsError));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.port = cJSON_GetPortValue(j);
-            if (NULL == x->value.port) x->type = 0;
+            x->value.ns_error = cJSON_GetNsErrorValue(j);
+            if (NULL == x->value.ns_error) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPort * cJSON_ParseUnionPort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPort * x = j ? cJSON_GetUnionPortValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPort(const struct UnionPort * x) { cJSON * j = cJSON_CreateUnionPort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNsError * cJSON_ParseUnionNsError(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNsError * x = j ? cJSON_GetUnionNsErrorValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNsError(const struct UnionNsError * x) { cJSON * j = cJSON_CreateUnionNsError(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPort(const struct UnionPort * x) {
+cJSON * cJSON_CreateUnionNsError(const struct UnionNsError * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePort(x->value.port);
+            j = cJSON_CreateNsError(x->value.ns_error);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPort(struct UnionPort * x) {
+void cJSON_DeleteUnionNsError(struct UnionNsError * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePort(x->value.port);
+            cJSON_DeleteNsError(x->value.ns_error);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPostfix * cJSON_GetUnionPostfixValue(const cJSON * j) {
-    struct UnionPostfix * x = cJSON_malloc(sizeof(struct UnionPostfix));
+struct UnionNsString * cJSON_GetUnionNsStringValue(const cJSON * j) {
+    struct UnionNsString * x = cJSON_malloc(sizeof(struct UnionNsString));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPostfix));
+        memset(x, 0, sizeof(struct UnionNsString));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.postfix = cJSON_GetPostfixValue(j);
-            if (NULL == x->value.postfix) x->type = 0;
+            x->value.ns_string = cJSON_GetNsStringValue(j);
+            if (NULL == x->value.ns_string) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPostfix * cJSON_ParseUnionPostfix(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPostfix * x = j ? cJSON_GetUnionPostfixValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPostfix(const struct UnionPostfix * x) { cJSON * j = cJSON_CreateUnionPostfix(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNsString * cJSON_ParseUnionNsString(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNsString * x = j ? cJSON_GetUnionNsStringValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNsString(const struct UnionNsString * x) { cJSON * j = cJSON_CreateUnionNsString(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPostfix(const struct UnionPostfix * x) {
+cJSON * cJSON_CreateUnionNsString(const struct UnionNsString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePostfix(x->value.postfix);
+            j = cJSON_CreateNsString(x->value.ns_string);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPostfix(struct UnionPostfix * x) {
+void cJSON_DeleteUnionNsString(struct UnionNsString * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePostfix(x->value.postfix);
+            cJSON_DeleteNsString(x->value.ns_string);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPrecedence * cJSON_GetUnionPrecedenceValue(const cJSON * j) {
-    struct UnionPrecedence * x = cJSON_malloc(sizeof(struct UnionPrecedence));
+struct UnionNull * cJSON_GetUnionNullValue(const cJSON * j) {
+    struct UnionNull * x = cJSON_malloc(sizeof(struct UnionNull));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPrecedence));
+        memset(x, 0, sizeof(struct UnionNull));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.precedence = cJSON_GetPrecedenceValue(j);
-            if (NULL == x->value.precedence) x->type = 0;
+            x->value.null_class = cJSON_GetNullClassValue(j);
+            if (NULL == x->value.null_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPrecedence * cJSON_ParseUnionPrecedence(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrecedence * x = j ? cJSON_GetUnionPrecedenceValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPrecedence(const struct UnionPrecedence * x) { cJSON * j = cJSON_CreateUnionPrecedence(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNull * cJSON_ParseUnionNull(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNull * x = j ? cJSON_GetUnionNullValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNull(const struct UnionNull * x) { cJSON * j = cJSON_CreateUnionNull(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPrecedence(const struct UnionPrecedence * x) {
+cJSON * cJSON_CreateUnionNull(const struct UnionNull * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePrecedence(x->value.precedence);
+            j = cJSON_CreateNullClass(x->value.null_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPrecedence(struct UnionPrecedence * x) {
+void cJSON_DeleteUnionNull(struct UnionNull * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePrecedence(x->value.precedence);
+            cJSON_DeleteNullClass(x->value.null_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPrefix * cJSON_GetUnionPrefixValue(const cJSON * j) {
-    struct UnionPrefix * x = cJSON_malloc(sizeof(struct UnionPrefix));
+struct UnionNumber * cJSON_GetUnionNumberValue(const cJSON * j) {
+    struct UnionNumber * x = cJSON_malloc(sizeof(struct UnionNumber));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPrefix));
+        memset(x, 0, sizeof(struct UnionNumber));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.prefix = cJSON_GetPrefixValue(j);
-            if (NULL == x->value.prefix) x->type = 0;
+            x->value.number_class = cJSON_GetNumberClassValue(j);
+            if (NULL == x->value.number_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPrefix * cJSON_ParseUnionPrefix(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrefix * x = j ? cJSON_GetUnionPrefixValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPrefix(const struct UnionPrefix * x) { cJSON * j = cJSON_CreateUnionPrefix(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNumber * cJSON_ParseUnionNumber(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNumber * x = j ? cJSON_GetUnionNumberValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNumber(const struct UnionNumber * x) { cJSON * j = cJSON_CreateUnionNumber(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPrefix(const struct UnionPrefix * x) {
+cJSON * cJSON_CreateUnionNumber(const struct UnionNumber * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePrefix(x->value.prefix);
+            j = cJSON_CreateNumberClass(x->value.number_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPrefix(struct UnionPrefix * x) {
+void cJSON_DeleteUnionNumber(struct UnionNumber * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePrefix(x->value.prefix);
+            cJSON_DeleteNumberClass(x->value.number_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPrint * cJSON_GetUnionPrintValue(const cJSON * j) {
-    struct UnionPrint * x = cJSON_malloc(sizeof(struct UnionPrint));
+struct UnionObject * cJSON_GetUnionObjectValue(const cJSON * j) {
+    struct UnionObject * x = cJSON_malloc(sizeof(struct UnionObject));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPrint));
+        memset(x, 0, sizeof(struct UnionObject));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.print = cJSON_GetPrintValue(j);
-            if (NULL == x->value.print) x->type = 0;
+            x->value.object_class = cJSON_GetObjectClassValue(j);
+            if (NULL == x->value.object_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPrint * cJSON_ParseUnionPrint(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrint * x = j ? cJSON_GetUnionPrintValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPrint(const struct UnionPrint * x) { cJSON * j = cJSON_CreateUnionPrint(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionObject * cJSON_ParseUnionObject(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionObject * x = j ? cJSON_GetUnionObjectValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionObject(const struct UnionObject * x) { cJSON * j = cJSON_CreateUnionObject(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPrint(const struct UnionPrint * x) {
+cJSON * cJSON_CreateUnionObject(const struct UnionObject * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePrint(x->value.print);
+            j = cJSON_CreateObjectClass(x->value.object_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPrint(struct UnionPrint * x) {
+void cJSON_DeleteUnionObject(struct UnionObject * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePrint(x->value.print);
+            cJSON_DeleteObjectClass(x->value.object_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPrintf * cJSON_GetUnionPrintfValue(const cJSON * j) {
-    struct UnionPrintf * x = cJSON_malloc(sizeof(struct UnionPrintf));
+struct UnionObjectMapper * cJSON_GetUnionObjectMapperValue(const cJSON * j) {
+    struct UnionObjectMapper * x = cJSON_malloc(sizeof(struct UnionObjectMapper));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPrintf));
+        memset(x, 0, sizeof(struct UnionObjectMapper));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.printf = cJSON_GetPrintfValue(j);
-            if (NULL == x->value.printf) x->type = 0;
+            x->value.object_mapper = cJSON_GetObjectMapperValue(j);
+            if (NULL == x->value.object_mapper) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPrintf * cJSON_ParseUnionPrintf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrintf * x = j ? cJSON_GetUnionPrintfValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPrintf(const struct UnionPrintf * x) { cJSON * j = cJSON_CreateUnionPrintf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionObjectMapper * cJSON_ParseUnionObjectMapper(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionObjectMapper * x = j ? cJSON_GetUnionObjectMapperValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionObjectMapper(const struct UnionObjectMapper * x) { cJSON * j = cJSON_CreateUnionObjectMapper(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPrintf(const struct UnionPrintf * x) {
+cJSON * cJSON_CreateUnionObjectMapper(const struct UnionObjectMapper * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePrintf(x->value.printf);
+            j = cJSON_CreateObjectMapper(x->value.object_mapper);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPrintf(struct UnionPrintf * x) {
+void cJSON_DeleteUnionObjectMapper(struct UnionObjectMapper * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePrintf(x->value.printf);
+            cJSON_DeleteObjectMapper(x->value.object_mapper);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionProtocol * cJSON_GetUnionProtocolValue(const cJSON * j) {
-    struct UnionProtocol * x = cJSON_malloc(sizeof(struct UnionProtocol));
+struct UnionOf * cJSON_GetUnionOfValue(const cJSON * j) {
+    struct UnionOf * x = cJSON_malloc(sizeof(struct UnionOf));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionProtocol));
+        memset(x, 0, sizeof(struct UnionOf));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.protocol = cJSON_GetProtocolValue(j);
-            if (NULL == x->value.protocol) x->type = 0;
+            x->value.of = cJSON_GetOfValue(j);
+            if (NULL == x->value.of) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionProtocol * cJSON_ParseUnionProtocol(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtocol * x = j ? cJSON_GetUnionProtocolValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionProtocol(const struct UnionProtocol * x) { cJSON * j = cJSON_CreateUnionProtocol(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOf * cJSON_ParseUnionOf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOf * x = j ? cJSON_GetUnionOfValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOf(const struct UnionOf * x) { cJSON * j = cJSON_CreateUnionOf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionProtocol(const struct UnionProtocol * x) {
+cJSON * cJSON_CreateUnionOf(const struct UnionOf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateProtocol(x->value.protocol);
+            j = cJSON_CreateOf(x->value.of);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionProtocol(struct UnionProtocol * x) {
+void cJSON_DeleteUnionOf(struct UnionOf * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteProtocol(x->value.protocol);
+            cJSON_DeleteOf(x->value.of);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionBoolUnion * cJSON_GetUnionBoolUnionValue(const cJSON * j) {
-    struct UnionBoolUnion * x = cJSON_malloc(sizeof(struct UnionBoolUnion));
+struct UnionOneway * cJSON_GetUnionOnewayValue(const cJSON * j) {
+    struct UnionOneway * x = cJSON_malloc(sizeof(struct UnionOneway));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionBoolUnion));
+        memset(x, 0, sizeof(struct UnionOneway));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.union_bool_bool = cJSON_GetUnionBoolBoolValue(j);
-            if (NULL == x->value.union_bool_bool) x->type = 0;
+            x->value.oneway = cJSON_GetOnewayValue(j);
+            if (NULL == x->value.oneway) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionBoolUnion * cJSON_ParseUnionBoolUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBoolUnion * x = j ? cJSON_GetUnionBoolUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionBoolUnion(const struct UnionBoolUnion * x) { cJSON * j = cJSON_CreateUnionBoolUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOneway * cJSON_ParseUnionOneway(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOneway * x = j ? cJSON_GetUnionOnewayValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOneway(const struct UnionOneway * x) { cJSON * j = cJSON_CreateUnionOneway(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionBoolUnion(const struct UnionBoolUnion * x) {
+cJSON * cJSON_CreateUnionOneway(const struct UnionOneway * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnionBoolBool(x->value.union_bool_bool);
+            j = cJSON_CreateOneway(x->value.oneway);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionBoolUnion(struct UnionBoolUnion * x) {
+void cJSON_DeleteUnionOneway(struct UnionOneway * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnionBoolBool(x->value.union_bool_bool);
+            cJSON_DeleteOneway(x->value.oneway);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionClassUnion * cJSON_GetUnionClassUnionValue(const cJSON * j) {
-    struct UnionClassUnion * x = cJSON_malloc(sizeof(struct UnionClassUnion));
+struct UnionOpen * cJSON_GetUnionOpenValue(const cJSON * j) {
+    struct UnionOpen * x = cJSON_malloc(sizeof(struct UnionOpen));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionClassUnion));
+        memset(x, 0, sizeof(struct UnionOpen));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.class_class = cJSON_GetClassClassValue(j);
-            if (NULL == x->value.class_class) x->type = 0;
+            x->value.open = cJSON_GetOpenValue(j);
+            if (NULL == x->value.open) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionClassUnion * cJSON_ParseUnionClassUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionClassUnion * x = j ? cJSON_GetUnionClassUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionClassUnion(const struct UnionClassUnion * x) { cJSON * j = cJSON_CreateUnionClassUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOpen * cJSON_ParseUnionOpen(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOpen * x = j ? cJSON_GetUnionOpenValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOpen(const struct UnionOpen * x) { cJSON * j = cJSON_CreateUnionOpen(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionClassUnion(const struct UnionClassUnion * x) {
+cJSON * cJSON_CreateUnionOpen(const struct UnionOpen * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateClassClass(x->value.class_class);
+            j = cJSON_CreateOpen(x->value.open);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionClassUnion(struct UnionClassUnion * x) {
+void cJSON_DeleteUnionOpen(struct UnionOpen * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteClassClass(x->value.class_class);
+            cJSON_DeleteOpen(x->value.open);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFalseUnion * cJSON_GetUnionFalseUnionValue(const cJSON * j) {
-    struct UnionFalseUnion * x = cJSON_malloc(sizeof(struct UnionFalseUnion));
+struct UnionOptional * cJSON_GetUnionOptionalValue(const cJSON * j) {
+    struct UnionOptional * x = cJSON_malloc(sizeof(struct UnionOptional));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFalseUnion));
+        memset(x, 0, sizeof(struct UnionOptional));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.union_false_false = cJSON_GetUnionFalseFalseValue(j);
-            if (NULL == x->value.union_false_false) x->type = 0;
+            x->value.optional = cJSON_GetOptionalValue(j);
+            if (NULL == x->value.optional) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFalseUnion * cJSON_ParseUnionFalseUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFalseUnion * x = j ? cJSON_GetUnionFalseUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFalseUnion(const struct UnionFalseUnion * x) { cJSON * j = cJSON_CreateUnionFalseUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOptional * cJSON_ParseUnionOptional(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOptional * x = j ? cJSON_GetUnionOptionalValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOptional(const struct UnionOptional * x) { cJSON * j = cJSON_CreateUnionOptional(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFalseUnion(const struct UnionFalseUnion * x) {
+cJSON * cJSON_CreateUnionOptional(const struct UnionOptional * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnionFalseFalse(x->value.union_false_false);
+            j = cJSON_CreateOptional(x->value.optional);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFalseUnion(struct UnionFalseUnion * x) {
+void cJSON_DeleteUnionOptional(struct UnionOptional * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnionFalseFalse(x->value.union_false_false);
+            cJSON_DeleteOptional(x->value.optional);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTrueUnion * cJSON_GetUnionTrueUnionValue(const cJSON * j) {
-    struct UnionTrueUnion * x = cJSON_malloc(sizeof(struct UnionTrueUnion));
+struct UnionOut * cJSON_GetUnionOutValue(const cJSON * j) {
+    struct UnionOut * x = cJSON_malloc(sizeof(struct UnionOut));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTrueUnion));
+        memset(x, 0, sizeof(struct UnionOut));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.union_true_true = cJSON_GetUnionTrueTrueValue(j);
-            if (NULL == x->value.union_true_true) x->type = 0;
+            x->value.out = cJSON_GetOutValue(j);
+            if (NULL == x->value.out) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTrueUnion * cJSON_ParseUnionTrueUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTrueUnion * x = j ? cJSON_GetUnionTrueUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTrueUnion(const struct UnionTrueUnion * x) { cJSON * j = cJSON_CreateUnionTrueUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOut * cJSON_ParseUnionOut(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOut * x = j ? cJSON_GetUnionOutValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOut(const struct UnionOut * x) { cJSON * j = cJSON_CreateUnionOut(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTrueUnion(const struct UnionTrueUnion * x) {
+cJSON * cJSON_CreateUnionOut(const struct UnionOut * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnionTrueTrue(x->value.union_true_true);
+            j = cJSON_CreateOut(x->value.out);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTrueUnion(struct UnionTrueUnion * x) {
+void cJSON_DeleteUnionOut(struct UnionOut * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnionTrueTrue(x->value.union_true_true);
+            cJSON_DeleteOut(x->value.out);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionQuicktype * cJSON_GetUnionQuicktypeValue(const cJSON * j) {
-    struct UnionQuicktype * x = cJSON_malloc(sizeof(struct UnionQuicktype));
+struct UnionPackage * cJSON_GetUnionPackageValue(const cJSON * j) {
+    struct UnionPackage * x = cJSON_malloc(sizeof(struct UnionPackage));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionQuicktype));
+        memset(x, 0, sizeof(struct UnionPackage));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.quicktype = cJSON_GetQuicktypeValue(j);
-            if (NULL == x->value.quicktype) x->type = 0;
+            x->value.package = cJSON_GetPackageValue(j);
+            if (NULL == x->value.package) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionQuicktype * cJSON_ParseUnionQuicktype(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionQuicktype * x = j ? cJSON_GetUnionQuicktypeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionQuicktype(const struct UnionQuicktype * x) { cJSON * j = cJSON_CreateUnionQuicktype(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPackage * cJSON_ParseUnionPackage(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPackage * x = j ? cJSON_GetUnionPackageValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPackage(const struct UnionPackage * x) { cJSON * j = cJSON_CreateUnionPackage(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionQuicktype(const struct UnionQuicktype * x) {
+cJSON * cJSON_CreateUnionPackage(const struct UnionPackage * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateQuicktype(x->value.quicktype);
+            j = cJSON_CreatePackage(x->value.package);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionQuicktype(struct UnionQuicktype * x) {
+void cJSON_DeleteUnionPackage(struct UnionPackage * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteQuicktype(x->value.quicktype);
+            cJSON_DeletePackage(x->value.package);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRaise * cJSON_GetUnionRaiseValue(const cJSON * j) {
-    struct UnionRaise * x = cJSON_malloc(sizeof(struct UnionRaise));
+struct UnionParams * cJSON_GetUnionParamsValue(const cJSON * j) {
+    struct UnionParams * x = cJSON_malloc(sizeof(struct UnionParams));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRaise));
+        memset(x, 0, sizeof(struct UnionParams));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.raise = cJSON_GetRaiseValue(j);
-            if (NULL == x->value.raise) x->type = 0;
+            x->value.params = cJSON_GetParamsValue(j);
+            if (NULL == x->value.params) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRaise * cJSON_ParseUnionRaise(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRaise * x = j ? cJSON_GetUnionRaiseValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRaise(const struct UnionRaise * x) { cJSON * j = cJSON_CreateUnionRaise(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionParams * cJSON_ParseUnionParams(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionParams * x = j ? cJSON_GetUnionParamsValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionParams(const struct UnionParams * x) { cJSON * j = cJSON_CreateUnionParams(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRaise(const struct UnionRaise * x) {
+cJSON * cJSON_CreateUnionParams(const struct UnionParams * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRaise(x->value.raise);
+            j = cJSON_CreateParams(x->value.params);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRaise(struct UnionRaise * x) {
+void cJSON_DeleteUnionParams(struct UnionParams * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRaise(x->value.raise);
+            cJSON_DeleteParams(x->value.params);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRange * cJSON_GetUnionRangeValue(const cJSON * j) {
-    struct UnionRange * x = cJSON_malloc(sizeof(struct UnionRange));
+struct UnionPass * cJSON_GetUnionPassValue(const cJSON * j) {
+    struct UnionPass * x = cJSON_malloc(sizeof(struct UnionPass));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRange));
+        memset(x, 0, sizeof(struct UnionPass));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.range = cJSON_GetRangeValue(j);
-            if (NULL == x->value.range) x->type = 0;
+            x->value.pass = cJSON_GetPassValue(j);
+            if (NULL == x->value.pass) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRange * cJSON_ParseUnionRange(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRange * x = j ? cJSON_GetUnionRangeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRange(const struct UnionRange * x) { cJSON * j = cJSON_CreateUnionRange(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPass * cJSON_ParseUnionPass(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPass * x = j ? cJSON_GetUnionPassValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPass(const struct UnionPass * x) { cJSON * j = cJSON_CreateUnionPass(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRange(const struct UnionRange * x) {
+cJSON * cJSON_CreateUnionPass(const struct UnionPass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRange(x->value.range);
+            j = cJSON_CreatePass(x->value.pass);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRange(struct UnionRange * x) {
+void cJSON_DeleteUnionPass(struct UnionPass * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRange(x->value.range);
+            cJSON_DeletePass(x->value.pass);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionReadonly * cJSON_GetUnionReadonlyValue(const cJSON * j) {
-    struct UnionReadonly * x = cJSON_malloc(sizeof(struct UnionReadonly));
+struct UnionPort * cJSON_GetUnionPortValue(const cJSON * j) {
+    struct UnionPort * x = cJSON_malloc(sizeof(struct UnionPort));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionReadonly));
+        memset(x, 0, sizeof(struct UnionPort));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.readonly = cJSON_GetReadonlyValue(j);
-            if (NULL == x->value.readonly) x->type = 0;
+            x->value.port = cJSON_GetPortValue(j);
+            if (NULL == x->value.port) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionReadonly * cJSON_ParseUnionReadonly(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReadonly * x = j ? cJSON_GetUnionReadonlyValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionReadonly(const struct UnionReadonly * x) { cJSON * j = cJSON_CreateUnionReadonly(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPort * cJSON_ParseUnionPort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPort * x = j ? cJSON_GetUnionPortValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPort(const struct UnionPort * x) { cJSON * j = cJSON_CreateUnionPort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionReadonly(const struct UnionReadonly * x) {
+cJSON * cJSON_CreateUnionPort(const struct UnionPort * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateReadonly(x->value.readonly);
+            j = cJSON_CreatePort(x->value.port);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionReadonly(struct UnionReadonly * x) {
+void cJSON_DeleteUnionPort(struct UnionPort * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteReadonly(x->value.readonly);
+            cJSON_DeletePort(x->value.port);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRef * cJSON_GetUnionRefValue(const cJSON * j) {
-    struct UnionRef * x = cJSON_malloc(sizeof(struct UnionRef));
+struct UnionPostfix * cJSON_GetUnionPostfixValue(const cJSON * j) {
+    struct UnionPostfix * x = cJSON_malloc(sizeof(struct UnionPostfix));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRef));
+        memset(x, 0, sizeof(struct UnionPostfix));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.ref = cJSON_GetRefValue(j);
-            if (NULL == x->value.ref) x->type = 0;
+            x->value.postfix = cJSON_GetPostfixValue(j);
+            if (NULL == x->value.postfix) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRef * cJSON_ParseUnionRef(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRef * x = j ? cJSON_GetUnionRefValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRef(const struct UnionRef * x) { cJSON * j = cJSON_CreateUnionRef(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPostfix * cJSON_ParseUnionPostfix(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPostfix * x = j ? cJSON_GetUnionPostfixValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPostfix(const struct UnionPostfix * x) { cJSON * j = cJSON_CreateUnionPostfix(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRef(const struct UnionRef * x) {
+cJSON * cJSON_CreateUnionPostfix(const struct UnionPostfix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRef(x->value.ref);
+            j = cJSON_CreatePostfix(x->value.postfix);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRef(struct UnionRef * x) {
+void cJSON_DeleteUnionPostfix(struct UnionPostfix * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRef(x->value.ref);
+            cJSON_DeletePostfix(x->value.postfix);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRepeat * cJSON_GetUnionRepeatValue(const cJSON * j) {
-    struct UnionRepeat * x = cJSON_malloc(sizeof(struct UnionRepeat));
+struct UnionPrecedence * cJSON_GetUnionPrecedenceValue(const cJSON * j) {
+    struct UnionPrecedence * x = cJSON_malloc(sizeof(struct UnionPrecedence));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRepeat));
+        memset(x, 0, sizeof(struct UnionPrecedence));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.repeat = cJSON_GetRepeatValue(j);
-            if (NULL == x->value.repeat) x->type = 0;
+            x->value.precedence = cJSON_GetPrecedenceValue(j);
+            if (NULL == x->value.precedence) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRepeat * cJSON_ParseUnionRepeat(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRepeat * x = j ? cJSON_GetUnionRepeatValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRepeat(const struct UnionRepeat * x) { cJSON * j = cJSON_CreateUnionRepeat(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrecedence * cJSON_ParseUnionPrecedence(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrecedence * x = j ? cJSON_GetUnionPrecedenceValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrecedence(const struct UnionPrecedence * x) { cJSON * j = cJSON_CreateUnionPrecedence(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRepeat(const struct UnionRepeat * x) {
+cJSON * cJSON_CreateUnionPrecedence(const struct UnionPrecedence * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRepeat(x->value.repeat);
+            j = cJSON_CreatePrecedence(x->value.precedence);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRepeat(struct UnionRepeat * x) {
+void cJSON_DeleteUnionPrecedence(struct UnionPrecedence * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRepeat(x->value.repeat);
+            cJSON_DeletePrecedence(x->value.precedence);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRequire * cJSON_GetUnionRequireValue(const cJSON * j) {
-    struct UnionRequire * x = cJSON_malloc(sizeof(struct UnionRequire));
+struct UnionPrefix * cJSON_GetUnionPrefixValue(const cJSON * j) {
+    struct UnionPrefix * x = cJSON_malloc(sizeof(struct UnionPrefix));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRequire));
+        memset(x, 0, sizeof(struct UnionPrefix));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.require = cJSON_GetRequireValue(j);
-            if (NULL == x->value.require) x->type = 0;
+            x->value.prefix = cJSON_GetPrefixValue(j);
+            if (NULL == x->value.prefix) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRequire * cJSON_ParseUnionRequire(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequire * x = j ? cJSON_GetUnionRequireValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRequire(const struct UnionRequire * x) { cJSON * j = cJSON_CreateUnionRequire(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrefix * cJSON_ParseUnionPrefix(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrefix * x = j ? cJSON_GetUnionPrefixValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrefix(const struct UnionPrefix * x) { cJSON * j = cJSON_CreateUnionPrefix(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRequire(const struct UnionRequire * x) {
+cJSON * cJSON_CreateUnionPrefix(const struct UnionPrefix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRequire(x->value.require);
+            j = cJSON_CreatePrefix(x->value.prefix);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRequire(struct UnionRequire * x) {
+void cJSON_DeleteUnionPrefix(struct UnionPrefix * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRequire(x->value.require);
+            cJSON_DeletePrefix(x->value.prefix);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRequired * cJSON_GetUnionRequiredValue(const cJSON * j) {
-    struct UnionRequired * x = cJSON_malloc(sizeof(struct UnionRequired));
+struct UnionPrint * cJSON_GetUnionPrintValue(const cJSON * j) {
+    struct UnionPrint * x = cJSON_malloc(sizeof(struct UnionPrint));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRequired));
+        memset(x, 0, sizeof(struct UnionPrint));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.required = cJSON_GetRequiredValue(j);
-            if (NULL == x->value.required) x->type = 0;
+            x->value.print = cJSON_GetPrintValue(j);
+            if (NULL == x->value.print) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRequired * cJSON_ParseUnionRequired(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequired * x = j ? cJSON_GetUnionRequiredValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRequired(const struct UnionRequired * x) { cJSON * j = cJSON_CreateUnionRequired(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrint * cJSON_ParseUnionPrint(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrint * x = j ? cJSON_GetUnionPrintValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrint(const struct UnionPrint * x) { cJSON * j = cJSON_CreateUnionPrint(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRequired(const struct UnionRequired * x) {
+cJSON * cJSON_CreateUnionPrint(const struct UnionPrint * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRequired(x->value.required);
+            j = cJSON_CreatePrint(x->value.print);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRequired(struct UnionRequired * x) {
+void cJSON_DeleteUnionPrint(struct UnionPrint * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRequired(x->value.required);
+            cJSON_DeletePrint(x->value.print);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRetain * cJSON_GetUnionRetainValue(const cJSON * j) {
-    struct UnionRetain * x = cJSON_malloc(sizeof(struct UnionRetain));
+struct UnionPrintMembers * cJSON_GetUnionPrintMembersValue(const cJSON * j) {
+    struct UnionPrintMembers * x = cJSON_malloc(sizeof(struct UnionPrintMembers));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRetain));
+        memset(x, 0, sizeof(struct UnionPrintMembers));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.retain = cJSON_GetRetainValue(j);
-            if (NULL == x->value.retain) x->type = 0;
+            x->value.print_members = cJSON_GetPrintMembersValue(j);
+            if (NULL == x->value.print_members) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRetain * cJSON_ParseUnionRetain(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRetain * x = j ? cJSON_GetUnionRetainValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRetain(const struct UnionRetain * x) { cJSON * j = cJSON_CreateUnionRetain(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrintMembers * cJSON_ParseUnionPrintMembers(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrintMembers * x = j ? cJSON_GetUnionPrintMembersValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrintMembers(const struct UnionPrintMembers * x) { cJSON * j = cJSON_CreateUnionPrintMembers(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRetain(const struct UnionRetain * x) {
+cJSON * cJSON_CreateUnionPrintMembers(const struct UnionPrintMembers * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRetain(x->value.retain);
+            j = cJSON_CreatePrintMembers(x->value.print_members);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRetain(struct UnionRetain * x) {
+void cJSON_DeleteUnionPrintMembers(struct UnionPrintMembers * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRetain(x->value.retain);
+            cJSON_DeletePrintMembers(x->value.print_members);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRethrows * cJSON_GetUnionRethrowsValue(const cJSON * j) {
-    struct UnionRethrows * x = cJSON_malloc(sizeof(struct UnionRethrows));
+struct UnionPrintf * cJSON_GetUnionPrintfValue(const cJSON * j) {
+    struct UnionPrintf * x = cJSON_malloc(sizeof(struct UnionPrintf));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRethrows));
+        memset(x, 0, sizeof(struct UnionPrintf));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.rethrows = cJSON_GetRethrowsValue(j);
-            if (NULL == x->value.rethrows) x->type = 0;
+            x->value.printf = cJSON_GetPrintfValue(j);
+            if (NULL == x->value.printf) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRethrows * cJSON_ParseUnionRethrows(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRethrows * x = j ? cJSON_GetUnionRethrowsValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRethrows(const struct UnionRethrows * x) { cJSON * j = cJSON_CreateUnionRethrows(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrintf * cJSON_ParseUnionPrintf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrintf * x = j ? cJSON_GetUnionPrintfValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrintf(const struct UnionPrintf * x) { cJSON * j = cJSON_CreateUnionPrintf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRethrows(const struct UnionRethrows * x) {
+cJSON * cJSON_CreateUnionPrintf(const struct UnionPrintf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRethrows(x->value.rethrows);
+            j = cJSON_CreatePrintf(x->value.printf);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRethrows(struct UnionRethrows * x) {
+void cJSON_DeleteUnionPrintf(struct UnionPrintf * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRethrows(x->value.rethrows);
+            cJSON_DeletePrintf(x->value.printf);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRight * cJSON_GetUnionRightValue(const cJSON * j) {
-    struct UnionRight * x = cJSON_malloc(sizeof(struct UnionRight));
+struct UnionProtocol * cJSON_GetUnionProtocolValue(const cJSON * j) {
+    struct UnionProtocol * x = cJSON_malloc(sizeof(struct UnionProtocol));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRight));
+        memset(x, 0, sizeof(struct UnionProtocol));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.right = cJSON_GetRightValue(j);
-            if (NULL == x->value.right) x->type = 0;
+            x->value.protocol = cJSON_GetProtocolValue(j);
+            if (NULL == x->value.protocol) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRight * cJSON_ParseUnionRight(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRight * x = j ? cJSON_GetUnionRightValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRight(const struct UnionRight * x) { cJSON * j = cJSON_CreateUnionRight(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionProtocol * cJSON_ParseUnionProtocol(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtocol * x = j ? cJSON_GetUnionProtocolValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionProtocol(const struct UnionProtocol * x) { cJSON * j = cJSON_CreateUnionProtocol(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRight(const struct UnionRight * x) {
+cJSON * cJSON_CreateUnionProtocol(const struct UnionProtocol * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRight(x->value.right);
+            j = cJSON_CreateProtocol(x->value.protocol);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRight(struct UnionRight * x) {
+void cJSON_DeleteUnionProtocol(struct UnionProtocol * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRight(x->value.right);
+            cJSON_DeleteProtocol(x->value.protocol);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSbyte * cJSON_GetUnionSbyteValue(const cJSON * j) {
-    struct UnionSbyte * x = cJSON_malloc(sizeof(struct UnionSbyte));
+struct UnionBoolUnion * cJSON_GetUnionBoolUnionValue(const cJSON * j) {
+    struct UnionBoolUnion * x = cJSON_malloc(sizeof(struct UnionBoolUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSbyte));
+        memset(x, 0, sizeof(struct UnionBoolUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.sbyte = cJSON_GetSbyteValue(j);
-            if (NULL == x->value.sbyte) x->type = 0;
+            x->value.union_bool_bool = cJSON_GetUnionBoolBoolValue(j);
+            if (NULL == x->value.union_bool_bool) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSbyte * cJSON_ParseUnionSbyte(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSbyte * x = j ? cJSON_GetUnionSbyteValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSbyte(const struct UnionSbyte * x) { cJSON * j = cJSON_CreateUnionSbyte(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionBoolUnion * cJSON_ParseUnionBoolUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBoolUnion * x = j ? cJSON_GetUnionBoolUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionBoolUnion(const struct UnionBoolUnion * x) { cJSON * j = cJSON_CreateUnionBoolUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSbyte(const struct UnionSbyte * x) {
+cJSON * cJSON_CreateUnionBoolUnion(const struct UnionBoolUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSbyte(x->value.sbyte);
+            j = cJSON_CreateUnionBoolBool(x->value.union_bool_bool);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSbyte(struct UnionSbyte * x) {
+void cJSON_DeleteUnionBoolUnion(struct UnionBoolUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSbyte(x->value.sbyte);
+            cJSON_DeleteUnionBoolBool(x->value.union_bool_bool);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSealed * cJSON_GetUnionSealedValue(const cJSON * j) {
-    struct UnionSealed * x = cJSON_malloc(sizeof(struct UnionSealed));
+struct UnionClassUnion * cJSON_GetUnionClassUnionValue(const cJSON * j) {
+    struct UnionClassUnion * x = cJSON_malloc(sizeof(struct UnionClassUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSealed));
+        memset(x, 0, sizeof(struct UnionClassUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.sealed = cJSON_GetSealedValue(j);
-            if (NULL == x->value.sealed) x->type = 0;
+            x->value.class_class = cJSON_GetClassClassValue(j);
+            if (NULL == x->value.class_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSealed * cJSON_ParseUnionSealed(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSealed * x = j ? cJSON_GetUnionSealedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSealed(const struct UnionSealed * x) { cJSON * j = cJSON_CreateUnionSealed(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionClassUnion * cJSON_ParseUnionClassUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionClassUnion * x = j ? cJSON_GetUnionClassUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionClassUnion(const struct UnionClassUnion * x) { cJSON * j = cJSON_CreateUnionClassUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSealed(const struct UnionSealed * x) {
+cJSON * cJSON_CreateUnionClassUnion(const struct UnionClassUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSealed(x->value.sealed);
+            j = cJSON_CreateClassClass(x->value.class_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSealed(struct UnionSealed * x) {
+void cJSON_DeleteUnionClassUnion(struct UnionClassUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSealed(x->value.sealed);
+            cJSON_DeleteClassClass(x->value.class_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSel * cJSON_GetUnionSelValue(const cJSON * j) {
-    struct UnionSel * x = cJSON_malloc(sizeof(struct UnionSel));
+struct UnionFalseUnion * cJSON_GetUnionFalseUnionValue(const cJSON * j) {
+    struct UnionFalseUnion * x = cJSON_malloc(sizeof(struct UnionFalseUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSel));
+        memset(x, 0, sizeof(struct UnionFalseUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.sel = cJSON_GetSelValue(j);
-            if (NULL == x->value.sel) x->type = 0;
+            x->value.union_false_false = cJSON_GetUnionFalseFalseValue(j);
+            if (NULL == x->value.union_false_false) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSel * cJSON_ParseUnionSel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSel * x = j ? cJSON_GetUnionSelValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSel(const struct UnionSel * x) { cJSON * j = cJSON_CreateUnionSel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFalseUnion * cJSON_ParseUnionFalseUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFalseUnion * x = j ? cJSON_GetUnionFalseUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFalseUnion(const struct UnionFalseUnion * x) { cJSON * j = cJSON_CreateUnionFalseUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSel(const struct UnionSel * x) {
+cJSON * cJSON_CreateUnionFalseUnion(const struct UnionFalseUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSel(x->value.sel);
+            j = cJSON_CreateUnionFalseFalse(x->value.union_false_false);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSel(struct UnionSel * x) {
+void cJSON_DeleteUnionFalseUnion(struct UnionFalseUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSel(x->value.sel);
+            cJSON_DeleteUnionFalseFalse(x->value.union_false_false);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSelect * cJSON_GetUnionSelectValue(const cJSON * j) {
-    struct UnionSelect * x = cJSON_malloc(sizeof(struct UnionSelect));
+struct UnionTrueUnion * cJSON_GetUnionTrueUnionValue(const cJSON * j) {
+    struct UnionTrueUnion * x = cJSON_malloc(sizeof(struct UnionTrueUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSelect));
+        memset(x, 0, sizeof(struct UnionTrueUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.select = cJSON_GetSelectValue(j);
-            if (NULL == x->value.select) x->type = 0;
+            x->value.union_true_true = cJSON_GetUnionTrueTrueValue(j);
+            if (NULL == x->value.union_true_true) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSelect * cJSON_ParseUnionSelect(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelect * x = j ? cJSON_GetUnionSelectValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSelect(const struct UnionSelect * x) { cJSON * j = cJSON_CreateUnionSelect(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTrueUnion * cJSON_ParseUnionTrueUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTrueUnion * x = j ? cJSON_GetUnionTrueUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTrueUnion(const struct UnionTrueUnion * x) { cJSON * j = cJSON_CreateUnionTrueUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSelect(const struct UnionSelect * x) {
+cJSON * cJSON_CreateUnionTrueUnion(const struct UnionTrueUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSelect(x->value.select);
+            j = cJSON_CreateUnionTrueTrue(x->value.union_true_true);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSelect(struct UnionSelect * x) {
+void cJSON_DeleteUnionTrueUnion(struct UnionTrueUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSelect(x->value.select);
+            cJSON_DeleteUnionTrueTrue(x->value.union_true_true);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSelf * cJSON_GetUnionSelfValue(const cJSON * j) {
-    struct UnionSelf * x = cJSON_malloc(sizeof(struct UnionSelf));
+struct UnionQuicktype * cJSON_GetUnionQuicktypeValue(const cJSON * j) {
+    struct UnionQuicktype * x = cJSON_malloc(sizeof(struct UnionQuicktype));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSelf));
+        memset(x, 0, sizeof(struct UnionQuicktype));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.self = cJSON_GetSelfValue(j);
-            if (NULL == x->value.self) x->type = 0;
+            x->value.quicktype = cJSON_GetQuicktypeValue(j);
+            if (NULL == x->value.quicktype) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSelf * cJSON_ParseUnionSelf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelf * x = j ? cJSON_GetUnionSelfValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSelf(const struct UnionSelf * x) { cJSON * j = cJSON_CreateUnionSelf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionQuicktype * cJSON_ParseUnionQuicktype(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionQuicktype * x = j ? cJSON_GetUnionQuicktypeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionQuicktype(const struct UnionQuicktype * x) { cJSON * j = cJSON_CreateUnionQuicktype(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSelf(const struct UnionSelf * x) {
+cJSON * cJSON_CreateUnionQuicktype(const struct UnionQuicktype * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSelf(x->value.self);
+            j = cJSON_CreateQuicktype(x->value.quicktype);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSelf(struct UnionSelf * x) {
+void cJSON_DeleteUnionQuicktype(struct UnionQuicktype * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSelf(x->value.self);
+            cJSON_DeleteQuicktype(x->value.quicktype);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSerialize * cJSON_GetUnionSerializeValue(const cJSON * j) {
-    struct UnionSerialize * x = cJSON_malloc(sizeof(struct UnionSerialize));
+struct UnionRaise * cJSON_GetUnionRaiseValue(const cJSON * j) {
+    struct UnionRaise * x = cJSON_malloc(sizeof(struct UnionRaise));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSerialize));
+        memset(x, 0, sizeof(struct UnionRaise));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.serialize = cJSON_GetSerializeValue(j);
-            if (NULL == x->value.serialize) x->type = 0;
+            x->value.raise = cJSON_GetRaiseValue(j);
+            if (NULL == x->value.raise) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSerialize * cJSON_ParseUnionSerialize(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSerialize * x = j ? cJSON_GetUnionSerializeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSerialize(const struct UnionSerialize * x) { cJSON * j = cJSON_CreateUnionSerialize(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRaise * cJSON_ParseUnionRaise(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRaise * x = j ? cJSON_GetUnionRaiseValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRaise(const struct UnionRaise * x) { cJSON * j = cJSON_CreateUnionRaise(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSerialize(const struct UnionSerialize * x) {
+cJSON * cJSON_CreateUnionRaise(const struct UnionRaise * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSerialize(x->value.serialize);
+            j = cJSON_CreateRaise(x->value.raise);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSerialize(struct UnionSerialize * x) {
+void cJSON_DeleteUnionRaise(struct UnionRaise * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSerialize(x->value.serialize);
+            cJSON_DeleteRaise(x->value.raise);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSet * cJSON_GetUnionSetValue(const cJSON * j) {
-    struct UnionSet * x = cJSON_malloc(sizeof(struct UnionSet));
+struct UnionRange * cJSON_GetUnionRangeValue(const cJSON * j) {
+    struct UnionRange * x = cJSON_malloc(sizeof(struct UnionRange));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSet));
+        memset(x, 0, sizeof(struct UnionRange));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.set = cJSON_GetSetValue(j);
-            if (NULL == x->value.set) x->type = 0;
+            x->value.range = cJSON_GetRangeValue(j);
+            if (NULL == x->value.range) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSet * cJSON_ParseUnionSet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSet * x = j ? cJSON_GetUnionSetValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSet(const struct UnionSet * x) { cJSON * j = cJSON_CreateUnionSet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRange * cJSON_ParseUnionRange(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRange * x = j ? cJSON_GetUnionRangeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRange(const struct UnionRange * x) { cJSON * j = cJSON_CreateUnionRange(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSet(const struct UnionSet * x) {
+cJSON * cJSON_CreateUnionRange(const struct UnionRange * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSet(x->value.set);
+            j = cJSON_CreateRange(x->value.range);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSet(struct UnionSet * x) {
+void cJSON_DeleteUnionRange(struct UnionRange * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSet(x->value.set);
+            cJSON_DeleteRange(x->value.range);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStackalloc * cJSON_GetUnionStackallocValue(const cJSON * j) {
-    struct UnionStackalloc * x = cJSON_malloc(sizeof(struct UnionStackalloc));
+struct UnionReadonly * cJSON_GetUnionReadonlyValue(const cJSON * j) {
+    struct UnionReadonly * x = cJSON_malloc(sizeof(struct UnionReadonly));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStackalloc));
+        memset(x, 0, sizeof(struct UnionReadonly));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.stackalloc = cJSON_GetStackallocValue(j);
-            if (NULL == x->value.stackalloc) x->type = 0;
+            x->value.readonly = cJSON_GetReadonlyValue(j);
+            if (NULL == x->value.readonly) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStackalloc * cJSON_ParseUnionStackalloc(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStackalloc * x = j ? cJSON_GetUnionStackallocValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStackalloc(const struct UnionStackalloc * x) { cJSON * j = cJSON_CreateUnionStackalloc(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionReadonly * cJSON_ParseUnionReadonly(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReadonly * x = j ? cJSON_GetUnionReadonlyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionReadonly(const struct UnionReadonly * x) { cJSON * j = cJSON_CreateUnionReadonly(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStackalloc(const struct UnionStackalloc * x) {
+cJSON * cJSON_CreateUnionReadonly(const struct UnionReadonly * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStackalloc(x->value.stackalloc);
+            j = cJSON_CreateReadonly(x->value.readonly);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStackalloc(struct UnionStackalloc * x) {
+void cJSON_DeleteUnionReadonly(struct UnionReadonly * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStackalloc(x->value.stackalloc);
+            cJSON_DeleteReadonly(x->value.readonly);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStrictfp * cJSON_GetUnionStrictfpValue(const cJSON * j) {
-    struct UnionStrictfp * x = cJSON_malloc(sizeof(struct UnionStrictfp));
+struct UnionRef * cJSON_GetUnionRefValue(const cJSON * j) {
+    struct UnionRef * x = cJSON_malloc(sizeof(struct UnionRef));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStrictfp));
+        memset(x, 0, sizeof(struct UnionRef));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.strictfp = cJSON_GetStrictfpValue(j);
-            if (NULL == x->value.strictfp) x->type = 0;
+            x->value.ref = cJSON_GetRefValue(j);
+            if (NULL == x->value.ref) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStrictfp * cJSON_ParseUnionStrictfp(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStrictfp * x = j ? cJSON_GetUnionStrictfpValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStrictfp(const struct UnionStrictfp * x) { cJSON * j = cJSON_CreateUnionStrictfp(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRef * cJSON_ParseUnionRef(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRef * x = j ? cJSON_GetUnionRefValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRef(const struct UnionRef * x) { cJSON * j = cJSON_CreateUnionRef(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStrictfp(const struct UnionStrictfp * x) {
+cJSON * cJSON_CreateUnionRef(const struct UnionRef * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStrictfp(x->value.strictfp);
+            j = cJSON_CreateRef(x->value.ref);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStrictfp(struct UnionStrictfp * x) {
+void cJSON_DeleteUnionRef(struct UnionRef * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStrictfp(x->value.strictfp);
+            cJSON_DeleteRef(x->value.ref);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionString * cJSON_GetUnionStringValue(const cJSON * j) {
-    struct UnionString * x = cJSON_malloc(sizeof(struct UnionString));
+struct UnionRegExp * cJSON_GetUnionRegExpValue(const cJSON * j) {
+    struct UnionRegExp * x = cJSON_malloc(sizeof(struct UnionRegExp));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionString));
+        memset(x, 0, sizeof(struct UnionRegExp));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.string_class = cJSON_GetStringClassValue(j);
-            if (NULL == x->value.string_class) x->type = 0;
+            x->value.reg_exp = cJSON_GetRegExpValue(j);
+            if (NULL == x->value.reg_exp) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionString * cJSON_ParseUnionString(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionString * x = j ? cJSON_GetUnionStringValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionString(const struct UnionString * x) { cJSON * j = cJSON_CreateUnionString(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRegExp * cJSON_ParseUnionRegExp(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRegExp * x = j ? cJSON_GetUnionRegExpValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRegExp(const struct UnionRegExp * x) { cJSON * j = cJSON_CreateUnionRegExp(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionString(const struct UnionString * x) {
+cJSON * cJSON_CreateUnionRegExp(const struct UnionRegExp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStringClass(x->value.string_class);
+            j = cJSON_CreateRegExp(x->value.reg_exp);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionString(struct UnionString * x) {
+void cJSON_DeleteUnionRegExp(struct UnionRegExp * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStringClass(x->value.string_class);
+            cJSON_DeleteRegExp(x->value.reg_exp);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSubscript * cJSON_GetUnionSubscriptValue(const cJSON * j) {
-    struct UnionSubscript * x = cJSON_malloc(sizeof(struct UnionSubscript));
+struct UnionRepeat * cJSON_GetUnionRepeatValue(const cJSON * j) {
+    struct UnionRepeat * x = cJSON_malloc(sizeof(struct UnionRepeat));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSubscript));
+        memset(x, 0, sizeof(struct UnionRepeat));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.subscript = cJSON_GetSubscriptValue(j);
-            if (NULL == x->value.subscript) x->type = 0;
+            x->value.repeat = cJSON_GetRepeatValue(j);
+            if (NULL == x->value.repeat) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSubscript * cJSON_ParseUnionSubscript(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSubscript * x = j ? cJSON_GetUnionSubscriptValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSubscript(const struct UnionSubscript * x) { cJSON * j = cJSON_CreateUnionSubscript(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRepeat * cJSON_ParseUnionRepeat(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRepeat * x = j ? cJSON_GetUnionRepeatValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRepeat(const struct UnionRepeat * x) { cJSON * j = cJSON_CreateUnionRepeat(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSubscript(const struct UnionSubscript * x) {
+cJSON * cJSON_CreateUnionRepeat(const struct UnionRepeat * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSubscript(x->value.subscript);
+            j = cJSON_CreateRepeat(x->value.repeat);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSubscript(struct UnionSubscript * x) {
+void cJSON_DeleteUnionRepeat(struct UnionRepeat * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSubscript(x->value.subscript);
+            cJSON_DeleteRepeat(x->value.repeat);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSuper * cJSON_GetUnionSuperValue(const cJSON * j) {
-    struct UnionSuper * x = cJSON_malloc(sizeof(struct UnionSuper));
+struct UnionRequire * cJSON_GetUnionRequireValue(const cJSON * j) {
+    struct UnionRequire * x = cJSON_malloc(sizeof(struct UnionRequire));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSuper));
+        memset(x, 0, sizeof(struct UnionRequire));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.super = cJSON_GetSuperValue(j);
-            if (NULL == x->value.super) x->type = 0;
+            x->value.require = cJSON_GetRequireValue(j);
+            if (NULL == x->value.require) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSuper * cJSON_ParseUnionSuper(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSuper * x = j ? cJSON_GetUnionSuperValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSuper(const struct UnionSuper * x) { cJSON * j = cJSON_CreateUnionSuper(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRequire * cJSON_ParseUnionRequire(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequire * x = j ? cJSON_GetUnionRequireValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRequire(const struct UnionRequire * x) { cJSON * j = cJSON_CreateUnionRequire(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSuper(const struct UnionSuper * x) {
+cJSON * cJSON_CreateUnionRequire(const struct UnionRequire * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSuper(x->value.super);
+            j = cJSON_CreateRequire(x->value.require);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSuper(struct UnionSuper * x) {
+void cJSON_DeleteUnionRequire(struct UnionRequire * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSuper(x->value.super);
+            cJSON_DeleteRequire(x->value.require);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSymbol * cJSON_GetUnionSymbolValue(const cJSON * j) {
-    struct UnionSymbol * x = cJSON_malloc(sizeof(struct UnionSymbol));
+struct UnionRequired * cJSON_GetUnionRequiredValue(const cJSON * j) {
+    struct UnionRequired * x = cJSON_malloc(sizeof(struct UnionRequired));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSymbol));
+        memset(x, 0, sizeof(struct UnionRequired));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.symbol = cJSON_GetSymbolValue(j);
-            if (NULL == x->value.symbol) x->type = 0;
+            x->value.required = cJSON_GetRequiredValue(j);
+            if (NULL == x->value.required) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSymbol * cJSON_ParseUnionSymbol(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSymbol * x = j ? cJSON_GetUnionSymbolValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSymbol(const struct UnionSymbol * x) { cJSON * j = cJSON_CreateUnionSymbol(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRequired * cJSON_ParseUnionRequired(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequired * x = j ? cJSON_GetUnionRequiredValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRequired(const struct UnionRequired * x) { cJSON * j = cJSON_CreateUnionRequired(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSymbol(const struct UnionSymbol * x) {
+cJSON * cJSON_CreateUnionRequired(const struct UnionRequired * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSymbol(x->value.symbol);
+            j = cJSON_CreateRequired(x->value.required);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSymbol(struct UnionSymbol * x) {
+void cJSON_DeleteUnionRequired(struct UnionRequired * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSymbol(x->value.symbol);
+            cJSON_DeleteRequired(x->value.required);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSystem * cJSON_GetUnionSystemValue(const cJSON * j) {
-    struct UnionSystem * x = cJSON_malloc(sizeof(struct UnionSystem));
+struct UnionRetain * cJSON_GetUnionRetainValue(const cJSON * j) {
+    struct UnionRetain * x = cJSON_malloc(sizeof(struct UnionRetain));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSystem));
+        memset(x, 0, sizeof(struct UnionRetain));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.system = cJSON_GetSystemValue(j);
-            if (NULL == x->value.system) x->type = 0;
+            x->value.retain = cJSON_GetRetainValue(j);
+            if (NULL == x->value.retain) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSystem * cJSON_ParseUnionSystem(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSystem * x = j ? cJSON_GetUnionSystemValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSystem(const struct UnionSystem * x) { cJSON * j = cJSON_CreateUnionSystem(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRetain * cJSON_ParseUnionRetain(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRetain * x = j ? cJSON_GetUnionRetainValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRetain(const struct UnionRetain * x) { cJSON * j = cJSON_CreateUnionRetain(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSystem(const struct UnionSystem * x) {
+cJSON * cJSON_CreateUnionRetain(const struct UnionRetain * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSystem(x->value.system);
+            j = cJSON_CreateRetain(x->value.retain);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSystem(struct UnionSystem * x) {
+void cJSON_DeleteUnionRetain(struct UnionRetain * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSystem(x->value.system);
+            cJSON_DeleteRetain(x->value.retain);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionThen * cJSON_GetUnionThenValue(const cJSON * j) {
-    struct UnionThen * x = cJSON_malloc(sizeof(struct UnionThen));
+struct UnionRethrows * cJSON_GetUnionRethrowsValue(const cJSON * j) {
+    struct UnionRethrows * x = cJSON_malloc(sizeof(struct UnionRethrows));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionThen));
+        memset(x, 0, sizeof(struct UnionRethrows));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.then = cJSON_GetThenValue(j);
-            if (NULL == x->value.then) x->type = 0;
+            x->value.rethrows = cJSON_GetRethrowsValue(j);
+            if (NULL == x->value.rethrows) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionThen * cJSON_ParseUnionThen(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThen * x = j ? cJSON_GetUnionThenValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionThen(const struct UnionThen * x) { cJSON * j = cJSON_CreateUnionThen(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRethrows * cJSON_ParseUnionRethrows(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRethrows * x = j ? cJSON_GetUnionRethrowsValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRethrows(const struct UnionRethrows * x) { cJSON * j = cJSON_CreateUnionRethrows(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionThen(const struct UnionThen * x) {
+cJSON * cJSON_CreateUnionRethrows(const struct UnionRethrows * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateThen(x->value.then);
+            j = cJSON_CreateRethrows(x->value.rethrows);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionThen(struct UnionThen * x) {
+void cJSON_DeleteUnionRethrows(struct UnionRethrows * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteThen(x->value.then);
+            cJSON_DeleteRethrows(x->value.rethrows);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionThrows * cJSON_GetUnionThrowsValue(const cJSON * j) {
-    struct UnionThrows * x = cJSON_malloc(sizeof(struct UnionThrows));
+struct UnionRight * cJSON_GetUnionRightValue(const cJSON * j) {
+    struct UnionRight * x = cJSON_malloc(sizeof(struct UnionRight));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionThrows));
+        memset(x, 0, sizeof(struct UnionRight));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.throws = cJSON_GetThrowsValue(j);
-            if (NULL == x->value.throws) x->type = 0;
+            x->value.right = cJSON_GetRightValue(j);
+            if (NULL == x->value.right) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionThrows * cJSON_ParseUnionThrows(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThrows * x = j ? cJSON_GetUnionThrowsValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionThrows(const struct UnionThrows * x) { cJSON * j = cJSON_CreateUnionThrows(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRight * cJSON_ParseUnionRight(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRight * x = j ? cJSON_GetUnionRightValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRight(const struct UnionRight * x) { cJSON * j = cJSON_CreateUnionRight(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionThrows(const struct UnionThrows * x) {
+cJSON * cJSON_CreateUnionRight(const struct UnionRight * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateThrows(x->value.throws);
+            j = cJSON_CreateRight(x->value.right);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionThrows(struct UnionThrows * x) {
+void cJSON_DeleteUnionRight(struct UnionRight * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteThrows(x->value.throws);
+            cJSON_DeleteRight(x->value.right);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionToJson * cJSON_GetUnionToJsonValue(const cJSON * j) {
-    struct UnionToJson * x = cJSON_malloc(sizeof(struct UnionToJson));
+struct UnionRuntimeType * cJSON_GetUnionRuntimeTypeValue(const cJSON * j) {
+    struct UnionRuntimeType * x = cJSON_malloc(sizeof(struct UnionRuntimeType));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionToJson));
+        memset(x, 0, sizeof(struct UnionRuntimeType));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.to_json = cJSON_GetToJsonValue(j);
-            if (NULL == x->value.to_json) x->type = 0;
+            x->value.runtime_type = cJSON_GetRuntimeTypeValue(j);
+            if (NULL == x->value.runtime_type) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionToJson * cJSON_ParseUnionToJson(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionToJson * x = j ? cJSON_GetUnionToJsonValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionToJson(const struct UnionToJson * x) { cJSON * j = cJSON_CreateUnionToJson(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRuntimeType * cJSON_ParseUnionRuntimeType(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRuntimeType * x = j ? cJSON_GetUnionRuntimeTypeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRuntimeType(const struct UnionRuntimeType * x) { cJSON * j = cJSON_CreateUnionRuntimeType(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionToJson(const struct UnionToJson * x) {
+cJSON * cJSON_CreateUnionRuntimeType(const struct UnionRuntimeType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateToJson(x->value.to_json);
+            j = cJSON_CreateRuntimeType(x->value.runtime_type);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionToJson(struct UnionToJson * x) {
+void cJSON_DeleteUnionRuntimeType(struct UnionRuntimeType * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteToJson(x->value.to_json);
+            cJSON_DeleteRuntimeType(x->value.runtime_type);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTopLevel * cJSON_GetUnionTopLevelValue(const cJSON * j) {
-    struct UnionTopLevel * x = cJSON_malloc(sizeof(struct UnionTopLevel));
+struct UnionS * cJSON_GetUnionSValue(const cJSON * j) {
+    struct UnionS * x = cJSON_malloc(sizeof(struct UnionS));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTopLevel));
+        memset(x, 0, sizeof(struct UnionS));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.top_level_class = cJSON_GetTopLevelClassValue(j);
-            if (NULL == x->value.top_level_class) x->type = 0;
+            x->value.s = cJSON_GetSValue(j);
+            if (NULL == x->value.s) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTopLevel * cJSON_ParseUnionTopLevel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTopLevel * x = j ? cJSON_GetUnionTopLevelValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTopLevel(const struct UnionTopLevel * x) { cJSON * j = cJSON_CreateUnionTopLevel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionS * cJSON_ParseUnionS(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionS * x = j ? cJSON_GetUnionSValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionS(const struct UnionS * x) { cJSON * j = cJSON_CreateUnionS(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTopLevel(const struct UnionTopLevel * x) {
+cJSON * cJSON_CreateUnionS(const struct UnionS * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTopLevelClass(x->value.top_level_class);
+            j = cJSON_CreateS(x->value.s);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTopLevel(struct UnionTopLevel * x) {
+void cJSON_DeleteUnionS(struct UnionS * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTopLevelClass(x->value.top_level_class);
+            cJSON_DeleteS(x->value.s);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAlignas * cJSON_GetUnionAlignasValue(const cJSON * j) {
-    struct UnionAlignas * x = cJSON_malloc(sizeof(struct UnionAlignas));
+struct UnionSbyte * cJSON_GetUnionSbyteValue(const cJSON * j) {
+    struct UnionSbyte * x = cJSON_malloc(sizeof(struct UnionSbyte));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAlignas));
+        memset(x, 0, sizeof(struct UnionSbyte));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_alignas = cJSON_GetAlignasValue(j);
-            if (NULL == x->value.purple_alignas) x->type = 0;
+            x->value.sbyte = cJSON_GetSbyteValue(j);
+            if (NULL == x->value.sbyte) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAlignas * cJSON_ParseUnionAlignas(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAlignas * x = j ? cJSON_GetUnionAlignasValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAlignas(const struct UnionAlignas * x) { cJSON * j = cJSON_CreateUnionAlignas(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSbyte * cJSON_ParseUnionSbyte(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSbyte * x = j ? cJSON_GetUnionSbyteValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSbyte(const struct UnionSbyte * x) { cJSON * j = cJSON_CreateUnionSbyte(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAlignas(const struct UnionAlignas * x) {
+cJSON * cJSON_CreateUnionSbyte(const struct UnionSbyte * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAlignas(x->value.purple_alignas);
+            j = cJSON_CreateSbyte(x->value.sbyte);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAlignas(struct UnionAlignas * x) {
+void cJSON_DeleteUnionSbyte(struct UnionSbyte * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAlignas(x->value.purple_alignas);
+            cJSON_DeleteSbyte(x->value.sbyte);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAlignof * cJSON_GetUnionAlignofValue(const cJSON * j) {
-    struct UnionAlignof * x = cJSON_malloc(sizeof(struct UnionAlignof));
+struct UnionSealed * cJSON_GetUnionSealedValue(const cJSON * j) {
+    struct UnionSealed * x = cJSON_malloc(sizeof(struct UnionSealed));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAlignof));
+        memset(x, 0, sizeof(struct UnionSealed));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_alignof = cJSON_GetAlignofValue(j);
-            if (NULL == x->value.purple_alignof) x->type = 0;
+            x->value.sealed = cJSON_GetSealedValue(j);
+            if (NULL == x->value.sealed) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAlignof * cJSON_ParseUnionAlignof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAlignof * x = j ? cJSON_GetUnionAlignofValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAlignof(const struct UnionAlignof * x) { cJSON * j = cJSON_CreateUnionAlignof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSealed * cJSON_ParseUnionSealed(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSealed * x = j ? cJSON_GetUnionSealedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSealed(const struct UnionSealed * x) { cJSON * j = cJSON_CreateUnionSealed(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAlignof(const struct UnionAlignof * x) {
+cJSON * cJSON_CreateUnionSealed(const struct UnionSealed * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAlignof(x->value.purple_alignof);
+            j = cJSON_CreateSealed(x->value.sealed);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAlignof(struct UnionAlignof * x) {
+void cJSON_DeleteUnionSealed(struct UnionSealed * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAlignof(x->value.purple_alignof);
+            cJSON_DeleteSealed(x->value.sealed);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAnd * cJSON_GetUnionAndValue(const cJSON * j) {
-    struct UnionAnd * x = cJSON_malloc(sizeof(struct UnionAnd));
+struct UnionSel * cJSON_GetUnionSelValue(const cJSON * j) {
+    struct UnionSel * x = cJSON_malloc(sizeof(struct UnionSel));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAnd));
+        memset(x, 0, sizeof(struct UnionSel));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_and = cJSON_GetAndValue(j);
-            if (NULL == x->value.purple_and) x->type = 0;
+            x->value.sel = cJSON_GetSelValue(j);
+            if (NULL == x->value.sel) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAnd * cJSON_ParseUnionAnd(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAnd * x = j ? cJSON_GetUnionAndValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAnd(const struct UnionAnd * x) { cJSON * j = cJSON_CreateUnionAnd(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSel * cJSON_ParseUnionSel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSel * x = j ? cJSON_GetUnionSelValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSel(const struct UnionSel * x) { cJSON * j = cJSON_CreateUnionSel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAnd(const struct UnionAnd * x) {
+cJSON * cJSON_CreateUnionSel(const struct UnionSel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAnd(x->value.purple_and);
+            j = cJSON_CreateSel(x->value.sel);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAnd(struct UnionAnd * x) {
+void cJSON_DeleteUnionSel(struct UnionSel * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAnd(x->value.purple_and);
+            cJSON_DeleteSel(x->value.sel);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAndEq * cJSON_GetUnionAndEqValue(const cJSON * j) {
-    struct UnionAndEq * x = cJSON_malloc(sizeof(struct UnionAndEq));
+struct UnionSelect * cJSON_GetUnionSelectValue(const cJSON * j) {
+    struct UnionSelect * x = cJSON_malloc(sizeof(struct UnionSelect));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAndEq));
+        memset(x, 0, sizeof(struct UnionSelect));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_and_eq = cJSON_GetAndEqValue(j);
-            if (NULL == x->value.purple_and_eq) x->type = 0;
+            x->value.select = cJSON_GetSelectValue(j);
+            if (NULL == x->value.select) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAndEq * cJSON_ParseUnionAndEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAndEq * x = j ? cJSON_GetUnionAndEqValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAndEq(const struct UnionAndEq * x) { cJSON * j = cJSON_CreateUnionAndEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSelect * cJSON_ParseUnionSelect(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelect * x = j ? cJSON_GetUnionSelectValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSelect(const struct UnionSelect * x) { cJSON * j = cJSON_CreateUnionSelect(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAndEq(const struct UnionAndEq * x) {
+cJSON * cJSON_CreateUnionSelect(const struct UnionSelect * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAndEq(x->value.purple_and_eq);
+            j = cJSON_CreateSelect(x->value.select);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAndEq(struct UnionAndEq * x) {
+void cJSON_DeleteUnionSelect(struct UnionSelect * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAndEq(x->value.purple_and_eq);
+            cJSON_DeleteSelect(x->value.select);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAnyUnion * cJSON_GetUnionAnyUnionValue(const cJSON * j) {
-    struct UnionAnyUnion * x = cJSON_malloc(sizeof(struct UnionAnyUnion));
+struct UnionSelf * cJSON_GetUnionSelfValue(const cJSON * j) {
+    struct UnionSelf * x = cJSON_malloc(sizeof(struct UnionSelf));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAnyUnion));
+        memset(x, 0, sizeof(struct UnionSelf));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.any_class = cJSON_GetAnyClassValue(j);
-            if (NULL == x->value.any_class) x->type = 0;
+            x->value.self = cJSON_GetSelfValue(j);
+            if (NULL == x->value.self) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAnyUnion * cJSON_ParseUnionAnyUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAnyUnion * x = j ? cJSON_GetUnionAnyUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAnyUnion(const struct UnionAnyUnion * x) { cJSON * j = cJSON_CreateUnionAnyUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSelf * cJSON_ParseUnionSelf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelf * x = j ? cJSON_GetUnionSelfValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSelf(const struct UnionSelf * x) { cJSON * j = cJSON_CreateUnionSelf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAnyUnion(const struct UnionAnyUnion * x) {
+cJSON * cJSON_CreateUnionSelf(const struct UnionSelf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAnyClass(x->value.any_class);
+            j = cJSON_CreateSelf(x->value.self);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAnyUnion(struct UnionAnyUnion * x) {
+void cJSON_DeleteUnionSelf(struct UnionSelf * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAnyClass(x->value.any_class);
+            cJSON_DeleteSelf(x->value.self);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAsm * cJSON_GetUnionAsmValue(const cJSON * j) {
-    struct UnionAsm * x = cJSON_malloc(sizeof(struct UnionAsm));
+struct UnionSerialize * cJSON_GetUnionSerializeValue(const cJSON * j) {
+    struct UnionSerialize * x = cJSON_malloc(sizeof(struct UnionSerialize));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAsm));
+        memset(x, 0, sizeof(struct UnionSerialize));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_asm = cJSON_GetAsmValue(j);
-            if (NULL == x->value.purple_asm) x->type = 0;
+            x->value.serialize = cJSON_GetSerializeValue(j);
+            if (NULL == x->value.serialize) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAsm * cJSON_ParseUnionAsm(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAsm * x = j ? cJSON_GetUnionAsmValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAsm(const struct UnionAsm * x) { cJSON * j = cJSON_CreateUnionAsm(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSerialize * cJSON_ParseUnionSerialize(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSerialize * x = j ? cJSON_GetUnionSerializeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSerialize(const struct UnionSerialize * x) { cJSON * j = cJSON_CreateUnionSerialize(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAsm(const struct UnionAsm * x) {
+cJSON * cJSON_CreateUnionSerialize(const struct UnionSerialize * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAsm(x->value.purple_asm);
+            j = cJSON_CreateSerialize(x->value.serialize);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAsm(struct UnionAsm * x) {
+void cJSON_DeleteUnionSerialize(struct UnionSerialize * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAsm(x->value.purple_asm);
+            cJSON_DeleteSerialize(x->value.serialize);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAtomicCancel * cJSON_GetUnionAtomicCancelValue(const cJSON * j) {
-    struct UnionAtomicCancel * x = cJSON_malloc(sizeof(struct UnionAtomicCancel));
+struct UnionSerializerProvider * cJSON_GetUnionSerializerProviderValue(const cJSON * j) {
+    struct UnionSerializerProvider * x = cJSON_malloc(sizeof(struct UnionSerializerProvider));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAtomicCancel));
+        memset(x, 0, sizeof(struct UnionSerializerProvider));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_atomic_cancel = cJSON_GetAtomicCancelValue(j);
-            if (NULL == x->value.purple_atomic_cancel) x->type = 0;
+            x->value.serializer_provider = cJSON_GetSerializerProviderValue(j);
+            if (NULL == x->value.serializer_provider) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAtomicCancel * cJSON_ParseUnionAtomicCancel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicCancel * x = j ? cJSON_GetUnionAtomicCancelValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAtomicCancel(const struct UnionAtomicCancel * x) { cJSON * j = cJSON_CreateUnionAtomicCancel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSerializerProvider * cJSON_ParseUnionSerializerProvider(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSerializerProvider * x = j ? cJSON_GetUnionSerializerProviderValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSerializerProvider(const struct UnionSerializerProvider * x) { cJSON * j = cJSON_CreateUnionSerializerProvider(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAtomicCancel(const struct UnionAtomicCancel * x) {
+cJSON * cJSON_CreateUnionSerializerProvider(const struct UnionSerializerProvider * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAtomicCancel(x->value.purple_atomic_cancel);
+            j = cJSON_CreateSerializerProvider(x->value.serializer_provider);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAtomicCancel(struct UnionAtomicCancel * x) {
+void cJSON_DeleteUnionSerializerProvider(struct UnionSerializerProvider * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAtomicCancel(x->value.purple_atomic_cancel);
+            cJSON_DeleteSerializerProvider(x->value.serializer_provider);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAtomicCommit * cJSON_GetUnionAtomicCommitValue(const cJSON * j) {
-    struct UnionAtomicCommit * x = cJSON_malloc(sizeof(struct UnionAtomicCommit));
+struct UnionSet * cJSON_GetUnionSetValue(const cJSON * j) {
+    struct UnionSet * x = cJSON_malloc(sizeof(struct UnionSet));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAtomicCommit));
+        memset(x, 0, sizeof(struct UnionSet));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_atomic_commit = cJSON_GetAtomicCommitValue(j);
-            if (NULL == x->value.purple_atomic_commit) x->type = 0;
+            x->value.set = cJSON_GetSetValue(j);
+            if (NULL == x->value.set) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAtomicCommit * cJSON_ParseUnionAtomicCommit(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicCommit * x = j ? cJSON_GetUnionAtomicCommitValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAtomicCommit(const struct UnionAtomicCommit * x) { cJSON * j = cJSON_CreateUnionAtomicCommit(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSet * cJSON_ParseUnionSet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSet * x = j ? cJSON_GetUnionSetValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSet(const struct UnionSet * x) { cJSON * j = cJSON_CreateUnionSet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAtomicCommit(const struct UnionAtomicCommit * x) {
+cJSON * cJSON_CreateUnionSet(const struct UnionSet * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAtomicCommit(x->value.purple_atomic_commit);
+            j = cJSON_CreateSet(x->value.set);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAtomicCommit(struct UnionAtomicCommit * x) {
+void cJSON_DeleteUnionSet(struct UnionSet * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAtomicCommit(x->value.purple_atomic_commit);
+            cJSON_DeleteSet(x->value.set);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAtomicNoexcept * cJSON_GetUnionAtomicNoexceptValue(const cJSON * j) {
-    struct UnionAtomicNoexcept * x = cJSON_malloc(sizeof(struct UnionAtomicNoexcept));
+struct UnionSimpleModule * cJSON_GetUnionSimpleModuleValue(const cJSON * j) {
+    struct UnionSimpleModule * x = cJSON_malloc(sizeof(struct UnionSimpleModule));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAtomicNoexcept));
+        memset(x, 0, sizeof(struct UnionSimpleModule));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_atomic_noexcept = cJSON_GetAtomicNoexceptValue(j);
-            if (NULL == x->value.purple_atomic_noexcept) x->type = 0;
+            x->value.simple_module = cJSON_GetSimpleModuleValue(j);
+            if (NULL == x->value.simple_module) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAtomicNoexcept * cJSON_ParseUnionAtomicNoexcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicNoexcept * x = j ? cJSON_GetUnionAtomicNoexceptValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAtomicNoexcept(const struct UnionAtomicNoexcept * x) { cJSON * j = cJSON_CreateUnionAtomicNoexcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSimpleModule * cJSON_ParseUnionSimpleModule(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSimpleModule * x = j ? cJSON_GetUnionSimpleModuleValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSimpleModule(const struct UnionSimpleModule * x) { cJSON * j = cJSON_CreateUnionSimpleModule(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAtomicNoexcept(const struct UnionAtomicNoexcept * x) {
+cJSON * cJSON_CreateUnionSimpleModule(const struct UnionSimpleModule * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAtomicNoexcept(x->value.purple_atomic_noexcept);
+            j = cJSON_CreateSimpleModule(x->value.simple_module);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAtomicNoexcept(struct UnionAtomicNoexcept * x) {
+void cJSON_DeleteUnionSimpleModule(struct UnionSimpleModule * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAtomicNoexcept(x->value.purple_atomic_noexcept);
+            cJSON_DeleteSimpleModule(x->value.simple_module);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionAuto * cJSON_GetUnionAutoValue(const cJSON * j) {
-    struct UnionAuto * x = cJSON_malloc(sizeof(struct UnionAuto));
+struct UnionStackalloc * cJSON_GetUnionStackallocValue(const cJSON * j) {
+    struct UnionStackalloc * x = cJSON_malloc(sizeof(struct UnionStackalloc));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionAuto));
+        memset(x, 0, sizeof(struct UnionStackalloc));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_auto = cJSON_GetAutoValue(j);
-            if (NULL == x->value.purple_auto) x->type = 0;
+            x->value.stackalloc = cJSON_GetStackallocValue(j);
+            if (NULL == x->value.stackalloc) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionAuto * cJSON_ParseUnionAuto(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAuto * x = j ? cJSON_GetUnionAutoValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionAuto(const struct UnionAuto * x) { cJSON * j = cJSON_CreateUnionAuto(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStackalloc * cJSON_ParseUnionStackalloc(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStackalloc * x = j ? cJSON_GetUnionStackallocValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStackalloc(const struct UnionStackalloc * x) { cJSON * j = cJSON_CreateUnionStackalloc(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionAuto(const struct UnionAuto * x) {
+cJSON * cJSON_CreateUnionStackalloc(const struct UnionStackalloc * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateAuto(x->value.purple_auto);
+            j = cJSON_CreateStackalloc(x->value.stackalloc);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionAuto(struct UnionAuto * x) {
+void cJSON_DeleteUnionStackalloc(struct UnionStackalloc * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteAuto(x->value.purple_auto);
+            cJSON_DeleteStackalloc(x->value.stackalloc);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionBitand * cJSON_GetUnionBitandValue(const cJSON * j) {
-    struct UnionBitand * x = cJSON_malloc(sizeof(struct UnionBitand));
+struct UnionStandards * cJSON_GetUnionStandardsValue(const cJSON * j) {
+    struct UnionStandards * x = cJSON_malloc(sizeof(struct UnionStandards));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionBitand));
+        memset(x, 0, sizeof(struct UnionStandards));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_bitand = cJSON_GetBitandValue(j);
-            if (NULL == x->value.purple_bitand) x->type = 0;
+            x->value.standards = cJSON_GetStandardsValue(j);
+            if (NULL == x->value.standards) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionBitand * cJSON_ParseUnionBitand(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBitand * x = j ? cJSON_GetUnionBitandValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionBitand(const struct UnionBitand * x) { cJSON * j = cJSON_CreateUnionBitand(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStandards * cJSON_ParseUnionStandards(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStandards * x = j ? cJSON_GetUnionStandardsValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStandards(const struct UnionStandards * x) { cJSON * j = cJSON_CreateUnionStandards(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionBitand(const struct UnionBitand * x) {
+cJSON * cJSON_CreateUnionStandards(const struct UnionStandards * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateBitand(x->value.purple_bitand);
+            j = cJSON_CreateStandards(x->value.standards);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionBitand(struct UnionBitand * x) {
+void cJSON_DeleteUnionStandards(struct UnionStandards * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteBitand(x->value.purple_bitand);
+            cJSON_DeleteStandards(x->value.standards);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionBitor * cJSON_GetUnionBitorValue(const cJSON * j) {
-    struct UnionBitor * x = cJSON_malloc(sizeof(struct UnionBitor));
+struct UnionStdDeserializer * cJSON_GetUnionStdDeserializerValue(const cJSON * j) {
+    struct UnionStdDeserializer * x = cJSON_malloc(sizeof(struct UnionStdDeserializer));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionBitor));
+        memset(x, 0, sizeof(struct UnionStdDeserializer));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_bitor = cJSON_GetBitorValue(j);
-            if (NULL == x->value.purple_bitor) x->type = 0;
+            x->value.std_deserializer = cJSON_GetStdDeserializerValue(j);
+            if (NULL == x->value.std_deserializer) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionBitor * cJSON_ParseUnionBitor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBitor * x = j ? cJSON_GetUnionBitorValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionBitor(const struct UnionBitor * x) { cJSON * j = cJSON_CreateUnionBitor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStdDeserializer * cJSON_ParseUnionStdDeserializer(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStdDeserializer * x = j ? cJSON_GetUnionStdDeserializerValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStdDeserializer(const struct UnionStdDeserializer * x) { cJSON * j = cJSON_CreateUnionStdDeserializer(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionBitor(const struct UnionBitor * x) {
+cJSON * cJSON_CreateUnionStdDeserializer(const struct UnionStdDeserializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateBitor(x->value.purple_bitor);
+            j = cJSON_CreateStdDeserializer(x->value.std_deserializer);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionBitor(struct UnionBitor * x) {
+void cJSON_DeleteUnionStdDeserializer(struct UnionStdDeserializer * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteBitor(x->value.purple_bitor);
+            cJSON_DeleteStdDeserializer(x->value.std_deserializer);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionBool * cJSON_GetUnionBoolValue(const cJSON * j) {
-    struct UnionBool * x = cJSON_malloc(sizeof(struct UnionBool));
+struct UnionStdSerializer * cJSON_GetUnionStdSerializerValue(const cJSON * j) {
+    struct UnionStdSerializer * x = cJSON_malloc(sizeof(struct UnionStdSerializer));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionBool));
+        memset(x, 0, sizeof(struct UnionStdSerializer));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.bool_class = cJSON_GetBoolClassValue(j);
-            if (NULL == x->value.bool_class) x->type = 0;
+            x->value.std_serializer = cJSON_GetStdSerializerValue(j);
+            if (NULL == x->value.std_serializer) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionBool * cJSON_ParseUnionBool(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBool * x = j ? cJSON_GetUnionBoolValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionBool(const struct UnionBool * x) { cJSON * j = cJSON_CreateUnionBool(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStdSerializer * cJSON_ParseUnionStdSerializer(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStdSerializer * x = j ? cJSON_GetUnionStdSerializerValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStdSerializer(const struct UnionStdSerializer * x) { cJSON * j = cJSON_CreateUnionStdSerializer(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionBool(const struct UnionBool * x) {
+cJSON * cJSON_CreateUnionStdSerializer(const struct UnionStdSerializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateBoolClass(x->value.bool_class);
+            j = cJSON_CreateStdSerializer(x->value.std_serializer);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionBool(struct UnionBool * x) {
+void cJSON_DeleteUnionStdSerializer(struct UnionStdSerializer * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteBoolClass(x->value.bool_class);
+            cJSON_DeleteStdSerializer(x->value.std_serializer);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionBreak * cJSON_GetUnionBreakValue(const cJSON * j) {
-    struct UnionBreak * x = cJSON_malloc(sizeof(struct UnionBreak));
+struct UnionStrictfp * cJSON_GetUnionStrictfpValue(const cJSON * j) {
+    struct UnionStrictfp * x = cJSON_malloc(sizeof(struct UnionStrictfp));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionBreak));
+        memset(x, 0, sizeof(struct UnionStrictfp));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_break = cJSON_GetBreakValue(j);
-            if (NULL == x->value.purple_break) x->type = 0;
+            x->value.strictfp = cJSON_GetStrictfpValue(j);
+            if (NULL == x->value.strictfp) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionBreak * cJSON_ParseUnionBreak(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBreak * x = j ? cJSON_GetUnionBreakValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionBreak(const struct UnionBreak * x) { cJSON * j = cJSON_CreateUnionBreak(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStrictfp * cJSON_ParseUnionStrictfp(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStrictfp * x = j ? cJSON_GetUnionStrictfpValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStrictfp(const struct UnionStrictfp * x) { cJSON * j = cJSON_CreateUnionStrictfp(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionBreak(const struct UnionBreak * x) {
+cJSON * cJSON_CreateUnionStrictfp(const struct UnionStrictfp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateBreak(x->value.purple_break);
+            j = cJSON_CreateStrictfp(x->value.strictfp);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionBreak(struct UnionBreak * x) {
+void cJSON_DeleteUnionStrictfp(struct UnionStrictfp * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteBreak(x->value.purple_break);
+            cJSON_DeleteStrictfp(x->value.strictfp);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCase * cJSON_GetUnionCaseValue(const cJSON * j) {
-    struct UnionCase * x = cJSON_malloc(sizeof(struct UnionCase));
+struct UnionString * cJSON_GetUnionStringValue(const cJSON * j) {
+    struct UnionString * x = cJSON_malloc(sizeof(struct UnionString));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCase));
+        memset(x, 0, sizeof(struct UnionString));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_case = cJSON_GetCaseValue(j);
-            if (NULL == x->value.purple_case) x->type = 0;
+            x->value.string_class = cJSON_GetStringClassValue(j);
+            if (NULL == x->value.string_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCase * cJSON_ParseUnionCase(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCase * x = j ? cJSON_GetUnionCaseValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCase(const struct UnionCase * x) { cJSON * j = cJSON_CreateUnionCase(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionString * cJSON_ParseUnionString(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionString * x = j ? cJSON_GetUnionStringValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionString(const struct UnionString * x) { cJSON * j = cJSON_CreateUnionString(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCase(const struct UnionCase * x) {
+cJSON * cJSON_CreateUnionString(const struct UnionString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCase(x->value.purple_case);
+            j = cJSON_CreateStringClass(x->value.string_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCase(struct UnionCase * x) {
+void cJSON_DeleteUnionString(struct UnionString * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCase(x->value.purple_case);
+            cJSON_DeleteStringClass(x->value.string_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCatch * cJSON_GetUnionCatchValue(const cJSON * j) {
-    struct UnionCatch * x = cJSON_malloc(sizeof(struct UnionCatch));
+struct UnionSubscript * cJSON_GetUnionSubscriptValue(const cJSON * j) {
+    struct UnionSubscript * x = cJSON_malloc(sizeof(struct UnionSubscript));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCatch));
+        memset(x, 0, sizeof(struct UnionSubscript));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_catch = cJSON_GetCatchValue(j);
-            if (NULL == x->value.purple_catch) x->type = 0;
+            x->value.subscript = cJSON_GetSubscriptValue(j);
+            if (NULL == x->value.subscript) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCatch * cJSON_ParseUnionCatch(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCatch * x = j ? cJSON_GetUnionCatchValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCatch(const struct UnionCatch * x) { cJSON * j = cJSON_CreateUnionCatch(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSubscript * cJSON_ParseUnionSubscript(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSubscript * x = j ? cJSON_GetUnionSubscriptValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSubscript(const struct UnionSubscript * x) { cJSON * j = cJSON_CreateUnionSubscript(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCatch(const struct UnionCatch * x) {
+cJSON * cJSON_CreateUnionSubscript(const struct UnionSubscript * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCatch(x->value.purple_catch);
+            j = cJSON_CreateSubscript(x->value.subscript);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCatch(struct UnionCatch * x) {
+void cJSON_DeleteUnionSubscript(struct UnionSubscript * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCatch(x->value.purple_catch);
+            cJSON_DeleteSubscript(x->value.subscript);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionChar * cJSON_GetUnionCharValue(const cJSON * j) {
-    struct UnionChar * x = cJSON_malloc(sizeof(struct UnionChar));
+struct UnionSuper * cJSON_GetUnionSuperValue(const cJSON * j) {
+    struct UnionSuper * x = cJSON_malloc(sizeof(struct UnionSuper));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionChar));
+        memset(x, 0, sizeof(struct UnionSuper));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_char = cJSON_GetCharValue(j);
-            if (NULL == x->value.purple_char) x->type = 0;
+            x->value.super = cJSON_GetSuperValue(j);
+            if (NULL == x->value.super) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionChar * cJSON_ParseUnionChar(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar * x = j ? cJSON_GetUnionCharValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionChar(const struct UnionChar * x) { cJSON * j = cJSON_CreateUnionChar(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSuper * cJSON_ParseUnionSuper(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSuper * x = j ? cJSON_GetUnionSuperValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSuper(const struct UnionSuper * x) { cJSON * j = cJSON_CreateUnionSuper(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionChar(const struct UnionChar * x) {
+cJSON * cJSON_CreateUnionSuper(const struct UnionSuper * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateChar(x->value.purple_char);
+            j = cJSON_CreateSuper(x->value.super);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionChar(struct UnionChar * x) {
+void cJSON_DeleteUnionSuper(struct UnionSuper * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteChar(x->value.purple_char);
+            cJSON_DeleteSuper(x->value.super);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionChar16T * cJSON_GetUnionChar16TValue(const cJSON * j) {
-    struct UnionChar16T * x = cJSON_malloc(sizeof(struct UnionChar16T));
+struct UnionSymbol * cJSON_GetUnionSymbolValue(const cJSON * j) {
+    struct UnionSymbol * x = cJSON_malloc(sizeof(struct UnionSymbol));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionChar16T));
+        memset(x, 0, sizeof(struct UnionSymbol));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_char16_t = cJSON_GetChar16TValue(j);
-            if (NULL == x->value.purple_char16_t) x->type = 0;
+            x->value.symbol = cJSON_GetSymbolValue(j);
+            if (NULL == x->value.symbol) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionChar16T * cJSON_ParseUnionChar16T(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar16T * x = j ? cJSON_GetUnionChar16TValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionChar16T(const struct UnionChar16T * x) { cJSON * j = cJSON_CreateUnionChar16T(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSymbol * cJSON_ParseUnionSymbol(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSymbol * x = j ? cJSON_GetUnionSymbolValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSymbol(const struct UnionSymbol * x) { cJSON * j = cJSON_CreateUnionSymbol(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionChar16T(const struct UnionChar16T * x) {
+cJSON * cJSON_CreateUnionSymbol(const struct UnionSymbol * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateChar16T(x->value.purple_char16_t);
+            j = cJSON_CreateSymbol(x->value.symbol);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionChar16T(struct UnionChar16T * x) {
+void cJSON_DeleteUnionSymbol(struct UnionSymbol * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteChar16T(x->value.purple_char16_t);
+            cJSON_DeleteSymbol(x->value.symbol);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionChar32T * cJSON_GetUnionChar32TValue(const cJSON * j) {
-    struct UnionChar32T * x = cJSON_malloc(sizeof(struct UnionChar32T));
+struct UnionSystem * cJSON_GetUnionSystemValue(const cJSON * j) {
+    struct UnionSystem * x = cJSON_malloc(sizeof(struct UnionSystem));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionChar32T));
+        memset(x, 0, sizeof(struct UnionSystem));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_char32_t = cJSON_GetChar32TValue(j);
-            if (NULL == x->value.purple_char32_t) x->type = 0;
+            x->value.system = cJSON_GetSystemValue(j);
+            if (NULL == x->value.system) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionChar32T * cJSON_ParseUnionChar32T(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar32T * x = j ? cJSON_GetUnionChar32TValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionChar32T(const struct UnionChar32T * x) { cJSON * j = cJSON_CreateUnionChar32T(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSystem * cJSON_ParseUnionSystem(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSystem * x = j ? cJSON_GetUnionSystemValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSystem(const struct UnionSystem * x) { cJSON * j = cJSON_CreateUnionSystem(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionChar32T(const struct UnionChar32T * x) {
+cJSON * cJSON_CreateUnionSystem(const struct UnionSystem * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateChar32T(x->value.purple_char32_t);
+            j = cJSON_CreateSystem(x->value.system);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionChar32T(struct UnionChar32T * x) {
+void cJSON_DeleteUnionSystem(struct UnionSystem * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteChar32T(x->value.purple_char32_t);
+            cJSON_DeleteSystem(x->value.system);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionClass * cJSON_GetUnionClassValue(const cJSON * j) {
-    struct UnionClass * x = cJSON_malloc(sizeof(struct UnionClass));
+struct UnionThen * cJSON_GetUnionThenValue(const cJSON * j) {
+    struct UnionThen * x = cJSON_malloc(sizeof(struct UnionThen));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionClass));
+        memset(x, 0, sizeof(struct UnionThen));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_class = cJSON_GetClassValue(j);
-            if (NULL == x->value.purple_class) x->type = 0;
+            x->value.then = cJSON_GetThenValue(j);
+            if (NULL == x->value.then) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionClass * cJSON_ParseUnionClass(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionClass * x = j ? cJSON_GetUnionClassValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionClass(const struct UnionClass * x) { cJSON * j = cJSON_CreateUnionClass(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionThen * cJSON_ParseUnionThen(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThen * x = j ? cJSON_GetUnionThenValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionThen(const struct UnionThen * x) { cJSON * j = cJSON_CreateUnionThen(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionClass(const struct UnionClass * x) {
+cJSON * cJSON_CreateUnionThen(const struct UnionThen * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateClass(x->value.purple_class);
+            j = cJSON_CreateThen(x->value.then);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionClass(struct UnionClass * x) {
+void cJSON_DeleteUnionThen(struct UnionThen * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteClass(x->value.purple_class);
+            cJSON_DeleteThen(x->value.then);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCoAwait * cJSON_GetUnionCoAwaitValue(const cJSON * j) {
-    struct UnionCoAwait * x = cJSON_malloc(sizeof(struct UnionCoAwait));
+struct UnionThrows * cJSON_GetUnionThrowsValue(const cJSON * j) {
+    struct UnionThrows * x = cJSON_malloc(sizeof(struct UnionThrows));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCoAwait));
+        memset(x, 0, sizeof(struct UnionThrows));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_co_await = cJSON_GetCoAwaitValue(j);
-            if (NULL == x->value.purple_co_await) x->type = 0;
+            x->value.throws = cJSON_GetThrowsValue(j);
+            if (NULL == x->value.throws) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCoAwait * cJSON_ParseUnionCoAwait(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoAwait * x = j ? cJSON_GetUnionCoAwaitValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCoAwait(const struct UnionCoAwait * x) { cJSON * j = cJSON_CreateUnionCoAwait(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionThrows * cJSON_ParseUnionThrows(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThrows * x = j ? cJSON_GetUnionThrowsValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionThrows(const struct UnionThrows * x) { cJSON * j = cJSON_CreateUnionThrows(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCoAwait(const struct UnionCoAwait * x) {
+cJSON * cJSON_CreateUnionThrows(const struct UnionThrows * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCoAwait(x->value.purple_co_await);
+            j = cJSON_CreateThrows(x->value.throws);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCoAwait(struct UnionCoAwait * x) {
+void cJSON_DeleteUnionThrows(struct UnionThrows * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCoAwait(x->value.purple_co_await);
+            cJSON_DeleteThrows(x->value.throws);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCoReturn * cJSON_GetUnionCoReturnValue(const cJSON * j) {
-    struct UnionCoReturn * x = cJSON_malloc(sizeof(struct UnionCoReturn));
+struct UnionTimeOnly * cJSON_GetUnionTimeOnlyValue(const cJSON * j) {
+    struct UnionTimeOnly * x = cJSON_malloc(sizeof(struct UnionTimeOnly));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCoReturn));
+        memset(x, 0, sizeof(struct UnionTimeOnly));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_co_return = cJSON_GetCoReturnValue(j);
-            if (NULL == x->value.purple_co_return) x->type = 0;
+            x->value.time_only = cJSON_GetTimeOnlyValue(j);
+            if (NULL == x->value.time_only) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCoReturn * cJSON_ParseUnionCoReturn(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoReturn * x = j ? cJSON_GetUnionCoReturnValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCoReturn(const struct UnionCoReturn * x) { cJSON * j = cJSON_CreateUnionCoReturn(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTimeOnly * cJSON_ParseUnionTimeOnly(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTimeOnly * x = j ? cJSON_GetUnionTimeOnlyValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTimeOnly(const struct UnionTimeOnly * x) { cJSON * j = cJSON_CreateUnionTimeOnly(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCoReturn(const struct UnionCoReturn * x) {
+cJSON * cJSON_CreateUnionTimeOnly(const struct UnionTimeOnly * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCoReturn(x->value.purple_co_return);
+            j = cJSON_CreateTimeOnly(x->value.time_only);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCoReturn(struct UnionCoReturn * x) {
+void cJSON_DeleteUnionTimeOnly(struct UnionTimeOnly * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCoReturn(x->value.purple_co_return);
+            cJSON_DeleteTimeOnly(x->value.time_only);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCoYield * cJSON_GetUnionCoYieldValue(const cJSON * j) {
-    struct UnionCoYield * x = cJSON_malloc(sizeof(struct UnionCoYield));
+struct UnionTimeOnlyConverter * cJSON_GetUnionTimeOnlyConverterValue(const cJSON * j) {
+    struct UnionTimeOnlyConverter * x = cJSON_malloc(sizeof(struct UnionTimeOnlyConverter));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCoYield));
+        memset(x, 0, sizeof(struct UnionTimeOnlyConverter));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_co_yield = cJSON_GetCoYieldValue(j);
-            if (NULL == x->value.purple_co_yield) x->type = 0;
+            x->value.time_only_converter = cJSON_GetTimeOnlyConverterValue(j);
+            if (NULL == x->value.time_only_converter) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCoYield * cJSON_ParseUnionCoYield(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoYield * x = j ? cJSON_GetUnionCoYieldValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCoYield(const struct UnionCoYield * x) { cJSON * j = cJSON_CreateUnionCoYield(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTimeOnlyConverter * cJSON_ParseUnionTimeOnlyConverter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTimeOnlyConverter * x = j ? cJSON_GetUnionTimeOnlyConverterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTimeOnlyConverter(const struct UnionTimeOnlyConverter * x) { cJSON * j = cJSON_CreateUnionTimeOnlyConverter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCoYield(const struct UnionCoYield * x) {
+cJSON * cJSON_CreateUnionTimeOnlyConverter(const struct UnionTimeOnlyConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCoYield(x->value.purple_co_yield);
+            j = cJSON_CreateTimeOnlyConverter(x->value.time_only_converter);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCoYield(struct UnionCoYield * x) {
+void cJSON_DeleteUnionTimeOnlyConverter(struct UnionTimeOnlyConverter * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCoYield(x->value.purple_co_yield);
+            cJSON_DeleteTimeOnlyConverter(x->value.time_only_converter);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionCompl * cJSON_GetUnionComplValue(const cJSON * j) {
-    struct UnionCompl * x = cJSON_malloc(sizeof(struct UnionCompl));
+struct UnionToJson * cJSON_GetUnionToJsonValue(const cJSON * j) {
+    struct UnionToJson * x = cJSON_malloc(sizeof(struct UnionToJson));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionCompl));
+        memset(x, 0, sizeof(struct UnionToJson));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_compl = cJSON_GetComplValue(j);
-            if (NULL == x->value.purple_compl) x->type = 0;
+            x->value.to_json = cJSON_GetToJsonValue(j);
+            if (NULL == x->value.to_json) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionCompl * cJSON_ParseUnionCompl(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCompl * x = j ? cJSON_GetUnionComplValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionCompl(const struct UnionCompl * x) { cJSON * j = cJSON_CreateUnionCompl(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionToJson * cJSON_ParseUnionToJson(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionToJson * x = j ? cJSON_GetUnionToJsonValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionToJson(const struct UnionToJson * x) { cJSON * j = cJSON_CreateUnionToJson(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionCompl(const struct UnionCompl * x) {
+cJSON * cJSON_CreateUnionToJson(const struct UnionToJson * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateCompl(x->value.purple_compl);
+            j = cJSON_CreateToJson(x->value.to_json);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionCompl(struct UnionCompl * x) {
+void cJSON_DeleteUnionToJson(struct UnionToJson * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteCompl(x->value.purple_compl);
+            cJSON_DeleteToJson(x->value.to_json);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionConcept * cJSON_GetUnionConceptValue(const cJSON * j) {
-    struct UnionConcept * x = cJSON_malloc(sizeof(struct UnionConcept));
+struct UnionToString * cJSON_GetUnionToStringValue(const cJSON * j) {
+    struct UnionToString * x = cJSON_malloc(sizeof(struct UnionToString));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionConcept));
+        memset(x, 0, sizeof(struct UnionToString));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_concept = cJSON_GetConceptValue(j);
-            if (NULL == x->value.purple_concept) x->type = 0;
+            x->value.to_string = cJSON_GetToStringValue(j);
+            if (NULL == x->value.to_string) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionConcept * cJSON_ParseUnionConcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConcept * x = j ? cJSON_GetUnionConceptValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionConcept(const struct UnionConcept * x) { cJSON * j = cJSON_CreateUnionConcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionToString * cJSON_ParseUnionToString(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionToString * x = j ? cJSON_GetUnionToStringValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionToString(const struct UnionToString * x) { cJSON * j = cJSON_CreateUnionToString(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionConcept(const struct UnionConcept * x) {
+cJSON * cJSON_CreateUnionToString(const struct UnionToString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateConcept(x->value.purple_concept);
+            j = cJSON_CreateToString(x->value.to_string);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionConcept(struct UnionConcept * x) {
+void cJSON_DeleteUnionToString(struct UnionToString * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteConcept(x->value.purple_concept);
+            cJSON_DeleteToString(x->value.to_string);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionConst * cJSON_GetUnionConstValue(const cJSON * j) {
-    struct UnionConst * x = cJSON_malloc(sizeof(struct UnionConst));
+struct UnionTopLevel * cJSON_GetUnionTopLevelValue(const cJSON * j) {
+    struct UnionTopLevel * x = cJSON_malloc(sizeof(struct UnionTopLevel));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionConst));
+        memset(x, 0, sizeof(struct UnionTopLevel));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_const = cJSON_GetConstValue(j);
-            if (NULL == x->value.purple_const) x->type = 0;
+            x->value.top_level_class = cJSON_GetTopLevelClassValue(j);
+            if (NULL == x->value.top_level_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionConst * cJSON_ParseUnionConst(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConst * x = j ? cJSON_GetUnionConstValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionConst(const struct UnionConst * x) { cJSON * j = cJSON_CreateUnionConst(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTopLevel * cJSON_ParseUnionTopLevel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTopLevel * x = j ? cJSON_GetUnionTopLevelValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTopLevel(const struct UnionTopLevel * x) { cJSON * j = cJSON_CreateUnionTopLevel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionConst(const struct UnionConst * x) {
+cJSON * cJSON_CreateUnionTopLevel(const struct UnionTopLevel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateConst(x->value.purple_const);
+            j = cJSON_CreateTopLevelClass(x->value.top_level_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionConst(struct UnionConst * x) {
+void cJSON_DeleteUnionTopLevel(struct UnionTopLevel * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteConst(x->value.purple_const);
+            cJSON_DeleteTopLevelClass(x->value.top_level_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionConstCast * cJSON_GetUnionConstCastValue(const cJSON * j) {
-    struct UnionConstCast * x = cJSON_malloc(sizeof(struct UnionConstCast));
+struct UnionAlignas * cJSON_GetUnionAlignasValue(const cJSON * j) {
+    struct UnionAlignas * x = cJSON_malloc(sizeof(struct UnionAlignas));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionConstCast));
+        memset(x, 0, sizeof(struct UnionAlignas));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_const_cast = cJSON_GetConstCastValue(j);
-            if (NULL == x->value.purple_const_cast) x->type = 0;
+            x->value.purple_alignas = cJSON_GetAlignasValue(j);
+            if (NULL == x->value.purple_alignas) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionConstCast * cJSON_ParseUnionConstCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConstCast * x = j ? cJSON_GetUnionConstCastValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionConstCast(const struct UnionConstCast * x) { cJSON * j = cJSON_CreateUnionConstCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAlignas * cJSON_ParseUnionAlignas(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAlignas * x = j ? cJSON_GetUnionAlignasValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAlignas(const struct UnionAlignas * x) { cJSON * j = cJSON_CreateUnionAlignas(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionConstCast(const struct UnionConstCast * x) {
+cJSON * cJSON_CreateUnionAlignas(const struct UnionAlignas * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateConstCast(x->value.purple_const_cast);
+            j = cJSON_CreateAlignas(x->value.purple_alignas);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionConstCast(struct UnionConstCast * x) {
+void cJSON_DeleteUnionAlignas(struct UnionAlignas * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteConstCast(x->value.purple_const_cast);
+            cJSON_DeleteAlignas(x->value.purple_alignas);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionConstexpr * cJSON_GetUnionConstexprValue(const cJSON * j) {
-    struct UnionConstexpr * x = cJSON_malloc(sizeof(struct UnionConstexpr));
+struct UnionAlignof * cJSON_GetUnionAlignofValue(const cJSON * j) {
+    struct UnionAlignof * x = cJSON_malloc(sizeof(struct UnionAlignof));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionConstexpr));
+        memset(x, 0, sizeof(struct UnionAlignof));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_constexpr = cJSON_GetConstexprValue(j);
-            if (NULL == x->value.purple_constexpr) x->type = 0;
+            x->value.purple_alignof = cJSON_GetAlignofValue(j);
+            if (NULL == x->value.purple_alignof) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionConstexpr * cJSON_ParseUnionConstexpr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConstexpr * x = j ? cJSON_GetUnionConstexprValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionConstexpr(const struct UnionConstexpr * x) { cJSON * j = cJSON_CreateUnionConstexpr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAlignof * cJSON_ParseUnionAlignof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAlignof * x = j ? cJSON_GetUnionAlignofValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAlignof(const struct UnionAlignof * x) { cJSON * j = cJSON_CreateUnionAlignof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionConstexpr(const struct UnionConstexpr * x) {
+cJSON * cJSON_CreateUnionAlignof(const struct UnionAlignof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateConstexpr(x->value.purple_constexpr);
+            j = cJSON_CreateAlignof(x->value.purple_alignof);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionConstexpr(struct UnionConstexpr * x) {
+void cJSON_DeleteUnionAlignof(struct UnionAlignof * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteConstexpr(x->value.purple_constexpr);
+            cJSON_DeleteAlignof(x->value.purple_alignof);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionContinue * cJSON_GetUnionContinueValue(const cJSON * j) {
-    struct UnionContinue * x = cJSON_malloc(sizeof(struct UnionContinue));
+struct UnionAnd * cJSON_GetUnionAndValue(const cJSON * j) {
+    struct UnionAnd * x = cJSON_malloc(sizeof(struct UnionAnd));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionContinue));
+        memset(x, 0, sizeof(struct UnionAnd));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_continue = cJSON_GetContinueValue(j);
-            if (NULL == x->value.purple_continue) x->type = 0;
+            x->value.purple_and = cJSON_GetAndValue(j);
+            if (NULL == x->value.purple_and) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionContinue * cJSON_ParseUnionContinue(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionContinue * x = j ? cJSON_GetUnionContinueValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionContinue(const struct UnionContinue * x) { cJSON * j = cJSON_CreateUnionContinue(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAnd * cJSON_ParseUnionAnd(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAnd * x = j ? cJSON_GetUnionAndValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAnd(const struct UnionAnd * x) { cJSON * j = cJSON_CreateUnionAnd(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionContinue(const struct UnionContinue * x) {
+cJSON * cJSON_CreateUnionAnd(const struct UnionAnd * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateContinue(x->value.purple_continue);
+            j = cJSON_CreateAnd(x->value.purple_and);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionContinue(struct UnionContinue * x) {
+void cJSON_DeleteUnionAnd(struct UnionAnd * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteContinue(x->value.purple_continue);
+            cJSON_DeleteAnd(x->value.purple_and);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDecltype * cJSON_GetUnionDecltypeValue(const cJSON * j) {
-    struct UnionDecltype * x = cJSON_malloc(sizeof(struct UnionDecltype));
+struct UnionAndEq * cJSON_GetUnionAndEqValue(const cJSON * j) {
+    struct UnionAndEq * x = cJSON_malloc(sizeof(struct UnionAndEq));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDecltype));
+        memset(x, 0, sizeof(struct UnionAndEq));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_decltype = cJSON_GetDecltypeValue(j);
-            if (NULL == x->value.purple_decltype) x->type = 0;
+            x->value.purple_and_eq = cJSON_GetAndEqValue(j);
+            if (NULL == x->value.purple_and_eq) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDecltype * cJSON_ParseUnionDecltype(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDecltype * x = j ? cJSON_GetUnionDecltypeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDecltype(const struct UnionDecltype * x) { cJSON * j = cJSON_CreateUnionDecltype(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAndEq * cJSON_ParseUnionAndEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAndEq * x = j ? cJSON_GetUnionAndEqValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAndEq(const struct UnionAndEq * x) { cJSON * j = cJSON_CreateUnionAndEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDecltype(const struct UnionDecltype * x) {
+cJSON * cJSON_CreateUnionAndEq(const struct UnionAndEq * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDecltype(x->value.purple_decltype);
+            j = cJSON_CreateAndEq(x->value.purple_and_eq);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDecltype(struct UnionDecltype * x) {
+void cJSON_DeleteUnionAndEq(struct UnionAndEq * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDecltype(x->value.purple_decltype);
+            cJSON_DeleteAndEq(x->value.purple_and_eq);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDefault * cJSON_GetUnionDefaultValue(const cJSON * j) {
-    struct UnionDefault * x = cJSON_malloc(sizeof(struct UnionDefault));
+struct UnionAnyUnion * cJSON_GetUnionAnyUnionValue(const cJSON * j) {
+    struct UnionAnyUnion * x = cJSON_malloc(sizeof(struct UnionAnyUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDefault));
+        memset(x, 0, sizeof(struct UnionAnyUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_default = cJSON_GetDefaultValue(j);
-            if (NULL == x->value.purple_default) x->type = 0;
+            x->value.any_class = cJSON_GetAnyClassValue(j);
+            if (NULL == x->value.any_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDefault * cJSON_ParseUnionDefault(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDefault * x = j ? cJSON_GetUnionDefaultValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDefault(const struct UnionDefault * x) { cJSON * j = cJSON_CreateUnionDefault(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAnyUnion * cJSON_ParseUnionAnyUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAnyUnion * x = j ? cJSON_GetUnionAnyUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAnyUnion(const struct UnionAnyUnion * x) { cJSON * j = cJSON_CreateUnionAnyUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDefault(const struct UnionDefault * x) {
+cJSON * cJSON_CreateUnionAnyUnion(const struct UnionAnyUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDefault(x->value.purple_default);
+            j = cJSON_CreateAnyClass(x->value.any_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDefault(struct UnionDefault * x) {
+void cJSON_DeleteUnionAnyUnion(struct UnionAnyUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDefault(x->value.purple_default);
+            cJSON_DeleteAnyClass(x->value.any_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDelete * cJSON_GetUnionDeleteValue(const cJSON * j) {
-    struct UnionDelete * x = cJSON_malloc(sizeof(struct UnionDelete));
+struct UnionAsm * cJSON_GetUnionAsmValue(const cJSON * j) {
+    struct UnionAsm * x = cJSON_malloc(sizeof(struct UnionAsm));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDelete));
+        memset(x, 0, sizeof(struct UnionAsm));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_delete = cJSON_GetDeleteValue(j);
-            if (NULL == x->value.purple_delete) x->type = 0;
+            x->value.purple_asm = cJSON_GetAsmValue(j);
+            if (NULL == x->value.purple_asm) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDelete * cJSON_ParseUnionDelete(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDelete * x = j ? cJSON_GetUnionDeleteValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDelete(const struct UnionDelete * x) { cJSON * j = cJSON_CreateUnionDelete(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAsm * cJSON_ParseUnionAsm(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAsm * x = j ? cJSON_GetUnionAsmValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAsm(const struct UnionAsm * x) { cJSON * j = cJSON_CreateUnionAsm(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDelete(const struct UnionDelete * x) {
+cJSON * cJSON_CreateUnionAsm(const struct UnionAsm * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDelete(x->value.purple_delete);
+            j = cJSON_CreateAsm(x->value.purple_asm);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDelete(struct UnionDelete * x) {
+void cJSON_DeleteUnionAsm(struct UnionAsm * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDelete(x->value.purple_delete);
+            cJSON_DeleteAsm(x->value.purple_asm);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDo * cJSON_GetUnionDoValue(const cJSON * j) {
-    struct UnionDo * x = cJSON_malloc(sizeof(struct UnionDo));
+struct UnionAtomicCancel * cJSON_GetUnionAtomicCancelValue(const cJSON * j) {
+    struct UnionAtomicCancel * x = cJSON_malloc(sizeof(struct UnionAtomicCancel));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDo));
+        memset(x, 0, sizeof(struct UnionAtomicCancel));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_do = cJSON_GetDoValue(j);
-            if (NULL == x->value.purple_do) x->type = 0;
+            x->value.purple_atomic_cancel = cJSON_GetAtomicCancelValue(j);
+            if (NULL == x->value.purple_atomic_cancel) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDo * cJSON_ParseUnionDo(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDo * x = j ? cJSON_GetUnionDoValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDo(const struct UnionDo * x) { cJSON * j = cJSON_CreateUnionDo(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAtomicCancel * cJSON_ParseUnionAtomicCancel(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicCancel * x = j ? cJSON_GetUnionAtomicCancelValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAtomicCancel(const struct UnionAtomicCancel * x) { cJSON * j = cJSON_CreateUnionAtomicCancel(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDo(const struct UnionDo * x) {
+cJSON * cJSON_CreateUnionAtomicCancel(const struct UnionAtomicCancel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDo(x->value.purple_do);
+            j = cJSON_CreateAtomicCancel(x->value.purple_atomic_cancel);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDo(struct UnionDo * x) {
+void cJSON_DeleteUnionAtomicCancel(struct UnionAtomicCancel * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDo(x->value.purple_do);
+            cJSON_DeleteAtomicCancel(x->value.purple_atomic_cancel);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDouble * cJSON_GetUnionDoubleValue(const cJSON * j) {
-    struct UnionDouble * x = cJSON_malloc(sizeof(struct UnionDouble));
+struct UnionAtomicCommit * cJSON_GetUnionAtomicCommitValue(const cJSON * j) {
+    struct UnionAtomicCommit * x = cJSON_malloc(sizeof(struct UnionAtomicCommit));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDouble));
+        memset(x, 0, sizeof(struct UnionAtomicCommit));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_double = cJSON_GetDoubleValue(j);
-            if (NULL == x->value.purple_double) x->type = 0;
+            x->value.purple_atomic_commit = cJSON_GetAtomicCommitValue(j);
+            if (NULL == x->value.purple_atomic_commit) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDouble * cJSON_ParseUnionDouble(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDouble * x = j ? cJSON_GetUnionDoubleValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDouble(const struct UnionDouble * x) { cJSON * j = cJSON_CreateUnionDouble(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAtomicCommit * cJSON_ParseUnionAtomicCommit(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicCommit * x = j ? cJSON_GetUnionAtomicCommitValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAtomicCommit(const struct UnionAtomicCommit * x) { cJSON * j = cJSON_CreateUnionAtomicCommit(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDouble(const struct UnionDouble * x) {
+cJSON * cJSON_CreateUnionAtomicCommit(const struct UnionAtomicCommit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDouble(x->value.purple_double);
+            j = cJSON_CreateAtomicCommit(x->value.purple_atomic_commit);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDouble(struct UnionDouble * x) {
+void cJSON_DeleteUnionAtomicCommit(struct UnionAtomicCommit * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDouble(x->value.purple_double);
+            cJSON_DeleteAtomicCommit(x->value.purple_atomic_commit);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionDynamicCast * cJSON_GetUnionDynamicCastValue(const cJSON * j) {
-    struct UnionDynamicCast * x = cJSON_malloc(sizeof(struct UnionDynamicCast));
+struct UnionAtomicNoexcept * cJSON_GetUnionAtomicNoexceptValue(const cJSON * j) {
+    struct UnionAtomicNoexcept * x = cJSON_malloc(sizeof(struct UnionAtomicNoexcept));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionDynamicCast));
+        memset(x, 0, sizeof(struct UnionAtomicNoexcept));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_dynamic_cast = cJSON_GetDynamicCastValue(j);
-            if (NULL == x->value.purple_dynamic_cast) x->type = 0;
+            x->value.purple_atomic_noexcept = cJSON_GetAtomicNoexceptValue(j);
+            if (NULL == x->value.purple_atomic_noexcept) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionDynamicCast * cJSON_ParseUnionDynamicCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDynamicCast * x = j ? cJSON_GetUnionDynamicCastValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionDynamicCast(const struct UnionDynamicCast * x) { cJSON * j = cJSON_CreateUnionDynamicCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAtomicNoexcept * cJSON_ParseUnionAtomicNoexcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAtomicNoexcept * x = j ? cJSON_GetUnionAtomicNoexceptValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAtomicNoexcept(const struct UnionAtomicNoexcept * x) { cJSON * j = cJSON_CreateUnionAtomicNoexcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionDynamicCast(const struct UnionDynamicCast * x) {
+cJSON * cJSON_CreateUnionAtomicNoexcept(const struct UnionAtomicNoexcept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateDynamicCast(x->value.purple_dynamic_cast);
+            j = cJSON_CreateAtomicNoexcept(x->value.purple_atomic_noexcept);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionDynamicCast(struct UnionDynamicCast * x) {
+void cJSON_DeleteUnionAtomicNoexcept(struct UnionAtomicNoexcept * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteDynamicCast(x->value.purple_dynamic_cast);
+            cJSON_DeleteAtomicNoexcept(x->value.purple_atomic_noexcept);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionElse * cJSON_GetUnionElseValue(const cJSON * j) {
-    struct UnionElse * x = cJSON_malloc(sizeof(struct UnionElse));
+struct UnionAuto * cJSON_GetUnionAutoValue(const cJSON * j) {
+    struct UnionAuto * x = cJSON_malloc(sizeof(struct UnionAuto));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionElse));
+        memset(x, 0, sizeof(struct UnionAuto));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_else = cJSON_GetElseValue(j);
-            if (NULL == x->value.purple_else) x->type = 0;
+            x->value.purple_auto = cJSON_GetAutoValue(j);
+            if (NULL == x->value.purple_auto) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionElse * cJSON_ParseUnionElse(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionElse * x = j ? cJSON_GetUnionElseValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionElse(const struct UnionElse * x) { cJSON * j = cJSON_CreateUnionElse(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionAuto * cJSON_ParseUnionAuto(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionAuto * x = j ? cJSON_GetUnionAutoValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionAuto(const struct UnionAuto * x) { cJSON * j = cJSON_CreateUnionAuto(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionElse(const struct UnionElse * x) {
+cJSON * cJSON_CreateUnionAuto(const struct UnionAuto * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateElse(x->value.purple_else);
+            j = cJSON_CreateAuto(x->value.purple_auto);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionElse(struct UnionElse * x) {
+void cJSON_DeleteUnionAuto(struct UnionAuto * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteElse(x->value.purple_else);
+            cJSON_DeleteAuto(x->value.purple_auto);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionEnum * cJSON_GetUnionEnumValue(const cJSON * j) {
-    struct UnionEnum * x = cJSON_malloc(sizeof(struct UnionEnum));
+struct UnionBitand * cJSON_GetUnionBitandValue(const cJSON * j) {
+    struct UnionBitand * x = cJSON_malloc(sizeof(struct UnionBitand));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionEnum));
+        memset(x, 0, sizeof(struct UnionBitand));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_enum = cJSON_GetEnumValue(j);
-            if (NULL == x->value.purple_enum) x->type = 0;
+            x->value.purple_bitand = cJSON_GetBitandValue(j);
+            if (NULL == x->value.purple_bitand) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionEnum * cJSON_ParseUnionEnum(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEnum * x = j ? cJSON_GetUnionEnumValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionEnum(const struct UnionEnum * x) { cJSON * j = cJSON_CreateUnionEnum(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionBitand * cJSON_ParseUnionBitand(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBitand * x = j ? cJSON_GetUnionBitandValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionBitand(const struct UnionBitand * x) { cJSON * j = cJSON_CreateUnionBitand(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionEnum(const struct UnionEnum * x) {
+cJSON * cJSON_CreateUnionBitand(const struct UnionBitand * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateEnum(x->value.purple_enum);
+            j = cJSON_CreateBitand(x->value.purple_bitand);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionEnum(struct UnionEnum * x) {
+void cJSON_DeleteUnionBitand(struct UnionBitand * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteEnum(x->value.purple_enum);
+            cJSON_DeleteBitand(x->value.purple_bitand);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionExplicit * cJSON_GetUnionExplicitValue(const cJSON * j) {
-    struct UnionExplicit * x = cJSON_malloc(sizeof(struct UnionExplicit));
+struct UnionBitor * cJSON_GetUnionBitorValue(const cJSON * j) {
+    struct UnionBitor * x = cJSON_malloc(sizeof(struct UnionBitor));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionExplicit));
+        memset(x, 0, sizeof(struct UnionBitor));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_explicit = cJSON_GetExplicitValue(j);
-            if (NULL == x->value.purple_explicit) x->type = 0;
+            x->value.purple_bitor = cJSON_GetBitorValue(j);
+            if (NULL == x->value.purple_bitor) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionExplicit * cJSON_ParseUnionExplicit(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExplicit * x = j ? cJSON_GetUnionExplicitValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionExplicit(const struct UnionExplicit * x) { cJSON * j = cJSON_CreateUnionExplicit(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionBitor * cJSON_ParseUnionBitor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBitor * x = j ? cJSON_GetUnionBitorValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionBitor(const struct UnionBitor * x) { cJSON * j = cJSON_CreateUnionBitor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionExplicit(const struct UnionExplicit * x) {
+cJSON * cJSON_CreateUnionBitor(const struct UnionBitor * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateExplicit(x->value.purple_explicit);
+            j = cJSON_CreateBitor(x->value.purple_bitor);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionExplicit(struct UnionExplicit * x) {
+void cJSON_DeleteUnionBitor(struct UnionBitor * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteExplicit(x->value.purple_explicit);
+            cJSON_DeleteBitor(x->value.purple_bitor);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionExport * cJSON_GetUnionExportValue(const cJSON * j) {
-    struct UnionExport * x = cJSON_malloc(sizeof(struct UnionExport));
+struct UnionBool * cJSON_GetUnionBoolValue(const cJSON * j) {
+    struct UnionBool * x = cJSON_malloc(sizeof(struct UnionBool));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionExport));
+        memset(x, 0, sizeof(struct UnionBool));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_export = cJSON_GetExportValue(j);
-            if (NULL == x->value.purple_export) x->type = 0;
+            x->value.bool_class = cJSON_GetBoolClassValue(j);
+            if (NULL == x->value.bool_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionExport * cJSON_ParseUnionExport(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExport * x = j ? cJSON_GetUnionExportValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionExport(const struct UnionExport * x) { cJSON * j = cJSON_CreateUnionExport(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionBool * cJSON_ParseUnionBool(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBool * x = j ? cJSON_GetUnionBoolValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionBool(const struct UnionBool * x) { cJSON * j = cJSON_CreateUnionBool(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionExport(const struct UnionExport * x) {
+cJSON * cJSON_CreateUnionBool(const struct UnionBool * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateExport(x->value.purple_export);
+            j = cJSON_CreateBoolClass(x->value.bool_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionExport(struct UnionExport * x) {
+void cJSON_DeleteUnionBool(struct UnionBool * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteExport(x->value.purple_export);
+            cJSON_DeleteBoolClass(x->value.bool_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionExtern * cJSON_GetUnionExternValue(const cJSON * j) {
-    struct UnionExtern * x = cJSON_malloc(sizeof(struct UnionExtern));
+struct UnionBreak * cJSON_GetUnionBreakValue(const cJSON * j) {
+    struct UnionBreak * x = cJSON_malloc(sizeof(struct UnionBreak));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionExtern));
+        memset(x, 0, sizeof(struct UnionBreak));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_extern = cJSON_GetExternValue(j);
-            if (NULL == x->value.purple_extern) x->type = 0;
+            x->value.purple_break = cJSON_GetBreakValue(j);
+            if (NULL == x->value.purple_break) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionExtern * cJSON_ParseUnionExtern(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExtern * x = j ? cJSON_GetUnionExternValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionExtern(const struct UnionExtern * x) { cJSON * j = cJSON_CreateUnionExtern(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionBreak * cJSON_ParseUnionBreak(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionBreak * x = j ? cJSON_GetUnionBreakValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionBreak(const struct UnionBreak * x) { cJSON * j = cJSON_CreateUnionBreak(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionExtern(const struct UnionExtern * x) {
+cJSON * cJSON_CreateUnionBreak(const struct UnionBreak * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateExtern(x->value.purple_extern);
+            j = cJSON_CreateBreak(x->value.purple_break);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionExtern(struct UnionExtern * x) {
+void cJSON_DeleteUnionBreak(struct UnionBreak * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteExtern(x->value.purple_extern);
+            cJSON_DeleteBreak(x->value.purple_break);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFalse * cJSON_GetUnionFalseValue(const cJSON * j) {
-    struct UnionFalse * x = cJSON_malloc(sizeof(struct UnionFalse));
+struct UnionCase * cJSON_GetUnionCaseValue(const cJSON * j) {
+    struct UnionCase * x = cJSON_malloc(sizeof(struct UnionCase));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFalse));
+        memset(x, 0, sizeof(struct UnionCase));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.false_class = cJSON_GetFalseClassValue(j);
-            if (NULL == x->value.false_class) x->type = 0;
+            x->value.purple_case = cJSON_GetCaseValue(j);
+            if (NULL == x->value.purple_case) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFalse * cJSON_ParseUnionFalse(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFalse * x = j ? cJSON_GetUnionFalseValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFalse(const struct UnionFalse * x) { cJSON * j = cJSON_CreateUnionFalse(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCase * cJSON_ParseUnionCase(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCase * x = j ? cJSON_GetUnionCaseValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCase(const struct UnionCase * x) { cJSON * j = cJSON_CreateUnionCase(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFalse(const struct UnionFalse * x) {
+cJSON * cJSON_CreateUnionCase(const struct UnionCase * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateFalseClass(x->value.false_class);
+            j = cJSON_CreateCase(x->value.purple_case);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFalse(struct UnionFalse * x) {
+void cJSON_DeleteUnionCase(struct UnionCase * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteFalseClass(x->value.false_class);
+            cJSON_DeleteCase(x->value.purple_case);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFinal * cJSON_GetUnionFinalValue(const cJSON * j) {
-    struct UnionFinal * x = cJSON_malloc(sizeof(struct UnionFinal));
+struct UnionCatch * cJSON_GetUnionCatchValue(const cJSON * j) {
+    struct UnionCatch * x = cJSON_malloc(sizeof(struct UnionCatch));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFinal));
+        memset(x, 0, sizeof(struct UnionCatch));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_final = cJSON_GetFinalValue(j);
-            if (NULL == x->value.purple_final) x->type = 0;
+            x->value.purple_catch = cJSON_GetCatchValue(j);
+            if (NULL == x->value.purple_catch) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFinal * cJSON_ParseUnionFinal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFinal * x = j ? cJSON_GetUnionFinalValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFinal(const struct UnionFinal * x) { cJSON * j = cJSON_CreateUnionFinal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCatch * cJSON_ParseUnionCatch(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCatch * x = j ? cJSON_GetUnionCatchValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCatch(const struct UnionCatch * x) { cJSON * j = cJSON_CreateUnionCatch(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFinal(const struct UnionFinal * x) {
+cJSON * cJSON_CreateUnionCatch(const struct UnionCatch * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateFinal(x->value.purple_final);
+            j = cJSON_CreateCatch(x->value.purple_catch);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFinal(struct UnionFinal * x) {
+void cJSON_DeleteUnionCatch(struct UnionCatch * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteFinal(x->value.purple_final);
+            cJSON_DeleteCatch(x->value.purple_catch);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFloat * cJSON_GetUnionFloatValue(const cJSON * j) {
-    struct UnionFloat * x = cJSON_malloc(sizeof(struct UnionFloat));
+struct UnionChar * cJSON_GetUnionCharValue(const cJSON * j) {
+    struct UnionChar * x = cJSON_malloc(sizeof(struct UnionChar));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFloat));
+        memset(x, 0, sizeof(struct UnionChar));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_float = cJSON_GetFloatValue(j);
-            if (NULL == x->value.purple_float) x->type = 0;
+            x->value.purple_char = cJSON_GetCharValue(j);
+            if (NULL == x->value.purple_char) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFloat * cJSON_ParseUnionFloat(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFloat * x = j ? cJSON_GetUnionFloatValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFloat(const struct UnionFloat * x) { cJSON * j = cJSON_CreateUnionFloat(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionChar * cJSON_ParseUnionChar(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar * x = j ? cJSON_GetUnionCharValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionChar(const struct UnionChar * x) { cJSON * j = cJSON_CreateUnionChar(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFloat(const struct UnionFloat * x) {
+cJSON * cJSON_CreateUnionChar(const struct UnionChar * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateFloat(x->value.purple_float);
+            j = cJSON_CreateChar(x->value.purple_char);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFloat(struct UnionFloat * x) {
+void cJSON_DeleteUnionChar(struct UnionChar * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteFloat(x->value.purple_float);
+            cJSON_DeleteChar(x->value.purple_char);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFor * cJSON_GetUnionForValue(const cJSON * j) {
-    struct UnionFor * x = cJSON_malloc(sizeof(struct UnionFor));
+struct UnionChar16T * cJSON_GetUnionChar16TValue(const cJSON * j) {
+    struct UnionChar16T * x = cJSON_malloc(sizeof(struct UnionChar16T));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFor));
+        memset(x, 0, sizeof(struct UnionChar16T));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_for = cJSON_GetForValue(j);
-            if (NULL == x->value.purple_for) x->type = 0;
+            x->value.purple_char16_t = cJSON_GetChar16TValue(j);
+            if (NULL == x->value.purple_char16_t) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFor * cJSON_ParseUnionFor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFor * x = j ? cJSON_GetUnionForValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFor(const struct UnionFor * x) { cJSON * j = cJSON_CreateUnionFor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionChar16T * cJSON_ParseUnionChar16T(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar16T * x = j ? cJSON_GetUnionChar16TValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionChar16T(const struct UnionChar16T * x) { cJSON * j = cJSON_CreateUnionChar16T(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFor(const struct UnionFor * x) {
+cJSON * cJSON_CreateUnionChar16T(const struct UnionChar16T * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateFor(x->value.purple_for);
+            j = cJSON_CreateChar16T(x->value.purple_char16_t);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFor(struct UnionFor * x) {
+void cJSON_DeleteUnionChar16T(struct UnionChar16T * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteFor(x->value.purple_for);
+            cJSON_DeleteChar16T(x->value.purple_char16_t);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionFriend * cJSON_GetUnionFriendValue(const cJSON * j) {
-    struct UnionFriend * x = cJSON_malloc(sizeof(struct UnionFriend));
+struct UnionChar32T * cJSON_GetUnionChar32TValue(const cJSON * j) {
+    struct UnionChar32T * x = cJSON_malloc(sizeof(struct UnionChar32T));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionFriend));
+        memset(x, 0, sizeof(struct UnionChar32T));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_friend = cJSON_GetFriendValue(j);
-            if (NULL == x->value.purple_friend) x->type = 0;
+            x->value.purple_char32_t = cJSON_GetChar32TValue(j);
+            if (NULL == x->value.purple_char32_t) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionFriend * cJSON_ParseUnionFriend(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFriend * x = j ? cJSON_GetUnionFriendValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionFriend(const struct UnionFriend * x) { cJSON * j = cJSON_CreateUnionFriend(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionChar32T * cJSON_ParseUnionChar32T(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionChar32T * x = j ? cJSON_GetUnionChar32TValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionChar32T(const struct UnionChar32T * x) { cJSON * j = cJSON_CreateUnionChar32T(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionFriend(const struct UnionFriend * x) {
+cJSON * cJSON_CreateUnionChar32T(const struct UnionChar32T * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateFriend(x->value.purple_friend);
+            j = cJSON_CreateChar32T(x->value.purple_char32_t);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionFriend(struct UnionFriend * x) {
+void cJSON_DeleteUnionChar32T(struct UnionChar32T * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteFriend(x->value.purple_friend);
+            cJSON_DeleteChar32T(x->value.purple_char32_t);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionGoto * cJSON_GetUnionGotoValue(const cJSON * j) {
-    struct UnionGoto * x = cJSON_malloc(sizeof(struct UnionGoto));
+struct UnionClass * cJSON_GetUnionClassValue(const cJSON * j) {
+    struct UnionClass * x = cJSON_malloc(sizeof(struct UnionClass));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionGoto));
+        memset(x, 0, sizeof(struct UnionClass));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_goto = cJSON_GetGotoValue(j);
-            if (NULL == x->value.purple_goto) x->type = 0;
+            x->value.purple_class = cJSON_GetClassValue(j);
+            if (NULL == x->value.purple_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionGoto * cJSON_ParseUnionGoto(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionGoto * x = j ? cJSON_GetUnionGotoValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionGoto(const struct UnionGoto * x) { cJSON * j = cJSON_CreateUnionGoto(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionClass * cJSON_ParseUnionClass(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionClass * x = j ? cJSON_GetUnionClassValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionClass(const struct UnionClass * x) { cJSON * j = cJSON_CreateUnionClass(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionGoto(const struct UnionGoto * x) {
+cJSON * cJSON_CreateUnionClass(const struct UnionClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateGoto(x->value.purple_goto);
+            j = cJSON_CreateClass(x->value.purple_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionGoto(struct UnionGoto * x) {
+void cJSON_DeleteUnionClass(struct UnionClass * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteGoto(x->value.purple_goto);
+            cJSON_DeleteClass(x->value.purple_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionIf * cJSON_GetUnionIfValue(const cJSON * j) {
-    struct UnionIf * x = cJSON_malloc(sizeof(struct UnionIf));
+struct UnionCoAwait * cJSON_GetUnionCoAwaitValue(const cJSON * j) {
+    struct UnionCoAwait * x = cJSON_malloc(sizeof(struct UnionCoAwait));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionIf));
+        memset(x, 0, sizeof(struct UnionCoAwait));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_if = cJSON_GetIfValue(j);
-            if (NULL == x->value.purple_if) x->type = 0;
+            x->value.purple_co_await = cJSON_GetCoAwaitValue(j);
+            if (NULL == x->value.purple_co_await) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionIf * cJSON_ParseUnionIf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionIf * x = j ? cJSON_GetUnionIfValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionIf(const struct UnionIf * x) { cJSON * j = cJSON_CreateUnionIf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCoAwait * cJSON_ParseUnionCoAwait(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoAwait * x = j ? cJSON_GetUnionCoAwaitValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCoAwait(const struct UnionCoAwait * x) { cJSON * j = cJSON_CreateUnionCoAwait(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionIf(const struct UnionIf * x) {
+cJSON * cJSON_CreateUnionCoAwait(const struct UnionCoAwait * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateIf(x->value.purple_if);
+            j = cJSON_CreateCoAwait(x->value.purple_co_await);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionIf(struct UnionIf * x) {
+void cJSON_DeleteUnionCoAwait(struct UnionCoAwait * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteIf(x->value.purple_if);
+            cJSON_DeleteCoAwait(x->value.purple_co_await);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionImport * cJSON_GetUnionImportValue(const cJSON * j) {
-    struct UnionImport * x = cJSON_malloc(sizeof(struct UnionImport));
+struct UnionCoReturn * cJSON_GetUnionCoReturnValue(const cJSON * j) {
+    struct UnionCoReturn * x = cJSON_malloc(sizeof(struct UnionCoReturn));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionImport));
+        memset(x, 0, sizeof(struct UnionCoReturn));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_import = cJSON_GetImportValue(j);
-            if (NULL == x->value.purple_import) x->type = 0;
+            x->value.purple_co_return = cJSON_GetCoReturnValue(j);
+            if (NULL == x->value.purple_co_return) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionImport * cJSON_ParseUnionImport(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionImport * x = j ? cJSON_GetUnionImportValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionImport(const struct UnionImport * x) { cJSON * j = cJSON_CreateUnionImport(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCoReturn * cJSON_ParseUnionCoReturn(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoReturn * x = j ? cJSON_GetUnionCoReturnValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCoReturn(const struct UnionCoReturn * x) { cJSON * j = cJSON_CreateUnionCoReturn(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionImport(const struct UnionImport * x) {
+cJSON * cJSON_CreateUnionCoReturn(const struct UnionCoReturn * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateImport(x->value.purple_import);
+            j = cJSON_CreateCoReturn(x->value.purple_co_return);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionImport(struct UnionImport * x) {
+void cJSON_DeleteUnionCoReturn(struct UnionCoReturn * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteImport(x->value.purple_import);
+            cJSON_DeleteCoReturn(x->value.purple_co_return);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionInline * cJSON_GetUnionInlineValue(const cJSON * j) {
-    struct UnionInline * x = cJSON_malloc(sizeof(struct UnionInline));
+struct UnionCoYield * cJSON_GetUnionCoYieldValue(const cJSON * j) {
+    struct UnionCoYield * x = cJSON_malloc(sizeof(struct UnionCoYield));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionInline));
+        memset(x, 0, sizeof(struct UnionCoYield));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_inline = cJSON_GetInlineValue(j);
-            if (NULL == x->value.purple_inline) x->type = 0;
+            x->value.purple_co_yield = cJSON_GetCoYieldValue(j);
+            if (NULL == x->value.purple_co_yield) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionInline * cJSON_ParseUnionInline(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionInline * x = j ? cJSON_GetUnionInlineValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionInline(const struct UnionInline * x) { cJSON * j = cJSON_CreateUnionInline(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCoYield * cJSON_ParseUnionCoYield(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCoYield * x = j ? cJSON_GetUnionCoYieldValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCoYield(const struct UnionCoYield * x) { cJSON * j = cJSON_CreateUnionCoYield(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionInline(const struct UnionInline * x) {
+cJSON * cJSON_CreateUnionCoYield(const struct UnionCoYield * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateInline(x->value.purple_inline);
+            j = cJSON_CreateCoYield(x->value.purple_co_yield);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionInline(struct UnionInline * x) {
+void cJSON_DeleteUnionCoYield(struct UnionCoYield * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteInline(x->value.purple_inline);
+            cJSON_DeleteCoYield(x->value.purple_co_yield);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionInt * cJSON_GetUnionIntValue(const cJSON * j) {
-    struct UnionInt * x = cJSON_malloc(sizeof(struct UnionInt));
+struct UnionCompl * cJSON_GetUnionComplValue(const cJSON * j) {
+    struct UnionCompl * x = cJSON_malloc(sizeof(struct UnionCompl));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionInt));
+        memset(x, 0, sizeof(struct UnionCompl));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_int = cJSON_GetIntValue(j);
-            if (NULL == x->value.purple_int) x->type = 0;
+            x->value.purple_compl = cJSON_GetComplValue(j);
+            if (NULL == x->value.purple_compl) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionInt * cJSON_ParseUnionInt(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionInt * x = j ? cJSON_GetUnionIntValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionInt(const struct UnionInt * x) { cJSON * j = cJSON_CreateUnionInt(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionCompl * cJSON_ParseUnionCompl(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionCompl * x = j ? cJSON_GetUnionComplValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionCompl(const struct UnionCompl * x) { cJSON * j = cJSON_CreateUnionCompl(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionInt(const struct UnionInt * x) {
+cJSON * cJSON_CreateUnionCompl(const struct UnionCompl * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateInt(x->value.purple_int);
+            j = cJSON_CreateCompl(x->value.purple_compl);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionInt(struct UnionInt * x) {
+void cJSON_DeleteUnionCompl(struct UnionCompl * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteInt(x->value.purple_int);
+            cJSON_DeleteCompl(x->value.purple_compl);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionLong * cJSON_GetUnionLongValue(const cJSON * j) {
-    struct UnionLong * x = cJSON_malloc(sizeof(struct UnionLong));
+struct UnionConcept * cJSON_GetUnionConceptValue(const cJSON * j) {
+    struct UnionConcept * x = cJSON_malloc(sizeof(struct UnionConcept));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionLong));
+        memset(x, 0, sizeof(struct UnionConcept));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_long = cJSON_GetLongValue(j);
-            if (NULL == x->value.purple_long) x->type = 0;
+            x->value.purple_concept = cJSON_GetConceptValue(j);
+            if (NULL == x->value.purple_concept) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionLong * cJSON_ParseUnionLong(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLong * x = j ? cJSON_GetUnionLongValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionLong(const struct UnionLong * x) { cJSON * j = cJSON_CreateUnionLong(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionConcept * cJSON_ParseUnionConcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConcept * x = j ? cJSON_GetUnionConceptValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionConcept(const struct UnionConcept * x) { cJSON * j = cJSON_CreateUnionConcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionLong(const struct UnionLong * x) {
+cJSON * cJSON_CreateUnionConcept(const struct UnionConcept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateLong(x->value.purple_long);
+            j = cJSON_CreateConcept(x->value.purple_concept);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionLong(struct UnionLong * x) {
+void cJSON_DeleteUnionConcept(struct UnionConcept * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteLong(x->value.purple_long);
+            cJSON_DeleteConcept(x->value.purple_concept);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionModule * cJSON_GetUnionModuleValue(const cJSON * j) {
-    struct UnionModule * x = cJSON_malloc(sizeof(struct UnionModule));
+struct UnionConst * cJSON_GetUnionConstValue(const cJSON * j) {
+    struct UnionConst * x = cJSON_malloc(sizeof(struct UnionConst));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionModule));
+        memset(x, 0, sizeof(struct UnionConst));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_module = cJSON_GetModuleValue(j);
-            if (NULL == x->value.purple_module) x->type = 0;
+            x->value.purple_const = cJSON_GetConstValue(j);
+            if (NULL == x->value.purple_const) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionModule * cJSON_ParseUnionModule(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionModule * x = j ? cJSON_GetUnionModuleValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionModule(const struct UnionModule * x) { cJSON * j = cJSON_CreateUnionModule(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionConst * cJSON_ParseUnionConst(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConst * x = j ? cJSON_GetUnionConstValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionConst(const struct UnionConst * x) { cJSON * j = cJSON_CreateUnionConst(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionModule(const struct UnionModule * x) {
+cJSON * cJSON_CreateUnionConst(const struct UnionConst * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateModule(x->value.purple_module);
+            j = cJSON_CreateConst(x->value.purple_const);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionModule(struct UnionModule * x) {
+void cJSON_DeleteUnionConst(struct UnionConst * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteModule(x->value.purple_module);
+            cJSON_DeleteConst(x->value.purple_const);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionMutable * cJSON_GetUnionMutableValue(const cJSON * j) {
-    struct UnionMutable * x = cJSON_malloc(sizeof(struct UnionMutable));
+struct UnionConstCast * cJSON_GetUnionConstCastValue(const cJSON * j) {
+    struct UnionConstCast * x = cJSON_malloc(sizeof(struct UnionConstCast));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionMutable));
+        memset(x, 0, sizeof(struct UnionConstCast));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_mutable = cJSON_GetMutableValue(j);
-            if (NULL == x->value.purple_mutable) x->type = 0;
+            x->value.purple_const_cast = cJSON_GetConstCastValue(j);
+            if (NULL == x->value.purple_const_cast) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionMutable * cJSON_ParseUnionMutable(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMutable * x = j ? cJSON_GetUnionMutableValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionMutable(const struct UnionMutable * x) { cJSON * j = cJSON_CreateUnionMutable(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionConstCast * cJSON_ParseUnionConstCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConstCast * x = j ? cJSON_GetUnionConstCastValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionConstCast(const struct UnionConstCast * x) { cJSON * j = cJSON_CreateUnionConstCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionMutable(const struct UnionMutable * x) {
+cJSON * cJSON_CreateUnionConstCast(const struct UnionConstCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateMutable(x->value.purple_mutable);
+            j = cJSON_CreateConstCast(x->value.purple_const_cast);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionMutable(struct UnionMutable * x) {
+void cJSON_DeleteUnionConstCast(struct UnionConstCast * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteMutable(x->value.purple_mutable);
+            cJSON_DeleteConstCast(x->value.purple_const_cast);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNamespace * cJSON_GetUnionNamespaceValue(const cJSON * j) {
-    struct UnionNamespace * x = cJSON_malloc(sizeof(struct UnionNamespace));
+struct UnionConstexpr * cJSON_GetUnionConstexprValue(const cJSON * j) {
+    struct UnionConstexpr * x = cJSON_malloc(sizeof(struct UnionConstexpr));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNamespace));
+        memset(x, 0, sizeof(struct UnionConstexpr));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_namespace = cJSON_GetNamespaceValue(j);
-            if (NULL == x->value.purple_namespace) x->type = 0;
+            x->value.purple_constexpr = cJSON_GetConstexprValue(j);
+            if (NULL == x->value.purple_constexpr) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNamespace * cJSON_ParseUnionNamespace(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNamespace * x = j ? cJSON_GetUnionNamespaceValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNamespace(const struct UnionNamespace * x) { cJSON * j = cJSON_CreateUnionNamespace(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionConstexpr * cJSON_ParseUnionConstexpr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionConstexpr * x = j ? cJSON_GetUnionConstexprValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionConstexpr(const struct UnionConstexpr * x) { cJSON * j = cJSON_CreateUnionConstexpr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNamespace(const struct UnionNamespace * x) {
+cJSON * cJSON_CreateUnionConstexpr(const struct UnionConstexpr * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNamespace(x->value.purple_namespace);
+            j = cJSON_CreateConstexpr(x->value.purple_constexpr);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNamespace(struct UnionNamespace * x) {
+void cJSON_DeleteUnionConstexpr(struct UnionConstexpr * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNamespace(x->value.purple_namespace);
+            cJSON_DeleteConstexpr(x->value.purple_constexpr);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNew * cJSON_GetUnionNewValue(const cJSON * j) {
-    struct UnionNew * x = cJSON_malloc(sizeof(struct UnionNew));
+struct UnionContinue * cJSON_GetUnionContinueValue(const cJSON * j) {
+    struct UnionContinue * x = cJSON_malloc(sizeof(struct UnionContinue));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNew));
+        memset(x, 0, sizeof(struct UnionContinue));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_new = cJSON_GetNewValue(j);
-            if (NULL == x->value.purple_new) x->type = 0;
+            x->value.purple_continue = cJSON_GetContinueValue(j);
+            if (NULL == x->value.purple_continue) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNew * cJSON_ParseUnionNew(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNew * x = j ? cJSON_GetUnionNewValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNew(const struct UnionNew * x) { cJSON * j = cJSON_CreateUnionNew(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionContinue * cJSON_ParseUnionContinue(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionContinue * x = j ? cJSON_GetUnionContinueValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionContinue(const struct UnionContinue * x) { cJSON * j = cJSON_CreateUnionContinue(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNew(const struct UnionNew * x) {
+cJSON * cJSON_CreateUnionContinue(const struct UnionContinue * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNew(x->value.purple_new);
+            j = cJSON_CreateContinue(x->value.purple_continue);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNew(struct UnionNew * x) {
+void cJSON_DeleteUnionContinue(struct UnionContinue * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNew(x->value.purple_new);
+            cJSON_DeleteContinue(x->value.purple_continue);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNoexcept * cJSON_GetUnionNoexceptValue(const cJSON * j) {
-    struct UnionNoexcept * x = cJSON_malloc(sizeof(struct UnionNoexcept));
+struct UnionDecltype * cJSON_GetUnionDecltypeValue(const cJSON * j) {
+    struct UnionDecltype * x = cJSON_malloc(sizeof(struct UnionDecltype));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNoexcept));
+        memset(x, 0, sizeof(struct UnionDecltype));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_noexcept = cJSON_GetNoexceptValue(j);
-            if (NULL == x->value.purple_noexcept) x->type = 0;
+            x->value.purple_decltype = cJSON_GetDecltypeValue(j);
+            if (NULL == x->value.purple_decltype) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNoexcept * cJSON_ParseUnionNoexcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNoexcept * x = j ? cJSON_GetUnionNoexceptValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNoexcept(const struct UnionNoexcept * x) { cJSON * j = cJSON_CreateUnionNoexcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDecltype * cJSON_ParseUnionDecltype(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDecltype * x = j ? cJSON_GetUnionDecltypeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDecltype(const struct UnionDecltype * x) { cJSON * j = cJSON_CreateUnionDecltype(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNoexcept(const struct UnionNoexcept * x) {
+cJSON * cJSON_CreateUnionDecltype(const struct UnionDecltype * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNoexcept(x->value.purple_noexcept);
+            j = cJSON_CreateDecltype(x->value.purple_decltype);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNoexcept(struct UnionNoexcept * x) {
+void cJSON_DeleteUnionDecltype(struct UnionDecltype * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNoexcept(x->value.purple_noexcept);
+            cJSON_DeleteDecltype(x->value.purple_decltype);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNoneUnion * cJSON_GetUnionNoneUnionValue(const cJSON * j) {
-    struct UnionNoneUnion * x = cJSON_malloc(sizeof(struct UnionNoneUnion));
+struct UnionDefault * cJSON_GetUnionDefaultValue(const cJSON * j) {
+    struct UnionDefault * x = cJSON_malloc(sizeof(struct UnionDefault));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNoneUnion));
+        memset(x, 0, sizeof(struct UnionDefault));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.none_class = cJSON_GetNoneClassValue(j);
-            if (NULL == x->value.none_class) x->type = 0;
+            x->value.purple_default = cJSON_GetDefaultValue(j);
+            if (NULL == x->value.purple_default) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNoneUnion * cJSON_ParseUnionNoneUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNoneUnion * x = j ? cJSON_GetUnionNoneUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNoneUnion(const struct UnionNoneUnion * x) { cJSON * j = cJSON_CreateUnionNoneUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDefault * cJSON_ParseUnionDefault(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDefault * x = j ? cJSON_GetUnionDefaultValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDefault(const struct UnionDefault * x) { cJSON * j = cJSON_CreateUnionDefault(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNoneUnion(const struct UnionNoneUnion * x) {
+cJSON * cJSON_CreateUnionDefault(const struct UnionDefault * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNoneClass(x->value.none_class);
+            j = cJSON_CreateDefault(x->value.purple_default);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNoneUnion(struct UnionNoneUnion * x) {
+void cJSON_DeleteUnionDefault(struct UnionDefault * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNoneClass(x->value.none_class);
+            cJSON_DeleteDefault(x->value.purple_default);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNot * cJSON_GetUnionNotValue(const cJSON * j) {
-    struct UnionNot * x = cJSON_malloc(sizeof(struct UnionNot));
+struct UnionDelete * cJSON_GetUnionDeleteValue(const cJSON * j) {
+    struct UnionDelete * x = cJSON_malloc(sizeof(struct UnionDelete));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNot));
+        memset(x, 0, sizeof(struct UnionDelete));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_not = cJSON_GetNotValue(j);
-            if (NULL == x->value.purple_not) x->type = 0;
+            x->value.purple_delete = cJSON_GetDeleteValue(j);
+            if (NULL == x->value.purple_delete) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNot * cJSON_ParseUnionNot(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNot * x = j ? cJSON_GetUnionNotValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNot(const struct UnionNot * x) { cJSON * j = cJSON_CreateUnionNot(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDelete * cJSON_ParseUnionDelete(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDelete * x = j ? cJSON_GetUnionDeleteValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDelete(const struct UnionDelete * x) { cJSON * j = cJSON_CreateUnionDelete(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNot(const struct UnionNot * x) {
+cJSON * cJSON_CreateUnionDelete(const struct UnionDelete * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNot(x->value.purple_not);
+            j = cJSON_CreateDelete(x->value.purple_delete);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNot(struct UnionNot * x) {
+void cJSON_DeleteUnionDelete(struct UnionDelete * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNot(x->value.purple_not);
+            cJSON_DeleteDelete(x->value.purple_delete);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNotEq * cJSON_GetUnionNotEqValue(const cJSON * j) {
-    struct UnionNotEq * x = cJSON_malloc(sizeof(struct UnionNotEq));
+struct UnionDo * cJSON_GetUnionDoValue(const cJSON * j) {
+    struct UnionDo * x = cJSON_malloc(sizeof(struct UnionDo));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNotEq));
+        memset(x, 0, sizeof(struct UnionDo));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_not_eq = cJSON_GetNotEqValue(j);
-            if (NULL == x->value.purple_not_eq) x->type = 0;
+            x->value.purple_do = cJSON_GetDoValue(j);
+            if (NULL == x->value.purple_do) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNotEq * cJSON_ParseUnionNotEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNotEq * x = j ? cJSON_GetUnionNotEqValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNotEq(const struct UnionNotEq * x) { cJSON * j = cJSON_CreateUnionNotEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDo * cJSON_ParseUnionDo(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDo * x = j ? cJSON_GetUnionDoValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDo(const struct UnionDo * x) { cJSON * j = cJSON_CreateUnionDo(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNotEq(const struct UnionNotEq * x) {
+cJSON * cJSON_CreateUnionDo(const struct UnionDo * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNotEq(x->value.purple_not_eq);
+            j = cJSON_CreateDo(x->value.purple_do);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNotEq(struct UnionNotEq * x) {
+void cJSON_DeleteUnionDo(struct UnionDo * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNotEq(x->value.purple_not_eq);
+            cJSON_DeleteDo(x->value.purple_do);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNullUnion * cJSON_GetUnionNullUnionValue(const cJSON * j) {
-    struct UnionNullUnion * x = cJSON_malloc(sizeof(struct UnionNullUnion));
+struct UnionDouble * cJSON_GetUnionDoubleValue(const cJSON * j) {
+    struct UnionDouble * x = cJSON_malloc(sizeof(struct UnionDouble));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNullUnion));
+        memset(x, 0, sizeof(struct UnionDouble));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.union_null_null = cJSON_GetUnionNullNullValue(j);
-            if (NULL == x->value.union_null_null) x->type = 0;
+            x->value.purple_double = cJSON_GetDoubleValue(j);
+            if (NULL == x->value.purple_double) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNullUnion * cJSON_ParseUnionNullUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNullUnion * x = j ? cJSON_GetUnionNullUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNullUnion(const struct UnionNullUnion * x) { cJSON * j = cJSON_CreateUnionNullUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDouble * cJSON_ParseUnionDouble(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDouble * x = j ? cJSON_GetUnionDoubleValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDouble(const struct UnionDouble * x) { cJSON * j = cJSON_CreateUnionDouble(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNullUnion(const struct UnionNullUnion * x) {
+cJSON * cJSON_CreateUnionDouble(const struct UnionDouble * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnionNullNull(x->value.union_null_null);
+            j = cJSON_CreateDouble(x->value.purple_double);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNullUnion(struct UnionNullUnion * x) {
+void cJSON_DeleteUnionDouble(struct UnionDouble * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnionNullNull(x->value.union_null_null);
+            cJSON_DeleteDouble(x->value.purple_double);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionNullptr * cJSON_GetUnionNullptrValue(const cJSON * j) {
-    struct UnionNullptr * x = cJSON_malloc(sizeof(struct UnionNullptr));
+struct UnionDynamicCast * cJSON_GetUnionDynamicCastValue(const cJSON * j) {
+    struct UnionDynamicCast * x = cJSON_malloc(sizeof(struct UnionDynamicCast));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionNullptr));
+        memset(x, 0, sizeof(struct UnionDynamicCast));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_nullptr = cJSON_GetNullptrValue(j);
-            if (NULL == x->value.purple_nullptr) x->type = 0;
+            x->value.purple_dynamic_cast = cJSON_GetDynamicCastValue(j);
+            if (NULL == x->value.purple_dynamic_cast) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionNullptr * cJSON_ParseUnionNullptr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNullptr * x = j ? cJSON_GetUnionNullptrValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionNullptr(const struct UnionNullptr * x) { cJSON * j = cJSON_CreateUnionNullptr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionDynamicCast * cJSON_ParseUnionDynamicCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionDynamicCast * x = j ? cJSON_GetUnionDynamicCastValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionDynamicCast(const struct UnionDynamicCast * x) { cJSON * j = cJSON_CreateUnionDynamicCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionNullptr(const struct UnionNullptr * x) {
+cJSON * cJSON_CreateUnionDynamicCast(const struct UnionDynamicCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateNullptr(x->value.purple_nullptr);
+            j = cJSON_CreateDynamicCast(x->value.purple_dynamic_cast);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionNullptr(struct UnionNullptr * x) {
+void cJSON_DeleteUnionDynamicCast(struct UnionDynamicCast * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteNullptr(x->value.purple_nullptr);
+            cJSON_DeleteDynamicCast(x->value.purple_dynamic_cast);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOperator * cJSON_GetUnionOperatorValue(const cJSON * j) {
-    struct UnionOperator * x = cJSON_malloc(sizeof(struct UnionOperator));
+struct UnionElse * cJSON_GetUnionElseValue(const cJSON * j) {
+    struct UnionElse * x = cJSON_malloc(sizeof(struct UnionElse));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOperator));
+        memset(x, 0, sizeof(struct UnionElse));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_operator = cJSON_GetOperatorValue(j);
-            if (NULL == x->value.purple_operator) x->type = 0;
+            x->value.purple_else = cJSON_GetElseValue(j);
+            if (NULL == x->value.purple_else) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOperator * cJSON_ParseUnionOperator(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOperator * x = j ? cJSON_GetUnionOperatorValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOperator(const struct UnionOperator * x) { cJSON * j = cJSON_CreateUnionOperator(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionElse * cJSON_ParseUnionElse(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionElse * x = j ? cJSON_GetUnionElseValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionElse(const struct UnionElse * x) { cJSON * j = cJSON_CreateUnionElse(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOperator(const struct UnionOperator * x) {
+cJSON * cJSON_CreateUnionElse(const struct UnionElse * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOperator(x->value.purple_operator);
+            j = cJSON_CreateElse(x->value.purple_else);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOperator(struct UnionOperator * x) {
+void cJSON_DeleteUnionElse(struct UnionElse * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOperator(x->value.purple_operator);
+            cJSON_DeleteElse(x->value.purple_else);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOr * cJSON_GetUnionOrValue(const cJSON * j) {
-    struct UnionOr * x = cJSON_malloc(sizeof(struct UnionOr));
+struct UnionEnum * cJSON_GetUnionEnumValue(const cJSON * j) {
+    struct UnionEnum * x = cJSON_malloc(sizeof(struct UnionEnum));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOr));
+        memset(x, 0, sizeof(struct UnionEnum));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_or = cJSON_GetOrValue(j);
-            if (NULL == x->value.purple_or) x->type = 0;
+            x->value.purple_enum = cJSON_GetEnumValue(j);
+            if (NULL == x->value.purple_enum) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOr * cJSON_ParseUnionOr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOr * x = j ? cJSON_GetUnionOrValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOr(const struct UnionOr * x) { cJSON * j = cJSON_CreateUnionOr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionEnum * cJSON_ParseUnionEnum(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionEnum * x = j ? cJSON_GetUnionEnumValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionEnum(const struct UnionEnum * x) { cJSON * j = cJSON_CreateUnionEnum(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOr(const struct UnionOr * x) {
+cJSON * cJSON_CreateUnionEnum(const struct UnionEnum * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOr(x->value.purple_or);
+            j = cJSON_CreateEnum(x->value.purple_enum);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOr(struct UnionOr * x) {
+void cJSON_DeleteUnionEnum(struct UnionEnum * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOr(x->value.purple_or);
+            cJSON_DeleteEnum(x->value.purple_enum);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOrEq * cJSON_GetUnionOrEqValue(const cJSON * j) {
-    struct UnionOrEq * x = cJSON_malloc(sizeof(struct UnionOrEq));
+struct UnionExplicit * cJSON_GetUnionExplicitValue(const cJSON * j) {
+    struct UnionExplicit * x = cJSON_malloc(sizeof(struct UnionExplicit));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOrEq));
+        memset(x, 0, sizeof(struct UnionExplicit));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_or_eq = cJSON_GetOrEqValue(j);
-            if (NULL == x->value.purple_or_eq) x->type = 0;
+            x->value.purple_explicit = cJSON_GetExplicitValue(j);
+            if (NULL == x->value.purple_explicit) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOrEq * cJSON_ParseUnionOrEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOrEq * x = j ? cJSON_GetUnionOrEqValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOrEq(const struct UnionOrEq * x) { cJSON * j = cJSON_CreateUnionOrEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionExplicit * cJSON_ParseUnionExplicit(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExplicit * x = j ? cJSON_GetUnionExplicitValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionExplicit(const struct UnionExplicit * x) { cJSON * j = cJSON_CreateUnionExplicit(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOrEq(const struct UnionOrEq * x) {
+cJSON * cJSON_CreateUnionExplicit(const struct UnionExplicit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOrEq(x->value.purple_or_eq);
+            j = cJSON_CreateExplicit(x->value.purple_explicit);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOrEq(struct UnionOrEq * x) {
+void cJSON_DeleteUnionExplicit(struct UnionExplicit * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOrEq(x->value.purple_or_eq);
+            cJSON_DeleteExplicit(x->value.purple_explicit);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionOverride * cJSON_GetUnionOverrideValue(const cJSON * j) {
-    struct UnionOverride * x = cJSON_malloc(sizeof(struct UnionOverride));
+struct UnionExport * cJSON_GetUnionExportValue(const cJSON * j) {
+    struct UnionExport * x = cJSON_malloc(sizeof(struct UnionExport));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionOverride));
+        memset(x, 0, sizeof(struct UnionExport));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_override = cJSON_GetOverrideValue(j);
-            if (NULL == x->value.purple_override) x->type = 0;
+            x->value.purple_export = cJSON_GetExportValue(j);
+            if (NULL == x->value.purple_export) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionOverride * cJSON_ParseUnionOverride(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOverride * x = j ? cJSON_GetUnionOverrideValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionOverride(const struct UnionOverride * x) { cJSON * j = cJSON_CreateUnionOverride(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionExport * cJSON_ParseUnionExport(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExport * x = j ? cJSON_GetUnionExportValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionExport(const struct UnionExport * x) { cJSON * j = cJSON_CreateUnionExport(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionOverride(const struct UnionOverride * x) {
+cJSON * cJSON_CreateUnionExport(const struct UnionExport * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateOverride(x->value.purple_override);
+            j = cJSON_CreateExport(x->value.purple_export);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionOverride(struct UnionOverride * x) {
+void cJSON_DeleteUnionExport(struct UnionExport * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteOverride(x->value.purple_override);
+            cJSON_DeleteExport(x->value.purple_export);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPrivate * cJSON_GetUnionPrivateValue(const cJSON * j) {
-    struct UnionPrivate * x = cJSON_malloc(sizeof(struct UnionPrivate));
+struct UnionExtern * cJSON_GetUnionExternValue(const cJSON * j) {
+    struct UnionExtern * x = cJSON_malloc(sizeof(struct UnionExtern));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPrivate));
+        memset(x, 0, sizeof(struct UnionExtern));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_private = cJSON_GetPrivateValue(j);
-            if (NULL == x->value.purple_private) x->type = 0;
+            x->value.purple_extern = cJSON_GetExternValue(j);
+            if (NULL == x->value.purple_extern) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPrivate * cJSON_ParseUnionPrivate(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrivate * x = j ? cJSON_GetUnionPrivateValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPrivate(const struct UnionPrivate * x) { cJSON * j = cJSON_CreateUnionPrivate(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionExtern * cJSON_ParseUnionExtern(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionExtern * x = j ? cJSON_GetUnionExternValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionExtern(const struct UnionExtern * x) { cJSON * j = cJSON_CreateUnionExtern(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPrivate(const struct UnionPrivate * x) {
+cJSON * cJSON_CreateUnionExtern(const struct UnionExtern * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePrivate(x->value.purple_private);
+            j = cJSON_CreateExtern(x->value.purple_extern);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPrivate(struct UnionPrivate * x) {
+void cJSON_DeleteUnionExtern(struct UnionExtern * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePrivate(x->value.purple_private);
+            cJSON_DeleteExtern(x->value.purple_extern);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionProtected * cJSON_GetUnionProtectedValue(const cJSON * j) {
-    struct UnionProtected * x = cJSON_malloc(sizeof(struct UnionProtected));
+struct UnionFalse * cJSON_GetUnionFalseValue(const cJSON * j) {
+    struct UnionFalse * x = cJSON_malloc(sizeof(struct UnionFalse));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionProtected));
+        memset(x, 0, sizeof(struct UnionFalse));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_protected = cJSON_GetProtectedValue(j);
-            if (NULL == x->value.purple_protected) x->type = 0;
+            x->value.false_class = cJSON_GetFalseClassValue(j);
+            if (NULL == x->value.false_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionProtected * cJSON_ParseUnionProtected(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtected * x = j ? cJSON_GetUnionProtectedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionProtected(const struct UnionProtected * x) { cJSON * j = cJSON_CreateUnionProtected(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFalse * cJSON_ParseUnionFalse(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFalse * x = j ? cJSON_GetUnionFalseValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFalse(const struct UnionFalse * x) { cJSON * j = cJSON_CreateUnionFalse(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionProtected(const struct UnionProtected * x) {
+cJSON * cJSON_CreateUnionFalse(const struct UnionFalse * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateProtected(x->value.purple_protected);
+            j = cJSON_CreateFalseClass(x->value.false_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionProtected(struct UnionProtected * x) {
+void cJSON_DeleteUnionFalse(struct UnionFalse * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteProtected(x->value.purple_protected);
+            cJSON_DeleteFalseClass(x->value.false_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionProtocolUnion * cJSON_GetUnionProtocolUnionValue(const cJSON * j) {
-    struct UnionProtocolUnion * x = cJSON_malloc(sizeof(struct UnionProtocolUnion));
+struct UnionFinal * cJSON_GetUnionFinalValue(const cJSON * j) {
+    struct UnionFinal * x = cJSON_malloc(sizeof(struct UnionFinal));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionProtocolUnion));
+        memset(x, 0, sizeof(struct UnionFinal));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.protocol_class = cJSON_GetProtocolClassValue(j);
-            if (NULL == x->value.protocol_class) x->type = 0;
+            x->value.purple_final = cJSON_GetFinalValue(j);
+            if (NULL == x->value.purple_final) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionProtocolUnion * cJSON_ParseUnionProtocolUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtocolUnion * x = j ? cJSON_GetUnionProtocolUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionProtocolUnion(const struct UnionProtocolUnion * x) { cJSON * j = cJSON_CreateUnionProtocolUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFinal * cJSON_ParseUnionFinal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFinal * x = j ? cJSON_GetUnionFinalValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFinal(const struct UnionFinal * x) { cJSON * j = cJSON_CreateUnionFinal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionProtocolUnion(const struct UnionProtocolUnion * x) {
+cJSON * cJSON_CreateUnionFinal(const struct UnionFinal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateProtocolClass(x->value.protocol_class);
+            j = cJSON_CreateFinal(x->value.purple_final);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionProtocolUnion(struct UnionProtocolUnion * x) {
+void cJSON_DeleteUnionFinal(struct UnionFinal * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteProtocolClass(x->value.protocol_class);
+            cJSON_DeleteFinal(x->value.purple_final);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionPublic * cJSON_GetUnionPublicValue(const cJSON * j) {
-    struct UnionPublic * x = cJSON_malloc(sizeof(struct UnionPublic));
+struct UnionFloat * cJSON_GetUnionFloatValue(const cJSON * j) {
+    struct UnionFloat * x = cJSON_malloc(sizeof(struct UnionFloat));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionPublic));
+        memset(x, 0, sizeof(struct UnionFloat));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_public = cJSON_GetPublicValue(j);
-            if (NULL == x->value.purple_public) x->type = 0;
+            x->value.purple_float = cJSON_GetFloatValue(j);
+            if (NULL == x->value.purple_float) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionPublic * cJSON_ParseUnionPublic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPublic * x = j ? cJSON_GetUnionPublicValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionPublic(const struct UnionPublic * x) { cJSON * j = cJSON_CreateUnionPublic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFloat * cJSON_ParseUnionFloat(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFloat * x = j ? cJSON_GetUnionFloatValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFloat(const struct UnionFloat * x) { cJSON * j = cJSON_CreateUnionFloat(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionPublic(const struct UnionPublic * x) {
+cJSON * cJSON_CreateUnionFloat(const struct UnionFloat * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreatePublic(x->value.purple_public);
+            j = cJSON_CreateFloat(x->value.purple_float);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionPublic(struct UnionPublic * x) {
+void cJSON_DeleteUnionFloat(struct UnionFloat * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeletePublic(x->value.purple_public);
+            cJSON_DeleteFloat(x->value.purple_float);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRegister * cJSON_GetUnionRegisterValue(const cJSON * j) {
-    struct UnionRegister * x = cJSON_malloc(sizeof(struct UnionRegister));
+struct UnionFor * cJSON_GetUnionForValue(const cJSON * j) {
+    struct UnionFor * x = cJSON_malloc(sizeof(struct UnionFor));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRegister));
+        memset(x, 0, sizeof(struct UnionFor));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_register = cJSON_GetRegisterValue(j);
-            if (NULL == x->value.purple_register) x->type = 0;
+            x->value.purple_for = cJSON_GetForValue(j);
+            if (NULL == x->value.purple_for) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRegister * cJSON_ParseUnionRegister(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRegister * x = j ? cJSON_GetUnionRegisterValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRegister(const struct UnionRegister * x) { cJSON * j = cJSON_CreateUnionRegister(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFor * cJSON_ParseUnionFor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFor * x = j ? cJSON_GetUnionForValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFor(const struct UnionFor * x) { cJSON * j = cJSON_CreateUnionFor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRegister(const struct UnionRegister * x) {
+cJSON * cJSON_CreateUnionFor(const struct UnionFor * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRegister(x->value.purple_register);
+            j = cJSON_CreateFor(x->value.purple_for);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRegister(struct UnionRegister * x) {
+void cJSON_DeleteUnionFor(struct UnionFor * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRegister(x->value.purple_register);
+            cJSON_DeleteFor(x->value.purple_for);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionReinterpretCast * cJSON_GetUnionReinterpretCastValue(const cJSON * j) {
-    struct UnionReinterpretCast * x = cJSON_malloc(sizeof(struct UnionReinterpretCast));
+struct UnionFriend * cJSON_GetUnionFriendValue(const cJSON * j) {
+    struct UnionFriend * x = cJSON_malloc(sizeof(struct UnionFriend));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionReinterpretCast));
+        memset(x, 0, sizeof(struct UnionFriend));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_reinterpret_cast = cJSON_GetReinterpretCastValue(j);
-            if (NULL == x->value.purple_reinterpret_cast) x->type = 0;
+            x->value.purple_friend = cJSON_GetFriendValue(j);
+            if (NULL == x->value.purple_friend) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionReinterpretCast * cJSON_ParseUnionReinterpretCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReinterpretCast * x = j ? cJSON_GetUnionReinterpretCastValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionReinterpretCast(const struct UnionReinterpretCast * x) { cJSON * j = cJSON_CreateUnionReinterpretCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionFriend * cJSON_ParseUnionFriend(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionFriend * x = j ? cJSON_GetUnionFriendValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionFriend(const struct UnionFriend * x) { cJSON * j = cJSON_CreateUnionFriend(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionReinterpretCast(const struct UnionReinterpretCast * x) {
+cJSON * cJSON_CreateUnionFriend(const struct UnionFriend * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateReinterpretCast(x->value.purple_reinterpret_cast);
+            j = cJSON_CreateFriend(x->value.purple_friend);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionReinterpretCast(struct UnionReinterpretCast * x) {
+void cJSON_DeleteUnionFriend(struct UnionFriend * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteReinterpretCast(x->value.purple_reinterpret_cast);
+            cJSON_DeleteFriend(x->value.purple_friend);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRequires * cJSON_GetUnionRequiresValue(const cJSON * j) {
-    struct UnionRequires * x = cJSON_malloc(sizeof(struct UnionRequires));
+struct UnionGoto * cJSON_GetUnionGotoValue(const cJSON * j) {
+    struct UnionGoto * x = cJSON_malloc(sizeof(struct UnionGoto));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRequires));
+        memset(x, 0, sizeof(struct UnionGoto));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_requires = cJSON_GetRequiresValue(j);
-            if (NULL == x->value.purple_requires) x->type = 0;
+            x->value.purple_goto = cJSON_GetGotoValue(j);
+            if (NULL == x->value.purple_goto) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRequires * cJSON_ParseUnionRequires(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequires * x = j ? cJSON_GetUnionRequiresValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRequires(const struct UnionRequires * x) { cJSON * j = cJSON_CreateUnionRequires(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionGoto * cJSON_ParseUnionGoto(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionGoto * x = j ? cJSON_GetUnionGotoValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionGoto(const struct UnionGoto * x) { cJSON * j = cJSON_CreateUnionGoto(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRequires(const struct UnionRequires * x) {
+cJSON * cJSON_CreateUnionGoto(const struct UnionGoto * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRequires(x->value.purple_requires);
+            j = cJSON_CreateGoto(x->value.purple_goto);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRequires(struct UnionRequires * x) {
+void cJSON_DeleteUnionGoto(struct UnionGoto * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRequires(x->value.purple_requires);
+            cJSON_DeleteGoto(x->value.purple_goto);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionRestrict * cJSON_GetUnionRestrictValue(const cJSON * j) {
-    struct UnionRestrict * x = cJSON_malloc(sizeof(struct UnionRestrict));
+struct UnionIf * cJSON_GetUnionIfValue(const cJSON * j) {
+    struct UnionIf * x = cJSON_malloc(sizeof(struct UnionIf));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionRestrict));
+        memset(x, 0, sizeof(struct UnionIf));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_restrict = cJSON_GetRestrictValue(j);
-            if (NULL == x->value.purple_restrict) x->type = 0;
+            x->value.purple_if = cJSON_GetIfValue(j);
+            if (NULL == x->value.purple_if) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionRestrict * cJSON_ParseUnionRestrict(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRestrict * x = j ? cJSON_GetUnionRestrictValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionRestrict(const struct UnionRestrict * x) { cJSON * j = cJSON_CreateUnionRestrict(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionIf * cJSON_ParseUnionIf(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionIf * x = j ? cJSON_GetUnionIfValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionIf(const struct UnionIf * x) { cJSON * j = cJSON_CreateUnionIf(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionRestrict(const struct UnionRestrict * x) {
+cJSON * cJSON_CreateUnionIf(const struct UnionIf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateRestrict(x->value.purple_restrict);
+            j = cJSON_CreateIf(x->value.purple_if);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionRestrict(struct UnionRestrict * x) {
+void cJSON_DeleteUnionIf(struct UnionIf * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteRestrict(x->value.purple_restrict);
+            cJSON_DeleteIf(x->value.purple_if);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionReturn * cJSON_GetUnionReturnValue(const cJSON * j) {
-    struct UnionReturn * x = cJSON_malloc(sizeof(struct UnionReturn));
+struct UnionImport * cJSON_GetUnionImportValue(const cJSON * j) {
+    struct UnionImport * x = cJSON_malloc(sizeof(struct UnionImport));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionReturn));
+        memset(x, 0, sizeof(struct UnionImport));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_return = cJSON_GetReturnValue(j);
-            if (NULL == x->value.purple_return) x->type = 0;
+            x->value.purple_import = cJSON_GetImportValue(j);
+            if (NULL == x->value.purple_import) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionReturn * cJSON_ParseUnionReturn(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReturn * x = j ? cJSON_GetUnionReturnValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionReturn(const struct UnionReturn * x) { cJSON * j = cJSON_CreateUnionReturn(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionImport * cJSON_ParseUnionImport(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionImport * x = j ? cJSON_GetUnionImportValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionImport(const struct UnionImport * x) { cJSON * j = cJSON_CreateUnionImport(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionReturn(const struct UnionReturn * x) {
+cJSON * cJSON_CreateUnionImport(const struct UnionImport * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateReturn(x->value.purple_return);
+            j = cJSON_CreateImport(x->value.purple_import);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionReturn(struct UnionReturn * x) {
+void cJSON_DeleteUnionImport(struct UnionImport * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteReturn(x->value.purple_return);
+            cJSON_DeleteImport(x->value.purple_import);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSelfUnion * cJSON_GetUnionSelfUnionValue(const cJSON * j) {
-    struct UnionSelfUnion * x = cJSON_malloc(sizeof(struct UnionSelfUnion));
+struct UnionInline * cJSON_GetUnionInlineValue(const cJSON * j) {
+    struct UnionInline * x = cJSON_malloc(sizeof(struct UnionInline));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSelfUnion));
+        memset(x, 0, sizeof(struct UnionInline));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.self_class = cJSON_GetSelfClassValue(j);
-            if (NULL == x->value.self_class) x->type = 0;
+            x->value.purple_inline = cJSON_GetInlineValue(j);
+            if (NULL == x->value.purple_inline) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSelfUnion * cJSON_ParseUnionSelfUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelfUnion * x = j ? cJSON_GetUnionSelfUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSelfUnion(const struct UnionSelfUnion * x) { cJSON * j = cJSON_CreateUnionSelfUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionInline * cJSON_ParseUnionInline(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionInline * x = j ? cJSON_GetUnionInlineValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionInline(const struct UnionInline * x) { cJSON * j = cJSON_CreateUnionInline(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSelfUnion(const struct UnionSelfUnion * x) {
+cJSON * cJSON_CreateUnionInline(const struct UnionInline * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSelfClass(x->value.self_class);
+            j = cJSON_CreateInline(x->value.purple_inline);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSelfUnion(struct UnionSelfUnion * x) {
+void cJSON_DeleteUnionInline(struct UnionInline * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSelfClass(x->value.self_class);
+            cJSON_DeleteInline(x->value.purple_inline);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionShort * cJSON_GetUnionShortValue(const cJSON * j) {
-    struct UnionShort * x = cJSON_malloc(sizeof(struct UnionShort));
+struct UnionInt * cJSON_GetUnionIntValue(const cJSON * j) {
+    struct UnionInt * x = cJSON_malloc(sizeof(struct UnionInt));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionShort));
+        memset(x, 0, sizeof(struct UnionInt));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_short = cJSON_GetShortValue(j);
-            if (NULL == x->value.purple_short) x->type = 0;
+            x->value.purple_int = cJSON_GetIntValue(j);
+            if (NULL == x->value.purple_int) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionShort * cJSON_ParseUnionShort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionShort * x = j ? cJSON_GetUnionShortValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionShort(const struct UnionShort * x) { cJSON * j = cJSON_CreateUnionShort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionInt * cJSON_ParseUnionInt(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionInt * x = j ? cJSON_GetUnionIntValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionInt(const struct UnionInt * x) { cJSON * j = cJSON_CreateUnionInt(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionShort(const struct UnionShort * x) {
+cJSON * cJSON_CreateUnionInt(const struct UnionInt * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateShort(x->value.purple_short);
+            j = cJSON_CreateInt(x->value.purple_int);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionShort(struct UnionShort * x) {
+void cJSON_DeleteUnionInt(struct UnionInt * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteShort(x->value.purple_short);
+            cJSON_DeleteInt(x->value.purple_int);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSigned * cJSON_GetUnionSignedValue(const cJSON * j) {
-    struct UnionSigned * x = cJSON_malloc(sizeof(struct UnionSigned));
+struct UnionLong * cJSON_GetUnionLongValue(const cJSON * j) {
+    struct UnionLong * x = cJSON_malloc(sizeof(struct UnionLong));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSigned));
+        memset(x, 0, sizeof(struct UnionLong));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_signed = cJSON_GetSignedValue(j);
-            if (NULL == x->value.purple_signed) x->type = 0;
+            x->value.purple_long = cJSON_GetLongValue(j);
+            if (NULL == x->value.purple_long) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSigned * cJSON_ParseUnionSigned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSigned * x = j ? cJSON_GetUnionSignedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSigned(const struct UnionSigned * x) { cJSON * j = cJSON_CreateUnionSigned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionLong * cJSON_ParseUnionLong(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionLong * x = j ? cJSON_GetUnionLongValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionLong(const struct UnionLong * x) { cJSON * j = cJSON_CreateUnionLong(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSigned(const struct UnionSigned * x) {
+cJSON * cJSON_CreateUnionLong(const struct UnionLong * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSigned(x->value.purple_signed);
+            j = cJSON_CreateLong(x->value.purple_long);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSigned(struct UnionSigned * x) {
+void cJSON_DeleteUnionLong(struct UnionLong * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSigned(x->value.purple_signed);
+            cJSON_DeleteLong(x->value.purple_long);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSizeof * cJSON_GetUnionSizeofValue(const cJSON * j) {
-    struct UnionSizeof * x = cJSON_malloc(sizeof(struct UnionSizeof));
+struct UnionModule * cJSON_GetUnionModuleValue(const cJSON * j) {
+    struct UnionModule * x = cJSON_malloc(sizeof(struct UnionModule));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSizeof));
+        memset(x, 0, sizeof(struct UnionModule));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_sizeof = cJSON_GetSizeofValue(j);
-            if (NULL == x->value.purple_sizeof) x->type = 0;
+            x->value.purple_module = cJSON_GetModuleValue(j);
+            if (NULL == x->value.purple_module) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSizeof * cJSON_ParseUnionSizeof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSizeof * x = j ? cJSON_GetUnionSizeofValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSizeof(const struct UnionSizeof * x) { cJSON * j = cJSON_CreateUnionSizeof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionModule * cJSON_ParseUnionModule(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionModule * x = j ? cJSON_GetUnionModuleValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionModule(const struct UnionModule * x) { cJSON * j = cJSON_CreateUnionModule(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSizeof(const struct UnionSizeof * x) {
+cJSON * cJSON_CreateUnionModule(const struct UnionModule * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSizeof(x->value.purple_sizeof);
+            j = cJSON_CreateModule(x->value.purple_module);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSizeof(struct UnionSizeof * x) {
+void cJSON_DeleteUnionModule(struct UnionModule * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSizeof(x->value.purple_sizeof);
+            cJSON_DeleteModule(x->value.purple_module);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStatic * cJSON_GetUnionStaticValue(const cJSON * j) {
-    struct UnionStatic * x = cJSON_malloc(sizeof(struct UnionStatic));
+struct UnionMutable * cJSON_GetUnionMutableValue(const cJSON * j) {
+    struct UnionMutable * x = cJSON_malloc(sizeof(struct UnionMutable));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStatic));
+        memset(x, 0, sizeof(struct UnionMutable));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_static = cJSON_GetStaticValue(j);
-            if (NULL == x->value.purple_static) x->type = 0;
+            x->value.purple_mutable = cJSON_GetMutableValue(j);
+            if (NULL == x->value.purple_mutable) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStatic * cJSON_ParseUnionStatic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStatic * x = j ? cJSON_GetUnionStaticValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStatic(const struct UnionStatic * x) { cJSON * j = cJSON_CreateUnionStatic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionMutable * cJSON_ParseUnionMutable(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionMutable * x = j ? cJSON_GetUnionMutableValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionMutable(const struct UnionMutable * x) { cJSON * j = cJSON_CreateUnionMutable(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStatic(const struct UnionStatic * x) {
+cJSON * cJSON_CreateUnionMutable(const struct UnionMutable * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStatic(x->value.purple_static);
+            j = cJSON_CreateMutable(x->value.purple_mutable);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStatic(struct UnionStatic * x) {
+void cJSON_DeleteUnionMutable(struct UnionMutable * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStatic(x->value.purple_static);
+            cJSON_DeleteMutable(x->value.purple_mutable);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStaticAssert * cJSON_GetUnionStaticAssertValue(const cJSON * j) {
-    struct UnionStaticAssert * x = cJSON_malloc(sizeof(struct UnionStaticAssert));
+struct UnionNamespace * cJSON_GetUnionNamespaceValue(const cJSON * j) {
+    struct UnionNamespace * x = cJSON_malloc(sizeof(struct UnionNamespace));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStaticAssert));
+        memset(x, 0, sizeof(struct UnionNamespace));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_static_assert = cJSON_GetStaticAssertValue(j);
-            if (NULL == x->value.purple_static_assert) x->type = 0;
+            x->value.purple_namespace = cJSON_GetNamespaceValue(j);
+            if (NULL == x->value.purple_namespace) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStaticAssert * cJSON_ParseUnionStaticAssert(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStaticAssert * x = j ? cJSON_GetUnionStaticAssertValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStaticAssert(const struct UnionStaticAssert * x) { cJSON * j = cJSON_CreateUnionStaticAssert(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNamespace * cJSON_ParseUnionNamespace(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNamespace * x = j ? cJSON_GetUnionNamespaceValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNamespace(const struct UnionNamespace * x) { cJSON * j = cJSON_CreateUnionNamespace(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStaticAssert(const struct UnionStaticAssert * x) {
+cJSON * cJSON_CreateUnionNamespace(const struct UnionNamespace * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStaticAssert(x->value.purple_static_assert);
+            j = cJSON_CreateNamespace(x->value.purple_namespace);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStaticAssert(struct UnionStaticAssert * x) {
+void cJSON_DeleteUnionNamespace(struct UnionNamespace * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStaticAssert(x->value.purple_static_assert);
+            cJSON_DeleteNamespace(x->value.purple_namespace);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStaticCast * cJSON_GetUnionStaticCastValue(const cJSON * j) {
-    struct UnionStaticCast * x = cJSON_malloc(sizeof(struct UnionStaticCast));
+struct UnionNew * cJSON_GetUnionNewValue(const cJSON * j) {
+    struct UnionNew * x = cJSON_malloc(sizeof(struct UnionNew));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStaticCast));
+        memset(x, 0, sizeof(struct UnionNew));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_static_cast = cJSON_GetStaticCastValue(j);
-            if (NULL == x->value.purple_static_cast) x->type = 0;
+            x->value.purple_new = cJSON_GetNewValue(j);
+            if (NULL == x->value.purple_new) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStaticCast * cJSON_ParseUnionStaticCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStaticCast * x = j ? cJSON_GetUnionStaticCastValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStaticCast(const struct UnionStaticCast * x) { cJSON * j = cJSON_CreateUnionStaticCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNew * cJSON_ParseUnionNew(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNew * x = j ? cJSON_GetUnionNewValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNew(const struct UnionNew * x) { cJSON * j = cJSON_CreateUnionNew(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStaticCast(const struct UnionStaticCast * x) {
+cJSON * cJSON_CreateUnionNew(const struct UnionNew * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStaticCast(x->value.purple_static_cast);
+            j = cJSON_CreateNew(x->value.purple_new);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStaticCast(struct UnionStaticCast * x) {
+void cJSON_DeleteUnionNew(struct UnionNew * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStaticCast(x->value.purple_static_cast);
+            cJSON_DeleteNew(x->value.purple_new);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionStruct * cJSON_GetUnionStructValue(const cJSON * j) {
-    struct UnionStruct * x = cJSON_malloc(sizeof(struct UnionStruct));
+struct UnionNoexcept * cJSON_GetUnionNoexceptValue(const cJSON * j) {
+    struct UnionNoexcept * x = cJSON_malloc(sizeof(struct UnionNoexcept));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionStruct));
+        memset(x, 0, sizeof(struct UnionNoexcept));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_struct = cJSON_GetStructValue(j);
-            if (NULL == x->value.purple_struct) x->type = 0;
+            x->value.purple_noexcept = cJSON_GetNoexceptValue(j);
+            if (NULL == x->value.purple_noexcept) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionStruct * cJSON_ParseUnionStruct(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStruct * x = j ? cJSON_GetUnionStructValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionStruct(const struct UnionStruct * x) { cJSON * j = cJSON_CreateUnionStruct(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNoexcept * cJSON_ParseUnionNoexcept(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNoexcept * x = j ? cJSON_GetUnionNoexceptValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNoexcept(const struct UnionNoexcept * x) { cJSON * j = cJSON_CreateUnionNoexcept(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionStruct(const struct UnionStruct * x) {
+cJSON * cJSON_CreateUnionNoexcept(const struct UnionNoexcept * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateStruct(x->value.purple_struct);
+            j = cJSON_CreateNoexcept(x->value.purple_noexcept);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionStruct(struct UnionStruct * x) {
+void cJSON_DeleteUnionNoexcept(struct UnionNoexcept * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteStruct(x->value.purple_struct);
+            cJSON_DeleteNoexcept(x->value.purple_noexcept);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSwitch * cJSON_GetUnionSwitchValue(const cJSON * j) {
-    struct UnionSwitch * x = cJSON_malloc(sizeof(struct UnionSwitch));
+struct UnionNoneUnion * cJSON_GetUnionNoneUnionValue(const cJSON * j) {
+    struct UnionNoneUnion * x = cJSON_malloc(sizeof(struct UnionNoneUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSwitch));
+        memset(x, 0, sizeof(struct UnionNoneUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_switch = cJSON_GetSwitchValue(j);
-            if (NULL == x->value.purple_switch) x->type = 0;
+            x->value.none_class = cJSON_GetNoneClassValue(j);
+            if (NULL == x->value.none_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSwitch * cJSON_ParseUnionSwitch(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSwitch * x = j ? cJSON_GetUnionSwitchValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSwitch(const struct UnionSwitch * x) { cJSON * j = cJSON_CreateUnionSwitch(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNoneUnion * cJSON_ParseUnionNoneUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNoneUnion * x = j ? cJSON_GetUnionNoneUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNoneUnion(const struct UnionNoneUnion * x) { cJSON * j = cJSON_CreateUnionNoneUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSwitch(const struct UnionSwitch * x) {
+cJSON * cJSON_CreateUnionNoneUnion(const struct UnionNoneUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSwitch(x->value.purple_switch);
+            j = cJSON_CreateNoneClass(x->value.none_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSwitch(struct UnionSwitch * x) {
+void cJSON_DeleteUnionNoneUnion(struct UnionNoneUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSwitch(x->value.purple_switch);
+            cJSON_DeleteNoneClass(x->value.none_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionSynchronized * cJSON_GetUnionSynchronizedValue(const cJSON * j) {
-    struct UnionSynchronized * x = cJSON_malloc(sizeof(struct UnionSynchronized));
+struct UnionNot * cJSON_GetUnionNotValue(const cJSON * j) {
+    struct UnionNot * x = cJSON_malloc(sizeof(struct UnionNot));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionSynchronized));
+        memset(x, 0, sizeof(struct UnionNot));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_synchronized = cJSON_GetSynchronizedValue(j);
-            if (NULL == x->value.purple_synchronized) x->type = 0;
+            x->value.purple_not = cJSON_GetNotValue(j);
+            if (NULL == x->value.purple_not) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionSynchronized * cJSON_ParseUnionSynchronized(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSynchronized * x = j ? cJSON_GetUnionSynchronizedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionSynchronized(const struct UnionSynchronized * x) { cJSON * j = cJSON_CreateUnionSynchronized(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNot * cJSON_ParseUnionNot(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNot * x = j ? cJSON_GetUnionNotValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNot(const struct UnionNot * x) { cJSON * j = cJSON_CreateUnionNot(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionSynchronized(const struct UnionSynchronized * x) {
+cJSON * cJSON_CreateUnionNot(const struct UnionNot * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateSynchronized(x->value.purple_synchronized);
+            j = cJSON_CreateNot(x->value.purple_not);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionSynchronized(struct UnionSynchronized * x) {
+void cJSON_DeleteUnionNot(struct UnionNot * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteSynchronized(x->value.purple_synchronized);
+            cJSON_DeleteNot(x->value.purple_not);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTemplate * cJSON_GetUnionTemplateValue(const cJSON * j) {
-    struct UnionTemplate * x = cJSON_malloc(sizeof(struct UnionTemplate));
+struct UnionNotEq * cJSON_GetUnionNotEqValue(const cJSON * j) {
+    struct UnionNotEq * x = cJSON_malloc(sizeof(struct UnionNotEq));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTemplate));
+        memset(x, 0, sizeof(struct UnionNotEq));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_template = cJSON_GetTemplateValue(j);
-            if (NULL == x->value.purple_template) x->type = 0;
+            x->value.purple_not_eq = cJSON_GetNotEqValue(j);
+            if (NULL == x->value.purple_not_eq) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTemplate * cJSON_ParseUnionTemplate(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTemplate * x = j ? cJSON_GetUnionTemplateValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTemplate(const struct UnionTemplate * x) { cJSON * j = cJSON_CreateUnionTemplate(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNotEq * cJSON_ParseUnionNotEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNotEq * x = j ? cJSON_GetUnionNotEqValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNotEq(const struct UnionNotEq * x) { cJSON * j = cJSON_CreateUnionNotEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTemplate(const struct UnionTemplate * x) {
+cJSON * cJSON_CreateUnionNotEq(const struct UnionNotEq * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTemplate(x->value.purple_template);
+            j = cJSON_CreateNotEq(x->value.purple_not_eq);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTemplate(struct UnionTemplate * x) {
+void cJSON_DeleteUnionNotEq(struct UnionNotEq * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTemplate(x->value.purple_template);
+            cJSON_DeleteNotEq(x->value.purple_not_eq);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionThis * cJSON_GetUnionThisValue(const cJSON * j) {
-    struct UnionThis * x = cJSON_malloc(sizeof(struct UnionThis));
+struct UnionNullUnion * cJSON_GetUnionNullUnionValue(const cJSON * j) {
+    struct UnionNullUnion * x = cJSON_malloc(sizeof(struct UnionNullUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionThis));
+        memset(x, 0, sizeof(struct UnionNullUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_this = cJSON_GetThisValue(j);
-            if (NULL == x->value.purple_this) x->type = 0;
+            x->value.union_null_null = cJSON_GetUnionNullNullValue(j);
+            if (NULL == x->value.union_null_null) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionThis * cJSON_ParseUnionThis(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThis * x = j ? cJSON_GetUnionThisValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionThis(const struct UnionThis * x) { cJSON * j = cJSON_CreateUnionThis(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNullUnion * cJSON_ParseUnionNullUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNullUnion * x = j ? cJSON_GetUnionNullUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNullUnion(const struct UnionNullUnion * x) { cJSON * j = cJSON_CreateUnionNullUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionThis(const struct UnionThis * x) {
+cJSON * cJSON_CreateUnionNullUnion(const struct UnionNullUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateThis(x->value.purple_this);
+            j = cJSON_CreateUnionNullNull(x->value.union_null_null);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionThis(struct UnionThis * x) {
+void cJSON_DeleteUnionNullUnion(struct UnionNullUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteThis(x->value.purple_this);
+            cJSON_DeleteUnionNullNull(x->value.union_null_null);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionThreadLocal * cJSON_GetUnionThreadLocalValue(const cJSON * j) {
-    struct UnionThreadLocal * x = cJSON_malloc(sizeof(struct UnionThreadLocal));
+struct UnionNullptr * cJSON_GetUnionNullptrValue(const cJSON * j) {
+    struct UnionNullptr * x = cJSON_malloc(sizeof(struct UnionNullptr));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionThreadLocal));
+        memset(x, 0, sizeof(struct UnionNullptr));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_thread_local = cJSON_GetThreadLocalValue(j);
-            if (NULL == x->value.purple_thread_local) x->type = 0;
+            x->value.purple_nullptr = cJSON_GetNullptrValue(j);
+            if (NULL == x->value.purple_nullptr) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionThreadLocal * cJSON_ParseUnionThreadLocal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThreadLocal * x = j ? cJSON_GetUnionThreadLocalValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionThreadLocal(const struct UnionThreadLocal * x) { cJSON * j = cJSON_CreateUnionThreadLocal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionNullptr * cJSON_ParseUnionNullptr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionNullptr * x = j ? cJSON_GetUnionNullptrValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionNullptr(const struct UnionNullptr * x) { cJSON * j = cJSON_CreateUnionNullptr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionThreadLocal(const struct UnionThreadLocal * x) {
+cJSON * cJSON_CreateUnionNullptr(const struct UnionNullptr * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateThreadLocal(x->value.purple_thread_local);
+            j = cJSON_CreateNullptr(x->value.purple_nullptr);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionThreadLocal(struct UnionThreadLocal * x) {
+void cJSON_DeleteUnionNullptr(struct UnionNullptr * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteThreadLocal(x->value.purple_thread_local);
+            cJSON_DeleteNullptr(x->value.purple_nullptr);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionThrow * cJSON_GetUnionThrowValue(const cJSON * j) {
-    struct UnionThrow * x = cJSON_malloc(sizeof(struct UnionThrow));
+struct UnionOperator * cJSON_GetUnionOperatorValue(const cJSON * j) {
+    struct UnionOperator * x = cJSON_malloc(sizeof(struct UnionOperator));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionThrow));
+        memset(x, 0, sizeof(struct UnionOperator));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_throw = cJSON_GetThrowValue(j);
-            if (NULL == x->value.purple_throw) x->type = 0;
+            x->value.purple_operator = cJSON_GetOperatorValue(j);
+            if (NULL == x->value.purple_operator) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionThrow * cJSON_ParseUnionThrow(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThrow * x = j ? cJSON_GetUnionThrowValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionThrow(const struct UnionThrow * x) { cJSON * j = cJSON_CreateUnionThrow(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOperator * cJSON_ParseUnionOperator(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOperator * x = j ? cJSON_GetUnionOperatorValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOperator(const struct UnionOperator * x) { cJSON * j = cJSON_CreateUnionOperator(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionThrow(const struct UnionThrow * x) {
+cJSON * cJSON_CreateUnionOperator(const struct UnionOperator * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateThrow(x->value.purple_throw);
+            j = cJSON_CreateOperator(x->value.purple_operator);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionThrow(struct UnionThrow * x) {
+void cJSON_DeleteUnionOperator(struct UnionOperator * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteThrow(x->value.purple_throw);
+            cJSON_DeleteOperator(x->value.purple_operator);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTrue * cJSON_GetUnionTrueValue(const cJSON * j) {
-    struct UnionTrue * x = cJSON_malloc(sizeof(struct UnionTrue));
+struct UnionOr * cJSON_GetUnionOrValue(const cJSON * j) {
+    struct UnionOr * x = cJSON_malloc(sizeof(struct UnionOr));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTrue));
+        memset(x, 0, sizeof(struct UnionOr));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.true_class = cJSON_GetTrueClassValue(j);
-            if (NULL == x->value.true_class) x->type = 0;
+            x->value.purple_or = cJSON_GetOrValue(j);
+            if (NULL == x->value.purple_or) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTrue * cJSON_ParseUnionTrue(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTrue * x = j ? cJSON_GetUnionTrueValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTrue(const struct UnionTrue * x) { cJSON * j = cJSON_CreateUnionTrue(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOr * cJSON_ParseUnionOr(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOr * x = j ? cJSON_GetUnionOrValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOr(const struct UnionOr * x) { cJSON * j = cJSON_CreateUnionOr(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTrue(const struct UnionTrue * x) {
+cJSON * cJSON_CreateUnionOr(const struct UnionOr * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTrueClass(x->value.true_class);
+            j = cJSON_CreateOr(x->value.purple_or);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTrue(struct UnionTrue * x) {
+void cJSON_DeleteUnionOr(struct UnionOr * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTrueClass(x->value.true_class);
+            cJSON_DeleteOr(x->value.purple_or);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTry * cJSON_GetUnionTryValue(const cJSON * j) {
-    struct UnionTry * x = cJSON_malloc(sizeof(struct UnionTry));
+struct UnionOrEq * cJSON_GetUnionOrEqValue(const cJSON * j) {
+    struct UnionOrEq * x = cJSON_malloc(sizeof(struct UnionOrEq));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTry));
+        memset(x, 0, sizeof(struct UnionOrEq));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_try = cJSON_GetTryValue(j);
-            if (NULL == x->value.purple_try) x->type = 0;
+            x->value.purple_or_eq = cJSON_GetOrEqValue(j);
+            if (NULL == x->value.purple_or_eq) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTry * cJSON_ParseUnionTry(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTry * x = j ? cJSON_GetUnionTryValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTry(const struct UnionTry * x) { cJSON * j = cJSON_CreateUnionTry(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOrEq * cJSON_ParseUnionOrEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOrEq * x = j ? cJSON_GetUnionOrEqValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOrEq(const struct UnionOrEq * x) { cJSON * j = cJSON_CreateUnionOrEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTry(const struct UnionTry * x) {
+cJSON * cJSON_CreateUnionOrEq(const struct UnionOrEq * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTry(x->value.purple_try);
+            j = cJSON_CreateOrEq(x->value.purple_or_eq);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTry(struct UnionTry * x) {
+void cJSON_DeleteUnionOrEq(struct UnionOrEq * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTry(x->value.purple_try);
+            cJSON_DeleteOrEq(x->value.purple_or_eq);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypeUnion * cJSON_GetUnionTypeUnionValue(const cJSON * j) {
-    struct UnionTypeUnion * x = cJSON_malloc(sizeof(struct UnionTypeUnion));
+struct UnionOverride * cJSON_GetUnionOverrideValue(const cJSON * j) {
+    struct UnionOverride * x = cJSON_malloc(sizeof(struct UnionOverride));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypeUnion));
+        memset(x, 0, sizeof(struct UnionOverride));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.type_class = cJSON_GetTypeClassValue(j);
-            if (NULL == x->value.type_class) x->type = 0;
+            x->value.purple_override = cJSON_GetOverrideValue(j);
+            if (NULL == x->value.purple_override) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypeUnion * cJSON_ParseUnionTypeUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeUnion * x = j ? cJSON_GetUnionTypeUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypeUnion(const struct UnionTypeUnion * x) { cJSON * j = cJSON_CreateUnionTypeUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionOverride * cJSON_ParseUnionOverride(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionOverride * x = j ? cJSON_GetUnionOverrideValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionOverride(const struct UnionOverride * x) { cJSON * j = cJSON_CreateUnionOverride(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypeUnion(const struct UnionTypeUnion * x) {
+cJSON * cJSON_CreateUnionOverride(const struct UnionOverride * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypeClass(x->value.type_class);
+            j = cJSON_CreateOverride(x->value.purple_override);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypeUnion(struct UnionTypeUnion * x) {
+void cJSON_DeleteUnionOverride(struct UnionOverride * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypeClass(x->value.type_class);
+            cJSON_DeleteOverride(x->value.purple_override);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypedef * cJSON_GetUnionTypedefValue(const cJSON * j) {
-    struct UnionTypedef * x = cJSON_malloc(sizeof(struct UnionTypedef));
+struct UnionPrivate * cJSON_GetUnionPrivateValue(const cJSON * j) {
+    struct UnionPrivate * x = cJSON_malloc(sizeof(struct UnionPrivate));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypedef));
+        memset(x, 0, sizeof(struct UnionPrivate));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_typedef = cJSON_GetTypedefValue(j);
-            if (NULL == x->value.purple_typedef) x->type = 0;
+            x->value.purple_private = cJSON_GetPrivateValue(j);
+            if (NULL == x->value.purple_private) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypedef * cJSON_ParseUnionTypedef(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypedef * x = j ? cJSON_GetUnionTypedefValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypedef(const struct UnionTypedef * x) { cJSON * j = cJSON_CreateUnionTypedef(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPrivate * cJSON_ParseUnionPrivate(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPrivate * x = j ? cJSON_GetUnionPrivateValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPrivate(const struct UnionPrivate * x) { cJSON * j = cJSON_CreateUnionPrivate(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypedef(const struct UnionTypedef * x) {
+cJSON * cJSON_CreateUnionPrivate(const struct UnionPrivate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypedef(x->value.purple_typedef);
+            j = cJSON_CreatePrivate(x->value.purple_private);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypedef(struct UnionTypedef * x) {
+void cJSON_DeleteUnionPrivate(struct UnionPrivate * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypedef(x->value.purple_typedef);
+            cJSON_DeletePrivate(x->value.purple_private);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypeid * cJSON_GetUnionTypeidValue(const cJSON * j) {
-    struct UnionTypeid * x = cJSON_malloc(sizeof(struct UnionTypeid));
+struct UnionProtected * cJSON_GetUnionProtectedValue(const cJSON * j) {
+    struct UnionProtected * x = cJSON_malloc(sizeof(struct UnionProtected));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypeid));
+        memset(x, 0, sizeof(struct UnionProtected));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_typeid = cJSON_GetTypeidValue(j);
-            if (NULL == x->value.purple_typeid) x->type = 0;
+            x->value.purple_protected = cJSON_GetProtectedValue(j);
+            if (NULL == x->value.purple_protected) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypeid * cJSON_ParseUnionTypeid(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeid * x = j ? cJSON_GetUnionTypeidValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypeid(const struct UnionTypeid * x) { cJSON * j = cJSON_CreateUnionTypeid(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionProtected * cJSON_ParseUnionProtected(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtected * x = j ? cJSON_GetUnionProtectedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionProtected(const struct UnionProtected * x) { cJSON * j = cJSON_CreateUnionProtected(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypeid(const struct UnionTypeid * x) {
+cJSON * cJSON_CreateUnionProtected(const struct UnionProtected * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypeid(x->value.purple_typeid);
+            j = cJSON_CreateProtected(x->value.purple_protected);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypeid(struct UnionTypeid * x) {
+void cJSON_DeleteUnionProtected(struct UnionProtected * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypeid(x->value.purple_typeid);
+            cJSON_DeleteProtected(x->value.purple_protected);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypename * cJSON_GetUnionTypenameValue(const cJSON * j) {
-    struct UnionTypename * x = cJSON_malloc(sizeof(struct UnionTypename));
+struct UnionProtocolUnion * cJSON_GetUnionProtocolUnionValue(const cJSON * j) {
+    struct UnionProtocolUnion * x = cJSON_malloc(sizeof(struct UnionProtocolUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypename));
+        memset(x, 0, sizeof(struct UnionProtocolUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_typename = cJSON_GetTypenameValue(j);
-            if (NULL == x->value.purple_typename) x->type = 0;
+            x->value.protocol_class = cJSON_GetProtocolClassValue(j);
+            if (NULL == x->value.protocol_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypename * cJSON_ParseUnionTypename(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypename * x = j ? cJSON_GetUnionTypenameValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypename(const struct UnionTypename * x) { cJSON * j = cJSON_CreateUnionTypename(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionProtocolUnion * cJSON_ParseUnionProtocolUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionProtocolUnion * x = j ? cJSON_GetUnionProtocolUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionProtocolUnion(const struct UnionProtocolUnion * x) { cJSON * j = cJSON_CreateUnionProtocolUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypename(const struct UnionTypename * x) {
+cJSON * cJSON_CreateUnionProtocolUnion(const struct UnionProtocolUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypename(x->value.purple_typename);
+            j = cJSON_CreateProtocolClass(x->value.protocol_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypename(struct UnionTypename * x) {
+void cJSON_DeleteUnionProtocolUnion(struct UnionProtocolUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypename(x->value.purple_typename);
+            cJSON_DeleteProtocolClass(x->value.protocol_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypeof * cJSON_GetUnionTypeofValue(const cJSON * j) {
-    struct UnionTypeof * x = cJSON_malloc(sizeof(struct UnionTypeof));
+struct UnionPublic * cJSON_GetUnionPublicValue(const cJSON * j) {
+    struct UnionPublic * x = cJSON_malloc(sizeof(struct UnionPublic));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypeof));
+        memset(x, 0, sizeof(struct UnionPublic));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_typeof = cJSON_GetTypeofValue(j);
-            if (NULL == x->value.purple_typeof) x->type = 0;
+            x->value.purple_public = cJSON_GetPublicValue(j);
+            if (NULL == x->value.purple_public) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypeof * cJSON_ParseUnionTypeof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeof * x = j ? cJSON_GetUnionTypeofValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypeof(const struct UnionTypeof * x) { cJSON * j = cJSON_CreateUnionTypeof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionPublic * cJSON_ParseUnionPublic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionPublic * x = j ? cJSON_GetUnionPublicValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionPublic(const struct UnionPublic * x) { cJSON * j = cJSON_CreateUnionPublic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypeof(const struct UnionTypeof * x) {
+cJSON * cJSON_CreateUnionPublic(const struct UnionPublic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypeof(x->value.purple_typeof);
+            j = cJSON_CreatePublic(x->value.purple_public);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypeof(struct UnionTypeof * x) {
+void cJSON_DeleteUnionPublic(struct UnionPublic * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypeof(x->value.purple_typeof);
+            cJSON_DeletePublic(x->value.purple_public);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUnionUnion * cJSON_GetUnionUnionUnionValue(const cJSON * j) {
-    struct UnionUnionUnion * x = cJSON_malloc(sizeof(struct UnionUnionUnion));
+struct UnionRegister * cJSON_GetUnionRegisterValue(const cJSON * j) {
+    struct UnionRegister * x = cJSON_malloc(sizeof(struct UnionRegister));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUnionUnion));
+        memset(x, 0, sizeof(struct UnionRegister));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_union = cJSON_GetUnionValue(j);
-            if (NULL == x->value.purple_union) x->type = 0;
+            x->value.purple_register = cJSON_GetRegisterValue(j);
+            if (NULL == x->value.purple_register) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUnionUnion * cJSON_ParseUnionUnionUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnionUnion * x = j ? cJSON_GetUnionUnionUnionValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUnionUnion(const struct UnionUnionUnion * x) { cJSON * j = cJSON_CreateUnionUnionUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRegister * cJSON_ParseUnionRegister(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRegister * x = j ? cJSON_GetUnionRegisterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRegister(const struct UnionRegister * x) { cJSON * j = cJSON_CreateUnionRegister(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUnionUnion(const struct UnionUnionUnion * x) {
+cJSON * cJSON_CreateUnionRegister(const struct UnionRegister * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnion(x->value.purple_union);
+            j = cJSON_CreateRegister(x->value.purple_register);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUnionUnion(struct UnionUnionUnion * x) {
+void cJSON_DeleteUnionRegister(struct UnionRegister * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnion(x->value.purple_union);
+            cJSON_DeleteRegister(x->value.purple_register);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUnsigned * cJSON_GetUnionUnsignedValue(const cJSON * j) {
-    struct UnionUnsigned * x = cJSON_malloc(sizeof(struct UnionUnsigned));
+struct UnionReinterpretCast * cJSON_GetUnionReinterpretCastValue(const cJSON * j) {
+    struct UnionReinterpretCast * x = cJSON_malloc(sizeof(struct UnionReinterpretCast));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUnsigned));
+        memset(x, 0, sizeof(struct UnionReinterpretCast));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_unsigned = cJSON_GetUnsignedValue(j);
-            if (NULL == x->value.purple_unsigned) x->type = 0;
+            x->value.purple_reinterpret_cast = cJSON_GetReinterpretCastValue(j);
+            if (NULL == x->value.purple_reinterpret_cast) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUnsigned * cJSON_ParseUnionUnsigned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnsigned * x = j ? cJSON_GetUnionUnsignedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUnsigned(const struct UnionUnsigned * x) { cJSON * j = cJSON_CreateUnionUnsigned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionReinterpretCast * cJSON_ParseUnionReinterpretCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReinterpretCast * x = j ? cJSON_GetUnionReinterpretCastValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionReinterpretCast(const struct UnionReinterpretCast * x) { cJSON * j = cJSON_CreateUnionReinterpretCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUnsigned(const struct UnionUnsigned * x) {
+cJSON * cJSON_CreateUnionReinterpretCast(const struct UnionReinterpretCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnsigned(x->value.purple_unsigned);
+            j = cJSON_CreateReinterpretCast(x->value.purple_reinterpret_cast);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUnsigned(struct UnionUnsigned * x) {
+void cJSON_DeleteUnionReinterpretCast(struct UnionReinterpretCast * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnsigned(x->value.purple_unsigned);
+            cJSON_DeleteReinterpretCast(x->value.purple_reinterpret_cast);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUsing * cJSON_GetUnionUsingValue(const cJSON * j) {
-    struct UnionUsing * x = cJSON_malloc(sizeof(struct UnionUsing));
+struct UnionRequires * cJSON_GetUnionRequiresValue(const cJSON * j) {
+    struct UnionRequires * x = cJSON_malloc(sizeof(struct UnionRequires));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUsing));
+        memset(x, 0, sizeof(struct UnionRequires));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_using = cJSON_GetUsingValue(j);
-            if (NULL == x->value.purple_using) x->type = 0;
+            x->value.purple_requires = cJSON_GetRequiresValue(j);
+            if (NULL == x->value.purple_requires) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUsing * cJSON_ParseUnionUsing(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUsing * x = j ? cJSON_GetUnionUsingValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUsing(const struct UnionUsing * x) { cJSON * j = cJSON_CreateUnionUsing(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRequires * cJSON_ParseUnionRequires(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRequires * x = j ? cJSON_GetUnionRequiresValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRequires(const struct UnionRequires * x) { cJSON * j = cJSON_CreateUnionRequires(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUsing(const struct UnionUsing * x) {
+cJSON * cJSON_CreateUnionRequires(const struct UnionRequires * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUsing(x->value.purple_using);
+            j = cJSON_CreateRequires(x->value.purple_requires);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUsing(struct UnionUsing * x) {
+void cJSON_DeleteUnionRequires(struct UnionRequires * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUsing(x->value.purple_using);
+            cJSON_DeleteRequires(x->value.purple_requires);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionVirtual * cJSON_GetUnionVirtualValue(const cJSON * j) {
-    struct UnionVirtual * x = cJSON_malloc(sizeof(struct UnionVirtual));
+struct UnionRestrict * cJSON_GetUnionRestrictValue(const cJSON * j) {
+    struct UnionRestrict * x = cJSON_malloc(sizeof(struct UnionRestrict));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionVirtual));
+        memset(x, 0, sizeof(struct UnionRestrict));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_virtual = cJSON_GetVirtualValue(j);
-            if (NULL == x->value.purple_virtual) x->type = 0;
+            x->value.purple_restrict = cJSON_GetRestrictValue(j);
+            if (NULL == x->value.purple_restrict) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionVirtual * cJSON_ParseUnionVirtual(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVirtual * x = j ? cJSON_GetUnionVirtualValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionVirtual(const struct UnionVirtual * x) { cJSON * j = cJSON_CreateUnionVirtual(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionRestrict * cJSON_ParseUnionRestrict(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionRestrict * x = j ? cJSON_GetUnionRestrictValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionRestrict(const struct UnionRestrict * x) { cJSON * j = cJSON_CreateUnionRestrict(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionVirtual(const struct UnionVirtual * x) {
+cJSON * cJSON_CreateUnionRestrict(const struct UnionRestrict * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateVirtual(x->value.purple_virtual);
+            j = cJSON_CreateRestrict(x->value.purple_restrict);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionVirtual(struct UnionVirtual * x) {
+void cJSON_DeleteUnionRestrict(struct UnionRestrict * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteVirtual(x->value.purple_virtual);
+            cJSON_DeleteRestrict(x->value.purple_restrict);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionVoid * cJSON_GetUnionVoidValue(const cJSON * j) {
-    struct UnionVoid * x = cJSON_malloc(sizeof(struct UnionVoid));
+struct UnionReturn * cJSON_GetUnionReturnValue(const cJSON * j) {
+    struct UnionReturn * x = cJSON_malloc(sizeof(struct UnionReturn));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionVoid));
+        memset(x, 0, sizeof(struct UnionReturn));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_void = cJSON_GetVoidValue(j);
-            if (NULL == x->value.purple_void) x->type = 0;
+            x->value.purple_return = cJSON_GetReturnValue(j);
+            if (NULL == x->value.purple_return) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionVoid * cJSON_ParseUnionVoid(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVoid * x = j ? cJSON_GetUnionVoidValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionVoid(const struct UnionVoid * x) { cJSON * j = cJSON_CreateUnionVoid(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionReturn * cJSON_ParseUnionReturn(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionReturn * x = j ? cJSON_GetUnionReturnValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionReturn(const struct UnionReturn * x) { cJSON * j = cJSON_CreateUnionReturn(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionVoid(const struct UnionVoid * x) {
+cJSON * cJSON_CreateUnionReturn(const struct UnionReturn * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateVoid(x->value.purple_void);
+            j = cJSON_CreateReturn(x->value.purple_return);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionVoid(struct UnionVoid * x) {
+void cJSON_DeleteUnionReturn(struct UnionReturn * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteVoid(x->value.purple_void);
+            cJSON_DeleteReturn(x->value.purple_return);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionVolatile * cJSON_GetUnionVolatileValue(const cJSON * j) {
-    struct UnionVolatile * x = cJSON_malloc(sizeof(struct UnionVolatile));
+struct UnionSelfUnion * cJSON_GetUnionSelfUnionValue(const cJSON * j) {
+    struct UnionSelfUnion * x = cJSON_malloc(sizeof(struct UnionSelfUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionVolatile));
+        memset(x, 0, sizeof(struct UnionSelfUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_volatile = cJSON_GetVolatileValue(j);
-            if (NULL == x->value.purple_volatile) x->type = 0;
+            x->value.self_class = cJSON_GetSelfClassValue(j);
+            if (NULL == x->value.self_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionVolatile * cJSON_ParseUnionVolatile(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVolatile * x = j ? cJSON_GetUnionVolatileValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionVolatile(const struct UnionVolatile * x) { cJSON * j = cJSON_CreateUnionVolatile(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSelfUnion * cJSON_ParseUnionSelfUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSelfUnion * x = j ? cJSON_GetUnionSelfUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSelfUnion(const struct UnionSelfUnion * x) { cJSON * j = cJSON_CreateUnionSelfUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionVolatile(const struct UnionVolatile * x) {
+cJSON * cJSON_CreateUnionSelfUnion(const struct UnionSelfUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateVolatile(x->value.purple_volatile);
+            j = cJSON_CreateSelfClass(x->value.self_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionVolatile(struct UnionVolatile * x) {
+void cJSON_DeleteUnionSelfUnion(struct UnionSelfUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteVolatile(x->value.purple_volatile);
+            cJSON_DeleteSelfClass(x->value.self_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWcharT * cJSON_GetUnionWcharTValue(const cJSON * j) {
-    struct UnionWcharT * x = cJSON_malloc(sizeof(struct UnionWcharT));
+struct UnionShort * cJSON_GetUnionShortValue(const cJSON * j) {
+    struct UnionShort * x = cJSON_malloc(sizeof(struct UnionShort));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWcharT));
+        memset(x, 0, sizeof(struct UnionShort));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_wchar_t = cJSON_GetWcharTValue(j);
-            if (NULL == x->value.purple_wchar_t) x->type = 0;
+            x->value.purple_short = cJSON_GetShortValue(j);
+            if (NULL == x->value.purple_short) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWcharT * cJSON_ParseUnionWcharT(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWcharT * x = j ? cJSON_GetUnionWcharTValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWcharT(const struct UnionWcharT * x) { cJSON * j = cJSON_CreateUnionWcharT(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionShort * cJSON_ParseUnionShort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionShort * x = j ? cJSON_GetUnionShortValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionShort(const struct UnionShort * x) { cJSON * j = cJSON_CreateUnionShort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWcharT(const struct UnionWcharT * x) {
+cJSON * cJSON_CreateUnionShort(const struct UnionShort * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWcharT(x->value.purple_wchar_t);
+            j = cJSON_CreateShort(x->value.purple_short);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWcharT(struct UnionWcharT * x) {
+void cJSON_DeleteUnionShort(struct UnionShort * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWcharT(x->value.purple_wchar_t);
+            cJSON_DeleteShort(x->value.purple_short);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWhile * cJSON_GetUnionWhileValue(const cJSON * j) {
-    struct UnionWhile * x = cJSON_malloc(sizeof(struct UnionWhile));
+struct UnionSigned * cJSON_GetUnionSignedValue(const cJSON * j) {
+    struct UnionSigned * x = cJSON_malloc(sizeof(struct UnionSigned));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWhile));
+        memset(x, 0, sizeof(struct UnionSigned));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_while = cJSON_GetWhileValue(j);
-            if (NULL == x->value.purple_while) x->type = 0;
+            x->value.purple_signed = cJSON_GetSignedValue(j);
+            if (NULL == x->value.purple_signed) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWhile * cJSON_ParseUnionWhile(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWhile * x = j ? cJSON_GetUnionWhileValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWhile(const struct UnionWhile * x) { cJSON * j = cJSON_CreateUnionWhile(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSigned * cJSON_ParseUnionSigned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSigned * x = j ? cJSON_GetUnionSignedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSigned(const struct UnionSigned * x) { cJSON * j = cJSON_CreateUnionSigned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWhile(const struct UnionWhile * x) {
+cJSON * cJSON_CreateUnionSigned(const struct UnionSigned * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWhile(x->value.purple_while);
+            j = cJSON_CreateSigned(x->value.purple_signed);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWhile(struct UnionWhile * x) {
+void cJSON_DeleteUnionSigned(struct UnionSigned * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWhile(x->value.purple_while);
+            cJSON_DeleteSigned(x->value.purple_signed);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionXor * cJSON_GetUnionXorValue(const cJSON * j) {
-    struct UnionXor * x = cJSON_malloc(sizeof(struct UnionXor));
+struct UnionSizeof * cJSON_GetUnionSizeofValue(const cJSON * j) {
+    struct UnionSizeof * x = cJSON_malloc(sizeof(struct UnionSizeof));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionXor));
+        memset(x, 0, sizeof(struct UnionSizeof));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_xor = cJSON_GetXorValue(j);
-            if (NULL == x->value.purple_xor) x->type = 0;
+            x->value.purple_sizeof = cJSON_GetSizeofValue(j);
+            if (NULL == x->value.purple_sizeof) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionXor * cJSON_ParseUnionXor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionXor * x = j ? cJSON_GetUnionXorValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionXor(const struct UnionXor * x) { cJSON * j = cJSON_CreateUnionXor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSizeof * cJSON_ParseUnionSizeof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSizeof * x = j ? cJSON_GetUnionSizeofValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSizeof(const struct UnionSizeof * x) { cJSON * j = cJSON_CreateUnionSizeof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionXor(const struct UnionXor * x) {
+cJSON * cJSON_CreateUnionSizeof(const struct UnionSizeof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateXor(x->value.purple_xor);
+            j = cJSON_CreateSizeof(x->value.purple_sizeof);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionXor(struct UnionXor * x) {
+void cJSON_DeleteUnionSizeof(struct UnionSizeof * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteXor(x->value.purple_xor);
+            cJSON_DeleteSizeof(x->value.purple_sizeof);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionXorEq * cJSON_GetUnionXorEqValue(const cJSON * j) {
-    struct UnionXorEq * x = cJSON_malloc(sizeof(struct UnionXorEq));
+struct UnionStatic * cJSON_GetUnionStaticValue(const cJSON * j) {
+    struct UnionStatic * x = cJSON_malloc(sizeof(struct UnionStatic));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionXorEq));
+        memset(x, 0, sizeof(struct UnionStatic));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.purple_xor_eq = cJSON_GetXorEqValue(j);
-            if (NULL == x->value.purple_xor_eq) x->type = 0;
+            x->value.purple_static = cJSON_GetStaticValue(j);
+            if (NULL == x->value.purple_static) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionXorEq * cJSON_ParseUnionXorEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionXorEq * x = j ? cJSON_GetUnionXorEqValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionXorEq(const struct UnionXorEq * x) { cJSON * j = cJSON_CreateUnionXorEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStatic * cJSON_ParseUnionStatic(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStatic * x = j ? cJSON_GetUnionStaticValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStatic(const struct UnionStatic * x) { cJSON * j = cJSON_CreateUnionStatic(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionXorEq(const struct UnionXorEq * x) {
+cJSON * cJSON_CreateUnionStatic(const struct UnionStatic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateXorEq(x->value.purple_xor_eq);
+            j = cJSON_CreateStatic(x->value.purple_static);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionXorEq(struct UnionXorEq * x) {
+void cJSON_DeleteUnionStatic(struct UnionStatic * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteXorEq(x->value.purple_xor_eq);
+            cJSON_DeleteStatic(x->value.purple_static);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTransient * cJSON_GetUnionTransientValue(const cJSON * j) {
-    struct UnionTransient * x = cJSON_malloc(sizeof(struct UnionTransient));
+struct UnionStaticAssert * cJSON_GetUnionStaticAssertValue(const cJSON * j) {
+    struct UnionStaticAssert * x = cJSON_malloc(sizeof(struct UnionStaticAssert));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTransient));
+        memset(x, 0, sizeof(struct UnionStaticAssert));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.transient = cJSON_GetTransientValue(j);
-            if (NULL == x->value.transient) x->type = 0;
+            x->value.purple_static_assert = cJSON_GetStaticAssertValue(j);
+            if (NULL == x->value.purple_static_assert) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTransient * cJSON_ParseUnionTransient(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTransient * x = j ? cJSON_GetUnionTransientValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTransient(const struct UnionTransient * x) { cJSON * j = cJSON_CreateUnionTransient(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStaticAssert * cJSON_ParseUnionStaticAssert(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStaticAssert * x = j ? cJSON_GetUnionStaticAssertValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStaticAssert(const struct UnionStaticAssert * x) { cJSON * j = cJSON_CreateUnionStaticAssert(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTransient(const struct UnionTransient * x) {
+cJSON * cJSON_CreateUnionStaticAssert(const struct UnionStaticAssert * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTransient(x->value.transient);
+            j = cJSON_CreateStaticAssert(x->value.purple_static_assert);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTransient(struct UnionTransient * x) {
+void cJSON_DeleteUnionStaticAssert(struct UnionStaticAssert * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTransient(x->value.transient);
+            cJSON_DeleteStaticAssert(x->value.purple_static_assert);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionType * cJSON_GetUnionTypeValue(const cJSON * j) {
-    struct UnionType * x = cJSON_malloc(sizeof(struct UnionType));
+struct UnionStaticCast * cJSON_GetUnionStaticCastValue(const cJSON * j) {
+    struct UnionStaticCast * x = cJSON_malloc(sizeof(struct UnionStaticCast));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionType));
+        memset(x, 0, sizeof(struct UnionStaticCast));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.type = cJSON_GetTypeValue(j);
-            if (NULL == x->value.type) x->type = 0;
+            x->value.purple_static_cast = cJSON_GetStaticCastValue(j);
+            if (NULL == x->value.purple_static_cast) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionType * cJSON_ParseUnionType(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionType * x = j ? cJSON_GetUnionTypeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionType(const struct UnionType * x) { cJSON * j = cJSON_CreateUnionType(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStaticCast * cJSON_ParseUnionStaticCast(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStaticCast * x = j ? cJSON_GetUnionStaticCastValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStaticCast(const struct UnionStaticCast * x) { cJSON * j = cJSON_CreateUnionStaticCast(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionType(const struct UnionType * x) {
+cJSON * cJSON_CreateUnionStaticCast(const struct UnionStaticCast * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateType(x->value.type);
+            j = cJSON_CreateStaticCast(x->value.purple_static_cast);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionType(struct UnionType * x) {
+void cJSON_DeleteUnionStaticCast(struct UnionStaticCast * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteType(x->value.type);
+            cJSON_DeleteStaticCast(x->value.purple_static_cast);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionTypealias * cJSON_GetUnionTypealiasValue(const cJSON * j) {
-    struct UnionTypealias * x = cJSON_malloc(sizeof(struct UnionTypealias));
+struct UnionStruct * cJSON_GetUnionStructValue(const cJSON * j) {
+    struct UnionStruct * x = cJSON_malloc(sizeof(struct UnionStruct));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionTypealias));
+        memset(x, 0, sizeof(struct UnionStruct));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.typealias = cJSON_GetTypealiasValue(j);
-            if (NULL == x->value.typealias) x->type = 0;
+            x->value.purple_struct = cJSON_GetStructValue(j);
+            if (NULL == x->value.purple_struct) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionTypealias * cJSON_ParseUnionTypealias(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypealias * x = j ? cJSON_GetUnionTypealiasValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionTypealias(const struct UnionTypealias * x) { cJSON * j = cJSON_CreateUnionTypealias(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionStruct * cJSON_ParseUnionStruct(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionStruct * x = j ? cJSON_GetUnionStructValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionStruct(const struct UnionStruct * x) { cJSON * j = cJSON_CreateUnionStruct(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionTypealias(const struct UnionTypealias * x) {
+cJSON * cJSON_CreateUnionStruct(const struct UnionStruct * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateTypealias(x->value.typealias);
+            j = cJSON_CreateStruct(x->value.purple_struct);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionTypealias(struct UnionTypealias * x) {
+void cJSON_DeleteUnionStruct(struct UnionStruct * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteTypealias(x->value.typealias);
+            cJSON_DeleteStruct(x->value.purple_struct);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUint * cJSON_GetUnionUintValue(const cJSON * j) {
-    struct UnionUint * x = cJSON_malloc(sizeof(struct UnionUint));
+struct UnionSwitch * cJSON_GetUnionSwitchValue(const cJSON * j) {
+    struct UnionSwitch * x = cJSON_malloc(sizeof(struct UnionSwitch));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUint));
+        memset(x, 0, sizeof(struct UnionSwitch));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.uint = cJSON_GetUintValue(j);
-            if (NULL == x->value.uint) x->type = 0;
+            x->value.purple_switch = cJSON_GetSwitchValue(j);
+            if (NULL == x->value.purple_switch) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUint * cJSON_ParseUnionUint(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUint * x = j ? cJSON_GetUnionUintValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUint(const struct UnionUint * x) { cJSON * j = cJSON_CreateUnionUint(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSwitch * cJSON_ParseUnionSwitch(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSwitch * x = j ? cJSON_GetUnionSwitchValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSwitch(const struct UnionSwitch * x) { cJSON * j = cJSON_CreateUnionSwitch(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUint(const struct UnionUint * x) {
+cJSON * cJSON_CreateUnionSwitch(const struct UnionSwitch * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUint(x->value.uint);
+            j = cJSON_CreateSwitch(x->value.purple_switch);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUint(struct UnionUint * x) {
+void cJSON_DeleteUnionSwitch(struct UnionSwitch * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUint(x->value.uint);
+            cJSON_DeleteSwitch(x->value.purple_switch);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUlong * cJSON_GetUnionUlongValue(const cJSON * j) {
-    struct UnionUlong * x = cJSON_malloc(sizeof(struct UnionUlong));
+struct UnionSynchronized * cJSON_GetUnionSynchronizedValue(const cJSON * j) {
+    struct UnionSynchronized * x = cJSON_malloc(sizeof(struct UnionSynchronized));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUlong));
+        memset(x, 0, sizeof(struct UnionSynchronized));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.ulong = cJSON_GetUlongValue(j);
-            if (NULL == x->value.ulong) x->type = 0;
+            x->value.purple_synchronized = cJSON_GetSynchronizedValue(j);
+            if (NULL == x->value.purple_synchronized) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUlong * cJSON_ParseUnionUlong(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUlong * x = j ? cJSON_GetUnionUlongValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUlong(const struct UnionUlong * x) { cJSON * j = cJSON_CreateUnionUlong(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionSynchronized * cJSON_ParseUnionSynchronized(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionSynchronized * x = j ? cJSON_GetUnionSynchronizedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionSynchronized(const struct UnionSynchronized * x) { cJSON * j = cJSON_CreateUnionSynchronized(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUlong(const struct UnionUlong * x) {
+cJSON * cJSON_CreateUnionSynchronized(const struct UnionSynchronized * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUlong(x->value.ulong);
+            j = cJSON_CreateSynchronized(x->value.purple_synchronized);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUlong(struct UnionUlong * x) {
+void cJSON_DeleteUnionSynchronized(struct UnionSynchronized * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUlong(x->value.ulong);
+            cJSON_DeleteSynchronized(x->value.purple_synchronized);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUnchecked * cJSON_GetUnionUncheckedValue(const cJSON * j) {
-    struct UnionUnchecked * x = cJSON_malloc(sizeof(struct UnionUnchecked));
+struct UnionTemplate * cJSON_GetUnionTemplateValue(const cJSON * j) {
+    struct UnionTemplate * x = cJSON_malloc(sizeof(struct UnionTemplate));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUnchecked));
+        memset(x, 0, sizeof(struct UnionTemplate));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.unchecked = cJSON_GetUncheckedValue(j);
-            if (NULL == x->value.unchecked) x->type = 0;
+            x->value.purple_template = cJSON_GetTemplateValue(j);
+            if (NULL == x->value.purple_template) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUnchecked * cJSON_ParseUnionUnchecked(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnchecked * x = j ? cJSON_GetUnionUncheckedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUnchecked(const struct UnionUnchecked * x) { cJSON * j = cJSON_CreateUnionUnchecked(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTemplate * cJSON_ParseUnionTemplate(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTemplate * x = j ? cJSON_GetUnionTemplateValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTemplate(const struct UnionTemplate * x) { cJSON * j = cJSON_CreateUnionTemplate(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUnchecked(const struct UnionUnchecked * x) {
+cJSON * cJSON_CreateUnionTemplate(const struct UnionTemplate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnchecked(x->value.unchecked);
+            j = cJSON_CreateTemplate(x->value.purple_template);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUnchecked(struct UnionUnchecked * x) {
+void cJSON_DeleteUnionTemplate(struct UnionTemplate * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnchecked(x->value.unchecked);
+            cJSON_DeleteTemplate(x->value.purple_template);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUndefined * cJSON_GetUnionUndefinedValue(const cJSON * j) {
-    struct UnionUndefined * x = cJSON_malloc(sizeof(struct UnionUndefined));
+struct UnionThis * cJSON_GetUnionThisValue(const cJSON * j) {
+    struct UnionThis * x = cJSON_malloc(sizeof(struct UnionThis));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUndefined));
+        memset(x, 0, sizeof(struct UnionThis));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.undefined = cJSON_GetUndefinedValue(j);
-            if (NULL == x->value.undefined) x->type = 0;
+            x->value.purple_this = cJSON_GetThisValue(j);
+            if (NULL == x->value.purple_this) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUndefined * cJSON_ParseUnionUndefined(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUndefined * x = j ? cJSON_GetUnionUndefinedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUndefined(const struct UnionUndefined * x) { cJSON * j = cJSON_CreateUnionUndefined(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionThis * cJSON_ParseUnionThis(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThis * x = j ? cJSON_GetUnionThisValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionThis(const struct UnionThis * x) { cJSON * j = cJSON_CreateUnionThis(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUndefined(const struct UnionUndefined * x) {
+cJSON * cJSON_CreateUnionThis(const struct UnionThis * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUndefined(x->value.undefined);
+            j = cJSON_CreateThis(x->value.purple_this);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUndefined(struct UnionUndefined * x) {
+void cJSON_DeleteUnionThis(struct UnionThis * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUndefined(x->value.undefined);
+            cJSON_DeleteThis(x->value.purple_this);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUnowned * cJSON_GetUnionUnownedValue(const cJSON * j) {
-    struct UnionUnowned * x = cJSON_malloc(sizeof(struct UnionUnowned));
+struct UnionThreadLocal * cJSON_GetUnionThreadLocalValue(const cJSON * j) {
+    struct UnionThreadLocal * x = cJSON_malloc(sizeof(struct UnionThreadLocal));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUnowned));
+        memset(x, 0, sizeof(struct UnionThreadLocal));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.unowned = cJSON_GetUnownedValue(j);
-            if (NULL == x->value.unowned) x->type = 0;
+            x->value.purple_thread_local = cJSON_GetThreadLocalValue(j);
+            if (NULL == x->value.purple_thread_local) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUnowned * cJSON_ParseUnionUnowned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnowned * x = j ? cJSON_GetUnionUnownedValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUnowned(const struct UnionUnowned * x) { cJSON * j = cJSON_CreateUnionUnowned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionThreadLocal * cJSON_ParseUnionThreadLocal(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThreadLocal * x = j ? cJSON_GetUnionThreadLocalValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionThreadLocal(const struct UnionThreadLocal * x) { cJSON * j = cJSON_CreateUnionThreadLocal(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUnowned(const struct UnionUnowned * x) {
+cJSON * cJSON_CreateUnionThreadLocal(const struct UnionThreadLocal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnowned(x->value.unowned);
+            j = cJSON_CreateThreadLocal(x->value.purple_thread_local);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUnowned(struct UnionUnowned * x) {
+void cJSON_DeleteUnionThreadLocal(struct UnionThreadLocal * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnowned(x->value.unowned);
+            cJSON_DeleteThreadLocal(x->value.purple_thread_local);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUnsafe * cJSON_GetUnionUnsafeValue(const cJSON * j) {
-    struct UnionUnsafe * x = cJSON_malloc(sizeof(struct UnionUnsafe));
+struct UnionThrow * cJSON_GetUnionThrowValue(const cJSON * j) {
+    struct UnionThrow * x = cJSON_malloc(sizeof(struct UnionThrow));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUnsafe));
+        memset(x, 0, sizeof(struct UnionThrow));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.unsafe = cJSON_GetUnsafeValue(j);
-            if (NULL == x->value.unsafe) x->type = 0;
+            x->value.purple_throw = cJSON_GetThrowValue(j);
+            if (NULL == x->value.purple_throw) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUnsafe * cJSON_ParseUnionUnsafe(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnsafe * x = j ? cJSON_GetUnionUnsafeValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUnsafe(const struct UnionUnsafe * x) { cJSON * j = cJSON_CreateUnionUnsafe(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionThrow * cJSON_ParseUnionThrow(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionThrow * x = j ? cJSON_GetUnionThrowValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionThrow(const struct UnionThrow * x) { cJSON * j = cJSON_CreateUnionThrow(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUnsafe(const struct UnionUnsafe * x) {
+cJSON * cJSON_CreateUnionThrow(const struct UnionThrow * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUnsafe(x->value.unsafe);
+            j = cJSON_CreateThrow(x->value.purple_throw);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUnsafe(struct UnionUnsafe * x) {
+void cJSON_DeleteUnionThrow(struct UnionThrow * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUnsafe(x->value.unsafe);
+            cJSON_DeleteThrow(x->value.purple_throw);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionUshort * cJSON_GetUnionUshortValue(const cJSON * j) {
-    struct UnionUshort * x = cJSON_malloc(sizeof(struct UnionUshort));
+struct UnionTrue * cJSON_GetUnionTrueValue(const cJSON * j) {
+    struct UnionTrue * x = cJSON_malloc(sizeof(struct UnionTrue));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionUshort));
+        memset(x, 0, sizeof(struct UnionTrue));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.ushort = cJSON_GetUshortValue(j);
-            if (NULL == x->value.ushort) x->type = 0;
+            x->value.true_class = cJSON_GetTrueClassValue(j);
+            if (NULL == x->value.true_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionUshort * cJSON_ParseUnionUshort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUshort * x = j ? cJSON_GetUnionUshortValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionUshort(const struct UnionUshort * x) { cJSON * j = cJSON_CreateUnionUshort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTrue * cJSON_ParseUnionTrue(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTrue * x = j ? cJSON_GetUnionTrueValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTrue(const struct UnionTrue * x) { cJSON * j = cJSON_CreateUnionTrue(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionUshort(const struct UnionUshort * x) {
+cJSON * cJSON_CreateUnionTrue(const struct UnionTrue * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateUshort(x->value.ushort);
+            j = cJSON_CreateTrueClass(x->value.true_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionUshort(struct UnionUshort * x) {
+void cJSON_DeleteUnionTrue(struct UnionTrue * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteUshort(x->value.ushort);
+            cJSON_DeleteTrueClass(x->value.true_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionVar * cJSON_GetUnionVarValue(const cJSON * j) {
-    struct UnionVar * x = cJSON_malloc(sizeof(struct UnionVar));
+struct UnionTry * cJSON_GetUnionTryValue(const cJSON * j) {
+    struct UnionTry * x = cJSON_malloc(sizeof(struct UnionTry));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionVar));
+        memset(x, 0, sizeof(struct UnionTry));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.var = cJSON_GetVarValue(j);
-            if (NULL == x->value.var) x->type = 0;
+            x->value.purple_try = cJSON_GetTryValue(j);
+            if (NULL == x->value.purple_try) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionVar * cJSON_ParseUnionVar(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVar * x = j ? cJSON_GetUnionVarValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionVar(const struct UnionVar * x) { cJSON * j = cJSON_CreateUnionVar(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTry * cJSON_ParseUnionTry(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTry * x = j ? cJSON_GetUnionTryValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTry(const struct UnionTry * x) { cJSON * j = cJSON_CreateUnionTry(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionVar(const struct UnionVar * x) {
+cJSON * cJSON_CreateUnionTry(const struct UnionTry * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateVar(x->value.var);
+            j = cJSON_CreateTry(x->value.purple_try);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionVar(struct UnionVar * x) {
+void cJSON_DeleteUnionTry(struct UnionTry * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteVar(x->value.var);
+            cJSON_DeleteTry(x->value.purple_try);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWeak * cJSON_GetUnionWeakValue(const cJSON * j) {
-    struct UnionWeak * x = cJSON_malloc(sizeof(struct UnionWeak));
+struct UnionTypeUnion * cJSON_GetUnionTypeUnionValue(const cJSON * j) {
+    struct UnionTypeUnion * x = cJSON_malloc(sizeof(struct UnionTypeUnion));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWeak));
+        memset(x, 0, sizeof(struct UnionTypeUnion));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.weak = cJSON_GetWeakValue(j);
-            if (NULL == x->value.weak) x->type = 0;
+            x->value.type_class = cJSON_GetTypeClassValue(j);
+            if (NULL == x->value.type_class) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWeak * cJSON_ParseUnionWeak(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWeak * x = j ? cJSON_GetUnionWeakValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWeak(const struct UnionWeak * x) { cJSON * j = cJSON_CreateUnionWeak(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTypeUnion * cJSON_ParseUnionTypeUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeUnion * x = j ? cJSON_GetUnionTypeUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypeUnion(const struct UnionTypeUnion * x) { cJSON * j = cJSON_CreateUnionTypeUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWeak(const struct UnionWeak * x) {
+cJSON * cJSON_CreateUnionTypeUnion(const struct UnionTypeUnion * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWeak(x->value.weak);
+            j = cJSON_CreateTypeClass(x->value.type_class);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWeak(struct UnionWeak * x) {
+void cJSON_DeleteUnionTypeUnion(struct UnionTypeUnion * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWeak(x->value.weak);
+            cJSON_DeleteTypeClass(x->value.type_class);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWhere * cJSON_GetUnionWhereValue(const cJSON * j) {
-    struct UnionWhere * x = cJSON_malloc(sizeof(struct UnionWhere));
+struct UnionTypedef * cJSON_GetUnionTypedefValue(const cJSON * j) {
+    struct UnionTypedef * x = cJSON_malloc(sizeof(struct UnionTypedef));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWhere));
+        memset(x, 0, sizeof(struct UnionTypedef));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.where = cJSON_GetWhereValue(j);
-            if (NULL == x->value.where) x->type = 0;
+            x->value.purple_typedef = cJSON_GetTypedefValue(j);
+            if (NULL == x->value.purple_typedef) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWhere * cJSON_ParseUnionWhere(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWhere * x = j ? cJSON_GetUnionWhereValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWhere(const struct UnionWhere * x) { cJSON * j = cJSON_CreateUnionWhere(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTypedef * cJSON_ParseUnionTypedef(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypedef * x = j ? cJSON_GetUnionTypedefValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypedef(const struct UnionTypedef * x) { cJSON * j = cJSON_CreateUnionTypedef(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWhere(const struct UnionWhere * x) {
+cJSON * cJSON_CreateUnionTypedef(const struct UnionTypedef * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWhere(x->value.where);
+            j = cJSON_CreateTypedef(x->value.purple_typedef);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWhere(struct UnionWhere * x) {
+void cJSON_DeleteUnionTypedef(struct UnionTypedef * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWhere(x->value.where);
+            cJSON_DeleteTypedef(x->value.purple_typedef);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWillSet * cJSON_GetUnionWillSetValue(const cJSON * j) {
-    struct UnionWillSet * x = cJSON_malloc(sizeof(struct UnionWillSet));
+struct UnionTypeid * cJSON_GetUnionTypeidValue(const cJSON * j) {
+    struct UnionTypeid * x = cJSON_malloc(sizeof(struct UnionTypeid));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWillSet));
+        memset(x, 0, sizeof(struct UnionTypeid));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.will_set = cJSON_GetWillSetValue(j);
-            if (NULL == x->value.will_set) x->type = 0;
+            x->value.purple_typeid = cJSON_GetTypeidValue(j);
+            if (NULL == x->value.purple_typeid) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWillSet * cJSON_ParseUnionWillSet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWillSet * x = j ? cJSON_GetUnionWillSetValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWillSet(const struct UnionWillSet * x) { cJSON * j = cJSON_CreateUnionWillSet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTypeid * cJSON_ParseUnionTypeid(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeid * x = j ? cJSON_GetUnionTypeidValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypeid(const struct UnionTypeid * x) { cJSON * j = cJSON_CreateUnionTypeid(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWillSet(const struct UnionWillSet * x) {
+cJSON * cJSON_CreateUnionTypeid(const struct UnionTypeid * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWillSet(x->value.will_set);
+            j = cJSON_CreateTypeid(x->value.purple_typeid);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWillSet(struct UnionWillSet * x) {
+void cJSON_DeleteUnionTypeid(struct UnionTypeid * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWillSet(x->value.will_set);
+            cJSON_DeleteTypeid(x->value.purple_typeid);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionWith * cJSON_GetUnionWithValue(const cJSON * j) {
-    struct UnionWith * x = cJSON_malloc(sizeof(struct UnionWith));
+struct UnionTypename * cJSON_GetUnionTypenameValue(const cJSON * j) {
+    struct UnionTypename * x = cJSON_malloc(sizeof(struct UnionTypename));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionWith));
+        memset(x, 0, sizeof(struct UnionTypename));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.with = cJSON_GetWithValue(j);
-            if (NULL == x->value.with) x->type = 0;
+            x->value.purple_typename = cJSON_GetTypenameValue(j);
+            if (NULL == x->value.purple_typename) x->type = 0;
         }
         if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionWith * cJSON_ParseUnionWith(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWith * x = j ? cJSON_GetUnionWithValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionWith(const struct UnionWith * x) { cJSON * j = cJSON_CreateUnionWith(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+struct UnionTypename * cJSON_ParseUnionTypename(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypename * x = j ? cJSON_GetUnionTypenameValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypename(const struct UnionTypename * x) { cJSON * j = cJSON_CreateUnionTypename(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionWith(const struct UnionWith * x) {
+cJSON * cJSON_CreateUnionTypename(const struct UnionTypename * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (cJSON_Number == x->type) {
             j = cJSON_CreateNumber(x->value.number);
         }
         else if (cJSON_Object == x->type) {
-            j = cJSON_CreateWith(x->value.with);
+            j = cJSON_CreateTypename(x->value.purple_typename);
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionWith(struct UnionWith * x) {
+void cJSON_DeleteUnionTypename(struct UnionTypename * x) {
     if (NULL != x) {
         if (cJSON_Number == x->type) {
         }
         else if (cJSON_Object == x->type) {
-            cJSON_DeleteWith(x->value.with);
+            cJSON_DeleteTypename(x->value.purple_typename);
         }
         cJSON_free(x);
     }
 }
 
-struct UnionYes * cJSON_GetUnionYesValue(const cJSON * j) {
-    struct UnionYes * x = cJSON_malloc(sizeof(struct UnionYes));
+struct UnionTypeof * cJSON_GetUnionTypeofValue(const cJSON * j) {
+    struct UnionTypeof * x = cJSON_malloc(sizeof(struct UnionTypeof));
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionYes));
+        memset(x, 0, sizeof(struct UnionTypeof));
         if (cJSON_IsNumber(j)) {
             x->type = cJSON_Number;
             x->value.number = cJSON_GetNumberValue(j);
         }
         else if (cJSON_IsObject(j)) {
             x->type = cJSON_Object;
-            x->value.yes = cJSON_GetYesValue(j);
-            if (NULL == x->value.yes) x->type = 0;
+            x->value.purple_typeof = cJSON_GetTypeofValue(j);
+            if (NULL == x->value.purple_typeof) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionTypeof * cJSON_ParseUnionTypeof(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypeof * x = j ? cJSON_GetUnionTypeofValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypeof(const struct UnionTypeof * x) { cJSON * j = cJSON_CreateUnionTypeof(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionTypeof(const struct UnionTypeof * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateTypeof(x->value.purple_typeof);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionTypeof(struct UnionTypeof * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteTypeof(x->value.purple_typeof);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUnionUnion * cJSON_GetUnionUnionUnionValue(const cJSON * j) {
+    struct UnionUnionUnion * x = cJSON_malloc(sizeof(struct UnionUnionUnion));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUnionUnion));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_union = cJSON_GetUnionValue(j);
+            if (NULL == x->value.purple_union) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUnionUnion * cJSON_ParseUnionUnionUnion(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnionUnion * x = j ? cJSON_GetUnionUnionUnionValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUnionUnion(const struct UnionUnionUnion * x) { cJSON * j = cJSON_CreateUnionUnionUnion(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUnionUnion(const struct UnionUnionUnion * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUnion(x->value.purple_union);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUnionUnion(struct UnionUnionUnion * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUnion(x->value.purple_union);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUnsigned * cJSON_GetUnionUnsignedValue(const cJSON * j) {
+    struct UnionUnsigned * x = cJSON_malloc(sizeof(struct UnionUnsigned));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUnsigned));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_unsigned = cJSON_GetUnsignedValue(j);
+            if (NULL == x->value.purple_unsigned) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUnsigned * cJSON_ParseUnionUnsigned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnsigned * x = j ? cJSON_GetUnionUnsignedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUnsigned(const struct UnionUnsigned * x) { cJSON * j = cJSON_CreateUnionUnsigned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUnsigned(const struct UnionUnsigned * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUnsigned(x->value.purple_unsigned);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUnsigned(struct UnionUnsigned * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUnsigned(x->value.purple_unsigned);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUsing * cJSON_GetUnionUsingValue(const cJSON * j) {
+    struct UnionUsing * x = cJSON_malloc(sizeof(struct UnionUsing));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUsing));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_using = cJSON_GetUsingValue(j);
+            if (NULL == x->value.purple_using) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUsing * cJSON_ParseUnionUsing(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUsing * x = j ? cJSON_GetUnionUsingValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUsing(const struct UnionUsing * x) { cJSON * j = cJSON_CreateUnionUsing(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUsing(const struct UnionUsing * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUsing(x->value.purple_using);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUsing(struct UnionUsing * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUsing(x->value.purple_using);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionVirtual * cJSON_GetUnionVirtualValue(const cJSON * j) {
+    struct UnionVirtual * x = cJSON_malloc(sizeof(struct UnionVirtual));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionVirtual));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_virtual = cJSON_GetVirtualValue(j);
+            if (NULL == x->value.purple_virtual) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionVirtual * cJSON_ParseUnionVirtual(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVirtual * x = j ? cJSON_GetUnionVirtualValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionVirtual(const struct UnionVirtual * x) { cJSON * j = cJSON_CreateUnionVirtual(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionVirtual(const struct UnionVirtual * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateVirtual(x->value.purple_virtual);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionVirtual(struct UnionVirtual * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteVirtual(x->value.purple_virtual);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionVoid * cJSON_GetUnionVoidValue(const cJSON * j) {
+    struct UnionVoid * x = cJSON_malloc(sizeof(struct UnionVoid));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionVoid));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_void = cJSON_GetVoidValue(j);
+            if (NULL == x->value.purple_void) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionVoid * cJSON_ParseUnionVoid(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVoid * x = j ? cJSON_GetUnionVoidValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionVoid(const struct UnionVoid * x) { cJSON * j = cJSON_CreateUnionVoid(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionVoid(const struct UnionVoid * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateVoid(x->value.purple_void);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionVoid(struct UnionVoid * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteVoid(x->value.purple_void);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionVolatile * cJSON_GetUnionVolatileValue(const cJSON * j) {
+    struct UnionVolatile * x = cJSON_malloc(sizeof(struct UnionVolatile));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionVolatile));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_volatile = cJSON_GetVolatileValue(j);
+            if (NULL == x->value.purple_volatile) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionVolatile * cJSON_ParseUnionVolatile(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVolatile * x = j ? cJSON_GetUnionVolatileValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionVolatile(const struct UnionVolatile * x) { cJSON * j = cJSON_CreateUnionVolatile(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionVolatile(const struct UnionVolatile * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateVolatile(x->value.purple_volatile);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionVolatile(struct UnionVolatile * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteVolatile(x->value.purple_volatile);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWcharT * cJSON_GetUnionWcharTValue(const cJSON * j) {
+    struct UnionWcharT * x = cJSON_malloc(sizeof(struct UnionWcharT));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWcharT));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_wchar_t = cJSON_GetWcharTValue(j);
+            if (NULL == x->value.purple_wchar_t) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWcharT * cJSON_ParseUnionWcharT(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWcharT * x = j ? cJSON_GetUnionWcharTValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWcharT(const struct UnionWcharT * x) { cJSON * j = cJSON_CreateUnionWcharT(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWcharT(const struct UnionWcharT * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWcharT(x->value.purple_wchar_t);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWcharT(struct UnionWcharT * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWcharT(x->value.purple_wchar_t);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWhile * cJSON_GetUnionWhileValue(const cJSON * j) {
+    struct UnionWhile * x = cJSON_malloc(sizeof(struct UnionWhile));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWhile));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_while = cJSON_GetWhileValue(j);
+            if (NULL == x->value.purple_while) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWhile * cJSON_ParseUnionWhile(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWhile * x = j ? cJSON_GetUnionWhileValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWhile(const struct UnionWhile * x) { cJSON * j = cJSON_CreateUnionWhile(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWhile(const struct UnionWhile * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWhile(x->value.purple_while);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWhile(struct UnionWhile * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWhile(x->value.purple_while);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionXor * cJSON_GetUnionXorValue(const cJSON * j) {
+    struct UnionXor * x = cJSON_malloc(sizeof(struct UnionXor));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionXor));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_xor = cJSON_GetXorValue(j);
+            if (NULL == x->value.purple_xor) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionXor * cJSON_ParseUnionXor(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionXor * x = j ? cJSON_GetUnionXorValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionXor(const struct UnionXor * x) { cJSON * j = cJSON_CreateUnionXor(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionXor(const struct UnionXor * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateXor(x->value.purple_xor);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionXor(struct UnionXor * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteXor(x->value.purple_xor);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionXorEq * cJSON_GetUnionXorEqValue(const cJSON * j) {
+    struct UnionXorEq * x = cJSON_malloc(sizeof(struct UnionXorEq));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionXorEq));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.purple_xor_eq = cJSON_GetXorEqValue(j);
+            if (NULL == x->value.purple_xor_eq) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionXorEq * cJSON_ParseUnionXorEq(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionXorEq * x = j ? cJSON_GetUnionXorEqValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionXorEq(const struct UnionXorEq * x) { cJSON * j = cJSON_CreateUnionXorEq(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionXorEq(const struct UnionXorEq * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateXorEq(x->value.purple_xor_eq);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionXorEq(struct UnionXorEq * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteXorEq(x->value.purple_xor_eq);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionTransient * cJSON_GetUnionTransientValue(const cJSON * j) {
+    struct UnionTransient * x = cJSON_malloc(sizeof(struct UnionTransient));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionTransient));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.transient = cJSON_GetTransientValue(j);
+            if (NULL == x->value.transient) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionTransient * cJSON_ParseUnionTransient(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTransient * x = j ? cJSON_GetUnionTransientValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTransient(const struct UnionTransient * x) { cJSON * j = cJSON_CreateUnionTransient(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionTransient(const struct UnionTransient * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateTransient(x->value.transient);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionTransient(struct UnionTransient * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteTransient(x->value.transient);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionType * cJSON_GetUnionTypeValue(const cJSON * j) {
+    struct UnionType * x = cJSON_malloc(sizeof(struct UnionType));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionType));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.type = cJSON_GetTypeValue(j);
+            if (NULL == x->value.type) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionType * cJSON_ParseUnionType(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionType * x = j ? cJSON_GetUnionTypeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionType(const struct UnionType * x) { cJSON * j = cJSON_CreateUnionType(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionType(const struct UnionType * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateType(x->value.type);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionType(struct UnionType * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteType(x->value.type);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionTypealias * cJSON_GetUnionTypealiasValue(const cJSON * j) {
+    struct UnionTypealias * x = cJSON_malloc(sizeof(struct UnionTypealias));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionTypealias));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.typealias = cJSON_GetTypealiasValue(j);
+            if (NULL == x->value.typealias) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionTypealias * cJSON_ParseUnionTypealias(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionTypealias * x = j ? cJSON_GetUnionTypealiasValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionTypealias(const struct UnionTypealias * x) { cJSON * j = cJSON_CreateUnionTypealias(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionTypealias(const struct UnionTypealias * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateTypealias(x->value.typealias);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionTypealias(struct UnionTypealias * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteTypealias(x->value.typealias);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUint * cJSON_GetUnionUintValue(const cJSON * j) {
+    struct UnionUint * x = cJSON_malloc(sizeof(struct UnionUint));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUint));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.uint = cJSON_GetUintValue(j);
+            if (NULL == x->value.uint) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUint * cJSON_ParseUnionUint(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUint * x = j ? cJSON_GetUnionUintValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUint(const struct UnionUint * x) { cJSON * j = cJSON_CreateUnionUint(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUint(const struct UnionUint * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUint(x->value.uint);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUint(struct UnionUint * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUint(x->value.uint);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUlong * cJSON_GetUnionUlongValue(const cJSON * j) {
+    struct UnionUlong * x = cJSON_malloc(sizeof(struct UnionUlong));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUlong));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.ulong = cJSON_GetUlongValue(j);
+            if (NULL == x->value.ulong) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUlong * cJSON_ParseUnionUlong(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUlong * x = j ? cJSON_GetUnionUlongValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUlong(const struct UnionUlong * x) { cJSON * j = cJSON_CreateUnionUlong(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUlong(const struct UnionUlong * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUlong(x->value.ulong);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUlong(struct UnionUlong * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUlong(x->value.ulong);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUnchecked * cJSON_GetUnionUncheckedValue(const cJSON * j) {
+    struct UnionUnchecked * x = cJSON_malloc(sizeof(struct UnionUnchecked));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUnchecked));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.unchecked = cJSON_GetUncheckedValue(j);
+            if (NULL == x->value.unchecked) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUnchecked * cJSON_ParseUnionUnchecked(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnchecked * x = j ? cJSON_GetUnionUncheckedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUnchecked(const struct UnionUnchecked * x) { cJSON * j = cJSON_CreateUnionUnchecked(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUnchecked(const struct UnionUnchecked * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUnchecked(x->value.unchecked);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUnchecked(struct UnionUnchecked * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUnchecked(x->value.unchecked);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUndefined * cJSON_GetUnionUndefinedValue(const cJSON * j) {
+    struct UnionUndefined * x = cJSON_malloc(sizeof(struct UnionUndefined));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUndefined));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.undefined = cJSON_GetUndefinedValue(j);
+            if (NULL == x->value.undefined) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUndefined * cJSON_ParseUnionUndefined(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUndefined * x = j ? cJSON_GetUnionUndefinedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUndefined(const struct UnionUndefined * x) { cJSON * j = cJSON_CreateUnionUndefined(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUndefined(const struct UnionUndefined * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUndefined(x->value.undefined);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUndefined(struct UnionUndefined * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUndefined(x->value.undefined);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUnowned * cJSON_GetUnionUnownedValue(const cJSON * j) {
+    struct UnionUnowned * x = cJSON_malloc(sizeof(struct UnionUnowned));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUnowned));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.unowned = cJSON_GetUnownedValue(j);
+            if (NULL == x->value.unowned) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUnowned * cJSON_ParseUnionUnowned(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnowned * x = j ? cJSON_GetUnionUnownedValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUnowned(const struct UnionUnowned * x) { cJSON * j = cJSON_CreateUnionUnowned(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUnowned(const struct UnionUnowned * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUnowned(x->value.unowned);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUnowned(struct UnionUnowned * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUnowned(x->value.unowned);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUnsafe * cJSON_GetUnionUnsafeValue(const cJSON * j) {
+    struct UnionUnsafe * x = cJSON_malloc(sizeof(struct UnionUnsafe));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUnsafe));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.unsafe = cJSON_GetUnsafeValue(j);
+            if (NULL == x->value.unsafe) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUnsafe * cJSON_ParseUnionUnsafe(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUnsafe * x = j ? cJSON_GetUnionUnsafeValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUnsafe(const struct UnionUnsafe * x) { cJSON * j = cJSON_CreateUnionUnsafe(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUnsafe(const struct UnionUnsafe * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUnsafe(x->value.unsafe);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUnsafe(struct UnionUnsafe * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUnsafe(x->value.unsafe);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUshort * cJSON_GetUnionUshortValue(const cJSON * j) {
+    struct UnionUshort * x = cJSON_malloc(sizeof(struct UnionUshort));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUshort));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.ushort = cJSON_GetUshortValue(j);
+            if (NULL == x->value.ushort) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUshort * cJSON_ParseUnionUshort(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUshort * x = j ? cJSON_GetUnionUshortValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUshort(const struct UnionUshort * x) { cJSON * j = cJSON_CreateUnionUshort(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUshort(const struct UnionUshort * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUshort(x->value.ushort);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUshort(struct UnionUshort * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUshort(x->value.ushort);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUtf8JsonReader * cJSON_GetUnionUtf8JsonReaderValue(const cJSON * j) {
+    struct UnionUtf8JsonReader * x = cJSON_malloc(sizeof(struct UnionUtf8JsonReader));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUtf8JsonReader));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.utf8_json_reader = cJSON_GetUtf8JsonReaderValue(j);
+            if (NULL == x->value.utf8_json_reader) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUtf8JsonReader * cJSON_ParseUnionUtf8JsonReader(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUtf8JsonReader * x = j ? cJSON_GetUnionUtf8JsonReaderValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUtf8JsonReader(const struct UnionUtf8JsonReader * x) { cJSON * j = cJSON_CreateUnionUtf8JsonReader(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUtf8JsonReader(const struct UnionUtf8JsonReader * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUtf8JsonReader(x->value.utf8_json_reader);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUtf8JsonReader(struct UnionUtf8JsonReader * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUtf8JsonReader(x->value.utf8_json_reader);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUtf8JsonWriter * cJSON_GetUnionUtf8JsonWriterValue(const cJSON * j) {
+    struct UnionUtf8JsonWriter * x = cJSON_malloc(sizeof(struct UnionUtf8JsonWriter));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUtf8JsonWriter));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.utf8_json_writer = cJSON_GetUtf8JsonWriterValue(j);
+            if (NULL == x->value.utf8_json_writer) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUtf8JsonWriter * cJSON_ParseUnionUtf8JsonWriter(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUtf8JsonWriter * x = j ? cJSON_GetUnionUtf8JsonWriterValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUtf8JsonWriter(const struct UnionUtf8JsonWriter * x) { cJSON * j = cJSON_CreateUnionUtf8JsonWriter(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUtf8JsonWriter(const struct UnionUtf8JsonWriter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUtf8JsonWriter(x->value.utf8_json_writer);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUtf8JsonWriter(struct UnionUtf8JsonWriter * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUtf8JsonWriter(x->value.utf8_json_writer);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionUuid * cJSON_GetUnionUuidValue(const cJSON * j) {
+    struct UnionUuid * x = cJSON_malloc(sizeof(struct UnionUuid));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionUuid));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.uuid = cJSON_GetUuidValue(j);
+            if (NULL == x->value.uuid) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionUuid * cJSON_ParseUnionUuid(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionUuid * x = j ? cJSON_GetUnionUuidValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionUuid(const struct UnionUuid * x) { cJSON * j = cJSON_CreateUnionUuid(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionUuid(const struct UnionUuid * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateUuid(x->value.uuid);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionUuid(struct UnionUuid * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteUuid(x->value.uuid);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionVar * cJSON_GetUnionVarValue(const cJSON * j) {
+    struct UnionVar * x = cJSON_malloc(sizeof(struct UnionVar));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionVar));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.var = cJSON_GetVarValue(j);
+            if (NULL == x->value.var) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionVar * cJSON_ParseUnionVar(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionVar * x = j ? cJSON_GetUnionVarValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionVar(const struct UnionVar * x) { cJSON * j = cJSON_CreateUnionVar(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionVar(const struct UnionVar * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateVar(x->value.var);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionVar(struct UnionVar * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteVar(x->value.var);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWeak * cJSON_GetUnionWeakValue(const cJSON * j) {
+    struct UnionWeak * x = cJSON_malloc(sizeof(struct UnionWeak));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWeak));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.weak = cJSON_GetWeakValue(j);
+            if (NULL == x->value.weak) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWeak * cJSON_ParseUnionWeak(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWeak * x = j ? cJSON_GetUnionWeakValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWeak(const struct UnionWeak * x) { cJSON * j = cJSON_CreateUnionWeak(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWeak(const struct UnionWeak * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWeak(x->value.weak);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWeak(struct UnionWeak * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWeak(x->value.weak);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWhere * cJSON_GetUnionWhereValue(const cJSON * j) {
+    struct UnionWhere * x = cJSON_malloc(sizeof(struct UnionWhere));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWhere));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.where = cJSON_GetWhereValue(j);
+            if (NULL == x->value.where) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWhere * cJSON_ParseUnionWhere(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWhere * x = j ? cJSON_GetUnionWhereValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWhere(const struct UnionWhere * x) { cJSON * j = cJSON_CreateUnionWhere(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWhere(const struct UnionWhere * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWhere(x->value.where);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWhere(struct UnionWhere * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWhere(x->value.where);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWillSet * cJSON_GetUnionWillSetValue(const cJSON * j) {
+    struct UnionWillSet * x = cJSON_malloc(sizeof(struct UnionWillSet));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWillSet));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.will_set = cJSON_GetWillSetValue(j);
+            if (NULL == x->value.will_set) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWillSet * cJSON_ParseUnionWillSet(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWillSet * x = j ? cJSON_GetUnionWillSetValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWillSet(const struct UnionWillSet * x) { cJSON * j = cJSON_CreateUnionWillSet(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWillSet(const struct UnionWillSet * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWillSet(x->value.will_set);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWillSet(struct UnionWillSet * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWillSet(x->value.will_set);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionWith * cJSON_GetUnionWithValue(const cJSON * j) {
+    struct UnionWith * x = cJSON_malloc(sizeof(struct UnionWith));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionWith));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.with = cJSON_GetWithValue(j);
+            if (NULL == x->value.with) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionWith * cJSON_ParseUnionWith(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionWith * x = j ? cJSON_GetUnionWithValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionWith(const struct UnionWith * x) { cJSON * j = cJSON_CreateUnionWith(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionWith(const struct UnionWith * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateWith(x->value.with);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionWith(struct UnionWith * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteWith(x->value.with);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionYes * cJSON_GetUnionYesValue(const cJSON * j) {
+    struct UnionYes * x = cJSON_malloc(sizeof(struct UnionYes));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionYes));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.yes = cJSON_GetYesValue(j);
+            if (NULL == x->value.yes) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionYes * cJSON_ParseUnionYes(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionYes * x = j ? cJSON_GetUnionYesValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionYes(const struct UnionYes * x) { cJSON * j = cJSON_CreateUnionYes(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionYes(const struct UnionYes * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateYes(x->value.yes);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionYes(struct UnionYes * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteYes(x->value.yes);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct UnionYield * cJSON_GetUnionYieldValue(const cJSON * j) {
+    struct UnionYield * x = cJSON_malloc(sizeof(struct UnionYield));
+    if (NULL != x) {
+        memset(x, 0, sizeof(struct UnionYield));
+        if (cJSON_IsNumber(j)) {
+            x->type = cJSON_Number;
+            x->value.number = cJSON_GetNumberValue(j);
+        }
+        else if (cJSON_IsObject(j)) {
+            x->type = cJSON_Object;
+            x->value.yield = cJSON_GetYieldValue(j);
+            if (NULL == x->value.yield) x->type = 0;
+        }
+        if (0 == x->type) { cJSON_free(x); return NULL; }
+    }
+    return x;
+}
+struct UnionYield * cJSON_ParseUnionYield(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionYield * x = j ? cJSON_GetUnionYieldValue(j) : NULL; cJSON_Delete(j); return x; }
+char * cJSON_PrintUnionYield(const struct UnionYield * x) { cJSON * j = cJSON_CreateUnionYield(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
+
+cJSON * cJSON_CreateUnionYield(const struct UnionYield * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+            j = cJSON_CreateNumber(x->value.number);
+        }
+        else if (cJSON_Object == x->type) {
+            j = cJSON_CreateYield(x->value.yield);
+        }
+    }
+    return j;
+}
+
+void cJSON_DeleteUnionYield(struct UnionYield * x) {
+    if (NULL != x) {
+        if (cJSON_Number == x->type) {
+        }
+        else if (cJSON_Object == x->type) {
+            cJSON_DeleteYield(x->value.yield);
+        }
+        cJSON_free(x);
+    }
+}
+
+struct Abstract * cJSON_ParseAbstract(const char * s) {
+    struct Abstract * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAbstractValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Abstract * cJSON_GetAbstractValue(const cJSON * j) {
+    struct Abstract * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Abstract)))) {
+            memset(x, 0, sizeof(struct Abstract));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAbstract(const struct Abstract * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAbstract(const struct Abstract * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAbstract(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAbstract(struct Abstract * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Any * cJSON_ParseAny(const char * s) {
+    struct Any * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAnyValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Any * cJSON_GetAnyValue(const cJSON * j) {
+    struct Any * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Any)))) {
+            memset(x, 0, sizeof(struct Any));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAny(const struct Any * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAny(const struct Any * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAny(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAny(struct Any * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct ArrayClass * cJSON_ParseArrayClass(const char * s) {
+    struct ArrayClass * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetArrayClassValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct ArrayClass * cJSON_GetArrayClassValue(const cJSON * j) {
+    struct ArrayClass * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct ArrayClass)))) {
+            memset(x, 0, sizeof(struct ArrayClass));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateArrayClass(const struct ArrayClass * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintArrayClass(const struct ArrayClass * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateArrayClass(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteArrayClass(struct ArrayClass * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct As * cJSON_ParseAs(const char * s) {
+    struct As * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAsValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct As * cJSON_GetAsValue(const cJSON * j) {
+    struct As * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct As)))) {
+            memset(x, 0, sizeof(struct As));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAs(const struct As * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAs(const struct As * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAs(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAs(struct As * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Assert * cJSON_ParseAssert(const char * s) {
+    struct Assert * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAssertValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Assert * cJSON_GetAssertValue(const cJSON * j) {
+    struct Assert * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Assert)))) {
+            memset(x, 0, sizeof(struct Assert));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAssert(const struct Assert * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAssert(const struct Assert * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAssert(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAssert(struct Assert * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Associatedtype * cJSON_ParseAssociatedtype(const char * s) {
+    struct Associatedtype * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAssociatedtypeValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Associatedtype * cJSON_GetAssociatedtypeValue(const cJSON * j) {
+    struct Associatedtype * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Associatedtype)))) {
+            memset(x, 0, sizeof(struct Associatedtype));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAssociatedtype(const struct Associatedtype * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAssociatedtype(const struct Associatedtype * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAssociatedtype(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAssociatedtype(struct Associatedtype * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Associativity * cJSON_ParseAssociativity(const char * s) {
+    struct Associativity * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAssociativityValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Associativity * cJSON_GetAssociativityValue(const cJSON * j) {
+    struct Associativity * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Associativity)))) {
+            memset(x, 0, sizeof(struct Associativity));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAssociativity(const struct Associativity * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAssociativity(const struct Associativity * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAssociativity(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAssociativity(struct Associativity * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Async * cJSON_ParseAsync(const char * s) {
+    struct Async * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAsyncValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Async * cJSON_GetAsyncValue(const cJSON * j) {
+    struct Async * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Async)))) {
+            memset(x, 0, sizeof(struct Async));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAsync(const struct Async * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAsync(const struct Async * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAsync(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAsync(struct Async * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Atomic * cJSON_ParseAtomic(const char * s) {
+    struct Atomic * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAtomicValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Atomic * cJSON_GetAtomicValue(const cJSON * j) {
+    struct Atomic * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Atomic)))) {
+            memset(x, 0, sizeof(struct Atomic));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAtomic(const struct Atomic * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAtomic(const struct Atomic * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAtomic(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAtomic(struct Atomic * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Await * cJSON_ParseAwait(const char * s) {
+    struct Await * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetAwaitValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Await * cJSON_GetAwaitValue(const cJSON * j) {
+    struct Await * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Await)))) {
+            memset(x, 0, sizeof(struct Await));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateAwait(const struct Await * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintAwait(const struct Await * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateAwait(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteAwait(struct Await * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Base * cJSON_ParseBase(const char * s) {
+    struct Base * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetBaseValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Base * cJSON_GetBaseValue(const cJSON * j) {
+    struct Base * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Base)))) {
+            memset(x, 0, sizeof(struct Base));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateBase(const struct Base * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintBase(const struct Base * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateBase(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteBase(struct Base * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Boolean * cJSON_ParseBoolean(const char * s) {
+    struct Boolean * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetBooleanValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Boolean * cJSON_GetBooleanValue(const cJSON * j) {
+    struct Boolean * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Boolean)))) {
+            memset(x, 0, sizeof(struct Boolean));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateBoolean(const struct Boolean * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintBoolean(const struct Boolean * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateBoolean(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteBoolean(struct Boolean * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Bycopy * cJSON_ParseBycopy(const char * s) {
+    struct Bycopy * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetBycopyValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Bycopy * cJSON_GetBycopyValue(const cJSON * j) {
+    struct Bycopy * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Bycopy)))) {
+            memset(x, 0, sizeof(struct Bycopy));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateBycopy(const struct Bycopy * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintBycopy(const struct Bycopy * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateBycopy(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteBycopy(struct Bycopy * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Byref * cJSON_ParseByref(const char * s) {
+    struct Byref * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetByrefValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Byref * cJSON_GetByrefValue(const cJSON * j) {
+    struct Byref * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Byref)))) {
+            memset(x, 0, sizeof(struct Byref));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateByref(const struct Byref * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintByref(const struct Byref * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateByref(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteByref(struct Byref * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Byte * cJSON_ParseByte(const char * s) {
+    struct Byte * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetByteValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Byte * cJSON_GetByteValue(const cJSON * j) {
+    struct Byte * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Byte)))) {
+            memset(x, 0, sizeof(struct Byte));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateByte(const struct Byte * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintByte(const struct Byte * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateByte(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteByte(struct Byte * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Chan * cJSON_ParseChan(const char * s) {
+    struct Chan * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetChanValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Chan * cJSON_GetChanValue(const cJSON * j) {
+    struct Chan * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Chan)))) {
+            memset(x, 0, sizeof(struct Chan));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateChan(const struct Chan * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintChan(const struct Chan * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateChan(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteChan(struct Chan * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Checked * cJSON_ParseChecked(const char * s) {
+    struct Checked * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetCheckedValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Checked * cJSON_GetCheckedValue(const cJSON * j) {
+    struct Checked * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Checked)))) {
+            memset(x, 0, sizeof(struct Checked));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateChecked(const struct Checked * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintChecked(const struct Checked * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateChecked(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteChecked(struct Checked * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Clone * cJSON_ParseClone(const char * s) {
+    struct Clone * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetCloneValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Clone * cJSON_GetCloneValue(const cJSON * j) {
+    struct Clone * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Clone)))) {
+            memset(x, 0, sizeof(struct Clone));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateClone(const struct Clone * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintClone(const struct Clone * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateClone(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteClone(struct Clone * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Complex * cJSON_ParseComplex(const char * s) {
+    struct Complex * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetComplexValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Complex * cJSON_GetComplexValue(const cJSON * j) {
+    struct Complex * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Complex)))) {
+            memset(x, 0, sizeof(struct Complex));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateComplex(const struct Complex * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintComplex(const struct Complex * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateComplex(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteComplex(struct Complex * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Console * cJSON_ParseConsole(const char * s) {
+    struct Console * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetConsoleValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Console * cJSON_GetConsoleValue(const cJSON * j) {
+    struct Console * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Console)))) {
+            memset(x, 0, sizeof(struct Console));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateConsole(const struct Console * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintConsole(const struct Console * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateConsole(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteConsole(struct Console * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Constructor * cJSON_ParseConstructor(const char * s) {
+    struct Constructor * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetConstructorValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Constructor * cJSON_GetConstructorValue(const cJSON * j) {
+    struct Constructor * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Constructor)))) {
+            memset(x, 0, sizeof(struct Constructor));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateConstructor(const struct Constructor * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintConstructor(const struct Constructor * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateConstructor(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteConstructor(struct Constructor * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Convenience * cJSON_ParseConvenience(const char * s) {
+    struct Convenience * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetConvenienceValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Convenience * cJSON_GetConvenienceValue(const cJSON * j) {
+    struct Convenience * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Convenience)))) {
+            memset(x, 0, sizeof(struct Convenience));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateConvenience(const struct Convenience * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintConvenience(const struct Convenience * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateConvenience(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteConvenience(struct Convenience * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Convert * cJSON_ParseConvert(const char * s) {
+    struct Convert * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetConvertValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Convert * cJSON_GetConvertValue(const cJSON * j) {
+    struct Convert * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Convert)))) {
+            memset(x, 0, sizeof(struct Convert));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateConvert(const struct Convert * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintConvert(const struct Convert * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateConvert(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteConvert(struct Convert * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Converter * cJSON_ParseConverter(const char * s) {
+    struct Converter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetConverterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Converter * cJSON_GetConverterValue(const cJSON * j) {
+    struct Converter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Converter)))) {
+            memset(x, 0, sizeof(struct Converter));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateConverter(const struct Converter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintConverter(const struct Converter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateConverter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteConverter(struct Converter * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct CultureInfo * cJSON_ParseCultureInfo(const char * s) {
+    struct CultureInfo * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetCultureInfoValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct CultureInfo * cJSON_GetCultureInfoValue(const cJSON * j) {
+    struct CultureInfo * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct CultureInfo)))) {
+            memset(x, 0, sizeof(struct CultureInfo));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateCultureInfo(const struct CultureInfo * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintCultureInfo(const struct CultureInfo * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateCultureInfo(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteCultureInfo(struct CultureInfo * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Date * cJSON_ParseDate(const char * s) {
+    struct Date * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Date * cJSON_GetDateValue(const cJSON * j) {
+    struct Date * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Date)))) {
+            memset(x, 0, sizeof(struct Date));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDate(const struct Date * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDate(const struct Date * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDate(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDate(struct Date * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateFormatter * cJSON_ParseDateFormatter(const char * s) {
+    struct DateFormatter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateFormatterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateFormatter * cJSON_GetDateFormatterValue(const cJSON * j) {
+    struct DateFormatter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateFormatter)))) {
+            memset(x, 0, sizeof(struct DateFormatter));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateFormatter(const struct DateFormatter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateFormatter(const struct DateFormatter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateFormatter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateFormatter(struct DateFormatter * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateOnly * cJSON_ParseDateOnly(const char * s) {
+    struct DateOnly * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateOnlyValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateOnly * cJSON_GetDateOnlyValue(const cJSON * j) {
+    struct DateOnly * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateOnly)))) {
+            memset(x, 0, sizeof(struct DateOnly));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateOnly(const struct DateOnly * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateOnly(const struct DateOnly * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateOnly(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateOnly(struct DateOnly * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateOnlyConverter * cJSON_ParseDateOnlyConverter(const char * s) {
+    struct DateOnlyConverter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateOnlyConverterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateOnlyConverter * cJSON_GetDateOnlyConverterValue(const cJSON * j) {
+    struct DateOnlyConverter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateOnlyConverter)))) {
+            memset(x, 0, sizeof(struct DateOnlyConverter));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateOnlyConverter(const struct DateOnlyConverter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateOnlyConverter(const struct DateOnlyConverter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateOnlyConverter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateOnlyConverter(struct DateOnlyConverter * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateParseHandling * cJSON_ParseDateParseHandling(const char * s) {
+    struct DateParseHandling * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateParseHandlingValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateParseHandling * cJSON_GetDateParseHandlingValue(const cJSON * j) {
+    struct DateParseHandling * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateParseHandling)))) {
+            memset(x, 0, sizeof(struct DateParseHandling));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateParseHandling(const struct DateParseHandling * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateParseHandling(const struct DateParseHandling * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateParseHandling(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateParseHandling(struct DateParseHandling * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateTime * cJSON_ParseDateTime(const char * s) {
+    struct DateTime * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateTimeValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateTime * cJSON_GetDateTimeValue(const cJSON * j) {
+    struct DateTime * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateTime)))) {
+            memset(x, 0, sizeof(struct DateTime));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateTime(const struct DateTime * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateTime(const struct DateTime * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateTime(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateTime(struct DateTime * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s) {
+    struct DateTimeStyles * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDateTimeStylesValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j) {
+    struct DateTimeStyles * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct DateTimeStyles)))) {
+            memset(x, 0, sizeof(struct DateTimeStyles));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDateTimeStyles(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Debugger * cJSON_ParseDebugger(const char * s) {
+    struct Debugger * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDebuggerValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Debugger * cJSON_GetDebuggerValue(const cJSON * j) {
+    struct Debugger * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Debugger)))) {
+            memset(x, 0, sizeof(struct Debugger));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateDebugger(const struct Debugger * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintDebugger(const struct Debugger * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateDebugger(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteDebugger(struct Debugger * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Decimal * cJSON_ParseDecimal(const char * s) {
+    struct Decimal * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDecimalValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Decimal * cJSON_GetDecimalValue(const cJSON * j) {
+    struct Decimal * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Decimal)))) {
+            memset(x, 0, sizeof(struct Decimal));
         }
-        if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionYes * cJSON_ParseUnionYes(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionYes * x = j ? cJSON_GetUnionYesValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionYes(const struct UnionYes * x) { cJSON * j = cJSON_CreateUnionYes(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionYes(const struct UnionYes * x) {
+cJSON * cJSON_CreateDecimal(const struct Decimal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
-        if (cJSON_Number == x->type) {
-            j = cJSON_CreateNumber(x->value.number);
-        }
-        else if (cJSON_Object == x->type) {
-            j = cJSON_CreateYes(x->value.yes);
+        if (NULL != (j = cJSON_CreateObject())) {
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionYes(struct UnionYes * x) {
+char * cJSON_PrintDecimal(const struct Decimal * x) {
+    char * s = NULL;
     if (NULL != x) {
-        if (cJSON_Number == x->type) {
-        }
-        else if (cJSON_Object == x->type) {
-            cJSON_DeleteYes(x->value.yes);
+        cJSON * j = cJSON_CreateDecimal(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
-        cJSON_free(x);
     }
+    return s;
 }
 
-struct UnionYield * cJSON_GetUnionYieldValue(const cJSON * j) {
-    struct UnionYield * x = cJSON_malloc(sizeof(struct UnionYield));
+void cJSON_DeleteDecimal(struct Decimal * x) {
     if (NULL != x) {
-        memset(x, 0, sizeof(struct UnionYield));
-        if (cJSON_IsNumber(j)) {
-            x->type = cJSON_Number;
-            x->value.number = cJSON_GetNumberValue(j);
+        cJSON_free(x);
+    }
+}
+
+struct Declare * cJSON_ParseDeclare(const char * s) {
+    struct Declare * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetDeclareValue(j);
+            cJSON_Delete(j);
         }
-        else if (cJSON_IsObject(j)) {
-            x->type = cJSON_Object;
-            x->value.yield = cJSON_GetYieldValue(j);
-            if (NULL == x->value.yield) x->type = 0;
+    }
+    return x;
+}
+
+struct Declare * cJSON_GetDeclareValue(const cJSON * j) {
+    struct Declare * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Declare)))) {
+            memset(x, 0, sizeof(struct Declare));
         }
-        if (0 == x->type) { cJSON_free(x); return NULL; }
     }
     return x;
 }
-struct UnionYield * cJSON_ParseUnionYield(const char * s) { cJSON * j = cJSON_Parse(s); struct UnionYield * x = j ? cJSON_GetUnionYieldValue(j) : NULL; cJSON_Delete(j); return x; }
-char * cJSON_PrintUnionYield(const struct UnionYield * x) { cJSON * j = cJSON_CreateUnionYield(x); char * s = j ? cJSON_Print(j) : NULL; cJSON_Delete(j); return s; }
 
-cJSON * cJSON_CreateUnionYield(const struct UnionYield * x) {
+cJSON * cJSON_CreateDeclare(const struct Declare * x) {
     cJSON * j = NULL;
     if (NULL != x) {
-        if (cJSON_Number == x->type) {
-            j = cJSON_CreateNumber(x->value.number);
-        }
-        else if (cJSON_Object == x->type) {
-            j = cJSON_CreateYield(x->value.yield);
+        if (NULL != (j = cJSON_CreateObject())) {
         }
     }
     return j;
 }
 
-void cJSON_DeleteUnionYield(struct UnionYield * x) {
+char * cJSON_PrintDeclare(const struct Declare * x) {
+    char * s = NULL;
     if (NULL != x) {
-        if (cJSON_Number == x->type) {
-        }
-        else if (cJSON_Object == x->type) {
-            cJSON_DeleteYield(x->value.yield);
+        cJSON * j = cJSON_CreateDeclare(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
         }
+    }
+    return s;
+}
+
+void cJSON_DeleteDeclare(struct Declare * x) {
+    if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Abstract * cJSON_ParseAbstract(const char * s) {
-    struct Abstract * x = NULL;
+struct DecodeString * cJSON_ParseDecodeString(const char * s) {
+    struct DecodeString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAbstractValue(j);
+            x = cJSON_GetDecodeStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Abstract * cJSON_GetAbstractValue(const cJSON * j) {
-    struct Abstract * x = NULL;
+struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j) {
+    struct DecodeString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Abstract)))) {
-            memset(x, 0, sizeof(struct Abstract));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DecodeString)))) {
+            memset(x, 0, sizeof(struct DecodeString));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAbstract(const struct Abstract * x) {
+cJSON * cJSON_CreateDecodeString(const struct DecodeString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12180,10 +15699,10 @@ cJSON * cJSON_CreateAbstract(const struct Abstract * x) {
     return j;
 }
 
-char * cJSON_PrintAbstract(const struct Abstract * x) {
+char * cJSON_PrintDecodeString(const struct DecodeString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAbstract(x);
+        cJSON * j = cJSON_CreateDecodeString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12192,35 +15711,35 @@ char * cJSON_PrintAbstract(const struct Abstract * x) {
     return s;
 }
 
-void cJSON_DeleteAbstract(struct Abstract * x) {
+void cJSON_DeleteDecodeString(struct DecodeString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Any * cJSON_ParseAny(const char * s) {
-    struct Any * x = NULL;
+struct Def * cJSON_ParseDef(const char * s) {
+    struct Def * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAnyValue(j);
+            x = cJSON_GetDefValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Any * cJSON_GetAnyValue(const cJSON * j) {
-    struct Any * x = NULL;
+struct Def * cJSON_GetDefValue(const cJSON * j) {
+    struct Def * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Any)))) {
-            memset(x, 0, sizeof(struct Any));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Def)))) {
+            memset(x, 0, sizeof(struct Def));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAny(const struct Any * x) {
+cJSON * cJSON_CreateDef(const struct Def * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12229,10 +15748,10 @@ cJSON * cJSON_CreateAny(const struct Any * x) {
     return j;
 }
 
-char * cJSON_PrintAny(const struct Any * x) {
+char * cJSON_PrintDef(const struct Def * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAny(x);
+        cJSON * j = cJSON_CreateDef(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12241,35 +15760,35 @@ char * cJSON_PrintAny(const struct Any * x) {
     return s;
 }
 
-void cJSON_DeleteAny(struct Any * x) {
+void cJSON_DeleteDef(struct Def * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ArrayClass * cJSON_ParseArrayClass(const char * s) {
-    struct ArrayClass * x = NULL;
+struct Defer * cJSON_ParseDefer(const char * s) {
+    struct Defer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetArrayClassValue(j);
+            x = cJSON_GetDeferValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ArrayClass * cJSON_GetArrayClassValue(const cJSON * j) {
-    struct ArrayClass * x = NULL;
+struct Defer * cJSON_GetDeferValue(const cJSON * j) {
+    struct Defer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ArrayClass)))) {
-            memset(x, 0, sizeof(struct ArrayClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Defer)))) {
+            memset(x, 0, sizeof(struct Defer));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateArrayClass(const struct ArrayClass * x) {
+cJSON * cJSON_CreateDefer(const struct Defer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12278,10 +15797,10 @@ cJSON * cJSON_CreateArrayClass(const struct ArrayClass * x) {
     return j;
 }
 
-char * cJSON_PrintArrayClass(const struct ArrayClass * x) {
+char * cJSON_PrintDefer(const struct Defer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateArrayClass(x);
+        cJSON * j = cJSON_CreateDefer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12290,35 +15809,35 @@ char * cJSON_PrintArrayClass(const struct ArrayClass * x) {
     return s;
 }
 
-void cJSON_DeleteArrayClass(struct ArrayClass * x) {
+void cJSON_DeleteDefer(struct Defer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct As * cJSON_ParseAs(const char * s) {
-    struct As * x = NULL;
+struct Deinit * cJSON_ParseDeinit(const char * s) {
+    struct Deinit * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAsValue(j);
+            x = cJSON_GetDeinitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct As * cJSON_GetAsValue(const cJSON * j) {
-    struct As * x = NULL;
+struct Deinit * cJSON_GetDeinitValue(const cJSON * j) {
+    struct Deinit * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct As)))) {
-            memset(x, 0, sizeof(struct As));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Deinit)))) {
+            memset(x, 0, sizeof(struct Deinit));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAs(const struct As * x) {
+cJSON * cJSON_CreateDeinit(const struct Deinit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12327,10 +15846,10 @@ cJSON * cJSON_CreateAs(const struct As * x) {
     return j;
 }
 
-char * cJSON_PrintAs(const struct As * x) {
+char * cJSON_PrintDeinit(const struct Deinit * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAs(x);
+        cJSON * j = cJSON_CreateDeinit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12339,35 +15858,35 @@ char * cJSON_PrintAs(const struct As * x) {
     return s;
 }
 
-void cJSON_DeleteAs(struct As * x) {
+void cJSON_DeleteDeinit(struct Deinit * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Assert * cJSON_ParseAssert(const char * s) {
-    struct Assert * x = NULL;
+struct Del * cJSON_ParseDel(const char * s) {
+    struct Del * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAssertValue(j);
+            x = cJSON_GetDelValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Assert * cJSON_GetAssertValue(const cJSON * j) {
-    struct Assert * x = NULL;
+struct Del * cJSON_GetDelValue(const cJSON * j) {
+    struct Del * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Assert)))) {
-            memset(x, 0, sizeof(struct Assert));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Del)))) {
+            memset(x, 0, sizeof(struct Del));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAssert(const struct Assert * x) {
+cJSON * cJSON_CreateDel(const struct Del * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12376,10 +15895,10 @@ cJSON * cJSON_CreateAssert(const struct Assert * x) {
     return j;
 }
 
-char * cJSON_PrintAssert(const struct Assert * x) {
+char * cJSON_PrintDel(const struct Del * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAssert(x);
+        cJSON * j = cJSON_CreateDel(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12388,35 +15907,35 @@ char * cJSON_PrintAssert(const struct Assert * x) {
     return s;
 }
 
-void cJSON_DeleteAssert(struct Assert * x) {
+void cJSON_DeleteDel(struct Del * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Associatedtype * cJSON_ParseAssociatedtype(const char * s) {
-    struct Associatedtype * x = NULL;
+struct Delegate * cJSON_ParseDelegate(const char * s) {
+    struct Delegate * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAssociatedtypeValue(j);
+            x = cJSON_GetDelegateValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Associatedtype * cJSON_GetAssociatedtypeValue(const cJSON * j) {
-    struct Associatedtype * x = NULL;
+struct Delegate * cJSON_GetDelegateValue(const cJSON * j) {
+    struct Delegate * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Associatedtype)))) {
-            memset(x, 0, sizeof(struct Associatedtype));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Delegate)))) {
+            memset(x, 0, sizeof(struct Delegate));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAssociatedtype(const struct Associatedtype * x) {
+cJSON * cJSON_CreateDelegate(const struct Delegate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12425,10 +15944,10 @@ cJSON * cJSON_CreateAssociatedtype(const struct Associatedtype * x) {
     return j;
 }
 
-char * cJSON_PrintAssociatedtype(const struct Associatedtype * x) {
+char * cJSON_PrintDelegate(const struct Delegate * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAssociatedtype(x);
+        cJSON * j = cJSON_CreateDelegate(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12437,35 +15956,35 @@ char * cJSON_PrintAssociatedtype(const struct Associatedtype * x) {
     return s;
 }
 
-void cJSON_DeleteAssociatedtype(struct Associatedtype * x) {
+void cJSON_DeleteDelegate(struct Delegate * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Associativity * cJSON_ParseAssociativity(const char * s) {
-    struct Associativity * x = NULL;
+struct Dict * cJSON_ParseDict(const char * s) {
+    struct Dict * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAssociativityValue(j);
+            x = cJSON_GetDictValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Associativity * cJSON_GetAssociativityValue(const cJSON * j) {
-    struct Associativity * x = NULL;
+struct Dict * cJSON_GetDictValue(const cJSON * j) {
+    struct Dict * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Associativity)))) {
-            memset(x, 0, sizeof(struct Associativity));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dict)))) {
+            memset(x, 0, sizeof(struct Dict));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAssociativity(const struct Associativity * x) {
+cJSON * cJSON_CreateDict(const struct Dict * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12474,10 +15993,10 @@ cJSON * cJSON_CreateAssociativity(const struct Associativity * x) {
     return j;
 }
 
-char * cJSON_PrintAssociativity(const struct Associativity * x) {
+char * cJSON_PrintDict(const struct Dict * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAssociativity(x);
+        cJSON * j = cJSON_CreateDict(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12486,35 +16005,35 @@ char * cJSON_PrintAssociativity(const struct Associativity * x) {
     return s;
 }
 
-void cJSON_DeleteAssociativity(struct Associativity * x) {
+void cJSON_DeleteDict(struct Dict * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Async * cJSON_ParseAsync(const char * s) {
-    struct Async * x = NULL;
+struct Dictionary * cJSON_ParseDictionary(const char * s) {
+    struct Dictionary * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAsyncValue(j);
+            x = cJSON_GetDictionaryValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Async * cJSON_GetAsyncValue(const cJSON * j) {
-    struct Async * x = NULL;
+struct Dictionary * cJSON_GetDictionaryValue(const cJSON * j) {
+    struct Dictionary * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Async)))) {
-            memset(x, 0, sizeof(struct Async));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dictionary)))) {
+            memset(x, 0, sizeof(struct Dictionary));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAsync(const struct Async * x) {
+cJSON * cJSON_CreateDictionary(const struct Dictionary * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12523,10 +16042,10 @@ cJSON * cJSON_CreateAsync(const struct Async * x) {
     return j;
 }
 
-char * cJSON_PrintAsync(const struct Async * x) {
+char * cJSON_PrintDictionary(const struct Dictionary * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAsync(x);
+        cJSON * j = cJSON_CreateDictionary(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12535,35 +16054,35 @@ char * cJSON_PrintAsync(const struct Async * x) {
     return s;
 }
 
-void cJSON_DeleteAsync(struct Async * x) {
+void cJSON_DeleteDictionary(struct Dictionary * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Atomic * cJSON_ParseAtomic(const char * s) {
-    struct Atomic * x = NULL;
+struct DidSet * cJSON_ParseDidSet(const char * s) {
+    struct DidSet * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAtomicValue(j);
+            x = cJSON_GetDidSetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Atomic * cJSON_GetAtomicValue(const cJSON * j) {
-    struct Atomic * x = NULL;
+struct DidSet * cJSON_GetDidSetValue(const cJSON * j) {
+    struct DidSet * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Atomic)))) {
-            memset(x, 0, sizeof(struct Atomic));
+        if (NULL != (x = cJSON_malloc(sizeof(struct DidSet)))) {
+            memset(x, 0, sizeof(struct DidSet));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAtomic(const struct Atomic * x) {
+cJSON * cJSON_CreateDidSet(const struct DidSet * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12572,10 +16091,10 @@ cJSON * cJSON_CreateAtomic(const struct Atomic * x) {
     return j;
 }
 
-char * cJSON_PrintAtomic(const struct Atomic * x) {
+char * cJSON_PrintDidSet(const struct DidSet * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAtomic(x);
+        cJSON * j = cJSON_CreateDidSet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12584,35 +16103,35 @@ char * cJSON_PrintAtomic(const struct Atomic * x) {
     return s;
 }
 
-void cJSON_DeleteAtomic(struct Atomic * x) {
+void cJSON_DeleteDidSet(struct DidSet * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Await * cJSON_ParseAwait(const char * s) {
-    struct Await * x = NULL;
+struct Dynamic * cJSON_ParseDynamic(const char * s) {
+    struct Dynamic * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetAwaitValue(j);
+            x = cJSON_GetDynamicValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Await * cJSON_GetAwaitValue(const cJSON * j) {
-    struct Await * x = NULL;
+struct Dynamic * cJSON_GetDynamicValue(const cJSON * j) {
+    struct Dynamic * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Await)))) {
-            memset(x, 0, sizeof(struct Await));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Dynamic)))) {
+            memset(x, 0, sizeof(struct Dynamic));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateAwait(const struct Await * x) {
+cJSON * cJSON_CreateDynamic(const struct Dynamic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12621,10 +16140,10 @@ cJSON * cJSON_CreateAwait(const struct Await * x) {
     return j;
 }
 
-char * cJSON_PrintAwait(const struct Await * x) {
+char * cJSON_PrintDynamic(const struct Dynamic * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateAwait(x);
+        cJSON * j = cJSON_CreateDynamic(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12633,35 +16152,35 @@ char * cJSON_PrintAwait(const struct Await * x) {
     return s;
 }
 
-void cJSON_DeleteAwait(struct Await * x) {
+void cJSON_DeleteDynamic(struct Dynamic * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Base * cJSON_ParseBase(const char * s) {
-    struct Base * x = NULL;
+struct Elif * cJSON_ParseElif(const char * s) {
+    struct Elif * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBaseValue(j);
+            x = cJSON_GetElifValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Base * cJSON_GetBaseValue(const cJSON * j) {
-    struct Base * x = NULL;
+struct Elif * cJSON_GetElifValue(const cJSON * j) {
+    struct Elif * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Base)))) {
-            memset(x, 0, sizeof(struct Base));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Elif)))) {
+            memset(x, 0, sizeof(struct Elif));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBase(const struct Base * x) {
+cJSON * cJSON_CreateElif(const struct Elif * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12670,10 +16189,10 @@ cJSON * cJSON_CreateBase(const struct Base * x) {
     return j;
 }
 
-char * cJSON_PrintBase(const struct Base * x) {
+char * cJSON_PrintElif(const struct Elif * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBase(x);
+        cJSON * j = cJSON_CreateElif(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12682,35 +16201,35 @@ char * cJSON_PrintBase(const struct Base * x) {
     return s;
 }
 
-void cJSON_DeleteBase(struct Base * x) {
+void cJSON_DeleteElif(struct Elif * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Boolean * cJSON_ParseBoolean(const char * s) {
-    struct Boolean * x = NULL;
+struct Empty * cJSON_ParseEmpty(const char * s) {
+    struct Empty * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBooleanValue(j);
+            x = cJSON_GetEmptyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Boolean * cJSON_GetBooleanValue(const cJSON * j) {
-    struct Boolean * x = NULL;
+struct Empty * cJSON_GetEmptyValue(const cJSON * j) {
+    struct Empty * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Boolean)))) {
-            memset(x, 0, sizeof(struct Boolean));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Empty)))) {
+            memset(x, 0, sizeof(struct Empty));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBoolean(const struct Boolean * x) {
+cJSON * cJSON_CreateEmpty(const struct Empty * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12719,10 +16238,10 @@ cJSON * cJSON_CreateBoolean(const struct Boolean * x) {
     return j;
 }
 
-char * cJSON_PrintBoolean(const struct Boolean * x) {
+char * cJSON_PrintEmpty(const struct Empty * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBoolean(x);
+        cJSON * j = cJSON_CreateEmpty(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12731,35 +16250,35 @@ char * cJSON_PrintBoolean(const struct Boolean * x) {
     return s;
 }
 
-void cJSON_DeleteBoolean(struct Boolean * x) {
+void cJSON_DeleteEmpty(struct Empty * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Bycopy * cJSON_ParseBycopy(const char * s) {
-    struct Bycopy * x = NULL;
+struct EncodeQuickType * cJSON_ParseEncodeQuickType(const char * s) {
+    struct EncodeQuickType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetBycopyValue(j);
+            x = cJSON_GetEncodeQuickTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Bycopy * cJSON_GetBycopyValue(const cJSON * j) {
-    struct Bycopy * x = NULL;
+struct EncodeQuickType * cJSON_GetEncodeQuickTypeValue(const cJSON * j) {
+    struct EncodeQuickType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Bycopy)))) {
-            memset(x, 0, sizeof(struct Bycopy));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EncodeQuickType)))) {
+            memset(x, 0, sizeof(struct EncodeQuickType));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateBycopy(const struct Bycopy * x) {
+cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12768,10 +16287,10 @@ cJSON * cJSON_CreateBycopy(const struct Bycopy * x) {
     return j;
 }
 
-char * cJSON_PrintBycopy(const struct Bycopy * x) {
+char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateBycopy(x);
+        cJSON * j = cJSON_CreateEncodeQuickType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12780,35 +16299,35 @@ char * cJSON_PrintBycopy(const struct Bycopy * x) {
     return s;
 }
 
-void cJSON_DeleteBycopy(struct Bycopy * x) {
+void cJSON_DeleteEncodeQuickType(struct EncodeQuickType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Byref * cJSON_ParseByref(const char * s) {
-    struct Byref * x = NULL;
+struct EnumValues * cJSON_ParseEnumValues(const char * s) {
+    struct EnumValues * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetByrefValue(j);
+            x = cJSON_GetEnumValuesValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Byref * cJSON_GetByrefValue(const cJSON * j) {
-    struct Byref * x = NULL;
+struct EnumValues * cJSON_GetEnumValuesValue(const cJSON * j) {
+    struct EnumValues * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Byref)))) {
-            memset(x, 0, sizeof(struct Byref));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EnumValues)))) {
+            memset(x, 0, sizeof(struct EnumValues));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateByref(const struct Byref * x) {
+cJSON * cJSON_CreateEnumValues(const struct EnumValues * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12817,10 +16336,10 @@ cJSON * cJSON_CreateByref(const struct Byref * x) {
     return j;
 }
 
-char * cJSON_PrintByref(const struct Byref * x) {
+char * cJSON_PrintEnumValues(const struct EnumValues * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateByref(x);
+        cJSON * j = cJSON_CreateEnumValues(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12829,35 +16348,35 @@ char * cJSON_PrintByref(const struct Byref * x) {
     return s;
 }
 
-void cJSON_DeleteByref(struct Byref * x) {
+void cJSON_DeleteEnumValues(struct EnumValues * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Byte * cJSON_ParseByte(const char * s) {
-    struct Byte * x = NULL;
+struct EqualityContract * cJSON_ParseEqualityContract(const char * s) {
+    struct EqualityContract * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetByteValue(j);
+            x = cJSON_GetEqualityContractValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Byte * cJSON_GetByteValue(const cJSON * j) {
-    struct Byte * x = NULL;
+struct EqualityContract * cJSON_GetEqualityContractValue(const cJSON * j) {
+    struct EqualityContract * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Byte)))) {
-            memset(x, 0, sizeof(struct Byte));
+        if (NULL != (x = cJSON_malloc(sizeof(struct EqualityContract)))) {
+            memset(x, 0, sizeof(struct EqualityContract));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateByte(const struct Byte * x) {
+cJSON * cJSON_CreateEqualityContract(const struct EqualityContract * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12866,10 +16385,10 @@ cJSON * cJSON_CreateByte(const struct Byte * x) {
     return j;
 }
 
-char * cJSON_PrintByte(const struct Byte * x) {
+char * cJSON_PrintEqualityContract(const struct EqualityContract * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateByte(x);
+        cJSON * j = cJSON_CreateEqualityContract(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12878,35 +16397,35 @@ char * cJSON_PrintByte(const struct Byte * x) {
     return s;
 }
 
-void cJSON_DeleteByte(struct Byte * x) {
+void cJSON_DeleteEqualityContract(struct EqualityContract * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Chan * cJSON_ParseChan(const char * s) {
-    struct Chan * x = NULL;
+struct Event * cJSON_ParseEvent(const char * s) {
+    struct Event * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetChanValue(j);
+            x = cJSON_GetEventValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Chan * cJSON_GetChanValue(const cJSON * j) {
-    struct Chan * x = NULL;
+struct Event * cJSON_GetEventValue(const cJSON * j) {
+    struct Event * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Chan)))) {
-            memset(x, 0, sizeof(struct Chan));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Event)))) {
+            memset(x, 0, sizeof(struct Event));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateChan(const struct Chan * x) {
+cJSON * cJSON_CreateEvent(const struct Event * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12915,10 +16434,10 @@ cJSON * cJSON_CreateChan(const struct Chan * x) {
     return j;
 }
 
-char * cJSON_PrintChan(const struct Chan * x) {
+char * cJSON_PrintEvent(const struct Event * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateChan(x);
+        cJSON * j = cJSON_CreateEvent(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12927,35 +16446,35 @@ char * cJSON_PrintChan(const struct Chan * x) {
     return s;
 }
 
-void cJSON_DeleteChan(struct Chan * x) {
+void cJSON_DeleteEvent(struct Event * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Checked * cJSON_ParseChecked(const char * s) {
-    struct Checked * x = NULL;
+struct Except * cJSON_ParseExcept(const char * s) {
+    struct Except * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetCheckedValue(j);
+            x = cJSON_GetExceptValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Checked * cJSON_GetCheckedValue(const cJSON * j) {
-    struct Checked * x = NULL;
+struct Except * cJSON_GetExceptValue(const cJSON * j) {
+    struct Except * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Checked)))) {
-            memset(x, 0, sizeof(struct Checked));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Except)))) {
+            memset(x, 0, sizeof(struct Except));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateChecked(const struct Checked * x) {
+cJSON * cJSON_CreateExcept(const struct Except * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -12964,10 +16483,10 @@ cJSON * cJSON_CreateChecked(const struct Checked * x) {
     return j;
 }
 
-char * cJSON_PrintChecked(const struct Checked * x) {
+char * cJSON_PrintExcept(const struct Except * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateChecked(x);
+        cJSON * j = cJSON_CreateExcept(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -12976,35 +16495,35 @@ char * cJSON_PrintChecked(const struct Checked * x) {
     return s;
 }
 
-void cJSON_DeleteChecked(struct Checked * x) {
+void cJSON_DeleteExcept(struct Except * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Complex * cJSON_ParseComplex(const char * s) {
-    struct Complex * x = NULL;
+struct Exception * cJSON_ParseException(const char * s) {
+    struct Exception * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetComplexValue(j);
+            x = cJSON_GetExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Complex * cJSON_GetComplexValue(const cJSON * j) {
-    struct Complex * x = NULL;
+struct Exception * cJSON_GetExceptionValue(const cJSON * j) {
+    struct Exception * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Complex)))) {
-            memset(x, 0, sizeof(struct Complex));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Exception)))) {
+            memset(x, 0, sizeof(struct Exception));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateComplex(const struct Complex * x) {
+cJSON * cJSON_CreateException(const struct Exception * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13013,10 +16532,10 @@ cJSON * cJSON_CreateComplex(const struct Complex * x) {
     return j;
 }
 
-char * cJSON_PrintComplex(const struct Complex * x) {
+char * cJSON_PrintException(const struct Exception * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateComplex(x);
+        cJSON * j = cJSON_CreateException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13025,35 +16544,35 @@ char * cJSON_PrintComplex(const struct Complex * x) {
     return s;
 }
 
-void cJSON_DeleteComplex(struct Complex * x) {
+void cJSON_DeleteException(struct Exception * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Console * cJSON_ParseConsole(const char * s) {
-    struct Console * x = NULL;
+struct Exposing * cJSON_ParseExposing(const char * s) {
+    struct Exposing * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConsoleValue(j);
+            x = cJSON_GetExposingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Console * cJSON_GetConsoleValue(const cJSON * j) {
-    struct Console * x = NULL;
+struct Exposing * cJSON_GetExposingValue(const cJSON * j) {
+    struct Exposing * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Console)))) {
-            memset(x, 0, sizeof(struct Console));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Exposing)))) {
+            memset(x, 0, sizeof(struct Exposing));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConsole(const struct Console * x) {
+cJSON * cJSON_CreateExposing(const struct Exposing * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13062,10 +16581,10 @@ cJSON * cJSON_CreateConsole(const struct Console * x) {
     return j;
 }
 
-char * cJSON_PrintConsole(const struct Console * x) {
+char * cJSON_PrintExposing(const struct Exposing * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConsole(x);
+        cJSON * j = cJSON_CreateExposing(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13074,35 +16593,35 @@ char * cJSON_PrintConsole(const struct Console * x) {
     return s;
 }
 
-void cJSON_DeleteConsole(struct Console * x) {
+void cJSON_DeleteExposing(struct Exposing * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Constructor * cJSON_ParseConstructor(const char * s) {
-    struct Constructor * x = NULL;
+struct Extends * cJSON_ParseExtends(const char * s) {
+    struct Extends * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConstructorValue(j);
+            x = cJSON_GetExtendsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Constructor * cJSON_GetConstructorValue(const cJSON * j) {
-    struct Constructor * x = NULL;
+struct Extends * cJSON_GetExtendsValue(const cJSON * j) {
+    struct Extends * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Constructor)))) {
-            memset(x, 0, sizeof(struct Constructor));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Extends)))) {
+            memset(x, 0, sizeof(struct Extends));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConstructor(const struct Constructor * x) {
+cJSON * cJSON_CreateExtends(const struct Extends * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13111,10 +16630,10 @@ cJSON * cJSON_CreateConstructor(const struct Constructor * x) {
     return j;
 }
 
-char * cJSON_PrintConstructor(const struct Constructor * x) {
+char * cJSON_PrintExtends(const struct Extends * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConstructor(x);
+        cJSON * j = cJSON_CreateExtends(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13123,35 +16642,35 @@ char * cJSON_PrintConstructor(const struct Constructor * x) {
     return s;
 }
 
-void cJSON_DeleteConstructor(struct Constructor * x) {
+void cJSON_DeleteExtends(struct Extends * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Convenience * cJSON_ParseConvenience(const char * s) {
-    struct Convenience * x = NULL;
+struct Extension * cJSON_ParseExtension(const char * s) {
+    struct Extension * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConvenienceValue(j);
+            x = cJSON_GetExtensionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Convenience * cJSON_GetConvenienceValue(const cJSON * j) {
-    struct Convenience * x = NULL;
+struct Extension * cJSON_GetExtensionValue(const cJSON * j) {
+    struct Extension * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Convenience)))) {
-            memset(x, 0, sizeof(struct Convenience));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Extension)))) {
+            memset(x, 0, sizeof(struct Extension));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConvenience(const struct Convenience * x) {
+cJSON * cJSON_CreateExtension(const struct Extension * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13160,10 +16679,10 @@ cJSON * cJSON_CreateConvenience(const struct Convenience * x) {
     return j;
 }
 
-char * cJSON_PrintConvenience(const struct Convenience * x) {
+char * cJSON_PrintExtension(const struct Extension * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConvenience(x);
+        cJSON * j = cJSON_CreateExtension(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13172,35 +16691,35 @@ char * cJSON_PrintConvenience(const struct Convenience * x) {
     return s;
 }
 
-void cJSON_DeleteConvenience(struct Convenience * x) {
+void cJSON_DeleteExtension(struct Extension * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Convert * cJSON_ParseConvert(const char * s) {
-    struct Convert * x = NULL;
+struct Fallthrough * cJSON_ParseFallthrough(const char * s) {
+    struct Fallthrough * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConvertValue(j);
+            x = cJSON_GetFallthroughValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Convert * cJSON_GetConvertValue(const cJSON * j) {
-    struct Convert * x = NULL;
+struct Fallthrough * cJSON_GetFallthroughValue(const cJSON * j) {
+    struct Fallthrough * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Convert)))) {
-            memset(x, 0, sizeof(struct Convert));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fallthrough)))) {
+            memset(x, 0, sizeof(struct Fallthrough));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConvert(const struct Convert * x) {
+cJSON * cJSON_CreateFallthrough(const struct Fallthrough * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13209,10 +16728,10 @@ cJSON * cJSON_CreateConvert(const struct Convert * x) {
     return j;
 }
 
-char * cJSON_PrintConvert(const struct Convert * x) {
+char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConvert(x);
+        cJSON * j = cJSON_CreateFallthrough(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13221,35 +16740,35 @@ char * cJSON_PrintConvert(const struct Convert * x) {
     return s;
 }
 
-void cJSON_DeleteConvert(struct Convert * x) {
+void cJSON_DeleteFallthrough(struct Fallthrough * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Converter * cJSON_ParseConverter(const char * s) {
-    struct Converter * x = NULL;
+struct Fileprivate * cJSON_ParseFileprivate(const char * s) {
+    struct Fileprivate * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetConverterValue(j);
+            x = cJSON_GetFileprivateValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Converter * cJSON_GetConverterValue(const cJSON * j) {
-    struct Converter * x = NULL;
+struct Fileprivate * cJSON_GetFileprivateValue(const cJSON * j) {
+    struct Fileprivate * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Converter)))) {
-            memset(x, 0, sizeof(struct Converter));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fileprivate)))) {
+            memset(x, 0, sizeof(struct Fileprivate));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateConverter(const struct Converter * x) {
+cJSON * cJSON_CreateFileprivate(const struct Fileprivate * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13258,10 +16777,10 @@ cJSON * cJSON_CreateConverter(const struct Converter * x) {
     return j;
 }
 
-char * cJSON_PrintConverter(const struct Converter * x) {
+char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateConverter(x);
+        cJSON * j = cJSON_CreateFileprivate(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13270,35 +16789,35 @@ char * cJSON_PrintConverter(const struct Converter * x) {
     return s;
 }
 
-void cJSON_DeleteConverter(struct Converter * x) {
+void cJSON_DeleteFileprivate(struct Fileprivate * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Date * cJSON_ParseDate(const char * s) {
-    struct Date * x = NULL;
+struct Finally * cJSON_ParseFinally(const char * s) {
+    struct Finally * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDateValue(j);
+            x = cJSON_GetFinallyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Date * cJSON_GetDateValue(const cJSON * j) {
-    struct Date * x = NULL;
+struct Finally * cJSON_GetFinallyValue(const cJSON * j) {
+    struct Finally * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Date)))) {
-            memset(x, 0, sizeof(struct Date));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Finally)))) {
+            memset(x, 0, sizeof(struct Finally));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDate(const struct Date * x) {
+cJSON * cJSON_CreateFinally(const struct Finally * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13307,10 +16826,10 @@ cJSON * cJSON_CreateDate(const struct Date * x) {
     return j;
 }
 
-char * cJSON_PrintDate(const struct Date * x) {
+char * cJSON_PrintFinally(const struct Finally * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDate(x);
+        cJSON * j = cJSON_CreateFinally(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13319,35 +16838,35 @@ char * cJSON_PrintDate(const struct Date * x) {
     return s;
 }
 
-void cJSON_DeleteDate(struct Date * x) {
+void cJSON_DeleteFinally(struct Finally * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct DateParseHandling * cJSON_ParseDateParseHandling(const char * s) {
-    struct DateParseHandling * x = NULL;
+struct Fixed * cJSON_ParseFixed(const char * s) {
+    struct Fixed * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDateParseHandlingValue(j);
+            x = cJSON_GetFixedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DateParseHandling * cJSON_GetDateParseHandlingValue(const cJSON * j) {
-    struct DateParseHandling * x = NULL;
+struct Fixed * cJSON_GetFixedValue(const cJSON * j) {
+    struct Fixed * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DateParseHandling)))) {
-            memset(x, 0, sizeof(struct DateParseHandling));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Fixed)))) {
+            memset(x, 0, sizeof(struct Fixed));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDateParseHandling(const struct DateParseHandling * x) {
+cJSON * cJSON_CreateFixed(const struct Fixed * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13356,10 +16875,10 @@ cJSON * cJSON_CreateDateParseHandling(const struct DateParseHandling * x) {
     return j;
 }
 
-char * cJSON_PrintDateParseHandling(const struct DateParseHandling * x) {
+char * cJSON_PrintFixed(const struct Fixed * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDateParseHandling(x);
+        cJSON * j = cJSON_CreateFixed(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13368,35 +16887,35 @@ char * cJSON_PrintDateParseHandling(const struct DateParseHandling * x) {
     return s;
 }
 
-void cJSON_DeleteDateParseHandling(struct DateParseHandling * x) {
+void cJSON_DeleteFixed(struct Fixed * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Debugger * cJSON_ParseDebugger(const char * s) {
-    struct Debugger * x = NULL;
+struct UnionBoolBoolClass * cJSON_ParseUnionBoolBoolClass(const char * s) {
+    struct UnionBoolBoolClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDebuggerValue(j);
+            x = cJSON_GetUnionBoolBoolClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Debugger * cJSON_GetDebuggerValue(const cJSON * j) {
-    struct Debugger * x = NULL;
+struct UnionBoolBoolClass * cJSON_GetUnionBoolBoolClassValue(const cJSON * j) {
+    struct UnionBoolBoolClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Debugger)))) {
-            memset(x, 0, sizeof(struct Debugger));
+        if (NULL != (x = cJSON_malloc(sizeof(struct UnionBoolBoolClass)))) {
+            memset(x, 0, sizeof(struct UnionBoolBoolClass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDebugger(const struct Debugger * x) {
+cJSON * cJSON_CreateUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13405,10 +16924,10 @@ cJSON * cJSON_CreateDebugger(const struct Debugger * x) {
     return j;
 }
 
-char * cJSON_PrintDebugger(const struct Debugger * x) {
+char * cJSON_PrintUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDebugger(x);
+        cJSON * j = cJSON_CreateUnionBoolBoolClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13417,35 +16936,35 @@ char * cJSON_PrintDebugger(const struct Debugger * x) {
     return s;
 }
 
-void cJSON_DeleteDebugger(struct Debugger * x) {
+void cJSON_DeleteUnionBoolBoolClass(struct UnionBoolBoolClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Decimal * cJSON_ParseDecimal(const char * s) {
-    struct Decimal * x = NULL;
+struct Foreach * cJSON_ParseForeach(const char * s) {
+    struct Foreach * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDecimalValue(j);
+            x = cJSON_GetForeachValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Decimal * cJSON_GetDecimalValue(const cJSON * j) {
-    struct Decimal * x = NULL;
+struct Foreach * cJSON_GetForeachValue(const cJSON * j) {
+    struct Foreach * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Decimal)))) {
-            memset(x, 0, sizeof(struct Decimal));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Foreach)))) {
+            memset(x, 0, sizeof(struct Foreach));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDecimal(const struct Decimal * x) {
+cJSON * cJSON_CreateForeach(const struct Foreach * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13454,10 +16973,10 @@ cJSON * cJSON_CreateDecimal(const struct Decimal * x) {
     return j;
 }
 
-char * cJSON_PrintDecimal(const struct Decimal * x) {
+char * cJSON_PrintForeach(const struct Foreach * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDecimal(x);
+        cJSON * j = cJSON_CreateForeach(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13466,35 +16985,35 @@ char * cJSON_PrintDecimal(const struct Decimal * x) {
     return s;
 }
 
-void cJSON_DeleteDecimal(struct Decimal * x) {
+void cJSON_DeleteForeach(struct Foreach * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Declare * cJSON_ParseDeclare(const char * s) {
-    struct Declare * x = NULL;
+struct FormatException * cJSON_ParseFormatException(const char * s) {
+    struct FormatException * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeclareValue(j);
+            x = cJSON_GetFormatExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Declare * cJSON_GetDeclareValue(const cJSON * j) {
-    struct Declare * x = NULL;
+struct FormatException * cJSON_GetFormatExceptionValue(const cJSON * j) {
+    struct FormatException * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Declare)))) {
-            memset(x, 0, sizeof(struct Declare));
+        if (NULL != (x = cJSON_malloc(sizeof(struct FormatException)))) {
+            memset(x, 0, sizeof(struct FormatException));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDeclare(const struct Declare * x) {
+cJSON * cJSON_CreateFormatException(const struct FormatException * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13503,10 +17022,10 @@ cJSON * cJSON_CreateDeclare(const struct Declare * x) {
     return j;
 }
 
-char * cJSON_PrintDeclare(const struct Declare * x) {
+char * cJSON_PrintFormatException(const struct FormatException * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDeclare(x);
+        cJSON * j = cJSON_CreateFormatException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13515,35 +17034,35 @@ char * cJSON_PrintDeclare(const struct Declare * x) {
     return s;
 }
 
-void cJSON_DeleteDeclare(struct Declare * x) {
+void cJSON_DeleteFormatException(struct FormatException * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct DecodeString * cJSON_ParseDecodeString(const char * s) {
-    struct DecodeString * x = NULL;
+struct From * cJSON_ParseFrom(const char * s) {
+    struct From * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDecodeStringValue(j);
+            x = cJSON_GetFromValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DecodeString * cJSON_GetDecodeStringValue(const cJSON * j) {
-    struct DecodeString * x = NULL;
+struct From * cJSON_GetFromValue(const cJSON * j) {
+    struct From * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DecodeString)))) {
-            memset(x, 0, sizeof(struct DecodeString));
+        if (NULL != (x = cJSON_malloc(sizeof(struct From)))) {
+            memset(x, 0, sizeof(struct From));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDecodeString(const struct DecodeString * x) {
+cJSON * cJSON_CreateFrom(const struct From * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13552,10 +17071,10 @@ cJSON * cJSON_CreateDecodeString(const struct DecodeString * x) {
     return j;
 }
 
-char * cJSON_PrintDecodeString(const struct DecodeString * x) {
+char * cJSON_PrintFrom(const struct From * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDecodeString(x);
+        cJSON * j = cJSON_CreateFrom(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13564,35 +17083,35 @@ char * cJSON_PrintDecodeString(const struct DecodeString * x) {
     return s;
 }
 
-void cJSON_DeleteDecodeString(struct DecodeString * x) {
+void cJSON_DeleteFrom(struct From * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Def * cJSON_ParseDef(const char * s) {
-    struct Def * x = NULL;
+struct FromJson * cJSON_ParseFromJson(const char * s) {
+    struct FromJson * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDefValue(j);
+            x = cJSON_GetFromJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Def * cJSON_GetDefValue(const cJSON * j) {
-    struct Def * x = NULL;
+struct FromJson * cJSON_GetFromJsonValue(const cJSON * j) {
+    struct FromJson * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Def)))) {
-            memset(x, 0, sizeof(struct Def));
+        if (NULL != (x = cJSON_malloc(sizeof(struct FromJson)))) {
+            memset(x, 0, sizeof(struct FromJson));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDef(const struct Def * x) {
+cJSON * cJSON_CreateFromJson(const struct FromJson * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13601,10 +17120,10 @@ cJSON * cJSON_CreateDef(const struct Def * x) {
     return j;
 }
 
-char * cJSON_PrintDef(const struct Def * x) {
+char * cJSON_PrintFromJson(const struct FromJson * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDef(x);
+        cJSON * j = cJSON_CreateFromJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13613,35 +17132,35 @@ char * cJSON_PrintDef(const struct Def * x) {
     return s;
 }
 
-void cJSON_DeleteDef(struct Def * x) {
+void cJSON_DeleteFromJson(struct FromJson * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Defer * cJSON_ParseDefer(const char * s) {
-    struct Defer * x = NULL;
+struct Func * cJSON_ParseFunc(const char * s) {
+    struct Func * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeferValue(j);
+            x = cJSON_GetFuncValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Defer * cJSON_GetDeferValue(const cJSON * j) {
-    struct Defer * x = NULL;
+struct Func * cJSON_GetFuncValue(const cJSON * j) {
+    struct Func * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Defer)))) {
-            memset(x, 0, sizeof(struct Defer));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Func)))) {
+            memset(x, 0, sizeof(struct Func));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDefer(const struct Defer * x) {
+cJSON * cJSON_CreateFunc(const struct Func * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13650,10 +17169,10 @@ cJSON * cJSON_CreateDefer(const struct Defer * x) {
     return j;
 }
 
-char * cJSON_PrintDefer(const struct Defer * x) {
+char * cJSON_PrintFunc(const struct Func * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDefer(x);
+        cJSON * j = cJSON_CreateFunc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13662,35 +17181,35 @@ char * cJSON_PrintDefer(const struct Defer * x) {
     return s;
 }
 
-void cJSON_DeleteDefer(struct Defer * x) {
+void cJSON_DeleteFunc(struct Func * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Deinit * cJSON_ParseDeinit(const char * s) {
-    struct Deinit * x = NULL;
+struct Function * cJSON_ParseFunction(const char * s) {
+    struct Function * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDeinitValue(j);
+            x = cJSON_GetFunctionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Deinit * cJSON_GetDeinitValue(const cJSON * j) {
-    struct Deinit * x = NULL;
+struct Function * cJSON_GetFunctionValue(const cJSON * j) {
+    struct Function * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Deinit)))) {
-            memset(x, 0, sizeof(struct Deinit));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Function)))) {
+            memset(x, 0, sizeof(struct Function));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDeinit(const struct Deinit * x) {
+cJSON * cJSON_CreateFunction(const struct Function * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13699,10 +17218,10 @@ cJSON * cJSON_CreateDeinit(const struct Deinit * x) {
     return j;
 }
 
-char * cJSON_PrintDeinit(const struct Deinit * x) {
+char * cJSON_PrintFunction(const struct Function * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDeinit(x);
+        cJSON * j = cJSON_CreateFunction(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13711,35 +17230,35 @@ char * cJSON_PrintDeinit(const struct Deinit * x) {
     return s;
 }
 
-void cJSON_DeleteDeinit(struct Deinit * x) {
+void cJSON_DeleteFunction(struct Function * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Del * cJSON_ParseDel(const char * s) {
-    struct Del * x = NULL;
+struct Get * cJSON_ParseGet(const char * s) {
+    struct Get * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDelValue(j);
+            x = cJSON_GetGetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Del * cJSON_GetDelValue(const cJSON * j) {
-    struct Del * x = NULL;
+struct Get * cJSON_GetGetValue(const cJSON * j) {
+    struct Get * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Del)))) {
-            memset(x, 0, sizeof(struct Del));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Get)))) {
+            memset(x, 0, sizeof(struct Get));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDel(const struct Del * x) {
+cJSON * cJSON_CreateGet(const struct Get * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13748,10 +17267,10 @@ cJSON * cJSON_CreateDel(const struct Del * x) {
     return j;
 }
 
-char * cJSON_PrintDel(const struct Del * x) {
+char * cJSON_PrintGet(const struct Get * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDel(x);
+        cJSON * j = cJSON_CreateGet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13760,35 +17279,35 @@ char * cJSON_PrintDel(const struct Del * x) {
     return s;
 }
 
-void cJSON_DeleteDel(struct Del * x) {
+void cJSON_DeleteGet(struct Get * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Delegate * cJSON_ParseDelegate(const char * s) {
-    struct Delegate * x = NULL;
+struct Global * cJSON_ParseGlobal(const char * s) {
+    struct Global * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDelegateValue(j);
+            x = cJSON_GetGlobalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Delegate * cJSON_GetDelegateValue(const cJSON * j) {
-    struct Delegate * x = NULL;
+struct Global * cJSON_GetGlobalValue(const cJSON * j) {
+    struct Global * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Delegate)))) {
-            memset(x, 0, sizeof(struct Delegate));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Global)))) {
+            memset(x, 0, sizeof(struct Global));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDelegate(const struct Delegate * x) {
+cJSON * cJSON_CreateGlobal(const struct Global * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13797,10 +17316,10 @@ cJSON * cJSON_CreateDelegate(const struct Delegate * x) {
     return j;
 }
 
-char * cJSON_PrintDelegate(const struct Delegate * x) {
+char * cJSON_PrintGlobal(const struct Global * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDelegate(x);
+        cJSON * j = cJSON_CreateGlobal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13809,35 +17328,35 @@ char * cJSON_PrintDelegate(const struct Delegate * x) {
     return s;
 }
 
-void cJSON_DeleteDelegate(struct Delegate * x) {
+void cJSON_DeleteGlobal(struct Global * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dict * cJSON_ParseDict(const char * s) {
-    struct Dict * x = NULL;
+struct Go * cJSON_ParseGo(const char * s) {
+    struct Go * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDictValue(j);
+            x = cJSON_GetGoValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dict * cJSON_GetDictValue(const cJSON * j) {
-    struct Dict * x = NULL;
+struct Go * cJSON_GetGoValue(const cJSON * j) {
+    struct Go * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dict)))) {
-            memset(x, 0, sizeof(struct Dict));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Go)))) {
+            memset(x, 0, sizeof(struct Go));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDict(const struct Dict * x) {
+cJSON * cJSON_CreateGo(const struct Go * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13846,10 +17365,10 @@ cJSON * cJSON_CreateDict(const struct Dict * x) {
     return j;
 }
 
-char * cJSON_PrintDict(const struct Dict * x) {
+char * cJSON_PrintGo(const struct Go * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDict(x);
+        cJSON * j = cJSON_CreateGo(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13858,35 +17377,35 @@ char * cJSON_PrintDict(const struct Dict * x) {
     return s;
 }
 
-void cJSON_DeleteDict(struct Dict * x) {
+void cJSON_DeleteGo(struct Go * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dictionary * cJSON_ParseDictionary(const char * s) {
-    struct Dictionary * x = NULL;
+struct Guard * cJSON_ParseGuard(const char * s) {
+    struct Guard * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDictionaryValue(j);
+            x = cJSON_GetGuardValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dictionary * cJSON_GetDictionaryValue(const cJSON * j) {
-    struct Dictionary * x = NULL;
+struct Guard * cJSON_GetGuardValue(const cJSON * j) {
+    struct Guard * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dictionary)))) {
-            memset(x, 0, sizeof(struct Dictionary));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Guard)))) {
+            memset(x, 0, sizeof(struct Guard));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDictionary(const struct Dictionary * x) {
+cJSON * cJSON_CreateGuard(const struct Guard * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13895,10 +17414,10 @@ cJSON * cJSON_CreateDictionary(const struct Dictionary * x) {
     return j;
 }
 
-char * cJSON_PrintDictionary(const struct Dictionary * x) {
+char * cJSON_PrintGuard(const struct Guard * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDictionary(x);
+        cJSON * j = cJSON_CreateGuard(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13907,35 +17426,35 @@ char * cJSON_PrintDictionary(const struct Dictionary * x) {
     return s;
 }
 
-void cJSON_DeleteDictionary(struct Dictionary * x) {
+void cJSON_DeleteGuard(struct Guard * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct DidSet * cJSON_ParseDidSet(const char * s) {
-    struct DidSet * x = NULL;
+struct HasOwnProperty * cJSON_ParseHasOwnProperty(const char * s) {
+    struct HasOwnProperty * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDidSetValue(j);
+            x = cJSON_GetHasOwnPropertyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct DidSet * cJSON_GetDidSetValue(const cJSON * j) {
-    struct DidSet * x = NULL;
+struct HasOwnProperty * cJSON_GetHasOwnPropertyValue(const cJSON * j) {
+    struct HasOwnProperty * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct DidSet)))) {
-            memset(x, 0, sizeof(struct DidSet));
+        if (NULL != (x = cJSON_malloc(sizeof(struct HasOwnProperty)))) {
+            memset(x, 0, sizeof(struct HasOwnProperty));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDidSet(const struct DidSet * x) {
+cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13944,10 +17463,10 @@ cJSON * cJSON_CreateDidSet(const struct DidSet * x) {
     return j;
 }
 
-char * cJSON_PrintDidSet(const struct DidSet * x) {
+char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDidSet(x);
+        cJSON * j = cJSON_CreateHasOwnProperty(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -13956,35 +17475,35 @@ char * cJSON_PrintDidSet(const struct DidSet * x) {
     return s;
 }
 
-void cJSON_DeleteDidSet(struct DidSet * x) {
+void cJSON_DeleteHasOwnProperty(struct HasOwnProperty * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Dynamic * cJSON_ParseDynamic(const char * s) {
-    struct Dynamic * x = NULL;
+struct HashCode * cJSON_ParseHashCode(const char * s) {
+    struct HashCode * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetDynamicValue(j);
+            x = cJSON_GetHashCodeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Dynamic * cJSON_GetDynamicValue(const cJSON * j) {
-    struct Dynamic * x = NULL;
+struct HashCode * cJSON_GetHashCodeValue(const cJSON * j) {
+    struct HashCode * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Dynamic)))) {
-            memset(x, 0, sizeof(struct Dynamic));
+        if (NULL != (x = cJSON_malloc(sizeof(struct HashCode)))) {
+            memset(x, 0, sizeof(struct HashCode));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateDynamic(const struct Dynamic * x) {
+cJSON * cJSON_CreateHashCode(const struct HashCode * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -13993,10 +17512,10 @@ cJSON * cJSON_CreateDynamic(const struct Dynamic * x) {
     return j;
 }
 
-char * cJSON_PrintDynamic(const struct Dynamic * x) {
+char * cJSON_PrintHashCode(const struct HashCode * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateDynamic(x);
+        cJSON * j = cJSON_CreateHashCode(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14005,35 +17524,35 @@ char * cJSON_PrintDynamic(const struct Dynamic * x) {
     return s;
 }
 
-void cJSON_DeleteDynamic(struct Dynamic * x) {
+void cJSON_DeleteHashCode(struct HashCode * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Elif * cJSON_ParseElif(const char * s) {
-    struct Elif * x = NULL;
+struct Id * cJSON_ParseId(const char * s) {
+    struct Id * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetElifValue(j);
+            x = cJSON_GetIdValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Elif * cJSON_GetElifValue(const cJSON * j) {
-    struct Elif * x = NULL;
+struct Id * cJSON_GetIdValue(const cJSON * j) {
+    struct Id * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Elif)))) {
-            memset(x, 0, sizeof(struct Elif));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Id)))) {
+            memset(x, 0, sizeof(struct Id));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateElif(const struct Elif * x) {
+cJSON * cJSON_CreateId(const struct Id * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14042,10 +17561,10 @@ cJSON * cJSON_CreateElif(const struct Elif * x) {
     return j;
 }
 
-char * cJSON_PrintElif(const struct Elif * x) {
+char * cJSON_PrintId(const struct Id * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateElif(x);
+        cJSON * j = cJSON_CreateId(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14054,35 +17573,35 @@ char * cJSON_PrintElif(const struct Elif * x) {
     return s;
 }
 
-void cJSON_DeleteElif(struct Elif * x) {
+void cJSON_DeleteId(struct Id * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Empty * cJSON_ParseEmpty(const char * s) {
-    struct Empty * x = NULL;
+struct Imaginery * cJSON_ParseImaginery(const char * s) {
+    struct Imaginery * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEmptyValue(j);
+            x = cJSON_GetImagineryValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Empty * cJSON_GetEmptyValue(const cJSON * j) {
-    struct Empty * x = NULL;
+struct Imaginery * cJSON_GetImagineryValue(const cJSON * j) {
+    struct Imaginery * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Empty)))) {
-            memset(x, 0, sizeof(struct Empty));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Imaginery)))) {
+            memset(x, 0, sizeof(struct Imaginery));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEmpty(const struct Empty * x) {
+cJSON * cJSON_CreateImaginery(const struct Imaginery * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14091,10 +17610,10 @@ cJSON * cJSON_CreateEmpty(const struct Empty * x) {
     return j;
 }
 
-char * cJSON_PrintEmpty(const struct Empty * x) {
+char * cJSON_PrintImaginery(const struct Imaginery * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEmpty(x);
+        cJSON * j = cJSON_CreateImaginery(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14103,35 +17622,35 @@ char * cJSON_PrintEmpty(const struct Empty * x) {
     return s;
 }
 
-void cJSON_DeleteEmpty(struct Empty * x) {
+void cJSON_DeleteImaginery(struct Imaginery * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct EncodeQuickType * cJSON_ParseEncodeQuickType(const char * s) {
-    struct EncodeQuickType * x = NULL;
+struct Imp * cJSON_ParseImp(const char * s) {
+    struct Imp * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEncodeQuickTypeValue(j);
+            x = cJSON_GetImpValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct EncodeQuickType * cJSON_GetEncodeQuickTypeValue(const cJSON * j) {
-    struct EncodeQuickType * x = NULL;
+struct Imp * cJSON_GetImpValue(const cJSON * j) {
+    struct Imp * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct EncodeQuickType)))) {
-            memset(x, 0, sizeof(struct EncodeQuickType));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Imp)))) {
+            memset(x, 0, sizeof(struct Imp));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x) {
+cJSON * cJSON_CreateImp(const struct Imp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14140,10 +17659,10 @@ cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x) {
     return j;
 }
 
-char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
+char * cJSON_PrintImp(const struct Imp * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEncodeQuickType(x);
+        cJSON * j = cJSON_CreateImp(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14152,35 +17671,35 @@ char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x) {
     return s;
 }
 
-void cJSON_DeleteEncodeQuickType(struct EncodeQuickType * x) {
+void cJSON_DeleteImp(struct Imp * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Event * cJSON_ParseEvent(const char * s) {
-    struct Event * x = NULL;
+struct Implements * cJSON_ParseImplements(const char * s) {
+    struct Implements * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetEventValue(j);
+            x = cJSON_GetImplementsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Event * cJSON_GetEventValue(const cJSON * j) {
-    struct Event * x = NULL;
+struct Implements * cJSON_GetImplementsValue(const cJSON * j) {
+    struct Implements * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Event)))) {
-            memset(x, 0, sizeof(struct Event));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Implements)))) {
+            memset(x, 0, sizeof(struct Implements));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateEvent(const struct Event * x) {
+cJSON * cJSON_CreateImplements(const struct Implements * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14189,10 +17708,10 @@ cJSON * cJSON_CreateEvent(const struct Event * x) {
     return j;
 }
 
-char * cJSON_PrintEvent(const struct Event * x) {
+char * cJSON_PrintImplements(const struct Implements * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateEvent(x);
+        cJSON * j = cJSON_CreateImplements(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14201,35 +17720,35 @@ char * cJSON_PrintEvent(const struct Event * x) {
     return s;
 }
 
-void cJSON_DeleteEvent(struct Event * x) {
+void cJSON_DeleteImplements(struct Implements * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Except * cJSON_ParseExcept(const char * s) {
-    struct Except * x = NULL;
+struct Implicit * cJSON_ParseImplicit(const char * s) {
+    struct Implicit * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExceptValue(j);
+            x = cJSON_GetImplicitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Except * cJSON_GetExceptValue(const cJSON * j) {
-    struct Except * x = NULL;
+struct Implicit * cJSON_GetImplicitValue(const cJSON * j) {
+    struct Implicit * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Except)))) {
-            memset(x, 0, sizeof(struct Except));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Implicit)))) {
+            memset(x, 0, sizeof(struct Implicit));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExcept(const struct Except * x) {
+cJSON * cJSON_CreateImplicit(const struct Implicit * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14238,10 +17757,10 @@ cJSON * cJSON_CreateExcept(const struct Except * x) {
     return j;
 }
 
-char * cJSON_PrintExcept(const struct Except * x) {
+char * cJSON_PrintImplicit(const struct Implicit * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExcept(x);
+        cJSON * j = cJSON_CreateImplicit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14250,35 +17769,35 @@ char * cJSON_PrintExcept(const struct Except * x) {
     return s;
 }
 
-void cJSON_DeleteExcept(struct Except * x) {
+void cJSON_DeleteImplicit(struct Implicit * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Exception * cJSON_ParseException(const char * s) {
-    struct Exception * x = NULL;
+struct In * cJSON_ParseIn(const char * s) {
+    struct In * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExceptionValue(j);
+            x = cJSON_GetInValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Exception * cJSON_GetExceptionValue(const cJSON * j) {
-    struct Exception * x = NULL;
+struct In * cJSON_GetInValue(const cJSON * j) {
+    struct In * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Exception)))) {
-            memset(x, 0, sizeof(struct Exception));
+        if (NULL != (x = cJSON_malloc(sizeof(struct In)))) {
+            memset(x, 0, sizeof(struct In));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateException(const struct Exception * x) {
+cJSON * cJSON_CreateIn(const struct In * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14287,10 +17806,10 @@ cJSON * cJSON_CreateException(const struct Exception * x) {
     return j;
 }
 
-char * cJSON_PrintException(const struct Exception * x) {
+char * cJSON_PrintIn(const struct In * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateException(x);
+        cJSON * j = cJSON_CreateIn(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14299,35 +17818,35 @@ char * cJSON_PrintException(const struct Exception * x) {
     return s;
 }
 
-void cJSON_DeleteException(struct Exception * x) {
+void cJSON_DeleteIn(struct In * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Exposing * cJSON_ParseExposing(const char * s) {
-    struct Exposing * x = NULL;
+struct Indirect * cJSON_ParseIndirect(const char * s) {
+    struct Indirect * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExposingValue(j);
+            x = cJSON_GetIndirectValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Exposing * cJSON_GetExposingValue(const cJSON * j) {
-    struct Exposing * x = NULL;
+struct Indirect * cJSON_GetIndirectValue(const cJSON * j) {
+    struct Indirect * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Exposing)))) {
-            memset(x, 0, sizeof(struct Exposing));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Indirect)))) {
+            memset(x, 0, sizeof(struct Indirect));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExposing(const struct Exposing * x) {
+cJSON * cJSON_CreateIndirect(const struct Indirect * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14336,10 +17855,10 @@ cJSON * cJSON_CreateExposing(const struct Exposing * x) {
     return j;
 }
 
-char * cJSON_PrintExposing(const struct Exposing * x) {
+char * cJSON_PrintIndirect(const struct Indirect * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExposing(x);
+        cJSON * j = cJSON_CreateIndirect(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14348,35 +17867,35 @@ char * cJSON_PrintExposing(const struct Exposing * x) {
     return s;
 }
 
-void cJSON_DeleteExposing(struct Exposing * x) {
+void cJSON_DeleteIndirect(struct Indirect * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Extends * cJSON_ParseExtends(const char * s) {
-    struct Extends * x = NULL;
+struct Infix * cJSON_ParseInfix(const char * s) {
+    struct Infix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExtendsValue(j);
+            x = cJSON_GetInfixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Extends * cJSON_GetExtendsValue(const cJSON * j) {
-    struct Extends * x = NULL;
+struct Infix * cJSON_GetInfixValue(const cJSON * j) {
+    struct Infix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Extends)))) {
-            memset(x, 0, sizeof(struct Extends));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Infix)))) {
+            memset(x, 0, sizeof(struct Infix));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExtends(const struct Extends * x) {
+cJSON * cJSON_CreateInfix(const struct Infix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14385,10 +17904,10 @@ cJSON * cJSON_CreateExtends(const struct Extends * x) {
     return j;
 }
 
-char * cJSON_PrintExtends(const struct Extends * x) {
+char * cJSON_PrintInfix(const struct Infix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExtends(x);
+        cJSON * j = cJSON_CreateInfix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14397,35 +17916,35 @@ char * cJSON_PrintExtends(const struct Extends * x) {
     return s;
 }
 
-void cJSON_DeleteExtends(struct Extends * x) {
+void cJSON_DeleteInfix(struct Infix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Extension * cJSON_ParseExtension(const char * s) {
-    struct Extension * x = NULL;
+struct Init * cJSON_ParseInit(const char * s) {
+    struct Init * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetExtensionValue(j);
+            x = cJSON_GetInitValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Extension * cJSON_GetExtensionValue(const cJSON * j) {
-    struct Extension * x = NULL;
+struct Init * cJSON_GetInitValue(const cJSON * j) {
+    struct Init * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Extension)))) {
-            memset(x, 0, sizeof(struct Extension));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Init)))) {
+            memset(x, 0, sizeof(struct Init));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateExtension(const struct Extension * x) {
+cJSON * cJSON_CreateInit(const struct Init * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14434,10 +17953,10 @@ cJSON * cJSON_CreateExtension(const struct Extension * x) {
     return j;
 }
 
-char * cJSON_PrintExtension(const struct Extension * x) {
+char * cJSON_PrintInit(const struct Init * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateExtension(x);
+        cJSON * j = cJSON_CreateInit(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14446,35 +17965,35 @@ char * cJSON_PrintExtension(const struct Extension * x) {
     return s;
 }
 
-void cJSON_DeleteExtension(struct Extension * x) {
+void cJSON_DeleteInit(struct Init * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fallthrough * cJSON_ParseFallthrough(const char * s) {
-    struct Fallthrough * x = NULL;
+struct Inout * cJSON_ParseInout(const char * s) {
+    struct Inout * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFallthroughValue(j);
+            x = cJSON_GetInoutValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fallthrough * cJSON_GetFallthroughValue(const cJSON * j) {
-    struct Fallthrough * x = NULL;
+struct Inout * cJSON_GetInoutValue(const cJSON * j) {
+    struct Inout * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fallthrough)))) {
-            memset(x, 0, sizeof(struct Fallthrough));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Inout)))) {
+            memset(x, 0, sizeof(struct Inout));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFallthrough(const struct Fallthrough * x) {
+cJSON * cJSON_CreateInout(const struct Inout * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14483,10 +18002,10 @@ cJSON * cJSON_CreateFallthrough(const struct Fallthrough * x) {
     return j;
 }
 
-char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
+char * cJSON_PrintInout(const struct Inout * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFallthrough(x);
+        cJSON * j = cJSON_CreateInout(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14495,35 +18014,35 @@ char * cJSON_PrintFallthrough(const struct Fallthrough * x) {
     return s;
 }
 
-void cJSON_DeleteFallthrough(struct Fallthrough * x) {
+void cJSON_DeleteInout(struct Inout * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fileprivate * cJSON_ParseFileprivate(const char * s) {
-    struct Fileprivate * x = NULL;
+struct Instanceof * cJSON_ParseInstanceof(const char * s) {
+    struct Instanceof * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFileprivateValue(j);
+            x = cJSON_GetInstanceofValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fileprivate * cJSON_GetFileprivateValue(const cJSON * j) {
-    struct Fileprivate * x = NULL;
+struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j) {
+    struct Instanceof * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fileprivate)))) {
-            memset(x, 0, sizeof(struct Fileprivate));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Instanceof)))) {
+            memset(x, 0, sizeof(struct Instanceof));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFileprivate(const struct Fileprivate * x) {
+cJSON * cJSON_CreateInstanceof(const struct Instanceof * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14532,10 +18051,10 @@ cJSON * cJSON_CreateFileprivate(const struct Fileprivate * x) {
     return j;
 }
 
-char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
+char * cJSON_PrintInstanceof(const struct Instanceof * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFileprivate(x);
+        cJSON * j = cJSON_CreateInstanceof(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14544,35 +18063,35 @@ char * cJSON_PrintFileprivate(const struct Fileprivate * x) {
     return s;
 }
 
-void cJSON_DeleteFileprivate(struct Fileprivate * x) {
+void cJSON_DeleteInstanceof(struct Instanceof * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Finally * cJSON_ParseFinally(const char * s) {
-    struct Finally * x = NULL;
+struct Interface * cJSON_ParseInterface(const char * s) {
+    struct Interface * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFinallyValue(j);
+            x = cJSON_GetInterfaceValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Finally * cJSON_GetFinallyValue(const cJSON * j) {
-    struct Finally * x = NULL;
+struct Interface * cJSON_GetInterfaceValue(const cJSON * j) {
+    struct Interface * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Finally)))) {
-            memset(x, 0, sizeof(struct Finally));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Interface)))) {
+            memset(x, 0, sizeof(struct Interface));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFinally(const struct Finally * x) {
+cJSON * cJSON_CreateInterface(const struct Interface * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14581,10 +18100,10 @@ cJSON * cJSON_CreateFinally(const struct Finally * x) {
     return j;
 }
 
-char * cJSON_PrintFinally(const struct Finally * x) {
+char * cJSON_PrintInterface(const struct Interface * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFinally(x);
+        cJSON * j = cJSON_CreateInterface(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14593,35 +18112,35 @@ char * cJSON_PrintFinally(const struct Finally * x) {
     return s;
 }
 
-void cJSON_DeleteFinally(struct Finally * x) {
+void cJSON_DeleteInterface(struct Interface * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Fixed * cJSON_ParseFixed(const char * s) {
-    struct Fixed * x = NULL;
+struct Internal * cJSON_ParseInternal(const char * s) {
+    struct Internal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFixedValue(j);
+            x = cJSON_GetInternalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Fixed * cJSON_GetFixedValue(const cJSON * j) {
-    struct Fixed * x = NULL;
+struct Internal * cJSON_GetInternalValue(const cJSON * j) {
+    struct Internal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Fixed)))) {
-            memset(x, 0, sizeof(struct Fixed));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Internal)))) {
+            memset(x, 0, sizeof(struct Internal));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFixed(const struct Fixed * x) {
+cJSON * cJSON_CreateInternal(const struct Internal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14630,10 +18149,10 @@ cJSON * cJSON_CreateFixed(const struct Fixed * x) {
     return j;
 }
 
-char * cJSON_PrintFixed(const struct Fixed * x) {
+char * cJSON_PrintInternal(const struct Internal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFixed(x);
+        cJSON * j = cJSON_CreateInternal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14642,35 +18161,35 @@ char * cJSON_PrintFixed(const struct Fixed * x) {
     return s;
 }
 
-void cJSON_DeleteFixed(struct Fixed * x) {
+void cJSON_DeleteInternal(struct Internal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct UnionBoolBoolClass * cJSON_ParseUnionBoolBoolClass(const char * s) {
-    struct UnionBoolBoolClass * x = NULL;
+struct Is * cJSON_ParseIs(const char * s) {
+    struct Is * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnionBoolBoolClassValue(j);
+            x = cJSON_GetIsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct UnionBoolBoolClass * cJSON_GetUnionBoolBoolClassValue(const cJSON * j) {
-    struct UnionBoolBoolClass * x = NULL;
+struct Is * cJSON_GetIsValue(const cJSON * j) {
+    struct Is * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct UnionBoolBoolClass)))) {
-            memset(x, 0, sizeof(struct UnionBoolBoolClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Is)))) {
+            memset(x, 0, sizeof(struct Is));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
+cJSON * cJSON_CreateIs(const struct Is * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14679,10 +18198,10 @@ cJSON * cJSON_CreateUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
     return j;
 }
 
-char * cJSON_PrintUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
+char * cJSON_PrintIs(const struct Is * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnionBoolBoolClass(x);
+        cJSON * j = cJSON_CreateIs(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14691,35 +18210,35 @@ char * cJSON_PrintUnionBoolBoolClass(const struct UnionBoolBoolClass * x) {
     return s;
 }
 
-void cJSON_DeleteUnionBoolBoolClass(struct UnionBoolBoolClass * x) {
+void cJSON_DeleteIs(struct Is * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Foreach * cJSON_ParseForeach(const char * s) {
-    struct Foreach * x = NULL;
+struct IsoDateTimeOffsetConverter * cJSON_ParseIsoDateTimeOffsetConverter(const char * s) {
+    struct IsoDateTimeOffsetConverter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetForeachValue(j);
+            x = cJSON_GetIsoDateTimeOffsetConverterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Foreach * cJSON_GetForeachValue(const cJSON * j) {
-    struct Foreach * x = NULL;
+struct IsoDateTimeOffsetConverter * cJSON_GetIsoDateTimeOffsetConverterValue(const cJSON * j) {
+    struct IsoDateTimeOffsetConverter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Foreach)))) {
-            memset(x, 0, sizeof(struct Foreach));
+        if (NULL != (x = cJSON_malloc(sizeof(struct IsoDateTimeOffsetConverter)))) {
+            memset(x, 0, sizeof(struct IsoDateTimeOffsetConverter));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateForeach(const struct Foreach * x) {
+cJSON * cJSON_CreateIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14728,10 +18247,10 @@ cJSON * cJSON_CreateForeach(const struct Foreach * x) {
     return j;
 }
 
-char * cJSON_PrintForeach(const struct Foreach * x) {
+char * cJSON_PrintIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateForeach(x);
+        cJSON * j = cJSON_CreateIsoDateTimeOffsetConverter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14740,35 +18259,35 @@ char * cJSON_PrintForeach(const struct Foreach * x) {
     return s;
 }
 
-void cJSON_DeleteForeach(struct Foreach * x) {
+void cJSON_DeleteIsoDateTimeOffsetConverter(struct IsoDateTimeOffsetConverter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct From * cJSON_ParseFrom(const char * s) {
-    struct From * x = NULL;
+struct Iterable * cJSON_ParseIterable(const char * s) {
+    struct Iterable * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFromValue(j);
+            x = cJSON_GetIterableValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct From * cJSON_GetFromValue(const cJSON * j) {
-    struct From * x = NULL;
+struct Iterable * cJSON_GetIterableValue(const cJSON * j) {
+    struct Iterable * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct From)))) {
-            memset(x, 0, sizeof(struct From));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Iterable)))) {
+            memset(x, 0, sizeof(struct Iterable));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFrom(const struct From * x) {
+cJSON * cJSON_CreateIterable(const struct Iterable * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14777,10 +18296,10 @@ cJSON * cJSON_CreateFrom(const struct From * x) {
     return j;
 }
 
-char * cJSON_PrintFrom(const struct From * x) {
+char * cJSON_PrintIterable(const struct Iterable * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFrom(x);
+        cJSON * j = cJSON_CreateIterable(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14789,35 +18308,35 @@ char * cJSON_PrintFrom(const struct From * x) {
     return s;
 }
 
-void cJSON_DeleteFrom(struct From * x) {
+void cJSON_DeleteIterable(struct Iterable * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct FromJson * cJSON_ParseFromJson(const char * s) {
-    struct FromJson * x = NULL;
+struct Jdec * cJSON_ParseJdec(const char * s) {
+    struct Jdec * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFromJsonValue(j);
+            x = cJSON_GetJdecValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct FromJson * cJSON_GetFromJsonValue(const cJSON * j) {
-    struct FromJson * x = NULL;
+struct Jdec * cJSON_GetJdecValue(const cJSON * j) {
+    struct Jdec * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct FromJson)))) {
-            memset(x, 0, sizeof(struct FromJson));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jdec)))) {
+            memset(x, 0, sizeof(struct Jdec));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFromJson(const struct FromJson * x) {
+cJSON * cJSON_CreateJdec(const struct Jdec * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14826,10 +18345,10 @@ cJSON * cJSON_CreateFromJson(const struct FromJson * x) {
     return j;
 }
 
-char * cJSON_PrintFromJson(const struct FromJson * x) {
+char * cJSON_PrintJdec(const struct Jdec * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFromJson(x);
+        cJSON * j = cJSON_CreateJdec(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14838,35 +18357,35 @@ char * cJSON_PrintFromJson(const struct FromJson * x) {
     return s;
 }
 
-void cJSON_DeleteFromJson(struct FromJson * x) {
+void cJSON_DeleteJdec(struct Jdec * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Func * cJSON_ParseFunc(const char * s) {
-    struct Func * x = NULL;
+struct Jenc * cJSON_ParseJenc(const char * s) {
+    struct Jenc * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFuncValue(j);
+            x = cJSON_GetJencValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Func * cJSON_GetFuncValue(const cJSON * j) {
-    struct Func * x = NULL;
+struct Jenc * cJSON_GetJencValue(const cJSON * j) {
+    struct Jenc * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Func)))) {
-            memset(x, 0, sizeof(struct Func));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jenc)))) {
+            memset(x, 0, sizeof(struct Jenc));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFunc(const struct Func * x) {
+cJSON * cJSON_CreateJenc(const struct Jenc * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14875,10 +18394,10 @@ cJSON * cJSON_CreateFunc(const struct Func * x) {
     return j;
 }
 
-char * cJSON_PrintFunc(const struct Func * x) {
+char * cJSON_PrintJenc(const struct Jenc * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFunc(x);
+        cJSON * j = cJSON_CreateJenc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14887,35 +18406,35 @@ char * cJSON_PrintFunc(const struct Func * x) {
     return s;
 }
 
-void cJSON_DeleteFunc(struct Func * x) {
+void cJSON_DeleteJenc(struct Jenc * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Function * cJSON_ParseFunction(const char * s) {
-    struct Function * x = NULL;
+struct Jpipe * cJSON_ParseJpipe(const char * s) {
+    struct Jpipe * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetFunctionValue(j);
+            x = cJSON_GetJpipeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Function * cJSON_GetFunctionValue(const cJSON * j) {
-    struct Function * x = NULL;
+struct Jpipe * cJSON_GetJpipeValue(const cJSON * j) {
+    struct Jpipe * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Function)))) {
-            memset(x, 0, sizeof(struct Function));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Jpipe)))) {
+            memset(x, 0, sizeof(struct Jpipe));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateFunction(const struct Function * x) {
+cJSON * cJSON_CreateJpipe(const struct Jpipe * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14924,10 +18443,10 @@ cJSON * cJSON_CreateFunction(const struct Function * x) {
     return j;
 }
 
-char * cJSON_PrintFunction(const struct Function * x) {
+char * cJSON_PrintJpipe(const struct Jpipe * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateFunction(x);
+        cJSON * j = cJSON_CreateJpipe(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14936,35 +18455,35 @@ char * cJSON_PrintFunction(const struct Function * x) {
     return s;
 }
 
-void cJSON_DeleteFunction(struct Function * x) {
+void cJSON_DeleteJpipe(struct Jpipe * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Get * cJSON_ParseGet(const char * s) {
-    struct Get * x = NULL;
+struct Json * cJSON_ParseJson(const char * s) {
+    struct Json * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGetValue(j);
+            x = cJSON_GetJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Get * cJSON_GetGetValue(const cJSON * j) {
-    struct Get * x = NULL;
+struct Json * cJSON_GetJsonValue(const cJSON * j) {
+    struct Json * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Get)))) {
-            memset(x, 0, sizeof(struct Get));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Json)))) {
+            memset(x, 0, sizeof(struct Json));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGet(const struct Get * x) {
+cJSON * cJSON_CreateJson(const struct Json * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -14973,10 +18492,10 @@ cJSON * cJSON_CreateGet(const struct Get * x) {
     return j;
 }
 
-char * cJSON_PrintGet(const struct Get * x) {
+char * cJSON_PrintJson(const struct Json * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGet(x);
+        cJSON * j = cJSON_CreateJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -14985,35 +18504,35 @@ char * cJSON_PrintGet(const struct Get * x) {
     return s;
 }
 
-void cJSON_DeleteGet(struct Get * x) {
+void cJSON_DeleteJson(struct Json * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Global * cJSON_ParseGlobal(const char * s) {
-    struct Global * x = NULL;
+struct JsonAny * cJSON_ParseJsonAny(const char * s) {
+    struct JsonAny * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGlobalValue(j);
+            x = cJSON_GetJsonAnyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Global * cJSON_GetGlobalValue(const cJSON * j) {
-    struct Global * x = NULL;
+struct JsonAny * cJSON_GetJsonAnyValue(const cJSON * j) {
+    struct JsonAny * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Global)))) {
-            memset(x, 0, sizeof(struct Global));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonAny)))) {
+            memset(x, 0, sizeof(struct JsonAny));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGlobal(const struct Global * x) {
+cJSON * cJSON_CreateJsonAny(const struct JsonAny * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15022,10 +18541,10 @@ cJSON * cJSON_CreateGlobal(const struct Global * x) {
     return j;
 }
 
-char * cJSON_PrintGlobal(const struct Global * x) {
+char * cJSON_PrintJsonAny(const struct JsonAny * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGlobal(x);
+        cJSON * j = cJSON_CreateJsonAny(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15034,35 +18553,35 @@ char * cJSON_PrintGlobal(const struct Global * x) {
     return s;
 }
 
-void cJSON_DeleteGlobal(struct Global * x) {
+void cJSON_DeleteJsonAny(struct JsonAny * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Go * cJSON_ParseGo(const char * s) {
-    struct Go * x = NULL;
+struct JsonCodingKey * cJSON_ParseJsonCodingKey(const char * s) {
+    struct JsonCodingKey * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGoValue(j);
+            x = cJSON_GetJsonCodingKeyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Go * cJSON_GetGoValue(const cJSON * j) {
-    struct Go * x = NULL;
+struct JsonCodingKey * cJSON_GetJsonCodingKeyValue(const cJSON * j) {
+    struct JsonCodingKey * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Go)))) {
-            memset(x, 0, sizeof(struct Go));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonCodingKey)))) {
+            memset(x, 0, sizeof(struct JsonCodingKey));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGo(const struct Go * x) {
+cJSON * cJSON_CreateJsonCodingKey(const struct JsonCodingKey * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15071,10 +18590,10 @@ cJSON * cJSON_CreateGo(const struct Go * x) {
     return j;
 }
 
-char * cJSON_PrintGo(const struct Go * x) {
+char * cJSON_PrintJsonCodingKey(const struct JsonCodingKey * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGo(x);
+        cJSON * j = cJSON_CreateJsonCodingKey(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15083,35 +18602,35 @@ char * cJSON_PrintGo(const struct Go * x) {
     return s;
 }
 
-void cJSON_DeleteGo(struct Go * x) {
+void cJSON_DeleteJsonCodingKey(struct JsonCodingKey * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Guard * cJSON_ParseGuard(const char * s) {
-    struct Guard * x = NULL;
+struct JsonConverter * cJSON_ParseJsonConverter(const char * s) {
+    struct JsonConverter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetGuardValue(j);
+            x = cJSON_GetJsonConverterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Guard * cJSON_GetGuardValue(const cJSON * j) {
-    struct Guard * x = NULL;
+struct JsonConverter * cJSON_GetJsonConverterValue(const cJSON * j) {
+    struct JsonConverter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Guard)))) {
-            memset(x, 0, sizeof(struct Guard));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonConverter)))) {
+            memset(x, 0, sizeof(struct JsonConverter));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateGuard(const struct Guard * x) {
+cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15120,10 +18639,10 @@ cJSON * cJSON_CreateGuard(const struct Guard * x) {
     return j;
 }
 
-char * cJSON_PrintGuard(const struct Guard * x) {
+char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateGuard(x);
+        cJSON * j = cJSON_CreateJsonConverter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15132,35 +18651,35 @@ char * cJSON_PrintGuard(const struct Guard * x) {
     return s;
 }
 
-void cJSON_DeleteGuard(struct Guard * x) {
+void cJSON_DeleteJsonConverter(struct JsonConverter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct HasOwnProperty * cJSON_ParseHasOwnProperty(const char * s) {
-    struct HasOwnProperty * x = NULL;
+struct JsonDecoder * cJSON_ParseJsonDecoder(const char * s) {
+    struct JsonDecoder * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetHasOwnPropertyValue(j);
+            x = cJSON_GetJsonDecoderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct HasOwnProperty * cJSON_GetHasOwnPropertyValue(const cJSON * j) {
-    struct HasOwnProperty * x = NULL;
+struct JsonDecoder * cJSON_GetJsonDecoderValue(const cJSON * j) {
+    struct JsonDecoder * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct HasOwnProperty)))) {
-            memset(x, 0, sizeof(struct HasOwnProperty));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonDecoder)))) {
+            memset(x, 0, sizeof(struct JsonDecoder));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x) {
+cJSON * cJSON_CreateJsonDecoder(const struct JsonDecoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15169,10 +18688,10 @@ cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x) {
     return j;
 }
 
-char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
+char * cJSON_PrintJsonDecoder(const struct JsonDecoder * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateHasOwnProperty(x);
+        cJSON * j = cJSON_CreateJsonDecoder(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15181,35 +18700,35 @@ char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x) {
     return s;
 }
 
-void cJSON_DeleteHasOwnProperty(struct HasOwnProperty * x) {
+void cJSON_DeleteJsonDecoder(struct JsonDecoder * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Id * cJSON_ParseId(const char * s) {
-    struct Id * x = NULL;
+struct JsonEncoder * cJSON_ParseJsonEncoder(const char * s) {
+    struct JsonEncoder * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIdValue(j);
+            x = cJSON_GetJsonEncoderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Id * cJSON_GetIdValue(const cJSON * j) {
-    struct Id * x = NULL;
+struct JsonEncoder * cJSON_GetJsonEncoderValue(const cJSON * j) {
+    struct JsonEncoder * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Id)))) {
-            memset(x, 0, sizeof(struct Id));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonEncoder)))) {
+            memset(x, 0, sizeof(struct JsonEncoder));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateId(const struct Id * x) {
+cJSON * cJSON_CreateJsonEncoder(const struct JsonEncoder * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15218,10 +18737,10 @@ cJSON * cJSON_CreateId(const struct Id * x) {
     return j;
 }
 
-char * cJSON_PrintId(const struct Id * x) {
+char * cJSON_PrintJsonEncoder(const struct JsonEncoder * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateId(x);
+        cJSON * j = cJSON_CreateJsonEncoder(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15230,35 +18749,35 @@ char * cJSON_PrintId(const struct Id * x) {
     return s;
 }
 
-void cJSON_DeleteId(struct Id * x) {
+void cJSON_DeleteJsonEncoder(struct JsonEncoder * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Imaginery * cJSON_ParseImaginery(const char * s) {
-    struct Imaginery * x = NULL;
+struct JsonException * cJSON_ParseJsonException(const char * s) {
+    struct JsonException * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImagineryValue(j);
+            x = cJSON_GetJsonExceptionValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Imaginery * cJSON_GetImagineryValue(const cJSON * j) {
-    struct Imaginery * x = NULL;
+struct JsonException * cJSON_GetJsonExceptionValue(const cJSON * j) {
+    struct JsonException * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Imaginery)))) {
-            memset(x, 0, sizeof(struct Imaginery));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonException)))) {
+            memset(x, 0, sizeof(struct JsonException));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImaginery(const struct Imaginery * x) {
+cJSON * cJSON_CreateJsonException(const struct JsonException * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15267,10 +18786,10 @@ cJSON * cJSON_CreateImaginery(const struct Imaginery * x) {
     return j;
 }
 
-char * cJSON_PrintImaginery(const struct Imaginery * x) {
+char * cJSON_PrintJsonException(const struct JsonException * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImaginery(x);
+        cJSON * j = cJSON_CreateJsonException(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15279,35 +18798,35 @@ char * cJSON_PrintImaginery(const struct Imaginery * x) {
     return s;
 }
 
-void cJSON_DeleteImaginery(struct Imaginery * x) {
+void cJSON_DeleteJsonException(struct JsonException * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Imp * cJSON_ParseImp(const char * s) {
-    struct Imp * x = NULL;
+struct JsonGenerator * cJSON_ParseJsonGenerator(const char * s) {
+    struct JsonGenerator * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImpValue(j);
+            x = cJSON_GetJsonGeneratorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Imp * cJSON_GetImpValue(const cJSON * j) {
-    struct Imp * x = NULL;
+struct JsonGenerator * cJSON_GetJsonGeneratorValue(const cJSON * j) {
+    struct JsonGenerator * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Imp)))) {
-            memset(x, 0, sizeof(struct Imp));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonGenerator)))) {
+            memset(x, 0, sizeof(struct JsonGenerator));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImp(const struct Imp * x) {
+cJSON * cJSON_CreateJsonGenerator(const struct JsonGenerator * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15316,10 +18835,10 @@ cJSON * cJSON_CreateImp(const struct Imp * x) {
     return j;
 }
 
-char * cJSON_PrintImp(const struct Imp * x) {
+char * cJSON_PrintJsonGenerator(const struct JsonGenerator * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImp(x);
+        cJSON * j = cJSON_CreateJsonGenerator(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15328,35 +18847,35 @@ char * cJSON_PrintImp(const struct Imp * x) {
     return s;
 }
 
-void cJSON_DeleteImp(struct Imp * x) {
+void cJSON_DeleteJsonGenerator(struct JsonGenerator * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Implements * cJSON_ParseImplements(const char * s) {
-    struct Implements * x = NULL;
+struct JsonNode * cJSON_ParseJsonNode(const char * s) {
+    struct JsonNode * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImplementsValue(j);
+            x = cJSON_GetJsonNodeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Implements * cJSON_GetImplementsValue(const cJSON * j) {
-    struct Implements * x = NULL;
+struct JsonNode * cJSON_GetJsonNodeValue(const cJSON * j) {
+    struct JsonNode * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Implements)))) {
-            memset(x, 0, sizeof(struct Implements));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNode)))) {
+            memset(x, 0, sizeof(struct JsonNode));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImplements(const struct Implements * x) {
+cJSON * cJSON_CreateJsonNode(const struct JsonNode * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15365,10 +18884,10 @@ cJSON * cJSON_CreateImplements(const struct Implements * x) {
     return j;
 }
 
-char * cJSON_PrintImplements(const struct Implements * x) {
+char * cJSON_PrintJsonNode(const struct JsonNode * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImplements(x);
+        cJSON * j = cJSON_CreateJsonNode(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15377,35 +18896,35 @@ char * cJSON_PrintImplements(const struct Implements * x) {
     return s;
 }
 
-void cJSON_DeleteImplements(struct Implements * x) {
+void cJSON_DeleteJsonNode(struct JsonNode * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Implicit * cJSON_ParseImplicit(const char * s) {
-    struct Implicit * x = NULL;
+struct JsonNull * cJSON_ParseJsonNull(const char * s) {
+    struct JsonNull * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetImplicitValue(j);
+            x = cJSON_GetJsonNullValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Implicit * cJSON_GetImplicitValue(const cJSON * j) {
-    struct Implicit * x = NULL;
+struct JsonNull * cJSON_GetJsonNullValue(const cJSON * j) {
+    struct JsonNull * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Implicit)))) {
-            memset(x, 0, sizeof(struct Implicit));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonNull)))) {
+            memset(x, 0, sizeof(struct JsonNull));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateImplicit(const struct Implicit * x) {
+cJSON * cJSON_CreateJsonNull(const struct JsonNull * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15414,10 +18933,10 @@ cJSON * cJSON_CreateImplicit(const struct Implicit * x) {
     return j;
 }
 
-char * cJSON_PrintImplicit(const struct Implicit * x) {
+char * cJSON_PrintJsonNull(const struct JsonNull * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateImplicit(x);
+        cJSON * j = cJSON_CreateJsonNull(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15426,35 +18945,35 @@ char * cJSON_PrintImplicit(const struct Implicit * x) {
     return s;
 }
 
-void cJSON_DeleteImplicit(struct Implicit * x) {
+void cJSON_DeleteJsonNull(struct JsonNull * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct In * cJSON_ParseIn(const char * s) {
-    struct In * x = NULL;
+struct JsonParser * cJSON_ParseJsonParser(const char * s) {
+    struct JsonParser * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInValue(j);
+            x = cJSON_GetJsonParserValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct In * cJSON_GetInValue(const cJSON * j) {
-    struct In * x = NULL;
+struct JsonParser * cJSON_GetJsonParserValue(const cJSON * j) {
+    struct JsonParser * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct In)))) {
-            memset(x, 0, sizeof(struct In));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonParser)))) {
+            memset(x, 0, sizeof(struct JsonParser));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIn(const struct In * x) {
+cJSON * cJSON_CreateJsonParser(const struct JsonParser * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15463,10 +18982,10 @@ cJSON * cJSON_CreateIn(const struct In * x) {
     return j;
 }
 
-char * cJSON_PrintIn(const struct In * x) {
+char * cJSON_PrintJsonParser(const struct JsonParser * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIn(x);
+        cJSON * j = cJSON_CreateJsonParser(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15475,35 +18994,35 @@ char * cJSON_PrintIn(const struct In * x) {
     return s;
 }
 
-void cJSON_DeleteIn(struct In * x) {
+void cJSON_DeleteJsonParser(struct JsonParser * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Indirect * cJSON_ParseIndirect(const char * s) {
-    struct Indirect * x = NULL;
+struct JsonReader * cJSON_ParseJsonReader(const char * s) {
+    struct JsonReader * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIndirectValue(j);
+            x = cJSON_GetJsonReaderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Indirect * cJSON_GetIndirectValue(const cJSON * j) {
-    struct Indirect * x = NULL;
+struct JsonReader * cJSON_GetJsonReaderValue(const cJSON * j) {
+    struct JsonReader * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Indirect)))) {
-            memset(x, 0, sizeof(struct Indirect));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonReader)))) {
+            memset(x, 0, sizeof(struct JsonReader));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIndirect(const struct Indirect * x) {
+cJSON * cJSON_CreateJsonReader(const struct JsonReader * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15512,10 +19031,10 @@ cJSON * cJSON_CreateIndirect(const struct Indirect * x) {
     return j;
 }
 
-char * cJSON_PrintIndirect(const struct Indirect * x) {
+char * cJSON_PrintJsonReader(const struct JsonReader * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIndirect(x);
+        cJSON * j = cJSON_CreateJsonReader(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15524,35 +19043,35 @@ char * cJSON_PrintIndirect(const struct Indirect * x) {
     return s;
 }
 
-void cJSON_DeleteIndirect(struct Indirect * x) {
+void cJSON_DeleteJsonReader(struct JsonReader * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Infix * cJSON_ParseInfix(const char * s) {
-    struct Infix * x = NULL;
+struct JsonSerializer * cJSON_ParseJsonSerializer(const char * s) {
+    struct JsonSerializer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInfixValue(j);
+            x = cJSON_GetJsonSerializerValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Infix * cJSON_GetInfixValue(const cJSON * j) {
-    struct Infix * x = NULL;
+struct JsonSerializer * cJSON_GetJsonSerializerValue(const cJSON * j) {
+    struct JsonSerializer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Infix)))) {
-            memset(x, 0, sizeof(struct Infix));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonSerializer)))) {
+            memset(x, 0, sizeof(struct JsonSerializer));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInfix(const struct Infix * x) {
+cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15561,10 +19080,10 @@ cJSON * cJSON_CreateInfix(const struct Infix * x) {
     return j;
 }
 
-char * cJSON_PrintInfix(const struct Infix * x) {
+char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInfix(x);
+        cJSON * j = cJSON_CreateJsonSerializer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15573,35 +19092,35 @@ char * cJSON_PrintInfix(const struct Infix * x) {
     return s;
 }
 
-void cJSON_DeleteInfix(struct Infix * x) {
+void cJSON_DeleteJsonSerializer(struct JsonSerializer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Init * cJSON_ParseInit(const char * s) {
-    struct Init * x = NULL;
+struct JsonToken * cJSON_ParseJsonToken(const char * s) {
+    struct JsonToken * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInitValue(j);
+            x = cJSON_GetJsonTokenValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Init * cJSON_GetInitValue(const cJSON * j) {
-    struct Init * x = NULL;
+struct JsonToken * cJSON_GetJsonTokenValue(const cJSON * j) {
+    struct JsonToken * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Init)))) {
-            memset(x, 0, sizeof(struct Init));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonToken)))) {
+            memset(x, 0, sizeof(struct JsonToken));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInit(const struct Init * x) {
+cJSON * cJSON_CreateJsonToken(const struct JsonToken * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15610,10 +19129,10 @@ cJSON * cJSON_CreateInit(const struct Init * x) {
     return j;
 }
 
-char * cJSON_PrintInit(const struct Init * x) {
+char * cJSON_PrintJsonToken(const struct JsonToken * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInit(x);
+        cJSON * j = cJSON_CreateJsonToken(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15622,35 +19141,35 @@ char * cJSON_PrintInit(const struct Init * x) {
     return s;
 }
 
-void cJSON_DeleteInit(struct Init * x) {
+void cJSON_DeleteJsonToken(struct JsonToken * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Inout * cJSON_ParseInout(const char * s) {
-    struct Inout * x = NULL;
+struct JsonTokenType * cJSON_ParseJsonTokenType(const char * s) {
+    struct JsonTokenType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInoutValue(j);
+            x = cJSON_GetJsonTokenTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Inout * cJSON_GetInoutValue(const cJSON * j) {
-    struct Inout * x = NULL;
+struct JsonTokenType * cJSON_GetJsonTokenTypeValue(const cJSON * j) {
+    struct JsonTokenType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Inout)))) {
-            memset(x, 0, sizeof(struct Inout));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonTokenType)))) {
+            memset(x, 0, sizeof(struct JsonTokenType));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInout(const struct Inout * x) {
+cJSON * cJSON_CreateJsonTokenType(const struct JsonTokenType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15659,10 +19178,10 @@ cJSON * cJSON_CreateInout(const struct Inout * x) {
     return j;
 }
 
-char * cJSON_PrintInout(const struct Inout * x) {
+char * cJSON_PrintJsonTokenType(const struct JsonTokenType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInout(x);
+        cJSON * j = cJSON_CreateJsonTokenType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15671,35 +19190,35 @@ char * cJSON_PrintInout(const struct Inout * x) {
     return s;
 }
 
-void cJSON_DeleteInout(struct Inout * x) {
+void cJSON_DeleteJsonTokenType(struct JsonTokenType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Instanceof * cJSON_ParseInstanceof(const char * s) {
-    struct Instanceof * x = NULL;
+struct JsonWriter * cJSON_ParseJsonWriter(const char * s) {
+    struct JsonWriter * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInstanceofValue(j);
+            x = cJSON_GetJsonWriterValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Instanceof * cJSON_GetInstanceofValue(const cJSON * j) {
-    struct Instanceof * x = NULL;
+struct JsonWriter * cJSON_GetJsonWriterValue(const cJSON * j) {
+    struct JsonWriter * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Instanceof)))) {
-            memset(x, 0, sizeof(struct Instanceof));
+        if (NULL != (x = cJSON_malloc(sizeof(struct JsonWriter)))) {
+            memset(x, 0, sizeof(struct JsonWriter));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInstanceof(const struct Instanceof * x) {
+cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15708,10 +19227,10 @@ cJSON * cJSON_CreateInstanceof(const struct Instanceof * x) {
     return j;
 }
 
-char * cJSON_PrintInstanceof(const struct Instanceof * x) {
+char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInstanceof(x);
+        cJSON * j = cJSON_CreateJsonWriter(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15720,35 +19239,35 @@ char * cJSON_PrintInstanceof(const struct Instanceof * x) {
     return s;
 }
 
-void cJSON_DeleteInstanceof(struct Instanceof * x) {
+void cJSON_DeleteJsonWriter(struct JsonWriter * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Interface * cJSON_ParseInterface(const char * s) {
-    struct Interface * x = NULL;
+struct Lambda * cJSON_ParseLambda(const char * s) {
+    struct Lambda * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInterfaceValue(j);
+            x = cJSON_GetLambdaValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Interface * cJSON_GetInterfaceValue(const cJSON * j) {
-    struct Interface * x = NULL;
+struct Lambda * cJSON_GetLambdaValue(const cJSON * j) {
+    struct Lambda * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Interface)))) {
-            memset(x, 0, sizeof(struct Interface));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lambda)))) {
+            memset(x, 0, sizeof(struct Lambda));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInterface(const struct Interface * x) {
+cJSON * cJSON_CreateLambda(const struct Lambda * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15757,10 +19276,10 @@ cJSON * cJSON_CreateInterface(const struct Interface * x) {
     return j;
 }
 
-char * cJSON_PrintInterface(const struct Interface * x) {
+char * cJSON_PrintLambda(const struct Lambda * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInterface(x);
+        cJSON * j = cJSON_CreateLambda(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15769,35 +19288,35 @@ char * cJSON_PrintInterface(const struct Interface * x) {
     return s;
 }
 
-void cJSON_DeleteInterface(struct Interface * x) {
+void cJSON_DeleteLambda(struct Lambda * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Internal * cJSON_ParseInternal(const char * s) {
-    struct Internal * x = NULL;
+struct Lazy * cJSON_ParseLazy(const char * s) {
+    struct Lazy * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetInternalValue(j);
+            x = cJSON_GetLazyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Internal * cJSON_GetInternalValue(const cJSON * j) {
-    struct Internal * x = NULL;
+struct Lazy * cJSON_GetLazyValue(const cJSON * j) {
+    struct Lazy * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Internal)))) {
-            memset(x, 0, sizeof(struct Internal));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lazy)))) {
+            memset(x, 0, sizeof(struct Lazy));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateInternal(const struct Internal * x) {
+cJSON * cJSON_CreateLazy(const struct Lazy * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15806,10 +19325,10 @@ cJSON * cJSON_CreateInternal(const struct Internal * x) {
     return j;
 }
 
-char * cJSON_PrintInternal(const struct Internal * x) {
+char * cJSON_PrintLazy(const struct Lazy * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateInternal(x);
+        cJSON * j = cJSON_CreateLazy(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15818,35 +19337,35 @@ char * cJSON_PrintInternal(const struct Internal * x) {
     return s;
 }
 
-void cJSON_DeleteInternal(struct Internal * x) {
+void cJSON_DeleteLazy(struct Lazy * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Is * cJSON_ParseIs(const char * s) {
-    struct Is * x = NULL;
+struct Left * cJSON_ParseLeft(const char * s) {
+    struct Left * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIsValue(j);
+            x = cJSON_GetLeftValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Is * cJSON_GetIsValue(const cJSON * j) {
-    struct Is * x = NULL;
+struct Left * cJSON_GetLeftValue(const cJSON * j) {
+    struct Left * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Is)))) {
-            memset(x, 0, sizeof(struct Is));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Left)))) {
+            memset(x, 0, sizeof(struct Left));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIs(const struct Is * x) {
+cJSON * cJSON_CreateLeft(const struct Left * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15855,10 +19374,10 @@ cJSON * cJSON_CreateIs(const struct Is * x) {
     return j;
 }
 
-char * cJSON_PrintIs(const struct Is * x) {
+char * cJSON_PrintLeft(const struct Left * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIs(x);
+        cJSON * j = cJSON_CreateLeft(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15867,35 +19386,35 @@ char * cJSON_PrintIs(const struct Is * x) {
     return s;
 }
 
-void cJSON_DeleteIs(struct Is * x) {
+void cJSON_DeleteLeft(struct Left * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Iterable * cJSON_ParseIterable(const char * s) {
-    struct Iterable * x = NULL;
+struct Let * cJSON_ParseLet(const char * s) {
+    struct Let * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetIterableValue(j);
+            x = cJSON_GetLetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Iterable * cJSON_GetIterableValue(const cJSON * j) {
-    struct Iterable * x = NULL;
+struct Let * cJSON_GetLetValue(const cJSON * j) {
+    struct Let * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Iterable)))) {
-            memset(x, 0, sizeof(struct Iterable));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Let)))) {
+            memset(x, 0, sizeof(struct Let));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateIterable(const struct Iterable * x) {
+cJSON * cJSON_CreateLet(const struct Let * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15904,10 +19423,10 @@ cJSON * cJSON_CreateIterable(const struct Iterable * x) {
     return j;
 }
 
-char * cJSON_PrintIterable(const struct Iterable * x) {
+char * cJSON_PrintLet(const struct Let * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateIterable(x);
+        cJSON * j = cJSON_CreateLet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15916,35 +19435,35 @@ char * cJSON_PrintIterable(const struct Iterable * x) {
     return s;
 }
 
-void cJSON_DeleteIterable(struct Iterable * x) {
+void cJSON_DeleteLet(struct Let * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jdec * cJSON_ParseJdec(const char * s) {
-    struct Jdec * x = NULL;
+struct List * cJSON_ParseList(const char * s) {
+    struct List * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJdecValue(j);
+            x = cJSON_GetListValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jdec * cJSON_GetJdecValue(const cJSON * j) {
-    struct Jdec * x = NULL;
+struct List * cJSON_GetListValue(const cJSON * j) {
+    struct List * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jdec)))) {
-            memset(x, 0, sizeof(struct Jdec));
+        if (NULL != (x = cJSON_malloc(sizeof(struct List)))) {
+            memset(x, 0, sizeof(struct List));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJdec(const struct Jdec * x) {
+cJSON * cJSON_CreateList(const struct List * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -15953,10 +19472,10 @@ cJSON * cJSON_CreateJdec(const struct Jdec * x) {
     return j;
 }
 
-char * cJSON_PrintJdec(const struct Jdec * x) {
+char * cJSON_PrintList(const struct List * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJdec(x);
+        cJSON * j = cJSON_CreateList(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -15965,35 +19484,35 @@ char * cJSON_PrintJdec(const struct Jdec * x) {
     return s;
 }
 
-void cJSON_DeleteJdec(struct Jdec * x) {
+void cJSON_DeleteList(struct List * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jenc * cJSON_ParseJenc(const char * s) {
-    struct Jenc * x = NULL;
+struct Lock * cJSON_ParseLock(const char * s) {
+    struct Lock * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJencValue(j);
+            x = cJSON_GetLockValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jenc * cJSON_GetJencValue(const cJSON * j) {
-    struct Jenc * x = NULL;
+struct Lock * cJSON_GetLockValue(const cJSON * j) {
+    struct Lock * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jenc)))) {
-            memset(x, 0, sizeof(struct Jenc));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Lock)))) {
+            memset(x, 0, sizeof(struct Lock));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJenc(const struct Jenc * x) {
+cJSON * cJSON_CreateLock(const struct Lock * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16002,10 +19521,10 @@ cJSON * cJSON_CreateJenc(const struct Jenc * x) {
     return j;
 }
 
-char * cJSON_PrintJenc(const struct Jenc * x) {
+char * cJSON_PrintLock(const struct Lock * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJenc(x);
+        cJSON * j = cJSON_CreateLock(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16014,35 +19533,35 @@ char * cJSON_PrintJenc(const struct Jenc * x) {
     return s;
 }
 
-void cJSON_DeleteJenc(struct Jenc * x) {
+void cJSON_DeleteLock(struct Lock * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Jpipe * cJSON_ParseJpipe(const char * s) {
-    struct Jpipe * x = NULL;
+struct Map * cJSON_ParseMap(const char * s) {
+    struct Map * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJpipeValue(j);
+            x = cJSON_GetMapValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Jpipe * cJSON_GetJpipeValue(const cJSON * j) {
-    struct Jpipe * x = NULL;
+struct Map * cJSON_GetMapValue(const cJSON * j) {
+    struct Map * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Jpipe)))) {
-            memset(x, 0, sizeof(struct Jpipe));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Map)))) {
+            memset(x, 0, sizeof(struct Map));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJpipe(const struct Jpipe * x) {
+cJSON * cJSON_CreateMap(const struct Map * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16051,10 +19570,10 @@ cJSON * cJSON_CreateJpipe(const struct Jpipe * x) {
     return j;
 }
 
-char * cJSON_PrintJpipe(const struct Jpipe * x) {
+char * cJSON_PrintMap(const struct Map * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJpipe(x);
+        cJSON * j = cJSON_CreateMap(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16063,35 +19582,35 @@ char * cJSON_PrintJpipe(const struct Jpipe * x) {
     return s;
 }
 
-void cJSON_DeleteJpipe(struct Jpipe * x) {
+void cJSON_DeleteMap(struct Map * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Json * cJSON_ParseJson(const char * s) {
-    struct Json * x = NULL;
+struct MetadataPropertyHandling * cJSON_ParseMetadataPropertyHandling(const char * s) {
+    struct MetadataPropertyHandling * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonValue(j);
+            x = cJSON_GetMetadataPropertyHandlingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Json * cJSON_GetJsonValue(const cJSON * j) {
-    struct Json * x = NULL;
+struct MetadataPropertyHandling * cJSON_GetMetadataPropertyHandlingValue(const cJSON * j) {
+    struct MetadataPropertyHandling * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Json)))) {
-            memset(x, 0, sizeof(struct Json));
+        if (NULL != (x = cJSON_malloc(sizeof(struct MetadataPropertyHandling)))) {
+            memset(x, 0, sizeof(struct MetadataPropertyHandling));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJson(const struct Json * x) {
+cJSON * cJSON_CreateMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16100,10 +19619,10 @@ cJSON * cJSON_CreateJson(const struct Json * x) {
     return j;
 }
 
-char * cJSON_PrintJson(const struct Json * x) {
+char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJson(x);
+        cJSON * j = cJSON_CreateMetadataPropertyHandling(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16112,35 +19631,35 @@ char * cJSON_PrintJson(const struct Json * x) {
     return s;
 }
 
-void cJSON_DeleteJson(struct Json * x) {
+void cJSON_DeleteMetadataPropertyHandling(struct MetadataPropertyHandling * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonConverter * cJSON_ParseJsonConverter(const char * s) {
-    struct JsonConverter * x = NULL;
+struct Mutating * cJSON_ParseMutating(const char * s) {
+    struct Mutating * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonConverterValue(j);
+            x = cJSON_GetMutatingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonConverter * cJSON_GetJsonConverterValue(const cJSON * j) {
-    struct JsonConverter * x = NULL;
+struct Mutating * cJSON_GetMutatingValue(const cJSON * j) {
+    struct Mutating * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonConverter)))) {
-            memset(x, 0, sizeof(struct JsonConverter));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Mutating)))) {
+            memset(x, 0, sizeof(struct Mutating));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x) {
+cJSON * cJSON_CreateMutating(const struct Mutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16149,10 +19668,10 @@ cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x) {
     return j;
 }
 
-char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
+char * cJSON_PrintMutating(const struct Mutating * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonConverter(x);
+        cJSON * j = cJSON_CreateMutating(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16161,35 +19680,35 @@ char * cJSON_PrintJsonConverter(const struct JsonConverter * x) {
     return s;
 }
 
-void cJSON_DeleteJsonConverter(struct JsonConverter * x) {
+void cJSON_DeleteMutating(struct Mutating * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonSerializer * cJSON_ParseJsonSerializer(const char * s) {
-    struct JsonSerializer * x = NULL;
+struct Native * cJSON_ParseNative(const char * s) {
+    struct Native * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonSerializerValue(j);
+            x = cJSON_GetNativeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonSerializer * cJSON_GetJsonSerializerValue(const cJSON * j) {
-    struct JsonSerializer * x = NULL;
+struct Native * cJSON_GetNativeValue(const cJSON * j) {
+    struct Native * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonSerializer)))) {
-            memset(x, 0, sizeof(struct JsonSerializer));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Native)))) {
+            memset(x, 0, sizeof(struct Native));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x) {
+cJSON * cJSON_CreateNative(const struct Native * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16198,10 +19717,10 @@ cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x) {
     return j;
 }
 
-char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
+char * cJSON_PrintNative(const struct Native * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonSerializer(x);
+        cJSON * j = cJSON_CreateNative(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16210,35 +19729,35 @@ char * cJSON_PrintJsonSerializer(const struct JsonSerializer * x) {
     return s;
 }
 
-void cJSON_DeleteJsonSerializer(struct JsonSerializer * x) {
+void cJSON_DeleteNative(struct Native * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonToken * cJSON_ParseJsonToken(const char * s) {
-    struct JsonToken * x = NULL;
+struct Newtonsoft * cJSON_ParseNewtonsoft(const char * s) {
+    struct Newtonsoft * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonTokenValue(j);
+            x = cJSON_GetNewtonsoftValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonToken * cJSON_GetJsonTokenValue(const cJSON * j) {
-    struct JsonToken * x = NULL;
+struct Newtonsoft * cJSON_GetNewtonsoftValue(const cJSON * j) {
+    struct Newtonsoft * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonToken)))) {
-            memset(x, 0, sizeof(struct JsonToken));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Newtonsoft)))) {
+            memset(x, 0, sizeof(struct Newtonsoft));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonToken(const struct JsonToken * x) {
+cJSON * cJSON_CreateNewtonsoft(const struct Newtonsoft * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16247,10 +19766,10 @@ cJSON * cJSON_CreateJsonToken(const struct JsonToken * x) {
     return j;
 }
 
-char * cJSON_PrintJsonToken(const struct JsonToken * x) {
+char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonToken(x);
+        cJSON * j = cJSON_CreateNewtonsoft(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16259,35 +19778,35 @@ char * cJSON_PrintJsonToken(const struct JsonToken * x) {
     return s;
 }
 
-void cJSON_DeleteJsonToken(struct JsonToken * x) {
+void cJSON_DeleteNewtonsoft(struct Newtonsoft * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct JsonWriter * cJSON_ParseJsonWriter(const char * s) {
-    struct JsonWriter * x = NULL;
+struct Nil * cJSON_ParseNil(const char * s) {
+    struct Nil * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetJsonWriterValue(j);
+            x = cJSON_GetNilValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct JsonWriter * cJSON_GetJsonWriterValue(const cJSON * j) {
-    struct JsonWriter * x = NULL;
+struct Nil * cJSON_GetNilValue(const cJSON * j) {
+    struct Nil * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct JsonWriter)))) {
-            memset(x, 0, sizeof(struct JsonWriter));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nil)))) {
+            memset(x, 0, sizeof(struct Nil));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x) {
+cJSON * cJSON_CreateNil(const struct Nil * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16296,10 +19815,10 @@ cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x) {
     return j;
 }
 
-char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
+char * cJSON_PrintNil(const struct Nil * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateJsonWriter(x);
+        cJSON * j = cJSON_CreateNil(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16308,35 +19827,35 @@ char * cJSON_PrintJsonWriter(const struct JsonWriter * x) {
     return s;
 }
 
-void cJSON_DeleteJsonWriter(struct JsonWriter * x) {
+void cJSON_DeleteNil(struct Nil * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lambda * cJSON_ParseLambda(const char * s) {
-    struct Lambda * x = NULL;
+struct No * cJSON_ParseNo(const char * s) {
+    struct No * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLambdaValue(j);
+            x = cJSON_GetNoValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lambda * cJSON_GetLambdaValue(const cJSON * j) {
-    struct Lambda * x = NULL;
+struct No * cJSON_GetNoValue(const cJSON * j) {
+    struct No * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lambda)))) {
-            memset(x, 0, sizeof(struct Lambda));
+        if (NULL != (x = cJSON_malloc(sizeof(struct No)))) {
+            memset(x, 0, sizeof(struct No));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLambda(const struct Lambda * x) {
+cJSON * cJSON_CreateNo(const struct No * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16345,10 +19864,10 @@ cJSON * cJSON_CreateLambda(const struct Lambda * x) {
     return j;
 }
 
-char * cJSON_PrintLambda(const struct Lambda * x) {
+char * cJSON_PrintNo(const struct No * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLambda(x);
+        cJSON * j = cJSON_CreateNo(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16357,35 +19876,35 @@ char * cJSON_PrintLambda(const struct Lambda * x) {
     return s;
 }
 
-void cJSON_DeleteLambda(struct Lambda * x) {
+void cJSON_DeleteNo(struct No * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lazy * cJSON_ParseLazy(const char * s) {
-    struct Lazy * x = NULL;
+struct NoSuchMethod * cJSON_ParseNoSuchMethod(const char * s) {
+    struct NoSuchMethod * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLazyValue(j);
+            x = cJSON_GetNoSuchMethodValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lazy * cJSON_GetLazyValue(const cJSON * j) {
-    struct Lazy * x = NULL;
+struct NoSuchMethod * cJSON_GetNoSuchMethodValue(const cJSON * j) {
+    struct NoSuchMethod * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lazy)))) {
-            memset(x, 0, sizeof(struct Lazy));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NoSuchMethod)))) {
+            memset(x, 0, sizeof(struct NoSuchMethod));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLazy(const struct Lazy * x) {
+cJSON * cJSON_CreateNoSuchMethod(const struct NoSuchMethod * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16394,10 +19913,10 @@ cJSON * cJSON_CreateLazy(const struct Lazy * x) {
     return j;
 }
 
-char * cJSON_PrintLazy(const struct Lazy * x) {
+char * cJSON_PrintNoSuchMethod(const struct NoSuchMethod * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLazy(x);
+        cJSON * j = cJSON_CreateNoSuchMethod(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16406,35 +19925,35 @@ char * cJSON_PrintLazy(const struct Lazy * x) {
     return s;
 }
 
-void cJSON_DeleteLazy(struct Lazy * x) {
+void cJSON_DeleteNoSuchMethod(struct NoSuchMethod * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Left * cJSON_ParseLeft(const char * s) {
-    struct Left * x = NULL;
+struct Nonatomic * cJSON_ParseNonatomic(const char * s) {
+    struct Nonatomic * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLeftValue(j);
+            x = cJSON_GetNonatomicValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Left * cJSON_GetLeftValue(const cJSON * j) {
-    struct Left * x = NULL;
+struct Nonatomic * cJSON_GetNonatomicValue(const cJSON * j) {
+    struct Nonatomic * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Left)))) {
-            memset(x, 0, sizeof(struct Left));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonatomic)))) {
+            memset(x, 0, sizeof(struct Nonatomic));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLeft(const struct Left * x) {
+cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16443,10 +19962,10 @@ cJSON * cJSON_CreateLeft(const struct Left * x) {
     return j;
 }
 
-char * cJSON_PrintLeft(const struct Left * x) {
+char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLeft(x);
+        cJSON * j = cJSON_CreateNonatomic(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16455,35 +19974,35 @@ char * cJSON_PrintLeft(const struct Left * x) {
     return s;
 }
 
-void cJSON_DeleteLeft(struct Left * x) {
+void cJSON_DeleteNonatomic(struct Nonatomic * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Let * cJSON_ParseLet(const char * s) {
-    struct Let * x = NULL;
+struct None * cJSON_ParseNone(const char * s) {
+    struct None * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLetValue(j);
+            x = cJSON_GetNoneValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Let * cJSON_GetLetValue(const cJSON * j) {
-    struct Let * x = NULL;
+struct None * cJSON_GetNoneValue(const cJSON * j) {
+    struct None * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Let)))) {
-            memset(x, 0, sizeof(struct Let));
+        if (NULL != (x = cJSON_malloc(sizeof(struct None)))) {
+            memset(x, 0, sizeof(struct None));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLet(const struct Let * x) {
+cJSON * cJSON_CreateNone(const struct None * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16492,10 +20011,10 @@ cJSON * cJSON_CreateLet(const struct Let * x) {
     return j;
 }
 
-char * cJSON_PrintLet(const struct Let * x) {
+char * cJSON_PrintNone(const struct None * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLet(x);
+        cJSON * j = cJSON_CreateNone(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16504,35 +20023,35 @@ char * cJSON_PrintLet(const struct Let * x) {
     return s;
 }
 
-void cJSON_DeleteLet(struct Let * x) {
+void cJSON_DeleteNone(struct None * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct List * cJSON_ParseList(const char * s) {
-    struct List * x = NULL;
+struct Nonlocal * cJSON_ParseNonlocal(const char * s) {
+    struct Nonlocal * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetListValue(j);
+            x = cJSON_GetNonlocalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct List * cJSON_GetListValue(const cJSON * j) {
-    struct List * x = NULL;
+struct Nonlocal * cJSON_GetNonlocalValue(const cJSON * j) {
+    struct Nonlocal * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct List)))) {
-            memset(x, 0, sizeof(struct List));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonlocal)))) {
+            memset(x, 0, sizeof(struct Nonlocal));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateList(const struct List * x) {
+cJSON * cJSON_CreateNonlocal(const struct Nonlocal * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16541,10 +20060,10 @@ cJSON * cJSON_CreateList(const struct List * x) {
     return j;
 }
 
-char * cJSON_PrintList(const struct List * x) {
+char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateList(x);
+        cJSON * j = cJSON_CreateNonlocal(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16553,35 +20072,35 @@ char * cJSON_PrintList(const struct List * x) {
     return s;
 }
 
-void cJSON_DeleteList(struct List * x) {
+void cJSON_DeleteNonlocal(struct Nonlocal * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Lock * cJSON_ParseLock(const char * s) {
-    struct Lock * x = NULL;
+struct Nonmutating * cJSON_ParseNonmutating(const char * s) {
+    struct Nonmutating * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetLockValue(j);
+            x = cJSON_GetNonmutatingValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Lock * cJSON_GetLockValue(const cJSON * j) {
-    struct Lock * x = NULL;
+struct Nonmutating * cJSON_GetNonmutatingValue(const cJSON * j) {
+    struct Nonmutating * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Lock)))) {
-            memset(x, 0, sizeof(struct Lock));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Nonmutating)))) {
+            memset(x, 0, sizeof(struct Nonmutating));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateLock(const struct Lock * x) {
+cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16590,10 +20109,10 @@ cJSON * cJSON_CreateLock(const struct Lock * x) {
     return j;
 }
 
-char * cJSON_PrintLock(const struct Lock * x) {
+char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateLock(x);
+        cJSON * j = cJSON_CreateNonmutating(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16602,35 +20121,35 @@ char * cJSON_PrintLock(const struct Lock * x) {
     return s;
 }
 
-void cJSON_DeleteLock(struct Lock * x) {
+void cJSON_DeleteNonmutating(struct Nonmutating * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Map * cJSON_ParseMap(const char * s) {
-    struct Map * x = NULL;
+struct NsError * cJSON_ParseNsError(const char * s) {
+    struct NsError * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMapValue(j);
+            x = cJSON_GetNsErrorValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Map * cJSON_GetMapValue(const cJSON * j) {
-    struct Map * x = NULL;
+struct NsError * cJSON_GetNsErrorValue(const cJSON * j) {
+    struct NsError * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Map)))) {
-            memset(x, 0, sizeof(struct Map));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NsError)))) {
+            memset(x, 0, sizeof(struct NsError));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMap(const struct Map * x) {
+cJSON * cJSON_CreateNsError(const struct NsError * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16639,10 +20158,10 @@ cJSON * cJSON_CreateMap(const struct Map * x) {
     return j;
 }
 
-char * cJSON_PrintMap(const struct Map * x) {
+char * cJSON_PrintNsError(const struct NsError * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMap(x);
+        cJSON * j = cJSON_CreateNsError(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16651,35 +20170,35 @@ char * cJSON_PrintMap(const struct Map * x) {
     return s;
 }
 
-void cJSON_DeleteMap(struct Map * x) {
+void cJSON_DeleteNsError(struct NsError * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct MetadataPropertyHandling * cJSON_ParseMetadataPropertyHandling(const char * s) {
-    struct MetadataPropertyHandling * x = NULL;
+struct NsString * cJSON_ParseNsString(const char * s) {
+    struct NsString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMetadataPropertyHandlingValue(j);
+            x = cJSON_GetNsStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct MetadataPropertyHandling * cJSON_GetMetadataPropertyHandlingValue(const cJSON * j) {
-    struct MetadataPropertyHandling * x = NULL;
+struct NsString * cJSON_GetNsStringValue(const cJSON * j) {
+    struct NsString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct MetadataPropertyHandling)))) {
-            memset(x, 0, sizeof(struct MetadataPropertyHandling));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NsString)))) {
+            memset(x, 0, sizeof(struct NsString));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
+cJSON * cJSON_CreateNsString(const struct NsString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16688,10 +20207,10 @@ cJSON * cJSON_CreateMetadataPropertyHandling(const struct MetadataPropertyHandli
     return j;
 }
 
-char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling * x) {
+char * cJSON_PrintNsString(const struct NsString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMetadataPropertyHandling(x);
+        cJSON * j = cJSON_CreateNsString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16700,35 +20219,35 @@ char * cJSON_PrintMetadataPropertyHandling(const struct MetadataPropertyHandling
     return s;
 }
 
-void cJSON_DeleteMetadataPropertyHandling(struct MetadataPropertyHandling * x) {
+void cJSON_DeleteNsString(struct NsString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Mutating * cJSON_ParseMutating(const char * s) {
-    struct Mutating * x = NULL;
+struct NullClass * cJSON_ParseNullClass(const char * s) {
+    struct NullClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetMutatingValue(j);
+            x = cJSON_GetNullClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Mutating * cJSON_GetMutatingValue(const cJSON * j) {
-    struct Mutating * x = NULL;
+struct NullClass * cJSON_GetNullClassValue(const cJSON * j) {
+    struct NullClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Mutating)))) {
-            memset(x, 0, sizeof(struct Mutating));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NullClass)))) {
+            memset(x, 0, sizeof(struct NullClass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateMutating(const struct Mutating * x) {
+cJSON * cJSON_CreateNullClass(const struct NullClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16737,10 +20256,10 @@ cJSON * cJSON_CreateMutating(const struct Mutating * x) {
     return j;
 }
 
-char * cJSON_PrintMutating(const struct Mutating * x) {
+char * cJSON_PrintNullClass(const struct NullClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateMutating(x);
+        cJSON * j = cJSON_CreateNullClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16749,35 +20268,35 @@ char * cJSON_PrintMutating(const struct Mutating * x) {
     return s;
 }
 
-void cJSON_DeleteMutating(struct Mutating * x) {
+void cJSON_DeleteNullClass(struct NullClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Native * cJSON_ParseNative(const char * s) {
-    struct Native * x = NULL;
+struct NumberClass * cJSON_ParseNumberClass(const char * s) {
+    struct NumberClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNativeValue(j);
+            x = cJSON_GetNumberClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Native * cJSON_GetNativeValue(const cJSON * j) {
-    struct Native * x = NULL;
+struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j) {
+    struct NumberClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Native)))) {
-            memset(x, 0, sizeof(struct Native));
+        if (NULL != (x = cJSON_malloc(sizeof(struct NumberClass)))) {
+            memset(x, 0, sizeof(struct NumberClass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNative(const struct Native * x) {
+cJSON * cJSON_CreateNumberClass(const struct NumberClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16786,10 +20305,10 @@ cJSON * cJSON_CreateNative(const struct Native * x) {
     return j;
 }
 
-char * cJSON_PrintNative(const struct Native * x) {
+char * cJSON_PrintNumberClass(const struct NumberClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNative(x);
+        cJSON * j = cJSON_CreateNumberClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16798,35 +20317,35 @@ char * cJSON_PrintNative(const struct Native * x) {
     return s;
 }
 
-void cJSON_DeleteNative(struct Native * x) {
+void cJSON_DeleteNumberClass(struct NumberClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Newtonsoft * cJSON_ParseNewtonsoft(const char * s) {
-    struct Newtonsoft * x = NULL;
+struct ObjectClass * cJSON_ParseObjectClass(const char * s) {
+    struct ObjectClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNewtonsoftValue(j);
+            x = cJSON_GetObjectClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Newtonsoft * cJSON_GetNewtonsoftValue(const cJSON * j) {
-    struct Newtonsoft * x = NULL;
+struct ObjectClass * cJSON_GetObjectClassValue(const cJSON * j) {
+    struct ObjectClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Newtonsoft)))) {
-            memset(x, 0, sizeof(struct Newtonsoft));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectClass)))) {
+            memset(x, 0, sizeof(struct ObjectClass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNewtonsoft(const struct Newtonsoft * x) {
+cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16835,10 +20354,10 @@ cJSON * cJSON_CreateNewtonsoft(const struct Newtonsoft * x) {
     return j;
 }
 
-char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
+char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNewtonsoft(x);
+        cJSON * j = cJSON_CreateObjectClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16847,35 +20366,35 @@ char * cJSON_PrintNewtonsoft(const struct Newtonsoft * x) {
     return s;
 }
 
-void cJSON_DeleteNewtonsoft(struct Newtonsoft * x) {
+void cJSON_DeleteObjectClass(struct ObjectClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nil * cJSON_ParseNil(const char * s) {
-    struct Nil * x = NULL;
+struct ObjectMapper * cJSON_ParseObjectMapper(const char * s) {
+    struct ObjectMapper * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNilValue(j);
+            x = cJSON_GetObjectMapperValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nil * cJSON_GetNilValue(const cJSON * j) {
-    struct Nil * x = NULL;
+struct ObjectMapper * cJSON_GetObjectMapperValue(const cJSON * j) {
+    struct ObjectMapper * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nil)))) {
-            memset(x, 0, sizeof(struct Nil));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectMapper)))) {
+            memset(x, 0, sizeof(struct ObjectMapper));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNil(const struct Nil * x) {
+cJSON * cJSON_CreateObjectMapper(const struct ObjectMapper * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16884,10 +20403,10 @@ cJSON * cJSON_CreateNil(const struct Nil * x) {
     return j;
 }
 
-char * cJSON_PrintNil(const struct Nil * x) {
+char * cJSON_PrintObjectMapper(const struct ObjectMapper * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNil(x);
+        cJSON * j = cJSON_CreateObjectMapper(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16896,35 +20415,35 @@ char * cJSON_PrintNil(const struct Nil * x) {
     return s;
 }
 
-void cJSON_DeleteNil(struct Nil * x) {
+void cJSON_DeleteObjectMapper(struct ObjectMapper * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct No * cJSON_ParseNo(const char * s) {
-    struct No * x = NULL;
+struct Of * cJSON_ParseOf(const char * s) {
+    struct Of * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoValue(j);
+            x = cJSON_GetOfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct No * cJSON_GetNoValue(const cJSON * j) {
-    struct No * x = NULL;
+struct Of * cJSON_GetOfValue(const cJSON * j) {
+    struct Of * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct No)))) {
-            memset(x, 0, sizeof(struct No));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Of)))) {
+            memset(x, 0, sizeof(struct Of));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNo(const struct No * x) {
+cJSON * cJSON_CreateOf(const struct Of * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16933,10 +20452,10 @@ cJSON * cJSON_CreateNo(const struct No * x) {
     return j;
 }
 
-char * cJSON_PrintNo(const struct No * x) {
+char * cJSON_PrintOf(const struct Of * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNo(x);
+        cJSON * j = cJSON_CreateOf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16945,35 +20464,35 @@ char * cJSON_PrintNo(const struct No * x) {
     return s;
 }
 
-void cJSON_DeleteNo(struct No * x) {
+void cJSON_DeleteOf(struct Of * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonatomic * cJSON_ParseNonatomic(const char * s) {
-    struct Nonatomic * x = NULL;
+struct Oneway * cJSON_ParseOneway(const char * s) {
+    struct Oneway * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonatomicValue(j);
+            x = cJSON_GetOnewayValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonatomic * cJSON_GetNonatomicValue(const cJSON * j) {
-    struct Nonatomic * x = NULL;
+struct Oneway * cJSON_GetOnewayValue(const cJSON * j) {
+    struct Oneway * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonatomic)))) {
-            memset(x, 0, sizeof(struct Nonatomic));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Oneway)))) {
+            memset(x, 0, sizeof(struct Oneway));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x) {
+cJSON * cJSON_CreateOneway(const struct Oneway * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -16982,10 +20501,10 @@ cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x) {
     return j;
 }
 
-char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
+char * cJSON_PrintOneway(const struct Oneway * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonatomic(x);
+        cJSON * j = cJSON_CreateOneway(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -16994,35 +20513,35 @@ char * cJSON_PrintNonatomic(const struct Nonatomic * x) {
     return s;
 }
 
-void cJSON_DeleteNonatomic(struct Nonatomic * x) {
+void cJSON_DeleteOneway(struct Oneway * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct None * cJSON_ParseNone(const char * s) {
-    struct None * x = NULL;
+struct Open * cJSON_ParseOpen(const char * s) {
+    struct Open * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNoneValue(j);
+            x = cJSON_GetOpenValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct None * cJSON_GetNoneValue(const cJSON * j) {
-    struct None * x = NULL;
+struct Open * cJSON_GetOpenValue(const cJSON * j) {
+    struct Open * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct None)))) {
-            memset(x, 0, sizeof(struct None));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Open)))) {
+            memset(x, 0, sizeof(struct Open));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNone(const struct None * x) {
+cJSON * cJSON_CreateOpen(const struct Open * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17031,10 +20550,10 @@ cJSON * cJSON_CreateNone(const struct None * x) {
     return j;
 }
 
-char * cJSON_PrintNone(const struct None * x) {
+char * cJSON_PrintOpen(const struct Open * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNone(x);
+        cJSON * j = cJSON_CreateOpen(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17043,35 +20562,35 @@ char * cJSON_PrintNone(const struct None * x) {
     return s;
 }
 
-void cJSON_DeleteNone(struct None * x) {
+void cJSON_DeleteOpen(struct Open * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonlocal * cJSON_ParseNonlocal(const char * s) {
-    struct Nonlocal * x = NULL;
+struct Optional * cJSON_ParseOptional(const char * s) {
+    struct Optional * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonlocalValue(j);
+            x = cJSON_GetOptionalValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonlocal * cJSON_GetNonlocalValue(const cJSON * j) {
-    struct Nonlocal * x = NULL;
+struct Optional * cJSON_GetOptionalValue(const cJSON * j) {
+    struct Optional * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonlocal)))) {
-            memset(x, 0, sizeof(struct Nonlocal));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Optional)))) {
+            memset(x, 0, sizeof(struct Optional));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonlocal(const struct Nonlocal * x) {
+cJSON * cJSON_CreateOptional(const struct Optional * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17080,10 +20599,10 @@ cJSON * cJSON_CreateNonlocal(const struct Nonlocal * x) {
     return j;
 }
 
-char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
+char * cJSON_PrintOptional(const struct Optional * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonlocal(x);
+        cJSON * j = cJSON_CreateOptional(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17092,35 +20611,35 @@ char * cJSON_PrintNonlocal(const struct Nonlocal * x) {
     return s;
 }
 
-void cJSON_DeleteNonlocal(struct Nonlocal * x) {
+void cJSON_DeleteOptional(struct Optional * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Nonmutating * cJSON_ParseNonmutating(const char * s) {
-    struct Nonmutating * x = NULL;
+struct Out * cJSON_ParseOut(const char * s) {
+    struct Out * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNonmutatingValue(j);
+            x = cJSON_GetOutValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Nonmutating * cJSON_GetNonmutatingValue(const cJSON * j) {
-    struct Nonmutating * x = NULL;
+struct Out * cJSON_GetOutValue(const cJSON * j) {
+    struct Out * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Nonmutating)))) {
-            memset(x, 0, sizeof(struct Nonmutating));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Out)))) {
+            memset(x, 0, sizeof(struct Out));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x) {
+cJSON * cJSON_CreateOut(const struct Out * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17129,10 +20648,10 @@ cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x) {
     return j;
 }
 
-char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
+char * cJSON_PrintOut(const struct Out * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNonmutating(x);
+        cJSON * j = cJSON_CreateOut(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17141,35 +20660,35 @@ char * cJSON_PrintNonmutating(const struct Nonmutating * x) {
     return s;
 }
 
-void cJSON_DeleteNonmutating(struct Nonmutating * x) {
+void cJSON_DeleteOut(struct Out * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NsString * cJSON_ParseNsString(const char * s) {
-    struct NsString * x = NULL;
+struct Package * cJSON_ParsePackage(const char * s) {
+    struct Package * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNsStringValue(j);
+            x = cJSON_GetPackageValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NsString * cJSON_GetNsStringValue(const cJSON * j) {
-    struct NsString * x = NULL;
+struct Package * cJSON_GetPackageValue(const cJSON * j) {
+    struct Package * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NsString)))) {
-            memset(x, 0, sizeof(struct NsString));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Package)))) {
+            memset(x, 0, sizeof(struct Package));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNsString(const struct NsString * x) {
+cJSON * cJSON_CreatePackage(const struct Package * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17178,10 +20697,10 @@ cJSON * cJSON_CreateNsString(const struct NsString * x) {
     return j;
 }
 
-char * cJSON_PrintNsString(const struct NsString * x) {
+char * cJSON_PrintPackage(const struct Package * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNsString(x);
+        cJSON * j = cJSON_CreatePackage(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17190,35 +20709,35 @@ char * cJSON_PrintNsString(const struct NsString * x) {
     return s;
 }
 
-void cJSON_DeleteNsString(struct NsString * x) {
+void cJSON_DeletePackage(struct Package * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NullClass * cJSON_ParseNullClass(const char * s) {
-    struct NullClass * x = NULL;
+struct Params * cJSON_ParseParams(const char * s) {
+    struct Params * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNullClassValue(j);
+            x = cJSON_GetParamsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NullClass * cJSON_GetNullClassValue(const cJSON * j) {
-    struct NullClass * x = NULL;
+struct Params * cJSON_GetParamsValue(const cJSON * j) {
+    struct Params * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NullClass)))) {
-            memset(x, 0, sizeof(struct NullClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Params)))) {
+            memset(x, 0, sizeof(struct Params));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNullClass(const struct NullClass * x) {
+cJSON * cJSON_CreateParams(const struct Params * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17227,10 +20746,10 @@ cJSON * cJSON_CreateNullClass(const struct NullClass * x) {
     return j;
 }
 
-char * cJSON_PrintNullClass(const struct NullClass * x) {
+char * cJSON_PrintParams(const struct Params * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNullClass(x);
+        cJSON * j = cJSON_CreateParams(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17239,35 +20758,35 @@ char * cJSON_PrintNullClass(const struct NullClass * x) {
     return s;
 }
 
-void cJSON_DeleteNullClass(struct NullClass * x) {
+void cJSON_DeleteParams(struct Params * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct NumberClass * cJSON_ParseNumberClass(const char * s) {
-    struct NumberClass * x = NULL;
+struct Pass * cJSON_ParsePass(const char * s) {
+    struct Pass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetNumberClassValue(j);
+            x = cJSON_GetPassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct NumberClass * cJSON_GetNumberClassValue(const cJSON * j) {
-    struct NumberClass * x = NULL;
+struct Pass * cJSON_GetPassValue(const cJSON * j) {
+    struct Pass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct NumberClass)))) {
-            memset(x, 0, sizeof(struct NumberClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Pass)))) {
+            memset(x, 0, sizeof(struct Pass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateNumberClass(const struct NumberClass * x) {
+cJSON * cJSON_CreatePass(const struct Pass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17276,10 +20795,10 @@ cJSON * cJSON_CreateNumberClass(const struct NumberClass * x) {
     return j;
 }
 
-char * cJSON_PrintNumberClass(const struct NumberClass * x) {
+char * cJSON_PrintPass(const struct Pass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateNumberClass(x);
+        cJSON * j = cJSON_CreatePass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17288,35 +20807,35 @@ char * cJSON_PrintNumberClass(const struct NumberClass * x) {
     return s;
 }
 
-void cJSON_DeleteNumberClass(struct NumberClass * x) {
+void cJSON_DeletePass(struct Pass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ObjectClass * cJSON_ParseObjectClass(const char * s) {
-    struct ObjectClass * x = NULL;
+struct Port * cJSON_ParsePort(const char * s) {
+    struct Port * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetObjectClassValue(j);
+            x = cJSON_GetPortValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ObjectClass * cJSON_GetObjectClassValue(const cJSON * j) {
-    struct ObjectClass * x = NULL;
+struct Port * cJSON_GetPortValue(const cJSON * j) {
+    struct Port * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ObjectClass)))) {
-            memset(x, 0, sizeof(struct ObjectClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Port)))) {
+            memset(x, 0, sizeof(struct Port));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x) {
+cJSON * cJSON_CreatePort(const struct Port * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17325,10 +20844,10 @@ cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x) {
     return j;
 }
 
-char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
+char * cJSON_PrintPort(const struct Port * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateObjectClass(x);
+        cJSON * j = cJSON_CreatePort(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17337,35 +20856,35 @@ char * cJSON_PrintObjectClass(const struct ObjectClass * x) {
     return s;
 }
 
-void cJSON_DeleteObjectClass(struct ObjectClass * x) {
+void cJSON_DeletePort(struct Port * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Of * cJSON_ParseOf(const char * s) {
-    struct Of * x = NULL;
+struct Postfix * cJSON_ParsePostfix(const char * s) {
+    struct Postfix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOfValue(j);
+            x = cJSON_GetPostfixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Of * cJSON_GetOfValue(const cJSON * j) {
-    struct Of * x = NULL;
+struct Postfix * cJSON_GetPostfixValue(const cJSON * j) {
+    struct Postfix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Of)))) {
-            memset(x, 0, sizeof(struct Of));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Postfix)))) {
+            memset(x, 0, sizeof(struct Postfix));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOf(const struct Of * x) {
+cJSON * cJSON_CreatePostfix(const struct Postfix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17374,10 +20893,10 @@ cJSON * cJSON_CreateOf(const struct Of * x) {
     return j;
 }
 
-char * cJSON_PrintOf(const struct Of * x) {
+char * cJSON_PrintPostfix(const struct Postfix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOf(x);
+        cJSON * j = cJSON_CreatePostfix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17386,35 +20905,35 @@ char * cJSON_PrintOf(const struct Of * x) {
     return s;
 }
 
-void cJSON_DeleteOf(struct Of * x) {
+void cJSON_DeletePostfix(struct Postfix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Oneway * cJSON_ParseOneway(const char * s) {
-    struct Oneway * x = NULL;
+struct Precedence * cJSON_ParsePrecedence(const char * s) {
+    struct Precedence * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOnewayValue(j);
+            x = cJSON_GetPrecedenceValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Oneway * cJSON_GetOnewayValue(const cJSON * j) {
-    struct Oneway * x = NULL;
+struct Precedence * cJSON_GetPrecedenceValue(const cJSON * j) {
+    struct Precedence * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Oneway)))) {
-            memset(x, 0, sizeof(struct Oneway));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Precedence)))) {
+            memset(x, 0, sizeof(struct Precedence));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOneway(const struct Oneway * x) {
+cJSON * cJSON_CreatePrecedence(const struct Precedence * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17423,10 +20942,10 @@ cJSON * cJSON_CreateOneway(const struct Oneway * x) {
     return j;
 }
 
-char * cJSON_PrintOneway(const struct Oneway * x) {
+char * cJSON_PrintPrecedence(const struct Precedence * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOneway(x);
+        cJSON * j = cJSON_CreatePrecedence(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17435,35 +20954,35 @@ char * cJSON_PrintOneway(const struct Oneway * x) {
     return s;
 }
 
-void cJSON_DeleteOneway(struct Oneway * x) {
+void cJSON_DeletePrecedence(struct Precedence * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Open * cJSON_ParseOpen(const char * s) {
-    struct Open * x = NULL;
+struct Prefix * cJSON_ParsePrefix(const char * s) {
+    struct Prefix * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOpenValue(j);
+            x = cJSON_GetPrefixValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Open * cJSON_GetOpenValue(const cJSON * j) {
-    struct Open * x = NULL;
+struct Prefix * cJSON_GetPrefixValue(const cJSON * j) {
+    struct Prefix * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Open)))) {
-            memset(x, 0, sizeof(struct Open));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Prefix)))) {
+            memset(x, 0, sizeof(struct Prefix));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOpen(const struct Open * x) {
+cJSON * cJSON_CreatePrefix(const struct Prefix * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17472,10 +20991,10 @@ cJSON * cJSON_CreateOpen(const struct Open * x) {
     return j;
 }
 
-char * cJSON_PrintOpen(const struct Open * x) {
+char * cJSON_PrintPrefix(const struct Prefix * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOpen(x);
+        cJSON * j = cJSON_CreatePrefix(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17484,35 +21003,35 @@ char * cJSON_PrintOpen(const struct Open * x) {
     return s;
 }
 
-void cJSON_DeleteOpen(struct Open * x) {
+void cJSON_DeletePrefix(struct Prefix * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Optional * cJSON_ParseOptional(const char * s) {
-    struct Optional * x = NULL;
+struct Print * cJSON_ParsePrint(const char * s) {
+    struct Print * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOptionalValue(j);
+            x = cJSON_GetPrintValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Optional * cJSON_GetOptionalValue(const cJSON * j) {
-    struct Optional * x = NULL;
+struct Print * cJSON_GetPrintValue(const cJSON * j) {
+    struct Print * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Optional)))) {
-            memset(x, 0, sizeof(struct Optional));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Print)))) {
+            memset(x, 0, sizeof(struct Print));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOptional(const struct Optional * x) {
+cJSON * cJSON_CreatePrint(const struct Print * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17521,10 +21040,10 @@ cJSON * cJSON_CreateOptional(const struct Optional * x) {
     return j;
 }
 
-char * cJSON_PrintOptional(const struct Optional * x) {
+char * cJSON_PrintPrint(const struct Print * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOptional(x);
+        cJSON * j = cJSON_CreatePrint(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17533,35 +21052,35 @@ char * cJSON_PrintOptional(const struct Optional * x) {
     return s;
 }
 
-void cJSON_DeleteOptional(struct Optional * x) {
+void cJSON_DeletePrint(struct Print * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Out * cJSON_ParseOut(const char * s) {
-    struct Out * x = NULL;
+struct PrintMembers * cJSON_ParsePrintMembers(const char * s) {
+    struct PrintMembers * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetOutValue(j);
+            x = cJSON_GetPrintMembersValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Out * cJSON_GetOutValue(const cJSON * j) {
-    struct Out * x = NULL;
-    if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Out)))) {
-            memset(x, 0, sizeof(struct Out));
+struct PrintMembers * cJSON_GetPrintMembersValue(const cJSON * j) {
+    struct PrintMembers * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct PrintMembers)))) {
+            memset(x, 0, sizeof(struct PrintMembers));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateOut(const struct Out * x) {
+cJSON * cJSON_CreatePrintMembers(const struct PrintMembers * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17570,10 +21089,10 @@ cJSON * cJSON_CreateOut(const struct Out * x) {
     return j;
 }
 
-char * cJSON_PrintOut(const struct Out * x) {
+char * cJSON_PrintPrintMembers(const struct PrintMembers * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateOut(x);
+        cJSON * j = cJSON_CreatePrintMembers(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17582,35 +21101,35 @@ char * cJSON_PrintOut(const struct Out * x) {
     return s;
 }
 
-void cJSON_DeleteOut(struct Out * x) {
+void cJSON_DeletePrintMembers(struct PrintMembers * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Package * cJSON_ParsePackage(const char * s) {
-    struct Package * x = NULL;
+struct Printf * cJSON_ParsePrintf(const char * s) {
+    struct Printf * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPackageValue(j);
+            x = cJSON_GetPrintfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Package * cJSON_GetPackageValue(const cJSON * j) {
-    struct Package * x = NULL;
+struct Printf * cJSON_GetPrintfValue(const cJSON * j) {
+    struct Printf * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Package)))) {
-            memset(x, 0, sizeof(struct Package));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Printf)))) {
+            memset(x, 0, sizeof(struct Printf));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePackage(const struct Package * x) {
+cJSON * cJSON_CreatePrintf(const struct Printf * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17619,10 +21138,10 @@ cJSON * cJSON_CreatePackage(const struct Package * x) {
     return j;
 }
 
-char * cJSON_PrintPackage(const struct Package * x) {
+char * cJSON_PrintPrintf(const struct Printf * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePackage(x);
+        cJSON * j = cJSON_CreatePrintf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17631,35 +21150,35 @@ char * cJSON_PrintPackage(const struct Package * x) {
     return s;
 }
 
-void cJSON_DeletePackage(struct Package * x) {
+void cJSON_DeletePrintf(struct Printf * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Params * cJSON_ParseParams(const char * s) {
-    struct Params * x = NULL;
+struct Protocol * cJSON_ParseProtocol(const char * s) {
+    struct Protocol * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetParamsValue(j);
+            x = cJSON_GetProtocolValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Params * cJSON_GetParamsValue(const cJSON * j) {
-    struct Params * x = NULL;
+struct Protocol * cJSON_GetProtocolValue(const cJSON * j) {
+    struct Protocol * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Params)))) {
-            memset(x, 0, sizeof(struct Params));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Protocol)))) {
+            memset(x, 0, sizeof(struct Protocol));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateParams(const struct Params * x) {
+cJSON * cJSON_CreateProtocol(const struct Protocol * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17668,10 +21187,10 @@ cJSON * cJSON_CreateParams(const struct Params * x) {
     return j;
 }
 
-char * cJSON_PrintParams(const struct Params * x) {
+char * cJSON_PrintProtocol(const struct Protocol * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateParams(x);
+        cJSON * j = cJSON_CreateProtocol(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17680,35 +21199,35 @@ char * cJSON_PrintParams(const struct Params * x) {
     return s;
 }
 
-void cJSON_DeleteParams(struct Params * x) {
+void cJSON_DeleteProtocol(struct Protocol * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Pass * cJSON_ParsePass(const char * s) {
-    struct Pass * x = NULL;
+struct UnionBoolBool * cJSON_ParseUnionBoolBool(const char * s) {
+    struct UnionBoolBool * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPassValue(j);
+            x = cJSON_GetUnionBoolBoolValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Pass * cJSON_GetPassValue(const cJSON * j) {
-    struct Pass * x = NULL;
+struct UnionBoolBool * cJSON_GetUnionBoolBoolValue(const cJSON * j) {
+    struct UnionBoolBool * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Pass)))) {
-            memset(x, 0, sizeof(struct Pass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct UnionBoolBool)))) {
+            memset(x, 0, sizeof(struct UnionBoolBool));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePass(const struct Pass * x) {
+cJSON * cJSON_CreateUnionBoolBool(const struct UnionBoolBool * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17717,10 +21236,10 @@ cJSON * cJSON_CreatePass(const struct Pass * x) {
     return j;
 }
 
-char * cJSON_PrintPass(const struct Pass * x) {
+char * cJSON_PrintUnionBoolBool(const struct UnionBoolBool * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePass(x);
+        cJSON * j = cJSON_CreateUnionBoolBool(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17729,35 +21248,35 @@ char * cJSON_PrintPass(const struct Pass * x) {
     return s;
 }
 
-void cJSON_DeletePass(struct Pass * x) {
+void cJSON_DeleteUnionBoolBool(struct UnionBoolBool * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Port * cJSON_ParsePort(const char * s) {
-    struct Port * x = NULL;
+struct ClassClass * cJSON_ParseClassClass(const char * s) {
+    struct ClassClass * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPortValue(j);
+            x = cJSON_GetClassClassValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Port * cJSON_GetPortValue(const cJSON * j) {
-    struct Port * x = NULL;
+struct ClassClass * cJSON_GetClassClassValue(const cJSON * j) {
+    struct ClassClass * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Port)))) {
-            memset(x, 0, sizeof(struct Port));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ClassClass)))) {
+            memset(x, 0, sizeof(struct ClassClass));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePort(const struct Port * x) {
+cJSON * cJSON_CreateClassClass(const struct ClassClass * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17766,10 +21285,10 @@ cJSON * cJSON_CreatePort(const struct Port * x) {
     return j;
 }
 
-char * cJSON_PrintPort(const struct Port * x) {
+char * cJSON_PrintClassClass(const struct ClassClass * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePort(x);
+        cJSON * j = cJSON_CreateClassClass(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17778,35 +21297,35 @@ char * cJSON_PrintPort(const struct Port * x) {
     return s;
 }
 
-void cJSON_DeletePort(struct Port * x) {
+void cJSON_DeleteClassClass(struct ClassClass * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Postfix * cJSON_ParsePostfix(const char * s) {
-    struct Postfix * x = NULL;
+struct UnionFalseFalse * cJSON_ParseUnionFalseFalse(const char * s) {
+    struct UnionFalseFalse * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPostfixValue(j);
+            x = cJSON_GetUnionFalseFalseValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Postfix * cJSON_GetPostfixValue(const cJSON * j) {
-    struct Postfix * x = NULL;
+struct UnionFalseFalse * cJSON_GetUnionFalseFalseValue(const cJSON * j) {
+    struct UnionFalseFalse * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Postfix)))) {
-            memset(x, 0, sizeof(struct Postfix));
+        if (NULL != (x = cJSON_malloc(sizeof(struct UnionFalseFalse)))) {
+            memset(x, 0, sizeof(struct UnionFalseFalse));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePostfix(const struct Postfix * x) {
+cJSON * cJSON_CreateUnionFalseFalse(const struct UnionFalseFalse * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17815,10 +21334,10 @@ cJSON * cJSON_CreatePostfix(const struct Postfix * x) {
     return j;
 }
 
-char * cJSON_PrintPostfix(const struct Postfix * x) {
+char * cJSON_PrintUnionFalseFalse(const struct UnionFalseFalse * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePostfix(x);
+        cJSON * j = cJSON_CreateUnionFalseFalse(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17827,35 +21346,35 @@ char * cJSON_PrintPostfix(const struct Postfix * x) {
     return s;
 }
 
-void cJSON_DeletePostfix(struct Postfix * x) {
+void cJSON_DeleteUnionFalseFalse(struct UnionFalseFalse * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Precedence * cJSON_ParsePrecedence(const char * s) {
-    struct Precedence * x = NULL;
+struct UnionTrueTrue * cJSON_ParseUnionTrueTrue(const char * s) {
+    struct UnionTrueTrue * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPrecedenceValue(j);
+            x = cJSON_GetUnionTrueTrueValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Precedence * cJSON_GetPrecedenceValue(const cJSON * j) {
-    struct Precedence * x = NULL;
+struct UnionTrueTrue * cJSON_GetUnionTrueTrueValue(const cJSON * j) {
+    struct UnionTrueTrue * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Precedence)))) {
-            memset(x, 0, sizeof(struct Precedence));
+        if (NULL != (x = cJSON_malloc(sizeof(struct UnionTrueTrue)))) {
+            memset(x, 0, sizeof(struct UnionTrueTrue));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePrecedence(const struct Precedence * x) {
+cJSON * cJSON_CreateUnionTrueTrue(const struct UnionTrueTrue * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17864,10 +21383,10 @@ cJSON * cJSON_CreatePrecedence(const struct Precedence * x) {
     return j;
 }
 
-char * cJSON_PrintPrecedence(const struct Precedence * x) {
+char * cJSON_PrintUnionTrueTrue(const struct UnionTrueTrue * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePrecedence(x);
+        cJSON * j = cJSON_CreateUnionTrueTrue(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17876,35 +21395,35 @@ char * cJSON_PrintPrecedence(const struct Precedence * x) {
     return s;
 }
 
-void cJSON_DeletePrecedence(struct Precedence * x) {
+void cJSON_DeleteUnionTrueTrue(struct UnionTrueTrue * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Prefix * cJSON_ParsePrefix(const char * s) {
-    struct Prefix * x = NULL;
+struct Quicktype * cJSON_ParseQuicktype(const char * s) {
+    struct Quicktype * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPrefixValue(j);
+            x = cJSON_GetQuicktypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Prefix * cJSON_GetPrefixValue(const cJSON * j) {
-    struct Prefix * x = NULL;
+struct Quicktype * cJSON_GetQuicktypeValue(const cJSON * j) {
+    struct Quicktype * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Prefix)))) {
-            memset(x, 0, sizeof(struct Prefix));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Quicktype)))) {
+            memset(x, 0, sizeof(struct Quicktype));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePrefix(const struct Prefix * x) {
+cJSON * cJSON_CreateQuicktype(const struct Quicktype * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17913,10 +21432,10 @@ cJSON * cJSON_CreatePrefix(const struct Prefix * x) {
     return j;
 }
 
-char * cJSON_PrintPrefix(const struct Prefix * x) {
+char * cJSON_PrintQuicktype(const struct Quicktype * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePrefix(x);
+        cJSON * j = cJSON_CreateQuicktype(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17925,35 +21444,35 @@ char * cJSON_PrintPrefix(const struct Prefix * x) {
     return s;
 }
 
-void cJSON_DeletePrefix(struct Prefix * x) {
+void cJSON_DeleteQuicktype(struct Quicktype * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Print * cJSON_ParsePrint(const char * s) {
-    struct Print * x = NULL;
+struct Raise * cJSON_ParseRaise(const char * s) {
+    struct Raise * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPrintValue(j);
+            x = cJSON_GetRaiseValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Print * cJSON_GetPrintValue(const cJSON * j) {
-    struct Print * x = NULL;
+struct Raise * cJSON_GetRaiseValue(const cJSON * j) {
+    struct Raise * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Print)))) {
-            memset(x, 0, sizeof(struct Print));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Raise)))) {
+            memset(x, 0, sizeof(struct Raise));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePrint(const struct Print * x) {
+cJSON * cJSON_CreateRaise(const struct Raise * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -17962,10 +21481,10 @@ cJSON * cJSON_CreatePrint(const struct Print * x) {
     return j;
 }
 
-char * cJSON_PrintPrint(const struct Print * x) {
+char * cJSON_PrintRaise(const struct Raise * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePrint(x);
+        cJSON * j = cJSON_CreateRaise(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -17974,35 +21493,35 @@ char * cJSON_PrintPrint(const struct Print * x) {
     return s;
 }
 
-void cJSON_DeletePrint(struct Print * x) {
+void cJSON_DeleteRaise(struct Raise * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Printf * cJSON_ParsePrintf(const char * s) {
-    struct Printf * x = NULL;
+struct Range * cJSON_ParseRange(const char * s) {
+    struct Range * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetPrintfValue(j);
+            x = cJSON_GetRangeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Printf * cJSON_GetPrintfValue(const cJSON * j) {
-    struct Printf * x = NULL;
+struct Range * cJSON_GetRangeValue(const cJSON * j) {
+    struct Range * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Printf)))) {
-            memset(x, 0, sizeof(struct Printf));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Range)))) {
+            memset(x, 0, sizeof(struct Range));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreatePrintf(const struct Printf * x) {
+cJSON * cJSON_CreateRange(const struct Range * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18011,10 +21530,10 @@ cJSON * cJSON_CreatePrintf(const struct Printf * x) {
     return j;
 }
 
-char * cJSON_PrintPrintf(const struct Printf * x) {
+char * cJSON_PrintRange(const struct Range * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreatePrintf(x);
+        cJSON * j = cJSON_CreateRange(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18023,35 +21542,35 @@ char * cJSON_PrintPrintf(const struct Printf * x) {
     return s;
 }
 
-void cJSON_DeletePrintf(struct Printf * x) {
+void cJSON_DeleteRange(struct Range * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Protocol * cJSON_ParseProtocol(const char * s) {
-    struct Protocol * x = NULL;
+struct Readonly * cJSON_ParseReadonly(const char * s) {
+    struct Readonly * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetProtocolValue(j);
+            x = cJSON_GetReadonlyValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Protocol * cJSON_GetProtocolValue(const cJSON * j) {
-    struct Protocol * x = NULL;
+struct Readonly * cJSON_GetReadonlyValue(const cJSON * j) {
+    struct Readonly * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Protocol)))) {
-            memset(x, 0, sizeof(struct Protocol));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Readonly)))) {
+            memset(x, 0, sizeof(struct Readonly));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateProtocol(const struct Protocol * x) {
+cJSON * cJSON_CreateReadonly(const struct Readonly * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18060,10 +21579,10 @@ cJSON * cJSON_CreateProtocol(const struct Protocol * x) {
     return j;
 }
 
-char * cJSON_PrintProtocol(const struct Protocol * x) {
+char * cJSON_PrintReadonly(const struct Readonly * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateProtocol(x);
+        cJSON * j = cJSON_CreateReadonly(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18072,35 +21591,35 @@ char * cJSON_PrintProtocol(const struct Protocol * x) {
     return s;
 }
 
-void cJSON_DeleteProtocol(struct Protocol * x) {
+void cJSON_DeleteReadonly(struct Readonly * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct UnionBoolBool * cJSON_ParseUnionBoolBool(const char * s) {
-    struct UnionBoolBool * x = NULL;
+struct Ref * cJSON_ParseRef(const char * s) {
+    struct Ref * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnionBoolBoolValue(j);
+            x = cJSON_GetRefValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct UnionBoolBool * cJSON_GetUnionBoolBoolValue(const cJSON * j) {
-    struct UnionBoolBool * x = NULL;
+struct Ref * cJSON_GetRefValue(const cJSON * j) {
+    struct Ref * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct UnionBoolBool)))) {
-            memset(x, 0, sizeof(struct UnionBoolBool));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Ref)))) {
+            memset(x, 0, sizeof(struct Ref));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnionBoolBool(const struct UnionBoolBool * x) {
+cJSON * cJSON_CreateRef(const struct Ref * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18109,10 +21628,10 @@ cJSON * cJSON_CreateUnionBoolBool(const struct UnionBoolBool * x) {
     return j;
 }
 
-char * cJSON_PrintUnionBoolBool(const struct UnionBoolBool * x) {
+char * cJSON_PrintRef(const struct Ref * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnionBoolBool(x);
+        cJSON * j = cJSON_CreateRef(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18121,35 +21640,35 @@ char * cJSON_PrintUnionBoolBool(const struct UnionBoolBool * x) {
     return s;
 }
 
-void cJSON_DeleteUnionBoolBool(struct UnionBoolBool * x) {
+void cJSON_DeleteRef(struct Ref * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ClassClass * cJSON_ParseClassClass(const char * s) {
-    struct ClassClass * x = NULL;
+struct RegExp * cJSON_ParseRegExp(const char * s) {
+    struct RegExp * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetClassClassValue(j);
+            x = cJSON_GetRegExpValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ClassClass * cJSON_GetClassClassValue(const cJSON * j) {
-    struct ClassClass * x = NULL;
+struct RegExp * cJSON_GetRegExpValue(const cJSON * j) {
+    struct RegExp * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ClassClass)))) {
-            memset(x, 0, sizeof(struct ClassClass));
+        if (NULL != (x = cJSON_malloc(sizeof(struct RegExp)))) {
+            memset(x, 0, sizeof(struct RegExp));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateClassClass(const struct ClassClass * x) {
+cJSON * cJSON_CreateRegExp(const struct RegExp * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18158,10 +21677,10 @@ cJSON * cJSON_CreateClassClass(const struct ClassClass * x) {
     return j;
 }
 
-char * cJSON_PrintClassClass(const struct ClassClass * x) {
+char * cJSON_PrintRegExp(const struct RegExp * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateClassClass(x);
+        cJSON * j = cJSON_CreateRegExp(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18170,35 +21689,35 @@ char * cJSON_PrintClassClass(const struct ClassClass * x) {
     return s;
 }
 
-void cJSON_DeleteClassClass(struct ClassClass * x) {
+void cJSON_DeleteRegExp(struct RegExp * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct UnionFalseFalse * cJSON_ParseUnionFalseFalse(const char * s) {
-    struct UnionFalseFalse * x = NULL;
+struct Repeat * cJSON_ParseRepeat(const char * s) {
+    struct Repeat * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnionFalseFalseValue(j);
+            x = cJSON_GetRepeatValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct UnionFalseFalse * cJSON_GetUnionFalseFalseValue(const cJSON * j) {
-    struct UnionFalseFalse * x = NULL;
+struct Repeat * cJSON_GetRepeatValue(const cJSON * j) {
+    struct Repeat * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct UnionFalseFalse)))) {
-            memset(x, 0, sizeof(struct UnionFalseFalse));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Repeat)))) {
+            memset(x, 0, sizeof(struct Repeat));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnionFalseFalse(const struct UnionFalseFalse * x) {
+cJSON * cJSON_CreateRepeat(const struct Repeat * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18207,10 +21726,10 @@ cJSON * cJSON_CreateUnionFalseFalse(const struct UnionFalseFalse * x) {
     return j;
 }
 
-char * cJSON_PrintUnionFalseFalse(const struct UnionFalseFalse * x) {
+char * cJSON_PrintRepeat(const struct Repeat * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnionFalseFalse(x);
+        cJSON * j = cJSON_CreateRepeat(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18219,35 +21738,35 @@ char * cJSON_PrintUnionFalseFalse(const struct UnionFalseFalse * x) {
     return s;
 }
 
-void cJSON_DeleteUnionFalseFalse(struct UnionFalseFalse * x) {
+void cJSON_DeleteRepeat(struct Repeat * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct UnionTrueTrue * cJSON_ParseUnionTrueTrue(const char * s) {
-    struct UnionTrueTrue * x = NULL;
+struct Require * cJSON_ParseRequire(const char * s) {
+    struct Require * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetUnionTrueTrueValue(j);
+            x = cJSON_GetRequireValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct UnionTrueTrue * cJSON_GetUnionTrueTrueValue(const cJSON * j) {
-    struct UnionTrueTrue * x = NULL;
+struct Require * cJSON_GetRequireValue(const cJSON * j) {
+    struct Require * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct UnionTrueTrue)))) {
-            memset(x, 0, sizeof(struct UnionTrueTrue));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Require)))) {
+            memset(x, 0, sizeof(struct Require));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateUnionTrueTrue(const struct UnionTrueTrue * x) {
+cJSON * cJSON_CreateRequire(const struct Require * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18256,10 +21775,10 @@ cJSON * cJSON_CreateUnionTrueTrue(const struct UnionTrueTrue * x) {
     return j;
 }
 
-char * cJSON_PrintUnionTrueTrue(const struct UnionTrueTrue * x) {
+char * cJSON_PrintRequire(const struct Require * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateUnionTrueTrue(x);
+        cJSON * j = cJSON_CreateRequire(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18268,35 +21787,35 @@ char * cJSON_PrintUnionTrueTrue(const struct UnionTrueTrue * x) {
     return s;
 }
 
-void cJSON_DeleteUnionTrueTrue(struct UnionTrueTrue * x) {
+void cJSON_DeleteRequire(struct Require * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Quicktype * cJSON_ParseQuicktype(const char * s) {
-    struct Quicktype * x = NULL;
+struct Required * cJSON_ParseRequired(const char * s) {
+    struct Required * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetQuicktypeValue(j);
+            x = cJSON_GetRequiredValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Quicktype * cJSON_GetQuicktypeValue(const cJSON * j) {
-    struct Quicktype * x = NULL;
+struct Required * cJSON_GetRequiredValue(const cJSON * j) {
+    struct Required * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Quicktype)))) {
-            memset(x, 0, sizeof(struct Quicktype));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Required)))) {
+            memset(x, 0, sizeof(struct Required));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateQuicktype(const struct Quicktype * x) {
+cJSON * cJSON_CreateRequired(const struct Required * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18305,10 +21824,10 @@ cJSON * cJSON_CreateQuicktype(const struct Quicktype * x) {
     return j;
 }
 
-char * cJSON_PrintQuicktype(const struct Quicktype * x) {
+char * cJSON_PrintRequired(const struct Required * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateQuicktype(x);
+        cJSON * j = cJSON_CreateRequired(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18317,35 +21836,35 @@ char * cJSON_PrintQuicktype(const struct Quicktype * x) {
     return s;
 }
 
-void cJSON_DeleteQuicktype(struct Quicktype * x) {
+void cJSON_DeleteRequired(struct Required * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Raise * cJSON_ParseRaise(const char * s) {
-    struct Raise * x = NULL;
+struct Retain * cJSON_ParseRetain(const char * s) {
+    struct Retain * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRaiseValue(j);
+            x = cJSON_GetRetainValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Raise * cJSON_GetRaiseValue(const cJSON * j) {
-    struct Raise * x = NULL;
+struct Retain * cJSON_GetRetainValue(const cJSON * j) {
+    struct Retain * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Raise)))) {
-            memset(x, 0, sizeof(struct Raise));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Retain)))) {
+            memset(x, 0, sizeof(struct Retain));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRaise(const struct Raise * x) {
+cJSON * cJSON_CreateRetain(const struct Retain * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18354,10 +21873,10 @@ cJSON * cJSON_CreateRaise(const struct Raise * x) {
     return j;
 }
 
-char * cJSON_PrintRaise(const struct Raise * x) {
+char * cJSON_PrintRetain(const struct Retain * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRaise(x);
+        cJSON * j = cJSON_CreateRetain(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18366,35 +21885,35 @@ char * cJSON_PrintRaise(const struct Raise * x) {
     return s;
 }
 
-void cJSON_DeleteRaise(struct Raise * x) {
+void cJSON_DeleteRetain(struct Retain * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Range * cJSON_ParseRange(const char * s) {
-    struct Range * x = NULL;
+struct Rethrows * cJSON_ParseRethrows(const char * s) {
+    struct Rethrows * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRangeValue(j);
+            x = cJSON_GetRethrowsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Range * cJSON_GetRangeValue(const cJSON * j) {
-    struct Range * x = NULL;
+struct Rethrows * cJSON_GetRethrowsValue(const cJSON * j) {
+    struct Rethrows * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Range)))) {
-            memset(x, 0, sizeof(struct Range));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Rethrows)))) {
+            memset(x, 0, sizeof(struct Rethrows));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRange(const struct Range * x) {
+cJSON * cJSON_CreateRethrows(const struct Rethrows * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18403,10 +21922,10 @@ cJSON * cJSON_CreateRange(const struct Range * x) {
     return j;
 }
 
-char * cJSON_PrintRange(const struct Range * x) {
+char * cJSON_PrintRethrows(const struct Rethrows * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRange(x);
+        cJSON * j = cJSON_CreateRethrows(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18415,35 +21934,35 @@ char * cJSON_PrintRange(const struct Range * x) {
     return s;
 }
 
-void cJSON_DeleteRange(struct Range * x) {
+void cJSON_DeleteRethrows(struct Rethrows * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Readonly * cJSON_ParseReadonly(const char * s) {
-    struct Readonly * x = NULL;
+struct Right * cJSON_ParseRight(const char * s) {
+    struct Right * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetReadonlyValue(j);
+            x = cJSON_GetRightValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Readonly * cJSON_GetReadonlyValue(const cJSON * j) {
-    struct Readonly * x = NULL;
+struct Right * cJSON_GetRightValue(const cJSON * j) {
+    struct Right * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Readonly)))) {
-            memset(x, 0, sizeof(struct Readonly));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Right)))) {
+            memset(x, 0, sizeof(struct Right));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateReadonly(const struct Readonly * x) {
+cJSON * cJSON_CreateRight(const struct Right * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18452,10 +21971,10 @@ cJSON * cJSON_CreateReadonly(const struct Readonly * x) {
     return j;
 }
 
-char * cJSON_PrintReadonly(const struct Readonly * x) {
+char * cJSON_PrintRight(const struct Right * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateReadonly(x);
+        cJSON * j = cJSON_CreateRight(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18464,35 +21983,35 @@ char * cJSON_PrintReadonly(const struct Readonly * x) {
     return s;
 }
 
-void cJSON_DeleteReadonly(struct Readonly * x) {
+void cJSON_DeleteRight(struct Right * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Ref * cJSON_ParseRef(const char * s) {
-    struct Ref * x = NULL;
+struct RuntimeType * cJSON_ParseRuntimeType(const char * s) {
+    struct RuntimeType * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRefValue(j);
+            x = cJSON_GetRuntimeTypeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Ref * cJSON_GetRefValue(const cJSON * j) {
-    struct Ref * x = NULL;
+struct RuntimeType * cJSON_GetRuntimeTypeValue(const cJSON * j) {
+    struct RuntimeType * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Ref)))) {
-            memset(x, 0, sizeof(struct Ref));
+        if (NULL != (x = cJSON_malloc(sizeof(struct RuntimeType)))) {
+            memset(x, 0, sizeof(struct RuntimeType));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRef(const struct Ref * x) {
+cJSON * cJSON_CreateRuntimeType(const struct RuntimeType * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18501,10 +22020,10 @@ cJSON * cJSON_CreateRef(const struct Ref * x) {
     return j;
 }
 
-char * cJSON_PrintRef(const struct Ref * x) {
+char * cJSON_PrintRuntimeType(const struct RuntimeType * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRef(x);
+        cJSON * j = cJSON_CreateRuntimeType(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18513,35 +22032,35 @@ char * cJSON_PrintRef(const struct Ref * x) {
     return s;
 }
 
-void cJSON_DeleteRef(struct Ref * x) {
+void cJSON_DeleteRuntimeType(struct RuntimeType * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Repeat * cJSON_ParseRepeat(const char * s) {
-    struct Repeat * x = NULL;
+struct S * cJSON_ParseS(const char * s) {
+    struct S * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRepeatValue(j);
+            x = cJSON_GetSValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Repeat * cJSON_GetRepeatValue(const cJSON * j) {
-    struct Repeat * x = NULL;
+struct S * cJSON_GetSValue(const cJSON * j) {
+    struct S * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Repeat)))) {
-            memset(x, 0, sizeof(struct Repeat));
+        if (NULL != (x = cJSON_malloc(sizeof(struct S)))) {
+            memset(x, 0, sizeof(struct S));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRepeat(const struct Repeat * x) {
+cJSON * cJSON_CreateS(const struct S * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18550,10 +22069,10 @@ cJSON * cJSON_CreateRepeat(const struct Repeat * x) {
     return j;
 }
 
-char * cJSON_PrintRepeat(const struct Repeat * x) {
+char * cJSON_PrintS(const struct S * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRepeat(x);
+        cJSON * j = cJSON_CreateS(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18562,35 +22081,35 @@ char * cJSON_PrintRepeat(const struct Repeat * x) {
     return s;
 }
 
-void cJSON_DeleteRepeat(struct Repeat * x) {
+void cJSON_DeleteS(struct S * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Require * cJSON_ParseRequire(const char * s) {
-    struct Require * x = NULL;
+struct Sbyte * cJSON_ParseSbyte(const char * s) {
+    struct Sbyte * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRequireValue(j);
+            x = cJSON_GetSbyteValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Require * cJSON_GetRequireValue(const cJSON * j) {
-    struct Require * x = NULL;
+struct Sbyte * cJSON_GetSbyteValue(const cJSON * j) {
+    struct Sbyte * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Require)))) {
-            memset(x, 0, sizeof(struct Require));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sbyte)))) {
+            memset(x, 0, sizeof(struct Sbyte));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRequire(const struct Require * x) {
+cJSON * cJSON_CreateSbyte(const struct Sbyte * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18599,10 +22118,10 @@ cJSON * cJSON_CreateRequire(const struct Require * x) {
     return j;
 }
 
-char * cJSON_PrintRequire(const struct Require * x) {
+char * cJSON_PrintSbyte(const struct Sbyte * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRequire(x);
+        cJSON * j = cJSON_CreateSbyte(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18611,35 +22130,35 @@ char * cJSON_PrintRequire(const struct Require * x) {
     return s;
 }
 
-void cJSON_DeleteRequire(struct Require * x) {
+void cJSON_DeleteSbyte(struct Sbyte * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Required * cJSON_ParseRequired(const char * s) {
-    struct Required * x = NULL;
+struct Sealed * cJSON_ParseSealed(const char * s) {
+    struct Sealed * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRequiredValue(j);
+            x = cJSON_GetSealedValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Required * cJSON_GetRequiredValue(const cJSON * j) {
-    struct Required * x = NULL;
+struct Sealed * cJSON_GetSealedValue(const cJSON * j) {
+    struct Sealed * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Required)))) {
-            memset(x, 0, sizeof(struct Required));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sealed)))) {
+            memset(x, 0, sizeof(struct Sealed));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRequired(const struct Required * x) {
+cJSON * cJSON_CreateSealed(const struct Sealed * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18648,10 +22167,10 @@ cJSON * cJSON_CreateRequired(const struct Required * x) {
     return j;
 }
 
-char * cJSON_PrintRequired(const struct Required * x) {
+char * cJSON_PrintSealed(const struct Sealed * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRequired(x);
+        cJSON * j = cJSON_CreateSealed(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18660,35 +22179,35 @@ char * cJSON_PrintRequired(const struct Required * x) {
     return s;
 }
 
-void cJSON_DeleteRequired(struct Required * x) {
+void cJSON_DeleteSealed(struct Sealed * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Retain * cJSON_ParseRetain(const char * s) {
-    struct Retain * x = NULL;
+struct Sel * cJSON_ParseSel(const char * s) {
+    struct Sel * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRetainValue(j);
+            x = cJSON_GetSelValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Retain * cJSON_GetRetainValue(const cJSON * j) {
-    struct Retain * x = NULL;
+struct Sel * cJSON_GetSelValue(const cJSON * j) {
+    struct Sel * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Retain)))) {
-            memset(x, 0, sizeof(struct Retain));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Sel)))) {
+            memset(x, 0, sizeof(struct Sel));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRetain(const struct Retain * x) {
+cJSON * cJSON_CreateSel(const struct Sel * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18697,10 +22216,10 @@ cJSON * cJSON_CreateRetain(const struct Retain * x) {
     return j;
 }
 
-char * cJSON_PrintRetain(const struct Retain * x) {
+char * cJSON_PrintSel(const struct Sel * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRetain(x);
+        cJSON * j = cJSON_CreateSel(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18709,35 +22228,35 @@ char * cJSON_PrintRetain(const struct Retain * x) {
     return s;
 }
 
-void cJSON_DeleteRetain(struct Retain * x) {
+void cJSON_DeleteSel(struct Sel * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Rethrows * cJSON_ParseRethrows(const char * s) {
-    struct Rethrows * x = NULL;
+struct Select * cJSON_ParseSelect(const char * s) {
+    struct Select * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRethrowsValue(j);
+            x = cJSON_GetSelectValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Rethrows * cJSON_GetRethrowsValue(const cJSON * j) {
-    struct Rethrows * x = NULL;
+struct Select * cJSON_GetSelectValue(const cJSON * j) {
+    struct Select * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Rethrows)))) {
-            memset(x, 0, sizeof(struct Rethrows));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Select)))) {
+            memset(x, 0, sizeof(struct Select));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRethrows(const struct Rethrows * x) {
+cJSON * cJSON_CreateSelect(const struct Select * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18746,10 +22265,10 @@ cJSON * cJSON_CreateRethrows(const struct Rethrows * x) {
     return j;
 }
 
-char * cJSON_PrintRethrows(const struct Rethrows * x) {
+char * cJSON_PrintSelect(const struct Select * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRethrows(x);
+        cJSON * j = cJSON_CreateSelect(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18758,35 +22277,35 @@ char * cJSON_PrintRethrows(const struct Rethrows * x) {
     return s;
 }
 
-void cJSON_DeleteRethrows(struct Rethrows * x) {
+void cJSON_DeleteSelect(struct Select * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Right * cJSON_ParseRight(const char * s) {
-    struct Right * x = NULL;
+struct Self * cJSON_ParseSelf(const char * s) {
+    struct Self * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetRightValue(j);
+            x = cJSON_GetSelfValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Right * cJSON_GetRightValue(const cJSON * j) {
-    struct Right * x = NULL;
+struct Self * cJSON_GetSelfValue(const cJSON * j) {
+    struct Self * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Right)))) {
-            memset(x, 0, sizeof(struct Right));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Self)))) {
+            memset(x, 0, sizeof(struct Self));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateRight(const struct Right * x) {
+cJSON * cJSON_CreateSelf(const struct Self * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18795,10 +22314,10 @@ cJSON * cJSON_CreateRight(const struct Right * x) {
     return j;
 }
 
-char * cJSON_PrintRight(const struct Right * x) {
+char * cJSON_PrintSelf(const struct Self * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateRight(x);
+        cJSON * j = cJSON_CreateSelf(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18807,35 +22326,35 @@ char * cJSON_PrintRight(const struct Right * x) {
     return s;
 }
 
-void cJSON_DeleteRight(struct Right * x) {
+void cJSON_DeleteSelf(struct Self * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Sbyte * cJSON_ParseSbyte(const char * s) {
-    struct Sbyte * x = NULL;
+struct Serialize * cJSON_ParseSerialize(const char * s) {
+    struct Serialize * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSbyteValue(j);
+            x = cJSON_GetSerializeValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Sbyte * cJSON_GetSbyteValue(const cJSON * j) {
-    struct Sbyte * x = NULL;
+struct Serialize * cJSON_GetSerializeValue(const cJSON * j) {
+    struct Serialize * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sbyte)))) {
-            memset(x, 0, sizeof(struct Sbyte));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Serialize)))) {
+            memset(x, 0, sizeof(struct Serialize));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSbyte(const struct Sbyte * x) {
+cJSON * cJSON_CreateSerialize(const struct Serialize * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18844,10 +22363,10 @@ cJSON * cJSON_CreateSbyte(const struct Sbyte * x) {
     return j;
 }
 
-char * cJSON_PrintSbyte(const struct Sbyte * x) {
+char * cJSON_PrintSerialize(const struct Serialize * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSbyte(x);
+        cJSON * j = cJSON_CreateSerialize(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18856,35 +22375,35 @@ char * cJSON_PrintSbyte(const struct Sbyte * x) {
     return s;
 }
 
-void cJSON_DeleteSbyte(struct Sbyte * x) {
+void cJSON_DeleteSerialize(struct Serialize * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Sealed * cJSON_ParseSealed(const char * s) {
-    struct Sealed * x = NULL;
+struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s) {
+    struct SerializerProvider * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSealedValue(j);
+            x = cJSON_GetSerializerProviderValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Sealed * cJSON_GetSealedValue(const cJSON * j) {
-    struct Sealed * x = NULL;
+struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j) {
+    struct SerializerProvider * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sealed)))) {
-            memset(x, 0, sizeof(struct Sealed));
+        if (NULL != (x = cJSON_malloc(sizeof(struct SerializerProvider)))) {
+            memset(x, 0, sizeof(struct SerializerProvider));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSealed(const struct Sealed * x) {
+cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18893,10 +22412,10 @@ cJSON * cJSON_CreateSealed(const struct Sealed * x) {
     return j;
 }
 
-char * cJSON_PrintSealed(const struct Sealed * x) {
+char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSealed(x);
+        cJSON * j = cJSON_CreateSerializerProvider(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18905,35 +22424,35 @@ char * cJSON_PrintSealed(const struct Sealed * x) {
     return s;
 }
 
-void cJSON_DeleteSealed(struct Sealed * x) {
+void cJSON_DeleteSerializerProvider(struct SerializerProvider * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Sel * cJSON_ParseSel(const char * s) {
-    struct Sel * x = NULL;
+struct Set * cJSON_ParseSet(const char * s) {
+    struct Set * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSelValue(j);
+            x = cJSON_GetSetValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Sel * cJSON_GetSelValue(const cJSON * j) {
-    struct Sel * x = NULL;
+struct Set * cJSON_GetSetValue(const cJSON * j) {
+    struct Set * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Sel)))) {
-            memset(x, 0, sizeof(struct Sel));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Set)))) {
+            memset(x, 0, sizeof(struct Set));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSel(const struct Sel * x) {
+cJSON * cJSON_CreateSet(const struct Set * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18942,10 +22461,10 @@ cJSON * cJSON_CreateSel(const struct Sel * x) {
     return j;
 }
 
-char * cJSON_PrintSel(const struct Sel * x) {
+char * cJSON_PrintSet(const struct Set * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSel(x);
+        cJSON * j = cJSON_CreateSet(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -18954,35 +22473,35 @@ char * cJSON_PrintSel(const struct Sel * x) {
     return s;
 }
 
-void cJSON_DeleteSel(struct Sel * x) {
+void cJSON_DeleteSet(struct Set * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Select * cJSON_ParseSelect(const char * s) {
-    struct Select * x = NULL;
+struct SimpleModule * cJSON_ParseSimpleModule(const char * s) {
+    struct SimpleModule * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSelectValue(j);
+            x = cJSON_GetSimpleModuleValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Select * cJSON_GetSelectValue(const cJSON * j) {
-    struct Select * x = NULL;
+struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j) {
+    struct SimpleModule * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Select)))) {
-            memset(x, 0, sizeof(struct Select));
+        if (NULL != (x = cJSON_malloc(sizeof(struct SimpleModule)))) {
+            memset(x, 0, sizeof(struct SimpleModule));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSelect(const struct Select * x) {
+cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -18991,10 +22510,10 @@ cJSON * cJSON_CreateSelect(const struct Select * x) {
     return j;
 }
 
-char * cJSON_PrintSelect(const struct Select * x) {
+char * cJSON_PrintSimpleModule(const struct SimpleModule * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSelect(x);
+        cJSON * j = cJSON_CreateSimpleModule(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19003,35 +22522,35 @@ char * cJSON_PrintSelect(const struct Select * x) {
     return s;
 }
 
-void cJSON_DeleteSelect(struct Select * x) {
+void cJSON_DeleteSimpleModule(struct SimpleModule * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Self * cJSON_ParseSelf(const char * s) {
-    struct Self * x = NULL;
+struct Stackalloc * cJSON_ParseStackalloc(const char * s) {
+    struct Stackalloc * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSelfValue(j);
+            x = cJSON_GetStackallocValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Self * cJSON_GetSelfValue(const cJSON * j) {
-    struct Self * x = NULL;
+struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j) {
+    struct Stackalloc * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Self)))) {
-            memset(x, 0, sizeof(struct Self));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Stackalloc)))) {
+            memset(x, 0, sizeof(struct Stackalloc));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSelf(const struct Self * x) {
+cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19040,10 +22559,10 @@ cJSON * cJSON_CreateSelf(const struct Self * x) {
     return j;
 }
 
-char * cJSON_PrintSelf(const struct Self * x) {
+char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSelf(x);
+        cJSON * j = cJSON_CreateStackalloc(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19052,35 +22571,35 @@ char * cJSON_PrintSelf(const struct Self * x) {
     return s;
 }
 
-void cJSON_DeleteSelf(struct Self * x) {
+void cJSON_DeleteStackalloc(struct Stackalloc * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Serialize * cJSON_ParseSerialize(const char * s) {
-    struct Serialize * x = NULL;
+struct Standards * cJSON_ParseStandards(const char * s) {
+    struct Standards * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSerializeValue(j);
+            x = cJSON_GetStandardsValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Serialize * cJSON_GetSerializeValue(const cJSON * j) {
-    struct Serialize * x = NULL;
+struct Standards * cJSON_GetStandardsValue(const cJSON * j) {
+    struct Standards * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Serialize)))) {
-            memset(x, 0, sizeof(struct Serialize));
+        if (NULL != (x = cJSON_malloc(sizeof(struct Standards)))) {
+            memset(x, 0, sizeof(struct Standards));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSerialize(const struct Serialize * x) {
+cJSON * cJSON_CreateStandards(const struct Standards * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19089,10 +22608,10 @@ cJSON * cJSON_CreateSerialize(const struct Serialize * x) {
     return j;
 }
 
-char * cJSON_PrintSerialize(const struct Serialize * x) {
+char * cJSON_PrintStandards(const struct Standards * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSerialize(x);
+        cJSON * j = cJSON_CreateStandards(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19101,35 +22620,35 @@ char * cJSON_PrintSerialize(const struct Serialize * x) {
     return s;
 }
 
-void cJSON_DeleteSerialize(struct Serialize * x) {
+void cJSON_DeleteStandards(struct Standards * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Set * cJSON_ParseSet(const char * s) {
-    struct Set * x = NULL;
+struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s) {
+    struct StdDeserializer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetSetValue(j);
+            x = cJSON_GetStdDeserializerValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Set * cJSON_GetSetValue(const cJSON * j) {
-    struct Set * x = NULL;
+struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j) {
+    struct StdDeserializer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Set)))) {
-            memset(x, 0, sizeof(struct Set));
+        if (NULL != (x = cJSON_malloc(sizeof(struct StdDeserializer)))) {
+            memset(x, 0, sizeof(struct StdDeserializer));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateSet(const struct Set * x) {
+cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19138,10 +22657,10 @@ cJSON * cJSON_CreateSet(const struct Set * x) {
     return j;
 }
 
-char * cJSON_PrintSet(const struct Set * x) {
+char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateSet(x);
+        cJSON * j = cJSON_CreateStdDeserializer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19150,35 +22669,35 @@ char * cJSON_PrintSet(const struct Set * x) {
     return s;
 }
 
-void cJSON_DeleteSet(struct Set * x) {
+void cJSON_DeleteStdDeserializer(struct StdDeserializer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct Stackalloc * cJSON_ParseStackalloc(const char * s) {
-    struct Stackalloc * x = NULL;
+struct StdSerializer * cJSON_ParseStdSerializer(const char * s) {
+    struct StdSerializer * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetStackallocValue(j);
+            x = cJSON_GetStdSerializerValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j) {
-    struct Stackalloc * x = NULL;
+struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j) {
+    struct StdSerializer * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Stackalloc)))) {
-            memset(x, 0, sizeof(struct Stackalloc));
+        if (NULL != (x = cJSON_malloc(sizeof(struct StdSerializer)))) {
+            memset(x, 0, sizeof(struct StdSerializer));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x) {
+cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19187,10 +22706,10 @@ cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x) {
     return j;
 }
 
-char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
+char * cJSON_PrintStdSerializer(const struct StdSerializer * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateStackalloc(x);
+        cJSON * j = cJSON_CreateStdSerializer(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19199,7 +22718,7 @@ char * cJSON_PrintStackalloc(const struct Stackalloc * x) {
     return s;
 }
 
-void cJSON_DeleteStackalloc(struct Stackalloc * x) {
+void cJSON_DeleteStdSerializer(struct StdSerializer * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
@@ -19553,24 +23072,171 @@ struct Throws * cJSON_ParseThrows(const char * s) {
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetThrowsValue(j);
+            x = cJSON_GetThrowsValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Throws * cJSON_GetThrowsValue(const cJSON * j) {
+    struct Throws * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Throws)))) {
+            memset(x, 0, sizeof(struct Throws));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateThrows(const struct Throws * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintThrows(const struct Throws * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateThrows(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteThrows(struct Throws * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct TimeOnly * cJSON_ParseTimeOnly(const char * s) {
+    struct TimeOnly * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetTimeOnlyValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct TimeOnly * cJSON_GetTimeOnlyValue(const cJSON * j) {
+    struct TimeOnly * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnly)))) {
+            memset(x, 0, sizeof(struct TimeOnly));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateTimeOnly(const struct TimeOnly * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintTimeOnly(const struct TimeOnly * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateTimeOnly(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteTimeOnly(struct TimeOnly * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct TimeOnlyConverter * cJSON_ParseTimeOnlyConverter(const char * s) {
+    struct TimeOnlyConverter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetTimeOnlyConverterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct TimeOnlyConverter * cJSON_GetTimeOnlyConverterValue(const cJSON * j) {
+    struct TimeOnlyConverter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct TimeOnlyConverter)))) {
+            memset(x, 0, sizeof(struct TimeOnlyConverter));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintTimeOnlyConverter(const struct TimeOnlyConverter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateTimeOnlyConverter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteTimeOnlyConverter(struct TimeOnlyConverter * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct ToJson * cJSON_ParseToJson(const char * s) {
+    struct ToJson * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetToJsonValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct Throws * cJSON_GetThrowsValue(const cJSON * j) {
-    struct Throws * x = NULL;
+struct ToJson * cJSON_GetToJsonValue(const cJSON * j) {
+    struct ToJson * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct Throws)))) {
-            memset(x, 0, sizeof(struct Throws));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ToJson)))) {
+            memset(x, 0, sizeof(struct ToJson));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateThrows(const struct Throws * x) {
+cJSON * cJSON_CreateToJson(const struct ToJson * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19579,10 +23245,10 @@ cJSON * cJSON_CreateThrows(const struct Throws * x) {
     return j;
 }
 
-char * cJSON_PrintThrows(const struct Throws * x) {
+char * cJSON_PrintToJson(const struct ToJson * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateThrows(x);
+        cJSON * j = cJSON_CreateToJson(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19591,35 +23257,35 @@ char * cJSON_PrintThrows(const struct Throws * x) {
     return s;
 }
 
-void cJSON_DeleteThrows(struct Throws * x) {
+void cJSON_DeleteToJson(struct ToJson * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
 }
 
-struct ToJson * cJSON_ParseToJson(const char * s) {
-    struct ToJson * x = NULL;
+struct ToString * cJSON_ParseToString(const char * s) {
+    struct ToString * x = NULL;
     if (NULL != s) {
         cJSON * j = cJSON_Parse(s);
         if (NULL != j) {
-            x = cJSON_GetToJsonValue(j);
+            x = cJSON_GetToStringValue(j);
             cJSON_Delete(j);
         }
     }
     return x;
 }
 
-struct ToJson * cJSON_GetToJsonValue(const cJSON * j) {
-    struct ToJson * x = NULL;
+struct ToString * cJSON_GetToStringValue(const cJSON * j) {
+    struct ToString * x = NULL;
     if (NULL != j) {
-        if (NULL != (x = cJSON_malloc(sizeof(struct ToJson)))) {
-            memset(x, 0, sizeof(struct ToJson));
+        if (NULL != (x = cJSON_malloc(sizeof(struct ToString)))) {
+            memset(x, 0, sizeof(struct ToString));
         }
     }
     return x;
 }
 
-cJSON * cJSON_CreateToJson(const struct ToJson * x) {
+cJSON * cJSON_CreateToString(const struct ToString * x) {
     cJSON * j = NULL;
     if (NULL != x) {
         if (NULL != (j = cJSON_CreateObject())) {
@@ -19628,10 +23294,10 @@ cJSON * cJSON_CreateToJson(const struct ToJson * x) {
     return j;
 }
 
-char * cJSON_PrintToJson(const struct ToJson * x) {
+char * cJSON_PrintToString(const struct ToString * x) {
     char * s = NULL;
     if (NULL != x) {
-        cJSON * j = cJSON_CreateToJson(x);
+        cJSON * j = cJSON_CreateToString(x);
         if (NULL != j) {
             s = cJSON_Print(j);
             cJSON_Delete(j);
@@ -19640,7 +23306,7 @@ char * cJSON_PrintToJson(const struct ToJson * x) {
     return s;
 }
 
-void cJSON_DeleteToJson(struct ToJson * x) {
+void cJSON_DeleteToString(struct ToString * x) {
     if (NULL != x) {
         cJSON_free(x);
     }
@@ -25330,6 +28996,153 @@ void cJSON_DeleteUshort(struct Ushort * x) {
     }
 }
 
+struct Utf8JsonReader * cJSON_ParseUtf8JsonReader(const char * s) {
+    struct Utf8JsonReader * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetUtf8JsonReaderValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Utf8JsonReader * cJSON_GetUtf8JsonReaderValue(const cJSON * j) {
+    struct Utf8JsonReader * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Utf8JsonReader)))) {
+            memset(x, 0, sizeof(struct Utf8JsonReader));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateUtf8JsonReader(const struct Utf8JsonReader * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintUtf8JsonReader(const struct Utf8JsonReader * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateUtf8JsonReader(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteUtf8JsonReader(struct Utf8JsonReader * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Utf8JsonWriter * cJSON_ParseUtf8JsonWriter(const char * s) {
+    struct Utf8JsonWriter * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetUtf8JsonWriterValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Utf8JsonWriter * cJSON_GetUtf8JsonWriterValue(const cJSON * j) {
+    struct Utf8JsonWriter * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Utf8JsonWriter)))) {
+            memset(x, 0, sizeof(struct Utf8JsonWriter));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateUtf8JsonWriter(const struct Utf8JsonWriter * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintUtf8JsonWriter(const struct Utf8JsonWriter * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateUtf8JsonWriter(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteUtf8JsonWriter(struct Utf8JsonWriter * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
+struct Uuid * cJSON_ParseUuid(const char * s) {
+    struct Uuid * x = NULL;
+    if (NULL != s) {
+        cJSON * j = cJSON_Parse(s);
+        if (NULL != j) {
+            x = cJSON_GetUuidValue(j);
+            cJSON_Delete(j);
+        }
+    }
+    return x;
+}
+
+struct Uuid * cJSON_GetUuidValue(const cJSON * j) {
+    struct Uuid * x = NULL;
+    if (NULL != j) {
+        if (NULL != (x = cJSON_malloc(sizeof(struct Uuid)))) {
+            memset(x, 0, sizeof(struct Uuid));
+        }
+    }
+    return x;
+}
+
+cJSON * cJSON_CreateUuid(const struct Uuid * x) {
+    cJSON * j = NULL;
+    if (NULL != x) {
+        if (NULL != (j = cJSON_CreateObject())) {
+        }
+    }
+    return j;
+}
+
+char * cJSON_PrintUuid(const struct Uuid * x) {
+    char * s = NULL;
+    if (NULL != x) {
+        cJSON * j = cJSON_CreateUuid(x);
+        if (NULL != j) {
+            s = cJSON_Print(j);
+            cJSON_Delete(j);
+        }
+    }
+    return s;
+}
+
+void cJSON_DeleteUuid(struct Uuid * x) {
+    if (NULL != x) {
+        cJSON_free(x);
+    }
+}
+
 struct Var * cJSON_ParseVar(const char * s) {
     struct Var * x = NULL;
     if (NULL != s) {
@@ -25905,6 +29718,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_class = cJSON_GetUnionClassValue(cJSON_GetObjectItemCaseSensitive(j, "Class"));
                 if (NULL == x->top_level_class) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "clone")) {
+                if (!cJSON_IsUnionClone(cJSON_GetObjectItemCaseSensitive(j, "clone"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->clone = cJSON_GetUnionCloneValue(cJSON_GetObjectItemCaseSensitive(j, "clone"));
+                if (NULL == x->clone) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "co_await")) {
                 if (!cJSON_IsUnionCoAwait(cJSON_GetObjectItemCaseSensitive(j, "co_await"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_co_await = cJSON_GetUnionCoAwaitValue(cJSON_GetObjectItemCaseSensitive(j, "co_await"));
@@ -25975,6 +29793,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->converter = cJSON_GetUnionConverterValue(cJSON_GetObjectItemCaseSensitive(j, "converter"));
                 if (NULL == x->converter) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "CultureInfo")) {
+                if (!cJSON_IsUnionCultureInfo(cJSON_GetObjectItemCaseSensitive(j, "CultureInfo"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->culture_info = cJSON_GetUnionCultureInfoValue(cJSON_GetObjectItemCaseSensitive(j, "CultureInfo"));
+                if (NULL == x->culture_info) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "date")) {
                 if (!cJSON_IsUnionDate(cJSON_GetObjectItemCaseSensitive(j, "date"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->date = cJSON_GetUnionDateValue(cJSON_GetObjectItemCaseSensitive(j, "date"));
@@ -25985,6 +29808,31 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->date_parse_handling = cJSON_GetUnionDateParseHandlingValue(cJSON_GetObjectItemCaseSensitive(j, "date_parse_handling"));
                 if (NULL == x->date_parse_handling) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "DateFormatter")) {
+                if (!cJSON_IsUnionDateFormatter(cJSON_GetObjectItemCaseSensitive(j, "DateFormatter"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->date_formatter = cJSON_GetUnionDateFormatterValue(cJSON_GetObjectItemCaseSensitive(j, "DateFormatter"));
+                if (NULL == x->date_formatter) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "DateOnly")) {
+                if (!cJSON_IsUnionDateOnly(cJSON_GetObjectItemCaseSensitive(j, "DateOnly"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->date_only = cJSON_GetUnionDateOnlyValue(cJSON_GetObjectItemCaseSensitive(j, "DateOnly"));
+                if (NULL == x->date_only) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "DateOnlyConverter")) {
+                if (!cJSON_IsUnionDateOnlyConverter(cJSON_GetObjectItemCaseSensitive(j, "DateOnlyConverter"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->date_only_converter = cJSON_GetUnionDateOnlyConverterValue(cJSON_GetObjectItemCaseSensitive(j, "DateOnlyConverter"));
+                if (NULL == x->date_only_converter) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "DateTime")) {
+                if (!cJSON_IsUnionDateTime(cJSON_GetObjectItemCaseSensitive(j, "DateTime"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->date_time = cJSON_GetUnionDateTimeValue(cJSON_GetObjectItemCaseSensitive(j, "DateTime"));
+                if (NULL == x->date_time) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "DateTimeStyles")) {
+                if (!cJSON_IsUnionDateTimeStyles(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->date_time_styles = cJSON_GetUnionDateTimeStylesValue(cJSON_GetObjectItemCaseSensitive(j, "DateTimeStyles"));
+                if (NULL == x->date_time_styles) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "debugger")) {
                 if (!cJSON_IsUnionDebugger(cJSON_GetObjectItemCaseSensitive(j, "debugger"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->debugger = cJSON_GetUnionDebuggerValue(cJSON_GetObjectItemCaseSensitive(j, "debugger"));
@@ -26106,6 +29954,16 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_enum = cJSON_GetUnionEnumValue(cJSON_GetObjectItemCaseSensitive(j, "enum"));
                 if (NULL == x->top_level_enum) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "EnumValues")) {
+                if (!cJSON_IsUnionEnumValues(cJSON_GetObjectItemCaseSensitive(j, "EnumValues"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->enum_values = cJSON_GetUnionEnumValuesValue(cJSON_GetObjectItemCaseSensitive(j, "EnumValues"));
+                if (NULL == x->enum_values) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "equalityContract")) {
+                if (!cJSON_IsUnionEqualityContract(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->equality_contract = cJSON_GetUnionEqualityContractValue(cJSON_GetObjectItemCaseSensitive(j, "equalityContract"));
+                if (NULL == x->equality_contract) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "event")) {
                 if (!cJSON_IsUnionEvent(cJSON_GetObjectItemCaseSensitive(j, "event"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->event = cJSON_GetUnionEventValue(cJSON_GetObjectItemCaseSensitive(j, "event"));
@@ -26201,6 +30059,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->foreach = cJSON_GetUnionForeachValue(cJSON_GetObjectItemCaseSensitive(j, "foreach"));
                 if (NULL == x->foreach) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "FormatException")) {
+                if (!cJSON_IsUnionFormatException(cJSON_GetObjectItemCaseSensitive(j, "FormatException"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->format_exception = cJSON_GetUnionFormatExceptionValue(cJSON_GetObjectItemCaseSensitive(j, "FormatException"));
+                if (NULL == x->format_exception) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "friend")) {
                 if (!cJSON_IsUnionFriend(cJSON_GetObjectItemCaseSensitive(j, "friend"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_friend = cJSON_GetUnionFriendValue(cJSON_GetObjectItemCaseSensitive(j, "friend"));
@@ -26251,6 +30114,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->guard = cJSON_GetUnionGuardValue(cJSON_GetObjectItemCaseSensitive(j, "guard"));
                 if (NULL == x->guard) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "hashCode")) {
+                if (!cJSON_IsUnionHashCode(cJSON_GetObjectItemCaseSensitive(j, "hashCode"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->hash_code = cJSON_GetUnionHashCodeValue(cJSON_GetObjectItemCaseSensitive(j, "hashCode"));
+                if (NULL == x->hash_code) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "hasOwnProperty")) {
                 if (!cJSON_IsUnionHasOwnProperty(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->has_own_property = cJSON_GetUnionHasOwnPropertyValue(cJSON_GetObjectItemCaseSensitive(j, "hasOwnProperty"));
@@ -26341,6 +30209,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->is = cJSON_GetUnionIsValue(cJSON_GetObjectItemCaseSensitive(j, "is"));
                 if (NULL == x->is) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "IsoDateTimeOffsetConverter")) {
+                if (!cJSON_IsUnionIsoDateTimeOffsetConverter(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->iso_date_time_offset_converter = cJSON_GetUnionIsoDateTimeOffsetConverterValue(cJSON_GetObjectItemCaseSensitive(j, "IsoDateTimeOffsetConverter"));
+                if (NULL == x->iso_date_time_offset_converter) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "iterable")) {
                 if (!cJSON_IsUnionIterable(cJSON_GetObjectItemCaseSensitive(j, "iterable"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->iterable = cJSON_GetUnionIterableValue(cJSON_GetObjectItemCaseSensitive(j, "iterable"));
@@ -26386,6 +30259,61 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->json_writer = cJSON_GetUnionJsonWriterValue(cJSON_GetObjectItemCaseSensitive(j, "json_writer"));
                 if (NULL == x->json_writer) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "JSONAny")) {
+                if (!cJSON_IsUnionJsonAny(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_any = cJSON_GetUnionJsonAnyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONAny"));
+                if (NULL == x->json_any) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JSONCodingKey")) {
+                if (!cJSON_IsUnionJsonCodingKey(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_coding_key = cJSON_GetUnionJsonCodingKeyValue(cJSON_GetObjectItemCaseSensitive(j, "JSONCodingKey"));
+                if (NULL == x->json_coding_key) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JSONDecoder")) {
+                if (!cJSON_IsUnionJsonDecoder(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_decoder = cJSON_GetUnionJsonDecoderValue(cJSON_GetObjectItemCaseSensitive(j, "JSONDecoder"));
+                if (NULL == x->json_decoder) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JSONEncoder")) {
+                if (!cJSON_IsUnionJsonEncoder(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_encoder = cJSON_GetUnionJsonEncoderValue(cJSON_GetObjectItemCaseSensitive(j, "JSONEncoder"));
+                if (NULL == x->json_encoder) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonException")) {
+                if (!cJSON_IsUnionJsonException(cJSON_GetObjectItemCaseSensitive(j, "JsonException"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_exception = cJSON_GetUnionJsonExceptionValue(cJSON_GetObjectItemCaseSensitive(j, "JsonException"));
+                if (NULL == x->json_exception) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonGenerator")) {
+                if (!cJSON_IsUnionJsonGenerator(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_generator = cJSON_GetUnionJsonGeneratorValue(cJSON_GetObjectItemCaseSensitive(j, "JsonGenerator"));
+                if (NULL == x->json_generator) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonNode")) {
+                if (!cJSON_IsUnionJsonNode(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_node = cJSON_GetUnionJsonNodeValue(cJSON_GetObjectItemCaseSensitive(j, "JsonNode"));
+                if (NULL == x->json_node) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JSONNull")) {
+                if (!cJSON_IsUnionJsonNull(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_null = cJSON_GetUnionJsonNullValue(cJSON_GetObjectItemCaseSensitive(j, "JSONNull"));
+                if (NULL == x->json_null) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonParser")) {
+                if (!cJSON_IsUnionJsonParser(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_parser = cJSON_GetUnionJsonParserValue(cJSON_GetObjectItemCaseSensitive(j, "JsonParser"));
+                if (NULL == x->json_parser) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonReader")) {
+                if (!cJSON_IsUnionJsonReader(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_reader = cJSON_GetUnionJsonReaderValue(cJSON_GetObjectItemCaseSensitive(j, "JsonReader"));
+                if (NULL == x->json_reader) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "JsonTokenType")) {
+                if (!cJSON_IsUnionJsonTokenType(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->json_token_type = cJSON_GetUnionJsonTokenTypeValue(cJSON_GetObjectItemCaseSensitive(j, "JsonTokenType"));
+                if (NULL == x->json_token_type) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "lambda")) {
                 if (!cJSON_IsUnionLambda(cJSON_GetObjectItemCaseSensitive(j, "lambda"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->lambda = cJSON_GetUnionLambdaValue(cJSON_GetObjectItemCaseSensitive(j, "lambda"));
@@ -26506,6 +30434,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->nonmutating = cJSON_GetUnionNonmutatingValue(cJSON_GetObjectItemCaseSensitive(j, "nonmutating"));
                 if (NULL == x->nonmutating) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "noSuchMethod")) {
+                if (!cJSON_IsUnionNoSuchMethod(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->no_such_method = cJSON_GetUnionNoSuchMethodValue(cJSON_GetObjectItemCaseSensitive(j, "noSuchMethod"));
+                if (NULL == x->no_such_method) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "not")) {
                 if (!cJSON_IsUnionNot(cJSON_GetObjectItemCaseSensitive(j, "not"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_not = cJSON_GetUnionNotValue(cJSON_GetObjectItemCaseSensitive(j, "not"));
@@ -26516,6 +30449,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_not_eq = cJSON_GetUnionNotEqValue(cJSON_GetObjectItemCaseSensitive(j, "not_eq"));
                 if (NULL == x->top_level_not_eq) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "NSError")) {
+                if (!cJSON_IsUnionNsError(cJSON_GetObjectItemCaseSensitive(j, "NSError"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->ns_error = cJSON_GetUnionNsErrorValue(cJSON_GetObjectItemCaseSensitive(j, "NSError"));
+                if (NULL == x->ns_error) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "NSString")) {
                 if (!cJSON_IsUnionNsString(cJSON_GetObjectItemCaseSensitive(j, "NSString"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->ns_string = cJSON_GetUnionNsStringValue(cJSON_GetObjectItemCaseSensitive(j, "NSString"));
@@ -26546,6 +30484,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->object = cJSON_GetUnionObjectValue(cJSON_GetObjectItemCaseSensitive(j, "object"));
                 if (NULL == x->object) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "ObjectMapper")) {
+                if (!cJSON_IsUnionObjectMapper(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->object_mapper = cJSON_GetUnionObjectMapperValue(cJSON_GetObjectItemCaseSensitive(j, "ObjectMapper"));
+                if (NULL == x->object_mapper) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "of")) {
                 if (!cJSON_IsUnionOf(cJSON_GetObjectItemCaseSensitive(j, "of"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->of = cJSON_GetUnionOfValue(cJSON_GetObjectItemCaseSensitive(j, "of"));
@@ -26636,6 +30579,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->printf = cJSON_GetUnionPrintfValue(cJSON_GetObjectItemCaseSensitive(j, "printf"));
                 if (NULL == x->printf) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "printMembers")) {
+                if (!cJSON_IsUnionPrintMembers(cJSON_GetObjectItemCaseSensitive(j, "printMembers"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->print_members = cJSON_GetUnionPrintMembersValue(cJSON_GetObjectItemCaseSensitive(j, "printMembers"));
+                if (NULL == x->print_members) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "private")) {
                 if (!cJSON_IsUnionPrivate(cJSON_GetObjectItemCaseSensitive(j, "private"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_private = cJSON_GetUnionPrivateValue(cJSON_GetObjectItemCaseSensitive(j, "private"));
@@ -26686,6 +30634,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->ref = cJSON_GetUnionRefValue(cJSON_GetObjectItemCaseSensitive(j, "ref"));
                 if (NULL == x->ref) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "RegExp")) {
+                if (!cJSON_IsUnionRegExp(cJSON_GetObjectItemCaseSensitive(j, "RegExp"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->reg_exp = cJSON_GetUnionRegExpValue(cJSON_GetObjectItemCaseSensitive(j, "RegExp"));
+                if (NULL == x->reg_exp) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "register")) {
                 if (!cJSON_IsUnionRegister(cJSON_GetObjectItemCaseSensitive(j, "register"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_register = cJSON_GetUnionRegisterValue(cJSON_GetObjectItemCaseSensitive(j, "register"));
@@ -26741,6 +30694,16 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->right = cJSON_GetUnionRightValue(cJSON_GetObjectItemCaseSensitive(j, "right"));
                 if (NULL == x->right) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "runtimeType")) {
+                if (!cJSON_IsUnionRuntimeType(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->runtime_type = cJSON_GetUnionRuntimeTypeValue(cJSON_GetObjectItemCaseSensitive(j, "runtimeType"));
+                if (NULL == x->runtime_type) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "s")) {
+                if (!cJSON_IsUnionS(cJSON_GetObjectItemCaseSensitive(j, "s"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->s = cJSON_GetUnionSValue(cJSON_GetObjectItemCaseSensitive(j, "s"));
+                if (NULL == x->s) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "sbyte")) {
                 if (!cJSON_IsUnionSbyte(cJSON_GetObjectItemCaseSensitive(j, "sbyte"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->sbyte = cJSON_GetUnionSbyteValue(cJSON_GetObjectItemCaseSensitive(j, "sbyte"));
@@ -26776,6 +30739,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->serialize = cJSON_GetUnionSerializeValue(cJSON_GetObjectItemCaseSensitive(j, "serialize"));
                 if (NULL == x->serialize) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "SerializerProvider")) {
+                if (!cJSON_IsUnionSerializerProvider(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->serializer_provider = cJSON_GetUnionSerializerProviderValue(cJSON_GetObjectItemCaseSensitive(j, "SerializerProvider"));
+                if (NULL == x->serializer_provider) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "set")) {
                 if (!cJSON_IsUnionSet(cJSON_GetObjectItemCaseSensitive(j, "set"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->set = cJSON_GetUnionSetValue(cJSON_GetObjectItemCaseSensitive(j, "set"));
@@ -26791,6 +30759,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_signed = cJSON_GetUnionSignedValue(cJSON_GetObjectItemCaseSensitive(j, "signed"));
                 if (NULL == x->top_level_signed) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "SimpleModule")) {
+                if (!cJSON_IsUnionSimpleModule(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->simple_module = cJSON_GetUnionSimpleModuleValue(cJSON_GetObjectItemCaseSensitive(j, "SimpleModule"));
+                if (NULL == x->simple_module) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "sizeof")) {
                 if (!cJSON_IsUnionSizeof(cJSON_GetObjectItemCaseSensitive(j, "sizeof"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_sizeof = cJSON_GetUnionSizeofValue(cJSON_GetObjectItemCaseSensitive(j, "sizeof"));
@@ -26801,6 +30774,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->stackalloc = cJSON_GetUnionStackallocValue(cJSON_GetObjectItemCaseSensitive(j, "stackalloc"));
                 if (NULL == x->stackalloc) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "Standards")) {
+                if (!cJSON_IsUnionStandards(cJSON_GetObjectItemCaseSensitive(j, "Standards"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->standards = cJSON_GetUnionStandardsValue(cJSON_GetObjectItemCaseSensitive(j, "Standards"));
+                if (NULL == x->standards) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "static")) {
                 if (!cJSON_IsUnionStatic(cJSON_GetObjectItemCaseSensitive(j, "static"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->top_level_static = cJSON_GetUnionStaticValue(cJSON_GetObjectItemCaseSensitive(j, "static"));
@@ -26816,6 +30794,16 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_static_cast = cJSON_GetUnionStaticCastValue(cJSON_GetObjectItemCaseSensitive(j, "static_cast"));
                 if (NULL == x->top_level_static_cast) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "StdDeserializer")) {
+                if (!cJSON_IsUnionStdDeserializer(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->std_deserializer = cJSON_GetUnionStdDeserializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdDeserializer"));
+                if (NULL == x->std_deserializer) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "StdSerializer")) {
+                if (!cJSON_IsUnionStdSerializer(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->std_serializer = cJSON_GetUnionStdSerializerValue(cJSON_GetObjectItemCaseSensitive(j, "StdSerializer"));
+                if (NULL == x->std_serializer) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "strictfp")) {
                 if (!cJSON_IsUnionStrictfp(cJSON_GetObjectItemCaseSensitive(j, "strictfp"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->strictfp = cJSON_GetUnionStrictfpValue(cJSON_GetObjectItemCaseSensitive(j, "strictfp"));
@@ -26891,6 +30879,16 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->throws = cJSON_GetUnionThrowsValue(cJSON_GetObjectItemCaseSensitive(j, "throws"));
                 if (NULL == x->throws) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "TimeOnly")) {
+                if (!cJSON_IsUnionTimeOnly(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->time_only = cJSON_GetUnionTimeOnlyValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnly"));
+                if (NULL == x->time_only) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "TimeOnlyConverter")) {
+                if (!cJSON_IsUnionTimeOnlyConverter(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->time_only_converter = cJSON_GetUnionTimeOnlyConverterValue(cJSON_GetObjectItemCaseSensitive(j, "TimeOnlyConverter"));
+                if (NULL == x->time_only_converter) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "to_json")) {
                 if (!cJSON_IsUnionToJson(cJSON_GetObjectItemCaseSensitive(j, "to_json"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->to_json = cJSON_GetUnionToJsonValue(cJSON_GetObjectItemCaseSensitive(j, "to_json"));
@@ -26901,6 +30899,11 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level = cJSON_GetUnionTopLevelValue(cJSON_GetObjectItemCaseSensitive(j, "top_level"));
                 if (NULL == x->top_level) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "toString")) {
+                if (!cJSON_IsUnionToString(cJSON_GetObjectItemCaseSensitive(j, "toString"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->to_string = cJSON_GetUnionToStringValue(cJSON_GetObjectItemCaseSensitive(j, "toString"));
+                if (NULL == x->to_string) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "transient")) {
                 if (!cJSON_IsUnionTransient(cJSON_GetObjectItemCaseSensitive(j, "transient"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->transient = cJSON_GetUnionTransientValue(cJSON_GetObjectItemCaseSensitive(j, "transient"));
@@ -27006,6 +31009,21 @@ struct TopLevel * cJSON_GetTopLevelValue(const cJSON * j) {
                 x->top_level_using = cJSON_GetUnionUsingValue(cJSON_GetObjectItemCaseSensitive(j, "using"));
                 if (NULL == x->top_level_using) { cJSON_DeleteTopLevel(x); return NULL; }
             }
+            if (cJSON_HasObjectItem(j, "Utf8JsonReader")) {
+                if (!cJSON_IsUnionUtf8JsonReader(cJSON_GetObjectItemCaseSensitive(j, "Utf8JsonReader"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->utf8_json_reader = cJSON_GetUnionUtf8JsonReaderValue(cJSON_GetObjectItemCaseSensitive(j, "Utf8JsonReader"));
+                if (NULL == x->utf8_json_reader) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "Utf8JsonWriter")) {
+                if (!cJSON_IsUnionUtf8JsonWriter(cJSON_GetObjectItemCaseSensitive(j, "Utf8JsonWriter"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->utf8_json_writer = cJSON_GetUnionUtf8JsonWriterValue(cJSON_GetObjectItemCaseSensitive(j, "Utf8JsonWriter"));
+                if (NULL == x->utf8_json_writer) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
+            if (cJSON_HasObjectItem(j, "UUID")) {
+                if (!cJSON_IsUnionUuid(cJSON_GetObjectItemCaseSensitive(j, "UUID"))) { cJSON_DeleteTopLevel(x); return NULL; }
+                x->uuid = cJSON_GetUnionUuidValue(cJSON_GetObjectItemCaseSensitive(j, "UUID"));
+                if (NULL == x->uuid) { cJSON_DeleteTopLevel(x); return NULL; }
+            }
             if (cJSON_HasObjectItem(j, "var")) {
                 if (!cJSON_IsUnionVar(cJSON_GetObjectItemCaseSensitive(j, "var"))) { cJSON_DeleteTopLevel(x); return NULL; }
                 x->var = cJSON_GetUnionVarValue(cJSON_GetObjectItemCaseSensitive(j, "var"));
@@ -27214,6 +31232,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->top_level_class) {
                 cJSON_AddItemToObject(j, "Class", cJSON_CreateUnionClass(x->top_level_class));
             }
+            if (NULL != x->clone) {
+                cJSON_AddItemToObject(j, "clone", cJSON_CreateUnionClone(x->clone));
+            }
             if (NULL != x->top_level_co_await) {
                 cJSON_AddItemToObject(j, "co_await", cJSON_CreateUnionCoAwait(x->top_level_co_await));
             }
@@ -27256,12 +31277,30 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->converter) {
                 cJSON_AddItemToObject(j, "converter", cJSON_CreateUnionConverter(x->converter));
             }
+            if (NULL != x->culture_info) {
+                cJSON_AddItemToObject(j, "CultureInfo", cJSON_CreateUnionCultureInfo(x->culture_info));
+            }
             if (NULL != x->date) {
                 cJSON_AddItemToObject(j, "date", cJSON_CreateUnionDate(x->date));
             }
             if (NULL != x->date_parse_handling) {
                 cJSON_AddItemToObject(j, "date_parse_handling", cJSON_CreateUnionDateParseHandling(x->date_parse_handling));
             }
+            if (NULL != x->date_formatter) {
+                cJSON_AddItemToObject(j, "DateFormatter", cJSON_CreateUnionDateFormatter(x->date_formatter));
+            }
+            if (NULL != x->date_only) {
+                cJSON_AddItemToObject(j, "DateOnly", cJSON_CreateUnionDateOnly(x->date_only));
+            }
+            if (NULL != x->date_only_converter) {
+                cJSON_AddItemToObject(j, "DateOnlyConverter", cJSON_CreateUnionDateOnlyConverter(x->date_only_converter));
+            }
+            if (NULL != x->date_time) {
+                cJSON_AddItemToObject(j, "DateTime", cJSON_CreateUnionDateTime(x->date_time));
+            }
+            if (NULL != x->date_time_styles) {
+                cJSON_AddItemToObject(j, "DateTimeStyles", cJSON_CreateUnionDateTimeStyles(x->date_time_styles));
+            }
             if (NULL != x->debugger) {
                 cJSON_AddItemToObject(j, "debugger", cJSON_CreateUnionDebugger(x->debugger));
             }
@@ -27334,6 +31373,12 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->top_level_enum) {
                 cJSON_AddItemToObject(j, "enum", cJSON_CreateUnionEnum(x->top_level_enum));
             }
+            if (NULL != x->enum_values) {
+                cJSON_AddItemToObject(j, "EnumValues", cJSON_CreateUnionEnumValues(x->enum_values));
+            }
+            if (NULL != x->equality_contract) {
+                cJSON_AddItemToObject(j, "equalityContract", cJSON_CreateUnionEqualityContract(x->equality_contract));
+            }
             if (NULL != x->event) {
                 cJSON_AddItemToObject(j, "event", cJSON_CreateUnionEvent(x->event));
             }
@@ -27391,6 +31436,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->foreach) {
                 cJSON_AddItemToObject(j, "foreach", cJSON_CreateUnionForeach(x->foreach));
             }
+            if (NULL != x->format_exception) {
+                cJSON_AddItemToObject(j, "FormatException", cJSON_CreateUnionFormatException(x->format_exception));
+            }
             if (NULL != x->top_level_friend) {
                 cJSON_AddItemToObject(j, "friend", cJSON_CreateUnionFriend(x->top_level_friend));
             }
@@ -27421,6 +31469,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->guard) {
                 cJSON_AddItemToObject(j, "guard", cJSON_CreateUnionGuard(x->guard));
             }
+            if (NULL != x->hash_code) {
+                cJSON_AddItemToObject(j, "hashCode", cJSON_CreateUnionHashCode(x->hash_code));
+            }
             if (NULL != x->has_own_property) {
                 cJSON_AddItemToObject(j, "hasOwnProperty", cJSON_CreateUnionHasOwnProperty(x->has_own_property));
             }
@@ -27475,6 +31526,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->is) {
                 cJSON_AddItemToObject(j, "is", cJSON_CreateUnionIs(x->is));
             }
+            if (NULL != x->iso_date_time_offset_converter) {
+                cJSON_AddItemToObject(j, "IsoDateTimeOffsetConverter", cJSON_CreateUnionIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter));
+            }
             if (NULL != x->iterable) {
                 cJSON_AddItemToObject(j, "iterable", cJSON_CreateUnionIterable(x->iterable));
             }
@@ -27502,6 +31556,39 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->json_writer) {
                 cJSON_AddItemToObject(j, "json_writer", cJSON_CreateUnionJsonWriter(x->json_writer));
             }
+            if (NULL != x->json_any) {
+                cJSON_AddItemToObject(j, "JSONAny", cJSON_CreateUnionJsonAny(x->json_any));
+            }
+            if (NULL != x->json_coding_key) {
+                cJSON_AddItemToObject(j, "JSONCodingKey", cJSON_CreateUnionJsonCodingKey(x->json_coding_key));
+            }
+            if (NULL != x->json_decoder) {
+                cJSON_AddItemToObject(j, "JSONDecoder", cJSON_CreateUnionJsonDecoder(x->json_decoder));
+            }
+            if (NULL != x->json_encoder) {
+                cJSON_AddItemToObject(j, "JSONEncoder", cJSON_CreateUnionJsonEncoder(x->json_encoder));
+            }
+            if (NULL != x->json_exception) {
+                cJSON_AddItemToObject(j, "JsonException", cJSON_CreateUnionJsonException(x->json_exception));
+            }
+            if (NULL != x->json_generator) {
+                cJSON_AddItemToObject(j, "JsonGenerator", cJSON_CreateUnionJsonGenerator(x->json_generator));
+            }
+            if (NULL != x->json_node) {
+                cJSON_AddItemToObject(j, "JsonNode", cJSON_CreateUnionJsonNode(x->json_node));
+            }
+            if (NULL != x->json_null) {
+                cJSON_AddItemToObject(j, "JSONNull", cJSON_CreateUnionJsonNull(x->json_null));
+            }
+            if (NULL != x->json_parser) {
+                cJSON_AddItemToObject(j, "JsonParser", cJSON_CreateUnionJsonParser(x->json_parser));
+            }
+            if (NULL != x->json_reader) {
+                cJSON_AddItemToObject(j, "JsonReader", cJSON_CreateUnionJsonReader(x->json_reader));
+            }
+            if (NULL != x->json_token_type) {
+                cJSON_AddItemToObject(j, "JsonTokenType", cJSON_CreateUnionJsonTokenType(x->json_token_type));
+            }
             if (NULL != x->lambda) {
                 cJSON_AddItemToObject(j, "lambda", cJSON_CreateUnionLambda(x->lambda));
             }
@@ -27574,12 +31661,18 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->nonmutating) {
                 cJSON_AddItemToObject(j, "nonmutating", cJSON_CreateUnionNonmutating(x->nonmutating));
             }
+            if (NULL != x->no_such_method) {
+                cJSON_AddItemToObject(j, "noSuchMethod", cJSON_CreateUnionNoSuchMethod(x->no_such_method));
+            }
             if (NULL != x->top_level_not) {
                 cJSON_AddItemToObject(j, "not", cJSON_CreateUnionNot(x->top_level_not));
             }
             if (NULL != x->top_level_not_eq) {
                 cJSON_AddItemToObject(j, "not_eq", cJSON_CreateUnionNotEq(x->top_level_not_eq));
             }
+            if (NULL != x->ns_error) {
+                cJSON_AddItemToObject(j, "NSError", cJSON_CreateUnionNsError(x->ns_error));
+            }
             if (NULL != x->ns_string) {
                 cJSON_AddItemToObject(j, "NSString", cJSON_CreateUnionNsString(x->ns_string));
             }
@@ -27598,6 +31691,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->object) {
                 cJSON_AddItemToObject(j, "object", cJSON_CreateUnionObject(x->object));
             }
+            if (NULL != x->object_mapper) {
+                cJSON_AddItemToObject(j, "ObjectMapper", cJSON_CreateUnionObjectMapper(x->object_mapper));
+            }
             if (NULL != x->of) {
                 cJSON_AddItemToObject(j, "of", cJSON_CreateUnionOf(x->of));
             }
@@ -27652,6 +31748,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->printf) {
                 cJSON_AddItemToObject(j, "printf", cJSON_CreateUnionPrintf(x->printf));
             }
+            if (NULL != x->print_members) {
+                cJSON_AddItemToObject(j, "printMembers", cJSON_CreateUnionPrintMembers(x->print_members));
+            }
             if (NULL != x->top_level_private) {
                 cJSON_AddItemToObject(j, "private", cJSON_CreateUnionPrivate(x->top_level_private));
             }
@@ -27682,6 +31781,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->ref) {
                 cJSON_AddItemToObject(j, "ref", cJSON_CreateUnionRef(x->ref));
             }
+            if (NULL != x->reg_exp) {
+                cJSON_AddItemToObject(j, "RegExp", cJSON_CreateUnionRegExp(x->reg_exp));
+            }
             if (NULL != x->top_level_register) {
                 cJSON_AddItemToObject(j, "register", cJSON_CreateUnionRegister(x->top_level_register));
             }
@@ -27715,6 +31817,12 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->right) {
                 cJSON_AddItemToObject(j, "right", cJSON_CreateUnionRight(x->right));
             }
+            if (NULL != x->runtime_type) {
+                cJSON_AddItemToObject(j, "runtimeType", cJSON_CreateUnionRuntimeType(x->runtime_type));
+            }
+            if (NULL != x->s) {
+                cJSON_AddItemToObject(j, "s", cJSON_CreateUnionS(x->s));
+            }
             if (NULL != x->sbyte) {
                 cJSON_AddItemToObject(j, "sbyte", cJSON_CreateUnionSbyte(x->sbyte));
             }
@@ -27736,6 +31844,9 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->serialize) {
                 cJSON_AddItemToObject(j, "serialize", cJSON_CreateUnionSerialize(x->serialize));
             }
+            if (NULL != x->serializer_provider) {
+                cJSON_AddItemToObject(j, "SerializerProvider", cJSON_CreateUnionSerializerProvider(x->serializer_provider));
+            }
             if (NULL != x->set) {
                 cJSON_AddItemToObject(j, "set", cJSON_CreateUnionSet(x->set));
             }
@@ -27745,12 +31856,18 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->top_level_signed) {
                 cJSON_AddItemToObject(j, "signed", cJSON_CreateUnionSigned(x->top_level_signed));
             }
+            if (NULL != x->simple_module) {
+                cJSON_AddItemToObject(j, "SimpleModule", cJSON_CreateUnionSimpleModule(x->simple_module));
+            }
             if (NULL != x->top_level_sizeof) {
                 cJSON_AddItemToObject(j, "sizeof", cJSON_CreateUnionSizeof(x->top_level_sizeof));
             }
             if (NULL != x->stackalloc) {
                 cJSON_AddItemToObject(j, "stackalloc", cJSON_CreateUnionStackalloc(x->stackalloc));
             }
+            if (NULL != x->standards) {
+                cJSON_AddItemToObject(j, "Standards", cJSON_CreateUnionStandards(x->standards));
+            }
             if (NULL != x->top_level_static) {
                 cJSON_AddItemToObject(j, "static", cJSON_CreateUnionStatic(x->top_level_static));
             }
@@ -27760,6 +31877,12 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->top_level_static_cast) {
                 cJSON_AddItemToObject(j, "static_cast", cJSON_CreateUnionStaticCast(x->top_level_static_cast));
             }
+            if (NULL != x->std_deserializer) {
+                cJSON_AddItemToObject(j, "StdDeserializer", cJSON_CreateUnionStdDeserializer(x->std_deserializer));
+            }
+            if (NULL != x->std_serializer) {
+                cJSON_AddItemToObject(j, "StdSerializer", cJSON_CreateUnionStdSerializer(x->std_serializer));
+            }
             if (NULL != x->strictfp) {
                 cJSON_AddItemToObject(j, "strictfp", cJSON_CreateUnionStrictfp(x->strictfp));
             }
@@ -27805,12 +31928,21 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->throws) {
                 cJSON_AddItemToObject(j, "throws", cJSON_CreateUnionThrows(x->throws));
             }
+            if (NULL != x->time_only) {
+                cJSON_AddItemToObject(j, "TimeOnly", cJSON_CreateUnionTimeOnly(x->time_only));
+            }
+            if (NULL != x->time_only_converter) {
+                cJSON_AddItemToObject(j, "TimeOnlyConverter", cJSON_CreateUnionTimeOnlyConverter(x->time_only_converter));
+            }
             if (NULL != x->to_json) {
                 cJSON_AddItemToObject(j, "to_json", cJSON_CreateUnionToJson(x->to_json));
             }
             if (NULL != x->top_level) {
                 cJSON_AddItemToObject(j, "top_level", cJSON_CreateUnionTopLevel(x->top_level));
             }
+            if (NULL != x->to_string) {
+                cJSON_AddItemToObject(j, "toString", cJSON_CreateUnionToString(x->to_string));
+            }
             if (NULL != x->transient) {
                 cJSON_AddItemToObject(j, "transient", cJSON_CreateUnionTransient(x->transient));
             }
@@ -27874,6 +32006,15 @@ cJSON * cJSON_CreateTopLevel(const struct TopLevel * x) {
             if (NULL != x->top_level_using) {
                 cJSON_AddItemToObject(j, "using", cJSON_CreateUnionUsing(x->top_level_using));
             }
+            if (NULL != x->utf8_json_reader) {
+                cJSON_AddItemToObject(j, "Utf8JsonReader", cJSON_CreateUnionUtf8JsonReader(x->utf8_json_reader));
+            }
+            if (NULL != x->utf8_json_writer) {
+                cJSON_AddItemToObject(j, "Utf8JsonWriter", cJSON_CreateUnionUtf8JsonWriter(x->utf8_json_writer));
+            }
+            if (NULL != x->uuid) {
+                cJSON_AddItemToObject(j, "UUID", cJSON_CreateUnionUuid(x->uuid));
+            }
             if (NULL != x->var) {
                 cJSON_AddItemToObject(j, "var", cJSON_CreateUnionVar(x->var));
             }
@@ -28064,6 +32205,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->top_level_class) {
             cJSON_DeleteUnionClass(x->top_level_class);
         }
+        if (NULL != x->clone) {
+            cJSON_DeleteUnionClone(x->clone);
+        }
         if (NULL != x->top_level_co_await) {
             cJSON_DeleteUnionCoAwait(x->top_level_co_await);
         }
@@ -28106,12 +32250,30 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->converter) {
             cJSON_DeleteUnionConverter(x->converter);
         }
+        if (NULL != x->culture_info) {
+            cJSON_DeleteUnionCultureInfo(x->culture_info);
+        }
         if (NULL != x->date) {
             cJSON_DeleteUnionDate(x->date);
         }
         if (NULL != x->date_parse_handling) {
             cJSON_DeleteUnionDateParseHandling(x->date_parse_handling);
         }
+        if (NULL != x->date_formatter) {
+            cJSON_DeleteUnionDateFormatter(x->date_formatter);
+        }
+        if (NULL != x->date_only) {
+            cJSON_DeleteUnionDateOnly(x->date_only);
+        }
+        if (NULL != x->date_only_converter) {
+            cJSON_DeleteUnionDateOnlyConverter(x->date_only_converter);
+        }
+        if (NULL != x->date_time) {
+            cJSON_DeleteUnionDateTime(x->date_time);
+        }
+        if (NULL != x->date_time_styles) {
+            cJSON_DeleteUnionDateTimeStyles(x->date_time_styles);
+        }
         if (NULL != x->debugger) {
             cJSON_DeleteUnionDebugger(x->debugger);
         }
@@ -28184,6 +32346,12 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->top_level_enum) {
             cJSON_DeleteUnionEnum(x->top_level_enum);
         }
+        if (NULL != x->enum_values) {
+            cJSON_DeleteUnionEnumValues(x->enum_values);
+        }
+        if (NULL != x->equality_contract) {
+            cJSON_DeleteUnionEqualityContract(x->equality_contract);
+        }
         if (NULL != x->event) {
             cJSON_DeleteUnionEvent(x->event);
         }
@@ -28241,6 +32409,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->foreach) {
             cJSON_DeleteUnionForeach(x->foreach);
         }
+        if (NULL != x->format_exception) {
+            cJSON_DeleteUnionFormatException(x->format_exception);
+        }
         if (NULL != x->top_level_friend) {
             cJSON_DeleteUnionFriend(x->top_level_friend);
         }
@@ -28271,6 +32442,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->guard) {
             cJSON_DeleteUnionGuard(x->guard);
         }
+        if (NULL != x->hash_code) {
+            cJSON_DeleteUnionHashCode(x->hash_code);
+        }
         if (NULL != x->has_own_property) {
             cJSON_DeleteUnionHasOwnProperty(x->has_own_property);
         }
@@ -28325,6 +32499,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->is) {
             cJSON_DeleteUnionIs(x->is);
         }
+        if (NULL != x->iso_date_time_offset_converter) {
+            cJSON_DeleteUnionIsoDateTimeOffsetConverter(x->iso_date_time_offset_converter);
+        }
         if (NULL != x->iterable) {
             cJSON_DeleteUnionIterable(x->iterable);
         }
@@ -28352,6 +32529,39 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->json_writer) {
             cJSON_DeleteUnionJsonWriter(x->json_writer);
         }
+        if (NULL != x->json_any) {
+            cJSON_DeleteUnionJsonAny(x->json_any);
+        }
+        if (NULL != x->json_coding_key) {
+            cJSON_DeleteUnionJsonCodingKey(x->json_coding_key);
+        }
+        if (NULL != x->json_decoder) {
+            cJSON_DeleteUnionJsonDecoder(x->json_decoder);
+        }
+        if (NULL != x->json_encoder) {
+            cJSON_DeleteUnionJsonEncoder(x->json_encoder);
+        }
+        if (NULL != x->json_exception) {
+            cJSON_DeleteUnionJsonException(x->json_exception);
+        }
+        if (NULL != x->json_generator) {
+            cJSON_DeleteUnionJsonGenerator(x->json_generator);
+        }
+        if (NULL != x->json_node) {
+            cJSON_DeleteUnionJsonNode(x->json_node);
+        }
+        if (NULL != x->json_null) {
+            cJSON_DeleteUnionJsonNull(x->json_null);
+        }
+        if (NULL != x->json_parser) {
+            cJSON_DeleteUnionJsonParser(x->json_parser);
+        }
+        if (NULL != x->json_reader) {
+            cJSON_DeleteUnionJsonReader(x->json_reader);
+        }
+        if (NULL != x->json_token_type) {
+            cJSON_DeleteUnionJsonTokenType(x->json_token_type);
+        }
         if (NULL != x->lambda) {
             cJSON_DeleteUnionLambda(x->lambda);
         }
@@ -28424,12 +32634,18 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->nonmutating) {
             cJSON_DeleteUnionNonmutating(x->nonmutating);
         }
+        if (NULL != x->no_such_method) {
+            cJSON_DeleteUnionNoSuchMethod(x->no_such_method);
+        }
         if (NULL != x->top_level_not) {
             cJSON_DeleteUnionNot(x->top_level_not);
         }
         if (NULL != x->top_level_not_eq) {
             cJSON_DeleteUnionNotEq(x->top_level_not_eq);
         }
+        if (NULL != x->ns_error) {
+            cJSON_DeleteUnionNsError(x->ns_error);
+        }
         if (NULL != x->ns_string) {
             cJSON_DeleteUnionNsString(x->ns_string);
         }
@@ -28448,6 +32664,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->object) {
             cJSON_DeleteUnionObject(x->object);
         }
+        if (NULL != x->object_mapper) {
+            cJSON_DeleteUnionObjectMapper(x->object_mapper);
+        }
         if (NULL != x->of) {
             cJSON_DeleteUnionOf(x->of);
         }
@@ -28502,6 +32721,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->printf) {
             cJSON_DeleteUnionPrintf(x->printf);
         }
+        if (NULL != x->print_members) {
+            cJSON_DeleteUnionPrintMembers(x->print_members);
+        }
         if (NULL != x->top_level_private) {
             cJSON_DeleteUnionPrivate(x->top_level_private);
         }
@@ -28532,6 +32754,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->ref) {
             cJSON_DeleteUnionRef(x->ref);
         }
+        if (NULL != x->reg_exp) {
+            cJSON_DeleteUnionRegExp(x->reg_exp);
+        }
         if (NULL != x->top_level_register) {
             cJSON_DeleteUnionRegister(x->top_level_register);
         }
@@ -28565,6 +32790,12 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->right) {
             cJSON_DeleteUnionRight(x->right);
         }
+        if (NULL != x->runtime_type) {
+            cJSON_DeleteUnionRuntimeType(x->runtime_type);
+        }
+        if (NULL != x->s) {
+            cJSON_DeleteUnionS(x->s);
+        }
         if (NULL != x->sbyte) {
             cJSON_DeleteUnionSbyte(x->sbyte);
         }
@@ -28586,6 +32817,9 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->serialize) {
             cJSON_DeleteUnionSerialize(x->serialize);
         }
+        if (NULL != x->serializer_provider) {
+            cJSON_DeleteUnionSerializerProvider(x->serializer_provider);
+        }
         if (NULL != x->set) {
             cJSON_DeleteUnionSet(x->set);
         }
@@ -28595,12 +32829,18 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->top_level_signed) {
             cJSON_DeleteUnionSigned(x->top_level_signed);
         }
+        if (NULL != x->simple_module) {
+            cJSON_DeleteUnionSimpleModule(x->simple_module);
+        }
         if (NULL != x->top_level_sizeof) {
             cJSON_DeleteUnionSizeof(x->top_level_sizeof);
         }
         if (NULL != x->stackalloc) {
             cJSON_DeleteUnionStackalloc(x->stackalloc);
         }
+        if (NULL != x->standards) {
+            cJSON_DeleteUnionStandards(x->standards);
+        }
         if (NULL != x->top_level_static) {
             cJSON_DeleteUnionStatic(x->top_level_static);
         }
@@ -28610,6 +32850,12 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->top_level_static_cast) {
             cJSON_DeleteUnionStaticCast(x->top_level_static_cast);
         }
+        if (NULL != x->std_deserializer) {
+            cJSON_DeleteUnionStdDeserializer(x->std_deserializer);
+        }
+        if (NULL != x->std_serializer) {
+            cJSON_DeleteUnionStdSerializer(x->std_serializer);
+        }
         if (NULL != x->strictfp) {
             cJSON_DeleteUnionStrictfp(x->strictfp);
         }
@@ -28655,12 +32901,21 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->throws) {
             cJSON_DeleteUnionThrows(x->throws);
         }
+        if (NULL != x->time_only) {
+            cJSON_DeleteUnionTimeOnly(x->time_only);
+        }
+        if (NULL != x->time_only_converter) {
+            cJSON_DeleteUnionTimeOnlyConverter(x->time_only_converter);
+        }
         if (NULL != x->to_json) {
             cJSON_DeleteUnionToJson(x->to_json);
         }
         if (NULL != x->top_level) {
             cJSON_DeleteUnionTopLevel(x->top_level);
         }
+        if (NULL != x->to_string) {
+            cJSON_DeleteUnionToString(x->to_string);
+        }
         if (NULL != x->transient) {
             cJSON_DeleteUnionTransient(x->transient);
         }
@@ -28724,6 +32979,15 @@ void cJSON_DeleteTopLevel(struct TopLevel * x) {
         if (NULL != x->top_level_using) {
             cJSON_DeleteUnionUsing(x->top_level_using);
         }
+        if (NULL != x->utf8_json_reader) {
+            cJSON_DeleteUnionUtf8JsonReader(x->utf8_json_reader);
+        }
+        if (NULL != x->utf8_json_writer) {
+            cJSON_DeleteUnionUtf8JsonWriter(x->utf8_json_writer);
+        }
+        if (NULL != x->uuid) {
+            cJSON_DeleteUnionUuid(x->uuid);
+        }
         if (NULL != x->var) {
             cJSON_DeleteUnionVar(x->var);
         }
diff --git a/base/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.h b/head/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.h
index 8be724b..a1ff654 100644
--- a/base/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.h
+++ b/head/schema-cjson/test/inputs/schema/keyword-unions.schema/default/TopLevel.h
@@ -225,6 +225,17 @@ struct UnionChecked {
     } value;
 };
 
+struct Clone {
+};
+
+struct UnionClone {
+    int type;
+    union {
+        double number;
+        struct Clone * clone;
+    } value;
+};
+
 struct Complex {
 };
 
@@ -291,6 +302,17 @@ struct UnionConverter {
     } value;
 };
 
+struct CultureInfo {
+};
+
+struct UnionCultureInfo {
+    int type;
+    union {
+        double number;
+        struct CultureInfo * culture_info;
+    } value;
+};
+
 struct Date {
 };
 
@@ -302,6 +324,39 @@ struct UnionDate {
     } value;
 };
 
+struct DateFormatter {
+};
+
+struct UnionDateFormatter {
+    int type;
+    union {
+        double number;
+        struct DateFormatter * date_formatter;
+    } value;
+};
+
+struct DateOnly {
+};
+
+struct UnionDateOnly {
+    int type;
+    union {
+        double number;
+        struct DateOnly * date_only;
+    } value;
+};
+
+struct DateOnlyConverter {
+};
+
+struct UnionDateOnlyConverter {
+    int type;
+    union {
+        double number;
+        struct DateOnlyConverter * date_only_converter;
+    } value;
+};
+
 struct DateParseHandling {
 };
 
@@ -313,6 +368,28 @@ struct UnionDateParseHandling {
     } value;
 };
 
+struct DateTime {
+};
+
+struct UnionDateTime {
+    int type;
+    union {
+        double number;
+        struct DateTime * date_time;
+    } value;
+};
+
+struct DateTimeStyles {
+};
+
+struct UnionDateTimeStyles {
+    int type;
+    union {
+        double number;
+        struct DateTimeStyles * date_time_styles;
+    } value;
+};
+
 struct Debugger {
 };
 
@@ -489,6 +566,28 @@ struct UnionEncodeQuickType {
     } value;
 };
 
+struct EnumValues {
+};
+
+struct UnionEnumValues {
+    int type;
+    union {
+        double number;
+        struct EnumValues * enum_values;
+    } value;
+};
+
+struct EqualityContract {
+};
+
+struct UnionEqualityContract {
+    int type;
+    union {
+        double number;
+        struct EqualityContract * equality_contract;
+    } value;
+};
+
 struct Event {
 };
 
@@ -621,6 +720,17 @@ struct UnionForeach {
     } value;
 };
 
+struct FormatException {
+};
+
+struct UnionFormatException {
+    int type;
+    union {
+        double number;
+        struct FormatException * format_exception;
+    } value;
+};
+
 struct From {
 };
 
@@ -720,6 +830,17 @@ struct UnionHasOwnProperty {
     } value;
 };
 
+struct HashCode {
+};
+
+struct UnionHashCode {
+    int type;
+    union {
+        double number;
+        struct HashCode * hash_code;
+    } value;
+};
+
 struct Id {
 };
 
@@ -874,6 +995,17 @@ struct UnionIs {
     } value;
 };
 
+struct IsoDateTimeOffsetConverter {
+};
+
+struct UnionIsoDateTimeOffsetConverter {
+    int type;
+    union {
+        double number;
+        struct IsoDateTimeOffsetConverter * iso_date_time_offset_converter;
+    } value;
+};
+
 struct Iterable {
 };
 
@@ -929,6 +1061,28 @@ struct UnionJson {
     } value;
 };
 
+struct JsonAny {
+};
+
+struct UnionJsonAny {
+    int type;
+    union {
+        double number;
+        struct JsonAny * json_any;
+    } value;
+};
+
+struct JsonCodingKey {
+};
+
+struct UnionJsonCodingKey {
+    int type;
+    union {
+        double number;
+        struct JsonCodingKey * json_coding_key;
+    } value;
+};
+
 struct JsonConverter {
 };
 
@@ -940,6 +1094,94 @@ struct UnionJsonConverter {
     } value;
 };
 
+struct JsonDecoder {
+};
+
+struct UnionJsonDecoder {
+    int type;
+    union {
+        double number;
+        struct JsonDecoder * json_decoder;
+    } value;
+};
+
+struct JsonEncoder {
+};
+
+struct UnionJsonEncoder {
+    int type;
+    union {
+        double number;
+        struct JsonEncoder * json_encoder;
+    } value;
+};
+
+struct JsonException {
+};
+
+struct UnionJsonException {
+    int type;
+    union {
+        double number;
+        struct JsonException * json_exception;
+    } value;
+};
+
+struct JsonGenerator {
+};
+
+struct UnionJsonGenerator {
+    int type;
+    union {
+        double number;
+        struct JsonGenerator * json_generator;
+    } value;
+};
+
+struct JsonNode {
+};
+
+struct UnionJsonNode {
+    int type;
+    union {
+        double number;
+        struct JsonNode * json_node;
+    } value;
+};
+
+struct JsonNull {
+};
+
+struct UnionJsonNull {
+    int type;
+    union {
+        double number;
+        struct JsonNull * json_null;
+    } value;
+};
+
+struct JsonParser {
+};
+
+struct UnionJsonParser {
+    int type;
+    union {
+        double number;
+        struct JsonParser * json_parser;
+    } value;
+};
+
+struct JsonReader {
+};
+
+struct UnionJsonReader {
+    int type;
+    union {
+        double number;
+        struct JsonReader * json_reader;
+    } value;
+};
+
 struct JsonSerializer {
 };
 
@@ -962,6 +1204,17 @@ struct UnionJsonToken {
     } value;
 };
 
+struct JsonTokenType {
+};
+
+struct UnionJsonTokenType {
+    int type;
+    union {
+        double number;
+        struct JsonTokenType * json_token_type;
+    } value;
+};
+
 struct JsonWriter {
 };
 
@@ -1116,6 +1369,17 @@ struct UnionNo {
     } value;
 };
 
+struct NoSuchMethod {
+};
+
+struct UnionNoSuchMethod {
+    int type;
+    union {
+        double number;
+        struct NoSuchMethod * no_such_method;
+    } value;
+};
+
 struct Nonatomic {
 };
 
@@ -1160,6 +1424,17 @@ struct UnionNonmutating {
     } value;
 };
 
+struct NsError {
+};
+
+struct UnionNsError {
+    int type;
+    union {
+        double number;
+        struct NsError * ns_error;
+    } value;
+};
+
 struct NsString {
 };
 
@@ -1204,6 +1479,17 @@ struct UnionObject {
     } value;
 };
 
+struct ObjectMapper {
+};
+
+struct UnionObjectMapper {
+    int type;
+    union {
+        double number;
+        struct ObjectMapper * object_mapper;
+    } value;
+};
+
 struct Of {
 };
 
@@ -1347,6 +1633,17 @@ struct UnionPrint {
     } value;
 };
 
+struct PrintMembers {
+};
+
+struct UnionPrintMembers {
+    int type;
+    union {
+        double number;
+        struct PrintMembers * print_members;
+    } value;
+};
+
 struct Printf {
 };
 
@@ -1468,6 +1765,17 @@ struct UnionRef {
     } value;
 };
 
+struct RegExp {
+};
+
+struct UnionRegExp {
+    int type;
+    union {
+        double number;
+        struct RegExp * reg_exp;
+    } value;
+};
+
 struct Repeat {
 };
 
@@ -1534,6 +1842,28 @@ struct UnionRight {
     } value;
 };
 
+struct RuntimeType {
+};
+
+struct UnionRuntimeType {
+    int type;
+    union {
+        double number;
+        struct RuntimeType * runtime_type;
+    } value;
+};
+
+struct S {
+};
+
+struct UnionS {
+    int type;
+    union {
+        double number;
+        struct S * s;
+    } value;
+};
+
 struct Sbyte {
 };
 
@@ -1600,6 +1930,17 @@ struct UnionSerialize {
     } value;
 };
 
+struct SerializerProvider {
+};
+
+struct UnionSerializerProvider {
+    int type;
+    union {
+        double number;
+        struct SerializerProvider * serializer_provider;
+    } value;
+};
+
 struct Set {
 };
 
@@ -1611,6 +1952,17 @@ struct UnionSet {
     } value;
 };
 
+struct SimpleModule {
+};
+
+struct UnionSimpleModule {
+    int type;
+    union {
+        double number;
+        struct SimpleModule * simple_module;
+    } value;
+};
+
 struct Stackalloc {
 };
 
@@ -1622,6 +1974,39 @@ struct UnionStackalloc {
     } value;
 };
 
+struct Standards {
+};
+
+struct UnionStandards {
+    int type;
+    union {
+        double number;
+        struct Standards * standards;
+    } value;
+};
+
+struct StdDeserializer {
+};
+
+struct UnionStdDeserializer {
+    int type;
+    union {
+        double number;
+        struct StdDeserializer * std_deserializer;
+    } value;
+};
+
+struct StdSerializer {
+};
+
+struct UnionStdSerializer {
+    int type;
+    union {
+        double number;
+        struct StdSerializer * std_serializer;
+    } value;
+};
+
 struct Strictfp {
 };
 
@@ -1710,6 +2095,28 @@ struct UnionThrows {
     } value;
 };
 
+struct TimeOnly {
+};
+
+struct UnionTimeOnly {
+    int type;
+    union {
+        double number;
+        struct TimeOnly * time_only;
+    } value;
+};
+
+struct TimeOnlyConverter {
+};
+
+struct UnionTimeOnlyConverter {
+    int type;
+    union {
+        double number;
+        struct TimeOnlyConverter * time_only_converter;
+    } value;
+};
+
 struct ToJson {
 };
 
@@ -1721,6 +2128,17 @@ struct UnionToJson {
     } value;
 };
 
+struct ToString {
+};
+
+struct UnionToString {
+    int type;
+    union {
+        double number;
+        struct ToString * to_string;
+    } value;
+};
+
 struct TopLevelClass {
 };
 
@@ -2997,6 +3415,39 @@ struct UnionUshort {
     } value;
 };
 
+struct Utf8JsonReader {
+};
+
+struct UnionUtf8JsonReader {
+    int type;
+    union {
+        double number;
+        struct Utf8JsonReader * utf8_json_reader;
+    } value;
+};
+
+struct Utf8JsonWriter {
+};
+
+struct UnionUtf8JsonWriter {
+    int type;
+    union {
+        double number;
+        struct Utf8JsonWriter * utf8_json_writer;
+    } value;
+};
+
+struct Uuid {
+};
+
+struct UnionUuid {
+    int type;
+    union {
+        double number;
+        struct Uuid * uuid;
+    } value;
+};
+
 struct Var {
 };
 
@@ -3118,6 +3569,7 @@ struct TopLevel {
     struct UnionChecked * checked;
     struct UnionClassUnion * purple_class;
     struct UnionClass * top_level_class;
+    struct UnionClone * clone;
     struct UnionCoAwait * top_level_co_await;
     struct UnionCoReturn * top_level_co_return;
     struct UnionCoYield * top_level_co_yield;
@@ -3132,8 +3584,14 @@ struct TopLevel {
     struct UnionConvenience * convenience;
     struct UnionConvert * convert;
     struct UnionConverter * converter;
+    struct UnionCultureInfo * culture_info;
     struct UnionDate * date;
     struct UnionDateParseHandling * date_parse_handling;
+    struct UnionDateFormatter * date_formatter;
+    struct UnionDateOnly * date_only;
+    struct UnionDateOnlyConverter * date_only_converter;
+    struct UnionDateTime * date_time;
+    struct UnionDateTimeStyles * date_time_styles;
     struct UnionDebugger * debugger;
     struct UnionDecimal * decimal;
     struct UnionDeclare * declare;
@@ -3158,6 +3616,8 @@ struct TopLevel {
     struct UnionElse * top_level_else;
     struct UnionEncodeQuickType * encode_quick_type;
     struct UnionEnum * top_level_enum;
+    struct UnionEnumValues * enum_values;
+    struct UnionEqualityContract * equality_contract;
     struct UnionEvent * event;
     struct UnionExcept * except;
     struct UnionException * exception;
@@ -3177,6 +3637,7 @@ struct TopLevel {
     struct UnionFloat * top_level_float;
     struct UnionFor * top_level_for;
     struct UnionForeach * foreach;
+    struct UnionFormatException * format_exception;
     struct UnionFriend * top_level_friend;
     struct UnionFrom * from;
     struct UnionFromJson * from_json;
@@ -3187,6 +3648,7 @@ struct TopLevel {
     struct UnionGo * go;
     struct UnionGoto * top_level_goto;
     struct UnionGuard * guard;
+    struct UnionHashCode * hash_code;
     struct UnionHasOwnProperty * has_own_property;
     struct UnionId * id;
     struct UnionIf * top_level_if;
@@ -3205,6 +3667,7 @@ struct TopLevel {
     struct UnionInterface * interface;
     struct UnionInternal * internal;
     struct UnionIs * is;
+    struct UnionIsoDateTimeOffsetConverter * iso_date_time_offset_converter;
     struct UnionIterable * iterable;
     struct UnionJdec * jdec;
     struct UnionJenc * jenc;
@@ -3214,6 +3677,17 @@ struct TopLevel {
     struct UnionJsonSerializer * json_serializer;
     struct UnionJsonToken * json_token;
     struct UnionJsonWriter * json_writer;
+    struct UnionJsonAny * json_any;
+    struct UnionJsonCodingKey * json_coding_key;
+    struct UnionJsonDecoder * json_decoder;
+    struct UnionJsonEncoder * json_encoder;
+    struct UnionJsonException * json_exception;
+    struct UnionJsonGenerator * json_generator;
+    struct UnionJsonNode * json_node;
+    struct UnionJsonNull * json_null;
+    struct UnionJsonParser * json_parser;
+    struct UnionJsonReader * json_reader;
+    struct UnionJsonTokenType * json_token_type;
     struct UnionLambda * lambda;
     struct UnionLazy * lazy;
     struct UnionLeft * left;
@@ -3238,14 +3712,17 @@ struct TopLevel {
     struct UnionNone * none;
     struct UnionNonlocal * nonlocal;
     struct UnionNonmutating * nonmutating;
+    struct UnionNoSuchMethod * no_such_method;
     struct UnionNot * top_level_not;
     struct UnionNotEq * top_level_not_eq;
+    struct UnionNsError * ns_error;
     struct UnionNsString * ns_string;
     struct UnionNull * null;
     struct UnionNullUnion * top_level_null;
     struct UnionNullptr * top_level_nullptr;
     struct UnionNumber * number;
     struct UnionObject * object;
+    struct UnionObjectMapper * object_mapper;
     struct UnionOf * of;
     struct UnionOneway * oneway;
     struct UnionOpen * open;
@@ -3264,6 +3741,7 @@ struct TopLevel {
     struct UnionPrefix * prefix;
     struct UnionPrint * print;
     struct UnionPrintf * printf;
+    struct UnionPrintMembers * print_members;
     struct UnionPrivate * top_level_private;
     struct UnionProtected * top_level_protected;
     struct UnionProtocol * protocol;
@@ -3274,6 +3752,7 @@ struct TopLevel {
     struct UnionRange * range;
     struct UnionReadonly * readonly;
     struct UnionRef * ref;
+    struct UnionRegExp * reg_exp;
     struct UnionRegister * top_level_register;
     struct UnionReinterpretCast * top_level_reinterpret_cast;
     struct UnionRepeat * repeat;
@@ -3285,6 +3764,8 @@ struct TopLevel {
     struct UnionRethrows * rethrows;
     struct UnionReturn * top_level_return;
     struct UnionRight * right;
+    struct UnionRuntimeType * runtime_type;
+    struct UnionS * s;
     struct UnionSbyte * sbyte;
     struct UnionSealed * sealed;
     struct UnionSel * sel;
@@ -3292,14 +3773,19 @@ struct TopLevel {
     struct UnionSelf * self;
     struct UnionSelfUnion * top_level_self;
     struct UnionSerialize * serialize;
+    struct UnionSerializerProvider * serializer_provider;
     struct UnionSet * set;
     struct UnionShort * top_level_short;
     struct UnionSigned * top_level_signed;
+    struct UnionSimpleModule * simple_module;
     struct UnionSizeof * top_level_sizeof;
     struct UnionStackalloc * stackalloc;
+    struct UnionStandards * standards;
     struct UnionStatic * top_level_static;
     struct UnionStaticAssert * top_level_static_assert;
     struct UnionStaticCast * top_level_static_cast;
+    struct UnionStdDeserializer * std_deserializer;
+    struct UnionStdSerializer * std_serializer;
     struct UnionStrictfp * strictfp;
     struct UnionString * string;
     struct UnionStruct * top_level_struct;
@@ -3315,8 +3801,11 @@ struct TopLevel {
     struct UnionThreadLocal * top_level_thread_local;
     struct UnionThrow * top_level_throw;
     struct UnionThrows * throws;
+    struct UnionTimeOnly * time_only;
+    struct UnionTimeOnlyConverter * time_only_converter;
     struct UnionToJson * to_json;
     struct UnionTopLevel * top_level;
+    struct UnionToString * to_string;
     struct UnionTransient * transient;
     struct UnionTrue * top_level_true;
     struct UnionTrueUnion * purple_true;
@@ -3338,6 +3827,9 @@ struct TopLevel {
     struct UnionUnsigned * top_level_unsigned;
     struct UnionUshort * ushort;
     struct UnionUsing * top_level_using;
+    struct UnionUtf8JsonReader * utf8_json_reader;
+    struct UnionUtf8JsonWriter * utf8_json_writer;
+    struct UnionUuid * uuid;
     struct UnionVar * var;
     struct UnionVirtual * top_level_virtual;
     struct UnionVoid * top_level_void;
@@ -3473,6 +3965,13 @@ void cJSON_DeleteUnionChecked(struct UnionChecked * x);
 struct UnionChecked * cJSON_ParseUnionChecked(const char * s);
 char * cJSON_PrintUnionChecked(const struct UnionChecked * x);
 
+#define cJSON_IsUnionClone(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionClone * cJSON_GetUnionCloneValue(const cJSON * j);
+cJSON * cJSON_CreateUnionClone(const struct UnionClone * x);
+void cJSON_DeleteUnionClone(struct UnionClone * x);
+struct UnionClone * cJSON_ParseUnionClone(const char * s);
+char * cJSON_PrintUnionClone(const struct UnionClone * x);
+
 #define cJSON_IsUnionComplex(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionComplex * cJSON_GetUnionComplexValue(const cJSON * j);
 cJSON * cJSON_CreateUnionComplex(const struct UnionComplex * x);
@@ -3515,6 +4014,13 @@ void cJSON_DeleteUnionConverter(struct UnionConverter * x);
 struct UnionConverter * cJSON_ParseUnionConverter(const char * s);
 char * cJSON_PrintUnionConverter(const struct UnionConverter * x);
 
+#define cJSON_IsUnionCultureInfo(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionCultureInfo * cJSON_GetUnionCultureInfoValue(const cJSON * j);
+cJSON * cJSON_CreateUnionCultureInfo(const struct UnionCultureInfo * x);
+void cJSON_DeleteUnionCultureInfo(struct UnionCultureInfo * x);
+struct UnionCultureInfo * cJSON_ParseUnionCultureInfo(const char * s);
+char * cJSON_PrintUnionCultureInfo(const struct UnionCultureInfo * x);
+
 #define cJSON_IsUnionDate(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionDate * cJSON_GetUnionDateValue(const cJSON * j);
 cJSON * cJSON_CreateUnionDate(const struct UnionDate * x);
@@ -3522,6 +4028,27 @@ void cJSON_DeleteUnionDate(struct UnionDate * x);
 struct UnionDate * cJSON_ParseUnionDate(const char * s);
 char * cJSON_PrintUnionDate(const struct UnionDate * x);
 
+#define cJSON_IsUnionDateFormatter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionDateFormatter * cJSON_GetUnionDateFormatterValue(const cJSON * j);
+cJSON * cJSON_CreateUnionDateFormatter(const struct UnionDateFormatter * x);
+void cJSON_DeleteUnionDateFormatter(struct UnionDateFormatter * x);
+struct UnionDateFormatter * cJSON_ParseUnionDateFormatter(const char * s);
+char * cJSON_PrintUnionDateFormatter(const struct UnionDateFormatter * x);
+
+#define cJSON_IsUnionDateOnly(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionDateOnly * cJSON_GetUnionDateOnlyValue(const cJSON * j);
+cJSON * cJSON_CreateUnionDateOnly(const struct UnionDateOnly * x);
+void cJSON_DeleteUnionDateOnly(struct UnionDateOnly * x);
+struct UnionDateOnly * cJSON_ParseUnionDateOnly(const char * s);
+char * cJSON_PrintUnionDateOnly(const struct UnionDateOnly * x);
+
+#define cJSON_IsUnionDateOnlyConverter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionDateOnlyConverter * cJSON_GetUnionDateOnlyConverterValue(const cJSON * j);
+cJSON * cJSON_CreateUnionDateOnlyConverter(const struct UnionDateOnlyConverter * x);
+void cJSON_DeleteUnionDateOnlyConverter(struct UnionDateOnlyConverter * x);
+struct UnionDateOnlyConverter * cJSON_ParseUnionDateOnlyConverter(const char * s);
+char * cJSON_PrintUnionDateOnlyConverter(const struct UnionDateOnlyConverter * x);
+
 #define cJSON_IsUnionDateParseHandling(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionDateParseHandling * cJSON_GetUnionDateParseHandlingValue(const cJSON * j);
 cJSON * cJSON_CreateUnionDateParseHandling(const struct UnionDateParseHandling * x);
@@ -3529,6 +4056,20 @@ void cJSON_DeleteUnionDateParseHandling(struct UnionDateParseHandling * x);
 struct UnionDateParseHandling * cJSON_ParseUnionDateParseHandling(const char * s);
 char * cJSON_PrintUnionDateParseHandling(const struct UnionDateParseHandling * x);
 
+#define cJSON_IsUnionDateTime(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionDateTime * cJSON_GetUnionDateTimeValue(const cJSON * j);
+cJSON * cJSON_CreateUnionDateTime(const struct UnionDateTime * x);
+void cJSON_DeleteUnionDateTime(struct UnionDateTime * x);
+struct UnionDateTime * cJSON_ParseUnionDateTime(const char * s);
+char * cJSON_PrintUnionDateTime(const struct UnionDateTime * x);
+
+#define cJSON_IsUnionDateTimeStyles(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionDateTimeStyles * cJSON_GetUnionDateTimeStylesValue(const cJSON * j);
+cJSON * cJSON_CreateUnionDateTimeStyles(const struct UnionDateTimeStyles * x);
+void cJSON_DeleteUnionDateTimeStyles(struct UnionDateTimeStyles * x);
+struct UnionDateTimeStyles * cJSON_ParseUnionDateTimeStyles(const char * s);
+char * cJSON_PrintUnionDateTimeStyles(const struct UnionDateTimeStyles * x);
+
 #define cJSON_IsUnionDebugger(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionDebugger * cJSON_GetUnionDebuggerValue(const cJSON * j);
 cJSON * cJSON_CreateUnionDebugger(const struct UnionDebugger * x);
@@ -3641,6 +4182,20 @@ void cJSON_DeleteUnionEncodeQuickType(struct UnionEncodeQuickType * x);
 struct UnionEncodeQuickType * cJSON_ParseUnionEncodeQuickType(const char * s);
 char * cJSON_PrintUnionEncodeQuickType(const struct UnionEncodeQuickType * x);
 
+#define cJSON_IsUnionEnumValues(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionEnumValues * cJSON_GetUnionEnumValuesValue(const cJSON * j);
+cJSON * cJSON_CreateUnionEnumValues(const struct UnionEnumValues * x);
+void cJSON_DeleteUnionEnumValues(struct UnionEnumValues * x);
+struct UnionEnumValues * cJSON_ParseUnionEnumValues(const char * s);
+char * cJSON_PrintUnionEnumValues(const struct UnionEnumValues * x);
+
+#define cJSON_IsUnionEqualityContract(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionEqualityContract * cJSON_GetUnionEqualityContractValue(const cJSON * j);
+cJSON * cJSON_CreateUnionEqualityContract(const struct UnionEqualityContract * x);
+void cJSON_DeleteUnionEqualityContract(struct UnionEqualityContract * x);
+struct UnionEqualityContract * cJSON_ParseUnionEqualityContract(const char * s);
+char * cJSON_PrintUnionEqualityContract(const struct UnionEqualityContract * x);
+
 #define cJSON_IsUnionEvent(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionEvent * cJSON_GetUnionEventValue(const cJSON * j);
 cJSON * cJSON_CreateUnionEvent(const struct UnionEvent * x);
@@ -3725,6 +4280,13 @@ void cJSON_DeleteUnionForeach(struct UnionForeach * x);
 struct UnionForeach * cJSON_ParseUnionForeach(const char * s);
 char * cJSON_PrintUnionForeach(const struct UnionForeach * x);
 
+#define cJSON_IsUnionFormatException(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionFormatException * cJSON_GetUnionFormatExceptionValue(const cJSON * j);
+cJSON * cJSON_CreateUnionFormatException(const struct UnionFormatException * x);
+void cJSON_DeleteUnionFormatException(struct UnionFormatException * x);
+struct UnionFormatException * cJSON_ParseUnionFormatException(const char * s);
+char * cJSON_PrintUnionFormatException(const struct UnionFormatException * x);
+
 #define cJSON_IsUnionFrom(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionFrom * cJSON_GetUnionFromValue(const cJSON * j);
 cJSON * cJSON_CreateUnionFrom(const struct UnionFrom * x);
@@ -3788,6 +4350,13 @@ void cJSON_DeleteUnionHasOwnProperty(struct UnionHasOwnProperty * x);
 struct UnionHasOwnProperty * cJSON_ParseUnionHasOwnProperty(const char * s);
 char * cJSON_PrintUnionHasOwnProperty(const struct UnionHasOwnProperty * x);
 
+#define cJSON_IsUnionHashCode(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionHashCode * cJSON_GetUnionHashCodeValue(const cJSON * j);
+cJSON * cJSON_CreateUnionHashCode(const struct UnionHashCode * x);
+void cJSON_DeleteUnionHashCode(struct UnionHashCode * x);
+struct UnionHashCode * cJSON_ParseUnionHashCode(const char * s);
+char * cJSON_PrintUnionHashCode(const struct UnionHashCode * x);
+
 #define cJSON_IsUnionId(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionId * cJSON_GetUnionIdValue(const cJSON * j);
 cJSON * cJSON_CreateUnionId(const struct UnionId * x);
@@ -3886,6 +4455,13 @@ void cJSON_DeleteUnionIs(struct UnionIs * x);
 struct UnionIs * cJSON_ParseUnionIs(const char * s);
 char * cJSON_PrintUnionIs(const struct UnionIs * x);
 
+#define cJSON_IsUnionIsoDateTimeOffsetConverter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionIsoDateTimeOffsetConverter * cJSON_GetUnionIsoDateTimeOffsetConverterValue(const cJSON * j);
+cJSON * cJSON_CreateUnionIsoDateTimeOffsetConverter(const struct UnionIsoDateTimeOffsetConverter * x);
+void cJSON_DeleteUnionIsoDateTimeOffsetConverter(struct UnionIsoDateTimeOffsetConverter * x);
+struct UnionIsoDateTimeOffsetConverter * cJSON_ParseUnionIsoDateTimeOffsetConverter(const char * s);
+char * cJSON_PrintUnionIsoDateTimeOffsetConverter(const struct UnionIsoDateTimeOffsetConverter * x);
+
 #define cJSON_IsUnionIterable(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionIterable * cJSON_GetUnionIterableValue(const cJSON * j);
 cJSON * cJSON_CreateUnionIterable(const struct UnionIterable * x);
@@ -3921,6 +4497,20 @@ void cJSON_DeleteUnionJson(struct UnionJson * x);
 struct UnionJson * cJSON_ParseUnionJson(const char * s);
 char * cJSON_PrintUnionJson(const struct UnionJson * x);
 
+#define cJSON_IsUnionJsonAny(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonAny * cJSON_GetUnionJsonAnyValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonAny(const struct UnionJsonAny * x);
+void cJSON_DeleteUnionJsonAny(struct UnionJsonAny * x);
+struct UnionJsonAny * cJSON_ParseUnionJsonAny(const char * s);
+char * cJSON_PrintUnionJsonAny(const struct UnionJsonAny * x);
+
+#define cJSON_IsUnionJsonCodingKey(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonCodingKey * cJSON_GetUnionJsonCodingKeyValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonCodingKey(const struct UnionJsonCodingKey * x);
+void cJSON_DeleteUnionJsonCodingKey(struct UnionJsonCodingKey * x);
+struct UnionJsonCodingKey * cJSON_ParseUnionJsonCodingKey(const char * s);
+char * cJSON_PrintUnionJsonCodingKey(const struct UnionJsonCodingKey * x);
+
 #define cJSON_IsUnionJsonConverter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionJsonConverter * cJSON_GetUnionJsonConverterValue(const cJSON * j);
 cJSON * cJSON_CreateUnionJsonConverter(const struct UnionJsonConverter * x);
@@ -3928,6 +4518,62 @@ void cJSON_DeleteUnionJsonConverter(struct UnionJsonConverter * x);
 struct UnionJsonConverter * cJSON_ParseUnionJsonConverter(const char * s);
 char * cJSON_PrintUnionJsonConverter(const struct UnionJsonConverter * x);
 
+#define cJSON_IsUnionJsonDecoder(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonDecoder * cJSON_GetUnionJsonDecoderValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonDecoder(const struct UnionJsonDecoder * x);
+void cJSON_DeleteUnionJsonDecoder(struct UnionJsonDecoder * x);
+struct UnionJsonDecoder * cJSON_ParseUnionJsonDecoder(const char * s);
+char * cJSON_PrintUnionJsonDecoder(const struct UnionJsonDecoder * x);
+
+#define cJSON_IsUnionJsonEncoder(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonEncoder * cJSON_GetUnionJsonEncoderValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonEncoder(const struct UnionJsonEncoder * x);
+void cJSON_DeleteUnionJsonEncoder(struct UnionJsonEncoder * x);
+struct UnionJsonEncoder * cJSON_ParseUnionJsonEncoder(const char * s);
+char * cJSON_PrintUnionJsonEncoder(const struct UnionJsonEncoder * x);
+
+#define cJSON_IsUnionJsonException(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonException * cJSON_GetUnionJsonExceptionValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonException(const struct UnionJsonException * x);
+void cJSON_DeleteUnionJsonException(struct UnionJsonException * x);
+struct UnionJsonException * cJSON_ParseUnionJsonException(const char * s);
+char * cJSON_PrintUnionJsonException(const struct UnionJsonException * x);
+
+#define cJSON_IsUnionJsonGenerator(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonGenerator * cJSON_GetUnionJsonGeneratorValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonGenerator(const struct UnionJsonGenerator * x);
+void cJSON_DeleteUnionJsonGenerator(struct UnionJsonGenerator * x);
+struct UnionJsonGenerator * cJSON_ParseUnionJsonGenerator(const char * s);
+char * cJSON_PrintUnionJsonGenerator(const struct UnionJsonGenerator * x);
+
+#define cJSON_IsUnionJsonNode(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonNode * cJSON_GetUnionJsonNodeValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonNode(const struct UnionJsonNode * x);
+void cJSON_DeleteUnionJsonNode(struct UnionJsonNode * x);
+struct UnionJsonNode * cJSON_ParseUnionJsonNode(const char * s);
+char * cJSON_PrintUnionJsonNode(const struct UnionJsonNode * x);
+
+#define cJSON_IsUnionJsonNull(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonNull * cJSON_GetUnionJsonNullValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonNull(const struct UnionJsonNull * x);
+void cJSON_DeleteUnionJsonNull(struct UnionJsonNull * x);
+struct UnionJsonNull * cJSON_ParseUnionJsonNull(const char * s);
+char * cJSON_PrintUnionJsonNull(const struct UnionJsonNull * x);
+
+#define cJSON_IsUnionJsonParser(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonParser * cJSON_GetUnionJsonParserValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonParser(const struct UnionJsonParser * x);
+void cJSON_DeleteUnionJsonParser(struct UnionJsonParser * x);
+struct UnionJsonParser * cJSON_ParseUnionJsonParser(const char * s);
+char * cJSON_PrintUnionJsonParser(const struct UnionJsonParser * x);
+
+#define cJSON_IsUnionJsonReader(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonReader * cJSON_GetUnionJsonReaderValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonReader(const struct UnionJsonReader * x);
+void cJSON_DeleteUnionJsonReader(struct UnionJsonReader * x);
+struct UnionJsonReader * cJSON_ParseUnionJsonReader(const char * s);
+char * cJSON_PrintUnionJsonReader(const struct UnionJsonReader * x);
+
 #define cJSON_IsUnionJsonSerializer(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionJsonSerializer * cJSON_GetUnionJsonSerializerValue(const cJSON * j);
 cJSON * cJSON_CreateUnionJsonSerializer(const struct UnionJsonSerializer * x);
@@ -3942,6 +4588,13 @@ void cJSON_DeleteUnionJsonToken(struct UnionJsonToken * x);
 struct UnionJsonToken * cJSON_ParseUnionJsonToken(const char * s);
 char * cJSON_PrintUnionJsonToken(const struct UnionJsonToken * x);
 
+#define cJSON_IsUnionJsonTokenType(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionJsonTokenType * cJSON_GetUnionJsonTokenTypeValue(const cJSON * j);
+cJSON * cJSON_CreateUnionJsonTokenType(const struct UnionJsonTokenType * x);
+void cJSON_DeleteUnionJsonTokenType(struct UnionJsonTokenType * x);
+struct UnionJsonTokenType * cJSON_ParseUnionJsonTokenType(const char * s);
+char * cJSON_PrintUnionJsonTokenType(const struct UnionJsonTokenType * x);
+
 #define cJSON_IsUnionJsonWriter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionJsonWriter * cJSON_GetUnionJsonWriterValue(const cJSON * j);
 cJSON * cJSON_CreateUnionJsonWriter(const struct UnionJsonWriter * x);
@@ -4040,6 +4693,13 @@ void cJSON_DeleteUnionNo(struct UnionNo * x);
 struct UnionNo * cJSON_ParseUnionNo(const char * s);
 char * cJSON_PrintUnionNo(const struct UnionNo * x);
 
+#define cJSON_IsUnionNoSuchMethod(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionNoSuchMethod * cJSON_GetUnionNoSuchMethodValue(const cJSON * j);
+cJSON * cJSON_CreateUnionNoSuchMethod(const struct UnionNoSuchMethod * x);
+void cJSON_DeleteUnionNoSuchMethod(struct UnionNoSuchMethod * x);
+struct UnionNoSuchMethod * cJSON_ParseUnionNoSuchMethod(const char * s);
+char * cJSON_PrintUnionNoSuchMethod(const struct UnionNoSuchMethod * x);
+
 #define cJSON_IsUnionNonatomic(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionNonatomic * cJSON_GetUnionNonatomicValue(const cJSON * j);
 cJSON * cJSON_CreateUnionNonatomic(const struct UnionNonatomic * x);
@@ -4068,6 +4728,13 @@ void cJSON_DeleteUnionNonmutating(struct UnionNonmutating * x);
 struct UnionNonmutating * cJSON_ParseUnionNonmutating(const char * s);
 char * cJSON_PrintUnionNonmutating(const struct UnionNonmutating * x);
 
+#define cJSON_IsUnionNsError(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionNsError * cJSON_GetUnionNsErrorValue(const cJSON * j);
+cJSON * cJSON_CreateUnionNsError(const struct UnionNsError * x);
+void cJSON_DeleteUnionNsError(struct UnionNsError * x);
+struct UnionNsError * cJSON_ParseUnionNsError(const char * s);
+char * cJSON_PrintUnionNsError(const struct UnionNsError * x);
+
 #define cJSON_IsUnionNsString(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionNsString * cJSON_GetUnionNsStringValue(const cJSON * j);
 cJSON * cJSON_CreateUnionNsString(const struct UnionNsString * x);
@@ -4096,6 +4763,13 @@ void cJSON_DeleteUnionObject(struct UnionObject * x);
 struct UnionObject * cJSON_ParseUnionObject(const char * s);
 char * cJSON_PrintUnionObject(const struct UnionObject * x);
 
+#define cJSON_IsUnionObjectMapper(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionObjectMapper * cJSON_GetUnionObjectMapperValue(const cJSON * j);
+cJSON * cJSON_CreateUnionObjectMapper(const struct UnionObjectMapper * x);
+void cJSON_DeleteUnionObjectMapper(struct UnionObjectMapper * x);
+struct UnionObjectMapper * cJSON_ParseUnionObjectMapper(const char * s);
+char * cJSON_PrintUnionObjectMapper(const struct UnionObjectMapper * x);
+
 #define cJSON_IsUnionOf(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionOf * cJSON_GetUnionOfValue(const cJSON * j);
 cJSON * cJSON_CreateUnionOf(const struct UnionOf * x);
@@ -4187,6 +4861,13 @@ void cJSON_DeleteUnionPrint(struct UnionPrint * x);
 struct UnionPrint * cJSON_ParseUnionPrint(const char * s);
 char * cJSON_PrintUnionPrint(const struct UnionPrint * x);
 
+#define cJSON_IsUnionPrintMembers(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionPrintMembers * cJSON_GetUnionPrintMembersValue(const cJSON * j);
+cJSON * cJSON_CreateUnionPrintMembers(const struct UnionPrintMembers * x);
+void cJSON_DeleteUnionPrintMembers(struct UnionPrintMembers * x);
+struct UnionPrintMembers * cJSON_ParseUnionPrintMembers(const char * s);
+char * cJSON_PrintUnionPrintMembers(const struct UnionPrintMembers * x);
+
 #define cJSON_IsUnionPrintf(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionPrintf * cJSON_GetUnionPrintfValue(const cJSON * j);
 cJSON * cJSON_CreateUnionPrintf(const struct UnionPrintf * x);
@@ -4264,6 +4945,13 @@ void cJSON_DeleteUnionRef(struct UnionRef * x);
 struct UnionRef * cJSON_ParseUnionRef(const char * s);
 char * cJSON_PrintUnionRef(const struct UnionRef * x);
 
+#define cJSON_IsUnionRegExp(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionRegExp * cJSON_GetUnionRegExpValue(const cJSON * j);
+cJSON * cJSON_CreateUnionRegExp(const struct UnionRegExp * x);
+void cJSON_DeleteUnionRegExp(struct UnionRegExp * x);
+struct UnionRegExp * cJSON_ParseUnionRegExp(const char * s);
+char * cJSON_PrintUnionRegExp(const struct UnionRegExp * x);
+
 #define cJSON_IsUnionRepeat(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionRepeat * cJSON_GetUnionRepeatValue(const cJSON * j);
 cJSON * cJSON_CreateUnionRepeat(const struct UnionRepeat * x);
@@ -4306,6 +4994,20 @@ void cJSON_DeleteUnionRight(struct UnionRight * x);
 struct UnionRight * cJSON_ParseUnionRight(const char * s);
 char * cJSON_PrintUnionRight(const struct UnionRight * x);
 
+#define cJSON_IsUnionRuntimeType(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionRuntimeType * cJSON_GetUnionRuntimeTypeValue(const cJSON * j);
+cJSON * cJSON_CreateUnionRuntimeType(const struct UnionRuntimeType * x);
+void cJSON_DeleteUnionRuntimeType(struct UnionRuntimeType * x);
+struct UnionRuntimeType * cJSON_ParseUnionRuntimeType(const char * s);
+char * cJSON_PrintUnionRuntimeType(const struct UnionRuntimeType * x);
+
+#define cJSON_IsUnionS(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionS * cJSON_GetUnionSValue(const cJSON * j);
+cJSON * cJSON_CreateUnionS(const struct UnionS * x);
+void cJSON_DeleteUnionS(struct UnionS * x);
+struct UnionS * cJSON_ParseUnionS(const char * s);
+char * cJSON_PrintUnionS(const struct UnionS * x);
+
 #define cJSON_IsUnionSbyte(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionSbyte * cJSON_GetUnionSbyteValue(const cJSON * j);
 cJSON * cJSON_CreateUnionSbyte(const struct UnionSbyte * x);
@@ -4348,6 +5050,13 @@ void cJSON_DeleteUnionSerialize(struct UnionSerialize * x);
 struct UnionSerialize * cJSON_ParseUnionSerialize(const char * s);
 char * cJSON_PrintUnionSerialize(const struct UnionSerialize * x);
 
+#define cJSON_IsUnionSerializerProvider(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionSerializerProvider * cJSON_GetUnionSerializerProviderValue(const cJSON * j);
+cJSON * cJSON_CreateUnionSerializerProvider(const struct UnionSerializerProvider * x);
+void cJSON_DeleteUnionSerializerProvider(struct UnionSerializerProvider * x);
+struct UnionSerializerProvider * cJSON_ParseUnionSerializerProvider(const char * s);
+char * cJSON_PrintUnionSerializerProvider(const struct UnionSerializerProvider * x);
+
 #define cJSON_IsUnionSet(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionSet * cJSON_GetUnionSetValue(const cJSON * j);
 cJSON * cJSON_CreateUnionSet(const struct UnionSet * x);
@@ -4355,6 +5064,13 @@ void cJSON_DeleteUnionSet(struct UnionSet * x);
 struct UnionSet * cJSON_ParseUnionSet(const char * s);
 char * cJSON_PrintUnionSet(const struct UnionSet * x);
 
+#define cJSON_IsUnionSimpleModule(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionSimpleModule * cJSON_GetUnionSimpleModuleValue(const cJSON * j);
+cJSON * cJSON_CreateUnionSimpleModule(const struct UnionSimpleModule * x);
+void cJSON_DeleteUnionSimpleModule(struct UnionSimpleModule * x);
+struct UnionSimpleModule * cJSON_ParseUnionSimpleModule(const char * s);
+char * cJSON_PrintUnionSimpleModule(const struct UnionSimpleModule * x);
+
 #define cJSON_IsUnionStackalloc(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionStackalloc * cJSON_GetUnionStackallocValue(const cJSON * j);
 cJSON * cJSON_CreateUnionStackalloc(const struct UnionStackalloc * x);
@@ -4362,6 +5078,27 @@ void cJSON_DeleteUnionStackalloc(struct UnionStackalloc * x);
 struct UnionStackalloc * cJSON_ParseUnionStackalloc(const char * s);
 char * cJSON_PrintUnionStackalloc(const struct UnionStackalloc * x);
 
+#define cJSON_IsUnionStandards(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionStandards * cJSON_GetUnionStandardsValue(const cJSON * j);
+cJSON * cJSON_CreateUnionStandards(const struct UnionStandards * x);
+void cJSON_DeleteUnionStandards(struct UnionStandards * x);
+struct UnionStandards * cJSON_ParseUnionStandards(const char * s);
+char * cJSON_PrintUnionStandards(const struct UnionStandards * x);
+
+#define cJSON_IsUnionStdDeserializer(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionStdDeserializer * cJSON_GetUnionStdDeserializerValue(const cJSON * j);
+cJSON * cJSON_CreateUnionStdDeserializer(const struct UnionStdDeserializer * x);
+void cJSON_DeleteUnionStdDeserializer(struct UnionStdDeserializer * x);
+struct UnionStdDeserializer * cJSON_ParseUnionStdDeserializer(const char * s);
+char * cJSON_PrintUnionStdDeserializer(const struct UnionStdDeserializer * x);
+
+#define cJSON_IsUnionStdSerializer(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionStdSerializer * cJSON_GetUnionStdSerializerValue(const cJSON * j);
+cJSON * cJSON_CreateUnionStdSerializer(const struct UnionStdSerializer * x);
+void cJSON_DeleteUnionStdSerializer(struct UnionStdSerializer * x);
+struct UnionStdSerializer * cJSON_ParseUnionStdSerializer(const char * s);
+char * cJSON_PrintUnionStdSerializer(const struct UnionStdSerializer * x);
+
 #define cJSON_IsUnionStrictfp(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionStrictfp * cJSON_GetUnionStrictfpValue(const cJSON * j);
 cJSON * cJSON_CreateUnionStrictfp(const struct UnionStrictfp * x);
@@ -4418,6 +5155,20 @@ void cJSON_DeleteUnionThrows(struct UnionThrows * x);
 struct UnionThrows * cJSON_ParseUnionThrows(const char * s);
 char * cJSON_PrintUnionThrows(const struct UnionThrows * x);
 
+#define cJSON_IsUnionTimeOnly(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionTimeOnly * cJSON_GetUnionTimeOnlyValue(const cJSON * j);
+cJSON * cJSON_CreateUnionTimeOnly(const struct UnionTimeOnly * x);
+void cJSON_DeleteUnionTimeOnly(struct UnionTimeOnly * x);
+struct UnionTimeOnly * cJSON_ParseUnionTimeOnly(const char * s);
+char * cJSON_PrintUnionTimeOnly(const struct UnionTimeOnly * x);
+
+#define cJSON_IsUnionTimeOnlyConverter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionTimeOnlyConverter * cJSON_GetUnionTimeOnlyConverterValue(const cJSON * j);
+cJSON * cJSON_CreateUnionTimeOnlyConverter(const struct UnionTimeOnlyConverter * x);
+void cJSON_DeleteUnionTimeOnlyConverter(struct UnionTimeOnlyConverter * x);
+struct UnionTimeOnlyConverter * cJSON_ParseUnionTimeOnlyConverter(const char * s);
+char * cJSON_PrintUnionTimeOnlyConverter(const struct UnionTimeOnlyConverter * x);
+
 #define cJSON_IsUnionToJson(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionToJson * cJSON_GetUnionToJsonValue(const cJSON * j);
 cJSON * cJSON_CreateUnionToJson(const struct UnionToJson * x);
@@ -4425,6 +5176,13 @@ void cJSON_DeleteUnionToJson(struct UnionToJson * x);
 struct UnionToJson * cJSON_ParseUnionToJson(const char * s);
 char * cJSON_PrintUnionToJson(const struct UnionToJson * x);
 
+#define cJSON_IsUnionToString(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionToString * cJSON_GetUnionToStringValue(const cJSON * j);
+cJSON * cJSON_CreateUnionToString(const struct UnionToString * x);
+void cJSON_DeleteUnionToString(struct UnionToString * x);
+struct UnionToString * cJSON_ParseUnionToString(const char * s);
+char * cJSON_PrintUnionToString(const struct UnionToString * x);
+
 #define cJSON_IsUnionTopLevel(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionTopLevel * cJSON_GetUnionTopLevelValue(const cJSON * j);
 cJSON * cJSON_CreateUnionTopLevel(const struct UnionTopLevel * x);
@@ -5237,6 +5995,27 @@ void cJSON_DeleteUnionUshort(struct UnionUshort * x);
 struct UnionUshort * cJSON_ParseUnionUshort(const char * s);
 char * cJSON_PrintUnionUshort(const struct UnionUshort * x);
 
+#define cJSON_IsUnionUtf8JsonReader(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionUtf8JsonReader * cJSON_GetUnionUtf8JsonReaderValue(const cJSON * j);
+cJSON * cJSON_CreateUnionUtf8JsonReader(const struct UnionUtf8JsonReader * x);
+void cJSON_DeleteUnionUtf8JsonReader(struct UnionUtf8JsonReader * x);
+struct UnionUtf8JsonReader * cJSON_ParseUnionUtf8JsonReader(const char * s);
+char * cJSON_PrintUnionUtf8JsonReader(const struct UnionUtf8JsonReader * x);
+
+#define cJSON_IsUnionUtf8JsonWriter(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionUtf8JsonWriter * cJSON_GetUnionUtf8JsonWriterValue(const cJSON * j);
+cJSON * cJSON_CreateUnionUtf8JsonWriter(const struct UnionUtf8JsonWriter * x);
+void cJSON_DeleteUnionUtf8JsonWriter(struct UnionUtf8JsonWriter * x);
+struct UnionUtf8JsonWriter * cJSON_ParseUnionUtf8JsonWriter(const char * s);
+char * cJSON_PrintUnionUtf8JsonWriter(const struct UnionUtf8JsonWriter * x);
+
+#define cJSON_IsUnionUuid(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
+struct UnionUuid * cJSON_GetUnionUuidValue(const cJSON * j);
+cJSON * cJSON_CreateUnionUuid(const struct UnionUuid * x);
+void cJSON_DeleteUnionUuid(struct UnionUuid * x);
+struct UnionUuid * cJSON_ParseUnionUuid(const char * s);
+char * cJSON_PrintUnionUuid(const struct UnionUuid * x);
+
 #define cJSON_IsUnionVar(j) (cJSON_IsNumber(j) || cJSON_IsObject(j))
 struct UnionVar * cJSON_GetUnionVarValue(const cJSON * j);
 cJSON * cJSON_CreateUnionVar(const struct UnionVar * x);
@@ -5388,6 +6167,12 @@ cJSON * cJSON_CreateChecked(const struct Checked * x);
 char * cJSON_PrintChecked(const struct Checked * x);
 void cJSON_DeleteChecked(struct Checked * x);
 
+struct Clone * cJSON_ParseClone(const char * s);
+struct Clone * cJSON_GetCloneValue(const cJSON * j);
+cJSON * cJSON_CreateClone(const struct Clone * x);
+char * cJSON_PrintClone(const struct Clone * x);
+void cJSON_DeleteClone(struct Clone * x);
+
 struct Complex * cJSON_ParseComplex(const char * s);
 struct Complex * cJSON_GetComplexValue(const cJSON * j);
 cJSON * cJSON_CreateComplex(const struct Complex * x);
@@ -5424,18 +6209,54 @@ cJSON * cJSON_CreateConverter(const struct Converter * x);
 char * cJSON_PrintConverter(const struct Converter * x);
 void cJSON_DeleteConverter(struct Converter * x);
 
+struct CultureInfo * cJSON_ParseCultureInfo(const char * s);
+struct CultureInfo * cJSON_GetCultureInfoValue(const cJSON * j);
+cJSON * cJSON_CreateCultureInfo(const struct CultureInfo * x);
+char * cJSON_PrintCultureInfo(const struct CultureInfo * x);
+void cJSON_DeleteCultureInfo(struct CultureInfo * x);
+
 struct Date * cJSON_ParseDate(const char * s);
 struct Date * cJSON_GetDateValue(const cJSON * j);
 cJSON * cJSON_CreateDate(const struct Date * x);
 char * cJSON_PrintDate(const struct Date * x);
 void cJSON_DeleteDate(struct Date * x);
 
+struct DateFormatter * cJSON_ParseDateFormatter(const char * s);
+struct DateFormatter * cJSON_GetDateFormatterValue(const cJSON * j);
+cJSON * cJSON_CreateDateFormatter(const struct DateFormatter * x);
+char * cJSON_PrintDateFormatter(const struct DateFormatter * x);
+void cJSON_DeleteDateFormatter(struct DateFormatter * x);
+
+struct DateOnly * cJSON_ParseDateOnly(const char * s);
+struct DateOnly * cJSON_GetDateOnlyValue(const cJSON * j);
+cJSON * cJSON_CreateDateOnly(const struct DateOnly * x);
+char * cJSON_PrintDateOnly(const struct DateOnly * x);
+void cJSON_DeleteDateOnly(struct DateOnly * x);
+
+struct DateOnlyConverter * cJSON_ParseDateOnlyConverter(const char * s);
+struct DateOnlyConverter * cJSON_GetDateOnlyConverterValue(const cJSON * j);
+cJSON * cJSON_CreateDateOnlyConverter(const struct DateOnlyConverter * x);
+char * cJSON_PrintDateOnlyConverter(const struct DateOnlyConverter * x);
+void cJSON_DeleteDateOnlyConverter(struct DateOnlyConverter * x);
+
 struct DateParseHandling * cJSON_ParseDateParseHandling(const char * s);
 struct DateParseHandling * cJSON_GetDateParseHandlingValue(const cJSON * j);
 cJSON * cJSON_CreateDateParseHandling(const struct DateParseHandling * x);
 char * cJSON_PrintDateParseHandling(const struct DateParseHandling * x);
 void cJSON_DeleteDateParseHandling(struct DateParseHandling * x);
 
+struct DateTime * cJSON_ParseDateTime(const char * s);
+struct DateTime * cJSON_GetDateTimeValue(const cJSON * j);
+cJSON * cJSON_CreateDateTime(const struct DateTime * x);
+char * cJSON_PrintDateTime(const struct DateTime * x);
+void cJSON_DeleteDateTime(struct DateTime * x);
+
+struct DateTimeStyles * cJSON_ParseDateTimeStyles(const char * s);
+struct DateTimeStyles * cJSON_GetDateTimeStylesValue(const cJSON * j);
+cJSON * cJSON_CreateDateTimeStyles(const struct DateTimeStyles * x);
+char * cJSON_PrintDateTimeStyles(const struct DateTimeStyles * x);
+void cJSON_DeleteDateTimeStyles(struct DateTimeStyles * x);
+
 struct Debugger * cJSON_ParseDebugger(const char * s);
 struct Debugger * cJSON_GetDebuggerValue(const cJSON * j);
 cJSON * cJSON_CreateDebugger(const struct Debugger * x);
@@ -5532,6 +6353,18 @@ cJSON * cJSON_CreateEncodeQuickType(const struct EncodeQuickType * x);
 char * cJSON_PrintEncodeQuickType(const struct EncodeQuickType * x);
 void cJSON_DeleteEncodeQuickType(struct EncodeQuickType * x);
 
+struct EnumValues * cJSON_ParseEnumValues(const char * s);
+struct EnumValues * cJSON_GetEnumValuesValue(const cJSON * j);
+cJSON * cJSON_CreateEnumValues(const struct EnumValues * x);
+char * cJSON_PrintEnumValues(const struct EnumValues * x);
+void cJSON_DeleteEnumValues(struct EnumValues * x);
+
+struct EqualityContract * cJSON_ParseEqualityContract(const char * s);
+struct EqualityContract * cJSON_GetEqualityContractValue(const cJSON * j);
+cJSON * cJSON_CreateEqualityContract(const struct EqualityContract * x);
+char * cJSON_PrintEqualityContract(const struct EqualityContract * x);
+void cJSON_DeleteEqualityContract(struct EqualityContract * x);
+
 struct Event * cJSON_ParseEvent(const char * s);
 struct Event * cJSON_GetEventValue(const cJSON * j);
 cJSON * cJSON_CreateEvent(const struct Event * x);
@@ -5604,6 +6437,12 @@ cJSON * cJSON_CreateForeach(const struct Foreach * x);
 char * cJSON_PrintForeach(const struct Foreach * x);
 void cJSON_DeleteForeach(struct Foreach * x);
 
+struct FormatException * cJSON_ParseFormatException(const char * s);
+struct FormatException * cJSON_GetFormatExceptionValue(const cJSON * j);
+cJSON * cJSON_CreateFormatException(const struct FormatException * x);
+char * cJSON_PrintFormatException(const struct FormatException * x);
+void cJSON_DeleteFormatException(struct FormatException * x);
+
 struct From * cJSON_ParseFrom(const char * s);
 struct From * cJSON_GetFromValue(const cJSON * j);
 cJSON * cJSON_CreateFrom(const struct From * x);
@@ -5658,6 +6497,12 @@ cJSON * cJSON_CreateHasOwnProperty(const struct HasOwnProperty * x);
 char * cJSON_PrintHasOwnProperty(const struct HasOwnProperty * x);
 void cJSON_DeleteHasOwnProperty(struct HasOwnProperty * x);
 
+struct HashCode * cJSON_ParseHashCode(const char * s);
+struct HashCode * cJSON_GetHashCodeValue(const cJSON * j);
+cJSON * cJSON_CreateHashCode(const struct HashCode * x);
+char * cJSON_PrintHashCode(const struct HashCode * x);
+void cJSON_DeleteHashCode(struct HashCode * x);
+
 struct Id * cJSON_ParseId(const char * s);
 struct Id * cJSON_GetIdValue(const cJSON * j);
 cJSON * cJSON_CreateId(const struct Id * x);
@@ -5742,6 +6587,12 @@ cJSON * cJSON_CreateIs(const struct Is * x);
 char * cJSON_PrintIs(const struct Is * x);
 void cJSON_DeleteIs(struct Is * x);
 
+struct IsoDateTimeOffsetConverter * cJSON_ParseIsoDateTimeOffsetConverter(const char * s);
+struct IsoDateTimeOffsetConverter * cJSON_GetIsoDateTimeOffsetConverterValue(const cJSON * j);
+cJSON * cJSON_CreateIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x);
+char * cJSON_PrintIsoDateTimeOffsetConverter(const struct IsoDateTimeOffsetConverter * x);
+void cJSON_DeleteIsoDateTimeOffsetConverter(struct IsoDateTimeOffsetConverter * x);
+
 struct Iterable * cJSON_ParseIterable(const char * s);
 struct Iterable * cJSON_GetIterableValue(const cJSON * j);
 cJSON * cJSON_CreateIterable(const struct Iterable * x);
@@ -5772,12 +6623,72 @@ cJSON * cJSON_CreateJson(const struct Json * x);
 char * cJSON_PrintJson(const struct Json * x);
 void cJSON_DeleteJson(struct Json * x);
 
+struct JsonAny * cJSON_ParseJsonAny(const char * s);
+struct JsonAny * cJSON_GetJsonAnyValue(const cJSON * j);
+cJSON * cJSON_CreateJsonAny(const struct JsonAny * x);
+char * cJSON_PrintJsonAny(const struct JsonAny * x);
+void cJSON_DeleteJsonAny(struct JsonAny * x);
+
+struct JsonCodingKey * cJSON_ParseJsonCodingKey(const char * s);
+struct JsonCodingKey * cJSON_GetJsonCodingKeyValue(const cJSON * j);
+cJSON * cJSON_CreateJsonCodingKey(const struct JsonCodingKey * x);
+char * cJSON_PrintJsonCodingKey(const struct JsonCodingKey * x);
+void cJSON_DeleteJsonCodingKey(struct JsonCodingKey * x);
+
 struct JsonConverter * cJSON_ParseJsonConverter(const char * s);
 struct JsonConverter * cJSON_GetJsonConverterValue(const cJSON * j);
 cJSON * cJSON_CreateJsonConverter(const struct JsonConverter * x);
 char * cJSON_PrintJsonConverter(const struct JsonConverter * x);
 void cJSON_DeleteJsonConverter(struct JsonConverter * x);
 
+struct JsonDecoder * cJSON_ParseJsonDecoder(const char * s);
+struct JsonDecoder * cJSON_GetJsonDecoderValue(const cJSON * j);
+cJSON * cJSON_CreateJsonDecoder(const struct JsonDecoder * x);
+char * cJSON_PrintJsonDecoder(const struct JsonDecoder * x);
+void cJSON_DeleteJsonDecoder(struct JsonDecoder * x);
+
+struct JsonEncoder * cJSON_ParseJsonEncoder(const char * s);
+struct JsonEncoder * cJSON_GetJsonEncoderValue(const cJSON * j);
+cJSON * cJSON_CreateJsonEncoder(const struct JsonEncoder * x);
+char * cJSON_PrintJsonEncoder(const struct JsonEncoder * x);
+void cJSON_DeleteJsonEncoder(struct JsonEncoder * x);
+
+struct JsonException * cJSON_ParseJsonException(const char * s);
+struct JsonException * cJSON_GetJsonExceptionValue(const cJSON * j);
+cJSON * cJSON_CreateJsonException(const struct JsonException * x);
+char * cJSON_PrintJsonException(const struct JsonException * x);
+void cJSON_DeleteJsonException(struct JsonException * x);
+
+struct JsonGenerator * cJSON_ParseJsonGenerator(const char * s);
+struct JsonGenerator * cJSON_GetJsonGeneratorValue(const cJSON * j);
+cJSON * cJSON_CreateJsonGenerator(const struct JsonGenerator * x);
+char * cJSON_PrintJsonGenerator(const struct JsonGenerator * x);
+void cJSON_DeleteJsonGenerator(struct JsonGenerator * x);
+
+struct JsonNode * cJSON_ParseJsonNode(const char * s);
+struct JsonNode * cJSON_GetJsonNodeValue(const cJSON * j);
+cJSON * cJSON_CreateJsonNode(const struct JsonNode * x);
+char * cJSON_PrintJsonNode(const struct JsonNode * x);
+void cJSON_DeleteJsonNode(struct JsonNode * x);
+
+struct JsonNull * cJSON_ParseJsonNull(const char * s);
+struct JsonNull * cJSON_GetJsonNullValue(const cJSON * j);
+cJSON * cJSON_CreateJsonNull(const struct JsonNull * x);
+char * cJSON_PrintJsonNull(const struct JsonNull * x);
+void cJSON_DeleteJsonNull(struct JsonNull * x);
+
+struct JsonParser * cJSON_ParseJsonParser(const char * s);
+struct JsonParser * cJSON_GetJsonParserValue(const cJSON * j);
+cJSON * cJSON_CreateJsonParser(const struct JsonParser * x);
+char * cJSON_PrintJsonParser(const struct JsonParser * x);
+void cJSON_DeleteJsonParser(struct JsonParser * x);
+
+struct JsonReader * cJSON_ParseJsonReader(const char * s);
+struct JsonReader * cJSON_GetJsonReaderValue(const cJSON * j);
+cJSON * cJSON_CreateJsonReader(const struct JsonReader * x);
+char * cJSON_PrintJsonReader(const struct JsonReader * x);
+void cJSON_DeleteJsonReader(struct JsonReader * x);
+
 struct JsonSerializer * cJSON_ParseJsonSerializer(const char * s);
 struct JsonSerializer * cJSON_GetJsonSerializerValue(const cJSON * j);
 cJSON * cJSON_CreateJsonSerializer(const struct JsonSerializer * x);
@@ -5790,6 +6701,12 @@ cJSON * cJSON_CreateJsonToken(const struct JsonToken * x);
 char * cJSON_PrintJsonToken(const struct JsonToken * x);
 void cJSON_DeleteJsonToken(struct JsonToken * x);
 
+struct JsonTokenType * cJSON_ParseJsonTokenType(const char * s);
+struct JsonTokenType * cJSON_GetJsonTokenTypeValue(const cJSON * j);
+cJSON * cJSON_CreateJsonTokenType(const struct JsonTokenType * x);
+char * cJSON_PrintJsonTokenType(const struct JsonTokenType * x);
+void cJSON_DeleteJsonTokenType(struct JsonTokenType * x);
+
 struct JsonWriter * cJSON_ParseJsonWriter(const char * s);
 struct JsonWriter * cJSON_GetJsonWriterValue(const cJSON * j);
 cJSON * cJSON_CreateJsonWriter(const struct JsonWriter * x);
@@ -5874,6 +6791,12 @@ cJSON * cJSON_CreateNo(const struct No * x);
 char * cJSON_PrintNo(const struct No * x);
 void cJSON_DeleteNo(struct No * x);
 
+struct NoSuchMethod * cJSON_ParseNoSuchMethod(const char * s);
+struct NoSuchMethod * cJSON_GetNoSuchMethodValue(const cJSON * j);
+cJSON * cJSON_CreateNoSuchMethod(const struct NoSuchMethod * x);
+char * cJSON_PrintNoSuchMethod(const struct NoSuchMethod * x);
+void cJSON_DeleteNoSuchMethod(struct NoSuchMethod * x);
+
 struct Nonatomic * cJSON_ParseNonatomic(const char * s);
 struct Nonatomic * cJSON_GetNonatomicValue(const cJSON * j);
 cJSON * cJSON_CreateNonatomic(const struct Nonatomic * x);
@@ -5898,6 +6821,12 @@ cJSON * cJSON_CreateNonmutating(const struct Nonmutating * x);
 char * cJSON_PrintNonmutating(const struct Nonmutating * x);
 void cJSON_DeleteNonmutating(struct Nonmutating * x);
 
+struct NsError * cJSON_ParseNsError(const char * s);
+struct NsError * cJSON_GetNsErrorValue(const cJSON * j);
+cJSON * cJSON_CreateNsError(const struct NsError * x);
+char * cJSON_PrintNsError(const struct NsError * x);
+void cJSON_DeleteNsError(struct NsError * x);
+
 struct NsString * cJSON_ParseNsString(const char * s);
 struct NsString * cJSON_GetNsStringValue(const cJSON * j);
 cJSON * cJSON_CreateNsString(const struct NsString * x);
@@ -5922,6 +6851,12 @@ cJSON * cJSON_CreateObjectClass(const struct ObjectClass * x);
 char * cJSON_PrintObjectClass(const struct ObjectClass * x);
 void cJSON_DeleteObjectClass(struct ObjectClass * x);
 
+struct ObjectMapper * cJSON_ParseObjectMapper(const char * s);
+struct ObjectMapper * cJSON_GetObjectMapperValue(const cJSON * j);
+cJSON * cJSON_CreateObjectMapper(const struct ObjectMapper * x);
+char * cJSON_PrintObjectMapper(const struct ObjectMapper * x);
+void cJSON_DeleteObjectMapper(struct ObjectMapper * x);
+
 struct Of * cJSON_ParseOf(const char * s);
 struct Of * cJSON_GetOfValue(const cJSON * j);
 cJSON * cJSON_CreateOf(const struct Of * x);
@@ -6000,6 +6935,12 @@ cJSON * cJSON_CreatePrint(const struct Print * x);
 char * cJSON_PrintPrint(const struct Print * x);
 void cJSON_DeletePrint(struct Print * x);
 
+struct PrintMembers * cJSON_ParsePrintMembers(const char * s);
+struct PrintMembers * cJSON_GetPrintMembersValue(const cJSON * j);
+cJSON * cJSON_CreatePrintMembers(const struct PrintMembers * x);
+char * cJSON_PrintPrintMembers(const struct PrintMembers * x);
+void cJSON_DeletePrintMembers(struct PrintMembers * x);
+
 struct Printf * cJSON_ParsePrintf(const char * s);
 struct Printf * cJSON_GetPrintfValue(const cJSON * j);
 cJSON * cJSON_CreatePrintf(const struct Printf * x);
@@ -6066,6 +7007,12 @@ cJSON * cJSON_CreateRef(const struct Ref * x);
 char * cJSON_PrintRef(const struct Ref * x);
 void cJSON_DeleteRef(struct Ref * x);
 
+struct RegExp * cJSON_ParseRegExp(const char * s);
+struct RegExp * cJSON_GetRegExpValue(const cJSON * j);
+cJSON * cJSON_CreateRegExp(const struct RegExp * x);
+char * cJSON_PrintRegExp(const struct RegExp * x);
+void cJSON_DeleteRegExp(struct RegExp * x);
+
 struct Repeat * cJSON_ParseRepeat(const char * s);
 struct Repeat * cJSON_GetRepeatValue(const cJSON * j);
 cJSON * cJSON_CreateRepeat(const struct Repeat * x);
@@ -6102,6 +7049,18 @@ cJSON * cJSON_CreateRight(const struct Right * x);
 char * cJSON_PrintRight(const struct Right * x);
 void cJSON_DeleteRight(struct Right * x);
 
+struct RuntimeType * cJSON_ParseRuntimeType(const char * s);
+struct RuntimeType * cJSON_GetRuntimeTypeValue(const cJSON * j);
+cJSON * cJSON_CreateRuntimeType(const struct RuntimeType * x);
+char * cJSON_PrintRuntimeType(const struct RuntimeType * x);
+void cJSON_DeleteRuntimeType(struct RuntimeType * x);
+
+struct S * cJSON_ParseS(const char * s);
+struct S * cJSON_GetSValue(const cJSON * j);
+cJSON * cJSON_CreateS(const struct S * x);
+char * cJSON_PrintS(const struct S * x);
+void cJSON_DeleteS(struct S * x);
+
 struct Sbyte * cJSON_ParseSbyte(const char * s);
 struct Sbyte * cJSON_GetSbyteValue(const cJSON * j);
 cJSON * cJSON_CreateSbyte(const struct Sbyte * x);
@@ -6138,18 +7097,48 @@ cJSON * cJSON_CreateSerialize(const struct Serialize * x);
 char * cJSON_PrintSerialize(const struct Serialize * x);
 void cJSON_DeleteSerialize(struct Serialize * x);
 
+struct SerializerProvider * cJSON_ParseSerializerProvider(const char * s);
+struct SerializerProvider * cJSON_GetSerializerProviderValue(const cJSON * j);
+cJSON * cJSON_CreateSerializerProvider(const struct SerializerProvider * x);
+char * cJSON_PrintSerializerProvider(const struct SerializerProvider * x);
+void cJSON_DeleteSerializerProvider(struct SerializerProvider * x);
+
 struct Set * cJSON_ParseSet(const char * s);
 struct Set * cJSON_GetSetValue(const cJSON * j);
 cJSON * cJSON_CreateSet(const struct Set * x);
 char * cJSON_PrintSet(const struct Set * x);
 void cJSON_DeleteSet(struct Set * x);
 
+struct SimpleModule * cJSON_ParseSimpleModule(const char * s);
+struct SimpleModule * cJSON_GetSimpleModuleValue(const cJSON * j);
+cJSON * cJSON_CreateSimpleModule(const struct SimpleModule * x);
+char * cJSON_PrintSimpleModule(const struct SimpleModule * x);
+void cJSON_DeleteSimpleModule(struct SimpleModule * x);
+
 struct Stackalloc * cJSON_ParseStackalloc(const char * s);
 struct Stackalloc * cJSON_GetStackallocValue(const cJSON * j);
 cJSON * cJSON_CreateStackalloc(const struct Stackalloc * x);
 char * cJSON_PrintStackalloc(const struct Stackalloc * x);
 void cJSON_DeleteStackalloc(struct Stackalloc * x);
 
+struct Standards * cJSON_ParseStandards(const char * s);
+struct Standards * cJSON_GetStandardsValue(const cJSON * j);
+cJSON * cJSON_CreateStandards(const struct Standards * x);
+char * cJSON_PrintStandards(const struct Standards * x);
+void cJSON_DeleteStandards(struct Standards * x);
+
+struct StdDeserializer * cJSON_ParseStdDeserializer(const char * s);
+struct StdDeserializer * cJSON_GetStdDeserializerValue(const cJSON * j);
+cJSON * cJSON_CreateStdDeserializer(const struct StdDeserializer * x);
+char * cJSON_PrintStdDeserializer(const struct StdDeserializer * x);
+void cJSON_DeleteStdDeserializer(struct StdDeserializer * x);
+
+struct StdSerializer * cJSON_ParseStdSerializer(const char * s);
+struct StdSerializer * cJSON_GetStdSerializerValue(const cJSON * j);
+cJSON * cJSON_CreateStdSerializer(const struct StdSerializer * x);
+char * cJSON_PrintStdSerializer(const struct StdSerializer * x);
+void cJSON_DeleteStdSerializer(struct StdSerializer * x);
+
 struct Strictfp * cJSON_ParseStrictfp(const char * s);
 struct Strictfp * cJSON_GetStrictfpValue(const cJSON * j);
 cJSON * cJSON_CreateStrictfp(const struct Strictfp * x);
@@ -6198,12 +7187,30 @@ cJSON * cJSON_CreateThrows(const struct Throws * x);
 char * cJSON_PrintThrows(const struct Throws * x);
 void cJSON_DeleteThrows(struct Throws * x);
 
+struct TimeOnly * cJSON_ParseTimeOnly(const char * s);
+struct TimeOnly * cJSON_GetTimeOnlyValue(const cJSON * j);
+cJSON * cJSON_CreateTimeOnly(const struct TimeOnly * x);
+char * cJSON_PrintTimeOnly(const struct TimeOnly * x);
+void cJSON_DeleteTimeOnly(struct TimeOnly * x);
+
+struct TimeOnlyConverter * cJSON_ParseTimeOnlyConverter(const char * s);
+struct TimeOnlyConverter * cJSON_GetTimeOnlyConverterValue(const cJSON * j);
+cJSON * cJSON_CreateTimeOnlyConverter(const struct TimeOnlyConverter * x);
+char * cJSON_PrintTimeOnlyConverter(const struct TimeOnlyConverter * x);
+void cJSON_DeleteTimeOnlyConverter(struct TimeOnlyConverter * x);
+
 struct ToJson * cJSON_ParseToJson(const char * s);
 struct ToJson * cJSON_GetToJsonValue(const cJSON * j);
 cJSON * cJSON_CreateToJson(const struct ToJson * x);
 char * cJSON_PrintToJson(const struct ToJson * x);
 void cJSON_DeleteToJson(struct ToJson * x);
 
+struct ToString * cJSON_ParseToString(const char * s);
+struct ToString * cJSON_GetToStringValue(const cJSON * j);
+cJSON * cJSON_CreateToString(const struct ToString * x);
+char * cJSON_PrintToString(const struct ToString * x);
+void cJSON_DeleteToString(struct ToString * x);
+
 struct TopLevelClass * cJSON_ParseTopLevelClass(const char * s);
 struct TopLevelClass * cJSON_GetTopLevelClassValue(const cJSON * j);
 cJSON * cJSON_CreateTopLevelClass(const struct TopLevelClass * x);
@@ -6900,6 +7907,24 @@ cJSON * cJSON_CreateUshort(const struct Ushort * x);
 char * cJSON_PrintUshort(const struct Ushort * x);
 void cJSON_DeleteUshort(struct Ushort * x);
 
+struct Utf8JsonReader * cJSON_ParseUtf8JsonReader(const char * s);
+struct Utf8JsonReader * cJSON_GetUtf8JsonReaderValue(const cJSON * j);
+cJSON * cJSON_CreateUtf8JsonReader(const struct Utf8JsonReader * x);
+char * cJSON_PrintUtf8JsonReader(const struct Utf8JsonReader * x);
+void cJSON_DeleteUtf8JsonReader(struct Utf8JsonReader * x);
+
+struct Utf8JsonWriter * cJSON_ParseUtf8JsonWriter(const char * s);
+struct Utf8JsonWriter * cJSON_GetUtf8JsonWriterValue(const cJSON * j);
+cJSON * cJSON_CreateUtf8JsonWriter(const struct Utf8JsonWriter * x);
+char * cJSON_PrintUtf8JsonWriter(const struct Utf8JsonWriter * x);
+void cJSON_DeleteUtf8JsonWriter(struct Utf8JsonWriter * x);
+
+struct Uuid * cJSON_ParseUuid(const char * s);
+struct Uuid * cJSON_GetUuidValue(const cJSON * j);
+cJSON * cJSON_CreateUuid(const struct Uuid * x);
+char * cJSON_PrintUuid(const struct Uuid * x);
+void cJSON_DeleteUuid(struct Uuid * x);
+
 struct Var * cJSON_ParseVar(const char * s);
 struct Var * cJSON_GetVarValue(const cJSON * j);
 cJSON * cJSON_CreateVar(const struct Var * x);
diff --git a/base/schema-cplusplus/test/inputs/schema/keyword-enum.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/keyword-enum.schema/default/quicktype.hpp
index a66d77b..32a912c 100644
--- a/base/schema-cplusplus/test/inputs/schema/keyword-enum.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/keyword-enum.schema/default/quicktype.hpp
@@ -89,7 +89,7 @@ namespace quicktype {
     }
     #endif
 
-    enum class Enum : int { EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, DATE, DATE_PARSE_HANDLING, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NOT, NOT_EQ, NS_STRING, ENUM_NULL, PURPLE_NULL, NULLPTR, NUMBER, OBJECT, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SET, SHORT, SIGNED, SIZEOF, STACKALLOC, STATIC, STATIC_ASSERT, STATIC_CAST, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TO_JSON, TOP_LEVEL, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY };
+    enum class Enum : int { EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CLONE, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, CULTURE_INFO, DATE, DATE_PARSE_HANDLING, DATE_FORMATTER, DATE_ONLY, DATE_ONLY_CONVERTER, DATE_TIME, DATE_TIME_STYLES, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, ENUM_VALUES, EQUALITY_CONTRACT, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FORMAT_EXCEPTION, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HASH_CODE, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ISO_DATE_TIME_OFFSET_CONVERTER, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, JSON_ANY, JSON_CODING_KEY, JSON_DECODER, JSON_ENCODER, JSON_EXCEPTION, JSON_GENERATOR, JSON_NODE, JSON_NULL, JSON_PARSER, JSON_READER, JSON_TOKEN_TYPE, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NO_SUCH_METHOD, NOT, NOT_EQ, NS_ERROR, NS_STRING, ENUM_NULL, PURPLE_NULL, NULLPTR, NUMBER, OBJECT, OBJECT_MAPPER, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRINT_MEMBERS, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REG_EXP, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, RUNTIME_TYPE, S, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SERIALIZER_PROVIDER, SET, SHORT, SIGNED, SIMPLE_MODULE, SIZEOF, STACKALLOC, STANDARDS, STATIC, STATIC_ASSERT, STATIC_CAST, STD_DESERIALIZER, STD_SERIALIZER, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TIME_ONLY, TIME_ONLY_CONVERTER, TO_JSON, TOP_LEVEL, TO_STRING, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, UTF8_JSON_READER, UTF8_JSON_WRITER, UUID, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY };
 
     class TopLevel {
         public:
@@ -168,6 +168,7 @@ namespace quicktype {
             {"checked", Enum::CHECKED},
             {"class", Enum::CLASS},
             {"Class", Enum::ENUM_CLASS},
+            {"clone", Enum::CLONE},
             {"co_await", Enum::CO_AWAIT},
             {"co_return", Enum::CO_RETURN},
             {"co_yield", Enum::CO_YIELD},
@@ -182,8 +183,14 @@ namespace quicktype {
             {"convenience", Enum::CONVENIENCE},
             {"convert", Enum::CONVERT},
             {"converter", Enum::CONVERTER},
+            {"CultureInfo", Enum::CULTURE_INFO},
             {"date", Enum::DATE},
             {"date_parse_handling", Enum::DATE_PARSE_HANDLING},
+            {"DateFormatter", Enum::DATE_FORMATTER},
+            {"DateOnly", Enum::DATE_ONLY},
+            {"DateOnlyConverter", Enum::DATE_ONLY_CONVERTER},
+            {"DateTime", Enum::DATE_TIME},
+            {"DateTimeStyles", Enum::DATE_TIME_STYLES},
             {"debugger", Enum::DEBUGGER},
             {"decimal", Enum::DECIMAL},
             {"declare", Enum::DECLARE},
@@ -207,6 +214,8 @@ namespace quicktype {
             {"else", Enum::ELSE},
             {"encode_quick_type", Enum::ENCODE_QUICK_TYPE},
             {"enum", Enum::ENUM},
+            {"EnumValues", Enum::ENUM_VALUES},
+            {"equalityContract", Enum::EQUALITY_CONTRACT},
             {"event", Enum::EVENT},
             {"except", Enum::EXCEPT},
             {"exception", Enum::EXCEPTION},
@@ -226,6 +235,7 @@ namespace quicktype {
             {"float", Enum::FLOAT},
             {"for", Enum::FOR},
             {"foreach", Enum::FOREACH},
+            {"FormatException", Enum::FORMAT_EXCEPTION},
             {"friend", Enum::FRIEND},
             {"from", Enum::FROM},
             {"from_json", Enum::FROM_JSON},
@@ -236,6 +246,7 @@ namespace quicktype {
             {"go", Enum::GO},
             {"goto", Enum::GOTO},
             {"guard", Enum::GUARD},
+            {"hashCode", Enum::HASH_CODE},
             {"hasOwnProperty", Enum::HAS_OWN_PROPERTY},
             {"id", Enum::ID},
             {"if", Enum::IF},
@@ -253,6 +264,7 @@ namespace quicktype {
             {"int", Enum::INT},
             {"interface", Enum::INTERFACE},
             {"internal", Enum::INTERNAL},
+            {"IsoDateTimeOffsetConverter", Enum::ISO_DATE_TIME_OFFSET_CONVERTER},
             {"iterable", Enum::ITERABLE},
             {"is", Enum::IS},
             {"jdec", Enum::JDEC},
@@ -263,6 +275,17 @@ namespace quicktype {
             {"json_serializer", Enum::JSON_SERIALIZER},
             {"json_token", Enum::JSON_TOKEN},
             {"json_writer", Enum::JSON_WRITER},
+            {"JSONAny", Enum::JSON_ANY},
+            {"JSONCodingKey", Enum::JSON_CODING_KEY},
+            {"JSONDecoder", Enum::JSON_DECODER},
+            {"JSONEncoder", Enum::JSON_ENCODER},
+            {"JsonException", Enum::JSON_EXCEPTION},
+            {"JsonGenerator", Enum::JSON_GENERATOR},
+            {"JsonNode", Enum::JSON_NODE},
+            {"JSONNull", Enum::JSON_NULL},
+            {"JsonParser", Enum::JSON_PARSER},
+            {"JsonReader", Enum::JSON_READER},
+            {"JsonTokenType", Enum::JSON_TOKEN_TYPE},
             {"lambda", Enum::LAMBDA},
             {"lazy", Enum::LAZY},
             {"left", Enum::LEFT},
@@ -287,14 +310,17 @@ namespace quicktype {
             {"None", Enum::ENUM_NONE},
             {"nonlocal", Enum::NONLOCAL},
             {"nonmutating", Enum::NONMUTATING},
+            {"noSuchMethod", Enum::NO_SUCH_METHOD},
             {"not", Enum::NOT},
             {"not_eq", Enum::NOT_EQ},
+            {"NSError", Enum::NS_ERROR},
             {"NSString", Enum::NS_STRING},
             {"NULL", Enum::ENUM_NULL},
             {"null", Enum::PURPLE_NULL},
             {"nullptr", Enum::NULLPTR},
             {"number", Enum::NUMBER},
             {"object", Enum::OBJECT},
+            {"ObjectMapper", Enum::OBJECT_MAPPER},
             {"of", Enum::OF},
             {"oneway", Enum::ONEWAY},
             {"open", Enum::OPEN},
@@ -313,6 +339,7 @@ namespace quicktype {
             {"prefix", Enum::PREFIX},
             {"print", Enum::PRINT},
             {"printf", Enum::PRINTF},
+            {"printMembers", Enum::PRINT_MEMBERS},
             {"private", Enum::PRIVATE},
             {"protected", Enum::PROTECTED},
             {"Protocol", Enum::PROTOCOL},
@@ -323,6 +350,7 @@ namespace quicktype {
             {"range", Enum::RANGE},
             {"readonly", Enum::READONLY},
             {"ref", Enum::REF},
+            {"RegExp", Enum::REG_EXP},
             {"register", Enum::REGISTER},
             {"reinterpret_cast", Enum::REINTERPRET_CAST},
             {"repeat", Enum::REPEAT},
@@ -334,6 +362,8 @@ namespace quicktype {
             {"rethrows", Enum::RETHROWS},
             {"return", Enum::RETURN},
             {"right", Enum::RIGHT},
+            {"runtimeType", Enum::RUNTIME_TYPE},
+            {"s", Enum::S},
             {"sbyte", Enum::SBYTE},
             {"sealed", Enum::SEALED},
             {"SEL", Enum::SEL},
@@ -341,14 +371,19 @@ namespace quicktype {
             {"Self", Enum::SELF},
             {"self", Enum::ENUM_SELF},
             {"serialize", Enum::SERIALIZE},
+            {"SerializerProvider", Enum::SERIALIZER_PROVIDER},
             {"set", Enum::SET},
             {"short", Enum::SHORT},
             {"signed", Enum::SIGNED},
+            {"SimpleModule", Enum::SIMPLE_MODULE},
             {"sizeof", Enum::SIZEOF},
             {"stackalloc", Enum::STACKALLOC},
+            {"Standards", Enum::STANDARDS},
             {"static", Enum::STATIC},
             {"static_assert", Enum::STATIC_ASSERT},
             {"static_cast", Enum::STATIC_CAST},
+            {"StdDeserializer", Enum::STD_DESERIALIZER},
+            {"StdSerializer", Enum::STD_SERIALIZER},
             {"strictfp", Enum::STRICTFP},
             {"string", Enum::STRING},
             {"struct", Enum::STRUCT},
@@ -364,8 +399,11 @@ namespace quicktype {
             {"thread_local", Enum::THREAD_LOCAL},
             {"throw", Enum::THROW},
             {"throws", Enum::THROWS},
+            {"TimeOnly", Enum::TIME_ONLY},
+            {"TimeOnlyConverter", Enum::TIME_ONLY_CONVERTER},
             {"to_json", Enum::TO_JSON},
             {"top_level", Enum::TOP_LEVEL},
+            {"toString", Enum::TO_STRING},
             {"transient", Enum::TRANSIENT},
             {"True", Enum::TRUE},
             {"true", Enum::ENUM_TRUE},
@@ -387,6 +425,9 @@ namespace quicktype {
             {"unsigned", Enum::UNSIGNED},
             {"ushort", Enum::USHORT},
             {"using", Enum::USING},
+            {"Utf8JsonReader", Enum::UTF8_JSON_READER},
+            {"Utf8JsonWriter", Enum::UTF8_JSON_WRITER},
+            {"UUID", Enum::UUID},
             {"var", Enum::VAR},
             {"virtual", Enum::VIRTUAL},
             {"void", Enum::VOID},
@@ -455,6 +496,7 @@ namespace quicktype {
             case Enum::CHECKED: j = "checked"; break;
             case Enum::CLASS: j = "class"; break;
             case Enum::ENUM_CLASS: j = "Class"; break;
+            case Enum::CLONE: j = "clone"; break;
             case Enum::CO_AWAIT: j = "co_await"; break;
             case Enum::CO_RETURN: j = "co_return"; break;
             case Enum::CO_YIELD: j = "co_yield"; break;
@@ -469,8 +511,14 @@ namespace quicktype {
             case Enum::CONVENIENCE: j = "convenience"; break;
             case Enum::CONVERT: j = "convert"; break;
             case Enum::CONVERTER: j = "converter"; break;
+            case Enum::CULTURE_INFO: j = "CultureInfo"; break;
             case Enum::DATE: j = "date"; break;
             case Enum::DATE_PARSE_HANDLING: j = "date_parse_handling"; break;
+            case Enum::DATE_FORMATTER: j = "DateFormatter"; break;
+            case Enum::DATE_ONLY: j = "DateOnly"; break;
+            case Enum::DATE_ONLY_CONVERTER: j = "DateOnlyConverter"; break;
+            case Enum::DATE_TIME: j = "DateTime"; break;
+            case Enum::DATE_TIME_STYLES: j = "DateTimeStyles"; break;
             case Enum::DEBUGGER: j = "debugger"; break;
             case Enum::DECIMAL: j = "decimal"; break;
             case Enum::DECLARE: j = "declare"; break;
@@ -494,6 +542,8 @@ namespace quicktype {
             case Enum::ELSE: j = "else"; break;
             case Enum::ENCODE_QUICK_TYPE: j = "encode_quick_type"; break;
             case Enum::ENUM: j = "enum"; break;
+            case Enum::ENUM_VALUES: j = "EnumValues"; break;
+            case Enum::EQUALITY_CONTRACT: j = "equalityContract"; break;
             case Enum::EVENT: j = "event"; break;
             case Enum::EXCEPT: j = "except"; break;
             case Enum::EXCEPTION: j = "exception"; break;
@@ -513,6 +563,7 @@ namespace quicktype {
             case Enum::FLOAT: j = "float"; break;
             case Enum::FOR: j = "for"; break;
             case Enum::FOREACH: j = "foreach"; break;
+            case Enum::FORMAT_EXCEPTION: j = "FormatException"; break;
             case Enum::FRIEND: j = "friend"; break;
             case Enum::FROM: j = "from"; break;
             case Enum::FROM_JSON: j = "from_json"; break;
@@ -523,6 +574,7 @@ namespace quicktype {
             case Enum::GO: j = "go"; break;
             case Enum::GOTO: j = "goto"; break;
             case Enum::GUARD: j = "guard"; break;
+            case Enum::HASH_CODE: j = "hashCode"; break;
             case Enum::HAS_OWN_PROPERTY: j = "hasOwnProperty"; break;
             case Enum::ID: j = "id"; break;
             case Enum::IF: j = "if"; break;
@@ -540,6 +592,7 @@ namespace quicktype {
             case Enum::INT: j = "int"; break;
             case Enum::INTERFACE: j = "interface"; break;
             case Enum::INTERNAL: j = "internal"; break;
+            case Enum::ISO_DATE_TIME_OFFSET_CONVERTER: j = "IsoDateTimeOffsetConverter"; break;
             case Enum::ITERABLE: j = "iterable"; break;
             case Enum::IS: j = "is"; break;
             case Enum::JDEC: j = "jdec"; break;
@@ -550,6 +603,17 @@ namespace quicktype {
             case Enum::JSON_SERIALIZER: j = "json_serializer"; break;
             case Enum::JSON_TOKEN: j = "json_token"; break;
             case Enum::JSON_WRITER: j = "json_writer"; break;
+            case Enum::JSON_ANY: j = "JSONAny"; break;
+            case Enum::JSON_CODING_KEY: j = "JSONCodingKey"; break;
+            case Enum::JSON_DECODER: j = "JSONDecoder"; break;
+            case Enum::JSON_ENCODER: j = "JSONEncoder"; break;
+            case Enum::JSON_EXCEPTION: j = "JsonException"; break;
+            case Enum::JSON_GENERATOR: j = "JsonGenerator"; break;
+            case Enum::JSON_NODE: j = "JsonNode"; break;
+            case Enum::JSON_NULL: j = "JSONNull"; break;
+            case Enum::JSON_PARSER: j = "JsonParser"; break;
+            case Enum::JSON_READER: j = "JsonReader"; break;
+            case Enum::JSON_TOKEN_TYPE: j = "JsonTokenType"; break;
             case Enum::LAMBDA: j = "lambda"; break;
             case Enum::LAZY: j = "lazy"; break;
             case Enum::LEFT: j = "left"; break;
@@ -574,14 +638,17 @@ namespace quicktype {
             case Enum::ENUM_NONE: j = "None"; break;
             case Enum::NONLOCAL: j = "nonlocal"; break;
             case Enum::NONMUTATING: j = "nonmutating"; break;
+            case Enum::NO_SUCH_METHOD: j = "noSuchMethod"; break;
             case Enum::NOT: j = "not"; break;
             case Enum::NOT_EQ: j = "not_eq"; break;
+            case Enum::NS_ERROR: j = "NSError"; break;
             case Enum::NS_STRING: j = "NSString"; break;
             case Enum::ENUM_NULL: j = "NULL"; break;
             case Enum::PURPLE_NULL: j = "null"; break;
             case Enum::NULLPTR: j = "nullptr"; break;
             case Enum::NUMBER: j = "number"; break;
             case Enum::OBJECT: j = "object"; break;
+            case Enum::OBJECT_MAPPER: j = "ObjectMapper"; break;
             case Enum::OF: j = "of"; break;
             case Enum::ONEWAY: j = "oneway"; break;
             case Enum::OPEN: j = "open"; break;
@@ -600,6 +667,7 @@ namespace quicktype {
             case Enum::PREFIX: j = "prefix"; break;
             case Enum::PRINT: j = "print"; break;
             case Enum::PRINTF: j = "printf"; break;
+            case Enum::PRINT_MEMBERS: j = "printMembers"; break;
             case Enum::PRIVATE: j = "private"; break;
             case Enum::PROTECTED: j = "protected"; break;
             case Enum::PROTOCOL: j = "Protocol"; break;
@@ -610,6 +678,7 @@ namespace quicktype {
             case Enum::RANGE: j = "range"; break;
             case Enum::READONLY: j = "readonly"; break;
             case Enum::REF: j = "ref"; break;
+            case Enum::REG_EXP: j = "RegExp"; break;
             case Enum::REGISTER: j = "register"; break;
             case Enum::REINTERPRET_CAST: j = "reinterpret_cast"; break;
             case Enum::REPEAT: j = "repeat"; break;
@@ -621,6 +690,8 @@ namespace quicktype {
             case Enum::RETHROWS: j = "rethrows"; break;
             case Enum::RETURN: j = "return"; break;
             case Enum::RIGHT: j = "right"; break;
+            case Enum::RUNTIME_TYPE: j = "runtimeType"; break;
+            case Enum::S: j = "s"; break;
             case Enum::SBYTE: j = "sbyte"; break;
             case Enum::SEALED: j = "sealed"; break;
             case Enum::SEL: j = "SEL"; break;
@@ -628,14 +699,19 @@ namespace quicktype {
             case Enum::SELF: j = "Self"; break;
             case Enum::ENUM_SELF: j = "self"; break;
             case Enum::SERIALIZE: j = "serialize"; break;
+            case Enum::SERIALIZER_PROVIDER: j = "SerializerProvider"; break;
             case Enum::SET: j = "set"; break;
             case Enum::SHORT: j = "short"; break;
             case Enum::SIGNED: j = "signed"; break;
+            case Enum::SIMPLE_MODULE: j = "SimpleModule"; break;
             case Enum::SIZEOF: j = "sizeof"; break;
             case Enum::STACKALLOC: j = "stackalloc"; break;
+            case Enum::STANDARDS: j = "Standards"; break;
             case Enum::STATIC: j = "static"; break;
             case Enum::STATIC_ASSERT: j = "static_assert"; break;
             case Enum::STATIC_CAST: j = "static_cast"; break;
+            case Enum::STD_DESERIALIZER: j = "StdDeserializer"; break;
+            case Enum::STD_SERIALIZER: j = "StdSerializer"; break;
             case Enum::STRICTFP: j = "strictfp"; break;
             case Enum::STRING: j = "string"; break;
             case Enum::STRUCT: j = "struct"; break;
@@ -651,8 +727,11 @@ namespace quicktype {
             case Enum::THREAD_LOCAL: j = "thread_local"; break;
             case Enum::THROW: j = "throw"; break;
             case Enum::THROWS: j = "throws"; break;
+            case Enum::TIME_ONLY: j = "TimeOnly"; break;
+            case Enum::TIME_ONLY_CONVERTER: j = "TimeOnlyConverter"; break;
             case Enum::TO_JSON: j = "to_json"; break;
             case Enum::TOP_LEVEL: j = "top_level"; break;
+            case Enum::TO_STRING: j = "toString"; break;
             case Enum::TRANSIENT: j = "transient"; break;
             case Enum::TRUE: j = "True"; break;
             case Enum::ENUM_TRUE: j = "true"; break;
@@ -674,6 +753,9 @@ namespace quicktype {
             case Enum::UNSIGNED: j = "unsigned"; break;
             case Enum::USHORT: j = "ushort"; break;
             case Enum::USING: j = "using"; break;
+            case Enum::UTF8_JSON_READER: j = "Utf8JsonReader"; break;
+            case Enum::UTF8_JSON_WRITER: j = "Utf8JsonWriter"; break;
+            case Enum::UUID: j = "UUID"; break;
             case Enum::VAR: j = "var"; break;
             case Enum::VIRTUAL: j = "virtual"; break;
             case Enum::VOID: j = "void"; break;
diff --git a/base/schema-cplusplus/test/inputs/schema/keyword-unions.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/keyword-unions.schema/default/quicktype.hpp
index 52128a5..4db5334 100644
--- a/base/schema-cplusplus/test/inputs/schema/keyword-unions.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/keyword-unions.schema/default/quicktype.hpp
@@ -293,6 +293,18 @@ namespace quicktype {
 
     using UnionChecked = std::variant<Checked, double>;
 
+    class Clone {
+        public:
+        Clone() = default;
+        virtual ~Clone() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionClone = std::variant<Clone, double>;
+
     class Complex {
         public:
         Complex() = default;
@@ -365,6 +377,18 @@ namespace quicktype {
 
     using UnionConverter = std::variant<Converter, double>;
 
+    class CultureInfo {
+        public:
+        CultureInfo() = default;
+        virtual ~CultureInfo() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionCultureInfo = std::variant<CultureInfo, double>;
+
     class Date {
         public:
         Date() = default;
@@ -377,6 +401,42 @@ namespace quicktype {
 
     using UnionDate = std::variant<Date, double>;
 
+    class DateFormatter {
+        public:
+        DateFormatter() = default;
+        virtual ~DateFormatter() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionDateFormatter = std::variant<DateFormatter, double>;
+
+    class DateOnly {
+        public:
+        DateOnly() = default;
+        virtual ~DateOnly() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionDateOnly = std::variant<DateOnly, double>;
+
+    class DateOnlyConverter {
+        public:
+        DateOnlyConverter() = default;
+        virtual ~DateOnlyConverter() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionDateOnlyConverter = std::variant<DateOnlyConverter, double>;
+
     class DateParseHandling {
         public:
         DateParseHandling() = default;
@@ -389,6 +449,30 @@ namespace quicktype {
 
     using UnionDateParseHandling = std::variant<DateParseHandling, double>;
 
+    class DateTime {
+        public:
+        DateTime() = default;
+        virtual ~DateTime() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionDateTime = std::variant<DateTime, double>;
+
+    class DateTimeStyles {
+        public:
+        DateTimeStyles() = default;
+        virtual ~DateTimeStyles() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionDateTimeStyles = std::variant<DateTimeStyles, double>;
+
     class Debugger {
         public:
         Debugger() = default;
@@ -581,6 +665,30 @@ namespace quicktype {
 
     using UnionEncodeQuickType = std::variant<EncodeQuickType, double>;
 
+    class EnumValues {
+        public:
+        EnumValues() = default;
+        virtual ~EnumValues() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionEnumValues = std::variant<EnumValues, double>;
+
+    class EqualityContract {
+        public:
+        EqualityContract() = default;
+        virtual ~EqualityContract() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionEqualityContract = std::variant<EqualityContract, double>;
+
     class Event {
         public:
         Event() = default;
@@ -725,6 +833,18 @@ namespace quicktype {
 
     using UnionForeach = std::variant<Foreach, double>;
 
+    class FormatException {
+        public:
+        FormatException() = default;
+        virtual ~FormatException() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionFormatException = std::variant<FormatException, double>;
+
     class From {
         public:
         From() = default;
@@ -833,6 +953,18 @@ namespace quicktype {
 
     using UnionHasOwnProperty = std::variant<HasOwnProperty, double>;
 
+    class HashCode {
+        public:
+        HashCode() = default;
+        virtual ~HashCode() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionHashCode = std::variant<HashCode, double>;
+
     class Id {
         public:
         Id() = default;
@@ -1001,6 +1133,18 @@ namespace quicktype {
 
     using UnionIs = std::variant<Is, double>;
 
+    class IsoDateTimeOffsetConverter {
+        public:
+        IsoDateTimeOffsetConverter() = default;
+        virtual ~IsoDateTimeOffsetConverter() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionIsoDateTimeOffsetConverter = std::variant<IsoDateTimeOffsetConverter, double>;
+
     class Iterable {
         public:
         Iterable() = default;
@@ -1061,6 +1205,30 @@ namespace quicktype {
 
     using UnionJson = std::variant<Json, double>;
 
+    class JsonAny {
+        public:
+        JsonAny() = default;
+        virtual ~JsonAny() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonAny = std::variant<JsonAny, double>;
+
+    class JsonCodingKey {
+        public:
+        JsonCodingKey() = default;
+        virtual ~JsonCodingKey() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonCodingKey = std::variant<JsonCodingKey, double>;
+
     class JsonConverter {
         public:
         JsonConverter() = default;
@@ -1073,6 +1241,102 @@ namespace quicktype {
 
     using UnionJsonConverter = std::variant<JsonConverter, double>;
 
+    class JsonDecoder {
+        public:
+        JsonDecoder() = default;
+        virtual ~JsonDecoder() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonDecoder = std::variant<JsonDecoder, double>;
+
+    class JsonEncoder {
+        public:
+        JsonEncoder() = default;
+        virtual ~JsonEncoder() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonEncoder = std::variant<JsonEncoder, double>;
+
+    class JsonException {
+        public:
+        JsonException() = default;
+        virtual ~JsonException() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonException = std::variant<JsonException, double>;
+
+    class JsonGenerator {
+        public:
+        JsonGenerator() = default;
+        virtual ~JsonGenerator() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonGenerator = std::variant<JsonGenerator, double>;
+
+    class JsonNode {
+        public:
+        JsonNode() = default;
+        virtual ~JsonNode() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonNode = std::variant<JsonNode, double>;
+
+    class JsonNull {
+        public:
+        JsonNull() = default;
+        virtual ~JsonNull() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonNull = std::variant<JsonNull, double>;
+
+    class JsonParser {
+        public:
+        JsonParser() = default;
+        virtual ~JsonParser() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonParser = std::variant<JsonParser, double>;
+
+    class JsonReader {
+        public:
+        JsonReader() = default;
+        virtual ~JsonReader() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonReader = std::variant<JsonReader, double>;
+
     class JsonSerializer {
         public:
         JsonSerializer() = default;
@@ -1097,6 +1361,18 @@ namespace quicktype {
 
     using UnionJsonToken = std::variant<JsonToken, double>;
 
+    class JsonTokenType {
+        public:
+        JsonTokenType() = default;
+        virtual ~JsonTokenType() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionJsonTokenType = std::variant<JsonTokenType, double>;
+
     class JsonWriter {
         public:
         JsonWriter() = default;
@@ -1265,6 +1541,18 @@ namespace quicktype {
 
     using UnionNo = std::variant<No, double>;
 
+    class NoSuchMethod {
+        public:
+        NoSuchMethod() = default;
+        virtual ~NoSuchMethod() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionNoSuchMethod = std::variant<NoSuchMethod, double>;
+
     class Nonatomic {
         public:
         Nonatomic() = default;
@@ -1313,6 +1601,18 @@ namespace quicktype {
 
     using UnionNonmutating = std::variant<Nonmutating, double>;
 
+    class NsError {
+        public:
+        NsError() = default;
+        virtual ~NsError() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionNsError = std::variant<NsError, double>;
+
     class NsString {
         public:
         NsString() = default;
@@ -1361,6 +1661,18 @@ namespace quicktype {
 
     using UnionObject = std::variant<Object, double>;
 
+    class ObjectMapper {
+        public:
+        ObjectMapper() = default;
+        virtual ~ObjectMapper() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionObjectMapper = std::variant<ObjectMapper, double>;
+
     class Of {
         public:
         Of() = default;
@@ -1517,6 +1829,18 @@ namespace quicktype {
 
     using UnionPrint = std::variant<Print, double>;
 
+    class PrintMembers {
+        public:
+        PrintMembers() = default;
+        virtual ~PrintMembers() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionPrintMembers = std::variant<PrintMembers, double>;
+
     class Printf {
         public:
         Printf() = default;
@@ -1649,6 +1973,18 @@ namespace quicktype {
 
     using UnionRef = std::variant<Ref, double>;
 
+    class RegExp {
+        public:
+        RegExp() = default;
+        virtual ~RegExp() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionRegExp = std::variant<RegExp, double>;
+
     class Repeat {
         public:
         Repeat() = default;
@@ -1733,6 +2069,30 @@ namespace quicktype {
 
     using UnionRight = std::variant<Right, double>;
 
+    class RuntimeType {
+        public:
+        RuntimeType() = default;
+        virtual ~RuntimeType() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionRuntimeType = std::variant<RuntimeType, double>;
+
+    class S {
+        public:
+        S() = default;
+        virtual ~S() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionS = std::variant<S, double>;
+
     class Sbyte {
         public:
         Sbyte() = default;
@@ -1805,41 +2165,101 @@ namespace quicktype {
 
     using UnionSerialize = std::variant<Serialize, double>;
 
-    class Set {
+    class SerializerProvider {
         public:
-        Set() = default;
-        virtual ~Set() = default;
+        SerializerProvider() = default;
+        virtual ~SerializerProvider() = default;
 
         private:
 
         public:
     };
 
-    using UnionSet = std::variant<Set, double>;
+    using UnionSerializerProvider = std::variant<SerializerProvider, double>;
 
-    class Stackalloc {
+    class Set {
         public:
-        Stackalloc() = default;
-        virtual ~Stackalloc() = default;
+        Set() = default;
+        virtual ~Set() = default;
 
         private:
 
         public:
     };
 
-    using UnionStackalloc = std::variant<Stackalloc, double>;
+    using UnionSet = std::variant<Set, double>;
 
-    class Strictfp {
+    class SimpleModule {
         public:
-        Strictfp() = default;
-        virtual ~Strictfp() = default;
+        SimpleModule() = default;
+        virtual ~SimpleModule() = default;
 
         private:
 
         public:
     };
 
-    using UnionStrictfp = std::variant<Strictfp, double>;
+    using UnionSimpleModule = std::variant<SimpleModule, double>;
+
+    class Stackalloc {
+        public:
+        Stackalloc() = default;
+        virtual ~Stackalloc() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionStackalloc = std::variant<Stackalloc, double>;
+
+    class Standards {
+        public:
+        Standards() = default;
+        virtual ~Standards() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionStandards = std::variant<Standards, double>;
+
+    class StdDeserializer {
+        public:
+        StdDeserializer() = default;
+        virtual ~StdDeserializer() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionStdDeserializer = std::variant<StdDeserializer, double>;
+
+    class StdSerializer {
+        public:
+        StdSerializer() = default;
+        virtual ~StdSerializer() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionStdSerializer = std::variant<StdSerializer, double>;
+
+    class Strictfp {
+        public:
+        Strictfp() = default;
+        virtual ~Strictfp() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionStrictfp = std::variant<Strictfp, double>;
 
     class String {
         public:
@@ -1925,6 +2345,30 @@ namespace quicktype {
 
     using UnionThrows = std::variant<Throws, double>;
 
+    class TimeOnly {
+        public:
+        TimeOnly() = default;
+        virtual ~TimeOnly() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionTimeOnly = std::variant<TimeOnly, double>;
+
+    class TimeOnlyConverter {
+        public:
+        TimeOnlyConverter() = default;
+        virtual ~TimeOnlyConverter() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionTimeOnlyConverter = std::variant<TimeOnlyConverter, double>;
+
     class ToJson {
         public:
         ToJson() = default;
@@ -1937,6 +2381,18 @@ namespace quicktype {
 
     using UnionToJson = std::variant<ToJson, double>;
 
+    class ToString {
+        public:
+        ToString() = default;
+        virtual ~ToString() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionToString = std::variant<ToString, double>;
+
     class TopLevelClass {
         public:
         TopLevelClass() = default;
@@ -3317,6 +3773,42 @@ namespace quicktype {
 
     using UnionUshort = std::variant<Ushort, double>;
 
+    class Utf8JsonReader {
+        public:
+        Utf8JsonReader() = default;
+        virtual ~Utf8JsonReader() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionUtf8JsonReader = std::variant<Utf8JsonReader, double>;
+
+    class Utf8JsonWriter {
+        public:
+        Utf8JsonWriter() = default;
+        virtual ~Utf8JsonWriter() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionUtf8JsonWriter = std::variant<Utf8JsonWriter, double>;
+
+    class Uuid {
+        public:
+        Uuid() = default;
+        virtual ~Uuid() = default;
+
+        private:
+
+        public:
+    };
+
+    using UnionUuid = std::variant<Uuid, double>;
+
     class Var {
         public:
         Var() = default;
@@ -3450,6 +3942,7 @@ namespace quicktype {
         std::optional<UnionChecked> checked;
         std::optional<UnionClassUnion> purple_class;
         std::optional<UnionClass> top_level_class;
+        std::optional<UnionClone> clone;
         std::optional<UnionCoAwait> top_level_co_await;
         std::optional<UnionCoReturn> top_level_co_return;
         std::optional<UnionCoYield> top_level_co_yield;
@@ -3464,8 +3957,14 @@ namespace quicktype {
         std::optional<UnionConvenience> convenience;
         std::optional<UnionConvert> convert;
         std::optional<UnionConverter> converter;
+        std::optional<UnionCultureInfo> culture_info;
         std::optional<UnionDate> date;
         std::optional<UnionDateParseHandling> date_parse_handling;
+        std::optional<UnionDateFormatter> date_formatter;
+        std::optional<UnionDateOnly> date_only;
+        std::optional<UnionDateOnlyConverter> date_only_converter;
+        std::optional<UnionDateTime> date_time;
+        std::optional<UnionDateTimeStyles> date_time_styles;
         std::optional<UnionDebugger> debugger;
         std::optional<UnionDecimal> decimal;
         std::optional<UnionDeclare> declare;
@@ -3490,6 +3989,8 @@ namespace quicktype {
         std::optional<UnionElse> top_level_else;
         std::optional<UnionEncodeQuickType> encode_quick_type;
         std::optional<UnionEnum> top_level_enum;
+        std::optional<UnionEnumValues> enum_values;
+        std::optional<UnionEqualityContract> equality_contract;
         std::optional<UnionEvent> event;
         std::optional<UnionExcept> except;
         std::optional<UnionException> exception;
@@ -3509,6 +4010,7 @@ namespace quicktype {
         std::optional<UnionFloat> top_level_float;
         std::optional<UnionFor> top_level_for;
         std::optional<UnionForeach> foreach;
+        std::optional<UnionFormatException> format_exception;
         std::optional<UnionFriend> top_level_friend;
         std::optional<UnionFrom> from;
         std::optional<UnionFromJson> from_json;
@@ -3519,6 +4021,7 @@ namespace quicktype {
         std::optional<UnionGo> go;
         std::optional<UnionGoto> top_level_goto;
         std::optional<UnionGuard> guard;
+        std::optional<UnionHashCode> hash_code;
         std::optional<UnionHasOwnProperty> has_own_property;
         std::optional<UnionId> id;
         std::optional<UnionIf> top_level_if;
@@ -3537,6 +4040,7 @@ namespace quicktype {
         std::optional<UnionInterface> interface;
         std::optional<UnionInternal> internal;
         std::optional<UnionIs> is;
+        std::optional<UnionIsoDateTimeOffsetConverter> iso_date_time_offset_converter;
         std::optional<UnionIterable> iterable;
         std::optional<UnionJdec> jdec;
         std::optional<UnionJenc> jenc;
@@ -3546,6 +4050,17 @@ namespace quicktype {
         std::optional<UnionJsonSerializer> json_serializer;
         std::optional<UnionJsonToken> json_token;
         std::optional<UnionJsonWriter> json_writer;
+        std::optional<UnionJsonAny> json_any;
+        std::optional<UnionJsonCodingKey> json_coding_key;
+        std::optional<UnionJsonDecoder> json_decoder;
+        std::optional<UnionJsonEncoder> json_encoder;
+        std::optional<UnionJsonException> json_exception;
+        std::optional<UnionJsonGenerator> json_generator;
+        std::optional<UnionJsonNode> json_node;
+        std::optional<UnionJsonNull> json_null;
+        std::optional<UnionJsonParser> json_parser;
+        std::optional<UnionJsonReader> json_reader;
+        std::optional<UnionJsonTokenType> json_token_type;
         std::optional<UnionLambda> lambda;
         std::optional<UnionLazy> lazy;
         std::optional<UnionLeft> left;
@@ -3570,14 +4085,17 @@ namespace quicktype {
         std::optional<UnionNone> none;
         std::optional<UnionNonlocal> nonlocal;
         std::optional<UnionNonmutating> nonmutating;
+        std::optional<UnionNoSuchMethod> no_such_method;
         std::optional<UnionNot> top_level_not;
         std::optional<UnionNotEq> top_level_not_eq;
+        std::optional<UnionNsError> ns_error;
         std::optional<UnionNsString> ns_string;
         std::optional<UnionNull> null;
         std::optional<UnionNullUnion> top_level_null;
         std::optional<UnionNullptr> top_level_nullptr;
         std::optional<UnionNumber> number;
         std::optional<UnionObject> object;
+        std::optional<UnionObjectMapper> object_mapper;
         std::optional<UnionOf> of;
         std::optional<UnionOneway> oneway;
         std::optional<UnionOpen> open;
@@ -3596,6 +4114,7 @@ namespace quicktype {
         std::optional<UnionPrefix> prefix;
         std::optional<UnionPrint> print;
         std::optional<UnionPrintf> printf;
+        std::optional<UnionPrintMembers> print_members;
         std::optional<UnionPrivate> top_level_private;
         std::optional<UnionProtected> top_level_protected;
         std::optional<UnionProtocol> protocol;
@@ -3606,6 +4125,7 @@ namespace quicktype {
         std::optional<UnionRange> range;
         std::optional<UnionReadonly> readonly;
         std::optional<UnionRef> ref;
+        std::optional<UnionRegExp> reg_exp;
         std::optional<UnionRegister> top_level_register;
         std::optional<UnionReinterpretCast> top_level_reinterpret_cast;
         std::optional<UnionRepeat> repeat;
@@ -3617,6 +4137,8 @@ namespace quicktype {
         std::optional<UnionRethrows> rethrows;
         std::optional<UnionReturn> top_level_return;
         std::optional<UnionRight> right;
+        std::optional<UnionRuntimeType> runtime_type;
+        std::optional<UnionS> s;
         std::optional<UnionSbyte> sbyte;
         std::optional<UnionSealed> sealed;
         std::optional<UnionSel> sel;
@@ -3624,14 +4146,19 @@ namespace quicktype {
         std::optional<UnionSelf> self;
         std::optional<UnionSelfUnion> top_level_self;
         std::optional<UnionSerialize> serialize;
+        std::optional<UnionSerializerProvider> serializer_provider;
         std::optional<UnionSet> set;
         std::optional<UnionShort> top_level_short;
         std::optional<UnionSigned> top_level_signed;
+        std::optional<UnionSimpleModule> simple_module;
         std::optional<UnionSizeof> top_level_sizeof;
         std::optional<UnionStackalloc> stackalloc;
+        std::optional<UnionStandards> standards;
         std::optional<UnionStatic> top_level_static;
         std::optional<UnionStaticAssert> top_level_static_assert;
         std::optional<UnionStaticCast> top_level_static_cast;
+        std::optional<UnionStdDeserializer> std_deserializer;
+        std::optional<UnionStdSerializer> std_serializer;
         std::optional<UnionStrictfp> strictfp;
         std::optional<UnionString> string;
         std::optional<UnionStruct> top_level_struct;
@@ -3647,8 +4174,11 @@ namespace quicktype {
         std::optional<UnionThreadLocal> top_level_thread_local;
         std::optional<UnionThrow> top_level_throw;
         std::optional<UnionThrows> throws;
+        std::optional<UnionTimeOnly> time_only;
+        std::optional<UnionTimeOnlyConverter> time_only_converter;
         std::optional<UnionToJson> to_json;
         std::optional<UnionTopLevel> top_level;
+        std::optional<UnionToString> to_string;
         std::optional<UnionTransient> transient;
         std::optional<UnionTrue> top_level_true;
         std::optional<UnionTrueUnion> purple_true;
@@ -3670,6 +4200,9 @@ namespace quicktype {
         std::optional<UnionUnsigned> top_level_unsigned;
         std::optional<UnionUshort> ushort;
         std::optional<UnionUsing> top_level_using;
+        std::optional<UnionUtf8JsonReader> utf8_json_reader;
+        std::optional<UnionUtf8JsonWriter> utf8_json_writer;
+        std::optional<UnionUuid> uuid;
         std::optional<UnionVar> var;
         std::optional<UnionVirtual> top_level_virtual;
         std::optional<UnionVoid> top_level_void;
@@ -3858,6 +4391,10 @@ namespace quicktype {
         std::optional<UnionClass> & get_mutable_top_level_class() { return top_level_class; }
         void set_top_level_class(const std::optional<UnionClass> & value) { this->top_level_class = value; }
 
+        const std::optional<UnionClone> & get_clone() const { return clone; }
+        std::optional<UnionClone> & get_mutable_clone() { return clone; }
+        void set_clone(const std::optional<UnionClone> & value) { this->clone = value; }
+
         const std::optional<UnionCoAwait> & get_top_level_co_await() const { return top_level_co_await; }
         std::optional<UnionCoAwait> & get_mutable_top_level_co_await() { return top_level_co_await; }
         void set_top_level_co_await(const std::optional<UnionCoAwait> & value) { this->top_level_co_await = value; }
@@ -3914,6 +4451,10 @@ namespace quicktype {
         std::optional<UnionConverter> & get_mutable_converter() { return converter; }
         void set_converter(const std::optional<UnionConverter> & value) { this->converter = value; }
 
+        const std::optional<UnionCultureInfo> & get_culture_info() const { return culture_info; }
+        std::optional<UnionCultureInfo> & get_mutable_culture_info() { return culture_info; }
+        void set_culture_info(const std::optional<UnionCultureInfo> & value) { this->culture_info = value; }
+
         const std::optional<UnionDate> & get_date() const { return date; }
         std::optional<UnionDate> & get_mutable_date() { return date; }
         void set_date(const std::optional<UnionDate> & value) { this->date = value; }
@@ -3922,6 +4463,26 @@ namespace quicktype {
         std::optional<UnionDateParseHandling> & get_mutable_date_parse_handling() { return date_parse_handling; }
         void set_date_parse_handling(const std::optional<UnionDateParseHandling> & value) { this->date_parse_handling = value; }
 
+        const std::optional<UnionDateFormatter> & get_date_formatter() const { return date_formatter; }
+        std::optional<UnionDateFormatter> & get_mutable_date_formatter() { return date_formatter; }
+        void set_date_formatter(const std::optional<UnionDateFormatter> & value) { this->date_formatter = value; }
+
+        const std::optional<UnionDateOnly> & get_date_only() const { return date_only; }
+        std::optional<UnionDateOnly> & get_mutable_date_only() { return date_only; }
+        void set_date_only(const std::optional<UnionDateOnly> & value) { this->date_only = value; }
+
+        const std::optional<UnionDateOnlyConverter> & get_date_only_converter() const { return date_only_converter; }
+        std::optional<UnionDateOnlyConverter> & get_mutable_date_only_converter() { return date_only_converter; }
+        void set_date_only_converter(const std::optional<UnionDateOnlyConverter> & value) { this->date_only_converter = value; }
+
+        const std::optional<UnionDateTime> & get_date_time() const { return date_time; }
+        std::optional<UnionDateTime> & get_mutable_date_time() { return date_time; }
+        void set_date_time(const std::optional<UnionDateTime> & value) { this->date_time = value; }
+
+        const std::optional<UnionDateTimeStyles> & get_date_time_styles() const { return date_time_styles; }
+        std::optional<UnionDateTimeStyles> & get_mutable_date_time_styles() { return date_time_styles; }
+        void set_date_time_styles(const std::optional<UnionDateTimeStyles> & value) { this->date_time_styles = value; }
+
         const std::optional<UnionDebugger> & get_debugger() const { return debugger; }
         std::optional<UnionDebugger> & get_mutable_debugger() { return debugger; }
         void set_debugger(const std::optional<UnionDebugger> & value) { this->debugger = value; }
@@ -4018,6 +4579,14 @@ namespace quicktype {
         std::optional<UnionEnum> & get_mutable_top_level_enum() { return top_level_enum; }
         void set_top_level_enum(const std::optional<UnionEnum> & value) { this->top_level_enum = value; }
 
+        const std::optional<UnionEnumValues> & get_enum_values() const { return enum_values; }
+        std::optional<UnionEnumValues> & get_mutable_enum_values() { return enum_values; }
+        void set_enum_values(const std::optional<UnionEnumValues> & value) { this->enum_values = value; }
+
+        const std::optional<UnionEqualityContract> & get_equality_contract() const { return equality_contract; }
+        std::optional<UnionEqualityContract> & get_mutable_equality_contract() { return equality_contract; }
+        void set_equality_contract(const std::optional<UnionEqualityContract> & value) { this->equality_contract = value; }
+
         const std::optional<UnionEvent> & get_event() const { return event; }
         std::optional<UnionEvent> & get_mutable_event() { return event; }
         void set_event(const std::optional<UnionEvent> & value) { this->event = value; }
@@ -4094,6 +4663,10 @@ namespace quicktype {
         std::optional<UnionForeach> & get_mutable_foreach() { return foreach; }
         void set_foreach(const std::optional<UnionForeach> & value) { this->foreach = value; }
 
+        const std::optional<UnionFormatException> & get_format_exception() const { return format_exception; }
+        std::optional<UnionFormatException> & get_mutable_format_exception() { return format_exception; }
+        void set_format_exception(const std::optional<UnionFormatException> & value) { this->format_exception = value; }
+
         const std::optional<UnionFriend> & get_top_level_friend() const { return top_level_friend; }
         std::optional<UnionFriend> & get_mutable_top_level_friend() { return top_level_friend; }
         void set_top_level_friend(const std::optional<UnionFriend> & value) { this->top_level_friend = value; }
@@ -4134,6 +4707,10 @@ namespace quicktype {
         std::optional<UnionGuard> & get_mutable_guard() { return guard; }
         void set_guard(const std::optional<UnionGuard> & value) { this->guard = value; }
 
+        const std::optional<UnionHashCode> & get_hash_code() const { return hash_code; }
+        std::optional<UnionHashCode> & get_mutable_hash_code() { return hash_code; }
+        void set_hash_code(const std::optional<UnionHashCode> & value) { this->hash_code = value; }
+
         const std::optional<UnionHasOwnProperty> & get_has_own_property() const { return has_own_property; }
         std::optional<UnionHasOwnProperty> & get_mutable_has_own_property() { return has_own_property; }
         void set_has_own_property(const std::optional<UnionHasOwnProperty> & value) { this->has_own_property = value; }
@@ -4206,6 +4783,10 @@ namespace quicktype {
         std::optional<UnionIs> & get_mutable_is() { return is; }
         void set_is(const std::optional<UnionIs> & value) { this->is = value; }
 
+        const std::optional<UnionIsoDateTimeOffsetConverter> & get_iso_date_time_offset_converter() const { return iso_date_time_offset_converter; }
+        std::optional<UnionIsoDateTimeOffsetConverter> & get_mutable_iso_date_time_offset_converter() { return iso_date_time_offset_converter; }
+        void set_iso_date_time_offset_converter(const std::optional<UnionIsoDateTimeOffsetConverter> & value) { this->iso_date_time_offset_converter = value; }
+
         const std::optional<UnionIterable> & get_iterable() const { return iterable; }
         std::optional<UnionIterable> & get_mutable_iterable() { return iterable; }
         void set_iterable(const std::optional<UnionIterable> & value) { this->iterable = value; }
@@ -4242,6 +4823,50 @@ namespace quicktype {
         std::optional<UnionJsonWriter> & get_mutable_json_writer() { return json_writer; }
         void set_json_writer(const std::optional<UnionJsonWriter> & value) { this->json_writer = value; }
 
+        const std::optional<UnionJsonAny> & get_json_any() const { return json_any; }
+        std::optional<UnionJsonAny> & get_mutable_json_any() { return json_any; }
+        void set_json_any(const std::optional<UnionJsonAny> & value) { this->json_any = value; }
+
+        const std::optional<UnionJsonCodingKey> & get_json_coding_key() const { return json_coding_key; }
+        std::optional<UnionJsonCodingKey> & get_mutable_json_coding_key() { return json_coding_key; }
+        void set_json_coding_key(const std::optional<UnionJsonCodingKey> & value) { this->json_coding_key = value; }
+
+        const std::optional<UnionJsonDecoder> & get_json_decoder() const { return json_decoder; }
+        std::optional<UnionJsonDecoder> & get_mutable_json_decoder() { return json_decoder; }
+        void set_json_decoder(const std::optional<UnionJsonDecoder> & value) { this->json_decoder = value; }
+
+        const std::optional<UnionJsonEncoder> & get_json_encoder() const { return json_encoder; }
+        std::optional<UnionJsonEncoder> & get_mutable_json_encoder() { return json_encoder; }
+        void set_json_encoder(const std::optional<UnionJsonEncoder> & value) { this->json_encoder = value; }
+
+        const std::optional<UnionJsonException> & get_json_exception() const { return json_exception; }
+        std::optional<UnionJsonException> & get_mutable_json_exception() { return json_exception; }
+        void set_json_exception(const std::optional<UnionJsonException> & value) { this->json_exception = value; }
+
+        const std::optional<UnionJsonGenerator> & get_json_generator() const { return json_generator; }
+        std::optional<UnionJsonGenerator> & get_mutable_json_generator() { return json_generator; }
+        void set_json_generator(const std::optional<UnionJsonGenerator> & value) { this->json_generator = value; }
+
+        const std::optional<UnionJsonNode> & get_json_node() const { return json_node; }
+        std::optional<UnionJsonNode> & get_mutable_json_node() { return json_node; }
+        void set_json_node(const std::optional<UnionJsonNode> & value) { this->json_node = value; }
+
+        const std::optional<UnionJsonNull> & get_json_null() const { return json_null; }
+        std::optional<UnionJsonNull> & get_mutable_json_null() { return json_null; }
+        void set_json_null(const std::optional<UnionJsonNull> & value) { this->json_null = value; }
+
+        const std::optional<UnionJsonParser> & get_json_parser() const { return json_parser; }
+        std::optional<UnionJsonParser> & get_mutable_json_parser() { return json_parser; }
+        void set_json_parser(const std::optional<UnionJsonParser> & value) { this->json_parser = value; }
+
+        const std::optional<UnionJsonReader> & get_json_reader() const { return json_reader; }
+        std::optional<UnionJsonReader> & get_mutable_json_reader() { return json_reader; }
+        void set_json_reader(const std::optional<UnionJsonReader> & value) { this->json_reader = value; }
+
+        const std::optional<UnionJsonTokenType> & get_json_token_type() const { return json_token_type; }
+        std::optional<UnionJsonTokenType> & get_mutable_json_token_type() { return json_token_type; }
+        void set_json_token_type(const std::optional<UnionJsonTokenType> & value) { this->json_token_type = value; }
+
         const std::optional<UnionLambda> & get_lambda() const { return lambda; }
         std::optional<UnionLambda> & get_mutable_lambda() { return lambda; }
         void set_lambda(const std::optional<UnionLambda> & value) { this->lambda = value; }
@@ -4338,6 +4963,10 @@ namespace quicktype {
         std::optional<UnionNonmutating> & get_mutable_nonmutating() { return nonmutating; }
         void set_nonmutating(const std::optional<UnionNonmutating> & value) { this->nonmutating = value; }
 
+        const std::optional<UnionNoSuchMethod> & get_no_such_method() const { return no_such_method; }
+        std::optional<UnionNoSuchMethod> & get_mutable_no_such_method() { return no_such_method; }
+        void set_no_such_method(const std::optional<UnionNoSuchMethod> & value) { this->no_such_method = value; }
+
         const std::optional<UnionNot> & get_top_level_not() const { return top_level_not; }
         std::optional<UnionNot> & get_mutable_top_level_not() { return top_level_not; }
         void set_top_level_not(const std::optional<UnionNot> & value) { this->top_level_not = value; }
@@ -4346,6 +4975,10 @@ namespace quicktype {
         std::optional<UnionNotEq> & get_mutable_top_level_not_eq() { return top_level_not_eq; }
         void set_top_level_not_eq(const std::optional<UnionNotEq> & value) { this->top_level_not_eq = value; }
 
+        const std::optional<UnionNsError> & get_ns_error() const { return ns_error; }
+        std::optional<UnionNsError> & get_mutable_ns_error() { return ns_error; }
+        void set_ns_error(const std::optional<UnionNsError> & value) { this->ns_error = value; }
+
         const std::optional<UnionNsString> & get_ns_string() const { return ns_string; }
         std::optional<UnionNsString> & get_mutable_ns_string() { return ns_string; }
         void set_ns_string(const std::optional<UnionNsString> & value) { this->ns_string = value; }
@@ -4370,6 +5003,10 @@ namespace quicktype {
         std::optional<UnionObject> & get_mutable_object() { return object; }
         void set_object(const std::optional<UnionObject> & value) { this->object = value; }
 
+        const std::optional<UnionObjectMapper> & get_object_mapper() const { return object_mapper; }
+        std::optional<UnionObjectMapper> & get_mutable_object_mapper() { return object_mapper; }
+        void set_object_mapper(const std::optional<UnionObjectMapper> & value) { this->object_mapper = value; }
+
         const std::optional<UnionOf> & get_of() const { return of; }
         std::optional<UnionOf> & get_mutable_of() { return of; }
         void set_of(const std::optional<UnionOf> & value) { this->of = value; }
@@ -4442,6 +5079,10 @@ namespace quicktype {
         std::optional<UnionPrintf> & get_mutable_printf() { return printf; }
         void set_printf(const std::optional<UnionPrintf> & value) { this->printf = value; }
 
+        const std::optional<UnionPrintMembers> & get_print_members() const { return print_members; }
+        std::optional<UnionPrintMembers> & get_mutable_print_members() { return print_members; }
+        void set_print_members(const std::optional<UnionPrintMembers> & value) { this->print_members = value; }
+
         const std::optional<UnionPrivate> & get_top_level_private() const { return top_level_private; }
         std::optional<UnionPrivate> & get_mutable_top_level_private() { return top_level_private; }
         void set_top_level_private(const std::optional<UnionPrivate> & value) { this->top_level_private = value; }
@@ -4482,6 +5123,10 @@ namespace quicktype {
         std::optional<UnionRef> & get_mutable_ref() { return ref; }
         void set_ref(const std::optional<UnionRef> & value) { this->ref = value; }
 
+        const std::optional<UnionRegExp> & get_reg_exp() const { return reg_exp; }
+        std::optional<UnionRegExp> & get_mutable_reg_exp() { return reg_exp; }
+        void set_reg_exp(const std::optional<UnionRegExp> & value) { this->reg_exp = value; }
+
         const std::optional<UnionRegister> & get_top_level_register() const { return top_level_register; }
         std::optional<UnionRegister> & get_mutable_top_level_register() { return top_level_register; }
         void set_top_level_register(const std::optional<UnionRegister> & value) { this->top_level_register = value; }
@@ -4526,6 +5171,14 @@ namespace quicktype {
         std::optional<UnionRight> & get_mutable_right() { return right; }
         void set_right(const std::optional<UnionRight> & value) { this->right = value; }
 
+        const std::optional<UnionRuntimeType> & get_runtime_type() const { return runtime_type; }
+        std::optional<UnionRuntimeType> & get_mutable_runtime_type() { return runtime_type; }
+        void set_runtime_type(const std::optional<UnionRuntimeType> & value) { this->runtime_type = value; }
+
+        const std::optional<UnionS> & get_s() const { return s; }
+        std::optional<UnionS> & get_mutable_s() { return s; }
+        void set_s(const std::optional<UnionS> & value) { this->s = value; }
+
         const std::optional<UnionSbyte> & get_sbyte() const { return sbyte; }
         std::optional<UnionSbyte> & get_mutable_sbyte() { return sbyte; }
         void set_sbyte(const std::optional<UnionSbyte> & value) { this->sbyte = value; }
@@ -4554,6 +5207,10 @@ namespace quicktype {
         std::optional<UnionSerialize> & get_mutable_serialize() { return serialize; }
         void set_serialize(const std::optional<UnionSerialize> & value) { this->serialize = value; }
 
+        const std::optional<UnionSerializerProvider> & get_serializer_provider() const { return serializer_provider; }
+        std::optional<UnionSerializerProvider> & get_mutable_serializer_provider() { return serializer_provider; }
+        void set_serializer_provider(const std::optional<UnionSerializerProvider> & value) { this->serializer_provider = value; }
+
         const std::optional<UnionSet> & get_set() const { return set; }
         std::optional<UnionSet> & get_mutable_set() { return set; }
         void set_set(const std::optional<UnionSet> & value) { this->set = value; }
@@ -4566,6 +5223,10 @@ namespace quicktype {
         std::optional<UnionSigned> & get_mutable_top_level_signed() { return top_level_signed; }
         void set_top_level_signed(const std::optional<UnionSigned> & value) { this->top_level_signed = value; }
 
+        const std::optional<UnionSimpleModule> & get_simple_module() const { return simple_module; }
+        std::optional<UnionSimpleModule> & get_mutable_simple_module() { return simple_module; }
+        void set_simple_module(const std::optional<UnionSimpleModule> & value) { this->simple_module = value; }
+
         const std::optional<UnionSizeof> & get_top_level_sizeof() const { return top_level_sizeof; }
         std::optional<UnionSizeof> & get_mutable_top_level_sizeof() { return top_level_sizeof; }
         void set_top_level_sizeof(const std::optional<UnionSizeof> & value) { this->top_level_sizeof = value; }
@@ -4574,6 +5235,10 @@ namespace quicktype {
         std::optional<UnionStackalloc> & get_mutable_stackalloc() { return stackalloc; }
         void set_stackalloc(const std::optional<UnionStackalloc> & value) { this->stackalloc = value; }
 
+        const std::optional<UnionStandards> & get_standards() const { return standards; }
+        std::optional<UnionStandards> & get_mutable_standards() { return standards; }
+        void set_standards(const std::optional<UnionStandards> & value) { this->standards = value; }
+
         const std::optional<UnionStatic> & get_top_level_static() const { return top_level_static; }
         std::optional<UnionStatic> & get_mutable_top_level_static() { return top_level_static; }
         void set_top_level_static(const std::optional<UnionStatic> & value) { this->top_level_static = value; }
@@ -4586,6 +5251,14 @@ namespace quicktype {
         std::optional<UnionStaticCast> & get_mutable_top_level_static_cast() { return top_level_static_cast; }
         void set_top_level_static_cast(const std::optional<UnionStaticCast> & value) { this->top_level_static_cast = value; }
 
+        const std::optional<UnionStdDeserializer> & get_std_deserializer() const { return std_deserializer; }
+        std::optional<UnionStdDeserializer> & get_mutable_std_deserializer() { return std_deserializer; }
+        void set_std_deserializer(const std::optional<UnionStdDeserializer> & value) { this->std_deserializer = value; }
+
+        const std::optional<UnionStdSerializer> & get_std_serializer() const { return std_serializer; }
+        std::optional<UnionStdSerializer> & get_mutable_std_serializer() { return std_serializer; }
+        void set_std_serializer(const std::optional<UnionStdSerializer> & value) { this->std_serializer = value; }
+
         const std::optional<UnionStrictfp> & get_strictfp() const { return strictfp; }
         std::optional<UnionStrictfp> & get_mutable_strictfp() { return strictfp; }
         void set_strictfp(const std::optional<UnionStrictfp> & value) { this->strictfp = value; }
@@ -4646,6 +5319,14 @@ namespace quicktype {
         std::optional<UnionThrows> & get_mutable_throws() { return throws; }
         void set_throws(const std::optional<UnionThrows> & value) { this->throws = value; }
 
+        const std::optional<UnionTimeOnly> & get_time_only() const { return time_only; }
+        std::optional<UnionTimeOnly> & get_mutable_time_only() { return time_only; }
+        void set_time_only(const std::optional<UnionTimeOnly> & value) { this->time_only = value; }
+
+        const std::optional<UnionTimeOnlyConverter> & get_time_only_converter() const { return time_only_converter; }
+        std::optional<UnionTimeOnlyConverter> & get_mutable_time_only_converter() { return time_only_converter; }
+        void set_time_only_converter(const std::optional<UnionTimeOnlyConverter> & value) { this->time_only_converter = value; }
+
         const std::optional<UnionToJson> & get_to_json() const { return to_json; }
         std::optional<UnionToJson> & get_mutable_to_json() { return to_json; }
         void set_to_json(const std::optional<UnionToJson> & value) { this->to_json = value; }
@@ -4654,6 +5335,10 @@ namespace quicktype {
         std::optional<UnionTopLevel> & get_mutable_top_level() { return top_level; }
         void set_top_level(const std::optional<UnionTopLevel> & value) { this->top_level = value; }
 
+        const std::optional<UnionToString> & get_to_string() const { return to_string; }
+        std::optional<UnionToString> & get_mutable_to_string() { return to_string; }
+        void set_to_string(const std::optional<UnionToString> & value) { this->to_string = value; }
+
         const std::optional<UnionTransient> & get_transient() const { return transient; }
         std::optional<UnionTransient> & get_mutable_transient() { return transient; }
         void set_transient(const std::optional<UnionTransient> & value) { this->transient = value; }
@@ -4738,6 +5423,18 @@ namespace quicktype {
         std::optional<UnionUsing> & get_mutable_top_level_using() { return top_level_using; }
         void set_top_level_using(const std::optional<UnionUsing> & value) { this->top_level_using = value; }
 
+        const std::optional<UnionUtf8JsonReader> & get_utf8_json_reader() const { return utf8_json_reader; }
+        std::optional<UnionUtf8JsonReader> & get_mutable_utf8_json_reader() { return utf8_json_reader; }
+        void set_utf8_json_reader(const std::optional<UnionUtf8JsonReader> & value) { this->utf8_json_reader = value; }
+
+        const std::optional<UnionUtf8JsonWriter> & get_utf8_json_writer() const { return utf8_json_writer; }
+        std::optional<UnionUtf8JsonWriter> & get_mutable_utf8_json_writer() { return utf8_json_writer; }
+        void set_utf8_json_writer(const std::optional<UnionUtf8JsonWriter> & value) { this->utf8_json_writer = value; }
+
+        const std::optional<UnionUuid> & get_uuid() const { return uuid; }
+        std::optional<UnionUuid> & get_mutable_uuid() { return uuid; }
+        void set_uuid(const std::optional<UnionUuid> & value) { this->uuid = value; }
+
         const std::optional<UnionVar> & get_var() const { return var; }
         std::optional<UnionVar> & get_mutable_var() { return var; }
         void set_var(const std::optional<UnionVar> & value) { this->var = value; }
@@ -4848,6 +5545,9 @@ void to_json(json & j, const Chan & x);
 void from_json(const json & j, Checked & x);
 void to_json(json & j, const Checked & x);
 
+void from_json(const json & j, Clone & x);
+void to_json(json & j, const Clone & x);
+
 void from_json(const json & j, Complex & x);
 void to_json(json & j, const Complex & x);
 
@@ -4866,12 +5566,30 @@ void to_json(json & j, const Convert & x);
 void from_json(const json & j, Converter & x);
 void to_json(json & j, const Converter & x);
 
+void from_json(const json & j, CultureInfo & x);
+void to_json(json & j, const CultureInfo & x);
+
 void from_json(const json & j, Date & x);
 void to_json(json & j, const Date & x);
 
+void from_json(const json & j, DateFormatter & x);
+void to_json(json & j, const DateFormatter & x);
+
+void from_json(const json & j, DateOnly & x);
+void to_json(json & j, const DateOnly & x);
+
+void from_json(const json & j, DateOnlyConverter & x);
+void to_json(json & j, const DateOnlyConverter & x);
+
 void from_json(const json & j, DateParseHandling & x);
 void to_json(json & j, const DateParseHandling & x);
 
+void from_json(const json & j, DateTime & x);
+void to_json(json & j, const DateTime & x);
+
+void from_json(const json & j, DateTimeStyles & x);
+void to_json(json & j, const DateTimeStyles & x);
+
 void from_json(const json & j, Debugger & x);
 void to_json(json & j, const Debugger & x);
 
@@ -4920,6 +5638,12 @@ void to_json(json & j, const Empty & x);
 void from_json(const json & j, EncodeQuickType & x);
 void to_json(json & j, const EncodeQuickType & x);
 
+void from_json(const json & j, EnumValues & x);
+void to_json(json & j, const EnumValues & x);
+
+void from_json(const json & j, EqualityContract & x);
+void to_json(json & j, const EqualityContract & x);
+
 void from_json(const json & j, Event & x);
 void to_json(json & j, const Event & x);
 
@@ -4956,6 +5680,9 @@ void to_json(json & j, const UnionBoolBool & x);
 void from_json(const json & j, Foreach & x);
 void to_json(json & j, const Foreach & x);
 
+void from_json(const json & j, FormatException & x);
+void to_json(json & j, const FormatException & x);
+
 void from_json(const json & j, From & x);
 void to_json(json & j, const From & x);
 
@@ -4983,6 +5710,9 @@ void to_json(json & j, const Guard & x);
 void from_json(const json & j, HasOwnProperty & x);
 void to_json(json & j, const HasOwnProperty & x);
 
+void from_json(const json & j, HashCode & x);
+void to_json(json & j, const HashCode & x);
+
 void from_json(const json & j, Id & x);
 void to_json(json & j, const Id & x);
 
@@ -5025,6 +5755,9 @@ void to_json(json & j, const Internal & x);
 void from_json(const json & j, Is & x);
 void to_json(json & j, const Is & x);
 
+void from_json(const json & j, IsoDateTimeOffsetConverter & x);
+void to_json(json & j, const IsoDateTimeOffsetConverter & x);
+
 void from_json(const json & j, Iterable & x);
 void to_json(json & j, const Iterable & x);
 
@@ -5040,15 +5773,48 @@ void to_json(json & j, const Jpipe & x);
 void from_json(const json & j, Json & x);
 void to_json(json & j, const Json & x);
 
+void from_json(const json & j, JsonAny & x);
+void to_json(json & j, const JsonAny & x);
+
+void from_json(const json & j, JsonCodingKey & x);
+void to_json(json & j, const JsonCodingKey & x);
+
 void from_json(const json & j, JsonConverter & x);
 void to_json(json & j, const JsonConverter & x);
 
+void from_json(const json & j, JsonDecoder & x);
+void to_json(json & j, const JsonDecoder & x);
+
+void from_json(const json & j, JsonEncoder & x);
+void to_json(json & j, const JsonEncoder & x);
+
+void from_json(const json & j, JsonException & x);
+void to_json(json & j, const JsonException & x);
+
+void from_json(const json & j, JsonGenerator & x);
+void to_json(json & j, const JsonGenerator & x);
+
+void from_json(const json & j, JsonNode & x);
+void to_json(json & j, const JsonNode & x);
+
+void from_json(const json & j, JsonNull & x);
+void to_json(json & j, const JsonNull & x);
+
+void from_json(const json & j, JsonParser & x);
+void to_json(json & j, const JsonParser & x);
+
+void from_json(const json & j, JsonReader & x);
+void to_json(json & j, const JsonReader & x);
+
 void from_json(const json & j, JsonSerializer & x);
 void to_json(json & j, const JsonSerializer & x);
 
 void from_json(const json & j, JsonToken & x);
 void to_json(json & j, const JsonToken & x);
 
+void from_json(const json & j, JsonTokenType & x);
+void to_json(json & j, const JsonTokenType & x);
+
 void from_json(const json & j, JsonWriter & x);
 void to_json(json & j, const JsonWriter & x);
 
@@ -5091,6 +5857,9 @@ void to_json(json & j, const Nil & x);
 void from_json(const json & j, No & x);
 void to_json(json & j, const No & x);
 
+void from_json(const json & j, NoSuchMethod & x);
+void to_json(json & j, const NoSuchMethod & x);
+
 void from_json(const json & j, Nonatomic & x);
 void to_json(json & j, const Nonatomic & x);
 
@@ -5103,6 +5872,9 @@ void to_json(json & j, const Nonlocal & x);
 void from_json(const json & j, Nonmutating & x);
 void to_json(json & j, const Nonmutating & x);
 
+void from_json(const json & j, NsError & x);
+void to_json(json & j, const NsError & x);
+
 void from_json(const json & j, NsString & x);
 void to_json(json & j, const NsString & x);
 
@@ -5115,6 +5887,9 @@ void to_json(json & j, const Number & x);
 void from_json(const json & j, Object & x);
 void to_json(json & j, const Object & x);
 
+void from_json(const json & j, ObjectMapper & x);
+void to_json(json & j, const ObjectMapper & x);
+
 void from_json(const json & j, Of & x);
 void to_json(json & j, const Of & x);
 
@@ -5154,6 +5929,9 @@ void to_json(json & j, const Prefix & x);
 void from_json(const json & j, Print & x);
 void to_json(json & j, const Print & x);
 
+void from_json(const json & j, PrintMembers & x);
+void to_json(json & j, const PrintMembers & x);
+
 void from_json(const json & j, Printf & x);
 void to_json(json & j, const Printf & x);
 
@@ -5187,6 +5965,9 @@ void to_json(json & j, const Readonly & x);
 void from_json(const json & j, Ref & x);
 void to_json(json & j, const Ref & x);
 
+void from_json(const json & j, RegExp & x);
+void to_json(json & j, const RegExp & x);
+
 void from_json(const json & j, Repeat & x);
 void to_json(json & j, const Repeat & x);
 
@@ -5208,6 +5989,12 @@ void to_json(json & j, const Rethrows & x);
 void from_json(const json & j, Right & x);
 void to_json(json & j, const Right & x);
 
+void from_json(const json & j, RuntimeType & x);
+void to_json(json & j, const RuntimeType & x);
+
+void from_json(const json & j, S & x);
+void to_json(json & j, const S & x);
+
 void from_json(const json & j, Sbyte & x);
 void to_json(json & j, const Sbyte & x);
 
@@ -5226,12 +6013,27 @@ void to_json(json & j, const Self & x);
 void from_json(const json & j, Serialize & x);
 void to_json(json & j, const Serialize & x);
 
+void from_json(const json & j, SerializerProvider & x);
+void to_json(json & j, const SerializerProvider & x);
+
 void from_json(const json & j, Set & x);
 void to_json(json & j, const Set & x);
 
+void from_json(const json & j, SimpleModule & x);
+void to_json(json & j, const SimpleModule & x);
+
 void from_json(const json & j, Stackalloc & x);
 void to_json(json & j, const Stackalloc & x);
 
+void from_json(const json & j, Standards & x);
+void to_json(json & j, const Standards & x);
+
+void from_json(const json & j, StdDeserializer & x);
+void to_json(json & j, const StdDeserializer & x);
+
+void from_json(const json & j, StdSerializer & x);
+void to_json(json & j, const StdSerializer & x);
+
 void from_json(const json & j, Strictfp & x);
 void to_json(json & j, const Strictfp & x);
 
@@ -5256,9 +6058,18 @@ void to_json(json & j, const Then & x);
 void from_json(const json & j, Throws & x);
 void to_json(json & j, const Throws & x);
 
+void from_json(const json & j, TimeOnly & x);
+void to_json(json & j, const TimeOnly & x);
+
+void from_json(const json & j, TimeOnlyConverter & x);
+void to_json(json & j, const TimeOnlyConverter & x);
+
 void from_json(const json & j, ToJson & x);
 void to_json(json & j, const ToJson & x);
 
+void from_json(const json & j, ToString & x);
+void to_json(json & j, const ToString & x);
+
 void from_json(const json & j, TopLevelClass & x);
 void to_json(json & j, const TopLevelClass & x);
 
@@ -5604,6 +6415,15 @@ void to_json(json & j, const Unsafe & x);
 void from_json(const json & j, Ushort & x);
 void to_json(json & j, const Ushort & x);
 
+void from_json(const json & j, Utf8JsonReader & x);
+void to_json(json & j, const Utf8JsonReader & x);
+
+void from_json(const json & j, Utf8JsonWriter & x);
+void to_json(json & j, const Utf8JsonWriter & x);
+
+void from_json(const json & j, Uuid & x);
+void to_json(json & j, const Uuid & x);
+
 void from_json(const json & j, Var & x);
 void to_json(json & j, const Var & x);
 
@@ -5731,6 +6551,12 @@ struct adl_serializer<std::variant<quicktype::Checked, double>> {
     static void to_json(json & j, const std::variant<quicktype::Checked, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::Clone, double>> {
+    static void from_json(const json & j, std::variant<quicktype::Clone, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::Clone, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Complex, double>> {
     static void from_json(const json & j, std::variant<quicktype::Complex, double> & x);
@@ -5767,18 +6593,54 @@ struct adl_serializer<std::variant<quicktype::Converter, double>> {
     static void to_json(json & j, const std::variant<quicktype::Converter, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::CultureInfo, double>> {
+    static void from_json(const json & j, std::variant<quicktype::CultureInfo, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::CultureInfo, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Date, double>> {
     static void from_json(const json & j, std::variant<quicktype::Date, double> & x);
     static void to_json(json & j, const std::variant<quicktype::Date, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::DateFormatter, double>> {
+    static void from_json(const json & j, std::variant<quicktype::DateFormatter, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::DateFormatter, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::DateOnly, double>> {
+    static void from_json(const json & j, std::variant<quicktype::DateOnly, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::DateOnly, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::DateOnlyConverter, double>> {
+    static void from_json(const json & j, std::variant<quicktype::DateOnlyConverter, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::DateOnlyConverter, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::DateParseHandling, double>> {
     static void from_json(const json & j, std::variant<quicktype::DateParseHandling, double> & x);
     static void to_json(json & j, const std::variant<quicktype::DateParseHandling, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::DateTime, double>> {
+    static void from_json(const json & j, std::variant<quicktype::DateTime, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::DateTime, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::DateTimeStyles, double>> {
+    static void from_json(const json & j, std::variant<quicktype::DateTimeStyles, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::DateTimeStyles, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Debugger, double>> {
     static void from_json(const json & j, std::variant<quicktype::Debugger, double> & x);
@@ -5875,6 +6737,18 @@ struct adl_serializer<std::variant<quicktype::EncodeQuickType, double>> {
     static void to_json(json & j, const std::variant<quicktype::EncodeQuickType, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::EnumValues, double>> {
+    static void from_json(const json & j, std::variant<quicktype::EnumValues, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::EnumValues, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::EqualityContract, double>> {
+    static void from_json(const json & j, std::variant<quicktype::EqualityContract, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::EqualityContract, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Event, double>> {
     static void from_json(const json & j, std::variant<quicktype::Event, double> & x);
@@ -5947,6 +6821,12 @@ struct adl_serializer<std::variant<quicktype::Foreach, double>> {
     static void to_json(json & j, const std::variant<quicktype::Foreach, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::FormatException, double>> {
+    static void from_json(const json & j, std::variant<quicktype::FormatException, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::FormatException, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::From, double>> {
     static void from_json(const json & j, std::variant<quicktype::From, double> & x);
@@ -6001,6 +6881,12 @@ struct adl_serializer<std::variant<quicktype::HasOwnProperty, double>> {
     static void to_json(json & j, const std::variant<quicktype::HasOwnProperty, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::HashCode, double>> {
+    static void from_json(const json & j, std::variant<quicktype::HashCode, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::HashCode, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Id, double>> {
     static void from_json(const json & j, std::variant<quicktype::Id, double> & x);
@@ -6085,6 +6971,12 @@ struct adl_serializer<std::variant<quicktype::Is, double>> {
     static void to_json(json & j, const std::variant<quicktype::Is, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::IsoDateTimeOffsetConverter, double>> {
+    static void from_json(const json & j, std::variant<quicktype::IsoDateTimeOffsetConverter, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::IsoDateTimeOffsetConverter, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Iterable, double>> {
     static void from_json(const json & j, std::variant<quicktype::Iterable, double> & x);
@@ -6115,12 +7007,72 @@ struct adl_serializer<std::variant<quicktype::Json, double>> {
     static void to_json(json & j, const std::variant<quicktype::Json, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::JsonAny, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonAny, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonAny, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonCodingKey, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonCodingKey, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonCodingKey, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::JsonConverter, double>> {
     static void from_json(const json & j, std::variant<quicktype::JsonConverter, double> & x);
     static void to_json(json & j, const std::variant<quicktype::JsonConverter, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::JsonDecoder, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonDecoder, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonDecoder, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonEncoder, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonEncoder, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonEncoder, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonException, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonException, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonException, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonGenerator, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonGenerator, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonGenerator, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonNode, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonNode, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonNode, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonNull, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonNull, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonNull, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonParser, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonParser, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonParser, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::JsonReader, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonReader, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonReader, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::JsonSerializer, double>> {
     static void from_json(const json & j, std::variant<quicktype::JsonSerializer, double> & x);
@@ -6133,6 +7085,12 @@ struct adl_serializer<std::variant<quicktype::JsonToken, double>> {
     static void to_json(json & j, const std::variant<quicktype::JsonToken, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::JsonTokenType, double>> {
+    static void from_json(const json & j, std::variant<quicktype::JsonTokenType, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::JsonTokenType, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::JsonWriter, double>> {
     static void from_json(const json & j, std::variant<quicktype::JsonWriter, double> & x);
@@ -6217,6 +7175,12 @@ struct adl_serializer<std::variant<quicktype::No, double>> {
     static void to_json(json & j, const std::variant<quicktype::No, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::NoSuchMethod, double>> {
+    static void from_json(const json & j, std::variant<quicktype::NoSuchMethod, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::NoSuchMethod, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Nonatomic, double>> {
     static void from_json(const json & j, std::variant<quicktype::Nonatomic, double> & x);
@@ -6241,6 +7205,12 @@ struct adl_serializer<std::variant<quicktype::Nonmutating, double>> {
     static void to_json(json & j, const std::variant<quicktype::Nonmutating, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::NsError, double>> {
+    static void from_json(const json & j, std::variant<quicktype::NsError, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::NsError, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::NsString, double>> {
     static void from_json(const json & j, std::variant<quicktype::NsString, double> & x);
@@ -6265,6 +7235,12 @@ struct adl_serializer<std::variant<quicktype::Object, double>> {
     static void to_json(json & j, const std::variant<quicktype::Object, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::ObjectMapper, double>> {
+    static void from_json(const json & j, std::variant<quicktype::ObjectMapper, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::ObjectMapper, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Of, double>> {
     static void from_json(const json & j, std::variant<quicktype::Of, double> & x);
@@ -6343,6 +7319,12 @@ struct adl_serializer<std::variant<quicktype::Print, double>> {
     static void to_json(json & j, const std::variant<quicktype::Print, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::PrintMembers, double>> {
+    static void from_json(const json & j, std::variant<quicktype::PrintMembers, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::PrintMembers, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Printf, double>> {
     static void from_json(const json & j, std::variant<quicktype::Printf, double> & x);
@@ -6409,6 +7391,12 @@ struct adl_serializer<std::variant<quicktype::Ref, double>> {
     static void to_json(json & j, const std::variant<quicktype::Ref, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::RegExp, double>> {
+    static void from_json(const json & j, std::variant<quicktype::RegExp, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::RegExp, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Repeat, double>> {
     static void from_json(const json & j, std::variant<quicktype::Repeat, double> & x);
@@ -6451,6 +7439,18 @@ struct adl_serializer<std::variant<quicktype::Right, double>> {
     static void to_json(json & j, const std::variant<quicktype::Right, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::RuntimeType, double>> {
+    static void from_json(const json & j, std::variant<quicktype::RuntimeType, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::RuntimeType, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::S, double>> {
+    static void from_json(const json & j, std::variant<quicktype::S, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::S, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Sbyte, double>> {
     static void from_json(const json & j, std::variant<quicktype::Sbyte, double> & x);
@@ -6487,18 +7487,48 @@ struct adl_serializer<std::variant<quicktype::Serialize, double>> {
     static void to_json(json & j, const std::variant<quicktype::Serialize, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::SerializerProvider, double>> {
+    static void from_json(const json & j, std::variant<quicktype::SerializerProvider, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::SerializerProvider, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Set, double>> {
     static void from_json(const json & j, std::variant<quicktype::Set, double> & x);
     static void to_json(json & j, const std::variant<quicktype::Set, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::SimpleModule, double>> {
+    static void from_json(const json & j, std::variant<quicktype::SimpleModule, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::SimpleModule, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Stackalloc, double>> {
     static void from_json(const json & j, std::variant<quicktype::Stackalloc, double> & x);
     static void to_json(json & j, const std::variant<quicktype::Stackalloc, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::Standards, double>> {
+    static void from_json(const json & j, std::variant<quicktype::Standards, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::Standards, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::StdDeserializer, double>> {
+    static void from_json(const json & j, std::variant<quicktype::StdDeserializer, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::StdDeserializer, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::StdSerializer, double>> {
+    static void from_json(const json & j, std::variant<quicktype::StdSerializer, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::StdSerializer, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Strictfp, double>> {
     static void from_json(const json & j, std::variant<quicktype::Strictfp, double> & x);
@@ -6547,12 +7577,30 @@ struct adl_serializer<std::variant<quicktype::Throws, double>> {
     static void to_json(json & j, const std::variant<quicktype::Throws, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::TimeOnly, double>> {
+    static void from_json(const json & j, std::variant<quicktype::TimeOnly, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::TimeOnly, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::TimeOnlyConverter, double>> {
+    static void from_json(const json & j, std::variant<quicktype::TimeOnlyConverter, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::TimeOnlyConverter, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::ToJson, double>> {
     static void from_json(const json & j, std::variant<quicktype::ToJson, double> & x);
     static void to_json(json & j, const std::variant<quicktype::ToJson, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::ToString, double>> {
+    static void from_json(const json & j, std::variant<quicktype::ToString, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::ToString, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::TopLevelClass, double>> {
     static void from_json(const json & j, std::variant<quicktype::TopLevelClass, double> & x);
@@ -7243,6 +8291,24 @@ struct adl_serializer<std::variant<quicktype::Ushort, double>> {
     static void to_json(json & j, const std::variant<quicktype::Ushort, double> & x);
 };
 
+template <>
+struct adl_serializer<std::variant<quicktype::Utf8JsonReader, double>> {
+    static void from_json(const json & j, std::variant<quicktype::Utf8JsonReader, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::Utf8JsonReader, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::Utf8JsonWriter, double>> {
+    static void from_json(const json & j, std::variant<quicktype::Utf8JsonWriter, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::Utf8JsonWriter, double> & x);
+};
+
+template <>
+struct adl_serializer<std::variant<quicktype::Uuid, double>> {
+    static void from_json(const json & j, std::variant<quicktype::Uuid, double> & x);
+    static void to_json(json & j, const std::variant<quicktype::Uuid, double> & x);
+};
+
 template <>
 struct adl_serializer<std::variant<quicktype::Var, double>> {
     static void from_json(const json & j, std::variant<quicktype::Var, double> & x);
@@ -7473,6 +8539,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, Clone& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Clone & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Complex& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7539,6 +8616,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, CultureInfo& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const CultureInfo & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Date& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7550,6 +8638,39 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, DateFormatter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const DateFormatter & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, DateOnly& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const DateOnly & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, DateOnlyConverter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const DateOnlyConverter & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, DateParseHandling& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7561,6 +8682,28 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, DateTime& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const DateTime & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, DateTimeStyles& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const DateTimeStyles & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Debugger& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7737,6 +8880,28 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, EnumValues& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const EnumValues & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, EqualityContract& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const EqualityContract & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Event& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7869,6 +9034,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, FormatException& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const FormatException & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, From& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -7968,6 +9144,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, HashCode& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const HashCode & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Id& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8122,6 +9309,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, IsoDateTimeOffsetConverter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const IsoDateTimeOffsetConverter & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Iterable& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8177,354 +9375,508 @@ namespace quicktype {
         (void)x;
     }
 
-    inline void from_json(const json & j, JsonConverter& x) {
+    inline void from_json(const json & j, JsonAny& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const JsonConverter & x) {
+    inline void to_json(json & j, const JsonAny & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, JsonSerializer& x) {
+    inline void from_json(const json & j, JsonCodingKey& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const JsonSerializer & x) {
+    inline void to_json(json & j, const JsonCodingKey & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, JsonToken& x) {
+    inline void from_json(const json & j, JsonConverter& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const JsonToken & x) {
+    inline void to_json(json & j, const JsonConverter & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, JsonWriter& x) {
+    inline void from_json(const json & j, JsonDecoder& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const JsonWriter & x) {
+    inline void to_json(json & j, const JsonDecoder & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Lambda& x) {
+    inline void from_json(const json & j, JsonEncoder& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Lambda & x) {
+    inline void to_json(json & j, const JsonEncoder & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Lazy& x) {
+    inline void from_json(const json & j, JsonException& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Lazy & x) {
+    inline void to_json(json & j, const JsonException & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Left& x) {
+    inline void from_json(const json & j, JsonGenerator& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Left & x) {
+    inline void to_json(json & j, const JsonGenerator & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Let& x) {
+    inline void from_json(const json & j, JsonNode& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Let & x) {
+    inline void to_json(json & j, const JsonNode & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, List& x) {
+    inline void from_json(const json & j, JsonNull& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const List & x) {
+    inline void to_json(json & j, const JsonNull & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Lock& x) {
+    inline void from_json(const json & j, JsonParser& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Lock & x) {
+    inline void to_json(json & j, const JsonParser & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Map& x) {
+    inline void from_json(const json & j, JsonReader& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Map & x) {
+    inline void to_json(json & j, const JsonReader & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, MetadataPropertyHandling& x) {
+    inline void from_json(const json & j, JsonSerializer& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const MetadataPropertyHandling & x) {
+    inline void to_json(json & j, const JsonSerializer & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Mutating& x) {
+    inline void from_json(const json & j, JsonToken& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Mutating & x) {
+    inline void to_json(json & j, const JsonToken & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Native& x) {
+    inline void from_json(const json & j, JsonTokenType& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Native & x) {
+    inline void to_json(json & j, const JsonTokenType & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Newtonsoft& x) {
+    inline void from_json(const json & j, JsonWriter& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Newtonsoft & x) {
+    inline void to_json(json & j, const JsonWriter & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Nil& x) {
+    inline void from_json(const json & j, Lambda& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Nil & x) {
+    inline void to_json(json & j, const Lambda & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, No& x) {
+    inline void from_json(const json & j, Lazy& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const No & x) {
+    inline void to_json(json & j, const Lazy & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Nonatomic& x) {
+    inline void from_json(const json & j, Left& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Nonatomic & x) {
+    inline void to_json(json & j, const Left & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, None& x) {
+    inline void from_json(const json & j, Let& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const None & x) {
+    inline void to_json(json & j, const Let & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Nonlocal& x) {
+    inline void from_json(const json & j, List& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Nonlocal & x) {
+    inline void to_json(json & j, const List & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Nonmutating& x) {
+    inline void from_json(const json & j, Lock& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Nonmutating & x) {
+    inline void to_json(json & j, const Lock & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, NsString& x) {
+    inline void from_json(const json & j, Map& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const NsString & x) {
+    inline void to_json(json & j, const Map & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Null& x) {
+    inline void from_json(const json & j, MetadataPropertyHandling& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Null & x) {
+    inline void to_json(json & j, const MetadataPropertyHandling & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Number& x) {
+    inline void from_json(const json & j, Mutating& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Number & x) {
+    inline void to_json(json & j, const Mutating & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Object& x) {
+    inline void from_json(const json & j, Native& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Object & x) {
+    inline void to_json(json & j, const Native & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Of& x) {
+    inline void from_json(const json & j, Newtonsoft& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Of & x) {
+    inline void to_json(json & j, const Newtonsoft & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Oneway& x) {
+    inline void from_json(const json & j, Nil& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Oneway & x) {
+    inline void to_json(json & j, const Nil & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Open& x) {
+    inline void from_json(const json & j, No& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Open & x) {
+    inline void to_json(json & j, const No & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Optional& x) {
+    inline void from_json(const json & j, NoSuchMethod& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Optional & x) {
+    inline void to_json(json & j, const NoSuchMethod & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Out& x) {
+    inline void from_json(const json & j, Nonatomic& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Out & x) {
+    inline void to_json(json & j, const Nonatomic & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Package& x) {
+    inline void from_json(const json & j, None& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Package & x) {
+    inline void to_json(json & j, const None & x) {
         j = json::object();
         (void)x;
     }
 
-    inline void from_json(const json & j, Params& x) {
+    inline void from_json(const json & j, Nonlocal& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
         (void)x;
     }
 
-    inline void to_json(json & j, const Params & x) {
+    inline void to_json(json & j, const Nonlocal & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Nonmutating& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Nonmutating & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, NsError& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const NsError & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, NsString& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const NsString & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Null& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Null & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Number& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Number & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Object& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Object & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, ObjectMapper& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const ObjectMapper & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Of& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Of & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Oneway& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Oneway & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Open& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Open & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Optional& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Optional & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Out& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Out & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Package& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Package & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Params& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Params & x) {
         j = json::object();
         (void)x;
     }
@@ -8595,6 +9947,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, PrintMembers& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const PrintMembers & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Printf& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8716,6 +10079,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, RegExp& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const RegExp & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Repeat& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8793,6 +10167,28 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, RuntimeType& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const RuntimeType & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, S& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const S & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Sbyte& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8859,6 +10255,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, SerializerProvider& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const SerializerProvider & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Set& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8870,6 +10277,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, SimpleModule& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const SimpleModule & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Stackalloc& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8881,6 +10299,39 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, Standards& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Standards & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, StdDeserializer& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const StdDeserializer & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, StdSerializer& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const StdSerializer & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Strictfp& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8969,6 +10420,28 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, TimeOnly& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const TimeOnly & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, TimeOnlyConverter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const TimeOnlyConverter & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, ToJson& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -8980,6 +10453,17 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, ToString& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const ToString & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, TopLevelClass& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -10245,6 +11729,39 @@ namespace quicktype {
         (void)x;
     }
 
+    inline void from_json(const json & j, Utf8JsonReader& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Utf8JsonReader & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Utf8JsonWriter& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Utf8JsonWriter & x) {
+        j = json::object();
+        (void)x;
+    }
+
+    inline void from_json(const json & j, Uuid& x) {
+        if (!j.is_object()) throw std::runtime_error("Expected object");
+        (void)j;
+        (void)x;
+    }
+
+    inline void to_json(json & j, const Uuid & x) {
+        j = json::object();
+        (void)x;
+    }
+
     inline void from_json(const json & j, Var& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         (void)j;
@@ -10367,6 +11884,7 @@ namespace quicktype {
         x.set_checked(get_stack_optional<std::variant<Checked, double>>(j, "checked"));
         x.set_purple_class(get_stack_optional<std::variant<ClassClass, double>>(j, "class"));
         x.set_top_level_class(get_stack_optional<std::variant<Class, double>>(j, "Class"));
+        x.set_clone(get_stack_optional<std::variant<Clone, double>>(j, "clone"));
         x.set_top_level_co_await(get_stack_optional<std::variant<CoAwait, double>>(j, "co_await"));
         x.set_top_level_co_return(get_stack_optional<std::variant<CoReturn, double>>(j, "co_return"));
         x.set_top_level_co_yield(get_stack_optional<std::variant<CoYield, double>>(j, "co_yield"));
@@ -10381,8 +11899,14 @@ namespace quicktype {
         x.set_convenience(get_stack_optional<std::variant<Convenience, double>>(j, "convenience"));
         x.set_convert(get_stack_optional<std::variant<Convert, double>>(j, "convert"));
         x.set_converter(get_stack_optional<std::variant<Converter, double>>(j, "converter"));
+        x.set_culture_info(get_stack_optional<std::variant<CultureInfo, double>>(j, "CultureInfo"));
         x.set_date(get_stack_optional<std::variant<Date, double>>(j, "date"));
         x.set_date_parse_handling(get_stack_optional<std::variant<DateParseHandling, double>>(j, "date_parse_handling"));
+        x.set_date_formatter(get_stack_optional<std::variant<DateFormatter, double>>(j, "DateFormatter"));
+        x.set_date_only(get_stack_optional<std::variant<DateOnly, double>>(j, "DateOnly"));
+        x.set_date_only_converter(get_stack_optional<std::variant<DateOnlyConverter, double>>(j, "DateOnlyConverter"));
+        x.set_date_time(get_stack_optional<std::variant<DateTime, double>>(j, "DateTime"));
+        x.set_date_time_styles(get_stack_optional<std::variant<DateTimeStyles, double>>(j, "DateTimeStyles"));
         x.set_debugger(get_stack_optional<std::variant<Debugger, double>>(j, "debugger"));
         x.set_decimal(get_stack_optional<std::variant<Decimal, double>>(j, "decimal"));
         x.set_declare(get_stack_optional<std::variant<Declare, double>>(j, "declare"));
@@ -10407,6 +11931,8 @@ namespace quicktype {
         x.set_top_level_else(get_stack_optional<std::variant<Else, double>>(j, "else"));
         x.set_encode_quick_type(get_stack_optional<std::variant<EncodeQuickType, double>>(j, "encode_quick_type"));
         x.set_top_level_enum(get_stack_optional<std::variant<Enum, double>>(j, "enum"));
+        x.set_enum_values(get_stack_optional<std::variant<EnumValues, double>>(j, "EnumValues"));
+        x.set_equality_contract(get_stack_optional<std::variant<EqualityContract, double>>(j, "equalityContract"));
         x.set_event(get_stack_optional<std::variant<Event, double>>(j, "event"));
         x.set_except(get_stack_optional<std::variant<Except, double>>(j, "except"));
         x.set_exception(get_stack_optional<std::variant<Exception, double>>(j, "exception"));
@@ -10426,6 +11952,7 @@ namespace quicktype {
         x.set_top_level_float(get_stack_optional<std::variant<Float, double>>(j, "float"));
         x.set_top_level_for(get_stack_optional<std::variant<For, double>>(j, "for"));
         x.set_foreach(get_stack_optional<std::variant<Foreach, double>>(j, "foreach"));
+        x.set_format_exception(get_stack_optional<std::variant<FormatException, double>>(j, "FormatException"));
         x.set_top_level_friend(get_stack_optional<std::variant<Friend, double>>(j, "friend"));
         x.set_from(get_stack_optional<std::variant<From, double>>(j, "from"));
         x.set_from_json(get_stack_optional<std::variant<FromJson, double>>(j, "from_json"));
@@ -10436,6 +11963,7 @@ namespace quicktype {
         x.set_go(get_stack_optional<std::variant<Go, double>>(j, "go"));
         x.set_top_level_goto(get_stack_optional<std::variant<Goto, double>>(j, "goto"));
         x.set_guard(get_stack_optional<std::variant<Guard, double>>(j, "guard"));
+        x.set_hash_code(get_stack_optional<std::variant<HashCode, double>>(j, "hashCode"));
         x.set_has_own_property(get_stack_optional<std::variant<HasOwnProperty, double>>(j, "hasOwnProperty"));
         x.set_id(get_stack_optional<std::variant<Id, double>>(j, "id"));
         x.set_top_level_if(get_stack_optional<std::variant<If, double>>(j, "if"));
@@ -10454,6 +11982,7 @@ namespace quicktype {
         x.set_interface(get_stack_optional<std::variant<Interface, double>>(j, "interface"));
         x.set_internal(get_stack_optional<std::variant<Internal, double>>(j, "internal"));
         x.set_is(get_stack_optional<std::variant<Is, double>>(j, "is"));
+        x.set_iso_date_time_offset_converter(get_stack_optional<std::variant<IsoDateTimeOffsetConverter, double>>(j, "IsoDateTimeOffsetConverter"));
         x.set_iterable(get_stack_optional<std::variant<Iterable, double>>(j, "iterable"));
         x.set_jdec(get_stack_optional<std::variant<Jdec, double>>(j, "jdec"));
         x.set_jenc(get_stack_optional<std::variant<Jenc, double>>(j, "jenc"));
@@ -10463,6 +11992,17 @@ namespace quicktype {
         x.set_json_serializer(get_stack_optional<std::variant<JsonSerializer, double>>(j, "json_serializer"));
         x.set_json_token(get_stack_optional<std::variant<JsonToken, double>>(j, "json_token"));
         x.set_json_writer(get_stack_optional<std::variant<JsonWriter, double>>(j, "json_writer"));
+        x.set_json_any(get_stack_optional<std::variant<JsonAny, double>>(j, "JSONAny"));
+        x.set_json_coding_key(get_stack_optional<std::variant<JsonCodingKey, double>>(j, "JSONCodingKey"));
+        x.set_json_decoder(get_stack_optional<std::variant<JsonDecoder, double>>(j, "JSONDecoder"));
+        x.set_json_encoder(get_stack_optional<std::variant<JsonEncoder, double>>(j, "JSONEncoder"));
+        x.set_json_exception(get_stack_optional<std::variant<JsonException, double>>(j, "JsonException"));
+        x.set_json_generator(get_stack_optional<std::variant<JsonGenerator, double>>(j, "JsonGenerator"));
+        x.set_json_node(get_stack_optional<std::variant<JsonNode, double>>(j, "JsonNode"));
+        x.set_json_null(get_stack_optional<std::variant<JsonNull, double>>(j, "JSONNull"));
+        x.set_json_parser(get_stack_optional<std::variant<JsonParser, double>>(j, "JsonParser"));
+        x.set_json_reader(get_stack_optional<std::variant<JsonReader, double>>(j, "JsonReader"));
+        x.set_json_token_type(get_stack_optional<std::variant<JsonTokenType, double>>(j, "JsonTokenType"));
         x.set_lambda(get_stack_optional<std::variant<Lambda, double>>(j, "lambda"));
         x.set_lazy(get_stack_optional<std::variant<Lazy, double>>(j, "lazy"));
         x.set_left(get_stack_optional<std::variant<Left, double>>(j, "left"));
@@ -10487,14 +12027,17 @@ namespace quicktype {
         x.set_none(get_stack_optional<std::variant<None, double>>(j, "None"));
         x.set_nonlocal(get_stack_optional<std::variant<Nonlocal, double>>(j, "nonlocal"));
         x.set_nonmutating(get_stack_optional<std::variant<Nonmutating, double>>(j, "nonmutating"));
+        x.set_no_such_method(get_stack_optional<std::variant<NoSuchMethod, double>>(j, "noSuchMethod"));
         x.set_top_level_not(get_stack_optional<std::variant<Not, double>>(j, "not"));
         x.set_top_level_not_eq(get_stack_optional<std::variant<NotEq, double>>(j, "not_eq"));
+        x.set_ns_error(get_stack_optional<std::variant<NsError, double>>(j, "NSError"));
         x.set_ns_string(get_stack_optional<std::variant<NsString, double>>(j, "NSString"));
         x.set_null(get_stack_optional<std::variant<Null, double>>(j, "NULL"));
         x.set_top_level_null(get_stack_optional<std::variant<NullClass, double>>(j, "null"));
         x.set_top_level_nullptr(get_stack_optional<std::variant<Nullptr, double>>(j, "nullptr"));
         x.set_number(get_stack_optional<std::variant<Number, double>>(j, "number"));
         x.set_object(get_stack_optional<std::variant<Object, double>>(j, "object"));
+        x.set_object_mapper(get_stack_optional<std::variant<ObjectMapper, double>>(j, "ObjectMapper"));
         x.set_of(get_stack_optional<std::variant<Of, double>>(j, "of"));
         x.set_oneway(get_stack_optional<std::variant<Oneway, double>>(j, "oneway"));
         x.set_open(get_stack_optional<std::variant<Open, double>>(j, "open"));
@@ -10513,6 +12056,7 @@ namespace quicktype {
         x.set_prefix(get_stack_optional<std::variant<Prefix, double>>(j, "prefix"));
         x.set_print(get_stack_optional<std::variant<Print, double>>(j, "print"));
         x.set_printf(get_stack_optional<std::variant<Printf, double>>(j, "printf"));
+        x.set_print_members(get_stack_optional<std::variant<PrintMembers, double>>(j, "printMembers"));
         x.set_top_level_private(get_stack_optional<std::variant<Private, double>>(j, "private"));
         x.set_top_level_protected(get_stack_optional<std::variant<Protected, double>>(j, "protected"));
         x.set_protocol(get_stack_optional<std::variant<Protocol, double>>(j, "Protocol"));
@@ -10523,6 +12067,7 @@ namespace quicktype {
         x.set_range(get_stack_optional<std::variant<Range, double>>(j, "range"));
         x.set_readonly(get_stack_optional<std::variant<Readonly, double>>(j, "readonly"));
         x.set_ref(get_stack_optional<std::variant<Ref, double>>(j, "ref"));
+        x.set_reg_exp(get_stack_optional<std::variant<RegExp, double>>(j, "RegExp"));
         x.set_top_level_register(get_stack_optional<std::variant<Register, double>>(j, "register"));
         x.set_top_level_reinterpret_cast(get_stack_optional<std::variant<ReinterpretCast, double>>(j, "reinterpret_cast"));
         x.set_repeat(get_stack_optional<std::variant<Repeat, double>>(j, "repeat"));
@@ -10534,6 +12079,8 @@ namespace quicktype {
         x.set_rethrows(get_stack_optional<std::variant<Rethrows, double>>(j, "rethrows"));
         x.set_top_level_return(get_stack_optional<std::variant<Return, double>>(j, "return"));
         x.set_right(get_stack_optional<std::variant<Right, double>>(j, "right"));
+        x.set_runtime_type(get_stack_optional<std::variant<RuntimeType, double>>(j, "runtimeType"));
+        x.set_s(get_stack_optional<std::variant<S, double>>(j, "s"));
         x.set_sbyte(get_stack_optional<std::variant<Sbyte, double>>(j, "sbyte"));
         x.set_sealed(get_stack_optional<std::variant<Sealed, double>>(j, "sealed"));
         x.set_sel(get_stack_optional<std::variant<Sel, double>>(j, "SEL"));
@@ -10541,14 +12088,19 @@ namespace quicktype {
         x.set_self(get_stack_optional<std::variant<Self, double>>(j, "Self"));
         x.set_top_level_self(get_stack_optional<std::variant<SelfClass, double>>(j, "self"));
         x.set_serialize(get_stack_optional<std::variant<Serialize, double>>(j, "serialize"));
+        x.set_serializer_provider(get_stack_optional<std::variant<SerializerProvider, double>>(j, "SerializerProvider"));
         x.set_set(get_stack_optional<std::variant<Set, double>>(j, "set"));
         x.set_top_level_short(get_stack_optional<std::variant<Short, double>>(j, "short"));
         x.set_top_level_signed(get_stack_optional<std::variant<Signed, double>>(j, "signed"));
+        x.set_simple_module(get_stack_optional<std::variant<SimpleModule, double>>(j, "SimpleModule"));
         x.set_top_level_sizeof(get_stack_optional<std::variant<Sizeof, double>>(j, "sizeof"));
         x.set_stackalloc(get_stack_optional<std::variant<Stackalloc, double>>(j, "stackalloc"));
+        x.set_standards(get_stack_optional<std::variant<Standards, double>>(j, "Standards"));
         x.set_top_level_static(get_stack_optional<std::variant<Static, double>>(j, "static"));
         x.set_top_level_static_assert(get_stack_optional<std::variant<StaticAssert, double>>(j, "static_assert"));
         x.set_top_level_static_cast(get_stack_optional<std::variant<StaticCast, double>>(j, "static_cast"));
+        x.set_std_deserializer(get_stack_optional<std::variant<StdDeserializer, double>>(j, "StdDeserializer"));
+        x.set_std_serializer(get_stack_optional<std::variant<StdSerializer, double>>(j, "StdSerializer"));
         x.set_strictfp(get_stack_optional<std::variant<Strictfp, double>>(j, "strictfp"));
         x.set_string(get_stack_optional<std::variant<String, double>>(j, "string"));
         x.set_top_level_struct(get_stack_optional<std::variant<Struct, double>>(j, "struct"));
@@ -10564,8 +12116,11 @@ namespace quicktype {
         x.set_top_level_thread_local(get_stack_optional<std::variant<ThreadLocal, double>>(j, "thread_local"));
         x.set_top_level_throw(get_stack_optional<std::variant<Throw, double>>(j, "throw"));
         x.set_throws(get_stack_optional<std::variant<Throws, double>>(j, "throws"));
+        x.set_time_only(get_stack_optional<std::variant<TimeOnly, double>>(j, "TimeOnly"));
+        x.set_time_only_converter(get_stack_optional<std::variant<TimeOnlyConverter, double>>(j, "TimeOnlyConverter"));
         x.set_to_json(get_stack_optional<std::variant<ToJson, double>>(j, "to_json"));
         x.set_top_level(get_stack_optional<std::variant<TopLevelClass, double>>(j, "top_level"));
+        x.set_to_string(get_stack_optional<std::variant<ToString, double>>(j, "toString"));
         x.set_transient(get_stack_optional<std::variant<Transient, double>>(j, "transient"));
         x.set_top_level_true(get_stack_optional<std::variant<True, double>>(j, "True"));
         x.set_purple_true(get_stack_optional<std::variant<TrueClass, double>>(j, "true"));
@@ -10587,6 +12142,9 @@ namespace quicktype {
         x.set_top_level_unsigned(get_stack_optional<std::variant<Unsigned, double>>(j, "unsigned"));
         x.set_ushort(get_stack_optional<std::variant<Ushort, double>>(j, "ushort"));
         x.set_top_level_using(get_stack_optional<std::variant<Using, double>>(j, "using"));
+        x.set_utf8_json_reader(get_stack_optional<std::variant<Utf8JsonReader, double>>(j, "Utf8JsonReader"));
+        x.set_utf8_json_writer(get_stack_optional<std::variant<Utf8JsonWriter, double>>(j, "Utf8JsonWriter"));
+        x.set_uuid(get_stack_optional<std::variant<Uuid, double>>(j, "UUID"));
         x.set_var(get_stack_optional<std::variant<Var, double>>(j, "var"));
         x.set_top_level_virtual(get_stack_optional<std::variant<Virtual, double>>(j, "virtual"));
         x.set_top_level_void(get_stack_optional<std::variant<Void, double>>(j, "void"));
@@ -10648,6 +12206,7 @@ namespace quicktype {
         j["checked"] = x.get_checked();
         j["class"] = x.get_purple_class();
         j["Class"] = x.get_top_level_class();
+        j["clone"] = x.get_clone();
         j["co_await"] = x.get_top_level_co_await();
         j["co_return"] = x.get_top_level_co_return();
         j["co_yield"] = x.get_top_level_co_yield();
@@ -10662,8 +12221,14 @@ namespace quicktype {
         j["convenience"] = x.get_convenience();
         j["convert"] = x.get_convert();
         j["converter"] = x.get_converter();
+        j["CultureInfo"] = x.get_culture_info();
         j["date"] = x.get_date();
         j["date_parse_handling"] = x.get_date_parse_handling();
+        j["DateFormatter"] = x.get_date_formatter();
+        j["DateOnly"] = x.get_date_only();
+        j["DateOnlyConverter"] = x.get_date_only_converter();
+        j["DateTime"] = x.get_date_time();
+        j["DateTimeStyles"] = x.get_date_time_styles();
         j["debugger"] = x.get_debugger();
         j["decimal"] = x.get_decimal();
         j["declare"] = x.get_declare();
@@ -10688,6 +12253,8 @@ namespace quicktype {
         j["else"] = x.get_top_level_else();
         j["encode_quick_type"] = x.get_encode_quick_type();
         j["enum"] = x.get_top_level_enum();
+        j["EnumValues"] = x.get_enum_values();
+        j["equalityContract"] = x.get_equality_contract();
         j["event"] = x.get_event();
         j["except"] = x.get_except();
         j["exception"] = x.get_exception();
@@ -10707,6 +12274,7 @@ namespace quicktype {
         j["float"] = x.get_top_level_float();
         j["for"] = x.get_top_level_for();
         j["foreach"] = x.get_foreach();
+        j["FormatException"] = x.get_format_exception();
         j["friend"] = x.get_top_level_friend();
         j["from"] = x.get_from();
         j["from_json"] = x.get_from_json();
@@ -10717,6 +12285,7 @@ namespace quicktype {
         j["go"] = x.get_go();
         j["goto"] = x.get_top_level_goto();
         j["guard"] = x.get_guard();
+        j["hashCode"] = x.get_hash_code();
         j["hasOwnProperty"] = x.get_has_own_property();
         j["id"] = x.get_id();
         j["if"] = x.get_top_level_if();
@@ -10735,6 +12304,7 @@ namespace quicktype {
         j["interface"] = x.get_interface();
         j["internal"] = x.get_internal();
         j["is"] = x.get_is();
+        j["IsoDateTimeOffsetConverter"] = x.get_iso_date_time_offset_converter();
         j["iterable"] = x.get_iterable();
         j["jdec"] = x.get_jdec();
         j["jenc"] = x.get_jenc();
@@ -10744,6 +12314,17 @@ namespace quicktype {
         j["json_serializer"] = x.get_json_serializer();
         j["json_token"] = x.get_json_token();
         j["json_writer"] = x.get_json_writer();
+        j["JSONAny"] = x.get_json_any();
+        j["JSONCodingKey"] = x.get_json_coding_key();
+        j["JSONDecoder"] = x.get_json_decoder();
+        j["JSONEncoder"] = x.get_json_encoder();
+        j["JsonException"] = x.get_json_exception();
+        j["JsonGenerator"] = x.get_json_generator();
+        j["JsonNode"] = x.get_json_node();
+        j["JSONNull"] = x.get_json_null();
+        j["JsonParser"] = x.get_json_parser();
+        j["JsonReader"] = x.get_json_reader();
+        j["JsonTokenType"] = x.get_json_token_type();
         j["lambda"] = x.get_lambda();
         j["lazy"] = x.get_lazy();
         j["left"] = x.get_left();
@@ -10768,14 +12349,17 @@ namespace quicktype {
         j["None"] = x.get_none();
         j["nonlocal"] = x.get_nonlocal();
         j["nonmutating"] = x.get_nonmutating();
+        j["noSuchMethod"] = x.get_no_such_method();
         j["not"] = x.get_top_level_not();
         j["not_eq"] = x.get_top_level_not_eq();
+        j["NSError"] = x.get_ns_error();
         j["NSString"] = x.get_ns_string();
         j["NULL"] = x.get_null();
         j["null"] = x.get_top_level_null();
         j["nullptr"] = x.get_top_level_nullptr();
         j["number"] = x.get_number();
         j["object"] = x.get_object();
+        j["ObjectMapper"] = x.get_object_mapper();
         j["of"] = x.get_of();
         j["oneway"] = x.get_oneway();
         j["open"] = x.get_open();
@@ -10794,6 +12378,7 @@ namespace quicktype {
         j["prefix"] = x.get_prefix();
         j["print"] = x.get_print();
         j["printf"] = x.get_printf();
+        j["printMembers"] = x.get_print_members();
         j["private"] = x.get_top_level_private();
         j["protected"] = x.get_top_level_protected();
         j["Protocol"] = x.get_protocol();
@@ -10804,6 +12389,7 @@ namespace quicktype {
         j["range"] = x.get_range();
         j["readonly"] = x.get_readonly();
         j["ref"] = x.get_ref();
+        j["RegExp"] = x.get_reg_exp();
         j["register"] = x.get_top_level_register();
         j["reinterpret_cast"] = x.get_top_level_reinterpret_cast();
         j["repeat"] = x.get_repeat();
@@ -10815,6 +12401,8 @@ namespace quicktype {
         j["rethrows"] = x.get_rethrows();
         j["return"] = x.get_top_level_return();
         j["right"] = x.get_right();
+        j["runtimeType"] = x.get_runtime_type();
+        j["s"] = x.get_s();
         j["sbyte"] = x.get_sbyte();
         j["sealed"] = x.get_sealed();
         j["SEL"] = x.get_sel();
@@ -10822,14 +12410,19 @@ namespace quicktype {
         j["Self"] = x.get_self();
         j["self"] = x.get_top_level_self();
         j["serialize"] = x.get_serialize();
+        j["SerializerProvider"] = x.get_serializer_provider();
         j["set"] = x.get_set();
         j["short"] = x.get_top_level_short();
         j["signed"] = x.get_top_level_signed();
+        j["SimpleModule"] = x.get_simple_module();
         j["sizeof"] = x.get_top_level_sizeof();
         j["stackalloc"] = x.get_stackalloc();
+        j["Standards"] = x.get_standards();
         j["static"] = x.get_top_level_static();
         j["static_assert"] = x.get_top_level_static_assert();
         j["static_cast"] = x.get_top_level_static_cast();
+        j["StdDeserializer"] = x.get_std_deserializer();
+        j["StdSerializer"] = x.get_std_serializer();
         j["strictfp"] = x.get_strictfp();
         j["string"] = x.get_string();
         j["struct"] = x.get_top_level_struct();
@@ -10845,8 +12438,11 @@ namespace quicktype {
         j["thread_local"] = x.get_top_level_thread_local();
         j["throw"] = x.get_top_level_throw();
         j["throws"] = x.get_throws();
+        j["TimeOnly"] = x.get_time_only();
+        j["TimeOnlyConverter"] = x.get_time_only_converter();
         j["to_json"] = x.get_to_json();
         j["top_level"] = x.get_top_level();
+        j["toString"] = x.get_to_string();
         j["transient"] = x.get_transient();
         j["True"] = x.get_top_level_true();
         j["true"] = x.get_purple_true();
@@ -10868,6 +12464,9 @@ namespace quicktype {
         j["unsigned"] = x.get_top_level_unsigned();
         j["ushort"] = x.get_ushort();
         j["using"] = x.get_top_level_using();
+        j["Utf8JsonReader"] = x.get_utf8_json_reader();
+        j["Utf8JsonWriter"] = x.get_utf8_json_writer();
+        j["UUID"] = x.get_uuid();
         j["var"] = x.get_var();
         j["virtual"] = x.get_top_level_virtual();
         j["void"] = x.get_top_level_void();
@@ -11225,6 +12824,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::Clone, double>>::from_json(const json & j, std::variant<quicktype::Clone, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::Clone>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Clone, double>>::to_json(json & j, const std::variant<quicktype::Clone, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::Clone>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Complex, double>>::from_json(const json & j, std::variant<quicktype::Complex, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -11345,6 +12964,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::CultureInfo, double>>::from_json(const json & j, std::variant<quicktype::CultureInfo, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::CultureInfo>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::CultureInfo, double>>::to_json(json & j, const std::variant<quicktype::CultureInfo, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::CultureInfo>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Date, double>>::from_json(const json & j, std::variant<quicktype::Date, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -11365,6 +13004,66 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::DateFormatter, double>>::from_json(const json & j, std::variant<quicktype::DateFormatter, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::DateFormatter>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateFormatter, double>>::to_json(json & j, const std::variant<quicktype::DateFormatter, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::DateFormatter>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateOnly, double>>::from_json(const json & j, std::variant<quicktype::DateOnly, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::DateOnly>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateOnly, double>>::to_json(json & j, const std::variant<quicktype::DateOnly, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::DateOnly>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateOnlyConverter, double>>::from_json(const json & j, std::variant<quicktype::DateOnlyConverter, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::DateOnlyConverter>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateOnlyConverter, double>>::to_json(json & j, const std::variant<quicktype::DateOnlyConverter, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::DateOnlyConverter>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::DateParseHandling, double>>::from_json(const json & j, std::variant<quicktype::DateParseHandling, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -11385,6 +13084,46 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::DateTime, double>>::from_json(const json & j, std::variant<quicktype::DateTime, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::DateTime>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateTime, double>>::to_json(json & j, const std::variant<quicktype::DateTime, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::DateTime>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateTimeStyles, double>>::from_json(const json & j, std::variant<quicktype::DateTimeStyles, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::DateTimeStyles>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::DateTimeStyles, double>>::to_json(json & j, const std::variant<quicktype::DateTimeStyles, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::DateTimeStyles>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Debugger, double>>::from_json(const json & j, std::variant<quicktype::Debugger, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -11705,6 +13444,46 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::EnumValues, double>>::from_json(const json & j, std::variant<quicktype::EnumValues, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::EnumValues>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::EnumValues, double>>::to_json(json & j, const std::variant<quicktype::EnumValues, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::EnumValues>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::EqualityContract, double>>::from_json(const json & j, std::variant<quicktype::EqualityContract, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::EqualityContract>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::EqualityContract, double>>::to_json(json & j, const std::variant<quicktype::EqualityContract, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::EqualityContract>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Event, double>>::from_json(const json & j, std::variant<quicktype::Event, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -11945,6 +13724,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::FormatException, double>>::from_json(const json & j, std::variant<quicktype::FormatException, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::FormatException>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::FormatException, double>>::to_json(json & j, const std::variant<quicktype::FormatException, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::FormatException>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::From, double>>::from_json(const json & j, std::variant<quicktype::From, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12125,6 +13924,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::HashCode, double>>::from_json(const json & j, std::variant<quicktype::HashCode, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::HashCode>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::HashCode, double>>::to_json(json & j, const std::variant<quicktype::HashCode, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::HashCode>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Id, double>>::from_json(const json & j, std::variant<quicktype::Id, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12405,6 +14224,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::IsoDateTimeOffsetConverter, double>>::from_json(const json & j, std::variant<quicktype::IsoDateTimeOffsetConverter, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::IsoDateTimeOffsetConverter>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::IsoDateTimeOffsetConverter, double>>::to_json(json & j, const std::variant<quicktype::IsoDateTimeOffsetConverter, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::IsoDateTimeOffsetConverter>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Iterable, double>>::from_json(const json & j, std::variant<quicktype::Iterable, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12505,6 +14344,46 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::JsonAny, double>>::from_json(const json & j, std::variant<quicktype::JsonAny, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonAny>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonAny, double>>::to_json(json & j, const std::variant<quicktype::JsonAny, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonAny>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonCodingKey, double>>::from_json(const json & j, std::variant<quicktype::JsonCodingKey, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonCodingKey>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonCodingKey, double>>::to_json(json & j, const std::variant<quicktype::JsonCodingKey, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonCodingKey>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::JsonConverter, double>>::from_json(const json & j, std::variant<quicktype::JsonConverter, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12525,6 +14404,166 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::JsonDecoder, double>>::from_json(const json & j, std::variant<quicktype::JsonDecoder, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonDecoder>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonDecoder, double>>::to_json(json & j, const std::variant<quicktype::JsonDecoder, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonDecoder>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonEncoder, double>>::from_json(const json & j, std::variant<quicktype::JsonEncoder, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonEncoder>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonEncoder, double>>::to_json(json & j, const std::variant<quicktype::JsonEncoder, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonEncoder>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonException, double>>::from_json(const json & j, std::variant<quicktype::JsonException, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonException>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonException, double>>::to_json(json & j, const std::variant<quicktype::JsonException, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonException>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonGenerator, double>>::from_json(const json & j, std::variant<quicktype::JsonGenerator, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonGenerator>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonGenerator, double>>::to_json(json & j, const std::variant<quicktype::JsonGenerator, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonGenerator>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonNode, double>>::from_json(const json & j, std::variant<quicktype::JsonNode, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonNode>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonNode, double>>::to_json(json & j, const std::variant<quicktype::JsonNode, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonNode>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonNull, double>>::from_json(const json & j, std::variant<quicktype::JsonNull, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonNull>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonNull, double>>::to_json(json & j, const std::variant<quicktype::JsonNull, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonNull>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonParser, double>>::from_json(const json & j, std::variant<quicktype::JsonParser, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonParser>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonParser, double>>::to_json(json & j, const std::variant<quicktype::JsonParser, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonParser>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonReader, double>>::from_json(const json & j, std::variant<quicktype::JsonReader, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonReader>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonReader, double>>::to_json(json & j, const std::variant<quicktype::JsonReader, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonReader>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::JsonSerializer, double>>::from_json(const json & j, std::variant<quicktype::JsonSerializer, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12565,6 +14604,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::JsonTokenType, double>>::from_json(const json & j, std::variant<quicktype::JsonTokenType, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::JsonTokenType>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::JsonTokenType, double>>::to_json(json & j, const std::variant<quicktype::JsonTokenType, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::JsonTokenType>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::JsonWriter, double>>::from_json(const json & j, std::variant<quicktype::JsonWriter, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12845,6 +14904,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::NoSuchMethod, double>>::from_json(const json & j, std::variant<quicktype::NoSuchMethod, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::NoSuchMethod>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::NoSuchMethod, double>>::to_json(json & j, const std::variant<quicktype::NoSuchMethod, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::NoSuchMethod>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Nonatomic, double>>::from_json(const json & j, std::variant<quicktype::Nonatomic, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -12925,6 +15004,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::NsError, double>>::from_json(const json & j, std::variant<quicktype::NsError, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::NsError>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::NsError, double>>::to_json(json & j, const std::variant<quicktype::NsError, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::NsError>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::NsString, double>>::from_json(const json & j, std::variant<quicktype::NsString, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13005,6 +15104,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::ObjectMapper, double>>::from_json(const json & j, std::variant<quicktype::ObjectMapper, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::ObjectMapper>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::ObjectMapper, double>>::to_json(json & j, const std::variant<quicktype::ObjectMapper, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::ObjectMapper>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Of, double>>::from_json(const json & j, std::variant<quicktype::Of, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13265,6 +15384,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::PrintMembers, double>>::from_json(const json & j, std::variant<quicktype::PrintMembers, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::PrintMembers>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::PrintMembers, double>>::to_json(json & j, const std::variant<quicktype::PrintMembers, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::PrintMembers>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Printf, double>>::from_json(const json & j, std::variant<quicktype::Printf, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13485,6 +15624,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::RegExp, double>>::from_json(const json & j, std::variant<quicktype::RegExp, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::RegExp>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::RegExp, double>>::to_json(json & j, const std::variant<quicktype::RegExp, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::RegExp>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Repeat, double>>::from_json(const json & j, std::variant<quicktype::Repeat, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13625,6 +15784,46 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::RuntimeType, double>>::from_json(const json & j, std::variant<quicktype::RuntimeType, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::RuntimeType>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::RuntimeType, double>>::to_json(json & j, const std::variant<quicktype::RuntimeType, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::RuntimeType>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::S, double>>::from_json(const json & j, std::variant<quicktype::S, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::S>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::S, double>>::to_json(json & j, const std::variant<quicktype::S, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::S>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Sbyte, double>>::from_json(const json & j, std::variant<quicktype::Sbyte, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13745,6 +15944,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::SerializerProvider, double>>::from_json(const json & j, std::variant<quicktype::SerializerProvider, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::SerializerProvider>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::SerializerProvider, double>>::to_json(json & j, const std::variant<quicktype::SerializerProvider, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::SerializerProvider>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Set, double>>::from_json(const json & j, std::variant<quicktype::Set, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13765,6 +15984,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::SimpleModule, double>>::from_json(const json & j, std::variant<quicktype::SimpleModule, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::SimpleModule>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::SimpleModule, double>>::to_json(json & j, const std::variant<quicktype::SimpleModule, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::SimpleModule>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Stackalloc, double>>::from_json(const json & j, std::variant<quicktype::Stackalloc, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13785,6 +16024,66 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::Standards, double>>::from_json(const json & j, std::variant<quicktype::Standards, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::Standards>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Standards, double>>::to_json(json & j, const std::variant<quicktype::Standards, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::Standards>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::StdDeserializer, double>>::from_json(const json & j, std::variant<quicktype::StdDeserializer, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::StdDeserializer>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::StdDeserializer, double>>::to_json(json & j, const std::variant<quicktype::StdDeserializer, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::StdDeserializer>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::StdSerializer, double>>::from_json(const json & j, std::variant<quicktype::StdSerializer, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::StdSerializer>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::StdSerializer, double>>::to_json(json & j, const std::variant<quicktype::StdSerializer, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::StdSerializer>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Strictfp, double>>::from_json(const json & j, std::variant<quicktype::Strictfp, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13945,6 +16244,46 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::TimeOnly, double>>::from_json(const json & j, std::variant<quicktype::TimeOnly, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::TimeOnly>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::TimeOnly, double>>::to_json(json & j, const std::variant<quicktype::TimeOnly, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::TimeOnly>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::TimeOnlyConverter, double>>::from_json(const json & j, std::variant<quicktype::TimeOnlyConverter, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::TimeOnlyConverter>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::TimeOnlyConverter, double>>::to_json(json & j, const std::variant<quicktype::TimeOnlyConverter, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::TimeOnlyConverter>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::ToJson, double>>::from_json(const json & j, std::variant<quicktype::ToJson, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -13965,6 +16304,26 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::ToString, double>>::from_json(const json & j, std::variant<quicktype::ToString, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::ToString>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::ToString, double>>::to_json(json & j, const std::variant<quicktype::ToString, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::ToString>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::TopLevelClass, double>>::from_json(const json & j, std::variant<quicktype::TopLevelClass, double> & x) {
         if (j.is_number())
             x = j.get<double>();
@@ -16265,6 +18624,66 @@ namespace nlohmann {
         }
     }
 
+    inline void adl_serializer<std::variant<quicktype::Utf8JsonReader, double>>::from_json(const json & j, std::variant<quicktype::Utf8JsonReader, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::Utf8JsonReader>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Utf8JsonReader, double>>::to_json(json & j, const std::variant<quicktype::Utf8JsonReader, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::Utf8JsonReader>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Utf8JsonWriter, double>>::from_json(const json & j, std::variant<quicktype::Utf8JsonWriter, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::Utf8JsonWriter>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Utf8JsonWriter, double>>::to_json(json & j, const std::variant<quicktype::Utf8JsonWriter, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::Utf8JsonWriter>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Uuid, double>>::from_json(const json & j, std::variant<quicktype::Uuid, double> & x) {
+        if (j.is_number())
+            x = j.get<double>();
+        else if (j.is_object())
+            x = j.get<quicktype::Uuid>();
+        else throw std::runtime_error("Could not deserialise!");
+    }
+
+    inline void adl_serializer<std::variant<quicktype::Uuid, double>>::to_json(json & j, const std::variant<quicktype::Uuid, double> & x) {
+        switch (x.index()) {
+            case 0:
+                j = std::get<quicktype::Uuid>(x);
+                break;
+            case 1:
+                j = std::get<double>(x);
+                break;
+            default: throw std::runtime_error("Input JSON does not conform to schema!");
+        }
+    }
+
     inline void adl_serializer<std::variant<quicktype::Var, double>>::from_json(const json & j, std::variant<quicktype::Var, double> & x) {
         if (j.is_number())
             x = j.get<double>();
diff --git a/base/schema-crystal/test/inputs/schema/keyword-unions.schema/default/TopLevel.cr b/head/schema-crystal/test/inputs/schema/keyword-unions.schema/default/TopLevel.cr
index 571c9d3..e7380e5 100644
--- a/base/schema-crystal/test/inputs/schema/keyword-unions.schema/default/TopLevel.cr
+++ b/head/schema-crystal/test/inputs/schema/keyword-unions.schema/default/TopLevel.cr
@@ -104,6 +104,8 @@ class TopLevel
   @[JSON::Field(key: "Class")]
   property top_level_class : UnionClassUnion?
 
+  property clone : UnionClone?
+
   property co_await : UnionCoAwait?
 
   property co_return : UnionCoReturn?
@@ -132,10 +134,28 @@ class TopLevel
 
   property converter : UnionConverter?
 
+  @[JSON::Field(key: "CultureInfo")]
+  property culture_info : UnionCultureInfo?
+
   property date : UnionDate?
 
   property date_parse_handling : UnionDateParseHandling?
 
+  @[JSON::Field(key: "DateFormatter")]
+  property date_formatter : UnionDateFormatter?
+
+  @[JSON::Field(key: "DateOnly")]
+  property date_only : UnionDateOnly?
+
+  @[JSON::Field(key: "DateOnlyConverter")]
+  property date_only_converter : UnionDateOnlyConverter?
+
+  @[JSON::Field(key: "DateTime")]
+  property date_time : UnionDateTime?
+
+  @[JSON::Field(key: "DateTimeStyles")]
+  property date_time_styles : UnionDateTimeStyles?
+
   property debugger : UnionDebugger?
 
   property decimal : UnionDecimal?
@@ -189,6 +209,12 @@ class TopLevel
   @[JSON::Field(key: "enum")]
   property top_level_enum : UnionEnum?
 
+  @[JSON::Field(key: "EnumValues")]
+  property enum_values : UnionEnumValues?
+
+  @[JSON::Field(key: "equalityContract")]
+  property equality_contract : UnionEqualityContract?
+
   property event : UnionEvent?
 
   property except : UnionExcept?
@@ -230,6 +256,9 @@ class TopLevel
 
   property foreach : UnionForeach?
 
+  @[JSON::Field(key: "FormatException")]
+  property format_exception : UnionFormatException?
+
   property friend : UnionFriend?
 
   property from : UnionFrom?
@@ -250,6 +279,9 @@ class TopLevel
 
   property guard : UnionGuard?
 
+  @[JSON::Field(key: "hashCode")]
+  property hash_code : UnionHashCode?
+
   @[JSON::Field(key: "hasOwnProperty")]
   property has_own_property : UnionHasOwnProperty?
 
@@ -290,6 +322,9 @@ class TopLevel
 
   property is : UnionIs?
 
+  @[JSON::Field(key: "IsoDateTimeOffsetConverter")]
+  property iso_date_time_offset_converter : UnionIsoDateTimeOffsetConverter?
+
   property iterable : UnionIterable?
 
   property jdec : UnionJdec?
@@ -308,6 +343,39 @@ class TopLevel
 
   property json_writer : UnionJsonWriter?
 
+  @[JSON::Field(key: "JSONAny")]
+  property json_any : UnionJsonAny?
+
+  @[JSON::Field(key: "JSONCodingKey")]
+  property json_coding_key : UnionJsonCodingKey?
+
+  @[JSON::Field(key: "JSONDecoder")]
+  property json_decoder : UnionJsonDecoder?
+
+  @[JSON::Field(key: "JSONEncoder")]
+  property json_encoder : UnionJsonEncoder?
+
+  @[JSON::Field(key: "JsonException")]
+  property json_exception : UnionJsonException?
+
+  @[JSON::Field(key: "JsonGenerator")]
+  property json_generator : UnionJsonGenerator?
+
+  @[JSON::Field(key: "JsonNode")]
+  property json_node : UnionJsonNode?
+
+  @[JSON::Field(key: "JSONNull")]
+  property json_null : UnionJsonNull?
+
+  @[JSON::Field(key: "JsonParser")]
+  property json_parser : UnionJsonParser?
+
+  @[JSON::Field(key: "JsonReader")]
+  property json_reader : UnionJsonReader?
+
+  @[JSON::Field(key: "JsonTokenType")]
+  property json_token_type : UnionJsonTokenType?
+
   property lambda : UnionLambda?
 
   property lazy : UnionLazy?
@@ -361,10 +429,16 @@ class TopLevel
 
   property nonmutating : UnionNonmutating?
 
+  @[JSON::Field(key: "noSuchMethod")]
+  property no_such_method : UnionNoSuchMethod?
+
   property not : UnionNot?
 
   property not_eq : UnionNotEq?
 
+  @[JSON::Field(key: "NSError")]
+  property ns_error : UnionNsError?
+
   @[JSON::Field(key: "NSString")]
   property ns_string : UnionNsString?
 
@@ -380,6 +454,9 @@ class TopLevel
 
   property object : UnionObject?
 
+  @[JSON::Field(key: "ObjectMapper")]
+  property object_mapper : UnionObjectMapper?
+
   @[JSON::Field(key: "of")]
   property top_level_of : UnionOf?
 
@@ -418,6 +495,9 @@ class TopLevel
 
   property printf : UnionPrintf?
 
+  @[JSON::Field(key: "printMembers")]
+  property print_members : UnionPrintMembers?
+
   @[JSON::Field(key: "private")]
   property top_level_private : UnionPrivate?
 
@@ -442,6 +522,9 @@ class TopLevel
 
   property ref : UnionRef?
 
+  @[JSON::Field(key: "RegExp")]
+  property reg_exp : UnionRegExp?
+
   property register : UnionRegister?
 
   property reinterpret_cast : UnionReinterpretCast?
@@ -466,6 +549,11 @@ class TopLevel
 
   property right : UnionRight?
 
+  @[JSON::Field(key: "runtimeType")]
+  property runtime_type : UnionRuntimeType?
+
+  property s : UnionS?
+
   property sbyte : UnionSbyte?
 
   property sealed : UnionSealed?
@@ -484,23 +572,38 @@ class TopLevel
 
   property serialize : UnionSerialize?
 
+  @[JSON::Field(key: "SerializerProvider")]
+  property serializer_provider : UnionSerializerProvider?
+
   property set : UnionSet?
 
   property short : UnionShort?
 
   property signed : UnionSigned?
 
+  @[JSON::Field(key: "SimpleModule")]
+  property simple_module : UnionSimpleModule?
+
   @[JSON::Field(key: "sizeof")]
   property top_level_sizeof : UnionSizeof?
 
   property stackalloc : UnionStackalloc?
 
+  @[JSON::Field(key: "Standards")]
+  property standards : UnionStandards?
+
   property static : UnionStatic?
 
   property static_assert : UnionStaticAssert?
 
   property static_cast : UnionStaticCast?
 
+  @[JSON::Field(key: "StdDeserializer")]
+  property std_deserializer : UnionStdDeserializer?
+
+  @[JSON::Field(key: "StdSerializer")]
+  property std_serializer : UnionStdSerializer?
+
   property strictfp : UnionStrictfp?
 
   property string : UnionString?
@@ -534,11 +637,20 @@ class TopLevel
 
   property throws : UnionThrows?
 
+  @[JSON::Field(key: "TimeOnly")]
+  property time_only : UnionTimeOnly?
+
+  @[JSON::Field(key: "TimeOnlyConverter")]
+  property time_only_converter : UnionTimeOnlyConverter?
+
   @[JSON::Field(key: "to_json")]
   property top_level_to_json : UnionToJson?
 
   property top_level : UnionTopLevel?
 
+  @[JSON::Field(key: "toString")]
+  property to_string : UnionToString?
+
   property transient : UnionTransient?
 
   @[JSON::Field(key: "True")]
@@ -587,6 +699,15 @@ class TopLevel
 
   property using : UnionUsing?
 
+  @[JSON::Field(key: "Utf8JsonReader")]
+  property utf8_json_reader : UnionUtf8JsonReader?
+
+  @[JSON::Field(key: "Utf8JsonWriter")]
+  property utf8_json_writer : UnionUtf8JsonWriter?
+
+  @[JSON::Field(key: "UUID")]
+  property uuid : UnionUuid?
+
   property var : UnionVar?
 
   property virtual : UnionVirtual?
@@ -771,6 +892,11 @@ class Checked
 
 end
 
+class Clone
+  include JSON::Serializable
+
+end
+
 class CoAwait
   include JSON::Serializable
 
@@ -846,16 +972,46 @@ class Converter
 
 end
 
+class CultureInfo
+  include JSON::Serializable
+
+end
+
 class Date
   include JSON::Serializable
 
 end
 
+class DateFormatter
+  include JSON::Serializable
+
+end
+
+class DateOnly
+  include JSON::Serializable
+
+end
+
+class DateOnlyConverter
+  include JSON::Serializable
+
+end
+
 class DateParseHandling
   include JSON::Serializable
 
 end
 
+class DateTime
+  include JSON::Serializable
+
+end
+
+class DateTimeStyles
+  include JSON::Serializable
+
+end
+
 class Debugger
   include JSON::Serializable
 
@@ -956,6 +1112,16 @@ class EncodeQuickType
 
 end
 
+class EnumValues
+  include JSON::Serializable
+
+end
+
+class EqualityContract
+  include JSON::Serializable
+
+end
+
 class EventClass
   include JSON::Serializable
 
@@ -1036,6 +1202,11 @@ class Foreach
 
 end
 
+class FormatException
+  include JSON::Serializable
+
+end
+
 class Friend
   include JSON::Serializable
 
@@ -1091,6 +1262,11 @@ class HasOwnProperty
 
 end
 
+class HashCode
+  include JSON::Serializable
+
+end
+
 class Id
   include JSON::Serializable
 
@@ -1171,6 +1347,11 @@ class Is
 
 end
 
+class IsoDateTimeOffsetConverter
+  include JSON::Serializable
+
+end
+
 class IterableClass
   include JSON::Serializable
 
@@ -1196,11 +1377,61 @@ class Json
 
 end
 
+class JsonAny
+  include JSON::Serializable
+
+end
+
+class JsonCodingKey
+  include JSON::Serializable
+
+end
+
 class JsonConverter
   include JSON::Serializable
 
 end
 
+class JsonDecoder
+  include JSON::Serializable
+
+end
+
+class JsonEncoder
+  include JSON::Serializable
+
+end
+
+class JsonException
+  include JSON::Serializable
+
+end
+
+class JsonGenerator
+  include JSON::Serializable
+
+end
+
+class JsonNode
+  include JSON::Serializable
+
+end
+
+class JsonNull
+  include JSON::Serializable
+
+end
+
+class JsonParser
+  include JSON::Serializable
+
+end
+
+class JsonReader
+  include JSON::Serializable
+
+end
+
 class JsonSerializer
   include JSON::Serializable
 
@@ -1211,6 +1442,11 @@ class JsonToken
 
 end
 
+class JsonTokenType
+  include JSON::Serializable
+
+end
+
 class JsonWriter
   include JSON::Serializable
 
@@ -1296,6 +1532,11 @@ class No
 
 end
 
+class NoSuchMethod
+  include JSON::Serializable
+
+end
+
 class Noexcept
   include JSON::Serializable
 
@@ -1331,6 +1572,11 @@ class NotEq
 
 end
 
+class NsError
+  include JSON::Serializable
+
+end
+
 class NsString
   include JSON::Serializable
 
@@ -1356,6 +1602,11 @@ class ObjectClass
 
 end
 
+class ObjectMapper
+  include JSON::Serializable
+
+end
+
 class Oneway
   include JSON::Serializable
 
@@ -1431,6 +1682,11 @@ class Print
 
 end
 
+class PrintMembers
+  include JSON::Serializable
+
+end
+
 class Printf
   include JSON::Serializable
 
@@ -1501,6 +1757,11 @@ class Ref
 
 end
 
+class RegExp
+  include JSON::Serializable
+
+end
+
 class Register
   include JSON::Serializable
 
@@ -1546,6 +1807,16 @@ class Right
 
 end
 
+class RuntimeType
+  include JSON::Serializable
+
+end
+
+class S
+  include JSON::Serializable
+
+end
+
 class Sbyte
   include JSON::Serializable
 
@@ -1566,6 +1837,11 @@ class Serialize
 
 end
 
+class SerializerProvider
+  include JSON::Serializable
+
+end
+
 class SetClass
   include JSON::Serializable
 
@@ -1581,11 +1857,21 @@ class Signed
 
 end
 
+class SimpleModule
+  include JSON::Serializable
+
+end
+
 class Stackalloc
   include JSON::Serializable
 
 end
 
+class Standards
+  include JSON::Serializable
+
+end
+
 class Static
   include JSON::Serializable
 
@@ -1601,6 +1887,16 @@ class StaticCast
 
 end
 
+class StdDeserializer
+  include JSON::Serializable
+
+end
+
+class StdSerializer
+  include JSON::Serializable
+
+end
+
 class Strictfp
   include JSON::Serializable
 
@@ -1661,6 +1957,21 @@ class Throws
 
 end
 
+class TimeOnly
+  include JSON::Serializable
+
+end
+
+class TimeOnlyConverter
+  include JSON::Serializable
+
+end
+
+class ToString
+  include JSON::Serializable
+
+end
+
 class TopLevelClass
   include JSON::Serializable
 
@@ -1946,6 +2257,21 @@ class Using
 
 end
 
+class Utf8JsonReader
+  include JSON::Serializable
+
+end
+
+class Utf8JsonWriter
+  include JSON::Serializable
+
+end
+
+class Uuid
+  include JSON::Serializable
+
+end
+
 class Var
   include JSON::Serializable
 
@@ -2061,6 +2387,8 @@ alias UnionChar32T = Char32T | Float64
 
 alias UnionChecked = Checked | Float64
 
+alias UnionClone = Clone | Float64
+
 alias UnionCoAwait = CoAwait | Float64
 
 alias UnionCoReturn = CoReturn | Float64
@@ -2091,10 +2419,22 @@ alias UnionConvert = Convert | Float64
 
 alias UnionConverter = Converter | Float64
 
+alias UnionCultureInfo = CultureInfo | Float64
+
 alias UnionDate = Date | Float64
 
+alias UnionDateFormatter = DateFormatter | Float64
+
+alias UnionDateOnly = DateOnly | Float64
+
+alias UnionDateOnlyConverter = DateOnlyConverter | Float64
+
 alias UnionDateParseHandling = DateParseHandling | Float64
 
+alias UnionDateTime = DateTime | Float64
+
+alias UnionDateTimeStyles = DateTimeStyles | Float64
+
 alias UnionDebugger = Debugger | Float64
 
 alias UnionDecimal = Decimal | Float64
@@ -2135,6 +2475,10 @@ alias UnionUnion = Float64 | Empty
 
 alias UnionEncodeQuickType = Float64 | EncodeQuickType
 
+alias UnionEnumValues = Float64 | EnumValues
+
+alias UnionEqualityContract = Float64 | EqualityContract
+
 alias UnionEvent = Float64 | EventClass
 
 alias UnionExcept = Float64 | Except
@@ -2167,6 +2511,8 @@ alias UnionFloat = Float64 | FloatClass
 
 alias UnionForeach = Float64 | Foreach
 
+alias UnionFormatException = Float64 | FormatException
+
 alias UnionFriend = Float64 | Friend
 
 alias UnionFrom = Float64 | From
@@ -2189,6 +2535,8 @@ alias UnionGuard = Float64 | Guard
 
 alias UnionHasOwnProperty = Float64 | HasOwnProperty
 
+alias UnionHashCode = Float64 | HashCode
+
 alias UnionId = Float64 | Id
 
 alias UnionImaginery = Float64 | Imaginery
@@ -2221,6 +2569,8 @@ alias UnionInternal = Float64 | Internal
 
 alias UnionIs = Float64 | Is
 
+alias UnionIsoDateTimeOffsetConverter = Float64 | IsoDateTimeOffsetConverter
+
 alias UnionIterable = Float64 | IterableClass
 
 alias UnionJdec = Float64 | Jdec
@@ -2231,12 +2581,34 @@ alias UnionJpipe = Float64 | Jpipe
 
 alias UnionJson = Float64 | Json
 
+alias UnionJsonAny = Float64 | JsonAny
+
+alias UnionJsonCodingKey = Float64 | JsonCodingKey
+
 alias UnionJsonConverter = Float64 | JsonConverter
 
+alias UnionJsonDecoder = Float64 | JsonDecoder
+
+alias UnionJsonEncoder = Float64 | JsonEncoder
+
+alias UnionJsonException = Float64 | JsonException
+
+alias UnionJsonGenerator = Float64 | JsonGenerator
+
+alias UnionJsonNode = Float64 | JsonNode
+
+alias UnionJsonNull = Float64 | JsonNull
+
+alias UnionJsonParser = Float64 | JsonParser
+
+alias UnionJsonReader = Float64 | JsonReader
+
 alias UnionJsonSerializer = Float64 | JsonSerializer
 
 alias UnionJsonToken = Float64 | JsonToken
 
+alias UnionJsonTokenType = Float64 | JsonTokenType
+
 alias UnionJsonWriter = Float64 | JsonWriter
 
 alias UnionLambda = Float64 | Lambda
@@ -2271,6 +2643,8 @@ alias UnionNewtonsoft = Float64 | Newtonsoft
 
 alias UnionNo = Float64 | No
 
+alias UnionNoSuchMethod = Float64 | NoSuchMethod
+
 alias UnionNoexcept = Float64 | Noexcept
 
 alias UnionNonatomic = Float64 | Nonatomic
@@ -2285,6 +2659,8 @@ alias UnionNot = Float64 | Not
 
 alias UnionNotEq = Float64 | NotEq
 
+alias UnionNsError = Float64 | NsError
+
 alias UnionNsString = Float64 | NsString
 
 alias UnionNull = Float64 | Null
@@ -2295,6 +2671,8 @@ alias UnionNumber = Float64 | NumberClass
 
 alias UnionObject = Float64 | ObjectClass
 
+alias UnionObjectMapper = Float64 | ObjectMapper
+
 alias UnionOneway = Float64 | Oneway
 
 alias UnionOpen = Float64 | Open
@@ -2325,6 +2703,8 @@ alias UnionPrefix = Float64 | Prefix
 
 alias UnionPrint = Float64 | Print
 
+alias UnionPrintMembers = Float64 | PrintMembers
+
 alias UnionPrintf = Float64 | Printf
 
 alias UnionProtocol = Float64 | Protocol
@@ -2353,6 +2733,8 @@ alias UnionReadonly = Float64 | Readonly
 
 alias UnionRef = Float64 | Ref
 
+alias UnionRegExp = Float64 | RegExp
+
 alias UnionRegister = Float64 | Register
 
 alias UnionReinterpretCast = Float64 | ReinterpretCast
@@ -2371,6 +2753,10 @@ alias UnionRethrows = Float64 | Rethrows
 
 alias UnionRight = Float64 | Right
 
+alias UnionRuntimeType = Float64 | RuntimeType
+
+alias UnionS = Float64 | S
+
 alias UnionSbyte = Float64 | Sbyte
 
 alias UnionSealed = Float64 | Sealed
@@ -2379,20 +2765,30 @@ alias UnionSel = Float64 | Sel
 
 alias UnionSerialize = Float64 | Serialize
 
+alias UnionSerializerProvider = Float64 | SerializerProvider
+
 alias UnionSet = Float64 | SetClass
 
 alias UnionShort = Float64 | Short
 
 alias UnionSigned = Float64 | Signed
 
+alias UnionSimpleModule = Float64 | SimpleModule
+
 alias UnionStackalloc = Float64 | Stackalloc
 
+alias UnionStandards = Float64 | Standards
+
 alias UnionStatic = Float64 | Static
 
 alias UnionStaticAssert = Float64 | StaticAssert
 
 alias UnionStaticCast = Float64 | StaticCast
 
+alias UnionStdDeserializer = Float64 | StdDeserializer
+
+alias UnionStdSerializer = Float64 | StdSerializer
+
 alias UnionStrictfp = Float64 | Strictfp
 
 alias UnionString = Float64 | StringClass
@@ -2417,6 +2813,12 @@ alias UnionThrow = Float64 | Throw
 
 alias UnionThrows = Float64 | Throws
 
+alias UnionTimeOnly = Float64 | TimeOnly
+
+alias UnionTimeOnlyConverter = Float64 | TimeOnlyConverter
+
+alias UnionToString = Float64 | ToString
+
 alias UnionTopLevel = Float64 | TopLevelClass
 
 alias UnionAbstract = Abstract | Float64
@@ -2531,6 +2933,12 @@ alias UnionUshort = Float64 | Ushort
 
 alias UnionUsing = Float64 | Using
 
+alias UnionUtf8JsonReader = Float64 | Utf8JsonReader
+
+alias UnionUtf8JsonWriter = Float64 | Utf8JsonWriter
+
+alias UnionUuid = Float64 | Uuid
+
 alias UnionVar = Float64 | Var
 
 alias UnionVirtual = Float64 | Virtual
diff --git a/base/schema-csharp/test/inputs/schema/keyword-enum.schema/default/QuickType.cs b/head/schema-csharp/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
index d2d1880..6f14f59 100644
--- a/base/schema-csharp/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
+++ b/head/schema-csharp/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
@@ -29,7 +29,7 @@ namespace QuickType
         public Enum? Enum { get; set; }
     }
 
-    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, Date, DateParseHandling, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, Not, NotEq, NsString, Null, EnumNull, Nullptr, Number, Object, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, Set, Short, Signed, Sizeof, Stackalloc, Static, StaticAssert, StaticCast, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, ToJson, TopLevel, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
+    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, Clone, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, CultureInfo, Date, DateParseHandling, DateFormatter, DateOnly, DateOnlyConverter, DateTime, DateTimeStyles, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, EnumValues, EqualityContract, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, FormatException, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HashCode, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, IsoDateTimeOffsetConverter, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, JsonAny, JsonCodingKey, JsonDecoder, JsonEncoder, JsonException, JsonGenerator, JsonNode, JsonNull, JsonParser, JsonReader, JsonTokenType, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, NoSuchMethod, Not, NotEq, NsError, NsString, Null, EnumNull, Nullptr, Number, Object, ObjectMapper, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, PrintMembers, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, RegExp, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, RuntimeType, S, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, SerializerProvider, Set, Short, Signed, SimpleModule, Sizeof, Stackalloc, Standards, Static, StaticAssert, StaticCast, StdDeserializer, StdSerializer, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, TimeOnly, TimeOnlyConverter, ToJson, TopLevel, ToString, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Utf8JsonReader, Utf8JsonWriter, Uuid, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
 
     public partial class TopLevel
     {
@@ -151,6 +151,8 @@ namespace QuickType
                     return Enum.Class;
                 case "Class":
                     return Enum.EnumClass;
+                case "clone":
+                    return Enum.Clone;
                 case "co_await":
                     return Enum.CoAwait;
                 case "co_return":
@@ -179,10 +181,22 @@ namespace QuickType
                     return Enum.Convert;
                 case "converter":
                     return Enum.Converter;
+                case "CultureInfo":
+                    return Enum.CultureInfo;
                 case "date":
                     return Enum.Date;
                 case "date_parse_handling":
                     return Enum.DateParseHandling;
+                case "DateFormatter":
+                    return Enum.DateFormatter;
+                case "DateOnly":
+                    return Enum.DateOnly;
+                case "DateOnlyConverter":
+                    return Enum.DateOnlyConverter;
+                case "DateTime":
+                    return Enum.DateTime;
+                case "DateTimeStyles":
+                    return Enum.DateTimeStyles;
                 case "debugger":
                     return Enum.Debugger;
                 case "decimal":
@@ -229,6 +243,10 @@ namespace QuickType
                     return Enum.EncodeQuickType;
                 case "enum":
                     return Enum.Enum;
+                case "EnumValues":
+                    return Enum.EnumValues;
+                case "equalityContract":
+                    return Enum.EqualityContract;
                 case "event":
                     return Enum.Event;
                 case "except":
@@ -267,6 +285,8 @@ namespace QuickType
                     return Enum.For;
                 case "foreach":
                     return Enum.Foreach;
+                case "FormatException":
+                    return Enum.FormatException;
                 case "friend":
                     return Enum.Friend;
                 case "from":
@@ -287,6 +307,8 @@ namespace QuickType
                     return Enum.Goto;
                 case "guard":
                     return Enum.Guard;
+                case "hashCode":
+                    return Enum.HashCode;
                 case "hasOwnProperty":
                     return Enum.HasOwnProperty;
                 case "id":
@@ -321,6 +343,8 @@ namespace QuickType
                     return Enum.Interface;
                 case "internal":
                     return Enum.Internal;
+                case "IsoDateTimeOffsetConverter":
+                    return Enum.IsoDateTimeOffsetConverter;
                 case "iterable":
                     return Enum.Iterable;
                 case "is":
@@ -341,6 +365,28 @@ namespace QuickType
                     return Enum.JsonToken;
                 case "json_writer":
                     return Enum.JsonWriter;
+                case "JSONAny":
+                    return Enum.JsonAny;
+                case "JSONCodingKey":
+                    return Enum.JsonCodingKey;
+                case "JSONDecoder":
+                    return Enum.JsonDecoder;
+                case "JSONEncoder":
+                    return Enum.JsonEncoder;
+                case "JsonException":
+                    return Enum.JsonException;
+                case "JsonGenerator":
+                    return Enum.JsonGenerator;
+                case "JsonNode":
+                    return Enum.JsonNode;
+                case "JSONNull":
+                    return Enum.JsonNull;
+                case "JsonParser":
+                    return Enum.JsonParser;
+                case "JsonReader":
+                    return Enum.JsonReader;
+                case "JsonTokenType":
+                    return Enum.JsonTokenType;
                 case "lambda":
                     return Enum.Lambda;
                 case "lazy":
@@ -389,10 +435,14 @@ namespace QuickType
                     return Enum.Nonlocal;
                 case "nonmutating":
                     return Enum.Nonmutating;
+                case "noSuchMethod":
+                    return Enum.NoSuchMethod;
                 case "not":
                     return Enum.Not;
                 case "not_eq":
                     return Enum.NotEq;
+                case "NSError":
+                    return Enum.NsError;
                 case "NSString":
                     return Enum.NsString;
                 case "NULL":
@@ -405,6 +455,8 @@ namespace QuickType
                     return Enum.Number;
                 case "object":
                     return Enum.Object;
+                case "ObjectMapper":
+                    return Enum.ObjectMapper;
                 case "of":
                     return Enum.Of;
                 case "oneway":
@@ -441,6 +493,8 @@ namespace QuickType
                     return Enum.Print;
                 case "printf":
                     return Enum.Printf;
+                case "printMembers":
+                    return Enum.PrintMembers;
                 case "private":
                     return Enum.Private;
                 case "protected":
@@ -461,6 +515,8 @@ namespace QuickType
                     return Enum.Readonly;
                 case "ref":
                     return Enum.Ref;
+                case "RegExp":
+                    return Enum.RegExp;
                 case "register":
                     return Enum.Register;
                 case "reinterpret_cast":
@@ -483,6 +539,10 @@ namespace QuickType
                     return Enum.Return;
                 case "right":
                     return Enum.Right;
+                case "runtimeType":
+                    return Enum.RuntimeType;
+                case "s":
+                    return Enum.S;
                 case "sbyte":
                     return Enum.Sbyte;
                 case "sealed":
@@ -497,22 +557,32 @@ namespace QuickType
                     return Enum.EnumSelf;
                 case "serialize":
                     return Enum.Serialize;
+                case "SerializerProvider":
+                    return Enum.SerializerProvider;
                 case "set":
                     return Enum.Set;
                 case "short":
                     return Enum.Short;
                 case "signed":
                     return Enum.Signed;
+                case "SimpleModule":
+                    return Enum.SimpleModule;
                 case "sizeof":
                     return Enum.Sizeof;
                 case "stackalloc":
                     return Enum.Stackalloc;
+                case "Standards":
+                    return Enum.Standards;
                 case "static":
                     return Enum.Static;
                 case "static_assert":
                     return Enum.StaticAssert;
                 case "static_cast":
                     return Enum.StaticCast;
+                case "StdDeserializer":
+                    return Enum.StdDeserializer;
+                case "StdSerializer":
+                    return Enum.StdSerializer;
                 case "strictfp":
                     return Enum.Strictfp;
                 case "string":
@@ -543,10 +613,16 @@ namespace QuickType
                     return Enum.Throw;
                 case "throws":
                     return Enum.Throws;
+                case "TimeOnly":
+                    return Enum.TimeOnly;
+                case "TimeOnlyConverter":
+                    return Enum.TimeOnlyConverter;
                 case "to_json":
                     return Enum.ToJson;
                 case "top_level":
                     return Enum.TopLevel;
+                case "toString":
+                    return Enum.ToString;
                 case "transient":
                     return Enum.Transient;
                 case "True":
@@ -589,6 +665,12 @@ namespace QuickType
                     return Enum.Ushort;
                 case "using":
                     return Enum.Using;
+                case "Utf8JsonReader":
+                    return Enum.Utf8JsonReader;
+                case "Utf8JsonWriter":
+                    return Enum.Utf8JsonWriter;
+                case "UUID":
+                    return Enum.Uuid;
                 case "var":
                     return Enum.Var;
                 case "virtual":
@@ -762,6 +844,9 @@ namespace QuickType
                 case Enum.EnumClass:
                     serializer.Serialize(writer, "Class");
                     return;
+                case Enum.Clone:
+                    serializer.Serialize(writer, "clone");
+                    return;
                 case Enum.CoAwait:
                     serializer.Serialize(writer, "co_await");
                     return;
@@ -804,12 +889,30 @@ namespace QuickType
                 case Enum.Converter:
                     serializer.Serialize(writer, "converter");
                     return;
+                case Enum.CultureInfo:
+                    serializer.Serialize(writer, "CultureInfo");
+                    return;
                 case Enum.Date:
                     serializer.Serialize(writer, "date");
                     return;
                 case Enum.DateParseHandling:
                     serializer.Serialize(writer, "date_parse_handling");
                     return;
+                case Enum.DateFormatter:
+                    serializer.Serialize(writer, "DateFormatter");
+                    return;
+                case Enum.DateOnly:
+                    serializer.Serialize(writer, "DateOnly");
+                    return;
+                case Enum.DateOnlyConverter:
+                    serializer.Serialize(writer, "DateOnlyConverter");
+                    return;
+                case Enum.DateTime:
+                    serializer.Serialize(writer, "DateTime");
+                    return;
+                case Enum.DateTimeStyles:
+                    serializer.Serialize(writer, "DateTimeStyles");
+                    return;
                 case Enum.Debugger:
                     serializer.Serialize(writer, "debugger");
                     return;
@@ -879,6 +982,12 @@ namespace QuickType
                 case Enum.Enum:
                     serializer.Serialize(writer, "enum");
                     return;
+                case Enum.EnumValues:
+                    serializer.Serialize(writer, "EnumValues");
+                    return;
+                case Enum.EqualityContract:
+                    serializer.Serialize(writer, "equalityContract");
+                    return;
                 case Enum.Event:
                     serializer.Serialize(writer, "event");
                     return;
@@ -936,6 +1045,9 @@ namespace QuickType
                 case Enum.Foreach:
                     serializer.Serialize(writer, "foreach");
                     return;
+                case Enum.FormatException:
+                    serializer.Serialize(writer, "FormatException");
+                    return;
                 case Enum.Friend:
                     serializer.Serialize(writer, "friend");
                     return;
@@ -966,6 +1078,9 @@ namespace QuickType
                 case Enum.Guard:
                     serializer.Serialize(writer, "guard");
                     return;
+                case Enum.HashCode:
+                    serializer.Serialize(writer, "hashCode");
+                    return;
                 case Enum.HasOwnProperty:
                     serializer.Serialize(writer, "hasOwnProperty");
                     return;
@@ -1017,6 +1132,9 @@ namespace QuickType
                 case Enum.Internal:
                     serializer.Serialize(writer, "internal");
                     return;
+                case Enum.IsoDateTimeOffsetConverter:
+                    serializer.Serialize(writer, "IsoDateTimeOffsetConverter");
+                    return;
                 case Enum.Iterable:
                     serializer.Serialize(writer, "iterable");
                     return;
@@ -1047,6 +1165,39 @@ namespace QuickType
                 case Enum.JsonWriter:
                     serializer.Serialize(writer, "json_writer");
                     return;
+                case Enum.JsonAny:
+                    serializer.Serialize(writer, "JSONAny");
+                    return;
+                case Enum.JsonCodingKey:
+                    serializer.Serialize(writer, "JSONCodingKey");
+                    return;
+                case Enum.JsonDecoder:
+                    serializer.Serialize(writer, "JSONDecoder");
+                    return;
+                case Enum.JsonEncoder:
+                    serializer.Serialize(writer, "JSONEncoder");
+                    return;
+                case Enum.JsonException:
+                    serializer.Serialize(writer, "JsonException");
+                    return;
+                case Enum.JsonGenerator:
+                    serializer.Serialize(writer, "JsonGenerator");
+                    return;
+                case Enum.JsonNode:
+                    serializer.Serialize(writer, "JsonNode");
+                    return;
+                case Enum.JsonNull:
+                    serializer.Serialize(writer, "JSONNull");
+                    return;
+                case Enum.JsonParser:
+                    serializer.Serialize(writer, "JsonParser");
+                    return;
+                case Enum.JsonReader:
+                    serializer.Serialize(writer, "JsonReader");
+                    return;
+                case Enum.JsonTokenType:
+                    serializer.Serialize(writer, "JsonTokenType");
+                    return;
                 case Enum.Lambda:
                     serializer.Serialize(writer, "lambda");
                     return;
@@ -1119,12 +1270,18 @@ namespace QuickType
                 case Enum.Nonmutating:
                     serializer.Serialize(writer, "nonmutating");
                     return;
+                case Enum.NoSuchMethod:
+                    serializer.Serialize(writer, "noSuchMethod");
+                    return;
                 case Enum.Not:
                     serializer.Serialize(writer, "not");
                     return;
                 case Enum.NotEq:
                     serializer.Serialize(writer, "not_eq");
                     return;
+                case Enum.NsError:
+                    serializer.Serialize(writer, "NSError");
+                    return;
                 case Enum.NsString:
                     serializer.Serialize(writer, "NSString");
                     return;
@@ -1143,6 +1300,9 @@ namespace QuickType
                 case Enum.Object:
                     serializer.Serialize(writer, "object");
                     return;
+                case Enum.ObjectMapper:
+                    serializer.Serialize(writer, "ObjectMapper");
+                    return;
                 case Enum.Of:
                     serializer.Serialize(writer, "of");
                     return;
@@ -1197,6 +1357,9 @@ namespace QuickType
                 case Enum.Printf:
                     serializer.Serialize(writer, "printf");
                     return;
+                case Enum.PrintMembers:
+                    serializer.Serialize(writer, "printMembers");
+                    return;
                 case Enum.Private:
                     serializer.Serialize(writer, "private");
                     return;
@@ -1227,6 +1390,9 @@ namespace QuickType
                 case Enum.Ref:
                     serializer.Serialize(writer, "ref");
                     return;
+                case Enum.RegExp:
+                    serializer.Serialize(writer, "RegExp");
+                    return;
                 case Enum.Register:
                     serializer.Serialize(writer, "register");
                     return;
@@ -1260,6 +1426,12 @@ namespace QuickType
                 case Enum.Right:
                     serializer.Serialize(writer, "right");
                     return;
+                case Enum.RuntimeType:
+                    serializer.Serialize(writer, "runtimeType");
+                    return;
+                case Enum.S:
+                    serializer.Serialize(writer, "s");
+                    return;
                 case Enum.Sbyte:
                     serializer.Serialize(writer, "sbyte");
                     return;
@@ -1281,6 +1453,9 @@ namespace QuickType
                 case Enum.Serialize:
                     serializer.Serialize(writer, "serialize");
                     return;
+                case Enum.SerializerProvider:
+                    serializer.Serialize(writer, "SerializerProvider");
+                    return;
                 case Enum.Set:
                     serializer.Serialize(writer, "set");
                     return;
@@ -1290,12 +1465,18 @@ namespace QuickType
                 case Enum.Signed:
                     serializer.Serialize(writer, "signed");
                     return;
+                case Enum.SimpleModule:
+                    serializer.Serialize(writer, "SimpleModule");
+                    return;
                 case Enum.Sizeof:
                     serializer.Serialize(writer, "sizeof");
                     return;
                 case Enum.Stackalloc:
                     serializer.Serialize(writer, "stackalloc");
                     return;
+                case Enum.Standards:
+                    serializer.Serialize(writer, "Standards");
+                    return;
                 case Enum.Static:
                     serializer.Serialize(writer, "static");
                     return;
@@ -1305,6 +1486,12 @@ namespace QuickType
                 case Enum.StaticCast:
                     serializer.Serialize(writer, "static_cast");
                     return;
+                case Enum.StdDeserializer:
+                    serializer.Serialize(writer, "StdDeserializer");
+                    return;
+                case Enum.StdSerializer:
+                    serializer.Serialize(writer, "StdSerializer");
+                    return;
                 case Enum.Strictfp:
                     serializer.Serialize(writer, "strictfp");
                     return;
@@ -1350,12 +1537,21 @@ namespace QuickType
                 case Enum.Throws:
                     serializer.Serialize(writer, "throws");
                     return;
+                case Enum.TimeOnly:
+                    serializer.Serialize(writer, "TimeOnly");
+                    return;
+                case Enum.TimeOnlyConverter:
+                    serializer.Serialize(writer, "TimeOnlyConverter");
+                    return;
                 case Enum.ToJson:
                     serializer.Serialize(writer, "to_json");
                     return;
                 case Enum.TopLevel:
                     serializer.Serialize(writer, "top_level");
                     return;
+                case Enum.ToString:
+                    serializer.Serialize(writer, "toString");
+                    return;
                 case Enum.Transient:
                     serializer.Serialize(writer, "transient");
                     return;
@@ -1419,6 +1615,15 @@ namespace QuickType
                 case Enum.Using:
                     serializer.Serialize(writer, "using");
                     return;
+                case Enum.Utf8JsonReader:
+                    serializer.Serialize(writer, "Utf8JsonReader");
+                    return;
+                case Enum.Utf8JsonWriter:
+                    serializer.Serialize(writer, "Utf8JsonWriter");
+                    return;
+                case Enum.Uuid:
+                    serializer.Serialize(writer, "UUID");
+                    return;
                 case Enum.Var:
                     serializer.Serialize(writer, "var");
                     return;
diff --git a/base/schema-csharp/test/inputs/schema/keyword-unions.schema/default/QuickType.cs b/head/schema-csharp/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
index ae377c5..fe3c0cd 100644
--- a/base/schema-csharp/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
+++ b/head/schema-csharp/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
@@ -154,6 +154,9 @@ namespace QuickType
         [JsonProperty("Class", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionClass? Class { get; set; }
 
+        [JsonProperty("clone", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionClone? Clone { get; set; }
+
         [JsonProperty("co_await", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionCoAwait? CoAwait { get; set; }
 
@@ -196,12 +199,30 @@ namespace QuickType
         [JsonProperty("converter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionConverter? Converter { get; set; }
 
+        [JsonProperty("CultureInfo", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionCultureInfo? CultureInfo { get; set; }
+
         [JsonProperty("date", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDate? Date { get; set; }
 
         [JsonProperty("date_parse_handling", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDateParseHandling? DateParseHandling { get; set; }
 
+        [JsonProperty("DateFormatter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateFormatter? DateFormatter { get; set; }
+
+        [JsonProperty("DateOnly", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateOnly? DateOnly { get; set; }
+
+        [JsonProperty("DateOnlyConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateOnlyConverter? DateOnlyConverter { get; set; }
+
+        [JsonProperty("DateTime", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateTime? DateTime { get; set; }
+
+        [JsonProperty("DateTimeStyles", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateTimeStyles? DateTimeStyles { get; set; }
+
         [JsonProperty("debugger", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDebugger? Debugger { get; set; }
 
@@ -274,6 +295,12 @@ namespace QuickType
         [JsonProperty("enum", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionEnum? Enum { get; set; }
 
+        [JsonProperty("EnumValues", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionEnumValues? EnumValues { get; set; }
+
+        [JsonProperty("equalityContract", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionEqualityContract? EqualityContract { get; set; }
+
         [JsonProperty("event", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionEvent? Event { get; set; }
 
@@ -331,6 +358,9 @@ namespace QuickType
         [JsonProperty("foreach", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionForeach? Foreach { get; set; }
 
+        [JsonProperty("FormatException", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionFormatException? FormatException { get; set; }
+
         [JsonProperty("friend", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionFriend? Friend { get; set; }
 
@@ -361,6 +391,9 @@ namespace QuickType
         [JsonProperty("guard", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionGuard? Guard { get; set; }
 
+        [JsonProperty("hashCode", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionHashCode? HashCode { get; set; }
+
         [JsonProperty("hasOwnProperty", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionHasOwnProperty? HasOwnProperty { get; set; }
 
@@ -415,6 +448,9 @@ namespace QuickType
         [JsonProperty("is", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionIs? Is { get; set; }
 
+        [JsonProperty("IsoDateTimeOffsetConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionIsoDateTimeOffsetConverter? IsoDateTimeOffsetConverter { get; set; }
+
         [JsonProperty("iterable", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionIterable? Iterable { get; set; }
 
@@ -442,6 +478,39 @@ namespace QuickType
         [JsonProperty("json_writer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionJsonWriter? JsonWriter { get; set; }
 
+        [JsonProperty("JSONAny", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonAny? JsonAny { get; set; }
+
+        [JsonProperty("JSONCodingKey", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonCodingKey? JsonCodingKey { get; set; }
+
+        [JsonProperty("JSONDecoder", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonDecoder? JsonDecoder { get; set; }
+
+        [JsonProperty("JSONEncoder", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonEncoder? JsonEncoder { get; set; }
+
+        [JsonProperty("JsonException", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonException? JsonException { get; set; }
+
+        [JsonProperty("JsonGenerator", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonGenerator? JsonGenerator { get; set; }
+
+        [JsonProperty("JsonNode", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonNode? JsonNode { get; set; }
+
+        [JsonProperty("JSONNull", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonNull? JsonNull { get; set; }
+
+        [JsonProperty("JsonParser", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonParser? JsonParser { get; set; }
+
+        [JsonProperty("JsonReader", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonReader? JsonReader { get; set; }
+
+        [JsonProperty("JsonTokenType", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonTokenType? JsonTokenType { get; set; }
+
         [JsonProperty("lambda", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionLambda? Lambda { get; set; }
 
@@ -514,12 +583,18 @@ namespace QuickType
         [JsonProperty("nonmutating", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNonmutating? Nonmutating { get; set; }
 
+        [JsonProperty("noSuchMethod", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionNoSuchMethod? NoSuchMethod { get; set; }
+
         [JsonProperty("not", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNot? Not { get; set; }
 
         [JsonProperty("not_eq", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNotEq? NotEq { get; set; }
 
+        [JsonProperty("NSError", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionNsError? NsError { get; set; }
+
         [JsonProperty("NSString", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNsString? NsString { get; set; }
 
@@ -538,6 +613,9 @@ namespace QuickType
         [JsonProperty("object", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionObject? Object { get; set; }
 
+        [JsonProperty("ObjectMapper", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionObjectMapper? ObjectMapper { get; set; }
+
         [JsonProperty("of", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionOf? Of { get; set; }
 
@@ -592,6 +670,9 @@ namespace QuickType
         [JsonProperty("printf", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionPrintf? Printf { get; set; }
 
+        [JsonProperty("printMembers", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionPrintMembers? PrintMembers { get; set; }
+
         [JsonProperty("private", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionPrivate? Private { get; set; }
 
@@ -622,6 +703,9 @@ namespace QuickType
         [JsonProperty("ref", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRef? Ref { get; set; }
 
+        [JsonProperty("RegExp", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionRegExp? RegExp { get; set; }
+
         [JsonProperty("register", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRegister? Register { get; set; }
 
@@ -655,6 +739,12 @@ namespace QuickType
         [JsonProperty("right", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRight? Right { get; set; }
 
+        [JsonProperty("runtimeType", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionRuntimeType? RuntimeType { get; set; }
+
+        [JsonProperty("s", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionS? S { get; set; }
+
         [JsonProperty("sbyte", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSbyte? Sbyte { get; set; }
 
@@ -676,6 +766,9 @@ namespace QuickType
         [JsonProperty("serialize", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSerialize? Serialize { get; set; }
 
+        [JsonProperty("SerializerProvider", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionSerializerProvider? SerializerProvider { get; set; }
+
         [JsonProperty("set", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSet? Set { get; set; }
 
@@ -685,12 +778,18 @@ namespace QuickType
         [JsonProperty("signed", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSigned? Signed { get; set; }
 
+        [JsonProperty("SimpleModule", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionSimpleModule? SimpleModule { get; set; }
+
         [JsonProperty("sizeof", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSizeof? Sizeof { get; set; }
 
         [JsonProperty("stackalloc", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStackalloc? Stackalloc { get; set; }
 
+        [JsonProperty("Standards", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStandards? Standards { get; set; }
+
         [JsonProperty("static", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStatic? Static { get; set; }
 
@@ -700,6 +799,12 @@ namespace QuickType
         [JsonProperty("static_cast", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStaticCast? StaticCast { get; set; }
 
+        [JsonProperty("StdDeserializer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStdDeserializer? StdDeserializer { get; set; }
+
+        [JsonProperty("StdSerializer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStdSerializer? StdSerializer { get; set; }
+
         [JsonProperty("strictfp", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStrictfp? Strictfp { get; set; }
 
@@ -745,12 +850,21 @@ namespace QuickType
         [JsonProperty("throws", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionThrows? Throws { get; set; }
 
+        [JsonProperty("TimeOnly", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionTimeOnly? TimeOnly { get; set; }
+
+        [JsonProperty("TimeOnlyConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionTimeOnlyConverter? TimeOnlyConverter { get; set; }
+
         [JsonProperty("to_json", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionToJson? TopLevelToJson { get; set; }
 
         [JsonProperty("top_level", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionTopLevel? TopLevelTopLevel { get; set; }
 
+        [JsonProperty("toString", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionToString? TopLevelToString { get; set; }
+
         [JsonProperty("transient", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionTransient? Transient { get; set; }
 
@@ -814,6 +928,15 @@ namespace QuickType
         [JsonProperty("using", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionUsing? Using { get; set; }
 
+        [JsonProperty("Utf8JsonReader", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUtf8JsonReader? Utf8JsonReader { get; set; }
+
+        [JsonProperty("Utf8JsonWriter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUtf8JsonWriter? Utf8JsonWriter { get; set; }
+
+        [JsonProperty("UUID", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUuid? Uuid { get; set; }
+
         [JsonProperty("var", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionVar? Var { get; set; }
 
@@ -1001,6 +1124,10 @@ namespace QuickType
     {
     }
 
+    public partial class Clone
+    {
+    }
+
     public partial class CoAwait
     {
     }
@@ -1061,14 +1188,38 @@ namespace QuickType
     {
     }
 
+    public partial class CultureInfo
+    {
+    }
+
     public partial class Date
     {
     }
 
+    public partial class DateFormatter
+    {
+    }
+
+    public partial class DateOnly
+    {
+    }
+
+    public partial class DateOnlyConverter
+    {
+    }
+
     public partial class DateParseHandlingClass
     {
     }
 
+    public partial class DateTime
+    {
+    }
+
+    public partial class DateTimeStylesClass
+    {
+    }
+
     public partial class Debugger
     {
     }
@@ -1165,6 +1316,14 @@ namespace QuickType
     {
     }
 
+    public partial class EnumValues
+    {
+    }
+
+    public partial class EqualityContract
+    {
+    }
+
     public partial class Event
     {
     }
@@ -1237,6 +1396,10 @@ namespace QuickType
     {
     }
 
+    public partial class FormatException
+    {
+    }
+
     public partial class Friend
     {
     }
@@ -1277,6 +1440,10 @@ namespace QuickType
     {
     }
 
+    public partial class HashCode
+    {
+    }
+
     public partial class Id
     {
     }
@@ -1349,6 +1516,10 @@ namespace QuickType
     {
     }
 
+    public partial class IsoDateTimeOffsetConverter
+    {
+    }
+
     public partial class Iterable
     {
     }
@@ -1369,10 +1540,50 @@ namespace QuickType
     {
     }
 
+    public partial class JsonAny
+    {
+    }
+
+    public partial class JsonCodingKey
+    {
+    }
+
     public partial class JsonConverterClass
     {
     }
 
+    public partial class JsonDecoder
+    {
+    }
+
+    public partial class JsonEncoder
+    {
+    }
+
+    public partial class JsonException
+    {
+    }
+
+    public partial class JsonGenerator
+    {
+    }
+
+    public partial class JsonNode
+    {
+    }
+
+    public partial class JsonNull
+    {
+    }
+
+    public partial class JsonParser
+    {
+    }
+
+    public partial class JsonReaderClass
+    {
+    }
+
     public partial class JsonSerializerClass
     {
     }
@@ -1381,6 +1592,10 @@ namespace QuickType
     {
     }
 
+    public partial class JsonTokenType
+    {
+    }
+
     public partial class JsonWriterClass
     {
     }
@@ -1457,6 +1672,10 @@ namespace QuickType
     {
     }
 
+    public partial class NoSuchMethod
+    {
+    }
+
     public partial class Noexcept
     {
     }
@@ -1485,6 +1704,10 @@ namespace QuickType
     {
     }
 
+    public partial class NsError
+    {
+    }
+
     public partial class NsString
     {
     }
@@ -1505,6 +1728,10 @@ namespace QuickType
     {
     }
 
+    public partial class ObjectMapper
+    {
+    }
+
     public partial class Of
     {
     }
@@ -1573,6 +1800,10 @@ namespace QuickType
     {
     }
 
+    public partial class PrintMembers
+    {
+    }
+
     public partial class Printf
     {
     }
@@ -1617,6 +1848,10 @@ namespace QuickType
     {
     }
 
+    public partial class RegExp
+    {
+    }
+
     public partial class Register
     {
     }
@@ -1657,6 +1892,14 @@ namespace QuickType
     {
     }
 
+    public partial class RuntimeType
+    {
+    }
+
+    public partial class S
+    {
+    }
+
     public partial class Sbyte
     {
     }
@@ -1681,6 +1924,10 @@ namespace QuickType
     {
     }
 
+    public partial class SerializerProvider
+    {
+    }
+
     public partial class Set
     {
     }
@@ -1693,6 +1940,10 @@ namespace QuickType
     {
     }
 
+    public partial class SimpleModule
+    {
+    }
+
     public partial class Sizeof
     {
     }
@@ -1701,6 +1952,10 @@ namespace QuickType
     {
     }
 
+    public partial class Standards
+    {
+    }
+
     public partial class Static
     {
     }
@@ -1713,6 +1968,14 @@ namespace QuickType
     {
     }
 
+    public partial class StdDeserializer
+    {
+    }
+
+    public partial class StdSerializer
+    {
+    }
+
     public partial class Strictfp
     {
     }
@@ -1773,6 +2036,14 @@ namespace QuickType
     {
     }
 
+    public partial class TimeOnly
+    {
+    }
+
+    public partial class TimeOnlyConverter
+    {
+    }
+
     public partial class AnyClass
     {
     }
@@ -1817,6 +2088,10 @@ namespace QuickType
     {
     }
 
+    public partial class ToString
+    {
+    }
+
     public partial class TopLevelClass
     {
     }
@@ -1905,6 +2180,18 @@ namespace QuickType
     {
     }
 
+    public partial class Utf8JsonReader
+    {
+    }
+
+    public partial class Utf8JsonWriter
+    {
+    }
+
+    public partial class Uuid
+    {
+    }
+
     public partial class Var
     {
     }
@@ -2285,6 +2572,15 @@ namespace QuickType
         public static implicit operator UnionClass(double Double) => new UnionClass { Double = Double };
     }
 
+    public partial struct UnionClone
+    {
+        public Clone? Clone;
+        public double? Double;
+
+        public static implicit operator UnionClone(Clone Clone) => new UnionClone { Clone = Clone };
+        public static implicit operator UnionClone(double Double) => new UnionClone { Double = Double };
+    }
+
     public partial struct UnionCoAwait
     {
         public CoAwait? CoAwait;
@@ -2420,6 +2716,15 @@ namespace QuickType
         public static implicit operator UnionConverter(double Double) => new UnionConverter { Double = Double };
     }
 
+    public partial struct UnionCultureInfo
+    {
+        public CultureInfo? CultureInfo;
+        public double? Double;
+
+        public static implicit operator UnionCultureInfo(CultureInfo CultureInfo) => new UnionCultureInfo { CultureInfo = CultureInfo };
+        public static implicit operator UnionCultureInfo(double Double) => new UnionCultureInfo { Double = Double };
+    }
+
     public partial struct UnionDate
     {
         public Date? Date;
@@ -2429,6 +2734,33 @@ namespace QuickType
         public static implicit operator UnionDate(double Double) => new UnionDate { Double = Double };
     }
 
+    public partial struct UnionDateFormatter
+    {
+        public DateFormatter? DateFormatter;
+        public double? Double;
+
+        public static implicit operator UnionDateFormatter(DateFormatter DateFormatter) => new UnionDateFormatter { DateFormatter = DateFormatter };
+        public static implicit operator UnionDateFormatter(double Double) => new UnionDateFormatter { Double = Double };
+    }
+
+    public partial struct UnionDateOnly
+    {
+        public DateOnly? DateOnly;
+        public double? Double;
+
+        public static implicit operator UnionDateOnly(DateOnly DateOnly) => new UnionDateOnly { DateOnly = DateOnly };
+        public static implicit operator UnionDateOnly(double Double) => new UnionDateOnly { Double = Double };
+    }
+
+    public partial struct UnionDateOnlyConverter
+    {
+        public DateOnlyConverter? DateOnlyConverter;
+        public double? Double;
+
+        public static implicit operator UnionDateOnlyConverter(DateOnlyConverter DateOnlyConverter) => new UnionDateOnlyConverter { DateOnlyConverter = DateOnlyConverter };
+        public static implicit operator UnionDateOnlyConverter(double Double) => new UnionDateOnlyConverter { Double = Double };
+    }
+
     public partial struct UnionDateParseHandling
     {
         public DateParseHandlingClass? DateParseHandlingClass;
@@ -2438,6 +2770,24 @@ namespace QuickType
         public static implicit operator UnionDateParseHandling(double Double) => new UnionDateParseHandling { Double = Double };
     }
 
+    public partial struct UnionDateTime
+    {
+        public DateTime? DateTime;
+        public double? Double;
+
+        public static implicit operator UnionDateTime(DateTime DateTime) => new UnionDateTime { DateTime = DateTime };
+        public static implicit operator UnionDateTime(double Double) => new UnionDateTime { Double = Double };
+    }
+
+    public partial struct UnionDateTimeStyles
+    {
+        public DateTimeStylesClass? DateTimeStylesClass;
+        public double? Double;
+
+        public static implicit operator UnionDateTimeStyles(DateTimeStylesClass DateTimeStylesClass) => new UnionDateTimeStyles { DateTimeStylesClass = DateTimeStylesClass };
+        public static implicit operator UnionDateTimeStyles(double Double) => new UnionDateTimeStyles { Double = Double };
+    }
+
     public partial struct UnionDebugger
     {
         public Debugger? Debugger;
@@ -2654,6 +3004,24 @@ namespace QuickType
         public static implicit operator UnionEnum(Enum Enum) => new UnionEnum { Enum = Enum };
     }
 
+    public partial struct UnionEnumValues
+    {
+        public double? Double;
+        public EnumValues? EnumValues;
+
+        public static implicit operator UnionEnumValues(double Double) => new UnionEnumValues { Double = Double };
+        public static implicit operator UnionEnumValues(EnumValues EnumValues) => new UnionEnumValues { EnumValues = EnumValues };
+    }
+
+    public partial struct UnionEqualityContract
+    {
+        public double? Double;
+        public EqualityContract? EqualityContract;
+
+        public static implicit operator UnionEqualityContract(double Double) => new UnionEqualityContract { Double = Double };
+        public static implicit operator UnionEqualityContract(EqualityContract EqualityContract) => new UnionEqualityContract { EqualityContract = EqualityContract };
+    }
+
     public partial struct UnionEvent
     {
         public double? Double;
@@ -2816,6 +3184,15 @@ namespace QuickType
         public static implicit operator UnionForeach(Foreach Foreach) => new UnionForeach { Foreach = Foreach };
     }
 
+    public partial struct UnionFormatException
+    {
+        public double? Double;
+        public FormatException? FormatException;
+
+        public static implicit operator UnionFormatException(double Double) => new UnionFormatException { Double = Double };
+        public static implicit operator UnionFormatException(FormatException FormatException) => new UnionFormatException { FormatException = FormatException };
+    }
+
     public partial struct UnionFriend
     {
         public double? Double;
@@ -2906,6 +3283,15 @@ namespace QuickType
         public static implicit operator UnionHasOwnProperty(HasOwnProperty HasOwnProperty) => new UnionHasOwnProperty { HasOwnProperty = HasOwnProperty };
     }
 
+    public partial struct UnionHashCode
+    {
+        public double? Double;
+        public HashCode? HashCode;
+
+        public static implicit operator UnionHashCode(double Double) => new UnionHashCode { Double = Double };
+        public static implicit operator UnionHashCode(HashCode HashCode) => new UnionHashCode { HashCode = HashCode };
+    }
+
     public partial struct UnionId
     {
         public double? Double;
@@ -3068,6 +3454,15 @@ namespace QuickType
         public static implicit operator UnionIs(Is Is) => new UnionIs { Is = Is };
     }
 
+    public partial struct UnionIsoDateTimeOffsetConverter
+    {
+        public double? Double;
+        public IsoDateTimeOffsetConverter? IsoDateTimeOffsetConverter;
+
+        public static implicit operator UnionIsoDateTimeOffsetConverter(double Double) => new UnionIsoDateTimeOffsetConverter { Double = Double };
+        public static implicit operator UnionIsoDateTimeOffsetConverter(IsoDateTimeOffsetConverter IsoDateTimeOffsetConverter) => new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverter = IsoDateTimeOffsetConverter };
+    }
+
     public partial struct UnionIterable
     {
         public double? Double;
@@ -3113,6 +3508,24 @@ namespace QuickType
         public static implicit operator UnionJson(Json Json) => new UnionJson { Json = Json };
     }
 
+    public partial struct UnionJsonAny
+    {
+        public double? Double;
+        public JsonAny? JsonAny;
+
+        public static implicit operator UnionJsonAny(double Double) => new UnionJsonAny { Double = Double };
+        public static implicit operator UnionJsonAny(JsonAny JsonAny) => new UnionJsonAny { JsonAny = JsonAny };
+    }
+
+    public partial struct UnionJsonCodingKey
+    {
+        public double? Double;
+        public JsonCodingKey? JsonCodingKey;
+
+        public static implicit operator UnionJsonCodingKey(double Double) => new UnionJsonCodingKey { Double = Double };
+        public static implicit operator UnionJsonCodingKey(JsonCodingKey JsonCodingKey) => new UnionJsonCodingKey { JsonCodingKey = JsonCodingKey };
+    }
+
     public partial struct UnionJsonConverter
     {
         public double? Double;
@@ -3122,55 +3535,136 @@ namespace QuickType
         public static implicit operator UnionJsonConverter(JsonConverterClass JsonConverterClass) => new UnionJsonConverter { JsonConverterClass = JsonConverterClass };
     }
 
-    public partial struct UnionJsonSerializer
+    public partial struct UnionJsonDecoder
     {
         public double? Double;
-        public JsonSerializerClass? JsonSerializerClass;
+        public JsonDecoder? JsonDecoder;
 
-        public static implicit operator UnionJsonSerializer(double Double) => new UnionJsonSerializer { Double = Double };
-        public static implicit operator UnionJsonSerializer(JsonSerializerClass JsonSerializerClass) => new UnionJsonSerializer { JsonSerializerClass = JsonSerializerClass };
+        public static implicit operator UnionJsonDecoder(double Double) => new UnionJsonDecoder { Double = Double };
+        public static implicit operator UnionJsonDecoder(JsonDecoder JsonDecoder) => new UnionJsonDecoder { JsonDecoder = JsonDecoder };
     }
 
-    public partial struct UnionJsonToken
+    public partial struct UnionJsonEncoder
     {
         public double? Double;
-        public JsonTokenClass? JsonTokenClass;
+        public JsonEncoder? JsonEncoder;
 
-        public static implicit operator UnionJsonToken(double Double) => new UnionJsonToken { Double = Double };
-        public static implicit operator UnionJsonToken(JsonTokenClass JsonTokenClass) => new UnionJsonToken { JsonTokenClass = JsonTokenClass };
+        public static implicit operator UnionJsonEncoder(double Double) => new UnionJsonEncoder { Double = Double };
+        public static implicit operator UnionJsonEncoder(JsonEncoder JsonEncoder) => new UnionJsonEncoder { JsonEncoder = JsonEncoder };
     }
 
-    public partial struct UnionJsonWriter
+    public partial struct UnionJsonException
     {
         public double? Double;
-        public JsonWriterClass? JsonWriterClass;
+        public JsonException? JsonException;
 
-        public static implicit operator UnionJsonWriter(double Double) => new UnionJsonWriter { Double = Double };
-        public static implicit operator UnionJsonWriter(JsonWriterClass JsonWriterClass) => new UnionJsonWriter { JsonWriterClass = JsonWriterClass };
+        public static implicit operator UnionJsonException(double Double) => new UnionJsonException { Double = Double };
+        public static implicit operator UnionJsonException(JsonException JsonException) => new UnionJsonException { JsonException = JsonException };
     }
 
-    public partial struct UnionLambda
+    public partial struct UnionJsonGenerator
     {
         public double? Double;
-        public Lambda? Lambda;
+        public JsonGenerator? JsonGenerator;
 
-        public static implicit operator UnionLambda(double Double) => new UnionLambda { Double = Double };
-        public static implicit operator UnionLambda(Lambda Lambda) => new UnionLambda { Lambda = Lambda };
+        public static implicit operator UnionJsonGenerator(double Double) => new UnionJsonGenerator { Double = Double };
+        public static implicit operator UnionJsonGenerator(JsonGenerator JsonGenerator) => new UnionJsonGenerator { JsonGenerator = JsonGenerator };
     }
 
-    public partial struct UnionLazy
+    public partial struct UnionJsonNode
     {
         public double? Double;
-        public Lazy? Lazy;
+        public JsonNode? JsonNode;
 
-        public static implicit operator UnionLazy(double Double) => new UnionLazy { Double = Double };
-        public static implicit operator UnionLazy(Lazy Lazy) => new UnionLazy { Lazy = Lazy };
+        public static implicit operator UnionJsonNode(double Double) => new UnionJsonNode { Double = Double };
+        public static implicit operator UnionJsonNode(JsonNode JsonNode) => new UnionJsonNode { JsonNode = JsonNode };
     }
 
-    public partial struct UnionLeft
+    public partial struct UnionJsonNull
     {
         public double? Double;
-        public Left? Left;
+        public JsonNull? JsonNull;
+
+        public static implicit operator UnionJsonNull(double Double) => new UnionJsonNull { Double = Double };
+        public static implicit operator UnionJsonNull(JsonNull JsonNull) => new UnionJsonNull { JsonNull = JsonNull };
+    }
+
+    public partial struct UnionJsonParser
+    {
+        public double? Double;
+        public JsonParser? JsonParser;
+
+        public static implicit operator UnionJsonParser(double Double) => new UnionJsonParser { Double = Double };
+        public static implicit operator UnionJsonParser(JsonParser JsonParser) => new UnionJsonParser { JsonParser = JsonParser };
+    }
+
+    public partial struct UnionJsonReader
+    {
+        public double? Double;
+        public JsonReaderClass? JsonReaderClass;
+
+        public static implicit operator UnionJsonReader(double Double) => new UnionJsonReader { Double = Double };
+        public static implicit operator UnionJsonReader(JsonReaderClass JsonReaderClass) => new UnionJsonReader { JsonReaderClass = JsonReaderClass };
+    }
+
+    public partial struct UnionJsonSerializer
+    {
+        public double? Double;
+        public JsonSerializerClass? JsonSerializerClass;
+
+        public static implicit operator UnionJsonSerializer(double Double) => new UnionJsonSerializer { Double = Double };
+        public static implicit operator UnionJsonSerializer(JsonSerializerClass JsonSerializerClass) => new UnionJsonSerializer { JsonSerializerClass = JsonSerializerClass };
+    }
+
+    public partial struct UnionJsonToken
+    {
+        public double? Double;
+        public JsonTokenClass? JsonTokenClass;
+
+        public static implicit operator UnionJsonToken(double Double) => new UnionJsonToken { Double = Double };
+        public static implicit operator UnionJsonToken(JsonTokenClass JsonTokenClass) => new UnionJsonToken { JsonTokenClass = JsonTokenClass };
+    }
+
+    public partial struct UnionJsonTokenType
+    {
+        public double? Double;
+        public JsonTokenType? JsonTokenType;
+
+        public static implicit operator UnionJsonTokenType(double Double) => new UnionJsonTokenType { Double = Double };
+        public static implicit operator UnionJsonTokenType(JsonTokenType JsonTokenType) => new UnionJsonTokenType { JsonTokenType = JsonTokenType };
+    }
+
+    public partial struct UnionJsonWriter
+    {
+        public double? Double;
+        public JsonWriterClass? JsonWriterClass;
+
+        public static implicit operator UnionJsonWriter(double Double) => new UnionJsonWriter { Double = Double };
+        public static implicit operator UnionJsonWriter(JsonWriterClass JsonWriterClass) => new UnionJsonWriter { JsonWriterClass = JsonWriterClass };
+    }
+
+    public partial struct UnionLambda
+    {
+        public double? Double;
+        public Lambda? Lambda;
+
+        public static implicit operator UnionLambda(double Double) => new UnionLambda { Double = Double };
+        public static implicit operator UnionLambda(Lambda Lambda) => new UnionLambda { Lambda = Lambda };
+    }
+
+    public partial struct UnionLazy
+    {
+        public double? Double;
+        public Lazy? Lazy;
+
+        public static implicit operator UnionLazy(double Double) => new UnionLazy { Double = Double };
+        public static implicit operator UnionLazy(Lazy Lazy) => new UnionLazy { Lazy = Lazy };
+    }
+
+    public partial struct UnionLeft
+    {
+        public double? Double;
+        public Left? Left;
 
         public static implicit operator UnionLeft(double Double) => new UnionLeft { Double = Double };
         public static implicit operator UnionLeft(Left Left) => new UnionLeft { Left = Left };
@@ -3311,6 +3805,15 @@ namespace QuickType
         public static implicit operator UnionNo(No No) => new UnionNo { No = No };
     }
 
+    public partial struct UnionNoSuchMethod
+    {
+        public double? Double;
+        public NoSuchMethod? NoSuchMethod;
+
+        public static implicit operator UnionNoSuchMethod(double Double) => new UnionNoSuchMethod { Double = Double };
+        public static implicit operator UnionNoSuchMethod(NoSuchMethod NoSuchMethod) => new UnionNoSuchMethod { NoSuchMethod = NoSuchMethod };
+    }
+
     public partial struct UnionNoexcept
     {
         public double? Double;
@@ -3374,6 +3877,15 @@ namespace QuickType
         public static implicit operator UnionNotEq(NotEq NotEq) => new UnionNotEq { NotEq = NotEq };
     }
 
+    public partial struct UnionNsError
+    {
+        public double? Double;
+        public NsError? NsError;
+
+        public static implicit operator UnionNsError(double Double) => new UnionNsError { Double = Double };
+        public static implicit operator UnionNsError(NsError NsError) => new UnionNsError { NsError = NsError };
+    }
+
     public partial struct UnionNsString
     {
         public double? Double;
@@ -3419,6 +3931,15 @@ namespace QuickType
         public static implicit operator UnionObject(Object Object) => new UnionObject { Object = Object };
     }
 
+    public partial struct UnionObjectMapper
+    {
+        public double? Double;
+        public ObjectMapper? ObjectMapper;
+
+        public static implicit operator UnionObjectMapper(double Double) => new UnionObjectMapper { Double = Double };
+        public static implicit operator UnionObjectMapper(ObjectMapper ObjectMapper) => new UnionObjectMapper { ObjectMapper = ObjectMapper };
+    }
+
     public partial struct UnionOf
     {
         public double? Double;
@@ -3572,6 +4093,15 @@ namespace QuickType
         public static implicit operator UnionPrint(Print Print) => new UnionPrint { Print = Print };
     }
 
+    public partial struct UnionPrintMembers
+    {
+        public double? Double;
+        public PrintMembers? PrintMembers;
+
+        public static implicit operator UnionPrintMembers(double Double) => new UnionPrintMembers { Double = Double };
+        public static implicit operator UnionPrintMembers(PrintMembers PrintMembers) => new UnionPrintMembers { PrintMembers = PrintMembers };
+    }
+
     public partial struct UnionPrintf
     {
         public double? Double;
@@ -3671,6 +4201,15 @@ namespace QuickType
         public static implicit operator UnionRef(Ref Ref) => new UnionRef { Ref = Ref };
     }
 
+    public partial struct UnionRegExp
+    {
+        public double? Double;
+        public RegExp? RegExp;
+
+        public static implicit operator UnionRegExp(double Double) => new UnionRegExp { Double = Double };
+        public static implicit operator UnionRegExp(RegExp RegExp) => new UnionRegExp { RegExp = RegExp };
+    }
+
     public partial struct UnionRegister
     {
         public double? Double;
@@ -3761,6 +4300,24 @@ namespace QuickType
         public static implicit operator UnionRight(Right Right) => new UnionRight { Right = Right };
     }
 
+    public partial struct UnionRuntimeType
+    {
+        public double? Double;
+        public RuntimeType? RuntimeType;
+
+        public static implicit operator UnionRuntimeType(double Double) => new UnionRuntimeType { Double = Double };
+        public static implicit operator UnionRuntimeType(RuntimeType RuntimeType) => new UnionRuntimeType { RuntimeType = RuntimeType };
+    }
+
+    public partial struct UnionS
+    {
+        public double? Double;
+        public S? S;
+
+        public static implicit operator UnionS(double Double) => new UnionS { Double = Double };
+        public static implicit operator UnionS(S S) => new UnionS { S = S };
+    }
+
     public partial struct UnionSbyte
     {
         public double? Double;
@@ -3815,6 +4372,15 @@ namespace QuickType
         public static implicit operator UnionSerialize(SerializeClass SerializeClass) => new UnionSerialize { SerializeClass = SerializeClass };
     }
 
+    public partial struct UnionSerializerProvider
+    {
+        public double? Double;
+        public SerializerProvider? SerializerProvider;
+
+        public static implicit operator UnionSerializerProvider(double Double) => new UnionSerializerProvider { Double = Double };
+        public static implicit operator UnionSerializerProvider(SerializerProvider SerializerProvider) => new UnionSerializerProvider { SerializerProvider = SerializerProvider };
+    }
+
     public partial struct UnionSet
     {
         public double? Double;
@@ -3842,6 +4408,15 @@ namespace QuickType
         public static implicit operator UnionSigned(Signed Signed) => new UnionSigned { Signed = Signed };
     }
 
+    public partial struct UnionSimpleModule
+    {
+        public double? Double;
+        public SimpleModule? SimpleModule;
+
+        public static implicit operator UnionSimpleModule(double Double) => new UnionSimpleModule { Double = Double };
+        public static implicit operator UnionSimpleModule(SimpleModule SimpleModule) => new UnionSimpleModule { SimpleModule = SimpleModule };
+    }
+
     public partial struct UnionSizeof
     {
         public double? Double;
@@ -3860,6 +4435,15 @@ namespace QuickType
         public static implicit operator UnionStackalloc(Stackalloc Stackalloc) => new UnionStackalloc { Stackalloc = Stackalloc };
     }
 
+    public partial struct UnionStandards
+    {
+        public double? Double;
+        public Standards? Standards;
+
+        public static implicit operator UnionStandards(double Double) => new UnionStandards { Double = Double };
+        public static implicit operator UnionStandards(Standards Standards) => new UnionStandards { Standards = Standards };
+    }
+
     public partial struct UnionStatic
     {
         public double? Double;
@@ -3887,6 +4471,24 @@ namespace QuickType
         public static implicit operator UnionStaticCast(StaticCast StaticCast) => new UnionStaticCast { StaticCast = StaticCast };
     }
 
+    public partial struct UnionStdDeserializer
+    {
+        public double? Double;
+        public StdDeserializer? StdDeserializer;
+
+        public static implicit operator UnionStdDeserializer(double Double) => new UnionStdDeserializer { Double = Double };
+        public static implicit operator UnionStdDeserializer(StdDeserializer StdDeserializer) => new UnionStdDeserializer { StdDeserializer = StdDeserializer };
+    }
+
+    public partial struct UnionStdSerializer
+    {
+        public double? Double;
+        public StdSerializer? StdSerializer;
+
+        public static implicit operator UnionStdSerializer(double Double) => new UnionStdSerializer { Double = Double };
+        public static implicit operator UnionStdSerializer(StdSerializer StdSerializer) => new UnionStdSerializer { StdSerializer = StdSerializer };
+    }
+
     public partial struct UnionStrictfp
     {
         public double? Double;
@@ -4022,6 +4624,24 @@ namespace QuickType
         public static implicit operator UnionThrows(Throws Throws) => new UnionThrows { Throws = Throws };
     }
 
+    public partial struct UnionTimeOnly
+    {
+        public double? Double;
+        public TimeOnly? TimeOnly;
+
+        public static implicit operator UnionTimeOnly(double Double) => new UnionTimeOnly { Double = Double };
+        public static implicit operator UnionTimeOnly(TimeOnly TimeOnly) => new UnionTimeOnly { TimeOnly = TimeOnly };
+    }
+
+    public partial struct UnionTimeOnlyConverter
+    {
+        public double? Double;
+        public TimeOnlyConverter? TimeOnlyConverter;
+
+        public static implicit operator UnionTimeOnlyConverter(double Double) => new UnionTimeOnlyConverter { Double = Double };
+        public static implicit operator UnionTimeOnlyConverter(TimeOnlyConverter TimeOnlyConverter) => new UnionTimeOnlyConverter { TimeOnlyConverter = TimeOnlyConverter };
+    }
+
     public partial struct UnionAnyUnion
     {
         public AnyClass? AnyClass;
@@ -4121,6 +4741,15 @@ namespace QuickType
         public static implicit operator UnionToJson(ToJson ToJson) => new UnionToJson { ToJson = ToJson };
     }
 
+    public partial struct UnionToString
+    {
+        public double? Double;
+        public ToString? ToString;
+
+        public static implicit operator UnionToString(double Double) => new UnionToString { Double = Double };
+        public static implicit operator UnionToString(ToString ToString) => new UnionToString { ToString = ToString };
+    }
+
     public partial struct UnionTopLevel
     {
         public double? Double;
@@ -4319,6 +4948,33 @@ namespace QuickType
         public static implicit operator UnionUsing(Using Using) => new UnionUsing { Using = Using };
     }
 
+    public partial struct UnionUtf8JsonReader
+    {
+        public double? Double;
+        public Utf8JsonReader? Utf8JsonReader;
+
+        public static implicit operator UnionUtf8JsonReader(double Double) => new UnionUtf8JsonReader { Double = Double };
+        public static implicit operator UnionUtf8JsonReader(Utf8JsonReader Utf8JsonReader) => new UnionUtf8JsonReader { Utf8JsonReader = Utf8JsonReader };
+    }
+
+    public partial struct UnionUtf8JsonWriter
+    {
+        public double? Double;
+        public Utf8JsonWriter? Utf8JsonWriter;
+
+        public static implicit operator UnionUtf8JsonWriter(double Double) => new UnionUtf8JsonWriter { Double = Double };
+        public static implicit operator UnionUtf8JsonWriter(Utf8JsonWriter Utf8JsonWriter) => new UnionUtf8JsonWriter { Utf8JsonWriter = Utf8JsonWriter };
+    }
+
+    public partial struct UnionUuid
+    {
+        public double? Double;
+        public Uuid? Uuid;
+
+        public static implicit operator UnionUuid(double Double) => new UnionUuid { Double = Double };
+        public static implicit operator UnionUuid(Uuid Uuid) => new UnionUuid { Uuid = Uuid };
+    }
+
     public partial struct UnionVar
     {
         public double? Double;
@@ -4466,17 +5122,50 @@ namespace QuickType
                 UnionAnyConverter.Singleton,
                 UnionBoolConverter.Singleton,
                 UnionClassConverter.Singleton,
+                UnionCultureInfoConverter.Singleton,
+                UnionDateFormatterConverter.Singleton,
+                PurpleUnionDateOnlyConverter.Singleton,
+                UnionDateOnlyConverterConverter.Singleton,
+                UnionDateTimeConverter.Singleton,
+                UnionDateTimeStylesConverter.Singleton,
+                UnionEnumValuesConverter.Singleton,
                 UnionFalseConverter.Singleton,
+                UnionFormatExceptionConverter.Singleton,
                 UnionImpConverter.Singleton,
+                UnionIsoDateTimeOffsetConverterConverter.Singleton,
+                UnionJsonAnyConverter.Singleton,
+                UnionJsonCodingKeyConverter.Singleton,
+                UnionJsonDecoderConverter.Singleton,
+                UnionJsonEncoderConverter.Singleton,
+                UnionJsonNullConverter.Singleton,
+                UnionJsonExceptionConverter.Singleton,
+                UnionJsonGeneratorConverter.Singleton,
+                UnionJsonNodeConverter.Singleton,
+                UnionJsonParserConverter.Singleton,
+                UnionJsonReaderConverter.Singleton,
+                UnionJsonTokenTypeConverter.Singleton,
                 UnionNoConverter.Singleton,
+                UnionNsErrorConverter.Singleton,
                 UnionNsStringConverter.Singleton,
                 UnionNullConverter.Singleton,
                 UnionNoneConverter.Singleton,
+                UnionObjectMapperConverter.Singleton,
                 UnionProtocolConverter.Singleton,
+                UnionRegExpConverter.Singleton,
                 UnionSelConverter.Singleton,
                 UnionSelfConverter.Singleton,
+                UnionSerializerProviderConverter.Singleton,
+                UnionSimpleModuleConverter.Singleton,
+                UnionStandardsConverter.Singleton,
+                UnionStdDeserializerConverter.Singleton,
+                UnionStdSerializerConverter.Singleton,
+                PurpleUnionTimeOnlyConverter.Singleton,
+                UnionTimeOnlyConverterConverter.Singleton,
                 UnionTrueConverter.Singleton,
                 UnionTypeConverter.Singleton,
+                UnionUuidConverter.Singleton,
+                UnionUtf8JsonReaderConverter.Singleton,
+                UnionUtf8JsonWriterConverter.Singleton,
                 UnionYesConverter.Singleton,
                 UnionUnionConverter.Singleton,
                 UnionBoolUnionConverter.Singleton,
@@ -4518,6 +5207,7 @@ namespace QuickType
                 UnionChar32TConverter.Singleton,
                 UnionCheckedConverter.Singleton,
                 UnionClassUnionConverter.Singleton,
+                UnionCloneConverter.Singleton,
                 UnionCoAwaitConverter.Singleton,
                 UnionCoReturnConverter.Singleton,
                 UnionCoYieldConverter.Singleton,
@@ -4557,6 +5247,7 @@ namespace QuickType
                 UnionElseConverter.Singleton,
                 UnionEncodeQuickTypeConverter.Singleton,
                 UnionEnumConverter.Singleton,
+                UnionEqualityContractConverter.Singleton,
                 UnionEventConverter.Singleton,
                 UnionExceptConverter.Singleton,
                 UnionExceptionConverter.Singleton,
@@ -4586,6 +5277,7 @@ namespace QuickType
                 UnionGotoConverter.Singleton,
                 UnionGuardConverter.Singleton,
                 UnionHasOwnPropertyConverter.Singleton,
+                UnionHashCodeConverter.Singleton,
                 UnionIdConverter.Singleton,
                 UnionIfConverter.Singleton,
                 UnionImplementsConverter.Singleton,
@@ -4628,6 +5320,7 @@ namespace QuickType
                 UnionNewConverter.Singleton,
                 UnionNewtonsoftConverter.Singleton,
                 UnionNilConverter.Singleton,
+                UnionNoSuchMethodConverter.Singleton,
                 UnionNoexceptConverter.Singleton,
                 UnionNonatomicConverter.Singleton,
                 UnionNoneUnionConverter.Singleton,
@@ -4656,6 +5349,7 @@ namespace QuickType
                 UnionPrecedenceConverter.Singleton,
                 UnionPrefixConverter.Singleton,
                 UnionPrintConverter.Singleton,
+                UnionPrintMembersConverter.Singleton,
                 UnionPrintfConverter.Singleton,
                 UnionPrivateConverter.Singleton,
                 UnionProtectedConverter.Singleton,
@@ -4677,6 +5371,8 @@ namespace QuickType
                 UnionRethrowsConverter.Singleton,
                 UnionReturnConverter.Singleton,
                 UnionRightConverter.Singleton,
+                UnionRuntimeTypeConverter.Singleton,
+                UnionSConverter.Singleton,
                 UnionSbyteConverter.Singleton,
                 UnionSealedConverter.Singleton,
                 UnionSelectConverter.Singleton,
@@ -4705,6 +5401,7 @@ namespace QuickType
                 UnionThreadLocalConverter.Singleton,
                 UnionThrowConverter.Singleton,
                 UnionThrowsConverter.Singleton,
+                UnionToStringConverter.Singleton,
                 UnionToJsonConverter.Singleton,
                 UnionTopLevelConverter.Singleton,
                 UnionTransientConverter.Singleton,
@@ -4858,9 +5555,9 @@ namespace QuickType
         public static readonly UnionClassConverter Singleton = new UnionClassConverter();
     }
 
-    internal class UnionFalseConverter : JsonConverter
+    internal class UnionCultureInfoConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionFalse) || t == typeof(UnionFalse?);
+        public override bool CanConvert(Type t) => t == typeof(UnionCultureInfo) || t == typeof(UnionCultureInfo?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4869,36 +5566,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionFalse { Double = doubleValue };
+                    return new UnionCultureInfo { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<False>(reader);
-                    return new UnionFalse { False = objectValue };
+                    var objectValue = serializer.Deserialize<CultureInfo>(reader);
+                    return new UnionCultureInfo { CultureInfo = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionFalse");
+            throw new Exception("Cannot unmarshal type UnionCultureInfo");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionFalse)untypedValue;
+            var value = (UnionCultureInfo)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.False != null)
+            if (value.CultureInfo != null)
             {
-                serializer.Serialize(writer, value.False);
+                serializer.Serialize(writer, value.CultureInfo);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionFalse");
+            throw new Exception("Cannot marshal type UnionCultureInfo");
         }
 
-        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+        public static readonly UnionCultureInfoConverter Singleton = new UnionCultureInfoConverter();
     }
 
-    internal class UnionImpConverter : JsonConverter
+    internal class UnionDateFormatterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionImp) || t == typeof(UnionImp?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateFormatter) || t == typeof(UnionDateFormatter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4907,36 +5604,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionImp { Double = doubleValue };
+                    return new UnionDateFormatter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Imp>(reader);
-                    return new UnionImp { Imp = objectValue };
+                    var objectValue = serializer.Deserialize<DateFormatter>(reader);
+                    return new UnionDateFormatter { DateFormatter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionImp");
+            throw new Exception("Cannot unmarshal type UnionDateFormatter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionImp)untypedValue;
+            var value = (UnionDateFormatter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Imp != null)
+            if (value.DateFormatter != null)
             {
-                serializer.Serialize(writer, value.Imp);
+                serializer.Serialize(writer, value.DateFormatter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionImp");
+            throw new Exception("Cannot marshal type UnionDateFormatter");
         }
 
-        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+        public static readonly UnionDateFormatterConverter Singleton = new UnionDateFormatterConverter();
     }
 
-    internal class UnionNoConverter : JsonConverter
+    internal class PurpleUnionDateOnlyConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNo) || t == typeof(UnionNo?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnly) || t == typeof(UnionDateOnly?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4945,36 +5642,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNo { Double = doubleValue };
+                    return new UnionDateOnly { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<No>(reader);
-                    return new UnionNo { No = objectValue };
+                    var objectValue = serializer.Deserialize<DateOnly>(reader);
+                    return new UnionDateOnly { DateOnly = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNo");
+            throw new Exception("Cannot unmarshal type UnionDateOnly");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNo)untypedValue;
+            var value = (UnionDateOnly)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.No != null)
+            if (value.DateOnly != null)
             {
-                serializer.Serialize(writer, value.No);
+                serializer.Serialize(writer, value.DateOnly);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNo");
+            throw new Exception("Cannot marshal type UnionDateOnly");
         }
 
-        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+        public static readonly PurpleUnionDateOnlyConverter Singleton = new PurpleUnionDateOnlyConverter();
     }
 
-    internal class UnionNsStringConverter : JsonConverter
+    internal class UnionDateOnlyConverterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNsString) || t == typeof(UnionNsString?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnlyConverter) || t == typeof(UnionDateOnlyConverter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4983,36 +5680,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNsString { Double = doubleValue };
+                    return new UnionDateOnlyConverter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<NsString>(reader);
-                    return new UnionNsString { NsString = objectValue };
+                    var objectValue = serializer.Deserialize<DateOnlyConverter>(reader);
+                    return new UnionDateOnlyConverter { DateOnlyConverter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNsString");
+            throw new Exception("Cannot unmarshal type UnionDateOnlyConverter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNsString)untypedValue;
+            var value = (UnionDateOnlyConverter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.NsString != null)
+            if (value.DateOnlyConverter != null)
             {
-                serializer.Serialize(writer, value.NsString);
+                serializer.Serialize(writer, value.DateOnlyConverter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNsString");
+            throw new Exception("Cannot marshal type UnionDateOnlyConverter");
         }
 
-        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+        public static readonly UnionDateOnlyConverterConverter Singleton = new UnionDateOnlyConverterConverter();
     }
 
-    internal class UnionNullConverter : JsonConverter
+    internal class UnionDateTimeConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNull) || t == typeof(UnionNull?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTime) || t == typeof(UnionDateTime?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5021,36 +5718,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNull { Double = doubleValue };
+                    return new UnionDateTime { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Null>(reader);
-                    return new UnionNull { Null = objectValue };
+                    var objectValue = serializer.Deserialize<DateTime>(reader);
+                    return new UnionDateTime { DateTime = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNull");
+            throw new Exception("Cannot unmarshal type UnionDateTime");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNull)untypedValue;
+            var value = (UnionDateTime)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Null != null)
+            if (value.DateTime != null)
             {
-                serializer.Serialize(writer, value.Null);
+                serializer.Serialize(writer, value.DateTime);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNull");
+            throw new Exception("Cannot marshal type UnionDateTime");
         }
 
-        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+        public static readonly UnionDateTimeConverter Singleton = new UnionDateTimeConverter();
     }
 
-    internal class UnionNoneConverter : JsonConverter
+    internal class UnionDateTimeStylesConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNone) || t == typeof(UnionNone?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTimeStyles) || t == typeof(UnionDateTimeStyles?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5059,36 +5756,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNone { Double = doubleValue };
+                    return new UnionDateTimeStyles { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<None>(reader);
-                    return new UnionNone { None = objectValue };
+                    var objectValue = serializer.Deserialize<DateTimeStylesClass>(reader);
+                    return new UnionDateTimeStyles { DateTimeStylesClass = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNone");
+            throw new Exception("Cannot unmarshal type UnionDateTimeStyles");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNone)untypedValue;
+            var value = (UnionDateTimeStyles)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.None != null)
+            if (value.DateTimeStylesClass != null)
             {
-                serializer.Serialize(writer, value.None);
+                serializer.Serialize(writer, value.DateTimeStylesClass);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNone");
+            throw new Exception("Cannot marshal type UnionDateTimeStyles");
         }
 
-        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+        public static readonly UnionDateTimeStylesConverter Singleton = new UnionDateTimeStylesConverter();
     }
 
-    internal class UnionProtocolConverter : JsonConverter
+    internal class UnionEnumValuesConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionProtocol) || t == typeof(UnionProtocol?);
+        public override bool CanConvert(Type t) => t == typeof(UnionEnumValues) || t == typeof(UnionEnumValues?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5097,36 +5794,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionProtocol { Double = doubleValue };
+                    return new UnionEnumValues { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Protocol>(reader);
-                    return new UnionProtocol { Protocol = objectValue };
+                    var objectValue = serializer.Deserialize<EnumValues>(reader);
+                    return new UnionEnumValues { EnumValues = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionProtocol");
+            throw new Exception("Cannot unmarshal type UnionEnumValues");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionProtocol)untypedValue;
+            var value = (UnionEnumValues)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Protocol != null)
+            if (value.EnumValues != null)
             {
-                serializer.Serialize(writer, value.Protocol);
+                serializer.Serialize(writer, value.EnumValues);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionProtocol");
+            throw new Exception("Cannot marshal type UnionEnumValues");
         }
 
-        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+        public static readonly UnionEnumValuesConverter Singleton = new UnionEnumValuesConverter();
     }
 
-    internal class UnionSelConverter : JsonConverter
+    internal class UnionFalseConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionSel) || t == typeof(UnionSel?);
+        public override bool CanConvert(Type t) => t == typeof(UnionFalse) || t == typeof(UnionFalse?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5135,36 +5832,1290 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionSel { Double = doubleValue };
+                    return new UnionFalse { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Sel>(reader);
-                    return new UnionSel { Sel = objectValue };
+                    var objectValue = serializer.Deserialize<False>(reader);
+                    return new UnionFalse { False = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionSel");
+            throw new Exception("Cannot unmarshal type UnionFalse");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionSel)untypedValue;
+            var value = (UnionFalse)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Sel != null)
+            if (value.False != null)
+            {
+                serializer.Serialize(writer, value.False);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionFalse");
+        }
+
+        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+    }
+
+    internal class UnionFormatExceptionConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionFormatException) || t == typeof(UnionFormatException?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionFormatException { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<FormatException>(reader);
+                    return new UnionFormatException { FormatException = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionFormatException");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionFormatException)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.FormatException != null)
+            {
+                serializer.Serialize(writer, value.FormatException);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionFormatException");
+        }
+
+        public static readonly UnionFormatExceptionConverter Singleton = new UnionFormatExceptionConverter();
+    }
+
+    internal class UnionImpConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionImp) || t == typeof(UnionImp?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionImp { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Imp>(reader);
+                    return new UnionImp { Imp = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionImp");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionImp)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Imp != null)
+            {
+                serializer.Serialize(writer, value.Imp);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionImp");
+        }
+
+        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+    }
+
+    internal class UnionIsoDateTimeOffsetConverterConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionIsoDateTimeOffsetConverter) || t == typeof(UnionIsoDateTimeOffsetConverter?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionIsoDateTimeOffsetConverter { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<IsoDateTimeOffsetConverter>(reader);
+                    return new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverter = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionIsoDateTimeOffsetConverter)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.IsoDateTimeOffsetConverter != null)
+            {
+                serializer.Serialize(writer, value.IsoDateTimeOffsetConverter);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public static readonly UnionIsoDateTimeOffsetConverterConverter Singleton = new UnionIsoDateTimeOffsetConverterConverter();
+    }
+
+    internal class UnionJsonAnyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonAny) || t == typeof(UnionJsonAny?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonAny { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonAny>(reader);
+                    return new UnionJsonAny { JsonAny = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonAny");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonAny)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonAny != null)
+            {
+                serializer.Serialize(writer, value.JsonAny);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonAny");
+        }
+
+        public static readonly UnionJsonAnyConverter Singleton = new UnionJsonAnyConverter();
+    }
+
+    internal class UnionJsonCodingKeyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonCodingKey) || t == typeof(UnionJsonCodingKey?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonCodingKey { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonCodingKey>(reader);
+                    return new UnionJsonCodingKey { JsonCodingKey = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonCodingKey");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonCodingKey)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonCodingKey != null)
+            {
+                serializer.Serialize(writer, value.JsonCodingKey);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonCodingKey");
+        }
+
+        public static readonly UnionJsonCodingKeyConverter Singleton = new UnionJsonCodingKeyConverter();
+    }
+
+    internal class UnionJsonDecoderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonDecoder) || t == typeof(UnionJsonDecoder?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonDecoder { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonDecoder>(reader);
+                    return new UnionJsonDecoder { JsonDecoder = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonDecoder");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonDecoder)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonDecoder != null)
+            {
+                serializer.Serialize(writer, value.JsonDecoder);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonDecoder");
+        }
+
+        public static readonly UnionJsonDecoderConverter Singleton = new UnionJsonDecoderConverter();
+    }
+
+    internal class UnionJsonEncoderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonEncoder) || t == typeof(UnionJsonEncoder?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonEncoder { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonEncoder>(reader);
+                    return new UnionJsonEncoder { JsonEncoder = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonEncoder");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonEncoder)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonEncoder != null)
+            {
+                serializer.Serialize(writer, value.JsonEncoder);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonEncoder");
+        }
+
+        public static readonly UnionJsonEncoderConverter Singleton = new UnionJsonEncoderConverter();
+    }
+
+    internal class UnionJsonNullConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNull) || t == typeof(UnionJsonNull?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonNull { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonNull>(reader);
+                    return new UnionJsonNull { JsonNull = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonNull");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonNull)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonNull != null)
+            {
+                serializer.Serialize(writer, value.JsonNull);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonNull");
+        }
+
+        public static readonly UnionJsonNullConverter Singleton = new UnionJsonNullConverter();
+    }
+
+    internal class UnionJsonExceptionConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonException) || t == typeof(UnionJsonException?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonException { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonException>(reader);
+                    return new UnionJsonException { JsonException = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonException");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonException)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonException != null)
+            {
+                serializer.Serialize(writer, value.JsonException);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonException");
+        }
+
+        public static readonly UnionJsonExceptionConverter Singleton = new UnionJsonExceptionConverter();
+    }
+
+    internal class UnionJsonGeneratorConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonGenerator) || t == typeof(UnionJsonGenerator?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonGenerator { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonGenerator>(reader);
+                    return new UnionJsonGenerator { JsonGenerator = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonGenerator");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonGenerator)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonGenerator != null)
+            {
+                serializer.Serialize(writer, value.JsonGenerator);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonGenerator");
+        }
+
+        public static readonly UnionJsonGeneratorConverter Singleton = new UnionJsonGeneratorConverter();
+    }
+
+    internal class UnionJsonNodeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNode) || t == typeof(UnionJsonNode?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonNode { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonNode>(reader);
+                    return new UnionJsonNode { JsonNode = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonNode");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonNode)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonNode != null)
+            {
+                serializer.Serialize(writer, value.JsonNode);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonNode");
+        }
+
+        public static readonly UnionJsonNodeConverter Singleton = new UnionJsonNodeConverter();
+    }
+
+    internal class UnionJsonParserConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonParser) || t == typeof(UnionJsonParser?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonParser { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonParser>(reader);
+                    return new UnionJsonParser { JsonParser = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonParser");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonParser)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonParser != null)
+            {
+                serializer.Serialize(writer, value.JsonParser);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonParser");
+        }
+
+        public static readonly UnionJsonParserConverter Singleton = new UnionJsonParserConverter();
+    }
+
+    internal class UnionJsonReaderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonReader) || t == typeof(UnionJsonReader?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonReader { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonReaderClass>(reader);
+                    return new UnionJsonReader { JsonReaderClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonReader");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonReader)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonReaderClass != null)
+            {
+                serializer.Serialize(writer, value.JsonReaderClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonReader");
+        }
+
+        public static readonly UnionJsonReaderConverter Singleton = new UnionJsonReaderConverter();
+    }
+
+    internal class UnionJsonTokenTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonTokenType) || t == typeof(UnionJsonTokenType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonTokenType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonTokenType>(reader);
+                    return new UnionJsonTokenType { JsonTokenType = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonTokenType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonTokenType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonTokenType != null)
+            {
+                serializer.Serialize(writer, value.JsonTokenType);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonTokenType");
+        }
+
+        public static readonly UnionJsonTokenTypeConverter Singleton = new UnionJsonTokenTypeConverter();
+    }
+
+    internal class UnionNoConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNo) || t == typeof(UnionNo?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNo { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<No>(reader);
+                    return new UnionNo { No = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNo");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNo)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.No != null)
+            {
+                serializer.Serialize(writer, value.No);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNo");
+        }
+
+        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+    }
+
+    internal class UnionNsErrorConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsError) || t == typeof(UnionNsError?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNsError { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NsError>(reader);
+                    return new UnionNsError { NsError = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNsError");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNsError)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NsError != null)
+            {
+                serializer.Serialize(writer, value.NsError);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNsError");
+        }
+
+        public static readonly UnionNsErrorConverter Singleton = new UnionNsErrorConverter();
+    }
+
+    internal class UnionNsStringConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsString) || t == typeof(UnionNsString?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNsString { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NsString>(reader);
+                    return new UnionNsString { NsString = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNsString");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNsString)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NsString != null)
+            {
+                serializer.Serialize(writer, value.NsString);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNsString");
+        }
+
+        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+    }
+
+    internal class UnionNullConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNull) || t == typeof(UnionNull?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNull { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Null>(reader);
+                    return new UnionNull { Null = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNull");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNull)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Null != null)
+            {
+                serializer.Serialize(writer, value.Null);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNull");
+        }
+
+        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+    }
+
+    internal class UnionNoneConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNone) || t == typeof(UnionNone?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNone { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<None>(reader);
+                    return new UnionNone { None = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNone");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNone)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.None != null)
+            {
+                serializer.Serialize(writer, value.None);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNone");
+        }
+
+        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+    }
+
+    internal class UnionObjectMapperConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionObjectMapper) || t == typeof(UnionObjectMapper?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionObjectMapper { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<ObjectMapper>(reader);
+                    return new UnionObjectMapper { ObjectMapper = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionObjectMapper");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionObjectMapper)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.ObjectMapper != null)
+            {
+                serializer.Serialize(writer, value.ObjectMapper);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionObjectMapper");
+        }
+
+        public static readonly UnionObjectMapperConverter Singleton = new UnionObjectMapperConverter();
+    }
+
+    internal class UnionProtocolConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionProtocol) || t == typeof(UnionProtocol?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionProtocol { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Protocol>(reader);
+                    return new UnionProtocol { Protocol = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionProtocol");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionProtocol)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Protocol != null)
+            {
+                serializer.Serialize(writer, value.Protocol);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionProtocol");
+        }
+
+        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+    }
+
+    internal class UnionRegExpConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRegExp) || t == typeof(UnionRegExp?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionRegExp { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<RegExp>(reader);
+                    return new UnionRegExp { RegExp = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionRegExp");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionRegExp)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.RegExp != null)
+            {
+                serializer.Serialize(writer, value.RegExp);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionRegExp");
+        }
+
+        public static readonly UnionRegExpConverter Singleton = new UnionRegExpConverter();
+    }
+
+    internal class UnionSelConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSel) || t == typeof(UnionSel?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSel { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Sel>(reader);
+                    return new UnionSel { Sel = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSel");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSel)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Sel != null)
+            {
+                serializer.Serialize(writer, value.Sel);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSel");
+        }
+
+        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+    }
+
+    internal class UnionSelfConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSelf) || t == typeof(UnionSelf?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSelf { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Self>(reader);
+                    return new UnionSelf { Self = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSelf");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSelf)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Self != null)
+            {
+                serializer.Serialize(writer, value.Self);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSelf");
+        }
+
+        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+    }
+
+    internal class UnionSerializerProviderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSerializerProvider) || t == typeof(UnionSerializerProvider?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSerializerProvider { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<SerializerProvider>(reader);
+                    return new UnionSerializerProvider { SerializerProvider = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSerializerProvider");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSerializerProvider)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.SerializerProvider != null)
+            {
+                serializer.Serialize(writer, value.SerializerProvider);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSerializerProvider");
+        }
+
+        public static readonly UnionSerializerProviderConverter Singleton = new UnionSerializerProviderConverter();
+    }
+
+    internal class UnionSimpleModuleConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSimpleModule) || t == typeof(UnionSimpleModule?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSimpleModule { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<SimpleModule>(reader);
+                    return new UnionSimpleModule { SimpleModule = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSimpleModule");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSimpleModule)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.SimpleModule != null)
+            {
+                serializer.Serialize(writer, value.SimpleModule);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSimpleModule");
+        }
+
+        public static readonly UnionSimpleModuleConverter Singleton = new UnionSimpleModuleConverter();
+    }
+
+    internal class UnionStandardsConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStandards) || t == typeof(UnionStandards?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStandards { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Standards>(reader);
+                    return new UnionStandards { Standards = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStandards");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStandards)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Standards != null)
+            {
+                serializer.Serialize(writer, value.Standards);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStandards");
+        }
+
+        public static readonly UnionStandardsConverter Singleton = new UnionStandardsConverter();
+    }
+
+    internal class UnionStdDeserializerConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdDeserializer) || t == typeof(UnionStdDeserializer?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStdDeserializer { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<StdDeserializer>(reader);
+                    return new UnionStdDeserializer { StdDeserializer = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStdDeserializer");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStdDeserializer)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.StdDeserializer != null)
+            {
+                serializer.Serialize(writer, value.StdDeserializer);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStdDeserializer");
+        }
+
+        public static readonly UnionStdDeserializerConverter Singleton = new UnionStdDeserializerConverter();
+    }
+
+    internal class UnionStdSerializerConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdSerializer) || t == typeof(UnionStdSerializer?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStdSerializer { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<StdSerializer>(reader);
+                    return new UnionStdSerializer { StdSerializer = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStdSerializer");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStdSerializer)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.StdSerializer != null)
+            {
+                serializer.Serialize(writer, value.StdSerializer);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStdSerializer");
+        }
+
+        public static readonly UnionStdSerializerConverter Singleton = new UnionStdSerializerConverter();
+    }
+
+    internal class PurpleUnionTimeOnlyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnly) || t == typeof(UnionTimeOnly?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTimeOnly { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TimeOnly>(reader);
+                    return new UnionTimeOnly { TimeOnly = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTimeOnly");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTimeOnly)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TimeOnly != null)
+            {
+                serializer.Serialize(writer, value.TimeOnly);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTimeOnly");
+        }
+
+        public static readonly PurpleUnionTimeOnlyConverter Singleton = new PurpleUnionTimeOnlyConverter();
+    }
+
+    internal class UnionTimeOnlyConverterConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnlyConverter) || t == typeof(UnionTimeOnlyConverter?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTimeOnlyConverter { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TimeOnlyConverter>(reader);
+                    return new UnionTimeOnlyConverter { TimeOnlyConverter = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTimeOnlyConverter");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTimeOnlyConverter)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TimeOnlyConverter != null)
+            {
+                serializer.Serialize(writer, value.TimeOnlyConverter);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTimeOnlyConverter");
+        }
+
+        public static readonly UnionTimeOnlyConverterConverter Singleton = new UnionTimeOnlyConverterConverter();
+    }
+
+    internal class UnionTrueConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTrue) || t == typeof(UnionTrue?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTrue { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<True>(reader);
+                    return new UnionTrue { True = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTrue");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTrue)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.True != null)
+            {
+                serializer.Serialize(writer, value.True);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTrue");
+        }
+
+        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
+    }
+
+    internal class UnionTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionType) || t == typeof(UnionType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TypeClass>(reader);
+                    return new UnionType { TypeClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TypeClass != null)
             {
-                serializer.Serialize(writer, value.Sel);
+                serializer.Serialize(writer, value.TypeClass);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionSel");
+            throw new Exception("Cannot marshal type UnionType");
         }
 
-        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
     }
 
-    internal class UnionSelfConverter : JsonConverter
+    internal class UnionUuidConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionSelf) || t == typeof(UnionSelf?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUuid) || t == typeof(UnionUuid?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5173,36 +7124,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionSelf { Double = doubleValue };
+                    return new UnionUuid { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Self>(reader);
-                    return new UnionSelf { Self = objectValue };
+                    var objectValue = serializer.Deserialize<Uuid>(reader);
+                    return new UnionUuid { Uuid = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionSelf");
+            throw new Exception("Cannot unmarshal type UnionUuid");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionSelf)untypedValue;
+            var value = (UnionUuid)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Self != null)
+            if (value.Uuid != null)
             {
-                serializer.Serialize(writer, value.Self);
+                serializer.Serialize(writer, value.Uuid);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionSelf");
+            throw new Exception("Cannot marshal type UnionUuid");
         }
 
-        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+        public static readonly UnionUuidConverter Singleton = new UnionUuidConverter();
     }
 
-    internal class UnionTrueConverter : JsonConverter
+    internal class UnionUtf8JsonReaderConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionTrue) || t == typeof(UnionTrue?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonReader) || t == typeof(UnionUtf8JsonReader?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5211,36 +7162,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionTrue { Double = doubleValue };
+                    return new UnionUtf8JsonReader { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<True>(reader);
-                    return new UnionTrue { True = objectValue };
+                    var objectValue = serializer.Deserialize<Utf8JsonReader>(reader);
+                    return new UnionUtf8JsonReader { Utf8JsonReader = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionTrue");
+            throw new Exception("Cannot unmarshal type UnionUtf8JsonReader");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionTrue)untypedValue;
+            var value = (UnionUtf8JsonReader)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.True != null)
+            if (value.Utf8JsonReader != null)
             {
-                serializer.Serialize(writer, value.True);
+                serializer.Serialize(writer, value.Utf8JsonReader);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionTrue");
+            throw new Exception("Cannot marshal type UnionUtf8JsonReader");
         }
 
-        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
+        public static readonly UnionUtf8JsonReaderConverter Singleton = new UnionUtf8JsonReaderConverter();
     }
 
-    internal class UnionTypeConverter : JsonConverter
+    internal class UnionUtf8JsonWriterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionType) || t == typeof(UnionType?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonWriter) || t == typeof(UnionUtf8JsonWriter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5249,31 +7200,31 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionType { Double = doubleValue };
+                    return new UnionUtf8JsonWriter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<TypeClass>(reader);
-                    return new UnionType { TypeClass = objectValue };
+                    var objectValue = serializer.Deserialize<Utf8JsonWriter>(reader);
+                    return new UnionUtf8JsonWriter { Utf8JsonWriter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionType");
+            throw new Exception("Cannot unmarshal type UnionUtf8JsonWriter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionType)untypedValue;
+            var value = (UnionUtf8JsonWriter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.TypeClass != null)
+            if (value.Utf8JsonWriter != null)
             {
-                serializer.Serialize(writer, value.TypeClass);
+                serializer.Serialize(writer, value.Utf8JsonWriter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionType");
+            throw new Exception("Cannot marshal type UnionUtf8JsonWriter");
         }
 
-        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
+        public static readonly UnionUtf8JsonWriterConverter Singleton = new UnionUtf8JsonWriterConverter();
     }
 
     internal class UnionYesConverter : JsonConverter
@@ -6834,6 +8785,44 @@ namespace QuickType
         public static readonly UnionClassUnionConverter Singleton = new UnionClassUnionConverter();
     }
 
+    internal class UnionCloneConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionClone) || t == typeof(UnionClone?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionClone { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Clone>(reader);
+                    return new UnionClone { Clone = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionClone");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionClone)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Clone != null)
+            {
+                serializer.Serialize(writer, value.Clone);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionClone");
+        }
+
+        public static readonly UnionCloneConverter Singleton = new UnionCloneConverter();
+    }
+
     internal class UnionCoAwaitConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionCoAwait) || t == typeof(UnionCoAwait?);
@@ -8316,6 +10305,44 @@ namespace QuickType
         public static readonly UnionEnumConverter Singleton = new UnionEnumConverter();
     }
 
+    internal class UnionEqualityContractConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionEqualityContract) || t == typeof(UnionEqualityContract?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionEqualityContract { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<EqualityContract>(reader);
+                    return new UnionEqualityContract { EqualityContract = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionEqualityContract");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionEqualityContract)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.EqualityContract != null)
+            {
+                serializer.Serialize(writer, value.EqualityContract);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionEqualityContract");
+        }
+
+        public static readonly UnionEqualityContractConverter Singleton = new UnionEqualityContractConverter();
+    }
+
     internal class UnionEventConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionEvent) || t == typeof(UnionEvent?);
@@ -9418,6 +11445,44 @@ namespace QuickType
         public static readonly UnionHasOwnPropertyConverter Singleton = new UnionHasOwnPropertyConverter();
     }
 
+    internal class UnionHashCodeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionHashCode) || t == typeof(UnionHashCode?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionHashCode { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<HashCode>(reader);
+                    return new UnionHashCode { HashCode = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionHashCode");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionHashCode)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.HashCode != null)
+            {
+                serializer.Serialize(writer, value.HashCode);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionHashCode");
+        }
+
+        public static readonly UnionHashCodeConverter Singleton = new UnionHashCodeConverter();
+    }
+
     internal class UnionIdConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionId) || t == typeof(UnionId?);
@@ -11014,6 +13079,44 @@ namespace QuickType
         public static readonly UnionNilConverter Singleton = new UnionNilConverter();
     }
 
+    internal class UnionNoSuchMethodConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNoSuchMethod) || t == typeof(UnionNoSuchMethod?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNoSuchMethod { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NoSuchMethod>(reader);
+                    return new UnionNoSuchMethod { NoSuchMethod = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNoSuchMethod");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNoSuchMethod)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NoSuchMethod != null)
+            {
+                serializer.Serialize(writer, value.NoSuchMethod);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNoSuchMethod");
+        }
+
+        public static readonly UnionNoSuchMethodConverter Singleton = new UnionNoSuchMethodConverter();
+    }
+
     internal class UnionNoexceptConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionNoexcept) || t == typeof(UnionNoexcept?);
@@ -12078,6 +14181,44 @@ namespace QuickType
         public static readonly UnionPrintConverter Singleton = new UnionPrintConverter();
     }
 
+    internal class UnionPrintMembersConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionPrintMembers) || t == typeof(UnionPrintMembers?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionPrintMembers { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<PrintMembers>(reader);
+                    return new UnionPrintMembers { PrintMembers = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionPrintMembers");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionPrintMembers)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.PrintMembers != null)
+            {
+                serializer.Serialize(writer, value.PrintMembers);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionPrintMembers");
+        }
+
+        public static readonly UnionPrintMembersConverter Singleton = new UnionPrintMembersConverter();
+    }
+
     internal class UnionPrintfConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionPrintf) || t == typeof(UnionPrintf?);
@@ -12876,6 +15017,82 @@ namespace QuickType
         public static readonly UnionRightConverter Singleton = new UnionRightConverter();
     }
 
+    internal class UnionRuntimeTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRuntimeType) || t == typeof(UnionRuntimeType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionRuntimeType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<RuntimeType>(reader);
+                    return new UnionRuntimeType { RuntimeType = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionRuntimeType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionRuntimeType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.RuntimeType != null)
+            {
+                serializer.Serialize(writer, value.RuntimeType);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionRuntimeType");
+        }
+
+        public static readonly UnionRuntimeTypeConverter Singleton = new UnionRuntimeTypeConverter();
+    }
+
+    internal class UnionSConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionS) || t == typeof(UnionS?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionS { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<S>(reader);
+                    return new UnionS { S = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionS");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionS)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.S != null)
+            {
+                serializer.Serialize(writer, value.S);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionS");
+        }
+
+        public static readonly UnionSConverter Singleton = new UnionSConverter();
+    }
+
     internal class UnionSbyteConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionSbyte) || t == typeof(UnionSbyte?);
@@ -13940,6 +16157,44 @@ namespace QuickType
         public static readonly UnionThrowsConverter Singleton = new UnionThrowsConverter();
     }
 
+    internal class UnionToStringConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionToString) || t == typeof(UnionToString?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionToString { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<ToString>(reader);
+                    return new UnionToString { ToString = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionToString");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionToString)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.ToString != null)
+            {
+                serializer.Serialize(writer, value.ToString);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionToString");
+        }
+
+        public static readonly UnionToStringConverter Singleton = new UnionToStringConverter();
+    }
+
     internal class UnionToJsonConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionToJson) || t == typeof(UnionToJson?);
diff --git a/base/schema-csharp-SystemTextJson/test/inputs/schema/keyword-enum.schema/default/QuickType.cs b/head/schema-csharp-SystemTextJson/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
index bc365c8..e1c2c2e 100644
--- a/base/schema-csharp-SystemTextJson/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
+++ b/head/schema-csharp-SystemTextJson/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
@@ -27,7 +27,7 @@ namespace QuickType
         public Enum? Enum { get; set; }
     }
 
-    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, Date, DateParseHandling, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, Not, NotEq, NsString, Null, EnumNull, Nullptr, Number, Object, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, Set, Short, Signed, Sizeof, Stackalloc, Static, StaticAssert, StaticCast, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, ToJson, TopLevel, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
+    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, Clone, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, CultureInfo, Date, DateParseHandling, DateFormatter, DateOnly, DateOnlyConverter, DateTime, DateTimeStyles, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, EnumValues, EqualityContract, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, FormatException, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HashCode, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, IsoDateTimeOffsetConverter, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, JsonAny, JsonCodingKey, JsonDecoder, JsonEncoder, JsonException, JsonGenerator, JsonNode, JsonNull, JsonParser, JsonReader, JsonTokenType, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, NoSuchMethod, Not, NotEq, NsError, NsString, Null, EnumNull, Nullptr, Number, Object, ObjectMapper, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, PrintMembers, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, RegExp, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, RuntimeType, S, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, SerializerProvider, Set, Short, Signed, SimpleModule, Sizeof, Stackalloc, Standards, Static, StaticAssert, StaticCast, StdDeserializer, StdSerializer, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, TimeOnly, TimeOnlyConverter, ToJson, TopLevel, ToString, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Utf8JsonReader, Utf8JsonWriter, Uuid, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
 
     public partial class TopLevel
     {
@@ -148,6 +148,8 @@ namespace QuickType
                     return Enum.Class;
                 case "Class":
                     return Enum.EnumClass;
+                case "clone":
+                    return Enum.Clone;
                 case "co_await":
                     return Enum.CoAwait;
                 case "co_return":
@@ -176,10 +178,22 @@ namespace QuickType
                     return Enum.Convert;
                 case "converter":
                     return Enum.Converter;
+                case "CultureInfo":
+                    return Enum.CultureInfo;
                 case "date":
                     return Enum.Date;
                 case "date_parse_handling":
                     return Enum.DateParseHandling;
+                case "DateFormatter":
+                    return Enum.DateFormatter;
+                case "DateOnly":
+                    return Enum.DateOnly;
+                case "DateOnlyConverter":
+                    return Enum.DateOnlyConverter;
+                case "DateTime":
+                    return Enum.DateTime;
+                case "DateTimeStyles":
+                    return Enum.DateTimeStyles;
                 case "debugger":
                     return Enum.Debugger;
                 case "decimal":
@@ -226,6 +240,10 @@ namespace QuickType
                     return Enum.EncodeQuickType;
                 case "enum":
                     return Enum.Enum;
+                case "EnumValues":
+                    return Enum.EnumValues;
+                case "equalityContract":
+                    return Enum.EqualityContract;
                 case "event":
                     return Enum.Event;
                 case "except":
@@ -264,6 +282,8 @@ namespace QuickType
                     return Enum.For;
                 case "foreach":
                     return Enum.Foreach;
+                case "FormatException":
+                    return Enum.FormatException;
                 case "friend":
                     return Enum.Friend;
                 case "from":
@@ -284,6 +304,8 @@ namespace QuickType
                     return Enum.Goto;
                 case "guard":
                     return Enum.Guard;
+                case "hashCode":
+                    return Enum.HashCode;
                 case "hasOwnProperty":
                     return Enum.HasOwnProperty;
                 case "id":
@@ -318,6 +340,8 @@ namespace QuickType
                     return Enum.Interface;
                 case "internal":
                     return Enum.Internal;
+                case "IsoDateTimeOffsetConverter":
+                    return Enum.IsoDateTimeOffsetConverter;
                 case "iterable":
                     return Enum.Iterable;
                 case "is":
@@ -338,6 +362,28 @@ namespace QuickType
                     return Enum.JsonToken;
                 case "json_writer":
                     return Enum.JsonWriter;
+                case "JSONAny":
+                    return Enum.JsonAny;
+                case "JSONCodingKey":
+                    return Enum.JsonCodingKey;
+                case "JSONDecoder":
+                    return Enum.JsonDecoder;
+                case "JSONEncoder":
+                    return Enum.JsonEncoder;
+                case "JsonException":
+                    return Enum.JsonException;
+                case "JsonGenerator":
+                    return Enum.JsonGenerator;
+                case "JsonNode":
+                    return Enum.JsonNode;
+                case "JSONNull":
+                    return Enum.JsonNull;
+                case "JsonParser":
+                    return Enum.JsonParser;
+                case "JsonReader":
+                    return Enum.JsonReader;
+                case "JsonTokenType":
+                    return Enum.JsonTokenType;
                 case "lambda":
                     return Enum.Lambda;
                 case "lazy":
@@ -386,10 +432,14 @@ namespace QuickType
                     return Enum.Nonlocal;
                 case "nonmutating":
                     return Enum.Nonmutating;
+                case "noSuchMethod":
+                    return Enum.NoSuchMethod;
                 case "not":
                     return Enum.Not;
                 case "not_eq":
                     return Enum.NotEq;
+                case "NSError":
+                    return Enum.NsError;
                 case "NSString":
                     return Enum.NsString;
                 case "NULL":
@@ -402,6 +452,8 @@ namespace QuickType
                     return Enum.Number;
                 case "object":
                     return Enum.Object;
+                case "ObjectMapper":
+                    return Enum.ObjectMapper;
                 case "of":
                     return Enum.Of;
                 case "oneway":
@@ -438,6 +490,8 @@ namespace QuickType
                     return Enum.Print;
                 case "printf":
                     return Enum.Printf;
+                case "printMembers":
+                    return Enum.PrintMembers;
                 case "private":
                     return Enum.Private;
                 case "protected":
@@ -458,6 +512,8 @@ namespace QuickType
                     return Enum.Readonly;
                 case "ref":
                     return Enum.Ref;
+                case "RegExp":
+                    return Enum.RegExp;
                 case "register":
                     return Enum.Register;
                 case "reinterpret_cast":
@@ -480,6 +536,10 @@ namespace QuickType
                     return Enum.Return;
                 case "right":
                     return Enum.Right;
+                case "runtimeType":
+                    return Enum.RuntimeType;
+                case "s":
+                    return Enum.S;
                 case "sbyte":
                     return Enum.Sbyte;
                 case "sealed":
@@ -494,22 +554,32 @@ namespace QuickType
                     return Enum.EnumSelf;
                 case "serialize":
                     return Enum.Serialize;
+                case "SerializerProvider":
+                    return Enum.SerializerProvider;
                 case "set":
                     return Enum.Set;
                 case "short":
                     return Enum.Short;
                 case "signed":
                     return Enum.Signed;
+                case "SimpleModule":
+                    return Enum.SimpleModule;
                 case "sizeof":
                     return Enum.Sizeof;
                 case "stackalloc":
                     return Enum.Stackalloc;
+                case "Standards":
+                    return Enum.Standards;
                 case "static":
                     return Enum.Static;
                 case "static_assert":
                     return Enum.StaticAssert;
                 case "static_cast":
                     return Enum.StaticCast;
+                case "StdDeserializer":
+                    return Enum.StdDeserializer;
+                case "StdSerializer":
+                    return Enum.StdSerializer;
                 case "strictfp":
                     return Enum.Strictfp;
                 case "string":
@@ -540,10 +610,16 @@ namespace QuickType
                     return Enum.Throw;
                 case "throws":
                     return Enum.Throws;
+                case "TimeOnly":
+                    return Enum.TimeOnly;
+                case "TimeOnlyConverter":
+                    return Enum.TimeOnlyConverter;
                 case "to_json":
                     return Enum.ToJson;
                 case "top_level":
                     return Enum.TopLevel;
+                case "toString":
+                    return Enum.ToString;
                 case "transient":
                     return Enum.Transient;
                 case "True":
@@ -586,6 +662,12 @@ namespace QuickType
                     return Enum.Ushort;
                 case "using":
                     return Enum.Using;
+                case "Utf8JsonReader":
+                    return Enum.Utf8JsonReader;
+                case "Utf8JsonWriter":
+                    return Enum.Utf8JsonWriter;
+                case "UUID":
+                    return Enum.Uuid;
                 case "var":
                     return Enum.Var;
                 case "virtual":
@@ -753,6 +835,9 @@ namespace QuickType
                 case Enum.EnumClass:
                     JsonSerializer.Serialize(writer, "Class", options);
                     return;
+                case Enum.Clone:
+                    JsonSerializer.Serialize(writer, "clone", options);
+                    return;
                 case Enum.CoAwait:
                     JsonSerializer.Serialize(writer, "co_await", options);
                     return;
@@ -795,12 +880,30 @@ namespace QuickType
                 case Enum.Converter:
                     JsonSerializer.Serialize(writer, "converter", options);
                     return;
+                case Enum.CultureInfo:
+                    JsonSerializer.Serialize(writer, "CultureInfo", options);
+                    return;
                 case Enum.Date:
                     JsonSerializer.Serialize(writer, "date", options);
                     return;
                 case Enum.DateParseHandling:
                     JsonSerializer.Serialize(writer, "date_parse_handling", options);
                     return;
+                case Enum.DateFormatter:
+                    JsonSerializer.Serialize(writer, "DateFormatter", options);
+                    return;
+                case Enum.DateOnly:
+                    JsonSerializer.Serialize(writer, "DateOnly", options);
+                    return;
+                case Enum.DateOnlyConverter:
+                    JsonSerializer.Serialize(writer, "DateOnlyConverter", options);
+                    return;
+                case Enum.DateTime:
+                    JsonSerializer.Serialize(writer, "DateTime", options);
+                    return;
+                case Enum.DateTimeStyles:
+                    JsonSerializer.Serialize(writer, "DateTimeStyles", options);
+                    return;
                 case Enum.Debugger:
                     JsonSerializer.Serialize(writer, "debugger", options);
                     return;
@@ -870,6 +973,12 @@ namespace QuickType
                 case Enum.Enum:
                     JsonSerializer.Serialize(writer, "enum", options);
                     return;
+                case Enum.EnumValues:
+                    JsonSerializer.Serialize(writer, "EnumValues", options);
+                    return;
+                case Enum.EqualityContract:
+                    JsonSerializer.Serialize(writer, "equalityContract", options);
+                    return;
                 case Enum.Event:
                     JsonSerializer.Serialize(writer, "event", options);
                     return;
@@ -927,6 +1036,9 @@ namespace QuickType
                 case Enum.Foreach:
                     JsonSerializer.Serialize(writer, "foreach", options);
                     return;
+                case Enum.FormatException:
+                    JsonSerializer.Serialize(writer, "FormatException", options);
+                    return;
                 case Enum.Friend:
                     JsonSerializer.Serialize(writer, "friend", options);
                     return;
@@ -957,6 +1069,9 @@ namespace QuickType
                 case Enum.Guard:
                     JsonSerializer.Serialize(writer, "guard", options);
                     return;
+                case Enum.HashCode:
+                    JsonSerializer.Serialize(writer, "hashCode", options);
+                    return;
                 case Enum.HasOwnProperty:
                     JsonSerializer.Serialize(writer, "hasOwnProperty", options);
                     return;
@@ -1008,6 +1123,9 @@ namespace QuickType
                 case Enum.Internal:
                     JsonSerializer.Serialize(writer, "internal", options);
                     return;
+                case Enum.IsoDateTimeOffsetConverter:
+                    JsonSerializer.Serialize(writer, "IsoDateTimeOffsetConverter", options);
+                    return;
                 case Enum.Iterable:
                     JsonSerializer.Serialize(writer, "iterable", options);
                     return;
@@ -1038,6 +1156,39 @@ namespace QuickType
                 case Enum.JsonWriter:
                     JsonSerializer.Serialize(writer, "json_writer", options);
                     return;
+                case Enum.JsonAny:
+                    JsonSerializer.Serialize(writer, "JSONAny", options);
+                    return;
+                case Enum.JsonCodingKey:
+                    JsonSerializer.Serialize(writer, "JSONCodingKey", options);
+                    return;
+                case Enum.JsonDecoder:
+                    JsonSerializer.Serialize(writer, "JSONDecoder", options);
+                    return;
+                case Enum.JsonEncoder:
+                    JsonSerializer.Serialize(writer, "JSONEncoder", options);
+                    return;
+                case Enum.JsonException:
+                    JsonSerializer.Serialize(writer, "JsonException", options);
+                    return;
+                case Enum.JsonGenerator:
+                    JsonSerializer.Serialize(writer, "JsonGenerator", options);
+                    return;
+                case Enum.JsonNode:
+                    JsonSerializer.Serialize(writer, "JsonNode", options);
+                    return;
+                case Enum.JsonNull:
+                    JsonSerializer.Serialize(writer, "JSONNull", options);
+                    return;
+                case Enum.JsonParser:
+                    JsonSerializer.Serialize(writer, "JsonParser", options);
+                    return;
+                case Enum.JsonReader:
+                    JsonSerializer.Serialize(writer, "JsonReader", options);
+                    return;
+                case Enum.JsonTokenType:
+                    JsonSerializer.Serialize(writer, "JsonTokenType", options);
+                    return;
                 case Enum.Lambda:
                     JsonSerializer.Serialize(writer, "lambda", options);
                     return;
@@ -1110,12 +1261,18 @@ namespace QuickType
                 case Enum.Nonmutating:
                     JsonSerializer.Serialize(writer, "nonmutating", options);
                     return;
+                case Enum.NoSuchMethod:
+                    JsonSerializer.Serialize(writer, "noSuchMethod", options);
+                    return;
                 case Enum.Not:
                     JsonSerializer.Serialize(writer, "not", options);
                     return;
                 case Enum.NotEq:
                     JsonSerializer.Serialize(writer, "not_eq", options);
                     return;
+                case Enum.NsError:
+                    JsonSerializer.Serialize(writer, "NSError", options);
+                    return;
                 case Enum.NsString:
                     JsonSerializer.Serialize(writer, "NSString", options);
                     return;
@@ -1134,6 +1291,9 @@ namespace QuickType
                 case Enum.Object:
                     JsonSerializer.Serialize(writer, "object", options);
                     return;
+                case Enum.ObjectMapper:
+                    JsonSerializer.Serialize(writer, "ObjectMapper", options);
+                    return;
                 case Enum.Of:
                     JsonSerializer.Serialize(writer, "of", options);
                     return;
@@ -1188,6 +1348,9 @@ namespace QuickType
                 case Enum.Printf:
                     JsonSerializer.Serialize(writer, "printf", options);
                     return;
+                case Enum.PrintMembers:
+                    JsonSerializer.Serialize(writer, "printMembers", options);
+                    return;
                 case Enum.Private:
                     JsonSerializer.Serialize(writer, "private", options);
                     return;
@@ -1218,6 +1381,9 @@ namespace QuickType
                 case Enum.Ref:
                     JsonSerializer.Serialize(writer, "ref", options);
                     return;
+                case Enum.RegExp:
+                    JsonSerializer.Serialize(writer, "RegExp", options);
+                    return;
                 case Enum.Register:
                     JsonSerializer.Serialize(writer, "register", options);
                     return;
@@ -1251,6 +1417,12 @@ namespace QuickType
                 case Enum.Right:
                     JsonSerializer.Serialize(writer, "right", options);
                     return;
+                case Enum.RuntimeType:
+                    JsonSerializer.Serialize(writer, "runtimeType", options);
+                    return;
+                case Enum.S:
+                    JsonSerializer.Serialize(writer, "s", options);
+                    return;
                 case Enum.Sbyte:
                     JsonSerializer.Serialize(writer, "sbyte", options);
                     return;
@@ -1272,6 +1444,9 @@ namespace QuickType
                 case Enum.Serialize:
                     JsonSerializer.Serialize(writer, "serialize", options);
                     return;
+                case Enum.SerializerProvider:
+                    JsonSerializer.Serialize(writer, "SerializerProvider", options);
+                    return;
                 case Enum.Set:
                     JsonSerializer.Serialize(writer, "set", options);
                     return;
@@ -1281,12 +1456,18 @@ namespace QuickType
                 case Enum.Signed:
                     JsonSerializer.Serialize(writer, "signed", options);
                     return;
+                case Enum.SimpleModule:
+                    JsonSerializer.Serialize(writer, "SimpleModule", options);
+                    return;
                 case Enum.Sizeof:
                     JsonSerializer.Serialize(writer, "sizeof", options);
                     return;
                 case Enum.Stackalloc:
                     JsonSerializer.Serialize(writer, "stackalloc", options);
                     return;
+                case Enum.Standards:
+                    JsonSerializer.Serialize(writer, "Standards", options);
+                    return;
                 case Enum.Static:
                     JsonSerializer.Serialize(writer, "static", options);
                     return;
@@ -1296,6 +1477,12 @@ namespace QuickType
                 case Enum.StaticCast:
                     JsonSerializer.Serialize(writer, "static_cast", options);
                     return;
+                case Enum.StdDeserializer:
+                    JsonSerializer.Serialize(writer, "StdDeserializer", options);
+                    return;
+                case Enum.StdSerializer:
+                    JsonSerializer.Serialize(writer, "StdSerializer", options);
+                    return;
                 case Enum.Strictfp:
                     JsonSerializer.Serialize(writer, "strictfp", options);
                     return;
@@ -1341,12 +1528,21 @@ namespace QuickType
                 case Enum.Throws:
                     JsonSerializer.Serialize(writer, "throws", options);
                     return;
+                case Enum.TimeOnly:
+                    JsonSerializer.Serialize(writer, "TimeOnly", options);
+                    return;
+                case Enum.TimeOnlyConverter:
+                    JsonSerializer.Serialize(writer, "TimeOnlyConverter", options);
+                    return;
                 case Enum.ToJson:
                     JsonSerializer.Serialize(writer, "to_json", options);
                     return;
                 case Enum.TopLevel:
                     JsonSerializer.Serialize(writer, "top_level", options);
                     return;
+                case Enum.ToString:
+                    JsonSerializer.Serialize(writer, "toString", options);
+                    return;
                 case Enum.Transient:
                     JsonSerializer.Serialize(writer, "transient", options);
                     return;
@@ -1410,6 +1606,15 @@ namespace QuickType
                 case Enum.Using:
                     JsonSerializer.Serialize(writer, "using", options);
                     return;
+                case Enum.Utf8JsonReader:
+                    JsonSerializer.Serialize(writer, "Utf8JsonReader", options);
+                    return;
+                case Enum.Utf8JsonWriter:
+                    JsonSerializer.Serialize(writer, "Utf8JsonWriter", options);
+                    return;
+                case Enum.Uuid:
+                    JsonSerializer.Serialize(writer, "UUID", options);
+                    return;
                 case Enum.Var:
                     JsonSerializer.Serialize(writer, "var", options);
                     return;
diff --git a/base/schema-csharp-SystemTextJson/test/inputs/schema/keyword-unions.schema/default/QuickType.cs b/head/schema-csharp-SystemTextJson/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
index c32ab23..da162b0 100644
--- a/base/schema-csharp-SystemTextJson/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
+++ b/head/schema-csharp-SystemTextJson/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
@@ -194,6 +194,10 @@ namespace QuickType
         [JsonPropertyName("Class")]
         public UnionClass? Class { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("clone")]
+        public UnionClone? Clone { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("co_await")]
         public UnionCoAwait? CoAwait { get; set; }
@@ -250,6 +254,10 @@ namespace QuickType
         [JsonPropertyName("converter")]
         public UnionConverter? Converter { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("CultureInfo")]
+        public UnionCultureInfo? CultureInfo { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("date")]
         public UnionDate? Date { get; set; }
@@ -258,6 +266,26 @@ namespace QuickType
         [JsonPropertyName("date_parse_handling")]
         public UnionDateParseHandling? DateParseHandling { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("DateFormatter")]
+        public UnionDateFormatter? DateFormatter { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("DateOnly")]
+        public UnionDateOnly? DateOnly { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("DateOnlyConverter")]
+        public UnionDateOnlyConverter? DateOnlyConverter { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("DateTime")]
+        public UnionDateTime? DateTime { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("DateTimeStyles")]
+        public UnionDateTimeStyles? DateTimeStyles { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("debugger")]
         public UnionDebugger? Debugger { get; set; }
@@ -354,6 +382,14 @@ namespace QuickType
         [JsonPropertyName("enum")]
         public UnionEnum? Enum { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("EnumValues")]
+        public UnionEnumValues? EnumValues { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("equalityContract")]
+        public UnionEqualityContract? EqualityContract { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("event")]
         public UnionEvent? Event { get; set; }
@@ -430,6 +466,10 @@ namespace QuickType
         [JsonPropertyName("foreach")]
         public UnionForeach? Foreach { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("FormatException")]
+        public UnionFormatException? FormatException { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("friend")]
         public UnionFriend? Friend { get; set; }
@@ -470,6 +510,10 @@ namespace QuickType
         [JsonPropertyName("guard")]
         public UnionGuard? Guard { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("hashCode")]
+        public UnionHashCode? HashCode { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("hasOwnProperty")]
         public UnionHasOwnProperty? HasOwnProperty { get; set; }
@@ -542,6 +586,10 @@ namespace QuickType
         [JsonPropertyName("is")]
         public UnionIs? Is { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("IsoDateTimeOffsetConverter")]
+        public UnionIsoDateTimeOffsetConverter? IsoDateTimeOffsetConverter { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("iterable")]
         public UnionIterable? Iterable { get; set; }
@@ -578,6 +626,50 @@ namespace QuickType
         [JsonPropertyName("json_writer")]
         public UnionJsonWriter? JsonWriter { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JSONAny")]
+        public UnionJsonAny? JsonAny { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JSONCodingKey")]
+        public UnionJsonCodingKey? JsonCodingKey { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JSONDecoder")]
+        public UnionJsonDecoder? JsonDecoder { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JSONEncoder")]
+        public UnionJsonEncoder? JsonEncoder { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonException")]
+        public UnionJsonException? JsonException { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonGenerator")]
+        public UnionJsonGenerator? JsonGenerator { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonNode")]
+        public UnionJsonNode? JsonNode { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JSONNull")]
+        public UnionJsonNull? JsonNull { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonParser")]
+        public UnionJsonParser? JsonParser { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonReader")]
+        public UnionJsonReader? JsonReader { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("JsonTokenType")]
+        public UnionJsonTokenType? JsonTokenType { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("lambda")]
         public UnionLambda? Lambda { get; set; }
@@ -674,6 +766,10 @@ namespace QuickType
         [JsonPropertyName("nonmutating")]
         public UnionNonmutating? Nonmutating { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("noSuchMethod")]
+        public UnionNoSuchMethod? NoSuchMethod { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("not")]
         public UnionNot? Not { get; set; }
@@ -682,6 +778,10 @@ namespace QuickType
         [JsonPropertyName("not_eq")]
         public UnionNotEq? NotEq { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("NSError")]
+        public UnionNsError? NsError { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("NSString")]
         public UnionNsString? NsString { get; set; }
@@ -706,6 +806,10 @@ namespace QuickType
         [JsonPropertyName("object")]
         public UnionObject? Object { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("ObjectMapper")]
+        public UnionObjectMapper? ObjectMapper { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("of")]
         public UnionOf? Of { get; set; }
@@ -778,6 +882,10 @@ namespace QuickType
         [JsonPropertyName("printf")]
         public UnionPrintf? Printf { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("printMembers")]
+        public UnionPrintMembers? PrintMembers { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("private")]
         public UnionPrivate? Private { get; set; }
@@ -818,6 +926,10 @@ namespace QuickType
         [JsonPropertyName("ref")]
         public UnionRef? Ref { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("RegExp")]
+        public UnionRegExp? RegExp { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("register")]
         public UnionRegister? Register { get; set; }
@@ -862,6 +974,14 @@ namespace QuickType
         [JsonPropertyName("right")]
         public UnionRight? Right { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("runtimeType")]
+        public UnionRuntimeType? RuntimeType { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("s")]
+        public UnionS? S { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("sbyte")]
         public UnionSbyte? Sbyte { get; set; }
@@ -890,6 +1010,10 @@ namespace QuickType
         [JsonPropertyName("serialize")]
         public UnionSerialize? Serialize { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("SerializerProvider")]
+        public UnionSerializerProvider? SerializerProvider { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("set")]
         public UnionSet? Set { get; set; }
@@ -902,6 +1026,10 @@ namespace QuickType
         [JsonPropertyName("signed")]
         public UnionSigned? Signed { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("SimpleModule")]
+        public UnionSimpleModule? SimpleModule { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("sizeof")]
         public UnionSizeof? Sizeof { get; set; }
@@ -910,6 +1038,10 @@ namespace QuickType
         [JsonPropertyName("stackalloc")]
         public UnionStackalloc? Stackalloc { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("Standards")]
+        public UnionStandards? Standards { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("static")]
         public UnionStatic? Static { get; set; }
@@ -922,6 +1054,14 @@ namespace QuickType
         [JsonPropertyName("static_cast")]
         public UnionStaticCast? StaticCast { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("StdDeserializer")]
+        public UnionStdDeserializer? StdDeserializer { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("StdSerializer")]
+        public UnionStdSerializer? StdSerializer { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("strictfp")]
         public UnionStrictfp? Strictfp { get; set; }
@@ -982,6 +1122,14 @@ namespace QuickType
         [JsonPropertyName("throws")]
         public UnionThrows? Throws { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("TimeOnly")]
+        public UnionTimeOnly? TimeOnly { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("TimeOnlyConverter")]
+        public UnionTimeOnlyConverter? TimeOnlyConverter { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("to_json")]
         public UnionToJson? TopLevelToJson { get; set; }
@@ -990,6 +1138,10 @@ namespace QuickType
         [JsonPropertyName("top_level")]
         public UnionTopLevel? TopLevelTopLevel { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("toString")]
+        public UnionToString? TopLevelToString { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("transient")]
         public UnionTransient? Transient { get; set; }
@@ -1074,6 +1226,18 @@ namespace QuickType
         [JsonPropertyName("using")]
         public UnionUsing? Using { get; set; }
 
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("Utf8JsonReader")]
+        public UnionUtf8JsonReader? Utf8JsonReader { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("Utf8JsonWriter")]
+        public UnionUtf8JsonWriter? Utf8JsonWriter { get; set; }
+
+        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+        [JsonPropertyName("UUID")]
+        public UnionUuid? Uuid { get; set; }
+
         [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
         [JsonPropertyName("var")]
         public UnionVar? Var { get; set; }
@@ -1275,6 +1439,10 @@ namespace QuickType
     {
     }
 
+    public partial class Clone
+    {
+    }
+
     public partial class CoAwait
     {
     }
@@ -1335,14 +1503,38 @@ namespace QuickType
     {
     }
 
+    public partial class CultureInfoClass
+    {
+    }
+
     public partial class Date
     {
     }
 
+    public partial class DateFormatter
+    {
+    }
+
+    public partial class DateOnlyClass
+    {
+    }
+
+    public partial class DateOnlyConverterClass
+    {
+    }
+
     public partial class DateParseHandling
     {
     }
 
+    public partial class DateTime
+    {
+    }
+
+    public partial class DateTimeStylesClass
+    {
+    }
+
     public partial class Debugger
     {
     }
@@ -1439,6 +1631,14 @@ namespace QuickType
     {
     }
 
+    public partial class EnumValues
+    {
+    }
+
+    public partial class EqualityContract
+    {
+    }
+
     public partial class Event
     {
     }
@@ -1511,6 +1711,10 @@ namespace QuickType
     {
     }
 
+    public partial class FormatException
+    {
+    }
+
     public partial class Friend
     {
     }
@@ -1551,6 +1755,10 @@ namespace QuickType
     {
     }
 
+    public partial class HashCode
+    {
+    }
+
     public partial class Id
     {
     }
@@ -1623,6 +1831,10 @@ namespace QuickType
     {
     }
 
+    public partial class IsoDateTimeOffsetConverterClass
+    {
+    }
+
     public partial class Iterable
     {
     }
@@ -1643,10 +1855,50 @@ namespace QuickType
     {
     }
 
+    public partial class JsonAny
+    {
+    }
+
+    public partial class JsonCodingKey
+    {
+    }
+
     public partial class JsonConverterClass
     {
     }
 
+    public partial class JsonDecoder
+    {
+    }
+
+    public partial class JsonEncoder
+    {
+    }
+
+    public partial class JsonExceptionClass
+    {
+    }
+
+    public partial class JsonGenerator
+    {
+    }
+
+    public partial class JsonNode
+    {
+    }
+
+    public partial class JsonNull
+    {
+    }
+
+    public partial class JsonParser
+    {
+    }
+
+    public partial class JsonReader
+    {
+    }
+
     public partial class JsonSerializerClass
     {
     }
@@ -1655,6 +1907,10 @@ namespace QuickType
     {
     }
 
+    public partial class JsonTokenTypeClass
+    {
+    }
+
     public partial class JsonWriterClass
     {
     }
@@ -1731,6 +1987,10 @@ namespace QuickType
     {
     }
 
+    public partial class NoSuchMethod
+    {
+    }
+
     public partial class Noexcept
     {
     }
@@ -1759,6 +2019,10 @@ namespace QuickType
     {
     }
 
+    public partial class NsError
+    {
+    }
+
     public partial class NsString
     {
     }
@@ -1779,6 +2043,10 @@ namespace QuickType
     {
     }
 
+    public partial class ObjectMapper
+    {
+    }
+
     public partial class Of
     {
     }
@@ -1847,6 +2115,10 @@ namespace QuickType
     {
     }
 
+    public partial class PrintMembers
+    {
+    }
+
     public partial class Printf
     {
     }
@@ -1891,6 +2163,10 @@ namespace QuickType
     {
     }
 
+    public partial class RegExp
+    {
+    }
+
     public partial class Register
     {
     }
@@ -1931,6 +2207,14 @@ namespace QuickType
     {
     }
 
+    public partial class RuntimeType
+    {
+    }
+
+    public partial class S
+    {
+    }
+
     public partial class Sbyte
     {
     }
@@ -1955,6 +2239,10 @@ namespace QuickType
     {
     }
 
+    public partial class SerializerProvider
+    {
+    }
+
     public partial class Set
     {
     }
@@ -1967,6 +2255,10 @@ namespace QuickType
     {
     }
 
+    public partial class SimpleModule
+    {
+    }
+
     public partial class Sizeof
     {
     }
@@ -1975,6 +2267,10 @@ namespace QuickType
     {
     }
 
+    public partial class Standards
+    {
+    }
+
     public partial class Static
     {
     }
@@ -1987,6 +2283,14 @@ namespace QuickType
     {
     }
 
+    public partial class StdDeserializer
+    {
+    }
+
+    public partial class StdSerializer
+    {
+    }
+
     public partial class Strictfp
     {
     }
@@ -2047,6 +2351,14 @@ namespace QuickType
     {
     }
 
+    public partial class TimeOnlyClass
+    {
+    }
+
+    public partial class TimeOnlyConverterClass
+    {
+    }
+
     public partial class AnyClass
     {
     }
@@ -2091,6 +2403,10 @@ namespace QuickType
     {
     }
 
+    public partial class ToString
+    {
+    }
+
     public partial class TopLevelClass
     {
     }
@@ -2179,6 +2495,18 @@ namespace QuickType
     {
     }
 
+    public partial class Utf8JsonReaderClass
+    {
+    }
+
+    public partial class Utf8JsonWriterClass
+    {
+    }
+
+    public partial class Uuid
+    {
+    }
+
     public partial class Var
     {
     }
@@ -2559,6 +2887,15 @@ namespace QuickType
         public static implicit operator UnionClass(double Double) => new UnionClass { Double = Double };
     }
 
+    public partial struct UnionClone
+    {
+        public Clone? Clone;
+        public double? Double;
+
+        public static implicit operator UnionClone(Clone Clone) => new UnionClone { Clone = Clone };
+        public static implicit operator UnionClone(double Double) => new UnionClone { Double = Double };
+    }
+
     public partial struct UnionCoAwait
     {
         public CoAwait? CoAwait;
@@ -2694,6 +3031,15 @@ namespace QuickType
         public static implicit operator UnionConverter(double Double) => new UnionConverter { Double = Double };
     }
 
+    public partial struct UnionCultureInfo
+    {
+        public CultureInfoClass? CultureInfoClass;
+        public double? Double;
+
+        public static implicit operator UnionCultureInfo(CultureInfoClass CultureInfoClass) => new UnionCultureInfo { CultureInfoClass = CultureInfoClass };
+        public static implicit operator UnionCultureInfo(double Double) => new UnionCultureInfo { Double = Double };
+    }
+
     public partial struct UnionDate
     {
         public Date? Date;
@@ -2703,6 +3049,33 @@ namespace QuickType
         public static implicit operator UnionDate(double Double) => new UnionDate { Double = Double };
     }
 
+    public partial struct UnionDateFormatter
+    {
+        public DateFormatter? DateFormatter;
+        public double? Double;
+
+        public static implicit operator UnionDateFormatter(DateFormatter DateFormatter) => new UnionDateFormatter { DateFormatter = DateFormatter };
+        public static implicit operator UnionDateFormatter(double Double) => new UnionDateFormatter { Double = Double };
+    }
+
+    public partial struct UnionDateOnly
+    {
+        public DateOnlyClass? DateOnlyClass;
+        public double? Double;
+
+        public static implicit operator UnionDateOnly(DateOnlyClass DateOnlyClass) => new UnionDateOnly { DateOnlyClass = DateOnlyClass };
+        public static implicit operator UnionDateOnly(double Double) => new UnionDateOnly { Double = Double };
+    }
+
+    public partial struct UnionDateOnlyConverter
+    {
+        public DateOnlyConverterClass? DateOnlyConverterClass;
+        public double? Double;
+
+        public static implicit operator UnionDateOnlyConverter(DateOnlyConverterClass DateOnlyConverterClass) => new UnionDateOnlyConverter { DateOnlyConverterClass = DateOnlyConverterClass };
+        public static implicit operator UnionDateOnlyConverter(double Double) => new UnionDateOnlyConverter { Double = Double };
+    }
+
     public partial struct UnionDateParseHandling
     {
         public DateParseHandling? DateParseHandling;
@@ -2712,6 +3085,24 @@ namespace QuickType
         public static implicit operator UnionDateParseHandling(double Double) => new UnionDateParseHandling { Double = Double };
     }
 
+    public partial struct UnionDateTime
+    {
+        public DateTime? DateTime;
+        public double? Double;
+
+        public static implicit operator UnionDateTime(DateTime DateTime) => new UnionDateTime { DateTime = DateTime };
+        public static implicit operator UnionDateTime(double Double) => new UnionDateTime { Double = Double };
+    }
+
+    public partial struct UnionDateTimeStyles
+    {
+        public DateTimeStylesClass? DateTimeStylesClass;
+        public double? Double;
+
+        public static implicit operator UnionDateTimeStyles(DateTimeStylesClass DateTimeStylesClass) => new UnionDateTimeStyles { DateTimeStylesClass = DateTimeStylesClass };
+        public static implicit operator UnionDateTimeStyles(double Double) => new UnionDateTimeStyles { Double = Double };
+    }
+
     public partial struct UnionDebugger
     {
         public Debugger? Debugger;
@@ -2928,6 +3319,24 @@ namespace QuickType
         public static implicit operator UnionEnum(Enum Enum) => new UnionEnum { Enum = Enum };
     }
 
+    public partial struct UnionEnumValues
+    {
+        public double? Double;
+        public EnumValues? EnumValues;
+
+        public static implicit operator UnionEnumValues(double Double) => new UnionEnumValues { Double = Double };
+        public static implicit operator UnionEnumValues(EnumValues EnumValues) => new UnionEnumValues { EnumValues = EnumValues };
+    }
+
+    public partial struct UnionEqualityContract
+    {
+        public double? Double;
+        public EqualityContract? EqualityContract;
+
+        public static implicit operator UnionEqualityContract(double Double) => new UnionEqualityContract { Double = Double };
+        public static implicit operator UnionEqualityContract(EqualityContract EqualityContract) => new UnionEqualityContract { EqualityContract = EqualityContract };
+    }
+
     public partial struct UnionEvent
     {
         public double? Double;
@@ -3090,6 +3499,15 @@ namespace QuickType
         public static implicit operator UnionForeach(Foreach Foreach) => new UnionForeach { Foreach = Foreach };
     }
 
+    public partial struct UnionFormatException
+    {
+        public double? Double;
+        public FormatException? FormatException;
+
+        public static implicit operator UnionFormatException(double Double) => new UnionFormatException { Double = Double };
+        public static implicit operator UnionFormatException(FormatException FormatException) => new UnionFormatException { FormatException = FormatException };
+    }
+
     public partial struct UnionFriend
     {
         public double? Double;
@@ -3180,7 +3598,16 @@ namespace QuickType
         public static implicit operator UnionHasOwnProperty(HasOwnProperty HasOwnProperty) => new UnionHasOwnProperty { HasOwnProperty = HasOwnProperty };
     }
 
-    public partial struct UnionId
+    public partial struct UnionHashCode
+    {
+        public double? Double;
+        public HashCode? HashCode;
+
+        public static implicit operator UnionHashCode(double Double) => new UnionHashCode { Double = Double };
+        public static implicit operator UnionHashCode(HashCode HashCode) => new UnionHashCode { HashCode = HashCode };
+    }
+
+    public partial struct UnionId
     {
         public double? Double;
         public Id? Id;
@@ -3342,6 +3769,15 @@ namespace QuickType
         public static implicit operator UnionIs(Is Is) => new UnionIs { Is = Is };
     }
 
+    public partial struct UnionIsoDateTimeOffsetConverter
+    {
+        public double? Double;
+        public IsoDateTimeOffsetConverterClass? IsoDateTimeOffsetConverterClass;
+
+        public static implicit operator UnionIsoDateTimeOffsetConverter(double Double) => new UnionIsoDateTimeOffsetConverter { Double = Double };
+        public static implicit operator UnionIsoDateTimeOffsetConverter(IsoDateTimeOffsetConverterClass IsoDateTimeOffsetConverterClass) => new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverterClass = IsoDateTimeOffsetConverterClass };
+    }
+
     public partial struct UnionIterable
     {
         public double? Double;
@@ -3387,6 +3823,24 @@ namespace QuickType
         public static implicit operator UnionJson(Json Json) => new UnionJson { Json = Json };
     }
 
+    public partial struct UnionJsonAny
+    {
+        public double? Double;
+        public JsonAny? JsonAny;
+
+        public static implicit operator UnionJsonAny(double Double) => new UnionJsonAny { Double = Double };
+        public static implicit operator UnionJsonAny(JsonAny JsonAny) => new UnionJsonAny { JsonAny = JsonAny };
+    }
+
+    public partial struct UnionJsonCodingKey
+    {
+        public double? Double;
+        public JsonCodingKey? JsonCodingKey;
+
+        public static implicit operator UnionJsonCodingKey(double Double) => new UnionJsonCodingKey { Double = Double };
+        public static implicit operator UnionJsonCodingKey(JsonCodingKey JsonCodingKey) => new UnionJsonCodingKey { JsonCodingKey = JsonCodingKey };
+    }
+
     public partial struct UnionJsonConverter
     {
         public double? Double;
@@ -3396,6 +3850,78 @@ namespace QuickType
         public static implicit operator UnionJsonConverter(JsonConverterClass JsonConverterClass) => new UnionJsonConverter { JsonConverterClass = JsonConverterClass };
     }
 
+    public partial struct UnionJsonDecoder
+    {
+        public double? Double;
+        public JsonDecoder? JsonDecoder;
+
+        public static implicit operator UnionJsonDecoder(double Double) => new UnionJsonDecoder { Double = Double };
+        public static implicit operator UnionJsonDecoder(JsonDecoder JsonDecoder) => new UnionJsonDecoder { JsonDecoder = JsonDecoder };
+    }
+
+    public partial struct UnionJsonEncoder
+    {
+        public double? Double;
+        public JsonEncoder? JsonEncoder;
+
+        public static implicit operator UnionJsonEncoder(double Double) => new UnionJsonEncoder { Double = Double };
+        public static implicit operator UnionJsonEncoder(JsonEncoder JsonEncoder) => new UnionJsonEncoder { JsonEncoder = JsonEncoder };
+    }
+
+    public partial struct UnionJsonException
+    {
+        public double? Double;
+        public JsonExceptionClass? JsonExceptionClass;
+
+        public static implicit operator UnionJsonException(double Double) => new UnionJsonException { Double = Double };
+        public static implicit operator UnionJsonException(JsonExceptionClass JsonExceptionClass) => new UnionJsonException { JsonExceptionClass = JsonExceptionClass };
+    }
+
+    public partial struct UnionJsonGenerator
+    {
+        public double? Double;
+        public JsonGenerator? JsonGenerator;
+
+        public static implicit operator UnionJsonGenerator(double Double) => new UnionJsonGenerator { Double = Double };
+        public static implicit operator UnionJsonGenerator(JsonGenerator JsonGenerator) => new UnionJsonGenerator { JsonGenerator = JsonGenerator };
+    }
+
+    public partial struct UnionJsonNode
+    {
+        public double? Double;
+        public JsonNode? JsonNode;
+
+        public static implicit operator UnionJsonNode(double Double) => new UnionJsonNode { Double = Double };
+        public static implicit operator UnionJsonNode(JsonNode JsonNode) => new UnionJsonNode { JsonNode = JsonNode };
+    }
+
+    public partial struct UnionJsonNull
+    {
+        public double? Double;
+        public JsonNull? JsonNull;
+
+        public static implicit operator UnionJsonNull(double Double) => new UnionJsonNull { Double = Double };
+        public static implicit operator UnionJsonNull(JsonNull JsonNull) => new UnionJsonNull { JsonNull = JsonNull };
+    }
+
+    public partial struct UnionJsonParser
+    {
+        public double? Double;
+        public JsonParser? JsonParser;
+
+        public static implicit operator UnionJsonParser(double Double) => new UnionJsonParser { Double = Double };
+        public static implicit operator UnionJsonParser(JsonParser JsonParser) => new UnionJsonParser { JsonParser = JsonParser };
+    }
+
+    public partial struct UnionJsonReader
+    {
+        public double? Double;
+        public JsonReader? JsonReader;
+
+        public static implicit operator UnionJsonReader(double Double) => new UnionJsonReader { Double = Double };
+        public static implicit operator UnionJsonReader(JsonReader JsonReader) => new UnionJsonReader { JsonReader = JsonReader };
+    }
+
     public partial struct UnionJsonSerializer
     {
         public double? Double;
@@ -3414,6 +3940,15 @@ namespace QuickType
         public static implicit operator UnionJsonToken(JsonTokenClass JsonTokenClass) => new UnionJsonToken { JsonTokenClass = JsonTokenClass };
     }
 
+    public partial struct UnionJsonTokenType
+    {
+        public double? Double;
+        public JsonTokenTypeClass? JsonTokenTypeClass;
+
+        public static implicit operator UnionJsonTokenType(double Double) => new UnionJsonTokenType { Double = Double };
+        public static implicit operator UnionJsonTokenType(JsonTokenTypeClass JsonTokenTypeClass) => new UnionJsonTokenType { JsonTokenTypeClass = JsonTokenTypeClass };
+    }
+
     public partial struct UnionJsonWriter
     {
         public double? Double;
@@ -3585,6 +4120,15 @@ namespace QuickType
         public static implicit operator UnionNo(No No) => new UnionNo { No = No };
     }
 
+    public partial struct UnionNoSuchMethod
+    {
+        public double? Double;
+        public NoSuchMethod? NoSuchMethod;
+
+        public static implicit operator UnionNoSuchMethod(double Double) => new UnionNoSuchMethod { Double = Double };
+        public static implicit operator UnionNoSuchMethod(NoSuchMethod NoSuchMethod) => new UnionNoSuchMethod { NoSuchMethod = NoSuchMethod };
+    }
+
     public partial struct UnionNoexcept
     {
         public double? Double;
@@ -3648,6 +4192,15 @@ namespace QuickType
         public static implicit operator UnionNotEq(NotEq NotEq) => new UnionNotEq { NotEq = NotEq };
     }
 
+    public partial struct UnionNsError
+    {
+        public double? Double;
+        public NsError? NsError;
+
+        public static implicit operator UnionNsError(double Double) => new UnionNsError { Double = Double };
+        public static implicit operator UnionNsError(NsError NsError) => new UnionNsError { NsError = NsError };
+    }
+
     public partial struct UnionNsString
     {
         public double? Double;
@@ -3693,6 +4246,15 @@ namespace QuickType
         public static implicit operator UnionObject(Object Object) => new UnionObject { Object = Object };
     }
 
+    public partial struct UnionObjectMapper
+    {
+        public double? Double;
+        public ObjectMapper? ObjectMapper;
+
+        public static implicit operator UnionObjectMapper(double Double) => new UnionObjectMapper { Double = Double };
+        public static implicit operator UnionObjectMapper(ObjectMapper ObjectMapper) => new UnionObjectMapper { ObjectMapper = ObjectMapper };
+    }
+
     public partial struct UnionOf
     {
         public double? Double;
@@ -3846,6 +4408,15 @@ namespace QuickType
         public static implicit operator UnionPrint(Print Print) => new UnionPrint { Print = Print };
     }
 
+    public partial struct UnionPrintMembers
+    {
+        public double? Double;
+        public PrintMembers? PrintMembers;
+
+        public static implicit operator UnionPrintMembers(double Double) => new UnionPrintMembers { Double = Double };
+        public static implicit operator UnionPrintMembers(PrintMembers PrintMembers) => new UnionPrintMembers { PrintMembers = PrintMembers };
+    }
+
     public partial struct UnionPrintf
     {
         public double? Double;
@@ -3945,6 +4516,15 @@ namespace QuickType
         public static implicit operator UnionRef(Ref Ref) => new UnionRef { Ref = Ref };
     }
 
+    public partial struct UnionRegExp
+    {
+        public double? Double;
+        public RegExp? RegExp;
+
+        public static implicit operator UnionRegExp(double Double) => new UnionRegExp { Double = Double };
+        public static implicit operator UnionRegExp(RegExp RegExp) => new UnionRegExp { RegExp = RegExp };
+    }
+
     public partial struct UnionRegister
     {
         public double? Double;
@@ -4035,6 +4615,24 @@ namespace QuickType
         public static implicit operator UnionRight(Right Right) => new UnionRight { Right = Right };
     }
 
+    public partial struct UnionRuntimeType
+    {
+        public double? Double;
+        public RuntimeType? RuntimeType;
+
+        public static implicit operator UnionRuntimeType(double Double) => new UnionRuntimeType { Double = Double };
+        public static implicit operator UnionRuntimeType(RuntimeType RuntimeType) => new UnionRuntimeType { RuntimeType = RuntimeType };
+    }
+
+    public partial struct UnionS
+    {
+        public double? Double;
+        public S? S;
+
+        public static implicit operator UnionS(double Double) => new UnionS { Double = Double };
+        public static implicit operator UnionS(S S) => new UnionS { S = S };
+    }
+
     public partial struct UnionSbyte
     {
         public double? Double;
@@ -4089,6 +4687,15 @@ namespace QuickType
         public static implicit operator UnionSerialize(SerializeClass SerializeClass) => new UnionSerialize { SerializeClass = SerializeClass };
     }
 
+    public partial struct UnionSerializerProvider
+    {
+        public double? Double;
+        public SerializerProvider? SerializerProvider;
+
+        public static implicit operator UnionSerializerProvider(double Double) => new UnionSerializerProvider { Double = Double };
+        public static implicit operator UnionSerializerProvider(SerializerProvider SerializerProvider) => new UnionSerializerProvider { SerializerProvider = SerializerProvider };
+    }
+
     public partial struct UnionSet
     {
         public double? Double;
@@ -4116,6 +4723,15 @@ namespace QuickType
         public static implicit operator UnionSigned(Signed Signed) => new UnionSigned { Signed = Signed };
     }
 
+    public partial struct UnionSimpleModule
+    {
+        public double? Double;
+        public SimpleModule? SimpleModule;
+
+        public static implicit operator UnionSimpleModule(double Double) => new UnionSimpleModule { Double = Double };
+        public static implicit operator UnionSimpleModule(SimpleModule SimpleModule) => new UnionSimpleModule { SimpleModule = SimpleModule };
+    }
+
     public partial struct UnionSizeof
     {
         public double? Double;
@@ -4134,6 +4750,15 @@ namespace QuickType
         public static implicit operator UnionStackalloc(Stackalloc Stackalloc) => new UnionStackalloc { Stackalloc = Stackalloc };
     }
 
+    public partial struct UnionStandards
+    {
+        public double? Double;
+        public Standards? Standards;
+
+        public static implicit operator UnionStandards(double Double) => new UnionStandards { Double = Double };
+        public static implicit operator UnionStandards(Standards Standards) => new UnionStandards { Standards = Standards };
+    }
+
     public partial struct UnionStatic
     {
         public double? Double;
@@ -4161,6 +4786,24 @@ namespace QuickType
         public static implicit operator UnionStaticCast(StaticCast StaticCast) => new UnionStaticCast { StaticCast = StaticCast };
     }
 
+    public partial struct UnionStdDeserializer
+    {
+        public double? Double;
+        public StdDeserializer? StdDeserializer;
+
+        public static implicit operator UnionStdDeserializer(double Double) => new UnionStdDeserializer { Double = Double };
+        public static implicit operator UnionStdDeserializer(StdDeserializer StdDeserializer) => new UnionStdDeserializer { StdDeserializer = StdDeserializer };
+    }
+
+    public partial struct UnionStdSerializer
+    {
+        public double? Double;
+        public StdSerializer? StdSerializer;
+
+        public static implicit operator UnionStdSerializer(double Double) => new UnionStdSerializer { Double = Double };
+        public static implicit operator UnionStdSerializer(StdSerializer StdSerializer) => new UnionStdSerializer { StdSerializer = StdSerializer };
+    }
+
     public partial struct UnionStrictfp
     {
         public double? Double;
@@ -4296,6 +4939,24 @@ namespace QuickType
         public static implicit operator UnionThrows(Throws Throws) => new UnionThrows { Throws = Throws };
     }
 
+    public partial struct UnionTimeOnly
+    {
+        public double? Double;
+        public TimeOnlyClass? TimeOnlyClass;
+
+        public static implicit operator UnionTimeOnly(double Double) => new UnionTimeOnly { Double = Double };
+        public static implicit operator UnionTimeOnly(TimeOnlyClass TimeOnlyClass) => new UnionTimeOnly { TimeOnlyClass = TimeOnlyClass };
+    }
+
+    public partial struct UnionTimeOnlyConverter
+    {
+        public double? Double;
+        public TimeOnlyConverterClass? TimeOnlyConverterClass;
+
+        public static implicit operator UnionTimeOnlyConverter(double Double) => new UnionTimeOnlyConverter { Double = Double };
+        public static implicit operator UnionTimeOnlyConverter(TimeOnlyConverterClass TimeOnlyConverterClass) => new UnionTimeOnlyConverter { TimeOnlyConverterClass = TimeOnlyConverterClass };
+    }
+
     public partial struct UnionAnyUnion
     {
         public AnyClass? AnyClass;
@@ -4395,6 +5056,15 @@ namespace QuickType
         public static implicit operator UnionToJson(ToJson ToJson) => new UnionToJson { ToJson = ToJson };
     }
 
+    public partial struct UnionToString
+    {
+        public double? Double;
+        public ToString? ToString;
+
+        public static implicit operator UnionToString(double Double) => new UnionToString { Double = Double };
+        public static implicit operator UnionToString(ToString ToString) => new UnionToString { ToString = ToString };
+    }
+
     public partial struct UnionTopLevel
     {
         public double? Double;
@@ -4593,6 +5263,33 @@ namespace QuickType
         public static implicit operator UnionUsing(Using Using) => new UnionUsing { Using = Using };
     }
 
+    public partial struct UnionUtf8JsonReader
+    {
+        public double? Double;
+        public Utf8JsonReaderClass? Utf8JsonReaderClass;
+
+        public static implicit operator UnionUtf8JsonReader(double Double) => new UnionUtf8JsonReader { Double = Double };
+        public static implicit operator UnionUtf8JsonReader(Utf8JsonReaderClass Utf8JsonReaderClass) => new UnionUtf8JsonReader { Utf8JsonReaderClass = Utf8JsonReaderClass };
+    }
+
+    public partial struct UnionUtf8JsonWriter
+    {
+        public double? Double;
+        public Utf8JsonWriterClass? Utf8JsonWriterClass;
+
+        public static implicit operator UnionUtf8JsonWriter(double Double) => new UnionUtf8JsonWriter { Double = Double };
+        public static implicit operator UnionUtf8JsonWriter(Utf8JsonWriterClass Utf8JsonWriterClass) => new UnionUtf8JsonWriter { Utf8JsonWriterClass = Utf8JsonWriterClass };
+    }
+
+    public partial struct UnionUuid
+    {
+        public double? Double;
+        public Uuid? Uuid;
+
+        public static implicit operator UnionUuid(double Double) => new UnionUuid { Double = Double };
+        public static implicit operator UnionUuid(Uuid Uuid) => new UnionUuid { Uuid = Uuid };
+    }
+
     public partial struct UnionVar
     {
         public double? Double;
@@ -4738,17 +5435,50 @@ namespace QuickType
                 UnionAnyConverter.Singleton,
                 UnionBoolConverter.Singleton,
                 UnionClassConverter.Singleton,
+                UnionCultureInfoConverter.Singleton,
+                UnionDateFormatterConverter.Singleton,
+                PurpleUnionDateOnlyConverter.Singleton,
+                UnionDateOnlyConverterConverter.Singleton,
+                UnionDateTimeConverter.Singleton,
+                UnionDateTimeStylesConverter.Singleton,
+                UnionEnumValuesConverter.Singleton,
                 UnionFalseConverter.Singleton,
+                UnionFormatExceptionConverter.Singleton,
                 UnionImpConverter.Singleton,
+                UnionIsoDateTimeOffsetConverterConverter.Singleton,
+                UnionJsonAnyConverter.Singleton,
+                UnionJsonCodingKeyConverter.Singleton,
+                UnionJsonDecoderConverter.Singleton,
+                UnionJsonEncoderConverter.Singleton,
+                UnionJsonNullConverter.Singleton,
+                UnionJsonExceptionConverter.Singleton,
+                UnionJsonGeneratorConverter.Singleton,
+                UnionJsonNodeConverter.Singleton,
+                UnionJsonParserConverter.Singleton,
+                UnionJsonReaderConverter.Singleton,
+                UnionJsonTokenTypeConverter.Singleton,
                 UnionNoConverter.Singleton,
+                UnionNsErrorConverter.Singleton,
                 UnionNsStringConverter.Singleton,
                 UnionNullConverter.Singleton,
                 UnionNoneConverter.Singleton,
+                UnionObjectMapperConverter.Singleton,
                 UnionProtocolConverter.Singleton,
+                UnionRegExpConverter.Singleton,
                 UnionSelConverter.Singleton,
                 UnionSelfConverter.Singleton,
+                UnionSerializerProviderConverter.Singleton,
+                UnionSimpleModuleConverter.Singleton,
+                UnionStandardsConverter.Singleton,
+                UnionStdDeserializerConverter.Singleton,
+                UnionStdSerializerConverter.Singleton,
+                PurpleUnionTimeOnlyConverter.Singleton,
+                UnionTimeOnlyConverterConverter.Singleton,
                 UnionTrueConverter.Singleton,
                 UnionTypeConverter.Singleton,
+                UnionUuidConverter.Singleton,
+                UnionUtf8JsonReaderConverter.Singleton,
+                UnionUtf8JsonWriterConverter.Singleton,
                 UnionYesConverter.Singleton,
                 UnionUnionConverter.Singleton,
                 UnionBoolUnionConverter.Singleton,
@@ -4790,6 +5520,7 @@ namespace QuickType
                 UnionChar32TConverter.Singleton,
                 UnionCheckedConverter.Singleton,
                 UnionClassUnionConverter.Singleton,
+                UnionCloneConverter.Singleton,
                 UnionCoAwaitConverter.Singleton,
                 UnionCoReturnConverter.Singleton,
                 UnionCoYieldConverter.Singleton,
@@ -4829,6 +5560,7 @@ namespace QuickType
                 UnionElseConverter.Singleton,
                 UnionEncodeQuickTypeConverter.Singleton,
                 UnionEnumConverter.Singleton,
+                UnionEqualityContractConverter.Singleton,
                 UnionEventConverter.Singleton,
                 UnionExceptConverter.Singleton,
                 UnionExceptionConverter.Singleton,
@@ -4858,6 +5590,7 @@ namespace QuickType
                 UnionGotoConverter.Singleton,
                 UnionGuardConverter.Singleton,
                 UnionHasOwnPropertyConverter.Singleton,
+                UnionHashCodeConverter.Singleton,
                 UnionIdConverter.Singleton,
                 UnionIfConverter.Singleton,
                 UnionImplementsConverter.Singleton,
@@ -4900,6 +5633,7 @@ namespace QuickType
                 UnionNewConverter.Singleton,
                 UnionNewtonsoftConverter.Singleton,
                 UnionNilConverter.Singleton,
+                UnionNoSuchMethodConverter.Singleton,
                 UnionNoexceptConverter.Singleton,
                 UnionNonatomicConverter.Singleton,
                 UnionNoneUnionConverter.Singleton,
@@ -4928,6 +5662,7 @@ namespace QuickType
                 UnionPrecedenceConverter.Singleton,
                 UnionPrefixConverter.Singleton,
                 UnionPrintConverter.Singleton,
+                UnionPrintMembersConverter.Singleton,
                 UnionPrintfConverter.Singleton,
                 UnionPrivateConverter.Singleton,
                 UnionProtectedConverter.Singleton,
@@ -4949,6 +5684,8 @@ namespace QuickType
                 UnionRethrowsConverter.Singleton,
                 UnionReturnConverter.Singleton,
                 UnionRightConverter.Singleton,
+                UnionRuntimeTypeConverter.Singleton,
+                UnionSConverter.Singleton,
                 UnionSbyteConverter.Singleton,
                 UnionSealedConverter.Singleton,
                 UnionSelectConverter.Singleton,
@@ -4977,6 +5714,7 @@ namespace QuickType
                 UnionThreadLocalConverter.Singleton,
                 UnionThrowConverter.Singleton,
                 UnionThrowsConverter.Singleton,
+                UnionToStringConverter.Singleton,
                 UnionToJsonConverter.Singleton,
                 UnionTopLevelConverter.Singleton,
                 UnionTransientConverter.Singleton,
@@ -5126,400 +5864,1588 @@ namespace QuickType
         public static readonly UnionClassConverter Singleton = new UnionClassConverter();
     }
 
-    internal class UnionFalseConverter : JsonConverter<UnionFalse>
+    internal class UnionCultureInfoConverter : JsonConverter<UnionCultureInfo>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionFalse);
+        public override bool CanConvert(Type t) => t == typeof(UnionCultureInfo);
 
-        public override UnionFalse Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionCultureInfo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionFalse { Double = doubleValue1 };
+                    return new UnionCultureInfo { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<False>(ref reader, options);
-                    return new UnionFalse { False = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<CultureInfoClass>(ref reader, options);
+                    return new UnionCultureInfo { CultureInfoClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionFalse");
+            throw new JsonException("Cannot unmarshal type UnionCultureInfo");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionFalse value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionCultureInfo value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.False != null)
+            if (value.CultureInfoClass != null)
             {
-                JsonSerializer.Serialize(writer, value.False, options);
+                JsonSerializer.Serialize(writer, value.CultureInfoClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionFalse");
+            throw new NotSupportedException("Cannot marshal type UnionCultureInfo");
         }
 
-        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+        public static readonly UnionCultureInfoConverter Singleton = new UnionCultureInfoConverter();
     }
 
-    internal class UnionImpConverter : JsonConverter<UnionImp>
+    internal class UnionDateFormatterConverter : JsonConverter<UnionDateFormatter>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionImp);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateFormatter);
 
-        public override UnionImp Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionDateFormatter Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionImp { Double = doubleValue1 };
+                    return new UnionDateFormatter { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<Imp>(ref reader, options);
-                    return new UnionImp { Imp = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<DateFormatter>(ref reader, options);
+                    return new UnionDateFormatter { DateFormatter = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionImp");
+            throw new JsonException("Cannot unmarshal type UnionDateFormatter");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionImp value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionDateFormatter value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.Imp != null)
+            if (value.DateFormatter != null)
             {
-                JsonSerializer.Serialize(writer, value.Imp, options);
+                JsonSerializer.Serialize(writer, value.DateFormatter, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionImp");
+            throw new NotSupportedException("Cannot marshal type UnionDateFormatter");
         }
 
-        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+        public static readonly UnionDateFormatterConverter Singleton = new UnionDateFormatterConverter();
     }
 
-    internal class UnionNoConverter : JsonConverter<UnionNo>
+    internal class PurpleUnionDateOnlyConverter : JsonConverter<UnionDateOnly>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNo);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnly);
 
-        public override UnionNo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionDateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionNo { Double = doubleValue1 };
+                    return new UnionDateOnly { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<No>(ref reader, options);
-                    return new UnionNo { No = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<DateOnlyClass>(ref reader, options);
+                    return new UnionDateOnly { DateOnlyClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionNo");
+            throw new JsonException("Cannot unmarshal type UnionDateOnly");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionNo value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionDateOnly value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.No != null)
+            if (value.DateOnlyClass != null)
             {
-                JsonSerializer.Serialize(writer, value.No, options);
+                JsonSerializer.Serialize(writer, value.DateOnlyClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionNo");
+            throw new NotSupportedException("Cannot marshal type UnionDateOnly");
         }
 
-        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+        public static readonly PurpleUnionDateOnlyConverter Singleton = new PurpleUnionDateOnlyConverter();
     }
 
-    internal class UnionNsStringConverter : JsonConverter<UnionNsString>
+    internal class UnionDateOnlyConverterConverter : JsonConverter<UnionDateOnlyConverter>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNsString);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnlyConverter);
 
-        public override UnionNsString Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionDateOnlyConverter Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionNsString { Double = doubleValue1 };
+                    return new UnionDateOnlyConverter { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<NsString>(ref reader, options);
-                    return new UnionNsString { NsString = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<DateOnlyConverterClass>(ref reader, options);
+                    return new UnionDateOnlyConverter { DateOnlyConverterClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionNsString");
+            throw new JsonException("Cannot unmarshal type UnionDateOnlyConverter");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionNsString value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionDateOnlyConverter value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.NsString != null)
+            if (value.DateOnlyConverterClass != null)
             {
-                JsonSerializer.Serialize(writer, value.NsString, options);
+                JsonSerializer.Serialize(writer, value.DateOnlyConverterClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionNsString");
+            throw new NotSupportedException("Cannot marshal type UnionDateOnlyConverter");
         }
 
-        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+        public static readonly UnionDateOnlyConverterConverter Singleton = new UnionDateOnlyConverterConverter();
     }
 
-    internal class UnionNullConverter : JsonConverter<UnionNull>
+    internal class UnionDateTimeConverter : JsonConverter<UnionDateTime>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNull);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTime);
 
-        public override UnionNull Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionDateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionNull { Double = doubleValue1 };
+                    return new UnionDateTime { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<Null>(ref reader, options);
-                    return new UnionNull { Null = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<DateTime>(ref reader, options);
+                    return new UnionDateTime { DateTime = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionNull");
+            throw new JsonException("Cannot unmarshal type UnionDateTime");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionNull value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionDateTime value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.Null != null)
+            if (value.DateTime != null)
             {
-                JsonSerializer.Serialize(writer, value.Null, options);
+                JsonSerializer.Serialize(writer, value.DateTime, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionNull");
+            throw new NotSupportedException("Cannot marshal type UnionDateTime");
         }
 
-        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+        public static readonly UnionDateTimeConverter Singleton = new UnionDateTimeConverter();
     }
 
-    internal class UnionNoneConverter : JsonConverter<UnionNone>
+    internal class UnionDateTimeStylesConverter : JsonConverter<UnionDateTimeStyles>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNone);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTimeStyles);
 
-        public override UnionNone Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionDateTimeStyles Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionNone { Double = doubleValue1 };
+                    return new UnionDateTimeStyles { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<None>(ref reader, options);
-                    return new UnionNone { None = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<DateTimeStylesClass>(ref reader, options);
+                    return new UnionDateTimeStyles { DateTimeStylesClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionNone");
+            throw new JsonException("Cannot unmarshal type UnionDateTimeStyles");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionNone value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionDateTimeStyles value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.None != null)
+            if (value.DateTimeStylesClass != null)
             {
-                JsonSerializer.Serialize(writer, value.None, options);
+                JsonSerializer.Serialize(writer, value.DateTimeStylesClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionNone");
+            throw new NotSupportedException("Cannot marshal type UnionDateTimeStyles");
         }
 
-        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+        public static readonly UnionDateTimeStylesConverter Singleton = new UnionDateTimeStylesConverter();
     }
 
-    internal class UnionProtocolConverter : JsonConverter<UnionProtocol>
+    internal class UnionEnumValuesConverter : JsonConverter<UnionEnumValues>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionProtocol);
+        public override bool CanConvert(Type t) => t == typeof(UnionEnumValues);
 
-        public override UnionProtocol Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionEnumValues Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionProtocol { Double = doubleValue1 };
+                    return new UnionEnumValues { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<Protocol>(ref reader, options);
-                    return new UnionProtocol { Protocol = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<EnumValues>(ref reader, options);
+                    return new UnionEnumValues { EnumValues = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionProtocol");
+            throw new JsonException("Cannot unmarshal type UnionEnumValues");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionProtocol value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionEnumValues value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.Protocol != null)
+            if (value.EnumValues != null)
             {
-                JsonSerializer.Serialize(writer, value.Protocol, options);
+                JsonSerializer.Serialize(writer, value.EnumValues, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionEnumValues");
+        }
+
+        public static readonly UnionEnumValuesConverter Singleton = new UnionEnumValuesConverter();
+    }
+
+    internal class UnionFalseConverter : JsonConverter<UnionFalse>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionFalse);
+
+        public override UnionFalse Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionFalse { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<False>(ref reader, options);
+                    return new UnionFalse { False = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionFalse");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionFalse value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.False != null)
+            {
+                JsonSerializer.Serialize(writer, value.False, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionFalse");
+        }
+
+        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+    }
+
+    internal class UnionFormatExceptionConverter : JsonConverter<UnionFormatException>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionFormatException);
+
+        public override UnionFormatException Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionFormatException { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<FormatException>(ref reader, options);
+                    return new UnionFormatException { FormatException = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionFormatException");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionFormatException value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.FormatException != null)
+            {
+                JsonSerializer.Serialize(writer, value.FormatException, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionFormatException");
+        }
+
+        public static readonly UnionFormatExceptionConverter Singleton = new UnionFormatExceptionConverter();
+    }
+
+    internal class UnionImpConverter : JsonConverter<UnionImp>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionImp);
+
+        public override UnionImp Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionImp { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Imp>(ref reader, options);
+                    return new UnionImp { Imp = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionImp");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionImp value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Imp != null)
+            {
+                JsonSerializer.Serialize(writer, value.Imp, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionImp");
+        }
+
+        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+    }
+
+    internal class UnionIsoDateTimeOffsetConverterConverter : JsonConverter<UnionIsoDateTimeOffsetConverter>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionIsoDateTimeOffsetConverter);
+
+        public override UnionIsoDateTimeOffsetConverter Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionIsoDateTimeOffsetConverter { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<IsoDateTimeOffsetConverterClass>(ref reader, options);
+                    return new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverterClass = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionIsoDateTimeOffsetConverter value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.IsoDateTimeOffsetConverterClass != null)
+            {
+                JsonSerializer.Serialize(writer, value.IsoDateTimeOffsetConverterClass, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public static readonly UnionIsoDateTimeOffsetConverterConverter Singleton = new UnionIsoDateTimeOffsetConverterConverter();
+    }
+
+    internal class UnionJsonAnyConverter : JsonConverter<UnionJsonAny>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonAny);
+
+        public override UnionJsonAny Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonAny { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonAny>(ref reader, options);
+                    return new UnionJsonAny { JsonAny = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonAny");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonAny value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonAny != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonAny, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonAny");
+        }
+
+        public static readonly UnionJsonAnyConverter Singleton = new UnionJsonAnyConverter();
+    }
+
+    internal class UnionJsonCodingKeyConverter : JsonConverter<UnionJsonCodingKey>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonCodingKey);
+
+        public override UnionJsonCodingKey Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonCodingKey { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonCodingKey>(ref reader, options);
+                    return new UnionJsonCodingKey { JsonCodingKey = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonCodingKey");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonCodingKey value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonCodingKey != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonCodingKey, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonCodingKey");
+        }
+
+        public static readonly UnionJsonCodingKeyConverter Singleton = new UnionJsonCodingKeyConverter();
+    }
+
+    internal class UnionJsonDecoderConverter : JsonConverter<UnionJsonDecoder>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonDecoder);
+
+        public override UnionJsonDecoder Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonDecoder { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonDecoder>(ref reader, options);
+                    return new UnionJsonDecoder { JsonDecoder = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonDecoder");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonDecoder value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonDecoder != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonDecoder, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonDecoder");
+        }
+
+        public static readonly UnionJsonDecoderConverter Singleton = new UnionJsonDecoderConverter();
+    }
+
+    internal class UnionJsonEncoderConverter : JsonConverter<UnionJsonEncoder>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonEncoder);
+
+        public override UnionJsonEncoder Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonEncoder { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonEncoder>(ref reader, options);
+                    return new UnionJsonEncoder { JsonEncoder = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonEncoder");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonEncoder value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonEncoder != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonEncoder, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonEncoder");
+        }
+
+        public static readonly UnionJsonEncoderConverter Singleton = new UnionJsonEncoderConverter();
+    }
+
+    internal class UnionJsonNullConverter : JsonConverter<UnionJsonNull>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNull);
+
+        public override UnionJsonNull Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonNull { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonNull>(ref reader, options);
+                    return new UnionJsonNull { JsonNull = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonNull");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonNull value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonNull != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonNull, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonNull");
+        }
+
+        public static readonly UnionJsonNullConverter Singleton = new UnionJsonNullConverter();
+    }
+
+    internal class UnionJsonExceptionConverter : JsonConverter<UnionJsonException>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonException);
+
+        public override UnionJsonException Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonException { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonExceptionClass>(ref reader, options);
+                    return new UnionJsonException { JsonExceptionClass = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonException");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonException value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonExceptionClass != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonExceptionClass, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonException");
+        }
+
+        public static readonly UnionJsonExceptionConverter Singleton = new UnionJsonExceptionConverter();
+    }
+
+    internal class UnionJsonGeneratorConverter : JsonConverter<UnionJsonGenerator>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonGenerator);
+
+        public override UnionJsonGenerator Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonGenerator { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonGenerator>(ref reader, options);
+                    return new UnionJsonGenerator { JsonGenerator = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonGenerator");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonGenerator value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonGenerator != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonGenerator, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonGenerator");
+        }
+
+        public static readonly UnionJsonGeneratorConverter Singleton = new UnionJsonGeneratorConverter();
+    }
+
+    internal class UnionJsonNodeConverter : JsonConverter<UnionJsonNode>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNode);
+
+        public override UnionJsonNode Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonNode { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonNode>(ref reader, options);
+                    return new UnionJsonNode { JsonNode = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonNode");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonNode value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonNode != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonNode, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonNode");
+        }
+
+        public static readonly UnionJsonNodeConverter Singleton = new UnionJsonNodeConverter();
+    }
+
+    internal class UnionJsonParserConverter : JsonConverter<UnionJsonParser>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonParser);
+
+        public override UnionJsonParser Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonParser { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonParser>(ref reader, options);
+                    return new UnionJsonParser { JsonParser = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonParser");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonParser value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonParser != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonParser, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonParser");
+        }
+
+        public static readonly UnionJsonParserConverter Singleton = new UnionJsonParserConverter();
+    }
+
+    internal class UnionJsonReaderConverter : JsonConverter<UnionJsonReader>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonReader);
+
+        public override UnionJsonReader Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonReader { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonReader>(ref reader, options);
+                    return new UnionJsonReader { JsonReader = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonReader");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonReader value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonReader != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonReader, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonReader");
+        }
+
+        public static readonly UnionJsonReaderConverter Singleton = new UnionJsonReaderConverter();
+    }
+
+    internal class UnionJsonTokenTypeConverter : JsonConverter<UnionJsonTokenType>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonTokenType);
+
+        public override UnionJsonTokenType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionJsonTokenType { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<JsonTokenTypeClass>(ref reader, options);
+                    return new UnionJsonTokenType { JsonTokenTypeClass = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionJsonTokenType");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionJsonTokenType value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.JsonTokenTypeClass != null)
+            {
+                JsonSerializer.Serialize(writer, value.JsonTokenTypeClass, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionJsonTokenType");
+        }
+
+        public static readonly UnionJsonTokenTypeConverter Singleton = new UnionJsonTokenTypeConverter();
+    }
+
+    internal class UnionNoConverter : JsonConverter<UnionNo>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNo);
+
+        public override UnionNo Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNo { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<No>(ref reader, options);
+                    return new UnionNo { No = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNo");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNo value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.No != null)
+            {
+                JsonSerializer.Serialize(writer, value.No, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNo");
+        }
+
+        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+    }
+
+    internal class UnionNsErrorConverter : JsonConverter<UnionNsError>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsError);
+
+        public override UnionNsError Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNsError { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<NsError>(ref reader, options);
+                    return new UnionNsError { NsError = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNsError");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNsError value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.NsError != null)
+            {
+                JsonSerializer.Serialize(writer, value.NsError, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNsError");
+        }
+
+        public static readonly UnionNsErrorConverter Singleton = new UnionNsErrorConverter();
+    }
+
+    internal class UnionNsStringConverter : JsonConverter<UnionNsString>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsString);
+
+        public override UnionNsString Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNsString { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<NsString>(ref reader, options);
+                    return new UnionNsString { NsString = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNsString");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNsString value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.NsString != null)
+            {
+                JsonSerializer.Serialize(writer, value.NsString, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNsString");
+        }
+
+        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+    }
+
+    internal class UnionNullConverter : JsonConverter<UnionNull>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNull);
+
+        public override UnionNull Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNull { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Null>(ref reader, options);
+                    return new UnionNull { Null = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNull");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNull value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Null != null)
+            {
+                JsonSerializer.Serialize(writer, value.Null, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNull");
+        }
+
+        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+    }
+
+    internal class UnionNoneConverter : JsonConverter<UnionNone>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNone);
+
+        public override UnionNone Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNone { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<None>(ref reader, options);
+                    return new UnionNone { None = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNone");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNone value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.None != null)
+            {
+                JsonSerializer.Serialize(writer, value.None, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNone");
+        }
+
+        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+    }
+
+    internal class UnionObjectMapperConverter : JsonConverter<UnionObjectMapper>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionObjectMapper);
+
+        public override UnionObjectMapper Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionObjectMapper { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<ObjectMapper>(ref reader, options);
+                    return new UnionObjectMapper { ObjectMapper = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionObjectMapper");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionObjectMapper value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.ObjectMapper != null)
+            {
+                JsonSerializer.Serialize(writer, value.ObjectMapper, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionObjectMapper");
+        }
+
+        public static readonly UnionObjectMapperConverter Singleton = new UnionObjectMapperConverter();
+    }
+
+    internal class UnionProtocolConverter : JsonConverter<UnionProtocol>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionProtocol);
+
+        public override UnionProtocol Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionProtocol { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Protocol>(ref reader, options);
+                    return new UnionProtocol { Protocol = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionProtocol");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionProtocol value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Protocol != null)
+            {
+                JsonSerializer.Serialize(writer, value.Protocol, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionProtocol");
+        }
+
+        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+    }
+
+    internal class UnionRegExpConverter : JsonConverter<UnionRegExp>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRegExp);
+
+        public override UnionRegExp Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionRegExp { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<RegExp>(ref reader, options);
+                    return new UnionRegExp { RegExp = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionRegExp");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionRegExp value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.RegExp != null)
+            {
+                JsonSerializer.Serialize(writer, value.RegExp, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionRegExp");
+        }
+
+        public static readonly UnionRegExpConverter Singleton = new UnionRegExpConverter();
+    }
+
+    internal class UnionSelConverter : JsonConverter<UnionSel>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSel);
+
+        public override UnionSel Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionSel { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Sel>(ref reader, options);
+                    return new UnionSel { Sel = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionSel");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionSel value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Sel != null)
+            {
+                JsonSerializer.Serialize(writer, value.Sel, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionSel");
+        }
+
+        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+    }
+
+    internal class UnionSelfConverter : JsonConverter<UnionSelf>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSelf);
+
+        public override UnionSelf Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionSelf { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Self>(ref reader, options);
+                    return new UnionSelf { Self = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionSelf");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionSelf value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Self != null)
+            {
+                JsonSerializer.Serialize(writer, value.Self, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionSelf");
+        }
+
+        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+    }
+
+    internal class UnionSerializerProviderConverter : JsonConverter<UnionSerializerProvider>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSerializerProvider);
+
+        public override UnionSerializerProvider Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionSerializerProvider { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<SerializerProvider>(ref reader, options);
+                    return new UnionSerializerProvider { SerializerProvider = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionSerializerProvider");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionSerializerProvider value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.SerializerProvider != null)
+            {
+                JsonSerializer.Serialize(writer, value.SerializerProvider, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionSerializerProvider");
+        }
+
+        public static readonly UnionSerializerProviderConverter Singleton = new UnionSerializerProviderConverter();
+    }
+
+    internal class UnionSimpleModuleConverter : JsonConverter<UnionSimpleModule>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSimpleModule);
+
+        public override UnionSimpleModule Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionSimpleModule { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<SimpleModule>(ref reader, options);
+                    return new UnionSimpleModule { SimpleModule = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionSimpleModule");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionSimpleModule value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.SimpleModule != null)
+            {
+                JsonSerializer.Serialize(writer, value.SimpleModule, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionSimpleModule");
+        }
+
+        public static readonly UnionSimpleModuleConverter Singleton = new UnionSimpleModuleConverter();
+    }
+
+    internal class UnionStandardsConverter : JsonConverter<UnionStandards>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStandards);
+
+        public override UnionStandards Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionStandards { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Standards>(ref reader, options);
+                    return new UnionStandards { Standards = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionStandards");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionStandards value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Standards != null)
+            {
+                JsonSerializer.Serialize(writer, value.Standards, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionStandards");
+        }
+
+        public static readonly UnionStandardsConverter Singleton = new UnionStandardsConverter();
+    }
+
+    internal class UnionStdDeserializerConverter : JsonConverter<UnionStdDeserializer>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdDeserializer);
+
+        public override UnionStdDeserializer Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionStdDeserializer { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<StdDeserializer>(ref reader, options);
+                    return new UnionStdDeserializer { StdDeserializer = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionStdDeserializer");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionStdDeserializer value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.StdDeserializer != null)
+            {
+                JsonSerializer.Serialize(writer, value.StdDeserializer, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionStdDeserializer");
+        }
+
+        public static readonly UnionStdDeserializerConverter Singleton = new UnionStdDeserializerConverter();
+    }
+
+    internal class UnionStdSerializerConverter : JsonConverter<UnionStdSerializer>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdSerializer);
+
+        public override UnionStdSerializer Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionStdSerializer { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<StdSerializer>(ref reader, options);
+                    return new UnionStdSerializer { StdSerializer = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionStdSerializer");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionStdSerializer value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.StdSerializer != null)
+            {
+                JsonSerializer.Serialize(writer, value.StdSerializer, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionStdSerializer");
+        }
+
+        public static readonly UnionStdSerializerConverter Singleton = new UnionStdSerializerConverter();
+    }
+
+    internal class PurpleUnionTimeOnlyConverter : JsonConverter<UnionTimeOnly>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnly);
+
+        public override UnionTimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionTimeOnly { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<TimeOnlyClass>(ref reader, options);
+                    return new UnionTimeOnly { TimeOnlyClass = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionTimeOnly");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionTimeOnly value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.TimeOnlyClass != null)
+            {
+                JsonSerializer.Serialize(writer, value.TimeOnlyClass, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionTimeOnly");
+        }
+
+        public static readonly PurpleUnionTimeOnlyConverter Singleton = new PurpleUnionTimeOnlyConverter();
+    }
+
+    internal class UnionTimeOnlyConverterConverter : JsonConverter<UnionTimeOnlyConverter>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnlyConverter);
+
+        public override UnionTimeOnlyConverter Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionTimeOnlyConverter { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<TimeOnlyConverterClass>(ref reader, options);
+                    return new UnionTimeOnlyConverter { TimeOnlyConverterClass = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionTimeOnlyConverter");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionTimeOnlyConverter value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.TimeOnlyConverterClass != null)
+            {
+                JsonSerializer.Serialize(writer, value.TimeOnlyConverterClass, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionTimeOnlyConverter");
+        }
+
+        public static readonly UnionTimeOnlyConverterConverter Singleton = new UnionTimeOnlyConverterConverter();
+    }
+
+    internal class UnionTrueConverter : JsonConverter<UnionTrue>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTrue);
+
+        public override UnionTrue Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionTrue { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<True>(ref reader, options);
+                    return new UnionTrue { True = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionTrue");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionTrue value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.True != null)
+            {
+                JsonSerializer.Serialize(writer, value.True, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionProtocol");
+            throw new NotSupportedException("Cannot marshal type UnionTrue");
         }
 
-        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
     }
 
-    internal class UnionSelConverter : JsonConverter<UnionSel>
+    internal class UnionTypeConverter : JsonConverter<UnionType>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionSel);
+        public override bool CanConvert(Type t) => t == typeof(UnionType);
 
-        public override UnionSel Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionSel { Double = doubleValue1 };
+                    return new UnionType { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<Sel>(ref reader, options);
-                    return new UnionSel { Sel = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<TypeClass>(ref reader, options);
+                    return new UnionType { TypeClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionSel");
+            throw new JsonException("Cannot unmarshal type UnionType");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionSel value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionType value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.Sel != null)
+            if (value.TypeClass != null)
             {
-                JsonSerializer.Serialize(writer, value.Sel, options);
+                JsonSerializer.Serialize(writer, value.TypeClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionSel");
+            throw new NotSupportedException("Cannot marshal type UnionType");
         }
 
-        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
     }
 
-    internal class UnionSelfConverter : JsonConverter<UnionSelf>
+    internal class UnionUuidConverter : JsonConverter<UnionUuid>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionSelf);
+        public override bool CanConvert(Type t) => t == typeof(UnionUuid);
 
-        public override UnionSelf Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionUuid Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionSelf { Double = doubleValue1 };
+                    return new UnionUuid { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<Self>(ref reader, options);
-                    return new UnionSelf { Self = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<Uuid>(ref reader, options);
+                    return new UnionUuid { Uuid = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionSelf");
+            throw new JsonException("Cannot unmarshal type UnionUuid");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionSelf value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionUuid value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.Self != null)
+            if (value.Uuid != null)
             {
-                JsonSerializer.Serialize(writer, value.Self, options);
+                JsonSerializer.Serialize(writer, value.Uuid, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionSelf");
+            throw new NotSupportedException("Cannot marshal type UnionUuid");
         }
 
-        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+        public static readonly UnionUuidConverter Singleton = new UnionUuidConverter();
     }
 
-    internal class UnionTrueConverter : JsonConverter<UnionTrue>
+    internal class UnionUtf8JsonReaderConverter : JsonConverter<UnionUtf8JsonReader>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionTrue);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonReader);
 
-        public override UnionTrue Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionUtf8JsonReader Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionTrue { Double = doubleValue1 };
+                    return new UnionUtf8JsonReader { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<True>(ref reader, options);
-                    return new UnionTrue { True = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<Utf8JsonReaderClass>(ref reader, options);
+                    return new UnionUtf8JsonReader { Utf8JsonReaderClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionTrue");
+            throw new JsonException("Cannot unmarshal type UnionUtf8JsonReader");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionTrue value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionUtf8JsonReader value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.True != null)
+            if (value.Utf8JsonReaderClass != null)
             {
-                JsonSerializer.Serialize(writer, value.True, options);
+                JsonSerializer.Serialize(writer, value.Utf8JsonReaderClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionTrue");
+            throw new NotSupportedException("Cannot marshal type UnionUtf8JsonReader");
         }
 
-        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
+        public static readonly UnionUtf8JsonReaderConverter Singleton = new UnionUtf8JsonReaderConverter();
     }
 
-    internal class UnionTypeConverter : JsonConverter<UnionType>
+    internal class UnionUtf8JsonWriterConverter : JsonConverter<UnionUtf8JsonWriter>
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionType);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonWriter);
 
-        public override UnionType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        public override UnionUtf8JsonWriter Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
         {
             switch (reader.TokenType)
             {
                 case JsonTokenType.Number:
                     var doubleValue1 = reader.GetDouble();
-                    return new UnionType { Double = doubleValue1 };
+                    return new UnionUtf8JsonWriter { Double = doubleValue1 };
                 case JsonTokenType.StartObject:
-                    var objectValue = JsonSerializer.Deserialize<TypeClass>(ref reader, options);
-                    return new UnionType { TypeClass = objectValue };
+                    var objectValue = JsonSerializer.Deserialize<Utf8JsonWriterClass>(ref reader, options);
+                    return new UnionUtf8JsonWriter { Utf8JsonWriterClass = objectValue };
             }
-            throw new JsonException("Cannot unmarshal type UnionType");
+            throw new JsonException("Cannot unmarshal type UnionUtf8JsonWriter");
         }
 
-        public override void Write(Utf8JsonWriter writer, UnionType value, JsonSerializerOptions options)
+        public override void Write(Utf8JsonWriter writer, UnionUtf8JsonWriter value, JsonSerializerOptions options)
         {
             if (value.Double != null)
             {
                 JsonSerializer.Serialize(writer, value.Double.Value, options);
                 return;
             }
-            if (value.TypeClass != null)
+            if (value.Utf8JsonWriterClass != null)
             {
-                JsonSerializer.Serialize(writer, value.TypeClass, options);
+                JsonSerializer.Serialize(writer, value.Utf8JsonWriterClass, options);
                 return;
             }
-            throw new NotSupportedException("Cannot marshal type UnionType");
+            throw new NotSupportedException("Cannot marshal type UnionUtf8JsonWriter");
         }
 
-        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
+        public static readonly UnionUtf8JsonWriterConverter Singleton = new UnionUtf8JsonWriterConverter();
     }
 
     internal class UnionYesConverter : JsonConverter<UnionYes>
@@ -6998,6 +8924,42 @@ namespace QuickType
         public static readonly UnionClassUnionConverter Singleton = new UnionClassUnionConverter();
     }
 
+    internal class UnionCloneConverter : JsonConverter<UnionClone>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionClone);
+
+        public override UnionClone Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionClone { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<Clone>(ref reader, options);
+                    return new UnionClone { Clone = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionClone");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionClone value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.Clone != null)
+            {
+                JsonSerializer.Serialize(writer, value.Clone, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionClone");
+        }
+
+        public static readonly UnionCloneConverter Singleton = new UnionCloneConverter();
+    }
+
     internal class UnionCoAwaitConverter : JsonConverter<UnionCoAwait>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionCoAwait);
@@ -8402,6 +10364,42 @@ namespace QuickType
         public static readonly UnionEnumConverter Singleton = new UnionEnumConverter();
     }
 
+    internal class UnionEqualityContractConverter : JsonConverter<UnionEqualityContract>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionEqualityContract);
+
+        public override UnionEqualityContract Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionEqualityContract { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<EqualityContract>(ref reader, options);
+                    return new UnionEqualityContract { EqualityContract = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionEqualityContract");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionEqualityContract value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.EqualityContract != null)
+            {
+                JsonSerializer.Serialize(writer, value.EqualityContract, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionEqualityContract");
+        }
+
+        public static readonly UnionEqualityContractConverter Singleton = new UnionEqualityContractConverter();
+    }
+
     internal class UnionEventConverter : JsonConverter<UnionEvent>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionEvent);
@@ -9446,6 +11444,42 @@ namespace QuickType
         public static readonly UnionHasOwnPropertyConverter Singleton = new UnionHasOwnPropertyConverter();
     }
 
+    internal class UnionHashCodeConverter : JsonConverter<UnionHashCode>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionHashCode);
+
+        public override UnionHashCode Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionHashCode { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<HashCode>(ref reader, options);
+                    return new UnionHashCode { HashCode = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionHashCode");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionHashCode value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.HashCode != null)
+            {
+                JsonSerializer.Serialize(writer, value.HashCode, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionHashCode");
+        }
+
+        public static readonly UnionHashCodeConverter Singleton = new UnionHashCodeConverter();
+    }
+
     internal class UnionIdConverter : JsonConverter<UnionId>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionId);
@@ -10958,6 +12992,42 @@ namespace QuickType
         public static readonly UnionNilConverter Singleton = new UnionNilConverter();
     }
 
+    internal class UnionNoSuchMethodConverter : JsonConverter<UnionNoSuchMethod>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNoSuchMethod);
+
+        public override UnionNoSuchMethod Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionNoSuchMethod { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<NoSuchMethod>(ref reader, options);
+                    return new UnionNoSuchMethod { NoSuchMethod = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionNoSuchMethod");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionNoSuchMethod value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.NoSuchMethod != null)
+            {
+                JsonSerializer.Serialize(writer, value.NoSuchMethod, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionNoSuchMethod");
+        }
+
+        public static readonly UnionNoSuchMethodConverter Singleton = new UnionNoSuchMethodConverter();
+    }
+
     internal class UnionNoexceptConverter : JsonConverter<UnionNoexcept>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionNoexcept);
@@ -11966,6 +14036,42 @@ namespace QuickType
         public static readonly UnionPrintConverter Singleton = new UnionPrintConverter();
     }
 
+    internal class UnionPrintMembersConverter : JsonConverter<UnionPrintMembers>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionPrintMembers);
+
+        public override UnionPrintMembers Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionPrintMembers { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<PrintMembers>(ref reader, options);
+                    return new UnionPrintMembers { PrintMembers = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionPrintMembers");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionPrintMembers value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.PrintMembers != null)
+            {
+                JsonSerializer.Serialize(writer, value.PrintMembers, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionPrintMembers");
+        }
+
+        public static readonly UnionPrintMembersConverter Singleton = new UnionPrintMembersConverter();
+    }
+
     internal class UnionPrintfConverter : JsonConverter<UnionPrintf>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionPrintf);
@@ -12722,6 +14828,78 @@ namespace QuickType
         public static readonly UnionRightConverter Singleton = new UnionRightConverter();
     }
 
+    internal class UnionRuntimeTypeConverter : JsonConverter<UnionRuntimeType>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRuntimeType);
+
+        public override UnionRuntimeType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionRuntimeType { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<RuntimeType>(ref reader, options);
+                    return new UnionRuntimeType { RuntimeType = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionRuntimeType");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionRuntimeType value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.RuntimeType != null)
+            {
+                JsonSerializer.Serialize(writer, value.RuntimeType, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionRuntimeType");
+        }
+
+        public static readonly UnionRuntimeTypeConverter Singleton = new UnionRuntimeTypeConverter();
+    }
+
+    internal class UnionSConverter : JsonConverter<UnionS>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionS);
+
+        public override UnionS Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionS { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<S>(ref reader, options);
+                    return new UnionS { S = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionS");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionS value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.S != null)
+            {
+                JsonSerializer.Serialize(writer, value.S, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionS");
+        }
+
+        public static readonly UnionSConverter Singleton = new UnionSConverter();
+    }
+
     internal class UnionSbyteConverter : JsonConverter<UnionSbyte>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionSbyte);
@@ -13730,6 +15908,42 @@ namespace QuickType
         public static readonly UnionThrowsConverter Singleton = new UnionThrowsConverter();
     }
 
+    internal class UnionToStringConverter : JsonConverter<UnionToString>
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionToString);
+
+        public override UnionToString Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonTokenType.Number:
+                    var doubleValue1 = reader.GetDouble();
+                    return new UnionToString { Double = doubleValue1 };
+                case JsonTokenType.StartObject:
+                    var objectValue = JsonSerializer.Deserialize<ToString>(ref reader, options);
+                    return new UnionToString { ToString = objectValue };
+            }
+            throw new JsonException("Cannot unmarshal type UnionToString");
+        }
+
+        public override void Write(Utf8JsonWriter writer, UnionToString value, JsonSerializerOptions options)
+        {
+            if (value.Double != null)
+            {
+                JsonSerializer.Serialize(writer, value.Double.Value, options);
+                return;
+            }
+            if (value.ToString != null)
+            {
+                JsonSerializer.Serialize(writer, value.ToString, options);
+                return;
+            }
+            throw new NotSupportedException("Cannot marshal type UnionToString");
+        }
+
+        public static readonly UnionToStringConverter Singleton = new UnionToStringConverter();
+    }
+
     internal class UnionToJsonConverter : JsonConverter<UnionToJson>
     {
         public override bool CanConvert(Type t) => t == typeof(UnionToJson);
diff --git a/base/schema-csharp-records/test/inputs/schema/keyword-enum.schema/default/QuickType.cs b/head/schema-csharp-records/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
index 4500f45..f685b74 100644
--- a/base/schema-csharp-records/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
+++ b/head/schema-csharp-records/test/inputs/schema/keyword-enum.schema/default/QuickType.cs
@@ -29,7 +29,7 @@ namespace QuickType
         public Enum? Enum { get; set; }
     }
 
-    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, Date, DateParseHandling, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, Not, NotEq, NsString, Null, EnumNull, Nullptr, Number, Object, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, Set, Short, Signed, Sizeof, Stackalloc, Static, StaticAssert, StaticCast, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, ToJson, TopLevel, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
+    public enum Enum { Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, Asm, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBool, PurpleBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, Clone, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, CultureInfo, Date, DateParseHandling, DateFormatter, DateOnly, DateOnlyConverter, DateTime, DateTimeStyles, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, EnumValues, EqualityContract, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, FormatException, Friend, From, FromJson, Func, Function, Get, Global, Go, Goto, Guard, HashCode, HasOwnProperty, Id, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, IsoDateTimeOffsetConverter, Iterable, Is, Jdec, Jenc, Jpipe, Json, JsonConverter, JsonSerializer, JsonToken, JsonWriter, JsonAny, JsonCodingKey, JsonDecoder, JsonEncoder, JsonException, JsonGenerator, JsonNode, JsonNull, JsonParser, JsonReader, JsonTokenType, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, NoSuchMethod, Not, NotEq, NsError, NsString, Null, EnumNull, Nullptr, Number, Object, ObjectMapper, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, PrintMembers, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, RegExp, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, RuntimeType, S, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, SerializerProvider, Set, Short, Signed, SimpleModule, Sizeof, Stackalloc, Standards, Static, StaticAssert, StaticCast, StdDeserializer, StdSerializer, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, TimeOnly, TimeOnlyConverter, ToJson, TopLevel, ToString, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Utf8JsonReader, Utf8JsonWriter, Uuid, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy };
 
     public partial record TopLevel
     {
@@ -151,6 +151,8 @@ namespace QuickType
                     return Enum.Class;
                 case "Class":
                     return Enum.EnumClass;
+                case "clone":
+                    return Enum.Clone;
                 case "co_await":
                     return Enum.CoAwait;
                 case "co_return":
@@ -179,10 +181,22 @@ namespace QuickType
                     return Enum.Convert;
                 case "converter":
                     return Enum.Converter;
+                case "CultureInfo":
+                    return Enum.CultureInfo;
                 case "date":
                     return Enum.Date;
                 case "date_parse_handling":
                     return Enum.DateParseHandling;
+                case "DateFormatter":
+                    return Enum.DateFormatter;
+                case "DateOnly":
+                    return Enum.DateOnly;
+                case "DateOnlyConverter":
+                    return Enum.DateOnlyConverter;
+                case "DateTime":
+                    return Enum.DateTime;
+                case "DateTimeStyles":
+                    return Enum.DateTimeStyles;
                 case "debugger":
                     return Enum.Debugger;
                 case "decimal":
@@ -229,6 +243,10 @@ namespace QuickType
                     return Enum.EncodeQuickType;
                 case "enum":
                     return Enum.Enum;
+                case "EnumValues":
+                    return Enum.EnumValues;
+                case "equalityContract":
+                    return Enum.EqualityContract;
                 case "event":
                     return Enum.Event;
                 case "except":
@@ -267,6 +285,8 @@ namespace QuickType
                     return Enum.For;
                 case "foreach":
                     return Enum.Foreach;
+                case "FormatException":
+                    return Enum.FormatException;
                 case "friend":
                     return Enum.Friend;
                 case "from":
@@ -287,6 +307,8 @@ namespace QuickType
                     return Enum.Goto;
                 case "guard":
                     return Enum.Guard;
+                case "hashCode":
+                    return Enum.HashCode;
                 case "hasOwnProperty":
                     return Enum.HasOwnProperty;
                 case "id":
@@ -321,6 +343,8 @@ namespace QuickType
                     return Enum.Interface;
                 case "internal":
                     return Enum.Internal;
+                case "IsoDateTimeOffsetConverter":
+                    return Enum.IsoDateTimeOffsetConverter;
                 case "iterable":
                     return Enum.Iterable;
                 case "is":
@@ -341,6 +365,28 @@ namespace QuickType
                     return Enum.JsonToken;
                 case "json_writer":
                     return Enum.JsonWriter;
+                case "JSONAny":
+                    return Enum.JsonAny;
+                case "JSONCodingKey":
+                    return Enum.JsonCodingKey;
+                case "JSONDecoder":
+                    return Enum.JsonDecoder;
+                case "JSONEncoder":
+                    return Enum.JsonEncoder;
+                case "JsonException":
+                    return Enum.JsonException;
+                case "JsonGenerator":
+                    return Enum.JsonGenerator;
+                case "JsonNode":
+                    return Enum.JsonNode;
+                case "JSONNull":
+                    return Enum.JsonNull;
+                case "JsonParser":
+                    return Enum.JsonParser;
+                case "JsonReader":
+                    return Enum.JsonReader;
+                case "JsonTokenType":
+                    return Enum.JsonTokenType;
                 case "lambda":
                     return Enum.Lambda;
                 case "lazy":
@@ -389,10 +435,14 @@ namespace QuickType
                     return Enum.Nonlocal;
                 case "nonmutating":
                     return Enum.Nonmutating;
+                case "noSuchMethod":
+                    return Enum.NoSuchMethod;
                 case "not":
                     return Enum.Not;
                 case "not_eq":
                     return Enum.NotEq;
+                case "NSError":
+                    return Enum.NsError;
                 case "NSString":
                     return Enum.NsString;
                 case "NULL":
@@ -405,6 +455,8 @@ namespace QuickType
                     return Enum.Number;
                 case "object":
                     return Enum.Object;
+                case "ObjectMapper":
+                    return Enum.ObjectMapper;
                 case "of":
                     return Enum.Of;
                 case "oneway":
@@ -441,6 +493,8 @@ namespace QuickType
                     return Enum.Print;
                 case "printf":
                     return Enum.Printf;
+                case "printMembers":
+                    return Enum.PrintMembers;
                 case "private":
                     return Enum.Private;
                 case "protected":
@@ -461,6 +515,8 @@ namespace QuickType
                     return Enum.Readonly;
                 case "ref":
                     return Enum.Ref;
+                case "RegExp":
+                    return Enum.RegExp;
                 case "register":
                     return Enum.Register;
                 case "reinterpret_cast":
@@ -483,6 +539,10 @@ namespace QuickType
                     return Enum.Return;
                 case "right":
                     return Enum.Right;
+                case "runtimeType":
+                    return Enum.RuntimeType;
+                case "s":
+                    return Enum.S;
                 case "sbyte":
                     return Enum.Sbyte;
                 case "sealed":
@@ -497,22 +557,32 @@ namespace QuickType
                     return Enum.EnumSelf;
                 case "serialize":
                     return Enum.Serialize;
+                case "SerializerProvider":
+                    return Enum.SerializerProvider;
                 case "set":
                     return Enum.Set;
                 case "short":
                     return Enum.Short;
                 case "signed":
                     return Enum.Signed;
+                case "SimpleModule":
+                    return Enum.SimpleModule;
                 case "sizeof":
                     return Enum.Sizeof;
                 case "stackalloc":
                     return Enum.Stackalloc;
+                case "Standards":
+                    return Enum.Standards;
                 case "static":
                     return Enum.Static;
                 case "static_assert":
                     return Enum.StaticAssert;
                 case "static_cast":
                     return Enum.StaticCast;
+                case "StdDeserializer":
+                    return Enum.StdDeserializer;
+                case "StdSerializer":
+                    return Enum.StdSerializer;
                 case "strictfp":
                     return Enum.Strictfp;
                 case "string":
@@ -543,10 +613,16 @@ namespace QuickType
                     return Enum.Throw;
                 case "throws":
                     return Enum.Throws;
+                case "TimeOnly":
+                    return Enum.TimeOnly;
+                case "TimeOnlyConverter":
+                    return Enum.TimeOnlyConverter;
                 case "to_json":
                     return Enum.ToJson;
                 case "top_level":
                     return Enum.TopLevel;
+                case "toString":
+                    return Enum.ToString;
                 case "transient":
                     return Enum.Transient;
                 case "True":
@@ -589,6 +665,12 @@ namespace QuickType
                     return Enum.Ushort;
                 case "using":
                     return Enum.Using;
+                case "Utf8JsonReader":
+                    return Enum.Utf8JsonReader;
+                case "Utf8JsonWriter":
+                    return Enum.Utf8JsonWriter;
+                case "UUID":
+                    return Enum.Uuid;
                 case "var":
                     return Enum.Var;
                 case "virtual":
@@ -762,6 +844,9 @@ namespace QuickType
                 case Enum.EnumClass:
                     serializer.Serialize(writer, "Class");
                     return;
+                case Enum.Clone:
+                    serializer.Serialize(writer, "clone");
+                    return;
                 case Enum.CoAwait:
                     serializer.Serialize(writer, "co_await");
                     return;
@@ -804,12 +889,30 @@ namespace QuickType
                 case Enum.Converter:
                     serializer.Serialize(writer, "converter");
                     return;
+                case Enum.CultureInfo:
+                    serializer.Serialize(writer, "CultureInfo");
+                    return;
                 case Enum.Date:
                     serializer.Serialize(writer, "date");
                     return;
                 case Enum.DateParseHandling:
                     serializer.Serialize(writer, "date_parse_handling");
                     return;
+                case Enum.DateFormatter:
+                    serializer.Serialize(writer, "DateFormatter");
+                    return;
+                case Enum.DateOnly:
+                    serializer.Serialize(writer, "DateOnly");
+                    return;
+                case Enum.DateOnlyConverter:
+                    serializer.Serialize(writer, "DateOnlyConverter");
+                    return;
+                case Enum.DateTime:
+                    serializer.Serialize(writer, "DateTime");
+                    return;
+                case Enum.DateTimeStyles:
+                    serializer.Serialize(writer, "DateTimeStyles");
+                    return;
                 case Enum.Debugger:
                     serializer.Serialize(writer, "debugger");
                     return;
@@ -879,6 +982,12 @@ namespace QuickType
                 case Enum.Enum:
                     serializer.Serialize(writer, "enum");
                     return;
+                case Enum.EnumValues:
+                    serializer.Serialize(writer, "EnumValues");
+                    return;
+                case Enum.EqualityContract:
+                    serializer.Serialize(writer, "equalityContract");
+                    return;
                 case Enum.Event:
                     serializer.Serialize(writer, "event");
                     return;
@@ -936,6 +1045,9 @@ namespace QuickType
                 case Enum.Foreach:
                     serializer.Serialize(writer, "foreach");
                     return;
+                case Enum.FormatException:
+                    serializer.Serialize(writer, "FormatException");
+                    return;
                 case Enum.Friend:
                     serializer.Serialize(writer, "friend");
                     return;
@@ -966,6 +1078,9 @@ namespace QuickType
                 case Enum.Guard:
                     serializer.Serialize(writer, "guard");
                     return;
+                case Enum.HashCode:
+                    serializer.Serialize(writer, "hashCode");
+                    return;
                 case Enum.HasOwnProperty:
                     serializer.Serialize(writer, "hasOwnProperty");
                     return;
@@ -1017,6 +1132,9 @@ namespace QuickType
                 case Enum.Internal:
                     serializer.Serialize(writer, "internal");
                     return;
+                case Enum.IsoDateTimeOffsetConverter:
+                    serializer.Serialize(writer, "IsoDateTimeOffsetConverter");
+                    return;
                 case Enum.Iterable:
                     serializer.Serialize(writer, "iterable");
                     return;
@@ -1047,6 +1165,39 @@ namespace QuickType
                 case Enum.JsonWriter:
                     serializer.Serialize(writer, "json_writer");
                     return;
+                case Enum.JsonAny:
+                    serializer.Serialize(writer, "JSONAny");
+                    return;
+                case Enum.JsonCodingKey:
+                    serializer.Serialize(writer, "JSONCodingKey");
+                    return;
+                case Enum.JsonDecoder:
+                    serializer.Serialize(writer, "JSONDecoder");
+                    return;
+                case Enum.JsonEncoder:
+                    serializer.Serialize(writer, "JSONEncoder");
+                    return;
+                case Enum.JsonException:
+                    serializer.Serialize(writer, "JsonException");
+                    return;
+                case Enum.JsonGenerator:
+                    serializer.Serialize(writer, "JsonGenerator");
+                    return;
+                case Enum.JsonNode:
+                    serializer.Serialize(writer, "JsonNode");
+                    return;
+                case Enum.JsonNull:
+                    serializer.Serialize(writer, "JSONNull");
+                    return;
+                case Enum.JsonParser:
+                    serializer.Serialize(writer, "JsonParser");
+                    return;
+                case Enum.JsonReader:
+                    serializer.Serialize(writer, "JsonReader");
+                    return;
+                case Enum.JsonTokenType:
+                    serializer.Serialize(writer, "JsonTokenType");
+                    return;
                 case Enum.Lambda:
                     serializer.Serialize(writer, "lambda");
                     return;
@@ -1119,12 +1270,18 @@ namespace QuickType
                 case Enum.Nonmutating:
                     serializer.Serialize(writer, "nonmutating");
                     return;
+                case Enum.NoSuchMethod:
+                    serializer.Serialize(writer, "noSuchMethod");
+                    return;
                 case Enum.Not:
                     serializer.Serialize(writer, "not");
                     return;
                 case Enum.NotEq:
                     serializer.Serialize(writer, "not_eq");
                     return;
+                case Enum.NsError:
+                    serializer.Serialize(writer, "NSError");
+                    return;
                 case Enum.NsString:
                     serializer.Serialize(writer, "NSString");
                     return;
@@ -1143,6 +1300,9 @@ namespace QuickType
                 case Enum.Object:
                     serializer.Serialize(writer, "object");
                     return;
+                case Enum.ObjectMapper:
+                    serializer.Serialize(writer, "ObjectMapper");
+                    return;
                 case Enum.Of:
                     serializer.Serialize(writer, "of");
                     return;
@@ -1197,6 +1357,9 @@ namespace QuickType
                 case Enum.Printf:
                     serializer.Serialize(writer, "printf");
                     return;
+                case Enum.PrintMembers:
+                    serializer.Serialize(writer, "printMembers");
+                    return;
                 case Enum.Private:
                     serializer.Serialize(writer, "private");
                     return;
@@ -1227,6 +1390,9 @@ namespace QuickType
                 case Enum.Ref:
                     serializer.Serialize(writer, "ref");
                     return;
+                case Enum.RegExp:
+                    serializer.Serialize(writer, "RegExp");
+                    return;
                 case Enum.Register:
                     serializer.Serialize(writer, "register");
                     return;
@@ -1260,6 +1426,12 @@ namespace QuickType
                 case Enum.Right:
                     serializer.Serialize(writer, "right");
                     return;
+                case Enum.RuntimeType:
+                    serializer.Serialize(writer, "runtimeType");
+                    return;
+                case Enum.S:
+                    serializer.Serialize(writer, "s");
+                    return;
                 case Enum.Sbyte:
                     serializer.Serialize(writer, "sbyte");
                     return;
@@ -1281,6 +1453,9 @@ namespace QuickType
                 case Enum.Serialize:
                     serializer.Serialize(writer, "serialize");
                     return;
+                case Enum.SerializerProvider:
+                    serializer.Serialize(writer, "SerializerProvider");
+                    return;
                 case Enum.Set:
                     serializer.Serialize(writer, "set");
                     return;
@@ -1290,12 +1465,18 @@ namespace QuickType
                 case Enum.Signed:
                     serializer.Serialize(writer, "signed");
                     return;
+                case Enum.SimpleModule:
+                    serializer.Serialize(writer, "SimpleModule");
+                    return;
                 case Enum.Sizeof:
                     serializer.Serialize(writer, "sizeof");
                     return;
                 case Enum.Stackalloc:
                     serializer.Serialize(writer, "stackalloc");
                     return;
+                case Enum.Standards:
+                    serializer.Serialize(writer, "Standards");
+                    return;
                 case Enum.Static:
                     serializer.Serialize(writer, "static");
                     return;
@@ -1305,6 +1486,12 @@ namespace QuickType
                 case Enum.StaticCast:
                     serializer.Serialize(writer, "static_cast");
                     return;
+                case Enum.StdDeserializer:
+                    serializer.Serialize(writer, "StdDeserializer");
+                    return;
+                case Enum.StdSerializer:
+                    serializer.Serialize(writer, "StdSerializer");
+                    return;
                 case Enum.Strictfp:
                     serializer.Serialize(writer, "strictfp");
                     return;
@@ -1350,12 +1537,21 @@ namespace QuickType
                 case Enum.Throws:
                     serializer.Serialize(writer, "throws");
                     return;
+                case Enum.TimeOnly:
+                    serializer.Serialize(writer, "TimeOnly");
+                    return;
+                case Enum.TimeOnlyConverter:
+                    serializer.Serialize(writer, "TimeOnlyConverter");
+                    return;
                 case Enum.ToJson:
                     serializer.Serialize(writer, "to_json");
                     return;
                 case Enum.TopLevel:
                     serializer.Serialize(writer, "top_level");
                     return;
+                case Enum.ToString:
+                    serializer.Serialize(writer, "toString");
+                    return;
                 case Enum.Transient:
                     serializer.Serialize(writer, "transient");
                     return;
@@ -1419,6 +1615,15 @@ namespace QuickType
                 case Enum.Using:
                     serializer.Serialize(writer, "using");
                     return;
+                case Enum.Utf8JsonReader:
+                    serializer.Serialize(writer, "Utf8JsonReader");
+                    return;
+                case Enum.Utf8JsonWriter:
+                    serializer.Serialize(writer, "Utf8JsonWriter");
+                    return;
+                case Enum.Uuid:
+                    serializer.Serialize(writer, "UUID");
+                    return;
                 case Enum.Var:
                     serializer.Serialize(writer, "var");
                     return;
diff --git a/base/schema-csharp-records/test/inputs/schema/keyword-unions.schema/default/QuickType.cs b/head/schema-csharp-records/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
index 89dd014..8e62f4f 100644
--- a/base/schema-csharp-records/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
+++ b/head/schema-csharp-records/test/inputs/schema/keyword-unions.schema/default/QuickType.cs
@@ -154,6 +154,9 @@ namespace QuickType
         [JsonProperty("Class", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionClass? Class { get; set; }
 
+        [JsonProperty("clone", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionClone? TopLevelClone { get; set; }
+
         [JsonProperty("co_await", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionCoAwait? CoAwait { get; set; }
 
@@ -196,12 +199,30 @@ namespace QuickType
         [JsonProperty("converter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionConverter? Converter { get; set; }
 
+        [JsonProperty("CultureInfo", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionCultureInfo? CultureInfo { get; set; }
+
         [JsonProperty("date", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDate? Date { get; set; }
 
         [JsonProperty("date_parse_handling", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDateParseHandling? DateParseHandling { get; set; }
 
+        [JsonProperty("DateFormatter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateFormatter? DateFormatter { get; set; }
+
+        [JsonProperty("DateOnly", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateOnly? DateOnly { get; set; }
+
+        [JsonProperty("DateOnlyConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateOnlyConverter? DateOnlyConverter { get; set; }
+
+        [JsonProperty("DateTime", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateTime? DateTime { get; set; }
+
+        [JsonProperty("DateTimeStyles", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionDateTimeStyles? DateTimeStyles { get; set; }
+
         [JsonProperty("debugger", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionDebugger? Debugger { get; set; }
 
@@ -274,6 +295,12 @@ namespace QuickType
         [JsonProperty("enum", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionEnum? Enum { get; set; }
 
+        [JsonProperty("EnumValues", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionEnumValues? EnumValues { get; set; }
+
+        [JsonProperty("equalityContract", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionEqualityContract? TopLevelEqualityContract { get; set; }
+
         [JsonProperty("event", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionEvent? Event { get; set; }
 
@@ -331,6 +358,9 @@ namespace QuickType
         [JsonProperty("foreach", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionForeach? Foreach { get; set; }
 
+        [JsonProperty("FormatException", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionFormatException? FormatException { get; set; }
+
         [JsonProperty("friend", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionFriend? Friend { get; set; }
 
@@ -361,6 +391,9 @@ namespace QuickType
         [JsonProperty("guard", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionGuard? Guard { get; set; }
 
+        [JsonProperty("hashCode", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionHashCode? HashCode { get; set; }
+
         [JsonProperty("hasOwnProperty", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionHasOwnProperty? HasOwnProperty { get; set; }
 
@@ -415,6 +448,9 @@ namespace QuickType
         [JsonProperty("is", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionIs? Is { get; set; }
 
+        [JsonProperty("IsoDateTimeOffsetConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionIsoDateTimeOffsetConverter? IsoDateTimeOffsetConverter { get; set; }
+
         [JsonProperty("iterable", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionIterable? Iterable { get; set; }
 
@@ -442,6 +478,39 @@ namespace QuickType
         [JsonProperty("json_writer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionJsonWriter? JsonWriter { get; set; }
 
+        [JsonProperty("JSONAny", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonAny? JsonAny { get; set; }
+
+        [JsonProperty("JSONCodingKey", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonCodingKey? JsonCodingKey { get; set; }
+
+        [JsonProperty("JSONDecoder", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonDecoder? JsonDecoder { get; set; }
+
+        [JsonProperty("JSONEncoder", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonEncoder? JsonEncoder { get; set; }
+
+        [JsonProperty("JsonException", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonException? JsonException { get; set; }
+
+        [JsonProperty("JsonGenerator", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonGenerator? JsonGenerator { get; set; }
+
+        [JsonProperty("JsonNode", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonNode? JsonNode { get; set; }
+
+        [JsonProperty("JSONNull", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonNull? JsonNull { get; set; }
+
+        [JsonProperty("JsonParser", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonParser? JsonParser { get; set; }
+
+        [JsonProperty("JsonReader", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonReader? JsonReader { get; set; }
+
+        [JsonProperty("JsonTokenType", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionJsonTokenType? JsonTokenType { get; set; }
+
         [JsonProperty("lambda", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionLambda? Lambda { get; set; }
 
@@ -514,12 +583,18 @@ namespace QuickType
         [JsonProperty("nonmutating", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNonmutating? Nonmutating { get; set; }
 
+        [JsonProperty("noSuchMethod", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionNoSuchMethod? NoSuchMethod { get; set; }
+
         [JsonProperty("not", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNot? Not { get; set; }
 
         [JsonProperty("not_eq", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNotEq? NotEq { get; set; }
 
+        [JsonProperty("NSError", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionNsError? NsError { get; set; }
+
         [JsonProperty("NSString", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionNsString? NsString { get; set; }
 
@@ -538,6 +613,9 @@ namespace QuickType
         [JsonProperty("object", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionObject? Object { get; set; }
 
+        [JsonProperty("ObjectMapper", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionObjectMapper? ObjectMapper { get; set; }
+
         [JsonProperty("of", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionOf? Of { get; set; }
 
@@ -592,6 +670,9 @@ namespace QuickType
         [JsonProperty("printf", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionPrintf? Printf { get; set; }
 
+        [JsonProperty("printMembers", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionPrintMembers? TopLevelPrintMembers { get; set; }
+
         [JsonProperty("private", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionPrivate? Private { get; set; }
 
@@ -622,6 +703,9 @@ namespace QuickType
         [JsonProperty("ref", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRef? Ref { get; set; }
 
+        [JsonProperty("RegExp", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionRegExp? RegExp { get; set; }
+
         [JsonProperty("register", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRegister? Register { get; set; }
 
@@ -655,6 +739,12 @@ namespace QuickType
         [JsonProperty("right", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionRight? Right { get; set; }
 
+        [JsonProperty("runtimeType", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionRuntimeType? RuntimeType { get; set; }
+
+        [JsonProperty("s", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionS? S { get; set; }
+
         [JsonProperty("sbyte", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSbyte? Sbyte { get; set; }
 
@@ -676,6 +766,9 @@ namespace QuickType
         [JsonProperty("serialize", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSerialize? Serialize { get; set; }
 
+        [JsonProperty("SerializerProvider", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionSerializerProvider? SerializerProvider { get; set; }
+
         [JsonProperty("set", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSet? Set { get; set; }
 
@@ -685,12 +778,18 @@ namespace QuickType
         [JsonProperty("signed", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSigned? Signed { get; set; }
 
+        [JsonProperty("SimpleModule", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionSimpleModule? SimpleModule { get; set; }
+
         [JsonProperty("sizeof", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionSizeof? Sizeof { get; set; }
 
         [JsonProperty("stackalloc", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStackalloc? Stackalloc { get; set; }
 
+        [JsonProperty("Standards", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStandards? Standards { get; set; }
+
         [JsonProperty("static", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStatic? Static { get; set; }
 
@@ -700,6 +799,12 @@ namespace QuickType
         [JsonProperty("static_cast", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStaticCast? StaticCast { get; set; }
 
+        [JsonProperty("StdDeserializer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStdDeserializer? StdDeserializer { get; set; }
+
+        [JsonProperty("StdSerializer", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionStdSerializer? StdSerializer { get; set; }
+
         [JsonProperty("strictfp", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionStrictfp? Strictfp { get; set; }
 
@@ -745,12 +850,21 @@ namespace QuickType
         [JsonProperty("throws", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionThrows? Throws { get; set; }
 
+        [JsonProperty("TimeOnly", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionTimeOnly? TimeOnly { get; set; }
+
+        [JsonProperty("TimeOnlyConverter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionTimeOnlyConverter? TimeOnlyConverter { get; set; }
+
         [JsonProperty("to_json", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionToJson? TopLevelToJson { get; set; }
 
         [JsonProperty("top_level", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionTopLevel? TopLevelTopLevel { get; set; }
 
+        [JsonProperty("toString", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionToString? TopLevelToString { get; set; }
+
         [JsonProperty("transient", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionTransient? Transient { get; set; }
 
@@ -814,6 +928,15 @@ namespace QuickType
         [JsonProperty("using", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionUsing? Using { get; set; }
 
+        [JsonProperty("Utf8JsonReader", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUtf8JsonReader? Utf8JsonReader { get; set; }
+
+        [JsonProperty("Utf8JsonWriter", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUtf8JsonWriter? Utf8JsonWriter { get; set; }
+
+        [JsonProperty("UUID", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
+        public UnionUuid? Uuid { get; set; }
+
         [JsonProperty("var", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
         public UnionVar? Var { get; set; }
 
@@ -1061,14 +1184,38 @@ namespace QuickType
     {
     }
 
+    public partial record CultureInfo
+    {
+    }
+
     public partial record Date
     {
     }
 
+    public partial record DateFormatter
+    {
+    }
+
+    public partial record DateOnly
+    {
+    }
+
+    public partial record DateOnlyConverter
+    {
+    }
+
     public partial record DateParseHandlingClass
     {
     }
 
+    public partial record DateTime
+    {
+    }
+
+    public partial record DateTimeStylesClass
+    {
+    }
+
     public partial record Debugger
     {
     }
@@ -1165,6 +1312,10 @@ namespace QuickType
     {
     }
 
+    public partial record EnumValues
+    {
+    }
+
     public partial record Event
     {
     }
@@ -1237,6 +1388,10 @@ namespace QuickType
     {
     }
 
+    public partial record FormatException
+    {
+    }
+
     public partial record Friend
     {
     }
@@ -1277,6 +1432,10 @@ namespace QuickType
     {
     }
 
+    public partial record HashCode
+    {
+    }
+
     public partial record Id
     {
     }
@@ -1349,6 +1508,10 @@ namespace QuickType
     {
     }
 
+    public partial record IsoDateTimeOffsetConverter
+    {
+    }
+
     public partial record Iterable
     {
     }
@@ -1369,10 +1532,50 @@ namespace QuickType
     {
     }
 
+    public partial record JsonAny
+    {
+    }
+
+    public partial record JsonCodingKey
+    {
+    }
+
     public partial record JsonConverterClass
     {
     }
 
+    public partial record JsonDecoder
+    {
+    }
+
+    public partial record JsonEncoder
+    {
+    }
+
+    public partial record JsonException
+    {
+    }
+
+    public partial record JsonGenerator
+    {
+    }
+
+    public partial record JsonNode
+    {
+    }
+
+    public partial record JsonNull
+    {
+    }
+
+    public partial record JsonParser
+    {
+    }
+
+    public partial record JsonReaderClass
+    {
+    }
+
     public partial record JsonSerializerClass
     {
     }
@@ -1381,6 +1584,10 @@ namespace QuickType
     {
     }
 
+    public partial record JsonTokenType
+    {
+    }
+
     public partial record JsonWriterClass
     {
     }
@@ -1457,6 +1664,10 @@ namespace QuickType
     {
     }
 
+    public partial record NoSuchMethod
+    {
+    }
+
     public partial record Noexcept
     {
     }
@@ -1485,6 +1696,10 @@ namespace QuickType
     {
     }
 
+    public partial record NsError
+    {
+    }
+
     public partial record NsString
     {
     }
@@ -1505,6 +1720,10 @@ namespace QuickType
     {
     }
 
+    public partial record ObjectMapper
+    {
+    }
+
     public partial record Of
     {
     }
@@ -1617,6 +1836,10 @@ namespace QuickType
     {
     }
 
+    public partial record RegExp
+    {
+    }
+
     public partial record Register
     {
     }
@@ -1657,6 +1880,14 @@ namespace QuickType
     {
     }
 
+    public partial record RuntimeType
+    {
+    }
+
+    public partial record S
+    {
+    }
+
     public partial record Sbyte
     {
     }
@@ -1681,6 +1912,10 @@ namespace QuickType
     {
     }
 
+    public partial record SerializerProvider
+    {
+    }
+
     public partial record Set
     {
     }
@@ -1693,6 +1928,10 @@ namespace QuickType
     {
     }
 
+    public partial record SimpleModule
+    {
+    }
+
     public partial record Sizeof
     {
     }
@@ -1701,6 +1940,10 @@ namespace QuickType
     {
     }
 
+    public partial record Standards
+    {
+    }
+
     public partial record Static
     {
     }
@@ -1713,6 +1956,14 @@ namespace QuickType
     {
     }
 
+    public partial record StdDeserializer
+    {
+    }
+
+    public partial record StdSerializer
+    {
+    }
+
     public partial record Strictfp
     {
     }
@@ -1773,6 +2024,14 @@ namespace QuickType
     {
     }
 
+    public partial record TimeOnly
+    {
+    }
+
+    public partial record TimeOnlyConverter
+    {
+    }
+
     public partial record AnyClass
     {
     }
@@ -1785,6 +2044,14 @@ namespace QuickType
     {
     }
 
+    public partial record CloneClass
+    {
+    }
+
+    public partial record EqualityContractClass
+    {
+    }
+
     public partial record FalseClass
     {
     }
@@ -1801,6 +2068,10 @@ namespace QuickType
     {
     }
 
+    public partial record PrintMembersClass
+    {
+    }
+
     public partial record ProtocolClass
     {
     }
@@ -1817,6 +2088,10 @@ namespace QuickType
     {
     }
 
+    public partial record ToStringClass
+    {
+    }
+
     public partial record TopLevelClass
     {
     }
@@ -1905,6 +2180,18 @@ namespace QuickType
     {
     }
 
+    public partial record Utf8JsonReader
+    {
+    }
+
+    public partial record Utf8JsonWriter
+    {
+    }
+
+    public partial record Uuid
+    {
+    }
+
     public partial record Var
     {
     }
@@ -2420,6 +2707,15 @@ namespace QuickType
         public static implicit operator UnionConverter(double Double) => new UnionConverter { Double = Double };
     }
 
+    public partial struct UnionCultureInfo
+    {
+        public CultureInfo? CultureInfo;
+        public double? Double;
+
+        public static implicit operator UnionCultureInfo(CultureInfo CultureInfo) => new UnionCultureInfo { CultureInfo = CultureInfo };
+        public static implicit operator UnionCultureInfo(double Double) => new UnionCultureInfo { Double = Double };
+    }
+
     public partial struct UnionDate
     {
         public Date? Date;
@@ -2429,6 +2725,33 @@ namespace QuickType
         public static implicit operator UnionDate(double Double) => new UnionDate { Double = Double };
     }
 
+    public partial struct UnionDateFormatter
+    {
+        public DateFormatter? DateFormatter;
+        public double? Double;
+
+        public static implicit operator UnionDateFormatter(DateFormatter DateFormatter) => new UnionDateFormatter { DateFormatter = DateFormatter };
+        public static implicit operator UnionDateFormatter(double Double) => new UnionDateFormatter { Double = Double };
+    }
+
+    public partial struct UnionDateOnly
+    {
+        public DateOnly? DateOnly;
+        public double? Double;
+
+        public static implicit operator UnionDateOnly(DateOnly DateOnly) => new UnionDateOnly { DateOnly = DateOnly };
+        public static implicit operator UnionDateOnly(double Double) => new UnionDateOnly { Double = Double };
+    }
+
+    public partial struct UnionDateOnlyConverter
+    {
+        public DateOnlyConverter? DateOnlyConverter;
+        public double? Double;
+
+        public static implicit operator UnionDateOnlyConverter(DateOnlyConverter DateOnlyConverter) => new UnionDateOnlyConverter { DateOnlyConverter = DateOnlyConverter };
+        public static implicit operator UnionDateOnlyConverter(double Double) => new UnionDateOnlyConverter { Double = Double };
+    }
+
     public partial struct UnionDateParseHandling
     {
         public DateParseHandlingClass? DateParseHandlingClass;
@@ -2438,6 +2761,24 @@ namespace QuickType
         public static implicit operator UnionDateParseHandling(double Double) => new UnionDateParseHandling { Double = Double };
     }
 
+    public partial struct UnionDateTime
+    {
+        public DateTime? DateTime;
+        public double? Double;
+
+        public static implicit operator UnionDateTime(DateTime DateTime) => new UnionDateTime { DateTime = DateTime };
+        public static implicit operator UnionDateTime(double Double) => new UnionDateTime { Double = Double };
+    }
+
+    public partial struct UnionDateTimeStyles
+    {
+        public DateTimeStylesClass? DateTimeStylesClass;
+        public double? Double;
+
+        public static implicit operator UnionDateTimeStyles(DateTimeStylesClass DateTimeStylesClass) => new UnionDateTimeStyles { DateTimeStylesClass = DateTimeStylesClass };
+        public static implicit operator UnionDateTimeStyles(double Double) => new UnionDateTimeStyles { Double = Double };
+    }
+
     public partial struct UnionDebugger
     {
         public Debugger? Debugger;
@@ -2654,6 +2995,15 @@ namespace QuickType
         public static implicit operator UnionEnum(Enum Enum) => new UnionEnum { Enum = Enum };
     }
 
+    public partial struct UnionEnumValues
+    {
+        public double? Double;
+        public EnumValues? EnumValues;
+
+        public static implicit operator UnionEnumValues(double Double) => new UnionEnumValues { Double = Double };
+        public static implicit operator UnionEnumValues(EnumValues EnumValues) => new UnionEnumValues { EnumValues = EnumValues };
+    }
+
     public partial struct UnionEvent
     {
         public double? Double;
@@ -2816,6 +3166,15 @@ namespace QuickType
         public static implicit operator UnionForeach(Foreach Foreach) => new UnionForeach { Foreach = Foreach };
     }
 
+    public partial struct UnionFormatException
+    {
+        public double? Double;
+        public FormatException? FormatException;
+
+        public static implicit operator UnionFormatException(double Double) => new UnionFormatException { Double = Double };
+        public static implicit operator UnionFormatException(FormatException FormatException) => new UnionFormatException { FormatException = FormatException };
+    }
+
     public partial struct UnionFriend
     {
         public double? Double;
@@ -2906,6 +3265,15 @@ namespace QuickType
         public static implicit operator UnionHasOwnProperty(HasOwnProperty HasOwnProperty) => new UnionHasOwnProperty { HasOwnProperty = HasOwnProperty };
     }
 
+    public partial struct UnionHashCode
+    {
+        public double? Double;
+        public HashCode? HashCode;
+
+        public static implicit operator UnionHashCode(double Double) => new UnionHashCode { Double = Double };
+        public static implicit operator UnionHashCode(HashCode HashCode) => new UnionHashCode { HashCode = HashCode };
+    }
+
     public partial struct UnionId
     {
         public double? Double;
@@ -3068,6 +3436,15 @@ namespace QuickType
         public static implicit operator UnionIs(Is Is) => new UnionIs { Is = Is };
     }
 
+    public partial struct UnionIsoDateTimeOffsetConverter
+    {
+        public double? Double;
+        public IsoDateTimeOffsetConverter? IsoDateTimeOffsetConverter;
+
+        public static implicit operator UnionIsoDateTimeOffsetConverter(double Double) => new UnionIsoDateTimeOffsetConverter { Double = Double };
+        public static implicit operator UnionIsoDateTimeOffsetConverter(IsoDateTimeOffsetConverter IsoDateTimeOffsetConverter) => new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverter = IsoDateTimeOffsetConverter };
+    }
+
     public partial struct UnionIterable
     {
         public double? Double;
@@ -3113,6 +3490,24 @@ namespace QuickType
         public static implicit operator UnionJson(Json Json) => new UnionJson { Json = Json };
     }
 
+    public partial struct UnionJsonAny
+    {
+        public double? Double;
+        public JsonAny? JsonAny;
+
+        public static implicit operator UnionJsonAny(double Double) => new UnionJsonAny { Double = Double };
+        public static implicit operator UnionJsonAny(JsonAny JsonAny) => new UnionJsonAny { JsonAny = JsonAny };
+    }
+
+    public partial struct UnionJsonCodingKey
+    {
+        public double? Double;
+        public JsonCodingKey? JsonCodingKey;
+
+        public static implicit operator UnionJsonCodingKey(double Double) => new UnionJsonCodingKey { Double = Double };
+        public static implicit operator UnionJsonCodingKey(JsonCodingKey JsonCodingKey) => new UnionJsonCodingKey { JsonCodingKey = JsonCodingKey };
+    }
+
     public partial struct UnionJsonConverter
     {
         public double? Double;
@@ -3122,76 +3517,157 @@ namespace QuickType
         public static implicit operator UnionJsonConverter(JsonConverterClass JsonConverterClass) => new UnionJsonConverter { JsonConverterClass = JsonConverterClass };
     }
 
-    public partial struct UnionJsonSerializer
+    public partial struct UnionJsonDecoder
     {
         public double? Double;
-        public JsonSerializerClass? JsonSerializerClass;
+        public JsonDecoder? JsonDecoder;
 
-        public static implicit operator UnionJsonSerializer(double Double) => new UnionJsonSerializer { Double = Double };
-        public static implicit operator UnionJsonSerializer(JsonSerializerClass JsonSerializerClass) => new UnionJsonSerializer { JsonSerializerClass = JsonSerializerClass };
+        public static implicit operator UnionJsonDecoder(double Double) => new UnionJsonDecoder { Double = Double };
+        public static implicit operator UnionJsonDecoder(JsonDecoder JsonDecoder) => new UnionJsonDecoder { JsonDecoder = JsonDecoder };
     }
 
-    public partial struct UnionJsonToken
+    public partial struct UnionJsonEncoder
     {
         public double? Double;
-        public JsonTokenClass? JsonTokenClass;
+        public JsonEncoder? JsonEncoder;
 
-        public static implicit operator UnionJsonToken(double Double) => new UnionJsonToken { Double = Double };
-        public static implicit operator UnionJsonToken(JsonTokenClass JsonTokenClass) => new UnionJsonToken { JsonTokenClass = JsonTokenClass };
+        public static implicit operator UnionJsonEncoder(double Double) => new UnionJsonEncoder { Double = Double };
+        public static implicit operator UnionJsonEncoder(JsonEncoder JsonEncoder) => new UnionJsonEncoder { JsonEncoder = JsonEncoder };
     }
 
-    public partial struct UnionJsonWriter
+    public partial struct UnionJsonException
     {
         public double? Double;
-        public JsonWriterClass? JsonWriterClass;
+        public JsonException? JsonException;
 
-        public static implicit operator UnionJsonWriter(double Double) => new UnionJsonWriter { Double = Double };
-        public static implicit operator UnionJsonWriter(JsonWriterClass JsonWriterClass) => new UnionJsonWriter { JsonWriterClass = JsonWriterClass };
+        public static implicit operator UnionJsonException(double Double) => new UnionJsonException { Double = Double };
+        public static implicit operator UnionJsonException(JsonException JsonException) => new UnionJsonException { JsonException = JsonException };
     }
 
-    public partial struct UnionLambda
+    public partial struct UnionJsonGenerator
     {
         public double? Double;
-        public Lambda? Lambda;
+        public JsonGenerator? JsonGenerator;
 
-        public static implicit operator UnionLambda(double Double) => new UnionLambda { Double = Double };
-        public static implicit operator UnionLambda(Lambda Lambda) => new UnionLambda { Lambda = Lambda };
+        public static implicit operator UnionJsonGenerator(double Double) => new UnionJsonGenerator { Double = Double };
+        public static implicit operator UnionJsonGenerator(JsonGenerator JsonGenerator) => new UnionJsonGenerator { JsonGenerator = JsonGenerator };
     }
 
-    public partial struct UnionLazy
+    public partial struct UnionJsonNode
     {
         public double? Double;
-        public Lazy? Lazy;
+        public JsonNode? JsonNode;
 
-        public static implicit operator UnionLazy(double Double) => new UnionLazy { Double = Double };
-        public static implicit operator UnionLazy(Lazy Lazy) => new UnionLazy { Lazy = Lazy };
+        public static implicit operator UnionJsonNode(double Double) => new UnionJsonNode { Double = Double };
+        public static implicit operator UnionJsonNode(JsonNode JsonNode) => new UnionJsonNode { JsonNode = JsonNode };
     }
 
-    public partial struct UnionLeft
+    public partial struct UnionJsonNull
     {
         public double? Double;
-        public Left? Left;
+        public JsonNull? JsonNull;
 
-        public static implicit operator UnionLeft(double Double) => new UnionLeft { Double = Double };
-        public static implicit operator UnionLeft(Left Left) => new UnionLeft { Left = Left };
+        public static implicit operator UnionJsonNull(double Double) => new UnionJsonNull { Double = Double };
+        public static implicit operator UnionJsonNull(JsonNull JsonNull) => new UnionJsonNull { JsonNull = JsonNull };
     }
 
-    public partial struct UnionLet
+    public partial struct UnionJsonParser
     {
         public double? Double;
-        public Let? Let;
+        public JsonParser? JsonParser;
 
-        public static implicit operator UnionLet(double Double) => new UnionLet { Double = Double };
-        public static implicit operator UnionLet(Let Let) => new UnionLet { Let = Let };
+        public static implicit operator UnionJsonParser(double Double) => new UnionJsonParser { Double = Double };
+        public static implicit operator UnionJsonParser(JsonParser JsonParser) => new UnionJsonParser { JsonParser = JsonParser };
     }
 
-    public partial struct UnionList
+    public partial struct UnionJsonReader
     {
         public double? Double;
-        public List? List;
+        public JsonReaderClass? JsonReaderClass;
 
-        public static implicit operator UnionList(double Double) => new UnionList { Double = Double };
-        public static implicit operator UnionList(List List) => new UnionList { List = List };
+        public static implicit operator UnionJsonReader(double Double) => new UnionJsonReader { Double = Double };
+        public static implicit operator UnionJsonReader(JsonReaderClass JsonReaderClass) => new UnionJsonReader { JsonReaderClass = JsonReaderClass };
+    }
+
+    public partial struct UnionJsonSerializer
+    {
+        public double? Double;
+        public JsonSerializerClass? JsonSerializerClass;
+
+        public static implicit operator UnionJsonSerializer(double Double) => new UnionJsonSerializer { Double = Double };
+        public static implicit operator UnionJsonSerializer(JsonSerializerClass JsonSerializerClass) => new UnionJsonSerializer { JsonSerializerClass = JsonSerializerClass };
+    }
+
+    public partial struct UnionJsonToken
+    {
+        public double? Double;
+        public JsonTokenClass? JsonTokenClass;
+
+        public static implicit operator UnionJsonToken(double Double) => new UnionJsonToken { Double = Double };
+        public static implicit operator UnionJsonToken(JsonTokenClass JsonTokenClass) => new UnionJsonToken { JsonTokenClass = JsonTokenClass };
+    }
+
+    public partial struct UnionJsonTokenType
+    {
+        public double? Double;
+        public JsonTokenType? JsonTokenType;
+
+        public static implicit operator UnionJsonTokenType(double Double) => new UnionJsonTokenType { Double = Double };
+        public static implicit operator UnionJsonTokenType(JsonTokenType JsonTokenType) => new UnionJsonTokenType { JsonTokenType = JsonTokenType };
+    }
+
+    public partial struct UnionJsonWriter
+    {
+        public double? Double;
+        public JsonWriterClass? JsonWriterClass;
+
+        public static implicit operator UnionJsonWriter(double Double) => new UnionJsonWriter { Double = Double };
+        public static implicit operator UnionJsonWriter(JsonWriterClass JsonWriterClass) => new UnionJsonWriter { JsonWriterClass = JsonWriterClass };
+    }
+
+    public partial struct UnionLambda
+    {
+        public double? Double;
+        public Lambda? Lambda;
+
+        public static implicit operator UnionLambda(double Double) => new UnionLambda { Double = Double };
+        public static implicit operator UnionLambda(Lambda Lambda) => new UnionLambda { Lambda = Lambda };
+    }
+
+    public partial struct UnionLazy
+    {
+        public double? Double;
+        public Lazy? Lazy;
+
+        public static implicit operator UnionLazy(double Double) => new UnionLazy { Double = Double };
+        public static implicit operator UnionLazy(Lazy Lazy) => new UnionLazy { Lazy = Lazy };
+    }
+
+    public partial struct UnionLeft
+    {
+        public double? Double;
+        public Left? Left;
+
+        public static implicit operator UnionLeft(double Double) => new UnionLeft { Double = Double };
+        public static implicit operator UnionLeft(Left Left) => new UnionLeft { Left = Left };
+    }
+
+    public partial struct UnionLet
+    {
+        public double? Double;
+        public Let? Let;
+
+        public static implicit operator UnionLet(double Double) => new UnionLet { Double = Double };
+        public static implicit operator UnionLet(Let Let) => new UnionLet { Let = Let };
+    }
+
+    public partial struct UnionList
+    {
+        public double? Double;
+        public List? List;
+
+        public static implicit operator UnionList(double Double) => new UnionList { Double = Double };
+        public static implicit operator UnionList(List List) => new UnionList { List = List };
     }
 
     public partial struct UnionLock
@@ -3311,6 +3787,15 @@ namespace QuickType
         public static implicit operator UnionNo(No No) => new UnionNo { No = No };
     }
 
+    public partial struct UnionNoSuchMethod
+    {
+        public double? Double;
+        public NoSuchMethod? NoSuchMethod;
+
+        public static implicit operator UnionNoSuchMethod(double Double) => new UnionNoSuchMethod { Double = Double };
+        public static implicit operator UnionNoSuchMethod(NoSuchMethod NoSuchMethod) => new UnionNoSuchMethod { NoSuchMethod = NoSuchMethod };
+    }
+
     public partial struct UnionNoexcept
     {
         public double? Double;
@@ -3374,6 +3859,15 @@ namespace QuickType
         public static implicit operator UnionNotEq(NotEq NotEq) => new UnionNotEq { NotEq = NotEq };
     }
 
+    public partial struct UnionNsError
+    {
+        public double? Double;
+        public NsError? NsError;
+
+        public static implicit operator UnionNsError(double Double) => new UnionNsError { Double = Double };
+        public static implicit operator UnionNsError(NsError NsError) => new UnionNsError { NsError = NsError };
+    }
+
     public partial struct UnionNsString
     {
         public double? Double;
@@ -3419,6 +3913,15 @@ namespace QuickType
         public static implicit operator UnionObject(Object Object) => new UnionObject { Object = Object };
     }
 
+    public partial struct UnionObjectMapper
+    {
+        public double? Double;
+        public ObjectMapper? ObjectMapper;
+
+        public static implicit operator UnionObjectMapper(double Double) => new UnionObjectMapper { Double = Double };
+        public static implicit operator UnionObjectMapper(ObjectMapper ObjectMapper) => new UnionObjectMapper { ObjectMapper = ObjectMapper };
+    }
+
     public partial struct UnionOf
     {
         public double? Double;
@@ -3671,6 +4174,15 @@ namespace QuickType
         public static implicit operator UnionRef(Ref Ref) => new UnionRef { Ref = Ref };
     }
 
+    public partial struct UnionRegExp
+    {
+        public double? Double;
+        public RegExp? RegExp;
+
+        public static implicit operator UnionRegExp(double Double) => new UnionRegExp { Double = Double };
+        public static implicit operator UnionRegExp(RegExp RegExp) => new UnionRegExp { RegExp = RegExp };
+    }
+
     public partial struct UnionRegister
     {
         public double? Double;
@@ -3761,6 +4273,24 @@ namespace QuickType
         public static implicit operator UnionRight(Right Right) => new UnionRight { Right = Right };
     }
 
+    public partial struct UnionRuntimeType
+    {
+        public double? Double;
+        public RuntimeType? RuntimeType;
+
+        public static implicit operator UnionRuntimeType(double Double) => new UnionRuntimeType { Double = Double };
+        public static implicit operator UnionRuntimeType(RuntimeType RuntimeType) => new UnionRuntimeType { RuntimeType = RuntimeType };
+    }
+
+    public partial struct UnionS
+    {
+        public double? Double;
+        public S? S;
+
+        public static implicit operator UnionS(double Double) => new UnionS { Double = Double };
+        public static implicit operator UnionS(S S) => new UnionS { S = S };
+    }
+
     public partial struct UnionSbyte
     {
         public double? Double;
@@ -3815,6 +4345,15 @@ namespace QuickType
         public static implicit operator UnionSerialize(SerializeClass SerializeClass) => new UnionSerialize { SerializeClass = SerializeClass };
     }
 
+    public partial struct UnionSerializerProvider
+    {
+        public double? Double;
+        public SerializerProvider? SerializerProvider;
+
+        public static implicit operator UnionSerializerProvider(double Double) => new UnionSerializerProvider { Double = Double };
+        public static implicit operator UnionSerializerProvider(SerializerProvider SerializerProvider) => new UnionSerializerProvider { SerializerProvider = SerializerProvider };
+    }
+
     public partial struct UnionSet
     {
         public double? Double;
@@ -3842,6 +4381,15 @@ namespace QuickType
         public static implicit operator UnionSigned(Signed Signed) => new UnionSigned { Signed = Signed };
     }
 
+    public partial struct UnionSimpleModule
+    {
+        public double? Double;
+        public SimpleModule? SimpleModule;
+
+        public static implicit operator UnionSimpleModule(double Double) => new UnionSimpleModule { Double = Double };
+        public static implicit operator UnionSimpleModule(SimpleModule SimpleModule) => new UnionSimpleModule { SimpleModule = SimpleModule };
+    }
+
     public partial struct UnionSizeof
     {
         public double? Double;
@@ -3860,6 +4408,15 @@ namespace QuickType
         public static implicit operator UnionStackalloc(Stackalloc Stackalloc) => new UnionStackalloc { Stackalloc = Stackalloc };
     }
 
+    public partial struct UnionStandards
+    {
+        public double? Double;
+        public Standards? Standards;
+
+        public static implicit operator UnionStandards(double Double) => new UnionStandards { Double = Double };
+        public static implicit operator UnionStandards(Standards Standards) => new UnionStandards { Standards = Standards };
+    }
+
     public partial struct UnionStatic
     {
         public double? Double;
@@ -3887,6 +4444,24 @@ namespace QuickType
         public static implicit operator UnionStaticCast(StaticCast StaticCast) => new UnionStaticCast { StaticCast = StaticCast };
     }
 
+    public partial struct UnionStdDeserializer
+    {
+        public double? Double;
+        public StdDeserializer? StdDeserializer;
+
+        public static implicit operator UnionStdDeserializer(double Double) => new UnionStdDeserializer { Double = Double };
+        public static implicit operator UnionStdDeserializer(StdDeserializer StdDeserializer) => new UnionStdDeserializer { StdDeserializer = StdDeserializer };
+    }
+
+    public partial struct UnionStdSerializer
+    {
+        public double? Double;
+        public StdSerializer? StdSerializer;
+
+        public static implicit operator UnionStdSerializer(double Double) => new UnionStdSerializer { Double = Double };
+        public static implicit operator UnionStdSerializer(StdSerializer StdSerializer) => new UnionStdSerializer { StdSerializer = StdSerializer };
+    }
+
     public partial struct UnionStrictfp
     {
         public double? Double;
@@ -4022,6 +4597,24 @@ namespace QuickType
         public static implicit operator UnionThrows(Throws Throws) => new UnionThrows { Throws = Throws };
     }
 
+    public partial struct UnionTimeOnly
+    {
+        public double? Double;
+        public TimeOnly? TimeOnly;
+
+        public static implicit operator UnionTimeOnly(double Double) => new UnionTimeOnly { Double = Double };
+        public static implicit operator UnionTimeOnly(TimeOnly TimeOnly) => new UnionTimeOnly { TimeOnly = TimeOnly };
+    }
+
+    public partial struct UnionTimeOnlyConverter
+    {
+        public double? Double;
+        public TimeOnlyConverter? TimeOnlyConverter;
+
+        public static implicit operator UnionTimeOnlyConverter(double Double) => new UnionTimeOnlyConverter { Double = Double };
+        public static implicit operator UnionTimeOnlyConverter(TimeOnlyConverter TimeOnlyConverter) => new UnionTimeOnlyConverter { TimeOnlyConverter = TimeOnlyConverter };
+    }
+
     public partial struct UnionAnyUnion
     {
         public AnyClass? AnyClass;
@@ -4049,6 +4642,24 @@ namespace QuickType
         public static implicit operator UnionClassUnion(double Double) => new UnionClassUnion { Double = Double };
     }
 
+    public partial struct UnionClone
+    {
+        public CloneClass? CloneClass;
+        public double? Double;
+
+        public static implicit operator UnionClone(CloneClass CloneClass) => new UnionClone { CloneClass = CloneClass };
+        public static implicit operator UnionClone(double Double) => new UnionClone { Double = Double };
+    }
+
+    public partial struct UnionEqualityContract
+    {
+        public double? Double;
+        public EqualityContractClass? EqualityContractClass;
+
+        public static implicit operator UnionEqualityContract(double Double) => new UnionEqualityContract { Double = Double };
+        public static implicit operator UnionEqualityContract(EqualityContractClass EqualityContractClass) => new UnionEqualityContract { EqualityContractClass = EqualityContractClass };
+    }
+
     public partial struct UnionFalseUnion
     {
         public double? Double;
@@ -4085,6 +4696,15 @@ namespace QuickType
         public static implicit operator UnionNullUnion(NullClass NullClass) => new UnionNullUnion { NullClass = NullClass };
     }
 
+    public partial struct UnionPrintMembers
+    {
+        public double? Double;
+        public PrintMembersClass? PrintMembersClass;
+
+        public static implicit operator UnionPrintMembers(double Double) => new UnionPrintMembers { Double = Double };
+        public static implicit operator UnionPrintMembers(PrintMembersClass PrintMembersClass) => new UnionPrintMembers { PrintMembersClass = PrintMembersClass };
+    }
+
     public partial struct UnionProtocolUnion
     {
         public double? Double;
@@ -4121,6 +4741,15 @@ namespace QuickType
         public static implicit operator UnionToJson(ToJson ToJson) => new UnionToJson { ToJson = ToJson };
     }
 
+    public partial struct UnionToString
+    {
+        public double? Double;
+        public ToStringClass? ToStringClass;
+
+        public static implicit operator UnionToString(double Double) => new UnionToString { Double = Double };
+        public static implicit operator UnionToString(ToStringClass ToStringClass) => new UnionToString { ToStringClass = ToStringClass };
+    }
+
     public partial struct UnionTopLevel
     {
         public double? Double;
@@ -4319,6 +4948,33 @@ namespace QuickType
         public static implicit operator UnionUsing(Using Using) => new UnionUsing { Using = Using };
     }
 
+    public partial struct UnionUtf8JsonReader
+    {
+        public double? Double;
+        public Utf8JsonReader? Utf8JsonReader;
+
+        public static implicit operator UnionUtf8JsonReader(double Double) => new UnionUtf8JsonReader { Double = Double };
+        public static implicit operator UnionUtf8JsonReader(Utf8JsonReader Utf8JsonReader) => new UnionUtf8JsonReader { Utf8JsonReader = Utf8JsonReader };
+    }
+
+    public partial struct UnionUtf8JsonWriter
+    {
+        public double? Double;
+        public Utf8JsonWriter? Utf8JsonWriter;
+
+        public static implicit operator UnionUtf8JsonWriter(double Double) => new UnionUtf8JsonWriter { Double = Double };
+        public static implicit operator UnionUtf8JsonWriter(Utf8JsonWriter Utf8JsonWriter) => new UnionUtf8JsonWriter { Utf8JsonWriter = Utf8JsonWriter };
+    }
+
+    public partial struct UnionUuid
+    {
+        public double? Double;
+        public Uuid? Uuid;
+
+        public static implicit operator UnionUuid(double Double) => new UnionUuid { Double = Double };
+        public static implicit operator UnionUuid(Uuid Uuid) => new UnionUuid { Uuid = Uuid };
+    }
+
     public partial struct UnionVar
     {
         public double? Double;
@@ -4466,17 +5122,50 @@ namespace QuickType
                 UnionAnyConverter.Singleton,
                 UnionBoolConverter.Singleton,
                 UnionClassConverter.Singleton,
+                UnionCultureInfoConverter.Singleton,
+                UnionDateFormatterConverter.Singleton,
+                PurpleUnionDateOnlyConverter.Singleton,
+                UnionDateOnlyConverterConverter.Singleton,
+                UnionDateTimeConverter.Singleton,
+                UnionDateTimeStylesConverter.Singleton,
+                UnionEnumValuesConverter.Singleton,
                 UnionFalseConverter.Singleton,
+                UnionFormatExceptionConverter.Singleton,
                 UnionImpConverter.Singleton,
+                UnionIsoDateTimeOffsetConverterConverter.Singleton,
+                UnionJsonAnyConverter.Singleton,
+                UnionJsonCodingKeyConverter.Singleton,
+                UnionJsonDecoderConverter.Singleton,
+                UnionJsonEncoderConverter.Singleton,
+                UnionJsonNullConverter.Singleton,
+                UnionJsonExceptionConverter.Singleton,
+                UnionJsonGeneratorConverter.Singleton,
+                UnionJsonNodeConverter.Singleton,
+                UnionJsonParserConverter.Singleton,
+                UnionJsonReaderConverter.Singleton,
+                UnionJsonTokenTypeConverter.Singleton,
                 UnionNoConverter.Singleton,
+                UnionNsErrorConverter.Singleton,
                 UnionNsStringConverter.Singleton,
                 UnionNullConverter.Singleton,
                 UnionNoneConverter.Singleton,
+                UnionObjectMapperConverter.Singleton,
                 UnionProtocolConverter.Singleton,
+                UnionRegExpConverter.Singleton,
                 UnionSelConverter.Singleton,
                 UnionSelfConverter.Singleton,
+                UnionSerializerProviderConverter.Singleton,
+                UnionSimpleModuleConverter.Singleton,
+                UnionStandardsConverter.Singleton,
+                UnionStdDeserializerConverter.Singleton,
+                UnionStdSerializerConverter.Singleton,
+                PurpleUnionTimeOnlyConverter.Singleton,
+                UnionTimeOnlyConverterConverter.Singleton,
                 UnionTrueConverter.Singleton,
                 UnionTypeConverter.Singleton,
+                UnionUuidConverter.Singleton,
+                UnionUtf8JsonReaderConverter.Singleton,
+                UnionUtf8JsonWriterConverter.Singleton,
                 UnionYesConverter.Singleton,
                 UnionUnionConverter.Singleton,
                 UnionBoolUnionConverter.Singleton,
@@ -4518,6 +5207,7 @@ namespace QuickType
                 UnionChar32TConverter.Singleton,
                 UnionCheckedConverter.Singleton,
                 UnionClassUnionConverter.Singleton,
+                UnionCloneConverter.Singleton,
                 UnionCoAwaitConverter.Singleton,
                 UnionCoReturnConverter.Singleton,
                 UnionCoYieldConverter.Singleton,
@@ -4557,6 +5247,7 @@ namespace QuickType
                 UnionElseConverter.Singleton,
                 UnionEncodeQuickTypeConverter.Singleton,
                 UnionEnumConverter.Singleton,
+                UnionEqualityContractConverter.Singleton,
                 UnionEventConverter.Singleton,
                 UnionExceptConverter.Singleton,
                 UnionExceptionConverter.Singleton,
@@ -4586,6 +5277,7 @@ namespace QuickType
                 UnionGotoConverter.Singleton,
                 UnionGuardConverter.Singleton,
                 UnionHasOwnPropertyConverter.Singleton,
+                UnionHashCodeConverter.Singleton,
                 UnionIdConverter.Singleton,
                 UnionIfConverter.Singleton,
                 UnionImplementsConverter.Singleton,
@@ -4628,6 +5320,7 @@ namespace QuickType
                 UnionNewConverter.Singleton,
                 UnionNewtonsoftConverter.Singleton,
                 UnionNilConverter.Singleton,
+                UnionNoSuchMethodConverter.Singleton,
                 UnionNoexceptConverter.Singleton,
                 UnionNonatomicConverter.Singleton,
                 UnionNoneUnionConverter.Singleton,
@@ -4656,6 +5349,7 @@ namespace QuickType
                 UnionPrecedenceConverter.Singleton,
                 UnionPrefixConverter.Singleton,
                 UnionPrintConverter.Singleton,
+                UnionPrintMembersConverter.Singleton,
                 UnionPrintfConverter.Singleton,
                 UnionPrivateConverter.Singleton,
                 UnionProtectedConverter.Singleton,
@@ -4677,6 +5371,8 @@ namespace QuickType
                 UnionRethrowsConverter.Singleton,
                 UnionReturnConverter.Singleton,
                 UnionRightConverter.Singleton,
+                UnionRuntimeTypeConverter.Singleton,
+                UnionSConverter.Singleton,
                 UnionSbyteConverter.Singleton,
                 UnionSealedConverter.Singleton,
                 UnionSelectConverter.Singleton,
@@ -4705,6 +5401,7 @@ namespace QuickType
                 UnionThreadLocalConverter.Singleton,
                 UnionThrowConverter.Singleton,
                 UnionThrowsConverter.Singleton,
+                UnionToStringConverter.Singleton,
                 UnionToJsonConverter.Singleton,
                 UnionTopLevelConverter.Singleton,
                 UnionTransientConverter.Singleton,
@@ -4858,9 +5555,9 @@ namespace QuickType
         public static readonly UnionClassConverter Singleton = new UnionClassConverter();
     }
 
-    internal class UnionFalseConverter : JsonConverter
+    internal class UnionCultureInfoConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionFalse) || t == typeof(UnionFalse?);
+        public override bool CanConvert(Type t) => t == typeof(UnionCultureInfo) || t == typeof(UnionCultureInfo?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4869,36 +5566,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionFalse { Double = doubleValue };
+                    return new UnionCultureInfo { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<False>(reader);
-                    return new UnionFalse { False = objectValue };
+                    var objectValue = serializer.Deserialize<CultureInfo>(reader);
+                    return new UnionCultureInfo { CultureInfo = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionFalse");
+            throw new Exception("Cannot unmarshal type UnionCultureInfo");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionFalse)untypedValue;
+            var value = (UnionCultureInfo)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.False != null)
+            if (value.CultureInfo != null)
             {
-                serializer.Serialize(writer, value.False);
+                serializer.Serialize(writer, value.CultureInfo);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionFalse");
+            throw new Exception("Cannot marshal type UnionCultureInfo");
         }
 
-        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+        public static readonly UnionCultureInfoConverter Singleton = new UnionCultureInfoConverter();
     }
 
-    internal class UnionImpConverter : JsonConverter
+    internal class UnionDateFormatterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionImp) || t == typeof(UnionImp?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateFormatter) || t == typeof(UnionDateFormatter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4907,36 +5604,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionImp { Double = doubleValue };
+                    return new UnionDateFormatter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Imp>(reader);
-                    return new UnionImp { Imp = objectValue };
+                    var objectValue = serializer.Deserialize<DateFormatter>(reader);
+                    return new UnionDateFormatter { DateFormatter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionImp");
+            throw new Exception("Cannot unmarshal type UnionDateFormatter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionImp)untypedValue;
+            var value = (UnionDateFormatter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Imp != null)
+            if (value.DateFormatter != null)
             {
-                serializer.Serialize(writer, value.Imp);
+                serializer.Serialize(writer, value.DateFormatter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionImp");
+            throw new Exception("Cannot marshal type UnionDateFormatter");
         }
 
-        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+        public static readonly UnionDateFormatterConverter Singleton = new UnionDateFormatterConverter();
     }
 
-    internal class UnionNoConverter : JsonConverter
+    internal class PurpleUnionDateOnlyConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNo) || t == typeof(UnionNo?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnly) || t == typeof(UnionDateOnly?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4945,36 +5642,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNo { Double = doubleValue };
+                    return new UnionDateOnly { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<No>(reader);
-                    return new UnionNo { No = objectValue };
+                    var objectValue = serializer.Deserialize<DateOnly>(reader);
+                    return new UnionDateOnly { DateOnly = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNo");
+            throw new Exception("Cannot unmarshal type UnionDateOnly");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNo)untypedValue;
+            var value = (UnionDateOnly)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.No != null)
+            if (value.DateOnly != null)
             {
-                serializer.Serialize(writer, value.No);
+                serializer.Serialize(writer, value.DateOnly);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNo");
+            throw new Exception("Cannot marshal type UnionDateOnly");
         }
 
-        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+        public static readonly PurpleUnionDateOnlyConverter Singleton = new PurpleUnionDateOnlyConverter();
     }
 
-    internal class UnionNsStringConverter : JsonConverter
+    internal class UnionDateOnlyConverterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNsString) || t == typeof(UnionNsString?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateOnlyConverter) || t == typeof(UnionDateOnlyConverter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -4983,36 +5680,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNsString { Double = doubleValue };
+                    return new UnionDateOnlyConverter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<NsString>(reader);
-                    return new UnionNsString { NsString = objectValue };
+                    var objectValue = serializer.Deserialize<DateOnlyConverter>(reader);
+                    return new UnionDateOnlyConverter { DateOnlyConverter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNsString");
+            throw new Exception("Cannot unmarshal type UnionDateOnlyConverter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNsString)untypedValue;
+            var value = (UnionDateOnlyConverter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.NsString != null)
+            if (value.DateOnlyConverter != null)
             {
-                serializer.Serialize(writer, value.NsString);
+                serializer.Serialize(writer, value.DateOnlyConverter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNsString");
+            throw new Exception("Cannot marshal type UnionDateOnlyConverter");
         }
 
-        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+        public static readonly UnionDateOnlyConverterConverter Singleton = new UnionDateOnlyConverterConverter();
     }
 
-    internal class UnionNullConverter : JsonConverter
+    internal class UnionDateTimeConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNull) || t == typeof(UnionNull?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTime) || t == typeof(UnionDateTime?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5021,36 +5718,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNull { Double = doubleValue };
+                    return new UnionDateTime { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Null>(reader);
-                    return new UnionNull { Null = objectValue };
+                    var objectValue = serializer.Deserialize<DateTime>(reader);
+                    return new UnionDateTime { DateTime = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNull");
+            throw new Exception("Cannot unmarshal type UnionDateTime");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNull)untypedValue;
+            var value = (UnionDateTime)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Null != null)
+            if (value.DateTime != null)
             {
-                serializer.Serialize(writer, value.Null);
+                serializer.Serialize(writer, value.DateTime);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNull");
+            throw new Exception("Cannot marshal type UnionDateTime");
         }
 
-        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+        public static readonly UnionDateTimeConverter Singleton = new UnionDateTimeConverter();
     }
 
-    internal class UnionNoneConverter : JsonConverter
+    internal class UnionDateTimeStylesConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionNone) || t == typeof(UnionNone?);
+        public override bool CanConvert(Type t) => t == typeof(UnionDateTimeStyles) || t == typeof(UnionDateTimeStyles?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5059,36 +5756,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionNone { Double = doubleValue };
+                    return new UnionDateTimeStyles { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<None>(reader);
-                    return new UnionNone { None = objectValue };
+                    var objectValue = serializer.Deserialize<DateTimeStylesClass>(reader);
+                    return new UnionDateTimeStyles { DateTimeStylesClass = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionNone");
+            throw new Exception("Cannot unmarshal type UnionDateTimeStyles");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionNone)untypedValue;
+            var value = (UnionDateTimeStyles)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.None != null)
+            if (value.DateTimeStylesClass != null)
             {
-                serializer.Serialize(writer, value.None);
+                serializer.Serialize(writer, value.DateTimeStylesClass);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionNone");
+            throw new Exception("Cannot marshal type UnionDateTimeStyles");
         }
 
-        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+        public static readonly UnionDateTimeStylesConverter Singleton = new UnionDateTimeStylesConverter();
     }
 
-    internal class UnionProtocolConverter : JsonConverter
+    internal class UnionEnumValuesConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionProtocol) || t == typeof(UnionProtocol?);
+        public override bool CanConvert(Type t) => t == typeof(UnionEnumValues) || t == typeof(UnionEnumValues?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5097,34 +5794,908 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionProtocol { Double = doubleValue };
+                    return new UnionEnumValues { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Protocol>(reader);
-                    return new UnionProtocol { Protocol = objectValue };
+                    var objectValue = serializer.Deserialize<EnumValues>(reader);
+                    return new UnionEnumValues { EnumValues = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionProtocol");
+            throw new Exception("Cannot unmarshal type UnionEnumValues");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionProtocol)untypedValue;
+            var value = (UnionEnumValues)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Protocol != null)
+            if (value.EnumValues != null)
             {
-                serializer.Serialize(writer, value.Protocol);
+                serializer.Serialize(writer, value.EnumValues);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionProtocol");
+            throw new Exception("Cannot marshal type UnionEnumValues");
         }
 
-        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+        public static readonly UnionEnumValuesConverter Singleton = new UnionEnumValuesConverter();
     }
 
-    internal class UnionSelConverter : JsonConverter
+    internal class UnionFalseConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionFalse) || t == typeof(UnionFalse?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionFalse { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<False>(reader);
+                    return new UnionFalse { False = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionFalse");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionFalse)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.False != null)
+            {
+                serializer.Serialize(writer, value.False);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionFalse");
+        }
+
+        public static readonly UnionFalseConverter Singleton = new UnionFalseConverter();
+    }
+
+    internal class UnionFormatExceptionConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionFormatException) || t == typeof(UnionFormatException?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionFormatException { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<FormatException>(reader);
+                    return new UnionFormatException { FormatException = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionFormatException");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionFormatException)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.FormatException != null)
+            {
+                serializer.Serialize(writer, value.FormatException);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionFormatException");
+        }
+
+        public static readonly UnionFormatExceptionConverter Singleton = new UnionFormatExceptionConverter();
+    }
+
+    internal class UnionImpConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionImp) || t == typeof(UnionImp?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionImp { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Imp>(reader);
+                    return new UnionImp { Imp = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionImp");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionImp)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Imp != null)
+            {
+                serializer.Serialize(writer, value.Imp);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionImp");
+        }
+
+        public static readonly UnionImpConverter Singleton = new UnionImpConverter();
+    }
+
+    internal class UnionIsoDateTimeOffsetConverterConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionIsoDateTimeOffsetConverter) || t == typeof(UnionIsoDateTimeOffsetConverter?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionIsoDateTimeOffsetConverter { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<IsoDateTimeOffsetConverter>(reader);
+                    return new UnionIsoDateTimeOffsetConverter { IsoDateTimeOffsetConverter = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionIsoDateTimeOffsetConverter)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.IsoDateTimeOffsetConverter != null)
+            {
+                serializer.Serialize(writer, value.IsoDateTimeOffsetConverter);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionIsoDateTimeOffsetConverter");
+        }
+
+        public static readonly UnionIsoDateTimeOffsetConverterConverter Singleton = new UnionIsoDateTimeOffsetConverterConverter();
+    }
+
+    internal class UnionJsonAnyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonAny) || t == typeof(UnionJsonAny?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonAny { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonAny>(reader);
+                    return new UnionJsonAny { JsonAny = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonAny");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonAny)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonAny != null)
+            {
+                serializer.Serialize(writer, value.JsonAny);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonAny");
+        }
+
+        public static readonly UnionJsonAnyConverter Singleton = new UnionJsonAnyConverter();
+    }
+
+    internal class UnionJsonCodingKeyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonCodingKey) || t == typeof(UnionJsonCodingKey?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonCodingKey { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonCodingKey>(reader);
+                    return new UnionJsonCodingKey { JsonCodingKey = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonCodingKey");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonCodingKey)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonCodingKey != null)
+            {
+                serializer.Serialize(writer, value.JsonCodingKey);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonCodingKey");
+        }
+
+        public static readonly UnionJsonCodingKeyConverter Singleton = new UnionJsonCodingKeyConverter();
+    }
+
+    internal class UnionJsonDecoderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonDecoder) || t == typeof(UnionJsonDecoder?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonDecoder { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonDecoder>(reader);
+                    return new UnionJsonDecoder { JsonDecoder = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonDecoder");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonDecoder)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonDecoder != null)
+            {
+                serializer.Serialize(writer, value.JsonDecoder);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonDecoder");
+        }
+
+        public static readonly UnionJsonDecoderConverter Singleton = new UnionJsonDecoderConverter();
+    }
+
+    internal class UnionJsonEncoderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonEncoder) || t == typeof(UnionJsonEncoder?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonEncoder { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonEncoder>(reader);
+                    return new UnionJsonEncoder { JsonEncoder = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonEncoder");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonEncoder)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonEncoder != null)
+            {
+                serializer.Serialize(writer, value.JsonEncoder);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonEncoder");
+        }
+
+        public static readonly UnionJsonEncoderConverter Singleton = new UnionJsonEncoderConverter();
+    }
+
+    internal class UnionJsonNullConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNull) || t == typeof(UnionJsonNull?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonNull { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonNull>(reader);
+                    return new UnionJsonNull { JsonNull = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonNull");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonNull)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonNull != null)
+            {
+                serializer.Serialize(writer, value.JsonNull);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonNull");
+        }
+
+        public static readonly UnionJsonNullConverter Singleton = new UnionJsonNullConverter();
+    }
+
+    internal class UnionJsonExceptionConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonException) || t == typeof(UnionJsonException?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonException { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonException>(reader);
+                    return new UnionJsonException { JsonException = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonException");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonException)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonException != null)
+            {
+                serializer.Serialize(writer, value.JsonException);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonException");
+        }
+
+        public static readonly UnionJsonExceptionConverter Singleton = new UnionJsonExceptionConverter();
+    }
+
+    internal class UnionJsonGeneratorConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonGenerator) || t == typeof(UnionJsonGenerator?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonGenerator { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonGenerator>(reader);
+                    return new UnionJsonGenerator { JsonGenerator = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonGenerator");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonGenerator)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonGenerator != null)
+            {
+                serializer.Serialize(writer, value.JsonGenerator);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonGenerator");
+        }
+
+        public static readonly UnionJsonGeneratorConverter Singleton = new UnionJsonGeneratorConverter();
+    }
+
+    internal class UnionJsonNodeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonNode) || t == typeof(UnionJsonNode?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonNode { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonNode>(reader);
+                    return new UnionJsonNode { JsonNode = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonNode");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonNode)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonNode != null)
+            {
+                serializer.Serialize(writer, value.JsonNode);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonNode");
+        }
+
+        public static readonly UnionJsonNodeConverter Singleton = new UnionJsonNodeConverter();
+    }
+
+    internal class UnionJsonParserConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonParser) || t == typeof(UnionJsonParser?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonParser { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonParser>(reader);
+                    return new UnionJsonParser { JsonParser = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonParser");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonParser)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonParser != null)
+            {
+                serializer.Serialize(writer, value.JsonParser);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonParser");
+        }
+
+        public static readonly UnionJsonParserConverter Singleton = new UnionJsonParserConverter();
+    }
+
+    internal class UnionJsonReaderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonReader) || t == typeof(UnionJsonReader?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonReader { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonReaderClass>(reader);
+                    return new UnionJsonReader { JsonReaderClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonReader");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonReader)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonReaderClass != null)
+            {
+                serializer.Serialize(writer, value.JsonReaderClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonReader");
+        }
+
+        public static readonly UnionJsonReaderConverter Singleton = new UnionJsonReaderConverter();
+    }
+
+    internal class UnionJsonTokenTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionJsonTokenType) || t == typeof(UnionJsonTokenType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionJsonTokenType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<JsonTokenType>(reader);
+                    return new UnionJsonTokenType { JsonTokenType = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionJsonTokenType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionJsonTokenType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.JsonTokenType != null)
+            {
+                serializer.Serialize(writer, value.JsonTokenType);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionJsonTokenType");
+        }
+
+        public static readonly UnionJsonTokenTypeConverter Singleton = new UnionJsonTokenTypeConverter();
+    }
+
+    internal class UnionNoConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNo) || t == typeof(UnionNo?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNo { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<No>(reader);
+                    return new UnionNo { No = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNo");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNo)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.No != null)
+            {
+                serializer.Serialize(writer, value.No);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNo");
+        }
+
+        public static readonly UnionNoConverter Singleton = new UnionNoConverter();
+    }
+
+    internal class UnionNsErrorConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsError) || t == typeof(UnionNsError?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNsError { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NsError>(reader);
+                    return new UnionNsError { NsError = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNsError");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNsError)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NsError != null)
+            {
+                serializer.Serialize(writer, value.NsError);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNsError");
+        }
+
+        public static readonly UnionNsErrorConverter Singleton = new UnionNsErrorConverter();
+    }
+
+    internal class UnionNsStringConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNsString) || t == typeof(UnionNsString?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNsString { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NsString>(reader);
+                    return new UnionNsString { NsString = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNsString");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNsString)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NsString != null)
+            {
+                serializer.Serialize(writer, value.NsString);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNsString");
+        }
+
+        public static readonly UnionNsStringConverter Singleton = new UnionNsStringConverter();
+    }
+
+    internal class UnionNullConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNull) || t == typeof(UnionNull?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNull { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Null>(reader);
+                    return new UnionNull { Null = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNull");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNull)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Null != null)
+            {
+                serializer.Serialize(writer, value.Null);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNull");
+        }
+
+        public static readonly UnionNullConverter Singleton = new UnionNullConverter();
+    }
+
+    internal class UnionNoneConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNone) || t == typeof(UnionNone?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNone { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<None>(reader);
+                    return new UnionNone { None = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNone");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNone)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.None != null)
+            {
+                serializer.Serialize(writer, value.None);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNone");
+        }
+
+        public static readonly UnionNoneConverter Singleton = new UnionNoneConverter();
+    }
+
+    internal class UnionObjectMapperConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionObjectMapper) || t == typeof(UnionObjectMapper?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionObjectMapper { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<ObjectMapper>(reader);
+                    return new UnionObjectMapper { ObjectMapper = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionObjectMapper");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionObjectMapper)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.ObjectMapper != null)
+            {
+                serializer.Serialize(writer, value.ObjectMapper);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionObjectMapper");
+        }
+
+        public static readonly UnionObjectMapperConverter Singleton = new UnionObjectMapperConverter();
+    }
+
+    internal class UnionProtocolConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionProtocol) || t == typeof(UnionProtocol?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionProtocol { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Protocol>(reader);
+                    return new UnionProtocol { Protocol = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionProtocol");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionProtocol)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Protocol != null)
+            {
+                serializer.Serialize(writer, value.Protocol);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionProtocol");
+        }
+
+        public static readonly UnionProtocolConverter Singleton = new UnionProtocolConverter();
+    }
+
+    internal class UnionRegExpConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRegExp) || t == typeof(UnionRegExp?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionRegExp { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<RegExp>(reader);
+                    return new UnionRegExp { RegExp = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionRegExp");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionRegExp)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.RegExp != null)
+            {
+                serializer.Serialize(writer, value.RegExp);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionRegExp");
+        }
+
+        public static readonly UnionRegExpConverter Singleton = new UnionRegExpConverter();
+    }
+
+    internal class UnionSelConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionSel) || t == typeof(UnionSel?);
 
@@ -5135,36 +6706,416 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionSel { Double = doubleValue };
+                    return new UnionSel { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Sel>(reader);
+                    return new UnionSel { Sel = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSel");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSel)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Sel != null)
+            {
+                serializer.Serialize(writer, value.Sel);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSel");
+        }
+
+        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+    }
+
+    internal class UnionSelfConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSelf) || t == typeof(UnionSelf?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSelf { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Self>(reader);
+                    return new UnionSelf { Self = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSelf");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSelf)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Self != null)
+            {
+                serializer.Serialize(writer, value.Self);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSelf");
+        }
+
+        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+    }
+
+    internal class UnionSerializerProviderConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSerializerProvider) || t == typeof(UnionSerializerProvider?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSerializerProvider { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Sel>(reader);
-                    return new UnionSel { Sel = objectValue };
+                    var objectValue = serializer.Deserialize<SerializerProvider>(reader);
+                    return new UnionSerializerProvider { SerializerProvider = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionSel");
+            throw new Exception("Cannot unmarshal type UnionSerializerProvider");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionSel)untypedValue;
+            var value = (UnionSerializerProvider)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Sel != null)
+            if (value.SerializerProvider != null)
+            {
+                serializer.Serialize(writer, value.SerializerProvider);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSerializerProvider");
+        }
+
+        public static readonly UnionSerializerProviderConverter Singleton = new UnionSerializerProviderConverter();
+    }
+
+    internal class UnionSimpleModuleConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionSimpleModule) || t == typeof(UnionSimpleModule?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionSimpleModule { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<SimpleModule>(reader);
+                    return new UnionSimpleModule { SimpleModule = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionSimpleModule");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionSimpleModule)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.SimpleModule != null)
+            {
+                serializer.Serialize(writer, value.SimpleModule);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionSimpleModule");
+        }
+
+        public static readonly UnionSimpleModuleConverter Singleton = new UnionSimpleModuleConverter();
+    }
+
+    internal class UnionStandardsConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStandards) || t == typeof(UnionStandards?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStandards { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<Standards>(reader);
+                    return new UnionStandards { Standards = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStandards");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStandards)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.Standards != null)
+            {
+                serializer.Serialize(writer, value.Standards);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStandards");
+        }
+
+        public static readonly UnionStandardsConverter Singleton = new UnionStandardsConverter();
+    }
+
+    internal class UnionStdDeserializerConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdDeserializer) || t == typeof(UnionStdDeserializer?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStdDeserializer { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<StdDeserializer>(reader);
+                    return new UnionStdDeserializer { StdDeserializer = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStdDeserializer");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStdDeserializer)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.StdDeserializer != null)
+            {
+                serializer.Serialize(writer, value.StdDeserializer);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStdDeserializer");
+        }
+
+        public static readonly UnionStdDeserializerConverter Singleton = new UnionStdDeserializerConverter();
+    }
+
+    internal class UnionStdSerializerConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionStdSerializer) || t == typeof(UnionStdSerializer?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionStdSerializer { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<StdSerializer>(reader);
+                    return new UnionStdSerializer { StdSerializer = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionStdSerializer");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionStdSerializer)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.StdSerializer != null)
+            {
+                serializer.Serialize(writer, value.StdSerializer);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionStdSerializer");
+        }
+
+        public static readonly UnionStdSerializerConverter Singleton = new UnionStdSerializerConverter();
+    }
+
+    internal class PurpleUnionTimeOnlyConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnly) || t == typeof(UnionTimeOnly?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTimeOnly { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TimeOnly>(reader);
+                    return new UnionTimeOnly { TimeOnly = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTimeOnly");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTimeOnly)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TimeOnly != null)
+            {
+                serializer.Serialize(writer, value.TimeOnly);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTimeOnly");
+        }
+
+        public static readonly PurpleUnionTimeOnlyConverter Singleton = new PurpleUnionTimeOnlyConverter();
+    }
+
+    internal class UnionTimeOnlyConverterConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTimeOnlyConverter) || t == typeof(UnionTimeOnlyConverter?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTimeOnlyConverter { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TimeOnlyConverter>(reader);
+                    return new UnionTimeOnlyConverter { TimeOnlyConverter = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTimeOnlyConverter");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTimeOnlyConverter)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TimeOnlyConverter != null)
+            {
+                serializer.Serialize(writer, value.TimeOnlyConverter);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTimeOnlyConverter");
+        }
+
+        public static readonly UnionTimeOnlyConverterConverter Singleton = new UnionTimeOnlyConverterConverter();
+    }
+
+    internal class UnionTrueConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionTrue) || t == typeof(UnionTrue?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionTrue { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<True>(reader);
+                    return new UnionTrue { True = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionTrue");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionTrue)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.True != null)
+            {
+                serializer.Serialize(writer, value.True);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionTrue");
+        }
+
+        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
+    }
+
+    internal class UnionTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionType) || t == typeof(UnionType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<TypeClass>(reader);
+                    return new UnionType { TypeClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.TypeClass != null)
             {
-                serializer.Serialize(writer, value.Sel);
+                serializer.Serialize(writer, value.TypeClass);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionSel");
+            throw new Exception("Cannot marshal type UnionType");
         }
 
-        public static readonly UnionSelConverter Singleton = new UnionSelConverter();
+        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
     }
 
-    internal class UnionSelfConverter : JsonConverter
+    internal class UnionUuidConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionSelf) || t == typeof(UnionSelf?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUuid) || t == typeof(UnionUuid?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5173,36 +7124,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionSelf { Double = doubleValue };
+                    return new UnionUuid { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<Self>(reader);
-                    return new UnionSelf { Self = objectValue };
+                    var objectValue = serializer.Deserialize<Uuid>(reader);
+                    return new UnionUuid { Uuid = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionSelf");
+            throw new Exception("Cannot unmarshal type UnionUuid");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionSelf)untypedValue;
+            var value = (UnionUuid)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.Self != null)
+            if (value.Uuid != null)
             {
-                serializer.Serialize(writer, value.Self);
+                serializer.Serialize(writer, value.Uuid);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionSelf");
+            throw new Exception("Cannot marshal type UnionUuid");
         }
 
-        public static readonly UnionSelfConverter Singleton = new UnionSelfConverter();
+        public static readonly UnionUuidConverter Singleton = new UnionUuidConverter();
     }
 
-    internal class UnionTrueConverter : JsonConverter
+    internal class UnionUtf8JsonReaderConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionTrue) || t == typeof(UnionTrue?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonReader) || t == typeof(UnionUtf8JsonReader?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5211,36 +7162,36 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionTrue { Double = doubleValue };
+                    return new UnionUtf8JsonReader { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<True>(reader);
-                    return new UnionTrue { True = objectValue };
+                    var objectValue = serializer.Deserialize<Utf8JsonReader>(reader);
+                    return new UnionUtf8JsonReader { Utf8JsonReader = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionTrue");
+            throw new Exception("Cannot unmarshal type UnionUtf8JsonReader");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionTrue)untypedValue;
+            var value = (UnionUtf8JsonReader)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.True != null)
+            if (value.Utf8JsonReader != null)
             {
-                serializer.Serialize(writer, value.True);
+                serializer.Serialize(writer, value.Utf8JsonReader);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionTrue");
+            throw new Exception("Cannot marshal type UnionUtf8JsonReader");
         }
 
-        public static readonly UnionTrueConverter Singleton = new UnionTrueConverter();
+        public static readonly UnionUtf8JsonReaderConverter Singleton = new UnionUtf8JsonReaderConverter();
     }
 
-    internal class UnionTypeConverter : JsonConverter
+    internal class UnionUtf8JsonWriterConverter : JsonConverter
     {
-        public override bool CanConvert(Type t) => t == typeof(UnionType) || t == typeof(UnionType?);
+        public override bool CanConvert(Type t) => t == typeof(UnionUtf8JsonWriter) || t == typeof(UnionUtf8JsonWriter?);
 
         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
         {
@@ -5249,31 +7200,31 @@ namespace QuickType
                 case JsonToken.Integer:
                 case JsonToken.Float:
                     var doubleValue = serializer.Deserialize<double>(reader);
-                    return new UnionType { Double = doubleValue };
+                    return new UnionUtf8JsonWriter { Double = doubleValue };
                 case JsonToken.StartObject:
-                    var objectValue = serializer.Deserialize<TypeClass>(reader);
-                    return new UnionType { TypeClass = objectValue };
+                    var objectValue = serializer.Deserialize<Utf8JsonWriter>(reader);
+                    return new UnionUtf8JsonWriter { Utf8JsonWriter = objectValue };
             }
-            throw new Exception("Cannot unmarshal type UnionType");
+            throw new Exception("Cannot unmarshal type UnionUtf8JsonWriter");
         }
 
         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
         {
-            var value = (UnionType)untypedValue;
+            var value = (UnionUtf8JsonWriter)untypedValue;
             if (value.Double != null)
             {
                 serializer.Serialize(writer, value.Double.Value);
                 return;
             }
-            if (value.TypeClass != null)
+            if (value.Utf8JsonWriter != null)
             {
-                serializer.Serialize(writer, value.TypeClass);
+                serializer.Serialize(writer, value.Utf8JsonWriter);
                 return;
             }
-            throw new Exception("Cannot marshal type UnionType");
+            throw new Exception("Cannot marshal type UnionUtf8JsonWriter");
         }
 
-        public static readonly UnionTypeConverter Singleton = new UnionTypeConverter();
+        public static readonly UnionUtf8JsonWriterConverter Singleton = new UnionUtf8JsonWriterConverter();
     }
 
     internal class UnionYesConverter : JsonConverter
@@ -6834,6 +8785,44 @@ namespace QuickType
         public static readonly UnionClassUnionConverter Singleton = new UnionClassUnionConverter();
     }
 
+    internal class UnionCloneConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionClone) || t == typeof(UnionClone?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionClone { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<CloneClass>(reader);
+                    return new UnionClone { CloneClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionClone");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionClone)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.CloneClass != null)
+            {
+                serializer.Serialize(writer, value.CloneClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionClone");
+        }
+
+        public static readonly UnionCloneConverter Singleton = new UnionCloneConverter();
+    }
+
     internal class UnionCoAwaitConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionCoAwait) || t == typeof(UnionCoAwait?);
@@ -8316,6 +10305,44 @@ namespace QuickType
         public static readonly UnionEnumConverter Singleton = new UnionEnumConverter();
     }
 
+    internal class UnionEqualityContractConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionEqualityContract) || t == typeof(UnionEqualityContract?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionEqualityContract { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<EqualityContractClass>(reader);
+                    return new UnionEqualityContract { EqualityContractClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionEqualityContract");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionEqualityContract)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.EqualityContractClass != null)
+            {
+                serializer.Serialize(writer, value.EqualityContractClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionEqualityContract");
+        }
+
+        public static readonly UnionEqualityContractConverter Singleton = new UnionEqualityContractConverter();
+    }
+
     internal class UnionEventConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionEvent) || t == typeof(UnionEvent?);
@@ -9418,6 +11445,44 @@ namespace QuickType
         public static readonly UnionHasOwnPropertyConverter Singleton = new UnionHasOwnPropertyConverter();
     }
 
+    internal class UnionHashCodeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionHashCode) || t == typeof(UnionHashCode?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionHashCode { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<HashCode>(reader);
+                    return new UnionHashCode { HashCode = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionHashCode");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionHashCode)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.HashCode != null)
+            {
+                serializer.Serialize(writer, value.HashCode);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionHashCode");
+        }
+
+        public static readonly UnionHashCodeConverter Singleton = new UnionHashCodeConverter();
+    }
+
     internal class UnionIdConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionId) || t == typeof(UnionId?);
@@ -11014,6 +13079,44 @@ namespace QuickType
         public static readonly UnionNilConverter Singleton = new UnionNilConverter();
     }
 
+    internal class UnionNoSuchMethodConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionNoSuchMethod) || t == typeof(UnionNoSuchMethod?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionNoSuchMethod { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<NoSuchMethod>(reader);
+                    return new UnionNoSuchMethod { NoSuchMethod = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionNoSuchMethod");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionNoSuchMethod)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.NoSuchMethod != null)
+            {
+                serializer.Serialize(writer, value.NoSuchMethod);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionNoSuchMethod");
+        }
+
+        public static readonly UnionNoSuchMethodConverter Singleton = new UnionNoSuchMethodConverter();
+    }
+
     internal class UnionNoexceptConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionNoexcept) || t == typeof(UnionNoexcept?);
@@ -12078,6 +14181,44 @@ namespace QuickType
         public static readonly UnionPrintConverter Singleton = new UnionPrintConverter();
     }
 
+    internal class UnionPrintMembersConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionPrintMembers) || t == typeof(UnionPrintMembers?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionPrintMembers { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<PrintMembersClass>(reader);
+                    return new UnionPrintMembers { PrintMembersClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionPrintMembers");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionPrintMembers)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.PrintMembersClass != null)
+            {
+                serializer.Serialize(writer, value.PrintMembersClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionPrintMembers");
+        }
+
+        public static readonly UnionPrintMembersConverter Singleton = new UnionPrintMembersConverter();
+    }
+
     internal class UnionPrintfConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionPrintf) || t == typeof(UnionPrintf?);
@@ -12876,6 +15017,82 @@ namespace QuickType
         public static readonly UnionRightConverter Singleton = new UnionRightConverter();
     }
 
+    internal class UnionRuntimeTypeConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionRuntimeType) || t == typeof(UnionRuntimeType?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionRuntimeType { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<RuntimeType>(reader);
+                    return new UnionRuntimeType { RuntimeType = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionRuntimeType");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionRuntimeType)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.RuntimeType != null)
+            {
+                serializer.Serialize(writer, value.RuntimeType);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionRuntimeType");
+        }
+
+        public static readonly UnionRuntimeTypeConverter Singleton = new UnionRuntimeTypeConverter();
+    }
+
+    internal class UnionSConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionS) || t == typeof(UnionS?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionS { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<S>(reader);
+                    return new UnionS { S = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionS");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionS)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.S != null)
+            {
+                serializer.Serialize(writer, value.S);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionS");
+        }
+
+        public static readonly UnionSConverter Singleton = new UnionSConverter();
+    }
+
     internal class UnionSbyteConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionSbyte) || t == typeof(UnionSbyte?);
@@ -13940,6 +16157,44 @@ namespace QuickType
         public static readonly UnionThrowsConverter Singleton = new UnionThrowsConverter();
     }
 
+    internal class UnionToStringConverter : JsonConverter
+    {
+        public override bool CanConvert(Type t) => t == typeof(UnionToString) || t == typeof(UnionToString?);
+
+        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
+        {
+            switch (reader.TokenType)
+            {
+                case JsonToken.Integer:
+                case JsonToken.Float:
+                    var doubleValue = serializer.Deserialize<double>(reader);
+                    return new UnionToString { Double = doubleValue };
+                case JsonToken.StartObject:
+                    var objectValue = serializer.Deserialize<ToStringClass>(reader);
+                    return new UnionToString { ToStringClass = objectValue };
+            }
+            throw new Exception("Cannot unmarshal type UnionToString");
+        }
+
+        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
+        {
+            var value = (UnionToString)untypedValue;
+            if (value.Double != null)
+            {
+                serializer.Serialize(writer, value.Double.Value);
+                return;
+            }
+            if (value.ToStringClass != null)
+            {
+                serializer.Serialize(writer, value.ToStringClass);
+                return;
+            }
+            throw new Exception("Cannot marshal type UnionToString");
+        }
+
+        public static readonly UnionToStringConverter Singleton = new UnionToStringConverter();
+    }
+
     internal class UnionToJsonConverter : JsonConverter
     {
         public override bool CanConvert(Type t) => t == typeof(UnionToJson) || t == typeof(UnionToJson?);
diff --git a/base/schema-dart/test/inputs/schema/keyword-enum.schema/default/TopLevel.dart b/head/schema-dart/test/inputs/schema/keyword-enum.schema/default/TopLevel.dart
index f8ff371..4873a8b 100644
--- a/base/schema-dart/test/inputs/schema/keyword-enum.schema/default/TopLevel.dart
+++ b/head/schema-dart/test/inputs/schema/keyword-enum.schema/default/TopLevel.dart
@@ -68,6 +68,7 @@ enum Enum {
     CHECKED,
     CLASS,
     ENUM_CLASS,
+    CLONE,
     CO_AWAIT,
     CO_RETURN,
     CO_YIELD,
@@ -82,8 +83,14 @@ enum Enum {
     CONVENIENCE,
     CONVERT,
     CONVERTER,
+    CULTURE_INFO,
     DATE,
     DATE_PARSE_HANDLING,
+    DATE_FORMATTER,
+    DATE_ONLY,
+    DATE_ONLY_CONVERTER,
+    DATE_TIME,
+    DATE_TIME_STYLES,
     DEBUGGER,
     DECIMAL,
     DECLARE,
@@ -107,6 +114,8 @@ enum Enum {
     ELSE,
     ENCODE_QUICK_TYPE,
     ENUM,
+    ENUM_VALUES,
+    EQUALITY_CONTRACT,
     EVENT,
     EXCEPT,
     EXCEPTION,
@@ -126,6 +135,7 @@ enum Enum {
     FLOAT,
     FOR,
     FOREACH,
+    FORMAT_EXCEPTION,
     FRIEND,
     FROM,
     FROM_JSON,
@@ -136,6 +146,7 @@ enum Enum {
     GO,
     GOTO,
     GUARD,
+    HASH_CODE,
     HAS_OWN_PROPERTY,
     ID,
     IF,
@@ -153,6 +164,7 @@ enum Enum {
     INT,
     INTERFACE,
     INTERNAL,
+    ISO_DATE_TIME_OFFSET_CONVERTER,
     ITERABLE,
     IS,
     JDEC,
@@ -163,6 +175,17 @@ enum Enum {
     JSON_SERIALIZER,
     JSON_TOKEN,
     JSON_WRITER,
+    JSON_ANY,
+    JSON_CODING_KEY,
+    JSON_DECODER,
+    JSON_ENCODER,
+    JSON_EXCEPTION,
+    JSON_GENERATOR,
+    JSON_NODE,
+    JSON_NULL,
+    JSON_PARSER,
+    JSON_READER,
+    JSON_TOKEN_TYPE,
     LAMBDA,
     LAZY,
     LEFT,
@@ -187,14 +210,17 @@ enum Enum {
     ENUM_NONE,
     NONLOCAL,
     NONMUTATING,
+    NO_SUCH_METHOD,
     NOT,
     NOT_EQ,
+    NS_ERROR,
     NS_STRING,
     NULL,
     ENUM_NULL,
     NULLPTR,
     NUMBER,
     OBJECT,
+    OBJECT_MAPPER,
     OF,
     ONEWAY,
     OPEN,
@@ -213,6 +239,7 @@ enum Enum {
     PREFIX,
     PRINT,
     PRINTF,
+    PRINT_MEMBERS,
     PRIVATE,
     PROTECTED,
     PROTOCOL,
@@ -223,6 +250,7 @@ enum Enum {
     RANGE,
     READONLY,
     REF,
+    REG_EXP,
     REGISTER,
     REINTERPRET_CAST,
     REPEAT,
@@ -234,6 +262,8 @@ enum Enum {
     RETHROWS,
     RETURN,
     RIGHT,
+    RUNTIME_TYPE,
+    S,
     SBYTE,
     SEALED,
     SEL,
@@ -241,14 +271,19 @@ enum Enum {
     SELF,
     ENUM_SELF,
     SERIALIZE,
+    SERIALIZER_PROVIDER,
     SET,
     SHORT,
     SIGNED,
+    SIMPLE_MODULE,
     SIZEOF,
     STACKALLOC,
+    STANDARDS,
     STATIC,
     STATIC_ASSERT,
     STATIC_CAST,
+    STD_DESERIALIZER,
+    STD_SERIALIZER,
     STRICTFP,
     STRING,
     STRUCT,
@@ -264,8 +299,11 @@ enum Enum {
     THREAD_LOCAL,
     THROW,
     THROWS,
+    TIME_ONLY,
+    TIME_ONLY_CONVERTER,
     TO_JSON,
     TOP_LEVEL,
+    TO_STRING,
     TRANSIENT,
     TRUE,
     ENUM_TRUE,
@@ -287,6 +325,9 @@ enum Enum {
     UNSIGNED,
     USHORT,
     USING,
+    UTF8_JSON_READER,
+    UTF8_JSON_WRITER,
+    UUID,
     VAR,
     VIRTUAL,
     VOID,
@@ -348,6 +389,7 @@ final enumValues = EnumValues({
     "checked": Enum.CHECKED,
     "class": Enum.CLASS,
     "Class": Enum.ENUM_CLASS,
+    "clone": Enum.CLONE,
     "co_await": Enum.CO_AWAIT,
     "co_return": Enum.CO_RETURN,
     "co_yield": Enum.CO_YIELD,
@@ -362,8 +404,14 @@ final enumValues = EnumValues({
     "convenience": Enum.CONVENIENCE,
     "convert": Enum.CONVERT,
     "converter": Enum.CONVERTER,
+    "CultureInfo": Enum.CULTURE_INFO,
     "date": Enum.DATE,
     "date_parse_handling": Enum.DATE_PARSE_HANDLING,
+    "DateFormatter": Enum.DATE_FORMATTER,
+    "DateOnly": Enum.DATE_ONLY,
+    "DateOnlyConverter": Enum.DATE_ONLY_CONVERTER,
+    "DateTime": Enum.DATE_TIME,
+    "DateTimeStyles": Enum.DATE_TIME_STYLES,
     "debugger": Enum.DEBUGGER,
     "decimal": Enum.DECIMAL,
     "declare": Enum.DECLARE,
@@ -387,6 +435,8 @@ final enumValues = EnumValues({
     "else": Enum.ELSE,
     "encode_quick_type": Enum.ENCODE_QUICK_TYPE,
     "enum": Enum.ENUM,
+    "EnumValues": Enum.ENUM_VALUES,
+    "equalityContract": Enum.EQUALITY_CONTRACT,
     "event": Enum.EVENT,
     "except": Enum.EXCEPT,
     "exception": Enum.EXCEPTION,
@@ -406,6 +456,7 @@ final enumValues = EnumValues({
     "float": Enum.FLOAT,
     "for": Enum.FOR,
     "foreach": Enum.FOREACH,
+    "FormatException": Enum.FORMAT_EXCEPTION,
     "friend": Enum.FRIEND,
     "from": Enum.FROM,
     "from_json": Enum.FROM_JSON,
@@ -416,6 +467,7 @@ final enumValues = EnumValues({
     "go": Enum.GO,
     "goto": Enum.GOTO,
     "guard": Enum.GUARD,
+    "hashCode": Enum.HASH_CODE,
     "hasOwnProperty": Enum.HAS_OWN_PROPERTY,
     "id": Enum.ID,
     "if": Enum.IF,
@@ -433,6 +485,7 @@ final enumValues = EnumValues({
     "int": Enum.INT,
     "interface": Enum.INTERFACE,
     "internal": Enum.INTERNAL,
+    "IsoDateTimeOffsetConverter": Enum.ISO_DATE_TIME_OFFSET_CONVERTER,
     "iterable": Enum.ITERABLE,
     "is": Enum.IS,
     "jdec": Enum.JDEC,
@@ -443,6 +496,17 @@ final enumValues = EnumValues({
     "json_serializer": Enum.JSON_SERIALIZER,
     "json_token": Enum.JSON_TOKEN,
     "json_writer": Enum.JSON_WRITER,
+    "JSONAny": Enum.JSON_ANY,
+    "JSONCodingKey": Enum.JSON_CODING_KEY,
+    "JSONDecoder": Enum.JSON_DECODER,
+    "JSONEncoder": Enum.JSON_ENCODER,
+    "JsonException": Enum.JSON_EXCEPTION,
+    "JsonGenerator": Enum.JSON_GENERATOR,
+    "JsonNode": Enum.JSON_NODE,
+    "JSONNull": Enum.JSON_NULL,
+    "JsonParser": Enum.JSON_PARSER,
+    "JsonReader": Enum.JSON_READER,
+    "JsonTokenType": Enum.JSON_TOKEN_TYPE,
     "lambda": Enum.LAMBDA,
     "lazy": Enum.LAZY,
     "left": Enum.LEFT,
@@ -467,14 +531,17 @@ final enumValues = EnumValues({
     "None": Enum.ENUM_NONE,
     "nonlocal": Enum.NONLOCAL,
     "nonmutating": Enum.NONMUTATING,
+    "noSuchMethod": Enum.NO_SUCH_METHOD,
     "not": Enum.NOT,
     "not_eq": Enum.NOT_EQ,
+    "NSError": Enum.NS_ERROR,
     "NSString": Enum.NS_STRING,
     "NULL": Enum.NULL,
     "null": Enum.ENUM_NULL,
     "nullptr": Enum.NULLPTR,
     "number": Enum.NUMBER,
     "object": Enum.OBJECT,
+    "ObjectMapper": Enum.OBJECT_MAPPER,
     "of": Enum.OF,
     "oneway": Enum.ONEWAY,
     "open": Enum.OPEN,
@@ -493,6 +560,7 @@ final enumValues = EnumValues({
     "prefix": Enum.PREFIX,
     "print": Enum.PRINT,
     "printf": Enum.PRINTF,
+    "printMembers": Enum.PRINT_MEMBERS,
     "private": Enum.PRIVATE,
     "protected": Enum.PROTECTED,
     "Protocol": Enum.PROTOCOL,
@@ -503,6 +571,7 @@ final enumValues = EnumValues({
     "range": Enum.RANGE,
     "readonly": Enum.READONLY,
     "ref": Enum.REF,
+    "RegExp": Enum.REG_EXP,
     "register": Enum.REGISTER,
     "reinterpret_cast": Enum.REINTERPRET_CAST,
     "repeat": Enum.REPEAT,
@@ -514,6 +583,8 @@ final enumValues = EnumValues({
     "rethrows": Enum.RETHROWS,
     "return": Enum.RETURN,
     "right": Enum.RIGHT,
+    "runtimeType": Enum.RUNTIME_TYPE,
+    "s": Enum.S,
     "sbyte": Enum.SBYTE,
     "sealed": Enum.SEALED,
     "SEL": Enum.SEL,
@@ -521,14 +592,19 @@ final enumValues = EnumValues({
     "Self": Enum.SELF,
     "self": Enum.ENUM_SELF,
     "serialize": Enum.SERIALIZE,
+    "SerializerProvider": Enum.SERIALIZER_PROVIDER,
     "set": Enum.SET,
     "short": Enum.SHORT,
     "signed": Enum.SIGNED,
+    "SimpleModule": Enum.SIMPLE_MODULE,
     "sizeof": Enum.SIZEOF,
     "stackalloc": Enum.STACKALLOC,
+    "Standards": Enum.STANDARDS,
     "static": Enum.STATIC,
     "static_assert": Enum.STATIC_ASSERT,
     "static_cast": Enum.STATIC_CAST,
+    "StdDeserializer": Enum.STD_DESERIALIZER,
+    "StdSerializer": Enum.STD_SERIALIZER,
     "strictfp": Enum.STRICTFP,
     "string": Enum.STRING,
     "struct": Enum.STRUCT,
@@ -544,8 +620,11 @@ final enumValues = EnumValues({
     "thread_local": Enum.THREAD_LOCAL,
     "throw": Enum.THROW,
     "throws": Enum.THROWS,
+    "TimeOnly": Enum.TIME_ONLY,
+    "TimeOnlyConverter": Enum.TIME_ONLY_CONVERTER,
     "to_json": Enum.TO_JSON,
     "top_level": Enum.TOP_LEVEL,
+    "toString": Enum.TO_STRING,
     "transient": Enum.TRANSIENT,
     "True": Enum.TRUE,
     "true": Enum.ENUM_TRUE,
@@ -567,6 +646,9 @@ final enumValues = EnumValues({
     "unsigned": Enum.UNSIGNED,
     "ushort": Enum.USHORT,
     "using": Enum.USING,
+    "Utf8JsonReader": Enum.UTF8_JSON_READER,
+    "Utf8JsonWriter": Enum.UTF8_JSON_WRITER,
+    "UUID": Enum.UUID,
     "var": Enum.VAR,
     "virtual": Enum.VIRTUAL,
     "void": Enum.VOID,
diff --git a/base/schema-dart/test/inputs/schema/keyword-unions.schema/default/TopLevel.dart b/head/schema-dart/test/inputs/schema/keyword-unions.schema/default/TopLevel.dart
index 5be94f5..673dfb0 100644
--- a/base/schema-dart/test/inputs/schema/keyword-unions.schema/default/TopLevel.dart
+++ b/head/schema-dart/test/inputs/schema/keyword-unions.schema/default/TopLevel.dart
@@ -52,6 +52,7 @@ class TopLevel {
     final dynamic checked;
     final dynamic purpleClass;
     final dynamic topLevelClass;
+    final dynamic clone;
     final dynamic coAwait;
     final dynamic coReturn;
     final dynamic coYield;
@@ -66,8 +67,14 @@ class TopLevel {
     final dynamic convenience;
     final dynamic convert;
     final dynamic converter;
+    final dynamic cultureInfo;
     final dynamic date;
     final dynamic dateParseHandling;
+    final dynamic dateFormatter;
+    final dynamic dateOnly;
+    final dynamic dateOnlyConverter;
+    final dynamic dateTime;
+    final dynamic dateTimeStyles;
     final dynamic debugger;
     final dynamic decimal;
     final dynamic declare;
@@ -92,6 +99,8 @@ class TopLevel {
     final dynamic topLevelElse;
     final dynamic encodeQuickType;
     final dynamic topLevelEnum;
+    final dynamic enumValues;
+    final dynamic equalityContract;
     final dynamic event;
     final dynamic except;
     final dynamic exception;
@@ -111,6 +120,7 @@ class TopLevel {
     final dynamic float;
     final dynamic topLevelFor;
     final dynamic foreach;
+    final dynamic formatException;
     final dynamic friend;
     final dynamic from;
     final dynamic topLevelFromJson;
@@ -121,6 +131,7 @@ class TopLevel {
     final dynamic go;
     final dynamic goto;
     final dynamic guard;
+    final dynamic topLevelHashCode;
     final dynamic hasOwnProperty;
     final dynamic id;
     final dynamic topLevelIf;
@@ -139,6 +150,7 @@ class TopLevel {
     final dynamic topLevelInterface;
     final dynamic internal;
     final dynamic topLevelIs;
+    final dynamic isoDateTimeOffsetConverter;
     final dynamic iterable;
     final dynamic jdec;
     final dynamic jenc;
@@ -148,6 +160,17 @@ class TopLevel {
     final dynamic jsonSerializer;
     final dynamic jsonToken;
     final dynamic jsonWriter;
+    final dynamic jsonAny;
+    final dynamic jsonCodingKey;
+    final dynamic jsonDecoder;
+    final dynamic jsonEncoder;
+    final dynamic jsonException;
+    final dynamic jsonGenerator;
+    final dynamic jsonNode;
+    final dynamic jsonNull;
+    final dynamic jsonParser;
+    final dynamic jsonReader;
+    final dynamic jsonTokenType;
     final dynamic lambda;
     final dynamic lazy;
     final dynamic left;
@@ -172,14 +195,17 @@ class TopLevel {
     final dynamic none;
     final dynamic nonlocal;
     final dynamic nonmutating;
+    final dynamic topLevelNoSuchMethod;
     final dynamic not;
     final dynamic notEq;
+    final dynamic nsError;
     final dynamic nsString;
     final dynamic topLevelNull;
     final dynamic purpleNull;
     final dynamic nullptr;
     final dynamic number;
     final dynamic object;
+    final dynamic objectMapper;
     final dynamic of;
     final dynamic oneway;
     final dynamic open;
@@ -198,6 +224,7 @@ class TopLevel {
     final dynamic prefix;
     final dynamic print;
     final dynamic printf;
+    final dynamic printMembers;
     final dynamic private;
     final dynamic protected;
     final dynamic protocol;
@@ -208,6 +235,7 @@ class TopLevel {
     final dynamic range;
     final dynamic readonly;
     final dynamic ref;
+    final dynamic regExp;
     final dynamic register;
     final dynamic reinterpretCast;
     final dynamic repeat;
@@ -219,6 +247,8 @@ class TopLevel {
     final dynamic rethrows;
     final dynamic topLevelReturn;
     final dynamic right;
+    final dynamic topLevelRuntimeType;
+    final dynamic s;
     final dynamic sbyte;
     final dynamic sealed;
     final dynamic sel;
@@ -226,14 +256,19 @@ class TopLevel {
     final dynamic self;
     final dynamic topLevelSelf;
     final dynamic serialize;
+    final dynamic serializerProvider;
     final dynamic topLevelSet;
     final dynamic short;
     final dynamic signed;
+    final dynamic simpleModule;
     final dynamic sizeof;
     final dynamic stackalloc;
+    final dynamic standards;
     final dynamic topLevelStatic;
     final dynamic staticAssert;
     final dynamic staticCast;
+    final dynamic stdDeserializer;
+    final dynamic stdSerializer;
     final dynamic strictfp;
     final dynamic string;
     final dynamic struct;
@@ -249,8 +284,11 @@ class TopLevel {
     final dynamic threadLocal;
     final dynamic topLevelThrow;
     final dynamic throws;
+    final dynamic timeOnly;
+    final dynamic timeOnlyConverter;
     final dynamic topLevelToJson;
     final dynamic topLevel;
+    final dynamic topLevelToString;
     final dynamic transient;
     final dynamic topLevelTrue;
     final dynamic purpleTrue;
@@ -272,6 +310,9 @@ class TopLevel {
     final dynamic unsigned;
     final dynamic ushort;
     final dynamic using;
+    final dynamic utf8JsonReader;
+    final dynamic utf8JsonWriter;
+    final dynamic uuid;
     final dynamic topLevelVar;
     final dynamic virtual;
     final dynamic topLevelVoid;
@@ -331,6 +372,7 @@ class TopLevel {
         this.checked,
         this.purpleClass,
         this.topLevelClass,
+        this.clone,
         this.coAwait,
         this.coReturn,
         this.coYield,
@@ -345,8 +387,14 @@ class TopLevel {
         this.convenience,
         this.convert,
         this.converter,
+        this.cultureInfo,
         this.date,
         this.dateParseHandling,
+        this.dateFormatter,
+        this.dateOnly,
+        this.dateOnlyConverter,
+        this.dateTime,
+        this.dateTimeStyles,
         this.debugger,
         this.decimal,
         this.declare,
@@ -371,6 +419,8 @@ class TopLevel {
         this.topLevelElse,
         this.encodeQuickType,
         this.topLevelEnum,
+        this.enumValues,
+        this.equalityContract,
         this.event,
         this.except,
         this.exception,
@@ -390,6 +440,7 @@ class TopLevel {
         this.float,
         this.topLevelFor,
         this.foreach,
+        this.formatException,
         this.friend,
         this.from,
         this.topLevelFromJson,
@@ -400,6 +451,7 @@ class TopLevel {
         this.go,
         this.goto,
         this.guard,
+        this.topLevelHashCode,
         this.hasOwnProperty,
         this.id,
         this.topLevelIf,
@@ -418,6 +470,7 @@ class TopLevel {
         this.topLevelInterface,
         this.internal,
         this.topLevelIs,
+        this.isoDateTimeOffsetConverter,
         this.iterable,
         this.jdec,
         this.jenc,
@@ -427,6 +480,17 @@ class TopLevel {
         this.jsonSerializer,
         this.jsonToken,
         this.jsonWriter,
+        this.jsonAny,
+        this.jsonCodingKey,
+        this.jsonDecoder,
+        this.jsonEncoder,
+        this.jsonException,
+        this.jsonGenerator,
+        this.jsonNode,
+        this.jsonNull,
+        this.jsonParser,
+        this.jsonReader,
+        this.jsonTokenType,
         this.lambda,
         this.lazy,
         this.left,
@@ -451,14 +515,17 @@ class TopLevel {
         this.none,
         this.nonlocal,
         this.nonmutating,
+        this.topLevelNoSuchMethod,
         this.not,
         this.notEq,
+        this.nsError,
         this.nsString,
         this.topLevelNull,
         this.purpleNull,
         this.nullptr,
         this.number,
         this.object,
+        this.objectMapper,
         this.of,
         this.oneway,
         this.open,
@@ -477,6 +544,7 @@ class TopLevel {
         this.prefix,
         this.print,
         this.printf,
+        this.printMembers,
         this.private,
         this.protected,
         this.protocol,
@@ -487,6 +555,7 @@ class TopLevel {
         this.range,
         this.readonly,
         this.ref,
+        this.regExp,
         this.register,
         this.reinterpretCast,
         this.repeat,
@@ -498,6 +567,8 @@ class TopLevel {
         this.rethrows,
         this.topLevelReturn,
         this.right,
+        this.topLevelRuntimeType,
+        this.s,
         this.sbyte,
         this.sealed,
         this.sel,
@@ -505,14 +576,19 @@ class TopLevel {
         this.self,
         this.topLevelSelf,
         this.serialize,
+        this.serializerProvider,
         this.topLevelSet,
         this.short,
         this.signed,
+        this.simpleModule,
         this.sizeof,
         this.stackalloc,
+        this.standards,
         this.topLevelStatic,
         this.staticAssert,
         this.staticCast,
+        this.stdDeserializer,
+        this.stdSerializer,
         this.strictfp,
         this.string,
         this.struct,
@@ -528,8 +604,11 @@ class TopLevel {
         this.threadLocal,
         this.topLevelThrow,
         this.throws,
+        this.timeOnly,
+        this.timeOnlyConverter,
         this.topLevelToJson,
         this.topLevel,
+        this.topLevelToString,
         this.transient,
         this.topLevelTrue,
         this.purpleTrue,
@@ -551,6 +630,9 @@ class TopLevel {
         this.unsigned,
         this.ushort,
         this.using,
+        this.utf8JsonReader,
+        this.utf8JsonWriter,
+        this.uuid,
         this.topLevelVar,
         this.virtual,
         this.topLevelVoid,
@@ -611,6 +693,7 @@ class TopLevel {
         checked: json["checked"],
         purpleClass: json["class"],
         topLevelClass: json["Class"],
+        clone: json["clone"],
         coAwait: json["co_await"],
         coReturn: json["co_return"],
         coYield: json["co_yield"],
@@ -625,8 +708,14 @@ class TopLevel {
         convenience: json["convenience"],
         convert: json["convert"],
         converter: json["converter"],
+        cultureInfo: json["CultureInfo"],
         date: json["date"],
         dateParseHandling: json["date_parse_handling"],
+        dateFormatter: json["DateFormatter"],
+        dateOnly: json["DateOnly"],
+        dateOnlyConverter: json["DateOnlyConverter"],
+        dateTime: json["DateTime"],
+        dateTimeStyles: json["DateTimeStyles"],
         debugger: json["debugger"],
         decimal: json["decimal"],
         declare: json["declare"],
@@ -651,6 +740,8 @@ class TopLevel {
         topLevelElse: json["else"],
         encodeQuickType: json["encode_quick_type"],
         topLevelEnum: json["enum"],
+        enumValues: json["EnumValues"],
+        equalityContract: json["equalityContract"],
         event: json["event"],
         except: json["except"],
         exception: json["exception"],
@@ -670,6 +761,7 @@ class TopLevel {
         float: json["float"],
         topLevelFor: json["for"],
         foreach: json["foreach"],
+        formatException: json["FormatException"],
         friend: json["friend"],
         from: json["from"],
         topLevelFromJson: json["from_json"],
@@ -680,6 +772,7 @@ class TopLevel {
         go: json["go"],
         goto: json["goto"],
         guard: json["guard"],
+        topLevelHashCode: json["hashCode"],
         hasOwnProperty: json["hasOwnProperty"],
         id: json["id"],
         topLevelIf: json["if"],
@@ -698,6 +791,7 @@ class TopLevel {
         topLevelInterface: json["interface"],
         internal: json["internal"],
         topLevelIs: json["is"],
+        isoDateTimeOffsetConverter: json["IsoDateTimeOffsetConverter"],
         iterable: json["iterable"],
         jdec: json["jdec"],
         jenc: json["jenc"],
@@ -707,6 +801,17 @@ class TopLevel {
         jsonSerializer: json["json_serializer"],
         jsonToken: json["json_token"],
         jsonWriter: json["json_writer"],
+        jsonAny: json["JSONAny"],
+        jsonCodingKey: json["JSONCodingKey"],
+        jsonDecoder: json["JSONDecoder"],
+        jsonEncoder: json["JSONEncoder"],
+        jsonException: json["JsonException"],
+        jsonGenerator: json["JsonGenerator"],
+        jsonNode: json["JsonNode"],
+        jsonNull: json["JSONNull"],
+        jsonParser: json["JsonParser"],
+        jsonReader: json["JsonReader"],
+        jsonTokenType: json["JsonTokenType"],
         lambda: json["lambda"],
         lazy: json["lazy"],
         left: json["left"],
@@ -731,14 +836,17 @@ class TopLevel {
         none: json["None"],
         nonlocal: json["nonlocal"],
         nonmutating: json["nonmutating"],
+        topLevelNoSuchMethod: json["noSuchMethod"],
         not: json["not"],
         notEq: json["not_eq"],
+        nsError: json["NSError"],
         nsString: json["NSString"],
         topLevelNull: json["NULL"],
         purpleNull: json["null"],
         nullptr: json["nullptr"],
         number: json["number"],
         object: json["object"],
+        objectMapper: json["ObjectMapper"],
         of: json["of"],
         oneway: json["oneway"],
         open: json["open"],
@@ -757,6 +865,7 @@ class TopLevel {
         prefix: json["prefix"],
         print: json["print"],
         printf: json["printf"],
+        printMembers: json["printMembers"],
         private: json["private"],
         protected: json["protected"],
         protocol: json["Protocol"],
@@ -767,6 +876,7 @@ class TopLevel {
         range: json["range"],
         readonly: json["readonly"],
         ref: json["ref"],
+        regExp: json["RegExp"],
         register: json["register"],
         reinterpretCast: json["reinterpret_cast"],
         repeat: json["repeat"],
@@ -778,6 +888,8 @@ class TopLevel {
         rethrows: json["rethrows"],
         topLevelReturn: json["return"],
         right: json["right"],
+        topLevelRuntimeType: json["runtimeType"],
+        s: json["s"],
         sbyte: json["sbyte"],
         sealed: json["sealed"],
         sel: json["SEL"],
@@ -785,14 +897,19 @@ class TopLevel {
         self: json["Self"],
         topLevelSelf: json["self"],
         serialize: json["serialize"],
+        serializerProvider: json["SerializerProvider"],
         topLevelSet: json["set"],
         short: json["short"],
         signed: json["signed"],
+        simpleModule: json["SimpleModule"],
         sizeof: json["sizeof"],
         stackalloc: json["stackalloc"],
+        standards: json["Standards"],
         topLevelStatic: json["static"],
         staticAssert: json["static_assert"],
         staticCast: json["static_cast"],
+        stdDeserializer: json["StdDeserializer"],
+        stdSerializer: json["StdSerializer"],
         strictfp: json["strictfp"],
         string: json["string"],
         struct: json["struct"],
@@ -808,8 +925,11 @@ class TopLevel {
         threadLocal: json["thread_local"],
         topLevelThrow: json["throw"],
         throws: json["throws"],
+        timeOnly: json["TimeOnly"],
+        timeOnlyConverter: json["TimeOnlyConverter"],
         topLevelToJson: json["to_json"],
         topLevel: json["top_level"],
+        topLevelToString: json["toString"],
         transient: json["transient"],
         topLevelTrue: json["True"],
         purpleTrue: json["true"],
@@ -831,6 +951,9 @@ class TopLevel {
         unsigned: json["unsigned"],
         ushort: json["ushort"],
         using: json["using"],
+        utf8JsonReader: json["Utf8JsonReader"],
+        utf8JsonWriter: json["Utf8JsonWriter"],
+        uuid: json["UUID"],
         topLevelVar: json["var"],
         virtual: json["virtual"],
         topLevelVoid: json["void"],
@@ -891,6 +1014,7 @@ class TopLevel {
         "checked": checked,
         "class": purpleClass,
         "Class": topLevelClass,
+        "clone": clone,
         "co_await": coAwait,
         "co_return": coReturn,
         "co_yield": coYield,
@@ -905,8 +1029,14 @@ class TopLevel {
         "convenience": convenience,
         "convert": convert,
         "converter": converter,
+        "CultureInfo": cultureInfo,
         "date": date,
         "date_parse_handling": dateParseHandling,
+        "DateFormatter": dateFormatter,
+        "DateOnly": dateOnly,
+        "DateOnlyConverter": dateOnlyConverter,
+        "DateTime": dateTime,
+        "DateTimeStyles": dateTimeStyles,
         "debugger": debugger,
         "decimal": decimal,
         "declare": declare,
@@ -931,6 +1061,8 @@ class TopLevel {
         "else": topLevelElse,
         "encode_quick_type": encodeQuickType,
         "enum": topLevelEnum,
+        "EnumValues": enumValues,
+        "equalityContract": equalityContract,
         "event": event,
         "except": except,
         "exception": exception,
@@ -950,6 +1082,7 @@ class TopLevel {
         "float": float,
         "for": topLevelFor,
         "foreach": foreach,
+        "FormatException": formatException,
         "friend": friend,
         "from": from,
         "from_json": topLevelFromJson,
@@ -960,6 +1093,7 @@ class TopLevel {
         "go": go,
         "goto": goto,
         "guard": guard,
+        "hashCode": topLevelHashCode,
         "hasOwnProperty": hasOwnProperty,
         "id": id,
         "if": topLevelIf,
@@ -978,6 +1112,7 @@ class TopLevel {
         "interface": topLevelInterface,
         "internal": internal,
         "is": topLevelIs,
+        "IsoDateTimeOffsetConverter": isoDateTimeOffsetConverter,
         "iterable": iterable,
         "jdec": jdec,
         "jenc": jenc,
@@ -987,6 +1122,17 @@ class TopLevel {
         "json_serializer": jsonSerializer,
         "json_token": jsonToken,
         "json_writer": jsonWriter,
+        "JSONAny": jsonAny,
+        "JSONCodingKey": jsonCodingKey,
+        "JSONDecoder": jsonDecoder,
+        "JSONEncoder": jsonEncoder,
+        "JsonException": jsonException,
+        "JsonGenerator": jsonGenerator,
+        "JsonNode": jsonNode,
+        "JSONNull": jsonNull,
+        "JsonParser": jsonParser,
+        "JsonReader": jsonReader,
+        "JsonTokenType": jsonTokenType,
         "lambda": lambda,
         "lazy": lazy,
         "left": left,
@@ -1011,14 +1157,17 @@ class TopLevel {
         "None": none,
         "nonlocal": nonlocal,
         "nonmutating": nonmutating,
+        "noSuchMethod": topLevelNoSuchMethod,
         "not": not,
         "not_eq": notEq,
+        "NSError": nsError,
         "NSString": nsString,
         "NULL": topLevelNull,
         "null": purpleNull,
         "nullptr": nullptr,
         "number": number,
         "object": object,
+        "ObjectMapper": objectMapper,
         "of": of,
         "oneway": oneway,
         "open": open,
@@ -1037,6 +1186,7 @@ class TopLevel {
         "prefix": prefix,
         "print": print,
         "printf": printf,
+        "printMembers": printMembers,
         "private": private,
         "protected": protected,
         "Protocol": protocol,
@@ -1047,6 +1197,7 @@ class TopLevel {
         "range": range,
         "readonly": readonly,
         "ref": ref,
+        "RegExp": regExp,
         "register": register,
         "reinterpret_cast": reinterpretCast,
         "repeat": repeat,
@@ -1058,6 +1209,8 @@ class TopLevel {
         "rethrows": rethrows,
         "return": topLevelReturn,
         "right": right,
+        "runtimeType": topLevelRuntimeType,
+        "s": s,
         "sbyte": sbyte,
         "sealed": sealed,
         "SEL": sel,
@@ -1065,14 +1218,19 @@ class TopLevel {
         "Self": self,
         "self": topLevelSelf,
         "serialize": serialize,
+        "SerializerProvider": serializerProvider,
         "set": topLevelSet,
         "short": short,
         "signed": signed,
+        "SimpleModule": simpleModule,
         "sizeof": sizeof,
         "stackalloc": stackalloc,
+        "Standards": standards,
         "static": topLevelStatic,
         "static_assert": staticAssert,
         "static_cast": staticCast,
+        "StdDeserializer": stdDeserializer,
+        "StdSerializer": stdSerializer,
         "strictfp": strictfp,
         "string": string,
         "struct": struct,
@@ -1088,8 +1246,11 @@ class TopLevel {
         "thread_local": threadLocal,
         "throw": topLevelThrow,
         "throws": throws,
+        "TimeOnly": timeOnly,
+        "TimeOnlyConverter": timeOnlyConverter,
         "to_json": topLevelToJson,
         "top_level": topLevel,
+        "toString": topLevelToString,
         "transient": transient,
         "True": topLevelTrue,
         "true": purpleTrue,
@@ -1111,6 +1272,9 @@ class TopLevel {
         "unsigned": unsigned,
         "ushort": ushort,
         "using": using,
+        "Utf8JsonReader": utf8JsonReader,
+        "Utf8JsonWriter": utf8JsonWriter,
+        "UUID": uuid,
         "var": topLevelVar,
         "virtual": virtual,
         "void": topLevelVoid,
@@ -1388,6 +1552,16 @@ class Checked {
     };
 }
 
+class Clone {
+    Clone();
+
+    factory Clone.fromJson(Map<String, dynamic> json) => Clone(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class CoAwait {
     CoAwait();
 
@@ -1518,6 +1692,16 @@ class Converter {
     };
 }
 
+class CultureInfo {
+    CultureInfo();
+
+    factory CultureInfo.fromJson(Map<String, dynamic> json) => CultureInfo(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Date {
     Date();
 
@@ -1528,6 +1712,36 @@ class Date {
     };
 }
 
+class DateFormatter {
+    DateFormatter();
+
+    factory DateFormatter.fromJson(Map<String, dynamic> json) => DateFormatter(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class DateOnly {
+    DateOnly();
+
+    factory DateOnly.fromJson(Map<String, dynamic> json) => DateOnly(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class DateOnlyConverter {
+    DateOnlyConverter();
+
+    factory DateOnlyConverter.fromJson(Map<String, dynamic> json) => DateOnlyConverter(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class DateParseHandling {
     DateParseHandling();
 
@@ -1538,6 +1752,26 @@ class DateParseHandling {
     };
 }
 
+class DateTimeClass {
+    DateTimeClass();
+
+    factory DateTimeClass.fromJson(Map<String, dynamic> json) => DateTimeClass(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class DateTimeStyles {
+    DateTimeStyles();
+
+    factory DateTimeStyles.fromJson(Map<String, dynamic> json) => DateTimeStyles(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Debugger {
     Debugger();
 
@@ -1718,6 +1952,26 @@ class EncodeQuickType {
     };
 }
 
+class EnumValuesClass {
+    EnumValuesClass();
+
+    factory EnumValuesClass.fromJson(Map<String, dynamic> json) => EnumValuesClass(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class EqualityContract {
+    EqualityContract();
+
+    factory EqualityContract.fromJson(Map<String, dynamic> json) => EqualityContract(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Event {
     Event();
 
@@ -1848,6 +2102,16 @@ class Foreach {
     };
 }
 
+class FormatExceptionClass {
+    FormatExceptionClass();
+
+    factory FormatExceptionClass.fromJson(Map<String, dynamic> json) => FormatExceptionClass(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Friend {
     Friend();
 
@@ -2048,6 +2312,16 @@ class Internal {
     };
 }
 
+class IsoDateTimeOffsetConverter {
+    IsoDateTimeOffsetConverter();
+
+    factory IsoDateTimeOffsetConverter.fromJson(Map<String, dynamic> json) => IsoDateTimeOffsetConverter(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Iterable {
     Iterable();
 
@@ -2098,6 +2372,26 @@ class Json {
     };
 }
 
+class JsonAny {
+    JsonAny();
+
+    factory JsonAny.fromJson(Map<String, dynamic> json) => JsonAny(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonCodingKey {
+    JsonCodingKey();
+
+    factory JsonCodingKey.fromJson(Map<String, dynamic> json) => JsonCodingKey(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class JsonConverter {
     JsonConverter();
 
@@ -2108,6 +2402,86 @@ class JsonConverter {
     };
 }
 
+class JsonDecoder {
+    JsonDecoder();
+
+    factory JsonDecoder.fromJson(Map<String, dynamic> json) => JsonDecoder(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonEncoder {
+    JsonEncoder();
+
+    factory JsonEncoder.fromJson(Map<String, dynamic> json) => JsonEncoder(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonException {
+    JsonException();
+
+    factory JsonException.fromJson(Map<String, dynamic> json) => JsonException(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonGenerator {
+    JsonGenerator();
+
+    factory JsonGenerator.fromJson(Map<String, dynamic> json) => JsonGenerator(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonNode {
+    JsonNode();
+
+    factory JsonNode.fromJson(Map<String, dynamic> json) => JsonNode(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonNull {
+    JsonNull();
+
+    factory JsonNull.fromJson(Map<String, dynamic> json) => JsonNull(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonParser {
+    JsonParser();
+
+    factory JsonParser.fromJson(Map<String, dynamic> json) => JsonParser(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class JsonReader {
+    JsonReader();
+
+    factory JsonReader.fromJson(Map<String, dynamic> json) => JsonReader(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class JsonSerializer {
     JsonSerializer();
 
@@ -2128,6 +2502,16 @@ class JsonToken {
     };
 }
 
+class JsonTokenType {
+    JsonTokenType();
+
+    factory JsonTokenType.fromJson(Map<String, dynamic> json) => JsonTokenType(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class JsonWriter {
     JsonWriter();
 
@@ -2378,6 +2762,16 @@ class NotEq {
     };
 }
 
+class NsError {
+    NsError();
+
+    factory NsError.fromJson(Map<String, dynamic> json) => NsError(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class NsString {
     NsString();
 
@@ -2418,6 +2812,16 @@ class Object {
     };
 }
 
+class ObjectMapper {
+    ObjectMapper();
+
+    factory ObjectMapper.fromJson(Map<String, dynamic> json) => ObjectMapper(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Of {
     Of();
 
@@ -2578,6 +2982,16 @@ class Print {
     };
 }
 
+class PrintMembers {
+    PrintMembers();
+
+    factory PrintMembers.fromJson(Map<String, dynamic> json) => PrintMembers(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Printf {
     Printf();
 
@@ -2728,6 +3142,16 @@ class Ref {
     };
 }
 
+class RegExpClass {
+    RegExpClass();
+
+    factory RegExpClass.fromJson(Map<String, dynamic> json) => RegExpClass(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Register {
     Register();
 
@@ -2828,6 +3252,16 @@ class Right {
     };
 }
 
+class S {
+    S();
+
+    factory S.fromJson(Map<String, dynamic> json) => S(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Sbyte {
     Sbyte();
 
@@ -2888,6 +3322,16 @@ class Serialize {
     };
 }
 
+class SerializerProvider {
+    SerializerProvider();
+
+    factory SerializerProvider.fromJson(Map<String, dynamic> json) => SerializerProvider(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Short {
     Short();
 
@@ -2908,6 +3352,16 @@ class Signed {
     };
 }
 
+class SimpleModule {
+    SimpleModule();
+
+    factory SimpleModule.fromJson(Map<String, dynamic> json) => SimpleModule(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Sizeof {
     Sizeof();
 
@@ -2928,6 +3382,16 @@ class Stackalloc {
     };
 }
 
+class Standards {
+    Standards();
+
+    factory Standards.fromJson(Map<String, dynamic> json) => Standards(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class StaticAssert {
     StaticAssert();
 
@@ -2948,6 +3412,26 @@ class StaticCast {
     };
 }
 
+class StdDeserializer {
+    StdDeserializer();
+
+    factory StdDeserializer.fromJson(Map<String, dynamic> json) => StdDeserializer(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class StdSerializer {
+    StdSerializer();
+
+    factory StdSerializer.fromJson(Map<String, dynamic> json) => StdSerializer(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Strictfp {
     Strictfp();
 
@@ -3058,6 +3542,26 @@ class Throws {
     };
 }
 
+class TimeOnly {
+    TimeOnly();
+
+    factory TimeOnly.fromJson(Map<String, dynamic> json) => TimeOnly(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class TimeOnlyConverter {
+    TimeOnlyConverter();
+
+    factory TimeOnlyConverter.fromJson(Map<String, dynamic> json) => TimeOnlyConverter(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class TopLevelClass {
     TopLevelClass();
 
@@ -3338,6 +3842,16 @@ class Get {
     };
 }
 
+class HashCode {
+    HashCode();
+
+    factory HashCode.fromJson(Map<String, dynamic> json) => HashCode(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class If {
     If();
 
@@ -3418,6 +3932,16 @@ class New {
     };
 }
 
+class NoSuchMethod {
+    NoSuchMethod();
+
+    factory NoSuchMethod.fromJson(Map<String, dynamic> json) => NoSuchMethod(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class NoneClass {
     NoneClass();
 
@@ -3468,6 +3992,16 @@ class Return {
     };
 }
 
+class RuntimeType {
+    RuntimeType();
+
+    factory RuntimeType.fromJson(Map<String, dynamic> json) => RuntimeType(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class SelfClass {
     SelfClass();
 
@@ -3548,6 +4082,16 @@ class ToJson {
     };
 }
 
+class ToString {
+    ToString();
+
+    factory ToString.fromJson(Map<String, dynamic> json) => ToString(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class True {
     True();
 
@@ -3798,6 +4342,36 @@ class Using {
     };
 }
 
+class Utf8JsonReader {
+    Utf8JsonReader();
+
+    factory Utf8JsonReader.fromJson(Map<String, dynamic> json) => Utf8JsonReader(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class Utf8JsonWriter {
+    Utf8JsonWriter();
+
+    factory Utf8JsonWriter.fromJson(Map<String, dynamic> json) => Utf8JsonWriter(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
+class Uuid {
+    Uuid();
+
+    factory Uuid.fromJson(Map<String, dynamic> json) => Uuid(
+    );
+
+    Map<String, dynamic> toJson() => {
+    };
+}
+
 class Virtual {
     Virtual();
 
diff --git a/base/schema-elixir/test/inputs/schema/keyword-enum.schema/default/QuickType.ex b/head/schema-elixir/test/inputs/schema/keyword-enum.schema/default/QuickType.ex
index 057b469..75b321e 100644
--- a/base/schema-elixir/test/inputs/schema/keyword-enum.schema/default/QuickType.ex
+++ b/head/schema-elixir/test/inputs/schema/keyword-enum.schema/default/QuickType.ex
@@ -50,6 +50,7 @@ defmodule EnumEnum do
     :checked,
     :class,
     :Class,
+    :clone,
     :co_await,
     :co_return,
     :co_yield,
@@ -64,8 +65,14 @@ defmodule EnumEnum do
     :convenience,
     :convert,
     :converter,
+    :CultureInfo,
     :date,
     :date_parse_handling,
+    :DateFormatter,
+    :DateOnly,
+    :DateOnlyConverter,
+    :DateTime,
+    :DateTimeStyles,
     :debugger,
     :decimal,
     :declare,
@@ -89,6 +96,8 @@ defmodule EnumEnum do
     :else,
     :encode_quick_type,
     :enum,
+    :EnumValues,
+    :equalityContract,
     :event,
     :except,
     :exception,
@@ -108,6 +117,7 @@ defmodule EnumEnum do
     :float,
     :for,
     :foreach,
+    :FormatException,
     :friend,
     :from,
     :from_json,
@@ -118,6 +128,7 @@ defmodule EnumEnum do
     :go,
     :goto,
     :guard,
+    :hashCode,
     :hasOwnProperty,
     :id,
     :if,
@@ -135,6 +146,7 @@ defmodule EnumEnum do
     :int,
     :interface,
     :internal,
+    :IsoDateTimeOffsetConverter,
     :iterable,
     :is,
     :jdec,
@@ -145,6 +157,17 @@ defmodule EnumEnum do
     :json_serializer,
     :json_token,
     :json_writer,
+    :JSONAny,
+    :JSONCodingKey,
+    :JSONDecoder,
+    :JSONEncoder,
+    :JsonException,
+    :JsonGenerator,
+    :JsonNode,
+    :JSONNull,
+    :JsonParser,
+    :JsonReader,
+    :JsonTokenType,
     :lambda,
     :lazy,
     :left,
@@ -169,14 +192,17 @@ defmodule EnumEnum do
     :None,
     :nonlocal,
     :nonmutating,
+    :noSuchMethod,
     :not,
     :not_eq,
+    :NSError,
     :NSString,
     :NULL,
     :null,
     :nullptr,
     :number,
     :object,
+    :ObjectMapper,
     :of,
     :oneway,
     :open,
@@ -195,6 +221,7 @@ defmodule EnumEnum do
     :prefix,
     :print,
     :printf,
+    :printMembers,
     :private,
     :protected,
     :Protocol,
@@ -205,6 +232,7 @@ defmodule EnumEnum do
     :range,
     :readonly,
     :ref,
+    :RegExp,
     :register,
     :reinterpret_cast,
     :repeat,
@@ -216,6 +244,8 @@ defmodule EnumEnum do
     :rethrows,
     :return,
     :right,
+    :runtimeType,
+    :s,
     :sbyte,
     :sealed,
     :SEL,
@@ -223,14 +253,19 @@ defmodule EnumEnum do
     :Self,
     :self,
     :serialize,
+    :SerializerProvider,
     :set,
     :short,
     :signed,
+    :SimpleModule,
     :sizeof,
     :stackalloc,
+    :Standards,
     :static,
     :static_assert,
     :static_cast,
+    :StdDeserializer,
+    :StdSerializer,
     :strictfp,
     :string,
     :struct,
@@ -246,8 +281,11 @@ defmodule EnumEnum do
     :thread_local,
     :throw,
     :throws,
+    :TimeOnly,
+    :TimeOnlyConverter,
     :to_json,
     :top_level,
+    :toString,
     :transient,
     :True,
     :true,
@@ -269,6 +307,9 @@ defmodule EnumEnum do
     :unsigned,
     :ushort,
     :using,
+    :Utf8JsonReader,
+    :Utf8JsonWriter,
+    :UUID,
     :var,
     :virtual,
     :void,
diff --git a/base/schema-elixir/test/inputs/schema/keyword-unions.schema/default/QuickType.ex b/head/schema-elixir/test/inputs/schema/keyword-unions.schema/default/QuickType.ex
index cb2f6d6..22c493d 100644
--- a/base/schema-elixir/test/inputs/schema/keyword-unions.schema/default/QuickType.ex
+++ b/head/schema-elixir/test/inputs/schema/keyword-unions.schema/default/QuickType.ex
@@ -1020,6 +1020,35 @@ defmodule Class do
   end
 end
 
+defmodule Clone do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Clone{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
 defmodule CoAwait do
   defstruct []
 
@@ -1455,14 +1484,14 @@ defmodule Converter do
   end
 end
 
-defmodule DateClass do
+defmodule CultureInfo do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DateClass{
+    %CultureInfo{
     }
   end
 
@@ -1484,14 +1513,14 @@ defmodule DateClass do
   end
 end
 
-defmodule DateParseHandling do
+defmodule DateClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DateParseHandling{
+    %DateClass{
     }
   end
 
@@ -1513,14 +1542,14 @@ defmodule DateParseHandling do
   end
 end
 
-defmodule Debugger do
+defmodule DateFormatter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Debugger{
+    %DateFormatter{
     }
   end
 
@@ -1542,14 +1571,14 @@ defmodule Debugger do
   end
 end
 
-defmodule Decimal do
+defmodule DateOnly do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Decimal{
+    %DateOnly{
     }
   end
 
@@ -1571,14 +1600,14 @@ defmodule Decimal do
   end
 end
 
-defmodule Declare do
+defmodule DateOnlyConverter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Declare{
+    %DateOnlyConverter{
     }
   end
 
@@ -1600,14 +1629,14 @@ defmodule Declare do
   end
 end
 
-defmodule Decltype do
+defmodule DateParseHandling do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Decltype{
+    %DateParseHandling{
     }
   end
 
@@ -1629,14 +1658,14 @@ defmodule Decltype do
   end
 end
 
-defmodule DecodeString do
+defmodule DateTimeClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DecodeString{
+    %DateTimeClass{
     }
   end
 
@@ -1658,14 +1687,14 @@ defmodule DecodeString do
   end
 end
 
-defmodule Default do
+defmodule DateTimeStyles do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Default{
+    %DateTimeStyles{
     }
   end
 
@@ -1687,14 +1716,14 @@ defmodule Default do
   end
 end
 
-defmodule Defer do
+defmodule Debugger do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Defer{
+    %Debugger{
     }
   end
 
@@ -1716,14 +1745,14 @@ defmodule Defer do
   end
 end
 
-defmodule Deinit do
+defmodule Decimal do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Deinit{
+    %Decimal{
     }
   end
 
@@ -1745,14 +1774,14 @@ defmodule Deinit do
   end
 end
 
-defmodule Del do
+defmodule Declare do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Del{
+    %Declare{
     }
   end
 
@@ -1774,14 +1803,14 @@ defmodule Del do
   end
 end
 
-defmodule Delegate do
+defmodule Decltype do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Delegate{
+    %Decltype{
     }
   end
 
@@ -1803,14 +1832,14 @@ defmodule Delegate do
   end
 end
 
-defmodule Delete do
+defmodule DecodeString do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Delete{
+    %DecodeString{
     }
   end
 
@@ -1832,14 +1861,14 @@ defmodule Delete do
   end
 end
 
-defmodule DictClass do
+defmodule Default do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DictClass{
+    %Default{
     }
   end
 
@@ -1861,14 +1890,14 @@ defmodule DictClass do
   end
 end
 
-defmodule Dictionary do
+defmodule Defer do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Dictionary{
+    %Defer{
     }
   end
 
@@ -1890,14 +1919,14 @@ defmodule Dictionary do
   end
 end
 
-defmodule DidSet do
+defmodule Deinit do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DidSet{
+    %Deinit{
     }
   end
 
@@ -1919,14 +1948,14 @@ defmodule DidSet do
   end
 end
 
-defmodule Double do
+defmodule Del do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Double{
+    %Del{
     }
   end
 
@@ -1948,14 +1977,14 @@ defmodule Double do
   end
 end
 
-defmodule Dynamic do
+defmodule Delegate do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Dynamic{
+    %Delegate{
     }
   end
 
@@ -1977,14 +2006,14 @@ defmodule Dynamic do
   end
 end
 
-defmodule DynamicCast do
+defmodule Delete do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %DynamicCast{
+    %Delete{
     }
   end
 
@@ -2006,14 +2035,14 @@ defmodule DynamicCast do
   end
 end
 
-defmodule Elif do
+defmodule DictClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Elif{
+    %DictClass{
     }
   end
 
@@ -2035,14 +2064,14 @@ defmodule Elif do
   end
 end
 
-defmodule Empty do
+defmodule Dictionary do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Empty{
+    %Dictionary{
     }
   end
 
@@ -2064,14 +2093,14 @@ defmodule Empty do
   end
 end
 
-defmodule EncodeQuickType do
+defmodule DidSet do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %EncodeQuickType{
+    %DidSet{
     }
   end
 
@@ -2093,14 +2122,14 @@ defmodule EncodeQuickType do
   end
 end
 
-defmodule EnumClass do
+defmodule Double do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %EnumClass{
+    %Double{
     }
   end
 
@@ -2122,14 +2151,14 @@ defmodule EnumClass do
   end
 end
 
-defmodule Event do
+defmodule Dynamic do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Event{
+    %Dynamic{
     }
   end
 
@@ -2151,14 +2180,14 @@ defmodule Event do
   end
 end
 
-defmodule Except do
+defmodule DynamicCast do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Except{
+    %DynamicCast{
     }
   end
 
@@ -2180,14 +2209,14 @@ defmodule Except do
   end
 end
 
-defmodule ExceptionClass do
+defmodule Elif do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ExceptionClass{
+    %Elif{
     }
   end
 
@@ -2209,14 +2238,14 @@ defmodule ExceptionClass do
   end
 end
 
-defmodule Explicit do
+defmodule Empty do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Explicit{
+    %Empty{
     }
   end
 
@@ -2238,14 +2267,14 @@ defmodule Explicit do
   end
 end
 
-defmodule Export do
+defmodule EncodeQuickType do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Export{
+    %EncodeQuickType{
     }
   end
 
@@ -2267,14 +2296,14 @@ defmodule Export do
   end
 end
 
-defmodule Exposing do
+defmodule EnumClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Exposing{
+    %EnumClass{
     }
   end
 
@@ -2296,14 +2325,14 @@ defmodule Exposing do
   end
 end
 
-defmodule Extends do
+defmodule EnumValues do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Extends{
+    %EnumValues{
     }
   end
 
@@ -2325,14 +2354,14 @@ defmodule Extends do
   end
 end
 
-defmodule Extension do
+defmodule EqualityContract do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Extension{
+    %EqualityContract{
     }
   end
 
@@ -2354,14 +2383,14 @@ defmodule Extension do
   end
 end
 
-defmodule Extern do
+defmodule Event do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Extern{
+    %Event{
     }
   end
 
@@ -2383,14 +2412,14 @@ defmodule Extern do
   end
 end
 
-defmodule Fallthrough do
+defmodule Except do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Fallthrough{
+    %Except{
     }
   end
 
@@ -2412,14 +2441,14 @@ defmodule Fallthrough do
   end
 end
 
-defmodule UnionFalseFalse do
+defmodule ExceptionClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %UnionFalseFalse{
+    %ExceptionClass{
     }
   end
 
@@ -2441,14 +2470,14 @@ defmodule UnionFalseFalse do
   end
 end
 
-defmodule Fileprivate do
+defmodule Explicit do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Fileprivate{
+    %Explicit{
     }
   end
 
@@ -2470,14 +2499,14 @@ defmodule Fileprivate do
   end
 end
 
-defmodule Final do
+defmodule Export do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Final{
+    %Export{
     }
   end
 
@@ -2499,14 +2528,14 @@ defmodule Final do
   end
 end
 
-defmodule Finally do
+defmodule Exposing do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Finally{
+    %Exposing{
     }
   end
 
@@ -2528,14 +2557,14 @@ defmodule Finally do
   end
 end
 
-defmodule Fixed do
+defmodule Extends do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Fixed{
+    %Extends{
     }
   end
 
@@ -2557,14 +2586,14 @@ defmodule Fixed do
   end
 end
 
-defmodule FloatClass do
+defmodule Extension do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %FloatClass{
+    %Extension{
     }
   end
 
@@ -2586,14 +2615,14 @@ defmodule FloatClass do
   end
 end
 
-defmodule For do
+defmodule Extern do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %For{
+    %Extern{
     }
   end
 
@@ -2615,14 +2644,14 @@ defmodule For do
   end
 end
 
-defmodule Foreach do
+defmodule Fallthrough do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Foreach{
+    %Fallthrough{
     }
   end
 
@@ -2644,14 +2673,14 @@ defmodule Foreach do
   end
 end
 
-defmodule Friend do
+defmodule UnionFalseFalse do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Friend{
+    %UnionFalseFalse{
     }
   end
 
@@ -2673,14 +2702,14 @@ defmodule Friend do
   end
 end
 
-defmodule From do
+defmodule Fileprivate do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %From{
+    %Fileprivate{
     }
   end
 
@@ -2702,14 +2731,14 @@ defmodule From do
   end
 end
 
-defmodule FromJSON do
+defmodule Final do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %FromJSON{
+    %Final{
     }
   end
 
@@ -2731,14 +2760,14 @@ defmodule FromJSON do
   end
 end
 
-defmodule Func do
+defmodule Finally do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Func{
+    %Finally{
     }
   end
 
@@ -2760,14 +2789,14 @@ defmodule Func do
   end
 end
 
-defmodule FunctionClass do
+defmodule Fixed do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %FunctionClass{
+    %Fixed{
     }
   end
 
@@ -2789,14 +2818,14 @@ defmodule FunctionClass do
   end
 end
 
-defmodule Get do
+defmodule FloatClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Get{
+    %FloatClass{
     }
   end
 
@@ -2818,14 +2847,14 @@ defmodule Get do
   end
 end
 
-defmodule Global do
+defmodule For do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Global{
+    %For{
     }
   end
 
@@ -2847,14 +2876,14 @@ defmodule Global do
   end
 end
 
-defmodule Go do
+defmodule Foreach do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Go{
+    %Foreach{
     }
   end
 
@@ -2876,14 +2905,14 @@ defmodule Go do
   end
 end
 
-defmodule Goto do
+defmodule FormatException do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Goto{
+    %FormatException{
     }
   end
 
@@ -2905,14 +2934,14 @@ defmodule Goto do
   end
 end
 
-defmodule Guard do
+defmodule Friend do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Guard{
+    %Friend{
     }
   end
 
@@ -2934,14 +2963,14 @@ defmodule Guard do
   end
 end
 
-defmodule HasOwnProperty do
+defmodule From do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %HasOwnProperty{
+    %From{
     }
   end
 
@@ -2963,14 +2992,14 @@ defmodule HasOwnProperty do
   end
 end
 
-defmodule ID do
+defmodule FromJSON do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ID{
+    %FromJSON{
     }
   end
 
@@ -2992,14 +3021,14 @@ defmodule ID do
   end
 end
 
-defmodule If do
+defmodule Func do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %If{
+    %Func{
     }
   end
 
@@ -3021,14 +3050,14 @@ defmodule If do
   end
 end
 
-defmodule Imaginery do
+defmodule FunctionClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Imaginery{
+    %FunctionClass{
     }
   end
 
@@ -3050,14 +3079,14 @@ defmodule Imaginery do
   end
 end
 
-defmodule Imp do
+defmodule Get do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Imp{
+    %Get{
     }
   end
 
@@ -3079,14 +3108,14 @@ defmodule Imp do
   end
 end
 
-defmodule Implements do
+defmodule Global do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Implements{
+    %Global{
     }
   end
 
@@ -3108,14 +3137,14 @@ defmodule Implements do
   end
 end
 
-defmodule Implicit do
+defmodule Go do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Implicit{
+    %Go{
     }
   end
 
@@ -3137,14 +3166,14 @@ defmodule Implicit do
   end
 end
 
-defmodule Indirect do
+defmodule Goto do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Indirect{
+    %Goto{
     }
   end
 
@@ -3166,14 +3195,14 @@ defmodule Indirect do
   end
 end
 
-defmodule Infix do
+defmodule Guard do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Infix{
+    %Guard{
     }
   end
 
@@ -3195,14 +3224,14 @@ defmodule Infix do
   end
 end
 
-defmodule Init do
+defmodule HasOwnProperty do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Init{
+    %HasOwnProperty{
     }
   end
 
@@ -3224,14 +3253,14 @@ defmodule Init do
   end
 end
 
-defmodule Inline do
+defmodule HashCode do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Inline{
+    %HashCode{
     }
   end
 
@@ -3253,14 +3282,14 @@ defmodule Inline do
   end
 end
 
-defmodule Inout do
+defmodule ID do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Inout{
+    %ID{
     }
   end
 
@@ -3282,14 +3311,14 @@ defmodule Inout do
   end
 end
 
-defmodule Instanceof do
+defmodule If do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Instanceof{
+    %If{
     }
   end
 
@@ -3311,14 +3340,14 @@ defmodule Instanceof do
   end
 end
 
-defmodule Int do
+defmodule Imaginery do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Int{
+    %Imaginery{
     }
   end
 
@@ -3340,14 +3369,14 @@ defmodule Int do
   end
 end
 
-defmodule Interface do
+defmodule Imp do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Interface{
+    %Imp{
     }
   end
 
@@ -3369,14 +3398,14 @@ defmodule Interface do
   end
 end
 
-defmodule Internal do
+defmodule Implements do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Internal{
+    %Implements{
     }
   end
 
@@ -3398,14 +3427,14 @@ defmodule Internal do
   end
 end
 
-defmodule Is do
+defmodule Implicit do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Is{
+    %Implicit{
     }
   end
 
@@ -3427,14 +3456,14 @@ defmodule Is do
   end
 end
 
-defmodule Iterable do
+defmodule Indirect do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Iterable{
+    %Indirect{
     }
   end
 
@@ -3456,14 +3485,14 @@ defmodule Iterable do
   end
 end
 
-defmodule Jdec do
+defmodule Infix do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Jdec{
+    %Infix{
     }
   end
 
@@ -3485,14 +3514,14 @@ defmodule Jdec do
   end
 end
 
-defmodule Jenc do
+defmodule Init do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Jenc{
+    %Init{
     }
   end
 
@@ -3514,14 +3543,14 @@ defmodule Jenc do
   end
 end
 
-defmodule Jpipe do
+defmodule Inline do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Jpipe{
+    %Inline{
     }
   end
 
@@ -3543,14 +3572,14 @@ defmodule Jpipe do
   end
 end
 
-defmodule JSON do
+defmodule Inout do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %JSON{
+    %Inout{
     }
   end
 
@@ -3572,14 +3601,14 @@ defmodule JSON do
   end
 end
 
-defmodule JSONConverter do
+defmodule Instanceof do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %JSONConverter{
+    %Instanceof{
     }
   end
 
@@ -3601,14 +3630,14 @@ defmodule JSONConverter do
   end
 end
 
-defmodule JSONSerializer do
+defmodule Int do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %JSONSerializer{
+    %Int{
     }
   end
 
@@ -3630,14 +3659,14 @@ defmodule JSONSerializer do
   end
 end
 
-defmodule JSONToken do
+defmodule Interface do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %JSONToken{
+    %Interface{
     }
   end
 
@@ -3659,14 +3688,14 @@ defmodule JSONToken do
   end
 end
 
-defmodule JSONWriter do
+defmodule Internal do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %JSONWriter{
+    %Internal{
     }
   end
 
@@ -3688,14 +3717,14 @@ defmodule JSONWriter do
   end
 end
 
-defmodule Lambda do
+defmodule Is do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Lambda{
+    %Is{
     }
   end
 
@@ -3717,14 +3746,14 @@ defmodule Lambda do
   end
 end
 
-defmodule Lazy do
+defmodule ISODateTimeOffsetConverter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Lazy{
+    %ISODateTimeOffsetConverter{
     }
   end
 
@@ -3746,14 +3775,14 @@ defmodule Lazy do
   end
 end
 
-defmodule Left do
+defmodule Iterable do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Left{
+    %Iterable{
     }
   end
 
@@ -3775,14 +3804,14 @@ defmodule Left do
   end
 end
 
-defmodule Let do
+defmodule Jdec do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Let{
+    %Jdec{
     }
   end
 
@@ -3804,14 +3833,14 @@ defmodule Let do
   end
 end
 
-defmodule ListClass do
+defmodule Jenc do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ListClass{
+    %Jenc{
     }
   end
 
@@ -3833,14 +3862,14 @@ defmodule ListClass do
   end
 end
 
-defmodule Lock do
+defmodule Jpipe do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Lock{
+    %Jpipe{
     }
   end
 
@@ -3862,14 +3891,14 @@ defmodule Lock do
   end
 end
 
-defmodule Long do
+defmodule JSON do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Long{
+    %JSON{
     }
   end
 
@@ -3891,14 +3920,14 @@ defmodule Long do
   end
 end
 
-defmodule MapClass do
+defmodule JSONAny do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %MapClass{
+    %JSONAny{
     }
   end
 
@@ -3920,14 +3949,14 @@ defmodule MapClass do
   end
 end
 
-defmodule MetadataPropertyHandling do
+defmodule JSONCodingKey do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %MetadataPropertyHandling{
+    %JSONCodingKey{
     }
   end
 
@@ -3949,14 +3978,14 @@ defmodule MetadataPropertyHandling do
   end
 end
 
-defmodule ModuleClass do
+defmodule JSONConverter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ModuleClass{
+    %JSONConverter{
     }
   end
 
@@ -3978,14 +4007,14 @@ defmodule ModuleClass do
   end
 end
 
-defmodule Mutable do
+defmodule JSONDecoder do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Mutable{
+    %JSONDecoder{
     }
   end
 
@@ -4007,14 +4036,14 @@ defmodule Mutable do
   end
 end
 
-defmodule Mutating do
+defmodule JSONEncoder do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Mutating{
+    %JSONEncoder{
     }
   end
 
@@ -4036,14 +4065,14 @@ defmodule Mutating do
   end
 end
 
-defmodule Namespace do
+defmodule JSONException do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Namespace{
+    %JSONException{
     }
   end
 
@@ -4065,14 +4094,14 @@ defmodule Namespace do
   end
 end
 
-defmodule Native do
+defmodule JSONGenerator do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Native{
+    %JSONGenerator{
     }
   end
 
@@ -4094,14 +4123,14 @@ defmodule Native do
   end
 end
 
-defmodule New do
+defmodule JSONNode do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %New{
+    %JSONNode{
     }
   end
 
@@ -4123,14 +4152,14 @@ defmodule New do
   end
 end
 
-defmodule Newtonsoft do
+defmodule JSONNull do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Newtonsoft{
+    %JSONNull{
     }
   end
 
@@ -4152,14 +4181,14 @@ defmodule Newtonsoft do
   end
 end
 
-defmodule No do
+defmodule JSONParser do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %No{
+    %JSONParser{
     }
   end
 
@@ -4181,14 +4210,14 @@ defmodule No do
   end
 end
 
-defmodule Noexcept do
+defmodule JSONReader do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Noexcept{
+    %JSONReader{
     }
   end
 
@@ -4210,14 +4239,14 @@ defmodule Noexcept do
   end
 end
 
-defmodule Nonatomic do
+defmodule JSONSerializer do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Nonatomic{
+    %JSONSerializer{
     }
   end
 
@@ -4239,14 +4268,14 @@ defmodule Nonatomic do
   end
 end
 
-defmodule None do
+defmodule JSONToken do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %None{
+    %JSONToken{
     }
   end
 
@@ -4268,14 +4297,14 @@ defmodule None do
   end
 end
 
-defmodule Nonlocal do
+defmodule JSONTokenType do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Nonlocal{
+    %JSONTokenType{
     }
   end
 
@@ -4297,14 +4326,14 @@ defmodule Nonlocal do
   end
 end
 
-defmodule Nonmutating do
+defmodule JSONWriter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Nonmutating{
+    %JSONWriter{
     }
   end
 
@@ -4326,14 +4355,14 @@ defmodule Nonmutating do
   end
 end
 
-defmodule NotEq do
+defmodule Lambda do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %NotEq{
+    %Lambda{
     }
   end
 
@@ -4355,14 +4384,14 @@ defmodule NotEq do
   end
 end
 
-defmodule NSString do
+defmodule Lazy do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %NSString{
+    %Lazy{
     }
   end
 
@@ -4384,14 +4413,14 @@ defmodule NSString do
   end
 end
 
-defmodule Null do
+defmodule Left do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Null{
+    %Left{
     }
   end
 
@@ -4413,14 +4442,14 @@ defmodule Null do
   end
 end
 
-defmodule Nullptr do
+defmodule Let do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Nullptr{
+    %Let{
     }
   end
 
@@ -4442,14 +4471,14 @@ defmodule Nullptr do
   end
 end
 
-defmodule Number do
+defmodule ListClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Number{
+    %ListClass{
     }
   end
 
@@ -4471,14 +4500,14 @@ defmodule Number do
   end
 end
 
-defmodule Object do
+defmodule Lock do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Object{
+    %Lock{
     }
   end
 
@@ -4500,14 +4529,14 @@ defmodule Object do
   end
 end
 
-defmodule Of do
+defmodule Long do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Of{
+    %Long{
     }
   end
 
@@ -4529,14 +4558,14 @@ defmodule Of do
   end
 end
 
-defmodule Oneway do
+defmodule MapClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Oneway{
+    %MapClass{
     }
   end
 
@@ -4558,14 +4587,14 @@ defmodule Oneway do
   end
 end
 
-defmodule Open do
+defmodule MetadataPropertyHandling do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Open{
+    %MetadataPropertyHandling{
     }
   end
 
@@ -4587,14 +4616,14 @@ defmodule Open do
   end
 end
 
-defmodule Operator do
+defmodule ModuleClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Operator{
+    %ModuleClass{
     }
   end
 
@@ -4616,14 +4645,14 @@ defmodule Operator do
   end
 end
 
-defmodule Optional do
+defmodule Mutable do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Optional{
+    %Mutable{
     }
   end
 
@@ -4645,14 +4674,14 @@ defmodule Optional do
   end
 end
 
-defmodule OrEq do
+defmodule Mutating do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %OrEq{
+    %Mutating{
     }
   end
 
@@ -4674,14 +4703,14 @@ defmodule OrEq do
   end
 end
 
-defmodule Out do
+defmodule Namespace do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Out{
+    %Namespace{
     }
   end
 
@@ -4703,14 +4732,14 @@ defmodule Out do
   end
 end
 
-defmodule Override do
+defmodule Native do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Override{
+    %Native{
     }
   end
 
@@ -4732,14 +4761,14 @@ defmodule Override do
   end
 end
 
-defmodule Package do
+defmodule New do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Package{
+    %New{
     }
   end
 
@@ -4761,14 +4790,14 @@ defmodule Package do
   end
 end
 
-defmodule Params do
+defmodule Newtonsoft do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Params{
+    %Newtonsoft{
     }
   end
 
@@ -4790,14 +4819,14 @@ defmodule Params do
   end
 end
 
-defmodule Pass do
+defmodule No do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Pass{
+    %No{
     }
   end
 
@@ -4819,14 +4848,14 @@ defmodule Pass do
   end
 end
 
-defmodule PortClass do
+defmodule NoSuchMethod do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %PortClass{
+    %NoSuchMethod{
     }
   end
 
@@ -4848,14 +4877,14 @@ defmodule PortClass do
   end
 end
 
-defmodule Postfix do
+defmodule Noexcept do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Postfix{
+    %Noexcept{
     }
   end
 
@@ -4877,14 +4906,14 @@ defmodule Postfix do
   end
 end
 
-defmodule Precedence do
+defmodule Nonatomic do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Precedence{
+    %Nonatomic{
     }
   end
 
@@ -4906,14 +4935,14 @@ defmodule Precedence do
   end
 end
 
-defmodule Prefix do
+defmodule None do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Prefix{
+    %None{
     }
   end
 
@@ -4935,14 +4964,14 @@ defmodule Prefix do
   end
 end
 
-defmodule Print do
+defmodule Nonlocal do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Print{
+    %Nonlocal{
     }
   end
 
@@ -4964,14 +4993,14 @@ defmodule Print do
   end
 end
 
-defmodule Printf do
+defmodule Nonmutating do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Printf{
+    %Nonmutating{
     }
   end
 
@@ -4993,14 +5022,14 @@ defmodule Printf do
   end
 end
 
-defmodule Private do
+defmodule NotEq do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Private{
+    %NotEq{
     }
   end
 
@@ -5022,14 +5051,14 @@ defmodule Private do
   end
 end
 
-defmodule Protected do
+defmodule NSError do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Protected{
+    %NSError{
     }
   end
 
@@ -5051,14 +5080,14 @@ defmodule Protected do
   end
 end
 
-defmodule ProtocolClass do
+defmodule NSString do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ProtocolClass{
+    %NSString{
     }
   end
 
@@ -5080,14 +5109,14 @@ defmodule ProtocolClass do
   end
 end
 
-defmodule Public do
+defmodule Null do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Public{
+    %Null{
     }
   end
 
@@ -5109,14 +5138,14 @@ defmodule Public do
   end
 end
 
-defmodule Quicktype do
+defmodule Nullptr do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Quicktype{
+    %Nullptr{
     }
   end
 
@@ -5138,14 +5167,14 @@ defmodule Quicktype do
   end
 end
 
-defmodule Raise do
+defmodule Number do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Raise{
+    %Number{
     }
   end
 
@@ -5167,14 +5196,14 @@ defmodule Raise do
   end
 end
 
-defmodule RangeClass do
+defmodule Object do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %RangeClass{
+    %Object{
     }
   end
 
@@ -5196,14 +5225,14 @@ defmodule RangeClass do
   end
 end
 
-defmodule Readonly do
+defmodule ObjectMapper do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Readonly{
+    %ObjectMapper{
     }
   end
 
@@ -5225,14 +5254,14 @@ defmodule Readonly do
   end
 end
 
-defmodule Ref do
+defmodule Of do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Ref{
+    %Of{
     }
   end
 
@@ -5254,14 +5283,1087 @@ defmodule Ref do
   end
 end
 
-defmodule Register do
+defmodule Oneway do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Register{
+    %Oneway{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Open do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Open{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Operator do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Operator{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Optional do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Optional{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule OrEq do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %OrEq{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Out do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Out{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Override do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Override{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Package do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Package{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Params do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Params{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Pass do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Pass{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule PortClass do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %PortClass{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Postfix do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Postfix{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Precedence do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Precedence{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Prefix do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Prefix{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Print do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Print{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule PrintMembers do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %PrintMembers{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Printf do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Printf{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Private do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Private{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Protected do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Protected{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule ProtocolClass do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %ProtocolClass{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Public do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Public{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Quicktype do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Quicktype{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Raise do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Raise{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule RangeClass do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %RangeClass{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Readonly do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Readonly{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Ref do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Ref{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule RegExp do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %RegExp{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Register do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Register{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule ReinterpretCast do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %ReinterpretCast{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Repeat do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Repeat{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Require do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Require{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Required do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Required{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Requires do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Requires{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Restrict do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Restrict{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Retain do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Retain{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Rethrows do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Rethrows{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Return do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Return{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Right do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Right{
     }
   end
 
@@ -5283,14 +6385,14 @@ defmodule Register do
   end
 end
 
-defmodule ReinterpretCast do
+defmodule RuntimeType do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ReinterpretCast{
+    %RuntimeType{
     }
   end
 
@@ -5312,14 +6414,14 @@ defmodule ReinterpretCast do
   end
 end
 
-defmodule Repeat do
+defmodule S do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Repeat{
+    %S{
     }
   end
 
@@ -5341,14 +6443,14 @@ defmodule Repeat do
   end
 end
 
-defmodule Require do
+defmodule Sbyte do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Require{
+    %Sbyte{
     }
   end
 
@@ -5370,14 +6472,14 @@ defmodule Require do
   end
 end
 
-defmodule Required do
+defmodule Sealed do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Required{
+    %Sealed{
     }
   end
 
@@ -5399,14 +6501,14 @@ defmodule Required do
   end
 end
 
-defmodule Requires do
+defmodule Sel do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Requires{
+    %Sel{
     }
   end
 
@@ -5428,14 +6530,14 @@ defmodule Requires do
   end
 end
 
-defmodule Restrict do
+defmodule Select do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Restrict{
+    %Select{
     }
   end
 
@@ -5457,14 +6559,14 @@ defmodule Restrict do
   end
 end
 
-defmodule Retain do
+defmodule Self do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Retain{
+    %Self{
     }
   end
 
@@ -5486,14 +6588,14 @@ defmodule Retain do
   end
 end
 
-defmodule Rethrows do
+defmodule Serialize do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Rethrows{
+    %Serialize{
     }
   end
 
@@ -5515,14 +6617,14 @@ defmodule Rethrows do
   end
 end
 
-defmodule Return do
+defmodule SerializerProvider do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Return{
+    %SerializerProvider{
     }
   end
 
@@ -5544,14 +6646,14 @@ defmodule Return do
   end
 end
 
-defmodule Right do
+defmodule SetClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Right{
+    %SetClass{
     }
   end
 
@@ -5573,14 +6675,14 @@ defmodule Right do
   end
 end
 
-defmodule Sbyte do
+defmodule Short do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Sbyte{
+    %Short{
     }
   end
 
@@ -5602,14 +6704,14 @@ defmodule Sbyte do
   end
 end
 
-defmodule Sealed do
+defmodule Signed do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Sealed{
+    %Signed{
     }
   end
 
@@ -5631,14 +6733,14 @@ defmodule Sealed do
   end
 end
 
-defmodule Sel do
+defmodule SimpleModule do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Sel{
+    %SimpleModule{
     }
   end
 
@@ -5660,14 +6762,14 @@ defmodule Sel do
   end
 end
 
-defmodule Select do
+defmodule Sizeof do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Select{
+    %Sizeof{
     }
   end
 
@@ -5689,14 +6791,14 @@ defmodule Select do
   end
 end
 
-defmodule Self do
+defmodule Stackalloc do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Self{
+    %Stackalloc{
     }
   end
 
@@ -5718,14 +6820,14 @@ defmodule Self do
   end
 end
 
-defmodule Serialize do
+defmodule Standards do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Serialize{
+    %Standards{
     }
   end
 
@@ -5747,14 +6849,14 @@ defmodule Serialize do
   end
 end
 
-defmodule SetClass do
+defmodule Static do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %SetClass{
+    %Static{
     }
   end
 
@@ -5776,14 +6878,14 @@ defmodule SetClass do
   end
 end
 
-defmodule Short do
+defmodule StaticAssert do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Short{
+    %StaticAssert{
     }
   end
 
@@ -5805,14 +6907,14 @@ defmodule Short do
   end
 end
 
-defmodule Signed do
+defmodule StaticCast do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Signed{
+    %StaticCast{
     }
   end
 
@@ -5834,14 +6936,14 @@ defmodule Signed do
   end
 end
 
-defmodule Sizeof do
+defmodule StdDeserializer do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Sizeof{
+    %StdDeserializer{
     }
   end
 
@@ -5863,14 +6965,14 @@ defmodule Sizeof do
   end
 end
 
-defmodule Stackalloc do
+defmodule StdSerializer do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Stackalloc{
+    %StdSerializer{
     }
   end
 
@@ -5892,14 +6994,14 @@ defmodule Stackalloc do
   end
 end
 
-defmodule Static do
+defmodule Strictfp do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Static{
+    %Strictfp{
     }
   end
 
@@ -5921,14 +7023,14 @@ defmodule Static do
   end
 end
 
-defmodule StaticAssert do
+defmodule StringClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %StaticAssert{
+    %StringClass{
     }
   end
 
@@ -5950,14 +7052,14 @@ defmodule StaticAssert do
   end
 end
 
-defmodule StaticCast do
+defmodule Struct do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %StaticCast{
+    %Struct{
     }
   end
 
@@ -5979,14 +7081,14 @@ defmodule StaticCast do
   end
 end
 
-defmodule Strictfp do
+defmodule Subscript do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Strictfp{
+    %Subscript{
     }
   end
 
@@ -6008,14 +7110,14 @@ defmodule Strictfp do
   end
 end
 
-defmodule StringClass do
+defmodule Super do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %StringClass{
+    %Super{
     }
   end
 
@@ -6037,14 +7139,14 @@ defmodule StringClass do
   end
 end
 
-defmodule Struct do
+defmodule Switch do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Struct{
+    %Switch{
     }
   end
 
@@ -6066,14 +7168,14 @@ defmodule Struct do
   end
 end
 
-defmodule Subscript do
+defmodule Symbol do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Subscript{
+    %Symbol{
     }
   end
 
@@ -6095,14 +7197,14 @@ defmodule Subscript do
   end
 end
 
-defmodule Super do
+defmodule Synchronized do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Super{
+    %Synchronized{
     }
   end
 
@@ -6124,14 +7226,14 @@ defmodule Super do
   end
 end
 
-defmodule Switch do
+defmodule SystemClass do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Switch{
+    %SystemClass{
     }
   end
 
@@ -6153,14 +7255,14 @@ defmodule Switch do
   end
 end
 
-defmodule Symbol do
+defmodule Template do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Symbol{
+    %Template{
     }
   end
 
@@ -6182,14 +7284,14 @@ defmodule Symbol do
   end
 end
 
-defmodule Synchronized do
+defmodule Then do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Synchronized{
+    %Then{
     }
   end
 
@@ -6211,14 +7313,14 @@ defmodule Synchronized do
   end
 end
 
-defmodule SystemClass do
+defmodule This do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %SystemClass{
+    %This{
     }
   end
 
@@ -6240,14 +7342,14 @@ defmodule SystemClass do
   end
 end
 
-defmodule Template do
+defmodule ThreadLocal do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Template{
+    %ThreadLocal{
     }
   end
 
@@ -6269,14 +7371,14 @@ defmodule Template do
   end
 end
 
-defmodule Then do
+defmodule Throw do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Then{
+    %Throw{
     }
   end
 
@@ -6298,14 +7400,14 @@ defmodule Then do
   end
 end
 
-defmodule This do
+defmodule Throws do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %This{
+    %Throws{
     }
   end
 
@@ -6327,14 +7429,14 @@ defmodule This do
   end
 end
 
-defmodule ThreadLocal do
+defmodule TimeOnly do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ThreadLocal{
+    %TimeOnly{
     }
   end
 
@@ -6356,14 +7458,14 @@ defmodule ThreadLocal do
   end
 end
 
-defmodule Throw do
+defmodule TimeOnlyConverter do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Throw{
+    %TimeOnlyConverter{
     }
   end
 
@@ -6385,14 +7487,14 @@ defmodule Throw do
   end
 end
 
-defmodule Throws do
+defmodule ToJSON do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %Throws{
+    %ToJSON{
     }
   end
 
@@ -6414,14 +7516,14 @@ defmodule Throws do
   end
 end
 
-defmodule ToJSON do
+defmodule ToString do
   defstruct []
 
   @type t :: %__MODULE__{
         }
 
   def from_map(m) when is_map(m) do
-    %ToJSON{
+    %ToString{
     }
   end
 
@@ -7603,6 +8705,93 @@ defmodule Using do
   end
 end
 
+defmodule Utf8JSONReader do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Utf8JSONReader{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule Utf8JSONWriter do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %Utf8JSONWriter{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
+defmodule UUID do
+  defstruct []
+
+  @type t :: %__MODULE__{
+        }
+
+  def from_map(m) when is_map(m) do
+    %UUID{
+    }
+  end
+
+  def from_json(json) do
+    json
+          |> Jason.decode!()
+          |> from_map()
+  end
+
+  def to_map(_struct) do
+    %{
+    }
+  end
+
+  def to_json(struct) do
+    struct
+          |> to_map()
+          |> Jason.encode!()
+  end
+end
+
 defmodule Var do
   defstruct []
 
@@ -8010,7 +9199,7 @@ defmodule Yield do
 end
 
 defmodule TopLevel do
-  defstruct [:empty, :top_level_bool, :complex, :imaginery, :abstract, :alignas, :alignof, :top_level_and, :and_eq, :top_level_any, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :top_level_catch, :chan, :char, :char16_t, :char32_t, :checked, :top_level_class, :class, :co_await, :co_return, :co_yield, :compl, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :date, :date_parse_handling, :debugger, :decimal, :declare, :decltype, :decode_string, :top_level_def, :default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :top_level_do, :double, :dummy, :dynamic, :dynamic_cast, :elif, :top_level_else, :encode_quick_type, :enum, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :top_level_false, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :has_own_property, :id, :if, :imp, :implements, :implicit, :top_level_import, :top_level_in, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :is, :iterable, :jdec, :jenc, :jpipe, :json, :json_converter, :json_serializer, :json_token, :json_writer, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :top_level_nil, :no, :noexcept, :nonatomic, :top_level_none, :none, :nonlocal, :nonmutating, :top_level_not, :not_eq, :ns_string, :null, :top_level_null, :nullptr, :number, :object, :of, :oneway, :open, :operator, :optional, :top_level_or, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :printf, :private, :protected, :protocol, :top_level_protocol, :public, :quicktype, :raise, :range, :readonly, :ref, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :sbyte, :sealed, :sel, :select, :self, :top_level_self, :serialize, :set, :short, :signed, :sizeof, :stackalloc, :static, :static_assert, :static_cast, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :to_json, :top_level, :transient, :top_level_true, :true_1, :try, :type, :top_level_type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
+  defstruct [:empty, :top_level_bool, :complex, :imaginery, :abstract, :alignas, :alignof, :top_level_and, :and_eq, :top_level_any, :any, :array, :as, :asm, :assert, :associatedtype, :associativity, :async, :atomic, :atomic_cancel, :atomic_commit, :atomic_noexcept, :auto, :await, :base, :bitand, :bitor, :bool, :bool_1, :boolean, :break, :bycopy, :byref, :byte, :case, :top_level_catch, :chan, :char, :char16_t, :char32_t, :checked, :top_level_class, :class, :clone, :co_await, :co_return, :co_yield, :compl, :concept, :console, :const, :const_cast, :constexpr, :constructor, :continue, :convenience, :convert, :converter, :culture_info, :date, :date_parse_handling, :date_formatter, :date_only, :date_only_converter, :date_time, :date_time_styles, :debugger, :decimal, :declare, :decltype, :decode_string, :top_level_def, :default, :defer, :deinit, :del, :delegate, :delete, :dict, :dictionary, :did_set, :top_level_do, :double, :dummy, :dynamic, :dynamic_cast, :elif, :top_level_else, :encode_quick_type, :enum, :enum_values, :equality_contract, :event, :except, :exception, :explicit, :export, :exposing, :extends, :extension, :extern, :fallthrough, :false_1, :top_level_false, :fileprivate, :final, :finally, :fixed, :float, :for, :foreach, :format_exception, :friend, :from, :from_json, :func, :function, :get, :global, :go, :goto, :guard, :hash_code, :has_own_property, :id, :if, :imp, :implements, :implicit, :top_level_import, :top_level_in, :indirect, :infix, :init, :inline, :inout, :instanceof, :int, :interface, :internal, :is, :iso_date_time_offset_converter, :iterable, :jdec, :jenc, :jpipe, :json, :json_converter, :json_serializer, :json_token, :json_writer, :json_any, :json_coding_key, :json_decoder, :json_encoder, :json_exception, :json_generator, :json_node, :json_null, :json_parser, :json_reader, :json_token_type, :lambda, :lazy, :left, :let, :list, :lock, :long, :map, :metadata_property_handling, :module, :mutable, :mutating, :namespace, :native, :new, :newtonsoft, :top_level_nil, :no, :noexcept, :nonatomic, :top_level_none, :none, :nonlocal, :nonmutating, :no_such_method, :top_level_not, :not_eq, :ns_error, :ns_string, :null, :top_level_null, :nullptr, :number, :object, :object_mapper, :of, :oneway, :open, :operator, :optional, :top_level_or, :or_eq, :out, :override, :package, :params, :pass, :port, :postfix, :precedence, :prefix, :print, :printf, :print_members, :private, :protected, :protocol, :top_level_protocol, :public, :quicktype, :raise, :range, :readonly, :ref, :reg_exp, :register, :reinterpret_cast, :repeat, :require, :required, :requires, :restrict, :retain, :rethrows, :return, :right, :runtime_type, :s, :sbyte, :sealed, :sel, :select, :self, :top_level_self, :serialize, :serializer_provider, :set, :short, :signed, :simple_module, :sizeof, :stackalloc, :standards, :static, :static_assert, :static_cast, :std_deserializer, :std_serializer, :strictfp, :string, :struct, :subscript, :super, :switch, :symbol, :synchronized, :system, :template, :then, :this, :thread_local, :throw, :throws, :time_only, :time_only_converter, :to_json, :top_level, :to_string, :transient, :top_level_true, :true_1, :try, :type, :top_level_type, :typealias, :typedef, :typeid, :typename, :typeof, :uint, :ulong, :unchecked, :undefined, :union, :unowned, :unsafe, :unsigned, :ushort, :using, :utf8_json_reader, :utf8_json_writer, :uuid, :var, :virtual, :void, :volatile, :wchar_t, :weak, :where, :while, :will_set, :with, :xor, :xor_eq, :yes, :yield]
 
   @type t :: %__MODULE__{
           empty: Empty.t() | float() | nil,
@@ -8056,6 +9245,7 @@ defmodule TopLevel do
           checked: Checked.t() | float() | nil,
           top_level_class: ClassClass.t() | float() | nil,
           class: Class.t() | float() | nil,
+          clone: Clone.t() | float() | nil,
           co_await: CoAwait.t() | float() | nil,
           co_return: CoReturn.t() | float() | nil,
           co_yield: CoYield.t() | float() | nil,
@@ -8070,8 +9260,14 @@ defmodule TopLevel do
           convenience: Convenience.t() | float() | nil,
           convert: Convert.t() | float() | nil,
           converter: Converter.t() | float() | nil,
+          culture_info: CultureInfo.t() | float() | nil,
           date: DateClass.t() | float() | nil,
           date_parse_handling: DateParseHandling.t() | float() | nil,
+          date_formatter: DateFormatter.t() | float() | nil,
+          date_only: DateOnly.t() | float() | nil,
+          date_only_converter: DateOnlyConverter.t() | float() | nil,
+          date_time: DateTimeClass.t() | float() | nil,
+          date_time_styles: DateTimeStyles.t() | float() | nil,
           debugger: Debugger.t() | float() | nil,
           decimal: Decimal.t() | float() | nil,
           declare: Declare.t() | float() | nil,
@@ -8096,6 +9292,8 @@ defmodule TopLevel do
           top_level_else: ElseClass.t() | float() | nil,
           encode_quick_type: EncodeQuickType.t() | float() | nil,
           enum: EnumClass.t() | float() | nil,
+          enum_values: EnumValues.t() | float() | nil,
+          equality_contract: EqualityContract.t() | float() | nil,
           event: Event.t() | float() | nil,
           except: Except.t() | float() | nil,
           exception: ExceptionClass.t() | float() | nil,
@@ -8115,6 +9313,7 @@ defmodule TopLevel do
           float: FloatClass.t() | float() | nil,
           for: For.t() | float() | nil,
           foreach: Foreach.t() | float() | nil,
+          format_exception: FormatException.t() | float() | nil,
           friend: Friend.t() | float() | nil,
           from: From.t() | float() | nil,
           from_json: FromJSON.t() | float() | nil,
@@ -8125,6 +9324,7 @@ defmodule TopLevel do
           go: Go.t() | float() | nil,
           goto: Goto.t() | float() | nil,
           guard: Guard.t() | float() | nil,
+          hash_code: HashCode.t() | float() | nil,
           has_own_property: HasOwnProperty.t() | float() | nil,
           id: ID.t() | float() | nil,
           if: If.t() | float() | nil,
@@ -8143,6 +9343,7 @@ defmodule TopLevel do
           interface: Interface.t() | float() | nil,
           internal: Internal.t() | float() | nil,
           is: Is.t() | float() | nil,
+          iso_date_time_offset_converter: ISODateTimeOffsetConverter.t() | float() | nil,
           iterable: Iterable.t() | float() | nil,
           jdec: Jdec.t() | float() | nil,
           jenc: Jenc.t() | float() | nil,
@@ -8152,6 +9353,17 @@ defmodule TopLevel do
           json_serializer: JSONSerializer.t() | float() | nil,
           json_token: JSONToken.t() | float() | nil,
           json_writer: JSONWriter.t() | float() | nil,
+          json_any: JSONAny.t() | float() | nil,
+          json_coding_key: JSONCodingKey.t() | float() | nil,
+          json_decoder: JSONDecoder.t() | float() | nil,
+          json_encoder: JSONEncoder.t() | float() | nil,
+          json_exception: JSONException.t() | float() | nil,
+          json_generator: JSONGenerator.t() | float() | nil,
+          json_node: JSONNode.t() | float() | nil,
+          json_null: JSONNull.t() | float() | nil,
+          json_parser: JSONParser.t() | float() | nil,
+          json_reader: JSONReader.t() | float() | nil,
+          json_token_type: JSONTokenType.t() | float() | nil,
           lambda: Lambda.t() | float() | nil,
           lazy: Lazy.t() | float() | nil,
           left: Left.t() | float() | nil,
@@ -8176,14 +9388,17 @@ defmodule TopLevel do
           none: None.t() | float() | nil,
           nonlocal: Nonlocal.t() | float() | nil,
           nonmutating: Nonmutating.t() | float() | nil,
+          no_such_method: NoSuchMethod.t() | float() | nil,
           top_level_not: NotClass.t() | float() | nil,
           not_eq: NotEq.t() | float() | nil,
+          ns_error: NSError.t() | float() | nil,
           ns_string: NSString.t() | float() | nil,
           null: Null.t() | float() | nil,
           top_level_null: NullClass.t() | float() | nil,
           nullptr: Nullptr.t() | float() | nil,
           number: Number.t() | float() | nil,
           object: Object.t() | float() | nil,
+          object_mapper: ObjectMapper.t() | float() | nil,
           of: Of.t() | float() | nil,
           oneway: Oneway.t() | float() | nil,
           open: Open.t() | float() | nil,
@@ -8202,6 +9417,7 @@ defmodule TopLevel do
           prefix: Prefix.t() | float() | nil,
           print: Print.t() | float() | nil,
           printf: Printf.t() | float() | nil,
+          print_members: PrintMembers.t() | float() | nil,
           private: Private.t() | float() | nil,
           protected: Protected.t() | float() | nil,
           protocol: ProtocolClass.t() | float() | nil,
@@ -8212,6 +9428,7 @@ defmodule TopLevel do
           range: RangeClass.t() | float() | nil,
           readonly: Readonly.t() | float() | nil,
           ref: Ref.t() | float() | nil,
+          reg_exp: RegExp.t() | float() | nil,
           register: Register.t() | float() | nil,
           reinterpret_cast: ReinterpretCast.t() | float() | nil,
           repeat: Repeat.t() | float() | nil,
@@ -8223,6 +9440,8 @@ defmodule TopLevel do
           rethrows: Rethrows.t() | float() | nil,
           return: Return.t() | float() | nil,
           right: Right.t() | float() | nil,
+          runtime_type: RuntimeType.t() | float() | nil,
+          s: S.t() | float() | nil,
           sbyte: Sbyte.t() | float() | nil,
           sealed: Sealed.t() | float() | nil,
           sel: Sel.t() | float() | nil,
@@ -8230,14 +9449,19 @@ defmodule TopLevel do
           self: Self.t() | float() | nil,
           top_level_self: SelfClass.t() | float() | nil,
           serialize: Serialize.t() | float() | nil,
+          serializer_provider: SerializerProvider.t() | float() | nil,
           set: SetClass.t() | float() | nil,
           short: Short.t() | float() | nil,
           signed: Signed.t() | float() | nil,
+          simple_module: SimpleModule.t() | float() | nil,
           sizeof: Sizeof.t() | float() | nil,
           stackalloc: Stackalloc.t() | float() | nil,
+          standards: Standards.t() | float() | nil,
           static: Static.t() | float() | nil,
           static_assert: StaticAssert.t() | float() | nil,
           static_cast: StaticCast.t() | float() | nil,
+          std_deserializer: StdDeserializer.t() | float() | nil,
+          std_serializer: StdSerializer.t() | float() | nil,
           strictfp: Strictfp.t() | float() | nil,
           string: StringClass.t() | float() | nil,
           struct: Struct.t() | float() | nil,
@@ -8253,8 +9477,11 @@ defmodule TopLevel do
           thread_local: ThreadLocal.t() | float() | nil,
           throw: Throw.t() | float() | nil,
           throws: Throws.t() | float() | nil,
+          time_only: TimeOnly.t() | float() | nil,
+          time_only_converter: TimeOnlyConverter.t() | float() | nil,
           to_json: ToJSON.t() | float() | nil,
           top_level: TopLevelClass.t() | float() | nil,
+          to_string: ToString.t() | float() | nil,
           transient: Transient.t() | float() | nil,
           top_level_true: TrueClass.t() | float() | nil,
           true_1: UnionTrueTrue.t() | float() | nil,
@@ -8276,6 +9503,9 @@ defmodule TopLevel do
           unsigned: Unsigned.t() | float() | nil,
           ushort: Ushort.t() | float() | nil,
           using: Using.t() | float() | nil,
+          utf8_json_reader: Utf8JSONReader.t() | float() | nil,
+          utf8_json_writer: Utf8JSONWriter.t() | float() | nil,
+          uuid: UUID.t() | float() | nil,
           var: Var.t() | float() | nil,
           virtual: Virtual.t() | float() | nil,
           void: Void.t() | float() | nil,
@@ -8808,6 +10038,18 @@ defmodule TopLevel do
   def encode_class(value) when is_nil(value), do: value
   def encode_class(_), do: {:error, "Unexpected type when encoding TopLevel.class"}
 
+  def decode_clone(%{} = value), do: Clone.from_map(value)
+  def decode_clone(value) when is_float(value), do: value
+  def decode_clone(value) when is_integer(value), do: value
+  def decode_clone(value) when is_nil(value), do: value
+  def decode_clone(_), do: {:error, "Unexpected type when decoding TopLevel.clone"}
+
+  def encode_clone(%Clone{} = value), do: Clone.to_map(value)
+  def encode_clone(value) when is_float(value), do: value
+  def encode_clone(value) when is_integer(value), do: value
+  def encode_clone(value) when is_nil(value), do: value
+  def encode_clone(_), do: {:error, "Unexpected type when encoding TopLevel.clone"}
+
   def decode_co_await(%{} = value), do: CoAwait.from_map(value)
   def decode_co_await(value) when is_float(value), do: value
   def decode_co_await(value) when is_integer(value), do: value
@@ -8976,6 +10218,18 @@ defmodule TopLevel do
   def encode_converter(value) when is_nil(value), do: value
   def encode_converter(_), do: {:error, "Unexpected type when encoding TopLevel.converter"}
 
+  def decode_culture_info(%{} = value), do: CultureInfo.from_map(value)
+  def decode_culture_info(value) when is_float(value), do: value
+  def decode_culture_info(value) when is_integer(value), do: value
+  def decode_culture_info(value) when is_nil(value), do: value
+  def decode_culture_info(_), do: {:error, "Unexpected type when decoding TopLevel.culture_info"}
+
+  def encode_culture_info(%CultureInfo{} = value), do: CultureInfo.to_map(value)
+  def encode_culture_info(value) when is_float(value), do: value
+  def encode_culture_info(value) when is_integer(value), do: value
+  def encode_culture_info(value) when is_nil(value), do: value
+  def encode_culture_info(_), do: {:error, "Unexpected type when encoding TopLevel.culture_info"}
+
   def decode_date(%{} = value), do: DateClass.from_map(value)
   def decode_date(value) when is_float(value), do: value
   def decode_date(value) when is_integer(value), do: value
@@ -9000,6 +10254,66 @@ defmodule TopLevel do
   def encode_date_parse_handling(value) when is_nil(value), do: value
   def encode_date_parse_handling(_), do: {:error, "Unexpected type when encoding TopLevel.date_parse_handling"}
 
+  def decode_date_formatter(%{} = value), do: DateFormatter.from_map(value)
+  def decode_date_formatter(value) when is_float(value), do: value
+  def decode_date_formatter(value) when is_integer(value), do: value
+  def decode_date_formatter(value) when is_nil(value), do: value
+  def decode_date_formatter(_), do: {:error, "Unexpected type when decoding TopLevel.date_formatter"}
+
+  def encode_date_formatter(%DateFormatter{} = value), do: DateFormatter.to_map(value)
+  def encode_date_formatter(value) when is_float(value), do: value
+  def encode_date_formatter(value) when is_integer(value), do: value
+  def encode_date_formatter(value) when is_nil(value), do: value
+  def encode_date_formatter(_), do: {:error, "Unexpected type when encoding TopLevel.date_formatter"}
+
+  def decode_date_only(%{} = value), do: DateOnly.from_map(value)
+  def decode_date_only(value) when is_float(value), do: value
+  def decode_date_only(value) when is_integer(value), do: value
+  def decode_date_only(value) when is_nil(value), do: value
+  def decode_date_only(_), do: {:error, "Unexpected type when decoding TopLevel.date_only"}
+
+  def encode_date_only(%DateOnly{} = value), do: DateOnly.to_map(value)
+  def encode_date_only(value) when is_float(value), do: value
+  def encode_date_only(value) when is_integer(value), do: value
+  def encode_date_only(value) when is_nil(value), do: value
+  def encode_date_only(_), do: {:error, "Unexpected type when encoding TopLevel.date_only"}
+
+  def decode_date_only_converter(%{} = value), do: DateOnlyConverter.from_map(value)
+  def decode_date_only_converter(value) when is_float(value), do: value
+  def decode_date_only_converter(value) when is_integer(value), do: value
+  def decode_date_only_converter(value) when is_nil(value), do: value
+  def decode_date_only_converter(_), do: {:error, "Unexpected type when decoding TopLevel.date_only_converter"}
+
+  def encode_date_only_converter(%DateOnlyConverter{} = value), do: DateOnlyConverter.to_map(value)
+  def encode_date_only_converter(value) when is_float(value), do: value
+  def encode_date_only_converter(value) when is_integer(value), do: value
+  def encode_date_only_converter(value) when is_nil(value), do: value
+  def encode_date_only_converter(_), do: {:error, "Unexpected type when encoding TopLevel.date_only_converter"}
+
+  def decode_date_time(%{} = value), do: DateTimeClass.from_map(value)
+  def decode_date_time(value) when is_float(value), do: value
+  def decode_date_time(value) when is_integer(value), do: value
+  def decode_date_time(value) when is_nil(value), do: value
+  def decode_date_time(_), do: {:error, "Unexpected type when decoding TopLevel.date_time"}
+
+  def encode_date_time(%DateTimeClass{} = value), do: DateTimeClass.to_map(value)
+  def encode_date_time(value) when is_float(value), do: value
+  def encode_date_time(value) when is_integer(value), do: value
+  def encode_date_time(value) when is_nil(value), do: value
+  def encode_date_time(_), do: {:error, "Unexpected type when encoding TopLevel.date_time"}
+
+  def decode_date_time_styles(%{} = value), do: DateTimeStyles.from_map(value)
+  def decode_date_time_styles(value) when is_float(value), do: value
+  def decode_date_time_styles(value) when is_integer(value), do: value
+  def decode_date_time_styles(value) when is_nil(value), do: value
+  def decode_date_time_styles(_), do: {:error, "Unexpected type when decoding TopLevel.date_time_styles"}
+
+  def encode_date_time_styles(%DateTimeStyles{} = value), do: DateTimeStyles.to_map(value)
+  def encode_date_time_styles(value) when is_float(value), do: value
+  def encode_date_time_styles(value) when is_integer(value), do: value
+  def encode_date_time_styles(value) when is_nil(value), do: value
+  def encode_date_time_styles(_), do: {:error, "Unexpected type when encoding TopLevel.date_time_styles"}
+
   def decode_debugger(%{} = value), do: Debugger.from_map(value)
   def decode_debugger(value) when is_float(value), do: value
   def decode_debugger(value) when is_integer(value), do: value
@@ -9284,6 +10598,30 @@ defmodule TopLevel do
   def encode_enum(value) when is_nil(value), do: value
   def encode_enum(_), do: {:error, "Unexpected type when encoding TopLevel.enum"}
 
+  def decode_enum_values(%{} = value), do: EnumValues.from_map(value)
+  def decode_enum_values(value) when is_float(value), do: value
+  def decode_enum_values(value) when is_integer(value), do: value
+  def decode_enum_values(value) when is_nil(value), do: value
+  def decode_enum_values(_), do: {:error, "Unexpected type when decoding TopLevel.enum_values"}
+
+  def encode_enum_values(%EnumValues{} = value), do: EnumValues.to_map(value)
+  def encode_enum_values(value) when is_float(value), do: value
+  def encode_enum_values(value) when is_integer(value), do: value
+  def encode_enum_values(value) when is_nil(value), do: value
+  def encode_enum_values(_), do: {:error, "Unexpected type when encoding TopLevel.enum_values"}
+
+  def decode_equality_contract(%{} = value), do: EqualityContract.from_map(value)
+  def decode_equality_contract(value) when is_float(value), do: value
+  def decode_equality_contract(value) when is_integer(value), do: value
+  def decode_equality_contract(value) when is_nil(value), do: value
+  def decode_equality_contract(_), do: {:error, "Unexpected type when decoding TopLevel.equality_contract"}
+
+  def encode_equality_contract(%EqualityContract{} = value), do: EqualityContract.to_map(value)
+  def encode_equality_contract(value) when is_float(value), do: value
+  def encode_equality_contract(value) when is_integer(value), do: value
+  def encode_equality_contract(value) when is_nil(value), do: value
+  def encode_equality_contract(_), do: {:error, "Unexpected type when encoding TopLevel.equality_contract"}
+
   def decode_event(%{} = value), do: Event.from_map(value)
   def decode_event(value) when is_float(value), do: value
   def decode_event(value) when is_integer(value), do: value
@@ -9512,6 +10850,18 @@ defmodule TopLevel do
   def encode_foreach(value) when is_nil(value), do: value
   def encode_foreach(_), do: {:error, "Unexpected type when encoding TopLevel.foreach"}
 
+  def decode_format_exception(%{} = value), do: FormatException.from_map(value)
+  def decode_format_exception(value) when is_float(value), do: value
+  def decode_format_exception(value) when is_integer(value), do: value
+  def decode_format_exception(value) when is_nil(value), do: value
+  def decode_format_exception(_), do: {:error, "Unexpected type when decoding TopLevel.format_exception"}
+
+  def encode_format_exception(%FormatException{} = value), do: FormatException.to_map(value)
+  def encode_format_exception(value) when is_float(value), do: value
+  def encode_format_exception(value) when is_integer(value), do: value
+  def encode_format_exception(value) when is_nil(value), do: value
+  def encode_format_exception(_), do: {:error, "Unexpected type when encoding TopLevel.format_exception"}
+
   def decode_friend(%{} = value), do: Friend.from_map(value)
   def decode_friend(value) when is_float(value), do: value
   def decode_friend(value) when is_integer(value), do: value
@@ -9632,6 +10982,18 @@ defmodule TopLevel do
   def encode_guard(value) when is_nil(value), do: value
   def encode_guard(_), do: {:error, "Unexpected type when encoding TopLevel.guard"}
 
+  def decode_hash_code(%{} = value), do: HashCode.from_map(value)
+  def decode_hash_code(value) when is_float(value), do: value
+  def decode_hash_code(value) when is_integer(value), do: value
+  def decode_hash_code(value) when is_nil(value), do: value
+  def decode_hash_code(_), do: {:error, "Unexpected type when decoding TopLevel.hash_code"}
+
+  def encode_hash_code(%HashCode{} = value), do: HashCode.to_map(value)
+  def encode_hash_code(value) when is_float(value), do: value
+  def encode_hash_code(value) when is_integer(value), do: value
+  def encode_hash_code(value) when is_nil(value), do: value
+  def encode_hash_code(_), do: {:error, "Unexpected type when encoding TopLevel.hash_code"}
+
   def decode_has_own_property(%{} = value), do: HasOwnProperty.from_map(value)
   def decode_has_own_property(value) when is_float(value), do: value
   def decode_has_own_property(value) when is_integer(value), do: value
@@ -9848,6 +11210,18 @@ defmodule TopLevel do
   def encode_is(value) when is_nil(value), do: value
   def encode_is(_), do: {:error, "Unexpected type when encoding TopLevel.is"}
 
+  def decode_iso_date_time_offset_converter(%{} = value), do: ISODateTimeOffsetConverter.from_map(value)
+  def decode_iso_date_time_offset_converter(value) when is_float(value), do: value
+  def decode_iso_date_time_offset_converter(value) when is_integer(value), do: value
+  def decode_iso_date_time_offset_converter(value) when is_nil(value), do: value
+  def decode_iso_date_time_offset_converter(_), do: {:error, "Unexpected type when decoding TopLevel.iso_date_time_offset_converter"}
+
+  def encode_iso_date_time_offset_converter(%ISODateTimeOffsetConverter{} = value), do: ISODateTimeOffsetConverter.to_map(value)
+  def encode_iso_date_time_offset_converter(value) when is_float(value), do: value
+  def encode_iso_date_time_offset_converter(value) when is_integer(value), do: value
+  def encode_iso_date_time_offset_converter(value) when is_nil(value), do: value
+  def encode_iso_date_time_offset_converter(_), do: {:error, "Unexpected type when encoding TopLevel.iso_date_time_offset_converter"}
+
   def decode_iterable(%{} = value), do: Iterable.from_map(value)
   def decode_iterable(value) when is_float(value), do: value
   def decode_iterable(value) when is_integer(value), do: value
@@ -9956,6 +11330,138 @@ defmodule TopLevel do
   def encode_json_writer(value) when is_nil(value), do: value
   def encode_json_writer(_), do: {:error, "Unexpected type when encoding TopLevel.json_writer"}
 
+  def decode_json_any(%{} = value), do: JSONAny.from_map(value)
+  def decode_json_any(value) when is_float(value), do: value
+  def decode_json_any(value) when is_integer(value), do: value
+  def decode_json_any(value) when is_nil(value), do: value
+  def decode_json_any(_), do: {:error, "Unexpected type when decoding TopLevel.json_any"}
+
+  def encode_json_any(%JSONAny{} = value), do: JSONAny.to_map(value)
+  def encode_json_any(value) when is_float(value), do: value
+  def encode_json_any(value) when is_integer(value), do: value
+  def encode_json_any(value) when is_nil(value), do: value
+  def encode_json_any(_), do: {:error, "Unexpected type when encoding TopLevel.json_any"}
+
+  def decode_json_coding_key(%{} = value), do: JSONCodingKey.from_map(value)
+  def decode_json_coding_key(value) when is_float(value), do: value
+  def decode_json_coding_key(value) when is_integer(value), do: value
+  def decode_json_coding_key(value) when is_nil(value), do: value
+  def decode_json_coding_key(_), do: {:error, "Unexpected type when decoding TopLevel.json_coding_key"}
+
+  def encode_json_coding_key(%JSONCodingKey{} = value), do: JSONCodingKey.to_map(value)
+  def encode_json_coding_key(value) when is_float(value), do: value
+  def encode_json_coding_key(value) when is_integer(value), do: value
+  def encode_json_coding_key(value) when is_nil(value), do: value
+  def encode_json_coding_key(_), do: {:error, "Unexpected type when encoding TopLevel.json_coding_key"}
+
+  def decode_json_decoder(%{} = value), do: JSONDecoder.from_map(value)
+  def decode_json_decoder(value) when is_float(value), do: value
+  def decode_json_decoder(value) when is_integer(value), do: value
+  def decode_json_decoder(value) when is_nil(value), do: value
+  def decode_json_decoder(_), do: {:error, "Unexpected type when decoding TopLevel.json_decoder"}
+
+  def encode_json_decoder(%JSONDecoder{} = value), do: JSONDecoder.to_map(value)
+  def encode_json_decoder(value) when is_float(value), do: value
+  def encode_json_decoder(value) when is_integer(value), do: value
+  def encode_json_decoder(value) when is_nil(value), do: value
+  def encode_json_decoder(_), do: {:error, "Unexpected type when encoding TopLevel.json_decoder"}
+
+  def decode_json_encoder(%{} = value), do: JSONEncoder.from_map(value)
+  def decode_json_encoder(value) when is_float(value), do: value
+  def decode_json_encoder(value) when is_integer(value), do: value
+  def decode_json_encoder(value) when is_nil(value), do: value
+  def decode_json_encoder(_), do: {:error, "Unexpected type when decoding TopLevel.json_encoder"}
+
+  def encode_json_encoder(%JSONEncoder{} = value), do: JSONEncoder.to_map(value)
+  def encode_json_encoder(value) when is_float(value), do: value
+  def encode_json_encoder(value) when is_integer(value), do: value
+  def encode_json_encoder(value) when is_nil(value), do: value
+  def encode_json_encoder(_), do: {:error, "Unexpected type when encoding TopLevel.json_encoder"}
+
+  def decode_json_exception(%{} = value), do: JSONException.from_map(value)
+  def decode_json_exception(value) when is_float(value), do: value
+  def decode_json_exception(value) when is_integer(value), do: value
+  def decode_json_exception(value) when is_nil(value), do: value
+  def decode_json_exception(_), do: {:error, "Unexpected type when decoding TopLevel.json_exception"}
+
+  def encode_json_exception(%JSONException{} = value), do: JSONException.to_map(value)
+  def encode_json_exception(value) when is_float(value), do: value
+  def encode_json_exception(value) when is_integer(value), do: value
+  def encode_json_exception(value) when is_nil(value), do: value
+  def encode_json_exception(_), do: {:error, "Unexpected type when encoding TopLevel.json_exception"}
+
+  def decode_json_generator(%{} = value), do: JSONGenerator.from_map(value)
+  def decode_json_generator(value) when is_float(value), do: value
+  def decode_json_generator(value) when is_integer(value), do: value
+  def decode_json_generator(value) when is_nil(value), do: value
+  def decode_json_generator(_), do: {:error, "Unexpected type when decoding TopLevel.json_generator"}
+
+  def encode_json_generator(%JSONGenerator{} = value), do: JSONGenerator.to_map(value)
+  def encode_json_generator(value) when is_float(value), do: value
+  def encode_json_generator(value) when is_integer(value), do: value
+  def encode_json_generator(value) when is_nil(value), do: value
+  def encode_json_generator(_), do: {:error, "Unexpected type when encoding TopLevel.json_generator"}
+
+  def decode_json_node(%{} = value), do: JSONNode.from_map(value)
+  def decode_json_node(value) when is_float(value), do: value
+  def decode_json_node(value) when is_integer(value), do: value
+  def decode_json_node(value) when is_nil(value), do: value
+  def decode_json_node(_), do: {:error, "Unexpected type when decoding TopLevel.json_node"}
+
+  def encode_json_node(%JSONNode{} = value), do: JSONNode.to_map(value)
+  def encode_json_node(value) when is_float(value), do: value
+  def encode_json_node(value) when is_integer(value), do: value
+  def encode_json_node(value) when is_nil(value), do: value
+  def encode_json_node(_), do: {:error, "Unexpected type when encoding TopLevel.json_node"}
+
+  def decode_json_null(%{} = value), do: JSONNull.from_map(value)
+  def decode_json_null(value) when is_float(value), do: value
+  def decode_json_null(value) when is_integer(value), do: value
+  def decode_json_null(value) when is_nil(value), do: value
+  def decode_json_null(_), do: {:error, "Unexpected type when decoding TopLevel.json_null"}
+
+  def encode_json_null(%JSONNull{} = value), do: JSONNull.to_map(value)
+  def encode_json_null(value) when is_float(value), do: value
+  def encode_json_null(value) when is_integer(value), do: value
+  def encode_json_null(value) when is_nil(value), do: value
+  def encode_json_null(_), do: {:error, "Unexpected type when encoding TopLevel.json_null"}
+
+  def decode_json_parser(%{} = value), do: JSONParser.from_map(value)
+  def decode_json_parser(value) when is_float(value), do: value
+  def decode_json_parser(value) when is_integer(value), do: value
+  def decode_json_parser(value) when is_nil(value), do: value
+  def decode_json_parser(_), do: {:error, "Unexpected type when decoding TopLevel.json_parser"}
+
+  def encode_json_parser(%JSONParser{} = value), do: JSONParser.to_map(value)
+  def encode_json_parser(value) when is_float(value), do: value
+  def encode_json_parser(value) when is_integer(value), do: value
+  def encode_json_parser(value) when is_nil(value), do: value
+  def encode_json_parser(_), do: {:error, "Unexpected type when encoding TopLevel.json_parser"}
+
+  def decode_json_reader(%{} = value), do: JSONReader.from_map(value)
+  def decode_json_reader(value) when is_float(value), do: value
+  def decode_json_reader(value) when is_integer(value), do: value
+  def decode_json_reader(value) when is_nil(value), do: value
+  def decode_json_reader(_), do: {:error, "Unexpected type when decoding TopLevel.json_reader"}
+
+  def encode_json_reader(%JSONReader{} = value), do: JSONReader.to_map(value)
+  def encode_json_reader(value) when is_float(value), do: value
+  def encode_json_reader(value) when is_integer(value), do: value
+  def encode_json_reader(value) when is_nil(value), do: value
+  def encode_json_reader(_), do: {:error, "Unexpected type when encoding TopLevel.json_reader"}
+
+  def decode_json_token_type(%{} = value), do: JSONTokenType.from_map(value)
+  def decode_json_token_type(value) when is_float(value), do: value
+  def decode_json_token_type(value) when is_integer(value), do: value
+  def decode_json_token_type(value) when is_nil(value), do: value
+  def decode_json_token_type(_), do: {:error, "Unexpected type when decoding TopLevel.json_token_type"}
+
+  def encode_json_token_type(%JSONTokenType{} = value), do: JSONTokenType.to_map(value)
+  def encode_json_token_type(value) when is_float(value), do: value
+  def encode_json_token_type(value) when is_integer(value), do: value
+  def encode_json_token_type(value) when is_nil(value), do: value
+  def encode_json_token_type(_), do: {:error, "Unexpected type when encoding TopLevel.json_token_type"}
+
   def decode_lambda(%{} = value), do: Lambda.from_map(value)
   def decode_lambda(value) when is_float(value), do: value
   def decode_lambda(value) when is_integer(value), do: value
@@ -10244,6 +11750,18 @@ defmodule TopLevel do
   def encode_nonmutating(value) when is_nil(value), do: value
   def encode_nonmutating(_), do: {:error, "Unexpected type when encoding TopLevel.nonmutating"}
 
+  def decode_no_such_method(%{} = value), do: NoSuchMethod.from_map(value)
+  def decode_no_such_method(value) when is_float(value), do: value
+  def decode_no_such_method(value) when is_integer(value), do: value
+  def decode_no_such_method(value) when is_nil(value), do: value
+  def decode_no_such_method(_), do: {:error, "Unexpected type when decoding TopLevel.no_such_method"}
+
+  def encode_no_such_method(%NoSuchMethod{} = value), do: NoSuchMethod.to_map(value)
+  def encode_no_such_method(value) when is_float(value), do: value
+  def encode_no_such_method(value) when is_integer(value), do: value
+  def encode_no_such_method(value) when is_nil(value), do: value
+  def encode_no_such_method(_), do: {:error, "Unexpected type when encoding TopLevel.no_such_method"}
+
   def decode_top_level_not(%{} = value), do: NotClass.from_map(value)
   def decode_top_level_not(value) when is_float(value), do: value
   def decode_top_level_not(value) when is_integer(value), do: value
@@ -10268,6 +11786,18 @@ defmodule TopLevel do
   def encode_not_eq(value) when is_nil(value), do: value
   def encode_not_eq(_), do: {:error, "Unexpected type when encoding TopLevel.not_eq"}
 
+  def decode_ns_error(%{} = value), do: NSError.from_map(value)
+  def decode_ns_error(value) when is_float(value), do: value
+  def decode_ns_error(value) when is_integer(value), do: value
+  def decode_ns_error(value) when is_nil(value), do: value
+  def decode_ns_error(_), do: {:error, "Unexpected type when decoding TopLevel.ns_error"}
+
+  def encode_ns_error(%NSError{} = value), do: NSError.to_map(value)
+  def encode_ns_error(value) when is_float(value), do: value
+  def encode_ns_error(value) when is_integer(value), do: value
+  def encode_ns_error(value) when is_nil(value), do: value
+  def encode_ns_error(_), do: {:error, "Unexpected type when encoding TopLevel.ns_error"}
+
   def decode_ns_string(%{} = value), do: NSString.from_map(value)
   def decode_ns_string(value) when is_float(value), do: value
   def decode_ns_string(value) when is_integer(value), do: value
@@ -10340,6 +11870,18 @@ defmodule TopLevel do
   def encode_object(value) when is_nil(value), do: value
   def encode_object(_), do: {:error, "Unexpected type when encoding TopLevel.object"}
 
+  def decode_object_mapper(%{} = value), do: ObjectMapper.from_map(value)
+  def decode_object_mapper(value) when is_float(value), do: value
+  def decode_object_mapper(value) when is_integer(value), do: value
+  def decode_object_mapper(value) when is_nil(value), do: value
+  def decode_object_mapper(_), do: {:error, "Unexpected type when decoding TopLevel.object_mapper"}
+
+  def encode_object_mapper(%ObjectMapper{} = value), do: ObjectMapper.to_map(value)
+  def encode_object_mapper(value) when is_float(value), do: value
+  def encode_object_mapper(value) when is_integer(value), do: value
+  def encode_object_mapper(value) when is_nil(value), do: value
+  def encode_object_mapper(_), do: {:error, "Unexpected type when encoding TopLevel.object_mapper"}
+
   def decode_of(%{} = value), do: Of.from_map(value)
   def decode_of(value) when is_float(value), do: value
   def decode_of(value) when is_integer(value), do: value
@@ -10556,6 +12098,18 @@ defmodule TopLevel do
   def encode_printf(value) when is_nil(value), do: value
   def encode_printf(_), do: {:error, "Unexpected type when encoding TopLevel.printf"}
 
+  def decode_print_members(%{} = value), do: PrintMembers.from_map(value)
+  def decode_print_members(value) when is_float(value), do: value
+  def decode_print_members(value) when is_integer(value), do: value
+  def decode_print_members(value) when is_nil(value), do: value
+  def decode_print_members(_), do: {:error, "Unexpected type when decoding TopLevel.print_members"}
+
+  def encode_print_members(%PrintMembers{} = value), do: PrintMembers.to_map(value)
+  def encode_print_members(value) when is_float(value), do: value
+  def encode_print_members(value) when is_integer(value), do: value
+  def encode_print_members(value) when is_nil(value), do: value
+  def encode_print_members(_), do: {:error, "Unexpected type when encoding TopLevel.print_members"}
+
   def decode_private(%{} = value), do: Private.from_map(value)
   def decode_private(value) when is_float(value), do: value
   def decode_private(value) when is_integer(value), do: value
@@ -10676,6 +12230,18 @@ defmodule TopLevel do
   def encode_ref(value) when is_nil(value), do: value
   def encode_ref(_), do: {:error, "Unexpected type when encoding TopLevel.ref"}
 
+  def decode_reg_exp(%{} = value), do: RegExp.from_map(value)
+  def decode_reg_exp(value) when is_float(value), do: value
+  def decode_reg_exp(value) when is_integer(value), do: value
+  def decode_reg_exp(value) when is_nil(value), do: value
+  def decode_reg_exp(_), do: {:error, "Unexpected type when decoding TopLevel.reg_exp"}
+
+  def encode_reg_exp(%RegExp{} = value), do: RegExp.to_map(value)
+  def encode_reg_exp(value) when is_float(value), do: value
+  def encode_reg_exp(value) when is_integer(value), do: value
+  def encode_reg_exp(value) when is_nil(value), do: value
+  def encode_reg_exp(_), do: {:error, "Unexpected type when encoding TopLevel.reg_exp"}
+
   def decode_register(%{} = value), do: Register.from_map(value)
   def decode_register(value) when is_float(value), do: value
   def decode_register(value) when is_integer(value), do: value
@@ -10808,6 +12374,30 @@ defmodule TopLevel do
   def encode_right(value) when is_nil(value), do: value
   def encode_right(_), do: {:error, "Unexpected type when encoding TopLevel.right"}
 
+  def decode_runtime_type(%{} = value), do: RuntimeType.from_map(value)
+  def decode_runtime_type(value) when is_float(value), do: value
+  def decode_runtime_type(value) when is_integer(value), do: value
+  def decode_runtime_type(value) when is_nil(value), do: value
+  def decode_runtime_type(_), do: {:error, "Unexpected type when decoding TopLevel.runtime_type"}
+
+  def encode_runtime_type(%RuntimeType{} = value), do: RuntimeType.to_map(value)
+  def encode_runtime_type(value) when is_float(value), do: value
+  def encode_runtime_type(value) when is_integer(value), do: value
+  def encode_runtime_type(value) when is_nil(value), do: value
+  def encode_runtime_type(_), do: {:error, "Unexpected type when encoding TopLevel.runtime_type"}
+
+  def decode_s(%{} = value), do: S.from_map(value)
+  def decode_s(value) when is_float(value), do: value
+  def decode_s(value) when is_integer(value), do: value
+  def decode_s(value) when is_nil(value), do: value
+  def decode_s(_), do: {:error, "Unexpected type when decoding TopLevel.s"}
+
+  def encode_s(%S{} = value), do: S.to_map(value)
+  def encode_s(value) when is_float(value), do: value
+  def encode_s(value) when is_integer(value), do: value
+  def encode_s(value) when is_nil(value), do: value
+  def encode_s(_), do: {:error, "Unexpected type when encoding TopLevel.s"}
+
   def decode_sbyte(%{} = value), do: Sbyte.from_map(value)
   def decode_sbyte(value) when is_float(value), do: value
   def decode_sbyte(value) when is_integer(value), do: value
@@ -10892,6 +12482,18 @@ defmodule TopLevel do
   def encode_serialize(value) when is_nil(value), do: value
   def encode_serialize(_), do: {:error, "Unexpected type when encoding TopLevel.serialize"}
 
+  def decode_serializer_provider(%{} = value), do: SerializerProvider.from_map(value)
+  def decode_serializer_provider(value) when is_float(value), do: value
+  def decode_serializer_provider(value) when is_integer(value), do: value
+  def decode_serializer_provider(value) when is_nil(value), do: value
+  def decode_serializer_provider(_), do: {:error, "Unexpected type when decoding TopLevel.serializer_provider"}
+
+  def encode_serializer_provider(%SerializerProvider{} = value), do: SerializerProvider.to_map(value)
+  def encode_serializer_provider(value) when is_float(value), do: value
+  def encode_serializer_provider(value) when is_integer(value), do: value
+  def encode_serializer_provider(value) when is_nil(value), do: value
+  def encode_serializer_provider(_), do: {:error, "Unexpected type when encoding TopLevel.serializer_provider"}
+
   def decode_set(%{} = value), do: SetClass.from_map(value)
   def decode_set(value) when is_float(value), do: value
   def decode_set(value) when is_integer(value), do: value
@@ -10928,6 +12530,18 @@ defmodule TopLevel do
   def encode_signed(value) when is_nil(value), do: value
   def encode_signed(_), do: {:error, "Unexpected type when encoding TopLevel.signed"}
 
+  def decode_simple_module(%{} = value), do: SimpleModule.from_map(value)
+  def decode_simple_module(value) when is_float(value), do: value
+  def decode_simple_module(value) when is_integer(value), do: value
+  def decode_simple_module(value) when is_nil(value), do: value
+  def decode_simple_module(_), do: {:error, "Unexpected type when decoding TopLevel.simple_module"}
+
+  def encode_simple_module(%SimpleModule{} = value), do: SimpleModule.to_map(value)
+  def encode_simple_module(value) when is_float(value), do: value
+  def encode_simple_module(value) when is_integer(value), do: value
+  def encode_simple_module(value) when is_nil(value), do: value
+  def encode_simple_module(_), do: {:error, "Unexpected type when encoding TopLevel.simple_module"}
+
   def decode_sizeof(%{} = value), do: Sizeof.from_map(value)
   def decode_sizeof(value) when is_float(value), do: value
   def decode_sizeof(value) when is_integer(value), do: value
@@ -10952,6 +12566,18 @@ defmodule TopLevel do
   def encode_stackalloc(value) when is_nil(value), do: value
   def encode_stackalloc(_), do: {:error, "Unexpected type when encoding TopLevel.stackalloc"}
 
+  def decode_standards(%{} = value), do: Standards.from_map(value)
+  def decode_standards(value) when is_float(value), do: value
+  def decode_standards(value) when is_integer(value), do: value
+  def decode_standards(value) when is_nil(value), do: value
+  def decode_standards(_), do: {:error, "Unexpected type when decoding TopLevel.standards"}
+
+  def encode_standards(%Standards{} = value), do: Standards.to_map(value)
+  def encode_standards(value) when is_float(value), do: value
+  def encode_standards(value) when is_integer(value), do: value
+  def encode_standards(value) when is_nil(value), do: value
+  def encode_standards(_), do: {:error, "Unexpected type when encoding TopLevel.standards"}
+
   def decode_static(%{} = value), do: Static.from_map(value)
   def decode_static(value) when is_float(value), do: value
   def decode_static(value) when is_integer(value), do: value
@@ -10988,6 +12614,30 @@ defmodule TopLevel do
   def encode_static_cast(value) when is_nil(value), do: value
   def encode_static_cast(_), do: {:error, "Unexpected type when encoding TopLevel.static_cast"}
 
+  def decode_std_deserializer(%{} = value), do: StdDeserializer.from_map(value)
+  def decode_std_deserializer(value) when is_float(value), do: value
+  def decode_std_deserializer(value) when is_integer(value), do: value
+  def decode_std_deserializer(value) when is_nil(value), do: value
+  def decode_std_deserializer(_), do: {:error, "Unexpected type when decoding TopLevel.std_deserializer"}
+
+  def encode_std_deserializer(%StdDeserializer{} = value), do: StdDeserializer.to_map(value)
+  def encode_std_deserializer(value) when is_float(value), do: value
+  def encode_std_deserializer(value) when is_integer(value), do: value
+  def encode_std_deserializer(value) when is_nil(value), do: value
+  def encode_std_deserializer(_), do: {:error, "Unexpected type when encoding TopLevel.std_deserializer"}
+
+  def decode_std_serializer(%{} = value), do: StdSerializer.from_map(value)
+  def decode_std_serializer(value) when is_float(value), do: value
+  def decode_std_serializer(value) when is_integer(value), do: value
+  def decode_std_serializer(value) when is_nil(value), do: value
+  def decode_std_serializer(_), do: {:error, "Unexpected type when decoding TopLevel.std_serializer"}
+
+  def encode_std_serializer(%StdSerializer{} = value), do: StdSerializer.to_map(value)
+  def encode_std_serializer(value) when is_float(value), do: value
+  def encode_std_serializer(value) when is_integer(value), do: value
+  def encode_std_serializer(value) when is_nil(value), do: value
+  def encode_std_serializer(_), do: {:error, "Unexpected type when encoding TopLevel.std_serializer"}
+
   def decode_strictfp(%{} = value), do: Strictfp.from_map(value)
   def decode_strictfp(value) when is_float(value), do: value
   def decode_strictfp(value) when is_integer(value), do: value
@@ -11168,6 +12818,30 @@ defmodule TopLevel do
   def encode_throws(value) when is_nil(value), do: value
   def encode_throws(_), do: {:error, "Unexpected type when encoding TopLevel.throws"}
 
+  def decode_time_only(%{} = value), do: TimeOnly.from_map(value)
+  def decode_time_only(value) when is_float(value), do: value
+  def decode_time_only(value) when is_integer(value), do: value
+  def decode_time_only(value) when is_nil(value), do: value
+  def decode_time_only(_), do: {:error, "Unexpected type when decoding TopLevel.time_only"}
+
+  def encode_time_only(%TimeOnly{} = value), do: TimeOnly.to_map(value)
+  def encode_time_only(value) when is_float(value), do: value
+  def encode_time_only(value) when is_integer(value), do: value
+  def encode_time_only(value) when is_nil(value), do: value
+  def encode_time_only(_), do: {:error, "Unexpected type when encoding TopLevel.time_only"}
+
+  def decode_time_only_converter(%{} = value), do: TimeOnlyConverter.from_map(value)
+  def decode_time_only_converter(value) when is_float(value), do: value
+  def decode_time_only_converter(value) when is_integer(value), do: value
+  def decode_time_only_converter(value) when is_nil(value), do: value
+  def decode_time_only_converter(_), do: {:error, "Unexpected type when decoding TopLevel.time_only_converter"}
+
+  def encode_time_only_converter(%TimeOnlyConverter{} = value), do: TimeOnlyConverter.to_map(value)
+  def encode_time_only_converter(value) when is_float(value), do: value
+  def encode_time_only_converter(value) when is_integer(value), do: value
+  def encode_time_only_converter(value) when is_nil(value), do: value
+  def encode_time_only_converter(_), do: {:error, "Unexpected type when encoding TopLevel.time_only_converter"}
+
   def decode_to_json(%{} = value), do: ToJSON.from_map(value)
   def decode_to_json(value) when is_float(value), do: value
   def decode_to_json(value) when is_integer(value), do: value
@@ -11192,6 +12866,18 @@ defmodule TopLevel do
   def encode_top_level(value) when is_nil(value), do: value
   def encode_top_level(_), do: {:error, "Unexpected type when encoding TopLevel.top_level"}
 
+  def decode_to_string(%{} = value), do: ToString.from_map(value)
+  def decode_to_string(value) when is_float(value), do: value
+  def decode_to_string(value) when is_integer(value), do: value
+  def decode_to_string(value) when is_nil(value), do: value
+  def decode_to_string(_), do: {:error, "Unexpected type when decoding TopLevel.to_string"}
+
+  def encode_to_string(%ToString{} = value), do: ToString.to_map(value)
+  def encode_to_string(value) when is_float(value), do: value
+  def encode_to_string(value) when is_integer(value), do: value
+  def encode_to_string(value) when is_nil(value), do: value
+  def encode_to_string(_), do: {:error, "Unexpected type when encoding TopLevel.to_string"}
+
   def decode_transient(%{} = value), do: Transient.from_map(value)
   def decode_transient(value) when is_float(value), do: value
   def decode_transient(value) when is_integer(value), do: value
@@ -11444,6 +13130,42 @@ defmodule TopLevel do
   def encode_using(value) when is_nil(value), do: value
   def encode_using(_), do: {:error, "Unexpected type when encoding TopLevel.using"}
 
+  def decode_utf8_json_reader(%{} = value), do: Utf8JSONReader.from_map(value)
+  def decode_utf8_json_reader(value) when is_float(value), do: value
+  def decode_utf8_json_reader(value) when is_integer(value), do: value
+  def decode_utf8_json_reader(value) when is_nil(value), do: value
+  def decode_utf8_json_reader(_), do: {:error, "Unexpected type when decoding TopLevel.utf8_json_reader"}
+
+  def encode_utf8_json_reader(%Utf8JSONReader{} = value), do: Utf8JSONReader.to_map(value)
+  def encode_utf8_json_reader(value) when is_float(value), do: value
+  def encode_utf8_json_reader(value) when is_integer(value), do: value
+  def encode_utf8_json_reader(value) when is_nil(value), do: value
+  def encode_utf8_json_reader(_), do: {:error, "Unexpected type when encoding TopLevel.utf8_json_reader"}
+
+  def decode_utf8_json_writer(%{} = value), do: Utf8JSONWriter.from_map(value)
+  def decode_utf8_json_writer(value) when is_float(value), do: value
+  def decode_utf8_json_writer(value) when is_integer(value), do: value
+  def decode_utf8_json_writer(value) when is_nil(value), do: value
+  def decode_utf8_json_writer(_), do: {:error, "Unexpected type when decoding TopLevel.utf8_json_writer"}
+
+  def encode_utf8_json_writer(%Utf8JSONWriter{} = value), do: Utf8JSONWriter.to_map(value)
+  def encode_utf8_json_writer(value) when is_float(value), do: value
+  def encode_utf8_json_writer(value) when is_integer(value), do: value
+  def encode_utf8_json_writer(value) when is_nil(value), do: value
+  def encode_utf8_json_writer(_), do: {:error, "Unexpected type when encoding TopLevel.utf8_json_writer"}
+
+  def decode_uuid(%{} = value), do: UUID.from_map(value)
+  def decode_uuid(value) when is_float(value), do: value
+  def decode_uuid(value) when is_integer(value), do: value
+  def decode_uuid(value) when is_nil(value), do: value
+  def decode_uuid(_), do: {:error, "Unexpected type when decoding TopLevel.uuid"}
+
+  def encode_uuid(%UUID{} = value), do: UUID.to_map(value)
+  def encode_uuid(value) when is_float(value), do: value
+  def encode_uuid(value) when is_integer(value), do: value
+  def encode_uuid(value) when is_nil(value), do: value
+  def encode_uuid(_), do: {:error, "Unexpected type when encoding TopLevel.uuid"}
+
   def decode_var(%{} = value), do: Var.from_map(value)
   def decode_var(value) when is_float(value), do: value
   def decode_var(value) when is_integer(value), do: value
@@ -11657,6 +13379,7 @@ defmodule TopLevel do
       checked: decode_checked(m["checked"]),
       top_level_class: decode_top_level_class(m["class"]),
       class: decode_class(m["Class"]),
+      clone: decode_clone(m["clone"]),
       co_await: decode_co_await(m["co_await"]),
       co_return: decode_co_return(m["co_return"]),
       co_yield: decode_co_yield(m["co_yield"]),
@@ -11671,8 +13394,14 @@ defmodule TopLevel do
       convenience: decode_convenience(m["convenience"]),
       convert: decode_convert(m["convert"]),
       converter: decode_converter(m["converter"]),
+      culture_info: decode_culture_info(m["CultureInfo"]),
       date: decode_date(m["date"]),
       date_parse_handling: decode_date_parse_handling(m["date_parse_handling"]),
+      date_formatter: decode_date_formatter(m["DateFormatter"]),
+      date_only: decode_date_only(m["DateOnly"]),
+      date_only_converter: decode_date_only_converter(m["DateOnlyConverter"]),
+      date_time: decode_date_time(m["DateTime"]),
+      date_time_styles: decode_date_time_styles(m["DateTimeStyles"]),
       debugger: decode_debugger(m["debugger"]),
       decimal: decode_decimal(m["decimal"]),
       declare: decode_declare(m["declare"]),
@@ -11697,6 +13426,8 @@ defmodule TopLevel do
       top_level_else: decode_top_level_else(m["else"]),
       encode_quick_type: decode_encode_quick_type(m["encode_quick_type"]),
       enum: decode_enum(m["enum"]),
+      enum_values: decode_enum_values(m["EnumValues"]),
+      equality_contract: decode_equality_contract(m["equalityContract"]),
       event: decode_event(m["event"]),
       except: decode_except(m["except"]),
       exception: decode_exception(m["exception"]),
@@ -11716,6 +13447,7 @@ defmodule TopLevel do
       float: decode_float(m["float"]),
       for: decode_for(m["for"]),
       foreach: decode_foreach(m["foreach"]),
+      format_exception: decode_format_exception(m["FormatException"]),
       friend: decode_friend(m["friend"]),
       from: decode_from(m["from"]),
       from_json: decode_from_json(m["from_json"]),
@@ -11726,6 +13458,7 @@ defmodule TopLevel do
       go: decode_go(m["go"]),
       goto: decode_goto(m["goto"]),
       guard: decode_guard(m["guard"]),
+      hash_code: decode_hash_code(m["hashCode"]),
       has_own_property: decode_has_own_property(m["hasOwnProperty"]),
       id: decode_id(m["id"]),
       if: decode_if(m["if"]),
@@ -11744,6 +13477,7 @@ defmodule TopLevel do
       interface: decode_interface(m["interface"]),
       internal: decode_internal(m["internal"]),
       is: decode_is(m["is"]),
+      iso_date_time_offset_converter: decode_iso_date_time_offset_converter(m["IsoDateTimeOffsetConverter"]),
       iterable: decode_iterable(m["iterable"]),
       jdec: decode_jdec(m["jdec"]),
       jenc: decode_jenc(m["jenc"]),
@@ -11753,6 +13487,17 @@ defmodule TopLevel do
       json_serializer: decode_json_serializer(m["json_serializer"]),
       json_token: decode_json_token(m["json_token"]),
       json_writer: decode_json_writer(m["json_writer"]),
+      json_any: decode_json_any(m["JSONAny"]),
+      json_coding_key: decode_json_coding_key(m["JSONCodingKey"]),
+      json_decoder: decode_json_decoder(m["JSONDecoder"]),
+      json_encoder: decode_json_encoder(m["JSONEncoder"]),
+      json_exception: decode_json_exception(m["JsonException"]),
+      json_generator: decode_json_generator(m["JsonGenerator"]),
+      json_node: decode_json_node(m["JsonNode"]),
+      json_null: decode_json_null(m["JSONNull"]),
+      json_parser: decode_json_parser(m["JsonParser"]),
+      json_reader: decode_json_reader(m["JsonReader"]),
+      json_token_type: decode_json_token_type(m["JsonTokenType"]),
       lambda: decode_lambda(m["lambda"]),
       lazy: decode_lazy(m["lazy"]),
       left: decode_left(m["left"]),
@@ -11777,14 +13522,17 @@ defmodule TopLevel do
       none: decode_none(m["None"]),
       nonlocal: decode_nonlocal(m["nonlocal"]),
       nonmutating: decode_nonmutating(m["nonmutating"]),
+      no_such_method: decode_no_such_method(m["noSuchMethod"]),
       top_level_not: decode_top_level_not(m["not"]),
       not_eq: decode_not_eq(m["not_eq"]),
+      ns_error: decode_ns_error(m["NSError"]),
       ns_string: decode_ns_string(m["NSString"]),
       null: decode_null(m["NULL"]),
       top_level_null: decode_top_level_null(m["null"]),
       nullptr: decode_nullptr(m["nullptr"]),
       number: decode_number(m["number"]),
       object: decode_object(m["object"]),
+      object_mapper: decode_object_mapper(m["ObjectMapper"]),
       of: decode_of(m["of"]),
       oneway: decode_oneway(m["oneway"]),
       open: decode_open(m["open"]),
@@ -11803,6 +13551,7 @@ defmodule TopLevel do
       prefix: decode_prefix(m["prefix"]),
       print: decode_print(m["print"]),
       printf: decode_printf(m["printf"]),
+      print_members: decode_print_members(m["printMembers"]),
       private: decode_private(m["private"]),
       protected: decode_protected(m["protected"]),
       protocol: decode_protocol(m["Protocol"]),
@@ -11813,6 +13562,7 @@ defmodule TopLevel do
       range: decode_range(m["range"]),
       readonly: decode_readonly(m["readonly"]),
       ref: decode_ref(m["ref"]),
+      reg_exp: decode_reg_exp(m["RegExp"]),
       register: decode_register(m["register"]),
       reinterpret_cast: decode_reinterpret_cast(m["reinterpret_cast"]),
       repeat: decode_repeat(m["repeat"]),
@@ -11824,6 +13574,8 @@ defmodule TopLevel do
       rethrows: decode_rethrows(m["rethrows"]),
       return: decode_return(m["return"]),
       right: decode_right(m["right"]),
+      runtime_type: decode_runtime_type(m["runtimeType"]),
+      s: decode_s(m["s"]),
       sbyte: decode_sbyte(m["sbyte"]),
       sealed: decode_sealed(m["sealed"]),
       sel: decode_sel(m["SEL"]),
@@ -11831,14 +13583,19 @@ defmodule TopLevel do
       self: decode_self(m["Self"]),
       top_level_self: decode_top_level_self(m["self"]),
       serialize: decode_serialize(m["serialize"]),
+      serializer_provider: decode_serializer_provider(m["SerializerProvider"]),
       set: decode_set(m["set"]),
       short: decode_short(m["short"]),
       signed: decode_signed(m["signed"]),
+      simple_module: decode_simple_module(m["SimpleModule"]),
       sizeof: decode_sizeof(m["sizeof"]),
       stackalloc: decode_stackalloc(m["stackalloc"]),
+      standards: decode_standards(m["Standards"]),
       static: decode_static(m["static"]),
       static_assert: decode_static_assert(m["static_assert"]),
       static_cast: decode_static_cast(m["static_cast"]),
+      std_deserializer: decode_std_deserializer(m["StdDeserializer"]),
+      std_serializer: decode_std_serializer(m["StdSerializer"]),
       strictfp: decode_strictfp(m["strictfp"]),
       string: decode_string(m["string"]),
       struct: decode_struct(m["struct"]),
@@ -11854,8 +13611,11 @@ defmodule TopLevel do
       thread_local: decode_thread_local(m["thread_local"]),
       throw: decode_throw(m["throw"]),
       throws: decode_throws(m["throws"]),
+      time_only: decode_time_only(m["TimeOnly"]),
+      time_only_converter: decode_time_only_converter(m["TimeOnlyConverter"]),
       to_json: decode_to_json(m["to_json"]),
       top_level: decode_top_level(m["top_level"]),
+      to_string: decode_to_string(m["toString"]),
       transient: decode_transient(m["transient"]),
       top_level_true: decode_top_level_true(m["True"]),
       true_1: decode_true_1(m["true"]),
@@ -11877,6 +13637,9 @@ defmodule TopLevel do
       unsigned: decode_unsigned(m["unsigned"]),
       ushort: decode_ushort(m["ushort"]),
       using: decode_using(m["using"]),
+      utf8_json_reader: decode_utf8_json_reader(m["Utf8JsonReader"]),
+      utf8_json_writer: decode_utf8_json_writer(m["Utf8JsonWriter"]),
+      uuid: decode_uuid(m["UUID"]),
       var: decode_var(m["var"]),
       virtual: decode_virtual(m["virtual"]),
       void: decode_void(m["void"]),
@@ -11945,6 +13708,7 @@ defmodule TopLevel do
       "checked" => encode_checked(struct.checked),
       "class" => encode_top_level_class(struct.top_level_class),
       "Class" => encode_class(struct.class),
+      "clone" => encode_clone(struct.clone),
       "co_await" => encode_co_await(struct.co_await),
       "co_return" => encode_co_return(struct.co_return),
       "co_yield" => encode_co_yield(struct.co_yield),
@@ -11959,8 +13723,14 @@ defmodule TopLevel do
       "convenience" => encode_convenience(struct.convenience),
       "convert" => encode_convert(struct.convert),
       "converter" => encode_converter(struct.converter),
+      "CultureInfo" => encode_culture_info(struct.culture_info),
       "date" => encode_date(struct.date),
       "date_parse_handling" => encode_date_parse_handling(struct.date_parse_handling),
+      "DateFormatter" => encode_date_formatter(struct.date_formatter),
+      "DateOnly" => encode_date_only(struct.date_only),
+      "DateOnlyConverter" => encode_date_only_converter(struct.date_only_converter),
+      "DateTime" => encode_date_time(struct.date_time),
+      "DateTimeStyles" => encode_date_time_styles(struct.date_time_styles),
       "debugger" => encode_debugger(struct.debugger),
       "decimal" => encode_decimal(struct.decimal),
       "declare" => encode_declare(struct.declare),
@@ -11985,6 +13755,8 @@ defmodule TopLevel do
       "else" => encode_top_level_else(struct.top_level_else),
       "encode_quick_type" => encode_encode_quick_type(struct.encode_quick_type),
       "enum" => encode_enum(struct.enum),
+      "EnumValues" => encode_enum_values(struct.enum_values),
+      "equalityContract" => encode_equality_contract(struct.equality_contract),
       "event" => encode_event(struct.event),
       "except" => encode_except(struct.except),
       "exception" => encode_exception(struct.exception),
@@ -12004,6 +13776,7 @@ defmodule TopLevel do
       "float" => encode_float(struct.float),
       "for" => encode_for(struct.for),
       "foreach" => encode_foreach(struct.foreach),
+      "FormatException" => encode_format_exception(struct.format_exception),
       "friend" => encode_friend(struct.friend),
       "from" => encode_from(struct.from),
       "from_json" => encode_from_json(struct.from_json),
@@ -12014,6 +13787,7 @@ defmodule TopLevel do
       "go" => encode_go(struct.go),
       "goto" => encode_goto(struct.goto),
       "guard" => encode_guard(struct.guard),
+      "hashCode" => encode_hash_code(struct.hash_code),
       "hasOwnProperty" => encode_has_own_property(struct.has_own_property),
       "id" => encode_id(struct.id),
       "if" => encode_if(struct.if),
@@ -12032,6 +13806,7 @@ defmodule TopLevel do
       "interface" => encode_interface(struct.interface),
       "internal" => encode_internal(struct.internal),
       "is" => encode_is(struct.is),
+      "IsoDateTimeOffsetConverter" => encode_iso_date_time_offset_converter(struct.iso_date_time_offset_converter),
       "iterable" => encode_iterable(struct.iterable),
       "jdec" => encode_jdec(struct.jdec),
       "jenc" => encode_jenc(struct.jenc),
@@ -12041,6 +13816,17 @@ defmodule TopLevel do
       "json_serializer" => encode_json_serializer(struct.json_serializer),
       "json_token" => encode_json_token(struct.json_token),
       "json_writer" => encode_json_writer(struct.json_writer),
+      "JSONAny" => encode_json_any(struct.json_any),
+      "JSONCodingKey" => encode_json_coding_key(struct.json_coding_key),
+      "JSONDecoder" => encode_json_decoder(struct.json_decoder),
+      "JSONEncoder" => encode_json_encoder(struct.json_encoder),
+      "JsonException" => encode_json_exception(struct.json_exception),
+      "JsonGenerator" => encode_json_generator(struct.json_generator),
+      "JsonNode" => encode_json_node(struct.json_node),
+      "JSONNull" => encode_json_null(struct.json_null),
+      "JsonParser" => encode_json_parser(struct.json_parser),
+      "JsonReader" => encode_json_reader(struct.json_reader),
+      "JsonTokenType" => encode_json_token_type(struct.json_token_type),
       "lambda" => encode_lambda(struct.lambda),
       "lazy" => encode_lazy(struct.lazy),
       "left" => encode_left(struct.left),
@@ -12065,14 +13851,17 @@ defmodule TopLevel do
       "None" => encode_none(struct.none),
       "nonlocal" => encode_nonlocal(struct.nonlocal),
       "nonmutating" => encode_nonmutating(struct.nonmutating),
+      "noSuchMethod" => encode_no_such_method(struct.no_such_method),
       "not" => encode_top_level_not(struct.top_level_not),
       "not_eq" => encode_not_eq(struct.not_eq),
+      "NSError" => encode_ns_error(struct.ns_error),
       "NSString" => encode_ns_string(struct.ns_string),
       "NULL" => encode_null(struct.null),
       "null" => encode_top_level_null(struct.top_level_null),
       "nullptr" => encode_nullptr(struct.nullptr),
       "number" => encode_number(struct.number),
       "object" => encode_object(struct.object),
+      "ObjectMapper" => encode_object_mapper(struct.object_mapper),
       "of" => encode_of(struct.of),
       "oneway" => encode_oneway(struct.oneway),
       "open" => encode_open(struct.open),
@@ -12091,6 +13880,7 @@ defmodule TopLevel do
       "prefix" => encode_prefix(struct.prefix),
       "print" => encode_print(struct.print),
       "printf" => encode_printf(struct.printf),
+      "printMembers" => encode_print_members(struct.print_members),
       "private" => encode_private(struct.private),
       "protected" => encode_protected(struct.protected),
       "Protocol" => encode_protocol(struct.protocol),
@@ -12101,6 +13891,7 @@ defmodule TopLevel do
       "range" => encode_range(struct.range),
       "readonly" => encode_readonly(struct.readonly),
       "ref" => encode_ref(struct.ref),
+      "RegExp" => encode_reg_exp(struct.reg_exp),
       "register" => encode_register(struct.register),
       "reinterpret_cast" => encode_reinterpret_cast(struct.reinterpret_cast),
       "repeat" => encode_repeat(struct.repeat),
@@ -12112,6 +13903,8 @@ defmodule TopLevel do
       "rethrows" => encode_rethrows(struct.rethrows),
       "return" => encode_return(struct.return),
       "right" => encode_right(struct.right),
+      "runtimeType" => encode_runtime_type(struct.runtime_type),
+      "s" => encode_s(struct.s),
       "sbyte" => encode_sbyte(struct.sbyte),
       "sealed" => encode_sealed(struct.sealed),
       "SEL" => encode_sel(struct.sel),
@@ -12119,14 +13912,19 @@ defmodule TopLevel do
       "Self" => encode_self(struct.self),
       "self" => encode_top_level_self(struct.top_level_self),
       "serialize" => encode_serialize(struct.serialize),
+      "SerializerProvider" => encode_serializer_provider(struct.serializer_provider),
       "set" => encode_set(struct.set),
       "short" => encode_short(struct.short),
       "signed" => encode_signed(struct.signed),
+      "SimpleModule" => encode_simple_module(struct.simple_module),
       "sizeof" => encode_sizeof(struct.sizeof),
       "stackalloc" => encode_stackalloc(struct.stackalloc),
+      "Standards" => encode_standards(struct.standards),
       "static" => encode_static(struct.static),
       "static_assert" => encode_static_assert(struct.static_assert),
       "static_cast" => encode_static_cast(struct.static_cast),
+      "StdDeserializer" => encode_std_deserializer(struct.std_deserializer),
+      "StdSerializer" => encode_std_serializer(struct.std_serializer),
       "strictfp" => encode_strictfp(struct.strictfp),
       "string" => encode_string(struct.string),
       "struct" => encode_struct(struct.struct),
@@ -12142,8 +13940,11 @@ defmodule TopLevel do
       "thread_local" => encode_thread_local(struct.thread_local),
       "throw" => encode_throw(struct.throw),
       "throws" => encode_throws(struct.throws),
+      "TimeOnly" => encode_time_only(struct.time_only),
+      "TimeOnlyConverter" => encode_time_only_converter(struct.time_only_converter),
       "to_json" => encode_to_json(struct.to_json),
       "top_level" => encode_top_level(struct.top_level),
+      "toString" => encode_to_string(struct.to_string),
       "transient" => encode_transient(struct.transient),
       "True" => encode_top_level_true(struct.top_level_true),
       "true" => encode_true_1(struct.true_1),
@@ -12165,6 +13966,9 @@ defmodule TopLevel do
       "unsigned" => encode_unsigned(struct.unsigned),
       "ushort" => encode_ushort(struct.ushort),
       "using" => encode_using(struct.using),
+      "Utf8JsonReader" => encode_utf8_json_reader(struct.utf8_json_reader),
+      "Utf8JsonWriter" => encode_utf8_json_writer(struct.utf8_json_writer),
+      "UUID" => encode_uuid(struct.uuid),
       "var" => encode_var(struct.var),
       "virtual" => encode_virtual(struct.virtual),
       "void" => encode_void(struct.void),
diff --git a/base/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
index 0cf5be9..85ab7d1 100644
--- a/base/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
@@ -71,6 +71,7 @@ type EnumEnum
     | Checked
     | Class
     | EnumClass
+    | Clone
     | CoAwait
     | CoReturn
     | CoYield
@@ -85,8 +86,14 @@ type EnumEnum
     | Convenience
     | Convert
     | Converter
+    | CultureInfo
     | Date
     | DateParseHandling
+    | DateFormatter
+    | DateOnly
+    | DateOnlyConverter
+    | DateTime
+    | DateTimeStyles
     | Debugger
     | Decimal
     | Declare
@@ -110,6 +117,8 @@ type EnumEnum
     | Else
     | EncodeQuickType
     | Enum
+    | EnumValues
+    | EqualityContract
     | Event
     | Except
     | Exception
@@ -129,6 +138,7 @@ type EnumEnum
     | EnumFloat
     | For
     | Foreach
+    | FormatException
     | Friend
     | From
     | FromJSON
@@ -139,6 +149,7 @@ type EnumEnum
     | Go
     | Goto
     | Guard
+    | HashCode
     | HasOwnProperty
     | ID
     | If
@@ -156,6 +167,7 @@ type EnumEnum
     | EnumInt
     | Interface
     | Internal
+    | ISODateTimeOffsetConverter
     | Iterable
     | Is
     | EnumJdec
@@ -166,6 +178,17 @@ type EnumEnum
     | JSONSerializer
     | JSONToken
     | JSONWriter
+    | JSONAny
+    | JSONCodingKey
+    | JSONDecoder
+    | JSONEncoder
+    | JSONException
+    | JSONGenerator
+    | JSONNode
+    | JSONNull
+    | JSONParser
+    | JSONReader
+    | JSONTokenType
     | Lambda
     | Lazy
     | Left
@@ -190,14 +213,17 @@ type EnumEnum
     | EnumNone
     | Nonlocal
     | Nonmutating
+    | NoSuchMethod
     | Not
     | NotEq
+    | NSError
     | NSString
     | Null
     | EnumNull
     | Nullptr
     | Number
     | Object
+    | ObjectMapper
     | Of
     | Oneway
     | Open
@@ -216,6 +242,7 @@ type EnumEnum
     | Prefix
     | Print
     | Printf
+    | PrintMembers
     | Private
     | Protected
     | Protocol
@@ -226,6 +253,7 @@ type EnumEnum
     | Range
     | Readonly
     | Ref
+    | RegExp
     | Register
     | ReinterpretCast
     | Repeat
@@ -237,6 +265,8 @@ type EnumEnum
     | Rethrows
     | Return
     | Right
+    | RuntimeType
+    | S
     | Sbyte
     | Sealed
     | Sel
@@ -244,14 +274,19 @@ type EnumEnum
     | Self
     | EnumSelf
     | Serialize
+    | SerializerProvider
     | Set
     | Short
     | Signed
+    | SimpleModule
     | Sizeof
     | Stackalloc
+    | Standards
     | Static
     | StaticAssert
     | StaticCast
+    | StdDeserializer
+    | StdSerializer
     | Strictfp
     | EnumString
     | Struct
@@ -267,8 +302,11 @@ type EnumEnum
     | ThreadLocal
     | Throw
     | Throws
+    | TimeOnly
+    | TimeOnlyConverter
     | ToJSON
     | TopLevel
+    | ToString
     | Transient
     | EnumTrue
     | PurpleTrue
@@ -290,6 +328,9 @@ type EnumEnum
     | Unsigned
     | Ushort
     | Using
+    | Utf8JSONReader
+    | Utf8JSONWriter
+    | UUID
     | Var
     | Virtual
     | Void
@@ -376,6 +417,7 @@ enumEnum =
                 "checked" -> Jdec.succeed Checked
                 "class" -> Jdec.succeed Class
                 "Class" -> Jdec.succeed EnumClass
+                "clone" -> Jdec.succeed Clone
                 "co_await" -> Jdec.succeed CoAwait
                 "co_return" -> Jdec.succeed CoReturn
                 "co_yield" -> Jdec.succeed CoYield
@@ -390,8 +432,14 @@ enumEnum =
                 "convenience" -> Jdec.succeed Convenience
                 "convert" -> Jdec.succeed Convert
                 "converter" -> Jdec.succeed Converter
+                "CultureInfo" -> Jdec.succeed CultureInfo
                 "date" -> Jdec.succeed Date
                 "date_parse_handling" -> Jdec.succeed DateParseHandling
+                "DateFormatter" -> Jdec.succeed DateFormatter
+                "DateOnly" -> Jdec.succeed DateOnly
+                "DateOnlyConverter" -> Jdec.succeed DateOnlyConverter
+                "DateTime" -> Jdec.succeed DateTime
+                "DateTimeStyles" -> Jdec.succeed DateTimeStyles
                 "debugger" -> Jdec.succeed Debugger
                 "decimal" -> Jdec.succeed Decimal
                 "declare" -> Jdec.succeed Declare
@@ -415,6 +463,8 @@ enumEnum =
                 "else" -> Jdec.succeed Else
                 "encode_quick_type" -> Jdec.succeed EncodeQuickType
                 "enum" -> Jdec.succeed Enum
+                "EnumValues" -> Jdec.succeed EnumValues
+                "equalityContract" -> Jdec.succeed EqualityContract
                 "event" -> Jdec.succeed Event
                 "except" -> Jdec.succeed Except
                 "exception" -> Jdec.succeed Exception
@@ -434,6 +484,7 @@ enumEnum =
                 "float" -> Jdec.succeed EnumFloat
                 "for" -> Jdec.succeed For
                 "foreach" -> Jdec.succeed Foreach
+                "FormatException" -> Jdec.succeed FormatException
                 "friend" -> Jdec.succeed Friend
                 "from" -> Jdec.succeed From
                 "from_json" -> Jdec.succeed FromJSON
@@ -444,6 +495,7 @@ enumEnum =
                 "go" -> Jdec.succeed Go
                 "goto" -> Jdec.succeed Goto
                 "guard" -> Jdec.succeed Guard
+                "hashCode" -> Jdec.succeed HashCode
                 "hasOwnProperty" -> Jdec.succeed HasOwnProperty
                 "id" -> Jdec.succeed ID
                 "if" -> Jdec.succeed If
@@ -461,6 +513,7 @@ enumEnum =
                 "int" -> Jdec.succeed EnumInt
                 "interface" -> Jdec.succeed Interface
                 "internal" -> Jdec.succeed Internal
+                "IsoDateTimeOffsetConverter" -> Jdec.succeed ISODateTimeOffsetConverter
                 "iterable" -> Jdec.succeed Iterable
                 "is" -> Jdec.succeed Is
                 "jdec" -> Jdec.succeed EnumJdec
@@ -471,6 +524,17 @@ enumEnum =
                 "json_serializer" -> Jdec.succeed JSONSerializer
                 "json_token" -> Jdec.succeed JSONToken
                 "json_writer" -> Jdec.succeed JSONWriter
+                "JSONAny" -> Jdec.succeed JSONAny
+                "JSONCodingKey" -> Jdec.succeed JSONCodingKey
+                "JSONDecoder" -> Jdec.succeed JSONDecoder
+                "JSONEncoder" -> Jdec.succeed JSONEncoder
+                "JsonException" -> Jdec.succeed JSONException
+                "JsonGenerator" -> Jdec.succeed JSONGenerator
+                "JsonNode" -> Jdec.succeed JSONNode
+                "JSONNull" -> Jdec.succeed JSONNull
+                "JsonParser" -> Jdec.succeed JSONParser
+                "JsonReader" -> Jdec.succeed JSONReader
+                "JsonTokenType" -> Jdec.succeed JSONTokenType
                 "lambda" -> Jdec.succeed Lambda
                 "lazy" -> Jdec.succeed Lazy
                 "left" -> Jdec.succeed Left
@@ -495,14 +559,17 @@ enumEnum =
                 "None" -> Jdec.succeed EnumNone
                 "nonlocal" -> Jdec.succeed Nonlocal
                 "nonmutating" -> Jdec.succeed Nonmutating
+                "noSuchMethod" -> Jdec.succeed NoSuchMethod
                 "not" -> Jdec.succeed Not
                 "not_eq" -> Jdec.succeed NotEq
+                "NSError" -> Jdec.succeed NSError
                 "NSString" -> Jdec.succeed NSString
                 "NULL" -> Jdec.succeed Null
                 "null" -> Jdec.succeed EnumNull
                 "nullptr" -> Jdec.succeed Nullptr
                 "number" -> Jdec.succeed Number
                 "object" -> Jdec.succeed Object
+                "ObjectMapper" -> Jdec.succeed ObjectMapper
                 "of" -> Jdec.succeed Of
                 "oneway" -> Jdec.succeed Oneway
                 "open" -> Jdec.succeed Open
@@ -521,6 +588,7 @@ enumEnum =
                 "prefix" -> Jdec.succeed Prefix
                 "print" -> Jdec.succeed Print
                 "printf" -> Jdec.succeed Printf
+                "printMembers" -> Jdec.succeed PrintMembers
                 "private" -> Jdec.succeed Private
                 "protected" -> Jdec.succeed Protected
                 "Protocol" -> Jdec.succeed Protocol
@@ -531,6 +599,7 @@ enumEnum =
                 "range" -> Jdec.succeed Range
                 "readonly" -> Jdec.succeed Readonly
                 "ref" -> Jdec.succeed Ref
+                "RegExp" -> Jdec.succeed RegExp
                 "register" -> Jdec.succeed Register
                 "reinterpret_cast" -> Jdec.succeed ReinterpretCast
                 "repeat" -> Jdec.succeed Repeat
@@ -542,6 +611,8 @@ enumEnum =
                 "rethrows" -> Jdec.succeed Rethrows
                 "return" -> Jdec.succeed Return
                 "right" -> Jdec.succeed Right
+                "runtimeType" -> Jdec.succeed RuntimeType
+                "s" -> Jdec.succeed S
                 "sbyte" -> Jdec.succeed Sbyte
                 "sealed" -> Jdec.succeed Sealed
                 "SEL" -> Jdec.succeed Sel
@@ -549,14 +620,19 @@ enumEnum =
                 "Self" -> Jdec.succeed Self
                 "self" -> Jdec.succeed EnumSelf
                 "serialize" -> Jdec.succeed Serialize
+                "SerializerProvider" -> Jdec.succeed SerializerProvider
                 "set" -> Jdec.succeed Set
                 "short" -> Jdec.succeed Short
                 "signed" -> Jdec.succeed Signed
+                "SimpleModule" -> Jdec.succeed SimpleModule
                 "sizeof" -> Jdec.succeed Sizeof
                 "stackalloc" -> Jdec.succeed Stackalloc
+                "Standards" -> Jdec.succeed Standards
                 "static" -> Jdec.succeed Static
                 "static_assert" -> Jdec.succeed StaticAssert
                 "static_cast" -> Jdec.succeed StaticCast
+                "StdDeserializer" -> Jdec.succeed StdDeserializer
+                "StdSerializer" -> Jdec.succeed StdSerializer
                 "strictfp" -> Jdec.succeed Strictfp
                 "string" -> Jdec.succeed EnumString
                 "struct" -> Jdec.succeed Struct
@@ -572,8 +648,11 @@ enumEnum =
                 "thread_local" -> Jdec.succeed ThreadLocal
                 "throw" -> Jdec.succeed Throw
                 "throws" -> Jdec.succeed Throws
+                "TimeOnly" -> Jdec.succeed TimeOnly
+                "TimeOnlyConverter" -> Jdec.succeed TimeOnlyConverter
                 "to_json" -> Jdec.succeed ToJSON
                 "top_level" -> Jdec.succeed TopLevel
+                "toString" -> Jdec.succeed ToString
                 "transient" -> Jdec.succeed Transient
                 "True" -> Jdec.succeed EnumTrue
                 "true" -> Jdec.succeed PurpleTrue
@@ -595,6 +674,9 @@ enumEnum =
                 "unsigned" -> Jdec.succeed Unsigned
                 "ushort" -> Jdec.succeed Ushort
                 "using" -> Jdec.succeed Using
+                "Utf8JsonReader" -> Jdec.succeed Utf8JSONReader
+                "Utf8JsonWriter" -> Jdec.succeed Utf8JSONWriter
+                "UUID" -> Jdec.succeed UUID
                 "var" -> Jdec.succeed Var
                 "virtual" -> Jdec.succeed Virtual
                 "void" -> Jdec.succeed Void
@@ -658,6 +740,7 @@ encodeEnumEnum x = case x of
     Checked -> Jenc.string "checked"
     Class -> Jenc.string "class"
     EnumClass -> Jenc.string "Class"
+    Clone -> Jenc.string "clone"
     CoAwait -> Jenc.string "co_await"
     CoReturn -> Jenc.string "co_return"
     CoYield -> Jenc.string "co_yield"
@@ -672,8 +755,14 @@ encodeEnumEnum x = case x of
     Convenience -> Jenc.string "convenience"
     Convert -> Jenc.string "convert"
     Converter -> Jenc.string "converter"
+    CultureInfo -> Jenc.string "CultureInfo"
     Date -> Jenc.string "date"
     DateParseHandling -> Jenc.string "date_parse_handling"
+    DateFormatter -> Jenc.string "DateFormatter"
+    DateOnly -> Jenc.string "DateOnly"
+    DateOnlyConverter -> Jenc.string "DateOnlyConverter"
+    DateTime -> Jenc.string "DateTime"
+    DateTimeStyles -> Jenc.string "DateTimeStyles"
     Debugger -> Jenc.string "debugger"
     Decimal -> Jenc.string "decimal"
     Declare -> Jenc.string "declare"
@@ -697,6 +786,8 @@ encodeEnumEnum x = case x of
     Else -> Jenc.string "else"
     EncodeQuickType -> Jenc.string "encode_quick_type"
     Enum -> Jenc.string "enum"
+    EnumValues -> Jenc.string "EnumValues"
+    EqualityContract -> Jenc.string "equalityContract"
     Event -> Jenc.string "event"
     Except -> Jenc.string "except"
     Exception -> Jenc.string "exception"
@@ -716,6 +807,7 @@ encodeEnumEnum x = case x of
     EnumFloat -> Jenc.string "float"
     For -> Jenc.string "for"
     Foreach -> Jenc.string "foreach"
+    FormatException -> Jenc.string "FormatException"
     Friend -> Jenc.string "friend"
     From -> Jenc.string "from"
     FromJSON -> Jenc.string "from_json"
@@ -726,6 +818,7 @@ encodeEnumEnum x = case x of
     Go -> Jenc.string "go"
     Goto -> Jenc.string "goto"
     Guard -> Jenc.string "guard"
+    HashCode -> Jenc.string "hashCode"
     HasOwnProperty -> Jenc.string "hasOwnProperty"
     ID -> Jenc.string "id"
     If -> Jenc.string "if"
@@ -743,6 +836,7 @@ encodeEnumEnum x = case x of
     EnumInt -> Jenc.string "int"
     Interface -> Jenc.string "interface"
     Internal -> Jenc.string "internal"
+    ISODateTimeOffsetConverter -> Jenc.string "IsoDateTimeOffsetConverter"
     Iterable -> Jenc.string "iterable"
     Is -> Jenc.string "is"
     EnumJdec -> Jenc.string "jdec"
@@ -753,6 +847,17 @@ encodeEnumEnum x = case x of
     JSONSerializer -> Jenc.string "json_serializer"
     JSONToken -> Jenc.string "json_token"
     JSONWriter -> Jenc.string "json_writer"
+    JSONAny -> Jenc.string "JSONAny"
+    JSONCodingKey -> Jenc.string "JSONCodingKey"
+    JSONDecoder -> Jenc.string "JSONDecoder"
+    JSONEncoder -> Jenc.string "JSONEncoder"
+    JSONException -> Jenc.string "JsonException"
+    JSONGenerator -> Jenc.string "JsonGenerator"
+    JSONNode -> Jenc.string "JsonNode"
+    JSONNull -> Jenc.string "JSONNull"
+    JSONParser -> Jenc.string "JsonParser"
+    JSONReader -> Jenc.string "JsonReader"
+    JSONTokenType -> Jenc.string "JsonTokenType"
     Lambda -> Jenc.string "lambda"
     Lazy -> Jenc.string "lazy"
     Left -> Jenc.string "left"
@@ -777,14 +882,17 @@ encodeEnumEnum x = case x of
     EnumNone -> Jenc.string "None"
     Nonlocal -> Jenc.string "nonlocal"
     Nonmutating -> Jenc.string "nonmutating"
+    NoSuchMethod -> Jenc.string "noSuchMethod"
     Not -> Jenc.string "not"
     NotEq -> Jenc.string "not_eq"
+    NSError -> Jenc.string "NSError"
     NSString -> Jenc.string "NSString"
     Null -> Jenc.string "NULL"
     EnumNull -> Jenc.string "null"
     Nullptr -> Jenc.string "nullptr"
     Number -> Jenc.string "number"
     Object -> Jenc.string "object"
+    ObjectMapper -> Jenc.string "ObjectMapper"
     Of -> Jenc.string "of"
     Oneway -> Jenc.string "oneway"
     Open -> Jenc.string "open"
@@ -803,6 +911,7 @@ encodeEnumEnum x = case x of
     Prefix -> Jenc.string "prefix"
     Print -> Jenc.string "print"
     Printf -> Jenc.string "printf"
+    PrintMembers -> Jenc.string "printMembers"
     Private -> Jenc.string "private"
     Protected -> Jenc.string "protected"
     Protocol -> Jenc.string "Protocol"
@@ -813,6 +922,7 @@ encodeEnumEnum x = case x of
     Range -> Jenc.string "range"
     Readonly -> Jenc.string "readonly"
     Ref -> Jenc.string "ref"
+    RegExp -> Jenc.string "RegExp"
     Register -> Jenc.string "register"
     ReinterpretCast -> Jenc.string "reinterpret_cast"
     Repeat -> Jenc.string "repeat"
@@ -824,6 +934,8 @@ encodeEnumEnum x = case x of
     Rethrows -> Jenc.string "rethrows"
     Return -> Jenc.string "return"
     Right -> Jenc.string "right"
+    RuntimeType -> Jenc.string "runtimeType"
+    S -> Jenc.string "s"
     Sbyte -> Jenc.string "sbyte"
     Sealed -> Jenc.string "sealed"
     Sel -> Jenc.string "SEL"
@@ -831,14 +943,19 @@ encodeEnumEnum x = case x of
     Self -> Jenc.string "Self"
     EnumSelf -> Jenc.string "self"
     Serialize -> Jenc.string "serialize"
+    SerializerProvider -> Jenc.string "SerializerProvider"
     Set -> Jenc.string "set"
     Short -> Jenc.string "short"
     Signed -> Jenc.string "signed"
+    SimpleModule -> Jenc.string "SimpleModule"
     Sizeof -> Jenc.string "sizeof"
     Stackalloc -> Jenc.string "stackalloc"
+    Standards -> Jenc.string "Standards"
     Static -> Jenc.string "static"
     StaticAssert -> Jenc.string "static_assert"
     StaticCast -> Jenc.string "static_cast"
+    StdDeserializer -> Jenc.string "StdDeserializer"
+    StdSerializer -> Jenc.string "StdSerializer"
     Strictfp -> Jenc.string "strictfp"
     EnumString -> Jenc.string "string"
     Struct -> Jenc.string "struct"
@@ -854,8 +971,11 @@ encodeEnumEnum x = case x of
     ThreadLocal -> Jenc.string "thread_local"
     Throw -> Jenc.string "throw"
     Throws -> Jenc.string "throws"
+    TimeOnly -> Jenc.string "TimeOnly"
+    TimeOnlyConverter -> Jenc.string "TimeOnlyConverter"
     ToJSON -> Jenc.string "to_json"
     TopLevel -> Jenc.string "top_level"
+    ToString -> Jenc.string "toString"
     Transient -> Jenc.string "transient"
     EnumTrue -> Jenc.string "True"
     PurpleTrue -> Jenc.string "true"
@@ -877,6 +997,9 @@ encodeEnumEnum x = case x of
     Unsigned -> Jenc.string "unsigned"
     Ushort -> Jenc.string "ushort"
     Using -> Jenc.string "using"
+    Utf8JSONReader -> Jenc.string "Utf8JsonReader"
+    Utf8JSONWriter -> Jenc.string "Utf8JsonWriter"
+    UUID -> Jenc.string "UUID"
     Var -> Jenc.string "var"
     Virtual -> Jenc.string "virtual"
     Void -> Jenc.string "void"
diff --git a/base/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
index bb140c8..dad49d1 100644
--- a/base/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
@@ -48,6 +48,7 @@ module QuickType exposing
     , Char32T
     , Checked
     , Class
+    , Clone
     , CoAwait
     , CoReturn
     , CoYield
@@ -63,8 +64,14 @@ module QuickType exposing
     , Convenience
     , Convert
     , Converter
+    , CultureInfo
     , Date
+    , DateFormatter
+    , DateOnly
+    , DateOnlyConverter
     , DateParseHandling
+    , DateTime
+    , DateTimeStyles
     , Debugger
     , Decimal
     , Declare
@@ -88,6 +95,8 @@ module QuickType exposing
     , Empty
     , EncodeQuickType
     , Enum
+    , EnumValues
+    , EqualityContract
     , Event
     , Except
     , Exception
@@ -104,6 +113,7 @@ module QuickType exposing
     , Fixed
     , For
     , Foreach
+    , FormatException
     , Friend
     , From
     , FromJSON
@@ -115,6 +125,7 @@ module QuickType exposing
     , Goto
     , Guard
     , HasOwnProperty
+    , HashCode
     , ID
     , Imaginery
     , Imp
@@ -128,14 +139,26 @@ module QuickType exposing
     , Interface
     , Internal
     , Is
+    , ISODateTimeOffsetConverter
     , Iterable
     , JdecClass
     , JencClass
     , JpipeClass
     , JSON
+    , JSONAny
+    , JSONCodingKey
     , JSONConverter
+    , JSONDecoder
+    , JSONEncoder
+    , JSONException
+    , JSONGenerator
+    , JSONNode
+    , JSONNull
+    , JSONParser
+    , JSONReader
     , JSONSerializer
     , JSONToken
+    , JSONTokenType
     , JSONWriter
     , Lambda
     , Lazy
@@ -153,6 +176,7 @@ module QuickType exposing
     , Newtonsoft
     , Nil
     , No
+    , NoSuchMethod
     , Noexcept
     , Nonatomic
     , None
@@ -160,11 +184,13 @@ module QuickType exposing
     , Nonmutating
     , Not
     , NotEq
+    , NSError
     , NSString
     , Null
     , Nullptr
     , Number
     , Object
+    , ObjectMapper
     , Oneway
     , Open
     , Operator
@@ -180,6 +206,7 @@ module QuickType exposing
     , Precedence
     , Prefix
     , Print
+    , PrintMembers
     , Printf
     , Private
     , Protected
@@ -220,6 +247,7 @@ module QuickType exposing
     , Range
     , Readonly
     , Ref
+    , RegExp
     , Register
     , ReinterpretCast
     , Repeat
@@ -231,20 +259,27 @@ module QuickType exposing
     , Rethrows
     , Return
     , Right
+    , RuntimeType
+    , S
     , Sbyte
     , Sealed
     , Sel
     , Select
     , Self
     , Serialize
+    , SerializerProvider
     , Set
     , Short
     , Signed
+    , SimpleModule
     , Sizeof
     , Stackalloc
+    , Standards
     , Static
     , StaticAssert
     , StaticCast
+    , StdDeserializer
+    , StdSerializer
     , Strictfp
     , Struct
     , Subscript
@@ -258,7 +293,10 @@ module QuickType exposing
     , ThreadLocal
     , Throw
     , Throws
+    , TimeOnly
+    , TimeOnlyConverter
     , ToJSON
+    , ToString
     , TopLevel
     , Transient
     , TrueClass
@@ -278,6 +316,9 @@ module QuickType exposing
     , Unsigned
     , Ushort
     , Using
+    , Utf8JSONReader
+    , Utf8JSONWriter
+    , UUID
     , Var
     , Virtual
     , Void
@@ -324,6 +365,7 @@ module QuickType exposing
     , UnionChar32T(..)
     , UnionChecked(..)
     , UnionClass(..)
+    , UnionClone(..)
     , UnionCoAwait(..)
     , UnionCoReturn(..)
     , UnionCoYield(..)
@@ -339,8 +381,14 @@ module QuickType exposing
     , UnionConvenience(..)
     , UnionConvert(..)
     , UnionConverter(..)
+    , UnionCultureInfo(..)
     , UnionDate(..)
+    , UnionDateFormatter(..)
+    , UnionDateOnly(..)
+    , UnionDateOnlyConverter(..)
     , UnionDateParseHandling(..)
+    , UnionDateTime(..)
+    , UnionDateTimeStyles(..)
     , UnionDebugger(..)
     , UnionDecimal(..)
     , UnionDeclare(..)
@@ -364,6 +412,8 @@ module QuickType exposing
     , UnionUnion(..)
     , UnionEncodeQuickType(..)
     , UnionEnum(..)
+    , UnionEnumValues(..)
+    , UnionEqualityContract(..)
     , UnionEvent(..)
     , UnionExcept(..)
     , UnionException(..)
@@ -380,6 +430,7 @@ module QuickType exposing
     , UnionFixed(..)
     , UnionFor(..)
     , UnionForeach(..)
+    , UnionFormatException(..)
     , UnionFriend(..)
     , UnionFrom(..)
     , UnionFromJSON(..)
@@ -391,6 +442,7 @@ module QuickType exposing
     , UnionGoto(..)
     , UnionGuard(..)
     , UnionHasOwnProperty(..)
+    , UnionHashCode(..)
     , UnionID(..)
     , UnionImaginery(..)
     , UnionIMP(..)
@@ -404,14 +456,26 @@ module QuickType exposing
     , UnionInterface(..)
     , UnionInternal(..)
     , UnionIs(..)
+    , UnionISODateTimeOffsetConverter(..)
     , UnionIterable(..)
     , UnionJdec(..)
     , UnionJenc(..)
     , UnionJpipe(..)
     , UnionJSON(..)
+    , UnionJSONAny(..)
+    , UnionJSONCodingKey(..)
     , UnionJSONConverter(..)
+    , UnionJSONDecoder(..)
+    , UnionJSONEncoder(..)
+    , UnionJSONException(..)
+    , UnionJSONGenerator(..)
+    , UnionJSONNode(..)
+    , UnionJSONNull(..)
+    , UnionJSONParser(..)
+    , UnionJSONReader(..)
     , UnionJSONSerializer(..)
     , UnionJSONToken(..)
+    , UnionJSONTokenType(..)
     , UnionJSONWriter(..)
     , UnionLambda(..)
     , UnionLazy(..)
@@ -429,6 +493,7 @@ module QuickType exposing
     , UnionNewtonsoft(..)
     , UnionNil(..)
     , UnionNO(..)
+    , UnionNoSuchMethod(..)
     , UnionNoexcept(..)
     , UnionNonatomic(..)
     , UnionNone(..)
@@ -436,11 +501,13 @@ module QuickType exposing
     , UnionNonmutating(..)
     , UnionNot(..)
     , UnionNotEq(..)
+    , UnionNSError(..)
     , UnionNSString(..)
     , UnionNULL(..)
     , UnionNullptr(..)
     , UnionNumber(..)
     , UnionObject(..)
+    , UnionObjectMapper(..)
     , UnionOneway(..)
     , UnionOpen(..)
     , UnionOperator(..)
@@ -456,6 +523,7 @@ module QuickType exposing
     , UnionPrecedence(..)
     , UnionPrefix(..)
     , UnionPrint(..)
+    , UnionPrintMembers(..)
     , UnionPrintf(..)
     , UnionPrivate(..)
     , UnionProtected(..)
@@ -496,6 +564,7 @@ module QuickType exposing
     , UnionRange(..)
     , UnionReadonly(..)
     , UnionRef(..)
+    , UnionRegExp(..)
     , UnionRegister(..)
     , UnionReinterpretCast(..)
     , UnionRepeat(..)
@@ -507,20 +576,27 @@ module QuickType exposing
     , UnionRethrows(..)
     , UnionReturn(..)
     , UnionRight(..)
+    , UnionRuntimeType(..)
+    , UnionS(..)
     , UnionSbyte(..)
     , UnionSealed(..)
     , UnionSEL(..)
     , UnionSelect(..)
     , UnionSelf(..)
     , UnionSerialize(..)
+    , UnionSerializerProvider(..)
     , UnionSet(..)
     , UnionShort(..)
     , UnionSigned(..)
+    , UnionSimpleModule(..)
     , UnionSizeof(..)
     , UnionStackalloc(..)
+    , UnionStandards(..)
     , UnionStatic(..)
     , UnionStaticAssert(..)
     , UnionStaticCast(..)
+    , UnionStdDeserializer(..)
+    , UnionStdSerializer(..)
     , UnionStrictfp(..)
     , UnionStruct(..)
     , UnionSubscript(..)
@@ -534,7 +610,10 @@ module QuickType exposing
     , UnionThreadLocal(..)
     , UnionThrow(..)
     , UnionThrows(..)
+    , UnionTimeOnly(..)
+    , UnionTimeOnlyConverter(..)
     , UnionToJSON(..)
+    , UnionToString(..)
     , UnionTopLevel(..)
     , UnionTransient(..)
     , UnionTrue(..)
@@ -554,6 +633,9 @@ module QuickType exposing
     , UnionUnsigned(..)
     , UnionUshort(..)
     , UnionUsing(..)
+    , UnionUtf8JSONReader(..)
+    , UnionUtf8JSONWriter(..)
+    , UnionUUID(..)
     , UnionVar(..)
     , UnionVirtual(..)
     , UnionVoid(..)
@@ -618,6 +700,7 @@ type alias QuickType =
     , checked : Maybe UnionChecked
     , quickTypeClass : Maybe UnionClassUnion
     , class : Maybe UnionClass
+    , clone : Maybe UnionClone
     , coAwait : Maybe UnionCoAwait
     , coReturn : Maybe UnionCoReturn
     , coYield : Maybe UnionCoYield
@@ -632,8 +715,14 @@ type alias QuickType =
     , convenience : Maybe UnionConvenience
     , convert : Maybe UnionConvert
     , converter : Maybe UnionConverter
+    , cultureInfo : Maybe UnionCultureInfo
     , date : Maybe UnionDate
     , dateParseHandling : Maybe UnionDateParseHandling
+    , dateFormatter : Maybe UnionDateFormatter
+    , dateOnly : Maybe UnionDateOnly
+    , dateOnlyConverter : Maybe UnionDateOnlyConverter
+    , dateTime : Maybe UnionDateTime
+    , dateTimeStyles : Maybe UnionDateTimeStyles
     , debugger : Maybe UnionDebugger
     , decimal : Maybe UnionDecimal
     , declare : Maybe UnionDeclare
@@ -658,6 +747,8 @@ type alias QuickType =
     , quickTypeElse : Maybe UnionElse
     , encodeQuickType : Maybe UnionEncodeQuickType
     , enum : Maybe UnionEnum
+    , enumValues : Maybe UnionEnumValues
+    , equalityContract : Maybe UnionEqualityContract
     , event : Maybe UnionEvent
     , except : Maybe UnionExcept
     , exception : Maybe UnionException
@@ -677,6 +768,7 @@ type alias QuickType =
     , quickTypeFloat : Maybe UnionFloat
     , for : Maybe UnionFor
     , foreach : Maybe UnionForeach
+    , formatException : Maybe UnionFormatException
     , friend : Maybe UnionFriend
     , from : Maybe UnionFrom
     , fromJSON : Maybe UnionFromJSON
@@ -687,6 +779,7 @@ type alias QuickType =
     , go : Maybe UnionGo
     , goto : Maybe UnionGoto
     , guard : Maybe UnionGuard
+    , hashCode : Maybe UnionHashCode
     , hasOwnProperty : Maybe UnionHasOwnProperty
     , id : Maybe UnionID
     , quickTypeIf : Maybe UnionIf
@@ -705,6 +798,7 @@ type alias QuickType =
     , interface : Maybe UnionInterface
     , internal : Maybe UnionInternal
     , is : Maybe UnionIs
+    , isoDateTimeOffsetConverter : Maybe UnionISODateTimeOffsetConverter
     , iterable : Maybe UnionIterable
     , jdec : Maybe UnionJdec
     , jenc : Maybe UnionJenc
@@ -714,6 +808,17 @@ type alias QuickType =
     , jsonSerializer : Maybe UnionJSONSerializer
     , jsonToken : Maybe UnionJSONToken
     , jsonWriter : Maybe UnionJSONWriter
+    , jsonAny : Maybe UnionJSONAny
+    , jsonCodingKey : Maybe UnionJSONCodingKey
+    , jsonDecoder : Maybe UnionJSONDecoder
+    , jsonEncoder : Maybe UnionJSONEncoder
+    , jsonException : Maybe UnionJSONException
+    , jsonGenerator : Maybe UnionJSONGenerator
+    , jsonNode : Maybe UnionJSONNode
+    , jsonNull : Maybe UnionJSONNull
+    , jsonParser : Maybe UnionJSONParser
+    , jsonReader : Maybe UnionJSONReader
+    , jsonTokenType : Maybe UnionJSONTokenType
     , lambda : Maybe UnionLambda
     , lazy : Maybe UnionLazy
     , left : Maybe UnionLeft
@@ -738,14 +843,17 @@ type alias QuickType =
     , none : Maybe UnionNone
     , nonlocal : Maybe UnionNonlocal
     , nonmutating : Maybe UnionNonmutating
+    , noSuchMethod : Maybe UnionNoSuchMethod
     , not : Maybe UnionNot
     , notEq : Maybe UnionNotEq
+    , nsError : Maybe UnionNSError
     , nsString : Maybe UnionNSString
     , null : Maybe UnionNULL
     , quickTypeNull : Maybe UnionNull
     , nullptr : Maybe UnionNullptr
     , number : Maybe UnionNumber
     , object : Maybe UnionObject
+    , objectMapper : Maybe UnionObjectMapper
     , quickTypeOf : Maybe UnionOf
     , oneway : Maybe UnionOneway
     , open : Maybe UnionOpen
@@ -764,6 +872,7 @@ type alias QuickType =
     , prefix : Maybe UnionPrefix
     , print : Maybe UnionPrint
     , printf : Maybe UnionPrintf
+    , printMembers : Maybe UnionPrintMembers
     , private : Maybe UnionPrivate
     , protected : Maybe UnionProtected
     , protocol : Maybe UnionProtocol
@@ -774,6 +883,7 @@ type alias QuickType =
     , range : Maybe UnionRange
     , readonly : Maybe UnionReadonly
     , ref : Maybe UnionRef
+    , regExp : Maybe UnionRegExp
     , register : Maybe UnionRegister
     , reinterpretCast : Maybe UnionReinterpretCast
     , repeat : Maybe UnionRepeat
@@ -785,6 +895,8 @@ type alias QuickType =
     , rethrows : Maybe UnionRethrows
     , return : Maybe UnionReturn
     , right : Maybe UnionRight
+    , runtimeType : Maybe UnionRuntimeType
+    , s : Maybe UnionS
     , sbyte : Maybe UnionSbyte
     , sealed : Maybe UnionSealed
     , sel : Maybe UnionSEL
@@ -792,14 +904,19 @@ type alias QuickType =
     , self : Maybe UnionSelf
     , quickTypeSelf : Maybe UnionSelfUnion
     , serialize : Maybe UnionSerialize
+    , serializerProvider : Maybe UnionSerializerProvider
     , set : Maybe UnionSet
     , short : Maybe UnionShort
     , signed : Maybe UnionSigned
+    , simpleModule : Maybe UnionSimpleModule
     , sizeof : Maybe UnionSizeof
     , stackalloc : Maybe UnionStackalloc
+    , standards : Maybe UnionStandards
     , static : Maybe UnionStatic
     , staticAssert : Maybe UnionStaticAssert
     , staticCast : Maybe UnionStaticCast
+    , stdDeserializer : Maybe UnionStdDeserializer
+    , stdSerializer : Maybe UnionStdSerializer
     , strictfp : Maybe UnionStrictfp
     , quickTypeString : Maybe UnionString
     , struct : Maybe UnionStruct
@@ -815,8 +932,11 @@ type alias QuickType =
     , threadLocal : Maybe UnionThreadLocal
     , throw : Maybe UnionThrow
     , throws : Maybe UnionThrows
+    , timeOnly : Maybe UnionTimeOnly
+    , timeOnlyConverter : Maybe UnionTimeOnlyConverter
     , toJSON : Maybe UnionToJSON
     , topLevel : Maybe UnionTopLevel
+    , toString : Maybe UnionToString
     , transient : Maybe UnionTransient
     , true : Maybe UnionTrue
     , quickTypeTrue : Maybe UnionTrueUnion
@@ -838,6 +958,9 @@ type alias QuickType =
     , unsigned : Maybe UnionUnsigned
     , ushort : Maybe UnionUshort
     , using : Maybe UnionUsing
+    , utf8JSONReader : Maybe UnionUtf8JSONReader
+    , utf8JSONWriter : Maybe UnionUtf8JSONWriter
+    , uuid : Maybe UnionUUID
     , var : Maybe UnionVar
     , virtual : Maybe UnionVirtual
     , void : Maybe UnionVoid
@@ -1118,6 +1241,14 @@ type alias Class =
     {
     }
 
+type UnionClone
+    = CloneInUnionClone Clone
+    | DoubleInUnionClone Float
+
+type alias Clone =
+    {
+    }
+
 type UnionCoAwait
     = CoAwaitInUnionCoAwait CoAwait
     | DoubleInUnionCoAwait Float
@@ -1238,6 +1369,14 @@ type alias Converter =
     {
     }
 
+type UnionCultureInfo
+    = CultureInfoInUnionCultureInfo CultureInfo
+    | DoubleInUnionCultureInfo Float
+
+type alias CultureInfo =
+    {
+    }
+
 type UnionDate
     = DateInUnionDate Date
     | DoubleInUnionDate Float
@@ -1246,6 +1385,30 @@ type alias Date =
     {
     }
 
+type UnionDateFormatter
+    = DateFormatterInUnionDateFormatter DateFormatter
+    | DoubleInUnionDateFormatter Float
+
+type alias DateFormatter =
+    {
+    }
+
+type UnionDateOnly
+    = DateOnlyInUnionDateOnly DateOnly
+    | DoubleInUnionDateOnly Float
+
+type alias DateOnly =
+    {
+    }
+
+type UnionDateOnlyConverter
+    = DateOnlyConverterInUnionDateOnlyConverter DateOnlyConverter
+    | DoubleInUnionDateOnlyConverter Float
+
+type alias DateOnlyConverter =
+    {
+    }
+
 type UnionDateParseHandling
     = DateParseHandlingInUnionDateParseHandling DateParseHandling
     | DoubleInUnionDateParseHandling Float
@@ -1254,6 +1417,22 @@ type alias DateParseHandling =
     {
     }
 
+type UnionDateTime
+    = DateTimeInUnionDateTime DateTime
+    | DoubleInUnionDateTime Float
+
+type alias DateTime =
+    {
+    }
+
+type UnionDateTimeStyles
+    = DateTimeStylesInUnionDateTimeStyles DateTimeStyles
+    | DoubleInUnionDateTimeStyles Float
+
+type alias DateTimeStyles =
+    {
+    }
+
 type UnionDebugger
     = DebuggerInUnionDebugger Debugger
     | DoubleInUnionDebugger Float
@@ -1438,6 +1617,22 @@ type alias Enum =
     {
     }
 
+type UnionEnumValues
+    = DoubleInUnionEnumValues Float
+    | EnumValuesInUnionEnumValues EnumValues
+
+type alias EnumValues =
+    {
+    }
+
+type UnionEqualityContract
+    = DoubleInUnionEqualityContract Float
+    | EqualityContractInUnionEqualityContract EqualityContract
+
+type alias EqualityContract =
+    {
+    }
+
 type UnionEvent
     = DoubleInUnionEvent Float
     | EventInUnionEvent Event
@@ -1566,6 +1761,14 @@ type alias Foreach =
     {
     }
 
+type UnionFormatException
+    = DoubleInUnionFormatException Float
+    | FormatExceptionInUnionFormatException FormatException
+
+type alias FormatException =
+    {
+    }
+
 type UnionFriend
     = DoubleInUnionFriend Float
     | FriendInUnionFriend Friend
@@ -1654,6 +1857,14 @@ type alias HasOwnProperty =
     {
     }
 
+type UnionHashCode
+    = DoubleInUnionHashCode Float
+    | HashCodeInUnionHashCode HashCode
+
+type alias HashCode =
+    {
+    }
+
 type UnionID
     = DoubleInUnionID Float
     | IDInUnionID ID
@@ -1758,6 +1969,14 @@ type alias Is =
     {
     }
 
+type UnionISODateTimeOffsetConverter
+    = DoubleInUnionISODateTimeOffsetConverter Float
+    | ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter ISODateTimeOffsetConverter
+
+type alias ISODateTimeOffsetConverter =
+    {
+    }
+
 type UnionIterable
     = DoubleInUnionIterable Float
     | IterableInUnionIterable Iterable
@@ -1798,6 +2017,22 @@ type alias JSON =
     {
     }
 
+type UnionJSONAny
+    = DoubleInUnionJSONAny Float
+    | JSONAnyInUnionJSONAny JSONAny
+
+type alias JSONAny =
+    {
+    }
+
+type UnionJSONCodingKey
+    = DoubleInUnionJSONCodingKey Float
+    | JSONCodingKeyInUnionJSONCodingKey JSONCodingKey
+
+type alias JSONCodingKey =
+    {
+    }
+
 type UnionJSONConverter
     = DoubleInUnionJSONConverter Float
     | JSONConverterInUnionJSONConverter JSONConverter
@@ -1806,6 +2041,70 @@ type alias JSONConverter =
     {
     }
 
+type UnionJSONDecoder
+    = DoubleInUnionJSONDecoder Float
+    | JSONDecoderInUnionJSONDecoder JSONDecoder
+
+type alias JSONDecoder =
+    {
+    }
+
+type UnionJSONEncoder
+    = DoubleInUnionJSONEncoder Float
+    | JSONEncoderInUnionJSONEncoder JSONEncoder
+
+type alias JSONEncoder =
+    {
+    }
+
+type UnionJSONException
+    = DoubleInUnionJSONException Float
+    | JSONExceptionInUnionJSONException JSONException
+
+type alias JSONException =
+    {
+    }
+
+type UnionJSONGenerator
+    = DoubleInUnionJSONGenerator Float
+    | JSONGeneratorInUnionJSONGenerator JSONGenerator
+
+type alias JSONGenerator =
+    {
+    }
+
+type UnionJSONNode
+    = DoubleInUnionJSONNode Float
+    | JSONNodeInUnionJSONNode JSONNode
+
+type alias JSONNode =
+    {
+    }
+
+type UnionJSONNull
+    = DoubleInUnionJSONNull Float
+    | JSONNullInUnionJSONNull JSONNull
+
+type alias JSONNull =
+    {
+    }
+
+type UnionJSONParser
+    = DoubleInUnionJSONParser Float
+    | JSONParserInUnionJSONParser JSONParser
+
+type alias JSONParser =
+    {
+    }
+
+type UnionJSONReader
+    = DoubleInUnionJSONReader Float
+    | JSONReaderInUnionJSONReader JSONReader
+
+type alias JSONReader =
+    {
+    }
+
 type UnionJSONSerializer
     = DoubleInUnionJSONSerializer Float
     | JSONSerializerInUnionJSONSerializer JSONSerializer
@@ -1822,6 +2121,14 @@ type alias JSONToken =
     {
     }
 
+type UnionJSONTokenType
+    = DoubleInUnionJSONTokenType Float
+    | JSONTokenTypeInUnionJSONTokenType JSONTokenType
+
+type alias JSONTokenType =
+    {
+    }
+
 type UnionJSONWriter
     = DoubleInUnionJSONWriter Float
     | JSONWriterInUnionJSONWriter JSONWriter
@@ -1958,6 +2265,14 @@ type alias No =
     {
     }
 
+type UnionNoSuchMethod
+    = DoubleInUnionNoSuchMethod Float
+    | NoSuchMethodInUnionNoSuchMethod NoSuchMethod
+
+type alias NoSuchMethod =
+    {
+    }
+
 type UnionNoexcept
     = DoubleInUnionNoexcept Float
     | NoexceptInUnionNoexcept Noexcept
@@ -2014,6 +2329,14 @@ type alias NotEq =
     {
     }
 
+type UnionNSError
+    = DoubleInUnionNSError Float
+    | NSErrorInUnionNSError NSError
+
+type alias NSError =
+    {
+    }
+
 type UnionNSString
     = DoubleInUnionNSString Float
     | NSStringInUnionNSString NSString
@@ -2054,6 +2377,14 @@ type alias Object =
     {
     }
 
+type UnionObjectMapper
+    = DoubleInUnionObjectMapper Float
+    | ObjectMapperInUnionObjectMapper ObjectMapper
+
+type alias ObjectMapper =
+    {
+    }
+
 type UnionOneway
     = DoubleInUnionOneway Float
     | OnewayInUnionOneway Oneway
@@ -2174,6 +2505,14 @@ type alias Print =
     {
     }
 
+type UnionPrintMembers
+    = DoubleInUnionPrintMembers Float
+    | PrintMembersInUnionPrintMembers PrintMembers
+
+type alias PrintMembers =
+    {
+    }
+
 type UnionPrintf
     = DoubleInUnionPrintf Float
     | PrintfInUnionPrintf Printf
@@ -2494,6 +2833,14 @@ type alias Ref =
     {
     }
 
+type UnionRegExp
+    = DoubleInUnionRegExp Float
+    | RegExpInUnionRegExp RegExp
+
+type alias RegExp =
+    {
+    }
+
 type UnionRegister
     = DoubleInUnionRegister Float
     | RegisterInUnionRegister Register
@@ -2582,6 +2929,22 @@ type alias Right =
     {
     }
 
+type UnionRuntimeType
+    = DoubleInUnionRuntimeType Float
+    | RuntimeTypeInUnionRuntimeType RuntimeType
+
+type alias RuntimeType =
+    {
+    }
+
+type UnionS
+    = DoubleInUnionS Float
+    | SInUnionS S
+
+type alias S =
+    {
+    }
+
 type UnionSbyte
     = DoubleInUnionSbyte Float
     | SbyteInUnionSbyte Sbyte
@@ -2630,6 +2993,14 @@ type alias Serialize =
     {
     }
 
+type UnionSerializerProvider
+    = DoubleInUnionSerializerProvider Float
+    | SerializerProviderInUnionSerializerProvider SerializerProvider
+
+type alias SerializerProvider =
+    {
+    }
+
 type UnionSet
     = DoubleInUnionSet Float
     | SetInUnionSet Set
@@ -2654,6 +3025,14 @@ type alias Signed =
     {
     }
 
+type UnionSimpleModule
+    = DoubleInUnionSimpleModule Float
+    | SimpleModuleInUnionSimpleModule SimpleModule
+
+type alias SimpleModule =
+    {
+    }
+
 type UnionSizeof
     = DoubleInUnionSizeof Float
     | SizeofInUnionSizeof Sizeof
@@ -2670,6 +3049,14 @@ type alias Stackalloc =
     {
     }
 
+type UnionStandards
+    = DoubleInUnionStandards Float
+    | StandardsInUnionStandards Standards
+
+type alias Standards =
+    {
+    }
+
 type UnionStatic
     = DoubleInUnionStatic Float
     | StaticInUnionStatic Static
@@ -2694,6 +3081,22 @@ type alias StaticCast =
     {
     }
 
+type UnionStdDeserializer
+    = DoubleInUnionStdDeserializer Float
+    | StdDeserializerInUnionStdDeserializer StdDeserializer
+
+type alias StdDeserializer =
+    {
+    }
+
+type UnionStdSerializer
+    = DoubleInUnionStdSerializer Float
+    | StdSerializerInUnionStdSerializer StdSerializer
+
+type alias StdSerializer =
+    {
+    }
+
 type UnionStrictfp
     = DoubleInUnionStrictfp Float
     | StrictfpInUnionStrictfp Strictfp
@@ -2798,6 +3201,22 @@ type alias Throws =
     {
     }
 
+type UnionTimeOnly
+    = DoubleInUnionTimeOnly Float
+    | TimeOnlyInUnionTimeOnly TimeOnly
+
+type alias TimeOnly =
+    {
+    }
+
+type UnionTimeOnlyConverter
+    = DoubleInUnionTimeOnlyConverter Float
+    | TimeOnlyConverterInUnionTimeOnlyConverter TimeOnlyConverter
+
+type alias TimeOnlyConverter =
+    {
+    }
+
 type UnionToJSON
     = DoubleInUnionToJSON Float
     | ToJSONInUnionToJSON ToJSON
@@ -2806,6 +3225,14 @@ type alias ToJSON =
     {
     }
 
+type UnionToString
+    = DoubleInUnionToString Float
+    | ToStringInUnionToString ToString
+
+type alias ToString =
+    {
+    }
+
 type UnionTopLevel
     = DoubleInUnionTopLevel Float
     | TopLevelInUnionTopLevel TopLevel
@@ -2958,6 +3385,30 @@ type alias Using =
     {
     }
 
+type UnionUtf8JSONReader
+    = DoubleInUnionUtf8JSONReader Float
+    | Utf8JSONReaderInUnionUtf8JSONReader Utf8JSONReader
+
+type alias Utf8JSONReader =
+    {
+    }
+
+type UnionUtf8JSONWriter
+    = DoubleInUnionUtf8JSONWriter Float
+    | Utf8JSONWriterInUnionUtf8JSONWriter Utf8JSONWriter
+
+type alias Utf8JSONWriter =
+    {
+    }
+
+type UnionUUID
+    = DoubleInUnionUUID Float
+    | UUIDInUnionUUID UUID
+
+type alias UUID =
+    {
+    }
+
 type UnionVar
     = DoubleInUnionVar Float
     | VarInUnionVar Var
@@ -3119,6 +3570,7 @@ quickType =
         |> Jpipe.custom (optionalField "checked" (Jdec.nullable unionChecked) Nothing)
         |> Jpipe.custom (optionalField "class" (Jdec.nullable unionClassUnion) Nothing)
         |> Jpipe.custom (optionalField "Class" (Jdec.nullable unionClass) Nothing)
+        |> Jpipe.custom (optionalField "clone" (Jdec.nullable unionClone) Nothing)
         |> Jpipe.custom (optionalField "co_await" (Jdec.nullable unionCoAwait) Nothing)
         |> Jpipe.custom (optionalField "co_return" (Jdec.nullable unionCoReturn) Nothing)
         |> Jpipe.custom (optionalField "co_yield" (Jdec.nullable unionCoYield) Nothing)
@@ -3133,8 +3585,14 @@ quickType =
         |> Jpipe.custom (optionalField "convenience" (Jdec.nullable unionConvenience) Nothing)
         |> Jpipe.custom (optionalField "convert" (Jdec.nullable unionConvert) Nothing)
         |> Jpipe.custom (optionalField "converter" (Jdec.nullable unionConverter) Nothing)
+        |> Jpipe.custom (optionalField "CultureInfo" (Jdec.nullable unionCultureInfo) Nothing)
         |> Jpipe.custom (optionalField "date" (Jdec.nullable unionDate) Nothing)
         |> Jpipe.custom (optionalField "date_parse_handling" (Jdec.nullable unionDateParseHandling) Nothing)
+        |> Jpipe.custom (optionalField "DateFormatter" (Jdec.nullable unionDateFormatter) Nothing)
+        |> Jpipe.custom (optionalField "DateOnly" (Jdec.nullable unionDateOnly) Nothing)
+        |> Jpipe.custom (optionalField "DateOnlyConverter" (Jdec.nullable unionDateOnlyConverter) Nothing)
+        |> Jpipe.custom (optionalField "DateTime" (Jdec.nullable unionDateTime) Nothing)
+        |> Jpipe.custom (optionalField "DateTimeStyles" (Jdec.nullable unionDateTimeStyles) Nothing)
         |> Jpipe.custom (optionalField "debugger" (Jdec.nullable unionDebugger) Nothing)
         |> Jpipe.custom (optionalField "decimal" (Jdec.nullable unionDecimal) Nothing)
         |> Jpipe.custom (optionalField "declare" (Jdec.nullable unionDeclare) Nothing)
@@ -3159,6 +3617,8 @@ quickType =
         |> Jpipe.custom (optionalField "else" (Jdec.nullable unionElse) Nothing)
         |> Jpipe.custom (optionalField "encode_quick_type" (Jdec.nullable unionEncodeQuickType) Nothing)
         |> Jpipe.custom (optionalField "enum" (Jdec.nullable unionEnum) Nothing)
+        |> Jpipe.custom (optionalField "EnumValues" (Jdec.nullable unionEnumValues) Nothing)
+        |> Jpipe.custom (optionalField "equalityContract" (Jdec.nullable unionEqualityContract) Nothing)
         |> Jpipe.custom (optionalField "event" (Jdec.nullable unionEvent) Nothing)
         |> Jpipe.custom (optionalField "except" (Jdec.nullable unionExcept) Nothing)
         |> Jpipe.custom (optionalField "exception" (Jdec.nullable unionException) Nothing)
@@ -3178,6 +3638,7 @@ quickType =
         |> Jpipe.custom (optionalField "float" (Jdec.nullable unionFloat) Nothing)
         |> Jpipe.custom (optionalField "for" (Jdec.nullable unionFor) Nothing)
         |> Jpipe.custom (optionalField "foreach" (Jdec.nullable unionForeach) Nothing)
+        |> Jpipe.custom (optionalField "FormatException" (Jdec.nullable unionFormatException) Nothing)
         |> Jpipe.custom (optionalField "friend" (Jdec.nullable unionFriend) Nothing)
         |> Jpipe.custom (optionalField "from" (Jdec.nullable unionFrom) Nothing)
         |> Jpipe.custom (optionalField "from_json" (Jdec.nullable unionFromJSON) Nothing)
@@ -3188,6 +3649,7 @@ quickType =
         |> Jpipe.custom (optionalField "go" (Jdec.nullable unionGo) Nothing)
         |> Jpipe.custom (optionalField "goto" (Jdec.nullable unionGoto) Nothing)
         |> Jpipe.custom (optionalField "guard" (Jdec.nullable unionGuard) Nothing)
+        |> Jpipe.custom (optionalField "hashCode" (Jdec.nullable unionHashCode) Nothing)
         |> Jpipe.custom (optionalField "hasOwnProperty" (Jdec.nullable unionHasOwnProperty) Nothing)
         |> Jpipe.custom (optionalField "id" (Jdec.nullable unionID) Nothing)
         |> Jpipe.custom (optionalField "if" (Jdec.nullable unionIf) Nothing)
@@ -3206,6 +3668,7 @@ quickType =
         |> Jpipe.custom (optionalField "interface" (Jdec.nullable unionInterface) Nothing)
         |> Jpipe.custom (optionalField "internal" (Jdec.nullable unionInternal) Nothing)
         |> Jpipe.custom (optionalField "is" (Jdec.nullable unionIs) Nothing)
+        |> Jpipe.custom (optionalField "IsoDateTimeOffsetConverter" (Jdec.nullable unionISODateTimeOffsetConverter) Nothing)
         |> Jpipe.custom (optionalField "iterable" (Jdec.nullable unionIterable) Nothing)
         |> Jpipe.custom (optionalField "jdec" (Jdec.nullable unionJdec) Nothing)
         |> Jpipe.custom (optionalField "jenc" (Jdec.nullable unionJenc) Nothing)
@@ -3215,6 +3678,17 @@ quickType =
         |> Jpipe.custom (optionalField "json_serializer" (Jdec.nullable unionJSONSerializer) Nothing)
         |> Jpipe.custom (optionalField "json_token" (Jdec.nullable unionJSONToken) Nothing)
         |> Jpipe.custom (optionalField "json_writer" (Jdec.nullable unionJSONWriter) Nothing)
+        |> Jpipe.custom (optionalField "JSONAny" (Jdec.nullable unionJSONAny) Nothing)
+        |> Jpipe.custom (optionalField "JSONCodingKey" (Jdec.nullable unionJSONCodingKey) Nothing)
+        |> Jpipe.custom (optionalField "JSONDecoder" (Jdec.nullable unionJSONDecoder) Nothing)
+        |> Jpipe.custom (optionalField "JSONEncoder" (Jdec.nullable unionJSONEncoder) Nothing)
+        |> Jpipe.custom (optionalField "JsonException" (Jdec.nullable unionJSONException) Nothing)
+        |> Jpipe.custom (optionalField "JsonGenerator" (Jdec.nullable unionJSONGenerator) Nothing)
+        |> Jpipe.custom (optionalField "JsonNode" (Jdec.nullable unionJSONNode) Nothing)
+        |> Jpipe.custom (optionalField "JSONNull" (Jdec.nullable unionJSONNull) Nothing)
+        |> Jpipe.custom (optionalField "JsonParser" (Jdec.nullable unionJSONParser) Nothing)
+        |> Jpipe.custom (optionalField "JsonReader" (Jdec.nullable unionJSONReader) Nothing)
+        |> Jpipe.custom (optionalField "JsonTokenType" (Jdec.nullable unionJSONTokenType) Nothing)
         |> Jpipe.custom (optionalField "lambda" (Jdec.nullable unionLambda) Nothing)
         |> Jpipe.custom (optionalField "lazy" (Jdec.nullable unionLazy) Nothing)
         |> Jpipe.custom (optionalField "left" (Jdec.nullable unionLeft) Nothing)
@@ -3239,14 +3713,17 @@ quickType =
         |> Jpipe.custom (optionalField "None" (Jdec.nullable unionNone) Nothing)
         |> Jpipe.custom (optionalField "nonlocal" (Jdec.nullable unionNonlocal) Nothing)
         |> Jpipe.custom (optionalField "nonmutating" (Jdec.nullable unionNonmutating) Nothing)
+        |> Jpipe.custom (optionalField "noSuchMethod" (Jdec.nullable unionNoSuchMethod) Nothing)
         |> Jpipe.custom (optionalField "not" (Jdec.nullable unionNot) Nothing)
         |> Jpipe.custom (optionalField "not_eq" (Jdec.nullable unionNotEq) Nothing)
+        |> Jpipe.custom (optionalField "NSError" (Jdec.nullable unionNSError) Nothing)
         |> Jpipe.custom (optionalField "NSString" (Jdec.nullable unionNSString) Nothing)
         |> Jpipe.custom (optionalField "NULL" (Jdec.nullable unionNULL) Nothing)
         |> Jpipe.custom (optionalField "null" (Jdec.nullable unionNull) Nothing)
         |> Jpipe.custom (optionalField "nullptr" (Jdec.nullable unionNullptr) Nothing)
         |> Jpipe.custom (optionalField "number" (Jdec.nullable unionNumber) Nothing)
         |> Jpipe.custom (optionalField "object" (Jdec.nullable unionObject) Nothing)
+        |> Jpipe.custom (optionalField "ObjectMapper" (Jdec.nullable unionObjectMapper) Nothing)
         |> Jpipe.custom (optionalField "of" (Jdec.nullable unionOf) Nothing)
         |> Jpipe.custom (optionalField "oneway" (Jdec.nullable unionOneway) Nothing)
         |> Jpipe.custom (optionalField "open" (Jdec.nullable unionOpen) Nothing)
@@ -3265,6 +3742,7 @@ quickType =
         |> Jpipe.custom (optionalField "prefix" (Jdec.nullable unionPrefix) Nothing)
         |> Jpipe.custom (optionalField "print" (Jdec.nullable unionPrint) Nothing)
         |> Jpipe.custom (optionalField "printf" (Jdec.nullable unionPrintf) Nothing)
+        |> Jpipe.custom (optionalField "printMembers" (Jdec.nullable unionPrintMembers) Nothing)
         |> Jpipe.custom (optionalField "private" (Jdec.nullable unionPrivate) Nothing)
         |> Jpipe.custom (optionalField "protected" (Jdec.nullable unionProtected) Nothing)
         |> Jpipe.custom (optionalField "Protocol" (Jdec.nullable unionProtocol) Nothing)
@@ -3275,6 +3753,7 @@ quickType =
         |> Jpipe.custom (optionalField "range" (Jdec.nullable unionRange) Nothing)
         |> Jpipe.custom (optionalField "readonly" (Jdec.nullable unionReadonly) Nothing)
         |> Jpipe.custom (optionalField "ref" (Jdec.nullable unionRef) Nothing)
+        |> Jpipe.custom (optionalField "RegExp" (Jdec.nullable unionRegExp) Nothing)
         |> Jpipe.custom (optionalField "register" (Jdec.nullable unionRegister) Nothing)
         |> Jpipe.custom (optionalField "reinterpret_cast" (Jdec.nullable unionReinterpretCast) Nothing)
         |> Jpipe.custom (optionalField "repeat" (Jdec.nullable unionRepeat) Nothing)
@@ -3286,6 +3765,8 @@ quickType =
         |> Jpipe.custom (optionalField "rethrows" (Jdec.nullable unionRethrows) Nothing)
         |> Jpipe.custom (optionalField "return" (Jdec.nullable unionReturn) Nothing)
         |> Jpipe.custom (optionalField "right" (Jdec.nullable unionRight) Nothing)
+        |> Jpipe.custom (optionalField "runtimeType" (Jdec.nullable unionRuntimeType) Nothing)
+        |> Jpipe.custom (optionalField "s" (Jdec.nullable unionS) Nothing)
         |> Jpipe.custom (optionalField "sbyte" (Jdec.nullable unionSbyte) Nothing)
         |> Jpipe.custom (optionalField "sealed" (Jdec.nullable unionSealed) Nothing)
         |> Jpipe.custom (optionalField "SEL" (Jdec.nullable unionSEL) Nothing)
@@ -3293,14 +3774,19 @@ quickType =
         |> Jpipe.custom (optionalField "Self" (Jdec.nullable unionSelf) Nothing)
         |> Jpipe.custom (optionalField "self" (Jdec.nullable unionSelfUnion) Nothing)
         |> Jpipe.custom (optionalField "serialize" (Jdec.nullable unionSerialize) Nothing)
+        |> Jpipe.custom (optionalField "SerializerProvider" (Jdec.nullable unionSerializerProvider) Nothing)
         |> Jpipe.custom (optionalField "set" (Jdec.nullable unionSet) Nothing)
         |> Jpipe.custom (optionalField "short" (Jdec.nullable unionShort) Nothing)
         |> Jpipe.custom (optionalField "signed" (Jdec.nullable unionSigned) Nothing)
+        |> Jpipe.custom (optionalField "SimpleModule" (Jdec.nullable unionSimpleModule) Nothing)
         |> Jpipe.custom (optionalField "sizeof" (Jdec.nullable unionSizeof) Nothing)
         |> Jpipe.custom (optionalField "stackalloc" (Jdec.nullable unionStackalloc) Nothing)
+        |> Jpipe.custom (optionalField "Standards" (Jdec.nullable unionStandards) Nothing)
         |> Jpipe.custom (optionalField "static" (Jdec.nullable unionStatic) Nothing)
         |> Jpipe.custom (optionalField "static_assert" (Jdec.nullable unionStaticAssert) Nothing)
         |> Jpipe.custom (optionalField "static_cast" (Jdec.nullable unionStaticCast) Nothing)
+        |> Jpipe.custom (optionalField "StdDeserializer" (Jdec.nullable unionStdDeserializer) Nothing)
+        |> Jpipe.custom (optionalField "StdSerializer" (Jdec.nullable unionStdSerializer) Nothing)
         |> Jpipe.custom (optionalField "strictfp" (Jdec.nullable unionStrictfp) Nothing)
         |> Jpipe.custom (optionalField "string" (Jdec.nullable unionString) Nothing)
         |> Jpipe.custom (optionalField "struct" (Jdec.nullable unionStruct) Nothing)
@@ -3316,8 +3802,11 @@ quickType =
         |> Jpipe.custom (optionalField "thread_local" (Jdec.nullable unionThreadLocal) Nothing)
         |> Jpipe.custom (optionalField "throw" (Jdec.nullable unionThrow) Nothing)
         |> Jpipe.custom (optionalField "throws" (Jdec.nullable unionThrows) Nothing)
+        |> Jpipe.custom (optionalField "TimeOnly" (Jdec.nullable unionTimeOnly) Nothing)
+        |> Jpipe.custom (optionalField "TimeOnlyConverter" (Jdec.nullable unionTimeOnlyConverter) Nothing)
         |> Jpipe.custom (optionalField "to_json" (Jdec.nullable unionToJSON) Nothing)
         |> Jpipe.custom (optionalField "top_level" (Jdec.nullable unionTopLevel) Nothing)
+        |> Jpipe.custom (optionalField "toString" (Jdec.nullable unionToString) Nothing)
         |> Jpipe.custom (optionalField "transient" (Jdec.nullable unionTransient) Nothing)
         |> Jpipe.custom (optionalField "True" (Jdec.nullable unionTrue) Nothing)
         |> Jpipe.custom (optionalField "true" (Jdec.nullable unionTrueUnion) Nothing)
@@ -3339,6 +3828,9 @@ quickType =
         |> Jpipe.custom (optionalField "unsigned" (Jdec.nullable unionUnsigned) Nothing)
         |> Jpipe.custom (optionalField "ushort" (Jdec.nullable unionUshort) Nothing)
         |> Jpipe.custom (optionalField "using" (Jdec.nullable unionUsing) Nothing)
+        |> Jpipe.custom (optionalField "Utf8JsonReader" (Jdec.nullable unionUtf8JSONReader) Nothing)
+        |> Jpipe.custom (optionalField "Utf8JsonWriter" (Jdec.nullable unionUtf8JSONWriter) Nothing)
+        |> Jpipe.custom (optionalField "UUID" (Jdec.nullable unionUUID) Nothing)
         |> Jpipe.custom (optionalField "var" (Jdec.nullable unionVar) Nothing)
         |> Jpipe.custom (optionalField "virtual" (Jdec.nullable unionVirtual) Nothing)
         |> Jpipe.custom (optionalField "void" (Jdec.nullable unionVoid) Nothing)
@@ -3400,6 +3892,7 @@ encodeQuickType x =
         , ("checked", makeNullableEncoder encodeUnionChecked x.checked)
         , ("class", makeNullableEncoder encodeUnionClassUnion x.quickTypeClass)
         , ("Class", makeNullableEncoder encodeUnionClass x.class)
+        , ("clone", makeNullableEncoder encodeUnionClone x.clone)
         , ("co_await", makeNullableEncoder encodeUnionCoAwait x.coAwait)
         , ("co_return", makeNullableEncoder encodeUnionCoReturn x.coReturn)
         , ("co_yield", makeNullableEncoder encodeUnionCoYield x.coYield)
@@ -3414,8 +3907,14 @@ encodeQuickType x =
         , ("convenience", makeNullableEncoder encodeUnionConvenience x.convenience)
         , ("convert", makeNullableEncoder encodeUnionConvert x.convert)
         , ("converter", makeNullableEncoder encodeUnionConverter x.converter)
+        , ("CultureInfo", makeNullableEncoder encodeUnionCultureInfo x.cultureInfo)
         , ("date", makeNullableEncoder encodeUnionDate x.date)
         , ("date_parse_handling", makeNullableEncoder encodeUnionDateParseHandling x.dateParseHandling)
+        , ("DateFormatter", makeNullableEncoder encodeUnionDateFormatter x.dateFormatter)
+        , ("DateOnly", makeNullableEncoder encodeUnionDateOnly x.dateOnly)
+        , ("DateOnlyConverter", makeNullableEncoder encodeUnionDateOnlyConverter x.dateOnlyConverter)
+        , ("DateTime", makeNullableEncoder encodeUnionDateTime x.dateTime)
+        , ("DateTimeStyles", makeNullableEncoder encodeUnionDateTimeStyles x.dateTimeStyles)
         , ("debugger", makeNullableEncoder encodeUnionDebugger x.debugger)
         , ("decimal", makeNullableEncoder encodeUnionDecimal x.decimal)
         , ("declare", makeNullableEncoder encodeUnionDeclare x.declare)
@@ -3440,6 +3939,8 @@ encodeQuickType x =
         , ("else", makeNullableEncoder encodeUnionElse x.quickTypeElse)
         , ("encode_quick_type", makeNullableEncoder encodeUnionEncodeQuickType x.encodeQuickType)
         , ("enum", makeNullableEncoder encodeUnionEnum x.enum)
+        , ("EnumValues", makeNullableEncoder encodeUnionEnumValues x.enumValues)
+        , ("equalityContract", makeNullableEncoder encodeUnionEqualityContract x.equalityContract)
         , ("event", makeNullableEncoder encodeUnionEvent x.event)
         , ("except", makeNullableEncoder encodeUnionExcept x.except)
         , ("exception", makeNullableEncoder encodeUnionException x.exception)
@@ -3459,6 +3960,7 @@ encodeQuickType x =
         , ("float", makeNullableEncoder encodeUnionFloat x.quickTypeFloat)
         , ("for", makeNullableEncoder encodeUnionFor x.for)
         , ("foreach", makeNullableEncoder encodeUnionForeach x.foreach)
+        , ("FormatException", makeNullableEncoder encodeUnionFormatException x.formatException)
         , ("friend", makeNullableEncoder encodeUnionFriend x.friend)
         , ("from", makeNullableEncoder encodeUnionFrom x.from)
         , ("from_json", makeNullableEncoder encodeUnionFromJSON x.fromJSON)
@@ -3469,6 +3971,7 @@ encodeQuickType x =
         , ("go", makeNullableEncoder encodeUnionGo x.go)
         , ("goto", makeNullableEncoder encodeUnionGoto x.goto)
         , ("guard", makeNullableEncoder encodeUnionGuard x.guard)
+        , ("hashCode", makeNullableEncoder encodeUnionHashCode x.hashCode)
         , ("hasOwnProperty", makeNullableEncoder encodeUnionHasOwnProperty x.hasOwnProperty)
         , ("id", makeNullableEncoder encodeUnionID x.id)
         , ("if", makeNullableEncoder encodeUnionIf x.quickTypeIf)
@@ -3487,6 +3990,7 @@ encodeQuickType x =
         , ("interface", makeNullableEncoder encodeUnionInterface x.interface)
         , ("internal", makeNullableEncoder encodeUnionInternal x.internal)
         , ("is", makeNullableEncoder encodeUnionIs x.is)
+        , ("IsoDateTimeOffsetConverter", makeNullableEncoder encodeUnionISODateTimeOffsetConverter x.isoDateTimeOffsetConverter)
         , ("iterable", makeNullableEncoder encodeUnionIterable x.iterable)
         , ("jdec", makeNullableEncoder encodeUnionJdec x.jdec)
         , ("jenc", makeNullableEncoder encodeUnionJenc x.jenc)
@@ -3496,6 +4000,17 @@ encodeQuickType x =
         , ("json_serializer", makeNullableEncoder encodeUnionJSONSerializer x.jsonSerializer)
         , ("json_token", makeNullableEncoder encodeUnionJSONToken x.jsonToken)
         , ("json_writer", makeNullableEncoder encodeUnionJSONWriter x.jsonWriter)
+        , ("JSONAny", makeNullableEncoder encodeUnionJSONAny x.jsonAny)
+        , ("JSONCodingKey", makeNullableEncoder encodeUnionJSONCodingKey x.jsonCodingKey)
+        , ("JSONDecoder", makeNullableEncoder encodeUnionJSONDecoder x.jsonDecoder)
+        , ("JSONEncoder", makeNullableEncoder encodeUnionJSONEncoder x.jsonEncoder)
+        , ("JsonException", makeNullableEncoder encodeUnionJSONException x.jsonException)
+        , ("JsonGenerator", makeNullableEncoder encodeUnionJSONGenerator x.jsonGenerator)
+        , ("JsonNode", makeNullableEncoder encodeUnionJSONNode x.jsonNode)
+        , ("JSONNull", makeNullableEncoder encodeUnionJSONNull x.jsonNull)
+        , ("JsonParser", makeNullableEncoder encodeUnionJSONParser x.jsonParser)
+        , ("JsonReader", makeNullableEncoder encodeUnionJSONReader x.jsonReader)
+        , ("JsonTokenType", makeNullableEncoder encodeUnionJSONTokenType x.jsonTokenType)
         , ("lambda", makeNullableEncoder encodeUnionLambda x.lambda)
         , ("lazy", makeNullableEncoder encodeUnionLazy x.lazy)
         , ("left", makeNullableEncoder encodeUnionLeft x.left)
@@ -3520,14 +4035,17 @@ encodeQuickType x =
         , ("None", makeNullableEncoder encodeUnionNone x.none)
         , ("nonlocal", makeNullableEncoder encodeUnionNonlocal x.nonlocal)
         , ("nonmutating", makeNullableEncoder encodeUnionNonmutating x.nonmutating)
+        , ("noSuchMethod", makeNullableEncoder encodeUnionNoSuchMethod x.noSuchMethod)
         , ("not", makeNullableEncoder encodeUnionNot x.not)
         , ("not_eq", makeNullableEncoder encodeUnionNotEq x.notEq)
+        , ("NSError", makeNullableEncoder encodeUnionNSError x.nsError)
         , ("NSString", makeNullableEncoder encodeUnionNSString x.nsString)
         , ("NULL", makeNullableEncoder encodeUnionNULL x.null)
         , ("null", makeNullableEncoder encodeUnionNull x.quickTypeNull)
         , ("nullptr", makeNullableEncoder encodeUnionNullptr x.nullptr)
         , ("number", makeNullableEncoder encodeUnionNumber x.number)
         , ("object", makeNullableEncoder encodeUnionObject x.object)
+        , ("ObjectMapper", makeNullableEncoder encodeUnionObjectMapper x.objectMapper)
         , ("of", makeNullableEncoder encodeUnionOf x.quickTypeOf)
         , ("oneway", makeNullableEncoder encodeUnionOneway x.oneway)
         , ("open", makeNullableEncoder encodeUnionOpen x.open)
@@ -3546,6 +4064,7 @@ encodeQuickType x =
         , ("prefix", makeNullableEncoder encodeUnionPrefix x.prefix)
         , ("print", makeNullableEncoder encodeUnionPrint x.print)
         , ("printf", makeNullableEncoder encodeUnionPrintf x.printf)
+        , ("printMembers", makeNullableEncoder encodeUnionPrintMembers x.printMembers)
         , ("private", makeNullableEncoder encodeUnionPrivate x.private)
         , ("protected", makeNullableEncoder encodeUnionProtected x.protected)
         , ("Protocol", makeNullableEncoder encodeUnionProtocol x.protocol)
@@ -3556,6 +4075,7 @@ encodeQuickType x =
         , ("range", makeNullableEncoder encodeUnionRange x.range)
         , ("readonly", makeNullableEncoder encodeUnionReadonly x.readonly)
         , ("ref", makeNullableEncoder encodeUnionRef x.ref)
+        , ("RegExp", makeNullableEncoder encodeUnionRegExp x.regExp)
         , ("register", makeNullableEncoder encodeUnionRegister x.register)
         , ("reinterpret_cast", makeNullableEncoder encodeUnionReinterpretCast x.reinterpretCast)
         , ("repeat", makeNullableEncoder encodeUnionRepeat x.repeat)
@@ -3567,6 +4087,8 @@ encodeQuickType x =
         , ("rethrows", makeNullableEncoder encodeUnionRethrows x.rethrows)
         , ("return", makeNullableEncoder encodeUnionReturn x.return)
         , ("right", makeNullableEncoder encodeUnionRight x.right)
+        , ("runtimeType", makeNullableEncoder encodeUnionRuntimeType x.runtimeType)
+        , ("s", makeNullableEncoder encodeUnionS x.s)
         , ("sbyte", makeNullableEncoder encodeUnionSbyte x.sbyte)
         , ("sealed", makeNullableEncoder encodeUnionSealed x.sealed)
         , ("SEL", makeNullableEncoder encodeUnionSEL x.sel)
@@ -3574,14 +4096,19 @@ encodeQuickType x =
         , ("Self", makeNullableEncoder encodeUnionSelf x.self)
         , ("self", makeNullableEncoder encodeUnionSelfUnion x.quickTypeSelf)
         , ("serialize", makeNullableEncoder encodeUnionSerialize x.serialize)
+        , ("SerializerProvider", makeNullableEncoder encodeUnionSerializerProvider x.serializerProvider)
         , ("set", makeNullableEncoder encodeUnionSet x.set)
         , ("short", makeNullableEncoder encodeUnionShort x.short)
         , ("signed", makeNullableEncoder encodeUnionSigned x.signed)
+        , ("SimpleModule", makeNullableEncoder encodeUnionSimpleModule x.simpleModule)
         , ("sizeof", makeNullableEncoder encodeUnionSizeof x.sizeof)
         , ("stackalloc", makeNullableEncoder encodeUnionStackalloc x.stackalloc)
+        , ("Standards", makeNullableEncoder encodeUnionStandards x.standards)
         , ("static", makeNullableEncoder encodeUnionStatic x.static)
         , ("static_assert", makeNullableEncoder encodeUnionStaticAssert x.staticAssert)
         , ("static_cast", makeNullableEncoder encodeUnionStaticCast x.staticCast)
+        , ("StdDeserializer", makeNullableEncoder encodeUnionStdDeserializer x.stdDeserializer)
+        , ("StdSerializer", makeNullableEncoder encodeUnionStdSerializer x.stdSerializer)
         , ("strictfp", makeNullableEncoder encodeUnionStrictfp x.strictfp)
         , ("string", makeNullableEncoder encodeUnionString x.quickTypeString)
         , ("struct", makeNullableEncoder encodeUnionStruct x.struct)
@@ -3597,8 +4124,11 @@ encodeQuickType x =
         , ("thread_local", makeNullableEncoder encodeUnionThreadLocal x.threadLocal)
         , ("throw", makeNullableEncoder encodeUnionThrow x.throw)
         , ("throws", makeNullableEncoder encodeUnionThrows x.throws)
+        , ("TimeOnly", makeNullableEncoder encodeUnionTimeOnly x.timeOnly)
+        , ("TimeOnlyConverter", makeNullableEncoder encodeUnionTimeOnlyConverter x.timeOnlyConverter)
         , ("to_json", makeNullableEncoder encodeUnionToJSON x.toJSON)
         , ("top_level", makeNullableEncoder encodeUnionTopLevel x.topLevel)
+        , ("toString", makeNullableEncoder encodeUnionToString x.toString)
         , ("transient", makeNullableEncoder encodeUnionTransient x.transient)
         , ("True", makeNullableEncoder encodeUnionTrue x.true)
         , ("true", makeNullableEncoder encodeUnionTrueUnion x.quickTypeTrue)
@@ -3620,6 +4150,9 @@ encodeQuickType x =
         , ("unsigned", makeNullableEncoder encodeUnionUnsigned x.unsigned)
         , ("ushort", makeNullableEncoder encodeUnionUshort x.ushort)
         , ("using", makeNullableEncoder encodeUnionUsing x.using)
+        , ("Utf8JsonReader", makeNullableEncoder encodeUnionUtf8JSONReader x.utf8JSONReader)
+        , ("Utf8JsonWriter", makeNullableEncoder encodeUnionUtf8JSONWriter x.utf8JSONWriter)
+        , ("UUID", makeNullableEncoder encodeUnionUUID x.uuid)
         , ("var", makeNullableEncoder encodeUnionVar x.var)
         , ("virtual", makeNullableEncoder encodeUnionVirtual x.virtual)
         , ("void", makeNullableEncoder encodeUnionVoid x.void)
@@ -4362,6 +4895,28 @@ encodeClass x =
         [
         ]
 
+unionClone : Jdec.Decoder UnionClone
+unionClone =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionClone Jdec.float
+        , Jdec.map CloneInUnionClone clone
+        ]
+
+encodeUnionClone : UnionClone -> Jenc.Value
+encodeUnionClone x = case x of
+    DoubleInUnionClone y -> Jenc.float y
+    CloneInUnionClone y -> encodeClone y
+
+clone : Jdec.Decoder Clone
+clone =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> Clone)
+
+encodeClone : Clone -> Jenc.Value
+encodeClone x =
+    Jenc.object
+        [
+        ]
+
 unionCoAwait : Jdec.Decoder UnionCoAwait
 unionCoAwait =
     Jdec.oneOf
@@ -4692,6 +5247,28 @@ encodeConverter x =
         [
         ]
 
+unionCultureInfo : Jdec.Decoder UnionCultureInfo
+unionCultureInfo =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionCultureInfo Jdec.float
+        , Jdec.map CultureInfoInUnionCultureInfo cultureInfo
+        ]
+
+encodeUnionCultureInfo : UnionCultureInfo -> Jenc.Value
+encodeUnionCultureInfo x = case x of
+    DoubleInUnionCultureInfo y -> Jenc.float y
+    CultureInfoInUnionCultureInfo y -> encodeCultureInfo y
+
+cultureInfo : Jdec.Decoder CultureInfo
+cultureInfo =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> CultureInfo)
+
+encodeCultureInfo : CultureInfo -> Jenc.Value
+encodeCultureInfo x =
+    Jenc.object
+        [
+        ]
+
 unionDate : Jdec.Decoder UnionDate
 unionDate =
     Jdec.oneOf
@@ -4714,6 +5291,72 @@ encodeDate x =
         [
         ]
 
+unionDateFormatter : Jdec.Decoder UnionDateFormatter
+unionDateFormatter =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionDateFormatter Jdec.float
+        , Jdec.map DateFormatterInUnionDateFormatter dateFormatter
+        ]
+
+encodeUnionDateFormatter : UnionDateFormatter -> Jenc.Value
+encodeUnionDateFormatter x = case x of
+    DoubleInUnionDateFormatter y -> Jenc.float y
+    DateFormatterInUnionDateFormatter y -> encodeDateFormatter y
+
+dateFormatter : Jdec.Decoder DateFormatter
+dateFormatter =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> DateFormatter)
+
+encodeDateFormatter : DateFormatter -> Jenc.Value
+encodeDateFormatter x =
+    Jenc.object
+        [
+        ]
+
+unionDateOnly : Jdec.Decoder UnionDateOnly
+unionDateOnly =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionDateOnly Jdec.float
+        , Jdec.map DateOnlyInUnionDateOnly dateOnly
+        ]
+
+encodeUnionDateOnly : UnionDateOnly -> Jenc.Value
+encodeUnionDateOnly x = case x of
+    DoubleInUnionDateOnly y -> Jenc.float y
+    DateOnlyInUnionDateOnly y -> encodeDateOnly y
+
+dateOnly : Jdec.Decoder DateOnly
+dateOnly =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> DateOnly)
+
+encodeDateOnly : DateOnly -> Jenc.Value
+encodeDateOnly x =
+    Jenc.object
+        [
+        ]
+
+unionDateOnlyConverter : Jdec.Decoder UnionDateOnlyConverter
+unionDateOnlyConverter =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionDateOnlyConverter Jdec.float
+        , Jdec.map DateOnlyConverterInUnionDateOnlyConverter dateOnlyConverter
+        ]
+
+encodeUnionDateOnlyConverter : UnionDateOnlyConverter -> Jenc.Value
+encodeUnionDateOnlyConverter x = case x of
+    DoubleInUnionDateOnlyConverter y -> Jenc.float y
+    DateOnlyConverterInUnionDateOnlyConverter y -> encodeDateOnlyConverter y
+
+dateOnlyConverter : Jdec.Decoder DateOnlyConverter
+dateOnlyConverter =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> DateOnlyConverter)
+
+encodeDateOnlyConverter : DateOnlyConverter -> Jenc.Value
+encodeDateOnlyConverter x =
+    Jenc.object
+        [
+        ]
+
 unionDateParseHandling : Jdec.Decoder UnionDateParseHandling
 unionDateParseHandling =
     Jdec.oneOf
@@ -4736,6 +5379,50 @@ encodeDateParseHandling x =
         [
         ]
 
+unionDateTime : Jdec.Decoder UnionDateTime
+unionDateTime =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionDateTime Jdec.float
+        , Jdec.map DateTimeInUnionDateTime dateTime
+        ]
+
+encodeUnionDateTime : UnionDateTime -> Jenc.Value
+encodeUnionDateTime x = case x of
+    DoubleInUnionDateTime y -> Jenc.float y
+    DateTimeInUnionDateTime y -> encodeDateTime y
+
+dateTime : Jdec.Decoder DateTime
+dateTime =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> DateTime)
+
+encodeDateTime : DateTime -> Jenc.Value
+encodeDateTime x =
+    Jenc.object
+        [
+        ]
+
+unionDateTimeStyles : Jdec.Decoder UnionDateTimeStyles
+unionDateTimeStyles =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionDateTimeStyles Jdec.float
+        , Jdec.map DateTimeStylesInUnionDateTimeStyles dateTimeStyles
+        ]
+
+encodeUnionDateTimeStyles : UnionDateTimeStyles -> Jenc.Value
+encodeUnionDateTimeStyles x = case x of
+    DoubleInUnionDateTimeStyles y -> Jenc.float y
+    DateTimeStylesInUnionDateTimeStyles y -> encodeDateTimeStyles y
+
+dateTimeStyles : Jdec.Decoder DateTimeStyles
+dateTimeStyles =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> DateTimeStyles)
+
+encodeDateTimeStyles : DateTimeStyles -> Jenc.Value
+encodeDateTimeStyles x =
+    Jenc.object
+        [
+        ]
+
 unionDebugger : Jdec.Decoder UnionDebugger
 unionDebugger =
     Jdec.oneOf
@@ -5242,6 +5929,50 @@ encodeEnum x =
         [
         ]
 
+unionEnumValues : Jdec.Decoder UnionEnumValues
+unionEnumValues =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionEnumValues Jdec.float
+        , Jdec.map EnumValuesInUnionEnumValues enumValues
+        ]
+
+encodeUnionEnumValues : UnionEnumValues -> Jenc.Value
+encodeUnionEnumValues x = case x of
+    DoubleInUnionEnumValues y -> Jenc.float y
+    EnumValuesInUnionEnumValues y -> encodeEnumValues y
+
+enumValues : Jdec.Decoder EnumValues
+enumValues =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> EnumValues)
+
+encodeEnumValues : EnumValues -> Jenc.Value
+encodeEnumValues x =
+    Jenc.object
+        [
+        ]
+
+unionEqualityContract : Jdec.Decoder UnionEqualityContract
+unionEqualityContract =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionEqualityContract Jdec.float
+        , Jdec.map EqualityContractInUnionEqualityContract equalityContract
+        ]
+
+encodeUnionEqualityContract : UnionEqualityContract -> Jenc.Value
+encodeUnionEqualityContract x = case x of
+    DoubleInUnionEqualityContract y -> Jenc.float y
+    EqualityContractInUnionEqualityContract y -> encodeEqualityContract y
+
+equalityContract : Jdec.Decoder EqualityContract
+equalityContract =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> EqualityContract)
+
+encodeEqualityContract : EqualityContract -> Jenc.Value
+encodeEqualityContract x =
+    Jenc.object
+        [
+        ]
+
 unionEvent : Jdec.Decoder UnionEvent
 unionEvent =
     Jdec.oneOf
@@ -5594,6 +6325,28 @@ encodeForeach x =
         [
         ]
 
+unionFormatException : Jdec.Decoder UnionFormatException
+unionFormatException =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionFormatException Jdec.float
+        , Jdec.map FormatExceptionInUnionFormatException formatException
+        ]
+
+encodeUnionFormatException : UnionFormatException -> Jenc.Value
+encodeUnionFormatException x = case x of
+    DoubleInUnionFormatException y -> Jenc.float y
+    FormatExceptionInUnionFormatException y -> encodeFormatException y
+
+formatException : Jdec.Decoder FormatException
+formatException =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> FormatException)
+
+encodeFormatException : FormatException -> Jenc.Value
+encodeFormatException x =
+    Jenc.object
+        [
+        ]
+
 unionFriend : Jdec.Decoder UnionFriend
 unionFriend =
     Jdec.oneOf
@@ -5836,8 +6589,30 @@ encodeHasOwnProperty x =
         [
         ]
 
-unionID : Jdec.Decoder UnionID
-unionID =
+unionHashCode : Jdec.Decoder UnionHashCode
+unionHashCode =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionHashCode Jdec.float
+        , Jdec.map HashCodeInUnionHashCode hashCode
+        ]
+
+encodeUnionHashCode : UnionHashCode -> Jenc.Value
+encodeUnionHashCode x = case x of
+    DoubleInUnionHashCode y -> Jenc.float y
+    HashCodeInUnionHashCode y -> encodeHashCode y
+
+hashCode : Jdec.Decoder HashCode
+hashCode =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> HashCode)
+
+encodeHashCode : HashCode -> Jenc.Value
+encodeHashCode x =
+    Jenc.object
+        [
+        ]
+
+unionID : Jdec.Decoder UnionID
+unionID =
     Jdec.oneOf
         [ Jdec.map DoubleInUnionID Jdec.float
         , Jdec.map IDInUnionID id
@@ -6122,6 +6897,28 @@ encodeIs x =
         [
         ]
 
+unionISODateTimeOffsetConverter : Jdec.Decoder UnionISODateTimeOffsetConverter
+unionISODateTimeOffsetConverter =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionISODateTimeOffsetConverter Jdec.float
+        , Jdec.map ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter isoDateTimeOffsetConverter
+        ]
+
+encodeUnionISODateTimeOffsetConverter : UnionISODateTimeOffsetConverter -> Jenc.Value
+encodeUnionISODateTimeOffsetConverter x = case x of
+    DoubleInUnionISODateTimeOffsetConverter y -> Jenc.float y
+    ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter y -> encodeISODateTimeOffsetConverter y
+
+isoDateTimeOffsetConverter : Jdec.Decoder ISODateTimeOffsetConverter
+isoDateTimeOffsetConverter =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> ISODateTimeOffsetConverter)
+
+encodeISODateTimeOffsetConverter : ISODateTimeOffsetConverter -> Jenc.Value
+encodeISODateTimeOffsetConverter x =
+    Jenc.object
+        [
+        ]
+
 unionIterable : Jdec.Decoder UnionIterable
 unionIterable =
     Jdec.oneOf
@@ -6232,6 +7029,50 @@ encodeJSON x =
         [
         ]
 
+unionJSONAny : Jdec.Decoder UnionJSONAny
+unionJSONAny =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONAny Jdec.float
+        , Jdec.map JSONAnyInUnionJSONAny jsonAny
+        ]
+
+encodeUnionJSONAny : UnionJSONAny -> Jenc.Value
+encodeUnionJSONAny x = case x of
+    DoubleInUnionJSONAny y -> Jenc.float y
+    JSONAnyInUnionJSONAny y -> encodeJSONAny y
+
+jsonAny : Jdec.Decoder JSONAny
+jsonAny =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONAny)
+
+encodeJSONAny : JSONAny -> Jenc.Value
+encodeJSONAny x =
+    Jenc.object
+        [
+        ]
+
+unionJSONCodingKey : Jdec.Decoder UnionJSONCodingKey
+unionJSONCodingKey =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONCodingKey Jdec.float
+        , Jdec.map JSONCodingKeyInUnionJSONCodingKey jsonCodingKey
+        ]
+
+encodeUnionJSONCodingKey : UnionJSONCodingKey -> Jenc.Value
+encodeUnionJSONCodingKey x = case x of
+    DoubleInUnionJSONCodingKey y -> Jenc.float y
+    JSONCodingKeyInUnionJSONCodingKey y -> encodeJSONCodingKey y
+
+jsonCodingKey : Jdec.Decoder JSONCodingKey
+jsonCodingKey =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONCodingKey)
+
+encodeJSONCodingKey : JSONCodingKey -> Jenc.Value
+encodeJSONCodingKey x =
+    Jenc.object
+        [
+        ]
+
 unionJSONConverter : Jdec.Decoder UnionJSONConverter
 unionJSONConverter =
     Jdec.oneOf
@@ -6254,6 +7095,182 @@ encodeJSONConverter x =
         [
         ]
 
+unionJSONDecoder : Jdec.Decoder UnionJSONDecoder
+unionJSONDecoder =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONDecoder Jdec.float
+        , Jdec.map JSONDecoderInUnionJSONDecoder jsonDecoder
+        ]
+
+encodeUnionJSONDecoder : UnionJSONDecoder -> Jenc.Value
+encodeUnionJSONDecoder x = case x of
+    DoubleInUnionJSONDecoder y -> Jenc.float y
+    JSONDecoderInUnionJSONDecoder y -> encodeJSONDecoder y
+
+jsonDecoder : Jdec.Decoder JSONDecoder
+jsonDecoder =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONDecoder)
+
+encodeJSONDecoder : JSONDecoder -> Jenc.Value
+encodeJSONDecoder x =
+    Jenc.object
+        [
+        ]
+
+unionJSONEncoder : Jdec.Decoder UnionJSONEncoder
+unionJSONEncoder =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONEncoder Jdec.float
+        , Jdec.map JSONEncoderInUnionJSONEncoder jsonEncoder
+        ]
+
+encodeUnionJSONEncoder : UnionJSONEncoder -> Jenc.Value
+encodeUnionJSONEncoder x = case x of
+    DoubleInUnionJSONEncoder y -> Jenc.float y
+    JSONEncoderInUnionJSONEncoder y -> encodeJSONEncoder y
+
+jsonEncoder : Jdec.Decoder JSONEncoder
+jsonEncoder =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONEncoder)
+
+encodeJSONEncoder : JSONEncoder -> Jenc.Value
+encodeJSONEncoder x =
+    Jenc.object
+        [
+        ]
+
+unionJSONException : Jdec.Decoder UnionJSONException
+unionJSONException =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONException Jdec.float
+        , Jdec.map JSONExceptionInUnionJSONException jsonException
+        ]
+
+encodeUnionJSONException : UnionJSONException -> Jenc.Value
+encodeUnionJSONException x = case x of
+    DoubleInUnionJSONException y -> Jenc.float y
+    JSONExceptionInUnionJSONException y -> encodeJSONException y
+
+jsonException : Jdec.Decoder JSONException
+jsonException =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONException)
+
+encodeJSONException : JSONException -> Jenc.Value
+encodeJSONException x =
+    Jenc.object
+        [
+        ]
+
+unionJSONGenerator : Jdec.Decoder UnionJSONGenerator
+unionJSONGenerator =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONGenerator Jdec.float
+        , Jdec.map JSONGeneratorInUnionJSONGenerator jsonGenerator
+        ]
+
+encodeUnionJSONGenerator : UnionJSONGenerator -> Jenc.Value
+encodeUnionJSONGenerator x = case x of
+    DoubleInUnionJSONGenerator y -> Jenc.float y
+    JSONGeneratorInUnionJSONGenerator y -> encodeJSONGenerator y
+
+jsonGenerator : Jdec.Decoder JSONGenerator
+jsonGenerator =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONGenerator)
+
+encodeJSONGenerator : JSONGenerator -> Jenc.Value
+encodeJSONGenerator x =
+    Jenc.object
+        [
+        ]
+
+unionJSONNode : Jdec.Decoder UnionJSONNode
+unionJSONNode =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONNode Jdec.float
+        , Jdec.map JSONNodeInUnionJSONNode jsonNode
+        ]
+
+encodeUnionJSONNode : UnionJSONNode -> Jenc.Value
+encodeUnionJSONNode x = case x of
+    DoubleInUnionJSONNode y -> Jenc.float y
+    JSONNodeInUnionJSONNode y -> encodeJSONNode y
+
+jsonNode : Jdec.Decoder JSONNode
+jsonNode =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONNode)
+
+encodeJSONNode : JSONNode -> Jenc.Value
+encodeJSONNode x =
+    Jenc.object
+        [
+        ]
+
+unionJSONNull : Jdec.Decoder UnionJSONNull
+unionJSONNull =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONNull Jdec.float
+        , Jdec.map JSONNullInUnionJSONNull jsonNull
+        ]
+
+encodeUnionJSONNull : UnionJSONNull -> Jenc.Value
+encodeUnionJSONNull x = case x of
+    DoubleInUnionJSONNull y -> Jenc.float y
+    JSONNullInUnionJSONNull y -> encodeJSONNull y
+
+jsonNull : Jdec.Decoder JSONNull
+jsonNull =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONNull)
+
+encodeJSONNull : JSONNull -> Jenc.Value
+encodeJSONNull x =
+    Jenc.object
+        [
+        ]
+
+unionJSONParser : Jdec.Decoder UnionJSONParser
+unionJSONParser =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONParser Jdec.float
+        , Jdec.map JSONParserInUnionJSONParser jsonParser
+        ]
+
+encodeUnionJSONParser : UnionJSONParser -> Jenc.Value
+encodeUnionJSONParser x = case x of
+    DoubleInUnionJSONParser y -> Jenc.float y
+    JSONParserInUnionJSONParser y -> encodeJSONParser y
+
+jsonParser : Jdec.Decoder JSONParser
+jsonParser =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONParser)
+
+encodeJSONParser : JSONParser -> Jenc.Value
+encodeJSONParser x =
+    Jenc.object
+        [
+        ]
+
+unionJSONReader : Jdec.Decoder UnionJSONReader
+unionJSONReader =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONReader Jdec.float
+        , Jdec.map JSONReaderInUnionJSONReader jsonReader
+        ]
+
+encodeUnionJSONReader : UnionJSONReader -> Jenc.Value
+encodeUnionJSONReader x = case x of
+    DoubleInUnionJSONReader y -> Jenc.float y
+    JSONReaderInUnionJSONReader y -> encodeJSONReader y
+
+jsonReader : Jdec.Decoder JSONReader
+jsonReader =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONReader)
+
+encodeJSONReader : JSONReader -> Jenc.Value
+encodeJSONReader x =
+    Jenc.object
+        [
+        ]
+
 unionJSONSerializer : Jdec.Decoder UnionJSONSerializer
 unionJSONSerializer =
     Jdec.oneOf
@@ -6298,6 +7315,28 @@ encodeJSONToken x =
         [
         ]
 
+unionJSONTokenType : Jdec.Decoder UnionJSONTokenType
+unionJSONTokenType =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionJSONTokenType Jdec.float
+        , Jdec.map JSONTokenTypeInUnionJSONTokenType jsonTokenType
+        ]
+
+encodeUnionJSONTokenType : UnionJSONTokenType -> Jenc.Value
+encodeUnionJSONTokenType x = case x of
+    DoubleInUnionJSONTokenType y -> Jenc.float y
+    JSONTokenTypeInUnionJSONTokenType y -> encodeJSONTokenType y
+
+jsonTokenType : Jdec.Decoder JSONTokenType
+jsonTokenType =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> JSONTokenType)
+
+encodeJSONTokenType : JSONTokenType -> Jenc.Value
+encodeJSONTokenType x =
+    Jenc.object
+        [
+        ]
+
 unionJSONWriter : Jdec.Decoder UnionJSONWriter
 unionJSONWriter =
     Jdec.oneOf
@@ -6672,6 +7711,28 @@ encodeNo x =
         [
         ]
 
+unionNoSuchMethod : Jdec.Decoder UnionNoSuchMethod
+unionNoSuchMethod =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionNoSuchMethod Jdec.float
+        , Jdec.map NoSuchMethodInUnionNoSuchMethod noSuchMethod
+        ]
+
+encodeUnionNoSuchMethod : UnionNoSuchMethod -> Jenc.Value
+encodeUnionNoSuchMethod x = case x of
+    DoubleInUnionNoSuchMethod y -> Jenc.float y
+    NoSuchMethodInUnionNoSuchMethod y -> encodeNoSuchMethod y
+
+noSuchMethod : Jdec.Decoder NoSuchMethod
+noSuchMethod =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> NoSuchMethod)
+
+encodeNoSuchMethod : NoSuchMethod -> Jenc.Value
+encodeNoSuchMethod x =
+    Jenc.object
+        [
+        ]
+
 unionNoexcept : Jdec.Decoder UnionNoexcept
 unionNoexcept =
     Jdec.oneOf
@@ -6826,6 +7887,28 @@ encodeNotEq x =
         [
         ]
 
+unionNSError : Jdec.Decoder UnionNSError
+unionNSError =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionNSError Jdec.float
+        , Jdec.map NSErrorInUnionNSError nsError
+        ]
+
+encodeUnionNSError : UnionNSError -> Jenc.Value
+encodeUnionNSError x = case x of
+    DoubleInUnionNSError y -> Jenc.float y
+    NSErrorInUnionNSError y -> encodeNSError y
+
+nsError : Jdec.Decoder NSError
+nsError =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> NSError)
+
+encodeNSError : NSError -> Jenc.Value
+encodeNSError x =
+    Jenc.object
+        [
+        ]
+
 unionNSString : Jdec.Decoder UnionNSString
 unionNSString =
     Jdec.oneOf
@@ -6936,6 +8019,28 @@ encodeObject x =
         [
         ]
 
+unionObjectMapper : Jdec.Decoder UnionObjectMapper
+unionObjectMapper =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionObjectMapper Jdec.float
+        , Jdec.map ObjectMapperInUnionObjectMapper objectMapper
+        ]
+
+encodeUnionObjectMapper : UnionObjectMapper -> Jenc.Value
+encodeUnionObjectMapper x = case x of
+    DoubleInUnionObjectMapper y -> Jenc.float y
+    ObjectMapperInUnionObjectMapper y -> encodeObjectMapper y
+
+objectMapper : Jdec.Decoder ObjectMapper
+objectMapper =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> ObjectMapper)
+
+encodeObjectMapper : ObjectMapper -> Jenc.Value
+encodeObjectMapper x =
+    Jenc.object
+        [
+        ]
+
 unionOneway : Jdec.Decoder UnionOneway
 unionOneway =
     Jdec.oneOf
@@ -7266,6 +8371,28 @@ encodePrint x =
         [
         ]
 
+unionPrintMembers : Jdec.Decoder UnionPrintMembers
+unionPrintMembers =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionPrintMembers Jdec.float
+        , Jdec.map PrintMembersInUnionPrintMembers printMembers
+        ]
+
+encodeUnionPrintMembers : UnionPrintMembers -> Jenc.Value
+encodeUnionPrintMembers x = case x of
+    DoubleInUnionPrintMembers y -> Jenc.float y
+    PrintMembersInUnionPrintMembers y -> encodePrintMembers y
+
+printMembers : Jdec.Decoder PrintMembers
+printMembers =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> PrintMembers)
+
+encodePrintMembers : PrintMembers -> Jenc.Value
+encodePrintMembers x =
+    Jenc.object
+        [
+        ]
+
 unionPrintf : Jdec.Decoder UnionPrintf
 unionPrintf =
     Jdec.oneOf
@@ -8146,6 +9273,28 @@ encodeRef x =
         [
         ]
 
+unionRegExp : Jdec.Decoder UnionRegExp
+unionRegExp =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionRegExp Jdec.float
+        , Jdec.map RegExpInUnionRegExp regExp
+        ]
+
+encodeUnionRegExp : UnionRegExp -> Jenc.Value
+encodeUnionRegExp x = case x of
+    DoubleInUnionRegExp y -> Jenc.float y
+    RegExpInUnionRegExp y -> encodeRegExp y
+
+regExp : Jdec.Decoder RegExp
+regExp =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> RegExp)
+
+encodeRegExp : RegExp -> Jenc.Value
+encodeRegExp x =
+    Jenc.object
+        [
+        ]
+
 unionRegister : Jdec.Decoder UnionRegister
 unionRegister =
     Jdec.oneOf
@@ -8388,6 +9537,50 @@ encodeRight x =
         [
         ]
 
+unionRuntimeType : Jdec.Decoder UnionRuntimeType
+unionRuntimeType =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionRuntimeType Jdec.float
+        , Jdec.map RuntimeTypeInUnionRuntimeType runtimeType
+        ]
+
+encodeUnionRuntimeType : UnionRuntimeType -> Jenc.Value
+encodeUnionRuntimeType x = case x of
+    DoubleInUnionRuntimeType y -> Jenc.float y
+    RuntimeTypeInUnionRuntimeType y -> encodeRuntimeType y
+
+runtimeType : Jdec.Decoder RuntimeType
+runtimeType =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> RuntimeType)
+
+encodeRuntimeType : RuntimeType -> Jenc.Value
+encodeRuntimeType x =
+    Jenc.object
+        [
+        ]
+
+unionS : Jdec.Decoder UnionS
+unionS =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionS Jdec.float
+        , Jdec.map SInUnionS s
+        ]
+
+encodeUnionS : UnionS -> Jenc.Value
+encodeUnionS x = case x of
+    DoubleInUnionS y -> Jenc.float y
+    SInUnionS y -> encodeS y
+
+s : Jdec.Decoder S
+s =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> S)
+
+encodeS : S -> Jenc.Value
+encodeS x =
+    Jenc.object
+        [
+        ]
+
 unionSbyte : Jdec.Decoder UnionSbyte
 unionSbyte =
     Jdec.oneOf
@@ -8520,6 +9713,28 @@ encodeSerialize x =
         [
         ]
 
+unionSerializerProvider : Jdec.Decoder UnionSerializerProvider
+unionSerializerProvider =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionSerializerProvider Jdec.float
+        , Jdec.map SerializerProviderInUnionSerializerProvider serializerProvider
+        ]
+
+encodeUnionSerializerProvider : UnionSerializerProvider -> Jenc.Value
+encodeUnionSerializerProvider x = case x of
+    DoubleInUnionSerializerProvider y -> Jenc.float y
+    SerializerProviderInUnionSerializerProvider y -> encodeSerializerProvider y
+
+serializerProvider : Jdec.Decoder SerializerProvider
+serializerProvider =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> SerializerProvider)
+
+encodeSerializerProvider : SerializerProvider -> Jenc.Value
+encodeSerializerProvider x =
+    Jenc.object
+        [
+        ]
+
 unionSet : Jdec.Decoder UnionSet
 unionSet =
     Jdec.oneOf
@@ -8586,6 +9801,28 @@ encodeSigned x =
         [
         ]
 
+unionSimpleModule : Jdec.Decoder UnionSimpleModule
+unionSimpleModule =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionSimpleModule Jdec.float
+        , Jdec.map SimpleModuleInUnionSimpleModule simpleModule
+        ]
+
+encodeUnionSimpleModule : UnionSimpleModule -> Jenc.Value
+encodeUnionSimpleModule x = case x of
+    DoubleInUnionSimpleModule y -> Jenc.float y
+    SimpleModuleInUnionSimpleModule y -> encodeSimpleModule y
+
+simpleModule : Jdec.Decoder SimpleModule
+simpleModule =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> SimpleModule)
+
+encodeSimpleModule : SimpleModule -> Jenc.Value
+encodeSimpleModule x =
+    Jenc.object
+        [
+        ]
+
 unionSizeof : Jdec.Decoder UnionSizeof
 unionSizeof =
     Jdec.oneOf
@@ -8630,6 +9867,28 @@ encodeStackalloc x =
         [
         ]
 
+unionStandards : Jdec.Decoder UnionStandards
+unionStandards =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionStandards Jdec.float
+        , Jdec.map StandardsInUnionStandards standards
+        ]
+
+encodeUnionStandards : UnionStandards -> Jenc.Value
+encodeUnionStandards x = case x of
+    DoubleInUnionStandards y -> Jenc.float y
+    StandardsInUnionStandards y -> encodeStandards y
+
+standards : Jdec.Decoder Standards
+standards =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> Standards)
+
+encodeStandards : Standards -> Jenc.Value
+encodeStandards x =
+    Jenc.object
+        [
+        ]
+
 unionStatic : Jdec.Decoder UnionStatic
 unionStatic =
     Jdec.oneOf
@@ -8696,6 +9955,50 @@ encodeStaticCast x =
         [
         ]
 
+unionStdDeserializer : Jdec.Decoder UnionStdDeserializer
+unionStdDeserializer =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionStdDeserializer Jdec.float
+        , Jdec.map StdDeserializerInUnionStdDeserializer stdDeserializer
+        ]
+
+encodeUnionStdDeserializer : UnionStdDeserializer -> Jenc.Value
+encodeUnionStdDeserializer x = case x of
+    DoubleInUnionStdDeserializer y -> Jenc.float y
+    StdDeserializerInUnionStdDeserializer y -> encodeStdDeserializer y
+
+stdDeserializer : Jdec.Decoder StdDeserializer
+stdDeserializer =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> StdDeserializer)
+
+encodeStdDeserializer : StdDeserializer -> Jenc.Value
+encodeStdDeserializer x =
+    Jenc.object
+        [
+        ]
+
+unionStdSerializer : Jdec.Decoder UnionStdSerializer
+unionStdSerializer =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionStdSerializer Jdec.float
+        , Jdec.map StdSerializerInUnionStdSerializer stdSerializer
+        ]
+
+encodeUnionStdSerializer : UnionStdSerializer -> Jenc.Value
+encodeUnionStdSerializer x = case x of
+    DoubleInUnionStdSerializer y -> Jenc.float y
+    StdSerializerInUnionStdSerializer y -> encodeStdSerializer y
+
+stdSerializer : Jdec.Decoder StdSerializer
+stdSerializer =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> StdSerializer)
+
+encodeStdSerializer : StdSerializer -> Jenc.Value
+encodeStdSerializer x =
+    Jenc.object
+        [
+        ]
+
 unionStrictfp : Jdec.Decoder UnionStrictfp
 unionStrictfp =
     Jdec.oneOf
@@ -8982,6 +10285,50 @@ encodeThrows x =
         [
         ]
 
+unionTimeOnly : Jdec.Decoder UnionTimeOnly
+unionTimeOnly =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionTimeOnly Jdec.float
+        , Jdec.map TimeOnlyInUnionTimeOnly timeOnly
+        ]
+
+encodeUnionTimeOnly : UnionTimeOnly -> Jenc.Value
+encodeUnionTimeOnly x = case x of
+    DoubleInUnionTimeOnly y -> Jenc.float y
+    TimeOnlyInUnionTimeOnly y -> encodeTimeOnly y
+
+timeOnly : Jdec.Decoder TimeOnly
+timeOnly =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> TimeOnly)
+
+encodeTimeOnly : TimeOnly -> Jenc.Value
+encodeTimeOnly x =
+    Jenc.object
+        [
+        ]
+
+unionTimeOnlyConverter : Jdec.Decoder UnionTimeOnlyConverter
+unionTimeOnlyConverter =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionTimeOnlyConverter Jdec.float
+        , Jdec.map TimeOnlyConverterInUnionTimeOnlyConverter timeOnlyConverter
+        ]
+
+encodeUnionTimeOnlyConverter : UnionTimeOnlyConverter -> Jenc.Value
+encodeUnionTimeOnlyConverter x = case x of
+    DoubleInUnionTimeOnlyConverter y -> Jenc.float y
+    TimeOnlyConverterInUnionTimeOnlyConverter y -> encodeTimeOnlyConverter y
+
+timeOnlyConverter : Jdec.Decoder TimeOnlyConverter
+timeOnlyConverter =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> TimeOnlyConverter)
+
+encodeTimeOnlyConverter : TimeOnlyConverter -> Jenc.Value
+encodeTimeOnlyConverter x =
+    Jenc.object
+        [
+        ]
+
 unionToJSON : Jdec.Decoder UnionToJSON
 unionToJSON =
     Jdec.oneOf
@@ -9004,6 +10351,28 @@ encodeToJSON x =
         [
         ]
 
+unionToString : Jdec.Decoder UnionToString
+unionToString =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionToString Jdec.float
+        , Jdec.map ToStringInUnionToString toString
+        ]
+
+encodeUnionToString : UnionToString -> Jenc.Value
+encodeUnionToString x = case x of
+    DoubleInUnionToString y -> Jenc.float y
+    ToStringInUnionToString y -> encodeToString y
+
+toString : Jdec.Decoder ToString
+toString =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> ToString)
+
+encodeToString : ToString -> Jenc.Value
+encodeToString x =
+    Jenc.object
+        [
+        ]
+
 unionTopLevel : Jdec.Decoder UnionTopLevel
 unionTopLevel =
     Jdec.oneOf
@@ -9422,6 +10791,72 @@ encodeUsing x =
         [
         ]
 
+unionUtf8JSONReader : Jdec.Decoder UnionUtf8JSONReader
+unionUtf8JSONReader =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionUtf8JSONReader Jdec.float
+        , Jdec.map Utf8JSONReaderInUnionUtf8JSONReader utf8JSONReader
+        ]
+
+encodeUnionUtf8JSONReader : UnionUtf8JSONReader -> Jenc.Value
+encodeUnionUtf8JSONReader x = case x of
+    DoubleInUnionUtf8JSONReader y -> Jenc.float y
+    Utf8JSONReaderInUnionUtf8JSONReader y -> encodeUtf8JSONReader y
+
+utf8JSONReader : Jdec.Decoder Utf8JSONReader
+utf8JSONReader =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> Utf8JSONReader)
+
+encodeUtf8JSONReader : Utf8JSONReader -> Jenc.Value
+encodeUtf8JSONReader x =
+    Jenc.object
+        [
+        ]
+
+unionUtf8JSONWriter : Jdec.Decoder UnionUtf8JSONWriter
+unionUtf8JSONWriter =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionUtf8JSONWriter Jdec.float
+        , Jdec.map Utf8JSONWriterInUnionUtf8JSONWriter utf8JSONWriter
+        ]
+
+encodeUnionUtf8JSONWriter : UnionUtf8JSONWriter -> Jenc.Value
+encodeUnionUtf8JSONWriter x = case x of
+    DoubleInUnionUtf8JSONWriter y -> Jenc.float y
+    Utf8JSONWriterInUnionUtf8JSONWriter y -> encodeUtf8JSONWriter y
+
+utf8JSONWriter : Jdec.Decoder Utf8JSONWriter
+utf8JSONWriter =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> Utf8JSONWriter)
+
+encodeUtf8JSONWriter : Utf8JSONWriter -> Jenc.Value
+encodeUtf8JSONWriter x =
+    Jenc.object
+        [
+        ]
+
+unionUUID : Jdec.Decoder UnionUUID
+unionUUID =
+    Jdec.oneOf
+        [ Jdec.map DoubleInUnionUUID Jdec.float
+        , Jdec.map UUIDInUnionUUID uuid
+        ]
+
+encodeUnionUUID : UnionUUID -> Jenc.Value
+encodeUnionUUID x = case x of
+    DoubleInUnionUUID y -> Jenc.float y
+    UUIDInUnionUUID y -> encodeUUID y
+
+uuid : Jdec.Decoder UUID
+uuid =
+    Jdec.dict Jdec.value |> Jdec.map (\_ -> UUID)
+
+encodeUUID : UUID -> Jenc.Value
+encodeUUID x =
+    Jenc.object
+        [
+        ]
+
 unionVar : Jdec.Decoder UnionVar
 unionVar =
     Jdec.oneOf
diff --git a/base/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
index 0bd422e..a308f1a 100644
--- a/base/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
@@ -58,6 +58,7 @@ export type Enum =
     | "checked"
     | "class"
     | "Class"
+    | "clone"
     | "co_await"
     | "co_return"
     | "co_yield"
@@ -72,8 +73,14 @@ export type Enum =
     | "convenience"
     | "convert"
     | "converter"
+    | "CultureInfo"
     | "date"
     | "date_parse_handling"
+    | "DateFormatter"
+    | "DateOnly"
+    | "DateOnlyConverter"
+    | "DateTime"
+    | "DateTimeStyles"
     | "debugger"
     | "decimal"
     | "declare"
@@ -97,6 +104,8 @@ export type Enum =
     | "else"
     | "encode_quick_type"
     | "enum"
+    | "EnumValues"
+    | "equalityContract"
     | "event"
     | "except"
     | "exception"
@@ -116,6 +125,7 @@ export type Enum =
     | "float"
     | "for"
     | "foreach"
+    | "FormatException"
     | "friend"
     | "from"
     | "from_json"
@@ -126,6 +136,7 @@ export type Enum =
     | "go"
     | "goto"
     | "guard"
+    | "hashCode"
     | "hasOwnProperty"
     | "id"
     | "if"
@@ -143,6 +154,7 @@ export type Enum =
     | "int"
     | "interface"
     | "internal"
+    | "IsoDateTimeOffsetConverter"
     | "iterable"
     | "is"
     | "jdec"
@@ -153,6 +165,17 @@ export type Enum =
     | "json_serializer"
     | "json_token"
     | "json_writer"
+    | "JSONAny"
+    | "JSONCodingKey"
+    | "JSONDecoder"
+    | "JSONEncoder"
+    | "JsonException"
+    | "JsonGenerator"
+    | "JsonNode"
+    | "JSONNull"
+    | "JsonParser"
+    | "JsonReader"
+    | "JsonTokenType"
     | "lambda"
     | "lazy"
     | "left"
@@ -177,14 +200,17 @@ export type Enum =
     | "None"
     | "nonlocal"
     | "nonmutating"
+    | "noSuchMethod"
     | "not"
     | "not_eq"
+    | "NSError"
     | "NSString"
     | "NULL"
     | "null"
     | "nullptr"
     | "number"
     | "object"
+    | "ObjectMapper"
     | "of"
     | "oneway"
     | "open"
@@ -203,6 +229,7 @@ export type Enum =
     | "prefix"
     | "print"
     | "printf"
+    | "printMembers"
     | "private"
     | "protected"
     | "Protocol"
@@ -213,6 +240,7 @@ export type Enum =
     | "range"
     | "readonly"
     | "ref"
+    | "RegExp"
     | "register"
     | "reinterpret_cast"
     | "repeat"
@@ -224,6 +252,8 @@ export type Enum =
     | "rethrows"
     | "return"
     | "right"
+    | "runtimeType"
+    | "s"
     | "sbyte"
     | "sealed"
     | "SEL"
@@ -231,14 +261,19 @@ export type Enum =
     | "Self"
     | "self"
     | "serialize"
+    | "SerializerProvider"
     | "set"
     | "short"
     | "signed"
+    | "SimpleModule"
     | "sizeof"
     | "stackalloc"
+    | "Standards"
     | "static"
     | "static_assert"
     | "static_cast"
+    | "StdDeserializer"
+    | "StdSerializer"
     | "strictfp"
     | "string"
     | "struct"
@@ -254,8 +289,11 @@ export type Enum =
     | "thread_local"
     | "throw"
     | "throws"
+    | "TimeOnly"
+    | "TimeOnlyConverter"
     | "to_json"
     | "top_level"
+    | "toString"
     | "transient"
     | "True"
     | "true"
@@ -277,6 +315,9 @@ export type Enum =
     | "unsigned"
     | "ushort"
     | "using"
+    | "Utf8JsonReader"
+    | "Utf8JsonWriter"
+    | "UUID"
     | "var"
     | "virtual"
     | "void"
@@ -525,6 +566,7 @@ const typeMap: any = {
         "checked",
         "class",
         "Class",
+        "clone",
         "co_await",
         "co_return",
         "co_yield",
@@ -539,8 +581,14 @@ const typeMap: any = {
         "convenience",
         "convert",
         "converter",
+        "CultureInfo",
         "date",
         "date_parse_handling",
+        "DateFormatter",
+        "DateOnly",
+        "DateOnlyConverter",
+        "DateTime",
+        "DateTimeStyles",
         "debugger",
         "decimal",
         "declare",
@@ -564,6 +612,8 @@ const typeMap: any = {
         "else",
         "encode_quick_type",
         "enum",
+        "EnumValues",
+        "equalityContract",
         "event",
         "except",
         "exception",
@@ -583,6 +633,7 @@ const typeMap: any = {
         "float",
         "for",
         "foreach",
+        "FormatException",
         "friend",
         "from",
         "from_json",
@@ -593,6 +644,7 @@ const typeMap: any = {
         "go",
         "goto",
         "guard",
+        "hashCode",
         "hasOwnProperty",
         "id",
         "if",
@@ -610,6 +662,7 @@ const typeMap: any = {
         "int",
         "interface",
         "internal",
+        "IsoDateTimeOffsetConverter",
         "iterable",
         "is",
         "jdec",
@@ -620,6 +673,17 @@ const typeMap: any = {
         "json_serializer",
         "json_token",
         "json_writer",
+        "JSONAny",
+        "JSONCodingKey",
+        "JSONDecoder",
+        "JSONEncoder",
+        "JsonException",
+        "JsonGenerator",
+        "JsonNode",
+        "JSONNull",
+        "JsonParser",
+        "JsonReader",
+        "JsonTokenType",
         "lambda",
         "lazy",
         "left",
@@ -644,14 +708,17 @@ const typeMap: any = {
         "None",
         "nonlocal",
         "nonmutating",
+        "noSuchMethod",
         "not",
         "not_eq",
+        "NSError",
         "NSString",
         "NULL",
         "null",
         "nullptr",
         "number",
         "object",
+        "ObjectMapper",
         "of",
         "oneway",
         "open",
@@ -670,6 +737,7 @@ const typeMap: any = {
         "prefix",
         "print",
         "printf",
+        "printMembers",
         "private",
         "protected",
         "Protocol",
@@ -680,6 +748,7 @@ const typeMap: any = {
         "range",
         "readonly",
         "ref",
+        "RegExp",
         "register",
         "reinterpret_cast",
         "repeat",
@@ -691,6 +760,8 @@ const typeMap: any = {
         "rethrows",
         "return",
         "right",
+        "runtimeType",
+        "s",
         "sbyte",
         "sealed",
         "SEL",
@@ -698,14 +769,19 @@ const typeMap: any = {
         "Self",
         "self",
         "serialize",
+        "SerializerProvider",
         "set",
         "short",
         "signed",
+        "SimpleModule",
         "sizeof",
         "stackalloc",
+        "Standards",
         "static",
         "static_assert",
         "static_cast",
+        "StdDeserializer",
+        "StdSerializer",
         "strictfp",
         "string",
         "struct",
@@ -721,8 +797,11 @@ const typeMap: any = {
         "thread_local",
         "throw",
         "throws",
+        "TimeOnly",
+        "TimeOnlyConverter",
         "to_json",
         "top_level",
+        "toString",
         "transient",
         "True",
         "true",
@@ -744,6 +823,9 @@ const typeMap: any = {
         "unsigned",
         "ushort",
         "using",
+        "Utf8JsonReader",
+        "Utf8JsonWriter",
+        "UUID",
         "var",
         "virtual",
         "void",
diff --git a/base/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
index dd0f872..40ef544 100644
--- a/base/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
@@ -53,6 +53,7 @@ export type TopLevel = {
     checked?:                    UnionChecked;
     class?:                      UnionClassUnion;
     Class?:                      UnionClass;
+    clone?:                      UnionClone;
     co_await?:                   UnionCoAwait;
     co_return?:                  UnionCoReturn;
     co_yield?:                   UnionCoYield;
@@ -67,8 +68,14 @@ export type TopLevel = {
     convenience?:                UnionConvenience;
     convert?:                    UnionConvert;
     converter?:                  UnionConverter;
+    CultureInfo?:                UnionCultureInfo;
     date?:                       UnionDate;
     date_parse_handling?:        UnionDateParseHandling;
+    DateFormatter?:              UnionDateFormatter;
+    DateOnly?:                   UnionDateOnly;
+    DateOnlyConverter?:          UnionDateOnlyConverter;
+    DateTime?:                   UnionDateTime;
+    DateTimeStyles?:             UnionDateTimeStyles;
     debugger?:                   UnionDebugger;
     decimal?:                    UnionDecimal;
     declare?:                    UnionDeclare;
@@ -93,6 +100,8 @@ export type TopLevel = {
     else?:                       UnionElse;
     encode_quick_type?:          UnionEncodeQuickType;
     enum?:                       UnionEnum;
+    EnumValues?:                 UnionEnumValues;
+    equalityContract?:           UnionEqualityContract;
     event?:                      UnionEvent;
     except?:                     UnionExcept;
     exception?:                  UnionException;
@@ -112,6 +121,7 @@ export type TopLevel = {
     float?:                      UnionFloat;
     for?:                        UnionFor;
     foreach?:                    UnionForeach;
+    FormatException?:            UnionFormatException;
     friend?:                     UnionFriend;
     from?:                       UnionFrom;
     from_json?:                  UnionFromJSON;
@@ -122,6 +132,7 @@ export type TopLevel = {
     go?:                         UnionGo;
     goto?:                       UnionGoto;
     guard?:                      UnionGuard;
+    hashCode?:                   UnionHashCode;
     hasOwnProperty?:             UnionHasOwnProperty;
     id?:                         UnionID;
     if?:                         UnionIf;
@@ -140,6 +151,7 @@ export type TopLevel = {
     interface?:                  UnionInterface;
     internal?:                   UnionInternal;
     is?:                         UnionIs;
+    IsoDateTimeOffsetConverter?: UnionISODateTimeOffsetConverter;
     iterable?:                   UnionIterable;
     jdec?:                       UnionJdec;
     jenc?:                       UnionJenc;
@@ -149,6 +161,17 @@ export type TopLevel = {
     json_serializer?:            UnionJSONSerializer;
     json_token?:                 UnionJSONToken;
     json_writer?:                UnionJSONWriter;
+    JSONAny?:                    UnionJSONAny;
+    JSONCodingKey?:              UnionJSONCodingKey;
+    JSONDecoder?:                UnionJSONDecoder;
+    JSONEncoder?:                UnionJSONEncoder;
+    JsonException?:              UnionJSONException;
+    JsonGenerator?:              UnionJSONGenerator;
+    JsonNode?:                   UnionJSONNode;
+    JSONNull?:                   UnionJSONNull;
+    JsonParser?:                 UnionJSONParser;
+    JsonReader?:                 UnionJSONReader;
+    JsonTokenType?:              UnionJSONTokenType;
     lambda?:                     UnionLambda;
     lazy?:                       UnionLazy;
     left?:                       UnionLeft;
@@ -173,14 +196,17 @@ export type TopLevel = {
     None?:                       UnionNone;
     nonlocal?:                   UnionNonlocal;
     nonmutating?:                UnionNonmutating;
+    noSuchMethod?:               UnionNoSuchMethod;
     not?:                        UnionNot;
     not_eq?:                     UnionNotEq;
+    NSError?:                    UnionNSError;
     NSString?:                   UnionNSString;
     NULL?:                       UnionNULL;
     null?:                       UnionNull;
     nullptr?:                    UnionNullptr;
     number?:                     UnionNumber;
     object?:                     UnionObject;
+    ObjectMapper?:               UnionObjectMapper;
     of?:                         UnionOf;
     oneway?:                     UnionOneway;
     open?:                       UnionOpen;
@@ -199,6 +225,7 @@ export type TopLevel = {
     prefix?:                     UnionPrefix;
     print?:                      UnionPrint;
     printf?:                     UnionPrintf;
+    printMembers?:               UnionPrintMembers;
     private?:                    UnionPrivate;
     protected?:                  UnionProtected;
     Protocol?:                   UnionProtocol;
@@ -209,6 +236,7 @@ export type TopLevel = {
     range?:                      UnionRange;
     readonly?:                   UnionReadonly;
     ref?:                        UnionRef;
+    RegExp?:                     UnionRegExp;
     register?:                   UnionRegister;
     reinterpret_cast?:           UnionReinterpretCast;
     repeat?:                     UnionRepeat;
@@ -220,6 +248,8 @@ export type TopLevel = {
     rethrows?:                   UnionRethrows;
     return?:                     UnionReturn;
     right?:                      UnionRight;
+    runtimeType?:                UnionRuntimeType;
+    s?:                          UnionS;
     sbyte?:                      UnionSbyte;
     sealed?:                     UnionSealed;
     SEL?:                        UnionSEL;
@@ -227,14 +257,19 @@ export type TopLevel = {
     Self?:                       UnionSelf;
     self?:                       UnionSelfUnion;
     serialize?:                  UnionSerialize;
+    SerializerProvider?:         UnionSerializerProvider;
     set?:                        UnionSet;
     short?:                      UnionShort;
     signed?:                     UnionSigned;
+    SimpleModule?:               UnionSimpleModule;
     sizeof?:                     UnionSizeof;
     stackalloc?:                 UnionStackalloc;
+    Standards?:                  UnionStandards;
     static?:                     UnionStatic;
     static_assert?:              UnionStaticAssert;
     static_cast?:                UnionStaticCast;
+    StdDeserializer?:            UnionStdDeserializer;
+    StdSerializer?:              UnionStdSerializer;
     strictfp?:                   UnionStrictfp;
     string?:                     UnionString;
     struct?:                     UnionStruct;
@@ -250,8 +285,11 @@ export type TopLevel = {
     thread_local?:               UnionThreadLocal;
     throw?:                      UnionThrow;
     throws?:                     UnionThrows;
+    TimeOnly?:                   UnionTimeOnly;
+    TimeOnlyConverter?:          UnionTimeOnlyConverter;
     to_json?:                    UnionToJSON;
     top_level?:                  UnionTopLevel;
+    toString?:                   UnionToString;
     transient?:                  UnionTransient;
     True?:                       UnionTrue;
     true?:                       UnionTrueUnion;
@@ -273,6 +311,9 @@ export type TopLevel = {
     unsigned?:                   UnionUnsigned;
     ushort?:                     UnionUshort;
     using?:                      UnionUsing;
+    Utf8JsonReader?:             UnionUtf8JSONReader;
+    Utf8JsonWriter?:             UnionUtf8JSONWriter;
+    UUID?:                       UnionUUID;
     var?:                        UnionVar;
     virtual?:                    UnionVirtual;
     void?:                       UnionVoid;
@@ -287,7 +328,7 @@ export type TopLevel = {
     xor_eq?:                     UnionXorEq;
     YES?:                        UnionYES;
     yield?:                      UnionYield;
-    [property: string]: mixed | UnionUnion | UnionBool | UnionComplex | UnionImaginery | UnionAbstract | UnionAlignas | UnionAlignof | UnionAnd | UnionAndEq | UnionAnyUnion | UnionAny | UnionArray | UnionAs | UnionASM | UnionAssert | UnionAssociatedtype | UnionAssociativity | UnionAsync | UnionAtomic | UnionAtomicCancel | UnionAtomicCommit | UnionAtomicNoexcept | UnionAuto | UnionAwait | UnionBase | UnionBitand | UnionBitor | UnionBOOL | UnionBoolUnion | UnionBoolean | UnionBreak | UnionBycopy | UnionByref | UnionByte | UnionCase | UnionCatch | UnionChan | UnionChar | UnionChar16T | UnionChar32T | UnionChecked | UnionClassUnion | UnionClass | UnionCoAwait | UnionCoReturn | UnionCoYield | UnionCompl | UnionConcept | UnionConsole | UnionConst | UnionConstCast | UnionConstexpr | UnionConstructor | UnionContinue | UnionConvenience | UnionConvert | UnionConverter | UnionDate | UnionDateParseHandling | UnionDebugger | UnionDecimal | UnionDeclare | UnionDecltype | UnionDecodeString | UnionDef | UnionDefault | UnionDefer | UnionDeinit | UnionDel | UnionDelegate | UnionDelete | UnionDict | UnionDictionary | UnionDidSet | UnionDo | UnionDouble | number | UnionDynamic | UnionDynamicCast | UnionElif | UnionElse | UnionEncodeQuickType | UnionEnum | UnionEvent | UnionExcept | UnionException | UnionExplicit | UnionExport | UnionExposing | UnionExtends | UnionExtension | UnionExtern | UnionFallthrough | UnionFalseUnion | UnionFalse | UnionFileprivate | UnionFinal | UnionFinally | UnionFixed | UnionFloat | UnionFor | UnionForeach | UnionFriend | UnionFrom | UnionFromJSON | UnionFunc | UnionFunction | UnionGet | UnionGlobal | UnionGo | UnionGoto | UnionGuard | UnionHasOwnProperty | UnionID | UnionIf | UnionIMP | UnionImplements | UnionImplicit | UnionImport | UnionIn | UnionIndirect | UnionInfix | UnionInit | UnionInline | UnionInout | UnionInstanceof | UnionInt | UnionInterface | UnionInternal | UnionIs | UnionIterable | UnionJdec | UnionJenc | UnionJpipe | UnionJSON | UnionJSONConverter | UnionJSONSerializer | UnionJSONToken | UnionJSONWriter | UnionLambda | UnionLazy | UnionLeft | UnionLet | UnionList | UnionLock | UnionLong | UnionMap | UnionMetadataPropertyHandling | UnionModule | UnionMutable | UnionMutating | UnionNamespace | UnionNative | UnionNew | UnionNewtonsoft | UnionNil | UnionNO | UnionNoexcept | UnionNonatomic | UnionNoneUnion | UnionNone | UnionNonlocal | UnionNonmutating | UnionNot | UnionNotEq | UnionNSString | UnionNULL | UnionNull | UnionNullptr | UnionNumber | UnionObject | UnionOf | UnionOneway | UnionOpen | UnionOperator | UnionOptional | UnionOr | UnionOrEq | UnionOut | UnionOverride | UnionPackage | UnionParams | UnionPass | UnionPort | UnionPostfix | UnionPrecedence | UnionPrefix | UnionPrint | UnionPrintf | UnionPrivate | UnionProtected | UnionProtocol | UnionProtocolUnion | UnionPublic | UnionQuicktype | UnionRaise | UnionRange | UnionReadonly | UnionRef | UnionRegister | UnionReinterpretCast | UnionRepeat | UnionRequire | UnionRequired | UnionRequires | UnionRestrict | UnionRetain | UnionRethrows | UnionReturn | UnionRight | UnionSbyte | UnionSealed | UnionSEL | UnionSelect | UnionSelf | UnionSelfUnion | UnionSerialize | UnionSet | UnionShort | UnionSigned | UnionSizeof | UnionStackalloc | UnionStatic | UnionStaticAssert | UnionStaticCast | UnionStrictfp | UnionString | UnionStruct | UnionSubscript | UnionSuper | UnionSwitch | UnionSymbol | UnionSynchronized | UnionSystem | UnionTemplate | UnionThen | UnionThis | UnionThreadLocal | UnionThrow | UnionThrows | UnionToJSON | UnionTopLevel | UnionTransient | UnionTrue | UnionTrueUnion | UnionTry | UnionType | UnionTypeUnion | UnionTypealias | UnionTypedef | UnionTypeid | UnionTypename | UnionTypeof | UnionUint | UnionUlong | UnionUnchecked | UnionUndefined | UnionUnionUnion | UnionUnowned | UnionUnsafe | UnionUnsigned | UnionUshort | UnionUsing | UnionVar | UnionVirtual | UnionVoid | UnionVolatile | UnionWcharT | UnionWeak | UnionWhere | UnionWhile | UnionWillSet | UnionWith | UnionXor | UnionXorEq | UnionYES | UnionYield;
+    [property: string]: mixed | UnionUnion | UnionBool | UnionComplex | UnionImaginery | UnionAbstract | UnionAlignas | UnionAlignof | UnionAnd | UnionAndEq | UnionAnyUnion | UnionAny | UnionArray | UnionAs | UnionASM | UnionAssert | UnionAssociatedtype | UnionAssociativity | UnionAsync | UnionAtomic | UnionAtomicCancel | UnionAtomicCommit | UnionAtomicNoexcept | UnionAuto | UnionAwait | UnionBase | UnionBitand | UnionBitor | UnionBOOL | UnionBoolUnion | UnionBoolean | UnionBreak | UnionBycopy | UnionByref | UnionByte | UnionCase | UnionCatch | UnionChan | UnionChar | UnionChar16T | UnionChar32T | UnionChecked | UnionClassUnion | UnionClass | UnionClone | UnionCoAwait | UnionCoReturn | UnionCoYield | UnionCompl | UnionConcept | UnionConsole | UnionConst | UnionConstCast | UnionConstexpr | UnionConstructor | UnionContinue | UnionConvenience | UnionConvert | UnionConverter | UnionCultureInfo | UnionDate | UnionDateParseHandling | UnionDateFormatter | UnionDateOnly | UnionDateOnlyConverter | UnionDateTime | UnionDateTimeStyles | UnionDebugger | UnionDecimal | UnionDeclare | UnionDecltype | UnionDecodeString | UnionDef | UnionDefault | UnionDefer | UnionDeinit | UnionDel | UnionDelegate | UnionDelete | UnionDict | UnionDictionary | UnionDidSet | UnionDo | UnionDouble | number | UnionDynamic | UnionDynamicCast | UnionElif | UnionElse | UnionEncodeQuickType | UnionEnum | UnionEnumValues | UnionEqualityContract | UnionEvent | UnionExcept | UnionException | UnionExplicit | UnionExport | UnionExposing | UnionExtends | UnionExtension | UnionExtern | UnionFallthrough | UnionFalseUnion | UnionFalse | UnionFileprivate | UnionFinal | UnionFinally | UnionFixed | UnionFloat | UnionFor | UnionForeach | UnionFormatException | UnionFriend | UnionFrom | UnionFromJSON | UnionFunc | UnionFunction | UnionGet | UnionGlobal | UnionGo | UnionGoto | UnionGuard | UnionHashCode | UnionHasOwnProperty | UnionID | UnionIf | UnionIMP | UnionImplements | UnionImplicit | UnionImport | UnionIn | UnionIndirect | UnionInfix | UnionInit | UnionInline | UnionInout | UnionInstanceof | UnionInt | UnionInterface | UnionInternal | UnionIs | UnionISODateTimeOffsetConverter | UnionIterable | UnionJdec | UnionJenc | UnionJpipe | UnionJSON | UnionJSONConverter | UnionJSONSerializer | UnionJSONToken | UnionJSONWriter | UnionJSONAny | UnionJSONCodingKey | UnionJSONDecoder | UnionJSONEncoder | UnionJSONException | UnionJSONGenerator | UnionJSONNode | UnionJSONNull | UnionJSONParser | UnionJSONReader | UnionJSONTokenType | UnionLambda | UnionLazy | UnionLeft | UnionLet | UnionList | UnionLock | UnionLong | UnionMap | UnionMetadataPropertyHandling | UnionModule | UnionMutable | UnionMutating | UnionNamespace | UnionNative | UnionNew | UnionNewtonsoft | UnionNil | UnionNO | UnionNoexcept | UnionNonatomic | UnionNoneUnion | UnionNone | UnionNonlocal | UnionNonmutating | UnionNoSuchMethod | UnionNot | UnionNotEq | UnionNSError | UnionNSString | UnionNULL | UnionNull | UnionNullptr | UnionNumber | UnionObject | UnionObjectMapper | UnionOf | UnionOneway | UnionOpen | UnionOperator | UnionOptional | UnionOr | UnionOrEq | UnionOut | UnionOverride | UnionPackage | UnionParams | UnionPass | UnionPort | UnionPostfix | UnionPrecedence | UnionPrefix | UnionPrint | UnionPrintf | UnionPrintMembers | UnionPrivate | UnionProtected | UnionProtocol | UnionProtocolUnion | UnionPublic | UnionQuicktype | UnionRaise | UnionRange | UnionReadonly | UnionRef | UnionRegExp | UnionRegister | UnionReinterpretCast | UnionRepeat | UnionRequire | UnionRequired | UnionRequires | UnionRestrict | UnionRetain | UnionRethrows | UnionReturn | UnionRight | UnionRuntimeType | UnionS | UnionSbyte | UnionSealed | UnionSEL | UnionSelect | UnionSelf | UnionSelfUnion | UnionSerialize | UnionSerializerProvider | UnionSet | UnionShort | UnionSigned | UnionSimpleModule | UnionSizeof | UnionStackalloc | UnionStandards | UnionStatic | UnionStaticAssert | UnionStaticCast | UnionStdDeserializer | UnionStdSerializer | UnionStrictfp | UnionString | UnionStruct | UnionSubscript | UnionSuper | UnionSwitch | UnionSymbol | UnionSynchronized | UnionSystem | UnionTemplate | UnionThen | UnionThis | UnionThreadLocal | UnionThrow | UnionThrows | UnionTimeOnly | UnionTimeOnlyConverter | UnionToJSON | UnionTopLevel | UnionToString | UnionTransient | UnionTrue | UnionTrueUnion | UnionTry | UnionType | UnionTypeUnion | UnionTypealias | UnionTypedef | UnionTypeid | UnionTypename | UnionTypeof | UnionUint | UnionUlong | UnionUnchecked | UnionUndefined | UnionUnionUnion | UnionUnowned | UnionUnsafe | UnionUnsigned | UnionUshort | UnionUsing | UnionUtf8JSONReader | UnionUtf8JSONWriter | UnionUUID | UnionVar | UnionVirtual | UnionVoid | UnionVolatile | UnionWcharT | UnionWeak | UnionWhere | UnionWhile | UnionWillSet | UnionWith | UnionXor | UnionXorEq | UnionYES | UnionYield;
 };
 
 export type UnionAny = Any | number;
@@ -305,21 +346,126 @@ export type UnionClass = ClassClass | number;
 export type ClassClass = {
 };
 
+export type UnionCultureInfo = CultureInfo | number;
+
+export type CultureInfo = {
+};
+
+export type UnionDateFormatter = DateFormatter | number;
+
+export type DateFormatter = {
+};
+
+export type UnionDateOnly = DateOnly | number;
+
+export type DateOnly = {
+};
+
+export type UnionDateOnlyConverter = DateOnlyConverter | number;
+
+export type DateOnlyConverter = {
+};
+
+export type UnionDateTime = DateTime | number;
+
+export type DateTime = {
+};
+
+export type UnionDateTimeStyles = DateTimeStyles | number;
+
+export type DateTimeStyles = {
+};
+
+export type UnionEnumValues = EnumValues | number;
+
+export type EnumValues = {
+};
+
 export type UnionFalse = False | number;
 
 export type False = {
 };
 
+export type UnionFormatException = FormatException | number;
+
+export type FormatException = {
+};
+
 export type UnionIMP = Imp | number;
 
 export type Imp = {
 };
 
+export type UnionISODateTimeOffsetConverter = ISODateTimeOffsetConverter | number;
+
+export type ISODateTimeOffsetConverter = {
+};
+
+export type UnionJSONAny = JSONAny | number;
+
+export type JSONAny = {
+};
+
+export type UnionJSONCodingKey = JSONCodingKey | number;
+
+export type JSONCodingKey = {
+};
+
+export type UnionJSONDecoder = JSONDecoder | number;
+
+export type JSONDecoder = {
+};
+
+export type UnionJSONEncoder = JSONEncoder | number;
+
+export type JSONEncoder = {
+};
+
+export type UnionJSONNull = JSONNull | number;
+
+export type JSONNull = {
+};
+
+export type UnionJSONException = JSONException | number;
+
+export type JSONException = {
+};
+
+export type UnionJSONGenerator = JSONGenerator | number;
+
+export type JSONGenerator = {
+};
+
+export type UnionJSONNode = JSONNode | number;
+
+export type JSONNode = {
+};
+
+export type UnionJSONParser = JSONParser | number;
+
+export type JSONParser = {
+};
+
+export type UnionJSONReader = JSONReader | number;
+
+export type JSONReader = {
+};
+
+export type UnionJSONTokenType = JSONTokenType | number;
+
+export type JSONTokenType = {
+};
+
 export type UnionNO = No | number;
 
 export type No = {
 };
 
+export type UnionNSError = NSError | number;
+
+export type NSError = {
+};
+
 export type UnionNSString = NSString | number;
 
 export type NSString = {
@@ -335,11 +481,21 @@ export type UnionNone = None | number;
 export type None = {
 };
 
+export type UnionObjectMapper = ObjectMapper | number;
+
+export type ObjectMapper = {
+};
+
 export type UnionProtocol = Protocol | number;
 
 export type Protocol = {
 };
 
+export type UnionRegExp = RegExpClass | number;
+
+export type RegExpClass = {
+};
+
 export type UnionSEL = Sel | number;
 
 export type Sel = {
@@ -350,6 +506,41 @@ export type UnionSelf = Self | number;
 export type Self = {
 };
 
+export type UnionSerializerProvider = SerializerProvider | number;
+
+export type SerializerProvider = {
+};
+
+export type UnionSimpleModule = SimpleModule | number;
+
+export type SimpleModule = {
+};
+
+export type UnionStandards = Standards | number;
+
+export type Standards = {
+};
+
+export type UnionStdDeserializer = StdDeserializer | number;
+
+export type StdDeserializer = {
+};
+
+export type UnionStdSerializer = StdSerializer | number;
+
+export type StdSerializer = {
+};
+
+export type UnionTimeOnly = TimeOnly | number;
+
+export type TimeOnly = {
+};
+
+export type UnionTimeOnlyConverter = TimeOnlyConverter | number;
+
+export type TimeOnlyConverter = {
+};
+
 export type UnionTrue = True | number;
 
 export type True = {
@@ -360,6 +551,21 @@ export type UnionType = Type | number;
 export type Type = {
 };
 
+export type UnionUUID = UUID | number;
+
+export type UUID = {
+};
+
+export type UnionUtf8JSONReader = Utf8JSONReader | number;
+
+export type Utf8JSONReader = {
+};
+
+export type UnionUtf8JSONWriter = Utf8JSONWriter | number;
+
+export type Utf8JSONWriter = {
+};
+
 export type UnionYES = Yes | number;
 
 export type Yes = {
@@ -565,6 +771,11 @@ export type UnionClassUnion = UnionClassClass | number;
 export type UnionClassClass = {
 };
 
+export type UnionClone = Clone | number;
+
+export type Clone = {
+};
+
 export type UnionCoAwait = CoAwait | number;
 
 export type CoAwait = {
@@ -760,6 +971,11 @@ export type UnionEnum = Enum | number;
 export type Enum = {
 };
 
+export type UnionEqualityContract = EqualityContract | number;
+
+export type EqualityContract = {
+};
+
 export type UnionEvent = Event | number;
 
 export type Event = {
@@ -905,6 +1121,11 @@ export type UnionHasOwnProperty = HasOwnProperty | number;
 export type HasOwnProperty = {
 };
 
+export type UnionHashCode = HashCode | number;
+
+export type HashCode = {
+};
+
 export type UnionID = ID | number;
 
 export type ID = {
@@ -1115,6 +1336,11 @@ export type UnionNil = Nil | number;
 export type Nil = {
 };
 
+export type UnionNoSuchMethod = NoSuchMethod | number;
+
+export type NoSuchMethod = {
+};
+
 export type UnionNoexcept = Noexcept | number;
 
 export type Noexcept = {
@@ -1255,6 +1481,11 @@ export type UnionPrint = Print | number;
 export type Print = {
 };
 
+export type UnionPrintMembers = PrintMembers | number;
+
+export type PrintMembers = {
+};
+
 export type UnionPrintf = Printf | number;
 
 export type Printf = {
@@ -1360,6 +1591,16 @@ export type UnionRight = Right | number;
 export type Right = {
 };
 
+export type UnionRuntimeType = RuntimeType | number;
+
+export type RuntimeType = {
+};
+
+export type UnionS = S | number;
+
+export type S = {
+};
+
 export type UnionSbyte = Sbyte | number;
 
 export type Sbyte = {
@@ -1500,6 +1741,11 @@ export type UnionThrows = Throws | number;
 export type Throws = {
 };
 
+export type UnionToString = ToString | number;
+
+export type ToString = {
+};
+
 export type UnionToJSON = ToJSON | number;
 
 export type ToJSON = {
@@ -1899,6 +2145,7 @@ const typeMap: any = {
         { json: "checked", js: "checked", typ: u(undefined, u(r("Checked"), 3.14)) },
         { json: "class", js: "class", typ: u(undefined, u(r("UnionClassClass"), 3.14)) },
         { json: "Class", js: "Class", typ: u(undefined, u(r("ClassClass"), 3.14)) },
+        { json: "clone", js: "clone", typ: u(undefined, u(r("Clone"), 3.14)) },
         { json: "co_await", js: "co_await", typ: u(undefined, u(r("CoAwait"), 3.14)) },
         { json: "co_return", js: "co_return", typ: u(undefined, u(r("CoReturn"), 3.14)) },
         { json: "co_yield", js: "co_yield", typ: u(undefined, u(r("CoYield"), 3.14)) },
@@ -1913,8 +2160,14 @@ const typeMap: any = {
         { json: "convenience", js: "convenience", typ: u(undefined, u(r("Convenience"), 3.14)) },
         { json: "convert", js: "convert", typ: u(undefined, u(r("Convert"), 3.14)) },
         { json: "converter", js: "converter", typ: u(undefined, u(r("Converter"), 3.14)) },
+        { json: "CultureInfo", js: "CultureInfo", typ: u(undefined, u(r("CultureInfo"), 3.14)) },
         { json: "date", js: "date", typ: u(undefined, u(r("DateClass"), 3.14)) },
         { json: "date_parse_handling", js: "date_parse_handling", typ: u(undefined, u(r("DateParseHandling"), 3.14)) },
+        { json: "DateFormatter", js: "DateFormatter", typ: u(undefined, u(r("DateFormatter"), 3.14)) },
+        { json: "DateOnly", js: "DateOnly", typ: u(undefined, u(r("DateOnly"), 3.14)) },
+        { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: u(undefined, u(r("DateOnlyConverter"), 3.14)) },
+        { json: "DateTime", js: "DateTime", typ: u(undefined, u(r("DateTime"), 3.14)) },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: u(undefined, u(r("DateTimeStyles"), 3.14)) },
         { json: "debugger", js: "debugger", typ: u(undefined, u(r("Debugger"), 3.14)) },
         { json: "decimal", js: "decimal", typ: u(undefined, u(r("Decimal"), 3.14)) },
         { json: "declare", js: "declare", typ: u(undefined, u(r("Declare"), 3.14)) },
@@ -1939,6 +2192,8 @@ const typeMap: any = {
         { json: "else", js: "else", typ: u(undefined, u(r("Else"), 3.14)) },
         { json: "encode_quick_type", js: "encode_quick_type", typ: u(undefined, u(r("EncodeQuickType"), 3.14)) },
         { json: "enum", js: "enum", typ: u(undefined, u(r("Enum"), 3.14)) },
+        { json: "EnumValues", js: "EnumValues", typ: u(undefined, u(r("EnumValues"), 3.14)) },
+        { json: "equalityContract", js: "equalityContract", typ: u(undefined, u(r("EqualityContract"), 3.14)) },
         { json: "event", js: "event", typ: u(undefined, u(r("Event"), 3.14)) },
         { json: "except", js: "except", typ: u(undefined, u(r("Except"), 3.14)) },
         { json: "exception", js: "exception", typ: u(undefined, u(r("Exception"), 3.14)) },
@@ -1958,6 +2213,7 @@ const typeMap: any = {
         { json: "float", js: "float", typ: u(undefined, u(r("Float"), 3.14)) },
         { json: "for", js: "for", typ: u(undefined, u(r("For"), 3.14)) },
         { json: "foreach", js: "foreach", typ: u(undefined, u(r("Foreach"), 3.14)) },
+        { json: "FormatException", js: "FormatException", typ: u(undefined, u(r("FormatException"), 3.14)) },
         { json: "friend", js: "friend", typ: u(undefined, u(r("Friend"), 3.14)) },
         { json: "from", js: "from", typ: u(undefined, u(r("From"), 3.14)) },
         { json: "from_json", js: "from_json", typ: u(undefined, u(r("FromJSON"), 3.14)) },
@@ -1968,6 +2224,7 @@ const typeMap: any = {
         { json: "go", js: "go", typ: u(undefined, u(r("Go"), 3.14)) },
         { json: "goto", js: "goto", typ: u(undefined, u(r("Goto"), 3.14)) },
         { json: "guard", js: "guard", typ: u(undefined, u(r("Guard"), 3.14)) },
+        { json: "hashCode", js: "hashCode", typ: u(undefined, u(r("HashCode"), 3.14)) },
         { json: "hasOwnProperty", js: "hasOwnProperty", typ: u(undefined, u(r("HasOwnProperty"), 3.14)) },
         { json: "id", js: "id", typ: u(undefined, u(r("ID"), 3.14)) },
         { json: "if", js: "if", typ: u(undefined, u(r("If"), 3.14)) },
@@ -1986,6 +2243,7 @@ const typeMap: any = {
         { json: "interface", js: "interface", typ: u(undefined, u(r("Interface"), 3.14)) },
         { json: "internal", js: "internal", typ: u(undefined, u(r("Internal"), 3.14)) },
         { json: "is", js: "is", typ: u(undefined, u(r("Is"), 3.14)) },
+        { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: u(undefined, u(r("ISODateTimeOffsetConverter"), 3.14)) },
         { json: "iterable", js: "iterable", typ: u(undefined, u(r("Iterable"), 3.14)) },
         { json: "jdec", js: "jdec", typ: u(undefined, u(r("Jdec"), 3.14)) },
         { json: "jenc", js: "jenc", typ: u(undefined, u(r("Jenc"), 3.14)) },
@@ -1995,6 +2253,17 @@ const typeMap: any = {
         { json: "json_serializer", js: "json_serializer", typ: u(undefined, u(r("JSONSerializer"), 3.14)) },
         { json: "json_token", js: "json_token", typ: u(undefined, u(r("JSONToken"), 3.14)) },
         { json: "json_writer", js: "json_writer", typ: u(undefined, u(r("JSONWriter"), 3.14)) },
+        { json: "JSONAny", js: "JSONAny", typ: u(undefined, u(r("JSONAny"), 3.14)) },
+        { json: "JSONCodingKey", js: "JSONCodingKey", typ: u(undefined, u(r("JSONCodingKey"), 3.14)) },
+        { json: "JSONDecoder", js: "JSONDecoder", typ: u(undefined, u(r("JSONDecoder"), 3.14)) },
+        { json: "JSONEncoder", js: "JSONEncoder", typ: u(undefined, u(r("JSONEncoder"), 3.14)) },
+        { json: "JsonException", js: "JsonException", typ: u(undefined, u(r("JSONException"), 3.14)) },
+        { json: "JsonGenerator", js: "JsonGenerator", typ: u(undefined, u(r("JSONGenerator"), 3.14)) },
+        { json: "JsonNode", js: "JsonNode", typ: u(undefined, u(r("JSONNode"), 3.14)) },
+        { json: "JSONNull", js: "JSONNull", typ: u(undefined, u(r("JSONNull"), 3.14)) },
+        { json: "JsonParser", js: "JsonParser", typ: u(undefined, u(r("JSONParser"), 3.14)) },
+        { json: "JsonReader", js: "JsonReader", typ: u(undefined, u(r("JSONReader"), 3.14)) },
+        { json: "JsonTokenType", js: "JsonTokenType", typ: u(undefined, u(r("JSONTokenType"), 3.14)) },
         { json: "lambda", js: "lambda", typ: u(undefined, u(r("Lambda"), 3.14)) },
         { json: "lazy", js: "lazy", typ: u(undefined, u(r("Lazy"), 3.14)) },
         { json: "left", js: "left", typ: u(undefined, u(r("Left"), 3.14)) },
@@ -2019,14 +2288,17 @@ const typeMap: any = {
         { json: "None", js: "None", typ: u(undefined, u(r("None"), 3.14)) },
         { json: "nonlocal", js: "nonlocal", typ: u(undefined, u(r("Nonlocal"), 3.14)) },
         { json: "nonmutating", js: "nonmutating", typ: u(undefined, u(r("Nonmutating"), 3.14)) },
+        { json: "noSuchMethod", js: "noSuchMethod", typ: u(undefined, u(r("NoSuchMethod"), 3.14)) },
         { json: "not", js: "not", typ: u(undefined, u(r("Not"), 3.14)) },
         { json: "not_eq", js: "not_eq", typ: u(undefined, u(r("NotEq"), 3.14)) },
+        { json: "NSError", js: "NSError", typ: u(undefined, u(r("NSError"), 3.14)) },
         { json: "NSString", js: "NSString", typ: u(undefined, u(r("NSString"), 3.14)) },
         { json: "NULL", js: "NULL", typ: u(undefined, u(r("Null"), 3.14)) },
         { json: "null", js: "null", typ: u(undefined, u(r("NullClass"), 3.14)) },
         { json: "nullptr", js: "nullptr", typ: u(undefined, u(r("Nullptr"), 3.14)) },
         { json: "number", js: "number", typ: u(undefined, u(r("Number"), 3.14)) },
         { json: "object", js: "object", typ: u(undefined, u(r("ObjectClass"), 3.14)) },
+        { json: "ObjectMapper", js: "ObjectMapper", typ: u(undefined, u(r("ObjectMapper"), 3.14)) },
         { json: "of", js: "of", typ: u(undefined, u(r("Of"), 3.14)) },
         { json: "oneway", js: "oneway", typ: u(undefined, u(r("Oneway"), 3.14)) },
         { json: "open", js: "open", typ: u(undefined, u(r("Open"), 3.14)) },
@@ -2045,6 +2317,7 @@ const typeMap: any = {
         { json: "prefix", js: "prefix", typ: u(undefined, u(r("Prefix"), 3.14)) },
         { json: "print", js: "print", typ: u(undefined, u(r("Print"), 3.14)) },
         { json: "printf", js: "printf", typ: u(undefined, u(r("Printf"), 3.14)) },
+        { json: "printMembers", js: "printMembers", typ: u(undefined, u(r("PrintMembers"), 3.14)) },
         { json: "private", js: "private", typ: u(undefined, u(r("Private"), 3.14)) },
         { json: "protected", js: "protected", typ: u(undefined, u(r("Protected"), 3.14)) },
         { json: "Protocol", js: "Protocol", typ: u(undefined, u(r("Protocol"), 3.14)) },
@@ -2055,6 +2328,7 @@ const typeMap: any = {
         { json: "range", js: "range", typ: u(undefined, u(r("Range"), 3.14)) },
         { json: "readonly", js: "readonly", typ: u(undefined, u(r("Readonly"), 3.14)) },
         { json: "ref", js: "ref", typ: u(undefined, u(r("Ref"), 3.14)) },
+        { json: "RegExp", js: "RegExp", typ: u(undefined, u(r("RegExpClass"), 3.14)) },
         { json: "register", js: "register", typ: u(undefined, u(r("Register"), 3.14)) },
         { json: "reinterpret_cast", js: "reinterpret_cast", typ: u(undefined, u(r("ReinterpretCast"), 3.14)) },
         { json: "repeat", js: "repeat", typ: u(undefined, u(r("Repeat"), 3.14)) },
@@ -2066,6 +2340,8 @@ const typeMap: any = {
         { json: "rethrows", js: "rethrows", typ: u(undefined, u(r("Rethrows"), 3.14)) },
         { json: "return", js: "return", typ: u(undefined, u(r("Return"), 3.14)) },
         { json: "right", js: "right", typ: u(undefined, u(r("Right"), 3.14)) },
+        { json: "runtimeType", js: "runtimeType", typ: u(undefined, u(r("RuntimeType"), 3.14)) },
+        { json: "s", js: "s", typ: u(undefined, u(r("S"), 3.14)) },
         { json: "sbyte", js: "sbyte", typ: u(undefined, u(r("Sbyte"), 3.14)) },
         { json: "sealed", js: "sealed", typ: u(undefined, u(r("Sealed"), 3.14)) },
         { json: "SEL", js: "SEL", typ: u(undefined, u(r("Sel"), 3.14)) },
@@ -2073,14 +2349,19 @@ const typeMap: any = {
         { json: "Self", js: "Self", typ: u(undefined, u(r("Self"), 3.14)) },
         { json: "self", js: "self", typ: u(undefined, u(r("SelfClass"), 3.14)) },
         { json: "serialize", js: "serialize", typ: u(undefined, u(r("Serialize"), 3.14)) },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: u(undefined, u(r("SerializerProvider"), 3.14)) },
         { json: "set", js: "set", typ: u(undefined, u(r("Set"), 3.14)) },
         { json: "short", js: "short", typ: u(undefined, u(r("Short"), 3.14)) },
         { json: "signed", js: "signed", typ: u(undefined, u(r("Signed"), 3.14)) },
+        { json: "SimpleModule", js: "SimpleModule", typ: u(undefined, u(r("SimpleModule"), 3.14)) },
         { json: "sizeof", js: "sizeof", typ: u(undefined, u(r("Sizeof"), 3.14)) },
         { json: "stackalloc", js: "stackalloc", typ: u(undefined, u(r("Stackalloc"), 3.14)) },
+        { json: "Standards", js: "Standards", typ: u(undefined, u(r("Standards"), 3.14)) },
         { json: "static", js: "static", typ: u(undefined, u(r("Static"), 3.14)) },
         { json: "static_assert", js: "static_assert", typ: u(undefined, u(r("StaticAssert"), 3.14)) },
         { json: "static_cast", js: "static_cast", typ: u(undefined, u(r("StaticCast"), 3.14)) },
+        { json: "StdDeserializer", js: "StdDeserializer", typ: u(undefined, u(r("StdDeserializer"), 3.14)) },
+        { json: "StdSerializer", js: "StdSerializer", typ: u(undefined, u(r("StdSerializer"), 3.14)) },
         { json: "strictfp", js: "strictfp", typ: u(undefined, u(r("Strictfp"), 3.14)) },
         { json: "string", js: "string", typ: u(undefined, u(r("StringClass"), 3.14)) },
         { json: "struct", js: "struct", typ: u(undefined, u(r("Struct"), 3.14)) },
@@ -2096,8 +2377,11 @@ const typeMap: any = {
         { json: "thread_local", js: "thread_local", typ: u(undefined, u(r("ThreadLocal"), 3.14)) },
         { json: "throw", js: "throw", typ: u(undefined, u(r("Throw"), 3.14)) },
         { json: "throws", js: "throws", typ: u(undefined, u(r("Throws"), 3.14)) },
+        { json: "TimeOnly", js: "TimeOnly", typ: u(undefined, u(r("TimeOnly"), 3.14)) },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: u(undefined, u(r("TimeOnlyConverter"), 3.14)) },
         { json: "to_json", js: "to_json", typ: u(undefined, u(r("ToJSON"), 3.14)) },
         { json: "top_level", js: "top_level", typ: u(undefined, u(r("TopLevelClass"), 3.14)) },
+        { json: "toString", js: "toString", typ: u(undefined, u(r("ToString"), 3.14)) },
         { json: "transient", js: "transient", typ: u(undefined, u(r("Transient"), 3.14)) },
         { json: "True", js: "True", typ: u(undefined, u(r("True"), 3.14)) },
         { json: "true", js: "true", typ: u(undefined, u(r("TrueClass"), 3.14)) },
@@ -2119,6 +2403,9 @@ const typeMap: any = {
         { json: "unsigned", js: "unsigned", typ: u(undefined, u(r("Unsigned"), 3.14)) },
         { json: "ushort", js: "ushort", typ: u(undefined, u(r("Ushort"), 3.14)) },
         { json: "using", js: "using", typ: u(undefined, u(r("Using"), 3.14)) },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: u(undefined, u(r("Utf8JSONReader"), 3.14)) },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: u(undefined, u(r("Utf8JSONWriter"), 3.14)) },
+        { json: "UUID", js: "UUID", typ: u(undefined, u(r("UUID"), 3.14)) },
         { json: "var", js: "var", typ: u(undefined, u(r("Var"), 3.14)) },
         { json: "virtual", js: "virtual", typ: u(undefined, u(r("Virtual"), 3.14)) },
         { json: "void", js: "void", typ: u(undefined, u(r("Void"), 3.14)) },
@@ -2140,28 +2427,94 @@ const typeMap: any = {
     ], false),
     "ClassClass": o([
     ], false),
+    "CultureInfo": o([
+    ], false),
+    "DateFormatter": o([
+    ], false),
+    "DateOnly": o([
+    ], false),
+    "DateOnlyConverter": o([
+    ], false),
+    "DateTime": o([
+    ], false),
+    "DateTimeStyles": o([
+    ], false),
+    "EnumValues": o([
+    ], false),
     "False": o([
     ], false),
+    "FormatException": o([
+    ], false),
     "Imp": o([
     ], false),
+    "ISODateTimeOffsetConverter": o([
+    ], false),
+    "JSONAny": o([
+    ], false),
+    "JSONCodingKey": o([
+    ], false),
+    "JSONDecoder": o([
+    ], false),
+    "JSONEncoder": o([
+    ], false),
+    "JSONNull": o([
+    ], false),
+    "JSONException": o([
+    ], false),
+    "JSONGenerator": o([
+    ], false),
+    "JSONNode": o([
+    ], false),
+    "JSONParser": o([
+    ], false),
+    "JSONReader": o([
+    ], false),
+    "JSONTokenType": o([
+    ], false),
     "No": o([
     ], false),
+    "NSError": o([
+    ], false),
     "NSString": o([
     ], false),
     "Null": o([
     ], false),
     "None": o([
     ], false),
+    "ObjectMapper": o([
+    ], false),
     "Protocol": o([
     ], false),
+    "RegExpClass": o([
+    ], false),
     "Sel": o([
     ], false),
     "Self": o([
     ], false),
+    "SerializerProvider": o([
+    ], false),
+    "SimpleModule": o([
+    ], false),
+    "Standards": o([
+    ], false),
+    "StdDeserializer": o([
+    ], false),
+    "StdSerializer": o([
+    ], false),
+    "TimeOnly": o([
+    ], false),
+    "TimeOnlyConverter": o([
+    ], false),
     "True": o([
     ], false),
     "Type": o([
     ], false),
+    "UUID": o([
+    ], false),
+    "Utf8JSONReader": o([
+    ], false),
+    "Utf8JSONWriter": o([
+    ], false),
     "Yes": o([
     ], false),
     "Empty": o([
@@ -2244,6 +2597,8 @@ const typeMap: any = {
     ], false),
     "UnionClassClass": o([
     ], false),
+    "Clone": o([
+    ], false),
     "CoAwait": o([
     ], false),
     "CoReturn": o([
@@ -2322,6 +2677,8 @@ const typeMap: any = {
     ], false),
     "Enum": o([
     ], false),
+    "EqualityContract": o([
+    ], false),
     "Event": o([
     ], false),
     "Except": o([
@@ -2380,6 +2737,8 @@ const typeMap: any = {
     ], false),
     "HasOwnProperty": o([
     ], false),
+    "HashCode": o([
+    ], false),
     "ID": o([
     ], false),
     "If": o([
@@ -2464,6 +2823,8 @@ const typeMap: any = {
     ], false),
     "Nil": o([
     ], false),
+    "NoSuchMethod": o([
+    ], false),
     "Noexcept": o([
     ], false),
     "Nonatomic": o([
@@ -2520,6 +2881,8 @@ const typeMap: any = {
     ], false),
     "Print": o([
     ], false),
+    "PrintMembers": o([
+    ], false),
     "Printf": o([
     ], false),
     "Private": o([
@@ -2562,6 +2925,10 @@ const typeMap: any = {
     ], false),
     "Right": o([
     ], false),
+    "RuntimeType": o([
+    ], false),
+    "S": o([
+    ], false),
     "Sbyte": o([
     ], false),
     "Sealed": o([
@@ -2618,6 +2985,8 @@ const typeMap: any = {
     ], false),
     "Throws": o([
     ], false),
+    "ToString": o([
+    ], false),
     "ToJSON": o([
     ], false),
     "TopLevelClass": o([
diff --git a/base/schema-golang/test/inputs/schema/keyword-enum.schema/default/quicktype.go b/head/schema-golang/test/inputs/schema/keyword-enum.schema/default/quicktype.go
index 69b4297..dc71355 100644
--- a/base/schema-golang/test/inputs/schema/keyword-enum.schema/default/quicktype.go
+++ b/head/schema-golang/test/inputs/schema/keyword-enum.schema/default/quicktype.go
@@ -25,283 +25,324 @@ type TopLevel struct {
 type EnumEnum string
 
 const (
-	Empty                    EnumEnum = "_"
-	Bool                     EnumEnum = "_Bool"
-	Complex                  EnumEnum = "_Complex"
-	Imaginery                EnumEnum = "_Imaginery"
-	Abstract                 EnumEnum = "abstract"
-	Alignas                  EnumEnum = "alignas"
-	Alignof                  EnumEnum = "alignof"
-	And                      EnumEnum = "and"
-	AndEq                    EnumEnum = "and_eq"
-	Any                      EnumEnum = "any"
-	EnumAny                  EnumEnum = "Any"
-	Array                    EnumEnum = "array"
-	As                       EnumEnum = "as"
-	ASM                      EnumEnum = "asm"
-	Assert                   EnumEnum = "assert"
-	Associatedtype           EnumEnum = "associatedtype"
-	Associativity            EnumEnum = "associativity"
-	Async                    EnumEnum = "async"
-	Atomic                   EnumEnum = "atomic"
-	AtomicCancel             EnumEnum = "atomic_cancel"
-	AtomicCommit             EnumEnum = "atomic_commit"
-	AtomicNoexcept           EnumEnum = "atomic_noexcept"
-	Auto                     EnumEnum = "auto"
-	Await                    EnumEnum = "await"
-	Base                     EnumEnum = "base"
-	Bitand                   EnumEnum = "bitand"
-	Bitor                    EnumEnum = "bitor"
-	EnumBOOL                 EnumEnum = "BOOL"
-	EnumBool                 EnumEnum = "bool"
-	Boolean                  EnumEnum = "boolean"
-	Break                    EnumEnum = "break"
-	Bycopy                   EnumEnum = "bycopy"
-	Byref                    EnumEnum = "byref"
-	Byte                     EnumEnum = "byte"
-	Case                     EnumEnum = "case"
-	Catch                    EnumEnum = "catch"
-	Chan                     EnumEnum = "chan"
-	Char                     EnumEnum = "char"
-	Char16T                  EnumEnum = "char16_t"
-	Char32T                  EnumEnum = "char32_t"
-	Checked                  EnumEnum = "checked"
-	Class                    EnumEnum = "class"
-	EnumClass                EnumEnum = "Class"
-	CoAwait                  EnumEnum = "co_await"
-	CoReturn                 EnumEnum = "co_return"
-	CoYield                  EnumEnum = "co_yield"
-	Compl                    EnumEnum = "compl"
-	Concept                  EnumEnum = "concept"
-	Console                  EnumEnum = "console"
-	Const                    EnumEnum = "const"
-	ConstCast                EnumEnum = "const_cast"
-	Constexpr                EnumEnum = "constexpr"
-	Constructor              EnumEnum = "constructor"
-	Continue                 EnumEnum = "continue"
-	Convenience              EnumEnum = "convenience"
-	Convert                  EnumEnum = "convert"
-	Converter                EnumEnum = "converter"
-	Date                     EnumEnum = "date"
-	DateParseHandling        EnumEnum = "date_parse_handling"
-	Debugger                 EnumEnum = "debugger"
-	Decimal                  EnumEnum = "decimal"
-	Declare                  EnumEnum = "declare"
-	Decltype                 EnumEnum = "decltype"
-	DecodeString             EnumEnum = "decode_string"
-	Def                      EnumEnum = "def"
-	Default                  EnumEnum = "default"
-	Defer                    EnumEnum = "defer"
-	Deinit                   EnumEnum = "deinit"
-	Del                      EnumEnum = "del"
-	Delegate                 EnumEnum = "delegate"
-	Delete                   EnumEnum = "delete"
-	Dict                     EnumEnum = "dict"
-	Dictionary               EnumEnum = "dictionary"
-	DidSet                   EnumEnum = "didSet"
-	Do                       EnumEnum = "do"
-	Double                   EnumEnum = "double"
-	Dynamic                  EnumEnum = "dynamic"
-	DynamicCast              EnumEnum = "dynamic_cast"
-	Elif                     EnumEnum = "elif"
-	Else                     EnumEnum = "else"
-	EncodeQuickType          EnumEnum = "encode_quick_type"
-	Enum                     EnumEnum = "enum"
-	Event                    EnumEnum = "event"
-	Except                   EnumEnum = "except"
-	Exception                EnumEnum = "exception"
-	Explicit                 EnumEnum = "explicit"
-	Export                   EnumEnum = "export"
-	Exposing                 EnumEnum = "exposing"
-	Extends                  EnumEnum = "extends"
-	Extension                EnumEnum = "extension"
-	Extern                   EnumEnum = "extern"
-	Fallthrough              EnumEnum = "fallthrough"
-	False                    EnumEnum = "false"
-	EnumFalse                EnumEnum = "False"
-	Fileprivate              EnumEnum = "fileprivate"
-	Final                    EnumEnum = "final"
-	Finally                  EnumEnum = "finally"
-	Fixed                    EnumEnum = "fixed"
-	Float                    EnumEnum = "float"
-	For                      EnumEnum = "for"
-	Foreach                  EnumEnum = "foreach"
-	Friend                   EnumEnum = "friend"
-	From                     EnumEnum = "from"
-	FromJSON                 EnumEnum = "from_json"
-	Func                     EnumEnum = "func"
-	Function                 EnumEnum = "function"
-	Get                      EnumEnum = "get"
-	Global                   EnumEnum = "global"
-	Go                       EnumEnum = "go"
-	Goto                     EnumEnum = "goto"
-	Guard                    EnumEnum = "guard"
-	HasOwnProperty           EnumEnum = "hasOwnProperty"
-	ID                       EnumEnum = "id"
-	If                       EnumEnum = "if"
-	Imp                      EnumEnum = "IMP"
-	Implements               EnumEnum = "implements"
-	Implicit                 EnumEnum = "implicit"
-	Import                   EnumEnum = "import"
-	In                       EnumEnum = "in"
-	Indirect                 EnumEnum = "indirect"
-	Infix                    EnumEnum = "infix"
-	Init                     EnumEnum = "init"
-	Inline                   EnumEnum = "inline"
-	Inout                    EnumEnum = "inout"
-	Instanceof               EnumEnum = "instanceof"
-	Int                      EnumEnum = "int"
-	Interface                EnumEnum = "interface"
-	Internal                 EnumEnum = "internal"
-	Iterable                 EnumEnum = "iterable"
-	Is                       EnumEnum = "is"
-	Jdec                     EnumEnum = "jdec"
-	Jenc                     EnumEnum = "jenc"
-	Jpipe                    EnumEnum = "jpipe"
-	JSON                     EnumEnum = "json"
-	JSONConverter            EnumEnum = "json_converter"
-	JSONSerializer           EnumEnum = "json_serializer"
-	JSONToken                EnumEnum = "json_token"
-	JSONWriter               EnumEnum = "json_writer"
-	Lambda                   EnumEnum = "lambda"
-	Lazy                     EnumEnum = "lazy"
-	Left                     EnumEnum = "left"
-	Let                      EnumEnum = "let"
-	List                     EnumEnum = "list"
-	Lock                     EnumEnum = "lock"
-	Long                     EnumEnum = "long"
-	Map                      EnumEnum = "map"
-	MetadataPropertyHandling EnumEnum = "metadata_property_handling"
-	Module                   EnumEnum = "module"
-	Mutable                  EnumEnum = "mutable"
-	Mutating                 EnumEnum = "mutating"
-	Namespace                EnumEnum = "namespace"
-	Native                   EnumEnum = "native"
-	New                      EnumEnum = "new"
-	Newtonsoft               EnumEnum = "newtonsoft"
-	Nil                      EnumEnum = "nil"
-	No                       EnumEnum = "NO"
-	Noexcept                 EnumEnum = "noexcept"
-	Nonatomic                EnumEnum = "nonatomic"
-	None                     EnumEnum = "none"
-	EnumNone                 EnumEnum = "None"
-	Nonlocal                 EnumEnum = "nonlocal"
-	Nonmutating              EnumEnum = "nonmutating"
-	Not                      EnumEnum = "not"
-	NotEq                    EnumEnum = "not_eq"
-	NSString                 EnumEnum = "NSString"
-	Null                     EnumEnum = "NULL"
-	EnumNull                 EnumEnum = "null"
-	Nullptr                  EnumEnum = "nullptr"
-	Number                   EnumEnum = "number"
-	Object                   EnumEnum = "object"
-	Of                       EnumEnum = "of"
-	Oneway                   EnumEnum = "oneway"
-	Open                     EnumEnum = "open"
-	Operator                 EnumEnum = "operator"
-	Optional                 EnumEnum = "optional"
-	Or                       EnumEnum = "or"
-	OrEq                     EnumEnum = "or_eq"
-	Out                      EnumEnum = "out"
-	Override                 EnumEnum = "override"
-	Package                  EnumEnum = "package"
-	Params                   EnumEnum = "params"
-	Pass                     EnumEnum = "pass"
-	Port                     EnumEnum = "port"
-	Postfix                  EnumEnum = "postfix"
-	Precedence               EnumEnum = "precedence"
-	Prefix                   EnumEnum = "prefix"
-	Print                    EnumEnum = "print"
-	Printf                   EnumEnum = "printf"
-	Private                  EnumEnum = "private"
-	Protected                EnumEnum = "protected"
-	Protocol                 EnumEnum = "Protocol"
-	EnumProtocol             EnumEnum = "protocol"
-	Public                   EnumEnum = "public"
-	Quicktype                EnumEnum = "quicktype"
-	Raise                    EnumEnum = "raise"
-	Range                    EnumEnum = "range"
-	Readonly                 EnumEnum = "readonly"
-	Ref                      EnumEnum = "ref"
-	Register                 EnumEnum = "register"
-	ReinterpretCast          EnumEnum = "reinterpret_cast"
-	Repeat                   EnumEnum = "repeat"
-	Require                  EnumEnum = "require"
-	Required                 EnumEnum = "required"
-	Requires                 EnumEnum = "requires"
-	Restrict                 EnumEnum = "restrict"
-	Retain                   EnumEnum = "retain"
-	Rethrows                 EnumEnum = "rethrows"
-	Return                   EnumEnum = "return"
-	Right                    EnumEnum = "right"
-	Sbyte                    EnumEnum = "sbyte"
-	Sealed                   EnumEnum = "sealed"
-	Sel                      EnumEnum = "SEL"
-	Select                   EnumEnum = "select"
-	Self                     EnumEnum = "Self"
-	EnumSelf                 EnumEnum = "self"
-	Serialize                EnumEnum = "serialize"
-	Set                      EnumEnum = "set"
-	Short                    EnumEnum = "short"
-	Signed                   EnumEnum = "signed"
-	Sizeof                   EnumEnum = "sizeof"
-	Stackalloc               EnumEnum = "stackalloc"
-	Static                   EnumEnum = "static"
-	StaticAssert             EnumEnum = "static_assert"
-	StaticCast               EnumEnum = "static_cast"
-	Strictfp                 EnumEnum = "strictfp"
-	String                   EnumEnum = "string"
-	Struct                   EnumEnum = "struct"
-	Subscript                EnumEnum = "subscript"
-	Super                    EnumEnum = "super"
-	Switch                   EnumEnum = "switch"
-	Symbol                   EnumEnum = "symbol"
-	Synchronized             EnumEnum = "synchronized"
-	System                   EnumEnum = "system"
-	Template                 EnumEnum = "template"
-	Then                     EnumEnum = "then"
-	This                     EnumEnum = "this"
-	ThreadLocal              EnumEnum = "thread_local"
-	Throw                    EnumEnum = "throw"
-	Throws                   EnumEnum = "throws"
-	ToJSON                   EnumEnum = "to_json"
-	EnumTopLevel             EnumEnum = "top_level"
-	Transient                EnumEnum = "transient"
-	True                     EnumEnum = "True"
-	EnumTrue                 EnumEnum = "true"
-	Try                      EnumEnum = "try"
-	Type                     EnumEnum = "Type"
-	EnumType                 EnumEnum = "type"
-	Typealias                EnumEnum = "typealias"
-	Typedef                  EnumEnum = "typedef"
-	Typeid                   EnumEnum = "typeid"
-	Typename                 EnumEnum = "typename"
-	Typeof                   EnumEnum = "typeof"
-	Uint                     EnumEnum = "uint"
-	Ulong                    EnumEnum = "ulong"
-	Unchecked                EnumEnum = "unchecked"
-	Undefined                EnumEnum = "undefined"
-	Union                    EnumEnum = "union"
-	Unowned                  EnumEnum = "unowned"
-	Unsafe                   EnumEnum = "unsafe"
-	Unsigned                 EnumEnum = "unsigned"
-	Ushort                   EnumEnum = "ushort"
-	Using                    EnumEnum = "using"
-	Var                      EnumEnum = "var"
-	Virtual                  EnumEnum = "virtual"
-	Void                     EnumEnum = "void"
-	Volatile                 EnumEnum = "volatile"
-	WcharT                   EnumEnum = "wchar_t"
-	Weak                     EnumEnum = "weak"
-	Where                    EnumEnum = "where"
-	While                    EnumEnum = "while"
-	WillSet                  EnumEnum = "willSet"
-	With                     EnumEnum = "with"
-	Xor                      EnumEnum = "xor"
-	XorEq                    EnumEnum = "xor_eq"
-	Yes                      EnumEnum = "YES"
-	Yield                    EnumEnum = "yield"
-	Dummy                    EnumEnum = "dummy"
+	Empty                      EnumEnum = "_"
+	Bool                       EnumEnum = "_Bool"
+	Complex                    EnumEnum = "_Complex"
+	Imaginery                  EnumEnum = "_Imaginery"
+	Abstract                   EnumEnum = "abstract"
+	Alignas                    EnumEnum = "alignas"
+	Alignof                    EnumEnum = "alignof"
+	And                        EnumEnum = "and"
+	AndEq                      EnumEnum = "and_eq"
+	Any                        EnumEnum = "any"
+	EnumAny                    EnumEnum = "Any"
+	Array                      EnumEnum = "array"
+	As                         EnumEnum = "as"
+	ASM                        EnumEnum = "asm"
+	Assert                     EnumEnum = "assert"
+	Associatedtype             EnumEnum = "associatedtype"
+	Associativity              EnumEnum = "associativity"
+	Async                      EnumEnum = "async"
+	Atomic                     EnumEnum = "atomic"
+	AtomicCancel               EnumEnum = "atomic_cancel"
+	AtomicCommit               EnumEnum = "atomic_commit"
+	AtomicNoexcept             EnumEnum = "atomic_noexcept"
+	Auto                       EnumEnum = "auto"
+	Await                      EnumEnum = "await"
+	Base                       EnumEnum = "base"
+	Bitand                     EnumEnum = "bitand"
+	Bitor                      EnumEnum = "bitor"
+	EnumBOOL                   EnumEnum = "BOOL"
+	EnumBool                   EnumEnum = "bool"
+	Boolean                    EnumEnum = "boolean"
+	Break                      EnumEnum = "break"
+	Bycopy                     EnumEnum = "bycopy"
+	Byref                      EnumEnum = "byref"
+	Byte                       EnumEnum = "byte"
+	Case                       EnumEnum = "case"
+	Catch                      EnumEnum = "catch"
+	Chan                       EnumEnum = "chan"
+	Char                       EnumEnum = "char"
+	Char16T                    EnumEnum = "char16_t"
+	Char32T                    EnumEnum = "char32_t"
+	Checked                    EnumEnum = "checked"
+	Class                      EnumEnum = "class"
+	EnumClass                  EnumEnum = "Class"
+	Clone                      EnumEnum = "clone"
+	CoAwait                    EnumEnum = "co_await"
+	CoReturn                   EnumEnum = "co_return"
+	CoYield                    EnumEnum = "co_yield"
+	Compl                      EnumEnum = "compl"
+	Concept                    EnumEnum = "concept"
+	Console                    EnumEnum = "console"
+	Const                      EnumEnum = "const"
+	ConstCast                  EnumEnum = "const_cast"
+	Constexpr                  EnumEnum = "constexpr"
+	Constructor                EnumEnum = "constructor"
+	Continue                   EnumEnum = "continue"
+	Convenience                EnumEnum = "convenience"
+	Convert                    EnumEnum = "convert"
+	Converter                  EnumEnum = "converter"
+	CultureInfo                EnumEnum = "CultureInfo"
+	Date                       EnumEnum = "date"
+	DateParseHandling          EnumEnum = "date_parse_handling"
+	DateFormatter              EnumEnum = "DateFormatter"
+	DateOnly                   EnumEnum = "DateOnly"
+	DateOnlyConverter          EnumEnum = "DateOnlyConverter"
+	DateTime                   EnumEnum = "DateTime"
+	DateTimeStyles             EnumEnum = "DateTimeStyles"
+	Debugger                   EnumEnum = "debugger"
+	Decimal                    EnumEnum = "decimal"
+	Declare                    EnumEnum = "declare"
+	Decltype                   EnumEnum = "decltype"
+	DecodeString               EnumEnum = "decode_string"
+	Def                        EnumEnum = "def"
+	Default                    EnumEnum = "default"
+	Defer                      EnumEnum = "defer"
+	Deinit                     EnumEnum = "deinit"
+	Del                        EnumEnum = "del"
+	Delegate                   EnumEnum = "delegate"
+	Delete                     EnumEnum = "delete"
+	Dict                       EnumEnum = "dict"
+	Dictionary                 EnumEnum = "dictionary"
+	DidSet                     EnumEnum = "didSet"
+	Do                         EnumEnum = "do"
+	Double                     EnumEnum = "double"
+	Dynamic                    EnumEnum = "dynamic"
+	DynamicCast                EnumEnum = "dynamic_cast"
+	Elif                       EnumEnum = "elif"
+	Else                       EnumEnum = "else"
+	EncodeQuickType            EnumEnum = "encode_quick_type"
+	Enum                       EnumEnum = "enum"
+	EnumValues                 EnumEnum = "EnumValues"
+	EqualityContract           EnumEnum = "equalityContract"
+	Event                      EnumEnum = "event"
+	Except                     EnumEnum = "except"
+	Exception                  EnumEnum = "exception"
+	Explicit                   EnumEnum = "explicit"
+	Export                     EnumEnum = "export"
+	Exposing                   EnumEnum = "exposing"
+	Extends                    EnumEnum = "extends"
+	Extension                  EnumEnum = "extension"
+	Extern                     EnumEnum = "extern"
+	Fallthrough                EnumEnum = "fallthrough"
+	False                      EnumEnum = "false"
+	EnumFalse                  EnumEnum = "False"
+	Fileprivate                EnumEnum = "fileprivate"
+	Final                      EnumEnum = "final"
+	Finally                    EnumEnum = "finally"
+	Fixed                      EnumEnum = "fixed"
+	Float                      EnumEnum = "float"
+	For                        EnumEnum = "for"
+	Foreach                    EnumEnum = "foreach"
+	FormatException            EnumEnum = "FormatException"
+	Friend                     EnumEnum = "friend"
+	From                       EnumEnum = "from"
+	FromJSON                   EnumEnum = "from_json"
+	Func                       EnumEnum = "func"
+	Function                   EnumEnum = "function"
+	Get                        EnumEnum = "get"
+	Global                     EnumEnum = "global"
+	Go                         EnumEnum = "go"
+	Goto                       EnumEnum = "goto"
+	Guard                      EnumEnum = "guard"
+	HashCode                   EnumEnum = "hashCode"
+	HasOwnProperty             EnumEnum = "hasOwnProperty"
+	ID                         EnumEnum = "id"
+	If                         EnumEnum = "if"
+	Imp                        EnumEnum = "IMP"
+	Implements                 EnumEnum = "implements"
+	Implicit                   EnumEnum = "implicit"
+	Import                     EnumEnum = "import"
+	In                         EnumEnum = "in"
+	Indirect                   EnumEnum = "indirect"
+	Infix                      EnumEnum = "infix"
+	Init                       EnumEnum = "init"
+	Inline                     EnumEnum = "inline"
+	Inout                      EnumEnum = "inout"
+	Instanceof                 EnumEnum = "instanceof"
+	Int                        EnumEnum = "int"
+	Interface                  EnumEnum = "interface"
+	Internal                   EnumEnum = "internal"
+	ISODateTimeOffsetConverter EnumEnum = "IsoDateTimeOffsetConverter"
+	Iterable                   EnumEnum = "iterable"
+	Is                         EnumEnum = "is"
+	Jdec                       EnumEnum = "jdec"
+	Jenc                       EnumEnum = "jenc"
+	Jpipe                      EnumEnum = "jpipe"
+	JSON                       EnumEnum = "json"
+	JSONConverter              EnumEnum = "json_converter"
+	JSONSerializer             EnumEnum = "json_serializer"
+	JSONToken                  EnumEnum = "json_token"
+	JSONWriter                 EnumEnum = "json_writer"
+	JSONAny                    EnumEnum = "JSONAny"
+	JSONCodingKey              EnumEnum = "JSONCodingKey"
+	JSONDecoder                EnumEnum = "JSONDecoder"
+	JSONEncoder                EnumEnum = "JSONEncoder"
+	JSONException              EnumEnum = "JsonException"
+	JSONGenerator              EnumEnum = "JsonGenerator"
+	JSONNode                   EnumEnum = "JsonNode"
+	JSONNull                   EnumEnum = "JSONNull"
+	JSONParser                 EnumEnum = "JsonParser"
+	JSONReader                 EnumEnum = "JsonReader"
+	JSONTokenType              EnumEnum = "JsonTokenType"
+	Lambda                     EnumEnum = "lambda"
+	Lazy                       EnumEnum = "lazy"
+	Left                       EnumEnum = "left"
+	Let                        EnumEnum = "let"
+	List                       EnumEnum = "list"
+	Lock                       EnumEnum = "lock"
+	Long                       EnumEnum = "long"
+	Map                        EnumEnum = "map"
+	MetadataPropertyHandling   EnumEnum = "metadata_property_handling"
+	Module                     EnumEnum = "module"
+	Mutable                    EnumEnum = "mutable"
+	Mutating                   EnumEnum = "mutating"
+	Namespace                  EnumEnum = "namespace"
+	Native                     EnumEnum = "native"
+	New                        EnumEnum = "new"
+	Newtonsoft                 EnumEnum = "newtonsoft"
+	Nil                        EnumEnum = "nil"
+	No                         EnumEnum = "NO"
+	Noexcept                   EnumEnum = "noexcept"
+	Nonatomic                  EnumEnum = "nonatomic"
+	None                       EnumEnum = "none"
+	EnumNone                   EnumEnum = "None"
+	Nonlocal                   EnumEnum = "nonlocal"
+	Nonmutating                EnumEnum = "nonmutating"
+	NoSuchMethod               EnumEnum = "noSuchMethod"
+	Not                        EnumEnum = "not"
+	NotEq                      EnumEnum = "not_eq"
+	NSError                    EnumEnum = "NSError"
+	NSString                   EnumEnum = "NSString"
+	Null                       EnumEnum = "NULL"
+	EnumNull                   EnumEnum = "null"
+	Nullptr                    EnumEnum = "nullptr"
+	Number                     EnumEnum = "number"
+	Object                     EnumEnum = "object"
+	ObjectMapper               EnumEnum = "ObjectMapper"
+	Of                         EnumEnum = "of"
+	Oneway                     EnumEnum = "oneway"
+	Open                       EnumEnum = "open"
+	Operator                   EnumEnum = "operator"
+	Optional                   EnumEnum = "optional"
+	Or                         EnumEnum = "or"
+	OrEq                       EnumEnum = "or_eq"
+	Out                        EnumEnum = "out"
+	Override                   EnumEnum = "override"
+	Package                    EnumEnum = "package"
+	Params                     EnumEnum = "params"
+	Pass                       EnumEnum = "pass"
+	Port                       EnumEnum = "port"
+	Postfix                    EnumEnum = "postfix"
+	Precedence                 EnumEnum = "precedence"
+	Prefix                     EnumEnum = "prefix"
+	Print                      EnumEnum = "print"
+	Printf                     EnumEnum = "printf"
+	PrintMembers               EnumEnum = "printMembers"
+	Private                    EnumEnum = "private"
+	Protected                  EnumEnum = "protected"
+	Protocol                   EnumEnum = "Protocol"
+	EnumProtocol               EnumEnum = "protocol"
+	Public                     EnumEnum = "public"
+	Quicktype                  EnumEnum = "quicktype"
+	Raise                      EnumEnum = "raise"
+	Range                      EnumEnum = "range"
+	Readonly                   EnumEnum = "readonly"
+	Ref                        EnumEnum = "ref"
+	RegExp                     EnumEnum = "RegExp"
+	Register                   EnumEnum = "register"
+	ReinterpretCast            EnumEnum = "reinterpret_cast"
+	Repeat                     EnumEnum = "repeat"
+	Require                    EnumEnum = "require"
+	Required                   EnumEnum = "required"
+	Requires                   EnumEnum = "requires"
+	Restrict                   EnumEnum = "restrict"
+	Retain                     EnumEnum = "retain"
+	Rethrows                   EnumEnum = "rethrows"
+	Return                     EnumEnum = "return"
+	Right                      EnumEnum = "right"
+	RuntimeType                EnumEnum = "runtimeType"
+	S                          EnumEnum = "s"
+	Sbyte                      EnumEnum = "sbyte"
+	Sealed                     EnumEnum = "sealed"
+	Sel                        EnumEnum = "SEL"
+	Select                     EnumEnum = "select"
+	Self                       EnumEnum = "Self"
+	EnumSelf                   EnumEnum = "self"
+	Serialize                  EnumEnum = "serialize"
+	SerializerProvider         EnumEnum = "SerializerProvider"
+	Set                        EnumEnum = "set"
+	Short                      EnumEnum = "short"
+	Signed                     EnumEnum = "signed"
+	SimpleModule               EnumEnum = "SimpleModule"
+	Sizeof                     EnumEnum = "sizeof"
+	Stackalloc                 EnumEnum = "stackalloc"
+	Standards                  EnumEnum = "Standards"
+	Static                     EnumEnum = "static"
+	StaticAssert               EnumEnum = "static_assert"
+	StaticCast                 EnumEnum = "static_cast"
+	StdDeserializer            EnumEnum = "StdDeserializer"
+	StdSerializer              EnumEnum = "StdSerializer"
+	Strictfp                   EnumEnum = "strictfp"
+	String                     EnumEnum = "string"
+	Struct                     EnumEnum = "struct"
+	Subscript                  EnumEnum = "subscript"
+	Super                      EnumEnum = "super"
+	Switch                     EnumEnum = "switch"
+	Symbol                     EnumEnum = "symbol"
+	Synchronized               EnumEnum = "synchronized"
+	System                     EnumEnum = "system"
+	Template                   EnumEnum = "template"
+	Then                       EnumEnum = "then"
+	This                       EnumEnum = "this"
+	ThreadLocal                EnumEnum = "thread_local"
+	Throw                      EnumEnum = "throw"
+	Throws                     EnumEnum = "throws"
+	TimeOnly                   EnumEnum = "TimeOnly"
+	TimeOnlyConverter          EnumEnum = "TimeOnlyConverter"
+	ToJSON                     EnumEnum = "to_json"
+	EnumTopLevel               EnumEnum = "top_level"
+	ToString                   EnumEnum = "toString"
+	Transient                  EnumEnum = "transient"
+	True                       EnumEnum = "True"
+	EnumTrue                   EnumEnum = "true"
+	Try                        EnumEnum = "try"
+	Type                       EnumEnum = "Type"
+	EnumType                   EnumEnum = "type"
+	Typealias                  EnumEnum = "typealias"
+	Typedef                    EnumEnum = "typedef"
+	Typeid                     EnumEnum = "typeid"
+	Typename                   EnumEnum = "typename"
+	Typeof                     EnumEnum = "typeof"
+	Uint                       EnumEnum = "uint"
+	Ulong                      EnumEnum = "ulong"
+	Unchecked                  EnumEnum = "unchecked"
+	Undefined                  EnumEnum = "undefined"
+	Union                      EnumEnum = "union"
+	Unowned                    EnumEnum = "unowned"
+	Unsafe                     EnumEnum = "unsafe"
+	Unsigned                   EnumEnum = "unsigned"
+	Ushort                     EnumEnum = "ushort"
+	Using                      EnumEnum = "using"
+	Utf8JSONReader             EnumEnum = "Utf8JsonReader"
+	Utf8JSONWriter             EnumEnum = "Utf8JsonWriter"
+	UUID                       EnumEnum = "UUID"
+	Var                        EnumEnum = "var"
+	Virtual                    EnumEnum = "virtual"
+	Void                       EnumEnum = "void"
+	Volatile                   EnumEnum = "volatile"
+	WcharT                     EnumEnum = "wchar_t"
+	Weak                       EnumEnum = "weak"
+	Where                      EnumEnum = "where"
+	While                      EnumEnum = "while"
+	WillSet                    EnumEnum = "willSet"
+	With                       EnumEnum = "with"
+	Xor                        EnumEnum = "xor"
+	XorEq                      EnumEnum = "xor_eq"
+	Yes                        EnumEnum = "YES"
+	Yield                      EnumEnum = "yield"
+	Dummy                      EnumEnum = "dummy"
 )
 
 type invalidEnumEnum string
@@ -311,7 +352,7 @@ func (x *EnumEnum) UnmarshalJSON(data []byte) error {
 	var value string
 	if err := json.Unmarshal(data, &value); err != nil { return err }
 	switch EnumEnum(value) {
-	case Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, ASM, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBOOL, EnumBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, Date, DateParseHandling, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, Friend, From, FromJSON, Func, Function, Get, Global, Go, Goto, Guard, HasOwnProperty, ID, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, Iterable, Is, Jdec, Jenc, Jpipe, JSON, JSONConverter, JSONSerializer, JSONToken, JSONWriter, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, Not, NotEq, NSString, Null, EnumNull, Nullptr, Number, Object, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, Set, Short, Signed, Sizeof, Stackalloc, Static, StaticAssert, StaticCast, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, ToJSON, EnumTopLevel, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy: *x = EnumEnum(value); return nil
+	case Empty, Bool, Complex, Imaginery, Abstract, Alignas, Alignof, And, AndEq, Any, EnumAny, Array, As, ASM, Assert, Associatedtype, Associativity, Async, Atomic, AtomicCancel, AtomicCommit, AtomicNoexcept, Auto, Await, Base, Bitand, Bitor, EnumBOOL, EnumBool, Boolean, Break, Bycopy, Byref, Byte, Case, Catch, Chan, Char, Char16T, Char32T, Checked, Class, EnumClass, Clone, CoAwait, CoReturn, CoYield, Compl, Concept, Console, Const, ConstCast, Constexpr, Constructor, Continue, Convenience, Convert, Converter, CultureInfo, Date, DateParseHandling, DateFormatter, DateOnly, DateOnlyConverter, DateTime, DateTimeStyles, Debugger, Decimal, Declare, Decltype, DecodeString, Def, Default, Defer, Deinit, Del, Delegate, Delete, Dict, Dictionary, DidSet, Do, Double, Dynamic, DynamicCast, Elif, Else, EncodeQuickType, Enum, EnumValues, EqualityContract, Event, Except, Exception, Explicit, Export, Exposing, Extends, Extension, Extern, Fallthrough, False, EnumFalse, Fileprivate, Final, Finally, Fixed, Float, For, Foreach, FormatException, Friend, From, FromJSON, Func, Function, Get, Global, Go, Goto, Guard, HashCode, HasOwnProperty, ID, If, Imp, Implements, Implicit, Import, In, Indirect, Infix, Init, Inline, Inout, Instanceof, Int, Interface, Internal, ISODateTimeOffsetConverter, Iterable, Is, Jdec, Jenc, Jpipe, JSON, JSONConverter, JSONSerializer, JSONToken, JSONWriter, JSONAny, JSONCodingKey, JSONDecoder, JSONEncoder, JSONException, JSONGenerator, JSONNode, JSONNull, JSONParser, JSONReader, JSONTokenType, Lambda, Lazy, Left, Let, List, Lock, Long, Map, MetadataPropertyHandling, Module, Mutable, Mutating, Namespace, Native, New, Newtonsoft, Nil, No, Noexcept, Nonatomic, None, EnumNone, Nonlocal, Nonmutating, NoSuchMethod, Not, NotEq, NSError, NSString, Null, EnumNull, Nullptr, Number, Object, ObjectMapper, Of, Oneway, Open, Operator, Optional, Or, OrEq, Out, Override, Package, Params, Pass, Port, Postfix, Precedence, Prefix, Print, Printf, PrintMembers, Private, Protected, Protocol, EnumProtocol, Public, Quicktype, Raise, Range, Readonly, Ref, RegExp, Register, ReinterpretCast, Repeat, Require, Required, Requires, Restrict, Retain, Rethrows, Return, Right, RuntimeType, S, Sbyte, Sealed, Sel, Select, Self, EnumSelf, Serialize, SerializerProvider, Set, Short, Signed, SimpleModule, Sizeof, Stackalloc, Standards, Static, StaticAssert, StaticCast, StdDeserializer, StdSerializer, Strictfp, String, Struct, Subscript, Super, Switch, Symbol, Synchronized, System, Template, Then, This, ThreadLocal, Throw, Throws, TimeOnly, TimeOnlyConverter, ToJSON, EnumTopLevel, ToString, Transient, True, EnumTrue, Try, Type, EnumType, Typealias, Typedef, Typeid, Typename, Typeof, Uint, Ulong, Unchecked, Undefined, Union, Unowned, Unsafe, Unsigned, Ushort, Using, Utf8JSONReader, Utf8JSONWriter, UUID, Var, Virtual, Void, Volatile, WcharT, Weak, Where, While, WillSet, With, Xor, XorEq, Yes, Yield, Dummy: *x = EnumEnum(value); return nil
 	}
 	return invalidEnumEnum(value)
 }
diff --git a/base/schema-golang/test/inputs/schema/keyword-unions.schema/default/quicktype.go b/head/schema-golang/test/inputs/schema/keyword-unions.schema/default/quicktype.go
index 11adc3d..8a7d5d6 100644
--- a/base/schema-golang/test/inputs/schema/keyword-unions.schema/default/quicktype.go
+++ b/head/schema-golang/test/inputs/schema/keyword-unions.schema/default/quicktype.go
@@ -22,283 +22,324 @@ func (r *TopLevel) Marshal() ([]byte, error) {
 }
 
 type TopLevel struct {
-	Empty                    *UnionUnion                    `json:"_"`
-	TopLevelBool             *UnionBool                     `json:"_Bool"`
-	Complex                  *UnionComplex                  `json:"_Complex"`
-	Imaginery                *UnionImaginery                `json:"_Imaginery"`
-	Abstract                 *UnionAbstract                 `json:"abstract"`
-	Alignas                  *UnionAlignas                  `json:"alignas"`
-	Alignof                  *UnionAlignof                  `json:"alignof"`
-	And                      *UnionAnd                      `json:"and"`
-	AndEq                    *UnionAndEq                    `json:"and_eq"`
-	TopLevelAny              *UnionAnyUnion                 `json:"any"`
-	Any                      *UnionAny                      `json:"Any"`
-	Array                    *UnionArray                    `json:"array"`
-	As                       *UnionAs                       `json:"as"`
-	ASM                      *UnionASM                      `json:"asm"`
-	Assert                   *UnionAssert                   `json:"assert"`
-	Associatedtype           *UnionAssociatedtype           `json:"associatedtype"`
-	Associativity            *UnionAssociativity            `json:"associativity"`
-	Async                    *UnionAsync                    `json:"async"`
-	Atomic                   *UnionAtomic                   `json:"atomic"`
-	AtomicCancel             *UnionAtomicCancel             `json:"atomic_cancel"`
-	AtomicCommit             *UnionAtomicCommit             `json:"atomic_commit"`
-	AtomicNoexcept           *UnionAtomicNoexcept           `json:"atomic_noexcept"`
-	Auto                     *UnionAuto                     `json:"auto"`
-	Await                    *UnionAwait                    `json:"await"`
-	Base                     *UnionBase                     `json:"base"`
-	Bitand                   *UnionBitand                   `json:"bitand"`
-	Bitor                    *UnionBitor                    `json:"bitor"`
-	Bool                     *UnionBOOL                     `json:"BOOL"`
-	PurpleBool               *UnionBoolUnion                `json:"bool"`
-	Boolean                  *UnionBoolean                  `json:"boolean"`
-	Break                    *UnionBreak                    `json:"break"`
-	Bycopy                   *UnionBycopy                   `json:"bycopy"`
-	Byref                    *UnionByref                    `json:"byref"`
-	Byte                     *UnionByte                     `json:"byte"`
-	Case                     *UnionCase                     `json:"case"`
-	Catch                    *UnionCatch                    `json:"catch"`
-	Chan                     *UnionChan                     `json:"chan"`
-	Char                     *UnionChar                     `json:"char"`
-	Char16T                  *UnionChar16T                  `json:"char16_t"`
-	Char32T                  *UnionChar32T                  `json:"char32_t"`
-	Checked                  *UnionChecked                  `json:"checked"`
-	TopLevelClass            *UnionClassUnion               `json:"class"`
-	Class                    *UnionClass                    `json:"Class"`
-	CoAwait                  *UnionCoAwait                  `json:"co_await"`
-	CoReturn                 *UnionCoReturn                 `json:"co_return"`
-	CoYield                  *UnionCoYield                  `json:"co_yield"`
-	Compl                    *UnionCompl                    `json:"compl"`
-	Concept                  *UnionConcept                  `json:"concept"`
-	Console                  *UnionConsole                  `json:"console"`
-	Const                    *UnionConst                    `json:"const"`
-	ConstCast                *UnionConstCast                `json:"const_cast"`
-	Constexpr                *UnionConstexpr                `json:"constexpr"`
-	Constructor              *UnionConstructor              `json:"constructor"`
-	Continue                 *UnionContinue                 `json:"continue"`
-	Convenience              *UnionConvenience              `json:"convenience"`
-	Convert                  *UnionConvert                  `json:"convert"`
-	Converter                *UnionConverter                `json:"converter"`
-	Date                     *UnionDate                     `json:"date"`
-	DateParseHandling        *UnionDateParseHandling        `json:"date_parse_handling"`
-	Debugger                 *UnionDebugger                 `json:"debugger"`
-	Decimal                  *UnionDecimal                  `json:"decimal"`
-	Declare                  *UnionDeclare                  `json:"declare"`
-	Decltype                 *UnionDecltype                 `json:"decltype"`
-	DecodeString             *UnionDecodeString             `json:"decode_string"`
-	Def                      *UnionDef                      `json:"def"`
-	Default                  *UnionDefault                  `json:"default"`
-	Defer                    *UnionDefer                    `json:"defer"`
-	Deinit                   *UnionDeinit                   `json:"deinit"`
-	Del                      *UnionDel                      `json:"del"`
-	Delegate                 *UnionDelegate                 `json:"delegate"`
-	Delete                   *UnionDelete                   `json:"delete"`
-	Dict                     *UnionDict                     `json:"dict"`
-	Dictionary               *UnionDictionary               `json:"dictionary"`
-	DidSet                   *UnionDidSet                   `json:"didSet"`
-	Do                       *UnionDo                       `json:"do"`
-	Double                   *UnionDouble                   `json:"double"`
-	Dummy                    *float64                       `json:"dummy,omitempty"`
-	Dynamic                  *UnionDynamic                  `json:"dynamic"`
-	DynamicCast              *UnionDynamicCast              `json:"dynamic_cast"`
-	Elif                     *UnionElif                     `json:"elif"`
-	Else                     *UnionElse                     `json:"else"`
-	EncodeQuickType          *UnionEncodeQuickType          `json:"encode_quick_type"`
-	Enum                     *UnionEnum                     `json:"enum"`
-	Event                    *UnionEvent                    `json:"event"`
-	Except                   *UnionExcept                   `json:"except"`
-	Exception                *UnionException                `json:"exception"`
-	Explicit                 *UnionExplicit                 `json:"explicit"`
-	Export                   *UnionExport                   `json:"export"`
-	Exposing                 *UnionExposing                 `json:"exposing"`
-	Extends                  *UnionExtends                  `json:"extends"`
-	Extension                *UnionExtension                `json:"extension"`
-	Extern                   *UnionExtern                   `json:"extern"`
-	Fallthrough              *UnionFallthrough              `json:"fallthrough"`
-	TopLevelFalse            *UnionFalseUnion               `json:"false"`
-	False                    *UnionFalse                    `json:"False"`
-	Fileprivate              *UnionFileprivate              `json:"fileprivate"`
-	Final                    *UnionFinal                    `json:"final"`
-	Finally                  *UnionFinally                  `json:"finally"`
-	Fixed                    *UnionFixed                    `json:"fixed"`
-	Float                    *UnionFloat                    `json:"float"`
-	For                      *UnionFor                      `json:"for"`
-	Foreach                  *UnionForeach                  `json:"foreach"`
-	Friend                   *UnionFriend                   `json:"friend"`
-	From                     *UnionFrom                     `json:"from"`
-	FromJSON                 *UnionFromJSON                 `json:"from_json"`
-	Func                     *UnionFunc                     `json:"func"`
-	Function                 *UnionFunction                 `json:"function"`
-	Get                      *UnionGet                      `json:"get"`
-	Global                   *UnionGlobal                   `json:"global"`
-	Go                       *UnionGo                       `json:"go"`
-	Goto                     *UnionGoto                     `json:"goto"`
-	Guard                    *UnionGuard                    `json:"guard"`
-	HasOwnProperty           *UnionHasOwnProperty           `json:"hasOwnProperty"`
-	ID                       *UnionID                       `json:"id"`
-	If                       *UnionIf                       `json:"if"`
-	Imp                      *UnionIMP                      `json:"IMP"`
-	Implements               *UnionImplements               `json:"implements"`
-	Implicit                 *UnionImplicit                 `json:"implicit"`
-	Import                   *UnionImport                   `json:"import"`
-	In                       *UnionIn                       `json:"in"`
-	Indirect                 *UnionIndirect                 `json:"indirect"`
-	Infix                    *UnionInfix                    `json:"infix"`
-	Init                     *UnionInit                     `json:"init"`
-	Inline                   *UnionInline                   `json:"inline"`
-	Inout                    *UnionInout                    `json:"inout"`
-	Instanceof               *UnionInstanceof               `json:"instanceof"`
-	Int                      *UnionInt                      `json:"int"`
-	Interface                *UnionInterface                `json:"interface"`
-	Internal                 *UnionInternal                 `json:"internal"`
-	Is                       *UnionIs                       `json:"is"`
-	Iterable                 *UnionIterable                 `json:"iterable"`
-	Jdec                     *UnionJdec                     `json:"jdec"`
-	Jenc                     *UnionJenc                     `json:"jenc"`
-	Jpipe                    *UnionJpipe                    `json:"jpipe"`
-	JSON                     *UnionJSON                     `json:"json"`
-	JSONConverter            *UnionJSONConverter            `json:"json_converter"`
-	JSONSerializer           *UnionJSONSerializer           `json:"json_serializer"`
-	JSONToken                *UnionJSONToken                `json:"json_token"`
-	JSONWriter               *UnionJSONWriter               `json:"json_writer"`
-	Lambda                   *UnionLambda                   `json:"lambda"`
-	Lazy                     *UnionLazy                     `json:"lazy"`
-	Left                     *UnionLeft                     `json:"left"`
-	Let                      *UnionLet                      `json:"let"`
-	List                     *UnionList                     `json:"list"`
-	Lock                     *UnionLock                     `json:"lock"`
-	Long                     *UnionLong                     `json:"long"`
-	Map                      *UnionMap                      `json:"map"`
-	MetadataPropertyHandling *UnionMetadataPropertyHandling `json:"metadata_property_handling"`
-	Module                   *UnionModule                   `json:"module"`
-	Mutable                  *UnionMutable                  `json:"mutable"`
-	Mutating                 *UnionMutating                 `json:"mutating"`
-	Namespace                *UnionNamespace                `json:"namespace"`
-	Native                   *UnionNative                   `json:"native"`
-	New                      *UnionNew                      `json:"new"`
-	Newtonsoft               *UnionNewtonsoft               `json:"newtonsoft"`
-	Nil                      *UnionNil                      `json:"nil"`
-	No                       *UnionNO                       `json:"NO"`
-	Noexcept                 *UnionNoexcept                 `json:"noexcept"`
-	Nonatomic                *UnionNonatomic                `json:"nonatomic"`
-	TopLevelNone             *UnionNoneUnion                `json:"none"`
-	None                     *UnionNone                     `json:"None"`
-	Nonlocal                 *UnionNonlocal                 `json:"nonlocal"`
-	Nonmutating              *UnionNonmutating              `json:"nonmutating"`
-	Not                      *UnionNot                      `json:"not"`
-	NotEq                    *UnionNotEq                    `json:"not_eq"`
-	NSString                 *UnionNSString                 `json:"NSString"`
-	Null                     *UnionNULL                     `json:"NULL"`
-	TopLevelNull             *UnionNull                     `json:"null"`
-	Nullptr                  *UnionNullptr                  `json:"nullptr"`
-	Number                   *UnionNumber                   `json:"number"`
-	Object                   *UnionObject                   `json:"object"`
-	Of                       *UnionOf                       `json:"of"`
-	Oneway                   *UnionOneway                   `json:"oneway"`
-	Open                     *UnionOpen                     `json:"open"`
-	Operator                 *UnionOperator                 `json:"operator"`
-	Optional                 *UnionOptional                 `json:"optional"`
-	Or                       *UnionOr                       `json:"or"`
-	OrEq                     *UnionOrEq                     `json:"or_eq"`
-	Out                      *UnionOut                      `json:"out"`
-	Override                 *UnionOverride                 `json:"override"`
-	Package                  *UnionPackage                  `json:"package"`
-	Params                   *UnionParams                   `json:"params"`
-	Pass                     *UnionPass                     `json:"pass"`
-	Port                     *UnionPort                     `json:"port"`
-	Postfix                  *UnionPostfix                  `json:"postfix"`
-	Precedence               *UnionPrecedence               `json:"precedence"`
-	Prefix                   *UnionPrefix                   `json:"prefix"`
-	Print                    *UnionPrint                    `json:"print"`
-	Printf                   *UnionPrintf                   `json:"printf"`
-	Private                  *UnionPrivate                  `json:"private"`
-	Protected                *UnionProtected                `json:"protected"`
-	Protocol                 *UnionProtocol                 `json:"Protocol"`
-	TopLevelProtocol         *UnionProtocolUnion            `json:"protocol"`
-	Public                   *UnionPublic                   `json:"public"`
-	Quicktype                *UnionQuicktype                `json:"quicktype"`
-	Raise                    *UnionRaise                    `json:"raise"`
-	Range                    *UnionRange                    `json:"range"`
-	Readonly                 *UnionReadonly                 `json:"readonly"`
-	Ref                      *UnionRef                      `json:"ref"`
-	Register                 *UnionRegister                 `json:"register"`
-	ReinterpretCast          *UnionReinterpretCast          `json:"reinterpret_cast"`
-	Repeat                   *UnionRepeat                   `json:"repeat"`
-	Require                  *UnionRequire                  `json:"require"`
-	Required                 *UnionRequired                 `json:"required"`
-	Requires                 *UnionRequires                 `json:"requires"`
-	Restrict                 *UnionRestrict                 `json:"restrict"`
-	Retain                   *UnionRetain                   `json:"retain"`
-	Rethrows                 *UnionRethrows                 `json:"rethrows"`
-	Return                   *UnionReturn                   `json:"return"`
-	Right                    *UnionRight                    `json:"right"`
-	Sbyte                    *UnionSbyte                    `json:"sbyte"`
-	Sealed                   *UnionSealed                   `json:"sealed"`
-	Sel                      *UnionSEL                      `json:"SEL"`
-	Select                   *UnionSelect                   `json:"select"`
-	Self                     *UnionSelf                     `json:"Self"`
-	TopLevelSelf             *UnionSelfUnion                `json:"self"`
-	Serialize                *UnionSerialize                `json:"serialize"`
-	Set                      *UnionSet                      `json:"set"`
-	Short                    *UnionShort                    `json:"short"`
-	Signed                   *UnionSigned                   `json:"signed"`
-	Sizeof                   *UnionSizeof                   `json:"sizeof"`
-	Stackalloc               *UnionStackalloc               `json:"stackalloc"`
-	Static                   *UnionStatic                   `json:"static"`
-	StaticAssert             *UnionStaticAssert             `json:"static_assert"`
-	StaticCast               *UnionStaticCast               `json:"static_cast"`
-	Strictfp                 *UnionStrictfp                 `json:"strictfp"`
-	String                   *UnionString                   `json:"string"`
-	Struct                   *UnionStruct                   `json:"struct"`
-	Subscript                *UnionSubscript                `json:"subscript"`
-	Super                    *UnionSuper                    `json:"super"`
-	Switch                   *UnionSwitch                   `json:"switch"`
-	Symbol                   *UnionSymbol                   `json:"symbol"`
-	Synchronized             *UnionSynchronized             `json:"synchronized"`
-	System                   *UnionSystem                   `json:"system"`
-	Template                 *UnionTemplate                 `json:"template"`
-	Then                     *UnionThen                     `json:"then"`
-	This                     *UnionThis                     `json:"this"`
-	ThreadLocal              *UnionThreadLocal              `json:"thread_local"`
-	Throw                    *UnionThrow                    `json:"throw"`
-	Throws                   *UnionThrows                   `json:"throws"`
-	ToJSON                   *UnionToJSON                   `json:"to_json"`
-	TopLevel                 *UnionTopLevel                 `json:"top_level"`
-	Transient                *UnionTransient                `json:"transient"`
-	True                     *UnionTrue                     `json:"True"`
-	TopLevelTrue             *UnionTrueUnion                `json:"true"`
-	Try                      *UnionTry                      `json:"try"`
-	Type                     *UnionType                     `json:"Type"`
-	TopLevelType             *UnionTypeUnion                `json:"type"`
-	Typealias                *UnionTypealias                `json:"typealias"`
-	Typedef                  *UnionTypedef                  `json:"typedef"`
-	Typeid                   *UnionTypeid                   `json:"typeid"`
-	Typename                 *UnionTypename                 `json:"typename"`
-	Typeof                   *UnionTypeof                   `json:"typeof"`
-	Uint                     *UnionUint                     `json:"uint"`
-	Ulong                    *UnionUlong                    `json:"ulong"`
-	Unchecked                *UnionUnchecked                `json:"unchecked"`
-	Undefined                *UnionUndefined                `json:"undefined"`
-	Union                    *UnionUnionUnion               `json:"union"`
-	Unowned                  *UnionUnowned                  `json:"unowned"`
-	Unsafe                   *UnionUnsafe                   `json:"unsafe"`
-	Unsigned                 *UnionUnsigned                 `json:"unsigned"`
-	Ushort                   *UnionUshort                   `json:"ushort"`
-	Using                    *UnionUsing                    `json:"using"`
-	Var                      *UnionVar                      `json:"var"`
-	Virtual                  *UnionVirtual                  `json:"virtual"`
-	Void                     *UnionVoid                     `json:"void"`
-	Volatile                 *UnionVolatile                 `json:"volatile"`
-	WcharT                   *UnionWcharT                   `json:"wchar_t"`
-	Weak                     *UnionWeak                     `json:"weak"`
-	Where                    *UnionWhere                    `json:"where"`
-	While                    *UnionWhile                    `json:"while"`
-	WillSet                  *UnionWillSet                  `json:"willSet"`
-	With                     *UnionWith                     `json:"with"`
-	Xor                      *UnionXor                      `json:"xor"`
-	XorEq                    *UnionXorEq                    `json:"xor_eq"`
-	Yes                      *UnionYES                      `json:"YES"`
-	Yield                    *UnionYield                    `json:"yield"`
+	Empty                      *UnionUnion                      `json:"_"`
+	TopLevelBool               *UnionBool                       `json:"_Bool"`
+	Complex                    *UnionComplex                    `json:"_Complex"`
+	Imaginery                  *UnionImaginery                  `json:"_Imaginery"`
+	Abstract                   *UnionAbstract                   `json:"abstract"`
+	Alignas                    *UnionAlignas                    `json:"alignas"`
+	Alignof                    *UnionAlignof                    `json:"alignof"`
+	And                        *UnionAnd                        `json:"and"`
+	AndEq                      *UnionAndEq                      `json:"and_eq"`
+	TopLevelAny                *UnionAnyUnion                   `json:"any"`
+	Any                        *UnionAny                        `json:"Any"`
+	Array                      *UnionArray                      `json:"array"`
+	As                         *UnionAs                         `json:"as"`
+	ASM                        *UnionASM                        `json:"asm"`
+	Assert                     *UnionAssert                     `json:"assert"`
+	Associatedtype             *UnionAssociatedtype             `json:"associatedtype"`
+	Associativity              *UnionAssociativity              `json:"associativity"`
+	Async                      *UnionAsync                      `json:"async"`
+	Atomic                     *UnionAtomic                     `json:"atomic"`
+	AtomicCancel               *UnionAtomicCancel               `json:"atomic_cancel"`
+	AtomicCommit               *UnionAtomicCommit               `json:"atomic_commit"`
+	AtomicNoexcept             *UnionAtomicNoexcept             `json:"atomic_noexcept"`
+	Auto                       *UnionAuto                       `json:"auto"`
+	Await                      *UnionAwait                      `json:"await"`
+	Base                       *UnionBase                       `json:"base"`
+	Bitand                     *UnionBitand                     `json:"bitand"`
+	Bitor                      *UnionBitor                      `json:"bitor"`
+	Bool                       *UnionBOOL                       `json:"BOOL"`
+	PurpleBool                 *UnionBoolUnion                  `json:"bool"`
+	Boolean                    *UnionBoolean                    `json:"boolean"`
+	Break                      *UnionBreak                      `json:"break"`
+	Bycopy                     *UnionBycopy                     `json:"bycopy"`
+	Byref                      *UnionByref                      `json:"byref"`
+	Byte                       *UnionByte                       `json:"byte"`
+	Case                       *UnionCase                       `json:"case"`
+	Catch                      *UnionCatch                      `json:"catch"`
+	Chan                       *UnionChan                       `json:"chan"`
+	Char                       *UnionChar                       `json:"char"`
+	Char16T                    *UnionChar16T                    `json:"char16_t"`
+	Char32T                    *UnionChar32T                    `json:"char32_t"`
+	Checked                    *UnionChecked                    `json:"checked"`
+	TopLevelClass              *UnionClassUnion                 `json:"class"`
+	Class                      *UnionClass                      `json:"Class"`
+	Clone                      *UnionClone                      `json:"clone"`
+	CoAwait                    *UnionCoAwait                    `json:"co_await"`
+	CoReturn                   *UnionCoReturn                   `json:"co_return"`
+	CoYield                    *UnionCoYield                    `json:"co_yield"`
+	Compl                      *UnionCompl                      `json:"compl"`
+	Concept                    *UnionConcept                    `json:"concept"`
+	Console                    *UnionConsole                    `json:"console"`
+	Const                      *UnionConst                      `json:"const"`
+	ConstCast                  *UnionConstCast                  `json:"const_cast"`
+	Constexpr                  *UnionConstexpr                  `json:"constexpr"`
+	Constructor                *UnionConstructor                `json:"constructor"`
+	Continue                   *UnionContinue                   `json:"continue"`
+	Convenience                *UnionConvenience                `json:"convenience"`
+	Convert                    *UnionConvert                    `json:"convert"`
+	Converter                  *UnionConverter                  `json:"converter"`
+	CultureInfo                *UnionCultureInfo                `json:"CultureInfo"`
+	Date                       *UnionDate                       `json:"date"`
+	DateParseHandling          *UnionDateParseHandling          `json:"date_parse_handling"`
+	DateFormatter              *UnionDateFormatter              `json:"DateFormatter"`
+	DateOnly                   *UnionDateOnly                   `json:"DateOnly"`
+	DateOnlyConverter          *UnionDateOnlyConverter          `json:"DateOnlyConverter"`
+	DateTime                   *UnionDateTime                   `json:"DateTime"`
+	DateTimeStyles             *UnionDateTimeStyles             `json:"DateTimeStyles"`
+	Debugger                   *UnionDebugger                   `json:"debugger"`
+	Decimal                    *UnionDecimal                    `json:"decimal"`
+	Declare                    *UnionDeclare                    `json:"declare"`
+	Decltype                   *UnionDecltype                   `json:"decltype"`
+	DecodeString               *UnionDecodeString               `json:"decode_string"`
+	Def                        *UnionDef                        `json:"def"`
+	Default                    *UnionDefault                    `json:"default"`
+	Defer                      *UnionDefer                      `json:"defer"`
+	Deinit                     *UnionDeinit                     `json:"deinit"`
+	Del                        *UnionDel                        `json:"del"`
+	Delegate                   *UnionDelegate                   `json:"delegate"`
+	Delete                     *UnionDelete                     `json:"delete"`
+	Dict                       *UnionDict                       `json:"dict"`
+	Dictionary                 *UnionDictionary                 `json:"dictionary"`
+	DidSet                     *UnionDidSet                     `json:"didSet"`
+	Do                         *UnionDo                         `json:"do"`
+	Double                     *UnionDouble                     `json:"double"`
+	Dummy                      *float64                         `json:"dummy,omitempty"`
+	Dynamic                    *UnionDynamic                    `json:"dynamic"`
+	DynamicCast                *UnionDynamicCast                `json:"dynamic_cast"`
+	Elif                       *UnionElif                       `json:"elif"`
+	Else                       *UnionElse                       `json:"else"`
+	EncodeQuickType            *UnionEncodeQuickType            `json:"encode_quick_type"`
+	Enum                       *UnionEnum                       `json:"enum"`
+	EnumValues                 *UnionEnumValues                 `json:"EnumValues"`
+	EqualityContract           *UnionEqualityContract           `json:"equalityContract"`
+	Event                      *UnionEvent                      `json:"event"`
+	Except                     *UnionExcept                     `json:"except"`
+	Exception                  *UnionException                  `json:"exception"`
+	Explicit                   *UnionExplicit                   `json:"explicit"`
+	Export                     *UnionExport                     `json:"export"`
+	Exposing                   *UnionExposing                   `json:"exposing"`
+	Extends                    *UnionExtends                    `json:"extends"`
+	Extension                  *UnionExtension                  `json:"extension"`
+	Extern                     *UnionExtern                     `json:"extern"`
+	Fallthrough                *UnionFallthrough                `json:"fallthrough"`
+	TopLevelFalse              *UnionFalseUnion                 `json:"false"`
+	False                      *UnionFalse                      `json:"False"`
+	Fileprivate                *UnionFileprivate                `json:"fileprivate"`
+	Final                      *UnionFinal                      `json:"final"`
+	Finally                    *UnionFinally                    `json:"finally"`
+	Fixed                      *UnionFixed                      `json:"fixed"`
+	Float                      *UnionFloat                      `json:"float"`
+	For                        *UnionFor                        `json:"for"`
+	Foreach                    *UnionForeach                    `json:"foreach"`
+	FormatException            *UnionFormatException            `json:"FormatException"`
+	Friend                     *UnionFriend                     `json:"friend"`
+	From                       *UnionFrom                       `json:"from"`
+	FromJSON                   *UnionFromJSON                   `json:"from_json"`
+	Func                       *UnionFunc                       `json:"func"`
+	Function                   *UnionFunction                   `json:"function"`
+	Get                        *UnionGet                        `json:"get"`
+	Global                     *UnionGlobal                     `json:"global"`
+	Go                         *UnionGo                         `json:"go"`
+	Goto                       *UnionGoto                       `json:"goto"`
+	Guard                      *UnionGuard                      `json:"guard"`
+	HashCode                   *UnionHashCode                   `json:"hashCode"`
+	HasOwnProperty             *UnionHasOwnProperty             `json:"hasOwnProperty"`
+	ID                         *UnionID                         `json:"id"`
+	If                         *UnionIf                         `json:"if"`
+	Imp                        *UnionIMP                        `json:"IMP"`
+	Implements                 *UnionImplements                 `json:"implements"`
+	Implicit                   *UnionImplicit                   `json:"implicit"`
+	Import                     *UnionImport                     `json:"import"`
+	In                         *UnionIn                         `json:"in"`
+	Indirect                   *UnionIndirect                   `json:"indirect"`
+	Infix                      *UnionInfix                      `json:"infix"`
+	Init                       *UnionInit                       `json:"init"`
+	Inline                     *UnionInline                     `json:"inline"`
+	Inout                      *UnionInout                      `json:"inout"`
+	Instanceof                 *UnionInstanceof                 `json:"instanceof"`
+	Int                        *UnionInt                        `json:"int"`
+	Interface                  *UnionInterface                  `json:"interface"`
+	Internal                   *UnionInternal                   `json:"internal"`
+	Is                         *UnionIs                         `json:"is"`
+	ISODateTimeOffsetConverter *UnionISODateTimeOffsetConverter `json:"IsoDateTimeOffsetConverter"`
+	Iterable                   *UnionIterable                   `json:"iterable"`
+	Jdec                       *UnionJdec                       `json:"jdec"`
+	Jenc                       *UnionJenc                       `json:"jenc"`
+	Jpipe                      *UnionJpipe                      `json:"jpipe"`
+	JSON                       *UnionJSON                       `json:"json"`
+	JSONConverter              *UnionJSONConverter              `json:"json_converter"`
+	JSONSerializer             *UnionJSONSerializer             `json:"json_serializer"`
+	JSONToken                  *UnionJSONToken                  `json:"json_token"`
+	JSONWriter                 *UnionJSONWriter                 `json:"json_writer"`
+	JSONAny                    *UnionJSONAny                    `json:"JSONAny"`
+	JSONCodingKey              *UnionJSONCodingKey              `json:"JSONCodingKey"`
+	JSONDecoder                *UnionJSONDecoder                `json:"JSONDecoder"`
+	JSONEncoder                *UnionJSONEncoder                `json:"JSONEncoder"`
+	JSONException              *UnionJSONException              `json:"JsonException"`
+	JSONGenerator              *UnionJSONGenerator              `json:"JsonGenerator"`
+	JSONNode                   *UnionJSONNode                   `json:"JsonNode"`
+	JSONNull                   *UnionJSONNull                   `json:"JSONNull"`
+	JSONParser                 *UnionJSONParser                 `json:"JsonParser"`
+	JSONReader                 *UnionJSONReader                 `json:"JsonReader"`
+	JSONTokenType              *UnionJSONTokenType              `json:"JsonTokenType"`
+	Lambda                     *UnionLambda                     `json:"lambda"`
+	Lazy                       *UnionLazy                       `json:"lazy"`
+	Left                       *UnionLeft                       `json:"left"`
+	Let                        *UnionLet                        `json:"let"`
+	List                       *UnionList                       `json:"list"`
+	Lock                       *UnionLock                       `json:"lock"`
+	Long                       *UnionLong                       `json:"long"`
+	Map                        *UnionMap                        `json:"map"`
+	MetadataPropertyHandling   *UnionMetadataPropertyHandling   `json:"metadata_property_handling"`
+	Module                     *UnionModule                     `json:"module"`
+	Mutable                    *UnionMutable                    `json:"mutable"`
+	Mutating                   *UnionMutating                   `json:"mutating"`
+	Namespace                  *UnionNamespace                  `json:"namespace"`
+	Native                     *UnionNative                     `json:"native"`
+	New                        *UnionNew                        `json:"new"`
+	Newtonsoft                 *UnionNewtonsoft                 `json:"newtonsoft"`
+	Nil                        *UnionNil                        `json:"nil"`
+	No                         *UnionNO                         `json:"NO"`
+	Noexcept                   *UnionNoexcept                   `json:"noexcept"`
+	Nonatomic                  *UnionNonatomic                  `json:"nonatomic"`
+	TopLevelNone               *UnionNoneUnion                  `json:"none"`
+	None                       *UnionNone                       `json:"None"`
+	Nonlocal                   *UnionNonlocal                   `json:"nonlocal"`
+	Nonmutating                *UnionNonmutating                `json:"nonmutating"`
+	NoSuchMethod               *UnionNoSuchMethod               `json:"noSuchMethod"`
+	Not                        *UnionNot                        `json:"not"`
+	NotEq                      *UnionNotEq                      `json:"not_eq"`
+	NSError                    *UnionNSError                    `json:"NSError"`
+	NSString                   *UnionNSString                   `json:"NSString"`
+	Null                       *UnionNULL                       `json:"NULL"`
+	TopLevelNull               *UnionNull                       `json:"null"`
+	Nullptr                    *UnionNullptr                    `json:"nullptr"`
+	Number                     *UnionNumber                     `json:"number"`
+	Object                     *UnionObject                     `json:"object"`
+	ObjectMapper               *UnionObjectMapper               `json:"ObjectMapper"`
+	Of                         *UnionOf                         `json:"of"`
+	Oneway                     *UnionOneway                     `json:"oneway"`
+	Open                       *UnionOpen                       `json:"open"`
+	Operator                   *UnionOperator                   `json:"operator"`
+	Optional                   *UnionOptional                   `json:"optional"`
+	Or                         *UnionOr                         `json:"or"`
+	OrEq                       *UnionOrEq                       `json:"or_eq"`
+	Out                        *UnionOut                        `json:"out"`
+	Override                   *UnionOverride                   `json:"override"`
+	Package                    *UnionPackage                    `json:"package"`
+	Params                     *UnionParams                     `json:"params"`
+	Pass                       *UnionPass                       `json:"pass"`
+	Port                       *UnionPort                       `json:"port"`
+	Postfix                    *UnionPostfix                    `json:"postfix"`
+	Precedence                 *UnionPrecedence                 `json:"precedence"`
+	Prefix                     *UnionPrefix                     `json:"prefix"`
+	Print                      *UnionPrint                      `json:"print"`
+	Printf                     *UnionPrintf                     `json:"printf"`
+	PrintMembers               *UnionPrintMembers               `json:"printMembers"`
+	Private                    *UnionPrivate                    `json:"private"`
+	Protected                  *UnionProtected                  `json:"protected"`
+	Protocol                   *UnionProtocol                   `json:"Protocol"`
+	TopLevelProtocol           *UnionProtocolUnion              `json:"protocol"`
+	Public                     *UnionPublic                     `json:"public"`
+	Quicktype                  *UnionQuicktype                  `json:"quicktype"`
+	Raise                      *UnionRaise                      `json:"raise"`
+	Range                      *UnionRange                      `json:"range"`
+	Readonly                   *UnionReadonly                   `json:"readonly"`
+	Ref                        *UnionRef                        `json:"ref"`
+	RegExp                     *UnionRegExp                     `json:"RegExp"`
+	Register                   *UnionRegister                   `json:"register"`
+	ReinterpretCast            *UnionReinterpretCast            `json:"reinterpret_cast"`
+	Repeat                     *UnionRepeat                     `json:"repeat"`
+	Require                    *UnionRequire                    `json:"require"`
+	Required                   *UnionRequired                   `json:"required"`
+	Requires                   *UnionRequires                   `json:"requires"`
+	Restrict                   *UnionRestrict                   `json:"restrict"`
+	Retain                     *UnionRetain                     `json:"retain"`
+	Rethrows                   *UnionRethrows                   `json:"rethrows"`
+	Return                     *UnionReturn                     `json:"return"`
+	Right                      *UnionRight                      `json:"right"`
+	RuntimeType                *UnionRuntimeType                `json:"runtimeType"`
+	S                          *UnionS                          `json:"s"`
+	Sbyte                      *UnionSbyte                      `json:"sbyte"`
+	Sealed                     *UnionSealed                     `json:"sealed"`
+	Sel                        *UnionSEL                        `json:"SEL"`
+	Select                     *UnionSelect                     `json:"select"`
+	Self                       *UnionSelf                       `json:"Self"`
+	TopLevelSelf               *UnionSelfUnion                  `json:"self"`
+	Serialize                  *UnionSerialize                  `json:"serialize"`
+	SerializerProvider         *UnionSerializerProvider         `json:"SerializerProvider"`
+	Set                        *UnionSet                        `json:"set"`
+	Short                      *UnionShort                      `json:"short"`
+	Signed                     *UnionSigned                     `json:"signed"`
+	SimpleModule               *UnionSimpleModule               `json:"SimpleModule"`
+	Sizeof                     *UnionSizeof                     `json:"sizeof"`
+	Stackalloc                 *UnionStackalloc                 `json:"stackalloc"`
+	Standards                  *UnionStandards                  `json:"Standards"`
+	Static                     *UnionStatic                     `json:"static"`
+	StaticAssert               *UnionStaticAssert               `json:"static_assert"`
+	StaticCast                 *UnionStaticCast                 `json:"static_cast"`
+	StdDeserializer            *UnionStdDeserializer            `json:"StdDeserializer"`
+	StdSerializer              *UnionStdSerializer              `json:"StdSerializer"`
+	Strictfp                   *UnionStrictfp                   `json:"strictfp"`
+	String                     *UnionString                     `json:"string"`
+	Struct                     *UnionStruct                     `json:"struct"`
+	Subscript                  *UnionSubscript                  `json:"subscript"`
+	Super                      *UnionSuper                      `json:"super"`
+	Switch                     *UnionSwitch                     `json:"switch"`
+	Symbol                     *UnionSymbol                     `json:"symbol"`
+	Synchronized               *UnionSynchronized               `json:"synchronized"`
+	System                     *UnionSystem                     `json:"system"`
+	Template                   *UnionTemplate                   `json:"template"`
+	Then                       *UnionThen                       `json:"then"`
+	This                       *UnionThis                       `json:"this"`
+	ThreadLocal                *UnionThreadLocal                `json:"thread_local"`
+	Throw                      *UnionThrow                      `json:"throw"`
+	Throws                     *UnionThrows                     `json:"throws"`
+	TimeOnly                   *UnionTimeOnly                   `json:"TimeOnly"`
+	TimeOnlyConverter          *UnionTimeOnlyConverter          `json:"TimeOnlyConverter"`
+	ToJSON                     *UnionToJSON                     `json:"to_json"`
+	TopLevel                   *UnionTopLevel                   `json:"top_level"`
+	ToString                   *UnionToString                   `json:"toString"`
+	Transient                  *UnionTransient                  `json:"transient"`
+	True                       *UnionTrue                       `json:"True"`
+	TopLevelTrue               *UnionTrueUnion                  `json:"true"`
+	Try                        *UnionTry                        `json:"try"`
+	Type                       *UnionType                       `json:"Type"`
+	TopLevelType               *UnionTypeUnion                  `json:"type"`
+	Typealias                  *UnionTypealias                  `json:"typealias"`
+	Typedef                    *UnionTypedef                    `json:"typedef"`
+	Typeid                     *UnionTypeid                     `json:"typeid"`
+	Typename                   *UnionTypename                   `json:"typename"`
+	Typeof                     *UnionTypeof                     `json:"typeof"`
+	Uint                       *UnionUint                       `json:"uint"`
+	Ulong                      *UnionUlong                      `json:"ulong"`
+	Unchecked                  *UnionUnchecked                  `json:"unchecked"`
+	Undefined                  *UnionUndefined                  `json:"undefined"`
+	Union                      *UnionUnionUnion                 `json:"union"`
+	Unowned                    *UnionUnowned                    `json:"unowned"`
+	Unsafe                     *UnionUnsafe                     `json:"unsafe"`
+	Unsigned                   *UnionUnsigned                   `json:"unsigned"`
+	Ushort                     *UnionUshort                     `json:"ushort"`
+	Using                      *UnionUsing                      `json:"using"`
+	Utf8JSONReader             *UnionUtf8JSONReader             `json:"Utf8JsonReader"`
+	Utf8JSONWriter             *UnionUtf8JSONWriter             `json:"Utf8JsonWriter"`
+	UUID                       *UnionUUID                       `json:"UUID"`
+	Var                        *UnionVar                        `json:"var"`
+	Virtual                    *UnionVirtual                    `json:"virtual"`
+	Void                       *UnionVoid                       `json:"void"`
+	Volatile                   *UnionVolatile                   `json:"volatile"`
+	WcharT                     *UnionWcharT                     `json:"wchar_t"`
+	Weak                       *UnionWeak                       `json:"weak"`
+	Where                      *UnionWhere                      `json:"where"`
+	While                      *UnionWhile                      `json:"while"`
+	WillSet                    *UnionWillSet                    `json:"willSet"`
+	With                       *UnionWith                       `json:"with"`
+	Xor                        *UnionXor                        `json:"xor"`
+	XorEq                      *UnionXorEq                      `json:"xor_eq"`
+	Yes                        *UnionYES                        `json:"YES"`
+	Yield                      *UnionYield                      `json:"yield"`
 }
 
 type ASM struct {
@@ -409,6 +450,9 @@ type Checked struct {
 type Class struct {
 }
 
+type Clone struct {
+}
+
 type CoAwait struct {
 }
 
@@ -454,12 +498,30 @@ type Convert struct {
 type Converter struct {
 }
 
+type CultureInfo struct {
+}
+
 type Date struct {
 }
 
+type DateFormatter struct {
+}
+
+type DateOnly struct {
+}
+
+type DateOnlyConverter struct {
+}
+
 type DateParseHandling struct {
 }
 
+type DateTime struct {
+}
+
+type DateTimeStyles struct {
+}
+
 type Debugger struct {
 }
 
@@ -532,6 +594,12 @@ type EncodeQuickType struct {
 type Enum struct {
 }
 
+type EnumValues struct {
+}
+
+type EqualityContract struct {
+}
+
 type Event struct {
 }
 
@@ -586,6 +654,9 @@ type For struct {
 type Foreach struct {
 }
 
+type FormatException struct {
+}
+
 type Friend struct {
 }
 
@@ -619,9 +690,15 @@ type Guard struct {
 type HasOwnProperty struct {
 }
 
+type HashCode struct {
+}
+
 type ID struct {
 }
 
+type ISODateTimeOffsetConverter struct {
+}
+
 type If struct {
 }
 
@@ -679,15 +756,48 @@ type Iterable struct {
 type JSON struct {
 }
 
+type JSONAny struct {
+}
+
+type JSONCodingKey struct {
+}
+
 type JSONConverter struct {
 }
 
+type JSONDecoder struct {
+}
+
+type JSONEncoder struct {
+}
+
+type JSONException struct {
+}
+
+type JSONGenerator struct {
+}
+
+type JSONNode struct {
+}
+
+type JSONNull struct {
+}
+
+type JSONParser struct {
+}
+
+type JSONReader struct {
+}
+
 type JSONSerializer struct {
 }
 
 type JSONToken struct {
 }
 
+type JSONTokenType struct {
+}
+
 type JSONWriter struct {
 }
 
@@ -736,6 +846,9 @@ type Mutable struct {
 type Mutating struct {
 }
 
+type NSError struct {
+}
+
 type NSString struct {
 }
 
@@ -757,6 +870,9 @@ type Nil struct {
 type No struct {
 }
 
+type NoSuchMethod struct {
+}
+
 type Noexcept struct {
 }
 
@@ -790,6 +906,9 @@ type Number struct {
 type Object struct {
 }
 
+type ObjectMapper struct {
+}
+
 type Of struct {
 }
 
@@ -841,6 +960,9 @@ type Prefix struct {
 type Print struct {
 }
 
+type PrintMembers struct {
+}
+
 type Printf struct {
 }
 
@@ -874,6 +996,9 @@ type Readonly struct {
 type Ref struct {
 }
 
+type RegExp struct {
+}
+
 type Register struct {
 }
 
@@ -907,6 +1032,12 @@ type Return struct {
 type Right struct {
 }
 
+type RuntimeType struct {
+}
+
+type S struct {
+}
+
 type Sbyte struct {
 }
 
@@ -925,6 +1056,9 @@ type Self struct {
 type Serialize struct {
 }
 
+type SerializerProvider struct {
+}
+
 type Set struct {
 }
 
@@ -934,12 +1068,18 @@ type Short struct {
 type Signed struct {
 }
 
+type SimpleModule struct {
+}
+
 type Sizeof struct {
 }
 
 type Stackalloc struct {
 }
 
+type Standards struct {
+}
+
 type Static struct {
 }
 
@@ -949,6 +1089,12 @@ type StaticAssert struct {
 type StaticCast struct {
 }
 
+type StdDeserializer struct {
+}
+
+type StdSerializer struct {
+}
+
 type Strictfp struct {
 }
 
@@ -994,9 +1140,18 @@ type Throw struct {
 type Throws struct {
 }
 
+type TimeOnly struct {
+}
+
+type TimeOnlyConverter struct {
+}
+
 type ToJSON struct {
 }
 
+type ToString struct {
+}
+
 type TopLevelClass struct {
 }
 
@@ -1057,6 +1212,9 @@ type Typename struct {
 type Typeof struct {
 }
 
+type UUID struct {
+}
+
 type Uint struct {
 }
 
@@ -1087,6 +1245,12 @@ type Ushort struct {
 type Using struct {
 }
 
+type Utf8JSONReader struct {
+}
+
+type Utf8JSONWriter struct {
+}
+
 type Var struct {
 }
 
@@ -1921,6 +2085,28 @@ func (x *UnionClass) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Class != nil, x.Class, false, nil, false, nil, false)
 }
 
+type UnionClone struct {
+	Clone  *Clone
+	Double *float64
+}
+
+func (x *UnionClone) UnmarshalJSON(data []byte) error {
+	x.Clone = nil
+	var c Clone
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.Clone = &c
+	}
+	return nil
+}
+
+func (x *UnionClone) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Clone != nil, x.Clone, false, nil, false, nil, false)
+}
+
 type UnionCoAwait struct {
 	CoAwait *CoAwait
 	Double  *float64
@@ -2251,6 +2437,28 @@ func (x *UnionConverter) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Converter != nil, x.Converter, false, nil, false, nil, false)
 }
 
+type UnionCultureInfo struct {
+	CultureInfo *CultureInfo
+	Double      *float64
+}
+
+func (x *UnionCultureInfo) UnmarshalJSON(data []byte) error {
+	x.CultureInfo = nil
+	var c CultureInfo
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.CultureInfo = &c
+	}
+	return nil
+}
+
+func (x *UnionCultureInfo) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.CultureInfo != nil, x.CultureInfo, false, nil, false, nil, false)
+}
+
 type UnionDate struct {
 	Date   *Date
 	Double *float64
@@ -2273,6 +2481,72 @@ func (x *UnionDate) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Date != nil, x.Date, false, nil, false, nil, false)
 }
 
+type UnionDateFormatter struct {
+	DateFormatter *DateFormatter
+	Double        *float64
+}
+
+func (x *UnionDateFormatter) UnmarshalJSON(data []byte) error {
+	x.DateFormatter = nil
+	var c DateFormatter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.DateFormatter = &c
+	}
+	return nil
+}
+
+func (x *UnionDateFormatter) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateFormatter != nil, x.DateFormatter, false, nil, false, nil, false)
+}
+
+type UnionDateOnly struct {
+	DateOnly *DateOnly
+	Double   *float64
+}
+
+func (x *UnionDateOnly) UnmarshalJSON(data []byte) error {
+	x.DateOnly = nil
+	var c DateOnly
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.DateOnly = &c
+	}
+	return nil
+}
+
+func (x *UnionDateOnly) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateOnly != nil, x.DateOnly, false, nil, false, nil, false)
+}
+
+type UnionDateOnlyConverter struct {
+	DateOnlyConverter *DateOnlyConverter
+	Double            *float64
+}
+
+func (x *UnionDateOnlyConverter) UnmarshalJSON(data []byte) error {
+	x.DateOnlyConverter = nil
+	var c DateOnlyConverter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.DateOnlyConverter = &c
+	}
+	return nil
+}
+
+func (x *UnionDateOnlyConverter) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateOnlyConverter != nil, x.DateOnlyConverter, false, nil, false, nil, false)
+}
+
 type UnionDateParseHandling struct {
 	DateParseHandling *DateParseHandling
 	Double            *float64
@@ -2295,6 +2569,50 @@ func (x *UnionDateParseHandling) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateParseHandling != nil, x.DateParseHandling, false, nil, false, nil, false)
 }
 
+type UnionDateTime struct {
+	DateTime *DateTime
+	Double   *float64
+}
+
+func (x *UnionDateTime) UnmarshalJSON(data []byte) error {
+	x.DateTime = nil
+	var c DateTime
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.DateTime = &c
+	}
+	return nil
+}
+
+func (x *UnionDateTime) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateTime != nil, x.DateTime, false, nil, false, nil, false)
+}
+
+type UnionDateTimeStyles struct {
+	DateTimeStyles *DateTimeStyles
+	Double         *float64
+}
+
+func (x *UnionDateTimeStyles) UnmarshalJSON(data []byte) error {
+	x.DateTimeStyles = nil
+	var c DateTimeStyles
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.DateTimeStyles = &c
+	}
+	return nil
+}
+
+func (x *UnionDateTimeStyles) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.DateTimeStyles != nil, x.DateTimeStyles, false, nil, false, nil, false)
+}
+
 type UnionDebugger struct {
 	Debugger *Debugger
 	Double   *float64
@@ -2823,6 +3141,50 @@ func (x *UnionEnum) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Enum != nil, x.Enum, false, nil, false, nil, false)
 }
 
+type UnionEnumValues struct {
+	Double     *float64
+	EnumValues *EnumValues
+}
+
+func (x *UnionEnumValues) UnmarshalJSON(data []byte) error {
+	x.EnumValues = nil
+	var c EnumValues
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.EnumValues = &c
+	}
+	return nil
+}
+
+func (x *UnionEnumValues) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.EnumValues != nil, x.EnumValues, false, nil, false, nil, false)
+}
+
+type UnionEqualityContract struct {
+	Double           *float64
+	EqualityContract *EqualityContract
+}
+
+func (x *UnionEqualityContract) UnmarshalJSON(data []byte) error {
+	x.EqualityContract = nil
+	var c EqualityContract
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.EqualityContract = &c
+	}
+	return nil
+}
+
+func (x *UnionEqualityContract) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.EqualityContract != nil, x.EqualityContract, false, nil, false, nil, false)
+}
+
 type UnionEvent struct {
 	Double *float64
 	Event  *Event
@@ -3219,6 +3581,28 @@ func (x *UnionForeach) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Foreach != nil, x.Foreach, false, nil, false, nil, false)
 }
 
+type UnionFormatException struct {
+	Double          *float64
+	FormatException *FormatException
+}
+
+func (x *UnionFormatException) UnmarshalJSON(data []byte) error {
+	x.FormatException = nil
+	var c FormatException
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.FormatException = &c
+	}
+	return nil
+}
+
+func (x *UnionFormatException) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.FormatException != nil, x.FormatException, false, nil, false, nil, false)
+}
+
 type UnionFriend struct {
 	Double *float64
 	Friend *Friend
@@ -3461,6 +3845,28 @@ func (x *UnionHasOwnProperty) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.HasOwnProperty != nil, x.HasOwnProperty, false, nil, false, nil, false)
 }
 
+type UnionHashCode struct {
+	Double   *float64
+	HashCode *HashCode
+}
+
+func (x *UnionHashCode) UnmarshalJSON(data []byte) error {
+	x.HashCode = nil
+	var c HashCode
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.HashCode = &c
+	}
+	return nil
+}
+
+func (x *UnionHashCode) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.HashCode != nil, x.HashCode, false, nil, false, nil, false)
+}
+
 type UnionID struct {
 	Double *float64
 	ID     *ID
@@ -3483,6 +3889,28 @@ func (x *UnionID) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.ID != nil, x.ID, false, nil, false, nil, false)
 }
 
+type UnionISODateTimeOffsetConverter struct {
+	Double                     *float64
+	ISODateTimeOffsetConverter *ISODateTimeOffsetConverter
+}
+
+func (x *UnionISODateTimeOffsetConverter) UnmarshalJSON(data []byte) error {
+	x.ISODateTimeOffsetConverter = nil
+	var c ISODateTimeOffsetConverter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.ISODateTimeOffsetConverter = &c
+	}
+	return nil
+}
+
+func (x *UnionISODateTimeOffsetConverter) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.ISODateTimeOffsetConverter != nil, x.ISODateTimeOffsetConverter, false, nil, false, nil, false)
+}
+
 type UnionIf struct {
 	Double *float64
 	If     *If
@@ -3901,20 +4329,64 @@ func (x *UnionJSON) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSON != nil, x.JSON, false, nil, false, nil, false)
 }
 
-type UnionJSONConverter struct {
-	Double        *float64
-	JSONConverter *JSONConverter
+type UnionJSONAny struct {
+	Double  *float64
+	JSONAny *JSONAny
 }
 
-func (x *UnionJSONConverter) UnmarshalJSON(data []byte) error {
-	x.JSONConverter = nil
-	var c JSONConverter
+func (x *UnionJSONAny) UnmarshalJSON(data []byte) error {
+	x.JSONAny = nil
+	var c JSONAny
 	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
 	if err != nil {
 		return err
 	}
 	if object {
-		x.JSONConverter = &c
+		x.JSONAny = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONAny) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONAny != nil, x.JSONAny, false, nil, false, nil, false)
+}
+
+type UnionJSONCodingKey struct {
+	Double        *float64
+	JSONCodingKey *JSONCodingKey
+}
+
+func (x *UnionJSONCodingKey) UnmarshalJSON(data []byte) error {
+	x.JSONCodingKey = nil
+	var c JSONCodingKey
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONCodingKey = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONCodingKey) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONCodingKey != nil, x.JSONCodingKey, false, nil, false, nil, false)
+}
+
+type UnionJSONConverter struct {
+	Double        *float64
+	JSONConverter *JSONConverter
+}
+
+func (x *UnionJSONConverter) UnmarshalJSON(data []byte) error {
+	x.JSONConverter = nil
+	var c JSONConverter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONConverter = &c
 	}
 	return nil
 }
@@ -3923,6 +4395,182 @@ func (x *UnionJSONConverter) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONConverter != nil, x.JSONConverter, false, nil, false, nil, false)
 }
 
+type UnionJSONDecoder struct {
+	Double      *float64
+	JSONDecoder *JSONDecoder
+}
+
+func (x *UnionJSONDecoder) UnmarshalJSON(data []byte) error {
+	x.JSONDecoder = nil
+	var c JSONDecoder
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONDecoder = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONDecoder) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONDecoder != nil, x.JSONDecoder, false, nil, false, nil, false)
+}
+
+type UnionJSONEncoder struct {
+	Double      *float64
+	JSONEncoder *JSONEncoder
+}
+
+func (x *UnionJSONEncoder) UnmarshalJSON(data []byte) error {
+	x.JSONEncoder = nil
+	var c JSONEncoder
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONEncoder = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONEncoder) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONEncoder != nil, x.JSONEncoder, false, nil, false, nil, false)
+}
+
+type UnionJSONException struct {
+	Double        *float64
+	JSONException *JSONException
+}
+
+func (x *UnionJSONException) UnmarshalJSON(data []byte) error {
+	x.JSONException = nil
+	var c JSONException
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONException = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONException) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONException != nil, x.JSONException, false, nil, false, nil, false)
+}
+
+type UnionJSONGenerator struct {
+	Double        *float64
+	JSONGenerator *JSONGenerator
+}
+
+func (x *UnionJSONGenerator) UnmarshalJSON(data []byte) error {
+	x.JSONGenerator = nil
+	var c JSONGenerator
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONGenerator = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONGenerator) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONGenerator != nil, x.JSONGenerator, false, nil, false, nil, false)
+}
+
+type UnionJSONNode struct {
+	Double   *float64
+	JSONNode *JSONNode
+}
+
+func (x *UnionJSONNode) UnmarshalJSON(data []byte) error {
+	x.JSONNode = nil
+	var c JSONNode
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONNode = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONNode) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONNode != nil, x.JSONNode, false, nil, false, nil, false)
+}
+
+type UnionJSONNull struct {
+	Double   *float64
+	JSONNull *JSONNull
+}
+
+func (x *UnionJSONNull) UnmarshalJSON(data []byte) error {
+	x.JSONNull = nil
+	var c JSONNull
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONNull = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONNull) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONNull != nil, x.JSONNull, false, nil, false, nil, false)
+}
+
+type UnionJSONParser struct {
+	Double     *float64
+	JSONParser *JSONParser
+}
+
+func (x *UnionJSONParser) UnmarshalJSON(data []byte) error {
+	x.JSONParser = nil
+	var c JSONParser
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONParser = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONParser) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONParser != nil, x.JSONParser, false, nil, false, nil, false)
+}
+
+type UnionJSONReader struct {
+	Double     *float64
+	JSONReader *JSONReader
+}
+
+func (x *UnionJSONReader) UnmarshalJSON(data []byte) error {
+	x.JSONReader = nil
+	var c JSONReader
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONReader = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONReader) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONReader != nil, x.JSONReader, false, nil, false, nil, false)
+}
+
 type UnionJSONSerializer struct {
 	Double         *float64
 	JSONSerializer *JSONSerializer
@@ -3967,6 +4615,28 @@ func (x *UnionJSONToken) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONToken != nil, x.JSONToken, false, nil, false, nil, false)
 }
 
+type UnionJSONTokenType struct {
+	Double        *float64
+	JSONTokenType *JSONTokenType
+}
+
+func (x *UnionJSONTokenType) UnmarshalJSON(data []byte) error {
+	x.JSONTokenType = nil
+	var c JSONTokenType
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.JSONTokenType = &c
+	}
+	return nil
+}
+
+func (x *UnionJSONTokenType) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.JSONTokenType != nil, x.JSONTokenType, false, nil, false, nil, false)
+}
+
 type UnionJSONWriter struct {
 	Double     *float64
 	JSONWriter *JSONWriter
@@ -4319,6 +4989,28 @@ func (x *UnionMutating) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Mutating != nil, x.Mutating, false, nil, false, nil, false)
 }
 
+type UnionNSError struct {
+	Double  *float64
+	NSError *NSError
+}
+
+func (x *UnionNSError) UnmarshalJSON(data []byte) error {
+	x.NSError = nil
+	var c NSError
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.NSError = &c
+	}
+	return nil
+}
+
+func (x *UnionNSError) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.NSError != nil, x.NSError, false, nil, false, nil, false)
+}
+
 type UnionNSString struct {
 	Double   *float64
 	NSString *NSString
@@ -4473,6 +5165,28 @@ func (x *UnionNO) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.No != nil, x.No, false, nil, false, nil, false)
 }
 
+type UnionNoSuchMethod struct {
+	Double       *float64
+	NoSuchMethod *NoSuchMethod
+}
+
+func (x *UnionNoSuchMethod) UnmarshalJSON(data []byte) error {
+	x.NoSuchMethod = nil
+	var c NoSuchMethod
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.NoSuchMethod = &c
+	}
+	return nil
+}
+
+func (x *UnionNoSuchMethod) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.NoSuchMethod != nil, x.NoSuchMethod, false, nil, false, nil, false)
+}
+
 type UnionNoexcept struct {
 	Double   *float64
 	Noexcept *Noexcept
@@ -4715,6 +5429,28 @@ func (x *UnionObject) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Object != nil, x.Object, false, nil, false, nil, false)
 }
 
+type UnionObjectMapper struct {
+	Double       *float64
+	ObjectMapper *ObjectMapper
+}
+
+func (x *UnionObjectMapper) UnmarshalJSON(data []byte) error {
+	x.ObjectMapper = nil
+	var c ObjectMapper
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.ObjectMapper = &c
+	}
+	return nil
+}
+
+func (x *UnionObjectMapper) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.ObjectMapper != nil, x.ObjectMapper, false, nil, false, nil, false)
+}
+
 type UnionOf struct {
 	Double *float64
 	Of     *Of
@@ -5089,6 +5825,28 @@ func (x *UnionPrint) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Print != nil, x.Print, false, nil, false, nil, false)
 }
 
+type UnionPrintMembers struct {
+	Double       *float64
+	PrintMembers *PrintMembers
+}
+
+func (x *UnionPrintMembers) UnmarshalJSON(data []byte) error {
+	x.PrintMembers = nil
+	var c PrintMembers
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.PrintMembers = &c
+	}
+	return nil
+}
+
+func (x *UnionPrintMembers) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.PrintMembers != nil, x.PrintMembers, false, nil, false, nil, false)
+}
+
 type UnionPrintf struct {
 	Double *float64
 	Printf *Printf
@@ -5331,6 +6089,28 @@ func (x *UnionRef) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Ref != nil, x.Ref, false, nil, false, nil, false)
 }
 
+type UnionRegExp struct {
+	Double *float64
+	RegExp *RegExp
+}
+
+func (x *UnionRegExp) UnmarshalJSON(data []byte) error {
+	x.RegExp = nil
+	var c RegExp
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.RegExp = &c
+	}
+	return nil
+}
+
+func (x *UnionRegExp) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.RegExp != nil, x.RegExp, false, nil, false, nil, false)
+}
+
 type UnionRegister struct {
 	Double   *float64
 	Register *Register
@@ -5573,6 +6353,50 @@ func (x *UnionRight) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Right != nil, x.Right, false, nil, false, nil, false)
 }
 
+type UnionRuntimeType struct {
+	Double      *float64
+	RuntimeType *RuntimeType
+}
+
+func (x *UnionRuntimeType) UnmarshalJSON(data []byte) error {
+	x.RuntimeType = nil
+	var c RuntimeType
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.RuntimeType = &c
+	}
+	return nil
+}
+
+func (x *UnionRuntimeType) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.RuntimeType != nil, x.RuntimeType, false, nil, false, nil, false)
+}
+
+type UnionS struct {
+	Double *float64
+	S      *S
+}
+
+func (x *UnionS) UnmarshalJSON(data []byte) error {
+	x.S = nil
+	var c S
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.S = &c
+	}
+	return nil
+}
+
+func (x *UnionS) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.S != nil, x.S, false, nil, false, nil, false)
+}
+
 type UnionSbyte struct {
 	Double *float64
 	Sbyte  *Sbyte
@@ -5705,6 +6529,28 @@ func (x *UnionSerialize) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Serialize != nil, x.Serialize, false, nil, false, nil, false)
 }
 
+type UnionSerializerProvider struct {
+	Double             *float64
+	SerializerProvider *SerializerProvider
+}
+
+func (x *UnionSerializerProvider) UnmarshalJSON(data []byte) error {
+	x.SerializerProvider = nil
+	var c SerializerProvider
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.SerializerProvider = &c
+	}
+	return nil
+}
+
+func (x *UnionSerializerProvider) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.SerializerProvider != nil, x.SerializerProvider, false, nil, false, nil, false)
+}
+
 type UnionSet struct {
 	Double *float64
 	Set    *Set
@@ -5771,6 +6617,28 @@ func (x *UnionSigned) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Signed != nil, x.Signed, false, nil, false, nil, false)
 }
 
+type UnionSimpleModule struct {
+	Double       *float64
+	SimpleModule *SimpleModule
+}
+
+func (x *UnionSimpleModule) UnmarshalJSON(data []byte) error {
+	x.SimpleModule = nil
+	var c SimpleModule
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.SimpleModule = &c
+	}
+	return nil
+}
+
+func (x *UnionSimpleModule) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.SimpleModule != nil, x.SimpleModule, false, nil, false, nil, false)
+}
+
 type UnionSizeof struct {
 	Double *float64
 	Sizeof *Sizeof
@@ -5815,6 +6683,28 @@ func (x *UnionStackalloc) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Stackalloc != nil, x.Stackalloc, false, nil, false, nil, false)
 }
 
+type UnionStandards struct {
+	Double    *float64
+	Standards *Standards
+}
+
+func (x *UnionStandards) UnmarshalJSON(data []byte) error {
+	x.Standards = nil
+	var c Standards
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.Standards = &c
+	}
+	return nil
+}
+
+func (x *UnionStandards) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Standards != nil, x.Standards, false, nil, false, nil, false)
+}
+
 type UnionStatic struct {
 	Double *float64
 	Static *Static
@@ -5881,6 +6771,50 @@ func (x *UnionStaticCast) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.StaticCast != nil, x.StaticCast, false, nil, false, nil, false)
 }
 
+type UnionStdDeserializer struct {
+	Double          *float64
+	StdDeserializer *StdDeserializer
+}
+
+func (x *UnionStdDeserializer) UnmarshalJSON(data []byte) error {
+	x.StdDeserializer = nil
+	var c StdDeserializer
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.StdDeserializer = &c
+	}
+	return nil
+}
+
+func (x *UnionStdDeserializer) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.StdDeserializer != nil, x.StdDeserializer, false, nil, false, nil, false)
+}
+
+type UnionStdSerializer struct {
+	Double        *float64
+	StdSerializer *StdSerializer
+}
+
+func (x *UnionStdSerializer) UnmarshalJSON(data []byte) error {
+	x.StdSerializer = nil
+	var c StdSerializer
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.StdSerializer = &c
+	}
+	return nil
+}
+
+func (x *UnionStdSerializer) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.StdSerializer != nil, x.StdSerializer, false, nil, false, nil, false)
+}
+
 type UnionStrictfp struct {
 	Double   *float64
 	Strictfp *Strictfp
@@ -6211,6 +7145,50 @@ func (x *UnionThrows) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Throws != nil, x.Throws, false, nil, false, nil, false)
 }
 
+type UnionTimeOnly struct {
+	Double   *float64
+	TimeOnly *TimeOnly
+}
+
+func (x *UnionTimeOnly) UnmarshalJSON(data []byte) error {
+	x.TimeOnly = nil
+	var c TimeOnly
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.TimeOnly = &c
+	}
+	return nil
+}
+
+func (x *UnionTimeOnly) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.TimeOnly != nil, x.TimeOnly, false, nil, false, nil, false)
+}
+
+type UnionTimeOnlyConverter struct {
+	Double            *float64
+	TimeOnlyConverter *TimeOnlyConverter
+}
+
+func (x *UnionTimeOnlyConverter) UnmarshalJSON(data []byte) error {
+	x.TimeOnlyConverter = nil
+	var c TimeOnlyConverter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.TimeOnlyConverter = &c
+	}
+	return nil
+}
+
+func (x *UnionTimeOnlyConverter) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.TimeOnlyConverter != nil, x.TimeOnlyConverter, false, nil, false, nil, false)
+}
+
 type UnionToJSON struct {
 	Double *float64
 	ToJSON *ToJSON
@@ -6233,6 +7211,28 @@ func (x *UnionToJSON) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.ToJSON != nil, x.ToJSON, false, nil, false, nil, false)
 }
 
+type UnionToString struct {
+	Double   *float64
+	ToString *ToString
+}
+
+func (x *UnionToString) UnmarshalJSON(data []byte) error {
+	x.ToString = nil
+	var c ToString
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.ToString = &c
+	}
+	return nil
+}
+
+func (x *UnionToString) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.ToString != nil, x.ToString, false, nil, false, nil, false)
+}
+
 type UnionTopLevel struct {
 	Double        *float64
 	TopLevelClass *TopLevelClass
@@ -6673,6 +7673,28 @@ func (x *UnionTypeof) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Typeof != nil, x.Typeof, false, nil, false, nil, false)
 }
 
+type UnionUUID struct {
+	Double *float64
+	UUID   *UUID
+}
+
+func (x *UnionUUID) UnmarshalJSON(data []byte) error {
+	x.UUID = nil
+	var c UUID
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.UUID = &c
+	}
+	return nil
+}
+
+func (x *UnionUUID) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.UUID != nil, x.UUID, false, nil, false, nil, false)
+}
+
 type UnionUint struct {
 	Double *float64
 	Uint   *Uint
@@ -6893,6 +7915,50 @@ func (x *UnionUsing) MarshalJSON() ([]byte, error) {
 	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Using != nil, x.Using, false, nil, false, nil, false)
 }
 
+type UnionUtf8JSONReader struct {
+	Double         *float64
+	Utf8JSONReader *Utf8JSONReader
+}
+
+func (x *UnionUtf8JSONReader) UnmarshalJSON(data []byte) error {
+	x.Utf8JSONReader = nil
+	var c Utf8JSONReader
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.Utf8JSONReader = &c
+	}
+	return nil
+}
+
+func (x *UnionUtf8JSONReader) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Utf8JSONReader != nil, x.Utf8JSONReader, false, nil, false, nil, false)
+}
+
+type UnionUtf8JSONWriter struct {
+	Double         *float64
+	Utf8JSONWriter *Utf8JSONWriter
+}
+
+func (x *UnionUtf8JSONWriter) UnmarshalJSON(data []byte) error {
+	x.Utf8JSONWriter = nil
+	var c Utf8JSONWriter
+	object, err := unmarshalUnion(data, nil, &x.Double, nil, nil, false, nil, true, &c, false, nil, false, nil, false)
+	if err != nil {
+		return err
+	}
+	if object {
+		x.Utf8JSONWriter = &c
+	}
+	return nil
+}
+
+func (x *UnionUtf8JSONWriter) MarshalJSON() ([]byte, error) {
+	return marshalUnion(nil, x.Double, nil, nil, false, nil, x.Utf8JSONWriter != nil, x.Utf8JSONWriter, false, nil, false, nil, false)
+}
+
 type UnionVar struct {
 	Double *float64
 	Var    *Var
diff --git a/base/schema-haskell/test/inputs/schema/keyword-enum.schema/default/QuickType.hs b/head/schema-haskell/test/inputs/schema/keyword-enum.schema/default/QuickType.hs
index 1a7c400..cfa1c62 100644
--- a/base/schema-haskell/test/inputs/schema/keyword-enum.schema/default/QuickType.hs
+++ b/head/schema-haskell/test/inputs/schema/keyword-enum.schema/default/QuickType.hs
@@ -61,6 +61,7 @@ data EnumEnum
     | CheckedEnumEnum
     | ClassEnumEnum
     | PurpleClassEnumEnum
+    | CloneEnumEnum
     | CoAwaitEnumEnum
     | CoReturnEnumEnum
     | CoYieldEnumEnum
@@ -75,8 +76,14 @@ data EnumEnum
     | ConvenienceEnumEnum
     | ConvertEnumEnum
     | ConverterEnumEnum
+    | CultureInfoEnumEnum
     | DateEnumEnum
     | DateParseHandlingEnumEnum
+    | DateFormatterEnumEnum
+    | DateOnlyEnumEnum
+    | DateOnlyConverterEnumEnum
+    | DateTimeEnumEnum
+    | DateTimeStylesEnumEnum
     | DebuggerEnumEnum
     | DecimalEnumEnum
     | DeclareEnumEnum
@@ -100,6 +107,8 @@ data EnumEnum
     | ElseEnumEnum
     | EncodeQuickTypeEnumEnum
     | EnumEnumEnum
+    | EnumValuesEnumEnum
+    | EqualityContractEnumEnum
     | EventEnumEnum
     | ExceptEnumEnum
     | ExceptionEnumEnum
@@ -119,6 +128,7 @@ data EnumEnum
     | FloatEnumEnum
     | ForEnumEnum
     | ForeachEnumEnum
+    | FormatExceptionEnumEnum
     | FriendEnumEnum
     | FromEnumEnum
     | FromJSONEnumEnum
@@ -129,6 +139,7 @@ data EnumEnum
     | GoEnumEnum
     | GotoEnumEnum
     | GuardEnumEnum
+    | HashCodeEnumEnum
     | HasOwnPropertyEnumEnum
     | IDEnumEnum
     | IfEnumEnum
@@ -146,6 +157,7 @@ data EnumEnum
     | IntEnumEnum
     | InterfaceEnumEnum
     | InternalEnumEnum
+    | ISODateTimeOffsetConverterEnumEnum
     | IterableEnumEnum
     | IsEnumEnum
     | JdecEnumEnum
@@ -156,6 +168,17 @@ data EnumEnum
     | JSONSerializerEnumEnum
     | JSONTokenEnumEnum
     | JSONWriterEnumEnum
+    | JSONAnyEnumEnum
+    | JSONCodingKeyEnumEnum
+    | JSONDecoderEnumEnum
+    | JSONEncoderEnumEnum
+    | JSONExceptionEnumEnum
+    | JSONGeneratorEnumEnum
+    | JSONNodeEnumEnum
+    | JSONNullEnumEnum
+    | JSONParserEnumEnum
+    | JSONReaderEnumEnum
+    | JSONTokenTypeEnumEnum
     | LambdaEnumEnum
     | LazyEnumEnum
     | LeftEnumEnum
@@ -180,14 +203,17 @@ data EnumEnum
     | PurpleNoneEnumEnum
     | NonlocalEnumEnum
     | NonmutatingEnumEnum
+    | NoSuchMethodEnumEnum
     | NotEnumEnum
     | NotEqEnumEnum
+    | NSErrorEnumEnum
     | NSStringEnumEnum
     | NULLEnumEnum
     | NullEnumEnum
     | NullptrEnumEnum
     | NumberEnumEnum
     | ObjectEnumEnum
+    | ObjectMapperEnumEnum
     | OfEnumEnum
     | OnewayEnumEnum
     | OpenEnumEnum
@@ -206,6 +232,7 @@ data EnumEnum
     | PrefixEnumEnum
     | PrintEnumEnum
     | PrintfEnumEnum
+    | PrintMembersEnumEnum
     | PrivateEnumEnum
     | ProtectedEnumEnum
     | ProtocolEnumEnum
@@ -216,6 +243,7 @@ data EnumEnum
     | RangeEnumEnum
     | ReadonlyEnumEnum
     | RefEnumEnum
+    | RegExpEnumEnum
     | RegisterEnumEnum
     | ReinterpretCastEnumEnum
     | RepeatEnumEnum
@@ -227,6 +255,8 @@ data EnumEnum
     | RethrowsEnumEnum
     | ReturnEnumEnum
     | RightEnumEnum
+    | RuntimeTypeEnumEnum
+    | SEnumEnum
     | SbyteEnumEnum
     | SealedEnumEnum
     | SELEnumEnum
@@ -234,14 +264,19 @@ data EnumEnum
     | SelfEnumEnum
     | PurpleSelfEnumEnum
     | SerializeEnumEnum
+    | SerializerProviderEnumEnum
     | SetEnumEnum
     | ShortEnumEnum
     | SignedEnumEnum
+    | SimpleModuleEnumEnum
     | SizeofEnumEnum
     | StackallocEnumEnum
+    | StandardsEnumEnum
     | StaticEnumEnum
     | StaticAssertEnumEnum
     | StaticCastEnumEnum
+    | StdDeserializerEnumEnum
+    | StdSerializerEnumEnum
     | StrictfpEnumEnum
     | StringEnumEnum
     | StructEnumEnum
@@ -257,8 +292,11 @@ data EnumEnum
     | ThreadLocalEnumEnum
     | ThrowEnumEnum
     | ThrowsEnumEnum
+    | TimeOnlyEnumEnum
+    | TimeOnlyConverterEnumEnum
     | ToJSONEnumEnum
     | TopLevelEnumEnum
+    | ToStringEnumEnum
     | TransientEnumEnum
     | TrueEnumEnum
     | PurpleTrueEnumEnum
@@ -280,6 +318,9 @@ data EnumEnum
     | UnsignedEnumEnum
     | UshortEnumEnum
     | UsingEnumEnum
+    | Utf8JSONReaderEnumEnum
+    | Utf8JSONWriterEnumEnum
+    | UUIDEnumEnum
     | VarEnumEnum
     | VirtualEnumEnum
     | VoidEnumEnum
@@ -354,6 +395,7 @@ instance ToJSON EnumEnum where
     toJSON CheckedEnumEnum = "checked"
     toJSON ClassEnumEnum = "class"
     toJSON PurpleClassEnumEnum = "Class"
+    toJSON CloneEnumEnum = "clone"
     toJSON CoAwaitEnumEnum = "co_await"
     toJSON CoReturnEnumEnum = "co_return"
     toJSON CoYieldEnumEnum = "co_yield"
@@ -368,8 +410,14 @@ instance ToJSON EnumEnum where
     toJSON ConvenienceEnumEnum = "convenience"
     toJSON ConvertEnumEnum = "convert"
     toJSON ConverterEnumEnum = "converter"
+    toJSON CultureInfoEnumEnum = "CultureInfo"
     toJSON DateEnumEnum = "date"
     toJSON DateParseHandlingEnumEnum = "date_parse_handling"
+    toJSON DateFormatterEnumEnum = "DateFormatter"
+    toJSON DateOnlyEnumEnum = "DateOnly"
+    toJSON DateOnlyConverterEnumEnum = "DateOnlyConverter"
+    toJSON DateTimeEnumEnum = "DateTime"
+    toJSON DateTimeStylesEnumEnum = "DateTimeStyles"
     toJSON DebuggerEnumEnum = "debugger"
     toJSON DecimalEnumEnum = "decimal"
     toJSON DeclareEnumEnum = "declare"
@@ -393,6 +441,8 @@ instance ToJSON EnumEnum where
     toJSON ElseEnumEnum = "else"
     toJSON EncodeQuickTypeEnumEnum = "encode_quick_type"
     toJSON EnumEnumEnum = "enum"
+    toJSON EnumValuesEnumEnum = "EnumValues"
+    toJSON EqualityContractEnumEnum = "equalityContract"
     toJSON EventEnumEnum = "event"
     toJSON ExceptEnumEnum = "except"
     toJSON ExceptionEnumEnum = "exception"
@@ -412,6 +462,7 @@ instance ToJSON EnumEnum where
     toJSON FloatEnumEnum = "float"
     toJSON ForEnumEnum = "for"
     toJSON ForeachEnumEnum = "foreach"
+    toJSON FormatExceptionEnumEnum = "FormatException"
     toJSON FriendEnumEnum = "friend"
     toJSON FromEnumEnum = "from"
     toJSON FromJSONEnumEnum = "from_json"
@@ -422,6 +473,7 @@ instance ToJSON EnumEnum where
     toJSON GoEnumEnum = "go"
     toJSON GotoEnumEnum = "goto"
     toJSON GuardEnumEnum = "guard"
+    toJSON HashCodeEnumEnum = "hashCode"
     toJSON HasOwnPropertyEnumEnum = "hasOwnProperty"
     toJSON IDEnumEnum = "id"
     toJSON IfEnumEnum = "if"
@@ -439,6 +491,7 @@ instance ToJSON EnumEnum where
     toJSON IntEnumEnum = "int"
     toJSON InterfaceEnumEnum = "interface"
     toJSON InternalEnumEnum = "internal"
+    toJSON ISODateTimeOffsetConverterEnumEnum = "IsoDateTimeOffsetConverter"
     toJSON IterableEnumEnum = "iterable"
     toJSON IsEnumEnum = "is"
     toJSON JdecEnumEnum = "jdec"
@@ -449,6 +502,17 @@ instance ToJSON EnumEnum where
     toJSON JSONSerializerEnumEnum = "json_serializer"
     toJSON JSONTokenEnumEnum = "json_token"
     toJSON JSONWriterEnumEnum = "json_writer"
+    toJSON JSONAnyEnumEnum = "JSONAny"
+    toJSON JSONCodingKeyEnumEnum = "JSONCodingKey"
+    toJSON JSONDecoderEnumEnum = "JSONDecoder"
+    toJSON JSONEncoderEnumEnum = "JSONEncoder"
+    toJSON JSONExceptionEnumEnum = "JsonException"
+    toJSON JSONGeneratorEnumEnum = "JsonGenerator"
+    toJSON JSONNodeEnumEnum = "JsonNode"
+    toJSON JSONNullEnumEnum = "JSONNull"
+    toJSON JSONParserEnumEnum = "JsonParser"
+    toJSON JSONReaderEnumEnum = "JsonReader"
+    toJSON JSONTokenTypeEnumEnum = "JsonTokenType"
     toJSON LambdaEnumEnum = "lambda"
     toJSON LazyEnumEnum = "lazy"
     toJSON LeftEnumEnum = "left"
@@ -473,14 +537,17 @@ instance ToJSON EnumEnum where
     toJSON PurpleNoneEnumEnum = "None"
     toJSON NonlocalEnumEnum = "nonlocal"
     toJSON NonmutatingEnumEnum = "nonmutating"
+    toJSON NoSuchMethodEnumEnum = "noSuchMethod"
     toJSON NotEnumEnum = "not"
     toJSON NotEqEnumEnum = "not_eq"
+    toJSON NSErrorEnumEnum = "NSError"
     toJSON NSStringEnumEnum = "NSString"
     toJSON NULLEnumEnum = "NULL"
     toJSON NullEnumEnum = "null"
     toJSON NullptrEnumEnum = "nullptr"
     toJSON NumberEnumEnum = "number"
     toJSON ObjectEnumEnum = "object"
+    toJSON ObjectMapperEnumEnum = "ObjectMapper"
     toJSON OfEnumEnum = "of"
     toJSON OnewayEnumEnum = "oneway"
     toJSON OpenEnumEnum = "open"
@@ -499,6 +566,7 @@ instance ToJSON EnumEnum where
     toJSON PrefixEnumEnum = "prefix"
     toJSON PrintEnumEnum = "print"
     toJSON PrintfEnumEnum = "printf"
+    toJSON PrintMembersEnumEnum = "printMembers"
     toJSON PrivateEnumEnum = "private"
     toJSON ProtectedEnumEnum = "protected"
     toJSON ProtocolEnumEnum = "Protocol"
@@ -509,6 +577,7 @@ instance ToJSON EnumEnum where
     toJSON RangeEnumEnum = "range"
     toJSON ReadonlyEnumEnum = "readonly"
     toJSON RefEnumEnum = "ref"
+    toJSON RegExpEnumEnum = "RegExp"
     toJSON RegisterEnumEnum = "register"
     toJSON ReinterpretCastEnumEnum = "reinterpret_cast"
     toJSON RepeatEnumEnum = "repeat"
@@ -520,6 +589,8 @@ instance ToJSON EnumEnum where
     toJSON RethrowsEnumEnum = "rethrows"
     toJSON ReturnEnumEnum = "return"
     toJSON RightEnumEnum = "right"
+    toJSON RuntimeTypeEnumEnum = "runtimeType"
+    toJSON SEnumEnum = "s"
     toJSON SbyteEnumEnum = "sbyte"
     toJSON SealedEnumEnum = "sealed"
     toJSON SELEnumEnum = "SEL"
@@ -527,14 +598,19 @@ instance ToJSON EnumEnum where
     toJSON SelfEnumEnum = "Self"
     toJSON PurpleSelfEnumEnum = "self"
     toJSON SerializeEnumEnum = "serialize"
+    toJSON SerializerProviderEnumEnum = "SerializerProvider"
     toJSON SetEnumEnum = "set"
     toJSON ShortEnumEnum = "short"
     toJSON SignedEnumEnum = "signed"
+    toJSON SimpleModuleEnumEnum = "SimpleModule"
     toJSON SizeofEnumEnum = "sizeof"
     toJSON StackallocEnumEnum = "stackalloc"
+    toJSON StandardsEnumEnum = "Standards"
     toJSON StaticEnumEnum = "static"
     toJSON StaticAssertEnumEnum = "static_assert"
     toJSON StaticCastEnumEnum = "static_cast"
+    toJSON StdDeserializerEnumEnum = "StdDeserializer"
+    toJSON StdSerializerEnumEnum = "StdSerializer"
     toJSON StrictfpEnumEnum = "strictfp"
     toJSON StringEnumEnum = "string"
     toJSON StructEnumEnum = "struct"
@@ -550,8 +626,11 @@ instance ToJSON EnumEnum where
     toJSON ThreadLocalEnumEnum = "thread_local"
     toJSON ThrowEnumEnum = "throw"
     toJSON ThrowsEnumEnum = "throws"
+    toJSON TimeOnlyEnumEnum = "TimeOnly"
+    toJSON TimeOnlyConverterEnumEnum = "TimeOnlyConverter"
     toJSON ToJSONEnumEnum = "to_json"
     toJSON TopLevelEnumEnum = "top_level"
+    toJSON ToStringEnumEnum = "toString"
     toJSON TransientEnumEnum = "transient"
     toJSON TrueEnumEnum = "True"
     toJSON PurpleTrueEnumEnum = "true"
@@ -573,6 +652,9 @@ instance ToJSON EnumEnum where
     toJSON UnsignedEnumEnum = "unsigned"
     toJSON UshortEnumEnum = "ushort"
     toJSON UsingEnumEnum = "using"
+    toJSON Utf8JSONReaderEnumEnum = "Utf8JsonReader"
+    toJSON Utf8JSONWriterEnumEnum = "Utf8JsonWriter"
+    toJSON UUIDEnumEnum = "UUID"
     toJSON VarEnumEnum = "var"
     toJSON VirtualEnumEnum = "virtual"
     toJSON VoidEnumEnum = "void"
@@ -635,6 +717,7 @@ instance FromJSON EnumEnum where
             parseText "checked" = return CheckedEnumEnum
             parseText "class" = return ClassEnumEnum
             parseText "Class" = return PurpleClassEnumEnum
+            parseText "clone" = return CloneEnumEnum
             parseText "co_await" = return CoAwaitEnumEnum
             parseText "co_return" = return CoReturnEnumEnum
             parseText "co_yield" = return CoYieldEnumEnum
@@ -649,8 +732,14 @@ instance FromJSON EnumEnum where
             parseText "convenience" = return ConvenienceEnumEnum
             parseText "convert" = return ConvertEnumEnum
             parseText "converter" = return ConverterEnumEnum
+            parseText "CultureInfo" = return CultureInfoEnumEnum
             parseText "date" = return DateEnumEnum
             parseText "date_parse_handling" = return DateParseHandlingEnumEnum
+            parseText "DateFormatter" = return DateFormatterEnumEnum
+            parseText "DateOnly" = return DateOnlyEnumEnum
+            parseText "DateOnlyConverter" = return DateOnlyConverterEnumEnum
+            parseText "DateTime" = return DateTimeEnumEnum
+            parseText "DateTimeStyles" = return DateTimeStylesEnumEnum
             parseText "debugger" = return DebuggerEnumEnum
             parseText "decimal" = return DecimalEnumEnum
             parseText "declare" = return DeclareEnumEnum
@@ -674,6 +763,8 @@ instance FromJSON EnumEnum where
             parseText "else" = return ElseEnumEnum
             parseText "encode_quick_type" = return EncodeQuickTypeEnumEnum
             parseText "enum" = return EnumEnumEnum
+            parseText "EnumValues" = return EnumValuesEnumEnum
+            parseText "equalityContract" = return EqualityContractEnumEnum
             parseText "event" = return EventEnumEnum
             parseText "except" = return ExceptEnumEnum
             parseText "exception" = return ExceptionEnumEnum
@@ -693,6 +784,7 @@ instance FromJSON EnumEnum where
             parseText "float" = return FloatEnumEnum
             parseText "for" = return ForEnumEnum
             parseText "foreach" = return ForeachEnumEnum
+            parseText "FormatException" = return FormatExceptionEnumEnum
             parseText "friend" = return FriendEnumEnum
             parseText "from" = return FromEnumEnum
             parseText "from_json" = return FromJSONEnumEnum
@@ -703,6 +795,7 @@ instance FromJSON EnumEnum where
             parseText "go" = return GoEnumEnum
             parseText "goto" = return GotoEnumEnum
             parseText "guard" = return GuardEnumEnum
+            parseText "hashCode" = return HashCodeEnumEnum
             parseText "hasOwnProperty" = return HasOwnPropertyEnumEnum
             parseText "id" = return IDEnumEnum
             parseText "if" = return IfEnumEnum
@@ -720,6 +813,7 @@ instance FromJSON EnumEnum where
             parseText "int" = return IntEnumEnum
             parseText "interface" = return InterfaceEnumEnum
             parseText "internal" = return InternalEnumEnum
+            parseText "IsoDateTimeOffsetConverter" = return ISODateTimeOffsetConverterEnumEnum
             parseText "iterable" = return IterableEnumEnum
             parseText "is" = return IsEnumEnum
             parseText "jdec" = return JdecEnumEnum
@@ -730,6 +824,17 @@ instance FromJSON EnumEnum where
             parseText "json_serializer" = return JSONSerializerEnumEnum
             parseText "json_token" = return JSONTokenEnumEnum
             parseText "json_writer" = return JSONWriterEnumEnum
+            parseText "JSONAny" = return JSONAnyEnumEnum
+            parseText "JSONCodingKey" = return JSONCodingKeyEnumEnum
+            parseText "JSONDecoder" = return JSONDecoderEnumEnum
+            parseText "JSONEncoder" = return JSONEncoderEnumEnum
+            parseText "JsonException" = return JSONExceptionEnumEnum
+            parseText "JsonGenerator" = return JSONGeneratorEnumEnum
+            parseText "JsonNode" = return JSONNodeEnumEnum
+            parseText "JSONNull" = return JSONNullEnumEnum
+            parseText "JsonParser" = return JSONParserEnumEnum
+            parseText "JsonReader" = return JSONReaderEnumEnum
+            parseText "JsonTokenType" = return JSONTokenTypeEnumEnum
             parseText "lambda" = return LambdaEnumEnum
             parseText "lazy" = return LazyEnumEnum
             parseText "left" = return LeftEnumEnum
@@ -754,14 +859,17 @@ instance FromJSON EnumEnum where
             parseText "None" = return PurpleNoneEnumEnum
             parseText "nonlocal" = return NonlocalEnumEnum
             parseText "nonmutating" = return NonmutatingEnumEnum
+            parseText "noSuchMethod" = return NoSuchMethodEnumEnum
             parseText "not" = return NotEnumEnum
             parseText "not_eq" = return NotEqEnumEnum
+            parseText "NSError" = return NSErrorEnumEnum
             parseText "NSString" = return NSStringEnumEnum
             parseText "NULL" = return NULLEnumEnum
             parseText "null" = return NullEnumEnum
             parseText "nullptr" = return NullptrEnumEnum
             parseText "number" = return NumberEnumEnum
             parseText "object" = return ObjectEnumEnum
+            parseText "ObjectMapper" = return ObjectMapperEnumEnum
             parseText "of" = return OfEnumEnum
             parseText "oneway" = return OnewayEnumEnum
             parseText "open" = return OpenEnumEnum
@@ -780,6 +888,7 @@ instance FromJSON EnumEnum where
             parseText "prefix" = return PrefixEnumEnum
             parseText "print" = return PrintEnumEnum
             parseText "printf" = return PrintfEnumEnum
+            parseText "printMembers" = return PrintMembersEnumEnum
             parseText "private" = return PrivateEnumEnum
             parseText "protected" = return ProtectedEnumEnum
             parseText "Protocol" = return ProtocolEnumEnum
@@ -790,6 +899,7 @@ instance FromJSON EnumEnum where
             parseText "range" = return RangeEnumEnum
             parseText "readonly" = return ReadonlyEnumEnum
             parseText "ref" = return RefEnumEnum
+            parseText "RegExp" = return RegExpEnumEnum
             parseText "register" = return RegisterEnumEnum
             parseText "reinterpret_cast" = return ReinterpretCastEnumEnum
             parseText "repeat" = return RepeatEnumEnum
@@ -801,6 +911,8 @@ instance FromJSON EnumEnum where
             parseText "rethrows" = return RethrowsEnumEnum
             parseText "return" = return ReturnEnumEnum
             parseText "right" = return RightEnumEnum
+            parseText "runtimeType" = return RuntimeTypeEnumEnum
+            parseText "s" = return SEnumEnum
             parseText "sbyte" = return SbyteEnumEnum
             parseText "sealed" = return SealedEnumEnum
             parseText "SEL" = return SELEnumEnum
@@ -808,14 +920,19 @@ instance FromJSON EnumEnum where
             parseText "Self" = return SelfEnumEnum
             parseText "self" = return PurpleSelfEnumEnum
             parseText "serialize" = return SerializeEnumEnum
+            parseText "SerializerProvider" = return SerializerProviderEnumEnum
             parseText "set" = return SetEnumEnum
             parseText "short" = return ShortEnumEnum
             parseText "signed" = return SignedEnumEnum
+            parseText "SimpleModule" = return SimpleModuleEnumEnum
             parseText "sizeof" = return SizeofEnumEnum
             parseText "stackalloc" = return StackallocEnumEnum
+            parseText "Standards" = return StandardsEnumEnum
             parseText "static" = return StaticEnumEnum
             parseText "static_assert" = return StaticAssertEnumEnum
             parseText "static_cast" = return StaticCastEnumEnum
+            parseText "StdDeserializer" = return StdDeserializerEnumEnum
+            parseText "StdSerializer" = return StdSerializerEnumEnum
             parseText "strictfp" = return StrictfpEnumEnum
             parseText "string" = return StringEnumEnum
             parseText "struct" = return StructEnumEnum
@@ -831,8 +948,11 @@ instance FromJSON EnumEnum where
             parseText "thread_local" = return ThreadLocalEnumEnum
             parseText "throw" = return ThrowEnumEnum
             parseText "throws" = return ThrowsEnumEnum
+            parseText "TimeOnly" = return TimeOnlyEnumEnum
+            parseText "TimeOnlyConverter" = return TimeOnlyConverterEnumEnum
             parseText "to_json" = return ToJSONEnumEnum
             parseText "top_level" = return TopLevelEnumEnum
+            parseText "toString" = return ToStringEnumEnum
             parseText "transient" = return TransientEnumEnum
             parseText "True" = return TrueEnumEnum
             parseText "true" = return PurpleTrueEnumEnum
@@ -854,6 +974,9 @@ instance FromJSON EnumEnum where
             parseText "unsigned" = return UnsignedEnumEnum
             parseText "ushort" = return UshortEnumEnum
             parseText "using" = return UsingEnumEnum
+            parseText "Utf8JsonReader" = return Utf8JSONReaderEnumEnum
+            parseText "Utf8JsonWriter" = return Utf8JSONWriterEnumEnum
+            parseText "UUID" = return UUIDEnumEnum
             parseText "var" = return VarEnumEnum
             parseText "virtual" = return VirtualEnumEnum
             parseText "void" = return VoidEnumEnum
diff --git a/base/schema-haskell/test/inputs/schema/keyword-unions.schema/default/QuickType.hs b/head/schema-haskell/test/inputs/schema/keyword-unions.schema/default/QuickType.hs
index c308fd1..4d7ba1e 100644
--- a/base/schema-haskell/test/inputs/schema/keyword-unions.schema/default/QuickType.hs
+++ b/head/schema-haskell/test/inputs/schema/keyword-unions.schema/default/QuickType.hs
@@ -36,6 +36,7 @@ module QuickType
     , Char16T (..)
     , Char32T (..)
     , Checked (..)
+    , Clone (..)
     , CoAwait (..)
     , CoReturn (..)
     , CoYield (..)
@@ -51,8 +52,14 @@ module QuickType
     , Convenience (..)
     , Convert (..)
     , Converter (..)
+    , CultureInfo (..)
     , Date (..)
+    , DateFormatter (..)
+    , DateOnly (..)
+    , DateOnlyConverter (..)
     , DateParseHandling (..)
+    , DateTime (..)
+    , DateTimeStyles (..)
     , Debugger (..)
     , Decimal (..)
     , Declare (..)
@@ -74,6 +81,8 @@ module QuickType
     , Empty (..)
     , EncodeQuickType (..)
     , EnumClass (..)
+    , EnumValues (..)
+    , EqualityContract (..)
     , Event (..)
     , Except (..)
     , Exception (..)
@@ -92,6 +101,7 @@ module QuickType
     , FloatClass (..)
     , For (..)
     , Foreach (..)
+    , FormatException (..)
     , Friend (..)
     , From (..)
     , FromJSONClass (..)
@@ -103,6 +113,7 @@ module QuickType
     , Goto (..)
     , Guard (..)
     , HasOwnProperty (..)
+    , HashCode (..)
     , Imaginery (..)
     , Imp (..)
     , Implements (..)
@@ -116,14 +127,26 @@ module QuickType
     , Interface (..)
     , Internal (..)
     , Is (..)
+    , ISODateTimeOffsetConverter (..)
     , Iterable (..)
     , Jdec (..)
     , Jenc (..)
     , Jpipe (..)
     , JSON (..)
+    , JSONAny (..)
+    , JSONCodingKey (..)
     , JSONConverter (..)
+    , JSONDecoder (..)
+    , JSONEncoder (..)
+    , JSONException (..)
+    , JSONGenerator (..)
+    , JSONNode (..)
+    , JSONNull (..)
+    , JSONParser (..)
+    , JSONReader (..)
     , JSONSerializer (..)
     , JSONToken (..)
+    , JSONTokenType (..)
     , JSONWriter (..)
     , Lambda (..)
     , Lazy (..)
@@ -141,6 +164,7 @@ module QuickType
     , Newtonsoft (..)
     , Nil (..)
     , No (..)
+    , NoSuchMethod (..)
     , Noexcept (..)
     , Nonatomic (..)
     , None (..)
@@ -148,11 +172,13 @@ module QuickType
     , Nonmutating (..)
     , Not (..)
     , NotEq (..)
+    , NSError (..)
     , NSString (..)
     , NULLClass (..)
     , Nullptr (..)
     , NumberClass (..)
     , ObjectClass (..)
+    , ObjectMapper (..)
     , Oneway (..)
     , Open (..)
     , Operator (..)
@@ -169,6 +195,7 @@ module QuickType
     , Precedence (..)
     , Prefix (..)
     , Print (..)
+    , PrintMembers (..)
     , Printf (..)
     , Private (..)
     , Protected (..)
@@ -207,6 +234,7 @@ module QuickType
     , Range (..)
     , Readonly (..)
     , Ref (..)
+    , RegExp (..)
     , Register (..)
     , ReinterpretCast (..)
     , Repeat (..)
@@ -218,20 +246,27 @@ module QuickType
     , Rethrows (..)
     , Return (..)
     , RightClass (..)
+    , RuntimeType (..)
+    , S (..)
     , Sbyte (..)
     , Sealed (..)
     , Sel (..)
     , Select (..)
     , Self (..)
     , Serialize (..)
+    , SerializerProvider (..)
     , Set (..)
     , Short (..)
     , Signed (..)
+    , SimpleModule (..)
     , Sizeof (..)
     , Stackalloc (..)
+    , Standards (..)
     , Static (..)
     , StaticAssert (..)
     , StaticCast (..)
+    , StdDeserializer (..)
+    , StdSerializer (..)
     , Strictfp (..)
     , StringClass (..)
     , Struct (..)
@@ -246,7 +281,10 @@ module QuickType
     , ThreadLocal (..)
     , Throw (..)
     , Throws (..)
+    , TimeOnly (..)
+    , TimeOnlyConverter (..)
     , ToJSONClass (..)
+    , ToString (..)
     , TopLevel (..)
     , Transient (..)
     , TrueClass (..)
@@ -266,6 +304,9 @@ module QuickType
     , Unsigned (..)
     , Ushort (..)
     , Using (..)
+    , Utf8JSONReader (..)
+    , Utf8JSONWriter (..)
+    , UUID (..)
     , Var (..)
     , Virtual (..)
     , Void (..)
@@ -312,6 +353,7 @@ module QuickType
     , UnionChar16T (..)
     , UnionChar32T (..)
     , UnionChecked (..)
+    , UnionClone (..)
     , UnionCoAwait (..)
     , UnionCoReturn (..)
     , UnionCoYield (..)
@@ -327,8 +369,14 @@ module QuickType
     , UnionConvenience (..)
     , UnionConvert (..)
     , UnionConverter (..)
+    , UnionCultureInfo (..)
     , UnionDate (..)
+    , UnionDateFormatter (..)
+    , UnionDateOnly (..)
+    , UnionDateOnlyConverter (..)
     , UnionDateParseHandling (..)
+    , UnionDateTime (..)
+    , UnionDateTimeStyles (..)
     , UnionDebugger (..)
     , UnionDecimal (..)
     , UnionDeclare (..)
@@ -350,6 +398,8 @@ module QuickType
     , UnionUnion (..)
     , UnionEncodeQuickType (..)
     , UnionEnum (..)
+    , UnionEnumValues (..)
+    , UnionEqualityContract (..)
     , UnionEvent (..)
     , UnionExcept (..)
     , UnionException (..)
@@ -368,6 +418,7 @@ module QuickType
     , UnionFloat (..)
     , UnionFor (..)
     , UnionForeach (..)
+    , UnionFormatException (..)
     , UnionFriend (..)
     , UnionFrom (..)
     , UnionFromJSON (..)
@@ -379,6 +430,7 @@ module QuickType
     , UnionGoto (..)
     , UnionGuard (..)
     , UnionHasOwnProperty (..)
+    , UnionHashCode (..)
     , UnionImaginery (..)
     , UnionIMP (..)
     , UnionImplements (..)
@@ -392,14 +444,26 @@ module QuickType
     , UnionInterface (..)
     , UnionInternal (..)
     , UnionIs (..)
+    , UnionISODateTimeOffsetConverter (..)
     , UnionIterable (..)
     , UnionJdec (..)
     , UnionJenc (..)
     , UnionJpipe (..)
     , UnionJSON (..)
+    , UnionJSONAny (..)
+    , UnionJSONCodingKey (..)
     , UnionJSONConverter (..)
+    , UnionJSONDecoder (..)
+    , UnionJSONEncoder (..)
+    , UnionJSONException (..)
+    , UnionJSONGenerator (..)
+    , UnionJSONNode (..)
+    , UnionJSONNull (..)
+    , UnionJSONParser (..)
+    , UnionJSONReader (..)
     , UnionJSONSerializer (..)
     , UnionJSONToken (..)
+    , UnionJSONTokenType (..)
     , UnionJSONWriter (..)
     , UnionLambda (..)
     , UnionLazy (..)
@@ -417,6 +481,7 @@ module QuickType
     , UnionNewtonsoft (..)
     , UnionNil (..)
     , UnionNO (..)
+    , UnionNoSuchMethod (..)
     , UnionNoexcept (..)
     , UnionNonatomic (..)
     , UnionNone (..)
@@ -424,11 +489,13 @@ module QuickType
     , UnionNonmutating (..)
     , UnionNot (..)
     , UnionNotEq (..)
+    , UnionNSError (..)
     , UnionNSString (..)
     , UnionNULL (..)
     , UnionNullptr (..)
     , UnionNumber (..)
     , UnionObject (..)
+    , UnionObjectMapper (..)
     , UnionOneway (..)
     , UnionOpen (..)
     , UnionOperator (..)
@@ -445,6 +512,7 @@ module QuickType
     , UnionPrecedence (..)
     , UnionPrefix (..)
     , UnionPrint (..)
+    , UnionPrintMembers (..)
     , UnionPrintf (..)
     , UnionPrivate (..)
     , UnionProtected (..)
@@ -483,6 +551,7 @@ module QuickType
     , UnionRange (..)
     , UnionReadonly (..)
     , UnionRef (..)
+    , UnionRegExp (..)
     , UnionRegister (..)
     , UnionReinterpretCast (..)
     , UnionRepeat (..)
@@ -494,20 +563,27 @@ module QuickType
     , UnionRethrows (..)
     , UnionReturn (..)
     , UnionRight (..)
+    , UnionRuntimeType (..)
+    , UnionS (..)
     , UnionSbyte (..)
     , UnionSealed (..)
     , UnionSEL (..)
     , UnionSelect (..)
     , UnionSelf (..)
     , UnionSerialize (..)
+    , UnionSerializerProvider (..)
     , UnionSet (..)
     , UnionShort (..)
     , UnionSigned (..)
+    , UnionSimpleModule (..)
     , UnionSizeof (..)
     , UnionStackalloc (..)
+    , UnionStandards (..)
     , UnionStatic (..)
     , UnionStaticAssert (..)
     , UnionStaticCast (..)
+    , UnionStdDeserializer (..)
+    , UnionStdSerializer (..)
     , UnionStrictfp (..)
     , UnionString (..)
     , UnionStruct (..)
@@ -522,7 +598,10 @@ module QuickType
     , UnionThreadLocal (..)
     , UnionThrow (..)
     , UnionThrows (..)
+    , UnionTimeOnly (..)
+    , UnionTimeOnlyConverter (..)
     , UnionToJSON (..)
+    , UnionToString (..)
     , UnionTopLevel (..)
     , UnionTransient (..)
     , UnionTrue (..)
@@ -542,6 +621,9 @@ module QuickType
     , UnionUnsigned (..)
     , UnionUshort (..)
     , UnionUsing (..)
+    , UnionUtf8JSONReader (..)
+    , UnionUtf8JSONWriter (..)
+    , UnionUUID (..)
     , UnionVar (..)
     , UnionVirtual (..)
     , UnionVoid (..)
@@ -608,6 +690,7 @@ data QuickType = QuickType
     , checkedQuickType :: Maybe UnionChecked
     , purpleClassQuickType :: Maybe UnionClassUnion
     , quickTypeClassQuickType :: Maybe UnionClass
+    , cloneQuickType :: Maybe UnionClone
     , coAwaitQuickType :: Maybe UnionCoAwait
     , coReturnQuickType :: Maybe UnionCoReturn
     , coYieldQuickType :: Maybe UnionCoYield
@@ -622,8 +705,14 @@ data QuickType = QuickType
     , convenienceQuickType :: Maybe UnionConvenience
     , convertQuickType :: Maybe UnionConvert
     , converterQuickType :: Maybe UnionConverter
+    , cultureInfoQuickType :: Maybe UnionCultureInfo
     , dateQuickType :: Maybe UnionDate
     , dateParseHandlingQuickType :: Maybe UnionDateParseHandling
+    , dateFormatterQuickType :: Maybe UnionDateFormatter
+    , dateOnlyQuickType :: Maybe UnionDateOnly
+    , dateOnlyConverterQuickType :: Maybe UnionDateOnlyConverter
+    , dateTimeQuickType :: Maybe UnionDateTime
+    , dateTimeStylesQuickType :: Maybe UnionDateTimeStyles
     , debuggerQuickType :: Maybe UnionDebugger
     , decimalQuickType :: Maybe UnionDecimal
     , declareQuickType :: Maybe UnionDeclare
@@ -648,6 +737,8 @@ data QuickType = QuickType
     , quickTypeElseQuickType :: Maybe UnionElse
     , encodeQuickTypeQuickType :: Maybe UnionEncodeQuickType
     , enumQuickType :: Maybe UnionEnum
+    , enumValuesQuickType :: Maybe UnionEnumValues
+    , equalityContractQuickType :: Maybe UnionEqualityContract
     , eventQuickType :: Maybe UnionEvent
     , exceptQuickType :: Maybe UnionExcept
     , exceptionQuickType :: Maybe UnionException
@@ -667,6 +758,7 @@ data QuickType = QuickType
     , floatQuickType :: Maybe UnionFloat
     , forQuickType :: Maybe UnionFor
     , foreachQuickType :: Maybe UnionForeach
+    , formatExceptionQuickType :: Maybe UnionFormatException
     , friendQuickType :: Maybe UnionFriend
     , fromQuickType :: Maybe UnionFrom
     , fromJSONQuickType :: Maybe UnionFromJSON
@@ -677,6 +769,7 @@ data QuickType = QuickType
     , goQuickType :: Maybe UnionGo
     , gotoQuickType :: Maybe UnionGoto
     , guardQuickType :: Maybe UnionGuard
+    , hashCodeQuickType :: Maybe UnionHashCode
     , hasOwnPropertyQuickType :: Maybe UnionHasOwnProperty
     , quickTypeIDQuickType :: Maybe UnionID
     , quickTypeIfQuickType :: Maybe UnionIf
@@ -695,6 +788,7 @@ data QuickType = QuickType
     , interfaceQuickType :: Maybe UnionInterface
     , internalQuickType :: Maybe UnionInternal
     , isQuickType :: Maybe UnionIs
+    , isoDateTimeOffsetConverterQuickType :: Maybe UnionISODateTimeOffsetConverter
     , iterableQuickType :: Maybe UnionIterable
     , jdecQuickType :: Maybe UnionJdec
     , jencQuickType :: Maybe UnionJenc
@@ -704,6 +798,17 @@ data QuickType = QuickType
     , jsonSerializerQuickType :: Maybe UnionJSONSerializer
     , jsonTokenQuickType :: Maybe UnionJSONToken
     , jsonWriterQuickType :: Maybe UnionJSONWriter
+    , jsonAnyQuickType :: Maybe UnionJSONAny
+    , jsonCodingKeyQuickType :: Maybe UnionJSONCodingKey
+    , jsonDecoderQuickType :: Maybe UnionJSONDecoder
+    , jsonEncoderQuickType :: Maybe UnionJSONEncoder
+    , jsonExceptionQuickType :: Maybe UnionJSONException
+    , jsonGeneratorQuickType :: Maybe UnionJSONGenerator
+    , jsonNodeQuickType :: Maybe UnionJSONNode
+    , jsonNullQuickType :: Maybe UnionJSONNull
+    , jsonParserQuickType :: Maybe UnionJSONParser
+    , jsonReaderQuickType :: Maybe UnionJSONReader
+    , jsonTokenTypeQuickType :: Maybe UnionJSONTokenType
     , lambdaQuickType :: Maybe UnionLambda
     , lazyQuickType :: Maybe UnionLazy
     , leftQuickType :: Maybe UnionLeft
@@ -728,14 +833,17 @@ data QuickType = QuickType
     , noneQuickType :: Maybe UnionNone
     , nonlocalQuickType :: Maybe UnionNonlocal
     , nonmutatingQuickType :: Maybe UnionNonmutating
+    , noSuchMethodQuickType :: Maybe UnionNoSuchMethod
     , notQuickType :: Maybe UnionNot
     , notEqQuickType :: Maybe UnionNotEq
+    , nsErrorQuickType :: Maybe UnionNSError
     , nsStringQuickType :: Maybe UnionNSString
     , nullQuickType :: Maybe UnionNULL
     , quickTypeNullQuickType :: Maybe UnionNull
     , nullptrQuickType :: Maybe UnionNullptr
     , numberQuickType :: Maybe UnionNumber
     , objectQuickType :: Maybe UnionObject
+    , objectMapperQuickType :: Maybe UnionObjectMapper
     , quickTypeOfQuickType :: Maybe UnionOf
     , onewayQuickType :: Maybe UnionOneway
     , openQuickType :: Maybe UnionOpen
@@ -754,6 +862,7 @@ data QuickType = QuickType
     , prefixQuickType :: Maybe UnionPrefix
     , printQuickType :: Maybe UnionPrint
     , printfQuickType :: Maybe UnionPrintf
+    , printMembersQuickType :: Maybe UnionPrintMembers
     , privateQuickType :: Maybe UnionPrivate
     , protectedQuickType :: Maybe UnionProtected
     , protocolQuickType :: Maybe UnionProtocol
@@ -764,6 +873,7 @@ data QuickType = QuickType
     , rangeQuickType :: Maybe UnionRange
     , readonlyQuickType :: Maybe UnionReadonly
     , refQuickType :: Maybe UnionRef
+    , regExpQuickType :: Maybe UnionRegExp
     , registerQuickType :: Maybe UnionRegister
     , reinterpretCastQuickType :: Maybe UnionReinterpretCast
     , repeatQuickType :: Maybe UnionRepeat
@@ -775,6 +885,8 @@ data QuickType = QuickType
     , rethrowsQuickType :: Maybe UnionRethrows
     , returnQuickType :: Maybe UnionReturn
     , rightQuickType :: Maybe UnionRight
+    , runtimeTypeQuickType :: Maybe UnionRuntimeType
+    , sQuickType :: Maybe UnionS
     , sbyteQuickType :: Maybe UnionSbyte
     , sealedQuickType :: Maybe UnionSealed
     , selQuickType :: Maybe UnionSEL
@@ -782,14 +894,19 @@ data QuickType = QuickType
     , selfQuickType :: Maybe UnionSelf
     , quickTypeSelfQuickType :: Maybe UnionSelfUnion
     , serializeQuickType :: Maybe UnionSerialize
+    , serializerProviderQuickType :: Maybe UnionSerializerProvider
     , setQuickType :: Maybe UnionSet
     , shortQuickType :: Maybe UnionShort
     , signedQuickType :: Maybe UnionSigned
+    , simpleModuleQuickType :: Maybe UnionSimpleModule
     , sizeofQuickType :: Maybe UnionSizeof
     , stackallocQuickType :: Maybe UnionStackalloc
+    , standardsQuickType :: Maybe UnionStandards
     , staticQuickType :: Maybe UnionStatic
     , staticAssertQuickType :: Maybe UnionStaticAssert
     , staticCastQuickType :: Maybe UnionStaticCast
+    , stdDeserializerQuickType :: Maybe UnionStdDeserializer
+    , stdSerializerQuickType :: Maybe UnionStdSerializer
     , strictfpQuickType :: Maybe UnionStrictfp
     , stringQuickType :: Maybe UnionString
     , structQuickType :: Maybe UnionStruct
@@ -805,8 +922,11 @@ data QuickType = QuickType
     , threadLocalQuickType :: Maybe UnionThreadLocal
     , throwQuickType :: Maybe UnionThrow
     , throwsQuickType :: Maybe UnionThrows
+    , timeOnlyQuickType :: Maybe UnionTimeOnly
+    , timeOnlyConverterQuickType :: Maybe UnionTimeOnlyConverter
     , toJSONQuickType :: Maybe UnionToJSON
     , topLevelQuickType :: Maybe UnionTopLevel
+    , toStringQuickType :: Maybe UnionToString
     , transientQuickType :: Maybe UnionTransient
     , trueQuickType :: Maybe UnionTrue
     , quickTypeTrueQuickType :: Maybe UnionTrueUnion
@@ -828,6 +948,9 @@ data QuickType = QuickType
     , unsignedQuickType :: Maybe UnionUnsigned
     , ushortQuickType :: Maybe UnionUshort
     , usingQuickType :: Maybe UnionUsing
+    , utf8JSONReaderQuickType :: Maybe UnionUtf8JSONReader
+    , utf8JSONWriterQuickType :: Maybe UnionUtf8JSONWriter
+    , uuidQuickType :: Maybe UnionUUID
     , varQuickType :: Maybe UnionVar
     , virtualQuickType :: Maybe UnionVirtual
     , voidQuickType :: Maybe UnionVoid
@@ -1141,6 +1264,15 @@ data Checked = Checked
     {
     } deriving (Show)
 
+data UnionClone
+    = CloneInUnionClone Clone
+    | DoubleInUnionClone Double
+    deriving (Show)
+
+data Clone = Clone
+    {
+    } deriving (Show)
+
 data UnionCoAwait
     = CoAwaitInUnionCoAwait CoAwait
     | DoubleInUnionCoAwait Double
@@ -1276,6 +1408,15 @@ data Converter = Converter
     {
     } deriving (Show)
 
+data UnionCultureInfo
+    = CultureInfoInUnionCultureInfo CultureInfo
+    | DoubleInUnionCultureInfo Double
+    deriving (Show)
+
+data CultureInfo = CultureInfo
+    {
+    } deriving (Show)
+
 data UnionDate
     = DateInUnionDate Date
     | DoubleInUnionDate Double
@@ -1285,6 +1426,33 @@ data Date = Date
     {
     } deriving (Show)
 
+data UnionDateFormatter
+    = DateFormatterInUnionDateFormatter DateFormatter
+    | DoubleInUnionDateFormatter Double
+    deriving (Show)
+
+data DateFormatter = DateFormatter
+    {
+    } deriving (Show)
+
+data UnionDateOnly
+    = DateOnlyInUnionDateOnly DateOnly
+    | DoubleInUnionDateOnly Double
+    deriving (Show)
+
+data DateOnly = DateOnly
+    {
+    } deriving (Show)
+
+data UnionDateOnlyConverter
+    = DateOnlyConverterInUnionDateOnlyConverter DateOnlyConverter
+    | DoubleInUnionDateOnlyConverter Double
+    deriving (Show)
+
+data DateOnlyConverter = DateOnlyConverter
+    {
+    } deriving (Show)
+
 data UnionDateParseHandling
     = DateParseHandlingInUnionDateParseHandling DateParseHandling
     | DoubleInUnionDateParseHandling Double
@@ -1294,6 +1462,24 @@ data DateParseHandling = DateParseHandling
     {
     } deriving (Show)
 
+data UnionDateTime
+    = DateTimeInUnionDateTime DateTime
+    | DoubleInUnionDateTime Double
+    deriving (Show)
+
+data DateTime = DateTime
+    {
+    } deriving (Show)
+
+data UnionDateTimeStyles
+    = DateTimeStylesInUnionDateTimeStyles DateTimeStyles
+    | DoubleInUnionDateTimeStyles Double
+    deriving (Show)
+
+data DateTimeStyles = DateTimeStyles
+    {
+    } deriving (Show)
+
 data UnionDebugger
     = DebuggerInUnionDebugger Debugger
     | DoubleInUnionDebugger Double
@@ -1483,6 +1669,24 @@ data EnumClass = EnumClass
     {
     } deriving (Show)
 
+data UnionEnumValues
+    = DoubleInUnionEnumValues Double
+    | EnumValuesInUnionEnumValues EnumValues
+    deriving (Show)
+
+data EnumValues = EnumValues
+    {
+    } deriving (Show)
+
+data UnionEqualityContract
+    = DoubleInUnionEqualityContract Double
+    | EqualityContractInUnionEqualityContract EqualityContract
+    deriving (Show)
+
+data EqualityContract = EqualityContract
+    {
+    } deriving (Show)
+
 data UnionEvent
     = DoubleInUnionEvent Double
     | EventInUnionEvent Event
@@ -1645,6 +1849,15 @@ data Foreach = Foreach
     {
     } deriving (Show)
 
+data UnionFormatException
+    = DoubleInUnionFormatException Double
+    | FormatExceptionInUnionFormatException FormatException
+    deriving (Show)
+
+data FormatException = FormatException
+    {
+    } deriving (Show)
+
 data UnionFriend
     = DoubleInUnionFriend Double
     | FriendInUnionFriend Friend
@@ -1744,6 +1957,15 @@ data HasOwnProperty = HasOwnProperty
     {
     } deriving (Show)
 
+data UnionHashCode
+    = DoubleInUnionHashCode Double
+    | HashCodeInUnionHashCode HashCode
+    deriving (Show)
+
+data HashCode = HashCode
+    {
+    } deriving (Show)
+
 data UnionImaginery
     = DoubleInUnionImaginery Double
     | ImagineryInUnionImaginery Imaginery
@@ -1861,6 +2083,15 @@ data Is = Is
     {
     } deriving (Show)
 
+data UnionISODateTimeOffsetConverter
+    = DoubleInUnionISODateTimeOffsetConverter Double
+    | ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter ISODateTimeOffsetConverter
+    deriving (Show)
+
+data ISODateTimeOffsetConverter = ISODateTimeOffsetConverter
+    {
+    } deriving (Show)
+
 data UnionIterable
     = DoubleInUnionIterable Double
     | IterableInUnionIterable Iterable
@@ -1906,6 +2137,24 @@ data JSON = JSON
     {
     } deriving (Show)
 
+data UnionJSONAny
+    = DoubleInUnionJSONAny Double
+    | JSONAnyInUnionJSONAny JSONAny
+    deriving (Show)
+
+data JSONAny = JSONAny
+    {
+    } deriving (Show)
+
+data UnionJSONCodingKey
+    = DoubleInUnionJSONCodingKey Double
+    | JSONCodingKeyInUnionJSONCodingKey JSONCodingKey
+    deriving (Show)
+
+data JSONCodingKey = JSONCodingKey
+    {
+    } deriving (Show)
+
 data UnionJSONConverter
     = DoubleInUnionJSONConverter Double
     | JSONConverterInUnionJSONConverter JSONConverter
@@ -1915,6 +2164,78 @@ data JSONConverter = JSONConverter
     {
     } deriving (Show)
 
+data UnionJSONDecoder
+    = DoubleInUnionJSONDecoder Double
+    | JSONDecoderInUnionJSONDecoder JSONDecoder
+    deriving (Show)
+
+data JSONDecoder = JSONDecoder
+    {
+    } deriving (Show)
+
+data UnionJSONEncoder
+    = DoubleInUnionJSONEncoder Double
+    | JSONEncoderInUnionJSONEncoder JSONEncoder
+    deriving (Show)
+
+data JSONEncoder = JSONEncoder
+    {
+    } deriving (Show)
+
+data UnionJSONException
+    = DoubleInUnionJSONException Double
+    | JSONExceptionInUnionJSONException JSONException
+    deriving (Show)
+
+data JSONException = JSONException
+    {
+    } deriving (Show)
+
+data UnionJSONGenerator
+    = DoubleInUnionJSONGenerator Double
+    | JSONGeneratorInUnionJSONGenerator JSONGenerator
+    deriving (Show)
+
+data JSONGenerator = JSONGenerator
+    {
+    } deriving (Show)
+
+data UnionJSONNode
+    = DoubleInUnionJSONNode Double
+    | JSONNodeInUnionJSONNode JSONNode
+    deriving (Show)
+
+data JSONNode = JSONNode
+    {
+    } deriving (Show)
+
+data UnionJSONNull
+    = DoubleInUnionJSONNull Double
+    | JSONNullInUnionJSONNull JSONNull
+    deriving (Show)
+
+data JSONNull = JSONNull
+    {
+    } deriving (Show)
+
+data UnionJSONParser
+    = DoubleInUnionJSONParser Double
+    | JSONParserInUnionJSONParser JSONParser
+    deriving (Show)
+
+data JSONParser = JSONParser
+    {
+    } deriving (Show)
+
+data UnionJSONReader
+    = DoubleInUnionJSONReader Double
+    | JSONReaderInUnionJSONReader JSONReader
+    deriving (Show)
+
+data JSONReader = JSONReader
+    {
+    } deriving (Show)
+
 data UnionJSONSerializer
     = DoubleInUnionJSONSerializer Double
     | JSONSerializerInUnionJSONSerializer JSONSerializer
@@ -1933,6 +2254,15 @@ data JSONToken = JSONToken
     {
     } deriving (Show)
 
+data UnionJSONTokenType
+    = DoubleInUnionJSONTokenType Double
+    | JSONTokenTypeInUnionJSONTokenType JSONTokenType
+    deriving (Show)
+
+data JSONTokenType = JSONTokenType
+    {
+    } deriving (Show)
+
 data UnionJSONWriter
     = DoubleInUnionJSONWriter Double
     | JSONWriterInUnionJSONWriter JSONWriter
@@ -2086,6 +2416,15 @@ data No = No
     {
     } deriving (Show)
 
+data UnionNoSuchMethod
+    = DoubleInUnionNoSuchMethod Double
+    | NoSuchMethodInUnionNoSuchMethod NoSuchMethod
+    deriving (Show)
+
+data NoSuchMethod = NoSuchMethod
+    {
+    } deriving (Show)
+
 data UnionNoexcept
     = DoubleInUnionNoexcept Double
     | NoexceptInUnionNoexcept Noexcept
@@ -2149,6 +2488,15 @@ data NotEq = NotEq
     {
     } deriving (Show)
 
+data UnionNSError
+    = DoubleInUnionNSError Double
+    | NSErrorInUnionNSError NSError
+    deriving (Show)
+
+data NSError = NSError
+    {
+    } deriving (Show)
+
 data UnionNSString
     = DoubleInUnionNSString Double
     | NSStringInUnionNSString NSString
@@ -2194,6 +2542,15 @@ data ObjectClass = ObjectClass
     {
     } deriving (Show)
 
+data UnionObjectMapper
+    = DoubleInUnionObjectMapper Double
+    | ObjectMapperInUnionObjectMapper ObjectMapper
+    deriving (Show)
+
+data ObjectMapper = ObjectMapper
+    {
+    } deriving (Show)
+
 data UnionOneway
     = DoubleInUnionOneway Double
     | OnewayInUnionOneway Oneway
@@ -2338,6 +2695,15 @@ data Print = Print
     {
     } deriving (Show)
 
+data UnionPrintMembers
+    = DoubleInUnionPrintMembers Double
+    | PrintMembersInUnionPrintMembers PrintMembers
+    deriving (Show)
+
+data PrintMembers = PrintMembers
+    {
+    } deriving (Show)
+
 data UnionPrintf
     = DoubleInUnionPrintf Double
     | PrintfInUnionPrintf Printf
@@ -2680,6 +3046,15 @@ data Ref = Ref
     {
     } deriving (Show)
 
+data UnionRegExp
+    = DoubleInUnionRegExp Double
+    | RegExpInUnionRegExp RegExp
+    deriving (Show)
+
+data RegExp = RegExp
+    {
+    } deriving (Show)
+
 data UnionRegister
     = DoubleInUnionRegister Double
     | RegisterInUnionRegister Register
@@ -2779,6 +3154,24 @@ data RightClass = RightClass
     {
     } deriving (Show)
 
+data UnionRuntimeType
+    = DoubleInUnionRuntimeType Double
+    | RuntimeTypeInUnionRuntimeType RuntimeType
+    deriving (Show)
+
+data RuntimeType = RuntimeType
+    {
+    } deriving (Show)
+
+data UnionS
+    = DoubleInUnionS Double
+    | SInUnionS S
+    deriving (Show)
+
+data S = S
+    {
+    } deriving (Show)
+
 data UnionSbyte
     = DoubleInUnionSbyte Double
     | SbyteInUnionSbyte Sbyte
@@ -2833,6 +3226,15 @@ data Serialize = Serialize
     {
     } deriving (Show)
 
+data UnionSerializerProvider
+    = DoubleInUnionSerializerProvider Double
+    | SerializerProviderInUnionSerializerProvider SerializerProvider
+    deriving (Show)
+
+data SerializerProvider = SerializerProvider
+    {
+    } deriving (Show)
+
 data UnionSet
     = DoubleInUnionSet Double
     | SetInUnionSet Set
@@ -2860,6 +3262,15 @@ data Signed = Signed
     {
     } deriving (Show)
 
+data UnionSimpleModule
+    = DoubleInUnionSimpleModule Double
+    | SimpleModuleInUnionSimpleModule SimpleModule
+    deriving (Show)
+
+data SimpleModule = SimpleModule
+    {
+    } deriving (Show)
+
 data UnionSizeof
     = DoubleInUnionSizeof Double
     | SizeofInUnionSizeof Sizeof
@@ -2878,6 +3289,15 @@ data Stackalloc = Stackalloc
     {
     } deriving (Show)
 
+data UnionStandards
+    = DoubleInUnionStandards Double
+    | StandardsInUnionStandards Standards
+    deriving (Show)
+
+data Standards = Standards
+    {
+    } deriving (Show)
+
 data UnionStatic
     = DoubleInUnionStatic Double
     | StaticInUnionStatic Static
@@ -2905,6 +3325,24 @@ data StaticCast = StaticCast
     {
     } deriving (Show)
 
+data UnionStdDeserializer
+    = DoubleInUnionStdDeserializer Double
+    | StdDeserializerInUnionStdDeserializer StdDeserializer
+    deriving (Show)
+
+data StdDeserializer = StdDeserializer
+    {
+    } deriving (Show)
+
+data UnionStdSerializer
+    = DoubleInUnionStdSerializer Double
+    | StdSerializerInUnionStdSerializer StdSerializer
+    deriving (Show)
+
+data StdSerializer = StdSerializer
+    {
+    } deriving (Show)
+
 data UnionStrictfp
     = DoubleInUnionStrictfp Double
     | StrictfpInUnionStrictfp Strictfp
@@ -3031,6 +3469,24 @@ data Throws = Throws
     {
     } deriving (Show)
 
+data UnionTimeOnly
+    = DoubleInUnionTimeOnly Double
+    | TimeOnlyInUnionTimeOnly TimeOnly
+    deriving (Show)
+
+data TimeOnly = TimeOnly
+    {
+    } deriving (Show)
+
+data UnionTimeOnlyConverter
+    = DoubleInUnionTimeOnlyConverter Double
+    | TimeOnlyConverterInUnionTimeOnlyConverter TimeOnlyConverter
+    deriving (Show)
+
+data TimeOnlyConverter = TimeOnlyConverter
+    {
+    } deriving (Show)
+
 data UnionToJSON
     = DoubleInUnionToJSON Double
     | ToJSONClassInUnionToJSON ToJSONClass
@@ -3040,6 +3496,15 @@ data ToJSONClass = ToJSONClass
     {
     } deriving (Show)
 
+data UnionToString
+    = DoubleInUnionToString Double
+    | ToStringInUnionToString ToString
+    deriving (Show)
+
+data ToString = ToString
+    {
+    } deriving (Show)
+
 data UnionTopLevel
     = DoubleInUnionTopLevel Double
     | TopLevelInUnionTopLevel TopLevel
@@ -3211,6 +3676,33 @@ data Using = Using
     {
     } deriving (Show)
 
+data UnionUtf8JSONReader
+    = DoubleInUnionUtf8JSONReader Double
+    | Utf8JSONReaderInUnionUtf8JSONReader Utf8JSONReader
+    deriving (Show)
+
+data Utf8JSONReader = Utf8JSONReader
+    {
+    } deriving (Show)
+
+data UnionUtf8JSONWriter
+    = DoubleInUnionUtf8JSONWriter Double
+    | Utf8JSONWriterInUnionUtf8JSONWriter Utf8JSONWriter
+    deriving (Show)
+
+data Utf8JSONWriter = Utf8JSONWriter
+    {
+    } deriving (Show)
+
+data UnionUUID
+    = DoubleInUnionUUID Double
+    | UUIDInUnionUUID UUID
+    deriving (Show)
+
+data UUID = UUID
+    {
+    } deriving (Show)
+
 data UnionVar
     = DoubleInUnionVar Double
     | VarInUnionVar Var
@@ -3332,7 +3824,7 @@ decodeTopLevel :: ByteString -> Maybe QuickType
 decodeTopLevel = decode
 
 instance ToJSON QuickType where
-    toJSON (QuickType emptyQuickType quickTypeBoolQuickType complexQuickType imagineryQuickType abstractQuickType alignasQuickType alignofQuickType andQuickType andEqQuickType quickTypeAnyQuickType anyQuickType arrayQuickType quickTypeAsQuickType asmQuickType assertQuickType associatedtypeQuickType associativityQuickType asyncQuickType atomicQuickType atomicCancelQuickType atomicCommitQuickType atomicNoexceptQuickType autoQuickType awaitQuickType baseQuickType bitandQuickType bitorQuickType boolQuickType purpleBoolQuickType booleanQuickType breakQuickType bycopyQuickType byrefQuickType byteQuickType quickTypeCaseQuickType catchQuickType chanQuickType charQuickType char16TQuickType char32TQuickType checkedQuickType purpleClassQuickType quickTypeClassQuickType coAwaitQuickType coReturnQuickType coYieldQuickType complQuickType conceptQuickType consoleQuickType constQuickType constCastQuickType constexprQuickType constructorQuickType continueQuickType convenienceQuickType convertQuickType converterQuickType dateQuickType dateParseHandlingQuickType debuggerQuickType decimalQuickType declareQuickType decltypeQuickType decodeStringQuickType defQuickType quickTypeDefaultQuickType deferQuickType deinitQuickType delQuickType delegateQuickType deleteQuickType dictQuickType dictionaryQuickType didSetQuickType quickTypeDoQuickType doubleQuickType dummyQuickType dynamicQuickType dynamicCastQuickType elifQuickType quickTypeElseQuickType encodeQuickTypeQuickType enumQuickType eventQuickType exceptQuickType exceptionQuickType explicitQuickType exportQuickType exposingQuickType extendsQuickType extensionQuickType externQuickType fallthroughQuickType quickTypeFalseQuickType falseQuickType fileprivateQuickType finalQuickType finallyQuickType fixedQuickType floatQuickType forQuickType foreachQuickType friendQuickType fromQuickType fromJSONQuickType funcQuickType functionQuickType getQuickType globalQuickType goQuickType gotoQuickType guardQuickType hasOwnPropertyQuickType quickTypeIDQuickType quickTypeIfQuickType impQuickType implementsQuickType implicitQuickType quickTypeImportQuickType quickTypeInQuickType indirectQuickType quickTypeInfixQuickType initQuickType inlineQuickType inoutQuickType instanceofQuickType intQuickType interfaceQuickType internalQuickType isQuickType iterableQuickType jdecQuickType jencQuickType jpipeQuickType jsonQuickType jsonConverterQuickType jsonSerializerQuickType jsonTokenQuickType jsonWriterQuickType lambdaQuickType lazyQuickType leftQuickType quickTypeLetQuickType listQuickType lockQuickType longQuickType mapQuickType metadataPropertyHandlingQuickType quickTypeModuleQuickType mutableQuickType mutatingQuickType namespaceQuickType nativeQuickType newQuickType newtonsoftQuickType nilQuickType noQuickType noexceptQuickType nonatomicQuickType quickTypeNoneQuickType noneQuickType nonlocalQuickType nonmutatingQuickType notQuickType notEqQuickType nsStringQuickType nullQuickType quickTypeNullQuickType nullptrQuickType numberQuickType objectQuickType quickTypeOfQuickType onewayQuickType openQuickType operatorQuickType optionalQuickType orQuickType orEqQuickType outQuickType overrideQuickType packageQuickType paramsQuickType passQuickType portQuickType postfixQuickType precedenceQuickType prefixQuickType printQuickType printfQuickType privateQuickType protectedQuickType protocolQuickType quickTypeProtocolQuickType publicQuickType quicktypeQuickType raiseQuickType rangeQuickType readonlyQuickType refQuickType registerQuickType reinterpretCastQuickType repeatQuickType requireQuickType requiredQuickType requiresQuickType restrictQuickType retainQuickType rethrowsQuickType returnQuickType rightQuickType sbyteQuickType sealedQuickType selQuickType selectQuickType selfQuickType quickTypeSelfQuickType serializeQuickType setQuickType shortQuickType signedQuickType sizeofQuickType stackallocQuickType staticQuickType staticAssertQuickType staticCastQuickType strictfpQuickType stringQuickType structQuickType subscriptQuickType superQuickType switchQuickType symbolQuickType synchronizedQuickType systemQuickType templateQuickType quickTypeThenQuickType thisQuickType threadLocalQuickType throwQuickType throwsQuickType toJSONQuickType topLevelQuickType transientQuickType trueQuickType quickTypeTrueQuickType tryQuickType quickTypeTypeQuickType purpleTypeQuickType typealiasQuickType typedefQuickType typeidQuickType typenameQuickType typeofQuickType uintQuickType ulongQuickType uncheckedQuickType undefinedQuickType unionQuickType unownedQuickType unsafeQuickType unsignedQuickType ushortQuickType usingQuickType varQuickType virtualQuickType voidQuickType volatileQuickType wcharTQuickType weakQuickType quickTypeWhereQuickType whileQuickType willSetQuickType withQuickType xorQuickType xorEqQuickType yesQuickType yieldQuickType) =
+    toJSON (QuickType emptyQuickType quickTypeBoolQuickType complexQuickType imagineryQuickType abstractQuickType alignasQuickType alignofQuickType andQuickType andEqQuickType quickTypeAnyQuickType anyQuickType arrayQuickType quickTypeAsQuickType asmQuickType assertQuickType associatedtypeQuickType associativityQuickType asyncQuickType atomicQuickType atomicCancelQuickType atomicCommitQuickType atomicNoexceptQuickType autoQuickType awaitQuickType baseQuickType bitandQuickType bitorQuickType boolQuickType purpleBoolQuickType booleanQuickType breakQuickType bycopyQuickType byrefQuickType byteQuickType quickTypeCaseQuickType catchQuickType chanQuickType charQuickType char16TQuickType char32TQuickType checkedQuickType purpleClassQuickType quickTypeClassQuickType cloneQuickType coAwaitQuickType coReturnQuickType coYieldQuickType complQuickType conceptQuickType consoleQuickType constQuickType constCastQuickType constexprQuickType constructorQuickType continueQuickType convenienceQuickType convertQuickType converterQuickType cultureInfoQuickType dateQuickType dateParseHandlingQuickType dateFormatterQuickType dateOnlyQuickType dateOnlyConverterQuickType dateTimeQuickType dateTimeStylesQuickType debuggerQuickType decimalQuickType declareQuickType decltypeQuickType decodeStringQuickType defQuickType quickTypeDefaultQuickType deferQuickType deinitQuickType delQuickType delegateQuickType deleteQuickType dictQuickType dictionaryQuickType didSetQuickType quickTypeDoQuickType doubleQuickType dummyQuickType dynamicQuickType dynamicCastQuickType elifQuickType quickTypeElseQuickType encodeQuickTypeQuickType enumQuickType enumValuesQuickType equalityContractQuickType eventQuickType exceptQuickType exceptionQuickType explicitQuickType exportQuickType exposingQuickType extendsQuickType extensionQuickType externQuickType fallthroughQuickType quickTypeFalseQuickType falseQuickType fileprivateQuickType finalQuickType finallyQuickType fixedQuickType floatQuickType forQuickType foreachQuickType formatExceptionQuickType friendQuickType fromQuickType fromJSONQuickType funcQuickType functionQuickType getQuickType globalQuickType goQuickType gotoQuickType guardQuickType hashCodeQuickType hasOwnPropertyQuickType quickTypeIDQuickType quickTypeIfQuickType impQuickType implementsQuickType implicitQuickType quickTypeImportQuickType quickTypeInQuickType indirectQuickType quickTypeInfixQuickType initQuickType inlineQuickType inoutQuickType instanceofQuickType intQuickType interfaceQuickType internalQuickType isQuickType isoDateTimeOffsetConverterQuickType iterableQuickType jdecQuickType jencQuickType jpipeQuickType jsonQuickType jsonConverterQuickType jsonSerializerQuickType jsonTokenQuickType jsonWriterQuickType jsonAnyQuickType jsonCodingKeyQuickType jsonDecoderQuickType jsonEncoderQuickType jsonExceptionQuickType jsonGeneratorQuickType jsonNodeQuickType jsonNullQuickType jsonParserQuickType jsonReaderQuickType jsonTokenTypeQuickType lambdaQuickType lazyQuickType leftQuickType quickTypeLetQuickType listQuickType lockQuickType longQuickType mapQuickType metadataPropertyHandlingQuickType quickTypeModuleQuickType mutableQuickType mutatingQuickType namespaceQuickType nativeQuickType newQuickType newtonsoftQuickType nilQuickType noQuickType noexceptQuickType nonatomicQuickType quickTypeNoneQuickType noneQuickType nonlocalQuickType nonmutatingQuickType noSuchMethodQuickType notQuickType notEqQuickType nsErrorQuickType nsStringQuickType nullQuickType quickTypeNullQuickType nullptrQuickType numberQuickType objectQuickType objectMapperQuickType quickTypeOfQuickType onewayQuickType openQuickType operatorQuickType optionalQuickType orQuickType orEqQuickType outQuickType overrideQuickType packageQuickType paramsQuickType passQuickType portQuickType postfixQuickType precedenceQuickType prefixQuickType printQuickType printfQuickType printMembersQuickType privateQuickType protectedQuickType protocolQuickType quickTypeProtocolQuickType publicQuickType quicktypeQuickType raiseQuickType rangeQuickType readonlyQuickType refQuickType regExpQuickType registerQuickType reinterpretCastQuickType repeatQuickType requireQuickType requiredQuickType requiresQuickType restrictQuickType retainQuickType rethrowsQuickType returnQuickType rightQuickType runtimeTypeQuickType sQuickType sbyteQuickType sealedQuickType selQuickType selectQuickType selfQuickType quickTypeSelfQuickType serializeQuickType serializerProviderQuickType setQuickType shortQuickType signedQuickType simpleModuleQuickType sizeofQuickType stackallocQuickType standardsQuickType staticQuickType staticAssertQuickType staticCastQuickType stdDeserializerQuickType stdSerializerQuickType strictfpQuickType stringQuickType structQuickType subscriptQuickType superQuickType switchQuickType symbolQuickType synchronizedQuickType systemQuickType templateQuickType quickTypeThenQuickType thisQuickType threadLocalQuickType throwQuickType throwsQuickType timeOnlyQuickType timeOnlyConverterQuickType toJSONQuickType topLevelQuickType toStringQuickType transientQuickType trueQuickType quickTypeTrueQuickType tryQuickType quickTypeTypeQuickType purpleTypeQuickType typealiasQuickType typedefQuickType typeidQuickType typenameQuickType typeofQuickType uintQuickType ulongQuickType uncheckedQuickType undefinedQuickType unionQuickType unownedQuickType unsafeQuickType unsignedQuickType ushortQuickType usingQuickType utf8JSONReaderQuickType utf8JSONWriterQuickType uuidQuickType varQuickType virtualQuickType voidQuickType volatileQuickType wcharTQuickType weakQuickType quickTypeWhereQuickType whileQuickType willSetQuickType withQuickType xorQuickType xorEqQuickType yesQuickType yieldQuickType) =
         object $ foldMap (maybe [] pure)
         [ ("_" .=) <$> emptyQuickType
         , ("_Bool" .=) <$> quickTypeBoolQuickType
@@ -3377,6 +3869,7 @@ instance ToJSON QuickType where
         , ("checked" .=) <$> checkedQuickType
         , ("class" .=) <$> purpleClassQuickType
         , ("Class" .=) <$> quickTypeClassQuickType
+        , ("clone" .=) <$> cloneQuickType
         , ("co_await" .=) <$> coAwaitQuickType
         , ("co_return" .=) <$> coReturnQuickType
         , ("co_yield" .=) <$> coYieldQuickType
@@ -3391,8 +3884,14 @@ instance ToJSON QuickType where
         , ("convenience" .=) <$> convenienceQuickType
         , ("convert" .=) <$> convertQuickType
         , ("converter" .=) <$> converterQuickType
+        , ("CultureInfo" .=) <$> cultureInfoQuickType
         , ("date" .=) <$> dateQuickType
         , ("date_parse_handling" .=) <$> dateParseHandlingQuickType
+        , ("DateFormatter" .=) <$> dateFormatterQuickType
+        , ("DateOnly" .=) <$> dateOnlyQuickType
+        , ("DateOnlyConverter" .=) <$> dateOnlyConverterQuickType
+        , ("DateTime" .=) <$> dateTimeQuickType
+        , ("DateTimeStyles" .=) <$> dateTimeStylesQuickType
         , ("debugger" .=) <$> debuggerQuickType
         , ("decimal" .=) <$> decimalQuickType
         , ("declare" .=) <$> declareQuickType
@@ -3417,6 +3916,8 @@ instance ToJSON QuickType where
         , ("else" .=) <$> quickTypeElseQuickType
         , ("encode_quick_type" .=) <$> encodeQuickTypeQuickType
         , ("enum" .=) <$> enumQuickType
+        , ("EnumValues" .=) <$> enumValuesQuickType
+        , ("equalityContract" .=) <$> equalityContractQuickType
         , ("event" .=) <$> eventQuickType
         , ("except" .=) <$> exceptQuickType
         , ("exception" .=) <$> exceptionQuickType
@@ -3436,6 +3937,7 @@ instance ToJSON QuickType where
         , ("float" .=) <$> floatQuickType
         , ("for" .=) <$> forQuickType
         , ("foreach" .=) <$> foreachQuickType
+        , ("FormatException" .=) <$> formatExceptionQuickType
         , ("friend" .=) <$> friendQuickType
         , ("from" .=) <$> fromQuickType
         , ("from_json" .=) <$> fromJSONQuickType
@@ -3446,6 +3948,7 @@ instance ToJSON QuickType where
         , ("go" .=) <$> goQuickType
         , ("goto" .=) <$> gotoQuickType
         , ("guard" .=) <$> guardQuickType
+        , ("hashCode" .=) <$> hashCodeQuickType
         , ("hasOwnProperty" .=) <$> hasOwnPropertyQuickType
         , ("id" .=) <$> quickTypeIDQuickType
         , ("if" .=) <$> quickTypeIfQuickType
@@ -3464,6 +3967,7 @@ instance ToJSON QuickType where
         , ("interface" .=) <$> interfaceQuickType
         , ("internal" .=) <$> internalQuickType
         , ("is" .=) <$> isQuickType
+        , ("IsoDateTimeOffsetConverter" .=) <$> isoDateTimeOffsetConverterQuickType
         , ("iterable" .=) <$> iterableQuickType
         , ("jdec" .=) <$> jdecQuickType
         , ("jenc" .=) <$> jencQuickType
@@ -3473,6 +3977,17 @@ instance ToJSON QuickType where
         , ("json_serializer" .=) <$> jsonSerializerQuickType
         , ("json_token" .=) <$> jsonTokenQuickType
         , ("json_writer" .=) <$> jsonWriterQuickType
+        , ("JSONAny" .=) <$> jsonAnyQuickType
+        , ("JSONCodingKey" .=) <$> jsonCodingKeyQuickType
+        , ("JSONDecoder" .=) <$> jsonDecoderQuickType
+        , ("JSONEncoder" .=) <$> jsonEncoderQuickType
+        , ("JsonException" .=) <$> jsonExceptionQuickType
+        , ("JsonGenerator" .=) <$> jsonGeneratorQuickType
+        , ("JsonNode" .=) <$> jsonNodeQuickType
+        , ("JSONNull" .=) <$> jsonNullQuickType
+        , ("JsonParser" .=) <$> jsonParserQuickType
+        , ("JsonReader" .=) <$> jsonReaderQuickType
+        , ("JsonTokenType" .=) <$> jsonTokenTypeQuickType
         , ("lambda" .=) <$> lambdaQuickType
         , ("lazy" .=) <$> lazyQuickType
         , ("left" .=) <$> leftQuickType
@@ -3497,14 +4012,17 @@ instance ToJSON QuickType where
         , ("None" .=) <$> noneQuickType
         , ("nonlocal" .=) <$> nonlocalQuickType
         , ("nonmutating" .=) <$> nonmutatingQuickType
+        , ("noSuchMethod" .=) <$> noSuchMethodQuickType
         , ("not" .=) <$> notQuickType
         , ("not_eq" .=) <$> notEqQuickType
+        , ("NSError" .=) <$> nsErrorQuickType
         , ("NSString" .=) <$> nsStringQuickType
         , ("NULL" .=) <$> nullQuickType
         , ("null" .=) <$> quickTypeNullQuickType
         , ("nullptr" .=) <$> nullptrQuickType
         , ("number" .=) <$> numberQuickType
         , ("object" .=) <$> objectQuickType
+        , ("ObjectMapper" .=) <$> objectMapperQuickType
         , ("of" .=) <$> quickTypeOfQuickType
         , ("oneway" .=) <$> onewayQuickType
         , ("open" .=) <$> openQuickType
@@ -3523,6 +4041,7 @@ instance ToJSON QuickType where
         , ("prefix" .=) <$> prefixQuickType
         , ("print" .=) <$> printQuickType
         , ("printf" .=) <$> printfQuickType
+        , ("printMembers" .=) <$> printMembersQuickType
         , ("private" .=) <$> privateQuickType
         , ("protected" .=) <$> protectedQuickType
         , ("Protocol" .=) <$> protocolQuickType
@@ -3533,6 +4052,7 @@ instance ToJSON QuickType where
         , ("range" .=) <$> rangeQuickType
         , ("readonly" .=) <$> readonlyQuickType
         , ("ref" .=) <$> refQuickType
+        , ("RegExp" .=) <$> regExpQuickType
         , ("register" .=) <$> registerQuickType
         , ("reinterpret_cast" .=) <$> reinterpretCastQuickType
         , ("repeat" .=) <$> repeatQuickType
@@ -3544,6 +4064,8 @@ instance ToJSON QuickType where
         , ("rethrows" .=) <$> rethrowsQuickType
         , ("return" .=) <$> returnQuickType
         , ("right" .=) <$> rightQuickType
+        , ("runtimeType" .=) <$> runtimeTypeQuickType
+        , ("s" .=) <$> sQuickType
         , ("sbyte" .=) <$> sbyteQuickType
         , ("sealed" .=) <$> sealedQuickType
         , ("SEL" .=) <$> selQuickType
@@ -3551,14 +4073,19 @@ instance ToJSON QuickType where
         , ("Self" .=) <$> selfQuickType
         , ("self" .=) <$> quickTypeSelfQuickType
         , ("serialize" .=) <$> serializeQuickType
+        , ("SerializerProvider" .=) <$> serializerProviderQuickType
         , ("set" .=) <$> setQuickType
         , ("short" .=) <$> shortQuickType
         , ("signed" .=) <$> signedQuickType
+        , ("SimpleModule" .=) <$> simpleModuleQuickType
         , ("sizeof" .=) <$> sizeofQuickType
         , ("stackalloc" .=) <$> stackallocQuickType
+        , ("Standards" .=) <$> standardsQuickType
         , ("static" .=) <$> staticQuickType
         , ("static_assert" .=) <$> staticAssertQuickType
         , ("static_cast" .=) <$> staticCastQuickType
+        , ("StdDeserializer" .=) <$> stdDeserializerQuickType
+        , ("StdSerializer" .=) <$> stdSerializerQuickType
         , ("strictfp" .=) <$> strictfpQuickType
         , ("string" .=) <$> stringQuickType
         , ("struct" .=) <$> structQuickType
@@ -3574,8 +4101,11 @@ instance ToJSON QuickType where
         , ("thread_local" .=) <$> threadLocalQuickType
         , ("throw" .=) <$> throwQuickType
         , ("throws" .=) <$> throwsQuickType
+        , ("TimeOnly" .=) <$> timeOnlyQuickType
+        , ("TimeOnlyConverter" .=) <$> timeOnlyConverterQuickType
         , ("to_json" .=) <$> toJSONQuickType
         , ("top_level" .=) <$> topLevelQuickType
+        , ("toString" .=) <$> toStringQuickType
         , ("transient" .=) <$> transientQuickType
         , ("True" .=) <$> trueQuickType
         , ("true" .=) <$> quickTypeTrueQuickType
@@ -3597,6 +4127,9 @@ instance ToJSON QuickType where
         , ("unsigned" .=) <$> unsignedQuickType
         , ("ushort" .=) <$> ushortQuickType
         , ("using" .=) <$> usingQuickType
+        , ("Utf8JsonReader" .=) <$> utf8JSONReaderQuickType
+        , ("Utf8JsonWriter" .=) <$> utf8JSONWriterQuickType
+        , ("UUID" .=) <$> uuidQuickType
         , ("var" .=) <$> varQuickType
         , ("virtual" .=) <$> virtualQuickType
         , ("void" .=) <$> voidQuickType
@@ -3658,6 +4191,7 @@ instance FromJSON QuickType where
         <*> v .:? "checked"
         <*> v .:? "class"
         <*> v .:? "Class"
+        <*> v .:? "clone"
         <*> v .:? "co_await"
         <*> v .:? "co_return"
         <*> v .:? "co_yield"
@@ -3672,8 +4206,14 @@ instance FromJSON QuickType where
         <*> v .:? "convenience"
         <*> v .:? "convert"
         <*> v .:? "converter"
+        <*> v .:? "CultureInfo"
         <*> v .:? "date"
         <*> v .:? "date_parse_handling"
+        <*> v .:? "DateFormatter"
+        <*> v .:? "DateOnly"
+        <*> v .:? "DateOnlyConverter"
+        <*> v .:? "DateTime"
+        <*> v .:? "DateTimeStyles"
         <*> v .:? "debugger"
         <*> v .:? "decimal"
         <*> v .:? "declare"
@@ -3698,6 +4238,8 @@ instance FromJSON QuickType where
         <*> v .:? "else"
         <*> v .:? "encode_quick_type"
         <*> v .:? "enum"
+        <*> v .:? "EnumValues"
+        <*> v .:? "equalityContract"
         <*> v .:? "event"
         <*> v .:? "except"
         <*> v .:? "exception"
@@ -3717,6 +4259,7 @@ instance FromJSON QuickType where
         <*> v .:? "float"
         <*> v .:? "for"
         <*> v .:? "foreach"
+        <*> v .:? "FormatException"
         <*> v .:? "friend"
         <*> v .:? "from"
         <*> v .:? "from_json"
@@ -3727,6 +4270,7 @@ instance FromJSON QuickType where
         <*> v .:? "go"
         <*> v .:? "goto"
         <*> v .:? "guard"
+        <*> v .:? "hashCode"
         <*> v .:? "hasOwnProperty"
         <*> v .:? "id"
         <*> v .:? "if"
@@ -3745,6 +4289,7 @@ instance FromJSON QuickType where
         <*> v .:? "interface"
         <*> v .:? "internal"
         <*> v .:? "is"
+        <*> v .:? "IsoDateTimeOffsetConverter"
         <*> v .:? "iterable"
         <*> v .:? "jdec"
         <*> v .:? "jenc"
@@ -3754,6 +4299,17 @@ instance FromJSON QuickType where
         <*> v .:? "json_serializer"
         <*> v .:? "json_token"
         <*> v .:? "json_writer"
+        <*> v .:? "JSONAny"
+        <*> v .:? "JSONCodingKey"
+        <*> v .:? "JSONDecoder"
+        <*> v .:? "JSONEncoder"
+        <*> v .:? "JsonException"
+        <*> v .:? "JsonGenerator"
+        <*> v .:? "JsonNode"
+        <*> v .:? "JSONNull"
+        <*> v .:? "JsonParser"
+        <*> v .:? "JsonReader"
+        <*> v .:? "JsonTokenType"
         <*> v .:? "lambda"
         <*> v .:? "lazy"
         <*> v .:? "left"
@@ -3778,14 +4334,17 @@ instance FromJSON QuickType where
         <*> v .:? "None"
         <*> v .:? "nonlocal"
         <*> v .:? "nonmutating"
+        <*> v .:? "noSuchMethod"
         <*> v .:? "not"
         <*> v .:? "not_eq"
+        <*> v .:? "NSError"
         <*> v .:? "NSString"
         <*> v .:? "NULL"
         <*> v .:? "null"
         <*> v .:? "nullptr"
         <*> v .:? "number"
         <*> v .:? "object"
+        <*> v .:? "ObjectMapper"
         <*> v .:? "of"
         <*> v .:? "oneway"
         <*> v .:? "open"
@@ -3804,6 +4363,7 @@ instance FromJSON QuickType where
         <*> v .:? "prefix"
         <*> v .:? "print"
         <*> v .:? "printf"
+        <*> v .:? "printMembers"
         <*> v .:? "private"
         <*> v .:? "protected"
         <*> v .:? "Protocol"
@@ -3814,6 +4374,7 @@ instance FromJSON QuickType where
         <*> v .:? "range"
         <*> v .:? "readonly"
         <*> v .:? "ref"
+        <*> v .:? "RegExp"
         <*> v .:? "register"
         <*> v .:? "reinterpret_cast"
         <*> v .:? "repeat"
@@ -3825,6 +4386,8 @@ instance FromJSON QuickType where
         <*> v .:? "rethrows"
         <*> v .:? "return"
         <*> v .:? "right"
+        <*> v .:? "runtimeType"
+        <*> v .:? "s"
         <*> v .:? "sbyte"
         <*> v .:? "sealed"
         <*> v .:? "SEL"
@@ -3832,14 +4395,19 @@ instance FromJSON QuickType where
         <*> v .:? "Self"
         <*> v .:? "self"
         <*> v .:? "serialize"
+        <*> v .:? "SerializerProvider"
         <*> v .:? "set"
         <*> v .:? "short"
         <*> v .:? "signed"
+        <*> v .:? "SimpleModule"
         <*> v .:? "sizeof"
         <*> v .:? "stackalloc"
+        <*> v .:? "Standards"
         <*> v .:? "static"
         <*> v .:? "static_assert"
         <*> v .:? "static_cast"
+        <*> v .:? "StdDeserializer"
+        <*> v .:? "StdSerializer"
         <*> v .:? "strictfp"
         <*> v .:? "string"
         <*> v .:? "struct"
@@ -3855,8 +4423,11 @@ instance FromJSON QuickType where
         <*> v .:? "thread_local"
         <*> v .:? "throw"
         <*> v .:? "throws"
+        <*> v .:? "TimeOnly"
+        <*> v .:? "TimeOnlyConverter"
         <*> v .:? "to_json"
         <*> v .:? "top_level"
+        <*> v .:? "toString"
         <*> v .:? "transient"
         <*> v .:? "True"
         <*> v .:? "true"
@@ -3878,6 +4449,9 @@ instance FromJSON QuickType where
         <*> v .:? "unsigned"
         <*> v .:? "ushort"
         <*> v .:? "using"
+        <*> v .:? "Utf8JsonReader"
+        <*> v .:? "Utf8JsonWriter"
+        <*> v .:? "UUID"
         <*> v .:? "var"
         <*> v .:? "virtual"
         <*> v .:? "void"
@@ -4355,6 +4929,20 @@ instance ToJSON Checked where
 instance FromJSON Checked where
     parseJSON (Object _) = return Checked
 
+instance ToJSON UnionClone where
+    toJSON (CloneInUnionClone x) = toJSON x
+    toJSON (DoubleInUnionClone x) = toJSON x
+
+instance FromJSON UnionClone where
+    parseJSON xs@(Object _) = (fmap CloneInUnionClone . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionClone . parseJSON) xs
+
+instance ToJSON Clone where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON Clone where
+    parseJSON (Object _) = return Clone
+
 instance ToJSON UnionCoAwait where
     toJSON (CoAwaitInUnionCoAwait x) = toJSON x
     toJSON (DoubleInUnionCoAwait x) = toJSON x
@@ -4565,6 +5153,20 @@ instance ToJSON Converter where
 instance FromJSON Converter where
     parseJSON (Object _) = return Converter
 
+instance ToJSON UnionCultureInfo where
+    toJSON (CultureInfoInUnionCultureInfo x) = toJSON x
+    toJSON (DoubleInUnionCultureInfo x) = toJSON x
+
+instance FromJSON UnionCultureInfo where
+    parseJSON xs@(Object _) = (fmap CultureInfoInUnionCultureInfo . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionCultureInfo . parseJSON) xs
+
+instance ToJSON CultureInfo where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON CultureInfo where
+    parseJSON (Object _) = return CultureInfo
+
 instance ToJSON UnionDate where
     toJSON (DateInUnionDate x) = toJSON x
     toJSON (DoubleInUnionDate x) = toJSON x
@@ -4579,6 +5181,48 @@ instance ToJSON Date where
 instance FromJSON Date where
     parseJSON (Object _) = return Date
 
+instance ToJSON UnionDateFormatter where
+    toJSON (DateFormatterInUnionDateFormatter x) = toJSON x
+    toJSON (DoubleInUnionDateFormatter x) = toJSON x
+
+instance FromJSON UnionDateFormatter where
+    parseJSON xs@(Object _) = (fmap DateFormatterInUnionDateFormatter . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionDateFormatter . parseJSON) xs
+
+instance ToJSON DateFormatter where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON DateFormatter where
+    parseJSON (Object _) = return DateFormatter
+
+instance ToJSON UnionDateOnly where
+    toJSON (DateOnlyInUnionDateOnly x) = toJSON x
+    toJSON (DoubleInUnionDateOnly x) = toJSON x
+
+instance FromJSON UnionDateOnly where
+    parseJSON xs@(Object _) = (fmap DateOnlyInUnionDateOnly . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionDateOnly . parseJSON) xs
+
+instance ToJSON DateOnly where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON DateOnly where
+    parseJSON (Object _) = return DateOnly
+
+instance ToJSON UnionDateOnlyConverter where
+    toJSON (DateOnlyConverterInUnionDateOnlyConverter x) = toJSON x
+    toJSON (DoubleInUnionDateOnlyConverter x) = toJSON x
+
+instance FromJSON UnionDateOnlyConverter where
+    parseJSON xs@(Object _) = (fmap DateOnlyConverterInUnionDateOnlyConverter . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionDateOnlyConverter . parseJSON) xs
+
+instance ToJSON DateOnlyConverter where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON DateOnlyConverter where
+    parseJSON (Object _) = return DateOnlyConverter
+
 instance ToJSON UnionDateParseHandling where
     toJSON (DateParseHandlingInUnionDateParseHandling x) = toJSON x
     toJSON (DoubleInUnionDateParseHandling x) = toJSON x
@@ -4593,6 +5237,34 @@ instance ToJSON DateParseHandling where
 instance FromJSON DateParseHandling where
     parseJSON (Object _) = return DateParseHandling
 
+instance ToJSON UnionDateTime where
+    toJSON (DateTimeInUnionDateTime x) = toJSON x
+    toJSON (DoubleInUnionDateTime x) = toJSON x
+
+instance FromJSON UnionDateTime where
+    parseJSON xs@(Object _) = (fmap DateTimeInUnionDateTime . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionDateTime . parseJSON) xs
+
+instance ToJSON DateTime where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON DateTime where
+    parseJSON (Object _) = return DateTime
+
+instance ToJSON UnionDateTimeStyles where
+    toJSON (DateTimeStylesInUnionDateTimeStyles x) = toJSON x
+    toJSON (DoubleInUnionDateTimeStyles x) = toJSON x
+
+instance FromJSON UnionDateTimeStyles where
+    parseJSON xs@(Object _) = (fmap DateTimeStylesInUnionDateTimeStyles . parseJSON) xs
+    parseJSON xs@(Number _) = (fmap DoubleInUnionDateTimeStyles . parseJSON) xs
+
+instance ToJSON DateTimeStyles where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON DateTimeStyles where
+    parseJSON (Object _) = return DateTimeStyles
+
 instance ToJSON UnionDebugger where
     toJSON (DebuggerInUnionDebugger x) = toJSON x
     toJSON (DoubleInUnionDebugger x) = toJSON x
@@ -4887,6 +5559,34 @@ instance ToJSON EnumClass where
 instance FromJSON EnumClass where
     parseJSON (Object _) = return EnumClass
 
+instance ToJSON UnionEnumValues where
+    toJSON (DoubleInUnionEnumValues x) = toJSON x
+    toJSON (EnumValuesInUnionEnumValues x) = toJSON x
+
+instance FromJSON UnionEnumValues where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionEnumValues . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap EnumValuesInUnionEnumValues . parseJSON) xs
+
+instance ToJSON EnumValues where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON EnumValues where
+    parseJSON (Object _) = return EnumValues
+
+instance ToJSON UnionEqualityContract where
+    toJSON (DoubleInUnionEqualityContract x) = toJSON x
+    toJSON (EqualityContractInUnionEqualityContract x) = toJSON x
+
+instance FromJSON UnionEqualityContract where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionEqualityContract . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap EqualityContractInUnionEqualityContract . parseJSON) xs
+
+instance ToJSON EqualityContract where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON EqualityContract where
+    parseJSON (Object _) = return EqualityContract
+
 instance ToJSON UnionEvent where
     toJSON (DoubleInUnionEvent x) = toJSON x
     toJSON (EventInUnionEvent x) = toJSON x
@@ -5139,6 +5839,20 @@ instance ToJSON Foreach where
 instance FromJSON Foreach where
     parseJSON (Object _) = return Foreach
 
+instance ToJSON UnionFormatException where
+    toJSON (DoubleInUnionFormatException x) = toJSON x
+    toJSON (FormatExceptionInUnionFormatException x) = toJSON x
+
+instance FromJSON UnionFormatException where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionFormatException . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap FormatExceptionInUnionFormatException . parseJSON) xs
+
+instance ToJSON FormatException where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON FormatException where
+    parseJSON (Object _) = return FormatException
+
 instance ToJSON UnionFriend where
     toJSON (DoubleInUnionFriend x) = toJSON x
     toJSON (FriendInUnionFriend x) = toJSON x
@@ -5293,6 +6007,20 @@ instance ToJSON HasOwnProperty where
 instance FromJSON HasOwnProperty where
     parseJSON (Object _) = return HasOwnProperty
 
+instance ToJSON UnionHashCode where
+    toJSON (DoubleInUnionHashCode x) = toJSON x
+    toJSON (HashCodeInUnionHashCode x) = toJSON x
+
+instance FromJSON UnionHashCode where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionHashCode . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap HashCodeInUnionHashCode . parseJSON) xs
+
+instance ToJSON HashCode where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON HashCode where
+    parseJSON (Object _) = return HashCode
+
 instance ToJSON UnionImaginery where
     toJSON (DoubleInUnionImaginery x) = toJSON x
     toJSON (ImagineryInUnionImaginery x) = toJSON x
@@ -5475,6 +6203,20 @@ instance ToJSON Is where
 instance FromJSON Is where
     parseJSON (Object _) = return Is
 
+instance ToJSON UnionISODateTimeOffsetConverter where
+    toJSON (DoubleInUnionISODateTimeOffsetConverter x) = toJSON x
+    toJSON (ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter x) = toJSON x
+
+instance FromJSON UnionISODateTimeOffsetConverter where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionISODateTimeOffsetConverter . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap ISODateTimeOffsetConverterInUnionISODateTimeOffsetConverter . parseJSON) xs
+
+instance ToJSON ISODateTimeOffsetConverter where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON ISODateTimeOffsetConverter where
+    parseJSON (Object _) = return ISODateTimeOffsetConverter
+
 instance ToJSON UnionIterable where
     toJSON (DoubleInUnionIterable x) = toJSON x
     toJSON (IterableInUnionIterable x) = toJSON x
@@ -5545,6 +6287,34 @@ instance ToJSON JSON where
 instance FromJSON JSON where
     parseJSON (Object _) = return JSON
 
+instance ToJSON UnionJSONAny where
+    toJSON (DoubleInUnionJSONAny x) = toJSON x
+    toJSON (JSONAnyInUnionJSONAny x) = toJSON x
+
+instance FromJSON UnionJSONAny where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONAny . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONAnyInUnionJSONAny . parseJSON) xs
+
+instance ToJSON JSONAny where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONAny where
+    parseJSON (Object _) = return JSONAny
+
+instance ToJSON UnionJSONCodingKey where
+    toJSON (DoubleInUnionJSONCodingKey x) = toJSON x
+    toJSON (JSONCodingKeyInUnionJSONCodingKey x) = toJSON x
+
+instance FromJSON UnionJSONCodingKey where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONCodingKey . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONCodingKeyInUnionJSONCodingKey . parseJSON) xs
+
+instance ToJSON JSONCodingKey where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONCodingKey where
+    parseJSON (Object _) = return JSONCodingKey
+
 instance ToJSON UnionJSONConverter where
     toJSON (DoubleInUnionJSONConverter x) = toJSON x
     toJSON (JSONConverterInUnionJSONConverter x) = toJSON x
@@ -5559,6 +6329,118 @@ instance ToJSON JSONConverter where
 instance FromJSON JSONConverter where
     parseJSON (Object _) = return JSONConverter
 
+instance ToJSON UnionJSONDecoder where
+    toJSON (DoubleInUnionJSONDecoder x) = toJSON x
+    toJSON (JSONDecoderInUnionJSONDecoder x) = toJSON x
+
+instance FromJSON UnionJSONDecoder where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONDecoder . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONDecoderInUnionJSONDecoder . parseJSON) xs
+
+instance ToJSON JSONDecoder where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONDecoder where
+    parseJSON (Object _) = return JSONDecoder
+
+instance ToJSON UnionJSONEncoder where
+    toJSON (DoubleInUnionJSONEncoder x) = toJSON x
+    toJSON (JSONEncoderInUnionJSONEncoder x) = toJSON x
+
+instance FromJSON UnionJSONEncoder where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONEncoder . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONEncoderInUnionJSONEncoder . parseJSON) xs
+
+instance ToJSON JSONEncoder where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONEncoder where
+    parseJSON (Object _) = return JSONEncoder
+
+instance ToJSON UnionJSONException where
+    toJSON (DoubleInUnionJSONException x) = toJSON x
+    toJSON (JSONExceptionInUnionJSONException x) = toJSON x
+
+instance FromJSON UnionJSONException where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONException . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONExceptionInUnionJSONException . parseJSON) xs
+
+instance ToJSON JSONException where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONException where
+    parseJSON (Object _) = return JSONException
+
+instance ToJSON UnionJSONGenerator where
+    toJSON (DoubleInUnionJSONGenerator x) = toJSON x
+    toJSON (JSONGeneratorInUnionJSONGenerator x) = toJSON x
+
+instance FromJSON UnionJSONGenerator where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONGenerator . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONGeneratorInUnionJSONGenerator . parseJSON) xs
+
+instance ToJSON JSONGenerator where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONGenerator where
+    parseJSON (Object _) = return JSONGenerator
+
+instance ToJSON UnionJSONNode where
+    toJSON (DoubleInUnionJSONNode x) = toJSON x
+    toJSON (JSONNodeInUnionJSONNode x) = toJSON x
+
+instance FromJSON UnionJSONNode where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONNode . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONNodeInUnionJSONNode . parseJSON) xs
+
+instance ToJSON JSONNode where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONNode where
+    parseJSON (Object _) = return JSONNode
+
+instance ToJSON UnionJSONNull where
+    toJSON (DoubleInUnionJSONNull x) = toJSON x
+    toJSON (JSONNullInUnionJSONNull x) = toJSON x
+
+instance FromJSON UnionJSONNull where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONNull . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONNullInUnionJSONNull . parseJSON) xs
+
+instance ToJSON JSONNull where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONNull where
+    parseJSON (Object _) = return JSONNull
+
+instance ToJSON UnionJSONParser where
+    toJSON (DoubleInUnionJSONParser x) = toJSON x
+    toJSON (JSONParserInUnionJSONParser x) = toJSON x
+
+instance FromJSON UnionJSONParser where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONParser . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONParserInUnionJSONParser . parseJSON) xs
+
+instance ToJSON JSONParser where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONParser where
+    parseJSON (Object _) = return JSONParser
+
+instance ToJSON UnionJSONReader where
+    toJSON (DoubleInUnionJSONReader x) = toJSON x
+    toJSON (JSONReaderInUnionJSONReader x) = toJSON x
+
+instance FromJSON UnionJSONReader where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONReader . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONReaderInUnionJSONReader . parseJSON) xs
+
+instance ToJSON JSONReader where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONReader where
+    parseJSON (Object _) = return JSONReader
+
 instance ToJSON UnionJSONSerializer where
     toJSON (DoubleInUnionJSONSerializer x) = toJSON x
     toJSON (JSONSerializerInUnionJSONSerializer x) = toJSON x
@@ -5587,6 +6469,20 @@ instance ToJSON JSONToken where
 instance FromJSON JSONToken where
     parseJSON (Object _) = return JSONToken
 
+instance ToJSON UnionJSONTokenType where
+    toJSON (DoubleInUnionJSONTokenType x) = toJSON x
+    toJSON (JSONTokenTypeInUnionJSONTokenType x) = toJSON x
+
+instance FromJSON UnionJSONTokenType where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionJSONTokenType . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap JSONTokenTypeInUnionJSONTokenType . parseJSON) xs
+
+instance ToJSON JSONTokenType where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON JSONTokenType where
+    parseJSON (Object _) = return JSONTokenType
+
 instance ToJSON UnionJSONWriter where
     toJSON (DoubleInUnionJSONWriter x) = toJSON x
     toJSON (JSONWriterInUnionJSONWriter x) = toJSON x
@@ -5825,6 +6721,20 @@ instance ToJSON No where
 instance FromJSON No where
     parseJSON (Object _) = return No
 
+instance ToJSON UnionNoSuchMethod where
+    toJSON (DoubleInUnionNoSuchMethod x) = toJSON x
+    toJSON (NoSuchMethodInUnionNoSuchMethod x) = toJSON x
+
+instance FromJSON UnionNoSuchMethod where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionNoSuchMethod . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap NoSuchMethodInUnionNoSuchMethod . parseJSON) xs
+
+instance ToJSON NoSuchMethod where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON NoSuchMethod where
+    parseJSON (Object _) = return NoSuchMethod
+
 instance ToJSON UnionNoexcept where
     toJSON (DoubleInUnionNoexcept x) = toJSON x
     toJSON (NoexceptInUnionNoexcept x) = toJSON x
@@ -5923,6 +6833,20 @@ instance ToJSON NotEq where
 instance FromJSON NotEq where
     parseJSON (Object _) = return NotEq
 
+instance ToJSON UnionNSError where
+    toJSON (DoubleInUnionNSError x) = toJSON x
+    toJSON (NSErrorInUnionNSError x) = toJSON x
+
+instance FromJSON UnionNSError where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionNSError . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap NSErrorInUnionNSError . parseJSON) xs
+
+instance ToJSON NSError where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON NSError where
+    parseJSON (Object _) = return NSError
+
 instance ToJSON UnionNSString where
     toJSON (DoubleInUnionNSString x) = toJSON x
     toJSON (NSStringInUnionNSString x) = toJSON x
@@ -5993,6 +6917,20 @@ instance ToJSON ObjectClass where
 instance FromJSON ObjectClass where
     parseJSON (Object _) = return ObjectClass
 
+instance ToJSON UnionObjectMapper where
+    toJSON (DoubleInUnionObjectMapper x) = toJSON x
+    toJSON (ObjectMapperInUnionObjectMapper x) = toJSON x
+
+instance FromJSON UnionObjectMapper where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionObjectMapper . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap ObjectMapperInUnionObjectMapper . parseJSON) xs
+
+instance ToJSON ObjectMapper where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON ObjectMapper where
+    parseJSON (Object _) = return ObjectMapper
+
 instance ToJSON UnionOneway where
     toJSON (DoubleInUnionOneway x) = toJSON x
     toJSON (OnewayInUnionOneway x) = toJSON x
@@ -6217,6 +7155,20 @@ instance ToJSON Print where
 instance FromJSON Print where
     parseJSON (Object _) = return Print
 
+instance ToJSON UnionPrintMembers where
+    toJSON (DoubleInUnionPrintMembers x) = toJSON x
+    toJSON (PrintMembersInUnionPrintMembers x) = toJSON x
+
+instance FromJSON UnionPrintMembers where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionPrintMembers . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap PrintMembersInUnionPrintMembers . parseJSON) xs
+
+instance ToJSON PrintMembers where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON PrintMembers where
+    parseJSON (Object _) = return PrintMembers
+
 instance ToJSON UnionPrintf where
     toJSON (DoubleInUnionPrintf x) = toJSON x
     toJSON (PrintfInUnionPrintf x) = toJSON x
@@ -6749,6 +7701,20 @@ instance ToJSON Ref where
 instance FromJSON Ref where
     parseJSON (Object _) = return Ref
 
+instance ToJSON UnionRegExp where
+    toJSON (DoubleInUnionRegExp x) = toJSON x
+    toJSON (RegExpInUnionRegExp x) = toJSON x
+
+instance FromJSON UnionRegExp where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionRegExp . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap RegExpInUnionRegExp . parseJSON) xs
+
+instance ToJSON RegExp where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON RegExp where
+    parseJSON (Object _) = return RegExp
+
 instance ToJSON UnionRegister where
     toJSON (DoubleInUnionRegister x) = toJSON x
     toJSON (RegisterInUnionRegister x) = toJSON x
@@ -6903,6 +7869,34 @@ instance ToJSON RightClass where
 instance FromJSON RightClass where
     parseJSON (Object _) = return RightClass
 
+instance ToJSON UnionRuntimeType where
+    toJSON (DoubleInUnionRuntimeType x) = toJSON x
+    toJSON (RuntimeTypeInUnionRuntimeType x) = toJSON x
+
+instance FromJSON UnionRuntimeType where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionRuntimeType . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap RuntimeTypeInUnionRuntimeType . parseJSON) xs
+
+instance ToJSON RuntimeType where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON RuntimeType where
+    parseJSON (Object _) = return RuntimeType
+
+instance ToJSON UnionS where
+    toJSON (DoubleInUnionS x) = toJSON x
+    toJSON (SInUnionS x) = toJSON x
+
+instance FromJSON UnionS where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionS . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap SInUnionS . parseJSON) xs
+
+instance ToJSON S where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON S where
+    parseJSON (Object _) = return S
+
 instance ToJSON UnionSbyte where
     toJSON (DoubleInUnionSbyte x) = toJSON x
     toJSON (SbyteInUnionSbyte x) = toJSON x
@@ -6987,6 +7981,20 @@ instance ToJSON Serialize where
 instance FromJSON Serialize where
     parseJSON (Object _) = return Serialize
 
+instance ToJSON UnionSerializerProvider where
+    toJSON (DoubleInUnionSerializerProvider x) = toJSON x
+    toJSON (SerializerProviderInUnionSerializerProvider x) = toJSON x
+
+instance FromJSON UnionSerializerProvider where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionSerializerProvider . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap SerializerProviderInUnionSerializerProvider . parseJSON) xs
+
+instance ToJSON SerializerProvider where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON SerializerProvider where
+    parseJSON (Object _) = return SerializerProvider
+
 instance ToJSON UnionSet where
     toJSON (DoubleInUnionSet x) = toJSON x
     toJSON (SetInUnionSet x) = toJSON x
@@ -7029,6 +8037,20 @@ instance ToJSON Signed where
 instance FromJSON Signed where
     parseJSON (Object _) = return Signed
 
+instance ToJSON UnionSimpleModule where
+    toJSON (DoubleInUnionSimpleModule x) = toJSON x
+    toJSON (SimpleModuleInUnionSimpleModule x) = toJSON x
+
+instance FromJSON UnionSimpleModule where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionSimpleModule . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap SimpleModuleInUnionSimpleModule . parseJSON) xs
+
+instance ToJSON SimpleModule where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON SimpleModule where
+    parseJSON (Object _) = return SimpleModule
+
 instance ToJSON UnionSizeof where
     toJSON (DoubleInUnionSizeof x) = toJSON x
     toJSON (SizeofInUnionSizeof x) = toJSON x
@@ -7057,6 +8079,20 @@ instance ToJSON Stackalloc where
 instance FromJSON Stackalloc where
     parseJSON (Object _) = return Stackalloc
 
+instance ToJSON UnionStandards where
+    toJSON (DoubleInUnionStandards x) = toJSON x
+    toJSON (StandardsInUnionStandards x) = toJSON x
+
+instance FromJSON UnionStandards where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionStandards . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap StandardsInUnionStandards . parseJSON) xs
+
+instance ToJSON Standards where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON Standards where
+    parseJSON (Object _) = return Standards
+
 instance ToJSON UnionStatic where
     toJSON (DoubleInUnionStatic x) = toJSON x
     toJSON (StaticInUnionStatic x) = toJSON x
@@ -7099,6 +8135,34 @@ instance ToJSON StaticCast where
 instance FromJSON StaticCast where
     parseJSON (Object _) = return StaticCast
 
+instance ToJSON UnionStdDeserializer where
+    toJSON (DoubleInUnionStdDeserializer x) = toJSON x
+    toJSON (StdDeserializerInUnionStdDeserializer x) = toJSON x
+
+instance FromJSON UnionStdDeserializer where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionStdDeserializer . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap StdDeserializerInUnionStdDeserializer . parseJSON) xs
+
+instance ToJSON StdDeserializer where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON StdDeserializer where
+    parseJSON (Object _) = return StdDeserializer
+
+instance ToJSON UnionStdSerializer where
+    toJSON (DoubleInUnionStdSerializer x) = toJSON x
+    toJSON (StdSerializerInUnionStdSerializer x) = toJSON x
+
+instance FromJSON UnionStdSerializer where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionStdSerializer . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap StdSerializerInUnionStdSerializer . parseJSON) xs
+
+instance ToJSON StdSerializer where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON StdSerializer where
+    parseJSON (Object _) = return StdSerializer
+
 instance ToJSON UnionStrictfp where
     toJSON (DoubleInUnionStrictfp x) = toJSON x
     toJSON (StrictfpInUnionStrictfp x) = toJSON x
@@ -7295,6 +8359,34 @@ instance ToJSON Throws where
 instance FromJSON Throws where
     parseJSON (Object _) = return Throws
 
+instance ToJSON UnionTimeOnly where
+    toJSON (DoubleInUnionTimeOnly x) = toJSON x
+    toJSON (TimeOnlyInUnionTimeOnly x) = toJSON x
+
+instance FromJSON UnionTimeOnly where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionTimeOnly . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap TimeOnlyInUnionTimeOnly . parseJSON) xs
+
+instance ToJSON TimeOnly where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON TimeOnly where
+    parseJSON (Object _) = return TimeOnly
+
+instance ToJSON UnionTimeOnlyConverter where
+    toJSON (DoubleInUnionTimeOnlyConverter x) = toJSON x
+    toJSON (TimeOnlyConverterInUnionTimeOnlyConverter x) = toJSON x
+
+instance FromJSON UnionTimeOnlyConverter where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionTimeOnlyConverter . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap TimeOnlyConverterInUnionTimeOnlyConverter . parseJSON) xs
+
+instance ToJSON TimeOnlyConverter where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON TimeOnlyConverter where
+    parseJSON (Object _) = return TimeOnlyConverter
+
 instance ToJSON UnionToJSON where
     toJSON (DoubleInUnionToJSON x) = toJSON x
     toJSON (ToJSONClassInUnionToJSON x) = toJSON x
@@ -7309,6 +8401,20 @@ instance ToJSON ToJSONClass where
 instance FromJSON ToJSONClass where
     parseJSON (Object _) = return ToJSONClass
 
+instance ToJSON UnionToString where
+    toJSON (DoubleInUnionToString x) = toJSON x
+    toJSON (ToStringInUnionToString x) = toJSON x
+
+instance FromJSON UnionToString where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionToString . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap ToStringInUnionToString . parseJSON) xs
+
+instance ToJSON ToString where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON ToString where
+    parseJSON (Object _) = return ToString
+
 instance ToJSON UnionTopLevel where
     toJSON (DoubleInUnionTopLevel x) = toJSON x
     toJSON (TopLevelInUnionTopLevel x) = toJSON x
@@ -7575,6 +8681,48 @@ instance ToJSON Using where
 instance FromJSON Using where
     parseJSON (Object _) = return Using
 
+instance ToJSON UnionUtf8JSONReader where
+    toJSON (DoubleInUnionUtf8JSONReader x) = toJSON x
+    toJSON (Utf8JSONReaderInUnionUtf8JSONReader x) = toJSON x
+
+instance FromJSON UnionUtf8JSONReader where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionUtf8JSONReader . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap Utf8JSONReaderInUnionUtf8JSONReader . parseJSON) xs
+
+instance ToJSON Utf8JSONReader where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON Utf8JSONReader where
+    parseJSON (Object _) = return Utf8JSONReader
+
+instance ToJSON UnionUtf8JSONWriter where
+    toJSON (DoubleInUnionUtf8JSONWriter x) = toJSON x
+    toJSON (Utf8JSONWriterInUnionUtf8JSONWriter x) = toJSON x
+
+instance FromJSON UnionUtf8JSONWriter where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionUtf8JSONWriter . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap Utf8JSONWriterInUnionUtf8JSONWriter . parseJSON) xs
+
+instance ToJSON Utf8JSONWriter where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON Utf8JSONWriter where
+    parseJSON (Object _) = return Utf8JSONWriter
+
+instance ToJSON UnionUUID where
+    toJSON (DoubleInUnionUUID x) = toJSON x
+    toJSON (UUIDInUnionUUID x) = toJSON x
+
+instance FromJSON UnionUUID where
+    parseJSON xs@(Number _) = (fmap DoubleInUnionUUID . parseJSON) xs
+    parseJSON xs@(Object _) = (fmap UUIDInUnionUUID . parseJSON) xs
+
+instance ToJSON UUID where
+    toJSON = \_ -> emptyObject
+
+instance FromJSON UUID where
+    parseJSON (Object _) = return UUID
+
 instance ToJSON UnionVar where
     toJSON (DoubleInUnionVar x) = toJSON x
     toJSON (VarInUnionVar x) = toJSON x
diff --git a/base/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java b/head/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
index 1cff799..e4eaad7 100644
--- a/base/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
+++ b/head/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
@@ -4,7 +4,7 @@ import java.io.IOException;
 import com.fasterxml.jackson.annotation.*;
 
 public enum Enum {
-    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, DATE, DATE_PARSE_HANDLING, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NOT, NOT_EQ, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SET, SHORT, SIGNED, SIZEOF, STACKALLOC, STATIC, STATIC_ASSERT, STATIC_CAST, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TO_JSON, TOP_LEVEL, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
+    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CLONE, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, CULTURE_INFO, DATE, DATE_PARSE_HANDLING, DATE_FORMATTER, DATE_ONLY, DATE_ONLY_CONVERTER, DATE_TIME, DATE_TIME_STYLES, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, ENUM_VALUES, EQUALITY_CONTRACT, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FORMAT_EXCEPTION, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HASH_CODE, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ISO_DATE_TIME_OFFSET_CONVERTER, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, JSON_ANY, JSON_CODING_KEY, JSON_DECODER, JSON_ENCODER, JSON_EXCEPTION, JSON_GENERATOR, JSON_NODE, JSON_NULL, JSON_PARSER, JSON_READER, JSON_TOKEN_TYPE, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NO_SUCH_METHOD, NOT, NOT_EQ, NS_ERROR, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OBJECT_MAPPER, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRINT_MEMBERS, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REG_EXP, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, RUNTIME_TYPE, S, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SERIALIZER_PROVIDER, SET, SHORT, SIGNED, SIMPLE_MODULE, SIZEOF, STACKALLOC, STANDARDS, STATIC, STATIC_ASSERT, STATIC_CAST, STD_DESERIALIZER, STD_SERIALIZER, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TIME_ONLY, TIME_ONLY_CONVERTER, TO_JSON, TOP_LEVEL, TO_STRING, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, UTF8_JSON_READER, UTF8_JSON_WRITER, UUID, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
 
     @JsonValue
     public String toValue() {
@@ -52,6 +52,7 @@ public enum Enum {
             case CHECKED: return "checked";
             case CLASS: return "class";
             case ENUM_CLASS: return "Class";
+            case CLONE: return "clone";
             case CO_AWAIT: return "co_await";
             case CO_RETURN: return "co_return";
             case CO_YIELD: return "co_yield";
@@ -66,8 +67,14 @@ public enum Enum {
             case CONVENIENCE: return "convenience";
             case CONVERT: return "convert";
             case CONVERTER: return "converter";
+            case CULTURE_INFO: return "CultureInfo";
             case DATE: return "date";
             case DATE_PARSE_HANDLING: return "date_parse_handling";
+            case DATE_FORMATTER: return "DateFormatter";
+            case DATE_ONLY: return "DateOnly";
+            case DATE_ONLY_CONVERTER: return "DateOnlyConverter";
+            case DATE_TIME: return "DateTime";
+            case DATE_TIME_STYLES: return "DateTimeStyles";
             case DEBUGGER: return "debugger";
             case DECIMAL: return "decimal";
             case DECLARE: return "declare";
@@ -91,6 +98,8 @@ public enum Enum {
             case ELSE: return "else";
             case ENCODE_QUICK_TYPE: return "encode_quick_type";
             case ENUM: return "enum";
+            case ENUM_VALUES: return "EnumValues";
+            case EQUALITY_CONTRACT: return "equalityContract";
             case EVENT: return "event";
             case EXCEPT: return "except";
             case EXCEPTION: return "exception";
@@ -110,6 +119,7 @@ public enum Enum {
             case FLOAT: return "float";
             case FOR: return "for";
             case FOREACH: return "foreach";
+            case FORMAT_EXCEPTION: return "FormatException";
             case FRIEND: return "friend";
             case FROM: return "from";
             case FROM_JSON: return "from_json";
@@ -120,6 +130,7 @@ public enum Enum {
             case GO: return "go";
             case GOTO: return "goto";
             case GUARD: return "guard";
+            case HASH_CODE: return "hashCode";
             case HAS_OWN_PROPERTY: return "hasOwnProperty";
             case ID: return "id";
             case IF: return "if";
@@ -137,6 +148,7 @@ public enum Enum {
             case INT: return "int";
             case INTERFACE: return "interface";
             case INTERNAL: return "internal";
+            case ISO_DATE_TIME_OFFSET_CONVERTER: return "IsoDateTimeOffsetConverter";
             case ITERABLE: return "iterable";
             case IS: return "is";
             case JDEC: return "jdec";
@@ -147,6 +159,17 @@ public enum Enum {
             case JSON_SERIALIZER: return "json_serializer";
             case JSON_TOKEN: return "json_token";
             case JSON_WRITER: return "json_writer";
+            case JSON_ANY: return "JSONAny";
+            case JSON_CODING_KEY: return "JSONCodingKey";
+            case JSON_DECODER: return "JSONDecoder";
+            case JSON_ENCODER: return "JSONEncoder";
+            case JSON_EXCEPTION: return "JsonException";
+            case JSON_GENERATOR: return "JsonGenerator";
+            case JSON_NODE: return "JsonNode";
+            case JSON_NULL: return "JSONNull";
+            case JSON_PARSER: return "JsonParser";
+            case JSON_READER: return "JsonReader";
+            case JSON_TOKEN_TYPE: return "JsonTokenType";
             case LAMBDA: return "lambda";
             case LAZY: return "lazy";
             case LEFT: return "left";
@@ -171,14 +194,17 @@ public enum Enum {
             case ENUM_NONE: return "None";
             case NONLOCAL: return "nonlocal";
             case NONMUTATING: return "nonmutating";
+            case NO_SUCH_METHOD: return "noSuchMethod";
             case NOT: return "not";
             case NOT_EQ: return "not_eq";
+            case NS_ERROR: return "NSError";
             case NS_STRING: return "NSString";
             case NULL: return "NULL";
             case ENUM_NULL: return "null";
             case NULLPTR: return "nullptr";
             case NUMBER: return "number";
             case OBJECT: return "object";
+            case OBJECT_MAPPER: return "ObjectMapper";
             case OF: return "of";
             case ONEWAY: return "oneway";
             case OPEN: return "open";
@@ -197,6 +223,7 @@ public enum Enum {
             case PREFIX: return "prefix";
             case PRINT: return "print";
             case PRINTF: return "printf";
+            case PRINT_MEMBERS: return "printMembers";
             case PRIVATE: return "private";
             case PROTECTED: return "protected";
             case PROTOCOL: return "Protocol";
@@ -207,6 +234,7 @@ public enum Enum {
             case RANGE: return "range";
             case READONLY: return "readonly";
             case REF: return "ref";
+            case REG_EXP: return "RegExp";
             case REGISTER: return "register";
             case REINTERPRET_CAST: return "reinterpret_cast";
             case REPEAT: return "repeat";
@@ -218,6 +246,8 @@ public enum Enum {
             case RETHROWS: return "rethrows";
             case RETURN: return "return";
             case RIGHT: return "right";
+            case RUNTIME_TYPE: return "runtimeType";
+            case S: return "s";
             case SBYTE: return "sbyte";
             case SEALED: return "sealed";
             case SEL: return "SEL";
@@ -225,14 +255,19 @@ public enum Enum {
             case SELF: return "Self";
             case ENUM_SELF: return "self";
             case SERIALIZE: return "serialize";
+            case SERIALIZER_PROVIDER: return "SerializerProvider";
             case SET: return "set";
             case SHORT: return "short";
             case SIGNED: return "signed";
+            case SIMPLE_MODULE: return "SimpleModule";
             case SIZEOF: return "sizeof";
             case STACKALLOC: return "stackalloc";
+            case STANDARDS: return "Standards";
             case STATIC: return "static";
             case STATIC_ASSERT: return "static_assert";
             case STATIC_CAST: return "static_cast";
+            case STD_DESERIALIZER: return "StdDeserializer";
+            case STD_SERIALIZER: return "StdSerializer";
             case STRICTFP: return "strictfp";
             case STRING: return "string";
             case STRUCT: return "struct";
@@ -248,8 +283,11 @@ public enum Enum {
             case THREAD_LOCAL: return "thread_local";
             case THROW: return "throw";
             case THROWS: return "throws";
+            case TIME_ONLY: return "TimeOnly";
+            case TIME_ONLY_CONVERTER: return "TimeOnlyConverter";
             case TO_JSON: return "to_json";
             case TOP_LEVEL: return "top_level";
+            case TO_STRING: return "toString";
             case TRANSIENT: return "transient";
             case TRUE: return "True";
             case ENUM_TRUE: return "true";
@@ -271,6 +309,9 @@ public enum Enum {
             case UNSIGNED: return "unsigned";
             case USHORT: return "ushort";
             case USING: return "using";
+            case UTF8_JSON_READER: return "Utf8JsonReader";
+            case UTF8_JSON_WRITER: return "Utf8JsonWriter";
+            case UUID: return "UUID";
             case VAR: return "var";
             case VIRTUAL: return "virtual";
             case VOID: return "void";
@@ -335,6 +376,7 @@ public enum Enum {
         if (value.equals("checked")) return CHECKED;
         if (value.equals("class")) return CLASS;
         if (value.equals("Class")) return ENUM_CLASS;
+        if (value.equals("clone")) return CLONE;
         if (value.equals("co_await")) return CO_AWAIT;
         if (value.equals("co_return")) return CO_RETURN;
         if (value.equals("co_yield")) return CO_YIELD;
@@ -349,8 +391,14 @@ public enum Enum {
         if (value.equals("convenience")) return CONVENIENCE;
         if (value.equals("convert")) return CONVERT;
         if (value.equals("converter")) return CONVERTER;
+        if (value.equals("CultureInfo")) return CULTURE_INFO;
         if (value.equals("date")) return DATE;
         if (value.equals("date_parse_handling")) return DATE_PARSE_HANDLING;
+        if (value.equals("DateFormatter")) return DATE_FORMATTER;
+        if (value.equals("DateOnly")) return DATE_ONLY;
+        if (value.equals("DateOnlyConverter")) return DATE_ONLY_CONVERTER;
+        if (value.equals("DateTime")) return DATE_TIME;
+        if (value.equals("DateTimeStyles")) return DATE_TIME_STYLES;
         if (value.equals("debugger")) return DEBUGGER;
         if (value.equals("decimal")) return DECIMAL;
         if (value.equals("declare")) return DECLARE;
@@ -374,6 +422,8 @@ public enum Enum {
         if (value.equals("else")) return ELSE;
         if (value.equals("encode_quick_type")) return ENCODE_QUICK_TYPE;
         if (value.equals("enum")) return ENUM;
+        if (value.equals("EnumValues")) return ENUM_VALUES;
+        if (value.equals("equalityContract")) return EQUALITY_CONTRACT;
         if (value.equals("event")) return EVENT;
         if (value.equals("except")) return EXCEPT;
         if (value.equals("exception")) return EXCEPTION;
@@ -393,6 +443,7 @@ public enum Enum {
         if (value.equals("float")) return FLOAT;
         if (value.equals("for")) return FOR;
         if (value.equals("foreach")) return FOREACH;
+        if (value.equals("FormatException")) return FORMAT_EXCEPTION;
         if (value.equals("friend")) return FRIEND;
         if (value.equals("from")) return FROM;
         if (value.equals("from_json")) return FROM_JSON;
@@ -403,6 +454,7 @@ public enum Enum {
         if (value.equals("go")) return GO;
         if (value.equals("goto")) return GOTO;
         if (value.equals("guard")) return GUARD;
+        if (value.equals("hashCode")) return HASH_CODE;
         if (value.equals("hasOwnProperty")) return HAS_OWN_PROPERTY;
         if (value.equals("id")) return ID;
         if (value.equals("if")) return IF;
@@ -420,6 +472,7 @@ public enum Enum {
         if (value.equals("int")) return INT;
         if (value.equals("interface")) return INTERFACE;
         if (value.equals("internal")) return INTERNAL;
+        if (value.equals("IsoDateTimeOffsetConverter")) return ISO_DATE_TIME_OFFSET_CONVERTER;
         if (value.equals("iterable")) return ITERABLE;
         if (value.equals("is")) return IS;
         if (value.equals("jdec")) return JDEC;
@@ -430,6 +483,17 @@ public enum Enum {
         if (value.equals("json_serializer")) return JSON_SERIALIZER;
         if (value.equals("json_token")) return JSON_TOKEN;
         if (value.equals("json_writer")) return JSON_WRITER;
+        if (value.equals("JSONAny")) return JSON_ANY;
+        if (value.equals("JSONCodingKey")) return JSON_CODING_KEY;
+        if (value.equals("JSONDecoder")) return JSON_DECODER;
+        if (value.equals("JSONEncoder")) return JSON_ENCODER;
+        if (value.equals("JsonException")) return JSON_EXCEPTION;
+        if (value.equals("JsonGenerator")) return JSON_GENERATOR;
+        if (value.equals("JsonNode")) return JSON_NODE;
+        if (value.equals("JSONNull")) return JSON_NULL;
+        if (value.equals("JsonParser")) return JSON_PARSER;
+        if (value.equals("JsonReader")) return JSON_READER;
+        if (value.equals("JsonTokenType")) return JSON_TOKEN_TYPE;
         if (value.equals("lambda")) return LAMBDA;
         if (value.equals("lazy")) return LAZY;
         if (value.equals("left")) return LEFT;
@@ -454,14 +518,17 @@ public enum Enum {
         if (value.equals("None")) return ENUM_NONE;
         if (value.equals("nonlocal")) return NONLOCAL;
         if (value.equals("nonmutating")) return NONMUTATING;
+        if (value.equals("noSuchMethod")) return NO_SUCH_METHOD;
         if (value.equals("not")) return NOT;
         if (value.equals("not_eq")) return NOT_EQ;
+        if (value.equals("NSError")) return NS_ERROR;
         if (value.equals("NSString")) return NS_STRING;
         if (value.equals("NULL")) return NULL;
         if (value.equals("null")) return ENUM_NULL;
         if (value.equals("nullptr")) return NULLPTR;
         if (value.equals("number")) return NUMBER;
         if (value.equals("object")) return OBJECT;
+        if (value.equals("ObjectMapper")) return OBJECT_MAPPER;
         if (value.equals("of")) return OF;
         if (value.equals("oneway")) return ONEWAY;
         if (value.equals("open")) return OPEN;
@@ -480,6 +547,7 @@ public enum Enum {
         if (value.equals("prefix")) return PREFIX;
         if (value.equals("print")) return PRINT;
         if (value.equals("printf")) return PRINTF;
+        if (value.equals("printMembers")) return PRINT_MEMBERS;
         if (value.equals("private")) return PRIVATE;
         if (value.equals("protected")) return PROTECTED;
         if (value.equals("Protocol")) return PROTOCOL;
@@ -490,6 +558,7 @@ public enum Enum {
         if (value.equals("range")) return RANGE;
         if (value.equals("readonly")) return READONLY;
         if (value.equals("ref")) return REF;
+        if (value.equals("RegExp")) return REG_EXP;
         if (value.equals("register")) return REGISTER;
         if (value.equals("reinterpret_cast")) return REINTERPRET_CAST;
         if (value.equals("repeat")) return REPEAT;
@@ -501,6 +570,8 @@ public enum Enum {
         if (value.equals("rethrows")) return RETHROWS;
         if (value.equals("return")) return RETURN;
         if (value.equals("right")) return RIGHT;
+        if (value.equals("runtimeType")) return RUNTIME_TYPE;
+        if (value.equals("s")) return S;
         if (value.equals("sbyte")) return SBYTE;
         if (value.equals("sealed")) return SEALED;
         if (value.equals("SEL")) return SEL;
@@ -508,14 +579,19 @@ public enum Enum {
         if (value.equals("Self")) return SELF;
         if (value.equals("self")) return ENUM_SELF;
         if (value.equals("serialize")) return SERIALIZE;
+        if (value.equals("SerializerProvider")) return SERIALIZER_PROVIDER;
         if (value.equals("set")) return SET;
         if (value.equals("short")) return SHORT;
         if (value.equals("signed")) return SIGNED;
+        if (value.equals("SimpleModule")) return SIMPLE_MODULE;
         if (value.equals("sizeof")) return SIZEOF;
         if (value.equals("stackalloc")) return STACKALLOC;
+        if (value.equals("Standards")) return STANDARDS;
         if (value.equals("static")) return STATIC;
         if (value.equals("static_assert")) return STATIC_ASSERT;
         if (value.equals("static_cast")) return STATIC_CAST;
+        if (value.equals("StdDeserializer")) return STD_DESERIALIZER;
+        if (value.equals("StdSerializer")) return STD_SERIALIZER;
         if (value.equals("strictfp")) return STRICTFP;
         if (value.equals("string")) return STRING;
         if (value.equals("struct")) return STRUCT;
@@ -531,8 +607,11 @@ public enum Enum {
         if (value.equals("thread_local")) return THREAD_LOCAL;
         if (value.equals("throw")) return THROW;
         if (value.equals("throws")) return THROWS;
+        if (value.equals("TimeOnly")) return TIME_ONLY;
+        if (value.equals("TimeOnlyConverter")) return TIME_ONLY_CONVERTER;
         if (value.equals("to_json")) return TO_JSON;
         if (value.equals("top_level")) return TOP_LEVEL;
+        if (value.equals("toString")) return TO_STRING;
         if (value.equals("transient")) return TRANSIENT;
         if (value.equals("True")) return TRUE;
         if (value.equals("true")) return ENUM_TRUE;
@@ -554,6 +633,9 @@ public enum Enum {
         if (value.equals("unsigned")) return UNSIGNED;
         if (value.equals("ushort")) return USHORT;
         if (value.equals("using")) return USING;
+        if (value.equals("Utf8JsonReader")) return UTF8_JSON_READER;
+        if (value.equals("Utf8JsonWriter")) return UTF8_JSON_WRITER;
+        if (value.equals("UUID")) return UUID;
         if (value.equals("var")) return VAR;
         if (value.equals("virtual")) return VIRTUAL;
         if (value.equals("void")) return VOID;
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
new file mode 100644
index 0000000..395515a
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Clone {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
new file mode 100644
index 0000000..ab8c9f3
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class CultureInfo {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
new file mode 100644
index 0000000..1852e86
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateFormatter {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
new file mode 100644
index 0000000..9cdb53f
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnly {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
new file mode 100644
index 0000000..209bc20
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnlyConverter {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
new file mode 100644
index 0000000..2dd34d4
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTime {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
new file mode 100644
index 0000000..664d187
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTimeStyles {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
new file mode 100644
index 0000000..c9b5073
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EnumValues {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
new file mode 100644
index 0000000..8e559cf
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EqualityContract {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
new file mode 100644
index 0000000..90c6ac2
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class FormatException {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
new file mode 100644
index 0000000..4630f6d
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class HashCode {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..81b109b
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ISODateTimeOffsetConverter {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
new file mode 100644
index 0000000..e290886
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONAny {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
new file mode 100644
index 0000000..0ec06c5
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONCodingKey {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
new file mode 100644
index 0000000..c5d7a9e
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONDecoder {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
new file mode 100644
index 0000000..62ee11f
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONEncoder {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
new file mode 100644
index 0000000..7bf1460
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONException {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
new file mode 100644
index 0000000..0a71bad
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONGenerator {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
new file mode 100644
index 0000000..d5812d1
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNode {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
new file mode 100644
index 0000000..dcceb9d
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNull {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
new file mode 100644
index 0000000..5fb4825
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONParser {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
new file mode 100644
index 0000000..484c844
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONReader {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
new file mode 100644
index 0000000..48836d3
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONTokenType {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
new file mode 100644
index 0000000..3bfb7d3
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NSError {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
new file mode 100644
index 0000000..70f6955
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NoSuchMethod {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
new file mode 100644
index 0000000..18b5bfb
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ObjectMapperClass {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
new file mode 100644
index 0000000..5b2980b
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class PrintMembers {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
new file mode 100644
index 0000000..80bfb20
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RegExp {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
new file mode 100644
index 0000000..9bd4fed
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RuntimeType {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
new file mode 100644
index 0000000..1a01f93
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class S {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
new file mode 100644
index 0000000..6d39d10
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SerializerProviderClass {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
new file mode 100644
index 0000000..aa56c89
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SimpleModule {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
new file mode 100644
index 0000000..a60e82d
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Standards {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
new file mode 100644
index 0000000..6e4e58f
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdDeserializer {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
new file mode 100644
index 0000000..6f66948
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdSerializer {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
new file mode 100644
index 0000000..58358a5
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnly {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
new file mode 100644
index 0000000..3d727ea
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnlyConverter {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
new file mode 100644
index 0000000..500908e
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ToString {
+}
diff --git a/base/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
index cc83804..420f35a 100644
--- a/base/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
@@ -46,6 +46,7 @@ public class TopLevel {
     private UnionChecked checked;
     private UnionClassUnion purpleClass;
     private UnionClass topLevelClass;
+    private UnionClone clone;
     private UnionCoAwait coAwait;
     private UnionCoReturn coReturn;
     private UnionCoYield coYield;
@@ -60,8 +61,14 @@ public class TopLevel {
     private UnionConvenience convenience;
     private UnionConvert convert;
     private UnionConverter converter;
+    private UnionCultureInfo cultureInfo;
     private UnionDate date;
     private UnionDateParseHandling dateParseHandling;
+    private UnionDateFormatter dateFormatter;
+    private UnionDateOnly dateOnly;
+    private UnionDateOnlyConverter dateOnlyConverter;
+    private UnionDateTime dateTime;
+    private UnionDateTimeStyles dateTimeStyles;
     private UnionDebugger debugger;
     private UnionDecimal decimal;
     private UnionDeclare declare;
@@ -86,6 +93,8 @@ public class TopLevel {
     private UnionElse topLevelElse;
     private UnionEncodeQuickType encodeQuickType;
     private UnionEnum topLevelEnum;
+    private UnionEnumValues enumValues;
+    private UnionEqualityContract equalityContract;
     private UnionEvent event;
     private UnionExcept except;
     private UnionException exception;
@@ -105,6 +114,7 @@ public class TopLevel {
     private UnionFloat topLevelFloat;
     private UnionFor topLevelFor;
     private UnionForeach foreach;
+    private UnionFormatException formatException;
     private UnionFriend friend;
     private UnionFrom from;
     private UnionFromJSON fromJSON;
@@ -115,6 +125,7 @@ public class TopLevel {
     private UnionGo go;
     private UnionGoto topLevelGoto;
     private UnionGuard guard;
+    private UnionHashCode hashCode;
     private UnionHasOwnProperty hasOwnProperty;
     private UnionID id;
     private UnionIf topLevelIf;
@@ -133,6 +144,7 @@ public class TopLevel {
     private UnionInterface topLevelInterface;
     private UnionInternal internal;
     private UnionIs is;
+    private UnionISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private UnionIterable iterable;
     private UnionJdec jdec;
     private UnionJenc jenc;
@@ -142,6 +154,17 @@ public class TopLevel {
     private UnionJSONSerializer jsonSerializer;
     private UnionJSONToken jsonToken;
     private UnionJSONWriter jsonWriter;
+    private UnionJSONAny jsonAny;
+    private UnionJSONCodingKey jsonCodingKey;
+    private UnionJSONDecoder jsonDecoder;
+    private UnionJSONEncoder jsonEncoder;
+    private UnionJSONException jsonException;
+    private UnionJSONGenerator jsonGenerator;
+    private UnionJSONNode jsonNode;
+    private UnionJSONNull jsonNull;
+    private UnionJSONParser jsonParser;
+    private UnionJSONReader jsonReader;
+    private UnionJSONTokenType jsonTokenType;
     private UnionLambda lambda;
     private UnionLazy lazy;
     private UnionLeft left;
@@ -166,14 +189,17 @@ public class TopLevel {
     private UnionNone none;
     private UnionNonlocal nonlocal;
     private UnionNonmutating nonmutating;
+    private UnionNoSuchMethod noSuchMethod;
     private UnionNot not;
     private UnionNotEq notEq;
+    private UnionNSError nsError;
     private UnionNSString nsString;
     private UnionNULL topLevelNULL;
     private UnionNullUnion topLevelNull;
     private UnionNullptr nullptr;
     private UnionNumber number;
     private UnionObject object;
+    private UnionObjectMapper objectMapper;
     private UnionOf of;
     private UnionOneway oneway;
     private UnionOpen open;
@@ -192,6 +218,7 @@ public class TopLevel {
     private UnionPrefix prefix;
     private UnionPrint print;
     private UnionPrintf printf;
+    private UnionPrintMembers printMembers;
     private UnionPrivate topLevelPrivate;
     private UnionProtected topLevelProtected;
     private UnionProtocol protocol;
@@ -202,6 +229,7 @@ public class TopLevel {
     private UnionRange range;
     private UnionReadonly readonly;
     private UnionRef ref;
+    private UnionRegExp regExp;
     private UnionRegister register;
     private UnionReinterpretCast reinterpretCast;
     private UnionRepeat repeat;
@@ -213,6 +241,8 @@ public class TopLevel {
     private UnionRethrows rethrows;
     private UnionReturn topLevelReturn;
     private UnionRight right;
+    private UnionRuntimeType runtimeType;
+    private UnionS s;
     private UnionSbyte sbyte;
     private UnionSealed sealed;
     private UnionSEL sel;
@@ -220,14 +250,19 @@ public class TopLevel {
     private UnionSelf self;
     private UnionSelfUnion topLevelSelf;
     private UnionSerialize serialize;
+    private UnionSerializerProvider serializerProvider;
     private UnionSet set;
     private UnionShort topLevelShort;
     private UnionSigned signed;
+    private UnionSimpleModule simpleModule;
     private UnionSizeof sizeof;
     private UnionStackalloc stackalloc;
+    private UnionStandards standards;
     private UnionStatic topLevelStatic;
     private UnionStaticAssert staticAssert;
     private UnionStaticCast staticCast;
+    private UnionStdDeserializer stdDeserializer;
+    private UnionStdSerializer stdSerializer;
     private UnionStrictfp topLevelStrictfp;
     private UnionString string;
     private UnionStruct struct;
@@ -243,8 +278,11 @@ public class TopLevel {
     private UnionThreadLocal threadLocal;
     private UnionThrow topLevelThrow;
     private UnionThrows topLevelThrows;
+    private UnionTimeOnly timeOnly;
+    private UnionTimeOnlyConverter timeOnlyConverter;
     private UnionToJSON toJSON;
     private UnionTopLevel topLevel;
+    private UnionToString toString;
     private UnionTransient topLevelTransient;
     private UnionTrue topLevelTrue;
     private UnionTrueUnion purpleTrue;
@@ -266,6 +304,9 @@ public class TopLevel {
     private UnionUnsigned unsigned;
     private UnionUshort ushort;
     private UnionUsing using;
+    private UnionUtf8JSONReader utf8JSONReader;
+    private UnionUtf8JSONWriter utf8JSONWriter;
+    private UnionUUID uuid;
     private UnionVar var;
     private UnionVirtual virtual;
     private UnionVoid topLevelVoid;
@@ -496,6 +537,11 @@ public class TopLevel {
     @JsonProperty("Class")
     public void setTopLevelClass(UnionClass value) { this.topLevelClass = value; }
 
+    @JsonProperty("clone")
+    public UnionClone getClone() { return clone; }
+    @JsonProperty("clone")
+    public void setClone(UnionClone value) { this.clone = value; }
+
     @JsonProperty("co_await")
     public UnionCoAwait getCoAwait() { return coAwait; }
     @JsonProperty("co_await")
@@ -566,6 +612,11 @@ public class TopLevel {
     @JsonProperty("converter")
     public void setConverter(UnionConverter value) { this.converter = value; }
 
+    @JsonProperty("CultureInfo")
+    public UnionCultureInfo getCultureInfo() { return cultureInfo; }
+    @JsonProperty("CultureInfo")
+    public void setCultureInfo(UnionCultureInfo value) { this.cultureInfo = value; }
+
     @JsonProperty("date")
     public UnionDate getDate() { return date; }
     @JsonProperty("date")
@@ -576,6 +627,31 @@ public class TopLevel {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(UnionDateParseHandling value) { this.dateParseHandling = value; }
 
+    @JsonProperty("DateFormatter")
+    public UnionDateFormatter getDateFormatter() { return dateFormatter; }
+    @JsonProperty("DateFormatter")
+    public void setDateFormatter(UnionDateFormatter value) { this.dateFormatter = value; }
+
+    @JsonProperty("DateOnly")
+    public UnionDateOnly getDateOnly() { return dateOnly; }
+    @JsonProperty("DateOnly")
+    public void setDateOnly(UnionDateOnly value) { this.dateOnly = value; }
+
+    @JsonProperty("DateOnlyConverter")
+    public UnionDateOnlyConverter getDateOnlyConverter() { return dateOnlyConverter; }
+    @JsonProperty("DateOnlyConverter")
+    public void setDateOnlyConverter(UnionDateOnlyConverter value) { this.dateOnlyConverter = value; }
+
+    @JsonProperty("DateTime")
+    public UnionDateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(UnionDateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public UnionDateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(UnionDateTimeStyles value) { this.dateTimeStyles = value; }
+
     @JsonProperty("debugger")
     public UnionDebugger getDebugger() { return debugger; }
     @JsonProperty("debugger")
@@ -696,6 +772,16 @@ public class TopLevel {
     @JsonProperty("enum")
     public void setTopLevelEnum(UnionEnum value) { this.topLevelEnum = value; }
 
+    @JsonProperty("EnumValues")
+    public UnionEnumValues getEnumValues() { return enumValues; }
+    @JsonProperty("EnumValues")
+    public void setEnumValues(UnionEnumValues value) { this.enumValues = value; }
+
+    @JsonProperty("equalityContract")
+    public UnionEqualityContract getEqualityContract() { return equalityContract; }
+    @JsonProperty("equalityContract")
+    public void setEqualityContract(UnionEqualityContract value) { this.equalityContract = value; }
+
     @JsonProperty("event")
     public UnionEvent getEvent() { return event; }
     @JsonProperty("event")
@@ -791,6 +877,11 @@ public class TopLevel {
     @JsonProperty("foreach")
     public void setForeach(UnionForeach value) { this.foreach = value; }
 
+    @JsonProperty("FormatException")
+    public UnionFormatException getFormatException() { return formatException; }
+    @JsonProperty("FormatException")
+    public void setFormatException(UnionFormatException value) { this.formatException = value; }
+
     @JsonProperty("friend")
     public UnionFriend getFriend() { return friend; }
     @JsonProperty("friend")
@@ -841,6 +932,11 @@ public class TopLevel {
     @JsonProperty("guard")
     public void setGuard(UnionGuard value) { this.guard = value; }
 
+    @JsonProperty("hashCode")
+    public UnionHashCode getHashCode() { return hashCode; }
+    @JsonProperty("hashCode")
+    public void setHashCode(UnionHashCode value) { this.hashCode = value; }
+
     @JsonProperty("hasOwnProperty")
     public UnionHasOwnProperty getHasOwnProperty() { return hasOwnProperty; }
     @JsonProperty("hasOwnProperty")
@@ -931,6 +1027,11 @@ public class TopLevel {
     @JsonProperty("is")
     public void setIs(UnionIs value) { this.is = value; }
 
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public UnionISODateTimeOffsetConverter getISODateTimeOffsetConverter() { return isoDateTimeOffsetConverter; }
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public void setISODateTimeOffsetConverter(UnionISODateTimeOffsetConverter value) { this.isoDateTimeOffsetConverter = value; }
+
     @JsonProperty("iterable")
     public UnionIterable getIterable() { return iterable; }
     @JsonProperty("iterable")
@@ -976,6 +1077,61 @@ public class TopLevel {
     @JsonProperty("json_writer")
     public void setJSONWriter(UnionJSONWriter value) { this.jsonWriter = value; }
 
+    @JsonProperty("JSONAny")
+    public UnionJSONAny getJSONAny() { return jsonAny; }
+    @JsonProperty("JSONAny")
+    public void setJSONAny(UnionJSONAny value) { this.jsonAny = value; }
+
+    @JsonProperty("JSONCodingKey")
+    public UnionJSONCodingKey getJSONCodingKey() { return jsonCodingKey; }
+    @JsonProperty("JSONCodingKey")
+    public void setJSONCodingKey(UnionJSONCodingKey value) { this.jsonCodingKey = value; }
+
+    @JsonProperty("JSONDecoder")
+    public UnionJSONDecoder getJSONDecoder() { return jsonDecoder; }
+    @JsonProperty("JSONDecoder")
+    public void setJSONDecoder(UnionJSONDecoder value) { this.jsonDecoder = value; }
+
+    @JsonProperty("JSONEncoder")
+    public UnionJSONEncoder getJSONEncoder() { return jsonEncoder; }
+    @JsonProperty("JSONEncoder")
+    public void setJSONEncoder(UnionJSONEncoder value) { this.jsonEncoder = value; }
+
+    @JsonProperty("JsonException")
+    public UnionJSONException getJSONException() { return jsonException; }
+    @JsonProperty("JsonException")
+    public void setJSONException(UnionJSONException value) { this.jsonException = value; }
+
+    @JsonProperty("JsonGenerator")
+    public UnionJSONGenerator getJSONGenerator() { return jsonGenerator; }
+    @JsonProperty("JsonGenerator")
+    public void setJSONGenerator(UnionJSONGenerator value) { this.jsonGenerator = value; }
+
+    @JsonProperty("JsonNode")
+    public UnionJSONNode getJSONNode() { return jsonNode; }
+    @JsonProperty("JsonNode")
+    public void setJSONNode(UnionJSONNode value) { this.jsonNode = value; }
+
+    @JsonProperty("JSONNull")
+    public UnionJSONNull getJSONNull() { return jsonNull; }
+    @JsonProperty("JSONNull")
+    public void setJSONNull(UnionJSONNull value) { this.jsonNull = value; }
+
+    @JsonProperty("JsonParser")
+    public UnionJSONParser getJSONParser() { return jsonParser; }
+    @JsonProperty("JsonParser")
+    public void setJSONParser(UnionJSONParser value) { this.jsonParser = value; }
+
+    @JsonProperty("JsonReader")
+    public UnionJSONReader getJSONReader() { return jsonReader; }
+    @JsonProperty("JsonReader")
+    public void setJSONReader(UnionJSONReader value) { this.jsonReader = value; }
+
+    @JsonProperty("JsonTokenType")
+    public UnionJSONTokenType getJSONTokenType() { return jsonTokenType; }
+    @JsonProperty("JsonTokenType")
+    public void setJSONTokenType(UnionJSONTokenType value) { this.jsonTokenType = value; }
+
     @JsonProperty("lambda")
     public UnionLambda getLambda() { return lambda; }
     @JsonProperty("lambda")
@@ -1096,6 +1252,11 @@ public class TopLevel {
     @JsonProperty("nonmutating")
     public void setNonmutating(UnionNonmutating value) { this.nonmutating = value; }
 
+    @JsonProperty("noSuchMethod")
+    public UnionNoSuchMethod getNoSuchMethod() { return noSuchMethod; }
+    @JsonProperty("noSuchMethod")
+    public void setNoSuchMethod(UnionNoSuchMethod value) { this.noSuchMethod = value; }
+
     @JsonProperty("not")
     public UnionNot getNot() { return not; }
     @JsonProperty("not")
@@ -1106,6 +1267,11 @@ public class TopLevel {
     @JsonProperty("not_eq")
     public void setNotEq(UnionNotEq value) { this.notEq = value; }
 
+    @JsonProperty("NSError")
+    public UnionNSError getNSError() { return nsError; }
+    @JsonProperty("NSError")
+    public void setNSError(UnionNSError value) { this.nsError = value; }
+
     @JsonProperty("NSString")
     public UnionNSString getNSString() { return nsString; }
     @JsonProperty("NSString")
@@ -1136,6 +1302,11 @@ public class TopLevel {
     @JsonProperty("object")
     public void setObject(UnionObject value) { this.object = value; }
 
+    @JsonProperty("ObjectMapper")
+    public UnionObjectMapper getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(UnionObjectMapper value) { this.objectMapper = value; }
+
     @JsonProperty("of")
     public UnionOf getOf() { return of; }
     @JsonProperty("of")
@@ -1226,6 +1397,11 @@ public class TopLevel {
     @JsonProperty("printf")
     public void setPrintf(UnionPrintf value) { this.printf = value; }
 
+    @JsonProperty("printMembers")
+    public UnionPrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(UnionPrintMembers value) { this.printMembers = value; }
+
     @JsonProperty("private")
     public UnionPrivate getTopLevelPrivate() { return topLevelPrivate; }
     @JsonProperty("private")
@@ -1276,6 +1452,11 @@ public class TopLevel {
     @JsonProperty("ref")
     public void setRef(UnionRef value) { this.ref = value; }
 
+    @JsonProperty("RegExp")
+    public UnionRegExp getRegExp() { return regExp; }
+    @JsonProperty("RegExp")
+    public void setRegExp(UnionRegExp value) { this.regExp = value; }
+
     @JsonProperty("register")
     public UnionRegister getRegister() { return register; }
     @JsonProperty("register")
@@ -1331,6 +1512,16 @@ public class TopLevel {
     @JsonProperty("right")
     public void setRight(UnionRight value) { this.right = value; }
 
+    @JsonProperty("runtimeType")
+    public UnionRuntimeType getRuntimeType() { return runtimeType; }
+    @JsonProperty("runtimeType")
+    public void setRuntimeType(UnionRuntimeType value) { this.runtimeType = value; }
+
+    @JsonProperty("s")
+    public UnionS getS() { return s; }
+    @JsonProperty("s")
+    public void setS(UnionS value) { this.s = value; }
+
     @JsonProperty("sbyte")
     public UnionSbyte getSbyte() { return sbyte; }
     @JsonProperty("sbyte")
@@ -1366,6 +1557,11 @@ public class TopLevel {
     @JsonProperty("serialize")
     public void setSerialize(UnionSerialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public UnionSerializerProvider getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(UnionSerializerProvider value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public UnionSet getSet() { return set; }
     @JsonProperty("set")
@@ -1381,6 +1577,11 @@ public class TopLevel {
     @JsonProperty("signed")
     public void setSigned(UnionSigned value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public UnionSimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(UnionSimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public UnionSizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -1391,6 +1592,11 @@ public class TopLevel {
     @JsonProperty("stackalloc")
     public void setStackalloc(UnionStackalloc value) { this.stackalloc = value; }
 
+    @JsonProperty("Standards")
+    public UnionStandards getStandards() { return standards; }
+    @JsonProperty("Standards")
+    public void setStandards(UnionStandards value) { this.standards = value; }
+
     @JsonProperty("static")
     public UnionStatic getTopLevelStatic() { return topLevelStatic; }
     @JsonProperty("static")
@@ -1406,6 +1612,16 @@ public class TopLevel {
     @JsonProperty("static_cast")
     public void setStaticCast(UnionStaticCast value) { this.staticCast = value; }
 
+    @JsonProperty("StdDeserializer")
+    public UnionStdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(UnionStdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public UnionStdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(UnionStdSerializer value) { this.stdSerializer = value; }
+
     @JsonProperty("strictfp")
     public UnionStrictfp getTopLevelStrictfp() { return topLevelStrictfp; }
     @JsonProperty("strictfp")
@@ -1481,6 +1697,16 @@ public class TopLevel {
     @JsonProperty("throws")
     public void setTopLevelThrows(UnionThrows value) { this.topLevelThrows = value; }
 
+    @JsonProperty("TimeOnly")
+    public UnionTimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(UnionTimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public UnionTimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(UnionTimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
     @JsonProperty("to_json")
     public UnionToJSON getToJSON() { return toJSON; }
     @JsonProperty("to_json")
@@ -1491,6 +1717,11 @@ public class TopLevel {
     @JsonProperty("top_level")
     public void setTopLevel(UnionTopLevel value) { this.topLevel = value; }
 
+    @JsonProperty("toString")
+    public UnionToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(UnionToString value) { this.toString = value; }
+
     @JsonProperty("transient")
     public UnionTransient getTopLevelTransient() { return topLevelTransient; }
     @JsonProperty("transient")
@@ -1596,6 +1827,21 @@ public class TopLevel {
     @JsonProperty("using")
     public void setUsing(UnionUsing value) { this.using = value; }
 
+    @JsonProperty("Utf8JsonReader")
+    public UnionUtf8JSONReader getUtf8JSONReader() { return utf8JSONReader; }
+    @JsonProperty("Utf8JsonReader")
+    public void setUtf8JSONReader(UnionUtf8JSONReader value) { this.utf8JSONReader = value; }
+
+    @JsonProperty("Utf8JsonWriter")
+    public UnionUtf8JSONWriter getUtf8JSONWriter() { return utf8JSONWriter; }
+    @JsonProperty("Utf8JsonWriter")
+    public void setUtf8JSONWriter(UnionUtf8JSONWriter value) { this.utf8JSONWriter = value; }
+
+    @JsonProperty("UUID")
+    public UnionUUID getUUID() { return uuid; }
+    @JsonProperty("UUID")
+    public void setUUID(UnionUUID value) { this.uuid = value; }
+
     @JsonProperty("var")
     public UnionVar getVar() { return var; }
     @JsonProperty("var")
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
new file mode 100644
index 0000000..487eea7
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class UUIDClass {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
new file mode 100644
index 0000000..70b95b9
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionClone.Deserializer.class)
+@JsonSerialize(using = UnionClone.Serializer.class)
+public class UnionClone {
+    public Double doubleValue;
+    public Clone cloneValue;
+
+    static class Deserializer extends JsonDeserializer<UnionClone> {
+        @Override
+        public UnionClone deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionClone value = new UnionClone();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cloneValue = jsonParser.readValueAs(Clone.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionClone");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionClone> {
+        @Override
+        public void serialize(UnionClone obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cloneValue != null) {
+                jsonGenerator.writeObject(obj.cloneValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
new file mode 100644
index 0000000..9f95338
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionCultureInfo.Deserializer.class)
+@JsonSerialize(using = UnionCultureInfo.Serializer.class)
+public class UnionCultureInfo {
+    public Double doubleValue;
+    public CultureInfo cultureInfoValue;
+
+    static class Deserializer extends JsonDeserializer<UnionCultureInfo> {
+        @Override
+        public UnionCultureInfo deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionCultureInfo value = new UnionCultureInfo();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cultureInfoValue = jsonParser.readValueAs(CultureInfo.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionCultureInfo");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionCultureInfo> {
+        @Override
+        public void serialize(UnionCultureInfo obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cultureInfoValue != null) {
+                jsonGenerator.writeObject(obj.cultureInfoValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
new file mode 100644
index 0000000..f0e95ab
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateFormatter.Deserializer.class)
+@JsonSerialize(using = UnionDateFormatter.Serializer.class)
+public class UnionDateFormatter {
+    public Double doubleValue;
+    public DateFormatter dateFormatterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateFormatter> {
+        @Override
+        public UnionDateFormatter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateFormatter value = new UnionDateFormatter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateFormatterValue = jsonParser.readValueAs(DateFormatter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateFormatter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateFormatter> {
+        @Override
+        public void serialize(UnionDateFormatter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateFormatterValue != null) {
+                jsonGenerator.writeObject(obj.dateFormatterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
new file mode 100644
index 0000000..1d24369
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnly.Deserializer.class)
+@JsonSerialize(using = UnionDateOnly.Serializer.class)
+public class UnionDateOnly {
+    public Double doubleValue;
+    public DateOnly dateOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnly> {
+        @Override
+        public UnionDateOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnly value = new UnionDateOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyValue = jsonParser.readValueAs(DateOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnly> {
+        @Override
+        public void serialize(UnionDateOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
new file mode 100644
index 0000000..a07f715
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionDateOnlyConverter.Serializer.class)
+public class UnionDateOnlyConverter {
+    public Double doubleValue;
+    public DateOnlyConverter dateOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnlyConverter> {
+        @Override
+        public UnionDateOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnlyConverter value = new UnionDateOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyConverterValue = jsonParser.readValueAs(DateOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnlyConverter> {
+        @Override
+        public void serialize(UnionDateOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
new file mode 100644
index 0000000..baa2f1c
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTime.Deserializer.class)
+@JsonSerialize(using = UnionDateTime.Serializer.class)
+public class UnionDateTime {
+    public Double doubleValue;
+    public DateTime dateTimeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTime> {
+        @Override
+        public UnionDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTime value = new UnionDateTime();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeValue = jsonParser.readValueAs(DateTime.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTime");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTime> {
+        @Override
+        public void serialize(UnionDateTime obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
new file mode 100644
index 0000000..9baee16
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTimeStyles.Deserializer.class)
+@JsonSerialize(using = UnionDateTimeStyles.Serializer.class)
+public class UnionDateTimeStyles {
+    public Double doubleValue;
+    public DateTimeStyles dateTimeStylesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTimeStyles> {
+        @Override
+        public UnionDateTimeStyles deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTimeStyles value = new UnionDateTimeStyles();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeStylesValue = jsonParser.readValueAs(DateTimeStyles.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTimeStyles");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTimeStyles> {
+        @Override
+        public void serialize(UnionDateTimeStyles obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeStylesValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeStylesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
new file mode 100644
index 0000000..a341540
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEnumValues.Deserializer.class)
+@JsonSerialize(using = UnionEnumValues.Serializer.class)
+public class UnionEnumValues {
+    public Double doubleValue;
+    public EnumValues enumValuesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEnumValues> {
+        @Override
+        public UnionEnumValues deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEnumValues value = new UnionEnumValues();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.enumValuesValue = jsonParser.readValueAs(EnumValues.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEnumValues");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEnumValues> {
+        @Override
+        public void serialize(UnionEnumValues obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.enumValuesValue != null) {
+                jsonGenerator.writeObject(obj.enumValuesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
new file mode 100644
index 0000000..97447af
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEqualityContract.Deserializer.class)
+@JsonSerialize(using = UnionEqualityContract.Serializer.class)
+public class UnionEqualityContract {
+    public Double doubleValue;
+    public EqualityContract equalityContractValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEqualityContract> {
+        @Override
+        public UnionEqualityContract deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEqualityContract value = new UnionEqualityContract();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.equalityContractValue = jsonParser.readValueAs(EqualityContract.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEqualityContract");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEqualityContract> {
+        @Override
+        public void serialize(UnionEqualityContract obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.equalityContractValue != null) {
+                jsonGenerator.writeObject(obj.equalityContractValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
new file mode 100644
index 0000000..2bde37a
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionFormatException.Deserializer.class)
+@JsonSerialize(using = UnionFormatException.Serializer.class)
+public class UnionFormatException {
+    public Double doubleValue;
+    public FormatException formatExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionFormatException> {
+        @Override
+        public UnionFormatException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionFormatException value = new UnionFormatException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.formatExceptionValue = jsonParser.readValueAs(FormatException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionFormatException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionFormatException> {
+        @Override
+        public void serialize(UnionFormatException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.formatExceptionValue != null) {
+                jsonGenerator.writeObject(obj.formatExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
new file mode 100644
index 0000000..fdd7eac
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionHashCode.Deserializer.class)
+@JsonSerialize(using = UnionHashCode.Serializer.class)
+public class UnionHashCode {
+    public Double doubleValue;
+    public HashCode hashCodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionHashCode> {
+        @Override
+        public UnionHashCode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionHashCode value = new UnionHashCode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.hashCodeValue = jsonParser.readValueAs(HashCode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionHashCode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionHashCode> {
+        @Override
+        public void serialize(UnionHashCode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.hashCodeValue != null) {
+                jsonGenerator.writeObject(obj.hashCodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..0a1f36e
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionISODateTimeOffsetConverter.Deserializer.class)
+@JsonSerialize(using = UnionISODateTimeOffsetConverter.Serializer.class)
+public class UnionISODateTimeOffsetConverter {
+    public Double doubleValue;
+    public ISODateTimeOffsetConverter isoDateTimeOffsetConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public UnionISODateTimeOffsetConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionISODateTimeOffsetConverter value = new UnionISODateTimeOffsetConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.isoDateTimeOffsetConverterValue = jsonParser.readValueAs(ISODateTimeOffsetConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionISODateTimeOffsetConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public void serialize(UnionISODateTimeOffsetConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.isoDateTimeOffsetConverterValue != null) {
+                jsonGenerator.writeObject(obj.isoDateTimeOffsetConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
new file mode 100644
index 0000000..9a3ade0
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONAny.Deserializer.class)
+@JsonSerialize(using = UnionJSONAny.Serializer.class)
+public class UnionJSONAny {
+    public Double doubleValue;
+    public JSONAny jsonAnyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONAny> {
+        @Override
+        public UnionJSONAny deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONAny value = new UnionJSONAny();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonAnyValue = jsonParser.readValueAs(JSONAny.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONAny");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONAny> {
+        @Override
+        public void serialize(UnionJSONAny obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonAnyValue != null) {
+                jsonGenerator.writeObject(obj.jsonAnyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
new file mode 100644
index 0000000..066ca26
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONCodingKey.Deserializer.class)
+@JsonSerialize(using = UnionJSONCodingKey.Serializer.class)
+public class UnionJSONCodingKey {
+    public Double doubleValue;
+    public JSONCodingKey jsonCodingKeyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONCodingKey> {
+        @Override
+        public UnionJSONCodingKey deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONCodingKey value = new UnionJSONCodingKey();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonCodingKeyValue = jsonParser.readValueAs(JSONCodingKey.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONCodingKey");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONCodingKey> {
+        @Override
+        public void serialize(UnionJSONCodingKey obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonCodingKeyValue != null) {
+                jsonGenerator.writeObject(obj.jsonCodingKeyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
new file mode 100644
index 0000000..6f1a5f0
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONDecoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONDecoder.Serializer.class)
+public class UnionJSONDecoder {
+    public Double doubleValue;
+    public JSONDecoder jsonDecoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONDecoder> {
+        @Override
+        public UnionJSONDecoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONDecoder value = new UnionJSONDecoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonDecoderValue = jsonParser.readValueAs(JSONDecoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONDecoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONDecoder> {
+        @Override
+        public void serialize(UnionJSONDecoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonDecoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonDecoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
new file mode 100644
index 0000000..9297c3d
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONEncoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONEncoder.Serializer.class)
+public class UnionJSONEncoder {
+    public Double doubleValue;
+    public JSONEncoder jsonEncoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONEncoder> {
+        @Override
+        public UnionJSONEncoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONEncoder value = new UnionJSONEncoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonEncoderValue = jsonParser.readValueAs(JSONEncoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONEncoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONEncoder> {
+        @Override
+        public void serialize(UnionJSONEncoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonEncoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonEncoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
new file mode 100644
index 0000000..08de45a
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONException.Deserializer.class)
+@JsonSerialize(using = UnionJSONException.Serializer.class)
+public class UnionJSONException {
+    public Double doubleValue;
+    public JSONException jsonExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONException> {
+        @Override
+        public UnionJSONException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONException value = new UnionJSONException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonExceptionValue = jsonParser.readValueAs(JSONException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONException> {
+        @Override
+        public void serialize(UnionJSONException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonExceptionValue != null) {
+                jsonGenerator.writeObject(obj.jsonExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
new file mode 100644
index 0000000..4114f93
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONGenerator.Deserializer.class)
+@JsonSerialize(using = UnionJSONGenerator.Serializer.class)
+public class UnionJSONGenerator {
+    public Double doubleValue;
+    public JSONGenerator jsonGeneratorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONGenerator> {
+        @Override
+        public UnionJSONGenerator deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONGenerator value = new UnionJSONGenerator();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonGeneratorValue = jsonParser.readValueAs(JSONGenerator.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONGenerator");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONGenerator> {
+        @Override
+        public void serialize(UnionJSONGenerator obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonGeneratorValue != null) {
+                jsonGenerator.writeObject(obj.jsonGeneratorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
new file mode 100644
index 0000000..45c2598
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNode.Deserializer.class)
+@JsonSerialize(using = UnionJSONNode.Serializer.class)
+public class UnionJSONNode {
+    public Double doubleValue;
+    public JSONNode jsonNodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNode> {
+        @Override
+        public UnionJSONNode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNode value = new UnionJSONNode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNodeValue = jsonParser.readValueAs(JSONNode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNode> {
+        @Override
+        public void serialize(UnionJSONNode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNodeValue != null) {
+                jsonGenerator.writeObject(obj.jsonNodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
new file mode 100644
index 0000000..43e59fb
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNull.Deserializer.class)
+@JsonSerialize(using = UnionJSONNull.Serializer.class)
+public class UnionJSONNull {
+    public Double doubleValue;
+    public JSONNull jsonNullValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNull> {
+        @Override
+        public UnionJSONNull deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNull value = new UnionJSONNull();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNullValue = jsonParser.readValueAs(JSONNull.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNull");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNull> {
+        @Override
+        public void serialize(UnionJSONNull obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNullValue != null) {
+                jsonGenerator.writeObject(obj.jsonNullValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
new file mode 100644
index 0000000..c27ed2f
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONParser.Deserializer.class)
+@JsonSerialize(using = UnionJSONParser.Serializer.class)
+public class UnionJSONParser {
+    public Double doubleValue;
+    public JSONParser jsonParserValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONParser> {
+        @Override
+        public UnionJSONParser deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONParser value = new UnionJSONParser();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonParserValue = jsonParser.readValueAs(JSONParser.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONParser");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONParser> {
+        @Override
+        public void serialize(UnionJSONParser obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonParserValue != null) {
+                jsonGenerator.writeObject(obj.jsonParserValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
new file mode 100644
index 0000000..ee561aa
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONReader.Deserializer.class)
+@JsonSerialize(using = UnionJSONReader.Serializer.class)
+public class UnionJSONReader {
+    public Double doubleValue;
+    public JSONReader jsonReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONReader> {
+        @Override
+        public UnionJSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONReader value = new UnionJSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonReaderValue = jsonParser.readValueAs(JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONReader> {
+        @Override
+        public void serialize(UnionJSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonReaderValue != null) {
+                jsonGenerator.writeObject(obj.jsonReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
new file mode 100644
index 0000000..36a76f3
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONTokenType.Deserializer.class)
+@JsonSerialize(using = UnionJSONTokenType.Serializer.class)
+public class UnionJSONTokenType {
+    public Double doubleValue;
+    public JSONTokenType jsonTokenTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONTokenType> {
+        @Override
+        public UnionJSONTokenType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONTokenType value = new UnionJSONTokenType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonTokenTypeValue = jsonParser.readValueAs(JSONTokenType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONTokenType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONTokenType> {
+        @Override
+        public void serialize(UnionJSONTokenType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonTokenTypeValue != null) {
+                jsonGenerator.writeObject(obj.jsonTokenTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
new file mode 100644
index 0000000..772625f
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNSError.Deserializer.class)
+@JsonSerialize(using = UnionNSError.Serializer.class)
+public class UnionNSError {
+    public Double doubleValue;
+    public NSError nsErrorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNSError> {
+        @Override
+        public UnionNSError deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNSError value = new UnionNSError();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.nsErrorValue = jsonParser.readValueAs(NSError.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNSError");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNSError> {
+        @Override
+        public void serialize(UnionNSError obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.nsErrorValue != null) {
+                jsonGenerator.writeObject(obj.nsErrorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
new file mode 100644
index 0000000..1a26bc7
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNoSuchMethod.Deserializer.class)
+@JsonSerialize(using = UnionNoSuchMethod.Serializer.class)
+public class UnionNoSuchMethod {
+    public Double doubleValue;
+    public NoSuchMethod noSuchMethodValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNoSuchMethod> {
+        @Override
+        public UnionNoSuchMethod deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNoSuchMethod value = new UnionNoSuchMethod();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.noSuchMethodValue = jsonParser.readValueAs(NoSuchMethod.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNoSuchMethod");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNoSuchMethod> {
+        @Override
+        public void serialize(UnionNoSuchMethod obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.noSuchMethodValue != null) {
+                jsonGenerator.writeObject(obj.noSuchMethodValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
new file mode 100644
index 0000000..9193385
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionObjectMapper.Deserializer.class)
+@JsonSerialize(using = UnionObjectMapper.Serializer.class)
+public class UnionObjectMapper {
+    public Double doubleValue;
+    public ObjectMapperClass objectMapperClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionObjectMapper> {
+        @Override
+        public UnionObjectMapper deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionObjectMapper value = new UnionObjectMapper();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.objectMapperClassValue = jsonParser.readValueAs(ObjectMapperClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionObjectMapper");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionObjectMapper> {
+        @Override
+        public void serialize(UnionObjectMapper obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.objectMapperClassValue != null) {
+                jsonGenerator.writeObject(obj.objectMapperClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
new file mode 100644
index 0000000..fd0e431
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionPrintMembers.Deserializer.class)
+@JsonSerialize(using = UnionPrintMembers.Serializer.class)
+public class UnionPrintMembers {
+    public Double doubleValue;
+    public PrintMembers printMembersValue;
+
+    static class Deserializer extends JsonDeserializer<UnionPrintMembers> {
+        @Override
+        public UnionPrintMembers deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionPrintMembers value = new UnionPrintMembers();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.printMembersValue = jsonParser.readValueAs(PrintMembers.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionPrintMembers");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionPrintMembers> {
+        @Override
+        public void serialize(UnionPrintMembers obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.printMembersValue != null) {
+                jsonGenerator.writeObject(obj.printMembersValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
new file mode 100644
index 0000000..7fd1eba
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRegExp.Deserializer.class)
+@JsonSerialize(using = UnionRegExp.Serializer.class)
+public class UnionRegExp {
+    public Double doubleValue;
+    public RegExp regExpValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRegExp> {
+        @Override
+        public UnionRegExp deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRegExp value = new UnionRegExp();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.regExpValue = jsonParser.readValueAs(RegExp.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRegExp");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRegExp> {
+        @Override
+        public void serialize(UnionRegExp obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.regExpValue != null) {
+                jsonGenerator.writeObject(obj.regExpValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
new file mode 100644
index 0000000..cfb986b
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRuntimeType.Deserializer.class)
+@JsonSerialize(using = UnionRuntimeType.Serializer.class)
+public class UnionRuntimeType {
+    public Double doubleValue;
+    public RuntimeType runtimeTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRuntimeType> {
+        @Override
+        public UnionRuntimeType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRuntimeType value = new UnionRuntimeType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.runtimeTypeValue = jsonParser.readValueAs(RuntimeType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRuntimeType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRuntimeType> {
+        @Override
+        public void serialize(UnionRuntimeType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.runtimeTypeValue != null) {
+                jsonGenerator.writeObject(obj.runtimeTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
new file mode 100644
index 0000000..abd8a7d
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionS.Deserializer.class)
+@JsonSerialize(using = UnionS.Serializer.class)
+public class UnionS {
+    public Double doubleValue;
+    public S sValue;
+
+    static class Deserializer extends JsonDeserializer<UnionS> {
+        @Override
+        public UnionS deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionS value = new UnionS();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.sValue = jsonParser.readValueAs(S.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionS");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionS> {
+        @Override
+        public void serialize(UnionS obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.sValue != null) {
+                jsonGenerator.writeObject(obj.sValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
new file mode 100644
index 0000000..81d992e
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSerializerProvider.Deserializer.class)
+@JsonSerialize(using = UnionSerializerProvider.Serializer.class)
+public class UnionSerializerProvider {
+    public Double doubleValue;
+    public SerializerProviderClass serializerProviderClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSerializerProvider> {
+        @Override
+        public UnionSerializerProvider deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSerializerProvider value = new UnionSerializerProvider();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.serializerProviderClassValue = jsonParser.readValueAs(SerializerProviderClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSerializerProvider");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSerializerProvider> {
+        @Override
+        public void serialize(UnionSerializerProvider obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.serializerProviderClassValue != null) {
+                jsonGenerator.writeObject(obj.serializerProviderClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
new file mode 100644
index 0000000..b2a4d33
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSimpleModule.Deserializer.class)
+@JsonSerialize(using = UnionSimpleModule.Serializer.class)
+public class UnionSimpleModule {
+    public Double doubleValue;
+    public SimpleModule simpleModuleValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSimpleModule> {
+        @Override
+        public UnionSimpleModule deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSimpleModule value = new UnionSimpleModule();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.simpleModuleValue = jsonParser.readValueAs(SimpleModule.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSimpleModule");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSimpleModule> {
+        @Override
+        public void serialize(UnionSimpleModule obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.simpleModuleValue != null) {
+                jsonGenerator.writeObject(obj.simpleModuleValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
new file mode 100644
index 0000000..99d7022
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStandards.Deserializer.class)
+@JsonSerialize(using = UnionStandards.Serializer.class)
+public class UnionStandards {
+    public Double doubleValue;
+    public Standards standardsValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStandards> {
+        @Override
+        public UnionStandards deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStandards value = new UnionStandards();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.standardsValue = jsonParser.readValueAs(Standards.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStandards");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStandards> {
+        @Override
+        public void serialize(UnionStandards obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.standardsValue != null) {
+                jsonGenerator.writeObject(obj.standardsValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
new file mode 100644
index 0000000..ef1406c
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdDeserializer.Deserializer.class)
+@JsonSerialize(using = UnionStdDeserializer.Serializer.class)
+public class UnionStdDeserializer {
+    public Double doubleValue;
+    public StdDeserializer stdDeserializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdDeserializer> {
+        @Override
+        public UnionStdDeserializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdDeserializer value = new UnionStdDeserializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdDeserializerValue = jsonParser.readValueAs(StdDeserializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdDeserializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdDeserializer> {
+        @Override
+        public void serialize(UnionStdDeserializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdDeserializerValue != null) {
+                jsonGenerator.writeObject(obj.stdDeserializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
new file mode 100644
index 0000000..957f1d1
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdSerializer.Deserializer.class)
+@JsonSerialize(using = UnionStdSerializer.Serializer.class)
+public class UnionStdSerializer {
+    public Double doubleValue;
+    public StdSerializer stdSerializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdSerializer> {
+        @Override
+        public UnionStdSerializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdSerializer value = new UnionStdSerializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdSerializerValue = jsonParser.readValueAs(StdSerializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdSerializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdSerializer> {
+        @Override
+        public void serialize(UnionStdSerializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdSerializerValue != null) {
+                jsonGenerator.writeObject(obj.stdSerializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
new file mode 100644
index 0000000..022de75
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnly.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnly.Serializer.class)
+public class UnionTimeOnly {
+    public Double doubleValue;
+    public TimeOnly timeOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnly> {
+        @Override
+        public UnionTimeOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnly value = new UnionTimeOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyValue = jsonParser.readValueAs(TimeOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnly> {
+        @Override
+        public void serialize(UnionTimeOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
new file mode 100644
index 0000000..fea1f46
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnlyConverter.Serializer.class)
+public class UnionTimeOnlyConverter {
+    public Double doubleValue;
+    public TimeOnlyConverter timeOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnlyConverter> {
+        @Override
+        public UnionTimeOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnlyConverter value = new UnionTimeOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyConverterValue = jsonParser.readValueAs(TimeOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnlyConverter> {
+        @Override
+        public void serialize(UnionTimeOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
new file mode 100644
index 0000000..1f150eb
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionToString.Deserializer.class)
+@JsonSerialize(using = UnionToString.Serializer.class)
+public class UnionToString {
+    public Double doubleValue;
+    public ToString toStringValue;
+
+    static class Deserializer extends JsonDeserializer<UnionToString> {
+        @Override
+        public UnionToString deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionToString value = new UnionToString();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.toStringValue = jsonParser.readValueAs(ToString.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionToString");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionToString> {
+        @Override
+        public void serialize(UnionToString obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.toStringValue != null) {
+                jsonGenerator.writeObject(obj.toStringValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
new file mode 100644
index 0000000..e892448
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUUID.Deserializer.class)
+@JsonSerialize(using = UnionUUID.Serializer.class)
+public class UnionUUID {
+    public Double doubleValue;
+    public UUIDClass uuidClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUUID> {
+        @Override
+        public UnionUUID deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUUID value = new UnionUUID();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.uuidClassValue = jsonParser.readValueAs(UUIDClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUUID");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUUID> {
+        @Override
+        public void serialize(UnionUUID obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.uuidClassValue != null) {
+                jsonGenerator.writeObject(obj.uuidClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
new file mode 100644
index 0000000..0348c69
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONReader.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONReader.Serializer.class)
+public class UnionUtf8JSONReader {
+    public Double doubleValue;
+    public Utf8JSONReader utf8JSONReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONReader> {
+        @Override
+        public UnionUtf8JSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONReader value = new UnionUtf8JSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONReaderValue = jsonParser.readValueAs(Utf8JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONReader> {
+        @Override
+        public void serialize(UnionUtf8JSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONReaderValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
new file mode 100644
index 0000000..6e1302c
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONWriter.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONWriter.Serializer.class)
+public class UnionUtf8JSONWriter {
+    public Double doubleValue;
+    public Utf8JSONWriter utf8JSONWriterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONWriter> {
+        @Override
+        public UnionUtf8JSONWriter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONWriter value = new UnionUtf8JSONWriter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONWriterValue = jsonParser.readValueAs(Utf8JSONWriter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONWriter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONWriter> {
+        @Override
+        public void serialize(UnionUtf8JSONWriter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONWriterValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONWriterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
new file mode 100644
index 0000000..72aa995
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONReader {
+}
diff --git a/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
new file mode 100644
index 0000000..a77c514
--- /dev/null
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONWriter {
+}
diff --git a/base/schema-java-datetime-legacy/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
index 1cff799..e4eaad7 100644
--- a/base/schema-java-datetime-legacy/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
@@ -4,7 +4,7 @@ import java.io.IOException;
 import com.fasterxml.jackson.annotation.*;
 
 public enum Enum {
-    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, DATE, DATE_PARSE_HANDLING, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NOT, NOT_EQ, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SET, SHORT, SIGNED, SIZEOF, STACKALLOC, STATIC, STATIC_ASSERT, STATIC_CAST, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TO_JSON, TOP_LEVEL, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
+    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CLONE, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, CULTURE_INFO, DATE, DATE_PARSE_HANDLING, DATE_FORMATTER, DATE_ONLY, DATE_ONLY_CONVERTER, DATE_TIME, DATE_TIME_STYLES, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, ENUM_VALUES, EQUALITY_CONTRACT, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FORMAT_EXCEPTION, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HASH_CODE, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ISO_DATE_TIME_OFFSET_CONVERTER, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, JSON_ANY, JSON_CODING_KEY, JSON_DECODER, JSON_ENCODER, JSON_EXCEPTION, JSON_GENERATOR, JSON_NODE, JSON_NULL, JSON_PARSER, JSON_READER, JSON_TOKEN_TYPE, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NO_SUCH_METHOD, NOT, NOT_EQ, NS_ERROR, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OBJECT_MAPPER, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRINT_MEMBERS, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REG_EXP, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, RUNTIME_TYPE, S, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SERIALIZER_PROVIDER, SET, SHORT, SIGNED, SIMPLE_MODULE, SIZEOF, STACKALLOC, STANDARDS, STATIC, STATIC_ASSERT, STATIC_CAST, STD_DESERIALIZER, STD_SERIALIZER, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TIME_ONLY, TIME_ONLY_CONVERTER, TO_JSON, TOP_LEVEL, TO_STRING, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, UTF8_JSON_READER, UTF8_JSON_WRITER, UUID, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
 
     @JsonValue
     public String toValue() {
@@ -52,6 +52,7 @@ public enum Enum {
             case CHECKED: return "checked";
             case CLASS: return "class";
             case ENUM_CLASS: return "Class";
+            case CLONE: return "clone";
             case CO_AWAIT: return "co_await";
             case CO_RETURN: return "co_return";
             case CO_YIELD: return "co_yield";
@@ -66,8 +67,14 @@ public enum Enum {
             case CONVENIENCE: return "convenience";
             case CONVERT: return "convert";
             case CONVERTER: return "converter";
+            case CULTURE_INFO: return "CultureInfo";
             case DATE: return "date";
             case DATE_PARSE_HANDLING: return "date_parse_handling";
+            case DATE_FORMATTER: return "DateFormatter";
+            case DATE_ONLY: return "DateOnly";
+            case DATE_ONLY_CONVERTER: return "DateOnlyConverter";
+            case DATE_TIME: return "DateTime";
+            case DATE_TIME_STYLES: return "DateTimeStyles";
             case DEBUGGER: return "debugger";
             case DECIMAL: return "decimal";
             case DECLARE: return "declare";
@@ -91,6 +98,8 @@ public enum Enum {
             case ELSE: return "else";
             case ENCODE_QUICK_TYPE: return "encode_quick_type";
             case ENUM: return "enum";
+            case ENUM_VALUES: return "EnumValues";
+            case EQUALITY_CONTRACT: return "equalityContract";
             case EVENT: return "event";
             case EXCEPT: return "except";
             case EXCEPTION: return "exception";
@@ -110,6 +119,7 @@ public enum Enum {
             case FLOAT: return "float";
             case FOR: return "for";
             case FOREACH: return "foreach";
+            case FORMAT_EXCEPTION: return "FormatException";
             case FRIEND: return "friend";
             case FROM: return "from";
             case FROM_JSON: return "from_json";
@@ -120,6 +130,7 @@ public enum Enum {
             case GO: return "go";
             case GOTO: return "goto";
             case GUARD: return "guard";
+            case HASH_CODE: return "hashCode";
             case HAS_OWN_PROPERTY: return "hasOwnProperty";
             case ID: return "id";
             case IF: return "if";
@@ -137,6 +148,7 @@ public enum Enum {
             case INT: return "int";
             case INTERFACE: return "interface";
             case INTERNAL: return "internal";
+            case ISO_DATE_TIME_OFFSET_CONVERTER: return "IsoDateTimeOffsetConverter";
             case ITERABLE: return "iterable";
             case IS: return "is";
             case JDEC: return "jdec";
@@ -147,6 +159,17 @@ public enum Enum {
             case JSON_SERIALIZER: return "json_serializer";
             case JSON_TOKEN: return "json_token";
             case JSON_WRITER: return "json_writer";
+            case JSON_ANY: return "JSONAny";
+            case JSON_CODING_KEY: return "JSONCodingKey";
+            case JSON_DECODER: return "JSONDecoder";
+            case JSON_ENCODER: return "JSONEncoder";
+            case JSON_EXCEPTION: return "JsonException";
+            case JSON_GENERATOR: return "JsonGenerator";
+            case JSON_NODE: return "JsonNode";
+            case JSON_NULL: return "JSONNull";
+            case JSON_PARSER: return "JsonParser";
+            case JSON_READER: return "JsonReader";
+            case JSON_TOKEN_TYPE: return "JsonTokenType";
             case LAMBDA: return "lambda";
             case LAZY: return "lazy";
             case LEFT: return "left";
@@ -171,14 +194,17 @@ public enum Enum {
             case ENUM_NONE: return "None";
             case NONLOCAL: return "nonlocal";
             case NONMUTATING: return "nonmutating";
+            case NO_SUCH_METHOD: return "noSuchMethod";
             case NOT: return "not";
             case NOT_EQ: return "not_eq";
+            case NS_ERROR: return "NSError";
             case NS_STRING: return "NSString";
             case NULL: return "NULL";
             case ENUM_NULL: return "null";
             case NULLPTR: return "nullptr";
             case NUMBER: return "number";
             case OBJECT: return "object";
+            case OBJECT_MAPPER: return "ObjectMapper";
             case OF: return "of";
             case ONEWAY: return "oneway";
             case OPEN: return "open";
@@ -197,6 +223,7 @@ public enum Enum {
             case PREFIX: return "prefix";
             case PRINT: return "print";
             case PRINTF: return "printf";
+            case PRINT_MEMBERS: return "printMembers";
             case PRIVATE: return "private";
             case PROTECTED: return "protected";
             case PROTOCOL: return "Protocol";
@@ -207,6 +234,7 @@ public enum Enum {
             case RANGE: return "range";
             case READONLY: return "readonly";
             case REF: return "ref";
+            case REG_EXP: return "RegExp";
             case REGISTER: return "register";
             case REINTERPRET_CAST: return "reinterpret_cast";
             case REPEAT: return "repeat";
@@ -218,6 +246,8 @@ public enum Enum {
             case RETHROWS: return "rethrows";
             case RETURN: return "return";
             case RIGHT: return "right";
+            case RUNTIME_TYPE: return "runtimeType";
+            case S: return "s";
             case SBYTE: return "sbyte";
             case SEALED: return "sealed";
             case SEL: return "SEL";
@@ -225,14 +255,19 @@ public enum Enum {
             case SELF: return "Self";
             case ENUM_SELF: return "self";
             case SERIALIZE: return "serialize";
+            case SERIALIZER_PROVIDER: return "SerializerProvider";
             case SET: return "set";
             case SHORT: return "short";
             case SIGNED: return "signed";
+            case SIMPLE_MODULE: return "SimpleModule";
             case SIZEOF: return "sizeof";
             case STACKALLOC: return "stackalloc";
+            case STANDARDS: return "Standards";
             case STATIC: return "static";
             case STATIC_ASSERT: return "static_assert";
             case STATIC_CAST: return "static_cast";
+            case STD_DESERIALIZER: return "StdDeserializer";
+            case STD_SERIALIZER: return "StdSerializer";
             case STRICTFP: return "strictfp";
             case STRING: return "string";
             case STRUCT: return "struct";
@@ -248,8 +283,11 @@ public enum Enum {
             case THREAD_LOCAL: return "thread_local";
             case THROW: return "throw";
             case THROWS: return "throws";
+            case TIME_ONLY: return "TimeOnly";
+            case TIME_ONLY_CONVERTER: return "TimeOnlyConverter";
             case TO_JSON: return "to_json";
             case TOP_LEVEL: return "top_level";
+            case TO_STRING: return "toString";
             case TRANSIENT: return "transient";
             case TRUE: return "True";
             case ENUM_TRUE: return "true";
@@ -271,6 +309,9 @@ public enum Enum {
             case UNSIGNED: return "unsigned";
             case USHORT: return "ushort";
             case USING: return "using";
+            case UTF8_JSON_READER: return "Utf8JsonReader";
+            case UTF8_JSON_WRITER: return "Utf8JsonWriter";
+            case UUID: return "UUID";
             case VAR: return "var";
             case VIRTUAL: return "virtual";
             case VOID: return "void";
@@ -335,6 +376,7 @@ public enum Enum {
         if (value.equals("checked")) return CHECKED;
         if (value.equals("class")) return CLASS;
         if (value.equals("Class")) return ENUM_CLASS;
+        if (value.equals("clone")) return CLONE;
         if (value.equals("co_await")) return CO_AWAIT;
         if (value.equals("co_return")) return CO_RETURN;
         if (value.equals("co_yield")) return CO_YIELD;
@@ -349,8 +391,14 @@ public enum Enum {
         if (value.equals("convenience")) return CONVENIENCE;
         if (value.equals("convert")) return CONVERT;
         if (value.equals("converter")) return CONVERTER;
+        if (value.equals("CultureInfo")) return CULTURE_INFO;
         if (value.equals("date")) return DATE;
         if (value.equals("date_parse_handling")) return DATE_PARSE_HANDLING;
+        if (value.equals("DateFormatter")) return DATE_FORMATTER;
+        if (value.equals("DateOnly")) return DATE_ONLY;
+        if (value.equals("DateOnlyConverter")) return DATE_ONLY_CONVERTER;
+        if (value.equals("DateTime")) return DATE_TIME;
+        if (value.equals("DateTimeStyles")) return DATE_TIME_STYLES;
         if (value.equals("debugger")) return DEBUGGER;
         if (value.equals("decimal")) return DECIMAL;
         if (value.equals("declare")) return DECLARE;
@@ -374,6 +422,8 @@ public enum Enum {
         if (value.equals("else")) return ELSE;
         if (value.equals("encode_quick_type")) return ENCODE_QUICK_TYPE;
         if (value.equals("enum")) return ENUM;
+        if (value.equals("EnumValues")) return ENUM_VALUES;
+        if (value.equals("equalityContract")) return EQUALITY_CONTRACT;
         if (value.equals("event")) return EVENT;
         if (value.equals("except")) return EXCEPT;
         if (value.equals("exception")) return EXCEPTION;
@@ -393,6 +443,7 @@ public enum Enum {
         if (value.equals("float")) return FLOAT;
         if (value.equals("for")) return FOR;
         if (value.equals("foreach")) return FOREACH;
+        if (value.equals("FormatException")) return FORMAT_EXCEPTION;
         if (value.equals("friend")) return FRIEND;
         if (value.equals("from")) return FROM;
         if (value.equals("from_json")) return FROM_JSON;
@@ -403,6 +454,7 @@ public enum Enum {
         if (value.equals("go")) return GO;
         if (value.equals("goto")) return GOTO;
         if (value.equals("guard")) return GUARD;
+        if (value.equals("hashCode")) return HASH_CODE;
         if (value.equals("hasOwnProperty")) return HAS_OWN_PROPERTY;
         if (value.equals("id")) return ID;
         if (value.equals("if")) return IF;
@@ -420,6 +472,7 @@ public enum Enum {
         if (value.equals("int")) return INT;
         if (value.equals("interface")) return INTERFACE;
         if (value.equals("internal")) return INTERNAL;
+        if (value.equals("IsoDateTimeOffsetConverter")) return ISO_DATE_TIME_OFFSET_CONVERTER;
         if (value.equals("iterable")) return ITERABLE;
         if (value.equals("is")) return IS;
         if (value.equals("jdec")) return JDEC;
@@ -430,6 +483,17 @@ public enum Enum {
         if (value.equals("json_serializer")) return JSON_SERIALIZER;
         if (value.equals("json_token")) return JSON_TOKEN;
         if (value.equals("json_writer")) return JSON_WRITER;
+        if (value.equals("JSONAny")) return JSON_ANY;
+        if (value.equals("JSONCodingKey")) return JSON_CODING_KEY;
+        if (value.equals("JSONDecoder")) return JSON_DECODER;
+        if (value.equals("JSONEncoder")) return JSON_ENCODER;
+        if (value.equals("JsonException")) return JSON_EXCEPTION;
+        if (value.equals("JsonGenerator")) return JSON_GENERATOR;
+        if (value.equals("JsonNode")) return JSON_NODE;
+        if (value.equals("JSONNull")) return JSON_NULL;
+        if (value.equals("JsonParser")) return JSON_PARSER;
+        if (value.equals("JsonReader")) return JSON_READER;
+        if (value.equals("JsonTokenType")) return JSON_TOKEN_TYPE;
         if (value.equals("lambda")) return LAMBDA;
         if (value.equals("lazy")) return LAZY;
         if (value.equals("left")) return LEFT;
@@ -454,14 +518,17 @@ public enum Enum {
         if (value.equals("None")) return ENUM_NONE;
         if (value.equals("nonlocal")) return NONLOCAL;
         if (value.equals("nonmutating")) return NONMUTATING;
+        if (value.equals("noSuchMethod")) return NO_SUCH_METHOD;
         if (value.equals("not")) return NOT;
         if (value.equals("not_eq")) return NOT_EQ;
+        if (value.equals("NSError")) return NS_ERROR;
         if (value.equals("NSString")) return NS_STRING;
         if (value.equals("NULL")) return NULL;
         if (value.equals("null")) return ENUM_NULL;
         if (value.equals("nullptr")) return NULLPTR;
         if (value.equals("number")) return NUMBER;
         if (value.equals("object")) return OBJECT;
+        if (value.equals("ObjectMapper")) return OBJECT_MAPPER;
         if (value.equals("of")) return OF;
         if (value.equals("oneway")) return ONEWAY;
         if (value.equals("open")) return OPEN;
@@ -480,6 +547,7 @@ public enum Enum {
         if (value.equals("prefix")) return PREFIX;
         if (value.equals("print")) return PRINT;
         if (value.equals("printf")) return PRINTF;
+        if (value.equals("printMembers")) return PRINT_MEMBERS;
         if (value.equals("private")) return PRIVATE;
         if (value.equals("protected")) return PROTECTED;
         if (value.equals("Protocol")) return PROTOCOL;
@@ -490,6 +558,7 @@ public enum Enum {
         if (value.equals("range")) return RANGE;
         if (value.equals("readonly")) return READONLY;
         if (value.equals("ref")) return REF;
+        if (value.equals("RegExp")) return REG_EXP;
         if (value.equals("register")) return REGISTER;
         if (value.equals("reinterpret_cast")) return REINTERPRET_CAST;
         if (value.equals("repeat")) return REPEAT;
@@ -501,6 +570,8 @@ public enum Enum {
         if (value.equals("rethrows")) return RETHROWS;
         if (value.equals("return")) return RETURN;
         if (value.equals("right")) return RIGHT;
+        if (value.equals("runtimeType")) return RUNTIME_TYPE;
+        if (value.equals("s")) return S;
         if (value.equals("sbyte")) return SBYTE;
         if (value.equals("sealed")) return SEALED;
         if (value.equals("SEL")) return SEL;
@@ -508,14 +579,19 @@ public enum Enum {
         if (value.equals("Self")) return SELF;
         if (value.equals("self")) return ENUM_SELF;
         if (value.equals("serialize")) return SERIALIZE;
+        if (value.equals("SerializerProvider")) return SERIALIZER_PROVIDER;
         if (value.equals("set")) return SET;
         if (value.equals("short")) return SHORT;
         if (value.equals("signed")) return SIGNED;
+        if (value.equals("SimpleModule")) return SIMPLE_MODULE;
         if (value.equals("sizeof")) return SIZEOF;
         if (value.equals("stackalloc")) return STACKALLOC;
+        if (value.equals("Standards")) return STANDARDS;
         if (value.equals("static")) return STATIC;
         if (value.equals("static_assert")) return STATIC_ASSERT;
         if (value.equals("static_cast")) return STATIC_CAST;
+        if (value.equals("StdDeserializer")) return STD_DESERIALIZER;
+        if (value.equals("StdSerializer")) return STD_SERIALIZER;
         if (value.equals("strictfp")) return STRICTFP;
         if (value.equals("string")) return STRING;
         if (value.equals("struct")) return STRUCT;
@@ -531,8 +607,11 @@ public enum Enum {
         if (value.equals("thread_local")) return THREAD_LOCAL;
         if (value.equals("throw")) return THROW;
         if (value.equals("throws")) return THROWS;
+        if (value.equals("TimeOnly")) return TIME_ONLY;
+        if (value.equals("TimeOnlyConverter")) return TIME_ONLY_CONVERTER;
         if (value.equals("to_json")) return TO_JSON;
         if (value.equals("top_level")) return TOP_LEVEL;
+        if (value.equals("toString")) return TO_STRING;
         if (value.equals("transient")) return TRANSIENT;
         if (value.equals("True")) return TRUE;
         if (value.equals("true")) return ENUM_TRUE;
@@ -554,6 +633,9 @@ public enum Enum {
         if (value.equals("unsigned")) return UNSIGNED;
         if (value.equals("ushort")) return USHORT;
         if (value.equals("using")) return USING;
+        if (value.equals("Utf8JsonReader")) return UTF8_JSON_READER;
+        if (value.equals("Utf8JsonWriter")) return UTF8_JSON_WRITER;
+        if (value.equals("UUID")) return UUID;
         if (value.equals("var")) return VAR;
         if (value.equals("virtual")) return VIRTUAL;
         if (value.equals("void")) return VOID;
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
new file mode 100644
index 0000000..395515a
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Clone {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
new file mode 100644
index 0000000..ab8c9f3
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class CultureInfo {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
new file mode 100644
index 0000000..1852e86
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateFormatter {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
new file mode 100644
index 0000000..9cdb53f
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnly {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
new file mode 100644
index 0000000..209bc20
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnlyConverter {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
new file mode 100644
index 0000000..2dd34d4
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTime {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
new file mode 100644
index 0000000..664d187
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTimeStyles {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
new file mode 100644
index 0000000..c9b5073
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EnumValues {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
new file mode 100644
index 0000000..8e559cf
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EqualityContract {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
new file mode 100644
index 0000000..90c6ac2
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class FormatException {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
new file mode 100644
index 0000000..4630f6d
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class HashCode {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..81b109b
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ISODateTimeOffsetConverter {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
new file mode 100644
index 0000000..e290886
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONAny {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
new file mode 100644
index 0000000..0ec06c5
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONCodingKey {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
new file mode 100644
index 0000000..c5d7a9e
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONDecoder {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
new file mode 100644
index 0000000..62ee11f
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONEncoder {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
new file mode 100644
index 0000000..7bf1460
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONException {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
new file mode 100644
index 0000000..0a71bad
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONGenerator {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
new file mode 100644
index 0000000..d5812d1
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNode {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
new file mode 100644
index 0000000..dcceb9d
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNull {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
new file mode 100644
index 0000000..5fb4825
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONParser {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
new file mode 100644
index 0000000..484c844
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONReader {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
new file mode 100644
index 0000000..48836d3
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONTokenType {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
new file mode 100644
index 0000000..3bfb7d3
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NSError {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
new file mode 100644
index 0000000..70f6955
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NoSuchMethod {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
new file mode 100644
index 0000000..18b5bfb
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ObjectMapperClass {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
new file mode 100644
index 0000000..5b2980b
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class PrintMembers {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
new file mode 100644
index 0000000..80bfb20
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RegExp {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
new file mode 100644
index 0000000..9bd4fed
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RuntimeType {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
new file mode 100644
index 0000000..1a01f93
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class S {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
new file mode 100644
index 0000000..6d39d10
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SerializerProviderClass {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
new file mode 100644
index 0000000..aa56c89
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SimpleModule {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
new file mode 100644
index 0000000..a60e82d
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Standards {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
new file mode 100644
index 0000000..6e4e58f
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdDeserializer {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
new file mode 100644
index 0000000..6f66948
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdSerializer {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
new file mode 100644
index 0000000..58358a5
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnly {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
new file mode 100644
index 0000000..3d727ea
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnlyConverter {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
new file mode 100644
index 0000000..500908e
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ToString {
+}
diff --git a/base/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
index cc83804..420f35a 100644
--- a/base/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
@@ -46,6 +46,7 @@ public class TopLevel {
     private UnionChecked checked;
     private UnionClassUnion purpleClass;
     private UnionClass topLevelClass;
+    private UnionClone clone;
     private UnionCoAwait coAwait;
     private UnionCoReturn coReturn;
     private UnionCoYield coYield;
@@ -60,8 +61,14 @@ public class TopLevel {
     private UnionConvenience convenience;
     private UnionConvert convert;
     private UnionConverter converter;
+    private UnionCultureInfo cultureInfo;
     private UnionDate date;
     private UnionDateParseHandling dateParseHandling;
+    private UnionDateFormatter dateFormatter;
+    private UnionDateOnly dateOnly;
+    private UnionDateOnlyConverter dateOnlyConverter;
+    private UnionDateTime dateTime;
+    private UnionDateTimeStyles dateTimeStyles;
     private UnionDebugger debugger;
     private UnionDecimal decimal;
     private UnionDeclare declare;
@@ -86,6 +93,8 @@ public class TopLevel {
     private UnionElse topLevelElse;
     private UnionEncodeQuickType encodeQuickType;
     private UnionEnum topLevelEnum;
+    private UnionEnumValues enumValues;
+    private UnionEqualityContract equalityContract;
     private UnionEvent event;
     private UnionExcept except;
     private UnionException exception;
@@ -105,6 +114,7 @@ public class TopLevel {
     private UnionFloat topLevelFloat;
     private UnionFor topLevelFor;
     private UnionForeach foreach;
+    private UnionFormatException formatException;
     private UnionFriend friend;
     private UnionFrom from;
     private UnionFromJSON fromJSON;
@@ -115,6 +125,7 @@ public class TopLevel {
     private UnionGo go;
     private UnionGoto topLevelGoto;
     private UnionGuard guard;
+    private UnionHashCode hashCode;
     private UnionHasOwnProperty hasOwnProperty;
     private UnionID id;
     private UnionIf topLevelIf;
@@ -133,6 +144,7 @@ public class TopLevel {
     private UnionInterface topLevelInterface;
     private UnionInternal internal;
     private UnionIs is;
+    private UnionISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private UnionIterable iterable;
     private UnionJdec jdec;
     private UnionJenc jenc;
@@ -142,6 +154,17 @@ public class TopLevel {
     private UnionJSONSerializer jsonSerializer;
     private UnionJSONToken jsonToken;
     private UnionJSONWriter jsonWriter;
+    private UnionJSONAny jsonAny;
+    private UnionJSONCodingKey jsonCodingKey;
+    private UnionJSONDecoder jsonDecoder;
+    private UnionJSONEncoder jsonEncoder;
+    private UnionJSONException jsonException;
+    private UnionJSONGenerator jsonGenerator;
+    private UnionJSONNode jsonNode;
+    private UnionJSONNull jsonNull;
+    private UnionJSONParser jsonParser;
+    private UnionJSONReader jsonReader;
+    private UnionJSONTokenType jsonTokenType;
     private UnionLambda lambda;
     private UnionLazy lazy;
     private UnionLeft left;
@@ -166,14 +189,17 @@ public class TopLevel {
     private UnionNone none;
     private UnionNonlocal nonlocal;
     private UnionNonmutating nonmutating;
+    private UnionNoSuchMethod noSuchMethod;
     private UnionNot not;
     private UnionNotEq notEq;
+    private UnionNSError nsError;
     private UnionNSString nsString;
     private UnionNULL topLevelNULL;
     private UnionNullUnion topLevelNull;
     private UnionNullptr nullptr;
     private UnionNumber number;
     private UnionObject object;
+    private UnionObjectMapper objectMapper;
     private UnionOf of;
     private UnionOneway oneway;
     private UnionOpen open;
@@ -192,6 +218,7 @@ public class TopLevel {
     private UnionPrefix prefix;
     private UnionPrint print;
     private UnionPrintf printf;
+    private UnionPrintMembers printMembers;
     private UnionPrivate topLevelPrivate;
     private UnionProtected topLevelProtected;
     private UnionProtocol protocol;
@@ -202,6 +229,7 @@ public class TopLevel {
     private UnionRange range;
     private UnionReadonly readonly;
     private UnionRef ref;
+    private UnionRegExp regExp;
     private UnionRegister register;
     private UnionReinterpretCast reinterpretCast;
     private UnionRepeat repeat;
@@ -213,6 +241,8 @@ public class TopLevel {
     private UnionRethrows rethrows;
     private UnionReturn topLevelReturn;
     private UnionRight right;
+    private UnionRuntimeType runtimeType;
+    private UnionS s;
     private UnionSbyte sbyte;
     private UnionSealed sealed;
     private UnionSEL sel;
@@ -220,14 +250,19 @@ public class TopLevel {
     private UnionSelf self;
     private UnionSelfUnion topLevelSelf;
     private UnionSerialize serialize;
+    private UnionSerializerProvider serializerProvider;
     private UnionSet set;
     private UnionShort topLevelShort;
     private UnionSigned signed;
+    private UnionSimpleModule simpleModule;
     private UnionSizeof sizeof;
     private UnionStackalloc stackalloc;
+    private UnionStandards standards;
     private UnionStatic topLevelStatic;
     private UnionStaticAssert staticAssert;
     private UnionStaticCast staticCast;
+    private UnionStdDeserializer stdDeserializer;
+    private UnionStdSerializer stdSerializer;
     private UnionStrictfp topLevelStrictfp;
     private UnionString string;
     private UnionStruct struct;
@@ -243,8 +278,11 @@ public class TopLevel {
     private UnionThreadLocal threadLocal;
     private UnionThrow topLevelThrow;
     private UnionThrows topLevelThrows;
+    private UnionTimeOnly timeOnly;
+    private UnionTimeOnlyConverter timeOnlyConverter;
     private UnionToJSON toJSON;
     private UnionTopLevel topLevel;
+    private UnionToString toString;
     private UnionTransient topLevelTransient;
     private UnionTrue topLevelTrue;
     private UnionTrueUnion purpleTrue;
@@ -266,6 +304,9 @@ public class TopLevel {
     private UnionUnsigned unsigned;
     private UnionUshort ushort;
     private UnionUsing using;
+    private UnionUtf8JSONReader utf8JSONReader;
+    private UnionUtf8JSONWriter utf8JSONWriter;
+    private UnionUUID uuid;
     private UnionVar var;
     private UnionVirtual virtual;
     private UnionVoid topLevelVoid;
@@ -496,6 +537,11 @@ public class TopLevel {
     @JsonProperty("Class")
     public void setTopLevelClass(UnionClass value) { this.topLevelClass = value; }
 
+    @JsonProperty("clone")
+    public UnionClone getClone() { return clone; }
+    @JsonProperty("clone")
+    public void setClone(UnionClone value) { this.clone = value; }
+
     @JsonProperty("co_await")
     public UnionCoAwait getCoAwait() { return coAwait; }
     @JsonProperty("co_await")
@@ -566,6 +612,11 @@ public class TopLevel {
     @JsonProperty("converter")
     public void setConverter(UnionConverter value) { this.converter = value; }
 
+    @JsonProperty("CultureInfo")
+    public UnionCultureInfo getCultureInfo() { return cultureInfo; }
+    @JsonProperty("CultureInfo")
+    public void setCultureInfo(UnionCultureInfo value) { this.cultureInfo = value; }
+
     @JsonProperty("date")
     public UnionDate getDate() { return date; }
     @JsonProperty("date")
@@ -576,6 +627,31 @@ public class TopLevel {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(UnionDateParseHandling value) { this.dateParseHandling = value; }
 
+    @JsonProperty("DateFormatter")
+    public UnionDateFormatter getDateFormatter() { return dateFormatter; }
+    @JsonProperty("DateFormatter")
+    public void setDateFormatter(UnionDateFormatter value) { this.dateFormatter = value; }
+
+    @JsonProperty("DateOnly")
+    public UnionDateOnly getDateOnly() { return dateOnly; }
+    @JsonProperty("DateOnly")
+    public void setDateOnly(UnionDateOnly value) { this.dateOnly = value; }
+
+    @JsonProperty("DateOnlyConverter")
+    public UnionDateOnlyConverter getDateOnlyConverter() { return dateOnlyConverter; }
+    @JsonProperty("DateOnlyConverter")
+    public void setDateOnlyConverter(UnionDateOnlyConverter value) { this.dateOnlyConverter = value; }
+
+    @JsonProperty("DateTime")
+    public UnionDateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(UnionDateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public UnionDateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(UnionDateTimeStyles value) { this.dateTimeStyles = value; }
+
     @JsonProperty("debugger")
     public UnionDebugger getDebugger() { return debugger; }
     @JsonProperty("debugger")
@@ -696,6 +772,16 @@ public class TopLevel {
     @JsonProperty("enum")
     public void setTopLevelEnum(UnionEnum value) { this.topLevelEnum = value; }
 
+    @JsonProperty("EnumValues")
+    public UnionEnumValues getEnumValues() { return enumValues; }
+    @JsonProperty("EnumValues")
+    public void setEnumValues(UnionEnumValues value) { this.enumValues = value; }
+
+    @JsonProperty("equalityContract")
+    public UnionEqualityContract getEqualityContract() { return equalityContract; }
+    @JsonProperty("equalityContract")
+    public void setEqualityContract(UnionEqualityContract value) { this.equalityContract = value; }
+
     @JsonProperty("event")
     public UnionEvent getEvent() { return event; }
     @JsonProperty("event")
@@ -791,6 +877,11 @@ public class TopLevel {
     @JsonProperty("foreach")
     public void setForeach(UnionForeach value) { this.foreach = value; }
 
+    @JsonProperty("FormatException")
+    public UnionFormatException getFormatException() { return formatException; }
+    @JsonProperty("FormatException")
+    public void setFormatException(UnionFormatException value) { this.formatException = value; }
+
     @JsonProperty("friend")
     public UnionFriend getFriend() { return friend; }
     @JsonProperty("friend")
@@ -841,6 +932,11 @@ public class TopLevel {
     @JsonProperty("guard")
     public void setGuard(UnionGuard value) { this.guard = value; }
 
+    @JsonProperty("hashCode")
+    public UnionHashCode getHashCode() { return hashCode; }
+    @JsonProperty("hashCode")
+    public void setHashCode(UnionHashCode value) { this.hashCode = value; }
+
     @JsonProperty("hasOwnProperty")
     public UnionHasOwnProperty getHasOwnProperty() { return hasOwnProperty; }
     @JsonProperty("hasOwnProperty")
@@ -931,6 +1027,11 @@ public class TopLevel {
     @JsonProperty("is")
     public void setIs(UnionIs value) { this.is = value; }
 
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public UnionISODateTimeOffsetConverter getISODateTimeOffsetConverter() { return isoDateTimeOffsetConverter; }
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public void setISODateTimeOffsetConverter(UnionISODateTimeOffsetConverter value) { this.isoDateTimeOffsetConverter = value; }
+
     @JsonProperty("iterable")
     public UnionIterable getIterable() { return iterable; }
     @JsonProperty("iterable")
@@ -976,6 +1077,61 @@ public class TopLevel {
     @JsonProperty("json_writer")
     public void setJSONWriter(UnionJSONWriter value) { this.jsonWriter = value; }
 
+    @JsonProperty("JSONAny")
+    public UnionJSONAny getJSONAny() { return jsonAny; }
+    @JsonProperty("JSONAny")
+    public void setJSONAny(UnionJSONAny value) { this.jsonAny = value; }
+
+    @JsonProperty("JSONCodingKey")
+    public UnionJSONCodingKey getJSONCodingKey() { return jsonCodingKey; }
+    @JsonProperty("JSONCodingKey")
+    public void setJSONCodingKey(UnionJSONCodingKey value) { this.jsonCodingKey = value; }
+
+    @JsonProperty("JSONDecoder")
+    public UnionJSONDecoder getJSONDecoder() { return jsonDecoder; }
+    @JsonProperty("JSONDecoder")
+    public void setJSONDecoder(UnionJSONDecoder value) { this.jsonDecoder = value; }
+
+    @JsonProperty("JSONEncoder")
+    public UnionJSONEncoder getJSONEncoder() { return jsonEncoder; }
+    @JsonProperty("JSONEncoder")
+    public void setJSONEncoder(UnionJSONEncoder value) { this.jsonEncoder = value; }
+
+    @JsonProperty("JsonException")
+    public UnionJSONException getJSONException() { return jsonException; }
+    @JsonProperty("JsonException")
+    public void setJSONException(UnionJSONException value) { this.jsonException = value; }
+
+    @JsonProperty("JsonGenerator")
+    public UnionJSONGenerator getJSONGenerator() { return jsonGenerator; }
+    @JsonProperty("JsonGenerator")
+    public void setJSONGenerator(UnionJSONGenerator value) { this.jsonGenerator = value; }
+
+    @JsonProperty("JsonNode")
+    public UnionJSONNode getJSONNode() { return jsonNode; }
+    @JsonProperty("JsonNode")
+    public void setJSONNode(UnionJSONNode value) { this.jsonNode = value; }
+
+    @JsonProperty("JSONNull")
+    public UnionJSONNull getJSONNull() { return jsonNull; }
+    @JsonProperty("JSONNull")
+    public void setJSONNull(UnionJSONNull value) { this.jsonNull = value; }
+
+    @JsonProperty("JsonParser")
+    public UnionJSONParser getJSONParser() { return jsonParser; }
+    @JsonProperty("JsonParser")
+    public void setJSONParser(UnionJSONParser value) { this.jsonParser = value; }
+
+    @JsonProperty("JsonReader")
+    public UnionJSONReader getJSONReader() { return jsonReader; }
+    @JsonProperty("JsonReader")
+    public void setJSONReader(UnionJSONReader value) { this.jsonReader = value; }
+
+    @JsonProperty("JsonTokenType")
+    public UnionJSONTokenType getJSONTokenType() { return jsonTokenType; }
+    @JsonProperty("JsonTokenType")
+    public void setJSONTokenType(UnionJSONTokenType value) { this.jsonTokenType = value; }
+
     @JsonProperty("lambda")
     public UnionLambda getLambda() { return lambda; }
     @JsonProperty("lambda")
@@ -1096,6 +1252,11 @@ public class TopLevel {
     @JsonProperty("nonmutating")
     public void setNonmutating(UnionNonmutating value) { this.nonmutating = value; }
 
+    @JsonProperty("noSuchMethod")
+    public UnionNoSuchMethod getNoSuchMethod() { return noSuchMethod; }
+    @JsonProperty("noSuchMethod")
+    public void setNoSuchMethod(UnionNoSuchMethod value) { this.noSuchMethod = value; }
+
     @JsonProperty("not")
     public UnionNot getNot() { return not; }
     @JsonProperty("not")
@@ -1106,6 +1267,11 @@ public class TopLevel {
     @JsonProperty("not_eq")
     public void setNotEq(UnionNotEq value) { this.notEq = value; }
 
+    @JsonProperty("NSError")
+    public UnionNSError getNSError() { return nsError; }
+    @JsonProperty("NSError")
+    public void setNSError(UnionNSError value) { this.nsError = value; }
+
     @JsonProperty("NSString")
     public UnionNSString getNSString() { return nsString; }
     @JsonProperty("NSString")
@@ -1136,6 +1302,11 @@ public class TopLevel {
     @JsonProperty("object")
     public void setObject(UnionObject value) { this.object = value; }
 
+    @JsonProperty("ObjectMapper")
+    public UnionObjectMapper getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(UnionObjectMapper value) { this.objectMapper = value; }
+
     @JsonProperty("of")
     public UnionOf getOf() { return of; }
     @JsonProperty("of")
@@ -1226,6 +1397,11 @@ public class TopLevel {
     @JsonProperty("printf")
     public void setPrintf(UnionPrintf value) { this.printf = value; }
 
+    @JsonProperty("printMembers")
+    public UnionPrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(UnionPrintMembers value) { this.printMembers = value; }
+
     @JsonProperty("private")
     public UnionPrivate getTopLevelPrivate() { return topLevelPrivate; }
     @JsonProperty("private")
@@ -1276,6 +1452,11 @@ public class TopLevel {
     @JsonProperty("ref")
     public void setRef(UnionRef value) { this.ref = value; }
 
+    @JsonProperty("RegExp")
+    public UnionRegExp getRegExp() { return regExp; }
+    @JsonProperty("RegExp")
+    public void setRegExp(UnionRegExp value) { this.regExp = value; }
+
     @JsonProperty("register")
     public UnionRegister getRegister() { return register; }
     @JsonProperty("register")
@@ -1331,6 +1512,16 @@ public class TopLevel {
     @JsonProperty("right")
     public void setRight(UnionRight value) { this.right = value; }
 
+    @JsonProperty("runtimeType")
+    public UnionRuntimeType getRuntimeType() { return runtimeType; }
+    @JsonProperty("runtimeType")
+    public void setRuntimeType(UnionRuntimeType value) { this.runtimeType = value; }
+
+    @JsonProperty("s")
+    public UnionS getS() { return s; }
+    @JsonProperty("s")
+    public void setS(UnionS value) { this.s = value; }
+
     @JsonProperty("sbyte")
     public UnionSbyte getSbyte() { return sbyte; }
     @JsonProperty("sbyte")
@@ -1366,6 +1557,11 @@ public class TopLevel {
     @JsonProperty("serialize")
     public void setSerialize(UnionSerialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public UnionSerializerProvider getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(UnionSerializerProvider value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public UnionSet getSet() { return set; }
     @JsonProperty("set")
@@ -1381,6 +1577,11 @@ public class TopLevel {
     @JsonProperty("signed")
     public void setSigned(UnionSigned value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public UnionSimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(UnionSimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public UnionSizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -1391,6 +1592,11 @@ public class TopLevel {
     @JsonProperty("stackalloc")
     public void setStackalloc(UnionStackalloc value) { this.stackalloc = value; }
 
+    @JsonProperty("Standards")
+    public UnionStandards getStandards() { return standards; }
+    @JsonProperty("Standards")
+    public void setStandards(UnionStandards value) { this.standards = value; }
+
     @JsonProperty("static")
     public UnionStatic getTopLevelStatic() { return topLevelStatic; }
     @JsonProperty("static")
@@ -1406,6 +1612,16 @@ public class TopLevel {
     @JsonProperty("static_cast")
     public void setStaticCast(UnionStaticCast value) { this.staticCast = value; }
 
+    @JsonProperty("StdDeserializer")
+    public UnionStdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(UnionStdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public UnionStdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(UnionStdSerializer value) { this.stdSerializer = value; }
+
     @JsonProperty("strictfp")
     public UnionStrictfp getTopLevelStrictfp() { return topLevelStrictfp; }
     @JsonProperty("strictfp")
@@ -1481,6 +1697,16 @@ public class TopLevel {
     @JsonProperty("throws")
     public void setTopLevelThrows(UnionThrows value) { this.topLevelThrows = value; }
 
+    @JsonProperty("TimeOnly")
+    public UnionTimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(UnionTimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public UnionTimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(UnionTimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
     @JsonProperty("to_json")
     public UnionToJSON getToJSON() { return toJSON; }
     @JsonProperty("to_json")
@@ -1491,6 +1717,11 @@ public class TopLevel {
     @JsonProperty("top_level")
     public void setTopLevel(UnionTopLevel value) { this.topLevel = value; }
 
+    @JsonProperty("toString")
+    public UnionToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(UnionToString value) { this.toString = value; }
+
     @JsonProperty("transient")
     public UnionTransient getTopLevelTransient() { return topLevelTransient; }
     @JsonProperty("transient")
@@ -1596,6 +1827,21 @@ public class TopLevel {
     @JsonProperty("using")
     public void setUsing(UnionUsing value) { this.using = value; }
 
+    @JsonProperty("Utf8JsonReader")
+    public UnionUtf8JSONReader getUtf8JSONReader() { return utf8JSONReader; }
+    @JsonProperty("Utf8JsonReader")
+    public void setUtf8JSONReader(UnionUtf8JSONReader value) { this.utf8JSONReader = value; }
+
+    @JsonProperty("Utf8JsonWriter")
+    public UnionUtf8JSONWriter getUtf8JSONWriter() { return utf8JSONWriter; }
+    @JsonProperty("Utf8JsonWriter")
+    public void setUtf8JSONWriter(UnionUtf8JSONWriter value) { this.utf8JSONWriter = value; }
+
+    @JsonProperty("UUID")
+    public UnionUUID getUUID() { return uuid; }
+    @JsonProperty("UUID")
+    public void setUUID(UnionUUID value) { this.uuid = value; }
+
     @JsonProperty("var")
     public UnionVar getVar() { return var; }
     @JsonProperty("var")
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
new file mode 100644
index 0000000..487eea7
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class UUIDClass {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
new file mode 100644
index 0000000..70b95b9
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionClone.Deserializer.class)
+@JsonSerialize(using = UnionClone.Serializer.class)
+public class UnionClone {
+    public Double doubleValue;
+    public Clone cloneValue;
+
+    static class Deserializer extends JsonDeserializer<UnionClone> {
+        @Override
+        public UnionClone deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionClone value = new UnionClone();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cloneValue = jsonParser.readValueAs(Clone.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionClone");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionClone> {
+        @Override
+        public void serialize(UnionClone obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cloneValue != null) {
+                jsonGenerator.writeObject(obj.cloneValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
new file mode 100644
index 0000000..9f95338
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionCultureInfo.Deserializer.class)
+@JsonSerialize(using = UnionCultureInfo.Serializer.class)
+public class UnionCultureInfo {
+    public Double doubleValue;
+    public CultureInfo cultureInfoValue;
+
+    static class Deserializer extends JsonDeserializer<UnionCultureInfo> {
+        @Override
+        public UnionCultureInfo deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionCultureInfo value = new UnionCultureInfo();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cultureInfoValue = jsonParser.readValueAs(CultureInfo.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionCultureInfo");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionCultureInfo> {
+        @Override
+        public void serialize(UnionCultureInfo obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cultureInfoValue != null) {
+                jsonGenerator.writeObject(obj.cultureInfoValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
new file mode 100644
index 0000000..f0e95ab
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateFormatter.Deserializer.class)
+@JsonSerialize(using = UnionDateFormatter.Serializer.class)
+public class UnionDateFormatter {
+    public Double doubleValue;
+    public DateFormatter dateFormatterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateFormatter> {
+        @Override
+        public UnionDateFormatter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateFormatter value = new UnionDateFormatter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateFormatterValue = jsonParser.readValueAs(DateFormatter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateFormatter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateFormatter> {
+        @Override
+        public void serialize(UnionDateFormatter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateFormatterValue != null) {
+                jsonGenerator.writeObject(obj.dateFormatterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
new file mode 100644
index 0000000..1d24369
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnly.Deserializer.class)
+@JsonSerialize(using = UnionDateOnly.Serializer.class)
+public class UnionDateOnly {
+    public Double doubleValue;
+    public DateOnly dateOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnly> {
+        @Override
+        public UnionDateOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnly value = new UnionDateOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyValue = jsonParser.readValueAs(DateOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnly> {
+        @Override
+        public void serialize(UnionDateOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
new file mode 100644
index 0000000..a07f715
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionDateOnlyConverter.Serializer.class)
+public class UnionDateOnlyConverter {
+    public Double doubleValue;
+    public DateOnlyConverter dateOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnlyConverter> {
+        @Override
+        public UnionDateOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnlyConverter value = new UnionDateOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyConverterValue = jsonParser.readValueAs(DateOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnlyConverter> {
+        @Override
+        public void serialize(UnionDateOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
new file mode 100644
index 0000000..baa2f1c
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTime.Deserializer.class)
+@JsonSerialize(using = UnionDateTime.Serializer.class)
+public class UnionDateTime {
+    public Double doubleValue;
+    public DateTime dateTimeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTime> {
+        @Override
+        public UnionDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTime value = new UnionDateTime();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeValue = jsonParser.readValueAs(DateTime.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTime");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTime> {
+        @Override
+        public void serialize(UnionDateTime obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
new file mode 100644
index 0000000..9baee16
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTimeStyles.Deserializer.class)
+@JsonSerialize(using = UnionDateTimeStyles.Serializer.class)
+public class UnionDateTimeStyles {
+    public Double doubleValue;
+    public DateTimeStyles dateTimeStylesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTimeStyles> {
+        @Override
+        public UnionDateTimeStyles deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTimeStyles value = new UnionDateTimeStyles();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeStylesValue = jsonParser.readValueAs(DateTimeStyles.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTimeStyles");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTimeStyles> {
+        @Override
+        public void serialize(UnionDateTimeStyles obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeStylesValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeStylesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
new file mode 100644
index 0000000..a341540
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEnumValues.Deserializer.class)
+@JsonSerialize(using = UnionEnumValues.Serializer.class)
+public class UnionEnumValues {
+    public Double doubleValue;
+    public EnumValues enumValuesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEnumValues> {
+        @Override
+        public UnionEnumValues deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEnumValues value = new UnionEnumValues();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.enumValuesValue = jsonParser.readValueAs(EnumValues.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEnumValues");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEnumValues> {
+        @Override
+        public void serialize(UnionEnumValues obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.enumValuesValue != null) {
+                jsonGenerator.writeObject(obj.enumValuesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
new file mode 100644
index 0000000..97447af
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEqualityContract.Deserializer.class)
+@JsonSerialize(using = UnionEqualityContract.Serializer.class)
+public class UnionEqualityContract {
+    public Double doubleValue;
+    public EqualityContract equalityContractValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEqualityContract> {
+        @Override
+        public UnionEqualityContract deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEqualityContract value = new UnionEqualityContract();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.equalityContractValue = jsonParser.readValueAs(EqualityContract.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEqualityContract");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEqualityContract> {
+        @Override
+        public void serialize(UnionEqualityContract obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.equalityContractValue != null) {
+                jsonGenerator.writeObject(obj.equalityContractValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
new file mode 100644
index 0000000..2bde37a
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionFormatException.Deserializer.class)
+@JsonSerialize(using = UnionFormatException.Serializer.class)
+public class UnionFormatException {
+    public Double doubleValue;
+    public FormatException formatExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionFormatException> {
+        @Override
+        public UnionFormatException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionFormatException value = new UnionFormatException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.formatExceptionValue = jsonParser.readValueAs(FormatException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionFormatException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionFormatException> {
+        @Override
+        public void serialize(UnionFormatException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.formatExceptionValue != null) {
+                jsonGenerator.writeObject(obj.formatExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
new file mode 100644
index 0000000..fdd7eac
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionHashCode.Deserializer.class)
+@JsonSerialize(using = UnionHashCode.Serializer.class)
+public class UnionHashCode {
+    public Double doubleValue;
+    public HashCode hashCodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionHashCode> {
+        @Override
+        public UnionHashCode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionHashCode value = new UnionHashCode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.hashCodeValue = jsonParser.readValueAs(HashCode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionHashCode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionHashCode> {
+        @Override
+        public void serialize(UnionHashCode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.hashCodeValue != null) {
+                jsonGenerator.writeObject(obj.hashCodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..0a1f36e
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionISODateTimeOffsetConverter.Deserializer.class)
+@JsonSerialize(using = UnionISODateTimeOffsetConverter.Serializer.class)
+public class UnionISODateTimeOffsetConverter {
+    public Double doubleValue;
+    public ISODateTimeOffsetConverter isoDateTimeOffsetConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public UnionISODateTimeOffsetConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionISODateTimeOffsetConverter value = new UnionISODateTimeOffsetConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.isoDateTimeOffsetConverterValue = jsonParser.readValueAs(ISODateTimeOffsetConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionISODateTimeOffsetConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public void serialize(UnionISODateTimeOffsetConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.isoDateTimeOffsetConverterValue != null) {
+                jsonGenerator.writeObject(obj.isoDateTimeOffsetConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
new file mode 100644
index 0000000..9a3ade0
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONAny.Deserializer.class)
+@JsonSerialize(using = UnionJSONAny.Serializer.class)
+public class UnionJSONAny {
+    public Double doubleValue;
+    public JSONAny jsonAnyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONAny> {
+        @Override
+        public UnionJSONAny deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONAny value = new UnionJSONAny();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonAnyValue = jsonParser.readValueAs(JSONAny.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONAny");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONAny> {
+        @Override
+        public void serialize(UnionJSONAny obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonAnyValue != null) {
+                jsonGenerator.writeObject(obj.jsonAnyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
new file mode 100644
index 0000000..066ca26
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONCodingKey.Deserializer.class)
+@JsonSerialize(using = UnionJSONCodingKey.Serializer.class)
+public class UnionJSONCodingKey {
+    public Double doubleValue;
+    public JSONCodingKey jsonCodingKeyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONCodingKey> {
+        @Override
+        public UnionJSONCodingKey deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONCodingKey value = new UnionJSONCodingKey();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonCodingKeyValue = jsonParser.readValueAs(JSONCodingKey.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONCodingKey");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONCodingKey> {
+        @Override
+        public void serialize(UnionJSONCodingKey obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonCodingKeyValue != null) {
+                jsonGenerator.writeObject(obj.jsonCodingKeyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
new file mode 100644
index 0000000..6f1a5f0
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONDecoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONDecoder.Serializer.class)
+public class UnionJSONDecoder {
+    public Double doubleValue;
+    public JSONDecoder jsonDecoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONDecoder> {
+        @Override
+        public UnionJSONDecoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONDecoder value = new UnionJSONDecoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonDecoderValue = jsonParser.readValueAs(JSONDecoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONDecoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONDecoder> {
+        @Override
+        public void serialize(UnionJSONDecoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonDecoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonDecoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
new file mode 100644
index 0000000..9297c3d
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONEncoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONEncoder.Serializer.class)
+public class UnionJSONEncoder {
+    public Double doubleValue;
+    public JSONEncoder jsonEncoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONEncoder> {
+        @Override
+        public UnionJSONEncoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONEncoder value = new UnionJSONEncoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonEncoderValue = jsonParser.readValueAs(JSONEncoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONEncoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONEncoder> {
+        @Override
+        public void serialize(UnionJSONEncoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonEncoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonEncoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
new file mode 100644
index 0000000..08de45a
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONException.Deserializer.class)
+@JsonSerialize(using = UnionJSONException.Serializer.class)
+public class UnionJSONException {
+    public Double doubleValue;
+    public JSONException jsonExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONException> {
+        @Override
+        public UnionJSONException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONException value = new UnionJSONException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonExceptionValue = jsonParser.readValueAs(JSONException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONException> {
+        @Override
+        public void serialize(UnionJSONException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonExceptionValue != null) {
+                jsonGenerator.writeObject(obj.jsonExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
new file mode 100644
index 0000000..4114f93
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONGenerator.Deserializer.class)
+@JsonSerialize(using = UnionJSONGenerator.Serializer.class)
+public class UnionJSONGenerator {
+    public Double doubleValue;
+    public JSONGenerator jsonGeneratorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONGenerator> {
+        @Override
+        public UnionJSONGenerator deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONGenerator value = new UnionJSONGenerator();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonGeneratorValue = jsonParser.readValueAs(JSONGenerator.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONGenerator");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONGenerator> {
+        @Override
+        public void serialize(UnionJSONGenerator obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonGeneratorValue != null) {
+                jsonGenerator.writeObject(obj.jsonGeneratorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
new file mode 100644
index 0000000..45c2598
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNode.Deserializer.class)
+@JsonSerialize(using = UnionJSONNode.Serializer.class)
+public class UnionJSONNode {
+    public Double doubleValue;
+    public JSONNode jsonNodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNode> {
+        @Override
+        public UnionJSONNode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNode value = new UnionJSONNode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNodeValue = jsonParser.readValueAs(JSONNode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNode> {
+        @Override
+        public void serialize(UnionJSONNode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNodeValue != null) {
+                jsonGenerator.writeObject(obj.jsonNodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
new file mode 100644
index 0000000..43e59fb
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNull.Deserializer.class)
+@JsonSerialize(using = UnionJSONNull.Serializer.class)
+public class UnionJSONNull {
+    public Double doubleValue;
+    public JSONNull jsonNullValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNull> {
+        @Override
+        public UnionJSONNull deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNull value = new UnionJSONNull();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNullValue = jsonParser.readValueAs(JSONNull.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNull");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNull> {
+        @Override
+        public void serialize(UnionJSONNull obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNullValue != null) {
+                jsonGenerator.writeObject(obj.jsonNullValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
new file mode 100644
index 0000000..c27ed2f
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONParser.Deserializer.class)
+@JsonSerialize(using = UnionJSONParser.Serializer.class)
+public class UnionJSONParser {
+    public Double doubleValue;
+    public JSONParser jsonParserValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONParser> {
+        @Override
+        public UnionJSONParser deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONParser value = new UnionJSONParser();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonParserValue = jsonParser.readValueAs(JSONParser.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONParser");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONParser> {
+        @Override
+        public void serialize(UnionJSONParser obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonParserValue != null) {
+                jsonGenerator.writeObject(obj.jsonParserValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
new file mode 100644
index 0000000..ee561aa
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONReader.Deserializer.class)
+@JsonSerialize(using = UnionJSONReader.Serializer.class)
+public class UnionJSONReader {
+    public Double doubleValue;
+    public JSONReader jsonReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONReader> {
+        @Override
+        public UnionJSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONReader value = new UnionJSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonReaderValue = jsonParser.readValueAs(JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONReader> {
+        @Override
+        public void serialize(UnionJSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonReaderValue != null) {
+                jsonGenerator.writeObject(obj.jsonReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
new file mode 100644
index 0000000..36a76f3
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONTokenType.Deserializer.class)
+@JsonSerialize(using = UnionJSONTokenType.Serializer.class)
+public class UnionJSONTokenType {
+    public Double doubleValue;
+    public JSONTokenType jsonTokenTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONTokenType> {
+        @Override
+        public UnionJSONTokenType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONTokenType value = new UnionJSONTokenType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonTokenTypeValue = jsonParser.readValueAs(JSONTokenType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONTokenType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONTokenType> {
+        @Override
+        public void serialize(UnionJSONTokenType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonTokenTypeValue != null) {
+                jsonGenerator.writeObject(obj.jsonTokenTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
new file mode 100644
index 0000000..772625f
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNSError.Deserializer.class)
+@JsonSerialize(using = UnionNSError.Serializer.class)
+public class UnionNSError {
+    public Double doubleValue;
+    public NSError nsErrorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNSError> {
+        @Override
+        public UnionNSError deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNSError value = new UnionNSError();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.nsErrorValue = jsonParser.readValueAs(NSError.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNSError");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNSError> {
+        @Override
+        public void serialize(UnionNSError obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.nsErrorValue != null) {
+                jsonGenerator.writeObject(obj.nsErrorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
new file mode 100644
index 0000000..1a26bc7
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNoSuchMethod.Deserializer.class)
+@JsonSerialize(using = UnionNoSuchMethod.Serializer.class)
+public class UnionNoSuchMethod {
+    public Double doubleValue;
+    public NoSuchMethod noSuchMethodValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNoSuchMethod> {
+        @Override
+        public UnionNoSuchMethod deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNoSuchMethod value = new UnionNoSuchMethod();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.noSuchMethodValue = jsonParser.readValueAs(NoSuchMethod.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNoSuchMethod");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNoSuchMethod> {
+        @Override
+        public void serialize(UnionNoSuchMethod obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.noSuchMethodValue != null) {
+                jsonGenerator.writeObject(obj.noSuchMethodValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
new file mode 100644
index 0000000..9193385
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionObjectMapper.Deserializer.class)
+@JsonSerialize(using = UnionObjectMapper.Serializer.class)
+public class UnionObjectMapper {
+    public Double doubleValue;
+    public ObjectMapperClass objectMapperClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionObjectMapper> {
+        @Override
+        public UnionObjectMapper deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionObjectMapper value = new UnionObjectMapper();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.objectMapperClassValue = jsonParser.readValueAs(ObjectMapperClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionObjectMapper");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionObjectMapper> {
+        @Override
+        public void serialize(UnionObjectMapper obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.objectMapperClassValue != null) {
+                jsonGenerator.writeObject(obj.objectMapperClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
new file mode 100644
index 0000000..fd0e431
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionPrintMembers.Deserializer.class)
+@JsonSerialize(using = UnionPrintMembers.Serializer.class)
+public class UnionPrintMembers {
+    public Double doubleValue;
+    public PrintMembers printMembersValue;
+
+    static class Deserializer extends JsonDeserializer<UnionPrintMembers> {
+        @Override
+        public UnionPrintMembers deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionPrintMembers value = new UnionPrintMembers();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.printMembersValue = jsonParser.readValueAs(PrintMembers.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionPrintMembers");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionPrintMembers> {
+        @Override
+        public void serialize(UnionPrintMembers obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.printMembersValue != null) {
+                jsonGenerator.writeObject(obj.printMembersValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
new file mode 100644
index 0000000..7fd1eba
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRegExp.Deserializer.class)
+@JsonSerialize(using = UnionRegExp.Serializer.class)
+public class UnionRegExp {
+    public Double doubleValue;
+    public RegExp regExpValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRegExp> {
+        @Override
+        public UnionRegExp deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRegExp value = new UnionRegExp();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.regExpValue = jsonParser.readValueAs(RegExp.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRegExp");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRegExp> {
+        @Override
+        public void serialize(UnionRegExp obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.regExpValue != null) {
+                jsonGenerator.writeObject(obj.regExpValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
new file mode 100644
index 0000000..cfb986b
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRuntimeType.Deserializer.class)
+@JsonSerialize(using = UnionRuntimeType.Serializer.class)
+public class UnionRuntimeType {
+    public Double doubleValue;
+    public RuntimeType runtimeTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRuntimeType> {
+        @Override
+        public UnionRuntimeType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRuntimeType value = new UnionRuntimeType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.runtimeTypeValue = jsonParser.readValueAs(RuntimeType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRuntimeType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRuntimeType> {
+        @Override
+        public void serialize(UnionRuntimeType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.runtimeTypeValue != null) {
+                jsonGenerator.writeObject(obj.runtimeTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
new file mode 100644
index 0000000..abd8a7d
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionS.Deserializer.class)
+@JsonSerialize(using = UnionS.Serializer.class)
+public class UnionS {
+    public Double doubleValue;
+    public S sValue;
+
+    static class Deserializer extends JsonDeserializer<UnionS> {
+        @Override
+        public UnionS deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionS value = new UnionS();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.sValue = jsonParser.readValueAs(S.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionS");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionS> {
+        @Override
+        public void serialize(UnionS obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.sValue != null) {
+                jsonGenerator.writeObject(obj.sValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
new file mode 100644
index 0000000..81d992e
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSerializerProvider.Deserializer.class)
+@JsonSerialize(using = UnionSerializerProvider.Serializer.class)
+public class UnionSerializerProvider {
+    public Double doubleValue;
+    public SerializerProviderClass serializerProviderClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSerializerProvider> {
+        @Override
+        public UnionSerializerProvider deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSerializerProvider value = new UnionSerializerProvider();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.serializerProviderClassValue = jsonParser.readValueAs(SerializerProviderClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSerializerProvider");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSerializerProvider> {
+        @Override
+        public void serialize(UnionSerializerProvider obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.serializerProviderClassValue != null) {
+                jsonGenerator.writeObject(obj.serializerProviderClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
new file mode 100644
index 0000000..b2a4d33
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSimpleModule.Deserializer.class)
+@JsonSerialize(using = UnionSimpleModule.Serializer.class)
+public class UnionSimpleModule {
+    public Double doubleValue;
+    public SimpleModule simpleModuleValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSimpleModule> {
+        @Override
+        public UnionSimpleModule deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSimpleModule value = new UnionSimpleModule();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.simpleModuleValue = jsonParser.readValueAs(SimpleModule.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSimpleModule");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSimpleModule> {
+        @Override
+        public void serialize(UnionSimpleModule obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.simpleModuleValue != null) {
+                jsonGenerator.writeObject(obj.simpleModuleValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
new file mode 100644
index 0000000..99d7022
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStandards.Deserializer.class)
+@JsonSerialize(using = UnionStandards.Serializer.class)
+public class UnionStandards {
+    public Double doubleValue;
+    public Standards standardsValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStandards> {
+        @Override
+        public UnionStandards deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStandards value = new UnionStandards();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.standardsValue = jsonParser.readValueAs(Standards.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStandards");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStandards> {
+        @Override
+        public void serialize(UnionStandards obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.standardsValue != null) {
+                jsonGenerator.writeObject(obj.standardsValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
new file mode 100644
index 0000000..ef1406c
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdDeserializer.Deserializer.class)
+@JsonSerialize(using = UnionStdDeserializer.Serializer.class)
+public class UnionStdDeserializer {
+    public Double doubleValue;
+    public StdDeserializer stdDeserializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdDeserializer> {
+        @Override
+        public UnionStdDeserializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdDeserializer value = new UnionStdDeserializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdDeserializerValue = jsonParser.readValueAs(StdDeserializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdDeserializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdDeserializer> {
+        @Override
+        public void serialize(UnionStdDeserializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdDeserializerValue != null) {
+                jsonGenerator.writeObject(obj.stdDeserializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
new file mode 100644
index 0000000..957f1d1
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdSerializer.Deserializer.class)
+@JsonSerialize(using = UnionStdSerializer.Serializer.class)
+public class UnionStdSerializer {
+    public Double doubleValue;
+    public StdSerializer stdSerializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdSerializer> {
+        @Override
+        public UnionStdSerializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdSerializer value = new UnionStdSerializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdSerializerValue = jsonParser.readValueAs(StdSerializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdSerializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdSerializer> {
+        @Override
+        public void serialize(UnionStdSerializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdSerializerValue != null) {
+                jsonGenerator.writeObject(obj.stdSerializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
new file mode 100644
index 0000000..022de75
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnly.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnly.Serializer.class)
+public class UnionTimeOnly {
+    public Double doubleValue;
+    public TimeOnly timeOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnly> {
+        @Override
+        public UnionTimeOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnly value = new UnionTimeOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyValue = jsonParser.readValueAs(TimeOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnly> {
+        @Override
+        public void serialize(UnionTimeOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
new file mode 100644
index 0000000..fea1f46
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnlyConverter.Serializer.class)
+public class UnionTimeOnlyConverter {
+    public Double doubleValue;
+    public TimeOnlyConverter timeOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnlyConverter> {
+        @Override
+        public UnionTimeOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnlyConverter value = new UnionTimeOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyConverterValue = jsonParser.readValueAs(TimeOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnlyConverter> {
+        @Override
+        public void serialize(UnionTimeOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
new file mode 100644
index 0000000..1f150eb
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionToString.Deserializer.class)
+@JsonSerialize(using = UnionToString.Serializer.class)
+public class UnionToString {
+    public Double doubleValue;
+    public ToString toStringValue;
+
+    static class Deserializer extends JsonDeserializer<UnionToString> {
+        @Override
+        public UnionToString deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionToString value = new UnionToString();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.toStringValue = jsonParser.readValueAs(ToString.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionToString");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionToString> {
+        @Override
+        public void serialize(UnionToString obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.toStringValue != null) {
+                jsonGenerator.writeObject(obj.toStringValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
new file mode 100644
index 0000000..e892448
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUUID.Deserializer.class)
+@JsonSerialize(using = UnionUUID.Serializer.class)
+public class UnionUUID {
+    public Double doubleValue;
+    public UUIDClass uuidClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUUID> {
+        @Override
+        public UnionUUID deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUUID value = new UnionUUID();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.uuidClassValue = jsonParser.readValueAs(UUIDClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUUID");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUUID> {
+        @Override
+        public void serialize(UnionUUID obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.uuidClassValue != null) {
+                jsonGenerator.writeObject(obj.uuidClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
new file mode 100644
index 0000000..0348c69
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONReader.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONReader.Serializer.class)
+public class UnionUtf8JSONReader {
+    public Double doubleValue;
+    public Utf8JSONReader utf8JSONReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONReader> {
+        @Override
+        public UnionUtf8JSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONReader value = new UnionUtf8JSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONReaderValue = jsonParser.readValueAs(Utf8JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONReader> {
+        @Override
+        public void serialize(UnionUtf8JSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONReaderValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
new file mode 100644
index 0000000..6e1302c
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONWriter.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONWriter.Serializer.class)
+public class UnionUtf8JSONWriter {
+    public Double doubleValue;
+    public Utf8JSONWriter utf8JSONWriterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONWriter> {
+        @Override
+        public UnionUtf8JSONWriter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONWriter value = new UnionUtf8JSONWriter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONWriterValue = jsonParser.readValueAs(Utf8JSONWriter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONWriter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONWriter> {
+        @Override
+        public void serialize(UnionUtf8JSONWriter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONWriterValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONWriterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
new file mode 100644
index 0000000..72aa995
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONReader {
+}
diff --git a/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
new file mode 100644
index 0000000..a77c514
--- /dev/null
+++ b/head/schema-java-datetime-legacy/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONWriter {
+}
diff --git a/base/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java b/head/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
index 1cff799..e4eaad7 100644
--- a/base/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Enum.java
@@ -4,7 +4,7 @@ import java.io.IOException;
 import com.fasterxml.jackson.annotation.*;
 
 public enum Enum {
-    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, DATE, DATE_PARSE_HANDLING, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NOT, NOT_EQ, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SET, SHORT, SIGNED, SIZEOF, STACKALLOC, STATIC, STATIC_ASSERT, STATIC_CAST, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TO_JSON, TOP_LEVEL, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
+    EMPTY, BOOL, COMPLEX, IMAGINERY, ABSTRACT, ALIGNAS, ALIGNOF, AND, AND_EQ, ANY, ENUM_ANY, ARRAY, AS, ASM, ASSERT, ASSOCIATEDTYPE, ASSOCIATIVITY, ASYNC, ATOMIC, ATOMIC_CANCEL, ATOMIC_COMMIT, ATOMIC_NOEXCEPT, AUTO, AWAIT, BASE, BITAND, BITOR, ENUM_BOOL, PURPLE_BOOL, BOOLEAN, BREAK, BYCOPY, BYREF, BYTE, CASE, CATCH, CHAN, CHAR, CHAR16_T, CHAR32_T, CHECKED, CLASS, ENUM_CLASS, CLONE, CO_AWAIT, CO_RETURN, CO_YIELD, COMPL, CONCEPT, CONSOLE, CONST, CONST_CAST, CONSTEXPR, CONSTRUCTOR, CONTINUE, CONVENIENCE, CONVERT, CONVERTER, CULTURE_INFO, DATE, DATE_PARSE_HANDLING, DATE_FORMATTER, DATE_ONLY, DATE_ONLY_CONVERTER, DATE_TIME, DATE_TIME_STYLES, DEBUGGER, DECIMAL, DECLARE, DECLTYPE, DECODE_STRING, DEF, DEFAULT, DEFER, DEINIT, DEL, DELEGATE, DELETE, DICT, DICTIONARY, DID_SET, DO, DOUBLE, DYNAMIC, DYNAMIC_CAST, ELIF, ELSE, ENCODE_QUICK_TYPE, ENUM, ENUM_VALUES, EQUALITY_CONTRACT, EVENT, EXCEPT, EXCEPTION, EXPLICIT, EXPORT, EXPOSING, EXTENDS, EXTENSION, EXTERN, FALLTHROUGH, FALSE, ENUM_FALSE, FILEPRIVATE, FINAL, FINALLY, FIXED, FLOAT, FOR, FOREACH, FORMAT_EXCEPTION, FRIEND, FROM, FROM_JSON, FUNC, FUNCTION, GET, GLOBAL, GO, GOTO, GUARD, HASH_CODE, HAS_OWN_PROPERTY, ID, IF, IMP, IMPLEMENTS, IMPLICIT, IMPORT, IN, INDIRECT, INFIX, INIT, INLINE, INOUT, INSTANCEOF, INT, INTERFACE, INTERNAL, ISO_DATE_TIME_OFFSET_CONVERTER, ITERABLE, IS, JDEC, JENC, JPIPE, JSON, JSON_CONVERTER, JSON_SERIALIZER, JSON_TOKEN, JSON_WRITER, JSON_ANY, JSON_CODING_KEY, JSON_DECODER, JSON_ENCODER, JSON_EXCEPTION, JSON_GENERATOR, JSON_NODE, JSON_NULL, JSON_PARSER, JSON_READER, JSON_TOKEN_TYPE, LAMBDA, LAZY, LEFT, LET, LIST, LOCK, LONG, MAP, METADATA_PROPERTY_HANDLING, MODULE, MUTABLE, MUTATING, NAMESPACE, NATIVE, NEW, NEWTONSOFT, NIL, NO, NOEXCEPT, NONATOMIC, NONE, ENUM_NONE, NONLOCAL, NONMUTATING, NO_SUCH_METHOD, NOT, NOT_EQ, NS_ERROR, NS_STRING, NULL, ENUM_NULL, NULLPTR, NUMBER, OBJECT, OBJECT_MAPPER, OF, ONEWAY, OPEN, OPERATOR, OPTIONAL, OR, OR_EQ, OUT, OVERRIDE, PACKAGE, PARAMS, PASS, PORT, POSTFIX, PRECEDENCE, PREFIX, PRINT, PRINTF, PRINT_MEMBERS, PRIVATE, PROTECTED, PROTOCOL, ENUM_PROTOCOL, PUBLIC, QUICKTYPE, RAISE, RANGE, READONLY, REF, REG_EXP, REGISTER, REINTERPRET_CAST, REPEAT, REQUIRE, REQUIRED, REQUIRES, RESTRICT, RETAIN, RETHROWS, RETURN, RIGHT, RUNTIME_TYPE, S, SBYTE, SEALED, SEL, SELECT, SELF, ENUM_SELF, SERIALIZE, SERIALIZER_PROVIDER, SET, SHORT, SIGNED, SIMPLE_MODULE, SIZEOF, STACKALLOC, STANDARDS, STATIC, STATIC_ASSERT, STATIC_CAST, STD_DESERIALIZER, STD_SERIALIZER, STRICTFP, STRING, STRUCT, SUBSCRIPT, SUPER, SWITCH, SYMBOL, SYNCHRONIZED, SYSTEM, TEMPLATE, THEN, THIS, THREAD_LOCAL, THROW, THROWS, TIME_ONLY, TIME_ONLY_CONVERTER, TO_JSON, TOP_LEVEL, TO_STRING, TRANSIENT, TRUE, ENUM_TRUE, TRY, TYPE, ENUM_TYPE, TYPEALIAS, TYPEDEF, TYPEID, TYPENAME, TYPEOF, UINT, ULONG, UNCHECKED, UNDEFINED, UNION, UNOWNED, UNSAFE, UNSIGNED, USHORT, USING, UTF8_JSON_READER, UTF8_JSON_WRITER, UUID, VAR, VIRTUAL, VOID, VOLATILE, WCHAR_T, WEAK, WHERE, WHILE, WILL_SET, WITH, XOR, XOR_EQ, YES, YIELD, DUMMY;
 
     @JsonValue
     public String toValue() {
@@ -52,6 +52,7 @@ public enum Enum {
             case CHECKED: return "checked";
             case CLASS: return "class";
             case ENUM_CLASS: return "Class";
+            case CLONE: return "clone";
             case CO_AWAIT: return "co_await";
             case CO_RETURN: return "co_return";
             case CO_YIELD: return "co_yield";
@@ -66,8 +67,14 @@ public enum Enum {
             case CONVENIENCE: return "convenience";
             case CONVERT: return "convert";
             case CONVERTER: return "converter";
+            case CULTURE_INFO: return "CultureInfo";
             case DATE: return "date";
             case DATE_PARSE_HANDLING: return "date_parse_handling";
+            case DATE_FORMATTER: return "DateFormatter";
+            case DATE_ONLY: return "DateOnly";
+            case DATE_ONLY_CONVERTER: return "DateOnlyConverter";
+            case DATE_TIME: return "DateTime";
+            case DATE_TIME_STYLES: return "DateTimeStyles";
             case DEBUGGER: return "debugger";
             case DECIMAL: return "decimal";
             case DECLARE: return "declare";
@@ -91,6 +98,8 @@ public enum Enum {
             case ELSE: return "else";
             case ENCODE_QUICK_TYPE: return "encode_quick_type";
             case ENUM: return "enum";
+            case ENUM_VALUES: return "EnumValues";
+            case EQUALITY_CONTRACT: return "equalityContract";
             case EVENT: return "event";
             case EXCEPT: return "except";
             case EXCEPTION: return "exception";
@@ -110,6 +119,7 @@ public enum Enum {
             case FLOAT: return "float";
             case FOR: return "for";
             case FOREACH: return "foreach";
+            case FORMAT_EXCEPTION: return "FormatException";
             case FRIEND: return "friend";
             case FROM: return "from";
             case FROM_JSON: return "from_json";
@@ -120,6 +130,7 @@ public enum Enum {
             case GO: return "go";
             case GOTO: return "goto";
             case GUARD: return "guard";
+            case HASH_CODE: return "hashCode";
             case HAS_OWN_PROPERTY: return "hasOwnProperty";
             case ID: return "id";
             case IF: return "if";
@@ -137,6 +148,7 @@ public enum Enum {
             case INT: return "int";
             case INTERFACE: return "interface";
             case INTERNAL: return "internal";
+            case ISO_DATE_TIME_OFFSET_CONVERTER: return "IsoDateTimeOffsetConverter";
             case ITERABLE: return "iterable";
             case IS: return "is";
             case JDEC: return "jdec";
@@ -147,6 +159,17 @@ public enum Enum {
             case JSON_SERIALIZER: return "json_serializer";
             case JSON_TOKEN: return "json_token";
             case JSON_WRITER: return "json_writer";
+            case JSON_ANY: return "JSONAny";
+            case JSON_CODING_KEY: return "JSONCodingKey";
+            case JSON_DECODER: return "JSONDecoder";
+            case JSON_ENCODER: return "JSONEncoder";
+            case JSON_EXCEPTION: return "JsonException";
+            case JSON_GENERATOR: return "JsonGenerator";
+            case JSON_NODE: return "JsonNode";
+            case JSON_NULL: return "JSONNull";
+            case JSON_PARSER: return "JsonParser";
+            case JSON_READER: return "JsonReader";
+            case JSON_TOKEN_TYPE: return "JsonTokenType";
             case LAMBDA: return "lambda";
             case LAZY: return "lazy";
             case LEFT: return "left";
@@ -171,14 +194,17 @@ public enum Enum {
             case ENUM_NONE: return "None";
             case NONLOCAL: return "nonlocal";
             case NONMUTATING: return "nonmutating";
+            case NO_SUCH_METHOD: return "noSuchMethod";
             case NOT: return "not";
             case NOT_EQ: return "not_eq";
+            case NS_ERROR: return "NSError";
             case NS_STRING: return "NSString";
             case NULL: return "NULL";
             case ENUM_NULL: return "null";
             case NULLPTR: return "nullptr";
             case NUMBER: return "number";
             case OBJECT: return "object";
+            case OBJECT_MAPPER: return "ObjectMapper";
             case OF: return "of";
             case ONEWAY: return "oneway";
             case OPEN: return "open";
@@ -197,6 +223,7 @@ public enum Enum {
             case PREFIX: return "prefix";
             case PRINT: return "print";
             case PRINTF: return "printf";
+            case PRINT_MEMBERS: return "printMembers";
             case PRIVATE: return "private";
             case PROTECTED: return "protected";
             case PROTOCOL: return "Protocol";
@@ -207,6 +234,7 @@ public enum Enum {
             case RANGE: return "range";
             case READONLY: return "readonly";
             case REF: return "ref";
+            case REG_EXP: return "RegExp";
             case REGISTER: return "register";
             case REINTERPRET_CAST: return "reinterpret_cast";
             case REPEAT: return "repeat";
@@ -218,6 +246,8 @@ public enum Enum {
             case RETHROWS: return "rethrows";
             case RETURN: return "return";
             case RIGHT: return "right";
+            case RUNTIME_TYPE: return "runtimeType";
+            case S: return "s";
             case SBYTE: return "sbyte";
             case SEALED: return "sealed";
             case SEL: return "SEL";
@@ -225,14 +255,19 @@ public enum Enum {
             case SELF: return "Self";
             case ENUM_SELF: return "self";
             case SERIALIZE: return "serialize";
+            case SERIALIZER_PROVIDER: return "SerializerProvider";
             case SET: return "set";
             case SHORT: return "short";
             case SIGNED: return "signed";
+            case SIMPLE_MODULE: return "SimpleModule";
             case SIZEOF: return "sizeof";
             case STACKALLOC: return "stackalloc";
+            case STANDARDS: return "Standards";
             case STATIC: return "static";
             case STATIC_ASSERT: return "static_assert";
             case STATIC_CAST: return "static_cast";
+            case STD_DESERIALIZER: return "StdDeserializer";
+            case STD_SERIALIZER: return "StdSerializer";
             case STRICTFP: return "strictfp";
             case STRING: return "string";
             case STRUCT: return "struct";
@@ -248,8 +283,11 @@ public enum Enum {
             case THREAD_LOCAL: return "thread_local";
             case THROW: return "throw";
             case THROWS: return "throws";
+            case TIME_ONLY: return "TimeOnly";
+            case TIME_ONLY_CONVERTER: return "TimeOnlyConverter";
             case TO_JSON: return "to_json";
             case TOP_LEVEL: return "top_level";
+            case TO_STRING: return "toString";
             case TRANSIENT: return "transient";
             case TRUE: return "True";
             case ENUM_TRUE: return "true";
@@ -271,6 +309,9 @@ public enum Enum {
             case UNSIGNED: return "unsigned";
             case USHORT: return "ushort";
             case USING: return "using";
+            case UTF8_JSON_READER: return "Utf8JsonReader";
+            case UTF8_JSON_WRITER: return "Utf8JsonWriter";
+            case UUID: return "UUID";
             case VAR: return "var";
             case VIRTUAL: return "virtual";
             case VOID: return "void";
@@ -335,6 +376,7 @@ public enum Enum {
         if (value.equals("checked")) return CHECKED;
         if (value.equals("class")) return CLASS;
         if (value.equals("Class")) return ENUM_CLASS;
+        if (value.equals("clone")) return CLONE;
         if (value.equals("co_await")) return CO_AWAIT;
         if (value.equals("co_return")) return CO_RETURN;
         if (value.equals("co_yield")) return CO_YIELD;
@@ -349,8 +391,14 @@ public enum Enum {
         if (value.equals("convenience")) return CONVENIENCE;
         if (value.equals("convert")) return CONVERT;
         if (value.equals("converter")) return CONVERTER;
+        if (value.equals("CultureInfo")) return CULTURE_INFO;
         if (value.equals("date")) return DATE;
         if (value.equals("date_parse_handling")) return DATE_PARSE_HANDLING;
+        if (value.equals("DateFormatter")) return DATE_FORMATTER;
+        if (value.equals("DateOnly")) return DATE_ONLY;
+        if (value.equals("DateOnlyConverter")) return DATE_ONLY_CONVERTER;
+        if (value.equals("DateTime")) return DATE_TIME;
+        if (value.equals("DateTimeStyles")) return DATE_TIME_STYLES;
         if (value.equals("debugger")) return DEBUGGER;
         if (value.equals("decimal")) return DECIMAL;
         if (value.equals("declare")) return DECLARE;
@@ -374,6 +422,8 @@ public enum Enum {
         if (value.equals("else")) return ELSE;
         if (value.equals("encode_quick_type")) return ENCODE_QUICK_TYPE;
         if (value.equals("enum")) return ENUM;
+        if (value.equals("EnumValues")) return ENUM_VALUES;
+        if (value.equals("equalityContract")) return EQUALITY_CONTRACT;
         if (value.equals("event")) return EVENT;
         if (value.equals("except")) return EXCEPT;
         if (value.equals("exception")) return EXCEPTION;
@@ -393,6 +443,7 @@ public enum Enum {
         if (value.equals("float")) return FLOAT;
         if (value.equals("for")) return FOR;
         if (value.equals("foreach")) return FOREACH;
+        if (value.equals("FormatException")) return FORMAT_EXCEPTION;
         if (value.equals("friend")) return FRIEND;
         if (value.equals("from")) return FROM;
         if (value.equals("from_json")) return FROM_JSON;
@@ -403,6 +454,7 @@ public enum Enum {
         if (value.equals("go")) return GO;
         if (value.equals("goto")) return GOTO;
         if (value.equals("guard")) return GUARD;
+        if (value.equals("hashCode")) return HASH_CODE;
         if (value.equals("hasOwnProperty")) return HAS_OWN_PROPERTY;
         if (value.equals("id")) return ID;
         if (value.equals("if")) return IF;
@@ -420,6 +472,7 @@ public enum Enum {
         if (value.equals("int")) return INT;
         if (value.equals("interface")) return INTERFACE;
         if (value.equals("internal")) return INTERNAL;
+        if (value.equals("IsoDateTimeOffsetConverter")) return ISO_DATE_TIME_OFFSET_CONVERTER;
         if (value.equals("iterable")) return ITERABLE;
         if (value.equals("is")) return IS;
         if (value.equals("jdec")) return JDEC;
@@ -430,6 +483,17 @@ public enum Enum {
         if (value.equals("json_serializer")) return JSON_SERIALIZER;
         if (value.equals("json_token")) return JSON_TOKEN;
         if (value.equals("json_writer")) return JSON_WRITER;
+        if (value.equals("JSONAny")) return JSON_ANY;
+        if (value.equals("JSONCodingKey")) return JSON_CODING_KEY;
+        if (value.equals("JSONDecoder")) return JSON_DECODER;
+        if (value.equals("JSONEncoder")) return JSON_ENCODER;
+        if (value.equals("JsonException")) return JSON_EXCEPTION;
+        if (value.equals("JsonGenerator")) return JSON_GENERATOR;
+        if (value.equals("JsonNode")) return JSON_NODE;
+        if (value.equals("JSONNull")) return JSON_NULL;
+        if (value.equals("JsonParser")) return JSON_PARSER;
+        if (value.equals("JsonReader")) return JSON_READER;
+        if (value.equals("JsonTokenType")) return JSON_TOKEN_TYPE;
         if (value.equals("lambda")) return LAMBDA;
         if (value.equals("lazy")) return LAZY;
         if (value.equals("left")) return LEFT;
@@ -454,14 +518,17 @@ public enum Enum {
         if (value.equals("None")) return ENUM_NONE;
         if (value.equals("nonlocal")) return NONLOCAL;
         if (value.equals("nonmutating")) return NONMUTATING;
+        if (value.equals("noSuchMethod")) return NO_SUCH_METHOD;
         if (value.equals("not")) return NOT;
         if (value.equals("not_eq")) return NOT_EQ;
+        if (value.equals("NSError")) return NS_ERROR;
         if (value.equals("NSString")) return NS_STRING;
         if (value.equals("NULL")) return NULL;
         if (value.equals("null")) return ENUM_NULL;
         if (value.equals("nullptr")) return NULLPTR;
         if (value.equals("number")) return NUMBER;
         if (value.equals("object")) return OBJECT;
+        if (value.equals("ObjectMapper")) return OBJECT_MAPPER;
         if (value.equals("of")) return OF;
         if (value.equals("oneway")) return ONEWAY;
         if (value.equals("open")) return OPEN;
@@ -480,6 +547,7 @@ public enum Enum {
         if (value.equals("prefix")) return PREFIX;
         if (value.equals("print")) return PRINT;
         if (value.equals("printf")) return PRINTF;
+        if (value.equals("printMembers")) return PRINT_MEMBERS;
         if (value.equals("private")) return PRIVATE;
         if (value.equals("protected")) return PROTECTED;
         if (value.equals("Protocol")) return PROTOCOL;
@@ -490,6 +558,7 @@ public enum Enum {
         if (value.equals("range")) return RANGE;
         if (value.equals("readonly")) return READONLY;
         if (value.equals("ref")) return REF;
+        if (value.equals("RegExp")) return REG_EXP;
         if (value.equals("register")) return REGISTER;
         if (value.equals("reinterpret_cast")) return REINTERPRET_CAST;
         if (value.equals("repeat")) return REPEAT;
@@ -501,6 +570,8 @@ public enum Enum {
         if (value.equals("rethrows")) return RETHROWS;
         if (value.equals("return")) return RETURN;
         if (value.equals("right")) return RIGHT;
+        if (value.equals("runtimeType")) return RUNTIME_TYPE;
+        if (value.equals("s")) return S;
         if (value.equals("sbyte")) return SBYTE;
         if (value.equals("sealed")) return SEALED;
         if (value.equals("SEL")) return SEL;
@@ -508,14 +579,19 @@ public enum Enum {
         if (value.equals("Self")) return SELF;
         if (value.equals("self")) return ENUM_SELF;
         if (value.equals("serialize")) return SERIALIZE;
+        if (value.equals("SerializerProvider")) return SERIALIZER_PROVIDER;
         if (value.equals("set")) return SET;
         if (value.equals("short")) return SHORT;
         if (value.equals("signed")) return SIGNED;
+        if (value.equals("SimpleModule")) return SIMPLE_MODULE;
         if (value.equals("sizeof")) return SIZEOF;
         if (value.equals("stackalloc")) return STACKALLOC;
+        if (value.equals("Standards")) return STANDARDS;
         if (value.equals("static")) return STATIC;
         if (value.equals("static_assert")) return STATIC_ASSERT;
         if (value.equals("static_cast")) return STATIC_CAST;
+        if (value.equals("StdDeserializer")) return STD_DESERIALIZER;
+        if (value.equals("StdSerializer")) return STD_SERIALIZER;
         if (value.equals("strictfp")) return STRICTFP;
         if (value.equals("string")) return STRING;
         if (value.equals("struct")) return STRUCT;
@@ -531,8 +607,11 @@ public enum Enum {
         if (value.equals("thread_local")) return THREAD_LOCAL;
         if (value.equals("throw")) return THROW;
         if (value.equals("throws")) return THROWS;
+        if (value.equals("TimeOnly")) return TIME_ONLY;
+        if (value.equals("TimeOnlyConverter")) return TIME_ONLY_CONVERTER;
         if (value.equals("to_json")) return TO_JSON;
         if (value.equals("top_level")) return TOP_LEVEL;
+        if (value.equals("toString")) return TO_STRING;
         if (value.equals("transient")) return TRANSIENT;
         if (value.equals("True")) return TRUE;
         if (value.equals("true")) return ENUM_TRUE;
@@ -554,6 +633,9 @@ public enum Enum {
         if (value.equals("unsigned")) return UNSIGNED;
         if (value.equals("ushort")) return USHORT;
         if (value.equals("using")) return USING;
+        if (value.equals("Utf8JsonReader")) return UTF8_JSON_READER;
+        if (value.equals("Utf8JsonWriter")) return UTF8_JSON_WRITER;
+        if (value.equals("UUID")) return UUID;
         if (value.equals("var")) return VAR;
         if (value.equals("virtual")) return VIRTUAL;
         if (value.equals("void")) return VOID;
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
new file mode 100644
index 0000000..395515a
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Clone.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Clone {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
new file mode 100644
index 0000000..ab8c9f3
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/CultureInfo.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class CultureInfo {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
new file mode 100644
index 0000000..1852e86
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateFormatter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateFormatter {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
new file mode 100644
index 0000000..9cdb53f
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnly {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
new file mode 100644
index 0000000..209bc20
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateOnlyConverter {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
new file mode 100644
index 0000000..2dd34d4
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTime.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTime {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
new file mode 100644
index 0000000..664d187
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/DateTimeStyles.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class DateTimeStyles {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
new file mode 100644
index 0000000..c9b5073
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EnumValues.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EnumValues {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
new file mode 100644
index 0000000..8e559cf
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/EqualityContract.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class EqualityContract {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
new file mode 100644
index 0000000..90c6ac2
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/FormatException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class FormatException {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
new file mode 100644
index 0000000..4630f6d
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/HashCode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class HashCode {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..81b109b
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ISODateTimeOffsetConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ISODateTimeOffsetConverter {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
new file mode 100644
index 0000000..e290886
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONAny.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONAny {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
new file mode 100644
index 0000000..0ec06c5
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONCodingKey.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONCodingKey {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
new file mode 100644
index 0000000..c5d7a9e
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONDecoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONDecoder {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
new file mode 100644
index 0000000..62ee11f
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONEncoder.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONEncoder {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
new file mode 100644
index 0000000..7bf1460
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONException.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONException {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
new file mode 100644
index 0000000..0a71bad
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONGenerator.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONGenerator {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
new file mode 100644
index 0000000..d5812d1
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNode.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNode {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
new file mode 100644
index 0000000..dcceb9d
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONNull.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONNull {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
new file mode 100644
index 0000000..5fb4825
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONParser.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONParser {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
new file mode 100644
index 0000000..484c844
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONReader {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
new file mode 100644
index 0000000..48836d3
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/JSONTokenType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class JSONTokenType {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
new file mode 100644
index 0000000..3bfb7d3
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NSError.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NSError {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
new file mode 100644
index 0000000..70f6955
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/NoSuchMethod.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class NoSuchMethod {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
new file mode 100644
index 0000000..18b5bfb
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ObjectMapperClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ObjectMapperClass {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
new file mode 100644
index 0000000..5b2980b
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/PrintMembers.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class PrintMembers {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
new file mode 100644
index 0000000..80bfb20
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RegExp.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RegExp {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
new file mode 100644
index 0000000..9bd4fed
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/RuntimeType.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class RuntimeType {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
new file mode 100644
index 0000000..1a01f93
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/S.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class S {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
new file mode 100644
index 0000000..6d39d10
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SerializerProviderClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SerializerProviderClass {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
new file mode 100644
index 0000000..aa56c89
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/SimpleModule.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class SimpleModule {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
new file mode 100644
index 0000000..a60e82d
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Standards.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Standards {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
new file mode 100644
index 0000000..6e4e58f
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdDeserializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdDeserializer {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
new file mode 100644
index 0000000..6f66948
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/StdSerializer.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class StdSerializer {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
new file mode 100644
index 0000000..58358a5
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnly.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnly {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
new file mode 100644
index 0000000..3d727ea
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TimeOnlyConverter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class TimeOnlyConverter {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
new file mode 100644
index 0000000..500908e
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/ToString.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class ToString {
+}
diff --git a/base/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
index cc83804..420f35a 100644
--- a/base/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/TopLevel.java
@@ -46,6 +46,7 @@ public class TopLevel {
     private UnionChecked checked;
     private UnionClassUnion purpleClass;
     private UnionClass topLevelClass;
+    private UnionClone clone;
     private UnionCoAwait coAwait;
     private UnionCoReturn coReturn;
     private UnionCoYield coYield;
@@ -60,8 +61,14 @@ public class TopLevel {
     private UnionConvenience convenience;
     private UnionConvert convert;
     private UnionConverter converter;
+    private UnionCultureInfo cultureInfo;
     private UnionDate date;
     private UnionDateParseHandling dateParseHandling;
+    private UnionDateFormatter dateFormatter;
+    private UnionDateOnly dateOnly;
+    private UnionDateOnlyConverter dateOnlyConverter;
+    private UnionDateTime dateTime;
+    private UnionDateTimeStyles dateTimeStyles;
     private UnionDebugger debugger;
     private UnionDecimal decimal;
     private UnionDeclare declare;
@@ -86,6 +93,8 @@ public class TopLevel {
     private UnionElse topLevelElse;
     private UnionEncodeQuickType encodeQuickType;
     private UnionEnum topLevelEnum;
+    private UnionEnumValues enumValues;
+    private UnionEqualityContract equalityContract;
     private UnionEvent event;
     private UnionExcept except;
     private UnionException exception;
@@ -105,6 +114,7 @@ public class TopLevel {
     private UnionFloat topLevelFloat;
     private UnionFor topLevelFor;
     private UnionForeach foreach;
+    private UnionFormatException formatException;
     private UnionFriend friend;
     private UnionFrom from;
     private UnionFromJSON fromJSON;
@@ -115,6 +125,7 @@ public class TopLevel {
     private UnionGo go;
     private UnionGoto topLevelGoto;
     private UnionGuard guard;
+    private UnionHashCode hashCode;
     private UnionHasOwnProperty hasOwnProperty;
     private UnionID id;
     private UnionIf topLevelIf;
@@ -133,6 +144,7 @@ public class TopLevel {
     private UnionInterface topLevelInterface;
     private UnionInternal internal;
     private UnionIs is;
+    private UnionISODateTimeOffsetConverter isoDateTimeOffsetConverter;
     private UnionIterable iterable;
     private UnionJdec jdec;
     private UnionJenc jenc;
@@ -142,6 +154,17 @@ public class TopLevel {
     private UnionJSONSerializer jsonSerializer;
     private UnionJSONToken jsonToken;
     private UnionJSONWriter jsonWriter;
+    private UnionJSONAny jsonAny;
+    private UnionJSONCodingKey jsonCodingKey;
+    private UnionJSONDecoder jsonDecoder;
+    private UnionJSONEncoder jsonEncoder;
+    private UnionJSONException jsonException;
+    private UnionJSONGenerator jsonGenerator;
+    private UnionJSONNode jsonNode;
+    private UnionJSONNull jsonNull;
+    private UnionJSONParser jsonParser;
+    private UnionJSONReader jsonReader;
+    private UnionJSONTokenType jsonTokenType;
     private UnionLambda lambda;
     private UnionLazy lazy;
     private UnionLeft left;
@@ -166,14 +189,17 @@ public class TopLevel {
     private UnionNone none;
     private UnionNonlocal nonlocal;
     private UnionNonmutating nonmutating;
+    private UnionNoSuchMethod noSuchMethod;
     private UnionNot not;
     private UnionNotEq notEq;
+    private UnionNSError nsError;
     private UnionNSString nsString;
     private UnionNULL topLevelNULL;
     private UnionNullUnion topLevelNull;
     private UnionNullptr nullptr;
     private UnionNumber number;
     private UnionObject object;
+    private UnionObjectMapper objectMapper;
     private UnionOf of;
     private UnionOneway oneway;
     private UnionOpen open;
@@ -192,6 +218,7 @@ public class TopLevel {
     private UnionPrefix prefix;
     private UnionPrint print;
     private UnionPrintf printf;
+    private UnionPrintMembers printMembers;
     private UnionPrivate topLevelPrivate;
     private UnionProtected topLevelProtected;
     private UnionProtocol protocol;
@@ -202,6 +229,7 @@ public class TopLevel {
     private UnionRange range;
     private UnionReadonly readonly;
     private UnionRef ref;
+    private UnionRegExp regExp;
     private UnionRegister register;
     private UnionReinterpretCast reinterpretCast;
     private UnionRepeat repeat;
@@ -213,6 +241,8 @@ public class TopLevel {
     private UnionRethrows rethrows;
     private UnionReturn topLevelReturn;
     private UnionRight right;
+    private UnionRuntimeType runtimeType;
+    private UnionS s;
     private UnionSbyte sbyte;
     private UnionSealed sealed;
     private UnionSEL sel;
@@ -220,14 +250,19 @@ public class TopLevel {
     private UnionSelf self;
     private UnionSelfUnion topLevelSelf;
     private UnionSerialize serialize;
+    private UnionSerializerProvider serializerProvider;
     private UnionSet set;
     private UnionShort topLevelShort;
     private UnionSigned signed;
+    private UnionSimpleModule simpleModule;
     private UnionSizeof sizeof;
     private UnionStackalloc stackalloc;
+    private UnionStandards standards;
     private UnionStatic topLevelStatic;
     private UnionStaticAssert staticAssert;
     private UnionStaticCast staticCast;
+    private UnionStdDeserializer stdDeserializer;
+    private UnionStdSerializer stdSerializer;
     private UnionStrictfp topLevelStrictfp;
     private UnionString string;
     private UnionStruct struct;
@@ -243,8 +278,11 @@ public class TopLevel {
     private UnionThreadLocal threadLocal;
     private UnionThrow topLevelThrow;
     private UnionThrows topLevelThrows;
+    private UnionTimeOnly timeOnly;
+    private UnionTimeOnlyConverter timeOnlyConverter;
     private UnionToJSON toJSON;
     private UnionTopLevel topLevel;
+    private UnionToString toString;
     private UnionTransient topLevelTransient;
     private UnionTrue topLevelTrue;
     private UnionTrueUnion purpleTrue;
@@ -266,6 +304,9 @@ public class TopLevel {
     private UnionUnsigned unsigned;
     private UnionUshort ushort;
     private UnionUsing using;
+    private UnionUtf8JSONReader utf8JSONReader;
+    private UnionUtf8JSONWriter utf8JSONWriter;
+    private UnionUUID uuid;
     private UnionVar var;
     private UnionVirtual virtual;
     private UnionVoid topLevelVoid;
@@ -496,6 +537,11 @@ public class TopLevel {
     @JsonProperty("Class")
     public void setTopLevelClass(UnionClass value) { this.topLevelClass = value; }
 
+    @JsonProperty("clone")
+    public UnionClone getClone() { return clone; }
+    @JsonProperty("clone")
+    public void setClone(UnionClone value) { this.clone = value; }
+
     @JsonProperty("co_await")
     public UnionCoAwait getCoAwait() { return coAwait; }
     @JsonProperty("co_await")
@@ -566,6 +612,11 @@ public class TopLevel {
     @JsonProperty("converter")
     public void setConverter(UnionConverter value) { this.converter = value; }
 
+    @JsonProperty("CultureInfo")
+    public UnionCultureInfo getCultureInfo() { return cultureInfo; }
+    @JsonProperty("CultureInfo")
+    public void setCultureInfo(UnionCultureInfo value) { this.cultureInfo = value; }
+
     @JsonProperty("date")
     public UnionDate getDate() { return date; }
     @JsonProperty("date")
@@ -576,6 +627,31 @@ public class TopLevel {
     @JsonProperty("date_parse_handling")
     public void setDateParseHandling(UnionDateParseHandling value) { this.dateParseHandling = value; }
 
+    @JsonProperty("DateFormatter")
+    public UnionDateFormatter getDateFormatter() { return dateFormatter; }
+    @JsonProperty("DateFormatter")
+    public void setDateFormatter(UnionDateFormatter value) { this.dateFormatter = value; }
+
+    @JsonProperty("DateOnly")
+    public UnionDateOnly getDateOnly() { return dateOnly; }
+    @JsonProperty("DateOnly")
+    public void setDateOnly(UnionDateOnly value) { this.dateOnly = value; }
+
+    @JsonProperty("DateOnlyConverter")
+    public UnionDateOnlyConverter getDateOnlyConverter() { return dateOnlyConverter; }
+    @JsonProperty("DateOnlyConverter")
+    public void setDateOnlyConverter(UnionDateOnlyConverter value) { this.dateOnlyConverter = value; }
+
+    @JsonProperty("DateTime")
+    public UnionDateTime getDateTime() { return dateTime; }
+    @JsonProperty("DateTime")
+    public void setDateTime(UnionDateTime value) { this.dateTime = value; }
+
+    @JsonProperty("DateTimeStyles")
+    public UnionDateTimeStyles getDateTimeStyles() { return dateTimeStyles; }
+    @JsonProperty("DateTimeStyles")
+    public void setDateTimeStyles(UnionDateTimeStyles value) { this.dateTimeStyles = value; }
+
     @JsonProperty("debugger")
     public UnionDebugger getDebugger() { return debugger; }
     @JsonProperty("debugger")
@@ -696,6 +772,16 @@ public class TopLevel {
     @JsonProperty("enum")
     public void setTopLevelEnum(UnionEnum value) { this.topLevelEnum = value; }
 
+    @JsonProperty("EnumValues")
+    public UnionEnumValues getEnumValues() { return enumValues; }
+    @JsonProperty("EnumValues")
+    public void setEnumValues(UnionEnumValues value) { this.enumValues = value; }
+
+    @JsonProperty("equalityContract")
+    public UnionEqualityContract getEqualityContract() { return equalityContract; }
+    @JsonProperty("equalityContract")
+    public void setEqualityContract(UnionEqualityContract value) { this.equalityContract = value; }
+
     @JsonProperty("event")
     public UnionEvent getEvent() { return event; }
     @JsonProperty("event")
@@ -791,6 +877,11 @@ public class TopLevel {
     @JsonProperty("foreach")
     public void setForeach(UnionForeach value) { this.foreach = value; }
 
+    @JsonProperty("FormatException")
+    public UnionFormatException getFormatException() { return formatException; }
+    @JsonProperty("FormatException")
+    public void setFormatException(UnionFormatException value) { this.formatException = value; }
+
     @JsonProperty("friend")
     public UnionFriend getFriend() { return friend; }
     @JsonProperty("friend")
@@ -841,6 +932,11 @@ public class TopLevel {
     @JsonProperty("guard")
     public void setGuard(UnionGuard value) { this.guard = value; }
 
+    @JsonProperty("hashCode")
+    public UnionHashCode getHashCode() { return hashCode; }
+    @JsonProperty("hashCode")
+    public void setHashCode(UnionHashCode value) { this.hashCode = value; }
+
     @JsonProperty("hasOwnProperty")
     public UnionHasOwnProperty getHasOwnProperty() { return hasOwnProperty; }
     @JsonProperty("hasOwnProperty")
@@ -931,6 +1027,11 @@ public class TopLevel {
     @JsonProperty("is")
     public void setIs(UnionIs value) { this.is = value; }
 
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public UnionISODateTimeOffsetConverter getISODateTimeOffsetConverter() { return isoDateTimeOffsetConverter; }
+    @JsonProperty("IsoDateTimeOffsetConverter")
+    public void setISODateTimeOffsetConverter(UnionISODateTimeOffsetConverter value) { this.isoDateTimeOffsetConverter = value; }
+
     @JsonProperty("iterable")
     public UnionIterable getIterable() { return iterable; }
     @JsonProperty("iterable")
@@ -976,6 +1077,61 @@ public class TopLevel {
     @JsonProperty("json_writer")
     public void setJSONWriter(UnionJSONWriter value) { this.jsonWriter = value; }
 
+    @JsonProperty("JSONAny")
+    public UnionJSONAny getJSONAny() { return jsonAny; }
+    @JsonProperty("JSONAny")
+    public void setJSONAny(UnionJSONAny value) { this.jsonAny = value; }
+
+    @JsonProperty("JSONCodingKey")
+    public UnionJSONCodingKey getJSONCodingKey() { return jsonCodingKey; }
+    @JsonProperty("JSONCodingKey")
+    public void setJSONCodingKey(UnionJSONCodingKey value) { this.jsonCodingKey = value; }
+
+    @JsonProperty("JSONDecoder")
+    public UnionJSONDecoder getJSONDecoder() { return jsonDecoder; }
+    @JsonProperty("JSONDecoder")
+    public void setJSONDecoder(UnionJSONDecoder value) { this.jsonDecoder = value; }
+
+    @JsonProperty("JSONEncoder")
+    public UnionJSONEncoder getJSONEncoder() { return jsonEncoder; }
+    @JsonProperty("JSONEncoder")
+    public void setJSONEncoder(UnionJSONEncoder value) { this.jsonEncoder = value; }
+
+    @JsonProperty("JsonException")
+    public UnionJSONException getJSONException() { return jsonException; }
+    @JsonProperty("JsonException")
+    public void setJSONException(UnionJSONException value) { this.jsonException = value; }
+
+    @JsonProperty("JsonGenerator")
+    public UnionJSONGenerator getJSONGenerator() { return jsonGenerator; }
+    @JsonProperty("JsonGenerator")
+    public void setJSONGenerator(UnionJSONGenerator value) { this.jsonGenerator = value; }
+
+    @JsonProperty("JsonNode")
+    public UnionJSONNode getJSONNode() { return jsonNode; }
+    @JsonProperty("JsonNode")
+    public void setJSONNode(UnionJSONNode value) { this.jsonNode = value; }
+
+    @JsonProperty("JSONNull")
+    public UnionJSONNull getJSONNull() { return jsonNull; }
+    @JsonProperty("JSONNull")
+    public void setJSONNull(UnionJSONNull value) { this.jsonNull = value; }
+
+    @JsonProperty("JsonParser")
+    public UnionJSONParser getJSONParser() { return jsonParser; }
+    @JsonProperty("JsonParser")
+    public void setJSONParser(UnionJSONParser value) { this.jsonParser = value; }
+
+    @JsonProperty("JsonReader")
+    public UnionJSONReader getJSONReader() { return jsonReader; }
+    @JsonProperty("JsonReader")
+    public void setJSONReader(UnionJSONReader value) { this.jsonReader = value; }
+
+    @JsonProperty("JsonTokenType")
+    public UnionJSONTokenType getJSONTokenType() { return jsonTokenType; }
+    @JsonProperty("JsonTokenType")
+    public void setJSONTokenType(UnionJSONTokenType value) { this.jsonTokenType = value; }
+
     @JsonProperty("lambda")
     public UnionLambda getLambda() { return lambda; }
     @JsonProperty("lambda")
@@ -1096,6 +1252,11 @@ public class TopLevel {
     @JsonProperty("nonmutating")
     public void setNonmutating(UnionNonmutating value) { this.nonmutating = value; }
 
+    @JsonProperty("noSuchMethod")
+    public UnionNoSuchMethod getNoSuchMethod() { return noSuchMethod; }
+    @JsonProperty("noSuchMethod")
+    public void setNoSuchMethod(UnionNoSuchMethod value) { this.noSuchMethod = value; }
+
     @JsonProperty("not")
     public UnionNot getNot() { return not; }
     @JsonProperty("not")
@@ -1106,6 +1267,11 @@ public class TopLevel {
     @JsonProperty("not_eq")
     public void setNotEq(UnionNotEq value) { this.notEq = value; }
 
+    @JsonProperty("NSError")
+    public UnionNSError getNSError() { return nsError; }
+    @JsonProperty("NSError")
+    public void setNSError(UnionNSError value) { this.nsError = value; }
+
     @JsonProperty("NSString")
     public UnionNSString getNSString() { return nsString; }
     @JsonProperty("NSString")
@@ -1136,6 +1302,11 @@ public class TopLevel {
     @JsonProperty("object")
     public void setObject(UnionObject value) { this.object = value; }
 
+    @JsonProperty("ObjectMapper")
+    public UnionObjectMapper getObjectMapper() { return objectMapper; }
+    @JsonProperty("ObjectMapper")
+    public void setObjectMapper(UnionObjectMapper value) { this.objectMapper = value; }
+
     @JsonProperty("of")
     public UnionOf getOf() { return of; }
     @JsonProperty("of")
@@ -1226,6 +1397,11 @@ public class TopLevel {
     @JsonProperty("printf")
     public void setPrintf(UnionPrintf value) { this.printf = value; }
 
+    @JsonProperty("printMembers")
+    public UnionPrintMembers getPrintMembers() { return printMembers; }
+    @JsonProperty("printMembers")
+    public void setPrintMembers(UnionPrintMembers value) { this.printMembers = value; }
+
     @JsonProperty("private")
     public UnionPrivate getTopLevelPrivate() { return topLevelPrivate; }
     @JsonProperty("private")
@@ -1276,6 +1452,11 @@ public class TopLevel {
     @JsonProperty("ref")
     public void setRef(UnionRef value) { this.ref = value; }
 
+    @JsonProperty("RegExp")
+    public UnionRegExp getRegExp() { return regExp; }
+    @JsonProperty("RegExp")
+    public void setRegExp(UnionRegExp value) { this.regExp = value; }
+
     @JsonProperty("register")
     public UnionRegister getRegister() { return register; }
     @JsonProperty("register")
@@ -1331,6 +1512,16 @@ public class TopLevel {
     @JsonProperty("right")
     public void setRight(UnionRight value) { this.right = value; }
 
+    @JsonProperty("runtimeType")
+    public UnionRuntimeType getRuntimeType() { return runtimeType; }
+    @JsonProperty("runtimeType")
+    public void setRuntimeType(UnionRuntimeType value) { this.runtimeType = value; }
+
+    @JsonProperty("s")
+    public UnionS getS() { return s; }
+    @JsonProperty("s")
+    public void setS(UnionS value) { this.s = value; }
+
     @JsonProperty("sbyte")
     public UnionSbyte getSbyte() { return sbyte; }
     @JsonProperty("sbyte")
@@ -1366,6 +1557,11 @@ public class TopLevel {
     @JsonProperty("serialize")
     public void setSerialize(UnionSerialize value) { this.serialize = value; }
 
+    @JsonProperty("SerializerProvider")
+    public UnionSerializerProvider getSerializerProvider() { return serializerProvider; }
+    @JsonProperty("SerializerProvider")
+    public void setSerializerProvider(UnionSerializerProvider value) { this.serializerProvider = value; }
+
     @JsonProperty("set")
     public UnionSet getSet() { return set; }
     @JsonProperty("set")
@@ -1381,6 +1577,11 @@ public class TopLevel {
     @JsonProperty("signed")
     public void setSigned(UnionSigned value) { this.signed = value; }
 
+    @JsonProperty("SimpleModule")
+    public UnionSimpleModule getSimpleModule() { return simpleModule; }
+    @JsonProperty("SimpleModule")
+    public void setSimpleModule(UnionSimpleModule value) { this.simpleModule = value; }
+
     @JsonProperty("sizeof")
     public UnionSizeof getSizeof() { return sizeof; }
     @JsonProperty("sizeof")
@@ -1391,6 +1592,11 @@ public class TopLevel {
     @JsonProperty("stackalloc")
     public void setStackalloc(UnionStackalloc value) { this.stackalloc = value; }
 
+    @JsonProperty("Standards")
+    public UnionStandards getStandards() { return standards; }
+    @JsonProperty("Standards")
+    public void setStandards(UnionStandards value) { this.standards = value; }
+
     @JsonProperty("static")
     public UnionStatic getTopLevelStatic() { return topLevelStatic; }
     @JsonProperty("static")
@@ -1406,6 +1612,16 @@ public class TopLevel {
     @JsonProperty("static_cast")
     public void setStaticCast(UnionStaticCast value) { this.staticCast = value; }
 
+    @JsonProperty("StdDeserializer")
+    public UnionStdDeserializer getStdDeserializer() { return stdDeserializer; }
+    @JsonProperty("StdDeserializer")
+    public void setStdDeserializer(UnionStdDeserializer value) { this.stdDeserializer = value; }
+
+    @JsonProperty("StdSerializer")
+    public UnionStdSerializer getStdSerializer() { return stdSerializer; }
+    @JsonProperty("StdSerializer")
+    public void setStdSerializer(UnionStdSerializer value) { this.stdSerializer = value; }
+
     @JsonProperty("strictfp")
     public UnionStrictfp getTopLevelStrictfp() { return topLevelStrictfp; }
     @JsonProperty("strictfp")
@@ -1481,6 +1697,16 @@ public class TopLevel {
     @JsonProperty("throws")
     public void setTopLevelThrows(UnionThrows value) { this.topLevelThrows = value; }
 
+    @JsonProperty("TimeOnly")
+    public UnionTimeOnly getTimeOnly() { return timeOnly; }
+    @JsonProperty("TimeOnly")
+    public void setTimeOnly(UnionTimeOnly value) { this.timeOnly = value; }
+
+    @JsonProperty("TimeOnlyConverter")
+    public UnionTimeOnlyConverter getTimeOnlyConverter() { return timeOnlyConverter; }
+    @JsonProperty("TimeOnlyConverter")
+    public void setTimeOnlyConverter(UnionTimeOnlyConverter value) { this.timeOnlyConverter = value; }
+
     @JsonProperty("to_json")
     public UnionToJSON getToJSON() { return toJSON; }
     @JsonProperty("to_json")
@@ -1491,6 +1717,11 @@ public class TopLevel {
     @JsonProperty("top_level")
     public void setTopLevel(UnionTopLevel value) { this.topLevel = value; }
 
+    @JsonProperty("toString")
+    public UnionToString getToString() { return toString; }
+    @JsonProperty("toString")
+    public void setToString(UnionToString value) { this.toString = value; }
+
     @JsonProperty("transient")
     public UnionTransient getTopLevelTransient() { return topLevelTransient; }
     @JsonProperty("transient")
@@ -1596,6 +1827,21 @@ public class TopLevel {
     @JsonProperty("using")
     public void setUsing(UnionUsing value) { this.using = value; }
 
+    @JsonProperty("Utf8JsonReader")
+    public UnionUtf8JSONReader getUtf8JSONReader() { return utf8JSONReader; }
+    @JsonProperty("Utf8JsonReader")
+    public void setUtf8JSONReader(UnionUtf8JSONReader value) { this.utf8JSONReader = value; }
+
+    @JsonProperty("Utf8JsonWriter")
+    public UnionUtf8JSONWriter getUtf8JSONWriter() { return utf8JSONWriter; }
+    @JsonProperty("Utf8JsonWriter")
+    public void setUtf8JSONWriter(UnionUtf8JSONWriter value) { this.utf8JSONWriter = value; }
+
+    @JsonProperty("UUID")
+    public UnionUUID getUUID() { return uuid; }
+    @JsonProperty("UUID")
+    public void setUUID(UnionUUID value) { this.uuid = value; }
+
     @JsonProperty("var")
     public UnionVar getVar() { return var; }
     @JsonProperty("var")
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
new file mode 100644
index 0000000..487eea7
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UUIDClass.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class UUIDClass {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
new file mode 100644
index 0000000..70b95b9
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionClone.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionClone.Deserializer.class)
+@JsonSerialize(using = UnionClone.Serializer.class)
+public class UnionClone {
+    public Double doubleValue;
+    public Clone cloneValue;
+
+    static class Deserializer extends JsonDeserializer<UnionClone> {
+        @Override
+        public UnionClone deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionClone value = new UnionClone();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cloneValue = jsonParser.readValueAs(Clone.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionClone");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionClone> {
+        @Override
+        public void serialize(UnionClone obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cloneValue != null) {
+                jsonGenerator.writeObject(obj.cloneValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
new file mode 100644
index 0000000..9f95338
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionCultureInfo.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionCultureInfo.Deserializer.class)
+@JsonSerialize(using = UnionCultureInfo.Serializer.class)
+public class UnionCultureInfo {
+    public Double doubleValue;
+    public CultureInfo cultureInfoValue;
+
+    static class Deserializer extends JsonDeserializer<UnionCultureInfo> {
+        @Override
+        public UnionCultureInfo deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionCultureInfo value = new UnionCultureInfo();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.cultureInfoValue = jsonParser.readValueAs(CultureInfo.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionCultureInfo");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionCultureInfo> {
+        @Override
+        public void serialize(UnionCultureInfo obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.cultureInfoValue != null) {
+                jsonGenerator.writeObject(obj.cultureInfoValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
new file mode 100644
index 0000000..f0e95ab
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateFormatter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateFormatter.Deserializer.class)
+@JsonSerialize(using = UnionDateFormatter.Serializer.class)
+public class UnionDateFormatter {
+    public Double doubleValue;
+    public DateFormatter dateFormatterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateFormatter> {
+        @Override
+        public UnionDateFormatter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateFormatter value = new UnionDateFormatter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateFormatterValue = jsonParser.readValueAs(DateFormatter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateFormatter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateFormatter> {
+        @Override
+        public void serialize(UnionDateFormatter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateFormatterValue != null) {
+                jsonGenerator.writeObject(obj.dateFormatterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
new file mode 100644
index 0000000..1d24369
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnly.Deserializer.class)
+@JsonSerialize(using = UnionDateOnly.Serializer.class)
+public class UnionDateOnly {
+    public Double doubleValue;
+    public DateOnly dateOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnly> {
+        @Override
+        public UnionDateOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnly value = new UnionDateOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyValue = jsonParser.readValueAs(DateOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnly> {
+        @Override
+        public void serialize(UnionDateOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
new file mode 100644
index 0000000..a07f715
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionDateOnlyConverter.Serializer.class)
+public class UnionDateOnlyConverter {
+    public Double doubleValue;
+    public DateOnlyConverter dateOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateOnlyConverter> {
+        @Override
+        public UnionDateOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateOnlyConverter value = new UnionDateOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateOnlyConverterValue = jsonParser.readValueAs(DateOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateOnlyConverter> {
+        @Override
+        public void serialize(UnionDateOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.dateOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
new file mode 100644
index 0000000..baa2f1c
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTime.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTime.Deserializer.class)
+@JsonSerialize(using = UnionDateTime.Serializer.class)
+public class UnionDateTime {
+    public Double doubleValue;
+    public DateTime dateTimeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTime> {
+        @Override
+        public UnionDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTime value = new UnionDateTime();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeValue = jsonParser.readValueAs(DateTime.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTime");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTime> {
+        @Override
+        public void serialize(UnionDateTime obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
new file mode 100644
index 0000000..9baee16
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionDateTimeStyles.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionDateTimeStyles.Deserializer.class)
+@JsonSerialize(using = UnionDateTimeStyles.Serializer.class)
+public class UnionDateTimeStyles {
+    public Double doubleValue;
+    public DateTimeStyles dateTimeStylesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionDateTimeStyles> {
+        @Override
+        public UnionDateTimeStyles deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionDateTimeStyles value = new UnionDateTimeStyles();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.dateTimeStylesValue = jsonParser.readValueAs(DateTimeStyles.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionDateTimeStyles");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionDateTimeStyles> {
+        @Override
+        public void serialize(UnionDateTimeStyles obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.dateTimeStylesValue != null) {
+                jsonGenerator.writeObject(obj.dateTimeStylesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
new file mode 100644
index 0000000..a341540
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEnumValues.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEnumValues.Deserializer.class)
+@JsonSerialize(using = UnionEnumValues.Serializer.class)
+public class UnionEnumValues {
+    public Double doubleValue;
+    public EnumValues enumValuesValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEnumValues> {
+        @Override
+        public UnionEnumValues deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEnumValues value = new UnionEnumValues();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.enumValuesValue = jsonParser.readValueAs(EnumValues.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEnumValues");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEnumValues> {
+        @Override
+        public void serialize(UnionEnumValues obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.enumValuesValue != null) {
+                jsonGenerator.writeObject(obj.enumValuesValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
new file mode 100644
index 0000000..97447af
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionEqualityContract.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionEqualityContract.Deserializer.class)
+@JsonSerialize(using = UnionEqualityContract.Serializer.class)
+public class UnionEqualityContract {
+    public Double doubleValue;
+    public EqualityContract equalityContractValue;
+
+    static class Deserializer extends JsonDeserializer<UnionEqualityContract> {
+        @Override
+        public UnionEqualityContract deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionEqualityContract value = new UnionEqualityContract();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.equalityContractValue = jsonParser.readValueAs(EqualityContract.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionEqualityContract");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionEqualityContract> {
+        @Override
+        public void serialize(UnionEqualityContract obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.equalityContractValue != null) {
+                jsonGenerator.writeObject(obj.equalityContractValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
new file mode 100644
index 0000000..2bde37a
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionFormatException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionFormatException.Deserializer.class)
+@JsonSerialize(using = UnionFormatException.Serializer.class)
+public class UnionFormatException {
+    public Double doubleValue;
+    public FormatException formatExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionFormatException> {
+        @Override
+        public UnionFormatException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionFormatException value = new UnionFormatException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.formatExceptionValue = jsonParser.readValueAs(FormatException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionFormatException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionFormatException> {
+        @Override
+        public void serialize(UnionFormatException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.formatExceptionValue != null) {
+                jsonGenerator.writeObject(obj.formatExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
new file mode 100644
index 0000000..fdd7eac
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionHashCode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionHashCode.Deserializer.class)
+@JsonSerialize(using = UnionHashCode.Serializer.class)
+public class UnionHashCode {
+    public Double doubleValue;
+    public HashCode hashCodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionHashCode> {
+        @Override
+        public UnionHashCode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionHashCode value = new UnionHashCode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.hashCodeValue = jsonParser.readValueAs(HashCode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionHashCode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionHashCode> {
+        @Override
+        public void serialize(UnionHashCode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.hashCodeValue != null) {
+                jsonGenerator.writeObject(obj.hashCodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
new file mode 100644
index 0000000..0a1f36e
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionISODateTimeOffsetConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionISODateTimeOffsetConverter.Deserializer.class)
+@JsonSerialize(using = UnionISODateTimeOffsetConverter.Serializer.class)
+public class UnionISODateTimeOffsetConverter {
+    public Double doubleValue;
+    public ISODateTimeOffsetConverter isoDateTimeOffsetConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public UnionISODateTimeOffsetConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionISODateTimeOffsetConverter value = new UnionISODateTimeOffsetConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.isoDateTimeOffsetConverterValue = jsonParser.readValueAs(ISODateTimeOffsetConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionISODateTimeOffsetConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionISODateTimeOffsetConverter> {
+        @Override
+        public void serialize(UnionISODateTimeOffsetConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.isoDateTimeOffsetConverterValue != null) {
+                jsonGenerator.writeObject(obj.isoDateTimeOffsetConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
new file mode 100644
index 0000000..9a3ade0
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONAny.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONAny.Deserializer.class)
+@JsonSerialize(using = UnionJSONAny.Serializer.class)
+public class UnionJSONAny {
+    public Double doubleValue;
+    public JSONAny jsonAnyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONAny> {
+        @Override
+        public UnionJSONAny deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONAny value = new UnionJSONAny();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonAnyValue = jsonParser.readValueAs(JSONAny.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONAny");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONAny> {
+        @Override
+        public void serialize(UnionJSONAny obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonAnyValue != null) {
+                jsonGenerator.writeObject(obj.jsonAnyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
new file mode 100644
index 0000000..066ca26
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONCodingKey.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONCodingKey.Deserializer.class)
+@JsonSerialize(using = UnionJSONCodingKey.Serializer.class)
+public class UnionJSONCodingKey {
+    public Double doubleValue;
+    public JSONCodingKey jsonCodingKeyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONCodingKey> {
+        @Override
+        public UnionJSONCodingKey deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONCodingKey value = new UnionJSONCodingKey();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonCodingKeyValue = jsonParser.readValueAs(JSONCodingKey.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONCodingKey");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONCodingKey> {
+        @Override
+        public void serialize(UnionJSONCodingKey obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonCodingKeyValue != null) {
+                jsonGenerator.writeObject(obj.jsonCodingKeyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
new file mode 100644
index 0000000..6f1a5f0
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONDecoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONDecoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONDecoder.Serializer.class)
+public class UnionJSONDecoder {
+    public Double doubleValue;
+    public JSONDecoder jsonDecoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONDecoder> {
+        @Override
+        public UnionJSONDecoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONDecoder value = new UnionJSONDecoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonDecoderValue = jsonParser.readValueAs(JSONDecoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONDecoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONDecoder> {
+        @Override
+        public void serialize(UnionJSONDecoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonDecoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonDecoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
new file mode 100644
index 0000000..9297c3d
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONEncoder.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONEncoder.Deserializer.class)
+@JsonSerialize(using = UnionJSONEncoder.Serializer.class)
+public class UnionJSONEncoder {
+    public Double doubleValue;
+    public JSONEncoder jsonEncoderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONEncoder> {
+        @Override
+        public UnionJSONEncoder deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONEncoder value = new UnionJSONEncoder();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonEncoderValue = jsonParser.readValueAs(JSONEncoder.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONEncoder");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONEncoder> {
+        @Override
+        public void serialize(UnionJSONEncoder obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonEncoderValue != null) {
+                jsonGenerator.writeObject(obj.jsonEncoderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
new file mode 100644
index 0000000..08de45a
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONException.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONException.Deserializer.class)
+@JsonSerialize(using = UnionJSONException.Serializer.class)
+public class UnionJSONException {
+    public Double doubleValue;
+    public JSONException jsonExceptionValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONException> {
+        @Override
+        public UnionJSONException deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONException value = new UnionJSONException();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonExceptionValue = jsonParser.readValueAs(JSONException.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONException");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONException> {
+        @Override
+        public void serialize(UnionJSONException obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonExceptionValue != null) {
+                jsonGenerator.writeObject(obj.jsonExceptionValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
new file mode 100644
index 0000000..4114f93
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONGenerator.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONGenerator.Deserializer.class)
+@JsonSerialize(using = UnionJSONGenerator.Serializer.class)
+public class UnionJSONGenerator {
+    public Double doubleValue;
+    public JSONGenerator jsonGeneratorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONGenerator> {
+        @Override
+        public UnionJSONGenerator deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONGenerator value = new UnionJSONGenerator();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonGeneratorValue = jsonParser.readValueAs(JSONGenerator.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONGenerator");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONGenerator> {
+        @Override
+        public void serialize(UnionJSONGenerator obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonGeneratorValue != null) {
+                jsonGenerator.writeObject(obj.jsonGeneratorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
new file mode 100644
index 0000000..45c2598
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNode.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNode.Deserializer.class)
+@JsonSerialize(using = UnionJSONNode.Serializer.class)
+public class UnionJSONNode {
+    public Double doubleValue;
+    public JSONNode jsonNodeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNode> {
+        @Override
+        public UnionJSONNode deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNode value = new UnionJSONNode();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNodeValue = jsonParser.readValueAs(JSONNode.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNode");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNode> {
+        @Override
+        public void serialize(UnionJSONNode obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNodeValue != null) {
+                jsonGenerator.writeObject(obj.jsonNodeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
new file mode 100644
index 0000000..43e59fb
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONNull.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONNull.Deserializer.class)
+@JsonSerialize(using = UnionJSONNull.Serializer.class)
+public class UnionJSONNull {
+    public Double doubleValue;
+    public JSONNull jsonNullValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONNull> {
+        @Override
+        public UnionJSONNull deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONNull value = new UnionJSONNull();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonNullValue = jsonParser.readValueAs(JSONNull.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONNull");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONNull> {
+        @Override
+        public void serialize(UnionJSONNull obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonNullValue != null) {
+                jsonGenerator.writeObject(obj.jsonNullValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
new file mode 100644
index 0000000..c27ed2f
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONParser.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONParser.Deserializer.class)
+@JsonSerialize(using = UnionJSONParser.Serializer.class)
+public class UnionJSONParser {
+    public Double doubleValue;
+    public JSONParser jsonParserValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONParser> {
+        @Override
+        public UnionJSONParser deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONParser value = new UnionJSONParser();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonParserValue = jsonParser.readValueAs(JSONParser.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONParser");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONParser> {
+        @Override
+        public void serialize(UnionJSONParser obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonParserValue != null) {
+                jsonGenerator.writeObject(obj.jsonParserValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
new file mode 100644
index 0000000..ee561aa
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONReader.Deserializer.class)
+@JsonSerialize(using = UnionJSONReader.Serializer.class)
+public class UnionJSONReader {
+    public Double doubleValue;
+    public JSONReader jsonReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONReader> {
+        @Override
+        public UnionJSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONReader value = new UnionJSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonReaderValue = jsonParser.readValueAs(JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONReader> {
+        @Override
+        public void serialize(UnionJSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonReaderValue != null) {
+                jsonGenerator.writeObject(obj.jsonReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
new file mode 100644
index 0000000..36a76f3
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionJSONTokenType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionJSONTokenType.Deserializer.class)
+@JsonSerialize(using = UnionJSONTokenType.Serializer.class)
+public class UnionJSONTokenType {
+    public Double doubleValue;
+    public JSONTokenType jsonTokenTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionJSONTokenType> {
+        @Override
+        public UnionJSONTokenType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionJSONTokenType value = new UnionJSONTokenType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.jsonTokenTypeValue = jsonParser.readValueAs(JSONTokenType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionJSONTokenType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionJSONTokenType> {
+        @Override
+        public void serialize(UnionJSONTokenType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.jsonTokenTypeValue != null) {
+                jsonGenerator.writeObject(obj.jsonTokenTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
new file mode 100644
index 0000000..772625f
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNSError.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNSError.Deserializer.class)
+@JsonSerialize(using = UnionNSError.Serializer.class)
+public class UnionNSError {
+    public Double doubleValue;
+    public NSError nsErrorValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNSError> {
+        @Override
+        public UnionNSError deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNSError value = new UnionNSError();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.nsErrorValue = jsonParser.readValueAs(NSError.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNSError");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNSError> {
+        @Override
+        public void serialize(UnionNSError obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.nsErrorValue != null) {
+                jsonGenerator.writeObject(obj.nsErrorValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
new file mode 100644
index 0000000..1a26bc7
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionNoSuchMethod.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionNoSuchMethod.Deserializer.class)
+@JsonSerialize(using = UnionNoSuchMethod.Serializer.class)
+public class UnionNoSuchMethod {
+    public Double doubleValue;
+    public NoSuchMethod noSuchMethodValue;
+
+    static class Deserializer extends JsonDeserializer<UnionNoSuchMethod> {
+        @Override
+        public UnionNoSuchMethod deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionNoSuchMethod value = new UnionNoSuchMethod();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.noSuchMethodValue = jsonParser.readValueAs(NoSuchMethod.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionNoSuchMethod");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionNoSuchMethod> {
+        @Override
+        public void serialize(UnionNoSuchMethod obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.noSuchMethodValue != null) {
+                jsonGenerator.writeObject(obj.noSuchMethodValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
new file mode 100644
index 0000000..9193385
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionObjectMapper.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionObjectMapper.Deserializer.class)
+@JsonSerialize(using = UnionObjectMapper.Serializer.class)
+public class UnionObjectMapper {
+    public Double doubleValue;
+    public ObjectMapperClass objectMapperClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionObjectMapper> {
+        @Override
+        public UnionObjectMapper deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionObjectMapper value = new UnionObjectMapper();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.objectMapperClassValue = jsonParser.readValueAs(ObjectMapperClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionObjectMapper");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionObjectMapper> {
+        @Override
+        public void serialize(UnionObjectMapper obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.objectMapperClassValue != null) {
+                jsonGenerator.writeObject(obj.objectMapperClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
new file mode 100644
index 0000000..fd0e431
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionPrintMembers.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionPrintMembers.Deserializer.class)
+@JsonSerialize(using = UnionPrintMembers.Serializer.class)
+public class UnionPrintMembers {
+    public Double doubleValue;
+    public PrintMembers printMembersValue;
+
+    static class Deserializer extends JsonDeserializer<UnionPrintMembers> {
+        @Override
+        public UnionPrintMembers deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionPrintMembers value = new UnionPrintMembers();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.printMembersValue = jsonParser.readValueAs(PrintMembers.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionPrintMembers");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionPrintMembers> {
+        @Override
+        public void serialize(UnionPrintMembers obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.printMembersValue != null) {
+                jsonGenerator.writeObject(obj.printMembersValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
new file mode 100644
index 0000000..7fd1eba
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRegExp.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRegExp.Deserializer.class)
+@JsonSerialize(using = UnionRegExp.Serializer.class)
+public class UnionRegExp {
+    public Double doubleValue;
+    public RegExp regExpValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRegExp> {
+        @Override
+        public UnionRegExp deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRegExp value = new UnionRegExp();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.regExpValue = jsonParser.readValueAs(RegExp.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRegExp");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRegExp> {
+        @Override
+        public void serialize(UnionRegExp obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.regExpValue != null) {
+                jsonGenerator.writeObject(obj.regExpValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
new file mode 100644
index 0000000..cfb986b
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionRuntimeType.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionRuntimeType.Deserializer.class)
+@JsonSerialize(using = UnionRuntimeType.Serializer.class)
+public class UnionRuntimeType {
+    public Double doubleValue;
+    public RuntimeType runtimeTypeValue;
+
+    static class Deserializer extends JsonDeserializer<UnionRuntimeType> {
+        @Override
+        public UnionRuntimeType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionRuntimeType value = new UnionRuntimeType();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.runtimeTypeValue = jsonParser.readValueAs(RuntimeType.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionRuntimeType");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionRuntimeType> {
+        @Override
+        public void serialize(UnionRuntimeType obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.runtimeTypeValue != null) {
+                jsonGenerator.writeObject(obj.runtimeTypeValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
new file mode 100644
index 0000000..abd8a7d
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionS.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionS.Deserializer.class)
+@JsonSerialize(using = UnionS.Serializer.class)
+public class UnionS {
+    public Double doubleValue;
+    public S sValue;
+
+    static class Deserializer extends JsonDeserializer<UnionS> {
+        @Override
+        public UnionS deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionS value = new UnionS();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.sValue = jsonParser.readValueAs(S.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionS");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionS> {
+        @Override
+        public void serialize(UnionS obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.sValue != null) {
+                jsonGenerator.writeObject(obj.sValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
new file mode 100644
index 0000000..81d992e
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSerializerProvider.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSerializerProvider.Deserializer.class)
+@JsonSerialize(using = UnionSerializerProvider.Serializer.class)
+public class UnionSerializerProvider {
+    public Double doubleValue;
+    public SerializerProviderClass serializerProviderClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSerializerProvider> {
+        @Override
+        public UnionSerializerProvider deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSerializerProvider value = new UnionSerializerProvider();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.serializerProviderClassValue = jsonParser.readValueAs(SerializerProviderClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSerializerProvider");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSerializerProvider> {
+        @Override
+        public void serialize(UnionSerializerProvider obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.serializerProviderClassValue != null) {
+                jsonGenerator.writeObject(obj.serializerProviderClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
new file mode 100644
index 0000000..b2a4d33
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionSimpleModule.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionSimpleModule.Deserializer.class)
+@JsonSerialize(using = UnionSimpleModule.Serializer.class)
+public class UnionSimpleModule {
+    public Double doubleValue;
+    public SimpleModule simpleModuleValue;
+
+    static class Deserializer extends JsonDeserializer<UnionSimpleModule> {
+        @Override
+        public UnionSimpleModule deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionSimpleModule value = new UnionSimpleModule();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.simpleModuleValue = jsonParser.readValueAs(SimpleModule.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionSimpleModule");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionSimpleModule> {
+        @Override
+        public void serialize(UnionSimpleModule obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.simpleModuleValue != null) {
+                jsonGenerator.writeObject(obj.simpleModuleValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
new file mode 100644
index 0000000..99d7022
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStandards.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStandards.Deserializer.class)
+@JsonSerialize(using = UnionStandards.Serializer.class)
+public class UnionStandards {
+    public Double doubleValue;
+    public Standards standardsValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStandards> {
+        @Override
+        public UnionStandards deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStandards value = new UnionStandards();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.standardsValue = jsonParser.readValueAs(Standards.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStandards");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStandards> {
+        @Override
+        public void serialize(UnionStandards obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.standardsValue != null) {
+                jsonGenerator.writeObject(obj.standardsValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
new file mode 100644
index 0000000..ef1406c
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdDeserializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdDeserializer.Deserializer.class)
+@JsonSerialize(using = UnionStdDeserializer.Serializer.class)
+public class UnionStdDeserializer {
+    public Double doubleValue;
+    public StdDeserializer stdDeserializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdDeserializer> {
+        @Override
+        public UnionStdDeserializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdDeserializer value = new UnionStdDeserializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdDeserializerValue = jsonParser.readValueAs(StdDeserializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdDeserializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdDeserializer> {
+        @Override
+        public void serialize(UnionStdDeserializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdDeserializerValue != null) {
+                jsonGenerator.writeObject(obj.stdDeserializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
new file mode 100644
index 0000000..957f1d1
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionStdSerializer.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionStdSerializer.Deserializer.class)
+@JsonSerialize(using = UnionStdSerializer.Serializer.class)
+public class UnionStdSerializer {
+    public Double doubleValue;
+    public StdSerializer stdSerializerValue;
+
+    static class Deserializer extends JsonDeserializer<UnionStdSerializer> {
+        @Override
+        public UnionStdSerializer deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionStdSerializer value = new UnionStdSerializer();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.stdSerializerValue = jsonParser.readValueAs(StdSerializer.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionStdSerializer");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionStdSerializer> {
+        @Override
+        public void serialize(UnionStdSerializer obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.stdSerializerValue != null) {
+                jsonGenerator.writeObject(obj.stdSerializerValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
new file mode 100644
index 0000000..022de75
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnly.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnly.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnly.Serializer.class)
+public class UnionTimeOnly {
+    public Double doubleValue;
+    public TimeOnly timeOnlyValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnly> {
+        @Override
+        public UnionTimeOnly deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnly value = new UnionTimeOnly();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyValue = jsonParser.readValueAs(TimeOnly.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnly");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnly> {
+        @Override
+        public void serialize(UnionTimeOnly obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
new file mode 100644
index 0000000..fea1f46
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionTimeOnlyConverter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionTimeOnlyConverter.Deserializer.class)
+@JsonSerialize(using = UnionTimeOnlyConverter.Serializer.class)
+public class UnionTimeOnlyConverter {
+    public Double doubleValue;
+    public TimeOnlyConverter timeOnlyConverterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionTimeOnlyConverter> {
+        @Override
+        public UnionTimeOnlyConverter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionTimeOnlyConverter value = new UnionTimeOnlyConverter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.timeOnlyConverterValue = jsonParser.readValueAs(TimeOnlyConverter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionTimeOnlyConverter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionTimeOnlyConverter> {
+        @Override
+        public void serialize(UnionTimeOnlyConverter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.timeOnlyConverterValue != null) {
+                jsonGenerator.writeObject(obj.timeOnlyConverterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
new file mode 100644
index 0000000..1f150eb
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionToString.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionToString.Deserializer.class)
+@JsonSerialize(using = UnionToString.Serializer.class)
+public class UnionToString {
+    public Double doubleValue;
+    public ToString toStringValue;
+
+    static class Deserializer extends JsonDeserializer<UnionToString> {
+        @Override
+        public UnionToString deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionToString value = new UnionToString();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.toStringValue = jsonParser.readValueAs(ToString.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionToString");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionToString> {
+        @Override
+        public void serialize(UnionToString obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.toStringValue != null) {
+                jsonGenerator.writeObject(obj.toStringValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
new file mode 100644
index 0000000..e892448
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUUID.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUUID.Deserializer.class)
+@JsonSerialize(using = UnionUUID.Serializer.class)
+public class UnionUUID {
+    public Double doubleValue;
+    public UUIDClass uuidClassValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUUID> {
+        @Override
+        public UnionUUID deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUUID value = new UnionUUID();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.uuidClassValue = jsonParser.readValueAs(UUIDClass.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUUID");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUUID> {
+        @Override
+        public void serialize(UnionUUID obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.uuidClassValue != null) {
+                jsonGenerator.writeObject(obj.uuidClassValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
new file mode 100644
index 0000000..0348c69
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONReader.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONReader.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONReader.Serializer.class)
+public class UnionUtf8JSONReader {
+    public Double doubleValue;
+    public Utf8JSONReader utf8JSONReaderValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONReader> {
+        @Override
+        public UnionUtf8JSONReader deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONReader value = new UnionUtf8JSONReader();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONReaderValue = jsonParser.readValueAs(Utf8JSONReader.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONReader");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONReader> {
+        @Override
+        public void serialize(UnionUtf8JSONReader obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONReaderValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONReaderValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
new file mode 100644
index 0000000..6e1302c
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/UnionUtf8JSONWriter.java
@@ -0,0 +1,50 @@
+package io.quicktype;
+
+import java.io.IOException;
+import java.io.IOException;
+import com.fasterxml.jackson.core.*;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.annotation.*;
+import com.fasterxml.jackson.core.type.*;
+
+@JsonDeserialize(using = UnionUtf8JSONWriter.Deserializer.class)
+@JsonSerialize(using = UnionUtf8JSONWriter.Serializer.class)
+public class UnionUtf8JSONWriter {
+    public Double doubleValue;
+    public Utf8JSONWriter utf8JSONWriterValue;
+
+    static class Deserializer extends JsonDeserializer<UnionUtf8JSONWriter> {
+        @Override
+        public UnionUtf8JSONWriter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            UnionUtf8JSONWriter value = new UnionUtf8JSONWriter();
+            switch (jsonParser.currentToken()) {
+                case VALUE_NULL:
+                    break;
+                case VALUE_NUMBER_INT:
+                case VALUE_NUMBER_FLOAT:
+                    value.doubleValue = jsonParser.readValueAs(Double.class);
+                    break;
+                case START_OBJECT:
+                    value.utf8JSONWriterValue = jsonParser.readValueAs(Utf8JSONWriter.class);
+                    break;
+                default: throw new IOException("Cannot deserialize UnionUtf8JSONWriter");
+            }
+            return value;
+        }
+    }
+
+    static class Serializer extends JsonSerializer<UnionUtf8JSONWriter> {
+        @Override
+        public void serialize(UnionUtf8JSONWriter obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+            if (obj.doubleValue != null) {
+                jsonGenerator.writeObject(obj.doubleValue);
+                return;
+            }
+            if (obj.utf8JSONWriterValue != null) {
+                jsonGenerator.writeObject(obj.utf8JSONWriterValue);
+                return;
+            }
+            jsonGenerator.writeNull();
+        }
+    }
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
new file mode 100644
index 0000000..72aa995
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONReader.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONReader {
+}
diff --git a/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
new file mode 100644
index 0000000..a77c514
--- /dev/null
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Utf8JSONWriter.java
@@ -0,0 +1,7 @@
+package io.quicktype;
+
+import com.fasterxml.jackson.annotation.*;
+
+@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.NONE)
+public class Utf8JSONWriter {
+}
diff --git a/base/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
index edd1150..986bbc7 100644
--- a/base/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
@@ -239,6 +239,7 @@ const typeMap = {
         "checked",
         "class",
         "Class",
+        "clone",
         "co_await",
         "co_return",
         "co_yield",
@@ -253,8 +254,14 @@ const typeMap = {
         "convenience",
         "convert",
         "converter",
+        "CultureInfo",
         "date",
         "date_parse_handling",
+        "DateFormatter",
+        "DateOnly",
+        "DateOnlyConverter",
+        "DateTime",
+        "DateTimeStyles",
         "debugger",
         "decimal",
         "declare",
@@ -278,6 +285,8 @@ const typeMap = {
         "else",
         "encode_quick_type",
         "enum",
+        "EnumValues",
+        "equalityContract",
         "event",
         "except",
         "exception",
@@ -297,6 +306,7 @@ const typeMap = {
         "float",
         "for",
         "foreach",
+        "FormatException",
         "friend",
         "from",
         "from_json",
@@ -307,6 +317,7 @@ const typeMap = {
         "go",
         "goto",
         "guard",
+        "hashCode",
         "hasOwnProperty",
         "id",
         "if",
@@ -324,6 +335,7 @@ const typeMap = {
         "int",
         "interface",
         "internal",
+        "IsoDateTimeOffsetConverter",
         "iterable",
         "is",
         "jdec",
@@ -334,6 +346,17 @@ const typeMap = {
         "json_serializer",
         "json_token",
         "json_writer",
+        "JSONAny",
+        "JSONCodingKey",
+        "JSONDecoder",
+        "JSONEncoder",
+        "JsonException",
+        "JsonGenerator",
+        "JsonNode",
+        "JSONNull",
+        "JsonParser",
+        "JsonReader",
+        "JsonTokenType",
         "lambda",
         "lazy",
         "left",
@@ -358,14 +381,17 @@ const typeMap = {
         "None",
         "nonlocal",
         "nonmutating",
+        "noSuchMethod",
         "not",
         "not_eq",
+        "NSError",
         "NSString",
         "NULL",
         "null",
         "nullptr",
         "number",
         "object",
+        "ObjectMapper",
         "of",
         "oneway",
         "open",
@@ -384,6 +410,7 @@ const typeMap = {
         "prefix",
         "print",
         "printf",
+        "printMembers",
         "private",
         "protected",
         "Protocol",
@@ -394,6 +421,7 @@ const typeMap = {
         "range",
         "readonly",
         "ref",
+        "RegExp",
         "register",
         "reinterpret_cast",
         "repeat",
@@ -405,6 +433,8 @@ const typeMap = {
         "rethrows",
         "return",
         "right",
+        "runtimeType",
+        "s",
         "sbyte",
         "sealed",
         "SEL",
@@ -412,14 +442,19 @@ const typeMap = {
         "Self",
         "self",
         "serialize",
+        "SerializerProvider",
         "set",
         "short",
         "signed",
+        "SimpleModule",
         "sizeof",
         "stackalloc",
+        "Standards",
         "static",
         "static_assert",
         "static_cast",
+        "StdDeserializer",
+        "StdSerializer",
         "strictfp",
         "string",
         "struct",
@@ -435,8 +470,11 @@ const typeMap = {
         "thread_local",
         "throw",
         "throws",
+        "TimeOnly",
+        "TimeOnlyConverter",
         "to_json",
         "top_level",
+        "toString",
         "transient",
         "True",
         "true",
@@ -458,6 +496,9 @@ const typeMap = {
         "unsigned",
         "ushort",
         "using",
+        "Utf8JsonReader",
+        "Utf8JsonWriter",
+        "UUID",
         "var",
         "virtual",
         "void",
diff --git a/base/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
index 4454e83..0b8ca3d 100644
--- a/base/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
@@ -236,6 +236,7 @@ const typeMap = {
         { json: "checked", js: "checked", typ: u(undefined, u(r("Checked"), 3.14)) },
         { json: "class", js: "class", typ: u(undefined, u(r("ClassClass"), 3.14)) },
         { json: "Class", js: "Class", typ: u(undefined, u(r("Class"), 3.14)) },
+        { json: "clone", js: "clone", typ: u(undefined, u(r("Clone"), 3.14)) },
         { json: "co_await", js: "co_await", typ: u(undefined, u(r("CoAwait"), 3.14)) },
         { json: "co_return", js: "co_return", typ: u(undefined, u(r("CoReturn"), 3.14)) },
         { json: "co_yield", js: "co_yield", typ: u(undefined, u(r("CoYield"), 3.14)) },
@@ -250,8 +251,14 @@ const typeMap = {
         { json: "convenience", js: "convenience", typ: u(undefined, u(r("Convenience"), 3.14)) },
         { json: "convert", js: "convert", typ: u(undefined, u(r("Convert"), 3.14)) },
         { json: "converter", js: "converter", typ: u(undefined, u(r("Converter"), 3.14)) },
+        { json: "CultureInfo", js: "CultureInfo", typ: u(undefined, u(r("CultureInfo"), 3.14)) },
         { json: "date", js: "date", typ: u(undefined, u(r("Date"), 3.14)) },
         { json: "date_parse_handling", js: "date_parse_handling", typ: u(undefined, u(r("DateParseHandling"), 3.14)) },
+        { json: "DateFormatter", js: "DateFormatter", typ: u(undefined, u(r("DateFormatter"), 3.14)) },
+        { json: "DateOnly", js: "DateOnly", typ: u(undefined, u(r("DateOnly"), 3.14)) },
+        { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: u(undefined, u(r("DateOnlyConverter"), 3.14)) },
+        { json: "DateTime", js: "DateTime", typ: u(undefined, u(r("DateTime"), 3.14)) },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: u(undefined, u(r("DateTimeStyles"), 3.14)) },
         { json: "debugger", js: "debugger", typ: u(undefined, u(r("Debugger"), 3.14)) },
         { json: "decimal", js: "decimal", typ: u(undefined, u(r("Decimal"), 3.14)) },
         { json: "declare", js: "declare", typ: u(undefined, u(r("Declare"), 3.14)) },
@@ -276,6 +283,8 @@ const typeMap = {
         { json: "else", js: "else", typ: u(undefined, u(r("Else"), 3.14)) },
         { json: "encode_quick_type", js: "encode_quick_type", typ: u(undefined, u(r("EncodeQuickType"), 3.14)) },
         { json: "enum", js: "enum", typ: u(undefined, u(r("Enum"), 3.14)) },
+        { json: "EnumValues", js: "EnumValues", typ: u(undefined, u(r("EnumValues"), 3.14)) },
+        { json: "equalityContract", js: "equalityContract", typ: u(undefined, u(r("EqualityContract"), 3.14)) },
         { json: "event", js: "event", typ: u(undefined, u(r("Event"), 3.14)) },
         { json: "except", js: "except", typ: u(undefined, u(r("Except"), 3.14)) },
         { json: "exception", js: "exception", typ: u(undefined, u(r("Exception"), 3.14)) },
@@ -295,6 +304,7 @@ const typeMap = {
         { json: "float", js: "float", typ: u(undefined, u(r("Float"), 3.14)) },
         { json: "for", js: "for", typ: u(undefined, u(r("For"), 3.14)) },
         { json: "foreach", js: "foreach", typ: u(undefined, u(r("Foreach"), 3.14)) },
+        { json: "FormatException", js: "FormatException", typ: u(undefined, u(r("FormatException"), 3.14)) },
         { json: "friend", js: "friend", typ: u(undefined, u(r("Friend"), 3.14)) },
         { json: "from", js: "from", typ: u(undefined, u(r("From"), 3.14)) },
         { json: "from_json", js: "from_json", typ: u(undefined, u(r("FromJSON"), 3.14)) },
@@ -305,6 +315,7 @@ const typeMap = {
         { json: "go", js: "go", typ: u(undefined, u(r("Go"), 3.14)) },
         { json: "goto", js: "goto", typ: u(undefined, u(r("Goto"), 3.14)) },
         { json: "guard", js: "guard", typ: u(undefined, u(r("Guard"), 3.14)) },
+        { json: "hashCode", js: "hashCode", typ: u(undefined, u(r("HashCode"), 3.14)) },
         { json: "hasOwnProperty", js: "hasOwnProperty", typ: u(undefined, u(r("HasOwnProperty"), 3.14)) },
         { json: "id", js: "id", typ: u(undefined, u(r("ID"), 3.14)) },
         { json: "if", js: "if", typ: u(undefined, u(r("If"), 3.14)) },
@@ -323,6 +334,7 @@ const typeMap = {
         { json: "interface", js: "interface", typ: u(undefined, u(r("Interface"), 3.14)) },
         { json: "internal", js: "internal", typ: u(undefined, u(r("Internal"), 3.14)) },
         { json: "is", js: "is", typ: u(undefined, u(r("Is"), 3.14)) },
+        { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: u(undefined, u(r("ISODateTimeOffsetConverter"), 3.14)) },
         { json: "iterable", js: "iterable", typ: u(undefined, u(r("Iterable"), 3.14)) },
         { json: "jdec", js: "jdec", typ: u(undefined, u(r("Jdec"), 3.14)) },
         { json: "jenc", js: "jenc", typ: u(undefined, u(r("Jenc"), 3.14)) },
@@ -332,6 +344,17 @@ const typeMap = {
         { json: "json_serializer", js: "json_serializer", typ: u(undefined, u(r("JSONSerializer"), 3.14)) },
         { json: "json_token", js: "json_token", typ: u(undefined, u(r("JSONToken"), 3.14)) },
         { json: "json_writer", js: "json_writer", typ: u(undefined, u(r("JSONWriter"), 3.14)) },
+        { json: "JSONAny", js: "JSONAny", typ: u(undefined, u(r("JSONAny"), 3.14)) },
+        { json: "JSONCodingKey", js: "JSONCodingKey", typ: u(undefined, u(r("JSONCodingKey"), 3.14)) },
+        { json: "JSONDecoder", js: "JSONDecoder", typ: u(undefined, u(r("JSONDecoder"), 3.14)) },
+        { json: "JSONEncoder", js: "JSONEncoder", typ: u(undefined, u(r("JSONEncoder"), 3.14)) },
+        { json: "JsonException", js: "JsonException", typ: u(undefined, u(r("JSONException"), 3.14)) },
+        { json: "JsonGenerator", js: "JsonGenerator", typ: u(undefined, u(r("JSONGenerator"), 3.14)) },
+        { json: "JsonNode", js: "JsonNode", typ: u(undefined, u(r("JSONNode"), 3.14)) },
+        { json: "JSONNull", js: "JSONNull", typ: u(undefined, u(r("JSONNull"), 3.14)) },
+        { json: "JsonParser", js: "JsonParser", typ: u(undefined, u(r("JSONParser"), 3.14)) },
+        { json: "JsonReader", js: "JsonReader", typ: u(undefined, u(r("JSONReader"), 3.14)) },
+        { json: "JsonTokenType", js: "JsonTokenType", typ: u(undefined, u(r("JSONTokenType"), 3.14)) },
         { json: "lambda", js: "lambda", typ: u(undefined, u(r("Lambda"), 3.14)) },
         { json: "lazy", js: "lazy", typ: u(undefined, u(r("Lazy"), 3.14)) },
         { json: "left", js: "left", typ: u(undefined, u(r("Left"), 3.14)) },
@@ -356,14 +379,17 @@ const typeMap = {
         { json: "None", js: "None", typ: u(undefined, u(r("None"), 3.14)) },
         { json: "nonlocal", js: "nonlocal", typ: u(undefined, u(r("Nonlocal"), 3.14)) },
         { json: "nonmutating", js: "nonmutating", typ: u(undefined, u(r("Nonmutating"), 3.14)) },
+        { json: "noSuchMethod", js: "noSuchMethod", typ: u(undefined, u(r("NoSuchMethod"), 3.14)) },
         { json: "not", js: "not", typ: u(undefined, u(r("Not"), 3.14)) },
         { json: "not_eq", js: "not_eq", typ: u(undefined, u(r("NotEq"), 3.14)) },
+        { json: "NSError", js: "NSError", typ: u(undefined, u(r("NSError"), 3.14)) },
         { json: "NSString", js: "NSString", typ: u(undefined, u(r("NSString"), 3.14)) },
         { json: "NULL", js: "NULL", typ: u(undefined, u(r("Null"), 3.14)) },
         { json: "null", js: "null", typ: u(undefined, u(r("NullClass"), 3.14)) },
         { json: "nullptr", js: "nullptr", typ: u(undefined, u(r("Nullptr"), 3.14)) },
         { json: "number", js: "number", typ: u(undefined, u(r("Number"), 3.14)) },
         { json: "object", js: "object", typ: u(undefined, u(r("Object"), 3.14)) },
+        { json: "ObjectMapper", js: "ObjectMapper", typ: u(undefined, u(r("ObjectMapper"), 3.14)) },
         { json: "of", js: "of", typ: u(undefined, u(r("Of"), 3.14)) },
         { json: "oneway", js: "oneway", typ: u(undefined, u(r("Oneway"), 3.14)) },
         { json: "open", js: "open", typ: u(undefined, u(r("Open"), 3.14)) },
@@ -382,6 +408,7 @@ const typeMap = {
         { json: "prefix", js: "prefix", typ: u(undefined, u(r("Prefix"), 3.14)) },
         { json: "print", js: "print", typ: u(undefined, u(r("Print"), 3.14)) },
         { json: "printf", js: "printf", typ: u(undefined, u(r("Printf"), 3.14)) },
+        { json: "printMembers", js: "printMembers", typ: u(undefined, u(r("PrintMembers"), 3.14)) },
         { json: "private", js: "private", typ: u(undefined, u(r("Private"), 3.14)) },
         { json: "protected", js: "protected", typ: u(undefined, u(r("Protected"), 3.14)) },
         { json: "Protocol", js: "Protocol", typ: u(undefined, u(r("Protocol"), 3.14)) },
@@ -392,6 +419,7 @@ const typeMap = {
         { json: "range", js: "range", typ: u(undefined, u(r("Range"), 3.14)) },
         { json: "readonly", js: "readonly", typ: u(undefined, u(r("Readonly"), 3.14)) },
         { json: "ref", js: "ref", typ: u(undefined, u(r("Ref"), 3.14)) },
+        { json: "RegExp", js: "RegExp", typ: u(undefined, u(r("RegExp"), 3.14)) },
         { json: "register", js: "register", typ: u(undefined, u(r("Register"), 3.14)) },
         { json: "reinterpret_cast", js: "reinterpret_cast", typ: u(undefined, u(r("ReinterpretCast"), 3.14)) },
         { json: "repeat", js: "repeat", typ: u(undefined, u(r("Repeat"), 3.14)) },
@@ -403,6 +431,8 @@ const typeMap = {
         { json: "rethrows", js: "rethrows", typ: u(undefined, u(r("Rethrows"), 3.14)) },
         { json: "return", js: "return", typ: u(undefined, u(r("Return"), 3.14)) },
         { json: "right", js: "right", typ: u(undefined, u(r("Right"), 3.14)) },
+        { json: "runtimeType", js: "runtimeType", typ: u(undefined, u(r("RuntimeType"), 3.14)) },
+        { json: "s", js: "s", typ: u(undefined, u(r("S"), 3.14)) },
         { json: "sbyte", js: "sbyte", typ: u(undefined, u(r("Sbyte"), 3.14)) },
         { json: "sealed", js: "sealed", typ: u(undefined, u(r("Sealed"), 3.14)) },
         { json: "SEL", js: "SEL", typ: u(undefined, u(r("Sel"), 3.14)) },
@@ -410,14 +440,19 @@ const typeMap = {
         { json: "Self", js: "Self", typ: u(undefined, u(r("Self"), 3.14)) },
         { json: "self", js: "self", typ: u(undefined, u(r("SelfClass"), 3.14)) },
         { json: "serialize", js: "serialize", typ: u(undefined, u(r("Serialize"), 3.14)) },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: u(undefined, u(r("SerializerProvider"), 3.14)) },
         { json: "set", js: "set", typ: u(undefined, u(r("Set"), 3.14)) },
         { json: "short", js: "short", typ: u(undefined, u(r("Short"), 3.14)) },
         { json: "signed", js: "signed", typ: u(undefined, u(r("Signed"), 3.14)) },
+        { json: "SimpleModule", js: "SimpleModule", typ: u(undefined, u(r("SimpleModule"), 3.14)) },
         { json: "sizeof", js: "sizeof", typ: u(undefined, u(r("Sizeof"), 3.14)) },
         { json: "stackalloc", js: "stackalloc", typ: u(undefined, u(r("Stackalloc"), 3.14)) },
+        { json: "Standards", js: "Standards", typ: u(undefined, u(r("Standards"), 3.14)) },
         { json: "static", js: "static", typ: u(undefined, u(r("Static"), 3.14)) },
         { json: "static_assert", js: "static_assert", typ: u(undefined, u(r("StaticAssert"), 3.14)) },
         { json: "static_cast", js: "static_cast", typ: u(undefined, u(r("StaticCast"), 3.14)) },
+        { json: "StdDeserializer", js: "StdDeserializer", typ: u(undefined, u(r("StdDeserializer"), 3.14)) },
+        { json: "StdSerializer", js: "StdSerializer", typ: u(undefined, u(r("StdSerializer"), 3.14)) },
         { json: "strictfp", js: "strictfp", typ: u(undefined, u(r("Strictfp"), 3.14)) },
         { json: "string", js: "string", typ: u(undefined, u(r("String"), 3.14)) },
         { json: "struct", js: "struct", typ: u(undefined, u(r("Struct"), 3.14)) },
@@ -433,8 +468,11 @@ const typeMap = {
         { json: "thread_local", js: "thread_local", typ: u(undefined, u(r("ThreadLocal"), 3.14)) },
         { json: "throw", js: "throw", typ: u(undefined, u(r("Throw"), 3.14)) },
         { json: "throws", js: "throws", typ: u(undefined, u(r("Throws"), 3.14)) },
+        { json: "TimeOnly", js: "TimeOnly", typ: u(undefined, u(r("TimeOnly"), 3.14)) },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: u(undefined, u(r("TimeOnlyConverter"), 3.14)) },
         { json: "to_json", js: "to_json", typ: u(undefined, u(r("ToJSON"), 3.14)) },
         { json: "top_level", js: "top_level", typ: u(undefined, u(r("TopLevelClass"), 3.14)) },
+        { json: "toString", js: "toString", typ: u(undefined, u(r("ToString"), 3.14)) },
         { json: "transient", js: "transient", typ: u(undefined, u(r("Transient"), 3.14)) },
         { json: "True", js: "True", typ: u(undefined, u(r("True"), 3.14)) },
         { json: "true", js: "true", typ: u(undefined, u(r("TrueClass"), 3.14)) },
@@ -456,6 +494,9 @@ const typeMap = {
         { json: "unsigned", js: "unsigned", typ: u(undefined, u(r("Unsigned"), 3.14)) },
         { json: "ushort", js: "ushort", typ: u(undefined, u(r("Ushort"), 3.14)) },
         { json: "using", js: "using", typ: u(undefined, u(r("Using"), 3.14)) },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: u(undefined, u(r("Utf8JSONReader"), 3.14)) },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: u(undefined, u(r("Utf8JSONWriter"), 3.14)) },
+        { json: "UUID", js: "UUID", typ: u(undefined, u(r("UUID"), 3.14)) },
         { json: "var", js: "var", typ: u(undefined, u(r("Var"), 3.14)) },
         { json: "virtual", js: "virtual", typ: u(undefined, u(r("Virtual"), 3.14)) },
         { json: "void", js: "void", typ: u(undefined, u(r("Void"), 3.14)) },
@@ -477,28 +518,94 @@ const typeMap = {
     ], false),
     "Class": o([
     ], false),
+    "CultureInfo": o([
+    ], false),
+    "DateFormatter": o([
+    ], false),
+    "DateOnly": o([
+    ], false),
+    "DateOnlyConverter": o([
+    ], false),
+    "DateTime": o([
+    ], false),
+    "DateTimeStyles": o([
+    ], false),
+    "EnumValues": o([
+    ], false),
     "False": o([
     ], false),
+    "FormatException": o([
+    ], false),
     "Imp": o([
     ], false),
+    "ISODateTimeOffsetConverter": o([
+    ], false),
+    "JSONAny": o([
+    ], false),
+    "JSONCodingKey": o([
+    ], false),
+    "JSONDecoder": o([
+    ], false),
+    "JSONEncoder": o([
+    ], false),
+    "JSONNull": o([
+    ], false),
+    "JSONException": o([
+    ], false),
+    "JSONGenerator": o([
+    ], false),
+    "JSONNode": o([
+    ], false),
+    "JSONParser": o([
+    ], false),
+    "JSONReader": o([
+    ], false),
+    "JSONTokenType": o([
+    ], false),
     "No": o([
     ], false),
+    "NSError": o([
+    ], false),
     "NSString": o([
     ], false),
     "Null": o([
     ], false),
     "None": o([
     ], false),
+    "ObjectMapper": o([
+    ], false),
     "Protocol": o([
     ], false),
+    "RegExp": o([
+    ], false),
     "Sel": o([
     ], false),
     "Self": o([
     ], false),
+    "SerializerProvider": o([
+    ], false),
+    "SimpleModule": o([
+    ], false),
+    "Standards": o([
+    ], false),
+    "StdDeserializer": o([
+    ], false),
+    "StdSerializer": o([
+    ], false),
+    "TimeOnly": o([
+    ], false),
+    "TimeOnlyConverter": o([
+    ], false),
     "True": o([
     ], false),
     "Type": o([
     ], false),
+    "UUID": o([
+    ], false),
+    "Utf8JSONReader": o([
+    ], false),
+    "Utf8JSONWriter": o([
+    ], false),
     "Yes": o([
     ], false),
     "Empty": o([
@@ -581,6 +688,8 @@ const typeMap = {
     ], false),
     "ClassClass": o([
     ], false),
+    "Clone": o([
+    ], false),
     "CoAwait": o([
     ], false),
     "CoReturn": o([
@@ -659,6 +768,8 @@ const typeMap = {
     ], false),
     "Enum": o([
     ], false),
+    "EqualityContract": o([
+    ], false),
     "Event": o([
     ], false),
     "Except": o([
@@ -717,6 +828,8 @@ const typeMap = {
     ], false),
     "HasOwnProperty": o([
     ], false),
+    "HashCode": o([
+    ], false),
     "ID": o([
     ], false),
     "If": o([
@@ -801,6 +914,8 @@ const typeMap = {
     ], false),
     "Nil": o([
     ], false),
+    "NoSuchMethod": o([
+    ], false),
     "Noexcept": o([
     ], false),
     "Nonatomic": o([
@@ -857,6 +972,8 @@ const typeMap = {
     ], false),
     "Print": o([
     ], false),
+    "PrintMembers": o([
+    ], false),
     "Printf": o([
     ], false),
     "Private": o([
@@ -899,6 +1016,10 @@ const typeMap = {
     ], false),
     "Right": o([
     ], false),
+    "RuntimeType": o([
+    ], false),
+    "S": o([
+    ], false),
     "Sbyte": o([
     ], false),
     "Sealed": o([
@@ -955,6 +1076,8 @@ const typeMap = {
     ], false),
     "Throws": o([
     ], false),
+    "ToString": o([
+    ], false),
     "ToJSON": o([
     ], false),
     "TopLevelClass": o([
diff --git a/base/schema-javascript-prop-types/test/inputs/schema/keyword-enum.schema/default/toplevel.js b/head/schema-javascript-prop-types/test/inputs/schema/keyword-enum.schema/default/toplevel.js
index de3a5aa..53aabe7 100644
--- a/base/schema-javascript-prop-types/test/inputs/schema/keyword-enum.schema/default/toplevel.js
+++ b/head/schema-javascript-prop-types/test/inputs/schema/keyword-enum.schema/default/toplevel.js
@@ -13,7 +13,7 @@
 import PropTypes from "prop-types";
 
 let _TopLevel;
-const _Enum = PropTypes.oneOf(['_', '_Bool', '_Complex', '_Imaginery', 'abstract', 'alignas', 'alignof', 'and', 'and_eq', 'any', 'Any', 'array', 'as', 'asm', 'assert', 'associatedtype', 'associativity', 'async', 'atomic', 'atomic_cancel', 'atomic_commit', 'atomic_noexcept', 'auto', 'await', 'base', 'bitand', 'bitor', 'BOOL', 'bool', 'boolean', 'break', 'bycopy', 'byref', 'byte', 'case', 'catch', 'chan', 'char', 'char16_t', 'char32_t', 'checked', 'class', 'Class', 'co_await', 'co_return', 'co_yield', 'compl', 'concept', 'console', 'const', 'const_cast', 'constexpr', 'constructor', 'continue', 'convenience', 'convert', 'converter', 'date', 'date_parse_handling', 'debugger', 'decimal', 'declare', 'decltype', 'decode_string', 'def', 'default', 'defer', 'deinit', 'del', 'delegate', 'delete', 'dict', 'dictionary', 'didSet', 'do', 'double', 'dynamic', 'dynamic_cast', 'elif', 'else', 'encode_quick_type', 'enum', 'event', 'except', 'exception', 'explicit', 'export', 'exposing', 'extends', 'extension', 'extern', 'fallthrough', 'false', 'False', 'fileprivate', 'final', 'finally', 'fixed', 'float', 'for', 'foreach', 'friend', 'from', 'from_json', 'func', 'function', 'get', 'global', 'go', 'goto', 'guard', 'hasOwnProperty', 'id', 'if', 'IMP', 'implements', 'implicit', 'import', 'in', 'indirect', 'infix', 'init', 'inline', 'inout', 'instanceof', 'int', 'interface', 'internal', 'iterable', 'is', 'jdec', 'jenc', 'jpipe', 'json', 'json_converter', 'json_serializer', 'json_token', 'json_writer', 'lambda', 'lazy', 'left', 'let', 'list', 'lock', 'long', 'map', 'metadata_property_handling', 'module', 'mutable', 'mutating', 'namespace', 'native', 'new', 'newtonsoft', 'nil', 'NO', 'noexcept', 'nonatomic', 'none', 'None', 'nonlocal', 'nonmutating', 'not', 'not_eq', 'NSString', 'NULL', 'null', 'nullptr', 'number', 'object', 'of', 'oneway', 'open', 'operator', 'optional', 'or', 'or_eq', 'out', 'override', 'package', 'params', 'pass', 'port', 'postfix', 'precedence', 'prefix', 'print', 'printf', 'private', 'protected', 'Protocol', 'protocol', 'public', 'quicktype', 'raise', 'range', 'readonly', 'ref', 'register', 'reinterpret_cast', 'repeat', 'require', 'required', 'requires', 'restrict', 'retain', 'rethrows', 'return', 'right', 'sbyte', 'sealed', 'SEL', 'select', 'Self', 'self', 'serialize', 'set', 'short', 'signed', 'sizeof', 'stackalloc', 'static', 'static_assert', 'static_cast', 'strictfp', 'string', 'struct', 'subscript', 'super', 'switch', 'symbol', 'synchronized', 'system', 'template', 'then', 'this', 'thread_local', 'throw', 'throws', 'to_json', 'top_level', 'transient', 'True', 'true', 'try', 'Type', 'type', 'typealias', 'typedef', 'typeid', 'typename', 'typeof', 'uint', 'ulong', 'unchecked', 'undefined', 'union', 'unowned', 'unsafe', 'unsigned', 'ushort', 'using', 'var', 'virtual', 'void', 'volatile', 'wchar_t', 'weak', 'where', 'while', 'willSet', 'with', 'xor', 'xor_eq', 'YES', 'yield', 'dummy']);
+const _Enum = PropTypes.oneOf(['_', '_Bool', '_Complex', '_Imaginery', 'abstract', 'alignas', 'alignof', 'and', 'and_eq', 'any', 'Any', 'array', 'as', 'asm', 'assert', 'associatedtype', 'associativity', 'async', 'atomic', 'atomic_cancel', 'atomic_commit', 'atomic_noexcept', 'auto', 'await', 'base', 'bitand', 'bitor', 'BOOL', 'bool', 'boolean', 'break', 'bycopy', 'byref', 'byte', 'case', 'catch', 'chan', 'char', 'char16_t', 'char32_t', 'checked', 'class', 'Class', 'clone', 'co_await', 'co_return', 'co_yield', 'compl', 'concept', 'console', 'const', 'const_cast', 'constexpr', 'constructor', 'continue', 'convenience', 'convert', 'converter', 'CultureInfo', 'date', 'date_parse_handling', 'DateFormatter', 'DateOnly', 'DateOnlyConverter', 'DateTime', 'DateTimeStyles', 'debugger', 'decimal', 'declare', 'decltype', 'decode_string', 'def', 'default', 'defer', 'deinit', 'del', 'delegate', 'delete', 'dict', 'dictionary', 'didSet', 'do', 'double', 'dynamic', 'dynamic_cast', 'elif', 'else', 'encode_quick_type', 'enum', 'EnumValues', 'equalityContract', 'event', 'except', 'exception', 'explicit', 'export', 'exposing', 'extends', 'extension', 'extern', 'fallthrough', 'false', 'False', 'fileprivate', 'final', 'finally', 'fixed', 'float', 'for', 'foreach', 'FormatException', 'friend', 'from', 'from_json', 'func', 'function', 'get', 'global', 'go', 'goto', 'guard', 'hashCode', 'hasOwnProperty', 'id', 'if', 'IMP', 'implements', 'implicit', 'import', 'in', 'indirect', 'infix', 'init', 'inline', 'inout', 'instanceof', 'int', 'interface', 'internal', 'IsoDateTimeOffsetConverter', 'iterable', 'is', 'jdec', 'jenc', 'jpipe', 'json', 'json_converter', 'json_serializer', 'json_token', 'json_writer', 'JSONAny', 'JSONCodingKey', 'JSONDecoder', 'JSONEncoder', 'JsonException', 'JsonGenerator', 'JsonNode', 'JSONNull', 'JsonParser', 'JsonReader', 'JsonTokenType', 'lambda', 'lazy', 'left', 'let', 'list', 'lock', 'long', 'map', 'metadata_property_handling', 'module', 'mutable', 'mutating', 'namespace', 'native', 'new', 'newtonsoft', 'nil', 'NO', 'noexcept', 'nonatomic', 'none', 'None', 'nonlocal', 'nonmutating', 'noSuchMethod', 'not', 'not_eq', 'NSError', 'NSString', 'NULL', 'null', 'nullptr', 'number', 'object', 'ObjectMapper', 'of', 'oneway', 'open', 'operator', 'optional', 'or', 'or_eq', 'out', 'override', 'package', 'params', 'pass', 'port', 'postfix', 'precedence', 'prefix', 'print', 'printf', 'printMembers', 'private', 'protected', 'Protocol', 'protocol', 'public', 'quicktype', 'raise', 'range', 'readonly', 'ref', 'RegExp', 'register', 'reinterpret_cast', 'repeat', 'require', 'required', 'requires', 'restrict', 'retain', 'rethrows', 'return', 'right', 'runtimeType', 's', 'sbyte', 'sealed', 'SEL', 'select', 'Self', 'self', 'serialize', 'SerializerProvider', 'set', 'short', 'signed', 'SimpleModule', 'sizeof', 'stackalloc', 'Standards', 'static', 'static_assert', 'static_cast', 'StdDeserializer', 'StdSerializer', 'strictfp', 'string', 'struct', 'subscript', 'super', 'switch', 'symbol', 'synchronized', 'system', 'template', 'then', 'this', 'thread_local', 'throw', 'throws', 'TimeOnly', 'TimeOnlyConverter', 'to_json', 'top_level', 'toString', 'transient', 'True', 'true', 'try', 'Type', 'type', 'typealias', 'typedef', 'typeid', 'typename', 'typeof', 'uint', 'ulong', 'unchecked', 'undefined', 'union', 'unowned', 'unsafe', 'unsigned', 'ushort', 'using', 'Utf8JsonReader', 'Utf8JsonWriter', 'UUID', 'var', 'virtual', 'void', 'volatile', 'wchar_t', 'weak', 'where', 'while', 'willSet', 'with', 'xor', 'xor_eq', 'YES', 'yield', 'dummy']);
 _TopLevel = PropTypes.shape({
     "enum": PropTypes.oneOfType([_Enum, PropTypes.oneOf([null])]),
 });
diff --git a/base/schema-javascript-prop-types/test/inputs/schema/keyword-unions.schema/default/toplevel.js b/head/schema-javascript-prop-types/test/inputs/schema/keyword-unions.schema/default/toplevel.js
index 2a4d330..af33209 100644
--- a/base/schema-javascript-prop-types/test/inputs/schema/keyword-unions.schema/default/toplevel.js
+++ b/head/schema-javascript-prop-types/test/inputs/schema/keyword-unions.schema/default/toplevel.js
@@ -16,17 +16,50 @@ let _TopLevel;
 let _Any;
 let _Bool;
 let _Class;
+let _CultureInfo;
+let _DateFormatter;
+let _DateOnly;
+let _DateOnlyConverter;
+let _DateTime;
+let _DateTimeStyles;
+let _EnumValues;
 let _False;
+let _FormatException;
 let _Imp;
+let _ISODateTimeOffsetConverter;
+let _JSONAny;
+let _JSONCodingKey;
+let _JSONDecoder;
+let _JSONEncoder;
+let _JSONNull;
+let _JSONException;
+let _JSONGenerator;
+let _JSONNode;
+let _JSONParser;
+let _JSONReader;
+let _JSONTokenType;
 let _No;
+let _NSError;
 let _NSString;
 let _Null;
 let _None;
+let _ObjectMapper;
 let _Protocol;
+let _RegExp;
 let _Sel;
 let _Self;
+let _SerializerProvider;
+let _SimpleModule;
+let _Standards;
+let _StdDeserializer;
+let _StdSerializer;
+let _TimeOnly;
+let _TimeOnlyConverter;
 let _True;
 let _Type;
+let _UUID;
+let _Utf8JSONReader;
+let _Utf8JSONWriter;
 let _Yes;
 let _Empty;
 let _BoolClass;
@@ -68,6 +101,7 @@ let _Char16T;
 let _Char32T;
 let _Checked;
 let _ClassClass;
+let _Clone;
 let _CoAwait;
 let _CoReturn;
 let _CoYield;
@@ -107,6 +141,7 @@ let _Elif;
 let _Else;
 let _EncodeQuickType;
 let _Enum;
+let _EqualityContract;
 let _Event;
 let _Except;
 let _Exception;
@@ -136,6 +171,7 @@ let _Go;
 let _Goto;
 let _Guard;
 let _HasOwnProperty;
+let _HashCode;
 let _ID;
 let _If;
 let _Implements;
@@ -178,6 +214,7 @@ let _Native;
 let _New;
 let _Newtonsoft;
 let _Nil;
+let _NoSuchMethod;
 let _Noexcept;
 let _Nonatomic;
 let _NoneClass;
@@ -206,6 +243,7 @@ let _Postfix;
 let _Precedence;
 let _Prefix;
 let _Print;
+let _PrintMembers;
 let _Printf;
 let _Private;
 let _Protected;
@@ -227,6 +265,8 @@ let _Retain;
 let _Rethrows;
 let _Return;
 let _Right;
+let _RuntimeType;
+let _S;
 let _Sbyte;
 let _Sealed;
 let _Select;
@@ -255,6 +295,7 @@ let _This;
 let _ThreadLocal;
 let _Throw;
 let _Throws;
+let _ToString;
 let _ToJSON;
 let _TopLevelClass;
 let _Transient;
@@ -295,28 +336,94 @@ _Bool = PropTypes.shape({
 });
 _Class = PropTypes.shape({
 });
+_CultureInfo = PropTypes.shape({
+});
+_DateFormatter = PropTypes.shape({
+});
+_DateOnly = PropTypes.shape({
+});
+_DateOnlyConverter = PropTypes.shape({
+});
+_DateTime = PropTypes.shape({
+});
+_DateTimeStyles = PropTypes.shape({
+});
+_EnumValues = PropTypes.shape({
+});
 _False = PropTypes.shape({
 });
+_FormatException = PropTypes.shape({
+});
 _Imp = PropTypes.shape({
 });
+_ISODateTimeOffsetConverter = PropTypes.shape({
+});
+_JSONAny = PropTypes.shape({
+});
+_JSONCodingKey = PropTypes.shape({
+});
+_JSONDecoder = PropTypes.shape({
+});
+_JSONEncoder = PropTypes.shape({
+});
+_JSONNull = PropTypes.shape({
+});
+_JSONException = PropTypes.shape({
+});
+_JSONGenerator = PropTypes.shape({
+});
+_JSONNode = PropTypes.shape({
+});
+_JSONParser = PropTypes.shape({
+});
+_JSONReader = PropTypes.shape({
+});
+_JSONTokenType = PropTypes.shape({
+});
 _No = PropTypes.shape({
 });
+_NSError = PropTypes.shape({
+});
 _NSString = PropTypes.shape({
 });
 _Null = PropTypes.shape({
 });
 _None = PropTypes.shape({
 });
+_ObjectMapper = PropTypes.shape({
+});
 _Protocol = PropTypes.shape({
 });
+_RegExp = PropTypes.shape({
+});
 _Sel = PropTypes.shape({
 });
 _Self = PropTypes.shape({
 });
+_SerializerProvider = PropTypes.shape({
+});
+_SimpleModule = PropTypes.shape({
+});
+_Standards = PropTypes.shape({
+});
+_StdDeserializer = PropTypes.shape({
+});
+_StdSerializer = PropTypes.shape({
+});
+_TimeOnly = PropTypes.shape({
+});
+_TimeOnlyConverter = PropTypes.shape({
+});
 _True = PropTypes.shape({
 });
 _Type = PropTypes.shape({
 });
+_UUID = PropTypes.shape({
+});
+_Utf8JSONReader = PropTypes.shape({
+});
+_Utf8JSONWriter = PropTypes.shape({
+});
 _Yes = PropTypes.shape({
 });
 _Empty = PropTypes.shape({
@@ -399,6 +506,8 @@ _Checked = PropTypes.shape({
 });
 _ClassClass = PropTypes.shape({
 });
+_Clone = PropTypes.shape({
+});
 _CoAwait = PropTypes.shape({
 });
 _CoReturn = PropTypes.shape({
@@ -477,6 +586,8 @@ _EncodeQuickType = PropTypes.shape({
 });
 _Enum = PropTypes.shape({
 });
+_EqualityContract = PropTypes.shape({
+});
 _Event = PropTypes.shape({
 });
 _Except = PropTypes.shape({
@@ -535,6 +646,8 @@ _Guard = PropTypes.shape({
 });
 _HasOwnProperty = PropTypes.shape({
 });
+_HashCode = PropTypes.shape({
+});
 _ID = PropTypes.shape({
 });
 _If = PropTypes.shape({
@@ -619,6 +732,8 @@ _Newtonsoft = PropTypes.shape({
 });
 _Nil = PropTypes.shape({
 });
+_NoSuchMethod = PropTypes.shape({
+});
 _Noexcept = PropTypes.shape({
 });
 _Nonatomic = PropTypes.shape({
@@ -675,6 +790,8 @@ _Prefix = PropTypes.shape({
 });
 _Print = PropTypes.shape({
 });
+_PrintMembers = PropTypes.shape({
+});
 _Printf = PropTypes.shape({
 });
 _Private = PropTypes.shape({
@@ -717,6 +834,10 @@ _Return = PropTypes.shape({
 });
 _Right = PropTypes.shape({
 });
+_RuntimeType = PropTypes.shape({
+});
+_S = PropTypes.shape({
+});
 _Sbyte = PropTypes.shape({
 });
 _Sealed = PropTypes.shape({
@@ -773,6 +894,8 @@ _Throw = PropTypes.shape({
 });
 _Throws = PropTypes.shape({
 });
+_ToString = PropTypes.shape({
+});
 _ToJSON = PropTypes.shape({
 });
 _TopLevelClass = PropTypes.shape({
@@ -885,6 +1008,7 @@ _TopLevel = PropTypes.shape({
     "checked": PropTypes.oneOfType([_Checked, PropTypes.number, PropTypes.oneOf([null])]),
     "class": PropTypes.oneOfType([_ClassClass, PropTypes.number, PropTypes.oneOf([null])]),
     "Class": PropTypes.oneOfType([_Class, PropTypes.number, PropTypes.oneOf([null])]),
+    "clone": PropTypes.oneOfType([_Clone, PropTypes.number, PropTypes.oneOf([null])]),
     "co_await": PropTypes.oneOfType([_CoAwait, PropTypes.number, PropTypes.oneOf([null])]),
     "co_return": PropTypes.oneOfType([_CoReturn, PropTypes.number, PropTypes.oneOf([null])]),
     "co_yield": PropTypes.oneOfType([_CoYield, PropTypes.number, PropTypes.oneOf([null])]),
@@ -899,8 +1023,14 @@ _TopLevel = PropTypes.shape({
     "convenience": PropTypes.oneOfType([_Convenience, PropTypes.number, PropTypes.oneOf([null])]),
     "convert": PropTypes.oneOfType([_Convert, PropTypes.number, PropTypes.oneOf([null])]),
     "converter": PropTypes.oneOfType([_Converter, PropTypes.number, PropTypes.oneOf([null])]),
+    "CultureInfo": PropTypes.oneOfType([_CultureInfo, PropTypes.number, PropTypes.oneOf([null])]),
     "date": PropTypes.oneOfType([_Date, PropTypes.number, PropTypes.oneOf([null])]),
     "date_parse_handling": PropTypes.oneOfType([_DateParseHandling, PropTypes.number, PropTypes.oneOf([null])]),
+    "DateFormatter": PropTypes.oneOfType([_DateFormatter, PropTypes.number, PropTypes.oneOf([null])]),
+    "DateOnly": PropTypes.oneOfType([_DateOnly, PropTypes.number, PropTypes.oneOf([null])]),
+    "DateOnlyConverter": PropTypes.oneOfType([_DateOnlyConverter, PropTypes.number, PropTypes.oneOf([null])]),
+    "DateTime": PropTypes.oneOfType([_DateTime, PropTypes.number, PropTypes.oneOf([null])]),
+    "DateTimeStyles": PropTypes.oneOfType([_DateTimeStyles, PropTypes.number, PropTypes.oneOf([null])]),
     "debugger": PropTypes.oneOfType([_Debugger, PropTypes.number, PropTypes.oneOf([null])]),
     "decimal": PropTypes.oneOfType([_Decimal, PropTypes.number, PropTypes.oneOf([null])]),
     "declare": PropTypes.oneOfType([_Declare, PropTypes.number, PropTypes.oneOf([null])]),
@@ -925,6 +1055,8 @@ _TopLevel = PropTypes.shape({
     "else": PropTypes.oneOfType([_Else, PropTypes.number, PropTypes.oneOf([null])]),
     "encode_quick_type": PropTypes.oneOfType([_EncodeQuickType, PropTypes.number, PropTypes.oneOf([null])]),
     "enum": PropTypes.oneOfType([_Enum, PropTypes.number, PropTypes.oneOf([null])]),
+    "EnumValues": PropTypes.oneOfType([_EnumValues, PropTypes.number, PropTypes.oneOf([null])]),
+    "equalityContract": PropTypes.oneOfType([_EqualityContract, PropTypes.number, PropTypes.oneOf([null])]),
     "event": PropTypes.oneOfType([_Event, PropTypes.number, PropTypes.oneOf([null])]),
     "except": PropTypes.oneOfType([_Except, PropTypes.number, PropTypes.oneOf([null])]),
     "exception": PropTypes.oneOfType([_Exception, PropTypes.number, PropTypes.oneOf([null])]),
@@ -944,6 +1076,7 @@ _TopLevel = PropTypes.shape({
     "float": PropTypes.oneOfType([_Float, PropTypes.number, PropTypes.oneOf([null])]),
     "for": PropTypes.oneOfType([_For, PropTypes.number, PropTypes.oneOf([null])]),
     "foreach": PropTypes.oneOfType([_Foreach, PropTypes.number, PropTypes.oneOf([null])]),
+    "FormatException": PropTypes.oneOfType([_FormatException, PropTypes.number, PropTypes.oneOf([null])]),
     "friend": PropTypes.oneOfType([_Friend, PropTypes.number, PropTypes.oneOf([null])]),
     "from": PropTypes.oneOfType([_From, PropTypes.number, PropTypes.oneOf([null])]),
     "from_json": PropTypes.oneOfType([_FromJSON, PropTypes.number, PropTypes.oneOf([null])]),
@@ -954,6 +1087,7 @@ _TopLevel = PropTypes.shape({
     "go": PropTypes.oneOfType([_Go, PropTypes.number, PropTypes.oneOf([null])]),
     "goto": PropTypes.oneOfType([_Goto, PropTypes.number, PropTypes.oneOf([null])]),
     "guard": PropTypes.oneOfType([_Guard, PropTypes.number, PropTypes.oneOf([null])]),
+    "hashCode": PropTypes.oneOfType([_HashCode, PropTypes.number, PropTypes.oneOf([null])]),
     "hasOwnProperty": (props, name, ...args) => Object.prototype.hasOwnProperty.call(props, name) ? PropTypes.oneOfType([_HasOwnProperty, PropTypes.number, PropTypes.oneOf([null])])(props, name, ...args) : null,
     "id": PropTypes.oneOfType([_ID, PropTypes.number, PropTypes.oneOf([null])]),
     "if": PropTypes.oneOfType([_If, PropTypes.number, PropTypes.oneOf([null])]),
@@ -972,6 +1106,7 @@ _TopLevel = PropTypes.shape({
     "interface": PropTypes.oneOfType([_Interface, PropTypes.number, PropTypes.oneOf([null])]),
     "internal": PropTypes.oneOfType([_Internal, PropTypes.number, PropTypes.oneOf([null])]),
     "is": PropTypes.oneOfType([_Is, PropTypes.number, PropTypes.oneOf([null])]),
+    "IsoDateTimeOffsetConverter": PropTypes.oneOfType([_ISODateTimeOffsetConverter, PropTypes.number, PropTypes.oneOf([null])]),
     "iterable": PropTypes.oneOfType([_Iterable, PropTypes.number, PropTypes.oneOf([null])]),
     "jdec": PropTypes.oneOfType([_Jdec, PropTypes.number, PropTypes.oneOf([null])]),
     "jenc": PropTypes.oneOfType([_Jenc, PropTypes.number, PropTypes.oneOf([null])]),
@@ -981,6 +1116,17 @@ _TopLevel = PropTypes.shape({
     "json_serializer": PropTypes.oneOfType([_JSONSerializer, PropTypes.number, PropTypes.oneOf([null])]),
     "json_token": PropTypes.oneOfType([_JSONToken, PropTypes.number, PropTypes.oneOf([null])]),
     "json_writer": PropTypes.oneOfType([_JSONWriter, PropTypes.number, PropTypes.oneOf([null])]),
+    "JSONAny": PropTypes.oneOfType([_JSONAny, PropTypes.number, PropTypes.oneOf([null])]),
+    "JSONCodingKey": PropTypes.oneOfType([_JSONCodingKey, PropTypes.number, PropTypes.oneOf([null])]),
+    "JSONDecoder": PropTypes.oneOfType([_JSONDecoder, PropTypes.number, PropTypes.oneOf([null])]),
+    "JSONEncoder": PropTypes.oneOfType([_JSONEncoder, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonException": PropTypes.oneOfType([_JSONException, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonGenerator": PropTypes.oneOfType([_JSONGenerator, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonNode": PropTypes.oneOfType([_JSONNode, PropTypes.number, PropTypes.oneOf([null])]),
+    "JSONNull": PropTypes.oneOfType([_JSONNull, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonParser": PropTypes.oneOfType([_JSONParser, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonReader": PropTypes.oneOfType([_JSONReader, PropTypes.number, PropTypes.oneOf([null])]),
+    "JsonTokenType": PropTypes.oneOfType([_JSONTokenType, PropTypes.number, PropTypes.oneOf([null])]),
     "lambda": PropTypes.oneOfType([_Lambda, PropTypes.number, PropTypes.oneOf([null])]),
     "lazy": PropTypes.oneOfType([_Lazy, PropTypes.number, PropTypes.oneOf([null])]),
     "left": PropTypes.oneOfType([_Left, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1005,14 +1151,17 @@ _TopLevel = PropTypes.shape({
     "None": PropTypes.oneOfType([_None, PropTypes.number, PropTypes.oneOf([null])]),
     "nonlocal": PropTypes.oneOfType([_Nonlocal, PropTypes.number, PropTypes.oneOf([null])]),
     "nonmutating": PropTypes.oneOfType([_Nonmutating, PropTypes.number, PropTypes.oneOf([null])]),
+    "noSuchMethod": PropTypes.oneOfType([_NoSuchMethod, PropTypes.number, PropTypes.oneOf([null])]),
     "not": PropTypes.oneOfType([_Not, PropTypes.number, PropTypes.oneOf([null])]),
     "not_eq": PropTypes.oneOfType([_NotEq, PropTypes.number, PropTypes.oneOf([null])]),
+    "NSError": PropTypes.oneOfType([_NSError, PropTypes.number, PropTypes.oneOf([null])]),
     "NSString": PropTypes.oneOfType([_NSString, PropTypes.number, PropTypes.oneOf([null])]),
     "NULL": PropTypes.oneOfType([_Null, PropTypes.number, PropTypes.oneOf([null])]),
     "null": PropTypes.oneOfType([_NullClass, PropTypes.number, PropTypes.oneOf([null])]),
     "nullptr": PropTypes.oneOfType([_Nullptr, PropTypes.number, PropTypes.oneOf([null])]),
     "number": PropTypes.oneOfType([_Number, PropTypes.number, PropTypes.oneOf([null])]),
     "object": PropTypes.oneOfType([_Object, PropTypes.number, PropTypes.oneOf([null])]),
+    "ObjectMapper": PropTypes.oneOfType([_ObjectMapper, PropTypes.number, PropTypes.oneOf([null])]),
     "of": PropTypes.oneOfType([_Of, PropTypes.number, PropTypes.oneOf([null])]),
     "oneway": PropTypes.oneOfType([_Oneway, PropTypes.number, PropTypes.oneOf([null])]),
     "open": PropTypes.oneOfType([_Open, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1031,6 +1180,7 @@ _TopLevel = PropTypes.shape({
     "prefix": PropTypes.oneOfType([_Prefix, PropTypes.number, PropTypes.oneOf([null])]),
     "print": PropTypes.oneOfType([_Print, PropTypes.number, PropTypes.oneOf([null])]),
     "printf": PropTypes.oneOfType([_Printf, PropTypes.number, PropTypes.oneOf([null])]),
+    "printMembers": PropTypes.oneOfType([_PrintMembers, PropTypes.number, PropTypes.oneOf([null])]),
     "private": PropTypes.oneOfType([_Private, PropTypes.number, PropTypes.oneOf([null])]),
     "protected": PropTypes.oneOfType([_Protected, PropTypes.number, PropTypes.oneOf([null])]),
     "Protocol": PropTypes.oneOfType([_Protocol, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1041,6 +1191,7 @@ _TopLevel = PropTypes.shape({
     "range": PropTypes.oneOfType([_Range, PropTypes.number, PropTypes.oneOf([null])]),
     "readonly": PropTypes.oneOfType([_Readonly, PropTypes.number, PropTypes.oneOf([null])]),
     "ref": PropTypes.oneOfType([_Ref, PropTypes.number, PropTypes.oneOf([null])]),
+    "RegExp": PropTypes.oneOfType([_RegExp, PropTypes.number, PropTypes.oneOf([null])]),
     "register": PropTypes.oneOfType([_Register, PropTypes.number, PropTypes.oneOf([null])]),
     "reinterpret_cast": PropTypes.oneOfType([_ReinterpretCast, PropTypes.number, PropTypes.oneOf([null])]),
     "repeat": PropTypes.oneOfType([_Repeat, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1052,6 +1203,8 @@ _TopLevel = PropTypes.shape({
     "rethrows": PropTypes.oneOfType([_Rethrows, PropTypes.number, PropTypes.oneOf([null])]),
     "return": PropTypes.oneOfType([_Return, PropTypes.number, PropTypes.oneOf([null])]),
     "right": PropTypes.oneOfType([_Right, PropTypes.number, PropTypes.oneOf([null])]),
+    "runtimeType": PropTypes.oneOfType([_RuntimeType, PropTypes.number, PropTypes.oneOf([null])]),
+    "s": PropTypes.oneOfType([_S, PropTypes.number, PropTypes.oneOf([null])]),
     "sbyte": PropTypes.oneOfType([_Sbyte, PropTypes.number, PropTypes.oneOf([null])]),
     "sealed": PropTypes.oneOfType([_Sealed, PropTypes.number, PropTypes.oneOf([null])]),
     "SEL": PropTypes.oneOfType([_Sel, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1059,14 +1212,19 @@ _TopLevel = PropTypes.shape({
     "Self": PropTypes.oneOfType([_Self, PropTypes.number, PropTypes.oneOf([null])]),
     "self": PropTypes.oneOfType([_SelfClass, PropTypes.number, PropTypes.oneOf([null])]),
     "serialize": PropTypes.oneOfType([_Serialize, PropTypes.number, PropTypes.oneOf([null])]),
+    "SerializerProvider": PropTypes.oneOfType([_SerializerProvider, PropTypes.number, PropTypes.oneOf([null])]),
     "set": PropTypes.oneOfType([_Set, PropTypes.number, PropTypes.oneOf([null])]),
     "short": PropTypes.oneOfType([_Short, PropTypes.number, PropTypes.oneOf([null])]),
     "signed": PropTypes.oneOfType([_Signed, PropTypes.number, PropTypes.oneOf([null])]),
+    "SimpleModule": PropTypes.oneOfType([_SimpleModule, PropTypes.number, PropTypes.oneOf([null])]),
     "sizeof": PropTypes.oneOfType([_Sizeof, PropTypes.number, PropTypes.oneOf([null])]),
     "stackalloc": PropTypes.oneOfType([_Stackalloc, PropTypes.number, PropTypes.oneOf([null])]),
+    "Standards": PropTypes.oneOfType([_Standards, PropTypes.number, PropTypes.oneOf([null])]),
     "static": PropTypes.oneOfType([_Static, PropTypes.number, PropTypes.oneOf([null])]),
     "static_assert": PropTypes.oneOfType([_StaticAssert, PropTypes.number, PropTypes.oneOf([null])]),
     "static_cast": PropTypes.oneOfType([_StaticCast, PropTypes.number, PropTypes.oneOf([null])]),
+    "StdDeserializer": PropTypes.oneOfType([_StdDeserializer, PropTypes.number, PropTypes.oneOf([null])]),
+    "StdSerializer": PropTypes.oneOfType([_StdSerializer, PropTypes.number, PropTypes.oneOf([null])]),
     "strictfp": PropTypes.oneOfType([_Strictfp, PropTypes.number, PropTypes.oneOf([null])]),
     "string": PropTypes.oneOfType([_String, PropTypes.number, PropTypes.oneOf([null])]),
     "struct": PropTypes.oneOfType([_Struct, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1082,8 +1240,11 @@ _TopLevel = PropTypes.shape({
     "thread_local": PropTypes.oneOfType([_ThreadLocal, PropTypes.number, PropTypes.oneOf([null])]),
     "throw": PropTypes.oneOfType([_Throw, PropTypes.number, PropTypes.oneOf([null])]),
     "throws": PropTypes.oneOfType([_Throws, PropTypes.number, PropTypes.oneOf([null])]),
+    "TimeOnly": PropTypes.oneOfType([_TimeOnly, PropTypes.number, PropTypes.oneOf([null])]),
+    "TimeOnlyConverter": PropTypes.oneOfType([_TimeOnlyConverter, PropTypes.number, PropTypes.oneOf([null])]),
     "to_json": PropTypes.oneOfType([_ToJSON, PropTypes.number, PropTypes.oneOf([null])]),
     "top_level": PropTypes.oneOfType([_TopLevelClass, PropTypes.number, PropTypes.oneOf([null])]),
+    "toString": (props, name, ...args) => Object.prototype.hasOwnProperty.call(props, name) ? PropTypes.oneOfType([_ToString, PropTypes.number, PropTypes.oneOf([null])])(props, name, ...args) : null,
     "transient": PropTypes.oneOfType([_Transient, PropTypes.number, PropTypes.oneOf([null])]),
     "True": PropTypes.oneOfType([_True, PropTypes.number, PropTypes.oneOf([null])]),
     "true": PropTypes.oneOfType([_TrueClass, PropTypes.number, PropTypes.oneOf([null])]),
@@ -1105,6 +1266,9 @@ _TopLevel = PropTypes.shape({
     "unsigned": PropTypes.oneOfType([_Unsigned, PropTypes.number, PropTypes.oneOf([null])]),
     "ushort": PropTypes.oneOfType([_Ushort, PropTypes.number, PropTypes.oneOf([null])]),
     "using": PropTypes.oneOfType([_Using, PropTypes.number, PropTypes.oneOf([null])]),
+    "Utf8JsonReader": PropTypes.oneOfType([_Utf8JSONReader, PropTypes.number, PropTypes.oneOf([null])]),
+    "Utf8JsonWriter": PropTypes.oneOfType([_Utf8JSONWriter, PropTypes.number, PropTypes.oneOf([null])]),
+    "UUID": PropTypes.oneOfType([_UUID, PropTypes.number, PropTypes.oneOf([null])]),
     "var": PropTypes.oneOfType([_Var, PropTypes.number, PropTypes.oneOf([null])]),
     "virtual": PropTypes.oneOfType([_Virtual, PropTypes.number, PropTypes.oneOf([null])]),
     "void": PropTypes.oneOfType([_Void, PropTypes.number, PropTypes.oneOf([null])]),
diff --git a/base/schema-kotlin/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt b/head/schema-kotlin/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
index d523a2c..77d1b38 100644
--- a/base/schema-kotlin/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
+++ b/head/schema-kotlin/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
@@ -71,6 +71,7 @@ enum class EnumEnum(val value: String) {
     Checked("checked"),
     EnumClass("class"),
     PurpleClass("Class"),
+    Clone("clone"),
     CoAwait("co_await"),
     CoReturn("co_return"),
     CoYield("co_yield"),
@@ -85,8 +86,14 @@ enum class EnumEnum(val value: String) {
     Convenience("convenience"),
     Convert("convert"),
     EnumConverter("converter"),
+    CultureInfo("CultureInfo"),
     Date("date"),
     DateParseHandling("date_parse_handling"),
+    DateFormatter("DateFormatter"),
+    DateOnly("DateOnly"),
+    DateOnlyConverter("DateOnlyConverter"),
+    DateTime("DateTime"),
+    DateTimeStyles("DateTimeStyles"),
     Debugger("debugger"),
     Decimal("decimal"),
     Declare("declare"),
@@ -110,6 +117,8 @@ enum class EnumEnum(val value: String) {
     Else("else"),
     EncodeQuickType("encode_quick_type"),
     PurpleEnum("enum"),
+    EnumValues("EnumValues"),
+    EqualityContract("equalityContract"),
     Event("event"),
     Except("except"),
     Exception("exception"),
@@ -129,6 +138,7 @@ enum class EnumEnum(val value: String) {
     EnumFloat("float"),
     For("for"),
     Foreach("foreach"),
+    FormatException("FormatException"),
     Friend("friend"),
     From("from"),
     FromJSON("from_json"),
@@ -139,6 +149,7 @@ enum class EnumEnum(val value: String) {
     Go("go"),
     Goto("goto"),
     Guard("guard"),
+    HashCode("hashCode"),
     HasOwnProperty("hasOwnProperty"),
     ID("id"),
     If("if"),
@@ -156,6 +167,7 @@ enum class EnumEnum(val value: String) {
     EnumInt("int"),
     Interface("interface"),
     Internal("internal"),
+    ISODateTimeOffsetConverter("IsoDateTimeOffsetConverter"),
     Iterable("iterable"),
     Is("is"),
     Jdec("jdec"),
@@ -166,6 +178,17 @@ enum class EnumEnum(val value: String) {
     JSONSerializer("json_serializer"),
     JSONToken("json_token"),
     JSONWriter("json_writer"),
+    JSONAny("JSONAny"),
+    JSONCodingKey("JSONCodingKey"),
+    JSONDecoder("JSONDecoder"),
+    JSONEncoder("JSONEncoder"),
+    JSONException("JsonException"),
+    JSONGenerator("JsonGenerator"),
+    JSONNode("JsonNode"),
+    JSONNull("JSONNull"),
+    JSONParser("JsonParser"),
+    JSONReader("JsonReader"),
+    JSONTokenType("JsonTokenType"),
     Lambda("lambda"),
     Lazy("lazy"),
     Left("left"),
@@ -190,14 +213,17 @@ enum class EnumEnum(val value: String) {
     EnumNone("None"),
     Nonlocal("nonlocal"),
     Nonmutating("nonmutating"),
+    NoSuchMethod("noSuchMethod"),
     Not("not"),
     NotEq("not_eq"),
+    NSError("NSError"),
     NSString("NSString"),
     Null("NULL"),
     EnumNull("null"),
     Nullptr("nullptr"),
     Number("number"),
     Object("object"),
+    ObjectMapper("ObjectMapper"),
     Of("of"),
     Oneway("oneway"),
     Open("open"),
@@ -216,6 +242,7 @@ enum class EnumEnum(val value: String) {
     Prefix("prefix"),
     Print("print"),
     Printf("printf"),
+    PrintMembers("printMembers"),
     Private("private"),
     Protected("protected"),
     Protocol("Protocol"),
@@ -226,6 +253,7 @@ enum class EnumEnum(val value: String) {
     Range("range"),
     Readonly("readonly"),
     Ref("ref"),
+    RegExp("RegExp"),
     Register("register"),
     ReinterpretCast("reinterpret_cast"),
     Repeat("repeat"),
@@ -237,6 +265,8 @@ enum class EnumEnum(val value: String) {
     Rethrows("rethrows"),
     Return("return"),
     Right("right"),
+    RuntimeType("runtimeType"),
+    S("s"),
     Sbyte("sbyte"),
     Sealed("sealed"),
     Sel("SEL"),
@@ -244,14 +274,19 @@ enum class EnumEnum(val value: String) {
     Self("Self"),
     EnumSelf("self"),
     Serialize("serialize"),
+    SerializerProvider("SerializerProvider"),
     Set("set"),
     EnumShort("short"),
     Signed("signed"),
+    SimpleModule("SimpleModule"),
     Sizeof("sizeof"),
     Stackalloc("stackalloc"),
+    Standards("Standards"),
     Static("static"),
     StaticAssert("static_assert"),
     StaticCast("static_cast"),
+    StdDeserializer("StdDeserializer"),
+    StdSerializer("StdSerializer"),
     Strictfp("strictfp"),
     EnumString("string"),
     Struct("struct"),
@@ -267,8 +302,11 @@ enum class EnumEnum(val value: String) {
     ThreadLocal("thread_local"),
     Throw("throw"),
     Throws("throws"),
+    TimeOnly("TimeOnly"),
+    TimeOnlyConverter("TimeOnlyConverter"),
     ToJSON("to_json"),
     TopLevel("top_level"),
+    ToString("toString"),
     Transient("transient"),
     True("True"),
     EnumTrue("true"),
@@ -290,6 +328,9 @@ enum class EnumEnum(val value: String) {
     Unsigned("unsigned"),
     Ushort("ushort"),
     Using("using"),
+    Utf8JSONReader("Utf8JsonReader"),
+    Utf8JSONWriter("Utf8JsonWriter"),
+    UUID("UUID"),
     Var("var"),
     Virtual("virtual"),
     Void("void"),
@@ -351,6 +392,7 @@ enum class EnumEnum(val value: String) {
             "checked"                    -> Checked
             "class"                      -> EnumClass
             "Class"                      -> PurpleClass
+            "clone"                      -> Clone
             "co_await"                   -> CoAwait
             "co_return"                  -> CoReturn
             "co_yield"                   -> CoYield
@@ -365,8 +407,14 @@ enum class EnumEnum(val value: String) {
             "convenience"                -> Convenience
             "convert"                    -> Convert
             "converter"                  -> EnumConverter
+            "CultureInfo"                -> CultureInfo
             "date"                       -> Date
             "date_parse_handling"        -> DateParseHandling
+            "DateFormatter"              -> DateFormatter
+            "DateOnly"                   -> DateOnly
+            "DateOnlyConverter"          -> DateOnlyConverter
+            "DateTime"                   -> DateTime
+            "DateTimeStyles"             -> DateTimeStyles
             "debugger"                   -> Debugger
             "decimal"                    -> Decimal
             "declare"                    -> Declare
@@ -390,6 +438,8 @@ enum class EnumEnum(val value: String) {
             "else"                       -> Else
             "encode_quick_type"          -> EncodeQuickType
             "enum"                       -> PurpleEnum
+            "EnumValues"                 -> EnumValues
+            "equalityContract"           -> EqualityContract
             "event"                      -> Event
             "except"                     -> Except
             "exception"                  -> Exception
@@ -409,6 +459,7 @@ enum class EnumEnum(val value: String) {
             "float"                      -> EnumFloat
             "for"                        -> For
             "foreach"                    -> Foreach
+            "FormatException"            -> FormatException
             "friend"                     -> Friend
             "from"                       -> From
             "from_json"                  -> FromJSON
@@ -419,6 +470,7 @@ enum class EnumEnum(val value: String) {
             "go"                         -> Go
             "goto"                       -> Goto
             "guard"                      -> Guard
+            "hashCode"                   -> HashCode
             "hasOwnProperty"             -> HasOwnProperty
             "id"                         -> ID
             "if"                         -> If
@@ -436,6 +488,7 @@ enum class EnumEnum(val value: String) {
             "int"                        -> EnumInt
             "interface"                  -> Interface
             "internal"                   -> Internal
+            "IsoDateTimeOffsetConverter" -> ISODateTimeOffsetConverter
             "iterable"                   -> Iterable
             "is"                         -> Is
             "jdec"                       -> Jdec
@@ -446,6 +499,17 @@ enum class EnumEnum(val value: String) {
             "json_serializer"            -> JSONSerializer
             "json_token"                 -> JSONToken
             "json_writer"                -> JSONWriter
+            "JSONAny"                    -> JSONAny
+            "JSONCodingKey"              -> JSONCodingKey
+            "JSONDecoder"                -> JSONDecoder
+            "JSONEncoder"                -> JSONEncoder
+            "JsonException"              -> JSONException
+            "JsonGenerator"              -> JSONGenerator
+            "JsonNode"                   -> JSONNode
+            "JSONNull"                   -> JSONNull
+            "JsonParser"                 -> JSONParser
+            "JsonReader"                 -> JSONReader
+            "JsonTokenType"              -> JSONTokenType
             "lambda"                     -> Lambda
             "lazy"                       -> Lazy
             "left"                       -> Left
@@ -470,14 +534,17 @@ enum class EnumEnum(val value: String) {
             "None"                       -> EnumNone
             "nonlocal"                   -> Nonlocal
             "nonmutating"                -> Nonmutating
+            "noSuchMethod"               -> NoSuchMethod
             "not"                        -> Not
             "not_eq"                     -> NotEq
+            "NSError"                    -> NSError
             "NSString"                   -> NSString
             "NULL"                       -> Null
             "null"                       -> EnumNull
             "nullptr"                    -> Nullptr
             "number"                     -> Number
             "object"                     -> Object
+            "ObjectMapper"               -> ObjectMapper
             "of"                         -> Of
             "oneway"                     -> Oneway
             "open"                       -> Open
@@ -496,6 +563,7 @@ enum class EnumEnum(val value: String) {
             "prefix"                     -> Prefix
             "print"                      -> Print
             "printf"                     -> Printf
+            "printMembers"               -> PrintMembers
             "private"                    -> Private
             "protected"                  -> Protected
             "Protocol"                   -> Protocol
@@ -506,6 +574,7 @@ enum class EnumEnum(val value: String) {
             "range"                      -> Range
             "readonly"                   -> Readonly
             "ref"                        -> Ref
+            "RegExp"                     -> RegExp
             "register"                   -> Register
             "reinterpret_cast"           -> ReinterpretCast
             "repeat"                     -> Repeat
@@ -517,6 +586,8 @@ enum class EnumEnum(val value: String) {
             "rethrows"                   -> Rethrows
             "return"                     -> Return
             "right"                      -> Right
+            "runtimeType"                -> RuntimeType
+            "s"                          -> S
             "sbyte"                      -> Sbyte
             "sealed"                     -> Sealed
             "SEL"                        -> Sel
@@ -524,14 +595,19 @@ enum class EnumEnum(val value: String) {
             "Self"                       -> Self
             "self"                       -> EnumSelf
             "serialize"                  -> Serialize
+            "SerializerProvider"         -> SerializerProvider
             "set"                        -> Set
             "short"                      -> EnumShort
             "signed"                     -> Signed
+            "SimpleModule"               -> SimpleModule
             "sizeof"                     -> Sizeof
             "stackalloc"                 -> Stackalloc
+            "Standards"                  -> Standards
             "static"                     -> Static
             "static_assert"              -> StaticAssert
             "static_cast"                -> StaticCast
+            "StdDeserializer"            -> StdDeserializer
+            "StdSerializer"              -> StdSerializer
             "strictfp"                   -> Strictfp
             "string"                     -> EnumString
             "struct"                     -> Struct
@@ -547,8 +623,11 @@ enum class EnumEnum(val value: String) {
             "thread_local"               -> ThreadLocal
             "throw"                      -> Throw
             "throws"                     -> Throws
+            "TimeOnly"                   -> TimeOnly
+            "TimeOnlyConverter"          -> TimeOnlyConverter
             "to_json"                    -> ToJSON
             "top_level"                  -> TopLevel
+            "toString"                   -> ToString
             "transient"                  -> Transient
             "True"                       -> True
             "true"                       -> EnumTrue
@@ -570,6 +649,9 @@ enum class EnumEnum(val value: String) {
             "unsigned"                   -> Unsigned
             "ushort"                     -> Ushort
             "using"                      -> Using
+            "Utf8JsonReader"             -> Utf8JSONReader
+            "Utf8JsonWriter"             -> Utf8JSONWriter
+            "UUID"                       -> UUID
             "var"                        -> Var
             "virtual"                    -> Virtual
             "void"                       -> Void
diff --git a/base/schema-kotlin-jackson/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt b/head/schema-kotlin-jackson/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
index 9588427..8dd7f72 100644
--- a/base/schema-kotlin-jackson/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
+++ b/head/schema-kotlin-jackson/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
@@ -84,6 +84,7 @@ enum class EnumEnum(val value: String) {
     Checked("checked"),
     EnumClass("class"),
     PurpleClass("Class"),
+    Clone("clone"),
     CoAwait("co_await"),
     CoReturn("co_return"),
     CoYield("co_yield"),
@@ -98,8 +99,14 @@ enum class EnumEnum(val value: String) {
     Convenience("convenience"),
     Convert("convert"),
     EnumConverter("converter"),
+    CultureInfo("CultureInfo"),
     Date("date"),
     DateParseHandling("date_parse_handling"),
+    DateFormatter("DateFormatter"),
+    DateOnly("DateOnly"),
+    DateOnlyConverter("DateOnlyConverter"),
+    DateTime("DateTime"),
+    DateTimeStyles("DateTimeStyles"),
     Debugger("debugger"),
     Decimal("decimal"),
     Declare("declare"),
@@ -123,6 +130,8 @@ enum class EnumEnum(val value: String) {
     Else("else"),
     EncodeQuickType("encode_quick_type"),
     PurpleEnum("enum"),
+    EnumValues("EnumValues"),
+    EqualityContract("equalityContract"),
     Event("event"),
     Except("except"),
     Exception("exception"),
@@ -142,6 +151,7 @@ enum class EnumEnum(val value: String) {
     EnumFloat("float"),
     For("for"),
     Foreach("foreach"),
+    FormatException("FormatException"),
     Friend("friend"),
     From("from"),
     FromJSON("from_json"),
@@ -152,6 +162,7 @@ enum class EnumEnum(val value: String) {
     Go("go"),
     Goto("goto"),
     Guard("guard"),
+    HashCode("hashCode"),
     HasOwnProperty("hasOwnProperty"),
     ID("id"),
     If("if"),
@@ -169,6 +180,7 @@ enum class EnumEnum(val value: String) {
     EnumInt("int"),
     Interface("interface"),
     Internal("internal"),
+    ISODateTimeOffsetConverter("IsoDateTimeOffsetConverter"),
     Iterable("iterable"),
     Is("is"),
     Jdec("jdec"),
@@ -179,6 +191,17 @@ enum class EnumEnum(val value: String) {
     JSONSerializer("json_serializer"),
     JSONToken("json_token"),
     JSONWriter("json_writer"),
+    JSONAny("JSONAny"),
+    JSONCodingKey("JSONCodingKey"),
+    JSONDecoder("JSONDecoder"),
+    JSONEncoder("JSONEncoder"),
+    JSONException("JsonException"),
+    JSONGenerator("JsonGenerator"),
+    JSONNode("JsonNode"),
+    JSONNull("JSONNull"),
+    JSONParser("JsonParser"),
+    JSONReader("JsonReader"),
+    JSONTokenType("JsonTokenType"),
     Lambda("lambda"),
     Lazy("lazy"),
     Left("left"),
@@ -203,14 +226,17 @@ enum class EnumEnum(val value: String) {
     EnumNone("None"),
     Nonlocal("nonlocal"),
     Nonmutating("nonmutating"),
+    NoSuchMethod("noSuchMethod"),
     Not("not"),
     NotEq("not_eq"),
+    NSError("NSError"),
     NSString("NSString"),
     Null("NULL"),
     EnumNull("null"),
     Nullptr("nullptr"),
     Number("number"),
     Object("object"),
+    EnumObjectMapper("ObjectMapper"),
     Of("of"),
     Oneway("oneway"),
     Open("open"),
@@ -229,6 +255,7 @@ enum class EnumEnum(val value: String) {
     Prefix("prefix"),
     Print("print"),
     Printf("printf"),
+    PrintMembers("printMembers"),
     Private("private"),
     Protected("protected"),
     Protocol("Protocol"),
@@ -239,6 +266,7 @@ enum class EnumEnum(val value: String) {
     Range("range"),
     Readonly("readonly"),
     Ref("ref"),
+    RegExp("RegExp"),
     Register("register"),
     ReinterpretCast("reinterpret_cast"),
     Repeat("repeat"),
@@ -250,6 +278,8 @@ enum class EnumEnum(val value: String) {
     Rethrows("rethrows"),
     Return("return"),
     Right("right"),
+    RuntimeType("runtimeType"),
+    S("s"),
     Sbyte("sbyte"),
     Sealed("sealed"),
     Sel("SEL"),
@@ -257,14 +287,19 @@ enum class EnumEnum(val value: String) {
     Self("Self"),
     EnumSelf("self"),
     Serialize("serialize"),
+    EnumSerializerProvider("SerializerProvider"),
     Set("set"),
     EnumShort("short"),
     Signed("signed"),
+    EnumSimpleModule("SimpleModule"),
     Sizeof("sizeof"),
     Stackalloc("stackalloc"),
+    Standards("Standards"),
     Static("static"),
     StaticAssert("static_assert"),
     StaticCast("static_cast"),
+    EnumStdDeserializer("StdDeserializer"),
+    EnumStdSerializer("StdSerializer"),
     Strictfp("strictfp"),
     EnumString("string"),
     Struct("struct"),
@@ -280,8 +315,11 @@ enum class EnumEnum(val value: String) {
     ThreadLocal("thread_local"),
     Throw("throw"),
     Throws("throws"),
+    TimeOnly("TimeOnly"),
+    TimeOnlyConverter("TimeOnlyConverter"),
     ToJSON("to_json"),
     TopLevel("top_level"),
+    ToString("toString"),
     Transient("transient"),
     True("True"),
     EnumTrue("true"),
@@ -303,6 +341,9 @@ enum class EnumEnum(val value: String) {
     Unsigned("unsigned"),
     Ushort("ushort"),
     Using("using"),
+    Utf8JSONReader("Utf8JsonReader"),
+    Utf8JSONWriter("Utf8JsonWriter"),
+    UUID("UUID"),
     Var("var"),
     Virtual("virtual"),
     Void("void"),
@@ -364,6 +405,7 @@ enum class EnumEnum(val value: String) {
             "checked"                    -> Checked
             "class"                      -> EnumClass
             "Class"                      -> PurpleClass
+            "clone"                      -> Clone
             "co_await"                   -> CoAwait
             "co_return"                  -> CoReturn
             "co_yield"                   -> CoYield
@@ -378,8 +420,14 @@ enum class EnumEnum(val value: String) {
             "convenience"                -> Convenience
             "convert"                    -> Convert
             "converter"                  -> EnumConverter
+            "CultureInfo"                -> CultureInfo
             "date"                       -> Date
             "date_parse_handling"        -> DateParseHandling
+            "DateFormatter"              -> DateFormatter
+            "DateOnly"                   -> DateOnly
+            "DateOnlyConverter"          -> DateOnlyConverter
+            "DateTime"                   -> DateTime
+            "DateTimeStyles"             -> DateTimeStyles
             "debugger"                   -> Debugger
             "decimal"                    -> Decimal
             "declare"                    -> Declare
@@ -403,6 +451,8 @@ enum class EnumEnum(val value: String) {
             "else"                       -> Else
             "encode_quick_type"          -> EncodeQuickType
             "enum"                       -> PurpleEnum
+            "EnumValues"                 -> EnumValues
+            "equalityContract"           -> EqualityContract
             "event"                      -> Event
             "except"                     -> Except
             "exception"                  -> Exception
@@ -422,6 +472,7 @@ enum class EnumEnum(val value: String) {
             "float"                      -> EnumFloat
             "for"                        -> For
             "foreach"                    -> Foreach
+            "FormatException"            -> FormatException
             "friend"                     -> Friend
             "from"                       -> From
             "from_json"                  -> FromJSON
@@ -432,6 +483,7 @@ enum class EnumEnum(val value: String) {
             "go"                         -> Go
             "goto"                       -> Goto
             "guard"                      -> Guard
+            "hashCode"                   -> HashCode
             "hasOwnProperty"             -> HasOwnProperty
             "id"                         -> ID
             "if"                         -> If
@@ -449,6 +501,7 @@ enum class EnumEnum(val value: String) {
             "int"                        -> EnumInt
             "interface"                  -> Interface
             "internal"                   -> Internal
+            "IsoDateTimeOffsetConverter" -> ISODateTimeOffsetConverter
             "iterable"                   -> Iterable
             "is"                         -> Is
             "jdec"                       -> Jdec
@@ -459,6 +512,17 @@ enum class EnumEnum(val value: String) {
             "json_serializer"            -> JSONSerializer
             "json_token"                 -> JSONToken
             "json_writer"                -> JSONWriter
+            "JSONAny"                    -> JSONAny
+            "JSONCodingKey"              -> JSONCodingKey
+            "JSONDecoder"                -> JSONDecoder
+            "JSONEncoder"                -> JSONEncoder
+            "JsonException"              -> JSONException
+            "JsonGenerator"              -> JSONGenerator
+            "JsonNode"                   -> JSONNode
+            "JSONNull"                   -> JSONNull
+            "JsonParser"                 -> JSONParser
+            "JsonReader"                 -> JSONReader
+            "JsonTokenType"              -> JSONTokenType
             "lambda"                     -> Lambda
             "lazy"                       -> Lazy
             "left"                       -> Left
@@ -483,14 +547,17 @@ enum class EnumEnum(val value: String) {
             "None"                       -> EnumNone
             "nonlocal"                   -> Nonlocal
             "nonmutating"                -> Nonmutating
+            "noSuchMethod"               -> NoSuchMethod
             "not"                        -> Not
             "not_eq"                     -> NotEq
+            "NSError"                    -> NSError
             "NSString"                   -> NSString
             "NULL"                       -> Null
             "null"                       -> EnumNull
             "nullptr"                    -> Nullptr
             "number"                     -> Number
             "object"                     -> Object
+            "ObjectMapper"               -> EnumObjectMapper
             "of"                         -> Of
             "oneway"                     -> Oneway
             "open"                       -> Open
@@ -509,6 +576,7 @@ enum class EnumEnum(val value: String) {
             "prefix"                     -> Prefix
             "print"                      -> Print
             "printf"                     -> Printf
+            "printMembers"               -> PrintMembers
             "private"                    -> Private
             "protected"                  -> Protected
             "Protocol"                   -> Protocol
@@ -519,6 +587,7 @@ enum class EnumEnum(val value: String) {
             "range"                      -> Range
             "readonly"                   -> Readonly
             "ref"                        -> Ref
+            "RegExp"                     -> RegExp
             "register"                   -> Register
             "reinterpret_cast"           -> ReinterpretCast
             "repeat"                     -> Repeat
@@ -530,6 +599,8 @@ enum class EnumEnum(val value: String) {
             "rethrows"                   -> Rethrows
             "return"                     -> Return
             "right"                      -> Right
+            "runtimeType"                -> RuntimeType
+            "s"                          -> S
             "sbyte"                      -> Sbyte
             "sealed"                     -> Sealed
             "SEL"                        -> Sel
@@ -537,14 +608,19 @@ enum class EnumEnum(val value: String) {
             "Self"                       -> Self
             "self"                       -> EnumSelf
             "serialize"                  -> Serialize
+            "SerializerProvider"         -> EnumSerializerProvider
             "set"                        -> Set
             "short"                      -> EnumShort
             "signed"                     -> Signed
+            "SimpleModule"               -> EnumSimpleModule
             "sizeof"                     -> Sizeof
             "stackalloc"                 -> Stackalloc
+            "Standards"                  -> Standards
             "static"                     -> Static
             "static_assert"              -> StaticAssert
             "static_cast"                -> StaticCast
+            "StdDeserializer"            -> EnumStdDeserializer
+            "StdSerializer"              -> EnumStdSerializer
             "strictfp"                   -> Strictfp
             "string"                     -> EnumString
             "struct"                     -> Struct
@@ -560,8 +636,11 @@ enum class EnumEnum(val value: String) {
             "thread_local"               -> ThreadLocal
             "throw"                      -> Throw
             "throws"                     -> Throws
+            "TimeOnly"                   -> TimeOnly
+            "TimeOnlyConverter"          -> TimeOnlyConverter
             "to_json"                    -> ToJSON
             "top_level"                  -> TopLevel
+            "toString"                   -> ToString
             "transient"                  -> Transient
             "True"                       -> True
             "true"                       -> EnumTrue
@@ -583,6 +662,9 @@ enum class EnumEnum(val value: String) {
             "unsigned"                   -> Unsigned
             "ushort"                     -> Ushort
             "using"                      -> Using
+            "Utf8JsonReader"             -> Utf8JSONReader
+            "Utf8JsonWriter"             -> Utf8JSONWriter
+            "UUID"                       -> UUID
             "var"                        -> Var
             "virtual"                    -> Virtual
             "void"                       -> Void
diff --git a/base/schema-kotlinx/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt b/head/schema-kotlinx/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
index ddb3e69..c3f77e6 100644
--- a/base/schema-kotlinx/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
+++ b/head/schema-kotlinx/test/inputs/schema/keyword-enum.schema/default/TopLevel.kt
@@ -60,6 +60,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("checked") Checked("checked"),
     @SerialName("class") EnumClass("class"),
     @SerialName("Class") PurpleClass("Class"),
+    @SerialName("clone") Clone("clone"),
     @SerialName("co_await") CoAwait("co_await"),
     @SerialName("co_return") CoReturn("co_return"),
     @SerialName("co_yield") CoYield("co_yield"),
@@ -74,8 +75,14 @@ enum class EnumEnum(val value: String) {
     @SerialName("convenience") Convenience("convenience"),
     @SerialName("convert") Convert("convert"),
     @SerialName("converter") EnumConverter("converter"),
+    @SerialName("CultureInfo") CultureInfo("CultureInfo"),
     @SerialName("date") Date("date"),
     @SerialName("date_parse_handling") DateParseHandling("date_parse_handling"),
+    @SerialName("DateFormatter") DateFormatter("DateFormatter"),
+    @SerialName("DateOnly") DateOnly("DateOnly"),
+    @SerialName("DateOnlyConverter") DateOnlyConverter("DateOnlyConverter"),
+    @SerialName("DateTime") DateTime("DateTime"),
+    @SerialName("DateTimeStyles") DateTimeStyles("DateTimeStyles"),
     @SerialName("debugger") Debugger("debugger"),
     @SerialName("decimal") Decimal("decimal"),
     @SerialName("declare") Declare("declare"),
@@ -99,6 +106,8 @@ enum class EnumEnum(val value: String) {
     @SerialName("else") Else("else"),
     @SerialName("encode_quick_type") EncodeQuickType("encode_quick_type"),
     @SerialName("enum") PurpleEnum("enum"),
+    @SerialName("EnumValues") EnumValues("EnumValues"),
+    @SerialName("equalityContract") EqualityContract("equalityContract"),
     @SerialName("event") Event("event"),
     @SerialName("except") Except("except"),
     @SerialName("exception") Exception("exception"),
@@ -118,6 +127,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("float") EnumFloat("float"),
     @SerialName("for") For("for"),
     @SerialName("foreach") Foreach("foreach"),
+    @SerialName("FormatException") FormatException("FormatException"),
     @SerialName("friend") Friend("friend"),
     @SerialName("from") From("from"),
     @SerialName("from_json") FromJSON("from_json"),
@@ -128,6 +138,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("go") Go("go"),
     @SerialName("goto") Goto("goto"),
     @SerialName("guard") Guard("guard"),
+    @SerialName("hashCode") HashCode("hashCode"),
     @SerialName("hasOwnProperty") HasOwnProperty("hasOwnProperty"),
     @SerialName("id") ID("id"),
     @SerialName("if") If("if"),
@@ -145,6 +156,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("int") EnumInt("int"),
     @SerialName("interface") Interface("interface"),
     @SerialName("internal") Internal("internal"),
+    @SerialName("IsoDateTimeOffsetConverter") ISODateTimeOffsetConverter("IsoDateTimeOffsetConverter"),
     @SerialName("iterable") Iterable("iterable"),
     @SerialName("is") Is("is"),
     @SerialName("jdec") Jdec("jdec"),
@@ -155,6 +167,17 @@ enum class EnumEnum(val value: String) {
     @SerialName("json_serializer") JSONSerializer("json_serializer"),
     @SerialName("json_token") JSONToken("json_token"),
     @SerialName("json_writer") JSONWriter("json_writer"),
+    @SerialName("JSONAny") JSONAny("JSONAny"),
+    @SerialName("JSONCodingKey") JSONCodingKey("JSONCodingKey"),
+    @SerialName("JSONDecoder") JSONDecoder("JSONDecoder"),
+    @SerialName("JSONEncoder") JSONEncoder("JSONEncoder"),
+    @SerialName("JsonException") JSONException("JsonException"),
+    @SerialName("JsonGenerator") JSONGenerator("JsonGenerator"),
+    @SerialName("JsonNode") JSONNode("JsonNode"),
+    @SerialName("JSONNull") JSONNull("JSONNull"),
+    @SerialName("JsonParser") JSONParser("JsonParser"),
+    @SerialName("JsonReader") JSONReader("JsonReader"),
+    @SerialName("JsonTokenType") JSONTokenType("JsonTokenType"),
     @SerialName("lambda") Lambda("lambda"),
     @SerialName("lazy") Lazy("lazy"),
     @SerialName("left") Left("left"),
@@ -179,14 +202,17 @@ enum class EnumEnum(val value: String) {
     @SerialName("None") EnumNone("None"),
     @SerialName("nonlocal") Nonlocal("nonlocal"),
     @SerialName("nonmutating") Nonmutating("nonmutating"),
+    @SerialName("noSuchMethod") NoSuchMethod("noSuchMethod"),
     @SerialName("not") Not("not"),
     @SerialName("not_eq") NotEq("not_eq"),
+    @SerialName("NSError") NSError("NSError"),
     @SerialName("NSString") NSString("NSString"),
     @SerialName("NULL") Null("NULL"),
     @SerialName("null") EnumNull("null"),
     @SerialName("nullptr") Nullptr("nullptr"),
     @SerialName("number") Number("number"),
     @SerialName("object") Object("object"),
+    @SerialName("ObjectMapper") ObjectMapper("ObjectMapper"),
     @SerialName("of") Of("of"),
     @SerialName("oneway") Oneway("oneway"),
     @SerialName("open") Open("open"),
@@ -205,6 +231,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("prefix") Prefix("prefix"),
     @SerialName("print") Print("print"),
     @SerialName("printf") Printf("printf"),
+    @SerialName("printMembers") PrintMembers("printMembers"),
     @SerialName("private") Private("private"),
     @SerialName("protected") Protected("protected"),
     @SerialName("Protocol") Protocol("Protocol"),
@@ -215,6 +242,7 @@ enum class EnumEnum(val value: String) {
     @SerialName("range") Range("range"),
     @SerialName("readonly") Readonly("readonly"),
     @SerialName("ref") Ref("ref"),
+    @SerialName("RegExp") RegExp("RegExp"),
     @SerialName("register") Register("register"),
     @SerialName("reinterpret_cast") ReinterpretCast("reinterpret_cast"),
     @SerialName("repeat") Repeat("repeat"),
@@ -226,6 +254,8 @@ enum class EnumEnum(val value: String) {
     @SerialName("rethrows") Rethrows("rethrows"),
     @SerialName("return") Return("return"),
     @SerialName("right") Right("right"),
+    @SerialName("runtimeType") RuntimeType("runtimeType"),
+    @SerialName("s") S("s"),
     @SerialName("sbyte") Sbyte("sbyte"),
     @SerialName("sealed") Sealed("sealed"),
     @SerialName("SEL") Sel("SEL"),
@@ -233,14 +263,19 @@ enum class EnumEnum(val value: String) {
     @SerialName("Self") Self("Self"),
     @SerialName("self") EnumSelf("self"),
     @SerialName("serialize") Serialize("serialize"),
+    @SerialName("SerializerProvider") SerializerProvider("SerializerProvider"),
     @SerialName("set") Set("set"),
     @SerialName("short") EnumShort("short"),
     @SerialName("signed") Signed("signed"),
+    @SerialName("SimpleModule") SimpleModule("SimpleModule"),
     @SerialName("sizeof") Sizeof("sizeof"),
     @SerialName("stackalloc") Stackalloc("stackalloc"),
+    @SerialName("Standards") Standards("Standards"),
     @SerialName("static") Static("static"),
     @SerialName("static_assert") StaticAssert("static_assert"),
     @SerialName("static_cast") StaticCast("static_cast"),
+    @SerialName("StdDeserializer") StdDeserializer("StdDeserializer"),
+    @SerialName("StdSerializer") StdSerializer("StdSerializer"),
     @SerialName("strictfp") Strictfp("strictfp"),
     @SerialName("string") EnumString("string"),
     @SerialName("struct") Struct("struct"),
@@ -256,8 +291,11 @@ enum class EnumEnum(val value: String) {
     @SerialName("thread_local") ThreadLocal("thread_local"),
     @SerialName("throw") Throw("throw"),
     @SerialName("throws") Throws("throws"),
+    @SerialName("TimeOnly") TimeOnly("TimeOnly"),
+    @SerialName("TimeOnlyConverter") TimeOnlyConverter("TimeOnlyConverter"),
     @SerialName("to_json") ToJSON("to_json"),
     @SerialName("top_level") TopLevel("top_level"),
+    @SerialName("toString") ToString("toString"),
     @SerialName("transient") Transient("transient"),
     @SerialName("True") True("True"),
     @SerialName("true") EnumTrue("true"),
@@ -279,6 +317,9 @@ enum class EnumEnum(val value: String) {
     @SerialName("unsigned") Unsigned("unsigned"),
     @SerialName("ushort") Ushort("ushort"),
     @SerialName("using") Using("using"),
+    @SerialName("Utf8JsonReader") Utf8JSONReader("Utf8JsonReader"),
+    @SerialName("Utf8JsonWriter") Utf8JSONWriter("Utf8JsonWriter"),
+    @SerialName("UUID") UUID("UUID"),
     @SerialName("var") Var("var"),
     @SerialName("virtual") Virtual("virtual"),
     @SerialName("void") Void("void"),
diff --git a/base/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.h b/head/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.h
index fc40431..1fd6a09 100644
--- a/base/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.h
+++ b/head/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.h
@@ -58,6 +58,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)checked;
 + (QTEnum *)class;
 + (QTEnum *)enumClass;
++ (QTEnum *)clone;
 + (QTEnum *)coAwait;
 + (QTEnum *)coReturn;
 + (QTEnum *)coYield;
@@ -72,8 +73,14 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)convenience;
 + (QTEnum *)convert;
 + (QTEnum *)converter;
++ (QTEnum *)cultureInfo;
 + (QTEnum *)date;
 + (QTEnum *)dateParseHandling;
++ (QTEnum *)dateFormatter;
++ (QTEnum *)dateOnly;
++ (QTEnum *)dateOnlyConverter;
++ (QTEnum *)dateTime;
++ (QTEnum *)dateTimeStyles;
 + (QTEnum *)debugger;
 + (QTEnum *)decimal;
 + (QTEnum *)declare;
@@ -97,6 +104,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumElse;
 + (QTEnum *)encodeQuickType;
 + (QTEnum *)enumEnum;
++ (QTEnum *)enumValues;
++ (QTEnum *)equalityContract;
 + (QTEnum *)event;
 + (QTEnum *)except;
 + (QTEnum *)exception;
@@ -116,6 +125,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumFloat;
 + (QTEnum *)enumFor;
 + (QTEnum *)foreach;
++ (QTEnum *)formatException;
 + (QTEnum *)friend;
 + (QTEnum *)from;
 + (QTEnum *)fromJSON;
@@ -126,6 +136,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)go;
 + (QTEnum *)enumGoto;
 + (QTEnum *)guard;
++ (QTEnum *)theHashCode;
 + (QTEnum *)hasOwnProperty;
 + (QTEnum *)identifier;
 + (QTEnum *)enumIf;
@@ -143,6 +154,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumInt;
 + (QTEnum *)interface;
 + (QTEnum *)internal;
++ (QTEnum *)isoDateTimeOffsetConverter;
 + (QTEnum *)iterable;
 + (QTEnum *)is;
 + (QTEnum *)jdec;
@@ -153,6 +165,17 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)jsonSerializer;
 + (QTEnum *)jsonToken;
 + (QTEnum *)jsonWriter;
++ (QTEnum *)jsonAny;
++ (QTEnum *)jsonCodingKey;
++ (QTEnum *)jsonDecoder;
++ (QTEnum *)jsonEncoder;
++ (QTEnum *)jsonException;
++ (QTEnum *)jsonGenerator;
++ (QTEnum *)jsonNode;
++ (QTEnum *)jsonNull;
++ (QTEnum *)jsonParser;
++ (QTEnum *)jsonReader;
++ (QTEnum *)jsonTokenType;
 + (QTEnum *)lambda;
 + (QTEnum *)lazy;
 + (QTEnum *)left;
@@ -177,14 +200,17 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumNone;
 + (QTEnum *)nonlocal;
 + (QTEnum *)nonmutating;
++ (QTEnum *)noSuchMethod;
 + (QTEnum *)not;
 + (QTEnum *)notEq;
++ (QTEnum *)nsError;
 + (QTEnum *)nsString;
 + (QTEnum *)null;
 + (QTEnum *)enumNull;
 + (QTEnum *)nullptr;
 + (QTEnum *)number;
 + (QTEnum *)object;
++ (QTEnum *)objectMapper;
 + (QTEnum *)of;
 + (QTEnum *)oneway;
 + (QTEnum *)open;
@@ -203,6 +229,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)prefix;
 + (QTEnum *)print;
 + (QTEnum *)printf;
++ (QTEnum *)printMembers;
 + (QTEnum *)private;
 + (QTEnum *)protected;
 + (QTEnum *)protocol;
@@ -213,6 +240,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)range;
 + (QTEnum *)readonly;
 + (QTEnum *)ref;
++ (QTEnum *)regExp;
 + (QTEnum *)enumRegister;
 + (QTEnum *)reinterpretCast;
 + (QTEnum *)repeat;
@@ -224,6 +252,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)rethrows;
 + (QTEnum *)enumReturn;
 + (QTEnum *)right;
++ (QTEnum *)runtimeType;
++ (QTEnum *)s;
 + (QTEnum *)sbyte;
 + (QTEnum *)sealed;
 + (QTEnum *)sel;
@@ -231,14 +261,19 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)self;
 + (QTEnum *)enumSelf;
 + (QTEnum *)serialize;
++ (QTEnum *)serializerProvider;
 + (QTEnum *)set;
 + (QTEnum *)enumShort;
 + (QTEnum *)enumSigned;
++ (QTEnum *)simpleModule;
 + (QTEnum *)enumSizeof;
 + (QTEnum *)stackalloc;
++ (QTEnum *)standards;
 + (QTEnum *)enumStatic;
 + (QTEnum *)staticAssert;
 + (QTEnum *)staticCast;
++ (QTEnum *)stdDeserializer;
++ (QTEnum *)stdSerializer;
 + (QTEnum *)strictfp;
 + (QTEnum *)string;
 + (QTEnum *)enumStruct;
@@ -254,8 +289,11 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)threadLocal;
 + (QTEnum *)throw;
 + (QTEnum *)throws;
++ (QTEnum *)timeOnly;
++ (QTEnum *)timeOnlyConverter;
 + (QTEnum *)toJSON;
 + (QTEnum *)topLevel;
++ (QTEnum *)toString;
 + (QTEnum *)transient;
 + (QTEnum *)enumTrue;
 + (QTEnum *)true1;
@@ -277,6 +315,9 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumUnsigned;
 + (QTEnum *)ushort;
 + (QTEnum *)using;
++ (QTEnum *)utf8JSONReader;
++ (QTEnum *)utf8JSONWriter;
++ (QTEnum *)uuid;
 + (QTEnum *)var;
 + (QTEnum *)virtual;
 + (QTEnum *)enumVoid;
diff --git a/base/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.m b/head/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.m
index 3e643dc..08f558e 100644
--- a/base/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.m
+++ b/head/schema-objective-c/test/inputs/schema/keyword-enum.schema/default/QTTopLevel.m
@@ -61,6 +61,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"checked": [[QTEnum alloc] initWithValue:@"checked"],
         @"class": [[QTEnum alloc] initWithValue:@"class"],
         @"Class": [[QTEnum alloc] initWithValue:@"Class"],
+        @"clone": [[QTEnum alloc] initWithValue:@"clone"],
         @"co_await": [[QTEnum alloc] initWithValue:@"co_await"],
         @"co_return": [[QTEnum alloc] initWithValue:@"co_return"],
         @"co_yield": [[QTEnum alloc] initWithValue:@"co_yield"],
@@ -75,8 +76,14 @@ NS_ASSUME_NONNULL_BEGIN
         @"convenience": [[QTEnum alloc] initWithValue:@"convenience"],
         @"convert": [[QTEnum alloc] initWithValue:@"convert"],
         @"converter": [[QTEnum alloc] initWithValue:@"converter"],
+        @"CultureInfo": [[QTEnum alloc] initWithValue:@"CultureInfo"],
         @"date": [[QTEnum alloc] initWithValue:@"date"],
         @"date_parse_handling": [[QTEnum alloc] initWithValue:@"date_parse_handling"],
+        @"DateFormatter": [[QTEnum alloc] initWithValue:@"DateFormatter"],
+        @"DateOnly": [[QTEnum alloc] initWithValue:@"DateOnly"],
+        @"DateOnlyConverter": [[QTEnum alloc] initWithValue:@"DateOnlyConverter"],
+        @"DateTime": [[QTEnum alloc] initWithValue:@"DateTime"],
+        @"DateTimeStyles": [[QTEnum alloc] initWithValue:@"DateTimeStyles"],
         @"debugger": [[QTEnum alloc] initWithValue:@"debugger"],
         @"decimal": [[QTEnum alloc] initWithValue:@"decimal"],
         @"declare": [[QTEnum alloc] initWithValue:@"declare"],
@@ -100,6 +107,8 @@ NS_ASSUME_NONNULL_BEGIN
         @"else": [[QTEnum alloc] initWithValue:@"else"],
         @"encode_quick_type": [[QTEnum alloc] initWithValue:@"encode_quick_type"],
         @"enum": [[QTEnum alloc] initWithValue:@"enum"],
+        @"EnumValues": [[QTEnum alloc] initWithValue:@"EnumValues"],
+        @"equalityContract": [[QTEnum alloc] initWithValue:@"equalityContract"],
         @"event": [[QTEnum alloc] initWithValue:@"event"],
         @"except": [[QTEnum alloc] initWithValue:@"except"],
         @"exception": [[QTEnum alloc] initWithValue:@"exception"],
@@ -119,6 +128,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"float": [[QTEnum alloc] initWithValue:@"float"],
         @"for": [[QTEnum alloc] initWithValue:@"for"],
         @"foreach": [[QTEnum alloc] initWithValue:@"foreach"],
+        @"FormatException": [[QTEnum alloc] initWithValue:@"FormatException"],
         @"friend": [[QTEnum alloc] initWithValue:@"friend"],
         @"from": [[QTEnum alloc] initWithValue:@"from"],
         @"from_json": [[QTEnum alloc] initWithValue:@"from_json"],
@@ -129,6 +139,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"go": [[QTEnum alloc] initWithValue:@"go"],
         @"goto": [[QTEnum alloc] initWithValue:@"goto"],
         @"guard": [[QTEnum alloc] initWithValue:@"guard"],
+        @"hashCode": [[QTEnum alloc] initWithValue:@"hashCode"],
         @"hasOwnProperty": [[QTEnum alloc] initWithValue:@"hasOwnProperty"],
         @"id": [[QTEnum alloc] initWithValue:@"id"],
         @"if": [[QTEnum alloc] initWithValue:@"if"],
@@ -146,6 +157,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"int": [[QTEnum alloc] initWithValue:@"int"],
         @"interface": [[QTEnum alloc] initWithValue:@"interface"],
         @"internal": [[QTEnum alloc] initWithValue:@"internal"],
+        @"IsoDateTimeOffsetConverter": [[QTEnum alloc] initWithValue:@"IsoDateTimeOffsetConverter"],
         @"iterable": [[QTEnum alloc] initWithValue:@"iterable"],
         @"is": [[QTEnum alloc] initWithValue:@"is"],
         @"jdec": [[QTEnum alloc] initWithValue:@"jdec"],
@@ -156,6 +168,17 @@ NS_ASSUME_NONNULL_BEGIN
         @"json_serializer": [[QTEnum alloc] initWithValue:@"json_serializer"],
         @"json_token": [[QTEnum alloc] initWithValue:@"json_token"],
         @"json_writer": [[QTEnum alloc] initWithValue:@"json_writer"],
+        @"JSONAny": [[QTEnum alloc] initWithValue:@"JSONAny"],
+        @"JSONCodingKey": [[QTEnum alloc] initWithValue:@"JSONCodingKey"],
+        @"JSONDecoder": [[QTEnum alloc] initWithValue:@"JSONDecoder"],
+        @"JSONEncoder": [[QTEnum alloc] initWithValue:@"JSONEncoder"],
+        @"JsonException": [[QTEnum alloc] initWithValue:@"JsonException"],
+        @"JsonGenerator": [[QTEnum alloc] initWithValue:@"JsonGenerator"],
+        @"JsonNode": [[QTEnum alloc] initWithValue:@"JsonNode"],
+        @"JSONNull": [[QTEnum alloc] initWithValue:@"JSONNull"],
+        @"JsonParser": [[QTEnum alloc] initWithValue:@"JsonParser"],
+        @"JsonReader": [[QTEnum alloc] initWithValue:@"JsonReader"],
+        @"JsonTokenType": [[QTEnum alloc] initWithValue:@"JsonTokenType"],
         @"lambda": [[QTEnum alloc] initWithValue:@"lambda"],
         @"lazy": [[QTEnum alloc] initWithValue:@"lazy"],
         @"left": [[QTEnum alloc] initWithValue:@"left"],
@@ -180,14 +203,17 @@ NS_ASSUME_NONNULL_BEGIN
         @"None": [[QTEnum alloc] initWithValue:@"None"],
         @"nonlocal": [[QTEnum alloc] initWithValue:@"nonlocal"],
         @"nonmutating": [[QTEnum alloc] initWithValue:@"nonmutating"],
+        @"noSuchMethod": [[QTEnum alloc] initWithValue:@"noSuchMethod"],
         @"not": [[QTEnum alloc] initWithValue:@"not"],
         @"not_eq": [[QTEnum alloc] initWithValue:@"not_eq"],
+        @"NSError": [[QTEnum alloc] initWithValue:@"NSError"],
         @"NSString": [[QTEnum alloc] initWithValue:@"NSString"],
         @"NULL": [[QTEnum alloc] initWithValue:@"NULL"],
         @"null": [[QTEnum alloc] initWithValue:@"null"],
         @"nullptr": [[QTEnum alloc] initWithValue:@"nullptr"],
         @"number": [[QTEnum alloc] initWithValue:@"number"],
         @"object": [[QTEnum alloc] initWithValue:@"object"],
+        @"ObjectMapper": [[QTEnum alloc] initWithValue:@"ObjectMapper"],
         @"of": [[QTEnum alloc] initWithValue:@"of"],
         @"oneway": [[QTEnum alloc] initWithValue:@"oneway"],
         @"open": [[QTEnum alloc] initWithValue:@"open"],
@@ -206,6 +232,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"prefix": [[QTEnum alloc] initWithValue:@"prefix"],
         @"print": [[QTEnum alloc] initWithValue:@"print"],
         @"printf": [[QTEnum alloc] initWithValue:@"printf"],
+        @"printMembers": [[QTEnum alloc] initWithValue:@"printMembers"],
         @"private": [[QTEnum alloc] initWithValue:@"private"],
         @"protected": [[QTEnum alloc] initWithValue:@"protected"],
         @"Protocol": [[QTEnum alloc] initWithValue:@"Protocol"],
@@ -216,6 +243,7 @@ NS_ASSUME_NONNULL_BEGIN
         @"range": [[QTEnum alloc] initWithValue:@"range"],
         @"readonly": [[QTEnum alloc] initWithValue:@"readonly"],
         @"ref": [[QTEnum alloc] initWithValue:@"ref"],
+        @"RegExp": [[QTEnum alloc] initWithValue:@"RegExp"],
         @"register": [[QTEnum alloc] initWithValue:@"register"],
         @"reinterpret_cast": [[QTEnum alloc] initWithValue:@"reinterpret_cast"],
         @"repeat": [[QTEnum alloc] initWithValue:@"repeat"],
@@ -227,6 +255,8 @@ NS_ASSUME_NONNULL_BEGIN
         @"rethrows": [[QTEnum alloc] initWithValue:@"rethrows"],
         @"return": [[QTEnum alloc] initWithValue:@"return"],
         @"right": [[QTEnum alloc] initWithValue:@"right"],
+        @"runtimeType": [[QTEnum alloc] initWithValue:@"runtimeType"],
+        @"s": [[QTEnum alloc] initWithValue:@"s"],
         @"sbyte": [[QTEnum alloc] initWithValue:@"sbyte"],
         @"sealed": [[QTEnum alloc] initWithValue:@"sealed"],
         @"SEL": [[QTEnum alloc] initWithValue:@"SEL"],
@@ -234,14 +264,19 @@ NS_ASSUME_NONNULL_BEGIN
         @"Self": [[QTEnum alloc] initWithValue:@"Self"],
         @"self": [[QTEnum alloc] initWithValue:@"self"],
         @"serialize": [[QTEnum alloc] initWithValue:@"serialize"],
+        @"SerializerProvider": [[QTEnum alloc] initWithValue:@"SerializerProvider"],
         @"set": [[QTEnum alloc] initWithValue:@"set"],
         @"short": [[QTEnum alloc] initWithValue:@"short"],
         @"signed": [[QTEnum alloc] initWithValue:@"signed"],
+        @"SimpleModule": [[QTEnum alloc] initWithValue:@"SimpleModule"],
         @"sizeof": [[QTEnum alloc] initWithValue:@"sizeof"],
         @"stackalloc": [[QTEnum alloc] initWithValue:@"stackalloc"],
+        @"Standards": [[QTEnum alloc] initWithValue:@"Standards"],
         @"static": [[QTEnum alloc] initWithValue:@"static"],
         @"static_assert": [[QTEnum alloc] initWithValue:@"static_assert"],
         @"static_cast": [[QTEnum alloc] initWithValue:@"static_cast"],
+        @"StdDeserializer": [[QTEnum alloc] initWithValue:@"StdDeserializer"],
+        @"StdSerializer": [[QTEnum alloc] initWithValue:@"StdSerializer"],
         @"strictfp": [[QTEnum alloc] initWithValue:@"strictfp"],
         @"string": [[QTEnum alloc] initWithValue:@"string"],
         @"struct": [[QTEnum alloc] initWithValue:@"struct"],
@@ -257,8 +292,11 @@ NS_ASSUME_NONNULL_BEGIN
         @"thread_local": [[QTEnum alloc] initWithValue:@"thread_local"],
         @"throw": [[QTEnum alloc] initWithValue:@"throw"],
         @"throws": [[QTEnum alloc] initWithValue:@"throws"],
+        @"TimeOnly": [[QTEnum alloc] initWithValue:@"TimeOnly"],
+        @"TimeOnlyConverter": [[QTEnum alloc] initWithValue:@"TimeOnlyConverter"],
         @"to_json": [[QTEnum alloc] initWithValue:@"to_json"],
         @"top_level": [[QTEnum alloc] initWithValue:@"top_level"],
+        @"toString": [[QTEnum alloc] initWithValue:@"toString"],
         @"transient": [[QTEnum alloc] initWithValue:@"transient"],
         @"True": [[QTEnum alloc] initWithValue:@"True"],
         @"true": [[QTEnum alloc] initWithValue:@"true"],
@@ -280,6 +318,9 @@ NS_ASSUME_NONNULL_BEGIN
         @"unsigned": [[QTEnum alloc] initWithValue:@"unsigned"],
         @"ushort": [[QTEnum alloc] initWithValue:@"ushort"],
         @"using": [[QTEnum alloc] initWithValue:@"using"],
+        @"Utf8JsonReader": [[QTEnum alloc] initWithValue:@"Utf8JsonReader"],
+        @"Utf8JsonWriter": [[QTEnum alloc] initWithValue:@"Utf8JsonWriter"],
+        @"UUID": [[QTEnum alloc] initWithValue:@"UUID"],
         @"var": [[QTEnum alloc] initWithValue:@"var"],
         @"virtual": [[QTEnum alloc] initWithValue:@"virtual"],
         @"void": [[QTEnum alloc] initWithValue:@"void"],
@@ -341,6 +382,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)checked { return QTEnum.values[@"checked"]; }
 + (QTEnum *)class { return QTEnum.values[@"class"]; }
 + (QTEnum *)enumClass { return QTEnum.values[@"Class"]; }
++ (QTEnum *)clone { return QTEnum.values[@"clone"]; }
 + (QTEnum *)coAwait { return QTEnum.values[@"co_await"]; }
 + (QTEnum *)coReturn { return QTEnum.values[@"co_return"]; }
 + (QTEnum *)coYield { return QTEnum.values[@"co_yield"]; }
@@ -355,8 +397,14 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)convenience { return QTEnum.values[@"convenience"]; }
 + (QTEnum *)convert { return QTEnum.values[@"convert"]; }
 + (QTEnum *)converter { return QTEnum.values[@"converter"]; }
++ (QTEnum *)cultureInfo { return QTEnum.values[@"CultureInfo"]; }
 + (QTEnum *)date { return QTEnum.values[@"date"]; }
 + (QTEnum *)dateParseHandling { return QTEnum.values[@"date_parse_handling"]; }
++ (QTEnum *)dateFormatter { return QTEnum.values[@"DateFormatter"]; }
++ (QTEnum *)dateOnly { return QTEnum.values[@"DateOnly"]; }
++ (QTEnum *)dateOnlyConverter { return QTEnum.values[@"DateOnlyConverter"]; }
++ (QTEnum *)dateTime { return QTEnum.values[@"DateTime"]; }
++ (QTEnum *)dateTimeStyles { return QTEnum.values[@"DateTimeStyles"]; }
 + (QTEnum *)debugger { return QTEnum.values[@"debugger"]; }
 + (QTEnum *)decimal { return QTEnum.values[@"decimal"]; }
 + (QTEnum *)declare { return QTEnum.values[@"declare"]; }
@@ -380,6 +428,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumElse { return QTEnum.values[@"else"]; }
 + (QTEnum *)encodeQuickType { return QTEnum.values[@"encode_quick_type"]; }
 + (QTEnum *)enumEnum { return QTEnum.values[@"enum"]; }
++ (QTEnum *)enumValues { return QTEnum.values[@"EnumValues"]; }
++ (QTEnum *)equalityContract { return QTEnum.values[@"equalityContract"]; }
 + (QTEnum *)event { return QTEnum.values[@"event"]; }
 + (QTEnum *)except { return QTEnum.values[@"except"]; }
 + (QTEnum *)exception { return QTEnum.values[@"exception"]; }
@@ -399,6 +449,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumFloat { return QTEnum.values[@"float"]; }
 + (QTEnum *)enumFor { return QTEnum.values[@"for"]; }
 + (QTEnum *)foreach { return QTEnum.values[@"foreach"]; }
++ (QTEnum *)formatException { return QTEnum.values[@"FormatException"]; }
 + (QTEnum *)friend { return QTEnum.values[@"friend"]; }
 + (QTEnum *)from { return QTEnum.values[@"from"]; }
 + (QTEnum *)fromJSON { return QTEnum.values[@"from_json"]; }
@@ -409,6 +460,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)go { return QTEnum.values[@"go"]; }
 + (QTEnum *)enumGoto { return QTEnum.values[@"goto"]; }
 + (QTEnum *)guard { return QTEnum.values[@"guard"]; }
++ (QTEnum *)theHashCode { return QTEnum.values[@"hashCode"]; }
 + (QTEnum *)hasOwnProperty { return QTEnum.values[@"hasOwnProperty"]; }
 + (QTEnum *)identifier { return QTEnum.values[@"id"]; }
 + (QTEnum *)enumIf { return QTEnum.values[@"if"]; }
@@ -426,6 +478,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumInt { return QTEnum.values[@"int"]; }
 + (QTEnum *)interface { return QTEnum.values[@"interface"]; }
 + (QTEnum *)internal { return QTEnum.values[@"internal"]; }
++ (QTEnum *)isoDateTimeOffsetConverter { return QTEnum.values[@"IsoDateTimeOffsetConverter"]; }
 + (QTEnum *)iterable { return QTEnum.values[@"iterable"]; }
 + (QTEnum *)is { return QTEnum.values[@"is"]; }
 + (QTEnum *)jdec { return QTEnum.values[@"jdec"]; }
@@ -436,6 +489,17 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)jsonSerializer { return QTEnum.values[@"json_serializer"]; }
 + (QTEnum *)jsonToken { return QTEnum.values[@"json_token"]; }
 + (QTEnum *)jsonWriter { return QTEnum.values[@"json_writer"]; }
++ (QTEnum *)jsonAny { return QTEnum.values[@"JSONAny"]; }
++ (QTEnum *)jsonCodingKey { return QTEnum.values[@"JSONCodingKey"]; }
++ (QTEnum *)jsonDecoder { return QTEnum.values[@"JSONDecoder"]; }
++ (QTEnum *)jsonEncoder { return QTEnum.values[@"JSONEncoder"]; }
++ (QTEnum *)jsonException { return QTEnum.values[@"JsonException"]; }
++ (QTEnum *)jsonGenerator { return QTEnum.values[@"JsonGenerator"]; }
++ (QTEnum *)jsonNode { return QTEnum.values[@"JsonNode"]; }
++ (QTEnum *)jsonNull { return QTEnum.values[@"JSONNull"]; }
++ (QTEnum *)jsonParser { return QTEnum.values[@"JsonParser"]; }
++ (QTEnum *)jsonReader { return QTEnum.values[@"JsonReader"]; }
++ (QTEnum *)jsonTokenType { return QTEnum.values[@"JsonTokenType"]; }
 + (QTEnum *)lambda { return QTEnum.values[@"lambda"]; }
 + (QTEnum *)lazy { return QTEnum.values[@"lazy"]; }
 + (QTEnum *)left { return QTEnum.values[@"left"]; }
@@ -460,14 +524,17 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumNone { return QTEnum.values[@"None"]; }
 + (QTEnum *)nonlocal { return QTEnum.values[@"nonlocal"]; }
 + (QTEnum *)nonmutating { return QTEnum.values[@"nonmutating"]; }
++ (QTEnum *)noSuchMethod { return QTEnum.values[@"noSuchMethod"]; }
 + (QTEnum *)not { return QTEnum.values[@"not"]; }
 + (QTEnum *)notEq { return QTEnum.values[@"not_eq"]; }
++ (QTEnum *)nsError { return QTEnum.values[@"NSError"]; }
 + (QTEnum *)nsString { return QTEnum.values[@"NSString"]; }
 + (QTEnum *)null { return QTEnum.values[@"NULL"]; }
 + (QTEnum *)enumNull { return QTEnum.values[@"null"]; }
 + (QTEnum *)nullptr { return QTEnum.values[@"nullptr"]; }
 + (QTEnum *)number { return QTEnum.values[@"number"]; }
 + (QTEnum *)object { return QTEnum.values[@"object"]; }
++ (QTEnum *)objectMapper { return QTEnum.values[@"ObjectMapper"]; }
 + (QTEnum *)of { return QTEnum.values[@"of"]; }
 + (QTEnum *)oneway { return QTEnum.values[@"oneway"]; }
 + (QTEnum *)open { return QTEnum.values[@"open"]; }
@@ -486,6 +553,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)prefix { return QTEnum.values[@"prefix"]; }
 + (QTEnum *)print { return QTEnum.values[@"print"]; }
 + (QTEnum *)printf { return QTEnum.values[@"printf"]; }
++ (QTEnum *)printMembers { return QTEnum.values[@"printMembers"]; }
 + (QTEnum *)private { return QTEnum.values[@"private"]; }
 + (QTEnum *)protected { return QTEnum.values[@"protected"]; }
 + (QTEnum *)protocol { return QTEnum.values[@"Protocol"]; }
@@ -496,6 +564,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)range { return QTEnum.values[@"range"]; }
 + (QTEnum *)readonly { return QTEnum.values[@"readonly"]; }
 + (QTEnum *)ref { return QTEnum.values[@"ref"]; }
++ (QTEnum *)regExp { return QTEnum.values[@"RegExp"]; }
 + (QTEnum *)enumRegister { return QTEnum.values[@"register"]; }
 + (QTEnum *)reinterpretCast { return QTEnum.values[@"reinterpret_cast"]; }
 + (QTEnum *)repeat { return QTEnum.values[@"repeat"]; }
@@ -507,6 +576,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)rethrows { return QTEnum.values[@"rethrows"]; }
 + (QTEnum *)enumReturn { return QTEnum.values[@"return"]; }
 + (QTEnum *)right { return QTEnum.values[@"right"]; }
++ (QTEnum *)runtimeType { return QTEnum.values[@"runtimeType"]; }
++ (QTEnum *)s { return QTEnum.values[@"s"]; }
 + (QTEnum *)sbyte { return QTEnum.values[@"sbyte"]; }
 + (QTEnum *)sealed { return QTEnum.values[@"sealed"]; }
 + (QTEnum *)sel { return QTEnum.values[@"SEL"]; }
@@ -514,14 +585,19 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)self { return QTEnum.values[@"Self"]; }
 + (QTEnum *)enumSelf { return QTEnum.values[@"self"]; }
 + (QTEnum *)serialize { return QTEnum.values[@"serialize"]; }
++ (QTEnum *)serializerProvider { return QTEnum.values[@"SerializerProvider"]; }
 + (QTEnum *)set { return QTEnum.values[@"set"]; }
 + (QTEnum *)enumShort { return QTEnum.values[@"short"]; }
 + (QTEnum *)enumSigned { return QTEnum.values[@"signed"]; }
++ (QTEnum *)simpleModule { return QTEnum.values[@"SimpleModule"]; }
 + (QTEnum *)enumSizeof { return QTEnum.values[@"sizeof"]; }
 + (QTEnum *)stackalloc { return QTEnum.values[@"stackalloc"]; }
++ (QTEnum *)standards { return QTEnum.values[@"Standards"]; }
 + (QTEnum *)enumStatic { return QTEnum.values[@"static"]; }
 + (QTEnum *)staticAssert { return QTEnum.values[@"static_assert"]; }
 + (QTEnum *)staticCast { return QTEnum.values[@"static_cast"]; }
++ (QTEnum *)stdDeserializer { return QTEnum.values[@"StdDeserializer"]; }
++ (QTEnum *)stdSerializer { return QTEnum.values[@"StdSerializer"]; }
 + (QTEnum *)strictfp { return QTEnum.values[@"strictfp"]; }
 + (QTEnum *)string { return QTEnum.values[@"string"]; }
 + (QTEnum *)enumStruct { return QTEnum.values[@"struct"]; }
@@ -537,8 +613,11 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)threadLocal { return QTEnum.values[@"thread_local"]; }
 + (QTEnum *)throw { return QTEnum.values[@"throw"]; }
 + (QTEnum *)throws { return QTEnum.values[@"throws"]; }
++ (QTEnum *)timeOnly { return QTEnum.values[@"TimeOnly"]; }
++ (QTEnum *)timeOnlyConverter { return QTEnum.values[@"TimeOnlyConverter"]; }
 + (QTEnum *)toJSON { return QTEnum.values[@"to_json"]; }
 + (QTEnum *)topLevel { return QTEnum.values[@"top_level"]; }
++ (QTEnum *)toString { return QTEnum.values[@"toString"]; }
 + (QTEnum *)transient { return QTEnum.values[@"transient"]; }
 + (QTEnum *)enumTrue { return QTEnum.values[@"True"]; }
 + (QTEnum *)true1 { return QTEnum.values[@"true"]; }
@@ -560,6 +639,9 @@ NS_ASSUME_NONNULL_BEGIN
 + (QTEnum *)enumUnsigned { return QTEnum.values[@"unsigned"]; }
 + (QTEnum *)ushort { return QTEnum.values[@"ushort"]; }
 + (QTEnum *)using { return QTEnum.values[@"using"]; }
++ (QTEnum *)utf8JSONReader { return QTEnum.values[@"Utf8JsonReader"]; }
++ (QTEnum *)utf8JSONWriter { return QTEnum.values[@"Utf8JsonWriter"]; }
++ (QTEnum *)uuid { return QTEnum.values[@"UUID"]; }
 + (QTEnum *)var { return QTEnum.values[@"var"]; }
 + (QTEnum *)virtual { return QTEnum.values[@"virtual"]; }
 + (QTEnum *)enumVoid { return QTEnum.values[@"void"]; }
diff --git a/base/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.h b/head/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.h
index b78e331..ff403f6 100644
--- a/base/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.h
+++ b/head/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.h
@@ -35,6 +35,7 @@
 @class QTChar32T;
 @class QTChecked;
 @class QTClass;
+@class QTClone;
 @class QTCoAwait;
 @class QTCoReturn;
 @class QTCoYield;
@@ -48,8 +49,14 @@
 @class QTConvenience;
 @class QTConvert;
 @class QTConverter;
+@class QTCultureInfo;
 @class QTDate;
+@class QTDateFormatter;
+@class QTDateOnly;
+@class QTDateOnlyConverter;
 @class QTDateParseHandling;
+@class QTDateTime;
+@class QTDateTimeStyles;
 @class QTDebugger;
 @class QTDecimal;
 @class QTDeclare;
@@ -69,6 +76,8 @@
 @class QTElif;
 @class QTEmpty;
 @class QTEncodeQuickType;
+@class QTEnumValues;
+@class QTEqualityContract;
 @class QTEvent;
 @class QTExcept;
 @class QTException;
@@ -83,6 +92,7 @@
 @class QTFinally;
 @class QTFixed;
 @class QTForeach;
+@class QTFormatException;
 @class QTFriend;
 @class QTFrom;
 @class QTFromJSON;
@@ -107,14 +117,26 @@
 @class QTInterface;
 @class QTInternal;
 @class QTIs;
+@class QTISODateTimeOffsetConverter;
 @class QTIterable;
 @class QTJdec;
 @class QTJenc;
 @class QTJpipe;
 @class QTJSON;
+@class QTJSONAny;
+@class QTJSONCodingKey;
 @class QTJSONConverter;
+@class QTJSONDecoder;
+@class QTJSONEncoder;
+@class QTJSONException;
+@class QTJSONGenerator;
+@class QTJSONNode;
+@class QTJSONNull;
+@class QTJSONParser;
+@class QTJSONReader;
 @class QTJSONSerializer;
 @class QTJSONToken;
+@class QTJSONTokenType;
 @class QTJSONWriter;
 @class QTLambda;
 @class QTLazy;
@@ -131,17 +153,20 @@
 @class QTNative;
 @class QTNewtonsoft;
 @class QTNo;
+@class QTNoSuchMethod;
 @class QTNoexcept;
 @class QTNone;
 @class QTNonlocal;
 @class QTNonmutating;
 @class QTNot;
 @class QTNotEq;
+@class QTNSError;
 @class QTNSString;
 @class QTNull;
 @class QTNullptr;
 @class QTNumber;
 @class QTObject;
+@class QTObjectMapper;
 @class QTOf;
 @class QTOneway;
 @class QTOpen;
@@ -159,6 +184,7 @@
 @class QTPrecedence;
 @class QTPrefix;
 @class QTPrint;
+@class QTPrintMembers;
 @class QTPrintf;
 @class QTPrivate;
 @class QTProtected;
@@ -220,6 +246,7 @@
 @class QTRange;
 @class QTReadonly;
 @class QTRef;
+@class QTRegExp;
 @class QTReinterpretCast;
 @class QTRepeat;
 @class QTRequire;
@@ -227,16 +254,23 @@
 @class QTRequires;
 @class QTRethrows;
 @class QTRight;
+@class QTRuntimeType;
+@class QTS;
 @class QTSbyte;
 @class QTSealed;
 @class QTSel;
 @class QTSelect;
 @class QTSelf;
 @class QTSerialize;
+@class QTSerializerProvider;
 @class QTSet;
+@class QTSimpleModule;
 @class QTStackalloc;
+@class QTStandards;
 @class QTStaticAssert;
 @class QTStaticCast;
+@class QTStdDeserializer;
+@class QTStdSerializer;
 @class QTStrictfp;
 @class QTString;
 @class QTSubscript;
@@ -247,6 +281,7 @@
 @class QTTemplate;
 @class QTUnionBoolBool;
 @class QTFalseClass;
+@class QTHashCode;
 @class QTInit;
 @class QTNew;
 @class QTTrueClass;
@@ -255,7 +290,10 @@
 @class QTThreadLocal;
 @class QTThrow;
 @class QTThrows;
+@class QTTimeOnly;
+@class QTTimeOnlyConverter;
 @class QTToJSON;
+@class QTToString;
 @class QTTopLevelClass;
 @class QTTransient;
 @class QTTry;
@@ -271,6 +309,9 @@
 @class QTUnsafe;
 @class QTUshort;
 @class QTUsing;
+@class QTUtf8JSONReader;
+@class QTUtf8JSONWriter;
+@class QTUUID;
 @class QTVar;
 @class QTVirtual;
 @class QTWcharT;
@@ -338,6 +379,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id checked;
 @property (nonatomic, nullable, copy)   id qtTopLevelClass;
 @property (nonatomic, nullable, copy)   id class;
+@property (nonatomic, nullable, copy)   id clone;
 @property (nonatomic, nullable, copy)   id coAwait;
 @property (nonatomic, nullable, copy)   id coReturn;
 @property (nonatomic, nullable, copy)   id coYield;
@@ -352,8 +394,14 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id convenience;
 @property (nonatomic, nullable, copy)   id convert;
 @property (nonatomic, nullable, copy)   id converter;
+@property (nonatomic, nullable, copy)   id cultureInfo;
 @property (nonatomic, nullable, copy)   id date;
 @property (nonatomic, nullable, copy)   id dateParseHandling;
+@property (nonatomic, nullable, copy)   id dateFormatter;
+@property (nonatomic, nullable, copy)   id dateOnly;
+@property (nonatomic, nullable, copy)   id dateOnlyConverter;
+@property (nonatomic, nullable, copy)   id dateTime;
+@property (nonatomic, nullable, copy)   id dateTimeStyles;
 @property (nonatomic, nullable, copy)   id debugger;
 @property (nonatomic, nullable, copy)   id decimal;
 @property (nonatomic, nullable, copy)   id declare;
@@ -378,6 +426,8 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id qtTopLevelElse;
 @property (nonatomic, nullable, copy)   id encodeQuickType;
 @property (nonatomic, nullable, copy)   id qtTopLevelEnum;
+@property (nonatomic, nullable, copy)   id enumValues;
+@property (nonatomic, nullable, copy)   id equalityContract;
 @property (nonatomic, nullable, copy)   id event;
 @property (nonatomic, nullable, copy)   id except;
 @property (nonatomic, nullable, copy)   id exception;
@@ -397,6 +447,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id qtTopLevelFloat;
 @property (nonatomic, nullable, copy)   id qtTopLevelFor;
 @property (nonatomic, nullable, copy)   id foreach;
+@property (nonatomic, nullable, copy)   id formatException;
 @property (nonatomic, nullable, copy)   id friend;
 @property (nonatomic, nullable, copy)   id from;
 @property (nonatomic, nullable, copy)   id fromJSON;
@@ -407,6 +458,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id go;
 @property (nonatomic, nullable, copy)   id qtTopLevelGoto;
 @property (nonatomic, nullable, copy)   id guard;
+@property (nonatomic, nullable, copy)   id theHashCode;
 @property (nonatomic, nullable, copy)   id hasOwnProperty;
 @property (nonatomic, nullable, copy)   id identifier;
 @property (nonatomic, nullable, copy)   id qtTopLevelIf;
@@ -425,6 +477,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id interface;
 @property (nonatomic, nullable, copy)   id internal;
 @property (nonatomic, nullable, copy)   id is;
+@property (nonatomic, nullable, copy)   id isoDateTimeOffsetConverter;
 @property (nonatomic, nullable, copy)   id iterable;
 @property (nonatomic, nullable, copy)   id jdec;
 @property (nonatomic, nullable, copy)   id jenc;
@@ -434,6 +487,17 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id jsonSerializer;
 @property (nonatomic, nullable, copy)   id jsonToken;
 @property (nonatomic, nullable, copy)   id jsonWriter;
+@property (nonatomic, nullable, copy)   id jsonAny;
+@property (nonatomic, nullable, copy)   id jsonCodingKey;
+@property (nonatomic, nullable, copy)   id jsonDecoder;
+@property (nonatomic, nullable, copy)   id jsonEncoder;
+@property (nonatomic, nullable, copy)   id jsonException;
+@property (nonatomic, nullable, copy)   id jsonGenerator;
+@property (nonatomic, nullable, copy)   id jsonNode;
+@property (nonatomic, nullable, copy)   id jsonNull;
+@property (nonatomic, nullable, copy)   id jsonParser;
+@property (nonatomic, nullable, copy)   id jsonReader;
+@property (nonatomic, nullable, copy)   id jsonTokenType;
 @property (nonatomic, nullable, copy)   id lambda;
 @property (nonatomic, nullable, copy)   id lazy;
 @property (nonatomic, nullable, copy)   id left;
@@ -458,14 +522,17 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id none;
 @property (nonatomic, nullable, copy)   id nonlocal;
 @property (nonatomic, nullable, copy)   id nonmutating;
+@property (nonatomic, nullable, copy)   id noSuchMethod;
 @property (nonatomic, nullable, copy)   id not;
 @property (nonatomic, nullable, copy)   id notEq;
+@property (nonatomic, nullable, copy)   id nsError;
 @property (nonatomic, nullable, copy)   id nsString;
 @property (nonatomic, nullable, copy)   id null;
 @property (nonatomic, nullable, copy)   id qtTopLevelNull;
 @property (nonatomic, nullable, copy)   id nullptr;
 @property (nonatomic, nullable, copy)   id number;
 @property (nonatomic, nullable, copy)   id object;
+@property (nonatomic, nullable, copy)   id objectMapper;
 @property (nonatomic, nullable, copy)   id of;
 @property (nonatomic, nullable, copy)   id oneway;
 @property (nonatomic, nullable, copy)   id open;
@@ -484,6 +551,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id prefix;
 @property (nonatomic, nullable, copy)   id print;
 @property (nonatomic, nullable, copy)   id printf;
+@property (nonatomic, nullable, copy)   id printMembers;
 @property (nonatomic, nullable, copy)   id private;
 @property (nonatomic, nullable, copy)   id protected;
 @property (nonatomic, nullable, copy)   id protocol;
@@ -494,6 +562,7 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id range;
 @property (nonatomic, nullable, copy)   id readonly;
 @property (nonatomic, nullable, copy)   id ref;
+@property (nonatomic, nullable, copy)   id regExp;
 @property (nonatomic, nullable, copy)   id qtTopLevelRegister;
 @property (nonatomic, nullable, copy)   id reinterpretCast;
 @property (nonatomic, nullable, copy)   id repeat;
@@ -505,6 +574,8 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id rethrows;
 @property (nonatomic, nullable, copy)   id qtTopLevelReturn;
 @property (nonatomic, nullable, copy)   id right;
+@property (nonatomic, nullable, copy)   id runtimeType;
+@property (nonatomic, nullable, copy)   id s;
 @property (nonatomic, nullable, copy)   id sbyte;
 @property (nonatomic, nullable, copy)   id sealed;
 @property (nonatomic, nullable, copy)   id sel;
@@ -512,14 +583,19 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id self;
 @property (nonatomic, nullable, copy)   id qtTopLevelSelf;
 @property (nonatomic, nullable, copy)   id serialize;
+@property (nonatomic, nullable, copy)   id serializerProvider;
 @property (nonatomic, nullable, copy)   id set;
 @property (nonatomic, nullable, copy)   id qtTopLevelShort;
 @property (nonatomic, nullable, copy)   id qtTopLevelSigned;
+@property (nonatomic, nullable, copy)   id simpleModule;
 @property (nonatomic, nullable, copy)   id qtTopLevelSizeof;
 @property (nonatomic, nullable, copy)   id stackalloc;
+@property (nonatomic, nullable, copy)   id standards;
 @property (nonatomic, nullable, copy)   id qtTopLevelStatic;
 @property (nonatomic, nullable, copy)   id staticAssert;
 @property (nonatomic, nullable, copy)   id staticCast;
+@property (nonatomic, nullable, copy)   id stdDeserializer;
+@property (nonatomic, nullable, copy)   id stdSerializer;
 @property (nonatomic, nullable, copy)   id strictfp;
 @property (nonatomic, nullable, copy)   id string;
 @property (nonatomic, nullable, copy)   id qtTopLevelStruct;
@@ -535,8 +611,11 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id threadLocal;
 @property (nonatomic, nullable, copy)   id throw;
 @property (nonatomic, nullable, copy)   id throws;
+@property (nonatomic, nullable, copy)   id timeOnly;
+@property (nonatomic, nullable, copy)   id timeOnlyConverter;
 @property (nonatomic, nullable, copy)   id toJSON;
 @property (nonatomic, nullable, copy)   id topLevel;
+@property (nonatomic, nullable, copy)   id toString;
 @property (nonatomic, nullable, copy)   id transient;
 @property (nonatomic, nullable, copy)   id qtTopLevelTrue;
 @property (nonatomic, nullable, copy)   id theTrue;
@@ -558,6 +637,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @property (nonatomic, nullable, copy)   id qtTopLevelUnsigned;
 @property (nonatomic, nullable, copy)   id ushort;
 @property (nonatomic, nullable, copy)   id using;
+@property (nonatomic, nullable, copy)   id utf8JSONReader;
+@property (nonatomic, nullable, copy)   id utf8JSONWriter;
+@property (nonatomic, nullable, copy)   id uuid;
 @property (nonatomic, nullable, copy)   id var;
 @property (nonatomic, nullable, copy)   id virtual;
 @property (nonatomic, nullable, copy)   id qtTopLevelVoid;
@@ -666,6 +748,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTClass : NSObject
 @end
 
+@interface QTClone : NSObject
+@end
+
 @interface QTCoAwait : NSObject
 @end
 
@@ -705,12 +790,30 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTConverter : NSObject
 @end
 
+@interface QTCultureInfo : NSObject
+@end
+
 @interface QTDate : NSObject
 @end
 
+@interface QTDateFormatter : NSObject
+@end
+
+@interface QTDateOnly : NSObject
+@end
+
+@interface QTDateOnlyConverter : NSObject
+@end
+
 @interface QTDateParseHandling : NSObject
 @end
 
+@interface QTDateTime : NSObject
+@end
+
+@interface QTDateTimeStyles : NSObject
+@end
+
 @interface QTDebugger : NSObject
 @end
 
@@ -768,6 +871,12 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTEncodeQuickType : NSObject
 @end
 
+@interface QTEnumValues : NSObject
+@end
+
+@interface QTEqualityContract : NSObject
+@end
+
 @interface QTEvent : NSObject
 @end
 
@@ -810,6 +919,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTForeach : NSObject
 @end
 
+@interface QTFormatException : NSObject
+@end
+
 @interface QTFriend : NSObject
 @end
 
@@ -882,6 +994,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTIs : NSObject
 @end
 
+@interface QTISODateTimeOffsetConverter : NSObject
+@end
+
 @interface QTIterable : NSObject
 @end
 
@@ -897,15 +1012,48 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTJSON : NSObject
 @end
 
+@interface QTJSONAny : NSObject
+@end
+
+@interface QTJSONCodingKey : NSObject
+@end
+
 @interface QTJSONConverter : NSObject
 @end
 
+@interface QTJSONDecoder : NSObject
+@end
+
+@interface QTJSONEncoder : NSObject
+@end
+
+@interface QTJSONException : NSObject
+@end
+
+@interface QTJSONGenerator : NSObject
+@end
+
+@interface QTJSONNode : NSObject
+@end
+
+@interface QTJSONNull : NSObject
+@end
+
+@interface QTJSONParser : NSObject
+@end
+
+@interface QTJSONReader : NSObject
+@end
+
 @interface QTJSONSerializer : NSObject
 @end
 
 @interface QTJSONToken : NSObject
 @end
 
+@interface QTJSONTokenType : NSObject
+@end
+
 @interface QTJSONWriter : NSObject
 @end
 
@@ -954,6 +1102,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTNo : NSObject
 @end
 
+@interface QTNoSuchMethod : NSObject
+@end
+
 @interface QTNoexcept : NSObject
 @end
 
@@ -972,6 +1123,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTNotEq : NSObject
 @end
 
+@interface QTNSError : NSObject
+@end
+
 @interface QTNSString : NSObject
 @end
 
@@ -987,6 +1141,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTObject : NSObject
 @end
 
+@interface QTObjectMapper : NSObject
+@end
+
 @interface QTOf : NSObject
 @end
 
@@ -1038,6 +1195,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTPrint : NSObject
 @end
 
+@interface QTPrintMembers : NSObject
+@end
+
 @interface QTPrintf : NSObject
 @end
 
@@ -1221,6 +1381,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTRef : NSObject
 @end
 
+@interface QTRegExp : NSObject
+@end
+
 @interface QTReinterpretCast : NSObject
 @end
 
@@ -1242,6 +1405,12 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTRight : NSObject
 @end
 
+@interface QTRuntimeType : NSObject
+@end
+
+@interface QTS : NSObject
+@end
+
 @interface QTSbyte : NSObject
 @end
 
@@ -1260,18 +1429,33 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTSerialize : NSObject
 @end
 
+@interface QTSerializerProvider : NSObject
+@end
+
 @interface QTSet : NSObject
 @end
 
+@interface QTSimpleModule : NSObject
+@end
+
 @interface QTStackalloc : NSObject
 @end
 
+@interface QTStandards : NSObject
+@end
+
 @interface QTStaticAssert : NSObject
 @end
 
 @interface QTStaticCast : NSObject
 @end
 
+@interface QTStdDeserializer : NSObject
+@end
+
+@interface QTStdSerializer : NSObject
+@end
+
 @interface QTStrictfp : NSObject
 @end
 
@@ -1302,6 +1486,9 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTFalseClass : NSObject
 @end
 
+@interface QTHashCode : NSObject
+@end
+
 @interface QTInit : NSObject
 @end
 
@@ -1326,9 +1513,18 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTThrows : NSObject
 @end
 
+@interface QTTimeOnly : NSObject
+@end
+
+@interface QTTimeOnlyConverter : NSObject
+@end
+
 @interface QTToJSON : NSObject
 @end
 
+@interface QTToString : NSObject
+@end
+
 @interface QTTopLevelClass : NSObject
 @end
 
@@ -1374,6 +1570,15 @@ NSString   *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding en
 @interface QTUsing : NSObject
 @end
 
+@interface QTUtf8JSONReader : NSObject
+@end
+
+@interface QTUtf8JSONWriter : NSObject
+@end
+
+@interface QTUUID : NSObject
+@end
+
 @interface QTVar : NSObject
 @end
 
diff --git a/base/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.m b/head/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.m
index bb895c1..6df4844 100644
--- a/base/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.m
+++ b/head/schema-objective-c/test/inputs/schema/keyword-unions.schema/default/QTTopLevel.m
@@ -158,6 +158,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTClone (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTCoAwait (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -223,16 +228,46 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTCultureInfo (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTDate (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTDateFormatter (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTDateOnly (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTDateOnlyConverter (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTDateParseHandling (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTDateTime (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTDateTimeStyles (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTDebugger (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -328,6 +363,16 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTEnumValues (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTEqualityContract (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTEvent (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -398,6 +443,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTFormatException (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTFriend (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -518,6 +568,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTISODateTimeOffsetConverter (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTIterable (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -543,11 +598,61 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTJSONAny (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONCodingKey (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTJSONConverter (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTJSONDecoder (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONEncoder (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONException (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONGenerator (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONNode (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONNull (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONParser (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTJSONReader (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTJSONSerializer (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -558,6 +663,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTJSONTokenType (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTJSONWriter (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -638,6 +748,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTNoSuchMethod (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTNoexcept (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -668,6 +783,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTNSError (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTNSString (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -693,6 +813,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTObjectMapper (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTOf (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -778,6 +903,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTPrintMembers (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTPrintf (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1083,6 +1213,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTRegExp (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTReinterpretCast (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1118,6 +1253,16 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTRuntimeType (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTS (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTSbyte (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1148,16 +1293,31 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTSerializerProvider (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTSet (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTSimpleModule (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTStackalloc (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTStandards (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTStaticAssert (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1168,6 +1328,16 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTStdDeserializer (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTStdSerializer (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTStrictfp (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1218,6 +1388,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTHashCode (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTInit (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1258,11 +1433,26 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTTimeOnly (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTTimeOnlyConverter (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTToJSON (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTToString (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTTopLevelClass (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1338,6 +1528,21 @@ NS_ASSUME_NONNULL_BEGIN
 - (NSDictionary *)JSONDictionary;
 @end
 
+@interface QTUtf8JSONReader (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUtf8JSONWriter (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
+@interface QTUUID (JSONConversion)
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict;
+- (NSDictionary *)JSONDictionary;
+@end
+
 @interface QTVar (JSONConversion)
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict;
 - (NSDictionary *)JSONDictionary;
@@ -1477,6 +1682,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"checked": @"checked",
         @"class": @"qtTopLevelClass",
         @"Class": @"class",
+        @"clone": @"clone",
         @"co_await": @"coAwait",
         @"co_return": @"coReturn",
         @"co_yield": @"coYield",
@@ -1491,8 +1697,14 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"convenience": @"convenience",
         @"convert": @"convert",
         @"converter": @"converter",
+        @"CultureInfo": @"cultureInfo",
         @"date": @"date",
         @"date_parse_handling": @"dateParseHandling",
+        @"DateFormatter": @"dateFormatter",
+        @"DateOnly": @"dateOnly",
+        @"DateOnlyConverter": @"dateOnlyConverter",
+        @"DateTime": @"dateTime",
+        @"DateTimeStyles": @"dateTimeStyles",
         @"debugger": @"debugger",
         @"decimal": @"decimal",
         @"declare": @"declare",
@@ -1517,6 +1729,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"else": @"qtTopLevelElse",
         @"encode_quick_type": @"encodeQuickType",
         @"enum": @"qtTopLevelEnum",
+        @"EnumValues": @"enumValues",
+        @"equalityContract": @"equalityContract",
         @"event": @"event",
         @"except": @"except",
         @"exception": @"exception",
@@ -1536,6 +1750,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"float": @"qtTopLevelFloat",
         @"for": @"qtTopLevelFor",
         @"foreach": @"foreach",
+        @"FormatException": @"formatException",
         @"friend": @"friend",
         @"from": @"from",
         @"from_json": @"fromJSON",
@@ -1546,6 +1761,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"go": @"go",
         @"goto": @"qtTopLevelGoto",
         @"guard": @"guard",
+        @"hashCode": @"theHashCode",
         @"hasOwnProperty": @"hasOwnProperty",
         @"id": @"identifier",
         @"if": @"qtTopLevelIf",
@@ -1564,6 +1780,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"interface": @"interface",
         @"internal": @"internal",
         @"is": @"is",
+        @"IsoDateTimeOffsetConverter": @"isoDateTimeOffsetConverter",
         @"iterable": @"iterable",
         @"jdec": @"jdec",
         @"jenc": @"jenc",
@@ -1573,6 +1790,17 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"json_serializer": @"jsonSerializer",
         @"json_token": @"jsonToken",
         @"json_writer": @"jsonWriter",
+        @"JSONAny": @"jsonAny",
+        @"JSONCodingKey": @"jsonCodingKey",
+        @"JSONDecoder": @"jsonDecoder",
+        @"JSONEncoder": @"jsonEncoder",
+        @"JsonException": @"jsonException",
+        @"JsonGenerator": @"jsonGenerator",
+        @"JsonNode": @"jsonNode",
+        @"JSONNull": @"jsonNull",
+        @"JsonParser": @"jsonParser",
+        @"JsonReader": @"jsonReader",
+        @"JsonTokenType": @"jsonTokenType",
         @"lambda": @"lambda",
         @"lazy": @"lazy",
         @"left": @"left",
@@ -1597,14 +1825,17 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"None": @"none",
         @"nonlocal": @"nonlocal",
         @"nonmutating": @"nonmutating",
+        @"noSuchMethod": @"noSuchMethod",
         @"not": @"not",
         @"not_eq": @"notEq",
+        @"NSError": @"nsError",
         @"NSString": @"nsString",
         @"NULL": @"null",
         @"null": @"qtTopLevelNull",
         @"nullptr": @"nullptr",
         @"number": @"number",
         @"object": @"object",
+        @"ObjectMapper": @"objectMapper",
         @"of": @"of",
         @"oneway": @"oneway",
         @"open": @"open",
@@ -1623,6 +1854,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"prefix": @"prefix",
         @"print": @"print",
         @"printf": @"printf",
+        @"printMembers": @"printMembers",
         @"private": @"private",
         @"protected": @"protected",
         @"Protocol": @"protocol",
@@ -1633,6 +1865,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"range": @"range",
         @"readonly": @"readonly",
         @"ref": @"ref",
+        @"RegExp": @"regExp",
         @"register": @"qtTopLevelRegister",
         @"reinterpret_cast": @"reinterpretCast",
         @"repeat": @"repeat",
@@ -1644,6 +1877,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"rethrows": @"rethrows",
         @"return": @"qtTopLevelReturn",
         @"right": @"right",
+        @"runtimeType": @"runtimeType",
+        @"s": @"s",
         @"sbyte": @"sbyte",
         @"sealed": @"sealed",
         @"SEL": @"sel",
@@ -1651,14 +1886,19 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"Self": @"self",
         @"self": @"qtTopLevelSelf",
         @"serialize": @"serialize",
+        @"SerializerProvider": @"serializerProvider",
         @"set": @"set",
         @"short": @"qtTopLevelShort",
         @"signed": @"qtTopLevelSigned",
+        @"SimpleModule": @"simpleModule",
         @"sizeof": @"qtTopLevelSizeof",
         @"stackalloc": @"stackalloc",
+        @"Standards": @"standards",
         @"static": @"qtTopLevelStatic",
         @"static_assert": @"staticAssert",
         @"static_cast": @"staticCast",
+        @"StdDeserializer": @"stdDeserializer",
+        @"StdSerializer": @"stdSerializer",
         @"strictfp": @"strictfp",
         @"string": @"string",
         @"struct": @"qtTopLevelStruct",
@@ -1674,8 +1914,11 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"thread_local": @"threadLocal",
         @"throw": @"throw",
         @"throws": @"throws",
+        @"TimeOnly": @"timeOnly",
+        @"TimeOnlyConverter": @"timeOnlyConverter",
         @"to_json": @"toJSON",
         @"top_level": @"topLevel",
+        @"toString": @"toString",
         @"transient": @"transient",
         @"True": @"qtTopLevelTrue",
         @"true": @"theTrue",
@@ -1697,6 +1940,9 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         @"unsigned": @"qtTopLevelUnsigned",
         @"ushort": @"ushort",
         @"using": @"using",
+        @"Utf8JsonReader": @"utf8JSONReader",
+        @"Utf8JsonWriter": @"utf8JSONWriter",
+        @"UUID": @"uuid",
         @"var": @"var",
         @"virtual": @"virtual",
         @"void": @"qtTopLevelVoid",
@@ -2906,6 +3152,45 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
+@implementation QTClone
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTClone alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTClone.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTClone.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTClone.properties.allValues];
+}
+@end
+
 @implementation QTCoAwait
 + (NSDictionary<NSString *, NSString *> *)properties
 {
@@ -3413,7 +3698,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
-@implementation QTDate
+@implementation QTCultureInfo
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3423,7 +3708,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTCultureInfo alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3436,23 +3721,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDate.properties[key];
+    id resolved = QTCultureInfo.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDate.properties[key];
+    id resolved = QTCultureInfo.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDate.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTCultureInfo.properties.allValues];
 }
 @end
 
-@implementation QTDateParseHandling
+@implementation QTDate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3462,7 +3747,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateParseHandling alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3475,23 +3760,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDateParseHandling.properties[key];
+    id resolved = QTDate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDateParseHandling.properties[key];
+    id resolved = QTDate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDateParseHandling.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDate.properties.allValues];
 }
 @end
 
-@implementation QTDebugger
+@implementation QTDateFormatter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3501,7 +3786,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDebugger alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateFormatter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3514,23 +3799,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDebugger.properties[key];
+    id resolved = QTDateFormatter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDebugger.properties[key];
+    id resolved = QTDateFormatter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDebugger.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateFormatter.properties.allValues];
 }
 @end
 
-@implementation QTDecimal
+@implementation QTDateOnly
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3540,7 +3825,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecimal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateOnly alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3553,23 +3838,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDecimal.properties[key];
+    id resolved = QTDateOnly.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDecimal.properties[key];
+    id resolved = QTDateOnly.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDecimal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateOnly.properties.allValues];
 }
 @end
 
-@implementation QTDeclare
+@implementation QTDateOnlyConverter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3579,7 +3864,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeclare alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateOnlyConverter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3592,23 +3877,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDeclare.properties[key];
+    id resolved = QTDateOnlyConverter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDeclare.properties[key];
+    id resolved = QTDateOnlyConverter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDeclare.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateOnlyConverter.properties.allValues];
 }
 @end
 
-@implementation QTDecltype
+@implementation QTDateParseHandling
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3618,7 +3903,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecltype alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateParseHandling alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3631,23 +3916,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDecltype.properties[key];
+    id resolved = QTDateParseHandling.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDecltype.properties[key];
+    id resolved = QTDateParseHandling.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDecltype.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateParseHandling.properties.allValues];
 }
 @end
 
-@implementation QTDecodeString
+@implementation QTDateTime
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3657,7 +3942,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecodeString alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTime alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3670,23 +3955,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDecodeString.properties[key];
+    id resolved = QTDateTime.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDecodeString.properties[key];
+    id resolved = QTDateTime.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDecodeString.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateTime.properties.allValues];
 }
 @end
 
-@implementation QTDef
+@implementation QTDateTimeStyles
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3696,7 +3981,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDef alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDateTimeStyles alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3709,23 +3994,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDef.properties[key];
+    id resolved = QTDateTimeStyles.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDef.properties[key];
+    id resolved = QTDateTimeStyles.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDef.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDateTimeStyles.properties.allValues];
 }
 @end
 
-@implementation QTDefer
+@implementation QTDebugger
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3735,7 +4020,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefer alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDebugger alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3748,23 +4033,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDefer.properties[key];
+    id resolved = QTDebugger.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDefer.properties[key];
+    id resolved = QTDebugger.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDefer.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDebugger.properties.allValues];
 }
 @end
 
-@implementation QTDeinit
+@implementation QTDecimal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3774,7 +4059,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeinit alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecimal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3787,23 +4072,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDeinit.properties[key];
+    id resolved = QTDecimal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDeinit.properties[key];
+    id resolved = QTDecimal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDeinit.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDecimal.properties.allValues];
 }
 @end
 
-@implementation QTDel
+@implementation QTDeclare
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3813,7 +4098,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDel alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeclare alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3826,23 +4111,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDel.properties[key];
+    id resolved = QTDeclare.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDel.properties[key];
+    id resolved = QTDeclare.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDel.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDeclare.properties.allValues];
 }
 @end
 
-@implementation QTDelegate
+@implementation QTDecltype
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3852,7 +4137,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDelegate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecltype alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3865,23 +4150,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDelegate.properties[key];
+    id resolved = QTDecltype.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDelegate.properties[key];
+    id resolved = QTDecltype.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDelegate.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDecltype.properties.allValues];
 }
 @end
 
-@implementation QTDelete
+@implementation QTDecodeString
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3891,7 +4176,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDelete alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDecodeString alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3904,23 +4189,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDelete.properties[key];
+    id resolved = QTDecodeString.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDelete.properties[key];
+    id resolved = QTDecodeString.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDelete.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDecodeString.properties.allValues];
 }
 @end
 
-@implementation QTDict
+@implementation QTDef
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3930,7 +4215,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDict alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDef alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3943,23 +4228,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDict.properties[key];
+    id resolved = QTDef.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDict.properties[key];
+    id resolved = QTDef.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDict.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDef.properties.allValues];
 }
 @end
 
-@implementation QTDictionary
+@implementation QTDefer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -3969,7 +4254,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDictionary alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -3982,23 +4267,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDictionary.properties[key];
+    id resolved = QTDefer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDictionary.properties[key];
+    id resolved = QTDefer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDictionary.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDefer.properties.allValues];
 }
 @end
 
-@implementation QTDidSet
+@implementation QTDeinit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4008,7 +4293,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDidSet alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDeinit alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4021,23 +4306,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDidSet.properties[key];
+    id resolved = QTDeinit.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDidSet.properties[key];
+    id resolved = QTDeinit.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDidSet.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDeinit.properties.allValues];
 }
 @end
 
-@implementation QTDynamic
+@implementation QTDel
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4047,7 +4332,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDynamic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDel alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4060,23 +4345,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDynamic.properties[key];
+    id resolved = QTDel.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDynamic.properties[key];
+    id resolved = QTDel.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDynamic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDel.properties.allValues];
 }
 @end
 
-@implementation QTDynamicCast
+@implementation QTDelegate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4086,7 +4371,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDynamicCast alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDelegate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4099,23 +4384,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDynamicCast.properties[key];
+    id resolved = QTDelegate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDynamicCast.properties[key];
+    id resolved = QTDelegate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDynamicCast.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDelegate.properties.allValues];
 }
 @end
 
-@implementation QTElif
+@implementation QTDelete
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4125,7 +4410,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTElif alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDelete alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4138,23 +4423,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTElif.properties[key];
+    id resolved = QTDelete.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTElif.properties[key];
+    id resolved = QTDelete.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTElif.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDelete.properties.allValues];
 }
 @end
 
-@implementation QTEmpty
+@implementation QTDict
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4164,7 +4449,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEmpty alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDict alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4177,23 +4462,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEmpty.properties[key];
+    id resolved = QTDict.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEmpty.properties[key];
+    id resolved = QTDict.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTEmpty.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDict.properties.allValues];
 }
 @end
 
-@implementation QTEncodeQuickType
+@implementation QTDictionary
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4203,7 +4488,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEncodeQuickType alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDictionary alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4216,23 +4501,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEncodeQuickType.properties[key];
+    id resolved = QTDictionary.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEncodeQuickType.properties[key];
+    id resolved = QTDictionary.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTEncodeQuickType.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDictionary.properties.allValues];
 }
 @end
 
-@implementation QTEvent
+@implementation QTDidSet
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4242,7 +4527,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEvent alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDidSet alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4255,23 +4540,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEvent.properties[key];
+    id resolved = QTDidSet.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEvent.properties[key];
+    id resolved = QTDidSet.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTEvent.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDidSet.properties.allValues];
 }
 @end
 
-@implementation QTExcept
+@implementation QTDynamic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4281,7 +4566,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExcept alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDynamic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4294,23 +4579,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExcept.properties[key];
+    id resolved = QTDynamic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExcept.properties[key];
+    id resolved = QTDynamic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExcept.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDynamic.properties.allValues];
 }
 @end
 
-@implementation QTException
+@implementation QTDynamicCast
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4320,7 +4605,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTException alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDynamicCast alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4333,23 +4618,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTException.properties[key];
+    id resolved = QTDynamicCast.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTException.properties[key];
+    id resolved = QTDynamicCast.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTException.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTDynamicCast.properties.allValues];
 }
 @end
 
-@implementation QTExplicit
+@implementation QTElif
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4359,7 +4644,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExplicit alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTElif alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4372,23 +4657,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExplicit.properties[key];
+    id resolved = QTElif.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExplicit.properties[key];
+    id resolved = QTElif.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExplicit.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTElif.properties.allValues];
 }
 @end
 
-@implementation QTExport
+@implementation QTEmpty
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4398,7 +4683,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExport alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEmpty alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4411,23 +4696,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExport.properties[key];
+    id resolved = QTEmpty.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExport.properties[key];
+    id resolved = QTEmpty.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExport.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTEmpty.properties.allValues];
 }
 @end
 
-@implementation QTExposing
+@implementation QTEncodeQuickType
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4437,7 +4722,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExposing alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEncodeQuickType alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4450,23 +4735,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExposing.properties[key];
+    id resolved = QTEncodeQuickType.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExposing.properties[key];
+    id resolved = QTEncodeQuickType.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExposing.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTEncodeQuickType.properties.allValues];
 }
 @end
 
-@implementation QTExtends
+@implementation QTEnumValues
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4476,7 +4761,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtends alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEnumValues alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4489,23 +4774,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExtends.properties[key];
+    id resolved = QTEnumValues.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExtends.properties[key];
+    id resolved = QTEnumValues.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExtends.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTEnumValues.properties.allValues];
 }
 @end
 
-@implementation QTExtension
+@implementation QTEqualityContract
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4515,7 +4800,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtension alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEqualityContract alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4528,23 +4813,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExtension.properties[key];
+    id resolved = QTEqualityContract.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExtension.properties[key];
+    id resolved = QTEqualityContract.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExtension.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTEqualityContract.properties.allValues];
 }
 @end
 
-@implementation QTFallthrough
+@implementation QTEvent
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4554,7 +4839,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFallthrough alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEvent alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4567,23 +4852,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFallthrough.properties[key];
+    id resolved = QTEvent.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFallthrough.properties[key];
+    id resolved = QTEvent.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFallthrough.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTEvent.properties.allValues];
 }
 @end
 
-@implementation QTFileprivate
+@implementation QTExcept
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4593,7 +4878,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFileprivate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExcept alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4606,23 +4891,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFileprivate.properties[key];
+    id resolved = QTExcept.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFileprivate.properties[key];
+    id resolved = QTExcept.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFileprivate.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExcept.properties.allValues];
 }
 @end
 
-@implementation QTFinal
+@implementation QTException
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4632,7 +4917,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFinal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTException alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4645,23 +4930,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFinal.properties[key];
+    id resolved = QTException.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFinal.properties[key];
+    id resolved = QTException.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFinal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTException.properties.allValues];
 }
 @end
 
-@implementation QTFinally
+@implementation QTExplicit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4671,7 +4956,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFinally alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExplicit alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4684,23 +4969,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFinally.properties[key];
+    id resolved = QTExplicit.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFinally.properties[key];
+    id resolved = QTExplicit.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFinally.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExplicit.properties.allValues];
 }
 @end
 
-@implementation QTFixed
+@implementation QTExport
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4710,7 +4995,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFixed alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExport alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4723,23 +5008,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFixed.properties[key];
+    id resolved = QTExport.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFixed.properties[key];
+    id resolved = QTExport.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFixed.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExport.properties.allValues];
 }
 @end
 
-@implementation QTForeach
+@implementation QTExposing
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4749,7 +5034,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTForeach alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExposing alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4762,23 +5047,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTForeach.properties[key];
+    id resolved = QTExposing.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTForeach.properties[key];
+    id resolved = QTExposing.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTForeach.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExposing.properties.allValues];
 }
 @end
 
-@implementation QTFriend
+@implementation QTExtends
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4788,7 +5073,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFriend alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtends alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4801,23 +5086,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFriend.properties[key];
+    id resolved = QTExtends.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFriend.properties[key];
+    id resolved = QTExtends.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFriend.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExtends.properties.allValues];
 }
 @end
 
-@implementation QTFrom
+@implementation QTExtension
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4827,7 +5112,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFrom alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtension alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4840,23 +5125,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFrom.properties[key];
+    id resolved = QTExtension.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFrom.properties[key];
+    id resolved = QTExtension.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFrom.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTExtension.properties.allValues];
 }
 @end
 
-@implementation QTFromJSON
+@implementation QTFallthrough
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4866,7 +5151,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFromJSON alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFallthrough alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4879,23 +5164,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFromJSON.properties[key];
+    id resolved = QTFallthrough.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFromJSON.properties[key];
+    id resolved = QTFallthrough.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFromJSON.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFallthrough.properties.allValues];
 }
 @end
 
-@implementation QTFunc
+@implementation QTFileprivate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4905,7 +5190,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFunc alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFileprivate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4918,23 +5203,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFunc.properties[key];
+    id resolved = QTFileprivate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFunc.properties[key];
+    id resolved = QTFileprivate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFunc.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFileprivate.properties.allValues];
 }
 @end
 
-@implementation QTFunction
+@implementation QTFinal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4944,7 +5229,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFunction alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFinal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4957,23 +5242,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFunction.properties[key];
+    id resolved = QTFinal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFunction.properties[key];
+    id resolved = QTFinal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFunction.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFinal.properties.allValues];
 }
 @end
 
-@implementation QTGet
+@implementation QTFinally
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -4983,7 +5268,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGet alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFinally alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -4996,23 +5281,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGet.properties[key];
+    id resolved = QTFinally.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGet.properties[key];
+    id resolved = QTFinally.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTGet.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFinally.properties.allValues];
 }
 @end
 
-@implementation QTGlobal
+@implementation QTFixed
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5022,7 +5307,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGlobal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFixed alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5035,23 +5320,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGlobal.properties[key];
+    id resolved = QTFixed.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGlobal.properties[key];
+    id resolved = QTFixed.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTGlobal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFixed.properties.allValues];
 }
 @end
 
-@implementation QTGo
+@implementation QTForeach
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5061,7 +5346,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGo alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTForeach alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5074,23 +5359,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGo.properties[key];
+    id resolved = QTForeach.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGo.properties[key];
+    id resolved = QTForeach.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTGo.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTForeach.properties.allValues];
 }
 @end
 
-@implementation QTGuard
+@implementation QTFormatException
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5100,7 +5385,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGuard alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFormatException alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5113,23 +5398,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGuard.properties[key];
+    id resolved = QTFormatException.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGuard.properties[key];
+    id resolved = QTFormatException.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTGuard.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFormatException.properties.allValues];
 }
 @end
 
-@implementation QTHasOwnProperty
+@implementation QTFriend
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5139,7 +5424,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTHasOwnProperty alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFriend alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5152,23 +5437,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTHasOwnProperty.properties[key];
+    id resolved = QTFriend.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTHasOwnProperty.properties[key];
+    id resolved = QTFriend.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTHasOwnProperty.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFriend.properties.allValues];
 }
 @end
 
-@implementation QTID
+@implementation QTFrom
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5178,7 +5463,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTID alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFrom alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5191,23 +5476,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTID.properties[key];
+    id resolved = QTFrom.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTID.properties[key];
+    id resolved = QTFrom.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTID.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFrom.properties.allValues];
 }
 @end
 
-@implementation QTImaginery
+@implementation QTFromJSON
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5217,7 +5502,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImaginery alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFromJSON alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5230,23 +5515,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImaginery.properties[key];
+    id resolved = QTFromJSON.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImaginery.properties[key];
+    id resolved = QTFromJSON.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImaginery.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFromJSON.properties.allValues];
 }
 @end
 
-@implementation QTImp
+@implementation QTFunc
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5256,7 +5541,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImp alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFunc alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5269,23 +5554,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImp.properties[key];
+    id resolved = QTFunc.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImp.properties[key];
+    id resolved = QTFunc.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImp.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFunc.properties.allValues];
 }
 @end
 
-@implementation QTImplements
+@implementation QTFunction
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5295,7 +5580,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplements alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFunction alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5308,23 +5593,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImplements.properties[key];
+    id resolved = QTFunction.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImplements.properties[key];
+    id resolved = QTFunction.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImplements.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTFunction.properties.allValues];
 }
 @end
 
-@implementation QTImplicit
+@implementation QTGet
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5334,7 +5619,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplicit alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGet alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5347,23 +5632,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImplicit.properties[key];
+    id resolved = QTGet.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImplicit.properties[key];
+    id resolved = QTGet.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImplicit.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTGet.properties.allValues];
 }
 @end
 
-@implementation QTImport
+@implementation QTGlobal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5373,7 +5658,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTImport alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGlobal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5386,23 +5671,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTImport.properties[key];
+    id resolved = QTGlobal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTImport.properties[key];
+    id resolved = QTGlobal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTImport.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTGlobal.properties.allValues];
 }
 @end
 
-@implementation QTIn
+@implementation QTGo
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5412,7 +5697,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIn alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGo alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5425,23 +5710,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIn.properties[key];
+    id resolved = QTGo.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIn.properties[key];
+    id resolved = QTGo.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIn.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTGo.properties.allValues];
 }
 @end
 
-@implementation QTIndirect
+@implementation QTGuard
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5451,7 +5736,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIndirect alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGuard alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5464,23 +5749,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIndirect.properties[key];
+    id resolved = QTGuard.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIndirect.properties[key];
+    id resolved = QTGuard.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIndirect.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTGuard.properties.allValues];
 }
 @end
 
-@implementation QTInfix
+@implementation QTHasOwnProperty
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5490,7 +5775,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInfix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTHasOwnProperty alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5503,23 +5788,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInfix.properties[key];
+    id resolved = QTHasOwnProperty.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInfix.properties[key];
+    id resolved = QTHasOwnProperty.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInfix.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTHasOwnProperty.properties.allValues];
 }
 @end
 
-@implementation QTInout
+@implementation QTID
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5529,7 +5814,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInout alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTID alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5542,23 +5827,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInout.properties[key];
+    id resolved = QTID.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInout.properties[key];
+    id resolved = QTID.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInout.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTID.properties.allValues];
 }
 @end
 
-@implementation QTInstanceof
+@implementation QTImaginery
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5568,7 +5853,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInstanceof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImaginery alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5581,23 +5866,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInstanceof.properties[key];
+    id resolved = QTImaginery.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInstanceof.properties[key];
+    id resolved = QTImaginery.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInstanceof.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImaginery.properties.allValues];
 }
 @end
 
-@implementation QTInterface
+@implementation QTImp
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5607,7 +5892,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInterface alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImp alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5620,23 +5905,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInterface.properties[key];
+    id resolved = QTImp.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInterface.properties[key];
+    id resolved = QTImp.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInterface.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImp.properties.allValues];
 }
 @end
 
-@implementation QTInternal
+@implementation QTImplements
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5646,7 +5931,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInternal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplements alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5659,23 +5944,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInternal.properties[key];
+    id resolved = QTImplements.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInternal.properties[key];
+    id resolved = QTImplements.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInternal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImplements.properties.allValues];
 }
 @end
 
-@implementation QTIs
+@implementation QTImplicit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5685,7 +5970,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIs alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImplicit alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5698,23 +5983,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIs.properties[key];
+    id resolved = QTImplicit.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIs.properties[key];
+    id resolved = QTImplicit.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIs.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImplicit.properties.allValues];
 }
 @end
 
-@implementation QTIterable
+@implementation QTImport
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5724,7 +6009,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIterable alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTImport alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5737,23 +6022,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIterable.properties[key];
+    id resolved = QTImport.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIterable.properties[key];
+    id resolved = QTImport.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIterable.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTImport.properties.allValues];
 }
 @end
 
-@implementation QTJdec
+@implementation QTIn
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5763,7 +6048,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJdec alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIn alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5776,23 +6061,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJdec.properties[key];
+    id resolved = QTIn.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJdec.properties[key];
+    id resolved = QTIn.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJdec.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTIn.properties.allValues];
 }
 @end
 
-@implementation QTJenc
+@implementation QTIndirect
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5802,7 +6087,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJenc alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIndirect alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5815,23 +6100,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJenc.properties[key];
+    id resolved = QTIndirect.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJenc.properties[key];
+    id resolved = QTIndirect.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJenc.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTIndirect.properties.allValues];
 }
 @end
 
-@implementation QTJpipe
+@implementation QTInfix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5841,7 +6126,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJpipe alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInfix alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5854,23 +6139,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJpipe.properties[key];
+    id resolved = QTInfix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJpipe.properties[key];
+    id resolved = QTInfix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJpipe.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTInfix.properties.allValues];
 }
 @end
 
-@implementation QTJSON
+@implementation QTInout
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5880,7 +6165,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSON alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInout alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5893,23 +6178,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJSON.properties[key];
+    id resolved = QTInout.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJSON.properties[key];
+    id resolved = QTInout.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJSON.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTInout.properties.allValues];
 }
 @end
 
-@implementation QTJSONConverter
+@implementation QTInstanceof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5919,7 +6204,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONConverter alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInstanceof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5932,23 +6217,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJSONConverter.properties[key];
+    id resolved = QTInstanceof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJSONConverter.properties[key];
+    id resolved = QTInstanceof.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJSONConverter.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTInstanceof.properties.allValues];
 }
 @end
 
-@implementation QTJSONSerializer
+@implementation QTInterface
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5958,7 +6243,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONSerializer alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInterface alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -5971,23 +6256,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJSONSerializer.properties[key];
+    id resolved = QTInterface.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJSONSerializer.properties[key];
+    id resolved = QTInterface.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJSONSerializer.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTInterface.properties.allValues];
 }
 @end
 
-@implementation QTJSONToken
+@implementation QTInternal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -5997,7 +6282,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONToken alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInternal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6010,23 +6295,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJSONToken.properties[key];
+    id resolved = QTInternal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJSONToken.properties[key];
+    id resolved = QTInternal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJSONToken.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTInternal.properties.allValues];
 }
 @end
 
-@implementation QTJSONWriter
+@implementation QTIs
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6036,7 +6321,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONWriter alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIs alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6049,23 +6334,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTJSONWriter.properties[key];
+    id resolved = QTIs.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTJSONWriter.properties[key];
+    id resolved = QTIs.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTJSONWriter.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTIs.properties.allValues];
 }
 @end
 
-@implementation QTLambda
+@implementation QTISODateTimeOffsetConverter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6075,7 +6360,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLambda alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTISODateTimeOffsetConverter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6088,23 +6373,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLambda.properties[key];
+    id resolved = QTISODateTimeOffsetConverter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLambda.properties[key];
+    id resolved = QTISODateTimeOffsetConverter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLambda.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTISODateTimeOffsetConverter.properties.allValues];
 }
 @end
 
-@implementation QTLazy
+@implementation QTIterable
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6114,7 +6399,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLazy alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIterable alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6127,23 +6412,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLazy.properties[key];
+    id resolved = QTIterable.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLazy.properties[key];
+    id resolved = QTIterable.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLazy.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTIterable.properties.allValues];
 }
 @end
 
-@implementation QTLeft
+@implementation QTJdec
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6153,7 +6438,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLeft alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJdec alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6166,23 +6451,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLeft.properties[key];
+    id resolved = QTJdec.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLeft.properties[key];
+    id resolved = QTJdec.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLeft.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJdec.properties.allValues];
 }
 @end
 
-@implementation QTLet
+@implementation QTJenc
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6192,7 +6477,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLet alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJenc alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6205,23 +6490,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLet.properties[key];
+    id resolved = QTJenc.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLet.properties[key];
+    id resolved = QTJenc.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLet.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJenc.properties.allValues];
 }
 @end
 
-@implementation QTList
+@implementation QTJpipe
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6231,7 +6516,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTList alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJpipe alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6244,23 +6529,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTList.properties[key];
+    id resolved = QTJpipe.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTList.properties[key];
+    id resolved = QTJpipe.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTList.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJpipe.properties.allValues];
 }
 @end
 
-@implementation QTLock
+@implementation QTJSON
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6270,7 +6555,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLock alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSON alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6283,23 +6568,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLock.properties[key];
+    id resolved = QTJSON.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLock.properties[key];
+    id resolved = QTJSON.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLock.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSON.properties.allValues];
 }
 @end
 
-@implementation QTMap
+@implementation QTJSONAny
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6309,7 +6594,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTMap alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONAny alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6322,23 +6607,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTMap.properties[key];
+    id resolved = QTJSONAny.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTMap.properties[key];
+    id resolved = QTJSONAny.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTMap.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONAny.properties.allValues];
 }
 @end
 
-@implementation QTMetadataPropertyHandling
+@implementation QTJSONCodingKey
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6348,7 +6633,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTMetadataPropertyHandling alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONCodingKey alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6361,23 +6646,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTMetadataPropertyHandling.properties[key];
+    id resolved = QTJSONCodingKey.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTMetadataPropertyHandling.properties[key];
+    id resolved = QTJSONCodingKey.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTMetadataPropertyHandling.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONCodingKey.properties.allValues];
 }
 @end
 
-@implementation QTModule
+@implementation QTJSONConverter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6387,7 +6672,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTModule alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONConverter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6400,23 +6685,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTModule.properties[key];
+    id resolved = QTJSONConverter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTModule.properties[key];
+    id resolved = QTJSONConverter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTModule.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONConverter.properties.allValues];
 }
 @end
 
-@implementation QTMutable
+@implementation QTJSONDecoder
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6426,7 +6711,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTMutable alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONDecoder alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6439,23 +6724,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTMutable.properties[key];
+    id resolved = QTJSONDecoder.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTMutable.properties[key];
+    id resolved = QTJSONDecoder.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTMutable.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONDecoder.properties.allValues];
 }
 @end
 
-@implementation QTMutating
+@implementation QTJSONEncoder
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6465,7 +6750,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTMutating alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONEncoder alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6478,23 +6763,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTMutating.properties[key];
+    id resolved = QTJSONEncoder.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTMutating.properties[key];
+    id resolved = QTJSONEncoder.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTMutating.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONEncoder.properties.allValues];
 }
 @end
 
-@implementation QTNamespace
+@implementation QTJSONException
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6504,7 +6789,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNamespace alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONException alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6517,23 +6802,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNamespace.properties[key];
+    id resolved = QTJSONException.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNamespace.properties[key];
+    id resolved = QTJSONException.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNamespace.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONException.properties.allValues];
 }
 @end
 
-@implementation QTNative
+@implementation QTJSONGenerator
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6543,7 +6828,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNative alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONGenerator alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6556,23 +6841,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNative.properties[key];
+    id resolved = QTJSONGenerator.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNative.properties[key];
+    id resolved = QTJSONGenerator.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNative.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONGenerator.properties.allValues];
 }
 @end
 
-@implementation QTNewtonsoft
+@implementation QTJSONNode
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6582,7 +6867,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNewtonsoft alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONNode alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6595,23 +6880,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNewtonsoft.properties[key];
+    id resolved = QTJSONNode.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNewtonsoft.properties[key];
+    id resolved = QTJSONNode.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNewtonsoft.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONNode.properties.allValues];
 }
 @end
 
-@implementation QTNo
+@implementation QTJSONNull
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6621,7 +6906,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNo alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONNull alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6634,23 +6919,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNo.properties[key];
+    id resolved = QTJSONNull.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNo.properties[key];
+    id resolved = QTJSONNull.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNo.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONNull.properties.allValues];
 }
 @end
 
-@implementation QTNoexcept
+@implementation QTJSONParser
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6660,7 +6945,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNoexcept alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONParser alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6673,23 +6958,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNoexcept.properties[key];
+    id resolved = QTJSONParser.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNoexcept.properties[key];
+    id resolved = QTJSONParser.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNoexcept.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONParser.properties.allValues];
 }
 @end
 
-@implementation QTNone
+@implementation QTJSONReader
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6699,7 +6984,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNone alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONReader alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6712,23 +6997,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNone.properties[key];
+    id resolved = QTJSONReader.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNone.properties[key];
+    id resolved = QTJSONReader.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNone.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONReader.properties.allValues];
 }
 @end
 
-@implementation QTNonlocal
+@implementation QTJSONSerializer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6738,7 +7023,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonlocal alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONSerializer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6751,23 +7036,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNonlocal.properties[key];
+    id resolved = QTJSONSerializer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNonlocal.properties[key];
+    id resolved = QTJSONSerializer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNonlocal.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONSerializer.properties.allValues];
 }
 @end
 
-@implementation QTNonmutating
+@implementation QTJSONToken
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6777,7 +7062,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonmutating alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONToken alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6790,23 +7075,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNonmutating.properties[key];
+    id resolved = QTJSONToken.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNonmutating.properties[key];
+    id resolved = QTJSONToken.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNonmutating.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONToken.properties.allValues];
 }
 @end
 
-@implementation QTNot
+@implementation QTJSONTokenType
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6816,7 +7101,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNot alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONTokenType alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6829,23 +7114,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNot.properties[key];
+    id resolved = QTJSONTokenType.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNot.properties[key];
+    id resolved = QTJSONTokenType.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNot.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONTokenType.properties.allValues];
 }
 @end
 
-@implementation QTNotEq
+@implementation QTJSONWriter
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6855,7 +7140,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNotEq alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTJSONWriter alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6868,23 +7153,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNotEq.properties[key];
+    id resolved = QTJSONWriter.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNotEq.properties[key];
+    id resolved = QTJSONWriter.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNotEq.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTJSONWriter.properties.allValues];
 }
 @end
 
-@implementation QTNSString
+@implementation QTLambda
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6894,7 +7179,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNSString alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLambda alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6907,23 +7192,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNSString.properties[key];
+    id resolved = QTLambda.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNSString.properties[key];
+    id resolved = QTLambda.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNSString.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTLambda.properties.allValues];
 }
 @end
 
-@implementation QTNull
+@implementation QTLazy
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6933,7 +7218,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNull alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLazy alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6946,23 +7231,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNull.properties[key];
+    id resolved = QTLazy.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNull.properties[key];
+    id resolved = QTLazy.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNull.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTLazy.properties.allValues];
 }
 @end
 
-@implementation QTNullptr
+@implementation QTLeft
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -6972,7 +7257,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullptr alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLeft alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -6985,23 +7270,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNullptr.properties[key];
+    id resolved = QTLeft.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNullptr.properties[key];
+    id resolved = QTLeft.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNullptr.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTLeft.properties.allValues];
 }
 @end
 
-@implementation QTNumber
+@implementation QTLet
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7011,7 +7296,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNumber alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLet alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7024,23 +7309,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNumber.properties[key];
+    id resolved = QTLet.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNumber.properties[key];
+    id resolved = QTLet.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNumber.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTLet.properties.allValues];
 }
 @end
 
-@implementation QTObject
+@implementation QTList
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7050,7 +7335,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTObject alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTList alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7063,23 +7348,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTObject.properties[key];
+    id resolved = QTList.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTObject.properties[key];
+    id resolved = QTList.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTObject.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTList.properties.allValues];
 }
 @end
 
-@implementation QTOf
+@implementation QTLock
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7089,7 +7374,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLock alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7102,23 +7387,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOf.properties[key];
+    id resolved = QTLock.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOf.properties[key];
+    id resolved = QTLock.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTLock.properties.allValues];
 }
 @end
 
-@implementation QTOneway
+@implementation QTMap
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7128,7 +7413,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOneway alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTMap alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7141,23 +7426,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOneway.properties[key];
+    id resolved = QTMap.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOneway.properties[key];
+    id resolved = QTMap.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOneway.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTMap.properties.allValues];
 }
 @end
 
-@implementation QTOpen
+@implementation QTMetadataPropertyHandling
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7167,7 +7452,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOpen alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTMetadataPropertyHandling alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7180,23 +7465,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOpen.properties[key];
+    id resolved = QTMetadataPropertyHandling.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOpen.properties[key];
+    id resolved = QTMetadataPropertyHandling.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOpen.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTMetadataPropertyHandling.properties.allValues];
 }
 @end
 
-@implementation QTOperator
+@implementation QTModule
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7206,7 +7491,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOperator alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTModule alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7219,23 +7504,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOperator.properties[key];
+    id resolved = QTModule.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOperator.properties[key];
+    id resolved = QTModule.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOperator.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTModule.properties.allValues];
 }
 @end
 
-@implementation QTOptional
+@implementation QTMutable
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7245,7 +7530,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOptional alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTMutable alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7258,23 +7543,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOptional.properties[key];
+    id resolved = QTMutable.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOptional.properties[key];
+    id resolved = QTMutable.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOptional.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTMutable.properties.allValues];
 }
 @end
 
-@implementation QTOr
+@implementation QTMutating
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7284,7 +7569,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOr alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTMutating alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7297,23 +7582,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOr.properties[key];
+    id resolved = QTMutating.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOr.properties[key];
+    id resolved = QTMutating.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOr.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTMutating.properties.allValues];
 }
 @end
 
-@implementation QTOrEq
+@implementation QTNamespace
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7323,7 +7608,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOrEq alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNamespace alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7336,23 +7621,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOrEq.properties[key];
+    id resolved = QTNamespace.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOrEq.properties[key];
+    id resolved = QTNamespace.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOrEq.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNamespace.properties.allValues];
 }
 @end
 
-@implementation QTOut
+@implementation QTNative
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7362,7 +7647,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOut alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNative alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7375,23 +7660,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOut.properties[key];
+    id resolved = QTNative.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOut.properties[key];
+    id resolved = QTNative.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOut.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNative.properties.allValues];
 }
 @end
 
-@implementation QTOverride
+@implementation QTNewtonsoft
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7401,7 +7686,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTOverride alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNewtonsoft alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7414,23 +7699,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTOverride.properties[key];
+    id resolved = QTNewtonsoft.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTOverride.properties[key];
+    id resolved = QTNewtonsoft.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTOverride.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNewtonsoft.properties.allValues];
 }
 @end
 
-@implementation QTPackage
+@implementation QTNo
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7440,7 +7725,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPackage alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNo alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7453,23 +7738,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPackage.properties[key];
+    id resolved = QTNo.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPackage.properties[key];
+    id resolved = QTNo.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPackage.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNo.properties.allValues];
 }
 @end
 
-@implementation QTParams
+@implementation QTNoSuchMethod
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7479,7 +7764,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTParams alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNoSuchMethod alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7492,23 +7777,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTParams.properties[key];
+    id resolved = QTNoSuchMethod.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTParams.properties[key];
+    id resolved = QTNoSuchMethod.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTParams.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNoSuchMethod.properties.allValues];
 }
 @end
 
-@implementation QTPass
+@implementation QTNoexcept
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7518,7 +7803,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNoexcept alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7531,23 +7816,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPass.properties[key];
+    id resolved = QTNoexcept.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPass.properties[key];
+    id resolved = QTNoexcept.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNoexcept.properties.allValues];
 }
 @end
 
-@implementation QTPort
+@implementation QTNone
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7557,7 +7842,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPort alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNone alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7570,23 +7855,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPort.properties[key];
+    id resolved = QTNone.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPort.properties[key];
+    id resolved = QTNone.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPort.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNone.properties.allValues];
 }
 @end
 
-@implementation QTPostfix
+@implementation QTNonlocal
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7596,7 +7881,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPostfix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonlocal alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7609,23 +7894,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPostfix.properties[key];
+    id resolved = QTNonlocal.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPostfix.properties[key];
+    id resolved = QTNonlocal.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPostfix.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNonlocal.properties.allValues];
 }
 @end
 
-@implementation QTPrecedence
+@implementation QTNonmutating
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7635,7 +7920,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrecedence alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonmutating alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7648,23 +7933,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrecedence.properties[key];
+    id resolved = QTNonmutating.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrecedence.properties[key];
+    id resolved = QTNonmutating.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrecedence.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNonmutating.properties.allValues];
 }
 @end
 
-@implementation QTPrefix
+@implementation QTNot
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7674,7 +7959,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrefix alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNot alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7687,23 +7972,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrefix.properties[key];
+    id resolved = QTNot.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrefix.properties[key];
+    id resolved = QTNot.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrefix.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNot.properties.allValues];
 }
 @end
 
-@implementation QTPrint
+@implementation QTNotEq
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7713,7 +7998,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrint alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNotEq alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7726,23 +8011,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrint.properties[key];
+    id resolved = QTNotEq.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrint.properties[key];
+    id resolved = QTNotEq.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrint.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNotEq.properties.allValues];
 }
 @end
 
-@implementation QTPrintf
+@implementation QTNSError
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7752,7 +8037,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNSError alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7765,23 +8050,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrintf.properties[key];
+    id resolved = QTNSError.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrintf.properties[key];
+    id resolved = QTNSError.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrintf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNSError.properties.allValues];
 }
 @end
 
-@implementation QTPrivate
+@implementation QTNSString
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7791,7 +8076,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrivate alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNSString alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7804,23 +8089,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPrivate.properties[key];
+    id resolved = QTNSString.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPrivate.properties[key];
+    id resolved = QTNSString.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPrivate.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNSString.properties.allValues];
 }
 @end
 
-@implementation QTProtected
+@implementation QTNull
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7830,7 +8115,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtected alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNull alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7843,23 +8128,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtected.properties[key];
+    id resolved = QTNull.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtected.properties[key];
+    id resolved = QTNull.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTProtected.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNull.properties.allValues];
 }
 @end
 
-@implementation QTProtocol
+@implementation QTNullptr
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7869,7 +8154,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocol alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullptr alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7882,23 +8167,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtocol.properties[key];
+    id resolved = QTNullptr.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtocol.properties[key];
+    id resolved = QTNullptr.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTProtocol.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNullptr.properties.allValues];
 }
 @end
 
-@implementation QTPublic
+@implementation QTNumber
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7908,7 +8193,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTPublic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNumber alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7921,23 +8206,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTPublic.properties[key];
+    id resolved = QTNumber.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTPublic.properties[key];
+    id resolved = QTNumber.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTPublic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTNumber.properties.allValues];
 }
 @end
 
-@implementation QTASM
+@implementation QTObject
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7947,7 +8232,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTASM alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObject alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7960,23 +8245,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTASM.properties[key];
+    id resolved = QTObject.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTASM.properties[key];
+    id resolved = QTObject.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTASM.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTObject.properties.allValues];
 }
 @end
 
-@implementation QTAnyClass
+@implementation QTObjectMapper
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -7986,7 +8271,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAnyClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTObjectMapper alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -7999,23 +8284,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAnyClass.properties[key];
+    id resolved = QTObjectMapper.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAnyClass.properties[key];
+    id resolved = QTObjectMapper.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTAnyClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTObjectMapper.properties.allValues];
 }
 @end
 
-@implementation QTAtomic
+@implementation QTOf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8025,7 +8310,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAtomic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8038,23 +8323,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAtomic.properties[key];
+    id resolved = QTOf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAtomic.properties[key];
+    id resolved = QTOf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTAtomic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOf.properties.allValues];
 }
 @end
 
-@implementation QTAuto
+@implementation QTOneway
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8064,7 +8349,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTAuto alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOneway alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8077,23 +8362,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTAuto.properties[key];
+    id resolved = QTOneway.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTAuto.properties[key];
+    id resolved = QTOneway.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTAuto.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOneway.properties.allValues];
 }
 @end
 
-@implementation QTBool
+@implementation QTOpen
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8103,7 +8388,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBool alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOpen alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8116,23 +8401,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBool.properties[key];
+    id resolved = QTOpen.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBool.properties[key];
+    id resolved = QTOpen.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTBool.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOpen.properties.allValues];
 }
 @end
 
-@implementation QTBoolClass
+@implementation QTOperator
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8142,7 +8427,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBoolClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOperator alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8155,23 +8440,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBoolClass.properties[key];
+    id resolved = QTOperator.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBoolClass.properties[key];
+    id resolved = QTOperator.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTBoolClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOperator.properties.allValues];
 }
 @end
 
-@implementation QTBreak
+@implementation QTOptional
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8181,7 +8466,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTBreak alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOptional alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8194,23 +8479,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTBreak.properties[key];
+    id resolved = QTOptional.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTBreak.properties[key];
+    id resolved = QTOptional.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTBreak.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOptional.properties.allValues];
 }
 @end
 
-@implementation QTCase
+@implementation QTOr
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8220,7 +8505,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTCase alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOr alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8233,23 +8518,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTCase.properties[key];
+    id resolved = QTOr.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTCase.properties[key];
+    id resolved = QTOr.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTCase.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOr.properties.allValues];
 }
 @end
 
-@implementation QTChar
+@implementation QTOrEq
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8259,7 +8544,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTChar alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOrEq alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8272,23 +8557,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTChar.properties[key];
+    id resolved = QTOrEq.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTChar.properties[key];
+    id resolved = QTOrEq.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTChar.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOrEq.properties.allValues];
 }
 @end
 
-@implementation QTClassClass
+@implementation QTOut
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8298,7 +8583,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTClassClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOut alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8311,23 +8596,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTClassClass.properties[key];
+    id resolved = QTOut.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTClassClass.properties[key];
+    id resolved = QTOut.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTClassClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOut.properties.allValues];
 }
 @end
 
-@implementation QTConst
+@implementation QTOverride
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8337,7 +8622,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTConst alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTOverride alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8350,23 +8635,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTConst.properties[key];
+    id resolved = QTOverride.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTConst.properties[key];
+    id resolved = QTOverride.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTConst.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTOverride.properties.allValues];
 }
 @end
 
-@implementation QTContinue
+@implementation QTPackage
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8376,7 +8661,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTContinue alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPackage alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8389,23 +8674,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTContinue.properties[key];
+    id resolved = QTPackage.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTContinue.properties[key];
+    id resolved = QTPackage.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTContinue.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPackage.properties.allValues];
 }
 @end
 
-@implementation QTDefault
+@implementation QTParams
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8415,7 +8700,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefault alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTParams alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8428,23 +8713,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDefault.properties[key];
+    id resolved = QTParams.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDefault.properties[key];
+    id resolved = QTParams.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDefault.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTParams.properties.allValues];
 }
 @end
 
-@implementation QTDo
+@implementation QTPass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8454,7 +8739,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDo alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8467,23 +8752,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDo.properties[key];
+    id resolved = QTPass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDo.properties[key];
+    id resolved = QTPass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDo.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPass.properties.allValues];
 }
 @end
 
-@implementation QTDouble
+@implementation QTPort
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8493,7 +8778,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTDouble alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPort alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8506,23 +8791,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTDouble.properties[key];
+    id resolved = QTPort.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTDouble.properties[key];
+    id resolved = QTPort.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTDouble.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPort.properties.allValues];
 }
 @end
 
-@implementation QTElse
+@implementation QTPostfix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8532,7 +8817,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTElse alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPostfix alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8545,23 +8830,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTElse.properties[key];
+    id resolved = QTPostfix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTElse.properties[key];
+    id resolved = QTPostfix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTElse.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPostfix.properties.allValues];
 }
 @end
 
-@implementation QTEnum
+@implementation QTPrecedence
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8571,7 +8856,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTEnum alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrecedence alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8584,23 +8869,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTEnum.properties[key];
+    id resolved = QTPrecedence.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTEnum.properties[key];
+    id resolved = QTPrecedence.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTEnum.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrecedence.properties.allValues];
 }
 @end
 
-@implementation QTExtern
+@implementation QTPrefix
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8610,7 +8895,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtern alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrefix alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8623,23 +8908,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTExtern.properties[key];
+    id resolved = QTPrefix.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTExtern.properties[key];
+    id resolved = QTPrefix.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTExtern.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrefix.properties.allValues];
 }
 @end
 
-@implementation QTFalse
+@implementation QTPrint
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8649,7 +8934,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalse alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrint alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8662,23 +8947,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFalse.properties[key];
+    id resolved = QTPrint.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFalse.properties[key];
+    id resolved = QTPrint.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFalse.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrint.properties.allValues];
 }
 @end
 
-@implementation QTFloat
+@implementation QTPrintMembers
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8688,7 +8973,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFloat alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintMembers alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8701,23 +8986,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFloat.properties[key];
+    id resolved = QTPrintMembers.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFloat.properties[key];
+    id resolved = QTPrintMembers.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFloat.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrintMembers.properties.allValues];
 }
 @end
 
-@implementation QTFor
+@implementation QTPrintf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8727,7 +9012,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTFor alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrintf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8740,23 +9025,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTFor.properties[key];
+    id resolved = QTPrintf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTFor.properties[key];
+    id resolved = QTPrintf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTFor.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrintf.properties.allValues];
 }
 @end
 
-@implementation QTGoto
+@implementation QTPrivate
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8766,7 +9051,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTGoto alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPrivate alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8779,23 +9064,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTGoto.properties[key];
+    id resolved = QTPrivate.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTGoto.properties[key];
+    id resolved = QTPrivate.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTGoto.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPrivate.properties.allValues];
 }
 @end
 
-@implementation QTIf
+@implementation QTProtected
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8805,7 +9090,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTIf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtected alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8818,23 +9103,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTIf.properties[key];
+    id resolved = QTProtected.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTIf.properties[key];
+    id resolved = QTProtected.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTIf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTProtected.properties.allValues];
 }
 @end
 
-@implementation QTInline
+@implementation QTProtocol
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8844,7 +9129,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInline alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocol alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8857,23 +9142,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInline.properties[key];
+    id resolved = QTProtocol.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInline.properties[key];
+    id resolved = QTProtocol.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInline.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTProtocol.properties.allValues];
 }
 @end
 
-@implementation QTInt
+@implementation QTPublic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8883,7 +9168,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTInt alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTPublic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8896,23 +9181,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTInt.properties[key];
+    id resolved = QTPublic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTInt.properties[key];
+    id resolved = QTPublic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTInt.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTPublic.properties.allValues];
 }
 @end
 
-@implementation QTLong
+@implementation QTASM
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8922,7 +9207,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTLong alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTASM alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8935,23 +9220,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTLong.properties[key];
+    id resolved = QTASM.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTLong.properties[key];
+    id resolved = QTASM.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTLong.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTASM.properties.allValues];
 }
 @end
 
-@implementation QTNil
+@implementation QTAnyClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -8961,7 +9246,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNil alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAnyClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -8974,23 +9259,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNil.properties[key];
+    id resolved = QTAnyClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNil.properties[key];
+    id resolved = QTAnyClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNil.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTAnyClass.properties.allValues];
 }
 @end
 
-@implementation QTNonatomic
+@implementation QTAtomic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9000,7 +9285,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonatomic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAtomic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9013,23 +9298,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNonatomic.properties[key];
+    id resolved = QTAtomic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNonatomic.properties[key];
+    id resolved = QTAtomic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNonatomic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTAtomic.properties.allValues];
 }
 @end
 
-@implementation QTNoneClass
+@implementation QTAuto
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9039,7 +9324,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNoneClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTAuto alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9052,23 +9337,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNoneClass.properties[key];
+    id resolved = QTAuto.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNoneClass.properties[key];
+    id resolved = QTAuto.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNoneClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTAuto.properties.allValues];
 }
 @end
 
-@implementation QTNullClass
+@implementation QTBool
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9078,7 +9363,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBool alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9091,23 +9376,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTNullClass.properties[key];
+    id resolved = QTBool.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTNullClass.properties[key];
+    id resolved = QTBool.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTNullClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTBool.properties.allValues];
 }
 @end
 
-@implementation QTProtocolClass
+@implementation QTBoolClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9117,7 +9402,1177 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocolClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBoolClass alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTBoolClass.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTBoolClass.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTBoolClass.properties.allValues];
+}
+@end
+
+@implementation QTBreak
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTBreak alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTBreak.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTBreak.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTBreak.properties.allValues];
+}
+@end
+
+@implementation QTCase
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTCase alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTCase.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTCase.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTCase.properties.allValues];
+}
+@end
+
+@implementation QTChar
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTChar alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTChar.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTChar.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTChar.properties.allValues];
+}
+@end
+
+@implementation QTClassClass
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTClassClass alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTClassClass.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTClassClass.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTClassClass.properties.allValues];
+}
+@end
+
+@implementation QTConst
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTConst alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTConst.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTConst.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTConst.properties.allValues];
+}
+@end
+
+@implementation QTContinue
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTContinue alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTContinue.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTContinue.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTContinue.properties.allValues];
+}
+@end
+
+@implementation QTDefault
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDefault alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDefault.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDefault.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDefault.properties.allValues];
+}
+@end
+
+@implementation QTDo
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDo alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDo.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDo.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDo.properties.allValues];
+}
+@end
+
+@implementation QTDouble
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTDouble alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTDouble.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTDouble.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTDouble.properties.allValues];
+}
+@end
+
+@implementation QTElse
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTElse alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTElse.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTElse.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTElse.properties.allValues];
+}
+@end
+
+@implementation QTEnum
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTEnum alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTEnum.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTEnum.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTEnum.properties.allValues];
+}
+@end
+
+@implementation QTExtern
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTExtern alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTExtern.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTExtern.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTExtern.properties.allValues];
+}
+@end
+
+@implementation QTFalse
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFalse alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTFalse.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTFalse.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTFalse.properties.allValues];
+}
+@end
+
+@implementation QTFloat
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFloat alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTFloat.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTFloat.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTFloat.properties.allValues];
+}
+@end
+
+@implementation QTFor
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTFor alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTFor.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTFor.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTFor.properties.allValues];
+}
+@end
+
+@implementation QTGoto
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTGoto alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTGoto.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTGoto.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTGoto.properties.allValues];
+}
+@end
+
+@implementation QTIf
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTIf alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTIf.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTIf.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTIf.properties.allValues];
+}
+@end
+
+@implementation QTInline
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInline alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTInline.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTInline.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTInline.properties.allValues];
+}
+@end
+
+@implementation QTInt
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTInt alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTInt.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTInt.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTInt.properties.allValues];
+}
+@end
+
+@implementation QTLong
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTLong alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTLong.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTLong.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTLong.properties.allValues];
+}
+@end
+
+@implementation QTNil
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNil alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTNil.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTNil.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTNil.properties.allValues];
+}
+@end
+
+@implementation QTNonatomic
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNonatomic alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTNonatomic.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTNonatomic.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTNonatomic.properties.allValues];
+}
+@end
+
+@implementation QTNoneClass
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNoneClass alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTNoneClass.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTNoneClass.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTNoneClass.properties.allValues];
+}
+@end
+
+@implementation QTNullClass
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTNullClass alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTNullClass.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTNullClass.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTNullClass.properties.allValues];
+}
+@end
+
+@implementation QTProtocolClass
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTProtocolClass alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTProtocolClass.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTProtocolClass.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTProtocolClass.properties.allValues];
+}
+@end
+
+@implementation QTRegister
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegister alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTRegister.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTRegister.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTRegister.properties.allValues];
+}
+@end
+
+@implementation QTRestrict
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRestrict alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTRestrict.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTRestrict.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTRestrict.properties.allValues];
+}
+@end
+
+@implementation QTRetain
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRetain alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTRetain.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTRetain.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTRetain.properties.allValues];
+}
+@end
+
+@implementation QTReturn
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReturn alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTReturn.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTReturn.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTReturn.properties.allValues];
+}
+@end
+
+@implementation QTSelfClass
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelfClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9130,23 +10585,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTProtocolClass.properties[key];
+    id resolved = QTSelfClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTProtocolClass.properties[key];
+    id resolved = QTSelfClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTProtocolClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSelfClass.properties.allValues];
 }
 @end
 
-@implementation QTRegister
+@implementation QTShort
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9156,7 +10611,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegister alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTShort alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9169,23 +10624,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRegister.properties[key];
+    id resolved = QTShort.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRegister.properties[key];
+    id resolved = QTShort.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRegister.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTShort.properties.allValues];
 }
 @end
 
-@implementation QTRestrict
+@implementation QTSigned
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9195,7 +10650,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRestrict alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSigned alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9208,23 +10663,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRestrict.properties[key];
+    id resolved = QTSigned.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRestrict.properties[key];
+    id resolved = QTSigned.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRestrict.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSigned.properties.allValues];
 }
 @end
 
-@implementation QTRetain
+@implementation QTSizeof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9234,7 +10689,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRetain alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSizeof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9247,23 +10702,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRetain.properties[key];
+    id resolved = QTSizeof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRetain.properties[key];
+    id resolved = QTSizeof.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRetain.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSizeof.properties.allValues];
 }
 @end
 
-@implementation QTReturn
+@implementation QTStatic
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9273,7 +10728,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReturn alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStatic alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9286,23 +10741,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReturn.properties[key];
+    id resolved = QTStatic.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReturn.properties[key];
+    id resolved = QTStatic.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTReturn.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStatic.properties.allValues];
 }
 @end
 
-@implementation QTSelfClass
+@implementation QTStruct
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9312,7 +10767,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelfClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStruct alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9325,23 +10780,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelfClass.properties[key];
+    id resolved = QTStruct.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelfClass.properties[key];
+    id resolved = QTStruct.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSelfClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStruct.properties.allValues];
 }
 @end
 
-@implementation QTShort
+@implementation QTSwitch
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9351,7 +10806,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTShort alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSwitch alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9364,23 +10819,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTShort.properties[key];
+    id resolved = QTSwitch.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTShort.properties[key];
+    id resolved = QTSwitch.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTShort.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSwitch.properties.allValues];
 }
 @end
 
-@implementation QTSigned
+@implementation QTTrue
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9390,7 +10845,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSigned alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrue alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9403,23 +10858,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSigned.properties[key];
+    id resolved = QTTrue.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSigned.properties[key];
+    id resolved = QTTrue.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSigned.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTrue.properties.allValues];
 }
 @end
 
-@implementation QTSizeof
+@implementation QTTypeClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9429,7 +10884,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSizeof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeClass alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9442,23 +10897,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSizeof.properties[key];
+    id resolved = QTTypeClass.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSizeof.properties[key];
+    id resolved = QTTypeClass.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSizeof.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTypeClass.properties.allValues];
 }
 @end
 
-@implementation QTStatic
+@implementation QTTypedef
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9468,7 +10923,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStatic alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypedef alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9481,23 +10936,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStatic.properties[key];
+    id resolved = QTTypedef.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStatic.properties[key];
+    id resolved = QTTypedef.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStatic.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTypedef.properties.allValues];
 }
 @end
 
-@implementation QTStruct
+@implementation QTTypeof
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9507,7 +10962,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStruct alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeof alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9520,23 +10975,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStruct.properties[key];
+    id resolved = QTTypeof.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStruct.properties[key];
+    id resolved = QTTypeof.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStruct.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTTypeof.properties.allValues];
 }
 @end
 
-@implementation QTSwitch
+@implementation QTUnion
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9546,7 +11001,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSwitch alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnion alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9559,23 +11014,140 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSwitch.properties[key];
+    id resolved = QTUnion.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUnion.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUnion.properties.allValues];
+}
+@end
+
+@implementation QTUnsigned
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnsigned alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUnsigned.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUnsigned.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUnsigned.properties.allValues];
+}
+@end
+
+@implementation QTVoid
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTVoid alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTVoid.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTVoid.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTVoid.properties.allValues];
+}
+@end
+
+@implementation QTVolatile
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTVolatile alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTVolatile.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSwitch.properties[key];
+    id resolved = QTVolatile.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSwitch.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTVolatile.properties.allValues];
 }
 @end
 
-@implementation QTTrue
+@implementation QTWhile
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9585,7 +11157,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTrue alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTWhile alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9598,23 +11170,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTrue.properties[key];
+    id resolved = QTWhile.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTrue.properties[key];
+    id resolved = QTWhile.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTrue.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTWhile.properties.allValues];
 }
 @end
 
-@implementation QTTypeClass
+@implementation QTQuicktype
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9624,7 +11196,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeClass alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTQuicktype alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9637,23 +11209,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypeClass.properties[key];
+    id resolved = QTQuicktype.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypeClass.properties[key];
+    id resolved = QTQuicktype.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypeClass.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTQuicktype.properties.allValues];
 }
 @end
 
-@implementation QTTypedef
+@implementation QTRaise
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9663,7 +11235,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypedef alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRaise alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9676,23 +11248,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypedef.properties[key];
+    id resolved = QTRaise.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypedef.properties[key];
+    id resolved = QTRaise.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypedef.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRaise.properties.allValues];
 }
 @end
 
-@implementation QTTypeof
+@implementation QTRange
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9702,7 +11274,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTTypeof alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRange alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9715,23 +11287,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTTypeof.properties[key];
+    id resolved = QTRange.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTTypeof.properties[key];
+    id resolved = QTRange.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTTypeof.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRange.properties.allValues];
 }
 @end
 
-@implementation QTUnion
+@implementation QTReadonly
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9741,7 +11313,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnion alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReadonly alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9754,23 +11326,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUnion.properties[key];
+    id resolved = QTReadonly.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUnion.properties[key];
+    id resolved = QTReadonly.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUnion.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTReadonly.properties.allValues];
 }
 @end
 
-@implementation QTUnsigned
+@implementation QTRef
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9780,7 +11352,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTUnsigned alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRef alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9793,23 +11365,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTUnsigned.properties[key];
+    id resolved = QTRef.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTUnsigned.properties[key];
+    id resolved = QTRef.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTUnsigned.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRef.properties.allValues];
 }
 @end
 
-@implementation QTVoid
+@implementation QTRegExp
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9819,7 +11391,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTVoid alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRegExp alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9832,23 +11404,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTVoid.properties[key];
+    id resolved = QTRegExp.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTVoid.properties[key];
+    id resolved = QTRegExp.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTVoid.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRegExp.properties.allValues];
 }
 @end
 
-@implementation QTVolatile
+@implementation QTReinterpretCast
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9858,7 +11430,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTVolatile alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTReinterpretCast alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9871,23 +11443,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTVolatile.properties[key];
+    id resolved = QTReinterpretCast.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTVolatile.properties[key];
+    id resolved = QTReinterpretCast.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTVolatile.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTReinterpretCast.properties.allValues];
 }
 @end
 
-@implementation QTWhile
+@implementation QTRepeat
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9897,7 +11469,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTWhile alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRepeat alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9910,23 +11482,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTWhile.properties[key];
+    id resolved = QTRepeat.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTWhile.properties[key];
+    id resolved = QTRepeat.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTWhile.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRepeat.properties.allValues];
 }
 @end
 
-@implementation QTQuicktype
+@implementation QTRequire
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9936,7 +11508,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTQuicktype alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequire alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9949,23 +11521,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTQuicktype.properties[key];
+    id resolved = QTRequire.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTQuicktype.properties[key];
+    id resolved = QTRequire.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTQuicktype.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequire.properties.allValues];
 }
 @end
 
-@implementation QTRaise
+@implementation QTRequired
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -9975,7 +11547,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRaise alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequired alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -9988,23 +11560,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRaise.properties[key];
+    id resolved = QTRequired.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRaise.properties[key];
+    id resolved = QTRequired.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRaise.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequired.properties.allValues];
 }
 @end
 
-@implementation QTRange
+@implementation QTRequires
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10014,7 +11586,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRange alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequires alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10027,23 +11599,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRange.properties[key];
+    id resolved = QTRequires.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRange.properties[key];
+    id resolved = QTRequires.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRange.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRequires.properties.allValues];
 }
 @end
 
-@implementation QTReadonly
+@implementation QTRethrows
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10053,7 +11625,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReadonly alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRethrows alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10066,23 +11638,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReadonly.properties[key];
+    id resolved = QTRethrows.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReadonly.properties[key];
+    id resolved = QTRethrows.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTReadonly.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRethrows.properties.allValues];
 }
 @end
 
-@implementation QTRef
+@implementation QTRight
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10092,7 +11664,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRef alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRight alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10105,23 +11677,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRef.properties[key];
+    id resolved = QTRight.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRef.properties[key];
+    id resolved = QTRight.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRef.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRight.properties.allValues];
 }
 @end
 
-@implementation QTReinterpretCast
+@implementation QTRuntimeType
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10131,7 +11703,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTReinterpretCast alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTRuntimeType alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10144,23 +11716,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTReinterpretCast.properties[key];
+    id resolved = QTRuntimeType.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTReinterpretCast.properties[key];
+    id resolved = QTRuntimeType.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTReinterpretCast.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTRuntimeType.properties.allValues];
 }
 @end
 
-@implementation QTRepeat
+@implementation QTS
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10170,7 +11742,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRepeat alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTS alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10183,23 +11755,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRepeat.properties[key];
+    id resolved = QTS.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRepeat.properties[key];
+    id resolved = QTS.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRepeat.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTS.properties.allValues];
 }
 @end
 
-@implementation QTRequire
+@implementation QTSbyte
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10209,7 +11781,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequire alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSbyte alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10222,23 +11794,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequire.properties[key];
+    id resolved = QTSbyte.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequire.properties[key];
+    id resolved = QTSbyte.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequire.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSbyte.properties.allValues];
 }
 @end
 
-@implementation QTRequired
+@implementation QTSealed
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10248,7 +11820,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequired alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSealed alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10261,23 +11833,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequired.properties[key];
+    id resolved = QTSealed.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequired.properties[key];
+    id resolved = QTSealed.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequired.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSealed.properties.allValues];
 }
 @end
 
-@implementation QTRequires
+@implementation QTSel
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10287,7 +11859,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRequires alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSel alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10300,23 +11872,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRequires.properties[key];
+    id resolved = QTSel.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRequires.properties[key];
+    id resolved = QTSel.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRequires.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSel.properties.allValues];
 }
 @end
 
-@implementation QTRethrows
+@implementation QTSelect
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10326,7 +11898,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRethrows alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelect alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10339,23 +11911,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRethrows.properties[key];
+    id resolved = QTSelect.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRethrows.properties[key];
+    id resolved = QTSelect.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRethrows.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSelect.properties.allValues];
 }
 @end
 
-@implementation QTRight
+@implementation QTSelf
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10365,7 +11937,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTRight alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelf alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10378,23 +11950,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTRight.properties[key];
+    id resolved = QTSelf.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTRight.properties[key];
+    id resolved = QTSelf.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTRight.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSelf.properties.allValues];
 }
 @end
 
-@implementation QTSbyte
+@implementation QTSerialize
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10404,7 +11976,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSbyte alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerialize alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10417,23 +11989,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSbyte.properties[key];
+    id resolved = QTSerialize.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSbyte.properties[key];
+    id resolved = QTSerialize.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSbyte.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSerialize.properties.allValues];
 }
 @end
 
-@implementation QTSealed
+@implementation QTSerializerProvider
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10443,7 +12015,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSealed alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerializerProvider alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10456,23 +12028,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSealed.properties[key];
+    id resolved = QTSerializerProvider.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSealed.properties[key];
+    id resolved = QTSerializerProvider.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSealed.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSerializerProvider.properties.allValues];
 }
 @end
 
-@implementation QTSel
+@implementation QTSet
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10482,7 +12054,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSel alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSet alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10495,23 +12067,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSel.properties[key];
+    id resolved = QTSet.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSel.properties[key];
+    id resolved = QTSet.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSel.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSet.properties.allValues];
 }
 @end
 
-@implementation QTSelect
+@implementation QTSimpleModule
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10521,7 +12093,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelect alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTSimpleModule alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10534,23 +12106,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelect.properties[key];
+    id resolved = QTSimpleModule.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelect.properties[key];
+    id resolved = QTSimpleModule.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSelect.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTSimpleModule.properties.allValues];
 }
 @end
 
-@implementation QTSelf
+@implementation QTStackalloc
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10560,7 +12132,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSelf alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStackalloc alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10573,23 +12145,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSelf.properties[key];
+    id resolved = QTStackalloc.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSelf.properties[key];
+    id resolved = QTStackalloc.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSelf.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStackalloc.properties.allValues];
 }
 @end
 
-@implementation QTSerialize
+@implementation QTStandards
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10599,7 +12171,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSerialize alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStandards alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10612,23 +12184,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSerialize.properties[key];
+    id resolved = QTStandards.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSerialize.properties[key];
+    id resolved = QTStandards.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSerialize.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStandards.properties.allValues];
 }
 @end
 
-@implementation QTSet
+@implementation QTStaticAssert
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10638,7 +12210,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTSet alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticAssert alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10651,23 +12223,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTSet.properties[key];
+    id resolved = QTStaticAssert.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTSet.properties[key];
+    id resolved = QTStaticAssert.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTSet.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStaticAssert.properties.allValues];
 }
 @end
 
-@implementation QTStackalloc
+@implementation QTStaticCast
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10677,7 +12249,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStackalloc alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticCast alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10690,23 +12262,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStackalloc.properties[key];
+    id resolved = QTStaticCast.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStackalloc.properties[key];
+    id resolved = QTStaticCast.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStackalloc.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStaticCast.properties.allValues];
 }
 @end
 
-@implementation QTStaticAssert
+@implementation QTStdDeserializer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10716,7 +12288,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticAssert alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdDeserializer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10729,23 +12301,23 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStaticAssert.properties[key];
+    id resolved = QTStdDeserializer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStaticAssert.properties[key];
+    id resolved = QTStdDeserializer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStaticAssert.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStdDeserializer.properties.allValues];
 }
 @end
 
-@implementation QTStaticCast
+@implementation QTStdSerializer
 + (NSDictionary<NSString *, NSString *> *)properties
 {
     static NSDictionary<NSString *, NSString *> *properties;
@@ -10755,7 +12327,7 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 + (instancetype)fromJSONDictionary:(NSDictionary *)dict
 {
-    return [dict isKindOfClass:NSDictionary.class] ? [[QTStaticCast alloc] initWithJSONDictionary:dict] : nil;
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTStdSerializer alloc] initWithJSONDictionary:dict] : nil;
 }
 
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
@@ -10768,19 +12340,19 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 
 - (void)setValue:(nullable id)value forKey:(NSString *)key
 {
-    id resolved = QTStaticCast.properties[key];
+    id resolved = QTStdSerializer.properties[key];
     if (resolved) [super setValue:value forKey:resolved];
 }
 
 - (void)setNilValueForKey:(NSString *)key
 {
-    id resolved = QTStaticCast.properties[key];
+    id resolved = QTStdSerializer.properties[key];
     if (resolved) [super setValue:@(0) forKey:resolved];
 }
 
 - (NSDictionary *)JSONDictionary
 {
-    return [self dictionaryWithValuesForKeys:QTStaticCast.properties.allValues];
+    return [self dictionaryWithValuesForKeys:QTStdSerializer.properties.allValues];
 }
 @end
 
@@ -11174,6 +12746,45 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
+@implementation QTHashCode
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTHashCode alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTHashCode.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTHashCode.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTHashCode.properties.allValues];
+}
+@end
+
 @implementation QTInit
 + (NSDictionary<NSString *, NSString *> *)properties
 {
@@ -11486,6 +13097,84 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
+@implementation QTTimeOnly
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnly alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTTimeOnly.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTTimeOnly.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTTimeOnly.properties.allValues];
+}
+@end
+
+@implementation QTTimeOnlyConverter
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTTimeOnlyConverter alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTTimeOnlyConverter.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTTimeOnlyConverter.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTTimeOnlyConverter.properties.allValues];
+}
+@end
+
 @implementation QTToJSON
 + (NSDictionary<NSString *, NSString *> *)properties
 {
@@ -11525,6 +13214,45 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
+@implementation QTToString
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTToString alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTToString.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTToString.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTToString.properties.allValues];
+}
+@end
+
 @implementation QTTopLevelClass
 + (NSDictionary<NSString *, NSString *> *)properties
 {
@@ -12110,6 +13838,123 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 }
 @end
 
+@implementation QTUtf8JSONReader
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUtf8JSONReader alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUtf8JSONReader.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUtf8JSONReader.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUtf8JSONReader.properties.allValues];
+}
+@end
+
+@implementation QTUtf8JSONWriter
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUtf8JSONWriter alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUtf8JSONWriter.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUtf8JSONWriter.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUtf8JSONWriter.properties.allValues];
+}
+@end
+
+@implementation QTUUID
++ (NSDictionary<NSString *, NSString *> *)properties
+{
+    static NSDictionary<NSString *, NSString *> *properties;
+    return properties = properties ? properties : @{
+    };
+}
+
++ (instancetype)fromJSONDictionary:(NSDictionary *)dict
+{
+    return [dict isKindOfClass:NSDictionary.class] ? [[QTUUID alloc] initWithJSONDictionary:dict] : nil;
+}
+
+- (instancetype)initWithJSONDictionary:(NSDictionary *)dict
+{
+    if (self = [super init]) {
+        [self setValuesForKeysWithDictionary:dict];
+    }
+    return self;
+}
+
+- (void)setValue:(nullable id)value forKey:(NSString *)key
+{
+    id resolved = QTUUID.properties[key];
+    if (resolved) [super setValue:value forKey:resolved];
+}
+
+- (void)setNilValueForKey:(NSString *)key
+{
+    id resolved = QTUUID.properties[key];
+    if (resolved) [super setValue:@(0) forKey:resolved];
+}
+
+- (NSDictionary *)JSONDictionary
+{
+    return [self dictionaryWithValuesForKeys:QTUUID.properties.allValues];
+}
+@end
+
 @implementation QTVar
 + (NSDictionary<NSString *, NSString *> *)properties
 {
diff --git a/base/schema-php/test/inputs/schema/keyword-enum.schema/default/TopLevel.php b/head/schema-php/test/inputs/schema/keyword-enum.schema/default/TopLevel.php
index f9a4b5e..da82188 100644
--- a/base/schema-php/test/inputs/schema/keyword-enum.schema/default/TopLevel.php
+++ b/head/schema-php/test/inputs/schema/keyword-enum.schema/default/TopLevel.php
@@ -156,6 +156,7 @@ class EnumEnum {
     public static EnumEnum $CHECKED;
     public static EnumEnum $CLASS;
     public static EnumEnum $ENUM_CLASS;
+    public static EnumEnum $CLONE;
     public static EnumEnum $CO_AWAIT;
     public static EnumEnum $CO_RETURN;
     public static EnumEnum $CO_YIELD;
@@ -170,8 +171,14 @@ class EnumEnum {
     public static EnumEnum $CONVENIENCE;
     public static EnumEnum $CONVERT;
     public static EnumEnum $CONVERTER;
+    public static EnumEnum $CULTURE_INFO;
     public static EnumEnum $DATE;
     public static EnumEnum $DATE_PARSE_HANDLING;
+    public static EnumEnum $DATE_FORMATTER;
+    public static EnumEnum $DATE_ONLY;
+    public static EnumEnum $DATE_ONLY_CONVERTER;
+    public static EnumEnum $DATE_TIME;
+    public static EnumEnum $DATE_TIME_STYLES;
     public static EnumEnum $DEBUGGER;
     public static EnumEnum $DECIMAL;
     public static EnumEnum $DECLARE;
@@ -195,6 +202,8 @@ class EnumEnum {
     public static EnumEnum $ELSE;
     public static EnumEnum $ENCODE_QUICK_TYPE;
     public static EnumEnum $ENUM;
+    public static EnumEnum $ENUM_VALUES;
+    public static EnumEnum $EQUALITY_CONTRACT;
     public static EnumEnum $EVENT;
     public static EnumEnum $EXCEPT;
     public static EnumEnum $EXCEPTION;
@@ -214,6 +223,7 @@ class EnumEnum {
     public static EnumEnum $FLOAT;
     public static EnumEnum $FOR;
     public static EnumEnum $FOREACH;
+    public static EnumEnum $FORMAT_EXCEPTION;
     public static EnumEnum $FRIEND;
     public static EnumEnum $FROM;
     public static EnumEnum $FROM_JSON;
@@ -224,6 +234,7 @@ class EnumEnum {
     public static EnumEnum $GO;
     public static EnumEnum $GOTO;
     public static EnumEnum $GUARD;
+    public static EnumEnum $HASH_CODE;
     public static EnumEnum $HAS_OWN_PROPERTY;
     public static EnumEnum $ID;
     public static EnumEnum $IF;
@@ -241,6 +252,7 @@ class EnumEnum {
     public static EnumEnum $INT;
     public static EnumEnum $INTERFACE;
     public static EnumEnum $INTERNAL;
+    public static EnumEnum $ISO_DATE_TIME_OFFSET_CONVERTER;
     public static EnumEnum $ITERABLE;
     public static EnumEnum $IS;
     public static EnumEnum $JDEC;
@@ -251,6 +263,17 @@ class EnumEnum {
     public static EnumEnum $JSON_SERIALIZER;
     public static EnumEnum $JSON_TOKEN;
     public static EnumEnum $JSON_WRITER;
+    public static EnumEnum $JSON_ANY;
+    public static EnumEnum $JSON_CODING_KEY;
+    public static EnumEnum $JSON_DECODER;
+    public static EnumEnum $JSON_ENCODER;
+    public static EnumEnum $JSON_EXCEPTION;
+    public static EnumEnum $JSON_GENERATOR;
+    public static EnumEnum $JSON_NODE;
+    public static EnumEnum $JSON_NULL;
+    public static EnumEnum $JSON_PARSER;
+    public static EnumEnum $JSON_READER;
+    public static EnumEnum $JSON_TOKEN_TYPE;
     public static EnumEnum $LAMBDA;
     public static EnumEnum $LAZY;
     public static EnumEnum $LEFT;
@@ -275,14 +298,17 @@ class EnumEnum {
     public static EnumEnum $ENUM_NONE;
     public static EnumEnum $NONLOCAL;
     public static EnumEnum $NONMUTATING;
+    public static EnumEnum $NO_SUCH_METHOD;
     public static EnumEnum $NOT;
     public static EnumEnum $NOT_EQ;
+    public static EnumEnum $NS_ERROR;
     public static EnumEnum $NS_STRING;
     public static EnumEnum $NULL;
     public static EnumEnum $ENUM_NULL;
     public static EnumEnum $NULLPTR;
     public static EnumEnum $NUMBER;
     public static EnumEnum $OBJECT;
+    public static EnumEnum $OBJECT_MAPPER;
     public static EnumEnum $OF;
     public static EnumEnum $ONEWAY;
     public static EnumEnum $OPEN;
@@ -301,6 +327,7 @@ class EnumEnum {
     public static EnumEnum $PREFIX;
     public static EnumEnum $PRINT;
     public static EnumEnum $PRINTF;
+    public static EnumEnum $PRINT_MEMBERS;
     public static EnumEnum $PRIVATE;
     public static EnumEnum $PROTECTED;
     public static EnumEnum $PROTOCOL;
@@ -311,6 +338,7 @@ class EnumEnum {
     public static EnumEnum $RANGE;
     public static EnumEnum $READONLY;
     public static EnumEnum $REF;
+    public static EnumEnum $REG_EXP;
     public static EnumEnum $REGISTER;
     public static EnumEnum $REINTERPRET_CAST;
     public static EnumEnum $REPEAT;
@@ -322,6 +350,8 @@ class EnumEnum {
     public static EnumEnum $RETHROWS;
     public static EnumEnum $RETURN;
     public static EnumEnum $RIGHT;
+    public static EnumEnum $RUNTIME_TYPE;
+    public static EnumEnum $S;
     public static EnumEnum $SBYTE;
     public static EnumEnum $SEALED;
     public static EnumEnum $SEL;
@@ -329,14 +359,19 @@ class EnumEnum {
     public static EnumEnum $SELF;
     public static EnumEnum $ENUM_SELF;
     public static EnumEnum $SERIALIZE;
+    public static EnumEnum $SERIALIZER_PROVIDER;
     public static EnumEnum $SET;
     public static EnumEnum $SHORT;
     public static EnumEnum $SIGNED;
+    public static EnumEnum $SIMPLE_MODULE;
     public static EnumEnum $SIZEOF;
     public static EnumEnum $STACKALLOC;
+    public static EnumEnum $STANDARDS;
     public static EnumEnum $STATIC;
     public static EnumEnum $STATIC_ASSERT;
     public static EnumEnum $STATIC_CAST;
+    public static EnumEnum $STD_DESERIALIZER;
+    public static EnumEnum $STD_SERIALIZER;
     public static EnumEnum $STRICTFP;
     public static EnumEnum $STRING;
     public static EnumEnum $STRUCT;
@@ -352,8 +387,11 @@ class EnumEnum {
     public static EnumEnum $THREAD_LOCAL;
     public static EnumEnum $THROW;
     public static EnumEnum $THROWS;
+    public static EnumEnum $TIME_ONLY;
+    public static EnumEnum $TIME_ONLY_CONVERTER;
     public static EnumEnum $TO_JSON;
     public static EnumEnum $TOP_LEVEL;
+    public static EnumEnum $TO_STRING;
     public static EnumEnum $TRANSIENT;
     public static EnumEnum $TRUE;
     public static EnumEnum $ENUM_TRUE;
@@ -375,6 +413,9 @@ class EnumEnum {
     public static EnumEnum $UNSIGNED;
     public static EnumEnum $USHORT;
     public static EnumEnum $USING;
+    public static EnumEnum $UTF8_JSON_READER;
+    public static EnumEnum $UTF8_JSON_WRITER;
+    public static EnumEnum $UUID;
     public static EnumEnum $VAR;
     public static EnumEnum $VIRTUAL;
     public static EnumEnum $VOID;
@@ -434,6 +475,7 @@ class EnumEnum {
         EnumEnum::$CHECKED = new EnumEnum('checked');
         EnumEnum::$CLASS = new EnumEnum('class');
         EnumEnum::$ENUM_CLASS = new EnumEnum('Class');
+        EnumEnum::$CLONE = new EnumEnum('clone');
         EnumEnum::$CO_AWAIT = new EnumEnum('co_await');
         EnumEnum::$CO_RETURN = new EnumEnum('co_return');
         EnumEnum::$CO_YIELD = new EnumEnum('co_yield');
@@ -448,8 +490,14 @@ class EnumEnum {
         EnumEnum::$CONVENIENCE = new EnumEnum('convenience');
         EnumEnum::$CONVERT = new EnumEnum('convert');
         EnumEnum::$CONVERTER = new EnumEnum('converter');
+        EnumEnum::$CULTURE_INFO = new EnumEnum('CultureInfo');
         EnumEnum::$DATE = new EnumEnum('date');
         EnumEnum::$DATE_PARSE_HANDLING = new EnumEnum('date_parse_handling');
+        EnumEnum::$DATE_FORMATTER = new EnumEnum('DateFormatter');
+        EnumEnum::$DATE_ONLY = new EnumEnum('DateOnly');
+        EnumEnum::$DATE_ONLY_CONVERTER = new EnumEnum('DateOnlyConverter');
+        EnumEnum::$DATE_TIME = new EnumEnum('DateTime');
+        EnumEnum::$DATE_TIME_STYLES = new EnumEnum('DateTimeStyles');
         EnumEnum::$DEBUGGER = new EnumEnum('debugger');
         EnumEnum::$DECIMAL = new EnumEnum('decimal');
         EnumEnum::$DECLARE = new EnumEnum('declare');
@@ -473,6 +521,8 @@ class EnumEnum {
         EnumEnum::$ELSE = new EnumEnum('else');
         EnumEnum::$ENCODE_QUICK_TYPE = new EnumEnum('encode_quick_type');
         EnumEnum::$ENUM = new EnumEnum('enum');
+        EnumEnum::$ENUM_VALUES = new EnumEnum('EnumValues');
+        EnumEnum::$EQUALITY_CONTRACT = new EnumEnum('equalityContract');
         EnumEnum::$EVENT = new EnumEnum('event');
         EnumEnum::$EXCEPT = new EnumEnum('except');
         EnumEnum::$EXCEPTION = new EnumEnum('exception');
@@ -492,6 +542,7 @@ class EnumEnum {
         EnumEnum::$FLOAT = new EnumEnum('float');
         EnumEnum::$FOR = new EnumEnum('for');
         EnumEnum::$FOREACH = new EnumEnum('foreach');
+        EnumEnum::$FORMAT_EXCEPTION = new EnumEnum('FormatException');
         EnumEnum::$FRIEND = new EnumEnum('friend');
         EnumEnum::$FROM = new EnumEnum('from');
         EnumEnum::$FROM_JSON = new EnumEnum('from_json');
@@ -502,6 +553,7 @@ class EnumEnum {
         EnumEnum::$GO = new EnumEnum('go');
         EnumEnum::$GOTO = new EnumEnum('goto');
         EnumEnum::$GUARD = new EnumEnum('guard');
+        EnumEnum::$HASH_CODE = new EnumEnum('hashCode');
         EnumEnum::$HAS_OWN_PROPERTY = new EnumEnum('hasOwnProperty');
         EnumEnum::$ID = new EnumEnum('id');
         EnumEnum::$IF = new EnumEnum('if');
@@ -519,6 +571,7 @@ class EnumEnum {
         EnumEnum::$INT = new EnumEnum('int');
         EnumEnum::$INTERFACE = new EnumEnum('interface');
         EnumEnum::$INTERNAL = new EnumEnum('internal');
+        EnumEnum::$ISO_DATE_TIME_OFFSET_CONVERTER = new EnumEnum('IsoDateTimeOffsetConverter');
         EnumEnum::$ITERABLE = new EnumEnum('iterable');
         EnumEnum::$IS = new EnumEnum('is');
         EnumEnum::$JDEC = new EnumEnum('jdec');
@@ -529,6 +582,17 @@ class EnumEnum {
         EnumEnum::$JSON_SERIALIZER = new EnumEnum('json_serializer');
         EnumEnum::$JSON_TOKEN = new EnumEnum('json_token');
         EnumEnum::$JSON_WRITER = new EnumEnum('json_writer');
+        EnumEnum::$JSON_ANY = new EnumEnum('JSONAny');
+        EnumEnum::$JSON_CODING_KEY = new EnumEnum('JSONCodingKey');
+        EnumEnum::$JSON_DECODER = new EnumEnum('JSONDecoder');
+        EnumEnum::$JSON_ENCODER = new EnumEnum('JSONEncoder');
+        EnumEnum::$JSON_EXCEPTION = new EnumEnum('JsonException');
+        EnumEnum::$JSON_GENERATOR = new EnumEnum('JsonGenerator');
+        EnumEnum::$JSON_NODE = new EnumEnum('JsonNode');
+        EnumEnum::$JSON_NULL = new EnumEnum('JSONNull');
+        EnumEnum::$JSON_PARSER = new EnumEnum('JsonParser');
+        EnumEnum::$JSON_READER = new EnumEnum('JsonReader');
+        EnumEnum::$JSON_TOKEN_TYPE = new EnumEnum('JsonTokenType');
         EnumEnum::$LAMBDA = new EnumEnum('lambda');
         EnumEnum::$LAZY = new EnumEnum('lazy');
         EnumEnum::$LEFT = new EnumEnum('left');
@@ -553,14 +617,17 @@ class EnumEnum {
         EnumEnum::$ENUM_NONE = new EnumEnum('None');
         EnumEnum::$NONLOCAL = new EnumEnum('nonlocal');
         EnumEnum::$NONMUTATING = new EnumEnum('nonmutating');
+        EnumEnum::$NO_SUCH_METHOD = new EnumEnum('noSuchMethod');
         EnumEnum::$NOT = new EnumEnum('not');
         EnumEnum::$NOT_EQ = new EnumEnum('not_eq');
+        EnumEnum::$NS_ERROR = new EnumEnum('NSError');
         EnumEnum::$NS_STRING = new EnumEnum('NSString');
         EnumEnum::$NULL = new EnumEnum('NULL');
         EnumEnum::$ENUM_NULL = new EnumEnum('null');
         EnumEnum::$NULLPTR = new EnumEnum('nullptr');
         EnumEnum::$NUMBER = new EnumEnum('number');
         EnumEnum::$OBJECT = new EnumEnum('object');
+        EnumEnum::$OBJECT_MAPPER = new EnumEnum('ObjectMapper');
         EnumEnum::$OF = new EnumEnum('of');
         EnumEnum::$ONEWAY = new EnumEnum('oneway');
         EnumEnum::$OPEN = new EnumEnum('open');
@@ -579,6 +646,7 @@ class EnumEnum {
         EnumEnum::$PREFIX = new EnumEnum('prefix');
         EnumEnum::$PRINT = new EnumEnum('print');
         EnumEnum::$PRINTF = new EnumEnum('printf');
+        EnumEnum::$PRINT_MEMBERS = new EnumEnum('printMembers');
         EnumEnum::$PRIVATE = new EnumEnum('private');
         EnumEnum::$PROTECTED = new EnumEnum('protected');
         EnumEnum::$PROTOCOL = new EnumEnum('Protocol');
@@ -589,6 +657,7 @@ class EnumEnum {
         EnumEnum::$RANGE = new EnumEnum('range');
         EnumEnum::$READONLY = new EnumEnum('readonly');
         EnumEnum::$REF = new EnumEnum('ref');
+        EnumEnum::$REG_EXP = new EnumEnum('RegExp');
         EnumEnum::$REGISTER = new EnumEnum('register');
         EnumEnum::$REINTERPRET_CAST = new EnumEnum('reinterpret_cast');
         EnumEnum::$REPEAT = new EnumEnum('repeat');
@@ -600,6 +669,8 @@ class EnumEnum {
         EnumEnum::$RETHROWS = new EnumEnum('rethrows');
         EnumEnum::$RETURN = new EnumEnum('return');
         EnumEnum::$RIGHT = new EnumEnum('right');
+        EnumEnum::$RUNTIME_TYPE = new EnumEnum('runtimeType');
+        EnumEnum::$S = new EnumEnum('s');
         EnumEnum::$SBYTE = new EnumEnum('sbyte');
         EnumEnum::$SEALED = new EnumEnum('sealed');
         EnumEnum::$SEL = new EnumEnum('SEL');
@@ -607,14 +678,19 @@ class EnumEnum {
         EnumEnum::$SELF = new EnumEnum('Self');
         EnumEnum::$ENUM_SELF = new EnumEnum('self');
         EnumEnum::$SERIALIZE = new EnumEnum('serialize');
+        EnumEnum::$SERIALIZER_PROVIDER = new EnumEnum('SerializerProvider');
         EnumEnum::$SET = new EnumEnum('set');
         EnumEnum::$SHORT = new EnumEnum('short');
         EnumEnum::$SIGNED = new EnumEnum('signed');
+        EnumEnum::$SIMPLE_MODULE = new EnumEnum('SimpleModule');
         EnumEnum::$SIZEOF = new EnumEnum('sizeof');
         EnumEnum::$STACKALLOC = new EnumEnum('stackalloc');
+        EnumEnum::$STANDARDS = new EnumEnum('Standards');
         EnumEnum::$STATIC = new EnumEnum('static');
         EnumEnum::$STATIC_ASSERT = new EnumEnum('static_assert');
         EnumEnum::$STATIC_CAST = new EnumEnum('static_cast');
+        EnumEnum::$STD_DESERIALIZER = new EnumEnum('StdDeserializer');
+        EnumEnum::$STD_SERIALIZER = new EnumEnum('StdSerializer');
         EnumEnum::$STRICTFP = new EnumEnum('strictfp');
         EnumEnum::$STRING = new EnumEnum('string');
         EnumEnum::$STRUCT = new EnumEnum('struct');
@@ -630,8 +706,11 @@ class EnumEnum {
         EnumEnum::$THREAD_LOCAL = new EnumEnum('thread_local');
         EnumEnum::$THROW = new EnumEnum('throw');
         EnumEnum::$THROWS = new EnumEnum('throws');
+        EnumEnum::$TIME_ONLY = new EnumEnum('TimeOnly');
+        EnumEnum::$TIME_ONLY_CONVERTER = new EnumEnum('TimeOnlyConverter');
         EnumEnum::$TO_JSON = new EnumEnum('to_json');
         EnumEnum::$TOP_LEVEL = new EnumEnum('top_level');
+        EnumEnum::$TO_STRING = new EnumEnum('toString');
         EnumEnum::$TRANSIENT = new EnumEnum('transient');
         EnumEnum::$TRUE = new EnumEnum('True');
         EnumEnum::$ENUM_TRUE = new EnumEnum('true');
@@ -653,6 +732,9 @@ class EnumEnum {
         EnumEnum::$UNSIGNED = new EnumEnum('unsigned');
         EnumEnum::$USHORT = new EnumEnum('ushort');
         EnumEnum::$USING = new EnumEnum('using');
+        EnumEnum::$UTF8_JSON_READER = new EnumEnum('Utf8JsonReader');
+        EnumEnum::$UTF8_JSON_WRITER = new EnumEnum('Utf8JsonWriter');
+        EnumEnum::$UUID = new EnumEnum('UUID');
         EnumEnum::$VAR = new EnumEnum('var');
         EnumEnum::$VIRTUAL = new EnumEnum('virtual');
         EnumEnum::$VOID = new EnumEnum('void');
@@ -724,6 +806,7 @@ class EnumEnum {
             case EnumEnum::$CHECKED->enum: return 'checked';
             case EnumEnum::$CLASS->enum: return 'class';
             case EnumEnum::$ENUM_CLASS->enum: return 'Class';
+            case EnumEnum::$CLONE->enum: return 'clone';
             case EnumEnum::$CO_AWAIT->enum: return 'co_await';
             case EnumEnum::$CO_RETURN->enum: return 'co_return';
             case EnumEnum::$CO_YIELD->enum: return 'co_yield';
@@ -738,8 +821,14 @@ class EnumEnum {
             case EnumEnum::$CONVENIENCE->enum: return 'convenience';
             case EnumEnum::$CONVERT->enum: return 'convert';
             case EnumEnum::$CONVERTER->enum: return 'converter';
+            case EnumEnum::$CULTURE_INFO->enum: return 'CultureInfo';
             case EnumEnum::$DATE->enum: return 'date';
             case EnumEnum::$DATE_PARSE_HANDLING->enum: return 'date_parse_handling';
+            case EnumEnum::$DATE_FORMATTER->enum: return 'DateFormatter';
+            case EnumEnum::$DATE_ONLY->enum: return 'DateOnly';
+            case EnumEnum::$DATE_ONLY_CONVERTER->enum: return 'DateOnlyConverter';
+            case EnumEnum::$DATE_TIME->enum: return 'DateTime';
+            case EnumEnum::$DATE_TIME_STYLES->enum: return 'DateTimeStyles';
             case EnumEnum::$DEBUGGER->enum: return 'debugger';
             case EnumEnum::$DECIMAL->enum: return 'decimal';
             case EnumEnum::$DECLARE->enum: return 'declare';
@@ -763,6 +852,8 @@ class EnumEnum {
             case EnumEnum::$ELSE->enum: return 'else';
             case EnumEnum::$ENCODE_QUICK_TYPE->enum: return 'encode_quick_type';
             case EnumEnum::$ENUM->enum: return 'enum';
+            case EnumEnum::$ENUM_VALUES->enum: return 'EnumValues';
+            case EnumEnum::$EQUALITY_CONTRACT->enum: return 'equalityContract';
             case EnumEnum::$EVENT->enum: return 'event';
             case EnumEnum::$EXCEPT->enum: return 'except';
             case EnumEnum::$EXCEPTION->enum: return 'exception';
@@ -782,6 +873,7 @@ class EnumEnum {
             case EnumEnum::$FLOAT->enum: return 'float';
             case EnumEnum::$FOR->enum: return 'for';
             case EnumEnum::$FOREACH->enum: return 'foreach';
+            case EnumEnum::$FORMAT_EXCEPTION->enum: return 'FormatException';
             case EnumEnum::$FRIEND->enum: return 'friend';
             case EnumEnum::$FROM->enum: return 'from';
             case EnumEnum::$FROM_JSON->enum: return 'from_json';
@@ -792,6 +884,7 @@ class EnumEnum {
             case EnumEnum::$GO->enum: return 'go';
             case EnumEnum::$GOTO->enum: return 'goto';
             case EnumEnum::$GUARD->enum: return 'guard';
+            case EnumEnum::$HASH_CODE->enum: return 'hashCode';
             case EnumEnum::$HAS_OWN_PROPERTY->enum: return 'hasOwnProperty';
             case EnumEnum::$ID->enum: return 'id';
             case EnumEnum::$IF->enum: return 'if';
@@ -809,6 +902,7 @@ class EnumEnum {
             case EnumEnum::$INT->enum: return 'int';
             case EnumEnum::$INTERFACE->enum: return 'interface';
             case EnumEnum::$INTERNAL->enum: return 'internal';
+            case EnumEnum::$ISO_DATE_TIME_OFFSET_CONVERTER->enum: return 'IsoDateTimeOffsetConverter';
             case EnumEnum::$ITERABLE->enum: return 'iterable';
             case EnumEnum::$IS->enum: return 'is';
             case EnumEnum::$JDEC->enum: return 'jdec';
@@ -819,6 +913,17 @@ class EnumEnum {
             case EnumEnum::$JSON_SERIALIZER->enum: return 'json_serializer';
             case EnumEnum::$JSON_TOKEN->enum: return 'json_token';
             case EnumEnum::$JSON_WRITER->enum: return 'json_writer';
+            case EnumEnum::$JSON_ANY->enum: return 'JSONAny';
+            case EnumEnum::$JSON_CODING_KEY->enum: return 'JSONCodingKey';
+            case EnumEnum::$JSON_DECODER->enum: return 'JSONDecoder';
+            case EnumEnum::$JSON_ENCODER->enum: return 'JSONEncoder';
+            case EnumEnum::$JSON_EXCEPTION->enum: return 'JsonException';
+            case EnumEnum::$JSON_GENERATOR->enum: return 'JsonGenerator';
+            case EnumEnum::$JSON_NODE->enum: return 'JsonNode';
+            case EnumEnum::$JSON_NULL->enum: return 'JSONNull';
+            case EnumEnum::$JSON_PARSER->enum: return 'JsonParser';
+            case EnumEnum::$JSON_READER->enum: return 'JsonReader';
+            case EnumEnum::$JSON_TOKEN_TYPE->enum: return 'JsonTokenType';
             case EnumEnum::$LAMBDA->enum: return 'lambda';
             case EnumEnum::$LAZY->enum: return 'lazy';
             case EnumEnum::$LEFT->enum: return 'left';
@@ -843,14 +948,17 @@ class EnumEnum {
             case EnumEnum::$ENUM_NONE->enum: return 'None';
             case EnumEnum::$NONLOCAL->enum: return 'nonlocal';
             case EnumEnum::$NONMUTATING->enum: return 'nonmutating';
+            case EnumEnum::$NO_SUCH_METHOD->enum: return 'noSuchMethod';
             case EnumEnum::$NOT->enum: return 'not';
             case EnumEnum::$NOT_EQ->enum: return 'not_eq';
+            case EnumEnum::$NS_ERROR->enum: return 'NSError';
             case EnumEnum::$NS_STRING->enum: return 'NSString';
             case EnumEnum::$NULL->enum: return 'NULL';
             case EnumEnum::$ENUM_NULL->enum: return 'null';
             case EnumEnum::$NULLPTR->enum: return 'nullptr';
             case EnumEnum::$NUMBER->enum: return 'number';
             case EnumEnum::$OBJECT->enum: return 'object';
+            case EnumEnum::$OBJECT_MAPPER->enum: return 'ObjectMapper';
             case EnumEnum::$OF->enum: return 'of';
             case EnumEnum::$ONEWAY->enum: return 'oneway';
             case EnumEnum::$OPEN->enum: return 'open';
@@ -869,6 +977,7 @@ class EnumEnum {
             case EnumEnum::$PREFIX->enum: return 'prefix';
             case EnumEnum::$PRINT->enum: return 'print';
             case EnumEnum::$PRINTF->enum: return 'printf';
+            case EnumEnum::$PRINT_MEMBERS->enum: return 'printMembers';
             case EnumEnum::$PRIVATE->enum: return 'private';
             case EnumEnum::$PROTECTED->enum: return 'protected';
             case EnumEnum::$PROTOCOL->enum: return 'Protocol';
@@ -879,6 +988,7 @@ class EnumEnum {
             case EnumEnum::$RANGE->enum: return 'range';
             case EnumEnum::$READONLY->enum: return 'readonly';
             case EnumEnum::$REF->enum: return 'ref';
+            case EnumEnum::$REG_EXP->enum: return 'RegExp';
             case EnumEnum::$REGISTER->enum: return 'register';
             case EnumEnum::$REINTERPRET_CAST->enum: return 'reinterpret_cast';
             case EnumEnum::$REPEAT->enum: return 'repeat';
@@ -890,6 +1000,8 @@ class EnumEnum {
             case EnumEnum::$RETHROWS->enum: return 'rethrows';
             case EnumEnum::$RETURN->enum: return 'return';
             case EnumEnum::$RIGHT->enum: return 'right';
+            case EnumEnum::$RUNTIME_TYPE->enum: return 'runtimeType';
+            case EnumEnum::$S->enum: return 's';
             case EnumEnum::$SBYTE->enum: return 'sbyte';
             case EnumEnum::$SEALED->enum: return 'sealed';
             case EnumEnum::$SEL->enum: return 'SEL';
@@ -897,14 +1009,19 @@ class EnumEnum {
             case EnumEnum::$SELF->enum: return 'Self';
             case EnumEnum::$ENUM_SELF->enum: return 'self';
             case EnumEnum::$SERIALIZE->enum: return 'serialize';
+            case EnumEnum::$SERIALIZER_PROVIDER->enum: return 'SerializerProvider';
             case EnumEnum::$SET->enum: return 'set';
             case EnumEnum::$SHORT->enum: return 'short';
             case EnumEnum::$SIGNED->enum: return 'signed';
+            case EnumEnum::$SIMPLE_MODULE->enum: return 'SimpleModule';
             case EnumEnum::$SIZEOF->enum: return 'sizeof';
             case EnumEnum::$STACKALLOC->enum: return 'stackalloc';
+            case EnumEnum::$STANDARDS->enum: return 'Standards';
             case EnumEnum::$STATIC->enum: return 'static';
             case EnumEnum::$STATIC_ASSERT->enum: return 'static_assert';
             case EnumEnum::$STATIC_CAST->enum: return 'static_cast';
+            case EnumEnum::$STD_DESERIALIZER->enum: return 'StdDeserializer';
+            case EnumEnum::$STD_SERIALIZER->enum: return 'StdSerializer';
             case EnumEnum::$STRICTFP->enum: return 'strictfp';
             case EnumEnum::$STRING->enum: return 'string';
             case EnumEnum::$STRUCT->enum: return 'struct';
@@ -920,8 +1037,11 @@ class EnumEnum {
             case EnumEnum::$THREAD_LOCAL->enum: return 'thread_local';
             case EnumEnum::$THROW->enum: return 'throw';
             case EnumEnum::$THROWS->enum: return 'throws';
+            case EnumEnum::$TIME_ONLY->enum: return 'TimeOnly';
+            case EnumEnum::$TIME_ONLY_CONVERTER->enum: return 'TimeOnlyConverter';
             case EnumEnum::$TO_JSON->enum: return 'to_json';
             case EnumEnum::$TOP_LEVEL->enum: return 'top_level';
+            case EnumEnum::$TO_STRING->enum: return 'toString';
             case EnumEnum::$TRANSIENT->enum: return 'transient';
             case EnumEnum::$TRUE->enum: return 'True';
             case EnumEnum::$ENUM_TRUE->enum: return 'true';
@@ -943,6 +1063,9 @@ class EnumEnum {
             case EnumEnum::$UNSIGNED->enum: return 'unsigned';
             case EnumEnum::$USHORT->enum: return 'ushort';
             case EnumEnum::$USING->enum: return 'using';
+            case EnumEnum::$UTF8_JSON_READER->enum: return 'Utf8JsonReader';
+            case EnumEnum::$UTF8_JSON_WRITER->enum: return 'Utf8JsonWriter';
+            case EnumEnum::$UUID->enum: return 'UUID';
             case EnumEnum::$VAR->enum: return 'var';
             case EnumEnum::$VIRTUAL->enum: return 'virtual';
             case EnumEnum::$VOID->enum: return 'void';
@@ -1012,6 +1135,7 @@ class EnumEnum {
             case 'checked': return EnumEnum::$CHECKED;
             case 'class': return EnumEnum::$CLASS;
             case 'Class': return EnumEnum::$ENUM_CLASS;
+            case 'clone': return EnumEnum::$CLONE;
             case 'co_await': return EnumEnum::$CO_AWAIT;
             case 'co_return': return EnumEnum::$CO_RETURN;
             case 'co_yield': return EnumEnum::$CO_YIELD;
@@ -1026,8 +1150,14 @@ class EnumEnum {
             case 'convenience': return EnumEnum::$CONVENIENCE;
             case 'convert': return EnumEnum::$CONVERT;
             case 'converter': return EnumEnum::$CONVERTER;
+            case 'CultureInfo': return EnumEnum::$CULTURE_INFO;
             case 'date': return EnumEnum::$DATE;
             case 'date_parse_handling': return EnumEnum::$DATE_PARSE_HANDLING;
+            case 'DateFormatter': return EnumEnum::$DATE_FORMATTER;
+            case 'DateOnly': return EnumEnum::$DATE_ONLY;
+            case 'DateOnlyConverter': return EnumEnum::$DATE_ONLY_CONVERTER;
+            case 'DateTime': return EnumEnum::$DATE_TIME;
+            case 'DateTimeStyles': return EnumEnum::$DATE_TIME_STYLES;
             case 'debugger': return EnumEnum::$DEBUGGER;
             case 'decimal': return EnumEnum::$DECIMAL;
             case 'declare': return EnumEnum::$DECLARE;
@@ -1051,6 +1181,8 @@ class EnumEnum {
             case 'else': return EnumEnum::$ELSE;
             case 'encode_quick_type': return EnumEnum::$ENCODE_QUICK_TYPE;
             case 'enum': return EnumEnum::$ENUM;
+            case 'EnumValues': return EnumEnum::$ENUM_VALUES;
+            case 'equalityContract': return EnumEnum::$EQUALITY_CONTRACT;
             case 'event': return EnumEnum::$EVENT;
             case 'except': return EnumEnum::$EXCEPT;
             case 'exception': return EnumEnum::$EXCEPTION;
@@ -1070,6 +1202,7 @@ class EnumEnum {
             case 'float': return EnumEnum::$FLOAT;
             case 'for': return EnumEnum::$FOR;
             case 'foreach': return EnumEnum::$FOREACH;
+            case 'FormatException': return EnumEnum::$FORMAT_EXCEPTION;
             case 'friend': return EnumEnum::$FRIEND;
             case 'from': return EnumEnum::$FROM;
             case 'from_json': return EnumEnum::$FROM_JSON;
@@ -1080,6 +1213,7 @@ class EnumEnum {
             case 'go': return EnumEnum::$GO;
             case 'goto': return EnumEnum::$GOTO;
             case 'guard': return EnumEnum::$GUARD;
+            case 'hashCode': return EnumEnum::$HASH_CODE;
             case 'hasOwnProperty': return EnumEnum::$HAS_OWN_PROPERTY;
             case 'id': return EnumEnum::$ID;
             case 'if': return EnumEnum::$IF;
@@ -1097,6 +1231,7 @@ class EnumEnum {
             case 'int': return EnumEnum::$INT;
             case 'interface': return EnumEnum::$INTERFACE;
             case 'internal': return EnumEnum::$INTERNAL;
+            case 'IsoDateTimeOffsetConverter': return EnumEnum::$ISO_DATE_TIME_OFFSET_CONVERTER;
             case 'iterable': return EnumEnum::$ITERABLE;
             case 'is': return EnumEnum::$IS;
             case 'jdec': return EnumEnum::$JDEC;
@@ -1107,6 +1242,17 @@ class EnumEnum {
             case 'json_serializer': return EnumEnum::$JSON_SERIALIZER;
             case 'json_token': return EnumEnum::$JSON_TOKEN;
             case 'json_writer': return EnumEnum::$JSON_WRITER;
+            case 'JSONAny': return EnumEnum::$JSON_ANY;
+            case 'JSONCodingKey': return EnumEnum::$JSON_CODING_KEY;
+            case 'JSONDecoder': return EnumEnum::$JSON_DECODER;
+            case 'JSONEncoder': return EnumEnum::$JSON_ENCODER;
+            case 'JsonException': return EnumEnum::$JSON_EXCEPTION;
+            case 'JsonGenerator': return EnumEnum::$JSON_GENERATOR;
+            case 'JsonNode': return EnumEnum::$JSON_NODE;
+            case 'JSONNull': return EnumEnum::$JSON_NULL;
+            case 'JsonParser': return EnumEnum::$JSON_PARSER;
+            case 'JsonReader': return EnumEnum::$JSON_READER;
+            case 'JsonTokenType': return EnumEnum::$JSON_TOKEN_TYPE;
             case 'lambda': return EnumEnum::$LAMBDA;
             case 'lazy': return EnumEnum::$LAZY;
             case 'left': return EnumEnum::$LEFT;
@@ -1131,14 +1277,17 @@ class EnumEnum {
             case 'None': return EnumEnum::$ENUM_NONE;
             case 'nonlocal': return EnumEnum::$NONLOCAL;
             case 'nonmutating': return EnumEnum::$NONMUTATING;
+            case 'noSuchMethod': return EnumEnum::$NO_SUCH_METHOD;
             case 'not': return EnumEnum::$NOT;
             case 'not_eq': return EnumEnum::$NOT_EQ;
+            case 'NSError': return EnumEnum::$NS_ERROR;
             case 'NSString': return EnumEnum::$NS_STRING;
             case 'NULL': return EnumEnum::$NULL;
             case 'null': return EnumEnum::$ENUM_NULL;
             case 'nullptr': return EnumEnum::$NULLPTR;
             case 'number': return EnumEnum::$NUMBER;
             case 'object': return EnumEnum::$OBJECT;
+            case 'ObjectMapper': return EnumEnum::$OBJECT_MAPPER;
             case 'of': return EnumEnum::$OF;
             case 'oneway': return EnumEnum::$ONEWAY;
             case 'open': return EnumEnum::$OPEN;
@@ -1157,6 +1306,7 @@ class EnumEnum {
             case 'prefix': return EnumEnum::$PREFIX;
             case 'print': return EnumEnum::$PRINT;
             case 'printf': return EnumEnum::$PRINTF;
+            case 'printMembers': return EnumEnum::$PRINT_MEMBERS;
             case 'private': return EnumEnum::$PRIVATE;
             case 'protected': return EnumEnum::$PROTECTED;
             case 'Protocol': return EnumEnum::$PROTOCOL;
@@ -1167,6 +1317,7 @@ class EnumEnum {
             case 'range': return EnumEnum::$RANGE;
             case 'readonly': return EnumEnum::$READONLY;
             case 'ref': return EnumEnum::$REF;
+            case 'RegExp': return EnumEnum::$REG_EXP;
             case 'register': return EnumEnum::$REGISTER;
             case 'reinterpret_cast': return EnumEnum::$REINTERPRET_CAST;
             case 'repeat': return EnumEnum::$REPEAT;
@@ -1178,6 +1329,8 @@ class EnumEnum {
             case 'rethrows': return EnumEnum::$RETHROWS;
             case 'return': return EnumEnum::$RETURN;
             case 'right': return EnumEnum::$RIGHT;
+            case 'runtimeType': return EnumEnum::$RUNTIME_TYPE;
+            case 's': return EnumEnum::$S;
             case 'sbyte': return EnumEnum::$SBYTE;
             case 'sealed': return EnumEnum::$SEALED;
             case 'SEL': return EnumEnum::$SEL;
@@ -1185,14 +1338,19 @@ class EnumEnum {
             case 'Self': return EnumEnum::$SELF;
             case 'self': return EnumEnum::$ENUM_SELF;
             case 'serialize': return EnumEnum::$SERIALIZE;
+            case 'SerializerProvider': return EnumEnum::$SERIALIZER_PROVIDER;
             case 'set': return EnumEnum::$SET;
             case 'short': return EnumEnum::$SHORT;
             case 'signed': return EnumEnum::$SIGNED;
+            case 'SimpleModule': return EnumEnum::$SIMPLE_MODULE;
             case 'sizeof': return EnumEnum::$SIZEOF;
             case 'stackalloc': return EnumEnum::$STACKALLOC;
+            case 'Standards': return EnumEnum::$STANDARDS;
             case 'static': return EnumEnum::$STATIC;
             case 'static_assert': return EnumEnum::$STATIC_ASSERT;
             case 'static_cast': return EnumEnum::$STATIC_CAST;
+            case 'StdDeserializer': return EnumEnum::$STD_DESERIALIZER;
+            case 'StdSerializer': return EnumEnum::$STD_SERIALIZER;
             case 'strictfp': return EnumEnum::$STRICTFP;
             case 'string': return EnumEnum::$STRING;
             case 'struct': return EnumEnum::$STRUCT;
@@ -1208,8 +1366,11 @@ class EnumEnum {
             case 'thread_local': return EnumEnum::$THREAD_LOCAL;
             case 'throw': return EnumEnum::$THROW;
             case 'throws': return EnumEnum::$THROWS;
+            case 'TimeOnly': return EnumEnum::$TIME_ONLY;
+            case 'TimeOnlyConverter': return EnumEnum::$TIME_ONLY_CONVERTER;
             case 'to_json': return EnumEnum::$TO_JSON;
             case 'top_level': return EnumEnum::$TOP_LEVEL;
+            case 'toString': return EnumEnum::$TO_STRING;
             case 'transient': return EnumEnum::$TRANSIENT;
             case 'True': return EnumEnum::$TRUE;
             case 'true': return EnumEnum::$ENUM_TRUE;
@@ -1231,6 +1392,9 @@ class EnumEnum {
             case 'unsigned': return EnumEnum::$UNSIGNED;
             case 'ushort': return EnumEnum::$USHORT;
             case 'using': return EnumEnum::$USING;
+            case 'Utf8JsonReader': return EnumEnum::$UTF8_JSON_READER;
+            case 'Utf8JsonWriter': return EnumEnum::$UTF8_JSON_WRITER;
+            case 'UUID': return EnumEnum::$UUID;
             case 'var': return EnumEnum::$VAR;
             case 'virtual': return EnumEnum::$VIRTUAL;
             case 'void': return EnumEnum::$VOID;
diff --git a/base/schema-php/test/inputs/schema/keyword-unions.schema/default/TopLevel.php b/head/schema-php/test/inputs/schema/keyword-unions.schema/default/TopLevel.php
index 400ef37..0ea57c7 100644
--- a/base/schema-php/test/inputs/schema/keyword-unions.schema/default/TopLevel.php
+++ b/head/schema-php/test/inputs/schema/keyword-unions.schema/default/TopLevel.php
@@ -47,6 +47,7 @@ class TopLevel {
     private Checked|float|null $checked; // json:checked Optional
     private UnionClassClass|float|null $topLevelClass; // json:class Optional
     private ClassClass|float|null $class; // json:Class Optional
+    private CloneClass|float|null $clone; // json:clone Optional
     private CoAwait|float|null $coAwait; // json:co_await Optional
     private CoReturn|float|null $coReturn; // json:co_return Optional
     private CoYield|float|null $coYield; // json:co_yield Optional
@@ -61,8 +62,14 @@ class TopLevel {
     private Convenience|float|null $convenience; // json:convenience Optional
     private Convert|float|null $convert; // json:convert Optional
     private ConverterClass|float|null $converter; // json:converter Optional
+    private CultureInfo|float|null $cultureInfo; // json:CultureInfo Optional
     private Date|float|null $date; // json:date Optional
     private DateParseHandling|float|null $dateParseHandling; // json:date_parse_handling Optional
+    private DateFormatter|float|null $dateFormatter; // json:DateFormatter Optional
+    private DateOnly|float|null $dateOnly; // json:DateOnly Optional
+    private DateOnlyConverter|float|null $dateOnlyConverter; // json:DateOnlyConverter Optional
+    private DateTimeClass|float|null $dateTime; // json:DateTime Optional
+    private DateTimeStyles|float|null $dateTimeStyles; // json:DateTimeStyles Optional
     private Debugger|float|null $debugger; // json:debugger Optional
     private Decimal|float|null $decimal; // json:decimal Optional
     private DeclareClass|float|null $declare; // json:declare Optional
@@ -87,6 +94,8 @@ class TopLevel {
     private ElseClass|float|null $else; // json:else Optional
     private EncodeQuickType|float|null $encodeQuickType; // json:encode_quick_type Optional
     private EnumClass|float|null $enum; // json:enum Optional
+    private EnumValues|float|null $enumValues; // json:EnumValues Optional
+    private EqualityContract|float|null $equalityContract; // json:equalityContract Optional
     private Event|float|null $event; // json:event Optional
     private Except|float|null $except; // json:except Optional
     private ExceptionClass|float|null $exception; // json:exception Optional
@@ -106,6 +115,7 @@ class TopLevel {
     private FloatClass|float|null $float; // json:float Optional
     private ForClass|float|null $for; // json:for Optional
     private ForeachClass|float|null $foreach; // json:foreach Optional
+    private FormatException|float|null $formatException; // json:FormatException Optional
     private Friend|float|null $friend; // json:friend Optional
     private From|float|null $from; // json:from Optional
     private FromJSON|float|null $fromJSON; // json:from_json Optional
@@ -116,6 +126,7 @@ class TopLevel {
     private Go|float|null $go; // json:go Optional
     private GotoClass|float|null $goto; // json:goto Optional
     private Guard|float|null $guard; // json:guard Optional
+    private HashCode|float|null $hashCode; // json:hashCode Optional
     private HasOwnProperty|float|null $hasOwnProperty; // json:hasOwnProperty Optional
     private ID|float|null $id; // json:id Optional
     private IfClass|float|null $if; // json:if Optional
@@ -134,6 +145,7 @@ class TopLevel {
     private InterfaceClass|float|null $interface; // json:interface Optional
     private Internal|float|null $internal; // json:internal Optional
     private Is|float|null $is; // json:is Optional
+    private ISODateTimeOffsetConverter|float|null $isoDateTimeOffsetConverter; // json:IsoDateTimeOffsetConverter Optional
     private IterableClass|float|null $iterable; // json:iterable Optional
     private Jdec|float|null $jdec; // json:jdec Optional
     private Jenc|float|null $jenc; // json:jenc Optional
@@ -143,6 +155,17 @@ class TopLevel {
     private JSONSerializer|float|null $jsonSerializer; // json:json_serializer Optional
     private JSONToken|float|null $jsonToken; // json:json_token Optional
     private JSONWriter|float|null $jsonWriter; // json:json_writer Optional
+    private JSONAny|float|null $jsonAny; // json:JSONAny Optional
+    private JSONCodingKey|float|null $jsonCodingKey; // json:JSONCodingKey Optional
+    private JSONDecoder|float|null $jsonDecoder; // json:JSONDecoder Optional
+    private JSONEncoder|float|null $jsonEncoder; // json:JSONEncoder Optional
+    private JSONExceptionClass|float|null $jsonException; // json:JsonException Optional
+    private JSONGenerator|float|null $jsonGenerator; // json:JsonGenerator Optional
+    private JSONNode|float|null $jsonNode; // json:JsonNode Optional
+    private JSONNull|float|null $jsonNull; // json:JSONNull Optional
+    private JSONParser|float|null $jsonParser; // json:JsonParser Optional
+    private JSONReader|float|null $jsonReader; // json:JsonReader Optional
+    private JSONTokenType|float|null $jsonTokenType; // json:JsonTokenType Optional
     private Lambda|float|null $lambda; // json:lambda Optional
     private Lazy|float|null $lazy; // json:lazy Optional
     private Left|float|null $left; // json:left Optional
@@ -167,14 +190,17 @@ class TopLevel {
     private None|float|null $none; // json:None Optional
     private Nonlocal|float|null $nonlocal; // json:nonlocal Optional
     private Nonmutating|float|null $nonmutating; // json:nonmutating Optional
+    private NoSuchMethod|float|null $noSuchMethod; // json:noSuchMethod Optional
     private Not|float|null $not; // json:not Optional
     private NotEq|float|null $notEq; // json:not_eq Optional
+    private NSError|float|null $nsError; // json:NSError Optional
     private NSString|float|null $nsString; // json:NSString Optional
     private NULLClass|float|null $null; // json:NULL Optional
     private UnionNullNull|float|null $topLevelNull; // json:null Optional
     private Nullptr|float|null $nullptr; // json:nullptr Optional
     private Number|float|null $number; // json:number Optional
     private ObjectClass|float|null $object; // json:object Optional
+    private ObjectMapper|float|null $objectMapper; // json:ObjectMapper Optional
     private Of|float|null $of; // json:of Optional
     private Oneway|float|null $oneway; // json:oneway Optional
     private Open|float|null $open; // json:open Optional
@@ -193,6 +219,7 @@ class TopLevel {
     private Prefix|float|null $prefix; // json:prefix Optional
     private PrintClass|float|null $print; // json:print Optional
     private Printf|float|null $printf; // json:printf Optional
+    private PrintMembers|float|null $printMembers; // json:printMembers Optional
     private PrivateClass|float|null $private; // json:private Optional
     private ProtectedClass|float|null $protected; // json:protected Optional
     private Protocol|float|null $protocol; // json:Protocol Optional
@@ -203,6 +230,7 @@ class TopLevel {
     private Range|float|null $range; // json:range Optional
     private ReadonlyClass|float|null $readonly; // json:readonly Optional
     private Ref|float|null $ref; // json:ref Optional
+    private RegExp|float|null $regExp; // json:RegExp Optional
     private Register|float|null $register; // json:register Optional
     private ReinterpretCast|float|null $reinterpretCast; // json:reinterpret_cast Optional
     private Repeat|float|null $repeat; // json:repeat Optional
@@ -214,6 +242,8 @@ class TopLevel {
     private Rethrows|float|null $rethrows; // json:rethrows Optional
     private ReturnClass|float|null $return; // json:return Optional
     private Right|float|null $right; // json:right Optional
+    private RuntimeType|float|null $runtimeType; // json:runtimeType Optional
+    private S|float|null $s; // json:s Optional
     private Sbyte|float|null $sbyte; // json:sbyte Optional
     private Sealed|float|null $sealed; // json:sealed Optional
     private Sel|float|null $sel; // json:SEL Optional
@@ -221,14 +251,19 @@ class TopLevel {
     private SelfClass|float|null $self; // json:Self Optional
     private UnionSelfSelf|float|null $topLevelSelf; // json:self Optional
     private Serialize|float|null $serialize; // json:serialize Optional
+    private SerializerProvider|float|null $serializerProvider; // json:SerializerProvider Optional
     private Set|float|null $set; // json:set Optional
     private Short|float|null $short; // json:short Optional
     private Signed|float|null $signed; // json:signed Optional
+    private SimpleModule|float|null $simpleModule; // json:SimpleModule Optional
     private Sizeof|float|null $sizeof; // json:sizeof Optional
     private Stackalloc|float|null $stackalloc; // json:stackalloc Optional
+    private Standards|float|null $standards; // json:Standards Optional
     private StaticClass|float|null $static; // json:static Optional
     private StaticAssert|float|null $staticAssert; // json:static_assert Optional
     private StaticCast|float|null $staticCast; // json:static_cast Optional
+    private StdDeserializer|float|null $stdDeserializer; // json:StdDeserializer Optional
+    private StdSerializer|float|null $stdSerializer; // json:StdSerializer Optional
     private Strictfp|float|null $strictfp; // json:strictfp Optional
     private StringClass|float|null $string; // json:string Optional
     private Struct|float|null $struct; // json:struct Optional
@@ -244,8 +279,11 @@ class TopLevel {
     private ThreadLocal|float|null $threadLocal; // json:thread_local Optional
     private ThrowClass|float|null $throw; // json:throw Optional
     private Throws|float|null $throws; // json:throws Optional
+    private TimeOnly|float|null $timeOnly; // json:TimeOnly Optional
+    private TimeOnlyConverter|float|null $timeOnlyConverter; // json:TimeOnlyConverter Optional
     private ToJSON|float|null $toJSON; // json:to_json Optional
     private TopLevelClass|float|null $topLevel; // json:top_level Optional
+    private ToString|float|null $toString; // json:toString Optional
     private Transient|float|null $transient; // json:transient Optional
     private TrueClass|float|null $true; // json:True Optional
     private UnionTrueTrue|float|null $topLevelTrue; // json:true Optional
@@ -267,6 +305,9 @@ class TopLevel {
     private Unsigned|float|null $unsigned; // json:unsigned Optional
     private Ushort|float|null $ushort; // json:ushort Optional
     private Using|float|null $using; // json:using Optional
+    private Utf8JSONReader|float|null $utf8JSONReader; // json:Utf8JsonReader Optional
+    private Utf8JSONWriter|float|null $utf8JSONWriter; // json:Utf8JsonWriter Optional
+    private UUID|float|null $uuid; // json:UUID Optional
     private VarClass|float|null $var; // json:var Optional
     private Virtual|float|null $virtual; // json:virtual Optional
     private VoidClass|float|null $void; // json:void Optional
@@ -326,6 +367,7 @@ class TopLevel {
      * @param Checked|float|null $checked
      * @param UnionClassClass|float|null $topLevelClass
      * @param ClassClass|float|null $class
+     * @param CloneClass|float|null $clone
      * @param CoAwait|float|null $coAwait
      * @param CoReturn|float|null $coReturn
      * @param CoYield|float|null $coYield
@@ -340,8 +382,14 @@ class TopLevel {
      * @param Convenience|float|null $convenience
      * @param Convert|float|null $convert
      * @param ConverterClass|float|null $converter
+     * @param CultureInfo|float|null $cultureInfo
      * @param Date|float|null $date
      * @param DateParseHandling|float|null $dateParseHandling
+     * @param DateFormatter|float|null $dateFormatter
+     * @param DateOnly|float|null $dateOnly
+     * @param DateOnlyConverter|float|null $dateOnlyConverter
+     * @param DateTimeClass|float|null $dateTime
+     * @param DateTimeStyles|float|null $dateTimeStyles
      * @param Debugger|float|null $debugger
      * @param Decimal|float|null $decimal
      * @param DeclareClass|float|null $declare
@@ -366,6 +414,8 @@ class TopLevel {
      * @param ElseClass|float|null $else
      * @param EncodeQuickType|float|null $encodeQuickType
      * @param EnumClass|float|null $enum
+     * @param EnumValues|float|null $enumValues
+     * @param EqualityContract|float|null $equalityContract
      * @param Event|float|null $event
      * @param Except|float|null $except
      * @param ExceptionClass|float|null $exception
@@ -385,6 +435,7 @@ class TopLevel {
      * @param FloatClass|float|null $float
      * @param ForClass|float|null $for
      * @param ForeachClass|float|null $foreach
+     * @param FormatException|float|null $formatException
      * @param Friend|float|null $friend
      * @param From|float|null $from
      * @param FromJSON|float|null $fromJSON
@@ -395,6 +446,7 @@ class TopLevel {
      * @param Go|float|null $go
      * @param GotoClass|float|null $goto
      * @param Guard|float|null $guard
+     * @param HashCode|float|null $hashCode
      * @param HasOwnProperty|float|null $hasOwnProperty
      * @param ID|float|null $id
      * @param IfClass|float|null $if
@@ -413,6 +465,7 @@ class TopLevel {
      * @param InterfaceClass|float|null $interface
      * @param Internal|float|null $internal
      * @param Is|float|null $is
+     * @param ISODateTimeOffsetConverter|float|null $isoDateTimeOffsetConverter
      * @param IterableClass|float|null $iterable
      * @param Jdec|float|null $jdec
      * @param Jenc|float|null $jenc
@@ -422,6 +475,17 @@ class TopLevel {
      * @param JSONSerializer|float|null $jsonSerializer
      * @param JSONToken|float|null $jsonToken
      * @param JSONWriter|float|null $jsonWriter
+     * @param JSONAny|float|null $jsonAny
+     * @param JSONCodingKey|float|null $jsonCodingKey
+     * @param JSONDecoder|float|null $jsonDecoder
+     * @param JSONEncoder|float|null $jsonEncoder
+     * @param JSONExceptionClass|float|null $jsonException
+     * @param JSONGenerator|float|null $jsonGenerator
+     * @param JSONNode|float|null $jsonNode
+     * @param JSONNull|float|null $jsonNull
+     * @param JSONParser|float|null $jsonParser
+     * @param JSONReader|float|null $jsonReader
+     * @param JSONTokenType|float|null $jsonTokenType
      * @param Lambda|float|null $lambda
      * @param Lazy|float|null $lazy
      * @param Left|float|null $left
@@ -446,14 +510,17 @@ class TopLevel {
      * @param None|float|null $none
      * @param Nonlocal|float|null $nonlocal
      * @param Nonmutating|float|null $nonmutating
+     * @param NoSuchMethod|float|null $noSuchMethod
      * @param Not|float|null $not
      * @param NotEq|float|null $notEq
+     * @param NSError|float|null $nsError
      * @param NSString|float|null $nsString
      * @param NULLClass|float|null $null
      * @param UnionNullNull|float|null $topLevelNull
      * @param Nullptr|float|null $nullptr
      * @param Number|float|null $number
      * @param ObjectClass|float|null $object
+     * @param ObjectMapper|float|null $objectMapper
      * @param Of|float|null $of
      * @param Oneway|float|null $oneway
      * @param Open|float|null $open
@@ -472,6 +539,7 @@ class TopLevel {
      * @param Prefix|float|null $prefix
      * @param PrintClass|float|null $print
      * @param Printf|float|null $printf
+     * @param PrintMembers|float|null $printMembers
      * @param PrivateClass|float|null $private
      * @param ProtectedClass|float|null $protected
      * @param Protocol|float|null $protocol
@@ -482,6 +550,7 @@ class TopLevel {
      * @param Range|float|null $range
      * @param ReadonlyClass|float|null $readonly
      * @param Ref|float|null $ref
+     * @param RegExp|float|null $regExp
      * @param Register|float|null $register
      * @param ReinterpretCast|float|null $reinterpretCast
      * @param Repeat|float|null $repeat
@@ -493,6 +562,8 @@ class TopLevel {
      * @param Rethrows|float|null $rethrows
      * @param ReturnClass|float|null $return
      * @param Right|float|null $right
+     * @param RuntimeType|float|null $runtimeType
+     * @param S|float|null $s
      * @param Sbyte|float|null $sbyte
      * @param Sealed|float|null $sealed
      * @param Sel|float|null $sel
@@ -500,14 +571,19 @@ class TopLevel {
      * @param SelfClass|float|null $self
      * @param UnionSelfSelf|float|null $topLevelSelf
      * @param Serialize|float|null $serialize
+     * @param SerializerProvider|float|null $serializerProvider
      * @param Set|float|null $set
      * @param Short|float|null $short
      * @param Signed|float|null $signed
+     * @param SimpleModule|float|null $simpleModule
      * @param Sizeof|float|null $sizeof
      * @param Stackalloc|float|null $stackalloc
+     * @param Standards|float|null $standards
      * @param StaticClass|float|null $static
      * @param StaticAssert|float|null $staticAssert
      * @param StaticCast|float|null $staticCast
+     * @param StdDeserializer|float|null $stdDeserializer
+     * @param StdSerializer|float|null $stdSerializer
      * @param Strictfp|float|null $strictfp
      * @param StringClass|float|null $string
      * @param Struct|float|null $struct
@@ -523,8 +599,11 @@ class TopLevel {
      * @param ThreadLocal|float|null $threadLocal
      * @param ThrowClass|float|null $throw
      * @param Throws|float|null $throws
+     * @param TimeOnly|float|null $timeOnly
+     * @param TimeOnlyConverter|float|null $timeOnlyConverter
      * @param ToJSON|float|null $toJSON
      * @param TopLevelClass|float|null $topLevel
+     * @param ToString|float|null $toString
      * @param Transient|float|null $transient
      * @param TrueClass|float|null $true
      * @param UnionTrueTrue|float|null $topLevelTrue
@@ -546,6 +625,9 @@ class TopLevel {
      * @param Unsigned|float|null $unsigned
      * @param Ushort|float|null $ushort
      * @param Using|float|null $using
+     * @param Utf8JSONReader|float|null $utf8JSONReader
+     * @param Utf8JSONWriter|float|null $utf8JSONWriter
+     * @param UUID|float|null $uuid
      * @param VarClass|float|null $var
      * @param Virtual|float|null $virtual
      * @param VoidClass|float|null $void
@@ -561,7 +643,7 @@ class TopLevel {
      * @param Yes|float|null $yes
      * @param YieldClass|float|null $yield
      */
-    public function __construct(Union|float|null $empty, UnionBoolBool|float|null $topLevelBool, Complex|float|null $complex, Imaginery|float|null $imaginery, AbstractClass|float|null $abstract, Alignas|float|null $alignas, Alignof|float|null $alignof, AndClass|float|null $and, AndEq|float|null $andEq, AnyClass|float|null $topLevelAny, Any|float|null $any, ArrayClass|float|null $array, AsClass|float|null $as, ASM|float|null $asm, Assert|float|null $assert, Associatedtype|float|null $associatedtype, Associativity|float|null $associativity, Async|float|null $async, Atomic|float|null $atomic, AtomicCancel|float|null $atomicCancel, AtomicCommit|float|null $atomicCommit, AtomicNoexcept|float|null $atomicNoexcept, Auto|float|null $auto, Await|float|null $await, Base|float|null $base, Bitand|float|null $bitand, Bitor|float|null $bitor, BOOLClass|float|null $bool, UnionBoolBoolClass|float|null $purpleBool, Boolean|float|null $boolean, BreakClass|float|null $break, Bycopy|float|null $bycopy, Byref|float|null $byref, Byte|float|null $byte, CaseClass|float|null $case, CatchClass|float|null $catch, Chan|float|null $chan, Char|float|null $char, Char16T|float|null $char16T, Char32T|float|null $char32T, Checked|float|null $checked, UnionClassClass|float|null $topLevelClass, ClassClass|float|null $class, CoAwait|float|null $coAwait, CoReturn|float|null $coReturn, CoYield|float|null $coYield, Compl|float|null $compl, Concept|float|null $concept, Console|float|null $console, ConstClass|float|null $const, ConstCast|float|null $constCast, Constexpr|float|null $constexpr, Constructor|float|null $constructor, ContinueClass|float|null $continue, Convenience|float|null $convenience, Convert|float|null $convert, ConverterClass|float|null $converter, Date|float|null $date, DateParseHandling|float|null $dateParseHandling, Debugger|float|null $debugger, Decimal|float|null $decimal, DeclareClass|float|null $declare, Decltype|float|null $decltype, DecodeString|float|null $decodeString, Def|float|null $def, DefaultClass|float|null $default, Defer|float|null $defer, Deinit|float|null $deinit, Del|float|null $del, Delegate|float|null $delegate, Delete|float|null $delete, Dict|float|null $dict, Dictionary|float|null $dictionary, DidSet|float|null $didSet, DoClass|float|null $do, Double|float|null $double, ?float $dummy, Dynamic|float|null $dynamic, DynamicCast|float|null $dynamicCast, Elif|float|null $elif, ElseClass|float|null $else, EncodeQuickType|float|null $encodeQuickType, EnumClass|float|null $enum, Event|float|null $event, Except|float|null $except, ExceptionClass|float|null $exception, Explicit|float|null $explicit, Export|float|null $export, Exposing|float|null $exposing, ExtendsClass|float|null $extends, Extension|float|null $extension, Extern|float|null $extern, Fallthrough|float|null $fallthrough, UnionFalseFalse|float|null $topLevelFalse, FalseClass|float|null $false, Fileprivate|float|null $fileprivate, FinalClass|float|null $final, FinallyClass|float|null $finally, Fixed|float|null $fixed, FloatClass|float|null $float, ForClass|float|null $for, ForeachClass|float|null $foreach, Friend|float|null $friend, From|float|null $from, FromJSON|float|null $fromJSON, Func|float|null $func, FunctionClass|float|null $function, Get|float|null $get, GlobalClass|float|null $global, Go|float|null $go, GotoClass|float|null $goto, Guard|float|null $guard, HasOwnProperty|float|null $hasOwnProperty, ID|float|null $id, IfClass|float|null $if, Imp|float|null $imp, ImplementsClass|float|null $implements, Implicit|float|null $implicit, Import|float|null $import, In|float|null $in, Indirect|float|null $indirect, Infix|float|null $infix, Init|float|null $init, Inline|float|null $inline, Inout|float|null $inout, InstanceofClass|float|null $instanceof, IntClass|float|null $int, InterfaceClass|float|null $interface, Internal|float|null $internal, Is|float|null $is, IterableClass|float|null $iterable, Jdec|float|null $jdec, Jenc|float|null $jenc, Jpipe|float|null $jpipe, JSON|float|null $json, JSONConverter|float|null $jsonConverter, JSONSerializer|float|null $jsonSerializer, JSONToken|float|null $jsonToken, JSONWriter|float|null $jsonWriter, Lambda|float|null $lambda, Lazy|float|null $lazy, Left|float|null $left, Let|float|null $let, ListClass|float|null $list, Lock|float|null $lock, Long|float|null $long, Map|float|null $map, MetadataPropertyHandling|float|null $metadataPropertyHandling, Module|float|null $module, Mutable|float|null $mutable, Mutating|float|null $mutating, NamespaceClass|float|null $namespace, Native|float|null $native, NewClass|float|null $new, Newtonsoft|float|null $newtonsoft, Nil|float|null $nil, No|float|null $no, Noexcept|float|null $noexcept, Nonatomic|float|null $nonatomic, NoneClass|float|null $topLevelNone, None|float|null $none, Nonlocal|float|null $nonlocal, Nonmutating|float|null $nonmutating, Not|float|null $not, NotEq|float|null $notEq, NSString|float|null $nsString, NULLClass|float|null $null, UnionNullNull|float|null $topLevelNull, Nullptr|float|null $nullptr, Number|float|null $number, ObjectClass|float|null $object, Of|float|null $of, Oneway|float|null $oneway, Open|float|null $open, Operator|float|null $operator, Optional|float|null $optional, OrClass|float|null $or, OrEq|float|null $orEq, Out|float|null $out, OverrideClass|float|null $override, Package|float|null $package, Params|float|null $params, Pass|float|null $pass, Port|float|null $port, Postfix|float|null $postfix, Precedence|float|null $precedence, Prefix|float|null $prefix, PrintClass|float|null $print, Printf|float|null $printf, PrivateClass|float|null $private, ProtectedClass|float|null $protected, Protocol|float|null $protocol, ProtocolClass|float|null $topLevelProtocol, PublicClass|float|null $public, Quicktype|float|null $quicktype, Raise|float|null $raise, Range|float|null $range, ReadonlyClass|float|null $readonly, Ref|float|null $ref, Register|float|null $register, ReinterpretCast|float|null $reinterpretCast, Repeat|float|null $repeat, RequireClass|float|null $require, Required|float|null $required, Requires|float|null $requires, Restrict|float|null $restrict, Retain|float|null $retain, Rethrows|float|null $rethrows, ReturnClass|float|null $return, Right|float|null $right, Sbyte|float|null $sbyte, Sealed|float|null $sealed, Sel|float|null $sel, Select|float|null $select, SelfClass|float|null $self, UnionSelfSelf|float|null $topLevelSelf, Serialize|float|null $serialize, Set|float|null $set, Short|float|null $short, Signed|float|null $signed, Sizeof|float|null $sizeof, Stackalloc|float|null $stackalloc, StaticClass|float|null $static, StaticAssert|float|null $staticAssert, StaticCast|float|null $staticCast, Strictfp|float|null $strictfp, StringClass|float|null $string, Struct|float|null $struct, Subscript|float|null $subscript, Super|float|null $super, SwitchClass|float|null $switch, Symbol|float|null $symbol, Synchronized|float|null $synchronized, System|float|null $system, Template|float|null $template, Then|float|null $then, This|float|null $topLevelThis, ThreadLocal|float|null $threadLocal, ThrowClass|float|null $throw, Throws|float|null $throws, ToJSON|float|null $toJSON, TopLevelClass|float|null $topLevel, Transient|float|null $transient, TrueClass|float|null $true, UnionTrueTrue|float|null $topLevelTrue, TryClass|float|null $try, Type|float|null $type, TypeClass|float|null $topLevelType, Typealias|float|null $typealias, Typedef|float|null $typedef, Typeid|float|null $typeid, Typename|float|null $typename, Typeof|float|null $typeof, Uint|float|null $uint, Ulong|float|null $ulong, Unchecked|float|null $unchecked, Undefined|float|null $undefined, UnionClass|float|null $union, Unowned|float|null $unowned, Unsafe|float|null $unsafe, Unsigned|float|null $unsigned, Ushort|float|null $ushort, Using|float|null $using, VarClass|float|null $var, Virtual|float|null $virtual, VoidClass|float|null $void, Volatile|float|null $volatile, WcharT|float|null $wcharT, Weak|float|null $weak, Where|float|null $where, WhileClass|float|null $while, WillSet|float|null $willSet, With|float|null $with, XorClass|float|null $xor, XorEq|float|null $xorEq, Yes|float|null $yes, YieldClass|float|null $yield) {
+    public function __construct(Union|float|null $empty, UnionBoolBool|float|null $topLevelBool, Complex|float|null $complex, Imaginery|float|null $imaginery, AbstractClass|float|null $abstract, Alignas|float|null $alignas, Alignof|float|null $alignof, AndClass|float|null $and, AndEq|float|null $andEq, AnyClass|float|null $topLevelAny, Any|float|null $any, ArrayClass|float|null $array, AsClass|float|null $as, ASM|float|null $asm, Assert|float|null $assert, Associatedtype|float|null $associatedtype, Associativity|float|null $associativity, Async|float|null $async, Atomic|float|null $atomic, AtomicCancel|float|null $atomicCancel, AtomicCommit|float|null $atomicCommit, AtomicNoexcept|float|null $atomicNoexcept, Auto|float|null $auto, Await|float|null $await, Base|float|null $base, Bitand|float|null $bitand, Bitor|float|null $bitor, BOOLClass|float|null $bool, UnionBoolBoolClass|float|null $purpleBool, Boolean|float|null $boolean, BreakClass|float|null $break, Bycopy|float|null $bycopy, Byref|float|null $byref, Byte|float|null $byte, CaseClass|float|null $case, CatchClass|float|null $catch, Chan|float|null $chan, Char|float|null $char, Char16T|float|null $char16T, Char32T|float|null $char32T, Checked|float|null $checked, UnionClassClass|float|null $topLevelClass, ClassClass|float|null $class, CloneClass|float|null $clone, CoAwait|float|null $coAwait, CoReturn|float|null $coReturn, CoYield|float|null $coYield, Compl|float|null $compl, Concept|float|null $concept, Console|float|null $console, ConstClass|float|null $const, ConstCast|float|null $constCast, Constexpr|float|null $constexpr, Constructor|float|null $constructor, ContinueClass|float|null $continue, Convenience|float|null $convenience, Convert|float|null $convert, ConverterClass|float|null $converter, CultureInfo|float|null $cultureInfo, Date|float|null $date, DateParseHandling|float|null $dateParseHandling, DateFormatter|float|null $dateFormatter, DateOnly|float|null $dateOnly, DateOnlyConverter|float|null $dateOnlyConverter, DateTimeClass|float|null $dateTime, DateTimeStyles|float|null $dateTimeStyles, Debugger|float|null $debugger, Decimal|float|null $decimal, DeclareClass|float|null $declare, Decltype|float|null $decltype, DecodeString|float|null $decodeString, Def|float|null $def, DefaultClass|float|null $default, Defer|float|null $defer, Deinit|float|null $deinit, Del|float|null $del, Delegate|float|null $delegate, Delete|float|null $delete, Dict|float|null $dict, Dictionary|float|null $dictionary, DidSet|float|null $didSet, DoClass|float|null $do, Double|float|null $double, ?float $dummy, Dynamic|float|null $dynamic, DynamicCast|float|null $dynamicCast, Elif|float|null $elif, ElseClass|float|null $else, EncodeQuickType|float|null $encodeQuickType, EnumClass|float|null $enum, EnumValues|float|null $enumValues, EqualityContract|float|null $equalityContract, Event|float|null $event, Except|float|null $except, ExceptionClass|float|null $exception, Explicit|float|null $explicit, Export|float|null $export, Exposing|float|null $exposing, ExtendsClass|float|null $extends, Extension|float|null $extension, Extern|float|null $extern, Fallthrough|float|null $fallthrough, UnionFalseFalse|float|null $topLevelFalse, FalseClass|float|null $false, Fileprivate|float|null $fileprivate, FinalClass|float|null $final, FinallyClass|float|null $finally, Fixed|float|null $fixed, FloatClass|float|null $float, ForClass|float|null $for, ForeachClass|float|null $foreach, FormatException|float|null $formatException, Friend|float|null $friend, From|float|null $from, FromJSON|float|null $fromJSON, Func|float|null $func, FunctionClass|float|null $function, Get|float|null $get, GlobalClass|float|null $global, Go|float|null $go, GotoClass|float|null $goto, Guard|float|null $guard, HashCode|float|null $hashCode, HasOwnProperty|float|null $hasOwnProperty, ID|float|null $id, IfClass|float|null $if, Imp|float|null $imp, ImplementsClass|float|null $implements, Implicit|float|null $implicit, Import|float|null $import, In|float|null $in, Indirect|float|null $indirect, Infix|float|null $infix, Init|float|null $init, Inline|float|null $inline, Inout|float|null $inout, InstanceofClass|float|null $instanceof, IntClass|float|null $int, InterfaceClass|float|null $interface, Internal|float|null $internal, Is|float|null $is, ISODateTimeOffsetConverter|float|null $isoDateTimeOffsetConverter, IterableClass|float|null $iterable, Jdec|float|null $jdec, Jenc|float|null $jenc, Jpipe|float|null $jpipe, JSON|float|null $json, JSONConverter|float|null $jsonConverter, JSONSerializer|float|null $jsonSerializer, JSONToken|float|null $jsonToken, JSONWriter|float|null $jsonWriter, JSONAny|float|null $jsonAny, JSONCodingKey|float|null $jsonCodingKey, JSONDecoder|float|null $jsonDecoder, JSONEncoder|float|null $jsonEncoder, JSONExceptionClass|float|null $jsonException, JSONGenerator|float|null $jsonGenerator, JSONNode|float|null $jsonNode, JSONNull|float|null $jsonNull, JSONParser|float|null $jsonParser, JSONReader|float|null $jsonReader, JSONTokenType|float|null $jsonTokenType, Lambda|float|null $lambda, Lazy|float|null $lazy, Left|float|null $left, Let|float|null $let, ListClass|float|null $list, Lock|float|null $lock, Long|float|null $long, Map|float|null $map, MetadataPropertyHandling|float|null $metadataPropertyHandling, Module|float|null $module, Mutable|float|null $mutable, Mutating|float|null $mutating, NamespaceClass|float|null $namespace, Native|float|null $native, NewClass|float|null $new, Newtonsoft|float|null $newtonsoft, Nil|float|null $nil, No|float|null $no, Noexcept|float|null $noexcept, Nonatomic|float|null $nonatomic, NoneClass|float|null $topLevelNone, None|float|null $none, Nonlocal|float|null $nonlocal, Nonmutating|float|null $nonmutating, NoSuchMethod|float|null $noSuchMethod, Not|float|null $not, NotEq|float|null $notEq, NSError|float|null $nsError, NSString|float|null $nsString, NULLClass|float|null $null, UnionNullNull|float|null $topLevelNull, Nullptr|float|null $nullptr, Number|float|null $number, ObjectClass|float|null $object, ObjectMapper|float|null $objectMapper, Of|float|null $of, Oneway|float|null $oneway, Open|float|null $open, Operator|float|null $operator, Optional|float|null $optional, OrClass|float|null $or, OrEq|float|null $orEq, Out|float|null $out, OverrideClass|float|null $override, Package|float|null $package, Params|float|null $params, Pass|float|null $pass, Port|float|null $port, Postfix|float|null $postfix, Precedence|float|null $precedence, Prefix|float|null $prefix, PrintClass|float|null $print, Printf|float|null $printf, PrintMembers|float|null $printMembers, PrivateClass|float|null $private, ProtectedClass|float|null $protected, Protocol|float|null $protocol, ProtocolClass|float|null $topLevelProtocol, PublicClass|float|null $public, Quicktype|float|null $quicktype, Raise|float|null $raise, Range|float|null $range, ReadonlyClass|float|null $readonly, Ref|float|null $ref, RegExp|float|null $regExp, Register|float|null $register, ReinterpretCast|float|null $reinterpretCast, Repeat|float|null $repeat, RequireClass|float|null $require, Required|float|null $required, Requires|float|null $requires, Restrict|float|null $restrict, Retain|float|null $retain, Rethrows|float|null $rethrows, ReturnClass|float|null $return, Right|float|null $right, RuntimeType|float|null $runtimeType, S|float|null $s, Sbyte|float|null $sbyte, Sealed|float|null $sealed, Sel|float|null $sel, Select|float|null $select, SelfClass|float|null $self, UnionSelfSelf|float|null $topLevelSelf, Serialize|float|null $serialize, SerializerProvider|float|null $serializerProvider, Set|float|null $set, Short|float|null $short, Signed|float|null $signed, SimpleModule|float|null $simpleModule, Sizeof|float|null $sizeof, Stackalloc|float|null $stackalloc, Standards|float|null $standards, StaticClass|float|null $static, StaticAssert|float|null $staticAssert, StaticCast|float|null $staticCast, StdDeserializer|float|null $stdDeserializer, StdSerializer|float|null $stdSerializer, Strictfp|float|null $strictfp, StringClass|float|null $string, Struct|float|null $struct, Subscript|float|null $subscript, Super|float|null $super, SwitchClass|float|null $switch, Symbol|float|null $symbol, Synchronized|float|null $synchronized, System|float|null $system, Template|float|null $template, Then|float|null $then, This|float|null $topLevelThis, ThreadLocal|float|null $threadLocal, ThrowClass|float|null $throw, Throws|float|null $throws, TimeOnly|float|null $timeOnly, TimeOnlyConverter|float|null $timeOnlyConverter, ToJSON|float|null $toJSON, TopLevelClass|float|null $topLevel, ToString|float|null $toString, Transient|float|null $transient, TrueClass|float|null $true, UnionTrueTrue|float|null $topLevelTrue, TryClass|float|null $try, Type|float|null $type, TypeClass|float|null $topLevelType, Typealias|float|null $typealias, Typedef|float|null $typedef, Typeid|float|null $typeid, Typename|float|null $typename, Typeof|float|null $typeof, Uint|float|null $uint, Ulong|float|null $ulong, Unchecked|float|null $unchecked, Undefined|float|null $undefined, UnionClass|float|null $union, Unowned|float|null $unowned, Unsafe|float|null $unsafe, Unsigned|float|null $unsigned, Ushort|float|null $ushort, Using|float|null $using, Utf8JSONReader|float|null $utf8JSONReader, Utf8JSONWriter|float|null $utf8JSONWriter, UUID|float|null $uuid, VarClass|float|null $var, Virtual|float|null $virtual, VoidClass|float|null $void, Volatile|float|null $volatile, WcharT|float|null $wcharT, Weak|float|null $weak, Where|float|null $where, WhileClass|float|null $while, WillSet|float|null $willSet, With|float|null $with, XorClass|float|null $xor, XorEq|float|null $xorEq, Yes|float|null $yes, YieldClass|float|null $yield) {
         $this->empty = $empty;
         $this->topLevelBool = $topLevelBool;
         $this->complex = $complex;
@@ -605,6 +687,7 @@ class TopLevel {
         $this->checked = $checked;
         $this->topLevelClass = $topLevelClass;
         $this->class = $class;
+        $this->clone = $clone;
         $this->coAwait = $coAwait;
         $this->coReturn = $coReturn;
         $this->coYield = $coYield;
@@ -619,8 +702,14 @@ class TopLevel {
         $this->convenience = $convenience;
         $this->convert = $convert;
         $this->converter = $converter;
+        $this->cultureInfo = $cultureInfo;
         $this->date = $date;
         $this->dateParseHandling = $dateParseHandling;
+        $this->dateFormatter = $dateFormatter;
+        $this->dateOnly = $dateOnly;
+        $this->dateOnlyConverter = $dateOnlyConverter;
+        $this->dateTime = $dateTime;
+        $this->dateTimeStyles = $dateTimeStyles;
         $this->debugger = $debugger;
         $this->decimal = $decimal;
         $this->declare = $declare;
@@ -645,6 +734,8 @@ class TopLevel {
         $this->else = $else;
         $this->encodeQuickType = $encodeQuickType;
         $this->enum = $enum;
+        $this->enumValues = $enumValues;
+        $this->equalityContract = $equalityContract;
         $this->event = $event;
         $this->except = $except;
         $this->exception = $exception;
@@ -664,6 +755,7 @@ class TopLevel {
         $this->float = $float;
         $this->for = $for;
         $this->foreach = $foreach;
+        $this->formatException = $formatException;
         $this->friend = $friend;
         $this->from = $from;
         $this->fromJSON = $fromJSON;
@@ -674,6 +766,7 @@ class TopLevel {
         $this->go = $go;
         $this->goto = $goto;
         $this->guard = $guard;
+        $this->hashCode = $hashCode;
         $this->hasOwnProperty = $hasOwnProperty;
         $this->id = $id;
         $this->if = $if;
@@ -692,6 +785,7 @@ class TopLevel {
         $this->interface = $interface;
         $this->internal = $internal;
         $this->is = $is;
+        $this->isoDateTimeOffsetConverter = $isoDateTimeOffsetConverter;
         $this->iterable = $iterable;
         $this->jdec = $jdec;
         $this->jenc = $jenc;
@@ -701,6 +795,17 @@ class TopLevel {
         $this->jsonSerializer = $jsonSerializer;
         $this->jsonToken = $jsonToken;
         $this->jsonWriter = $jsonWriter;
+        $this->jsonAny = $jsonAny;
+        $this->jsonCodingKey = $jsonCodingKey;
+        $this->jsonDecoder = $jsonDecoder;
+        $this->jsonEncoder = $jsonEncoder;
+        $this->jsonException = $jsonException;
+        $this->jsonGenerator = $jsonGenerator;
+        $this->jsonNode = $jsonNode;
+        $this->jsonNull = $jsonNull;
+        $this->jsonParser = $jsonParser;
+        $this->jsonReader = $jsonReader;
+        $this->jsonTokenType = $jsonTokenType;
         $this->lambda = $lambda;
         $this->lazy = $lazy;
         $this->left = $left;
@@ -725,14 +830,17 @@ class TopLevel {
         $this->none = $none;
         $this->nonlocal = $nonlocal;
         $this->nonmutating = $nonmutating;
+        $this->noSuchMethod = $noSuchMethod;
         $this->not = $not;
         $this->notEq = $notEq;
+        $this->nsError = $nsError;
         $this->nsString = $nsString;
         $this->null = $null;
         $this->topLevelNull = $topLevelNull;
         $this->nullptr = $nullptr;
         $this->number = $number;
         $this->object = $object;
+        $this->objectMapper = $objectMapper;
         $this->of = $of;
         $this->oneway = $oneway;
         $this->open = $open;
@@ -751,6 +859,7 @@ class TopLevel {
         $this->prefix = $prefix;
         $this->print = $print;
         $this->printf = $printf;
+        $this->printMembers = $printMembers;
         $this->private = $private;
         $this->protected = $protected;
         $this->protocol = $protocol;
@@ -761,6 +870,7 @@ class TopLevel {
         $this->range = $range;
         $this->readonly = $readonly;
         $this->ref = $ref;
+        $this->regExp = $regExp;
         $this->register = $register;
         $this->reinterpretCast = $reinterpretCast;
         $this->repeat = $repeat;
@@ -772,6 +882,8 @@ class TopLevel {
         $this->rethrows = $rethrows;
         $this->return = $return;
         $this->right = $right;
+        $this->runtimeType = $runtimeType;
+        $this->s = $s;
         $this->sbyte = $sbyte;
         $this->sealed = $sealed;
         $this->sel = $sel;
@@ -779,14 +891,19 @@ class TopLevel {
         $this->self = $self;
         $this->topLevelSelf = $topLevelSelf;
         $this->serialize = $serialize;
+        $this->serializerProvider = $serializerProvider;
         $this->set = $set;
         $this->short = $short;
         $this->signed = $signed;
+        $this->simpleModule = $simpleModule;
         $this->sizeof = $sizeof;
         $this->stackalloc = $stackalloc;
+        $this->standards = $standards;
         $this->static = $static;
         $this->staticAssert = $staticAssert;
         $this->staticCast = $staticCast;
+        $this->stdDeserializer = $stdDeserializer;
+        $this->stdSerializer = $stdSerializer;
         $this->strictfp = $strictfp;
         $this->string = $string;
         $this->struct = $struct;
@@ -802,8 +919,11 @@ class TopLevel {
         $this->threadLocal = $threadLocal;
         $this->throw = $throw;
         $this->throws = $throws;
+        $this->timeOnly = $timeOnly;
+        $this->timeOnlyConverter = $timeOnlyConverter;
         $this->toJSON = $toJSON;
         $this->topLevel = $topLevel;
+        $this->toString = $toString;
         $this->transient = $transient;
         $this->true = $true;
         $this->topLevelTrue = $topLevelTrue;
@@ -825,6 +945,9 @@ class TopLevel {
         $this->unsigned = $unsigned;
         $this->ushort = $ushort;
         $this->using = $using;
+        $this->utf8JSONReader = $utf8JSONReader;
+        $this->utf8JSONWriter = $utf8JSONWriter;
+        $this->uuid = $uuid;
         $this->var = $var;
         $this->virtual = $virtual;
         $this->void = $void;
@@ -4109,6 +4232,82 @@ class TopLevel {
         return ClassClass::sample(); /*73:class*/
     }
 
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return CloneClass|float|null
+     */
+    public static function fromClone(stdClass|float|null $value): CloneClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return CloneClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toClone(): stdClass|float|null {
+        if (TopLevel::validateClone($this->clone))  {
+            if (is_null($this->clone)) {
+                return $this->clone; /*null*/
+            } elseif ($this->clone instanceof CloneClass) {
+                return $this->clone->to(); /*class*/
+            } elseif (is_float($this->clone) || is_int($this->clone)) {
+                return $this->clone; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::clone');
+    }
+
+    /**
+     * @param CloneClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateClone(CloneClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::clone");
+            }
+        } elseif ($value instanceof CloneClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::clone");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::clone");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return CloneClass|float|null
+     */
+    public function getClone(): CloneClass|float|null {
+        if (TopLevel::validateClone($this->clone))  {
+            return $this->clone;
+        }
+        throw new Exception('never get to getClone TopLevel::clone');
+    }
+
+    /**
+     * @return CloneClass|float|null
+     */
+    public static function sampleClone(): CloneClass|float|null {
+        return CloneClass::sample(); /*74:clone*/
+    }
+
     /**
      * @param stdClass|float|null $value
      * @throws Exception
@@ -4182,7 +4381,7 @@ class TopLevel {
      * @return CoAwait|float|null
      */
     public static function sampleCoAwait(): CoAwait|float|null {
-        return CoAwait::sample(); /*74:coAwait*/
+        return CoAwait::sample(); /*75:coAwait*/
     }
 
     /**
@@ -4258,7 +4457,7 @@ class TopLevel {
      * @return CoReturn|float|null
      */
     public static function sampleCoReturn(): CoReturn|float|null {
-        return CoReturn::sample(); /*75:coReturn*/
+        return CoReturn::sample(); /*76:coReturn*/
     }
 
     /**
@@ -4334,7 +4533,7 @@ class TopLevel {
      * @return CoYield|float|null
      */
     public static function sampleCoYield(): CoYield|float|null {
-        return CoYield::sample(); /*76:coYield*/
+        return CoYield::sample(); /*77:coYield*/
     }
 
     /**
@@ -4410,7 +4609,7 @@ class TopLevel {
      * @return Compl|float|null
      */
     public static function sampleCompl(): Compl|float|null {
-        return Compl::sample(); /*77:compl*/
+        return Compl::sample(); /*78:compl*/
     }
 
     /**
@@ -4486,7 +4685,7 @@ class TopLevel {
      * @return Concept|float|null
      */
     public static function sampleConcept(): Concept|float|null {
-        return Concept::sample(); /*78:concept*/
+        return Concept::sample(); /*79:concept*/
     }
 
     /**
@@ -4562,7 +4761,7 @@ class TopLevel {
      * @return Console|float|null
      */
     public static function sampleConsole(): Console|float|null {
-        return Console::sample(); /*79:console*/
+        return Console::sample(); /*80:console*/
     }
 
     /**
@@ -4638,7 +4837,7 @@ class TopLevel {
      * @return ConstClass|float|null
      */
     public static function sampleConst(): ConstClass|float|null {
-        return ConstClass::sample(); /*80:const*/
+        return ConstClass::sample(); /*81:const*/
     }
 
     /**
@@ -4714,7 +4913,7 @@ class TopLevel {
      * @return ConstCast|float|null
      */
     public static function sampleConstCast(): ConstCast|float|null {
-        return ConstCast::sample(); /*81:constCast*/
+        return ConstCast::sample(); /*82:constCast*/
     }
 
     /**
@@ -4790,7 +4989,7 @@ class TopLevel {
      * @return Constexpr|float|null
      */
     public static function sampleConstexpr(): Constexpr|float|null {
-        return Constexpr::sample(); /*82:constexpr*/
+        return Constexpr::sample(); /*83:constexpr*/
     }
 
     /**
@@ -4866,7 +5065,7 @@ class TopLevel {
      * @return Constructor|float|null
      */
     public static function sampleConstructor(): Constructor|float|null {
-        return Constructor::sample(); /*83:constructor*/
+        return Constructor::sample(); /*84:constructor*/
     }
 
     /**
@@ -4942,7 +5141,7 @@ class TopLevel {
      * @return ContinueClass|float|null
      */
     public static function sampleContinue(): ContinueClass|float|null {
-        return ContinueClass::sample(); /*84:continue*/
+        return ContinueClass::sample(); /*85:continue*/
     }
 
     /**
@@ -5018,7 +5217,7 @@ class TopLevel {
      * @return Convenience|float|null
      */
     public static function sampleConvenience(): Convenience|float|null {
-        return Convenience::sample(); /*85:convenience*/
+        return Convenience::sample(); /*86:convenience*/
     }
 
     /**
@@ -5094,7 +5293,7 @@ class TopLevel {
      * @return Convert|float|null
      */
     public static function sampleConvert(): Convert|float|null {
-        return Convert::sample(); /*86:convert*/
+        return Convert::sample(); /*87:convert*/
     }
 
     /**
@@ -5170,7 +5369,83 @@ class TopLevel {
      * @return ConverterClass|float|null
      */
     public static function sampleConverter(): ConverterClass|float|null {
-        return ConverterClass::sample(); /*87:converter*/
+        return ConverterClass::sample(); /*88:converter*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return CultureInfo|float|null
+     */
+    public static function fromCultureInfo(stdClass|float|null $value): CultureInfo|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return CultureInfo::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toCultureInfo(): stdClass|float|null {
+        if (TopLevel::validateCultureInfo($this->cultureInfo))  {
+            if (is_null($this->cultureInfo)) {
+                return $this->cultureInfo; /*null*/
+            } elseif ($this->cultureInfo instanceof CultureInfo) {
+                return $this->cultureInfo->to(); /*class*/
+            } elseif (is_float($this->cultureInfo) || is_int($this->cultureInfo)) {
+                return $this->cultureInfo; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::cultureInfo');
+    }
+
+    /**
+     * @param CultureInfo|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateCultureInfo(CultureInfo|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::cultureInfo");
+            }
+        } elseif ($value instanceof CultureInfo) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::cultureInfo");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::cultureInfo");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return CultureInfo|float|null
+     */
+    public function getCultureInfo(): CultureInfo|float|null {
+        if (TopLevel::validateCultureInfo($this->cultureInfo))  {
+            return $this->cultureInfo;
+        }
+        throw new Exception('never get to getCultureInfo TopLevel::cultureInfo');
+    }
+
+    /**
+     * @return CultureInfo|float|null
+     */
+    public static function sampleCultureInfo(): CultureInfo|float|null {
+        return CultureInfo::sample(); /*89:cultureInfo*/
     }
 
     /**
@@ -5246,7 +5521,7 @@ class TopLevel {
      * @return Date|float|null
      */
     public static function sampleDate(): Date|float|null {
-        return Date::sample(); /*88:date*/
+        return Date::sample(); /*90:date*/
     }
 
     /**
@@ -5322,7 +5597,387 @@ class TopLevel {
      * @return DateParseHandling|float|null
      */
     public static function sampleDateParseHandling(): DateParseHandling|float|null {
-        return DateParseHandling::sample(); /*89:dateParseHandling*/
+        return DateParseHandling::sample(); /*91:dateParseHandling*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return DateFormatter|float|null
+     */
+    public static function fromDateFormatter(stdClass|float|null $value): DateFormatter|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return DateFormatter::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toDateFormatter(): stdClass|float|null {
+        if (TopLevel::validateDateFormatter($this->dateFormatter))  {
+            if (is_null($this->dateFormatter)) {
+                return $this->dateFormatter; /*null*/
+            } elseif ($this->dateFormatter instanceof DateFormatter) {
+                return $this->dateFormatter->to(); /*class*/
+            } elseif (is_float($this->dateFormatter) || is_int($this->dateFormatter)) {
+                return $this->dateFormatter; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::dateFormatter');
+    }
+
+    /**
+     * @param DateFormatter|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDateFormatter(DateFormatter|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateFormatter");
+            }
+        } elseif ($value instanceof DateFormatter) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateFormatter");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::dateFormatter");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return DateFormatter|float|null
+     */
+    public function getDateFormatter(): DateFormatter|float|null {
+        if (TopLevel::validateDateFormatter($this->dateFormatter))  {
+            return $this->dateFormatter;
+        }
+        throw new Exception('never get to getDateFormatter TopLevel::dateFormatter');
+    }
+
+    /**
+     * @return DateFormatter|float|null
+     */
+    public static function sampleDateFormatter(): DateFormatter|float|null {
+        return DateFormatter::sample(); /*92:dateFormatter*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return DateOnly|float|null
+     */
+    public static function fromDateOnly(stdClass|float|null $value): DateOnly|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return DateOnly::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toDateOnly(): stdClass|float|null {
+        if (TopLevel::validateDateOnly($this->dateOnly))  {
+            if (is_null($this->dateOnly)) {
+                return $this->dateOnly; /*null*/
+            } elseif ($this->dateOnly instanceof DateOnly) {
+                return $this->dateOnly->to(); /*class*/
+            } elseif (is_float($this->dateOnly) || is_int($this->dateOnly)) {
+                return $this->dateOnly; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::dateOnly');
+    }
+
+    /**
+     * @param DateOnly|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDateOnly(DateOnly|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateOnly");
+            }
+        } elseif ($value instanceof DateOnly) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateOnly");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::dateOnly");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return DateOnly|float|null
+     */
+    public function getDateOnly(): DateOnly|float|null {
+        if (TopLevel::validateDateOnly($this->dateOnly))  {
+            return $this->dateOnly;
+        }
+        throw new Exception('never get to getDateOnly TopLevel::dateOnly');
+    }
+
+    /**
+     * @return DateOnly|float|null
+     */
+    public static function sampleDateOnly(): DateOnly|float|null {
+        return DateOnly::sample(); /*93:dateOnly*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return DateOnlyConverter|float|null
+     */
+    public static function fromDateOnlyConverter(stdClass|float|null $value): DateOnlyConverter|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return DateOnlyConverter::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toDateOnlyConverter(): stdClass|float|null {
+        if (TopLevel::validateDateOnlyConverter($this->dateOnlyConverter))  {
+            if (is_null($this->dateOnlyConverter)) {
+                return $this->dateOnlyConverter; /*null*/
+            } elseif ($this->dateOnlyConverter instanceof DateOnlyConverter) {
+                return $this->dateOnlyConverter->to(); /*class*/
+            } elseif (is_float($this->dateOnlyConverter) || is_int($this->dateOnlyConverter)) {
+                return $this->dateOnlyConverter; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::dateOnlyConverter');
+    }
+
+    /**
+     * @param DateOnlyConverter|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDateOnlyConverter(DateOnlyConverter|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateOnlyConverter");
+            }
+        } elseif ($value instanceof DateOnlyConverter) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateOnlyConverter");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::dateOnlyConverter");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return DateOnlyConverter|float|null
+     */
+    public function getDateOnlyConverter(): DateOnlyConverter|float|null {
+        if (TopLevel::validateDateOnlyConverter($this->dateOnlyConverter))  {
+            return $this->dateOnlyConverter;
+        }
+        throw new Exception('never get to getDateOnlyConverter TopLevel::dateOnlyConverter');
+    }
+
+    /**
+     * @return DateOnlyConverter|float|null
+     */
+    public static function sampleDateOnlyConverter(): DateOnlyConverter|float|null {
+        return DateOnlyConverter::sample(); /*94:dateOnlyConverter*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return DateTimeClass|float|null
+     */
+    public static function fromDateTime(stdClass|float|null $value): DateTimeClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return DateTimeClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toDateTime(): stdClass|float|null {
+        if (TopLevel::validateDateTime($this->dateTime))  {
+            if (is_null($this->dateTime)) {
+                return $this->dateTime; /*null*/
+            } elseif ($this->dateTime instanceof DateTimeClass) {
+                return $this->dateTime->to(); /*class*/
+            } elseif (is_float($this->dateTime) || is_int($this->dateTime)) {
+                return $this->dateTime; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::dateTime');
+    }
+
+    /**
+     * @param DateTimeClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDateTime(DateTimeClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateTime");
+            }
+        } elseif ($value instanceof DateTimeClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateTime");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::dateTime");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return DateTimeClass|float|null
+     */
+    public function getDateTime(): DateTimeClass|float|null {
+        if (TopLevel::validateDateTime($this->dateTime))  {
+            return $this->dateTime;
+        }
+        throw new Exception('never get to getDateTime TopLevel::dateTime');
+    }
+
+    /**
+     * @return DateTimeClass|float|null
+     */
+    public static function sampleDateTime(): DateTimeClass|float|null {
+        return DateTimeClass::sample(); /*95:dateTime*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return DateTimeStyles|float|null
+     */
+    public static function fromDateTimeStyles(stdClass|float|null $value): DateTimeStyles|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return DateTimeStyles::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toDateTimeStyles(): stdClass|float|null {
+        if (TopLevel::validateDateTimeStyles($this->dateTimeStyles))  {
+            if (is_null($this->dateTimeStyles)) {
+                return $this->dateTimeStyles; /*null*/
+            } elseif ($this->dateTimeStyles instanceof DateTimeStyles) {
+                return $this->dateTimeStyles->to(); /*class*/
+            } elseif (is_float($this->dateTimeStyles) || is_int($this->dateTimeStyles)) {
+                return $this->dateTimeStyles; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::dateTimeStyles');
+    }
+
+    /**
+     * @param DateTimeStyles|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateDateTimeStyles(DateTimeStyles|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateTimeStyles");
+            }
+        } elseif ($value instanceof DateTimeStyles) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::dateTimeStyles");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::dateTimeStyles");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return DateTimeStyles|float|null
+     */
+    public function getDateTimeStyles(): DateTimeStyles|float|null {
+        if (TopLevel::validateDateTimeStyles($this->dateTimeStyles))  {
+            return $this->dateTimeStyles;
+        }
+        throw new Exception('never get to getDateTimeStyles TopLevel::dateTimeStyles');
+    }
+
+    /**
+     * @return DateTimeStyles|float|null
+     */
+    public static function sampleDateTimeStyles(): DateTimeStyles|float|null {
+        return DateTimeStyles::sample(); /*96:dateTimeStyles*/
     }
 
     /**
@@ -5398,7 +6053,7 @@ class TopLevel {
      * @return Debugger|float|null
      */
     public static function sampleDebugger(): Debugger|float|null {
-        return Debugger::sample(); /*90:debugger*/
+        return Debugger::sample(); /*97:debugger*/
     }
 
     /**
@@ -5474,7 +6129,7 @@ class TopLevel {
      * @return Decimal|float|null
      */
     public static function sampleDecimal(): Decimal|float|null {
-        return Decimal::sample(); /*91:decimal*/
+        return Decimal::sample(); /*98:decimal*/
     }
 
     /**
@@ -5550,7 +6205,7 @@ class TopLevel {
      * @return DeclareClass|float|null
      */
     public static function sampleDeclare(): DeclareClass|float|null {
-        return DeclareClass::sample(); /*92:declare*/
+        return DeclareClass::sample(); /*99:declare*/
     }
 
     /**
@@ -5626,7 +6281,7 @@ class TopLevel {
      * @return Decltype|float|null
      */
     public static function sampleDecltype(): Decltype|float|null {
-        return Decltype::sample(); /*93:decltype*/
+        return Decltype::sample(); /*100:decltype*/
     }
 
     /**
@@ -5702,7 +6357,7 @@ class TopLevel {
      * @return DecodeString|float|null
      */
     public static function sampleDecodeString(): DecodeString|float|null {
-        return DecodeString::sample(); /*94:decodeString*/
+        return DecodeString::sample(); /*101:decodeString*/
     }
 
     /**
@@ -5778,7 +6433,7 @@ class TopLevel {
      * @return Def|float|null
      */
     public static function sampleDef(): Def|float|null {
-        return Def::sample(); /*95:def*/
+        return Def::sample(); /*102:def*/
     }
 
     /**
@@ -5854,7 +6509,7 @@ class TopLevel {
      * @return DefaultClass|float|null
      */
     public static function sampleDefault(): DefaultClass|float|null {
-        return DefaultClass::sample(); /*96:default*/
+        return DefaultClass::sample(); /*103:default*/
     }
 
     /**
@@ -5930,7 +6585,7 @@ class TopLevel {
      * @return Defer|float|null
      */
     public static function sampleDefer(): Defer|float|null {
-        return Defer::sample(); /*97:defer*/
+        return Defer::sample(); /*104:defer*/
     }
 
     /**
@@ -6006,7 +6661,7 @@ class TopLevel {
      * @return Deinit|float|null
      */
     public static function sampleDeinit(): Deinit|float|null {
-        return Deinit::sample(); /*98:deinit*/
+        return Deinit::sample(); /*105:deinit*/
     }
 
     /**
@@ -6082,7 +6737,7 @@ class TopLevel {
      * @return Del|float|null
      */
     public static function sampleDel(): Del|float|null {
-        return Del::sample(); /*99:del*/
+        return Del::sample(); /*106:del*/
     }
 
     /**
@@ -6158,7 +6813,7 @@ class TopLevel {
      * @return Delegate|float|null
      */
     public static function sampleDelegate(): Delegate|float|null {
-        return Delegate::sample(); /*100:delegate*/
+        return Delegate::sample(); /*107:delegate*/
     }
 
     /**
@@ -6234,7 +6889,7 @@ class TopLevel {
      * @return Delete|float|null
      */
     public static function sampleDelete(): Delete|float|null {
-        return Delete::sample(); /*101:delete*/
+        return Delete::sample(); /*108:delete*/
     }
 
     /**
@@ -6310,7 +6965,7 @@ class TopLevel {
      * @return Dict|float|null
      */
     public static function sampleDict(): Dict|float|null {
-        return Dict::sample(); /*102:dict*/
+        return Dict::sample(); /*109:dict*/
     }
 
     /**
@@ -6386,7 +7041,7 @@ class TopLevel {
      * @return Dictionary|float|null
      */
     public static function sampleDictionary(): Dictionary|float|null {
-        return Dictionary::sample(); /*103:dictionary*/
+        return Dictionary::sample(); /*110:dictionary*/
     }
 
     /**
@@ -6462,7 +7117,7 @@ class TopLevel {
      * @return DidSet|float|null
      */
     public static function sampleDidSet(): DidSet|float|null {
-        return DidSet::sample(); /*104:didSet*/
+        return DidSet::sample(); /*111:didSet*/
     }
 
     /**
@@ -6538,7 +7193,7 @@ class TopLevel {
      * @return DoClass|float|null
      */
     public static function sampleDo(): DoClass|float|null {
-        return DoClass::sample(); /*105:do*/
+        return DoClass::sample(); /*112:do*/
     }
 
     /**
@@ -6614,7 +7269,7 @@ class TopLevel {
      * @return Double|float|null
      */
     public static function sampleDouble(): Double|float|null {
-        return Double::sample(); /*106:double*/
+        return Double::sample(); /*113:double*/
     }
 
     /**
@@ -6671,7 +7326,7 @@ class TopLevel {
      * @return ?float
      */
     public static function sampleDummy(): ?float {
-        return 107.107; /*107:dummy*/
+        return 114.114; /*114:dummy*/
     }
 
     /**
@@ -6747,7 +7402,7 @@ class TopLevel {
      * @return Dynamic|float|null
      */
     public static function sampleDynamic(): Dynamic|float|null {
-        return Dynamic::sample(); /*108:dynamic*/
+        return Dynamic::sample(); /*115:dynamic*/
     }
 
     /**
@@ -6823,7 +7478,7 @@ class TopLevel {
      * @return DynamicCast|float|null
      */
     public static function sampleDynamicCast(): DynamicCast|float|null {
-        return DynamicCast::sample(); /*109:dynamicCast*/
+        return DynamicCast::sample(); /*116:dynamicCast*/
     }
 
     /**
@@ -6899,7 +7554,7 @@ class TopLevel {
      * @return Elif|float|null
      */
     public static function sampleElif(): Elif|float|null {
-        return Elif::sample(); /*110:elif*/
+        return Elif::sample(); /*117:elif*/
     }
 
     /**
@@ -6975,7 +7630,7 @@ class TopLevel {
      * @return ElseClass|float|null
      */
     public static function sampleElse(): ElseClass|float|null {
-        return ElseClass::sample(); /*111:else*/
+        return ElseClass::sample(); /*118:else*/
     }
 
     /**
@@ -7051,7 +7706,7 @@ class TopLevel {
      * @return EncodeQuickType|float|null
      */
     public static function sampleEncodeQuickType(): EncodeQuickType|float|null {
-        return EncodeQuickType::sample(); /*112:encodeQuickType*/
+        return EncodeQuickType::sample(); /*119:encodeQuickType*/
     }
 
     /**
@@ -7127,7 +7782,159 @@ class TopLevel {
      * @return EnumClass|float|null
      */
     public static function sampleEnum(): EnumClass|float|null {
-        return EnumClass::sample(); /*113:enum*/
+        return EnumClass::sample(); /*120:enum*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return EnumValues|float|null
+     */
+    public static function fromEnumValues(stdClass|float|null $value): EnumValues|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return EnumValues::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toEnumValues(): stdClass|float|null {
+        if (TopLevel::validateEnumValues($this->enumValues))  {
+            if (is_null($this->enumValues)) {
+                return $this->enumValues; /*null*/
+            } elseif ($this->enumValues instanceof EnumValues) {
+                return $this->enumValues->to(); /*class*/
+            } elseif (is_float($this->enumValues) || is_int($this->enumValues)) {
+                return $this->enumValues; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::enumValues');
+    }
+
+    /**
+     * @param EnumValues|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateEnumValues(EnumValues|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::enumValues");
+            }
+        } elseif ($value instanceof EnumValues) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::enumValues");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::enumValues");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return EnumValues|float|null
+     */
+    public function getEnumValues(): EnumValues|float|null {
+        if (TopLevel::validateEnumValues($this->enumValues))  {
+            return $this->enumValues;
+        }
+        throw new Exception('never get to getEnumValues TopLevel::enumValues');
+    }
+
+    /**
+     * @return EnumValues|float|null
+     */
+    public static function sampleEnumValues(): EnumValues|float|null {
+        return EnumValues::sample(); /*121:enumValues*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return EqualityContract|float|null
+     */
+    public static function fromEqualityContract(stdClass|float|null $value): EqualityContract|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return EqualityContract::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toEqualityContract(): stdClass|float|null {
+        if (TopLevel::validateEqualityContract($this->equalityContract))  {
+            if (is_null($this->equalityContract)) {
+                return $this->equalityContract; /*null*/
+            } elseif ($this->equalityContract instanceof EqualityContract) {
+                return $this->equalityContract->to(); /*class*/
+            } elseif (is_float($this->equalityContract) || is_int($this->equalityContract)) {
+                return $this->equalityContract; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::equalityContract');
+    }
+
+    /**
+     * @param EqualityContract|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateEqualityContract(EqualityContract|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::equalityContract");
+            }
+        } elseif ($value instanceof EqualityContract) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::equalityContract");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::equalityContract");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return EqualityContract|float|null
+     */
+    public function getEqualityContract(): EqualityContract|float|null {
+        if (TopLevel::validateEqualityContract($this->equalityContract))  {
+            return $this->equalityContract;
+        }
+        throw new Exception('never get to getEqualityContract TopLevel::equalityContract');
+    }
+
+    /**
+     * @return EqualityContract|float|null
+     */
+    public static function sampleEqualityContract(): EqualityContract|float|null {
+        return EqualityContract::sample(); /*122:equalityContract*/
     }
 
     /**
@@ -7203,7 +8010,7 @@ class TopLevel {
      * @return Event|float|null
      */
     public static function sampleEvent(): Event|float|null {
-        return Event::sample(); /*114:event*/
+        return Event::sample(); /*123:event*/
     }
 
     /**
@@ -7279,7 +8086,7 @@ class TopLevel {
      * @return Except|float|null
      */
     public static function sampleExcept(): Except|float|null {
-        return Except::sample(); /*115:except*/
+        return Except::sample(); /*124:except*/
     }
 
     /**
@@ -7355,7 +8162,7 @@ class TopLevel {
      * @return ExceptionClass|float|null
      */
     public static function sampleException(): ExceptionClass|float|null {
-        return ExceptionClass::sample(); /*116:exception*/
+        return ExceptionClass::sample(); /*125:exception*/
     }
 
     /**
@@ -7431,7 +8238,7 @@ class TopLevel {
      * @return Explicit|float|null
      */
     public static function sampleExplicit(): Explicit|float|null {
-        return Explicit::sample(); /*117:explicit*/
+        return Explicit::sample(); /*126:explicit*/
     }
 
     /**
@@ -7507,7 +8314,7 @@ class TopLevel {
      * @return Export|float|null
      */
     public static function sampleExport(): Export|float|null {
-        return Export::sample(); /*118:export*/
+        return Export::sample(); /*127:export*/
     }
 
     /**
@@ -7583,7 +8390,7 @@ class TopLevel {
      * @return Exposing|float|null
      */
     public static function sampleExposing(): Exposing|float|null {
-        return Exposing::sample(); /*119:exposing*/
+        return Exposing::sample(); /*128:exposing*/
     }
 
     /**
@@ -7659,7 +8466,7 @@ class TopLevel {
      * @return ExtendsClass|float|null
      */
     public static function sampleExtends(): ExtendsClass|float|null {
-        return ExtendsClass::sample(); /*120:extends*/
+        return ExtendsClass::sample(); /*129:extends*/
     }
 
     /**
@@ -7735,7 +8542,7 @@ class TopLevel {
      * @return Extension|float|null
      */
     public static function sampleExtension(): Extension|float|null {
-        return Extension::sample(); /*121:extension*/
+        return Extension::sample(); /*130:extension*/
     }
 
     /**
@@ -7811,7 +8618,7 @@ class TopLevel {
      * @return Extern|float|null
      */
     public static function sampleExtern(): Extern|float|null {
-        return Extern::sample(); /*122:extern*/
+        return Extern::sample(); /*131:extern*/
     }
 
     /**
@@ -7887,7 +8694,7 @@ class TopLevel {
      * @return Fallthrough|float|null
      */
     public static function sampleFallthrough(): Fallthrough|float|null {
-        return Fallthrough::sample(); /*123:fallthrough*/
+        return Fallthrough::sample(); /*132:fallthrough*/
     }
 
     /**
@@ -7963,7 +8770,7 @@ class TopLevel {
      * @return UnionFalseFalse|float|null
      */
     public static function sampleTopLevelFalse(): UnionFalseFalse|float|null {
-        return UnionFalseFalse::sample(); /*124:topLevelFalse*/
+        return UnionFalseFalse::sample(); /*133:topLevelFalse*/
     }
 
     /**
@@ -8039,7 +8846,7 @@ class TopLevel {
      * @return FalseClass|float|null
      */
     public static function sampleFalse(): FalseClass|float|null {
-        return FalseClass::sample(); /*125:false*/
+        return FalseClass::sample(); /*134:false*/
     }
 
     /**
@@ -8115,7 +8922,7 @@ class TopLevel {
      * @return Fileprivate|float|null
      */
     public static function sampleFileprivate(): Fileprivate|float|null {
-        return Fileprivate::sample(); /*126:fileprivate*/
+        return Fileprivate::sample(); /*135:fileprivate*/
     }
 
     /**
@@ -8191,7 +8998,7 @@ class TopLevel {
      * @return FinalClass|float|null
      */
     public static function sampleFinal(): FinalClass|float|null {
-        return FinalClass::sample(); /*127:final*/
+        return FinalClass::sample(); /*136:final*/
     }
 
     /**
@@ -8267,7 +9074,7 @@ class TopLevel {
      * @return FinallyClass|float|null
      */
     public static function sampleFinally(): FinallyClass|float|null {
-        return FinallyClass::sample(); /*128:finally*/
+        return FinallyClass::sample(); /*137:finally*/
     }
 
     /**
@@ -8343,7 +9150,7 @@ class TopLevel {
      * @return Fixed|float|null
      */
     public static function sampleFixed(): Fixed|float|null {
-        return Fixed::sample(); /*129:fixed*/
+        return Fixed::sample(); /*138:fixed*/
     }
 
     /**
@@ -8419,7 +9226,7 @@ class TopLevel {
      * @return FloatClass|float|null
      */
     public static function sampleFloat(): FloatClass|float|null {
-        return FloatClass::sample(); /*130:float*/
+        return FloatClass::sample(); /*139:float*/
     }
 
     /**
@@ -8495,7 +9302,7 @@ class TopLevel {
      * @return ForClass|float|null
      */
     public static function sampleFor(): ForClass|float|null {
-        return ForClass::sample(); /*131:for*/
+        return ForClass::sample(); /*140:for*/
     }
 
     /**
@@ -8571,7 +9378,83 @@ class TopLevel {
      * @return ForeachClass|float|null
      */
     public static function sampleForeach(): ForeachClass|float|null {
-        return ForeachClass::sample(); /*132:foreach*/
+        return ForeachClass::sample(); /*141:foreach*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return FormatException|float|null
+     */
+    public static function fromFormatException(stdClass|float|null $value): FormatException|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return FormatException::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toFormatException(): stdClass|float|null {
+        if (TopLevel::validateFormatException($this->formatException))  {
+            if (is_null($this->formatException)) {
+                return $this->formatException; /*null*/
+            } elseif ($this->formatException instanceof FormatException) {
+                return $this->formatException->to(); /*class*/
+            } elseif (is_float($this->formatException) || is_int($this->formatException)) {
+                return $this->formatException; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::formatException');
+    }
+
+    /**
+     * @param FormatException|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateFormatException(FormatException|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::formatException");
+            }
+        } elseif ($value instanceof FormatException) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::formatException");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::formatException");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return FormatException|float|null
+     */
+    public function getFormatException(): FormatException|float|null {
+        if (TopLevel::validateFormatException($this->formatException))  {
+            return $this->formatException;
+        }
+        throw new Exception('never get to getFormatException TopLevel::formatException');
+    }
+
+    /**
+     * @return FormatException|float|null
+     */
+    public static function sampleFormatException(): FormatException|float|null {
+        return FormatException::sample(); /*142:formatException*/
     }
 
     /**
@@ -8647,7 +9530,7 @@ class TopLevel {
      * @return Friend|float|null
      */
     public static function sampleFriend(): Friend|float|null {
-        return Friend::sample(); /*133:friend*/
+        return Friend::sample(); /*143:friend*/
     }
 
     /**
@@ -8723,7 +9606,7 @@ class TopLevel {
      * @return From|float|null
      */
     public static function sampleFrom(): From|float|null {
-        return From::sample(); /*134:from*/
+        return From::sample(); /*144:from*/
     }
 
     /**
@@ -8799,7 +9682,7 @@ class TopLevel {
      * @return FromJSON|float|null
      */
     public static function sampleFromJSON(): FromJSON|float|null {
-        return FromJSON::sample(); /*135:fromJSON*/
+        return FromJSON::sample(); /*145:fromJSON*/
     }
 
     /**
@@ -8875,7 +9758,7 @@ class TopLevel {
      * @return Func|float|null
      */
     public static function sampleFunc(): Func|float|null {
-        return Func::sample(); /*136:func*/
+        return Func::sample(); /*146:func*/
     }
 
     /**
@@ -8951,7 +9834,7 @@ class TopLevel {
      * @return FunctionClass|float|null
      */
     public static function sampleFunction(): FunctionClass|float|null {
-        return FunctionClass::sample(); /*137:function*/
+        return FunctionClass::sample(); /*147:function*/
     }
 
     /**
@@ -9027,7 +9910,7 @@ class TopLevel {
      * @return Get|float|null
      */
     public static function sampleGet(): Get|float|null {
-        return Get::sample(); /*138:get*/
+        return Get::sample(); /*148:get*/
     }
 
     /**
@@ -9103,7 +9986,7 @@ class TopLevel {
      * @return GlobalClass|float|null
      */
     public static function sampleGlobal(): GlobalClass|float|null {
-        return GlobalClass::sample(); /*139:global*/
+        return GlobalClass::sample(); /*149:global*/
     }
 
     /**
@@ -9179,7 +10062,7 @@ class TopLevel {
      * @return Go|float|null
      */
     public static function sampleGo(): Go|float|null {
-        return Go::sample(); /*140:go*/
+        return Go::sample(); /*150:go*/
     }
 
     /**
@@ -9255,7 +10138,7 @@ class TopLevel {
      * @return GotoClass|float|null
      */
     public static function sampleGoto(): GotoClass|float|null {
-        return GotoClass::sample(); /*141:goto*/
+        return GotoClass::sample(); /*151:goto*/
     }
 
     /**
@@ -9331,7 +10214,83 @@ class TopLevel {
      * @return Guard|float|null
      */
     public static function sampleGuard(): Guard|float|null {
-        return Guard::sample(); /*142:guard*/
+        return Guard::sample(); /*152:guard*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return HashCode|float|null
+     */
+    public static function fromHashCode(stdClass|float|null $value): HashCode|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return HashCode::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toHashCode(): stdClass|float|null {
+        if (TopLevel::validateHashCode($this->hashCode))  {
+            if (is_null($this->hashCode)) {
+                return $this->hashCode; /*null*/
+            } elseif ($this->hashCode instanceof HashCode) {
+                return $this->hashCode->to(); /*class*/
+            } elseif (is_float($this->hashCode) || is_int($this->hashCode)) {
+                return $this->hashCode; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::hashCode');
+    }
+
+    /**
+     * @param HashCode|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateHashCode(HashCode|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::hashCode");
+            }
+        } elseif ($value instanceof HashCode) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::hashCode");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::hashCode");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return HashCode|float|null
+     */
+    public function getHashCode(): HashCode|float|null {
+        if (TopLevel::validateHashCode($this->hashCode))  {
+            return $this->hashCode;
+        }
+        throw new Exception('never get to getHashCode TopLevel::hashCode');
+    }
+
+    /**
+     * @return HashCode|float|null
+     */
+    public static function sampleHashCode(): HashCode|float|null {
+        return HashCode::sample(); /*153:hashCode*/
     }
 
     /**
@@ -9407,7 +10366,7 @@ class TopLevel {
      * @return HasOwnProperty|float|null
      */
     public static function sampleHasOwnProperty(): HasOwnProperty|float|null {
-        return HasOwnProperty::sample(); /*143:hasOwnProperty*/
+        return HasOwnProperty::sample(); /*154:hasOwnProperty*/
     }
 
     /**
@@ -9483,7 +10442,7 @@ class TopLevel {
      * @return ID|float|null
      */
     public static function sampleID(): ID|float|null {
-        return ID::sample(); /*144:id*/
+        return ID::sample(); /*155:id*/
     }
 
     /**
@@ -9559,7 +10518,7 @@ class TopLevel {
      * @return IfClass|float|null
      */
     public static function sampleIf(): IfClass|float|null {
-        return IfClass::sample(); /*145:if*/
+        return IfClass::sample(); /*156:if*/
     }
 
     /**
@@ -9635,7 +10594,7 @@ class TopLevel {
      * @return Imp|float|null
      */
     public static function sampleImp(): Imp|float|null {
-        return Imp::sample(); /*146:imp*/
+        return Imp::sample(); /*157:imp*/
     }
 
     /**
@@ -9711,7 +10670,7 @@ class TopLevel {
      * @return ImplementsClass|float|null
      */
     public static function sampleImplements(): ImplementsClass|float|null {
-        return ImplementsClass::sample(); /*147:implements*/
+        return ImplementsClass::sample(); /*158:implements*/
     }
 
     /**
@@ -9787,7 +10746,7 @@ class TopLevel {
      * @return Implicit|float|null
      */
     public static function sampleImplicit(): Implicit|float|null {
-        return Implicit::sample(); /*148:implicit*/
+        return Implicit::sample(); /*159:implicit*/
     }
 
     /**
@@ -9863,7 +10822,7 @@ class TopLevel {
      * @return Import|float|null
      */
     public static function sampleImport(): Import|float|null {
-        return Import::sample(); /*149:import*/
+        return Import::sample(); /*160:import*/
     }
 
     /**
@@ -9939,7 +10898,7 @@ class TopLevel {
      * @return In|float|null
      */
     public static function sampleIn(): In|float|null {
-        return In::sample(); /*150:in*/
+        return In::sample(); /*161:in*/
     }
 
     /**
@@ -10015,7 +10974,7 @@ class TopLevel {
      * @return Indirect|float|null
      */
     public static function sampleIndirect(): Indirect|float|null {
-        return Indirect::sample(); /*151:indirect*/
+        return Indirect::sample(); /*162:indirect*/
     }
 
     /**
@@ -10091,7 +11050,7 @@ class TopLevel {
      * @return Infix|float|null
      */
     public static function sampleInfix(): Infix|float|null {
-        return Infix::sample(); /*152:infix*/
+        return Infix::sample(); /*163:infix*/
     }
 
     /**
@@ -10167,7 +11126,7 @@ class TopLevel {
      * @return Init|float|null
      */
     public static function sampleInit(): Init|float|null {
-        return Init::sample(); /*153:init*/
+        return Init::sample(); /*164:init*/
     }
 
     /**
@@ -10243,7 +11202,7 @@ class TopLevel {
      * @return Inline|float|null
      */
     public static function sampleInline(): Inline|float|null {
-        return Inline::sample(); /*154:inline*/
+        return Inline::sample(); /*165:inline*/
     }
 
     /**
@@ -10319,7 +11278,7 @@ class TopLevel {
      * @return Inout|float|null
      */
     public static function sampleInout(): Inout|float|null {
-        return Inout::sample(); /*155:inout*/
+        return Inout::sample(); /*166:inout*/
     }
 
     /**
@@ -10395,7 +11354,7 @@ class TopLevel {
      * @return InstanceofClass|float|null
      */
     public static function sampleInstanceof(): InstanceofClass|float|null {
-        return InstanceofClass::sample(); /*156:instanceof*/
+        return InstanceofClass::sample(); /*167:instanceof*/
     }
 
     /**
@@ -10471,7 +11430,7 @@ class TopLevel {
      * @return IntClass|float|null
      */
     public static function sampleInt(): IntClass|float|null {
-        return IntClass::sample(); /*157:int*/
+        return IntClass::sample(); /*168:int*/
     }
 
     /**
@@ -10547,7 +11506,7 @@ class TopLevel {
      * @return InterfaceClass|float|null
      */
     public static function sampleInterface(): InterfaceClass|float|null {
-        return InterfaceClass::sample(); /*158:interface*/
+        return InterfaceClass::sample(); /*169:interface*/
     }
 
     /**
@@ -10623,7 +11582,7 @@ class TopLevel {
      * @return Internal|float|null
      */
     public static function sampleInternal(): Internal|float|null {
-        return Internal::sample(); /*159:internal*/
+        return Internal::sample(); /*170:internal*/
     }
 
     /**
@@ -10699,7 +11658,83 @@ class TopLevel {
      * @return Is|float|null
      */
     public static function sampleIs(): Is|float|null {
-        return Is::sample(); /*160:is*/
+        return Is::sample(); /*171:is*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return ISODateTimeOffsetConverter|float|null
+     */
+    public static function fromISODateTimeOffsetConverter(stdClass|float|null $value): ISODateTimeOffsetConverter|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return ISODateTimeOffsetConverter::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toISODateTimeOffsetConverter(): stdClass|float|null {
+        if (TopLevel::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
+            if (is_null($this->isoDateTimeOffsetConverter)) {
+                return $this->isoDateTimeOffsetConverter; /*null*/
+            } elseif ($this->isoDateTimeOffsetConverter instanceof ISODateTimeOffsetConverter) {
+                return $this->isoDateTimeOffsetConverter->to(); /*class*/
+            } elseif (is_float($this->isoDateTimeOffsetConverter) || is_int($this->isoDateTimeOffsetConverter)) {
+                return $this->isoDateTimeOffsetConverter; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::isoDateTimeOffsetConverter');
+    }
+
+    /**
+     * @param ISODateTimeOffsetConverter|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateISODateTimeOffsetConverter(ISODateTimeOffsetConverter|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::isoDateTimeOffsetConverter");
+            }
+        } elseif ($value instanceof ISODateTimeOffsetConverter) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::isoDateTimeOffsetConverter");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::isoDateTimeOffsetConverter");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return ISODateTimeOffsetConverter|float|null
+     */
+    public function getISODateTimeOffsetConverter(): ISODateTimeOffsetConverter|float|null {
+        if (TopLevel::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter))  {
+            return $this->isoDateTimeOffsetConverter;
+        }
+        throw new Exception('never get to getISODateTimeOffsetConverter TopLevel::isoDateTimeOffsetConverter');
+    }
+
+    /**
+     * @return ISODateTimeOffsetConverter|float|null
+     */
+    public static function sampleISODateTimeOffsetConverter(): ISODateTimeOffsetConverter|float|null {
+        return ISODateTimeOffsetConverter::sample(); /*172:isoDateTimeOffsetConverter*/
     }
 
     /**
@@ -10775,7 +11810,7 @@ class TopLevel {
      * @return IterableClass|float|null
      */
     public static function sampleIterable(): IterableClass|float|null {
-        return IterableClass::sample(); /*161:iterable*/
+        return IterableClass::sample(); /*173:iterable*/
     }
 
     /**
@@ -10851,7 +11886,7 @@ class TopLevel {
      * @return Jdec|float|null
      */
     public static function sampleJdec(): Jdec|float|null {
-        return Jdec::sample(); /*162:jdec*/
+        return Jdec::sample(); /*174:jdec*/
     }
 
     /**
@@ -10927,7 +11962,7 @@ class TopLevel {
      * @return Jenc|float|null
      */
     public static function sampleJenc(): Jenc|float|null {
-        return Jenc::sample(); /*163:jenc*/
+        return Jenc::sample(); /*175:jenc*/
     }
 
     /**
@@ -11003,7 +12038,7 @@ class TopLevel {
      * @return Jpipe|float|null
      */
     public static function sampleJpipe(): Jpipe|float|null {
-        return Jpipe::sample(); /*164:jpipe*/
+        return Jpipe::sample(); /*176:jpipe*/
     }
 
     /**
@@ -11079,7 +12114,7 @@ class TopLevel {
      * @return JSON|float|null
      */
     public static function sampleJSON(): JSON|float|null {
-        return JSON::sample(); /*165:json*/
+        return JSON::sample(); /*177:json*/
     }
 
     /**
@@ -11155,7 +12190,7 @@ class TopLevel {
      * @return JSONConverter|float|null
      */
     public static function sampleJSONConverter(): JSONConverter|float|null {
-        return JSONConverter::sample(); /*166:jsonConverter*/
+        return JSONConverter::sample(); /*178:jsonConverter*/
     }
 
     /**
@@ -11231,7 +12266,7 @@ class TopLevel {
      * @return JSONSerializer|float|null
      */
     public static function sampleJSONSerializer(): JSONSerializer|float|null {
-        return JSONSerializer::sample(); /*167:jsonSerializer*/
+        return JSONSerializer::sample(); /*179:jsonSerializer*/
     }
 
     /**
@@ -11307,7 +12342,7 @@ class TopLevel {
      * @return JSONToken|float|null
      */
     public static function sampleJSONToken(): JSONToken|float|null {
-        return JSONToken::sample(); /*168:jsonToken*/
+        return JSONToken::sample(); /*180:jsonToken*/
     }
 
     /**
@@ -11383,19 +12418,19 @@ class TopLevel {
      * @return JSONWriter|float|null
      */
     public static function sampleJSONWriter(): JSONWriter|float|null {
-        return JSONWriter::sample(); /*169:jsonWriter*/
+        return JSONWriter::sample(); /*181:jsonWriter*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Lambda|float|null
+     * @return JSONAny|float|null
      */
-    public static function fromLambda(stdClass|float|null $value): Lambda|float|null {
+    public static function fromJSONAny(stdClass|float|null $value): JSONAny|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Lambda::from($value); /*class*/
+            return JSONAny::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11407,71 +12442,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLambda(): stdClass|float|null {
-        if (TopLevel::validateLambda($this->lambda))  {
-            if (is_null($this->lambda)) {
-                return $this->lambda; /*null*/
-            } elseif ($this->lambda instanceof Lambda) {
-                return $this->lambda->to(); /*class*/
-            } elseif (is_float($this->lambda) || is_int($this->lambda)) {
-                return $this->lambda; /*float*/
+    public function toJSONAny(): stdClass|float|null {
+        if (TopLevel::validateJSONAny($this->jsonAny))  {
+            if (is_null($this->jsonAny)) {
+                return $this->jsonAny; /*null*/
+            } elseif ($this->jsonAny instanceof JSONAny) {
+                return $this->jsonAny->to(); /*class*/
+            } elseif (is_float($this->jsonAny) || is_int($this->jsonAny)) {
+                return $this->jsonAny; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::lambda');
+        throw new Exception('never get to this TopLevel::jsonAny');
     }
 
     /**
-     * @param Lambda|float|null
+     * @param JSONAny|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLambda(Lambda|float|null $value): bool {
+    public static function validateJSONAny(JSONAny|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::lambda");
+                throw new Exception("Attribute Error:TopLevel::jsonAny");
             }
-        } elseif ($value instanceof Lambda) {
+        } elseif ($value instanceof JSONAny) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::lambda");
+                throw new Exception("Attribute Error:TopLevel::jsonAny");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::lambda");
+            throw new Exception("Attribute Error:TopLevel::jsonAny");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Lambda|float|null
+     * @return JSONAny|float|null
      */
-    public function getLambda(): Lambda|float|null {
-        if (TopLevel::validateLambda($this->lambda))  {
-            return $this->lambda;
+    public function getJSONAny(): JSONAny|float|null {
+        if (TopLevel::validateJSONAny($this->jsonAny))  {
+            return $this->jsonAny;
         }
-        throw new Exception('never get to getLambda TopLevel::lambda');
+        throw new Exception('never get to getJSONAny TopLevel::jsonAny');
     }
 
     /**
-     * @return Lambda|float|null
+     * @return JSONAny|float|null
      */
-    public static function sampleLambda(): Lambda|float|null {
-        return Lambda::sample(); /*170:lambda*/
+    public static function sampleJSONAny(): JSONAny|float|null {
+        return JSONAny::sample(); /*182:jsonAny*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Lazy|float|null
+     * @return JSONCodingKey|float|null
      */
-    public static function fromLazy(stdClass|float|null $value): Lazy|float|null {
+    public static function fromJSONCodingKey(stdClass|float|null $value): JSONCodingKey|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Lazy::from($value); /*class*/
+            return JSONCodingKey::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11483,71 +12518,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLazy(): stdClass|float|null {
-        if (TopLevel::validateLazy($this->lazy))  {
-            if (is_null($this->lazy)) {
-                return $this->lazy; /*null*/
-            } elseif ($this->lazy instanceof Lazy) {
-                return $this->lazy->to(); /*class*/
-            } elseif (is_float($this->lazy) || is_int($this->lazy)) {
-                return $this->lazy; /*float*/
+    public function toJSONCodingKey(): stdClass|float|null {
+        if (TopLevel::validateJSONCodingKey($this->jsonCodingKey))  {
+            if (is_null($this->jsonCodingKey)) {
+                return $this->jsonCodingKey; /*null*/
+            } elseif ($this->jsonCodingKey instanceof JSONCodingKey) {
+                return $this->jsonCodingKey->to(); /*class*/
+            } elseif (is_float($this->jsonCodingKey) || is_int($this->jsonCodingKey)) {
+                return $this->jsonCodingKey; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::lazy');
+        throw new Exception('never get to this TopLevel::jsonCodingKey');
     }
 
     /**
-     * @param Lazy|float|null
+     * @param JSONCodingKey|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLazy(Lazy|float|null $value): bool {
+    public static function validateJSONCodingKey(JSONCodingKey|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::lazy");
+                throw new Exception("Attribute Error:TopLevel::jsonCodingKey");
             }
-        } elseif ($value instanceof Lazy) {
+        } elseif ($value instanceof JSONCodingKey) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::lazy");
+                throw new Exception("Attribute Error:TopLevel::jsonCodingKey");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::lazy");
+            throw new Exception("Attribute Error:TopLevel::jsonCodingKey");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Lazy|float|null
+     * @return JSONCodingKey|float|null
      */
-    public function getLazy(): Lazy|float|null {
-        if (TopLevel::validateLazy($this->lazy))  {
-            return $this->lazy;
+    public function getJSONCodingKey(): JSONCodingKey|float|null {
+        if (TopLevel::validateJSONCodingKey($this->jsonCodingKey))  {
+            return $this->jsonCodingKey;
         }
-        throw new Exception('never get to getLazy TopLevel::lazy');
+        throw new Exception('never get to getJSONCodingKey TopLevel::jsonCodingKey');
     }
 
     /**
-     * @return Lazy|float|null
+     * @return JSONCodingKey|float|null
      */
-    public static function sampleLazy(): Lazy|float|null {
-        return Lazy::sample(); /*171:lazy*/
+    public static function sampleJSONCodingKey(): JSONCodingKey|float|null {
+        return JSONCodingKey::sample(); /*183:jsonCodingKey*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Left|float|null
+     * @return JSONDecoder|float|null
      */
-    public static function fromLeft(stdClass|float|null $value): Left|float|null {
+    public static function fromJSONDecoder(stdClass|float|null $value): JSONDecoder|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Left::from($value); /*class*/
+            return JSONDecoder::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11559,71 +12594,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLeft(): stdClass|float|null {
-        if (TopLevel::validateLeft($this->left))  {
-            if (is_null($this->left)) {
-                return $this->left; /*null*/
-            } elseif ($this->left instanceof Left) {
-                return $this->left->to(); /*class*/
-            } elseif (is_float($this->left) || is_int($this->left)) {
-                return $this->left; /*float*/
+    public function toJSONDecoder(): stdClass|float|null {
+        if (TopLevel::validateJSONDecoder($this->jsonDecoder))  {
+            if (is_null($this->jsonDecoder)) {
+                return $this->jsonDecoder; /*null*/
+            } elseif ($this->jsonDecoder instanceof JSONDecoder) {
+                return $this->jsonDecoder->to(); /*class*/
+            } elseif (is_float($this->jsonDecoder) || is_int($this->jsonDecoder)) {
+                return $this->jsonDecoder; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::left');
+        throw new Exception('never get to this TopLevel::jsonDecoder');
     }
 
     /**
-     * @param Left|float|null
+     * @param JSONDecoder|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLeft(Left|float|null $value): bool {
+    public static function validateJSONDecoder(JSONDecoder|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::left");
+                throw new Exception("Attribute Error:TopLevel::jsonDecoder");
             }
-        } elseif ($value instanceof Left) {
+        } elseif ($value instanceof JSONDecoder) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::left");
+                throw new Exception("Attribute Error:TopLevel::jsonDecoder");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::left");
+            throw new Exception("Attribute Error:TopLevel::jsonDecoder");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Left|float|null
+     * @return JSONDecoder|float|null
      */
-    public function getLeft(): Left|float|null {
-        if (TopLevel::validateLeft($this->left))  {
-            return $this->left;
+    public function getJSONDecoder(): JSONDecoder|float|null {
+        if (TopLevel::validateJSONDecoder($this->jsonDecoder))  {
+            return $this->jsonDecoder;
         }
-        throw new Exception('never get to getLeft TopLevel::left');
+        throw new Exception('never get to getJSONDecoder TopLevel::jsonDecoder');
     }
 
     /**
-     * @return Left|float|null
+     * @return JSONDecoder|float|null
      */
-    public static function sampleLeft(): Left|float|null {
-        return Left::sample(); /*172:left*/
+    public static function sampleJSONDecoder(): JSONDecoder|float|null {
+        return JSONDecoder::sample(); /*184:jsonDecoder*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Let|float|null
+     * @return JSONEncoder|float|null
      */
-    public static function fromLet(stdClass|float|null $value): Let|float|null {
+    public static function fromJSONEncoder(stdClass|float|null $value): JSONEncoder|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Let::from($value); /*class*/
+            return JSONEncoder::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11635,71 +12670,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLet(): stdClass|float|null {
-        if (TopLevel::validateLet($this->let))  {
-            if (is_null($this->let)) {
-                return $this->let; /*null*/
-            } elseif ($this->let instanceof Let) {
-                return $this->let->to(); /*class*/
-            } elseif (is_float($this->let) || is_int($this->let)) {
-                return $this->let; /*float*/
+    public function toJSONEncoder(): stdClass|float|null {
+        if (TopLevel::validateJSONEncoder($this->jsonEncoder))  {
+            if (is_null($this->jsonEncoder)) {
+                return $this->jsonEncoder; /*null*/
+            } elseif ($this->jsonEncoder instanceof JSONEncoder) {
+                return $this->jsonEncoder->to(); /*class*/
+            } elseif (is_float($this->jsonEncoder) || is_int($this->jsonEncoder)) {
+                return $this->jsonEncoder; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::let');
+        throw new Exception('never get to this TopLevel::jsonEncoder');
     }
 
     /**
-     * @param Let|float|null
+     * @param JSONEncoder|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLet(Let|float|null $value): bool {
+    public static function validateJSONEncoder(JSONEncoder|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::let");
+                throw new Exception("Attribute Error:TopLevel::jsonEncoder");
             }
-        } elseif ($value instanceof Let) {
+        } elseif ($value instanceof JSONEncoder) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::let");
+                throw new Exception("Attribute Error:TopLevel::jsonEncoder");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::let");
+            throw new Exception("Attribute Error:TopLevel::jsonEncoder");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Let|float|null
+     * @return JSONEncoder|float|null
      */
-    public function getLet(): Let|float|null {
-        if (TopLevel::validateLet($this->let))  {
-            return $this->let;
+    public function getJSONEncoder(): JSONEncoder|float|null {
+        if (TopLevel::validateJSONEncoder($this->jsonEncoder))  {
+            return $this->jsonEncoder;
         }
-        throw new Exception('never get to getLet TopLevel::let');
+        throw new Exception('never get to getJSONEncoder TopLevel::jsonEncoder');
     }
 
     /**
-     * @return Let|float|null
+     * @return JSONEncoder|float|null
      */
-    public static function sampleLet(): Let|float|null {
-        return Let::sample(); /*173:let*/
+    public static function sampleJSONEncoder(): JSONEncoder|float|null {
+        return JSONEncoder::sample(); /*185:jsonEncoder*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ListClass|float|null
+     * @return JSONExceptionClass|float|null
      */
-    public static function fromList(stdClass|float|null $value): ListClass|float|null {
+    public static function fromJSONException(stdClass|float|null $value): JSONExceptionClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ListClass::from($value); /*class*/
+            return JSONExceptionClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11711,71 +12746,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toList(): stdClass|float|null {
-        if (TopLevel::validateList($this->list))  {
-            if (is_null($this->list)) {
-                return $this->list; /*null*/
-            } elseif ($this->list instanceof ListClass) {
-                return $this->list->to(); /*class*/
-            } elseif (is_float($this->list) || is_int($this->list)) {
-                return $this->list; /*float*/
+    public function toJSONException(): stdClass|float|null {
+        if (TopLevel::validateJSONException($this->jsonException))  {
+            if (is_null($this->jsonException)) {
+                return $this->jsonException; /*null*/
+            } elseif ($this->jsonException instanceof JSONExceptionClass) {
+                return $this->jsonException->to(); /*class*/
+            } elseif (is_float($this->jsonException) || is_int($this->jsonException)) {
+                return $this->jsonException; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::list');
+        throw new Exception('never get to this TopLevel::jsonException');
     }
 
     /**
-     * @param ListClass|float|null
+     * @param JSONExceptionClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateList(ListClass|float|null $value): bool {
+    public static function validateJSONException(JSONExceptionClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::list");
+                throw new Exception("Attribute Error:TopLevel::jsonException");
             }
-        } elseif ($value instanceof ListClass) {
+        } elseif ($value instanceof JSONExceptionClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::list");
+                throw new Exception("Attribute Error:TopLevel::jsonException");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::list");
+            throw new Exception("Attribute Error:TopLevel::jsonException");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ListClass|float|null
+     * @return JSONExceptionClass|float|null
      */
-    public function getList(): ListClass|float|null {
-        if (TopLevel::validateList($this->list))  {
-            return $this->list;
+    public function getJSONException(): JSONExceptionClass|float|null {
+        if (TopLevel::validateJSONException($this->jsonException))  {
+            return $this->jsonException;
         }
-        throw new Exception('never get to getList TopLevel::list');
+        throw new Exception('never get to getJSONException TopLevel::jsonException');
     }
 
     /**
-     * @return ListClass|float|null
+     * @return JSONExceptionClass|float|null
      */
-    public static function sampleList(): ListClass|float|null {
-        return ListClass::sample(); /*174:list*/
+    public static function sampleJSONException(): JSONExceptionClass|float|null {
+        return JSONExceptionClass::sample(); /*186:jsonException*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Lock|float|null
+     * @return JSONGenerator|float|null
      */
-    public static function fromLock(stdClass|float|null $value): Lock|float|null {
+    public static function fromJSONGenerator(stdClass|float|null $value): JSONGenerator|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Lock::from($value); /*class*/
+            return JSONGenerator::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11787,71 +12822,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLock(): stdClass|float|null {
-        if (TopLevel::validateLock($this->lock))  {
-            if (is_null($this->lock)) {
-                return $this->lock; /*null*/
-            } elseif ($this->lock instanceof Lock) {
-                return $this->lock->to(); /*class*/
-            } elseif (is_float($this->lock) || is_int($this->lock)) {
-                return $this->lock; /*float*/
+    public function toJSONGenerator(): stdClass|float|null {
+        if (TopLevel::validateJSONGenerator($this->jsonGenerator))  {
+            if (is_null($this->jsonGenerator)) {
+                return $this->jsonGenerator; /*null*/
+            } elseif ($this->jsonGenerator instanceof JSONGenerator) {
+                return $this->jsonGenerator->to(); /*class*/
+            } elseif (is_float($this->jsonGenerator) || is_int($this->jsonGenerator)) {
+                return $this->jsonGenerator; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::lock');
+        throw new Exception('never get to this TopLevel::jsonGenerator');
     }
 
     /**
-     * @param Lock|float|null
+     * @param JSONGenerator|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLock(Lock|float|null $value): bool {
+    public static function validateJSONGenerator(JSONGenerator|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::lock");
+                throw new Exception("Attribute Error:TopLevel::jsonGenerator");
             }
-        } elseif ($value instanceof Lock) {
+        } elseif ($value instanceof JSONGenerator) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::lock");
+                throw new Exception("Attribute Error:TopLevel::jsonGenerator");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::lock");
+            throw new Exception("Attribute Error:TopLevel::jsonGenerator");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Lock|float|null
+     * @return JSONGenerator|float|null
      */
-    public function getLock(): Lock|float|null {
-        if (TopLevel::validateLock($this->lock))  {
-            return $this->lock;
+    public function getJSONGenerator(): JSONGenerator|float|null {
+        if (TopLevel::validateJSONGenerator($this->jsonGenerator))  {
+            return $this->jsonGenerator;
         }
-        throw new Exception('never get to getLock TopLevel::lock');
+        throw new Exception('never get to getJSONGenerator TopLevel::jsonGenerator');
     }
 
     /**
-     * @return Lock|float|null
+     * @return JSONGenerator|float|null
      */
-    public static function sampleLock(): Lock|float|null {
-        return Lock::sample(); /*175:lock*/
+    public static function sampleJSONGenerator(): JSONGenerator|float|null {
+        return JSONGenerator::sample(); /*187:jsonGenerator*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Long|float|null
+     * @return JSONNode|float|null
      */
-    public static function fromLong(stdClass|float|null $value): Long|float|null {
+    public static function fromJSONNode(stdClass|float|null $value): JSONNode|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Long::from($value); /*class*/
+            return JSONNode::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11863,71 +12898,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toLong(): stdClass|float|null {
-        if (TopLevel::validateLong($this->long))  {
-            if (is_null($this->long)) {
-                return $this->long; /*null*/
-            } elseif ($this->long instanceof Long) {
-                return $this->long->to(); /*class*/
-            } elseif (is_float($this->long) || is_int($this->long)) {
-                return $this->long; /*float*/
+    public function toJSONNode(): stdClass|float|null {
+        if (TopLevel::validateJSONNode($this->jsonNode))  {
+            if (is_null($this->jsonNode)) {
+                return $this->jsonNode; /*null*/
+            } elseif ($this->jsonNode instanceof JSONNode) {
+                return $this->jsonNode->to(); /*class*/
+            } elseif (is_float($this->jsonNode) || is_int($this->jsonNode)) {
+                return $this->jsonNode; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::long');
+        throw new Exception('never get to this TopLevel::jsonNode');
     }
 
     /**
-     * @param Long|float|null
+     * @param JSONNode|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateLong(Long|float|null $value): bool {
+    public static function validateJSONNode(JSONNode|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::long");
+                throw new Exception("Attribute Error:TopLevel::jsonNode");
             }
-        } elseif ($value instanceof Long) {
+        } elseif ($value instanceof JSONNode) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::long");
+                throw new Exception("Attribute Error:TopLevel::jsonNode");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::long");
+            throw new Exception("Attribute Error:TopLevel::jsonNode");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Long|float|null
+     * @return JSONNode|float|null
      */
-    public function getLong(): Long|float|null {
-        if (TopLevel::validateLong($this->long))  {
-            return $this->long;
+    public function getJSONNode(): JSONNode|float|null {
+        if (TopLevel::validateJSONNode($this->jsonNode))  {
+            return $this->jsonNode;
         }
-        throw new Exception('never get to getLong TopLevel::long');
+        throw new Exception('never get to getJSONNode TopLevel::jsonNode');
     }
 
     /**
-     * @return Long|float|null
+     * @return JSONNode|float|null
      */
-    public static function sampleLong(): Long|float|null {
-        return Long::sample(); /*176:long*/
+    public static function sampleJSONNode(): JSONNode|float|null {
+        return JSONNode::sample(); /*188:jsonNode*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Map|float|null
+     * @return JSONNull|float|null
      */
-    public static function fromMap(stdClass|float|null $value): Map|float|null {
+    public static function fromJSONNull(stdClass|float|null $value): JSONNull|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Map::from($value); /*class*/
+            return JSONNull::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -11939,71 +12974,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toMap(): stdClass|float|null {
-        if (TopLevel::validateMap($this->map))  {
-            if (is_null($this->map)) {
-                return $this->map; /*null*/
-            } elseif ($this->map instanceof Map) {
-                return $this->map->to(); /*class*/
-            } elseif (is_float($this->map) || is_int($this->map)) {
-                return $this->map; /*float*/
+    public function toJSONNull(): stdClass|float|null {
+        if (TopLevel::validateJSONNull($this->jsonNull))  {
+            if (is_null($this->jsonNull)) {
+                return $this->jsonNull; /*null*/
+            } elseif ($this->jsonNull instanceof JSONNull) {
+                return $this->jsonNull->to(); /*class*/
+            } elseif (is_float($this->jsonNull) || is_int($this->jsonNull)) {
+                return $this->jsonNull; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::map');
+        throw new Exception('never get to this TopLevel::jsonNull');
     }
 
     /**
-     * @param Map|float|null
+     * @param JSONNull|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateMap(Map|float|null $value): bool {
+    public static function validateJSONNull(JSONNull|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::map");
+                throw new Exception("Attribute Error:TopLevel::jsonNull");
             }
-        } elseif ($value instanceof Map) {
+        } elseif ($value instanceof JSONNull) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::map");
+                throw new Exception("Attribute Error:TopLevel::jsonNull");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::map");
+            throw new Exception("Attribute Error:TopLevel::jsonNull");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Map|float|null
+     * @return JSONNull|float|null
      */
-    public function getMap(): Map|float|null {
-        if (TopLevel::validateMap($this->map))  {
-            return $this->map;
+    public function getJSONNull(): JSONNull|float|null {
+        if (TopLevel::validateJSONNull($this->jsonNull))  {
+            return $this->jsonNull;
         }
-        throw new Exception('never get to getMap TopLevel::map');
+        throw new Exception('never get to getJSONNull TopLevel::jsonNull');
     }
 
     /**
-     * @return Map|float|null
+     * @return JSONNull|float|null
      */
-    public static function sampleMap(): Map|float|null {
-        return Map::sample(); /*177:map*/
+    public static function sampleJSONNull(): JSONNull|float|null {
+        return JSONNull::sample(); /*189:jsonNull*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return MetadataPropertyHandling|float|null
+     * @return JSONParser|float|null
      */
-    public static function fromMetadataPropertyHandling(stdClass|float|null $value): MetadataPropertyHandling|float|null {
+    public static function fromJSONParser(stdClass|float|null $value): JSONParser|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return MetadataPropertyHandling::from($value); /*class*/
+            return JSONParser::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12015,71 +13050,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toMetadataPropertyHandling(): stdClass|float|null {
-        if (TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
-            if (is_null($this->metadataPropertyHandling)) {
-                return $this->metadataPropertyHandling; /*null*/
-            } elseif ($this->metadataPropertyHandling instanceof MetadataPropertyHandling) {
-                return $this->metadataPropertyHandling->to(); /*class*/
-            } elseif (is_float($this->metadataPropertyHandling) || is_int($this->metadataPropertyHandling)) {
-                return $this->metadataPropertyHandling; /*float*/
+    public function toJSONParser(): stdClass|float|null {
+        if (TopLevel::validateJSONParser($this->jsonParser))  {
+            if (is_null($this->jsonParser)) {
+                return $this->jsonParser; /*null*/
+            } elseif ($this->jsonParser instanceof JSONParser) {
+                return $this->jsonParser->to(); /*class*/
+            } elseif (is_float($this->jsonParser) || is_int($this->jsonParser)) {
+                return $this->jsonParser; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::metadataPropertyHandling');
+        throw new Exception('never get to this TopLevel::jsonParser');
     }
 
     /**
-     * @param MetadataPropertyHandling|float|null
+     * @param JSONParser|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateMetadataPropertyHandling(MetadataPropertyHandling|float|null $value): bool {
+    public static function validateJSONParser(JSONParser|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
+                throw new Exception("Attribute Error:TopLevel::jsonParser");
             }
-        } elseif ($value instanceof MetadataPropertyHandling) {
+        } elseif ($value instanceof JSONParser) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
+                throw new Exception("Attribute Error:TopLevel::jsonParser");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
+            throw new Exception("Attribute Error:TopLevel::jsonParser");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return MetadataPropertyHandling|float|null
+     * @return JSONParser|float|null
      */
-    public function getMetadataPropertyHandling(): MetadataPropertyHandling|float|null {
-        if (TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
-            return $this->metadataPropertyHandling;
+    public function getJSONParser(): JSONParser|float|null {
+        if (TopLevel::validateJSONParser($this->jsonParser))  {
+            return $this->jsonParser;
         }
-        throw new Exception('never get to getMetadataPropertyHandling TopLevel::metadataPropertyHandling');
+        throw new Exception('never get to getJSONParser TopLevel::jsonParser');
     }
 
     /**
-     * @return MetadataPropertyHandling|float|null
+     * @return JSONParser|float|null
      */
-    public static function sampleMetadataPropertyHandling(): MetadataPropertyHandling|float|null {
-        return MetadataPropertyHandling::sample(); /*178:metadataPropertyHandling*/
+    public static function sampleJSONParser(): JSONParser|float|null {
+        return JSONParser::sample(); /*190:jsonParser*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Module|float|null
+     * @return JSONReader|float|null
      */
-    public static function fromModule(stdClass|float|null $value): Module|float|null {
+    public static function fromJSONReader(stdClass|float|null $value): JSONReader|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Module::from($value); /*class*/
+            return JSONReader::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12091,71 +13126,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toModule(): stdClass|float|null {
-        if (TopLevel::validateModule($this->module))  {
-            if (is_null($this->module)) {
-                return $this->module; /*null*/
-            } elseif ($this->module instanceof Module) {
-                return $this->module->to(); /*class*/
-            } elseif (is_float($this->module) || is_int($this->module)) {
-                return $this->module; /*float*/
+    public function toJSONReader(): stdClass|float|null {
+        if (TopLevel::validateJSONReader($this->jsonReader))  {
+            if (is_null($this->jsonReader)) {
+                return $this->jsonReader; /*null*/
+            } elseif ($this->jsonReader instanceof JSONReader) {
+                return $this->jsonReader->to(); /*class*/
+            } elseif (is_float($this->jsonReader) || is_int($this->jsonReader)) {
+                return $this->jsonReader; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::module');
+        throw new Exception('never get to this TopLevel::jsonReader');
     }
 
     /**
-     * @param Module|float|null
+     * @param JSONReader|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateModule(Module|float|null $value): bool {
+    public static function validateJSONReader(JSONReader|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::module");
+                throw new Exception("Attribute Error:TopLevel::jsonReader");
             }
-        } elseif ($value instanceof Module) {
+        } elseif ($value instanceof JSONReader) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::module");
+                throw new Exception("Attribute Error:TopLevel::jsonReader");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::module");
+            throw new Exception("Attribute Error:TopLevel::jsonReader");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Module|float|null
+     * @return JSONReader|float|null
      */
-    public function getModule(): Module|float|null {
-        if (TopLevel::validateModule($this->module))  {
-            return $this->module;
+    public function getJSONReader(): JSONReader|float|null {
+        if (TopLevel::validateJSONReader($this->jsonReader))  {
+            return $this->jsonReader;
         }
-        throw new Exception('never get to getModule TopLevel::module');
+        throw new Exception('never get to getJSONReader TopLevel::jsonReader');
     }
 
     /**
-     * @return Module|float|null
+     * @return JSONReader|float|null
      */
-    public static function sampleModule(): Module|float|null {
-        return Module::sample(); /*179:module*/
+    public static function sampleJSONReader(): JSONReader|float|null {
+        return JSONReader::sample(); /*191:jsonReader*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Mutable|float|null
+     * @return JSONTokenType|float|null
      */
-    public static function fromMutable(stdClass|float|null $value): Mutable|float|null {
+    public static function fromJSONTokenType(stdClass|float|null $value): JSONTokenType|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Mutable::from($value); /*class*/
+            return JSONTokenType::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12167,71 +13202,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toMutable(): stdClass|float|null {
-        if (TopLevel::validateMutable($this->mutable))  {
-            if (is_null($this->mutable)) {
-                return $this->mutable; /*null*/
-            } elseif ($this->mutable instanceof Mutable) {
-                return $this->mutable->to(); /*class*/
-            } elseif (is_float($this->mutable) || is_int($this->mutable)) {
-                return $this->mutable; /*float*/
+    public function toJSONTokenType(): stdClass|float|null {
+        if (TopLevel::validateJSONTokenType($this->jsonTokenType))  {
+            if (is_null($this->jsonTokenType)) {
+                return $this->jsonTokenType; /*null*/
+            } elseif ($this->jsonTokenType instanceof JSONTokenType) {
+                return $this->jsonTokenType->to(); /*class*/
+            } elseif (is_float($this->jsonTokenType) || is_int($this->jsonTokenType)) {
+                return $this->jsonTokenType; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::mutable');
+        throw new Exception('never get to this TopLevel::jsonTokenType');
     }
 
     /**
-     * @param Mutable|float|null
+     * @param JSONTokenType|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateMutable(Mutable|float|null $value): bool {
+    public static function validateJSONTokenType(JSONTokenType|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::mutable");
+                throw new Exception("Attribute Error:TopLevel::jsonTokenType");
             }
-        } elseif ($value instanceof Mutable) {
+        } elseif ($value instanceof JSONTokenType) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::mutable");
+                throw new Exception("Attribute Error:TopLevel::jsonTokenType");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::mutable");
+            throw new Exception("Attribute Error:TopLevel::jsonTokenType");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Mutable|float|null
+     * @return JSONTokenType|float|null
      */
-    public function getMutable(): Mutable|float|null {
-        if (TopLevel::validateMutable($this->mutable))  {
-            return $this->mutable;
+    public function getJSONTokenType(): JSONTokenType|float|null {
+        if (TopLevel::validateJSONTokenType($this->jsonTokenType))  {
+            return $this->jsonTokenType;
         }
-        throw new Exception('never get to getMutable TopLevel::mutable');
+        throw new Exception('never get to getJSONTokenType TopLevel::jsonTokenType');
     }
 
     /**
-     * @return Mutable|float|null
+     * @return JSONTokenType|float|null
      */
-    public static function sampleMutable(): Mutable|float|null {
-        return Mutable::sample(); /*180:mutable*/
+    public static function sampleJSONTokenType(): JSONTokenType|float|null {
+        return JSONTokenType::sample(); /*192:jsonTokenType*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Mutating|float|null
+     * @return Lambda|float|null
      */
-    public static function fromMutating(stdClass|float|null $value): Mutating|float|null {
+    public static function fromLambda(stdClass|float|null $value): Lambda|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Mutating::from($value); /*class*/
+            return Lambda::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12243,71 +13278,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toMutating(): stdClass|float|null {
-        if (TopLevel::validateMutating($this->mutating))  {
-            if (is_null($this->mutating)) {
-                return $this->mutating; /*null*/
-            } elseif ($this->mutating instanceof Mutating) {
-                return $this->mutating->to(); /*class*/
-            } elseif (is_float($this->mutating) || is_int($this->mutating)) {
-                return $this->mutating; /*float*/
+    public function toLambda(): stdClass|float|null {
+        if (TopLevel::validateLambda($this->lambda))  {
+            if (is_null($this->lambda)) {
+                return $this->lambda; /*null*/
+            } elseif ($this->lambda instanceof Lambda) {
+                return $this->lambda->to(); /*class*/
+            } elseif (is_float($this->lambda) || is_int($this->lambda)) {
+                return $this->lambda; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::mutating');
+        throw new Exception('never get to this TopLevel::lambda');
     }
 
     /**
-     * @param Mutating|float|null
+     * @param Lambda|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateMutating(Mutating|float|null $value): bool {
+    public static function validateLambda(Lambda|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::mutating");
+                throw new Exception("Attribute Error:TopLevel::lambda");
             }
-        } elseif ($value instanceof Mutating) {
+        } elseif ($value instanceof Lambda) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::mutating");
+                throw new Exception("Attribute Error:TopLevel::lambda");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::mutating");
+            throw new Exception("Attribute Error:TopLevel::lambda");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Mutating|float|null
+     * @return Lambda|float|null
      */
-    public function getMutating(): Mutating|float|null {
-        if (TopLevel::validateMutating($this->mutating))  {
-            return $this->mutating;
+    public function getLambda(): Lambda|float|null {
+        if (TopLevel::validateLambda($this->lambda))  {
+            return $this->lambda;
         }
-        throw new Exception('never get to getMutating TopLevel::mutating');
+        throw new Exception('never get to getLambda TopLevel::lambda');
     }
 
     /**
-     * @return Mutating|float|null
+     * @return Lambda|float|null
      */
-    public static function sampleMutating(): Mutating|float|null {
-        return Mutating::sample(); /*181:mutating*/
+    public static function sampleLambda(): Lambda|float|null {
+        return Lambda::sample(); /*193:lambda*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NamespaceClass|float|null
+     * @return Lazy|float|null
      */
-    public static function fromNamespace(stdClass|float|null $value): NamespaceClass|float|null {
+    public static function fromLazy(stdClass|float|null $value): Lazy|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NamespaceClass::from($value); /*class*/
+            return Lazy::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12319,71 +13354,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNamespace(): stdClass|float|null {
-        if (TopLevel::validateNamespace($this->namespace))  {
-            if (is_null($this->namespace)) {
-                return $this->namespace; /*null*/
-            } elseif ($this->namespace instanceof NamespaceClass) {
-                return $this->namespace->to(); /*class*/
-            } elseif (is_float($this->namespace) || is_int($this->namespace)) {
-                return $this->namespace; /*float*/
+    public function toLazy(): stdClass|float|null {
+        if (TopLevel::validateLazy($this->lazy))  {
+            if (is_null($this->lazy)) {
+                return $this->lazy; /*null*/
+            } elseif ($this->lazy instanceof Lazy) {
+                return $this->lazy->to(); /*class*/
+            } elseif (is_float($this->lazy) || is_int($this->lazy)) {
+                return $this->lazy; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::namespace');
+        throw new Exception('never get to this TopLevel::lazy');
     }
 
     /**
-     * @param NamespaceClass|float|null
+     * @param Lazy|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNamespace(NamespaceClass|float|null $value): bool {
+    public static function validateLazy(Lazy|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::namespace");
+                throw new Exception("Attribute Error:TopLevel::lazy");
             }
-        } elseif ($value instanceof NamespaceClass) {
+        } elseif ($value instanceof Lazy) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::namespace");
+                throw new Exception("Attribute Error:TopLevel::lazy");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::namespace");
+            throw new Exception("Attribute Error:TopLevel::lazy");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NamespaceClass|float|null
+     * @return Lazy|float|null
      */
-    public function getNamespace(): NamespaceClass|float|null {
-        if (TopLevel::validateNamespace($this->namespace))  {
-            return $this->namespace;
+    public function getLazy(): Lazy|float|null {
+        if (TopLevel::validateLazy($this->lazy))  {
+            return $this->lazy;
         }
-        throw new Exception('never get to getNamespace TopLevel::namespace');
+        throw new Exception('never get to getLazy TopLevel::lazy');
     }
 
     /**
-     * @return NamespaceClass|float|null
+     * @return Lazy|float|null
      */
-    public static function sampleNamespace(): NamespaceClass|float|null {
-        return NamespaceClass::sample(); /*182:namespace*/
+    public static function sampleLazy(): Lazy|float|null {
+        return Lazy::sample(); /*194:lazy*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Native|float|null
+     * @return Left|float|null
      */
-    public static function fromNative(stdClass|float|null $value): Native|float|null {
+    public static function fromLeft(stdClass|float|null $value): Left|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Native::from($value); /*class*/
+            return Left::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12395,71 +13430,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNative(): stdClass|float|null {
-        if (TopLevel::validateNative($this->native))  {
-            if (is_null($this->native)) {
-                return $this->native; /*null*/
-            } elseif ($this->native instanceof Native) {
-                return $this->native->to(); /*class*/
-            } elseif (is_float($this->native) || is_int($this->native)) {
-                return $this->native; /*float*/
+    public function toLeft(): stdClass|float|null {
+        if (TopLevel::validateLeft($this->left))  {
+            if (is_null($this->left)) {
+                return $this->left; /*null*/
+            } elseif ($this->left instanceof Left) {
+                return $this->left->to(); /*class*/
+            } elseif (is_float($this->left) || is_int($this->left)) {
+                return $this->left; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::native');
+        throw new Exception('never get to this TopLevel::left');
     }
 
     /**
-     * @param Native|float|null
+     * @param Left|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNative(Native|float|null $value): bool {
+    public static function validateLeft(Left|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::native");
+                throw new Exception("Attribute Error:TopLevel::left");
             }
-        } elseif ($value instanceof Native) {
+        } elseif ($value instanceof Left) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::native");
+                throw new Exception("Attribute Error:TopLevel::left");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::native");
+            throw new Exception("Attribute Error:TopLevel::left");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Native|float|null
+     * @return Left|float|null
      */
-    public function getNative(): Native|float|null {
-        if (TopLevel::validateNative($this->native))  {
-            return $this->native;
+    public function getLeft(): Left|float|null {
+        if (TopLevel::validateLeft($this->left))  {
+            return $this->left;
         }
-        throw new Exception('never get to getNative TopLevel::native');
+        throw new Exception('never get to getLeft TopLevel::left');
     }
 
     /**
-     * @return Native|float|null
+     * @return Left|float|null
      */
-    public static function sampleNative(): Native|float|null {
-        return Native::sample(); /*183:native*/
+    public static function sampleLeft(): Left|float|null {
+        return Left::sample(); /*195:left*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NewClass|float|null
+     * @return Let|float|null
      */
-    public static function fromNew(stdClass|float|null $value): NewClass|float|null {
+    public static function fromLet(stdClass|float|null $value): Let|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NewClass::from($value); /*class*/
+            return Let::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12471,71 +13506,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNew(): stdClass|float|null {
-        if (TopLevel::validateNew($this->new))  {
-            if (is_null($this->new)) {
-                return $this->new; /*null*/
-            } elseif ($this->new instanceof NewClass) {
-                return $this->new->to(); /*class*/
-            } elseif (is_float($this->new) || is_int($this->new)) {
-                return $this->new; /*float*/
+    public function toLet(): stdClass|float|null {
+        if (TopLevel::validateLet($this->let))  {
+            if (is_null($this->let)) {
+                return $this->let; /*null*/
+            } elseif ($this->let instanceof Let) {
+                return $this->let->to(); /*class*/
+            } elseif (is_float($this->let) || is_int($this->let)) {
+                return $this->let; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::new');
+        throw new Exception('never get to this TopLevel::let');
     }
 
     /**
-     * @param NewClass|float|null
+     * @param Let|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNew(NewClass|float|null $value): bool {
+    public static function validateLet(Let|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::new");
+                throw new Exception("Attribute Error:TopLevel::let");
             }
-        } elseif ($value instanceof NewClass) {
+        } elseif ($value instanceof Let) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::new");
+                throw new Exception("Attribute Error:TopLevel::let");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::new");
+            throw new Exception("Attribute Error:TopLevel::let");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NewClass|float|null
+     * @return Let|float|null
      */
-    public function getNew(): NewClass|float|null {
-        if (TopLevel::validateNew($this->new))  {
-            return $this->new;
+    public function getLet(): Let|float|null {
+        if (TopLevel::validateLet($this->let))  {
+            return $this->let;
         }
-        throw new Exception('never get to getNew TopLevel::new');
+        throw new Exception('never get to getLet TopLevel::let');
     }
 
     /**
-     * @return NewClass|float|null
+     * @return Let|float|null
      */
-    public static function sampleNew(): NewClass|float|null {
-        return NewClass::sample(); /*184:new*/
+    public static function sampleLet(): Let|float|null {
+        return Let::sample(); /*196:let*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Newtonsoft|float|null
+     * @return ListClass|float|null
      */
-    public static function fromNewtonsoft(stdClass|float|null $value): Newtonsoft|float|null {
+    public static function fromList(stdClass|float|null $value): ListClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Newtonsoft::from($value); /*class*/
+            return ListClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12547,71 +13582,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNewtonsoft(): stdClass|float|null {
-        if (TopLevel::validateNewtonsoft($this->newtonsoft))  {
-            if (is_null($this->newtonsoft)) {
-                return $this->newtonsoft; /*null*/
-            } elseif ($this->newtonsoft instanceof Newtonsoft) {
-                return $this->newtonsoft->to(); /*class*/
-            } elseif (is_float($this->newtonsoft) || is_int($this->newtonsoft)) {
-                return $this->newtonsoft; /*float*/
+    public function toList(): stdClass|float|null {
+        if (TopLevel::validateList($this->list))  {
+            if (is_null($this->list)) {
+                return $this->list; /*null*/
+            } elseif ($this->list instanceof ListClass) {
+                return $this->list->to(); /*class*/
+            } elseif (is_float($this->list) || is_int($this->list)) {
+                return $this->list; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::newtonsoft');
+        throw new Exception('never get to this TopLevel::list');
     }
 
     /**
-     * @param Newtonsoft|float|null
+     * @param ListClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNewtonsoft(Newtonsoft|float|null $value): bool {
+    public static function validateList(ListClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::newtonsoft");
+                throw new Exception("Attribute Error:TopLevel::list");
             }
-        } elseif ($value instanceof Newtonsoft) {
+        } elseif ($value instanceof ListClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::newtonsoft");
+                throw new Exception("Attribute Error:TopLevel::list");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::newtonsoft");
+            throw new Exception("Attribute Error:TopLevel::list");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Newtonsoft|float|null
+     * @return ListClass|float|null
      */
-    public function getNewtonsoft(): Newtonsoft|float|null {
-        if (TopLevel::validateNewtonsoft($this->newtonsoft))  {
-            return $this->newtonsoft;
+    public function getList(): ListClass|float|null {
+        if (TopLevel::validateList($this->list))  {
+            return $this->list;
         }
-        throw new Exception('never get to getNewtonsoft TopLevel::newtonsoft');
+        throw new Exception('never get to getList TopLevel::list');
     }
 
     /**
-     * @return Newtonsoft|float|null
+     * @return ListClass|float|null
      */
-    public static function sampleNewtonsoft(): Newtonsoft|float|null {
-        return Newtonsoft::sample(); /*185:newtonsoft*/
+    public static function sampleList(): ListClass|float|null {
+        return ListClass::sample(); /*197:list*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Nil|float|null
+     * @return Lock|float|null
      */
-    public static function fromNil(stdClass|float|null $value): Nil|float|null {
+    public static function fromLock(stdClass|float|null $value): Lock|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Nil::from($value); /*class*/
+            return Lock::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12623,71 +13658,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNil(): stdClass|float|null {
-        if (TopLevel::validateNil($this->nil))  {
-            if (is_null($this->nil)) {
-                return $this->nil; /*null*/
-            } elseif ($this->nil instanceof Nil) {
-                return $this->nil->to(); /*class*/
-            } elseif (is_float($this->nil) || is_int($this->nil)) {
-                return $this->nil; /*float*/
+    public function toLock(): stdClass|float|null {
+        if (TopLevel::validateLock($this->lock))  {
+            if (is_null($this->lock)) {
+                return $this->lock; /*null*/
+            } elseif ($this->lock instanceof Lock) {
+                return $this->lock->to(); /*class*/
+            } elseif (is_float($this->lock) || is_int($this->lock)) {
+                return $this->lock; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nil');
+        throw new Exception('never get to this TopLevel::lock');
     }
 
     /**
-     * @param Nil|float|null
+     * @param Lock|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNil(Nil|float|null $value): bool {
+    public static function validateLock(Lock|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nil");
+                throw new Exception("Attribute Error:TopLevel::lock");
             }
-        } elseif ($value instanceof Nil) {
+        } elseif ($value instanceof Lock) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nil");
+                throw new Exception("Attribute Error:TopLevel::lock");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nil");
+            throw new Exception("Attribute Error:TopLevel::lock");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Nil|float|null
+     * @return Lock|float|null
      */
-    public function getNil(): Nil|float|null {
-        if (TopLevel::validateNil($this->nil))  {
-            return $this->nil;
+    public function getLock(): Lock|float|null {
+        if (TopLevel::validateLock($this->lock))  {
+            return $this->lock;
         }
-        throw new Exception('never get to getNil TopLevel::nil');
+        throw new Exception('never get to getLock TopLevel::lock');
     }
 
     /**
-     * @return Nil|float|null
+     * @return Lock|float|null
      */
-    public static function sampleNil(): Nil|float|null {
-        return Nil::sample(); /*186:nil*/
+    public static function sampleLock(): Lock|float|null {
+        return Lock::sample(); /*198:lock*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return No|float|null
+     * @return Long|float|null
      */
-    public static function fromNo(stdClass|float|null $value): No|float|null {
+    public static function fromLong(stdClass|float|null $value): Long|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return No::from($value); /*class*/
+            return Long::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12699,71 +13734,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNo(): stdClass|float|null {
-        if (TopLevel::validateNo($this->no))  {
-            if (is_null($this->no)) {
-                return $this->no; /*null*/
-            } elseif ($this->no instanceof No) {
-                return $this->no->to(); /*class*/
-            } elseif (is_float($this->no) || is_int($this->no)) {
-                return $this->no; /*float*/
+    public function toLong(): stdClass|float|null {
+        if (TopLevel::validateLong($this->long))  {
+            if (is_null($this->long)) {
+                return $this->long; /*null*/
+            } elseif ($this->long instanceof Long) {
+                return $this->long->to(); /*class*/
+            } elseif (is_float($this->long) || is_int($this->long)) {
+                return $this->long; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::no');
+        throw new Exception('never get to this TopLevel::long');
     }
 
     /**
-     * @param No|float|null
+     * @param Long|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNo(No|float|null $value): bool {
+    public static function validateLong(Long|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::no");
+                throw new Exception("Attribute Error:TopLevel::long");
             }
-        } elseif ($value instanceof No) {
+        } elseif ($value instanceof Long) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::no");
+                throw new Exception("Attribute Error:TopLevel::long");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::no");
+            throw new Exception("Attribute Error:TopLevel::long");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return No|float|null
+     * @return Long|float|null
      */
-    public function getNo(): No|float|null {
-        if (TopLevel::validateNo($this->no))  {
-            return $this->no;
+    public function getLong(): Long|float|null {
+        if (TopLevel::validateLong($this->long))  {
+            return $this->long;
         }
-        throw new Exception('never get to getNo TopLevel::no');
+        throw new Exception('never get to getLong TopLevel::long');
     }
 
     /**
-     * @return No|float|null
+     * @return Long|float|null
      */
-    public static function sampleNo(): No|float|null {
-        return No::sample(); /*187:no*/
+    public static function sampleLong(): Long|float|null {
+        return Long::sample(); /*199:long*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Noexcept|float|null
+     * @return Map|float|null
      */
-    public static function fromNoexcept(stdClass|float|null $value): Noexcept|float|null {
+    public static function fromMap(stdClass|float|null $value): Map|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Noexcept::from($value); /*class*/
+            return Map::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12775,71 +13810,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNoexcept(): stdClass|float|null {
-        if (TopLevel::validateNoexcept($this->noexcept))  {
-            if (is_null($this->noexcept)) {
-                return $this->noexcept; /*null*/
-            } elseif ($this->noexcept instanceof Noexcept) {
-                return $this->noexcept->to(); /*class*/
-            } elseif (is_float($this->noexcept) || is_int($this->noexcept)) {
-                return $this->noexcept; /*float*/
+    public function toMap(): stdClass|float|null {
+        if (TopLevel::validateMap($this->map))  {
+            if (is_null($this->map)) {
+                return $this->map; /*null*/
+            } elseif ($this->map instanceof Map) {
+                return $this->map->to(); /*class*/
+            } elseif (is_float($this->map) || is_int($this->map)) {
+                return $this->map; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::noexcept');
+        throw new Exception('never get to this TopLevel::map');
     }
 
     /**
-     * @param Noexcept|float|null
+     * @param Map|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNoexcept(Noexcept|float|null $value): bool {
+    public static function validateMap(Map|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::noexcept");
+                throw new Exception("Attribute Error:TopLevel::map");
             }
-        } elseif ($value instanceof Noexcept) {
+        } elseif ($value instanceof Map) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::noexcept");
+                throw new Exception("Attribute Error:TopLevel::map");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::noexcept");
+            throw new Exception("Attribute Error:TopLevel::map");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Noexcept|float|null
+     * @return Map|float|null
      */
-    public function getNoexcept(): Noexcept|float|null {
-        if (TopLevel::validateNoexcept($this->noexcept))  {
-            return $this->noexcept;
+    public function getMap(): Map|float|null {
+        if (TopLevel::validateMap($this->map))  {
+            return $this->map;
         }
-        throw new Exception('never get to getNoexcept TopLevel::noexcept');
+        throw new Exception('never get to getMap TopLevel::map');
     }
 
     /**
-     * @return Noexcept|float|null
+     * @return Map|float|null
      */
-    public static function sampleNoexcept(): Noexcept|float|null {
-        return Noexcept::sample(); /*188:noexcept*/
+    public static function sampleMap(): Map|float|null {
+        return Map::sample(); /*200:map*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Nonatomic|float|null
+     * @return MetadataPropertyHandling|float|null
      */
-    public static function fromNonatomic(stdClass|float|null $value): Nonatomic|float|null {
+    public static function fromMetadataPropertyHandling(stdClass|float|null $value): MetadataPropertyHandling|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Nonatomic::from($value); /*class*/
+            return MetadataPropertyHandling::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12851,71 +13886,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNonatomic(): stdClass|float|null {
-        if (TopLevel::validateNonatomic($this->nonatomic))  {
-            if (is_null($this->nonatomic)) {
-                return $this->nonatomic; /*null*/
-            } elseif ($this->nonatomic instanceof Nonatomic) {
-                return $this->nonatomic->to(); /*class*/
-            } elseif (is_float($this->nonatomic) || is_int($this->nonatomic)) {
-                return $this->nonatomic; /*float*/
+    public function toMetadataPropertyHandling(): stdClass|float|null {
+        if (TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
+            if (is_null($this->metadataPropertyHandling)) {
+                return $this->metadataPropertyHandling; /*null*/
+            } elseif ($this->metadataPropertyHandling instanceof MetadataPropertyHandling) {
+                return $this->metadataPropertyHandling->to(); /*class*/
+            } elseif (is_float($this->metadataPropertyHandling) || is_int($this->metadataPropertyHandling)) {
+                return $this->metadataPropertyHandling; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nonatomic');
+        throw new Exception('never get to this TopLevel::metadataPropertyHandling');
     }
 
     /**
-     * @param Nonatomic|float|null
+     * @param MetadataPropertyHandling|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNonatomic(Nonatomic|float|null $value): bool {
+    public static function validateMetadataPropertyHandling(MetadataPropertyHandling|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonatomic");
+                throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
             }
-        } elseif ($value instanceof Nonatomic) {
+        } elseif ($value instanceof MetadataPropertyHandling) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonatomic");
+                throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nonatomic");
+            throw new Exception("Attribute Error:TopLevel::metadataPropertyHandling");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Nonatomic|float|null
+     * @return MetadataPropertyHandling|float|null
      */
-    public function getNonatomic(): Nonatomic|float|null {
-        if (TopLevel::validateNonatomic($this->nonatomic))  {
-            return $this->nonatomic;
+    public function getMetadataPropertyHandling(): MetadataPropertyHandling|float|null {
+        if (TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling))  {
+            return $this->metadataPropertyHandling;
         }
-        throw new Exception('never get to getNonatomic TopLevel::nonatomic');
+        throw new Exception('never get to getMetadataPropertyHandling TopLevel::metadataPropertyHandling');
     }
 
     /**
-     * @return Nonatomic|float|null
+     * @return MetadataPropertyHandling|float|null
      */
-    public static function sampleNonatomic(): Nonatomic|float|null {
-        return Nonatomic::sample(); /*189:nonatomic*/
+    public static function sampleMetadataPropertyHandling(): MetadataPropertyHandling|float|null {
+        return MetadataPropertyHandling::sample(); /*201:metadataPropertyHandling*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NoneClass|float|null
+     * @return Module|float|null
      */
-    public static function fromTopLevelNone(stdClass|float|null $value): NoneClass|float|null {
+    public static function fromModule(stdClass|float|null $value): Module|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NoneClass::from($value); /*class*/
+            return Module::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -12927,71 +13962,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelNone(): stdClass|float|null {
-        if (TopLevel::validateTopLevelNone($this->topLevelNone))  {
-            if (is_null($this->topLevelNone)) {
-                return $this->topLevelNone; /*null*/
-            } elseif ($this->topLevelNone instanceof NoneClass) {
-                return $this->topLevelNone->to(); /*class*/
-            } elseif (is_float($this->topLevelNone) || is_int($this->topLevelNone)) {
-                return $this->topLevelNone; /*float*/
+    public function toModule(): stdClass|float|null {
+        if (TopLevel::validateModule($this->module))  {
+            if (is_null($this->module)) {
+                return $this->module; /*null*/
+            } elseif ($this->module instanceof Module) {
+                return $this->module->to(); /*class*/
+            } elseif (is_float($this->module) || is_int($this->module)) {
+                return $this->module; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelNone');
+        throw new Exception('never get to this TopLevel::module');
     }
 
     /**
-     * @param NoneClass|float|null
+     * @param Module|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelNone(NoneClass|float|null $value): bool {
+    public static function validateModule(Module|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelNone");
+                throw new Exception("Attribute Error:TopLevel::module");
             }
-        } elseif ($value instanceof NoneClass) {
+        } elseif ($value instanceof Module) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelNone");
+                throw new Exception("Attribute Error:TopLevel::module");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelNone");
+            throw new Exception("Attribute Error:TopLevel::module");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NoneClass|float|null
+     * @return Module|float|null
      */
-    public function getTopLevelNone(): NoneClass|float|null {
-        if (TopLevel::validateTopLevelNone($this->topLevelNone))  {
-            return $this->topLevelNone;
+    public function getModule(): Module|float|null {
+        if (TopLevel::validateModule($this->module))  {
+            return $this->module;
         }
-        throw new Exception('never get to getTopLevelNone TopLevel::topLevelNone');
+        throw new Exception('never get to getModule TopLevel::module');
     }
 
     /**
-     * @return NoneClass|float|null
+     * @return Module|float|null
      */
-    public static function sampleTopLevelNone(): NoneClass|float|null {
-        return NoneClass::sample(); /*190:topLevelNone*/
+    public static function sampleModule(): Module|float|null {
+        return Module::sample(); /*202:module*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return None|float|null
+     * @return Mutable|float|null
      */
-    public static function fromNone(stdClass|float|null $value): None|float|null {
+    public static function fromMutable(stdClass|float|null $value): Mutable|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return None::from($value); /*class*/
+            return Mutable::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13003,71 +14038,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNone(): stdClass|float|null {
-        if (TopLevel::validateNone($this->none))  {
-            if (is_null($this->none)) {
-                return $this->none; /*null*/
-            } elseif ($this->none instanceof None) {
-                return $this->none->to(); /*class*/
-            } elseif (is_float($this->none) || is_int($this->none)) {
-                return $this->none; /*float*/
+    public function toMutable(): stdClass|float|null {
+        if (TopLevel::validateMutable($this->mutable))  {
+            if (is_null($this->mutable)) {
+                return $this->mutable; /*null*/
+            } elseif ($this->mutable instanceof Mutable) {
+                return $this->mutable->to(); /*class*/
+            } elseif (is_float($this->mutable) || is_int($this->mutable)) {
+                return $this->mutable; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::none');
+        throw new Exception('never get to this TopLevel::mutable');
     }
 
     /**
-     * @param None|float|null
+     * @param Mutable|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNone(None|float|null $value): bool {
+    public static function validateMutable(Mutable|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::none");
+                throw new Exception("Attribute Error:TopLevel::mutable");
             }
-        } elseif ($value instanceof None) {
+        } elseif ($value instanceof Mutable) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::none");
+                throw new Exception("Attribute Error:TopLevel::mutable");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::none");
+            throw new Exception("Attribute Error:TopLevel::mutable");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return None|float|null
+     * @return Mutable|float|null
      */
-    public function getNone(): None|float|null {
-        if (TopLevel::validateNone($this->none))  {
-            return $this->none;
+    public function getMutable(): Mutable|float|null {
+        if (TopLevel::validateMutable($this->mutable))  {
+            return $this->mutable;
         }
-        throw new Exception('never get to getNone TopLevel::none');
+        throw new Exception('never get to getMutable TopLevel::mutable');
     }
 
     /**
-     * @return None|float|null
+     * @return Mutable|float|null
      */
-    public static function sampleNone(): None|float|null {
-        return None::sample(); /*191:none*/
+    public static function sampleMutable(): Mutable|float|null {
+        return Mutable::sample(); /*203:mutable*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Nonlocal|float|null
+     * @return Mutating|float|null
      */
-    public static function fromNonlocal(stdClass|float|null $value): Nonlocal|float|null {
+    public static function fromMutating(stdClass|float|null $value): Mutating|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Nonlocal::from($value); /*class*/
+            return Mutating::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13079,71 +14114,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNonlocal(): stdClass|float|null {
-        if (TopLevel::validateNonlocal($this->nonlocal))  {
-            if (is_null($this->nonlocal)) {
-                return $this->nonlocal; /*null*/
-            } elseif ($this->nonlocal instanceof Nonlocal) {
-                return $this->nonlocal->to(); /*class*/
-            } elseif (is_float($this->nonlocal) || is_int($this->nonlocal)) {
-                return $this->nonlocal; /*float*/
+    public function toMutating(): stdClass|float|null {
+        if (TopLevel::validateMutating($this->mutating))  {
+            if (is_null($this->mutating)) {
+                return $this->mutating; /*null*/
+            } elseif ($this->mutating instanceof Mutating) {
+                return $this->mutating->to(); /*class*/
+            } elseif (is_float($this->mutating) || is_int($this->mutating)) {
+                return $this->mutating; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nonlocal');
+        throw new Exception('never get to this TopLevel::mutating');
     }
 
     /**
-     * @param Nonlocal|float|null
+     * @param Mutating|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNonlocal(Nonlocal|float|null $value): bool {
+    public static function validateMutating(Mutating|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonlocal");
+                throw new Exception("Attribute Error:TopLevel::mutating");
             }
-        } elseif ($value instanceof Nonlocal) {
+        } elseif ($value instanceof Mutating) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonlocal");
+                throw new Exception("Attribute Error:TopLevel::mutating");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nonlocal");
+            throw new Exception("Attribute Error:TopLevel::mutating");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Nonlocal|float|null
+     * @return Mutating|float|null
      */
-    public function getNonlocal(): Nonlocal|float|null {
-        if (TopLevel::validateNonlocal($this->nonlocal))  {
-            return $this->nonlocal;
+    public function getMutating(): Mutating|float|null {
+        if (TopLevel::validateMutating($this->mutating))  {
+            return $this->mutating;
         }
-        throw new Exception('never get to getNonlocal TopLevel::nonlocal');
+        throw new Exception('never get to getMutating TopLevel::mutating');
     }
 
     /**
-     * @return Nonlocal|float|null
+     * @return Mutating|float|null
      */
-    public static function sampleNonlocal(): Nonlocal|float|null {
-        return Nonlocal::sample(); /*192:nonlocal*/
+    public static function sampleMutating(): Mutating|float|null {
+        return Mutating::sample(); /*204:mutating*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Nonmutating|float|null
+     * @return NamespaceClass|float|null
      */
-    public static function fromNonmutating(stdClass|float|null $value): Nonmutating|float|null {
+    public static function fromNamespace(stdClass|float|null $value): NamespaceClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Nonmutating::from($value); /*class*/
+            return NamespaceClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13155,71 +14190,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNonmutating(): stdClass|float|null {
-        if (TopLevel::validateNonmutating($this->nonmutating))  {
-            if (is_null($this->nonmutating)) {
-                return $this->nonmutating; /*null*/
-            } elseif ($this->nonmutating instanceof Nonmutating) {
-                return $this->nonmutating->to(); /*class*/
-            } elseif (is_float($this->nonmutating) || is_int($this->nonmutating)) {
-                return $this->nonmutating; /*float*/
+    public function toNamespace(): stdClass|float|null {
+        if (TopLevel::validateNamespace($this->namespace))  {
+            if (is_null($this->namespace)) {
+                return $this->namespace; /*null*/
+            } elseif ($this->namespace instanceof NamespaceClass) {
+                return $this->namespace->to(); /*class*/
+            } elseif (is_float($this->namespace) || is_int($this->namespace)) {
+                return $this->namespace; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nonmutating');
+        throw new Exception('never get to this TopLevel::namespace');
     }
 
     /**
-     * @param Nonmutating|float|null
+     * @param NamespaceClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNonmutating(Nonmutating|float|null $value): bool {
+    public static function validateNamespace(NamespaceClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonmutating");
+                throw new Exception("Attribute Error:TopLevel::namespace");
             }
-        } elseif ($value instanceof Nonmutating) {
+        } elseif ($value instanceof NamespaceClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nonmutating");
+                throw new Exception("Attribute Error:TopLevel::namespace");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nonmutating");
+            throw new Exception("Attribute Error:TopLevel::namespace");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Nonmutating|float|null
+     * @return NamespaceClass|float|null
      */
-    public function getNonmutating(): Nonmutating|float|null {
-        if (TopLevel::validateNonmutating($this->nonmutating))  {
-            return $this->nonmutating;
+    public function getNamespace(): NamespaceClass|float|null {
+        if (TopLevel::validateNamespace($this->namespace))  {
+            return $this->namespace;
         }
-        throw new Exception('never get to getNonmutating TopLevel::nonmutating');
+        throw new Exception('never get to getNamespace TopLevel::namespace');
     }
 
     /**
-     * @return Nonmutating|float|null
+     * @return NamespaceClass|float|null
      */
-    public static function sampleNonmutating(): Nonmutating|float|null {
-        return Nonmutating::sample(); /*193:nonmutating*/
+    public static function sampleNamespace(): NamespaceClass|float|null {
+        return NamespaceClass::sample(); /*205:namespace*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Not|float|null
+     * @return Native|float|null
      */
-    public static function fromNot(stdClass|float|null $value): Not|float|null {
+    public static function fromNative(stdClass|float|null $value): Native|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Not::from($value); /*class*/
+            return Native::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13231,71 +14266,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNot(): stdClass|float|null {
-        if (TopLevel::validateNot($this->not))  {
-            if (is_null($this->not)) {
-                return $this->not; /*null*/
-            } elseif ($this->not instanceof Not) {
-                return $this->not->to(); /*class*/
-            } elseif (is_float($this->not) || is_int($this->not)) {
-                return $this->not; /*float*/
+    public function toNative(): stdClass|float|null {
+        if (TopLevel::validateNative($this->native))  {
+            if (is_null($this->native)) {
+                return $this->native; /*null*/
+            } elseif ($this->native instanceof Native) {
+                return $this->native->to(); /*class*/
+            } elseif (is_float($this->native) || is_int($this->native)) {
+                return $this->native; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::not');
+        throw new Exception('never get to this TopLevel::native');
     }
 
     /**
-     * @param Not|float|null
+     * @param Native|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNot(Not|float|null $value): bool {
+    public static function validateNative(Native|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::not");
+                throw new Exception("Attribute Error:TopLevel::native");
             }
-        } elseif ($value instanceof Not) {
+        } elseif ($value instanceof Native) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::not");
+                throw new Exception("Attribute Error:TopLevel::native");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::not");
+            throw new Exception("Attribute Error:TopLevel::native");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Not|float|null
+     * @return Native|float|null
      */
-    public function getNot(): Not|float|null {
-        if (TopLevel::validateNot($this->not))  {
-            return $this->not;
+    public function getNative(): Native|float|null {
+        if (TopLevel::validateNative($this->native))  {
+            return $this->native;
         }
-        throw new Exception('never get to getNot TopLevel::not');
+        throw new Exception('never get to getNative TopLevel::native');
     }
 
     /**
-     * @return Not|float|null
+     * @return Native|float|null
      */
-    public static function sampleNot(): Not|float|null {
-        return Not::sample(); /*194:not*/
+    public static function sampleNative(): Native|float|null {
+        return Native::sample(); /*206:native*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NotEq|float|null
+     * @return NewClass|float|null
      */
-    public static function fromNotEq(stdClass|float|null $value): NotEq|float|null {
+    public static function fromNew(stdClass|float|null $value): NewClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NotEq::from($value); /*class*/
+            return NewClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13307,71 +14342,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNotEq(): stdClass|float|null {
-        if (TopLevel::validateNotEq($this->notEq))  {
-            if (is_null($this->notEq)) {
-                return $this->notEq; /*null*/
-            } elseif ($this->notEq instanceof NotEq) {
-                return $this->notEq->to(); /*class*/
-            } elseif (is_float($this->notEq) || is_int($this->notEq)) {
-                return $this->notEq; /*float*/
+    public function toNew(): stdClass|float|null {
+        if (TopLevel::validateNew($this->new))  {
+            if (is_null($this->new)) {
+                return $this->new; /*null*/
+            } elseif ($this->new instanceof NewClass) {
+                return $this->new->to(); /*class*/
+            } elseif (is_float($this->new) || is_int($this->new)) {
+                return $this->new; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::notEq');
+        throw new Exception('never get to this TopLevel::new');
     }
 
     /**
-     * @param NotEq|float|null
+     * @param NewClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNotEq(NotEq|float|null $value): bool {
+    public static function validateNew(NewClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::notEq");
+                throw new Exception("Attribute Error:TopLevel::new");
             }
-        } elseif ($value instanceof NotEq) {
+        } elseif ($value instanceof NewClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::notEq");
+                throw new Exception("Attribute Error:TopLevel::new");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::notEq");
+            throw new Exception("Attribute Error:TopLevel::new");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NotEq|float|null
+     * @return NewClass|float|null
      */
-    public function getNotEq(): NotEq|float|null {
-        if (TopLevel::validateNotEq($this->notEq))  {
-            return $this->notEq;
+    public function getNew(): NewClass|float|null {
+        if (TopLevel::validateNew($this->new))  {
+            return $this->new;
         }
-        throw new Exception('never get to getNotEq TopLevel::notEq');
+        throw new Exception('never get to getNew TopLevel::new');
     }
 
     /**
-     * @return NotEq|float|null
+     * @return NewClass|float|null
      */
-    public static function sampleNotEq(): NotEq|float|null {
-        return NotEq::sample(); /*195:notEq*/
+    public static function sampleNew(): NewClass|float|null {
+        return NewClass::sample(); /*207:new*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NSString|float|null
+     * @return Newtonsoft|float|null
      */
-    public static function fromNSString(stdClass|float|null $value): NSString|float|null {
+    public static function fromNewtonsoft(stdClass|float|null $value): Newtonsoft|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NSString::from($value); /*class*/
+            return Newtonsoft::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13383,71 +14418,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNSString(): stdClass|float|null {
-        if (TopLevel::validateNSString($this->nsString))  {
-            if (is_null($this->nsString)) {
-                return $this->nsString; /*null*/
-            } elseif ($this->nsString instanceof NSString) {
-                return $this->nsString->to(); /*class*/
-            } elseif (is_float($this->nsString) || is_int($this->nsString)) {
-                return $this->nsString; /*float*/
+    public function toNewtonsoft(): stdClass|float|null {
+        if (TopLevel::validateNewtonsoft($this->newtonsoft))  {
+            if (is_null($this->newtonsoft)) {
+                return $this->newtonsoft; /*null*/
+            } elseif ($this->newtonsoft instanceof Newtonsoft) {
+                return $this->newtonsoft->to(); /*class*/
+            } elseif (is_float($this->newtonsoft) || is_int($this->newtonsoft)) {
+                return $this->newtonsoft; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nsString');
+        throw new Exception('never get to this TopLevel::newtonsoft');
     }
 
     /**
-     * @param NSString|float|null
+     * @param Newtonsoft|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNSString(NSString|float|null $value): bool {
+    public static function validateNewtonsoft(Newtonsoft|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nsString");
+                throw new Exception("Attribute Error:TopLevel::newtonsoft");
             }
-        } elseif ($value instanceof NSString) {
+        } elseif ($value instanceof Newtonsoft) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nsString");
+                throw new Exception("Attribute Error:TopLevel::newtonsoft");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nsString");
+            throw new Exception("Attribute Error:TopLevel::newtonsoft");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NSString|float|null
+     * @return Newtonsoft|float|null
      */
-    public function getNSString(): NSString|float|null {
-        if (TopLevel::validateNSString($this->nsString))  {
-            return $this->nsString;
+    public function getNewtonsoft(): Newtonsoft|float|null {
+        if (TopLevel::validateNewtonsoft($this->newtonsoft))  {
+            return $this->newtonsoft;
         }
-        throw new Exception('never get to getNSString TopLevel::nsString');
+        throw new Exception('never get to getNewtonsoft TopLevel::newtonsoft');
     }
 
     /**
-     * @return NSString|float|null
+     * @return Newtonsoft|float|null
      */
-    public static function sampleNSString(): NSString|float|null {
-        return NSString::sample(); /*196:nsString*/
+    public static function sampleNewtonsoft(): Newtonsoft|float|null {
+        return Newtonsoft::sample(); /*208:newtonsoft*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return NULLClass|float|null
+     * @return Nil|float|null
      */
-    public static function fromNull(stdClass|float|null $value): NULLClass|float|null {
+    public static function fromNil(stdClass|float|null $value): Nil|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return NULLClass::from($value); /*class*/
+            return Nil::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13459,71 +14494,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNull(): stdClass|float|null {
-        if (TopLevel::validateNull($this->null))  {
-            if (is_null($this->null)) {
-                return $this->null; /*null*/
-            } elseif ($this->null instanceof NULLClass) {
-                return $this->null->to(); /*class*/
-            } elseif (is_float($this->null) || is_int($this->null)) {
-                return $this->null; /*float*/
+    public function toNil(): stdClass|float|null {
+        if (TopLevel::validateNil($this->nil))  {
+            if (is_null($this->nil)) {
+                return $this->nil; /*null*/
+            } elseif ($this->nil instanceof Nil) {
+                return $this->nil->to(); /*class*/
+            } elseif (is_float($this->nil) || is_int($this->nil)) {
+                return $this->nil; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::null');
+        throw new Exception('never get to this TopLevel::nil');
     }
 
     /**
-     * @param NULLClass|float|null
+     * @param Nil|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNull(NULLClass|float|null $value): bool {
+    public static function validateNil(Nil|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::null");
+                throw new Exception("Attribute Error:TopLevel::nil");
             }
-        } elseif ($value instanceof NULLClass) {
+        } elseif ($value instanceof Nil) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::null");
+                throw new Exception("Attribute Error:TopLevel::nil");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::null");
+            throw new Exception("Attribute Error:TopLevel::nil");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return NULLClass|float|null
+     * @return Nil|float|null
      */
-    public function getNull(): NULLClass|float|null {
-        if (TopLevel::validateNull($this->null))  {
-            return $this->null;
+    public function getNil(): Nil|float|null {
+        if (TopLevel::validateNil($this->nil))  {
+            return $this->nil;
         }
-        throw new Exception('never get to getNull TopLevel::null');
+        throw new Exception('never get to getNil TopLevel::nil');
     }
 
     /**
-     * @return NULLClass|float|null
+     * @return Nil|float|null
      */
-    public static function sampleNull(): NULLClass|float|null {
-        return NULLClass::sample(); /*197:null*/
+    public static function sampleNil(): Nil|float|null {
+        return Nil::sample(); /*209:nil*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return UnionNullNull|float|null
+     * @return No|float|null
      */
-    public static function fromTopLevelNull(stdClass|float|null $value): UnionNullNull|float|null {
+    public static function fromNo(stdClass|float|null $value): No|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return UnionNullNull::from($value); /*class*/
+            return No::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13535,71 +14570,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelNull(): stdClass|float|null {
-        if (TopLevel::validateTopLevelNull($this->topLevelNull))  {
-            if (is_null($this->topLevelNull)) {
-                return $this->topLevelNull; /*null*/
-            } elseif ($this->topLevelNull instanceof UnionNullNull) {
-                return $this->topLevelNull->to(); /*class*/
-            } elseif (is_float($this->topLevelNull) || is_int($this->topLevelNull)) {
-                return $this->topLevelNull; /*float*/
+    public function toNo(): stdClass|float|null {
+        if (TopLevel::validateNo($this->no))  {
+            if (is_null($this->no)) {
+                return $this->no; /*null*/
+            } elseif ($this->no instanceof No) {
+                return $this->no->to(); /*class*/
+            } elseif (is_float($this->no) || is_int($this->no)) {
+                return $this->no; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelNull');
+        throw new Exception('never get to this TopLevel::no');
     }
 
     /**
-     * @param UnionNullNull|float|null
+     * @param No|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelNull(UnionNullNull|float|null $value): bool {
+    public static function validateNo(No|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelNull");
+                throw new Exception("Attribute Error:TopLevel::no");
             }
-        } elseif ($value instanceof UnionNullNull) {
+        } elseif ($value instanceof No) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelNull");
+                throw new Exception("Attribute Error:TopLevel::no");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelNull");
+            throw new Exception("Attribute Error:TopLevel::no");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return UnionNullNull|float|null
+     * @return No|float|null
      */
-    public function getTopLevelNull(): UnionNullNull|float|null {
-        if (TopLevel::validateTopLevelNull($this->topLevelNull))  {
-            return $this->topLevelNull;
+    public function getNo(): No|float|null {
+        if (TopLevel::validateNo($this->no))  {
+            return $this->no;
         }
-        throw new Exception('never get to getTopLevelNull TopLevel::topLevelNull');
+        throw new Exception('never get to getNo TopLevel::no');
     }
 
     /**
-     * @return UnionNullNull|float|null
+     * @return No|float|null
      */
-    public static function sampleTopLevelNull(): UnionNullNull|float|null {
-        return UnionNullNull::sample(); /*198:topLevelNull*/
+    public static function sampleNo(): No|float|null {
+        return No::sample(); /*210:no*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Nullptr|float|null
+     * @return Noexcept|float|null
      */
-    public static function fromNullptr(stdClass|float|null $value): Nullptr|float|null {
+    public static function fromNoexcept(stdClass|float|null $value): Noexcept|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Nullptr::from($value); /*class*/
+            return Noexcept::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13611,71 +14646,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNullptr(): stdClass|float|null {
-        if (TopLevel::validateNullptr($this->nullptr))  {
-            if (is_null($this->nullptr)) {
-                return $this->nullptr; /*null*/
-            } elseif ($this->nullptr instanceof Nullptr) {
-                return $this->nullptr->to(); /*class*/
-            } elseif (is_float($this->nullptr) || is_int($this->nullptr)) {
-                return $this->nullptr; /*float*/
+    public function toNoexcept(): stdClass|float|null {
+        if (TopLevel::validateNoexcept($this->noexcept))  {
+            if (is_null($this->noexcept)) {
+                return $this->noexcept; /*null*/
+            } elseif ($this->noexcept instanceof Noexcept) {
+                return $this->noexcept->to(); /*class*/
+            } elseif (is_float($this->noexcept) || is_int($this->noexcept)) {
+                return $this->noexcept; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::nullptr');
+        throw new Exception('never get to this TopLevel::noexcept');
     }
 
     /**
-     * @param Nullptr|float|null
+     * @param Noexcept|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNullptr(Nullptr|float|null $value): bool {
+    public static function validateNoexcept(Noexcept|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::nullptr");
+                throw new Exception("Attribute Error:TopLevel::noexcept");
             }
-        } elseif ($value instanceof Nullptr) {
+        } elseif ($value instanceof Noexcept) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::nullptr");
+                throw new Exception("Attribute Error:TopLevel::noexcept");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::nullptr");
+            throw new Exception("Attribute Error:TopLevel::noexcept");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Nullptr|float|null
+     * @return Noexcept|float|null
      */
-    public function getNullptr(): Nullptr|float|null {
-        if (TopLevel::validateNullptr($this->nullptr))  {
-            return $this->nullptr;
+    public function getNoexcept(): Noexcept|float|null {
+        if (TopLevel::validateNoexcept($this->noexcept))  {
+            return $this->noexcept;
         }
-        throw new Exception('never get to getNullptr TopLevel::nullptr');
+        throw new Exception('never get to getNoexcept TopLevel::noexcept');
     }
 
     /**
-     * @return Nullptr|float|null
+     * @return Noexcept|float|null
      */
-    public static function sampleNullptr(): Nullptr|float|null {
-        return Nullptr::sample(); /*199:nullptr*/
+    public static function sampleNoexcept(): Noexcept|float|null {
+        return Noexcept::sample(); /*211:noexcept*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Number|float|null
+     * @return Nonatomic|float|null
      */
-    public static function fromNumber(stdClass|float|null $value): Number|float|null {
+    public static function fromNonatomic(stdClass|float|null $value): Nonatomic|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Number::from($value); /*class*/
+            return Nonatomic::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13687,71 +14722,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toNumber(): stdClass|float|null {
-        if (TopLevel::validateNumber($this->number))  {
-            if (is_null($this->number)) {
-                return $this->number; /*null*/
-            } elseif ($this->number instanceof Number) {
-                return $this->number->to(); /*class*/
-            } elseif (is_float($this->number) || is_int($this->number)) {
-                return $this->number; /*float*/
+    public function toNonatomic(): stdClass|float|null {
+        if (TopLevel::validateNonatomic($this->nonatomic))  {
+            if (is_null($this->nonatomic)) {
+                return $this->nonatomic; /*null*/
+            } elseif ($this->nonatomic instanceof Nonatomic) {
+                return $this->nonatomic->to(); /*class*/
+            } elseif (is_float($this->nonatomic) || is_int($this->nonatomic)) {
+                return $this->nonatomic; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::number');
+        throw new Exception('never get to this TopLevel::nonatomic');
     }
 
     /**
-     * @param Number|float|null
+     * @param Nonatomic|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateNumber(Number|float|null $value): bool {
+    public static function validateNonatomic(Nonatomic|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::number");
+                throw new Exception("Attribute Error:TopLevel::nonatomic");
             }
-        } elseif ($value instanceof Number) {
+        } elseif ($value instanceof Nonatomic) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::number");
+                throw new Exception("Attribute Error:TopLevel::nonatomic");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::number");
+            throw new Exception("Attribute Error:TopLevel::nonatomic");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Number|float|null
+     * @return Nonatomic|float|null
      */
-    public function getNumber(): Number|float|null {
-        if (TopLevel::validateNumber($this->number))  {
-            return $this->number;
+    public function getNonatomic(): Nonatomic|float|null {
+        if (TopLevel::validateNonatomic($this->nonatomic))  {
+            return $this->nonatomic;
         }
-        throw new Exception('never get to getNumber TopLevel::number');
+        throw new Exception('never get to getNonatomic TopLevel::nonatomic');
     }
 
     /**
-     * @return Number|float|null
+     * @return Nonatomic|float|null
      */
-    public static function sampleNumber(): Number|float|null {
-        return Number::sample(); /*200:number*/
+    public static function sampleNonatomic(): Nonatomic|float|null {
+        return Nonatomic::sample(); /*212:nonatomic*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ObjectClass|float|null
+     * @return NoneClass|float|null
      */
-    public static function fromObject(stdClass|float|null $value): ObjectClass|float|null {
+    public static function fromTopLevelNone(stdClass|float|null $value): NoneClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ObjectClass::from($value); /*class*/
+            return NoneClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13763,71 +14798,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toObject(): stdClass|float|null {
-        if (TopLevel::validateObject($this->object))  {
-            if (is_null($this->object)) {
-                return $this->object; /*null*/
-            } elseif ($this->object instanceof ObjectClass) {
-                return $this->object->to(); /*class*/
-            } elseif (is_float($this->object) || is_int($this->object)) {
-                return $this->object; /*float*/
+    public function toTopLevelNone(): stdClass|float|null {
+        if (TopLevel::validateTopLevelNone($this->topLevelNone))  {
+            if (is_null($this->topLevelNone)) {
+                return $this->topLevelNone; /*null*/
+            } elseif ($this->topLevelNone instanceof NoneClass) {
+                return $this->topLevelNone->to(); /*class*/
+            } elseif (is_float($this->topLevelNone) || is_int($this->topLevelNone)) {
+                return $this->topLevelNone; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::object');
+        throw new Exception('never get to this TopLevel::topLevelNone');
     }
 
     /**
-     * @param ObjectClass|float|null
+     * @param NoneClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateObject(ObjectClass|float|null $value): bool {
+    public static function validateTopLevelNone(NoneClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::object");
+                throw new Exception("Attribute Error:TopLevel::topLevelNone");
             }
-        } elseif ($value instanceof ObjectClass) {
+        } elseif ($value instanceof NoneClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::object");
+                throw new Exception("Attribute Error:TopLevel::topLevelNone");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::object");
+            throw new Exception("Attribute Error:TopLevel::topLevelNone");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ObjectClass|float|null
+     * @return NoneClass|float|null
      */
-    public function getObject(): ObjectClass|float|null {
-        if (TopLevel::validateObject($this->object))  {
-            return $this->object;
+    public function getTopLevelNone(): NoneClass|float|null {
+        if (TopLevel::validateTopLevelNone($this->topLevelNone))  {
+            return $this->topLevelNone;
         }
-        throw new Exception('never get to getObject TopLevel::object');
+        throw new Exception('never get to getTopLevelNone TopLevel::topLevelNone');
     }
 
     /**
-     * @return ObjectClass|float|null
+     * @return NoneClass|float|null
      */
-    public static function sampleObject(): ObjectClass|float|null {
-        return ObjectClass::sample(); /*201:object*/
+    public static function sampleTopLevelNone(): NoneClass|float|null {
+        return NoneClass::sample(); /*213:topLevelNone*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Of|float|null
+     * @return None|float|null
      */
-    public static function fromOf(stdClass|float|null $value): Of|float|null {
+    public static function fromNone(stdClass|float|null $value): None|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Of::from($value); /*class*/
+            return None::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13839,71 +14874,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOf(): stdClass|float|null {
-        if (TopLevel::validateOf($this->of))  {
-            if (is_null($this->of)) {
-                return $this->of; /*null*/
-            } elseif ($this->of instanceof Of) {
-                return $this->of->to(); /*class*/
-            } elseif (is_float($this->of) || is_int($this->of)) {
-                return $this->of; /*float*/
+    public function toNone(): stdClass|float|null {
+        if (TopLevel::validateNone($this->none))  {
+            if (is_null($this->none)) {
+                return $this->none; /*null*/
+            } elseif ($this->none instanceof None) {
+                return $this->none->to(); /*class*/
+            } elseif (is_float($this->none) || is_int($this->none)) {
+                return $this->none; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::of');
+        throw new Exception('never get to this TopLevel::none');
     }
 
     /**
-     * @param Of|float|null
+     * @param None|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOf(Of|float|null $value): bool {
+    public static function validateNone(None|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::of");
+                throw new Exception("Attribute Error:TopLevel::none");
             }
-        } elseif ($value instanceof Of) {
+        } elseif ($value instanceof None) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::of");
+                throw new Exception("Attribute Error:TopLevel::none");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::of");
+            throw new Exception("Attribute Error:TopLevel::none");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Of|float|null
+     * @return None|float|null
      */
-    public function getOf(): Of|float|null {
-        if (TopLevel::validateOf($this->of))  {
-            return $this->of;
+    public function getNone(): None|float|null {
+        if (TopLevel::validateNone($this->none))  {
+            return $this->none;
         }
-        throw new Exception('never get to getOf TopLevel::of');
+        throw new Exception('never get to getNone TopLevel::none');
     }
 
     /**
-     * @return Of|float|null
+     * @return None|float|null
      */
-    public static function sampleOf(): Of|float|null {
-        return Of::sample(); /*202:of*/
+    public static function sampleNone(): None|float|null {
+        return None::sample(); /*214:none*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Oneway|float|null
+     * @return Nonlocal|float|null
      */
-    public static function fromOneway(stdClass|float|null $value): Oneway|float|null {
+    public static function fromNonlocal(stdClass|float|null $value): Nonlocal|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Oneway::from($value); /*class*/
+            return Nonlocal::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13915,71 +14950,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOneway(): stdClass|float|null {
-        if (TopLevel::validateOneway($this->oneway))  {
-            if (is_null($this->oneway)) {
-                return $this->oneway; /*null*/
-            } elseif ($this->oneway instanceof Oneway) {
-                return $this->oneway->to(); /*class*/
-            } elseif (is_float($this->oneway) || is_int($this->oneway)) {
-                return $this->oneway; /*float*/
+    public function toNonlocal(): stdClass|float|null {
+        if (TopLevel::validateNonlocal($this->nonlocal))  {
+            if (is_null($this->nonlocal)) {
+                return $this->nonlocal; /*null*/
+            } elseif ($this->nonlocal instanceof Nonlocal) {
+                return $this->nonlocal->to(); /*class*/
+            } elseif (is_float($this->nonlocal) || is_int($this->nonlocal)) {
+                return $this->nonlocal; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::oneway');
+        throw new Exception('never get to this TopLevel::nonlocal');
     }
 
     /**
-     * @param Oneway|float|null
+     * @param Nonlocal|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOneway(Oneway|float|null $value): bool {
+    public static function validateNonlocal(Nonlocal|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::oneway");
+                throw new Exception("Attribute Error:TopLevel::nonlocal");
             }
-        } elseif ($value instanceof Oneway) {
+        } elseif ($value instanceof Nonlocal) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::oneway");
+                throw new Exception("Attribute Error:TopLevel::nonlocal");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::oneway");
+            throw new Exception("Attribute Error:TopLevel::nonlocal");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Oneway|float|null
+     * @return Nonlocal|float|null
      */
-    public function getOneway(): Oneway|float|null {
-        if (TopLevel::validateOneway($this->oneway))  {
-            return $this->oneway;
+    public function getNonlocal(): Nonlocal|float|null {
+        if (TopLevel::validateNonlocal($this->nonlocal))  {
+            return $this->nonlocal;
         }
-        throw new Exception('never get to getOneway TopLevel::oneway');
+        throw new Exception('never get to getNonlocal TopLevel::nonlocal');
     }
 
     /**
-     * @return Oneway|float|null
+     * @return Nonlocal|float|null
      */
-    public static function sampleOneway(): Oneway|float|null {
-        return Oneway::sample(); /*203:oneway*/
+    public static function sampleNonlocal(): Nonlocal|float|null {
+        return Nonlocal::sample(); /*215:nonlocal*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Open|float|null
+     * @return Nonmutating|float|null
      */
-    public static function fromOpen(stdClass|float|null $value): Open|float|null {
+    public static function fromNonmutating(stdClass|float|null $value): Nonmutating|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Open::from($value); /*class*/
+            return Nonmutating::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -13991,71 +15026,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOpen(): stdClass|float|null {
-        if (TopLevel::validateOpen($this->open))  {
-            if (is_null($this->open)) {
-                return $this->open; /*null*/
-            } elseif ($this->open instanceof Open) {
-                return $this->open->to(); /*class*/
-            } elseif (is_float($this->open) || is_int($this->open)) {
-                return $this->open; /*float*/
+    public function toNonmutating(): stdClass|float|null {
+        if (TopLevel::validateNonmutating($this->nonmutating))  {
+            if (is_null($this->nonmutating)) {
+                return $this->nonmutating; /*null*/
+            } elseif ($this->nonmutating instanceof Nonmutating) {
+                return $this->nonmutating->to(); /*class*/
+            } elseif (is_float($this->nonmutating) || is_int($this->nonmutating)) {
+                return $this->nonmutating; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::open');
+        throw new Exception('never get to this TopLevel::nonmutating');
     }
 
     /**
-     * @param Open|float|null
+     * @param Nonmutating|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOpen(Open|float|null $value): bool {
+    public static function validateNonmutating(Nonmutating|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::open");
+                throw new Exception("Attribute Error:TopLevel::nonmutating");
             }
-        } elseif ($value instanceof Open) {
+        } elseif ($value instanceof Nonmutating) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::open");
+                throw new Exception("Attribute Error:TopLevel::nonmutating");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::open");
+            throw new Exception("Attribute Error:TopLevel::nonmutating");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Open|float|null
+     * @return Nonmutating|float|null
      */
-    public function getOpen(): Open|float|null {
-        if (TopLevel::validateOpen($this->open))  {
-            return $this->open;
+    public function getNonmutating(): Nonmutating|float|null {
+        if (TopLevel::validateNonmutating($this->nonmutating))  {
+            return $this->nonmutating;
         }
-        throw new Exception('never get to getOpen TopLevel::open');
+        throw new Exception('never get to getNonmutating TopLevel::nonmutating');
     }
 
     /**
-     * @return Open|float|null
+     * @return Nonmutating|float|null
      */
-    public static function sampleOpen(): Open|float|null {
-        return Open::sample(); /*204:open*/
+    public static function sampleNonmutating(): Nonmutating|float|null {
+        return Nonmutating::sample(); /*216:nonmutating*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Operator|float|null
+     * @return NoSuchMethod|float|null
      */
-    public static function fromOperator(stdClass|float|null $value): Operator|float|null {
+    public static function fromNoSuchMethod(stdClass|float|null $value): NoSuchMethod|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Operator::from($value); /*class*/
+            return NoSuchMethod::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14067,71 +15102,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOperator(): stdClass|float|null {
-        if (TopLevel::validateOperator($this->operator))  {
-            if (is_null($this->operator)) {
-                return $this->operator; /*null*/
-            } elseif ($this->operator instanceof Operator) {
-                return $this->operator->to(); /*class*/
-            } elseif (is_float($this->operator) || is_int($this->operator)) {
-                return $this->operator; /*float*/
+    public function toNoSuchMethod(): stdClass|float|null {
+        if (TopLevel::validateNoSuchMethod($this->noSuchMethod))  {
+            if (is_null($this->noSuchMethod)) {
+                return $this->noSuchMethod; /*null*/
+            } elseif ($this->noSuchMethod instanceof NoSuchMethod) {
+                return $this->noSuchMethod->to(); /*class*/
+            } elseif (is_float($this->noSuchMethod) || is_int($this->noSuchMethod)) {
+                return $this->noSuchMethod; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::operator');
+        throw new Exception('never get to this TopLevel::noSuchMethod');
     }
 
     /**
-     * @param Operator|float|null
+     * @param NoSuchMethod|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOperator(Operator|float|null $value): bool {
+    public static function validateNoSuchMethod(NoSuchMethod|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::operator");
+                throw new Exception("Attribute Error:TopLevel::noSuchMethod");
             }
-        } elseif ($value instanceof Operator) {
+        } elseif ($value instanceof NoSuchMethod) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::operator");
+                throw new Exception("Attribute Error:TopLevel::noSuchMethod");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::operator");
+            throw new Exception("Attribute Error:TopLevel::noSuchMethod");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Operator|float|null
+     * @return NoSuchMethod|float|null
      */
-    public function getOperator(): Operator|float|null {
-        if (TopLevel::validateOperator($this->operator))  {
-            return $this->operator;
+    public function getNoSuchMethod(): NoSuchMethod|float|null {
+        if (TopLevel::validateNoSuchMethod($this->noSuchMethod))  {
+            return $this->noSuchMethod;
         }
-        throw new Exception('never get to getOperator TopLevel::operator');
+        throw new Exception('never get to getNoSuchMethod TopLevel::noSuchMethod');
     }
 
     /**
-     * @return Operator|float|null
+     * @return NoSuchMethod|float|null
      */
-    public static function sampleOperator(): Operator|float|null {
-        return Operator::sample(); /*205:operator*/
+    public static function sampleNoSuchMethod(): NoSuchMethod|float|null {
+        return NoSuchMethod::sample(); /*217:noSuchMethod*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Optional|float|null
+     * @return Not|float|null
      */
-    public static function fromOptional(stdClass|float|null $value): Optional|float|null {
+    public static function fromNot(stdClass|float|null $value): Not|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Optional::from($value); /*class*/
+            return Not::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14143,71 +15178,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOptional(): stdClass|float|null {
-        if (TopLevel::validateOptional($this->optional))  {
-            if (is_null($this->optional)) {
-                return $this->optional; /*null*/
-            } elseif ($this->optional instanceof Optional) {
-                return $this->optional->to(); /*class*/
-            } elseif (is_float($this->optional) || is_int($this->optional)) {
-                return $this->optional; /*float*/
+    public function toNot(): stdClass|float|null {
+        if (TopLevel::validateNot($this->not))  {
+            if (is_null($this->not)) {
+                return $this->not; /*null*/
+            } elseif ($this->not instanceof Not) {
+                return $this->not->to(); /*class*/
+            } elseif (is_float($this->not) || is_int($this->not)) {
+                return $this->not; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::optional');
+        throw new Exception('never get to this TopLevel::not');
     }
 
     /**
-     * @param Optional|float|null
+     * @param Not|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOptional(Optional|float|null $value): bool {
+    public static function validateNot(Not|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::optional");
+                throw new Exception("Attribute Error:TopLevel::not");
             }
-        } elseif ($value instanceof Optional) {
+        } elseif ($value instanceof Not) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::optional");
+                throw new Exception("Attribute Error:TopLevel::not");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::optional");
+            throw new Exception("Attribute Error:TopLevel::not");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Optional|float|null
+     * @return Not|float|null
      */
-    public function getOptional(): Optional|float|null {
-        if (TopLevel::validateOptional($this->optional))  {
-            return $this->optional;
+    public function getNot(): Not|float|null {
+        if (TopLevel::validateNot($this->not))  {
+            return $this->not;
         }
-        throw new Exception('never get to getOptional TopLevel::optional');
+        throw new Exception('never get to getNot TopLevel::not');
     }
 
     /**
-     * @return Optional|float|null
+     * @return Not|float|null
      */
-    public static function sampleOptional(): Optional|float|null {
-        return Optional::sample(); /*206:optional*/
+    public static function sampleNot(): Not|float|null {
+        return Not::sample(); /*218:not*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return OrClass|float|null
+     * @return NotEq|float|null
      */
-    public static function fromOr(stdClass|float|null $value): OrClass|float|null {
+    public static function fromNotEq(stdClass|float|null $value): NotEq|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return OrClass::from($value); /*class*/
+            return NotEq::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14219,71 +15254,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOr(): stdClass|float|null {
-        if (TopLevel::validateOr($this->or))  {
-            if (is_null($this->or)) {
-                return $this->or; /*null*/
-            } elseif ($this->or instanceof OrClass) {
-                return $this->or->to(); /*class*/
-            } elseif (is_float($this->or) || is_int($this->or)) {
-                return $this->or; /*float*/
+    public function toNotEq(): stdClass|float|null {
+        if (TopLevel::validateNotEq($this->notEq))  {
+            if (is_null($this->notEq)) {
+                return $this->notEq; /*null*/
+            } elseif ($this->notEq instanceof NotEq) {
+                return $this->notEq->to(); /*class*/
+            } elseif (is_float($this->notEq) || is_int($this->notEq)) {
+                return $this->notEq; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::or');
+        throw new Exception('never get to this TopLevel::notEq');
     }
 
     /**
-     * @param OrClass|float|null
+     * @param NotEq|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOr(OrClass|float|null $value): bool {
+    public static function validateNotEq(NotEq|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::or");
+                throw new Exception("Attribute Error:TopLevel::notEq");
             }
-        } elseif ($value instanceof OrClass) {
+        } elseif ($value instanceof NotEq) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::or");
+                throw new Exception("Attribute Error:TopLevel::notEq");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::or");
+            throw new Exception("Attribute Error:TopLevel::notEq");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return OrClass|float|null
+     * @return NotEq|float|null
      */
-    public function getOr(): OrClass|float|null {
-        if (TopLevel::validateOr($this->or))  {
-            return $this->or;
+    public function getNotEq(): NotEq|float|null {
+        if (TopLevel::validateNotEq($this->notEq))  {
+            return $this->notEq;
         }
-        throw new Exception('never get to getOr TopLevel::or');
+        throw new Exception('never get to getNotEq TopLevel::notEq');
     }
 
     /**
-     * @return OrClass|float|null
+     * @return NotEq|float|null
      */
-    public static function sampleOr(): OrClass|float|null {
-        return OrClass::sample(); /*207:or*/
+    public static function sampleNotEq(): NotEq|float|null {
+        return NotEq::sample(); /*219:notEq*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return OrEq|float|null
+     * @return NSError|float|null
      */
-    public static function fromOrEq(stdClass|float|null $value): OrEq|float|null {
+    public static function fromNSError(stdClass|float|null $value): NSError|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return OrEq::from($value); /*class*/
+            return NSError::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14295,71 +15330,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOrEq(): stdClass|float|null {
-        if (TopLevel::validateOrEq($this->orEq))  {
-            if (is_null($this->orEq)) {
-                return $this->orEq; /*null*/
-            } elseif ($this->orEq instanceof OrEq) {
-                return $this->orEq->to(); /*class*/
-            } elseif (is_float($this->orEq) || is_int($this->orEq)) {
-                return $this->orEq; /*float*/
+    public function toNSError(): stdClass|float|null {
+        if (TopLevel::validateNSError($this->nsError))  {
+            if (is_null($this->nsError)) {
+                return $this->nsError; /*null*/
+            } elseif ($this->nsError instanceof NSError) {
+                return $this->nsError->to(); /*class*/
+            } elseif (is_float($this->nsError) || is_int($this->nsError)) {
+                return $this->nsError; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::orEq');
+        throw new Exception('never get to this TopLevel::nsError');
     }
 
     /**
-     * @param OrEq|float|null
+     * @param NSError|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOrEq(OrEq|float|null $value): bool {
+    public static function validateNSError(NSError|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::orEq");
+                throw new Exception("Attribute Error:TopLevel::nsError");
             }
-        } elseif ($value instanceof OrEq) {
+        } elseif ($value instanceof NSError) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::orEq");
+                throw new Exception("Attribute Error:TopLevel::nsError");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::orEq");
+            throw new Exception("Attribute Error:TopLevel::nsError");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return OrEq|float|null
+     * @return NSError|float|null
      */
-    public function getOrEq(): OrEq|float|null {
-        if (TopLevel::validateOrEq($this->orEq))  {
-            return $this->orEq;
+    public function getNSError(): NSError|float|null {
+        if (TopLevel::validateNSError($this->nsError))  {
+            return $this->nsError;
         }
-        throw new Exception('never get to getOrEq TopLevel::orEq');
+        throw new Exception('never get to getNSError TopLevel::nsError');
     }
 
     /**
-     * @return OrEq|float|null
+     * @return NSError|float|null
      */
-    public static function sampleOrEq(): OrEq|float|null {
-        return OrEq::sample(); /*208:orEq*/
+    public static function sampleNSError(): NSError|float|null {
+        return NSError::sample(); /*220:nsError*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Out|float|null
+     * @return NSString|float|null
      */
-    public static function fromOut(stdClass|float|null $value): Out|float|null {
+    public static function fromNSString(stdClass|float|null $value): NSString|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Out::from($value); /*class*/
+            return NSString::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14371,71 +15406,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOut(): stdClass|float|null {
-        if (TopLevel::validateOut($this->out))  {
-            if (is_null($this->out)) {
-                return $this->out; /*null*/
-            } elseif ($this->out instanceof Out) {
-                return $this->out->to(); /*class*/
-            } elseif (is_float($this->out) || is_int($this->out)) {
-                return $this->out; /*float*/
+    public function toNSString(): stdClass|float|null {
+        if (TopLevel::validateNSString($this->nsString))  {
+            if (is_null($this->nsString)) {
+                return $this->nsString; /*null*/
+            } elseif ($this->nsString instanceof NSString) {
+                return $this->nsString->to(); /*class*/
+            } elseif (is_float($this->nsString) || is_int($this->nsString)) {
+                return $this->nsString; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::out');
+        throw new Exception('never get to this TopLevel::nsString');
     }
 
     /**
-     * @param Out|float|null
+     * @param NSString|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOut(Out|float|null $value): bool {
+    public static function validateNSString(NSString|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::out");
+                throw new Exception("Attribute Error:TopLevel::nsString");
             }
-        } elseif ($value instanceof Out) {
+        } elseif ($value instanceof NSString) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::out");
+                throw new Exception("Attribute Error:TopLevel::nsString");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::out");
+            throw new Exception("Attribute Error:TopLevel::nsString");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Out|float|null
+     * @return NSString|float|null
      */
-    public function getOut(): Out|float|null {
-        if (TopLevel::validateOut($this->out))  {
-            return $this->out;
+    public function getNSString(): NSString|float|null {
+        if (TopLevel::validateNSString($this->nsString))  {
+            return $this->nsString;
         }
-        throw new Exception('never get to getOut TopLevel::out');
+        throw new Exception('never get to getNSString TopLevel::nsString');
     }
 
     /**
-     * @return Out|float|null
+     * @return NSString|float|null
      */
-    public static function sampleOut(): Out|float|null {
-        return Out::sample(); /*209:out*/
+    public static function sampleNSString(): NSString|float|null {
+        return NSString::sample(); /*221:nsString*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return OverrideClass|float|null
+     * @return NULLClass|float|null
      */
-    public static function fromOverride(stdClass|float|null $value): OverrideClass|float|null {
+    public static function fromNull(stdClass|float|null $value): NULLClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return OverrideClass::from($value); /*class*/
+            return NULLClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14447,71 +15482,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toOverride(): stdClass|float|null {
-        if (TopLevel::validateOverride($this->override))  {
-            if (is_null($this->override)) {
-                return $this->override; /*null*/
-            } elseif ($this->override instanceof OverrideClass) {
-                return $this->override->to(); /*class*/
-            } elseif (is_float($this->override) || is_int($this->override)) {
-                return $this->override; /*float*/
+    public function toNull(): stdClass|float|null {
+        if (TopLevel::validateNull($this->null))  {
+            if (is_null($this->null)) {
+                return $this->null; /*null*/
+            } elseif ($this->null instanceof NULLClass) {
+                return $this->null->to(); /*class*/
+            } elseif (is_float($this->null) || is_int($this->null)) {
+                return $this->null; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::override');
+        throw new Exception('never get to this TopLevel::null');
     }
 
     /**
-     * @param OverrideClass|float|null
+     * @param NULLClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateOverride(OverrideClass|float|null $value): bool {
+    public static function validateNull(NULLClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::override");
+                throw new Exception("Attribute Error:TopLevel::null");
             }
-        } elseif ($value instanceof OverrideClass) {
+        } elseif ($value instanceof NULLClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::override");
+                throw new Exception("Attribute Error:TopLevel::null");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::override");
+            throw new Exception("Attribute Error:TopLevel::null");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return OverrideClass|float|null
+     * @return NULLClass|float|null
      */
-    public function getOverride(): OverrideClass|float|null {
-        if (TopLevel::validateOverride($this->override))  {
-            return $this->override;
+    public function getNull(): NULLClass|float|null {
+        if (TopLevel::validateNull($this->null))  {
+            return $this->null;
         }
-        throw new Exception('never get to getOverride TopLevel::override');
+        throw new Exception('never get to getNull TopLevel::null');
     }
 
     /**
-     * @return OverrideClass|float|null
+     * @return NULLClass|float|null
      */
-    public static function sampleOverride(): OverrideClass|float|null {
-        return OverrideClass::sample(); /*210:override*/
+    public static function sampleNull(): NULLClass|float|null {
+        return NULLClass::sample(); /*222:null*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Package|float|null
+     * @return UnionNullNull|float|null
      */
-    public static function fromPackage(stdClass|float|null $value): Package|float|null {
+    public static function fromTopLevelNull(stdClass|float|null $value): UnionNullNull|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Package::from($value); /*class*/
+            return UnionNullNull::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14523,71 +15558,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPackage(): stdClass|float|null {
-        if (TopLevel::validatePackage($this->package))  {
-            if (is_null($this->package)) {
-                return $this->package; /*null*/
-            } elseif ($this->package instanceof Package) {
-                return $this->package->to(); /*class*/
-            } elseif (is_float($this->package) || is_int($this->package)) {
-                return $this->package; /*float*/
+    public function toTopLevelNull(): stdClass|float|null {
+        if (TopLevel::validateTopLevelNull($this->topLevelNull))  {
+            if (is_null($this->topLevelNull)) {
+                return $this->topLevelNull; /*null*/
+            } elseif ($this->topLevelNull instanceof UnionNullNull) {
+                return $this->topLevelNull->to(); /*class*/
+            } elseif (is_float($this->topLevelNull) || is_int($this->topLevelNull)) {
+                return $this->topLevelNull; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::package');
+        throw new Exception('never get to this TopLevel::topLevelNull');
     }
 
     /**
-     * @param Package|float|null
+     * @param UnionNullNull|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePackage(Package|float|null $value): bool {
+    public static function validateTopLevelNull(UnionNullNull|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::package");
+                throw new Exception("Attribute Error:TopLevel::topLevelNull");
             }
-        } elseif ($value instanceof Package) {
+        } elseif ($value instanceof UnionNullNull) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::package");
+                throw new Exception("Attribute Error:TopLevel::topLevelNull");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::package");
+            throw new Exception("Attribute Error:TopLevel::topLevelNull");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Package|float|null
+     * @return UnionNullNull|float|null
      */
-    public function getPackage(): Package|float|null {
-        if (TopLevel::validatePackage($this->package))  {
-            return $this->package;
+    public function getTopLevelNull(): UnionNullNull|float|null {
+        if (TopLevel::validateTopLevelNull($this->topLevelNull))  {
+            return $this->topLevelNull;
         }
-        throw new Exception('never get to getPackage TopLevel::package');
+        throw new Exception('never get to getTopLevelNull TopLevel::topLevelNull');
     }
 
     /**
-     * @return Package|float|null
+     * @return UnionNullNull|float|null
      */
-    public static function samplePackage(): Package|float|null {
-        return Package::sample(); /*211:package*/
+    public static function sampleTopLevelNull(): UnionNullNull|float|null {
+        return UnionNullNull::sample(); /*223:topLevelNull*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Params|float|null
+     * @return Nullptr|float|null
      */
-    public static function fromParams(stdClass|float|null $value): Params|float|null {
+    public static function fromNullptr(stdClass|float|null $value): Nullptr|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Params::from($value); /*class*/
+            return Nullptr::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14599,71 +15634,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toParams(): stdClass|float|null {
-        if (TopLevel::validateParams($this->params))  {
-            if (is_null($this->params)) {
-                return $this->params; /*null*/
-            } elseif ($this->params instanceof Params) {
-                return $this->params->to(); /*class*/
-            } elseif (is_float($this->params) || is_int($this->params)) {
-                return $this->params; /*float*/
+    public function toNullptr(): stdClass|float|null {
+        if (TopLevel::validateNullptr($this->nullptr))  {
+            if (is_null($this->nullptr)) {
+                return $this->nullptr; /*null*/
+            } elseif ($this->nullptr instanceof Nullptr) {
+                return $this->nullptr->to(); /*class*/
+            } elseif (is_float($this->nullptr) || is_int($this->nullptr)) {
+                return $this->nullptr; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::params');
+        throw new Exception('never get to this TopLevel::nullptr');
     }
 
     /**
-     * @param Params|float|null
+     * @param Nullptr|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateParams(Params|float|null $value): bool {
+    public static function validateNullptr(Nullptr|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::params");
+                throw new Exception("Attribute Error:TopLevel::nullptr");
             }
-        } elseif ($value instanceof Params) {
+        } elseif ($value instanceof Nullptr) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::params");
+                throw new Exception("Attribute Error:TopLevel::nullptr");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::params");
+            throw new Exception("Attribute Error:TopLevel::nullptr");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Params|float|null
+     * @return Nullptr|float|null
      */
-    public function getParams(): Params|float|null {
-        if (TopLevel::validateParams($this->params))  {
-            return $this->params;
+    public function getNullptr(): Nullptr|float|null {
+        if (TopLevel::validateNullptr($this->nullptr))  {
+            return $this->nullptr;
         }
-        throw new Exception('never get to getParams TopLevel::params');
+        throw new Exception('never get to getNullptr TopLevel::nullptr');
     }
 
     /**
-     * @return Params|float|null
+     * @return Nullptr|float|null
      */
-    public static function sampleParams(): Params|float|null {
-        return Params::sample(); /*212:params*/
+    public static function sampleNullptr(): Nullptr|float|null {
+        return Nullptr::sample(); /*224:nullptr*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Pass|float|null
+     * @return Number|float|null
      */
-    public static function fromPass(stdClass|float|null $value): Pass|float|null {
+    public static function fromNumber(stdClass|float|null $value): Number|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Pass::from($value); /*class*/
+            return Number::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14675,71 +15710,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPass(): stdClass|float|null {
-        if (TopLevel::validatePass($this->pass))  {
-            if (is_null($this->pass)) {
-                return $this->pass; /*null*/
-            } elseif ($this->pass instanceof Pass) {
-                return $this->pass->to(); /*class*/
-            } elseif (is_float($this->pass) || is_int($this->pass)) {
-                return $this->pass; /*float*/
+    public function toNumber(): stdClass|float|null {
+        if (TopLevel::validateNumber($this->number))  {
+            if (is_null($this->number)) {
+                return $this->number; /*null*/
+            } elseif ($this->number instanceof Number) {
+                return $this->number->to(); /*class*/
+            } elseif (is_float($this->number) || is_int($this->number)) {
+                return $this->number; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::pass');
+        throw new Exception('never get to this TopLevel::number');
     }
 
     /**
-     * @param Pass|float|null
+     * @param Number|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePass(Pass|float|null $value): bool {
+    public static function validateNumber(Number|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::pass");
+                throw new Exception("Attribute Error:TopLevel::number");
             }
-        } elseif ($value instanceof Pass) {
+        } elseif ($value instanceof Number) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::pass");
+                throw new Exception("Attribute Error:TopLevel::number");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::pass");
+            throw new Exception("Attribute Error:TopLevel::number");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Pass|float|null
+     * @return Number|float|null
      */
-    public function getPass(): Pass|float|null {
-        if (TopLevel::validatePass($this->pass))  {
-            return $this->pass;
+    public function getNumber(): Number|float|null {
+        if (TopLevel::validateNumber($this->number))  {
+            return $this->number;
         }
-        throw new Exception('never get to getPass TopLevel::pass');
+        throw new Exception('never get to getNumber TopLevel::number');
     }
 
     /**
-     * @return Pass|float|null
+     * @return Number|float|null
      */
-    public static function samplePass(): Pass|float|null {
-        return Pass::sample(); /*213:pass*/
+    public static function sampleNumber(): Number|float|null {
+        return Number::sample(); /*225:number*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Port|float|null
+     * @return ObjectClass|float|null
      */
-    public static function fromPort(stdClass|float|null $value): Port|float|null {
+    public static function fromObject(stdClass|float|null $value): ObjectClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Port::from($value); /*class*/
+            return ObjectClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14751,71 +15786,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPort(): stdClass|float|null {
-        if (TopLevel::validatePort($this->port))  {
-            if (is_null($this->port)) {
-                return $this->port; /*null*/
-            } elseif ($this->port instanceof Port) {
-                return $this->port->to(); /*class*/
-            } elseif (is_float($this->port) || is_int($this->port)) {
-                return $this->port; /*float*/
+    public function toObject(): stdClass|float|null {
+        if (TopLevel::validateObject($this->object))  {
+            if (is_null($this->object)) {
+                return $this->object; /*null*/
+            } elseif ($this->object instanceof ObjectClass) {
+                return $this->object->to(); /*class*/
+            } elseif (is_float($this->object) || is_int($this->object)) {
+                return $this->object; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::port');
+        throw new Exception('never get to this TopLevel::object');
     }
 
     /**
-     * @param Port|float|null
+     * @param ObjectClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePort(Port|float|null $value): bool {
+    public static function validateObject(ObjectClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::port");
+                throw new Exception("Attribute Error:TopLevel::object");
             }
-        } elseif ($value instanceof Port) {
+        } elseif ($value instanceof ObjectClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::port");
+                throw new Exception("Attribute Error:TopLevel::object");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::port");
+            throw new Exception("Attribute Error:TopLevel::object");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Port|float|null
+     * @return ObjectClass|float|null
      */
-    public function getPort(): Port|float|null {
-        if (TopLevel::validatePort($this->port))  {
-            return $this->port;
+    public function getObject(): ObjectClass|float|null {
+        if (TopLevel::validateObject($this->object))  {
+            return $this->object;
         }
-        throw new Exception('never get to getPort TopLevel::port');
+        throw new Exception('never get to getObject TopLevel::object');
     }
 
     /**
-     * @return Port|float|null
+     * @return ObjectClass|float|null
      */
-    public static function samplePort(): Port|float|null {
-        return Port::sample(); /*214:port*/
+    public static function sampleObject(): ObjectClass|float|null {
+        return ObjectClass::sample(); /*226:object*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Postfix|float|null
+     * @return ObjectMapper|float|null
      */
-    public static function fromPostfix(stdClass|float|null $value): Postfix|float|null {
+    public static function fromObjectMapper(stdClass|float|null $value): ObjectMapper|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Postfix::from($value); /*class*/
+            return ObjectMapper::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14827,71 +15862,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPostfix(): stdClass|float|null {
-        if (TopLevel::validatePostfix($this->postfix))  {
-            if (is_null($this->postfix)) {
-                return $this->postfix; /*null*/
-            } elseif ($this->postfix instanceof Postfix) {
-                return $this->postfix->to(); /*class*/
-            } elseif (is_float($this->postfix) || is_int($this->postfix)) {
-                return $this->postfix; /*float*/
+    public function toObjectMapper(): stdClass|float|null {
+        if (TopLevel::validateObjectMapper($this->objectMapper))  {
+            if (is_null($this->objectMapper)) {
+                return $this->objectMapper; /*null*/
+            } elseif ($this->objectMapper instanceof ObjectMapper) {
+                return $this->objectMapper->to(); /*class*/
+            } elseif (is_float($this->objectMapper) || is_int($this->objectMapper)) {
+                return $this->objectMapper; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::postfix');
+        throw new Exception('never get to this TopLevel::objectMapper');
     }
 
     /**
-     * @param Postfix|float|null
+     * @param ObjectMapper|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePostfix(Postfix|float|null $value): bool {
+    public static function validateObjectMapper(ObjectMapper|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::postfix");
+                throw new Exception("Attribute Error:TopLevel::objectMapper");
             }
-        } elseif ($value instanceof Postfix) {
+        } elseif ($value instanceof ObjectMapper) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::postfix");
+                throw new Exception("Attribute Error:TopLevel::objectMapper");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::postfix");
+            throw new Exception("Attribute Error:TopLevel::objectMapper");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Postfix|float|null
+     * @return ObjectMapper|float|null
      */
-    public function getPostfix(): Postfix|float|null {
-        if (TopLevel::validatePostfix($this->postfix))  {
-            return $this->postfix;
+    public function getObjectMapper(): ObjectMapper|float|null {
+        if (TopLevel::validateObjectMapper($this->objectMapper))  {
+            return $this->objectMapper;
         }
-        throw new Exception('never get to getPostfix TopLevel::postfix');
+        throw new Exception('never get to getObjectMapper TopLevel::objectMapper');
     }
 
     /**
-     * @return Postfix|float|null
+     * @return ObjectMapper|float|null
      */
-    public static function samplePostfix(): Postfix|float|null {
-        return Postfix::sample(); /*215:postfix*/
+    public static function sampleObjectMapper(): ObjectMapper|float|null {
+        return ObjectMapper::sample(); /*227:objectMapper*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Precedence|float|null
+     * @return Of|float|null
      */
-    public static function fromPrecedence(stdClass|float|null $value): Precedence|float|null {
+    public static function fromOf(stdClass|float|null $value): Of|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Precedence::from($value); /*class*/
+            return Of::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14903,71 +15938,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPrecedence(): stdClass|float|null {
-        if (TopLevel::validatePrecedence($this->precedence))  {
-            if (is_null($this->precedence)) {
-                return $this->precedence; /*null*/
-            } elseif ($this->precedence instanceof Precedence) {
-                return $this->precedence->to(); /*class*/
-            } elseif (is_float($this->precedence) || is_int($this->precedence)) {
-                return $this->precedence; /*float*/
+    public function toOf(): stdClass|float|null {
+        if (TopLevel::validateOf($this->of))  {
+            if (is_null($this->of)) {
+                return $this->of; /*null*/
+            } elseif ($this->of instanceof Of) {
+                return $this->of->to(); /*class*/
+            } elseif (is_float($this->of) || is_int($this->of)) {
+                return $this->of; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::precedence');
+        throw new Exception('never get to this TopLevel::of');
     }
 
     /**
-     * @param Precedence|float|null
+     * @param Of|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePrecedence(Precedence|float|null $value): bool {
+    public static function validateOf(Of|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::precedence");
+                throw new Exception("Attribute Error:TopLevel::of");
             }
-        } elseif ($value instanceof Precedence) {
+        } elseif ($value instanceof Of) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::precedence");
+                throw new Exception("Attribute Error:TopLevel::of");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::precedence");
+            throw new Exception("Attribute Error:TopLevel::of");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Precedence|float|null
+     * @return Of|float|null
      */
-    public function getPrecedence(): Precedence|float|null {
-        if (TopLevel::validatePrecedence($this->precedence))  {
-            return $this->precedence;
+    public function getOf(): Of|float|null {
+        if (TopLevel::validateOf($this->of))  {
+            return $this->of;
         }
-        throw new Exception('never get to getPrecedence TopLevel::precedence');
+        throw new Exception('never get to getOf TopLevel::of');
     }
 
     /**
-     * @return Precedence|float|null
+     * @return Of|float|null
      */
-    public static function samplePrecedence(): Precedence|float|null {
-        return Precedence::sample(); /*216:precedence*/
+    public static function sampleOf(): Of|float|null {
+        return Of::sample(); /*228:of*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Prefix|float|null
+     * @return Oneway|float|null
      */
-    public static function fromPrefix(stdClass|float|null $value): Prefix|float|null {
+    public static function fromOneway(stdClass|float|null $value): Oneway|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Prefix::from($value); /*class*/
+            return Oneway::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -14979,71 +16014,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPrefix(): stdClass|float|null {
-        if (TopLevel::validatePrefix($this->prefix))  {
-            if (is_null($this->prefix)) {
-                return $this->prefix; /*null*/
-            } elseif ($this->prefix instanceof Prefix) {
-                return $this->prefix->to(); /*class*/
-            } elseif (is_float($this->prefix) || is_int($this->prefix)) {
-                return $this->prefix; /*float*/
+    public function toOneway(): stdClass|float|null {
+        if (TopLevel::validateOneway($this->oneway))  {
+            if (is_null($this->oneway)) {
+                return $this->oneway; /*null*/
+            } elseif ($this->oneway instanceof Oneway) {
+                return $this->oneway->to(); /*class*/
+            } elseif (is_float($this->oneway) || is_int($this->oneway)) {
+                return $this->oneway; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::prefix');
+        throw new Exception('never get to this TopLevel::oneway');
     }
 
     /**
-     * @param Prefix|float|null
+     * @param Oneway|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePrefix(Prefix|float|null $value): bool {
+    public static function validateOneway(Oneway|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::prefix");
+                throw new Exception("Attribute Error:TopLevel::oneway");
             }
-        } elseif ($value instanceof Prefix) {
+        } elseif ($value instanceof Oneway) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::prefix");
+                throw new Exception("Attribute Error:TopLevel::oneway");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::prefix");
+            throw new Exception("Attribute Error:TopLevel::oneway");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Prefix|float|null
+     * @return Oneway|float|null
      */
-    public function getPrefix(): Prefix|float|null {
-        if (TopLevel::validatePrefix($this->prefix))  {
-            return $this->prefix;
+    public function getOneway(): Oneway|float|null {
+        if (TopLevel::validateOneway($this->oneway))  {
+            return $this->oneway;
         }
-        throw new Exception('never get to getPrefix TopLevel::prefix');
+        throw new Exception('never get to getOneway TopLevel::oneway');
     }
 
     /**
-     * @return Prefix|float|null
+     * @return Oneway|float|null
      */
-    public static function samplePrefix(): Prefix|float|null {
-        return Prefix::sample(); /*217:prefix*/
+    public static function sampleOneway(): Oneway|float|null {
+        return Oneway::sample(); /*229:oneway*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return PrintClass|float|null
+     * @return Open|float|null
      */
-    public static function fromPrint(stdClass|float|null $value): PrintClass|float|null {
+    public static function fromOpen(stdClass|float|null $value): Open|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return PrintClass::from($value); /*class*/
+            return Open::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15055,71 +16090,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPrint(): stdClass|float|null {
-        if (TopLevel::validatePrint($this->print))  {
-            if (is_null($this->print)) {
-                return $this->print; /*null*/
-            } elseif ($this->print instanceof PrintClass) {
-                return $this->print->to(); /*class*/
-            } elseif (is_float($this->print) || is_int($this->print)) {
-                return $this->print; /*float*/
+    public function toOpen(): stdClass|float|null {
+        if (TopLevel::validateOpen($this->open))  {
+            if (is_null($this->open)) {
+                return $this->open; /*null*/
+            } elseif ($this->open instanceof Open) {
+                return $this->open->to(); /*class*/
+            } elseif (is_float($this->open) || is_int($this->open)) {
+                return $this->open; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::print');
+        throw new Exception('never get to this TopLevel::open');
     }
 
     /**
-     * @param PrintClass|float|null
+     * @param Open|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePrint(PrintClass|float|null $value): bool {
+    public static function validateOpen(Open|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::print");
+                throw new Exception("Attribute Error:TopLevel::open");
             }
-        } elseif ($value instanceof PrintClass) {
+        } elseif ($value instanceof Open) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::print");
+                throw new Exception("Attribute Error:TopLevel::open");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::print");
+            throw new Exception("Attribute Error:TopLevel::open");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return PrintClass|float|null
+     * @return Open|float|null
      */
-    public function getPrint(): PrintClass|float|null {
-        if (TopLevel::validatePrint($this->print))  {
-            return $this->print;
+    public function getOpen(): Open|float|null {
+        if (TopLevel::validateOpen($this->open))  {
+            return $this->open;
         }
-        throw new Exception('never get to getPrint TopLevel::print');
+        throw new Exception('never get to getOpen TopLevel::open');
     }
 
     /**
-     * @return PrintClass|float|null
+     * @return Open|float|null
      */
-    public static function samplePrint(): PrintClass|float|null {
-        return PrintClass::sample(); /*218:print*/
+    public static function sampleOpen(): Open|float|null {
+        return Open::sample(); /*230:open*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Printf|float|null
+     * @return Operator|float|null
      */
-    public static function fromPrintf(stdClass|float|null $value): Printf|float|null {
+    public static function fromOperator(stdClass|float|null $value): Operator|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Printf::from($value); /*class*/
+            return Operator::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15131,71 +16166,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPrintf(): stdClass|float|null {
-        if (TopLevel::validatePrintf($this->printf))  {
-            if (is_null($this->printf)) {
-                return $this->printf; /*null*/
-            } elseif ($this->printf instanceof Printf) {
-                return $this->printf->to(); /*class*/
-            } elseif (is_float($this->printf) || is_int($this->printf)) {
-                return $this->printf; /*float*/
+    public function toOperator(): stdClass|float|null {
+        if (TopLevel::validateOperator($this->operator))  {
+            if (is_null($this->operator)) {
+                return $this->operator; /*null*/
+            } elseif ($this->operator instanceof Operator) {
+                return $this->operator->to(); /*class*/
+            } elseif (is_float($this->operator) || is_int($this->operator)) {
+                return $this->operator; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::printf');
+        throw new Exception('never get to this TopLevel::operator');
     }
 
     /**
-     * @param Printf|float|null
+     * @param Operator|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePrintf(Printf|float|null $value): bool {
+    public static function validateOperator(Operator|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::printf");
+                throw new Exception("Attribute Error:TopLevel::operator");
             }
-        } elseif ($value instanceof Printf) {
+        } elseif ($value instanceof Operator) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::printf");
+                throw new Exception("Attribute Error:TopLevel::operator");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::printf");
+            throw new Exception("Attribute Error:TopLevel::operator");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Printf|float|null
+     * @return Operator|float|null
      */
-    public function getPrintf(): Printf|float|null {
-        if (TopLevel::validatePrintf($this->printf))  {
-            return $this->printf;
+    public function getOperator(): Operator|float|null {
+        if (TopLevel::validateOperator($this->operator))  {
+            return $this->operator;
         }
-        throw new Exception('never get to getPrintf TopLevel::printf');
+        throw new Exception('never get to getOperator TopLevel::operator');
     }
 
     /**
-     * @return Printf|float|null
+     * @return Operator|float|null
      */
-    public static function samplePrintf(): Printf|float|null {
-        return Printf::sample(); /*219:printf*/
+    public static function sampleOperator(): Operator|float|null {
+        return Operator::sample(); /*231:operator*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return PrivateClass|float|null
+     * @return Optional|float|null
      */
-    public static function fromPrivate(stdClass|float|null $value): PrivateClass|float|null {
+    public static function fromOptional(stdClass|float|null $value): Optional|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return PrivateClass::from($value); /*class*/
+            return Optional::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15207,71 +16242,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPrivate(): stdClass|float|null {
-        if (TopLevel::validatePrivate($this->private))  {
-            if (is_null($this->private)) {
-                return $this->private; /*null*/
-            } elseif ($this->private instanceof PrivateClass) {
-                return $this->private->to(); /*class*/
-            } elseif (is_float($this->private) || is_int($this->private)) {
-                return $this->private; /*float*/
+    public function toOptional(): stdClass|float|null {
+        if (TopLevel::validateOptional($this->optional))  {
+            if (is_null($this->optional)) {
+                return $this->optional; /*null*/
+            } elseif ($this->optional instanceof Optional) {
+                return $this->optional->to(); /*class*/
+            } elseif (is_float($this->optional) || is_int($this->optional)) {
+                return $this->optional; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::private');
+        throw new Exception('never get to this TopLevel::optional');
     }
 
     /**
-     * @param PrivateClass|float|null
+     * @param Optional|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePrivate(PrivateClass|float|null $value): bool {
+    public static function validateOptional(Optional|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::private");
+                throw new Exception("Attribute Error:TopLevel::optional");
             }
-        } elseif ($value instanceof PrivateClass) {
+        } elseif ($value instanceof Optional) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::private");
+                throw new Exception("Attribute Error:TopLevel::optional");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::private");
+            throw new Exception("Attribute Error:TopLevel::optional");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return PrivateClass|float|null
+     * @return Optional|float|null
      */
-    public function getPrivate(): PrivateClass|float|null {
-        if (TopLevel::validatePrivate($this->private))  {
-            return $this->private;
+    public function getOptional(): Optional|float|null {
+        if (TopLevel::validateOptional($this->optional))  {
+            return $this->optional;
         }
-        throw new Exception('never get to getPrivate TopLevel::private');
+        throw new Exception('never get to getOptional TopLevel::optional');
     }
 
     /**
-     * @return PrivateClass|float|null
+     * @return Optional|float|null
      */
-    public static function samplePrivate(): PrivateClass|float|null {
-        return PrivateClass::sample(); /*220:private*/
+    public static function sampleOptional(): Optional|float|null {
+        return Optional::sample(); /*232:optional*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ProtectedClass|float|null
+     * @return OrClass|float|null
      */
-    public static function fromProtected(stdClass|float|null $value): ProtectedClass|float|null {
+    public static function fromOr(stdClass|float|null $value): OrClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ProtectedClass::from($value); /*class*/
+            return OrClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15283,71 +16318,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toProtected(): stdClass|float|null {
-        if (TopLevel::validateProtected($this->protected))  {
-            if (is_null($this->protected)) {
-                return $this->protected; /*null*/
-            } elseif ($this->protected instanceof ProtectedClass) {
-                return $this->protected->to(); /*class*/
-            } elseif (is_float($this->protected) || is_int($this->protected)) {
-                return $this->protected; /*float*/
+    public function toOr(): stdClass|float|null {
+        if (TopLevel::validateOr($this->or))  {
+            if (is_null($this->or)) {
+                return $this->or; /*null*/
+            } elseif ($this->or instanceof OrClass) {
+                return $this->or->to(); /*class*/
+            } elseif (is_float($this->or) || is_int($this->or)) {
+                return $this->or; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::protected');
+        throw new Exception('never get to this TopLevel::or');
     }
 
     /**
-     * @param ProtectedClass|float|null
+     * @param OrClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateProtected(ProtectedClass|float|null $value): bool {
+    public static function validateOr(OrClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::protected");
+                throw new Exception("Attribute Error:TopLevel::or");
             }
-        } elseif ($value instanceof ProtectedClass) {
+        } elseif ($value instanceof OrClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::protected");
+                throw new Exception("Attribute Error:TopLevel::or");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::protected");
+            throw new Exception("Attribute Error:TopLevel::or");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ProtectedClass|float|null
+     * @return OrClass|float|null
      */
-    public function getProtected(): ProtectedClass|float|null {
-        if (TopLevel::validateProtected($this->protected))  {
-            return $this->protected;
+    public function getOr(): OrClass|float|null {
+        if (TopLevel::validateOr($this->or))  {
+            return $this->or;
         }
-        throw new Exception('never get to getProtected TopLevel::protected');
+        throw new Exception('never get to getOr TopLevel::or');
     }
 
     /**
-     * @return ProtectedClass|float|null
+     * @return OrClass|float|null
      */
-    public static function sampleProtected(): ProtectedClass|float|null {
-        return ProtectedClass::sample(); /*221:protected*/
+    public static function sampleOr(): OrClass|float|null {
+        return OrClass::sample(); /*233:or*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Protocol|float|null
+     * @return OrEq|float|null
      */
-    public static function fromProtocol(stdClass|float|null $value): Protocol|float|null {
+    public static function fromOrEq(stdClass|float|null $value): OrEq|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Protocol::from($value); /*class*/
+            return OrEq::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15359,71 +16394,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toProtocol(): stdClass|float|null {
-        if (TopLevel::validateProtocol($this->protocol))  {
-            if (is_null($this->protocol)) {
-                return $this->protocol; /*null*/
-            } elseif ($this->protocol instanceof Protocol) {
-                return $this->protocol->to(); /*class*/
-            } elseif (is_float($this->protocol) || is_int($this->protocol)) {
-                return $this->protocol; /*float*/
+    public function toOrEq(): stdClass|float|null {
+        if (TopLevel::validateOrEq($this->orEq))  {
+            if (is_null($this->orEq)) {
+                return $this->orEq; /*null*/
+            } elseif ($this->orEq instanceof OrEq) {
+                return $this->orEq->to(); /*class*/
+            } elseif (is_float($this->orEq) || is_int($this->orEq)) {
+                return $this->orEq; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::protocol');
+        throw new Exception('never get to this TopLevel::orEq');
     }
 
     /**
-     * @param Protocol|float|null
+     * @param OrEq|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateProtocol(Protocol|float|null $value): bool {
+    public static function validateOrEq(OrEq|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::protocol");
+                throw new Exception("Attribute Error:TopLevel::orEq");
             }
-        } elseif ($value instanceof Protocol) {
+        } elseif ($value instanceof OrEq) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::protocol");
+                throw new Exception("Attribute Error:TopLevel::orEq");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::protocol");
+            throw new Exception("Attribute Error:TopLevel::orEq");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Protocol|float|null
+     * @return OrEq|float|null
      */
-    public function getProtocol(): Protocol|float|null {
-        if (TopLevel::validateProtocol($this->protocol))  {
-            return $this->protocol;
+    public function getOrEq(): OrEq|float|null {
+        if (TopLevel::validateOrEq($this->orEq))  {
+            return $this->orEq;
         }
-        throw new Exception('never get to getProtocol TopLevel::protocol');
+        throw new Exception('never get to getOrEq TopLevel::orEq');
     }
 
     /**
-     * @return Protocol|float|null
+     * @return OrEq|float|null
      */
-    public static function sampleProtocol(): Protocol|float|null {
-        return Protocol::sample(); /*222:protocol*/
+    public static function sampleOrEq(): OrEq|float|null {
+        return OrEq::sample(); /*234:orEq*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ProtocolClass|float|null
+     * @return Out|float|null
      */
-    public static function fromTopLevelProtocol(stdClass|float|null $value): ProtocolClass|float|null {
+    public static function fromOut(stdClass|float|null $value): Out|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ProtocolClass::from($value); /*class*/
+            return Out::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15435,71 +16470,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelProtocol(): stdClass|float|null {
-        if (TopLevel::validateTopLevelProtocol($this->topLevelProtocol))  {
-            if (is_null($this->topLevelProtocol)) {
-                return $this->topLevelProtocol; /*null*/
-            } elseif ($this->topLevelProtocol instanceof ProtocolClass) {
-                return $this->topLevelProtocol->to(); /*class*/
-            } elseif (is_float($this->topLevelProtocol) || is_int($this->topLevelProtocol)) {
-                return $this->topLevelProtocol; /*float*/
+    public function toOut(): stdClass|float|null {
+        if (TopLevel::validateOut($this->out))  {
+            if (is_null($this->out)) {
+                return $this->out; /*null*/
+            } elseif ($this->out instanceof Out) {
+                return $this->out->to(); /*class*/
+            } elseif (is_float($this->out) || is_int($this->out)) {
+                return $this->out; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelProtocol');
+        throw new Exception('never get to this TopLevel::out');
     }
 
     /**
-     * @param ProtocolClass|float|null
+     * @param Out|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelProtocol(ProtocolClass|float|null $value): bool {
+    public static function validateOut(Out|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
+                throw new Exception("Attribute Error:TopLevel::out");
             }
-        } elseif ($value instanceof ProtocolClass) {
+        } elseif ($value instanceof Out) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
+                throw new Exception("Attribute Error:TopLevel::out");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
+            throw new Exception("Attribute Error:TopLevel::out");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ProtocolClass|float|null
+     * @return Out|float|null
      */
-    public function getTopLevelProtocol(): ProtocolClass|float|null {
-        if (TopLevel::validateTopLevelProtocol($this->topLevelProtocol))  {
-            return $this->topLevelProtocol;
+    public function getOut(): Out|float|null {
+        if (TopLevel::validateOut($this->out))  {
+            return $this->out;
         }
-        throw new Exception('never get to getTopLevelProtocol TopLevel::topLevelProtocol');
+        throw new Exception('never get to getOut TopLevel::out');
     }
 
     /**
-     * @return ProtocolClass|float|null
+     * @return Out|float|null
      */
-    public static function sampleTopLevelProtocol(): ProtocolClass|float|null {
-        return ProtocolClass::sample(); /*223:topLevelProtocol*/
+    public static function sampleOut(): Out|float|null {
+        return Out::sample(); /*235:out*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return PublicClass|float|null
+     * @return OverrideClass|float|null
      */
-    public static function fromPublic(stdClass|float|null $value): PublicClass|float|null {
+    public static function fromOverride(stdClass|float|null $value): OverrideClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return PublicClass::from($value); /*class*/
+            return OverrideClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15511,71 +16546,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toPublic(): stdClass|float|null {
-        if (TopLevel::validatePublic($this->public))  {
-            if (is_null($this->public)) {
-                return $this->public; /*null*/
-            } elseif ($this->public instanceof PublicClass) {
-                return $this->public->to(); /*class*/
-            } elseif (is_float($this->public) || is_int($this->public)) {
-                return $this->public; /*float*/
+    public function toOverride(): stdClass|float|null {
+        if (TopLevel::validateOverride($this->override))  {
+            if (is_null($this->override)) {
+                return $this->override; /*null*/
+            } elseif ($this->override instanceof OverrideClass) {
+                return $this->override->to(); /*class*/
+            } elseif (is_float($this->override) || is_int($this->override)) {
+                return $this->override; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::public');
+        throw new Exception('never get to this TopLevel::override');
     }
 
     /**
-     * @param PublicClass|float|null
+     * @param OverrideClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validatePublic(PublicClass|float|null $value): bool {
+    public static function validateOverride(OverrideClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::public");
+                throw new Exception("Attribute Error:TopLevel::override");
             }
-        } elseif ($value instanceof PublicClass) {
+        } elseif ($value instanceof OverrideClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::public");
+                throw new Exception("Attribute Error:TopLevel::override");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::public");
+            throw new Exception("Attribute Error:TopLevel::override");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return PublicClass|float|null
+     * @return OverrideClass|float|null
      */
-    public function getPublic(): PublicClass|float|null {
-        if (TopLevel::validatePublic($this->public))  {
-            return $this->public;
+    public function getOverride(): OverrideClass|float|null {
+        if (TopLevel::validateOverride($this->override))  {
+            return $this->override;
         }
-        throw new Exception('never get to getPublic TopLevel::public');
+        throw new Exception('never get to getOverride TopLevel::override');
     }
 
     /**
-     * @return PublicClass|float|null
+     * @return OverrideClass|float|null
      */
-    public static function samplePublic(): PublicClass|float|null {
-        return PublicClass::sample(); /*224:public*/
+    public static function sampleOverride(): OverrideClass|float|null {
+        return OverrideClass::sample(); /*236:override*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Quicktype|float|null
+     * @return Package|float|null
      */
-    public static function fromQuicktype(stdClass|float|null $value): Quicktype|float|null {
+    public static function fromPackage(stdClass|float|null $value): Package|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Quicktype::from($value); /*class*/
+            return Package::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15587,71 +16622,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toQuicktype(): stdClass|float|null {
-        if (TopLevel::validateQuicktype($this->quicktype))  {
-            if (is_null($this->quicktype)) {
-                return $this->quicktype; /*null*/
-            } elseif ($this->quicktype instanceof Quicktype) {
-                return $this->quicktype->to(); /*class*/
-            } elseif (is_float($this->quicktype) || is_int($this->quicktype)) {
-                return $this->quicktype; /*float*/
+    public function toPackage(): stdClass|float|null {
+        if (TopLevel::validatePackage($this->package))  {
+            if (is_null($this->package)) {
+                return $this->package; /*null*/
+            } elseif ($this->package instanceof Package) {
+                return $this->package->to(); /*class*/
+            } elseif (is_float($this->package) || is_int($this->package)) {
+                return $this->package; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::quicktype');
+        throw new Exception('never get to this TopLevel::package');
     }
 
     /**
-     * @param Quicktype|float|null
+     * @param Package|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateQuicktype(Quicktype|float|null $value): bool {
+    public static function validatePackage(Package|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::quicktype");
+                throw new Exception("Attribute Error:TopLevel::package");
             }
-        } elseif ($value instanceof Quicktype) {
+        } elseif ($value instanceof Package) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::quicktype");
+                throw new Exception("Attribute Error:TopLevel::package");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::quicktype");
+            throw new Exception("Attribute Error:TopLevel::package");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Quicktype|float|null
+     * @return Package|float|null
      */
-    public function getQuicktype(): Quicktype|float|null {
-        if (TopLevel::validateQuicktype($this->quicktype))  {
-            return $this->quicktype;
+    public function getPackage(): Package|float|null {
+        if (TopLevel::validatePackage($this->package))  {
+            return $this->package;
         }
-        throw new Exception('never get to getQuicktype TopLevel::quicktype');
+        throw new Exception('never get to getPackage TopLevel::package');
     }
 
     /**
-     * @return Quicktype|float|null
+     * @return Package|float|null
      */
-    public static function sampleQuicktype(): Quicktype|float|null {
-        return Quicktype::sample(); /*225:quicktype*/
+    public static function samplePackage(): Package|float|null {
+        return Package::sample(); /*237:package*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Raise|float|null
+     * @return Params|float|null
      */
-    public static function fromRaise(stdClass|float|null $value): Raise|float|null {
+    public static function fromParams(stdClass|float|null $value): Params|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Raise::from($value); /*class*/
+            return Params::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15663,71 +16698,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRaise(): stdClass|float|null {
-        if (TopLevel::validateRaise($this->raise))  {
-            if (is_null($this->raise)) {
-                return $this->raise; /*null*/
-            } elseif ($this->raise instanceof Raise) {
-                return $this->raise->to(); /*class*/
-            } elseif (is_float($this->raise) || is_int($this->raise)) {
-                return $this->raise; /*float*/
+    public function toParams(): stdClass|float|null {
+        if (TopLevel::validateParams($this->params))  {
+            if (is_null($this->params)) {
+                return $this->params; /*null*/
+            } elseif ($this->params instanceof Params) {
+                return $this->params->to(); /*class*/
+            } elseif (is_float($this->params) || is_int($this->params)) {
+                return $this->params; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::raise');
+        throw new Exception('never get to this TopLevel::params');
     }
 
     /**
-     * @param Raise|float|null
+     * @param Params|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRaise(Raise|float|null $value): bool {
+    public static function validateParams(Params|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::raise");
+                throw new Exception("Attribute Error:TopLevel::params");
             }
-        } elseif ($value instanceof Raise) {
+        } elseif ($value instanceof Params) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::raise");
+                throw new Exception("Attribute Error:TopLevel::params");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::raise");
+            throw new Exception("Attribute Error:TopLevel::params");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Raise|float|null
+     * @return Params|float|null
      */
-    public function getRaise(): Raise|float|null {
-        if (TopLevel::validateRaise($this->raise))  {
-            return $this->raise;
+    public function getParams(): Params|float|null {
+        if (TopLevel::validateParams($this->params))  {
+            return $this->params;
         }
-        throw new Exception('never get to getRaise TopLevel::raise');
+        throw new Exception('never get to getParams TopLevel::params');
     }
 
     /**
-     * @return Raise|float|null
+     * @return Params|float|null
      */
-    public static function sampleRaise(): Raise|float|null {
-        return Raise::sample(); /*226:raise*/
+    public static function sampleParams(): Params|float|null {
+        return Params::sample(); /*238:params*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Range|float|null
+     * @return Pass|float|null
      */
-    public static function fromRange(stdClass|float|null $value): Range|float|null {
+    public static function fromPass(stdClass|float|null $value): Pass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Range::from($value); /*class*/
+            return Pass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15739,71 +16774,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRange(): stdClass|float|null {
-        if (TopLevel::validateRange($this->range))  {
-            if (is_null($this->range)) {
-                return $this->range; /*null*/
-            } elseif ($this->range instanceof Range) {
-                return $this->range->to(); /*class*/
-            } elseif (is_float($this->range) || is_int($this->range)) {
-                return $this->range; /*float*/
+    public function toPass(): stdClass|float|null {
+        if (TopLevel::validatePass($this->pass))  {
+            if (is_null($this->pass)) {
+                return $this->pass; /*null*/
+            } elseif ($this->pass instanceof Pass) {
+                return $this->pass->to(); /*class*/
+            } elseif (is_float($this->pass) || is_int($this->pass)) {
+                return $this->pass; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::range');
+        throw new Exception('never get to this TopLevel::pass');
     }
 
     /**
-     * @param Range|float|null
+     * @param Pass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRange(Range|float|null $value): bool {
+    public static function validatePass(Pass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::range");
+                throw new Exception("Attribute Error:TopLevel::pass");
             }
-        } elseif ($value instanceof Range) {
+        } elseif ($value instanceof Pass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::range");
+                throw new Exception("Attribute Error:TopLevel::pass");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::range");
+            throw new Exception("Attribute Error:TopLevel::pass");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Range|float|null
+     * @return Pass|float|null
      */
-    public function getRange(): Range|float|null {
-        if (TopLevel::validateRange($this->range))  {
-            return $this->range;
+    public function getPass(): Pass|float|null {
+        if (TopLevel::validatePass($this->pass))  {
+            return $this->pass;
         }
-        throw new Exception('never get to getRange TopLevel::range');
+        throw new Exception('never get to getPass TopLevel::pass');
     }
 
     /**
-     * @return Range|float|null
+     * @return Pass|float|null
      */
-    public static function sampleRange(): Range|float|null {
-        return Range::sample(); /*227:range*/
+    public static function samplePass(): Pass|float|null {
+        return Pass::sample(); /*239:pass*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ReadonlyClass|float|null
+     * @return Port|float|null
      */
-    public static function fromReadonly(stdClass|float|null $value): ReadonlyClass|float|null {
+    public static function fromPort(stdClass|float|null $value): Port|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ReadonlyClass::from($value); /*class*/
+            return Port::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15815,71 +16850,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toReadonly(): stdClass|float|null {
-        if (TopLevel::validateReadonly($this->readonly))  {
-            if (is_null($this->readonly)) {
-                return $this->readonly; /*null*/
-            } elseif ($this->readonly instanceof ReadonlyClass) {
-                return $this->readonly->to(); /*class*/
-            } elseif (is_float($this->readonly) || is_int($this->readonly)) {
-                return $this->readonly; /*float*/
+    public function toPort(): stdClass|float|null {
+        if (TopLevel::validatePort($this->port))  {
+            if (is_null($this->port)) {
+                return $this->port; /*null*/
+            } elseif ($this->port instanceof Port) {
+                return $this->port->to(); /*class*/
+            } elseif (is_float($this->port) || is_int($this->port)) {
+                return $this->port; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::readonly');
+        throw new Exception('never get to this TopLevel::port');
     }
 
     /**
-     * @param ReadonlyClass|float|null
+     * @param Port|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateReadonly(ReadonlyClass|float|null $value): bool {
+    public static function validatePort(Port|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::readonly");
+                throw new Exception("Attribute Error:TopLevel::port");
             }
-        } elseif ($value instanceof ReadonlyClass) {
+        } elseif ($value instanceof Port) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::readonly");
+                throw new Exception("Attribute Error:TopLevel::port");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::readonly");
+            throw new Exception("Attribute Error:TopLevel::port");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReadonlyClass|float|null
+     * @return Port|float|null
      */
-    public function getReadonly(): ReadonlyClass|float|null {
-        if (TopLevel::validateReadonly($this->readonly))  {
-            return $this->readonly;
+    public function getPort(): Port|float|null {
+        if (TopLevel::validatePort($this->port))  {
+            return $this->port;
         }
-        throw new Exception('never get to getReadonly TopLevel::readonly');
+        throw new Exception('never get to getPort TopLevel::port');
     }
 
     /**
-     * @return ReadonlyClass|float|null
+     * @return Port|float|null
      */
-    public static function sampleReadonly(): ReadonlyClass|float|null {
-        return ReadonlyClass::sample(); /*228:readonly*/
+    public static function samplePort(): Port|float|null {
+        return Port::sample(); /*240:port*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Ref|float|null
+     * @return Postfix|float|null
      */
-    public static function fromRef(stdClass|float|null $value): Ref|float|null {
+    public static function fromPostfix(stdClass|float|null $value): Postfix|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Ref::from($value); /*class*/
+            return Postfix::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15891,71 +16926,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRef(): stdClass|float|null {
-        if (TopLevel::validateRef($this->ref))  {
-            if (is_null($this->ref)) {
-                return $this->ref; /*null*/
-            } elseif ($this->ref instanceof Ref) {
-                return $this->ref->to(); /*class*/
-            } elseif (is_float($this->ref) || is_int($this->ref)) {
-                return $this->ref; /*float*/
+    public function toPostfix(): stdClass|float|null {
+        if (TopLevel::validatePostfix($this->postfix))  {
+            if (is_null($this->postfix)) {
+                return $this->postfix; /*null*/
+            } elseif ($this->postfix instanceof Postfix) {
+                return $this->postfix->to(); /*class*/
+            } elseif (is_float($this->postfix) || is_int($this->postfix)) {
+                return $this->postfix; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::ref');
+        throw new Exception('never get to this TopLevel::postfix');
     }
 
     /**
-     * @param Ref|float|null
+     * @param Postfix|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRef(Ref|float|null $value): bool {
+    public static function validatePostfix(Postfix|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::ref");
+                throw new Exception("Attribute Error:TopLevel::postfix");
             }
-        } elseif ($value instanceof Ref) {
+        } elseif ($value instanceof Postfix) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::ref");
+                throw new Exception("Attribute Error:TopLevel::postfix");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::ref");
+            throw new Exception("Attribute Error:TopLevel::postfix");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Ref|float|null
+     * @return Postfix|float|null
      */
-    public function getRef(): Ref|float|null {
-        if (TopLevel::validateRef($this->ref))  {
-            return $this->ref;
+    public function getPostfix(): Postfix|float|null {
+        if (TopLevel::validatePostfix($this->postfix))  {
+            return $this->postfix;
         }
-        throw new Exception('never get to getRef TopLevel::ref');
+        throw new Exception('never get to getPostfix TopLevel::postfix');
     }
 
     /**
-     * @return Ref|float|null
+     * @return Postfix|float|null
      */
-    public static function sampleRef(): Ref|float|null {
-        return Ref::sample(); /*229:ref*/
+    public static function samplePostfix(): Postfix|float|null {
+        return Postfix::sample(); /*241:postfix*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Register|float|null
+     * @return Precedence|float|null
      */
-    public static function fromRegister(stdClass|float|null $value): Register|float|null {
+    public static function fromPrecedence(stdClass|float|null $value): Precedence|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Register::from($value); /*class*/
+            return Precedence::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -15967,71 +17002,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRegister(): stdClass|float|null {
-        if (TopLevel::validateRegister($this->register))  {
-            if (is_null($this->register)) {
-                return $this->register; /*null*/
-            } elseif ($this->register instanceof Register) {
-                return $this->register->to(); /*class*/
-            } elseif (is_float($this->register) || is_int($this->register)) {
-                return $this->register; /*float*/
+    public function toPrecedence(): stdClass|float|null {
+        if (TopLevel::validatePrecedence($this->precedence))  {
+            if (is_null($this->precedence)) {
+                return $this->precedence; /*null*/
+            } elseif ($this->precedence instanceof Precedence) {
+                return $this->precedence->to(); /*class*/
+            } elseif (is_float($this->precedence) || is_int($this->precedence)) {
+                return $this->precedence; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::register');
+        throw new Exception('never get to this TopLevel::precedence');
     }
 
     /**
-     * @param Register|float|null
+     * @param Precedence|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRegister(Register|float|null $value): bool {
+    public static function validatePrecedence(Precedence|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::register");
+                throw new Exception("Attribute Error:TopLevel::precedence");
             }
-        } elseif ($value instanceof Register) {
+        } elseif ($value instanceof Precedence) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::register");
+                throw new Exception("Attribute Error:TopLevel::precedence");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::register");
+            throw new Exception("Attribute Error:TopLevel::precedence");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Register|float|null
+     * @return Precedence|float|null
      */
-    public function getRegister(): Register|float|null {
-        if (TopLevel::validateRegister($this->register))  {
-            return $this->register;
+    public function getPrecedence(): Precedence|float|null {
+        if (TopLevel::validatePrecedence($this->precedence))  {
+            return $this->precedence;
         }
-        throw new Exception('never get to getRegister TopLevel::register');
+        throw new Exception('never get to getPrecedence TopLevel::precedence');
     }
 
     /**
-     * @return Register|float|null
+     * @return Precedence|float|null
      */
-    public static function sampleRegister(): Register|float|null {
-        return Register::sample(); /*230:register*/
+    public static function samplePrecedence(): Precedence|float|null {
+        return Precedence::sample(); /*242:precedence*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ReinterpretCast|float|null
+     * @return Prefix|float|null
      */
-    public static function fromReinterpretCast(stdClass|float|null $value): ReinterpretCast|float|null {
+    public static function fromPrefix(stdClass|float|null $value): Prefix|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ReinterpretCast::from($value); /*class*/
+            return Prefix::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16043,71 +17078,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toReinterpretCast(): stdClass|float|null {
-        if (TopLevel::validateReinterpretCast($this->reinterpretCast))  {
-            if (is_null($this->reinterpretCast)) {
-                return $this->reinterpretCast; /*null*/
-            } elseif ($this->reinterpretCast instanceof ReinterpretCast) {
-                return $this->reinterpretCast->to(); /*class*/
-            } elseif (is_float($this->reinterpretCast) || is_int($this->reinterpretCast)) {
-                return $this->reinterpretCast; /*float*/
+    public function toPrefix(): stdClass|float|null {
+        if (TopLevel::validatePrefix($this->prefix))  {
+            if (is_null($this->prefix)) {
+                return $this->prefix; /*null*/
+            } elseif ($this->prefix instanceof Prefix) {
+                return $this->prefix->to(); /*class*/
+            } elseif (is_float($this->prefix) || is_int($this->prefix)) {
+                return $this->prefix; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::reinterpretCast');
+        throw new Exception('never get to this TopLevel::prefix');
     }
 
     /**
-     * @param ReinterpretCast|float|null
+     * @param Prefix|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateReinterpretCast(ReinterpretCast|float|null $value): bool {
+    public static function validatePrefix(Prefix|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::reinterpretCast");
+                throw new Exception("Attribute Error:TopLevel::prefix");
             }
-        } elseif ($value instanceof ReinterpretCast) {
+        } elseif ($value instanceof Prefix) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::reinterpretCast");
+                throw new Exception("Attribute Error:TopLevel::prefix");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::reinterpretCast");
+            throw new Exception("Attribute Error:TopLevel::prefix");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReinterpretCast|float|null
+     * @return Prefix|float|null
      */
-    public function getReinterpretCast(): ReinterpretCast|float|null {
-        if (TopLevel::validateReinterpretCast($this->reinterpretCast))  {
-            return $this->reinterpretCast;
+    public function getPrefix(): Prefix|float|null {
+        if (TopLevel::validatePrefix($this->prefix))  {
+            return $this->prefix;
         }
-        throw new Exception('never get to getReinterpretCast TopLevel::reinterpretCast');
+        throw new Exception('never get to getPrefix TopLevel::prefix');
     }
 
     /**
-     * @return ReinterpretCast|float|null
+     * @return Prefix|float|null
      */
-    public static function sampleReinterpretCast(): ReinterpretCast|float|null {
-        return ReinterpretCast::sample(); /*231:reinterpretCast*/
+    public static function samplePrefix(): Prefix|float|null {
+        return Prefix::sample(); /*243:prefix*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Repeat|float|null
+     * @return PrintClass|float|null
      */
-    public static function fromRepeat(stdClass|float|null $value): Repeat|float|null {
+    public static function fromPrint(stdClass|float|null $value): PrintClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Repeat::from($value); /*class*/
+            return PrintClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16119,71 +17154,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRepeat(): stdClass|float|null {
-        if (TopLevel::validateRepeat($this->repeat))  {
-            if (is_null($this->repeat)) {
-                return $this->repeat; /*null*/
-            } elseif ($this->repeat instanceof Repeat) {
-                return $this->repeat->to(); /*class*/
-            } elseif (is_float($this->repeat) || is_int($this->repeat)) {
-                return $this->repeat; /*float*/
+    public function toPrint(): stdClass|float|null {
+        if (TopLevel::validatePrint($this->print))  {
+            if (is_null($this->print)) {
+                return $this->print; /*null*/
+            } elseif ($this->print instanceof PrintClass) {
+                return $this->print->to(); /*class*/
+            } elseif (is_float($this->print) || is_int($this->print)) {
+                return $this->print; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::repeat');
+        throw new Exception('never get to this TopLevel::print');
     }
 
     /**
-     * @param Repeat|float|null
+     * @param PrintClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRepeat(Repeat|float|null $value): bool {
+    public static function validatePrint(PrintClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::repeat");
+                throw new Exception("Attribute Error:TopLevel::print");
             }
-        } elseif ($value instanceof Repeat) {
+        } elseif ($value instanceof PrintClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::repeat");
+                throw new Exception("Attribute Error:TopLevel::print");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::repeat");
+            throw new Exception("Attribute Error:TopLevel::print");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Repeat|float|null
+     * @return PrintClass|float|null
      */
-    public function getRepeat(): Repeat|float|null {
-        if (TopLevel::validateRepeat($this->repeat))  {
-            return $this->repeat;
+    public function getPrint(): PrintClass|float|null {
+        if (TopLevel::validatePrint($this->print))  {
+            return $this->print;
         }
-        throw new Exception('never get to getRepeat TopLevel::repeat');
+        throw new Exception('never get to getPrint TopLevel::print');
     }
 
     /**
-     * @return Repeat|float|null
+     * @return PrintClass|float|null
      */
-    public static function sampleRepeat(): Repeat|float|null {
-        return Repeat::sample(); /*232:repeat*/
+    public static function samplePrint(): PrintClass|float|null {
+        return PrintClass::sample(); /*244:print*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return RequireClass|float|null
+     * @return Printf|float|null
      */
-    public static function fromRequire(stdClass|float|null $value): RequireClass|float|null {
+    public static function fromPrintf(stdClass|float|null $value): Printf|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return RequireClass::from($value); /*class*/
+            return Printf::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16195,71 +17230,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRequire(): stdClass|float|null {
-        if (TopLevel::validateRequire($this->require))  {
-            if (is_null($this->require)) {
-                return $this->require; /*null*/
-            } elseif ($this->require instanceof RequireClass) {
-                return $this->require->to(); /*class*/
-            } elseif (is_float($this->require) || is_int($this->require)) {
-                return $this->require; /*float*/
+    public function toPrintf(): stdClass|float|null {
+        if (TopLevel::validatePrintf($this->printf))  {
+            if (is_null($this->printf)) {
+                return $this->printf; /*null*/
+            } elseif ($this->printf instanceof Printf) {
+                return $this->printf->to(); /*class*/
+            } elseif (is_float($this->printf) || is_int($this->printf)) {
+                return $this->printf; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::require');
+        throw new Exception('never get to this TopLevel::printf');
     }
 
     /**
-     * @param RequireClass|float|null
+     * @param Printf|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRequire(RequireClass|float|null $value): bool {
+    public static function validatePrintf(Printf|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::require");
+                throw new Exception("Attribute Error:TopLevel::printf");
             }
-        } elseif ($value instanceof RequireClass) {
+        } elseif ($value instanceof Printf) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::require");
+                throw new Exception("Attribute Error:TopLevel::printf");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::require");
+            throw new Exception("Attribute Error:TopLevel::printf");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return RequireClass|float|null
+     * @return Printf|float|null
      */
-    public function getRequire(): RequireClass|float|null {
-        if (TopLevel::validateRequire($this->require))  {
-            return $this->require;
+    public function getPrintf(): Printf|float|null {
+        if (TopLevel::validatePrintf($this->printf))  {
+            return $this->printf;
         }
-        throw new Exception('never get to getRequire TopLevel::require');
+        throw new Exception('never get to getPrintf TopLevel::printf');
     }
 
     /**
-     * @return RequireClass|float|null
+     * @return Printf|float|null
      */
-    public static function sampleRequire(): RequireClass|float|null {
-        return RequireClass::sample(); /*233:require*/
+    public static function samplePrintf(): Printf|float|null {
+        return Printf::sample(); /*245:printf*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Required|float|null
+     * @return PrintMembers|float|null
      */
-    public static function fromRequired(stdClass|float|null $value): Required|float|null {
+    public static function fromPrintMembers(stdClass|float|null $value): PrintMembers|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Required::from($value); /*class*/
+            return PrintMembers::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16271,71 +17306,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRequired(): stdClass|float|null {
-        if (TopLevel::validateRequired($this->required))  {
-            if (is_null($this->required)) {
-                return $this->required; /*null*/
-            } elseif ($this->required instanceof Required) {
-                return $this->required->to(); /*class*/
-            } elseif (is_float($this->required) || is_int($this->required)) {
-                return $this->required; /*float*/
+    public function toPrintMembers(): stdClass|float|null {
+        if (TopLevel::validatePrintMembers($this->printMembers))  {
+            if (is_null($this->printMembers)) {
+                return $this->printMembers; /*null*/
+            } elseif ($this->printMembers instanceof PrintMembers) {
+                return $this->printMembers->to(); /*class*/
+            } elseif (is_float($this->printMembers) || is_int($this->printMembers)) {
+                return $this->printMembers; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::required');
+        throw new Exception('never get to this TopLevel::printMembers');
     }
 
     /**
-     * @param Required|float|null
+     * @param PrintMembers|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRequired(Required|float|null $value): bool {
+    public static function validatePrintMembers(PrintMembers|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::required");
+                throw new Exception("Attribute Error:TopLevel::printMembers");
             }
-        } elseif ($value instanceof Required) {
+        } elseif ($value instanceof PrintMembers) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::required");
+                throw new Exception("Attribute Error:TopLevel::printMembers");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::required");
+            throw new Exception("Attribute Error:TopLevel::printMembers");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Required|float|null
+     * @return PrintMembers|float|null
      */
-    public function getRequired(): Required|float|null {
-        if (TopLevel::validateRequired($this->required))  {
-            return $this->required;
+    public function getPrintMembers(): PrintMembers|float|null {
+        if (TopLevel::validatePrintMembers($this->printMembers))  {
+            return $this->printMembers;
         }
-        throw new Exception('never get to getRequired TopLevel::required');
+        throw new Exception('never get to getPrintMembers TopLevel::printMembers');
     }
 
     /**
-     * @return Required|float|null
+     * @return PrintMembers|float|null
      */
-    public static function sampleRequired(): Required|float|null {
-        return Required::sample(); /*234:required*/
+    public static function samplePrintMembers(): PrintMembers|float|null {
+        return PrintMembers::sample(); /*246:printMembers*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Requires|float|null
+     * @return PrivateClass|float|null
      */
-    public static function fromRequires(stdClass|float|null $value): Requires|float|null {
+    public static function fromPrivate(stdClass|float|null $value): PrivateClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Requires::from($value); /*class*/
+            return PrivateClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16347,71 +17382,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRequires(): stdClass|float|null {
-        if (TopLevel::validateRequires($this->requires))  {
-            if (is_null($this->requires)) {
-                return $this->requires; /*null*/
-            } elseif ($this->requires instanceof Requires) {
-                return $this->requires->to(); /*class*/
-            } elseif (is_float($this->requires) || is_int($this->requires)) {
-                return $this->requires; /*float*/
+    public function toPrivate(): stdClass|float|null {
+        if (TopLevel::validatePrivate($this->private))  {
+            if (is_null($this->private)) {
+                return $this->private; /*null*/
+            } elseif ($this->private instanceof PrivateClass) {
+                return $this->private->to(); /*class*/
+            } elseif (is_float($this->private) || is_int($this->private)) {
+                return $this->private; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::requires');
+        throw new Exception('never get to this TopLevel::private');
     }
 
     /**
-     * @param Requires|float|null
+     * @param PrivateClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRequires(Requires|float|null $value): bool {
+    public static function validatePrivate(PrivateClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::requires");
+                throw new Exception("Attribute Error:TopLevel::private");
             }
-        } elseif ($value instanceof Requires) {
+        } elseif ($value instanceof PrivateClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::requires");
+                throw new Exception("Attribute Error:TopLevel::private");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::requires");
+            throw new Exception("Attribute Error:TopLevel::private");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Requires|float|null
+     * @return PrivateClass|float|null
      */
-    public function getRequires(): Requires|float|null {
-        if (TopLevel::validateRequires($this->requires))  {
-            return $this->requires;
+    public function getPrivate(): PrivateClass|float|null {
+        if (TopLevel::validatePrivate($this->private))  {
+            return $this->private;
         }
-        throw new Exception('never get to getRequires TopLevel::requires');
+        throw new Exception('never get to getPrivate TopLevel::private');
     }
 
     /**
-     * @return Requires|float|null
+     * @return PrivateClass|float|null
      */
-    public static function sampleRequires(): Requires|float|null {
-        return Requires::sample(); /*235:requires*/
+    public static function samplePrivate(): PrivateClass|float|null {
+        return PrivateClass::sample(); /*247:private*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Restrict|float|null
+     * @return ProtectedClass|float|null
      */
-    public static function fromRestrict(stdClass|float|null $value): Restrict|float|null {
+    public static function fromProtected(stdClass|float|null $value): ProtectedClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Restrict::from($value); /*class*/
+            return ProtectedClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16423,71 +17458,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRestrict(): stdClass|float|null {
-        if (TopLevel::validateRestrict($this->restrict))  {
-            if (is_null($this->restrict)) {
-                return $this->restrict; /*null*/
-            } elseif ($this->restrict instanceof Restrict) {
-                return $this->restrict->to(); /*class*/
-            } elseif (is_float($this->restrict) || is_int($this->restrict)) {
-                return $this->restrict; /*float*/
+    public function toProtected(): stdClass|float|null {
+        if (TopLevel::validateProtected($this->protected))  {
+            if (is_null($this->protected)) {
+                return $this->protected; /*null*/
+            } elseif ($this->protected instanceof ProtectedClass) {
+                return $this->protected->to(); /*class*/
+            } elseif (is_float($this->protected) || is_int($this->protected)) {
+                return $this->protected; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::restrict');
+        throw new Exception('never get to this TopLevel::protected');
     }
 
     /**
-     * @param Restrict|float|null
+     * @param ProtectedClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRestrict(Restrict|float|null $value): bool {
+    public static function validateProtected(ProtectedClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::restrict");
+                throw new Exception("Attribute Error:TopLevel::protected");
             }
-        } elseif ($value instanceof Restrict) {
+        } elseif ($value instanceof ProtectedClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::restrict");
+                throw new Exception("Attribute Error:TopLevel::protected");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::restrict");
+            throw new Exception("Attribute Error:TopLevel::protected");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Restrict|float|null
+     * @return ProtectedClass|float|null
      */
-    public function getRestrict(): Restrict|float|null {
-        if (TopLevel::validateRestrict($this->restrict))  {
-            return $this->restrict;
+    public function getProtected(): ProtectedClass|float|null {
+        if (TopLevel::validateProtected($this->protected))  {
+            return $this->protected;
         }
-        throw new Exception('never get to getRestrict TopLevel::restrict');
+        throw new Exception('never get to getProtected TopLevel::protected');
     }
 
     /**
-     * @return Restrict|float|null
+     * @return ProtectedClass|float|null
      */
-    public static function sampleRestrict(): Restrict|float|null {
-        return Restrict::sample(); /*236:restrict*/
+    public static function sampleProtected(): ProtectedClass|float|null {
+        return ProtectedClass::sample(); /*248:protected*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Retain|float|null
+     * @return Protocol|float|null
      */
-    public static function fromRetain(stdClass|float|null $value): Retain|float|null {
+    public static function fromProtocol(stdClass|float|null $value): Protocol|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Retain::from($value); /*class*/
+            return Protocol::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16499,71 +17534,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRetain(): stdClass|float|null {
-        if (TopLevel::validateRetain($this->retain))  {
-            if (is_null($this->retain)) {
-                return $this->retain; /*null*/
-            } elseif ($this->retain instanceof Retain) {
-                return $this->retain->to(); /*class*/
-            } elseif (is_float($this->retain) || is_int($this->retain)) {
-                return $this->retain; /*float*/
+    public function toProtocol(): stdClass|float|null {
+        if (TopLevel::validateProtocol($this->protocol))  {
+            if (is_null($this->protocol)) {
+                return $this->protocol; /*null*/
+            } elseif ($this->protocol instanceof Protocol) {
+                return $this->protocol->to(); /*class*/
+            } elseif (is_float($this->protocol) || is_int($this->protocol)) {
+                return $this->protocol; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::retain');
+        throw new Exception('never get to this TopLevel::protocol');
     }
 
     /**
-     * @param Retain|float|null
+     * @param Protocol|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRetain(Retain|float|null $value): bool {
+    public static function validateProtocol(Protocol|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::retain");
+                throw new Exception("Attribute Error:TopLevel::protocol");
             }
-        } elseif ($value instanceof Retain) {
+        } elseif ($value instanceof Protocol) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::retain");
+                throw new Exception("Attribute Error:TopLevel::protocol");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::retain");
+            throw new Exception("Attribute Error:TopLevel::protocol");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Retain|float|null
+     * @return Protocol|float|null
      */
-    public function getRetain(): Retain|float|null {
-        if (TopLevel::validateRetain($this->retain))  {
-            return $this->retain;
+    public function getProtocol(): Protocol|float|null {
+        if (TopLevel::validateProtocol($this->protocol))  {
+            return $this->protocol;
         }
-        throw new Exception('never get to getRetain TopLevel::retain');
+        throw new Exception('never get to getProtocol TopLevel::protocol');
     }
 
     /**
-     * @return Retain|float|null
+     * @return Protocol|float|null
      */
-    public static function sampleRetain(): Retain|float|null {
-        return Retain::sample(); /*237:retain*/
+    public static function sampleProtocol(): Protocol|float|null {
+        return Protocol::sample(); /*249:protocol*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Rethrows|float|null
+     * @return ProtocolClass|float|null
      */
-    public static function fromRethrows(stdClass|float|null $value): Rethrows|float|null {
+    public static function fromTopLevelProtocol(stdClass|float|null $value): ProtocolClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Rethrows::from($value); /*class*/
+            return ProtocolClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16575,71 +17610,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRethrows(): stdClass|float|null {
-        if (TopLevel::validateRethrows($this->rethrows))  {
-            if (is_null($this->rethrows)) {
-                return $this->rethrows; /*null*/
-            } elseif ($this->rethrows instanceof Rethrows) {
-                return $this->rethrows->to(); /*class*/
-            } elseif (is_float($this->rethrows) || is_int($this->rethrows)) {
-                return $this->rethrows; /*float*/
+    public function toTopLevelProtocol(): stdClass|float|null {
+        if (TopLevel::validateTopLevelProtocol($this->topLevelProtocol))  {
+            if (is_null($this->topLevelProtocol)) {
+                return $this->topLevelProtocol; /*null*/
+            } elseif ($this->topLevelProtocol instanceof ProtocolClass) {
+                return $this->topLevelProtocol->to(); /*class*/
+            } elseif (is_float($this->topLevelProtocol) || is_int($this->topLevelProtocol)) {
+                return $this->topLevelProtocol; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::rethrows');
+        throw new Exception('never get to this TopLevel::topLevelProtocol');
     }
 
     /**
-     * @param Rethrows|float|null
+     * @param ProtocolClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRethrows(Rethrows|float|null $value): bool {
+    public static function validateTopLevelProtocol(ProtocolClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::rethrows");
+                throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
             }
-        } elseif ($value instanceof Rethrows) {
+        } elseif ($value instanceof ProtocolClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::rethrows");
+                throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::rethrows");
+            throw new Exception("Attribute Error:TopLevel::topLevelProtocol");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Rethrows|float|null
+     * @return ProtocolClass|float|null
      */
-    public function getRethrows(): Rethrows|float|null {
-        if (TopLevel::validateRethrows($this->rethrows))  {
-            return $this->rethrows;
+    public function getTopLevelProtocol(): ProtocolClass|float|null {
+        if (TopLevel::validateTopLevelProtocol($this->topLevelProtocol))  {
+            return $this->topLevelProtocol;
         }
-        throw new Exception('never get to getRethrows TopLevel::rethrows');
+        throw new Exception('never get to getTopLevelProtocol TopLevel::topLevelProtocol');
     }
 
     /**
-     * @return Rethrows|float|null
+     * @return ProtocolClass|float|null
      */
-    public static function sampleRethrows(): Rethrows|float|null {
-        return Rethrows::sample(); /*238:rethrows*/
+    public static function sampleTopLevelProtocol(): ProtocolClass|float|null {
+        return ProtocolClass::sample(); /*250:topLevelProtocol*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ReturnClass|float|null
+     * @return PublicClass|float|null
      */
-    public static function fromReturn(stdClass|float|null $value): ReturnClass|float|null {
+    public static function fromPublic(stdClass|float|null $value): PublicClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ReturnClass::from($value); /*class*/
+            return PublicClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16651,71 +17686,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toReturn(): stdClass|float|null {
-        if (TopLevel::validateReturn($this->return))  {
-            if (is_null($this->return)) {
-                return $this->return; /*null*/
-            } elseif ($this->return instanceof ReturnClass) {
-                return $this->return->to(); /*class*/
-            } elseif (is_float($this->return) || is_int($this->return)) {
-                return $this->return; /*float*/
+    public function toPublic(): stdClass|float|null {
+        if (TopLevel::validatePublic($this->public))  {
+            if (is_null($this->public)) {
+                return $this->public; /*null*/
+            } elseif ($this->public instanceof PublicClass) {
+                return $this->public->to(); /*class*/
+            } elseif (is_float($this->public) || is_int($this->public)) {
+                return $this->public; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::return');
+        throw new Exception('never get to this TopLevel::public');
     }
 
     /**
-     * @param ReturnClass|float|null
+     * @param PublicClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateReturn(ReturnClass|float|null $value): bool {
+    public static function validatePublic(PublicClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::return");
+                throw new Exception("Attribute Error:TopLevel::public");
             }
-        } elseif ($value instanceof ReturnClass) {
+        } elseif ($value instanceof PublicClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::return");
+                throw new Exception("Attribute Error:TopLevel::public");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::return");
+            throw new Exception("Attribute Error:TopLevel::public");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ReturnClass|float|null
+     * @return PublicClass|float|null
      */
-    public function getReturn(): ReturnClass|float|null {
-        if (TopLevel::validateReturn($this->return))  {
-            return $this->return;
+    public function getPublic(): PublicClass|float|null {
+        if (TopLevel::validatePublic($this->public))  {
+            return $this->public;
         }
-        throw new Exception('never get to getReturn TopLevel::return');
+        throw new Exception('never get to getPublic TopLevel::public');
     }
 
     /**
-     * @return ReturnClass|float|null
+     * @return PublicClass|float|null
      */
-    public static function sampleReturn(): ReturnClass|float|null {
-        return ReturnClass::sample(); /*239:return*/
+    public static function samplePublic(): PublicClass|float|null {
+        return PublicClass::sample(); /*251:public*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Right|float|null
+     * @return Quicktype|float|null
      */
-    public static function fromRight(stdClass|float|null $value): Right|float|null {
+    public static function fromQuicktype(stdClass|float|null $value): Quicktype|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Right::from($value); /*class*/
+            return Quicktype::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16727,71 +17762,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toRight(): stdClass|float|null {
-        if (TopLevel::validateRight($this->right))  {
-            if (is_null($this->right)) {
-                return $this->right; /*null*/
-            } elseif ($this->right instanceof Right) {
-                return $this->right->to(); /*class*/
-            } elseif (is_float($this->right) || is_int($this->right)) {
-                return $this->right; /*float*/
+    public function toQuicktype(): stdClass|float|null {
+        if (TopLevel::validateQuicktype($this->quicktype))  {
+            if (is_null($this->quicktype)) {
+                return $this->quicktype; /*null*/
+            } elseif ($this->quicktype instanceof Quicktype) {
+                return $this->quicktype->to(); /*class*/
+            } elseif (is_float($this->quicktype) || is_int($this->quicktype)) {
+                return $this->quicktype; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::right');
+        throw new Exception('never get to this TopLevel::quicktype');
     }
 
     /**
-     * @param Right|float|null
+     * @param Quicktype|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateRight(Right|float|null $value): bool {
+    public static function validateQuicktype(Quicktype|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::right");
+                throw new Exception("Attribute Error:TopLevel::quicktype");
             }
-        } elseif ($value instanceof Right) {
+        } elseif ($value instanceof Quicktype) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::right");
+                throw new Exception("Attribute Error:TopLevel::quicktype");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::right");
+            throw new Exception("Attribute Error:TopLevel::quicktype");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Right|float|null
+     * @return Quicktype|float|null
      */
-    public function getRight(): Right|float|null {
-        if (TopLevel::validateRight($this->right))  {
-            return $this->right;
+    public function getQuicktype(): Quicktype|float|null {
+        if (TopLevel::validateQuicktype($this->quicktype))  {
+            return $this->quicktype;
         }
-        throw new Exception('never get to getRight TopLevel::right');
+        throw new Exception('never get to getQuicktype TopLevel::quicktype');
     }
 
     /**
-     * @return Right|float|null
+     * @return Quicktype|float|null
      */
-    public static function sampleRight(): Right|float|null {
-        return Right::sample(); /*240:right*/
+    public static function sampleQuicktype(): Quicktype|float|null {
+        return Quicktype::sample(); /*252:quicktype*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Sbyte|float|null
+     * @return Raise|float|null
      */
-    public static function fromSbyte(stdClass|float|null $value): Sbyte|float|null {
+    public static function fromRaise(stdClass|float|null $value): Raise|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Sbyte::from($value); /*class*/
+            return Raise::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16803,71 +17838,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSbyte(): stdClass|float|null {
-        if (TopLevel::validateSbyte($this->sbyte))  {
-            if (is_null($this->sbyte)) {
-                return $this->sbyte; /*null*/
-            } elseif ($this->sbyte instanceof Sbyte) {
-                return $this->sbyte->to(); /*class*/
-            } elseif (is_float($this->sbyte) || is_int($this->sbyte)) {
-                return $this->sbyte; /*float*/
+    public function toRaise(): stdClass|float|null {
+        if (TopLevel::validateRaise($this->raise))  {
+            if (is_null($this->raise)) {
+                return $this->raise; /*null*/
+            } elseif ($this->raise instanceof Raise) {
+                return $this->raise->to(); /*class*/
+            } elseif (is_float($this->raise) || is_int($this->raise)) {
+                return $this->raise; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::sbyte');
+        throw new Exception('never get to this TopLevel::raise');
     }
 
     /**
-     * @param Sbyte|float|null
+     * @param Raise|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSbyte(Sbyte|float|null $value): bool {
+    public static function validateRaise(Raise|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::sbyte");
+                throw new Exception("Attribute Error:TopLevel::raise");
             }
-        } elseif ($value instanceof Sbyte) {
+        } elseif ($value instanceof Raise) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::sbyte");
+                throw new Exception("Attribute Error:TopLevel::raise");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::sbyte");
+            throw new Exception("Attribute Error:TopLevel::raise");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sbyte|float|null
+     * @return Raise|float|null
      */
-    public function getSbyte(): Sbyte|float|null {
-        if (TopLevel::validateSbyte($this->sbyte))  {
-            return $this->sbyte;
+    public function getRaise(): Raise|float|null {
+        if (TopLevel::validateRaise($this->raise))  {
+            return $this->raise;
         }
-        throw new Exception('never get to getSbyte TopLevel::sbyte');
+        throw new Exception('never get to getRaise TopLevel::raise');
     }
 
     /**
-     * @return Sbyte|float|null
+     * @return Raise|float|null
      */
-    public static function sampleSbyte(): Sbyte|float|null {
-        return Sbyte::sample(); /*241:sbyte*/
+    public static function sampleRaise(): Raise|float|null {
+        return Raise::sample(); /*253:raise*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Sealed|float|null
+     * @return Range|float|null
      */
-    public static function fromSealed(stdClass|float|null $value): Sealed|float|null {
+    public static function fromRange(stdClass|float|null $value): Range|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Sealed::from($value); /*class*/
+            return Range::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16879,71 +17914,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSealed(): stdClass|float|null {
-        if (TopLevel::validateSealed($this->sealed))  {
-            if (is_null($this->sealed)) {
-                return $this->sealed; /*null*/
-            } elseif ($this->sealed instanceof Sealed) {
-                return $this->sealed->to(); /*class*/
-            } elseif (is_float($this->sealed) || is_int($this->sealed)) {
-                return $this->sealed; /*float*/
+    public function toRange(): stdClass|float|null {
+        if (TopLevel::validateRange($this->range))  {
+            if (is_null($this->range)) {
+                return $this->range; /*null*/
+            } elseif ($this->range instanceof Range) {
+                return $this->range->to(); /*class*/
+            } elseif (is_float($this->range) || is_int($this->range)) {
+                return $this->range; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::sealed');
+        throw new Exception('never get to this TopLevel::range');
     }
 
     /**
-     * @param Sealed|float|null
+     * @param Range|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSealed(Sealed|float|null $value): bool {
+    public static function validateRange(Range|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::sealed");
+                throw new Exception("Attribute Error:TopLevel::range");
             }
-        } elseif ($value instanceof Sealed) {
+        } elseif ($value instanceof Range) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::sealed");
+                throw new Exception("Attribute Error:TopLevel::range");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::sealed");
+            throw new Exception("Attribute Error:TopLevel::range");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sealed|float|null
+     * @return Range|float|null
      */
-    public function getSealed(): Sealed|float|null {
-        if (TopLevel::validateSealed($this->sealed))  {
-            return $this->sealed;
+    public function getRange(): Range|float|null {
+        if (TopLevel::validateRange($this->range))  {
+            return $this->range;
         }
-        throw new Exception('never get to getSealed TopLevel::sealed');
+        throw new Exception('never get to getRange TopLevel::range');
     }
 
     /**
-     * @return Sealed|float|null
+     * @return Range|float|null
      */
-    public static function sampleSealed(): Sealed|float|null {
-        return Sealed::sample(); /*242:sealed*/
+    public static function sampleRange(): Range|float|null {
+        return Range::sample(); /*254:range*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Sel|float|null
+     * @return ReadonlyClass|float|null
      */
-    public static function fromSel(stdClass|float|null $value): Sel|float|null {
+    public static function fromReadonly(stdClass|float|null $value): ReadonlyClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Sel::from($value); /*class*/
+            return ReadonlyClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -16955,71 +17990,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSel(): stdClass|float|null {
-        if (TopLevel::validateSel($this->sel))  {
-            if (is_null($this->sel)) {
-                return $this->sel; /*null*/
-            } elseif ($this->sel instanceof Sel) {
-                return $this->sel->to(); /*class*/
-            } elseif (is_float($this->sel) || is_int($this->sel)) {
-                return $this->sel; /*float*/
+    public function toReadonly(): stdClass|float|null {
+        if (TopLevel::validateReadonly($this->readonly))  {
+            if (is_null($this->readonly)) {
+                return $this->readonly; /*null*/
+            } elseif ($this->readonly instanceof ReadonlyClass) {
+                return $this->readonly->to(); /*class*/
+            } elseif (is_float($this->readonly) || is_int($this->readonly)) {
+                return $this->readonly; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::sel');
+        throw new Exception('never get to this TopLevel::readonly');
     }
 
     /**
-     * @param Sel|float|null
+     * @param ReadonlyClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSel(Sel|float|null $value): bool {
+    public static function validateReadonly(ReadonlyClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::sel");
+                throw new Exception("Attribute Error:TopLevel::readonly");
             }
-        } elseif ($value instanceof Sel) {
+        } elseif ($value instanceof ReadonlyClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::sel");
+                throw new Exception("Attribute Error:TopLevel::readonly");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::sel");
+            throw new Exception("Attribute Error:TopLevel::readonly");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sel|float|null
+     * @return ReadonlyClass|float|null
      */
-    public function getSel(): Sel|float|null {
-        if (TopLevel::validateSel($this->sel))  {
-            return $this->sel;
+    public function getReadonly(): ReadonlyClass|float|null {
+        if (TopLevel::validateReadonly($this->readonly))  {
+            return $this->readonly;
         }
-        throw new Exception('never get to getSel TopLevel::sel');
+        throw new Exception('never get to getReadonly TopLevel::readonly');
     }
 
     /**
-     * @return Sel|float|null
+     * @return ReadonlyClass|float|null
      */
-    public static function sampleSel(): Sel|float|null {
-        return Sel::sample(); /*243:sel*/
+    public static function sampleReadonly(): ReadonlyClass|float|null {
+        return ReadonlyClass::sample(); /*255:readonly*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Select|float|null
+     * @return Ref|float|null
      */
-    public static function fromSelect(stdClass|float|null $value): Select|float|null {
+    public static function fromRef(stdClass|float|null $value): Ref|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Select::from($value); /*class*/
+            return Ref::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17031,71 +18066,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSelect(): stdClass|float|null {
-        if (TopLevel::validateSelect($this->select))  {
-            if (is_null($this->select)) {
-                return $this->select; /*null*/
-            } elseif ($this->select instanceof Select) {
-                return $this->select->to(); /*class*/
-            } elseif (is_float($this->select) || is_int($this->select)) {
-                return $this->select; /*float*/
+    public function toRef(): stdClass|float|null {
+        if (TopLevel::validateRef($this->ref))  {
+            if (is_null($this->ref)) {
+                return $this->ref; /*null*/
+            } elseif ($this->ref instanceof Ref) {
+                return $this->ref->to(); /*class*/
+            } elseif (is_float($this->ref) || is_int($this->ref)) {
+                return $this->ref; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::select');
+        throw new Exception('never get to this TopLevel::ref');
     }
 
     /**
-     * @param Select|float|null
+     * @param Ref|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSelect(Select|float|null $value): bool {
+    public static function validateRef(Ref|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::select");
+                throw new Exception("Attribute Error:TopLevel::ref");
             }
-        } elseif ($value instanceof Select) {
+        } elseif ($value instanceof Ref) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::select");
+                throw new Exception("Attribute Error:TopLevel::ref");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::select");
+            throw new Exception("Attribute Error:TopLevel::ref");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Select|float|null
+     * @return Ref|float|null
      */
-    public function getSelect(): Select|float|null {
-        if (TopLevel::validateSelect($this->select))  {
-            return $this->select;
+    public function getRef(): Ref|float|null {
+        if (TopLevel::validateRef($this->ref))  {
+            return $this->ref;
         }
-        throw new Exception('never get to getSelect TopLevel::select');
+        throw new Exception('never get to getRef TopLevel::ref');
     }
 
     /**
-     * @return Select|float|null
+     * @return Ref|float|null
      */
-    public static function sampleSelect(): Select|float|null {
-        return Select::sample(); /*244:select*/
+    public static function sampleRef(): Ref|float|null {
+        return Ref::sample(); /*256:ref*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return SelfClass|float|null
+     * @return RegExp|float|null
      */
-    public static function fromSelf(stdClass|float|null $value): SelfClass|float|null {
+    public static function fromRegExp(stdClass|float|null $value): RegExp|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return SelfClass::from($value); /*class*/
+            return RegExp::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17107,71 +18142,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSelf(): stdClass|float|null {
-        if (TopLevel::validateSelf($this->self))  {
-            if (is_null($this->self)) {
-                return $this->self; /*null*/
-            } elseif ($this->self instanceof SelfClass) {
-                return $this->self->to(); /*class*/
-            } elseif (is_float($this->self) || is_int($this->self)) {
-                return $this->self; /*float*/
+    public function toRegExp(): stdClass|float|null {
+        if (TopLevel::validateRegExp($this->regExp))  {
+            if (is_null($this->regExp)) {
+                return $this->regExp; /*null*/
+            } elseif ($this->regExp instanceof RegExp) {
+                return $this->regExp->to(); /*class*/
+            } elseif (is_float($this->regExp) || is_int($this->regExp)) {
+                return $this->regExp; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::self');
+        throw new Exception('never get to this TopLevel::regExp');
     }
 
     /**
-     * @param SelfClass|float|null
+     * @param RegExp|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSelf(SelfClass|float|null $value): bool {
+    public static function validateRegExp(RegExp|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::self");
+                throw new Exception("Attribute Error:TopLevel::regExp");
             }
-        } elseif ($value instanceof SelfClass) {
+        } elseif ($value instanceof RegExp) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::self");
+                throw new Exception("Attribute Error:TopLevel::regExp");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::self");
+            throw new Exception("Attribute Error:TopLevel::regExp");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SelfClass|float|null
+     * @return RegExp|float|null
      */
-    public function getSelf(): SelfClass|float|null {
-        if (TopLevel::validateSelf($this->self))  {
-            return $this->self;
+    public function getRegExp(): RegExp|float|null {
+        if (TopLevel::validateRegExp($this->regExp))  {
+            return $this->regExp;
         }
-        throw new Exception('never get to getSelf TopLevel::self');
+        throw new Exception('never get to getRegExp TopLevel::regExp');
     }
 
     /**
-     * @return SelfClass|float|null
+     * @return RegExp|float|null
      */
-    public static function sampleSelf(): SelfClass|float|null {
-        return SelfClass::sample(); /*245:self*/
+    public static function sampleRegExp(): RegExp|float|null {
+        return RegExp::sample(); /*257:regExp*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return UnionSelfSelf|float|null
+     * @return Register|float|null
      */
-    public static function fromTopLevelSelf(stdClass|float|null $value): UnionSelfSelf|float|null {
+    public static function fromRegister(stdClass|float|null $value): Register|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return UnionSelfSelf::from($value); /*class*/
+            return Register::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17183,71 +18218,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelSelf(): stdClass|float|null {
-        if (TopLevel::validateTopLevelSelf($this->topLevelSelf))  {
-            if (is_null($this->topLevelSelf)) {
-                return $this->topLevelSelf; /*null*/
-            } elseif ($this->topLevelSelf instanceof UnionSelfSelf) {
-                return $this->topLevelSelf->to(); /*class*/
-            } elseif (is_float($this->topLevelSelf) || is_int($this->topLevelSelf)) {
-                return $this->topLevelSelf; /*float*/
+    public function toRegister(): stdClass|float|null {
+        if (TopLevel::validateRegister($this->register))  {
+            if (is_null($this->register)) {
+                return $this->register; /*null*/
+            } elseif ($this->register instanceof Register) {
+                return $this->register->to(); /*class*/
+            } elseif (is_float($this->register) || is_int($this->register)) {
+                return $this->register; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelSelf');
+        throw new Exception('never get to this TopLevel::register');
     }
 
     /**
-     * @param UnionSelfSelf|float|null
+     * @param Register|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelSelf(UnionSelfSelf|float|null $value): bool {
+    public static function validateRegister(Register|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelSelf");
+                throw new Exception("Attribute Error:TopLevel::register");
             }
-        } elseif ($value instanceof UnionSelfSelf) {
+        } elseif ($value instanceof Register) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelSelf");
+                throw new Exception("Attribute Error:TopLevel::register");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelSelf");
+            throw new Exception("Attribute Error:TopLevel::register");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return UnionSelfSelf|float|null
+     * @return Register|float|null
      */
-    public function getTopLevelSelf(): UnionSelfSelf|float|null {
-        if (TopLevel::validateTopLevelSelf($this->topLevelSelf))  {
-            return $this->topLevelSelf;
+    public function getRegister(): Register|float|null {
+        if (TopLevel::validateRegister($this->register))  {
+            return $this->register;
         }
-        throw new Exception('never get to getTopLevelSelf TopLevel::topLevelSelf');
+        throw new Exception('never get to getRegister TopLevel::register');
     }
 
     /**
-     * @return UnionSelfSelf|float|null
+     * @return Register|float|null
      */
-    public static function sampleTopLevelSelf(): UnionSelfSelf|float|null {
-        return UnionSelfSelf::sample(); /*246:topLevelSelf*/
+    public static function sampleRegister(): Register|float|null {
+        return Register::sample(); /*258:register*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Serialize|float|null
+     * @return ReinterpretCast|float|null
      */
-    public static function fromSerialize(stdClass|float|null $value): Serialize|float|null {
+    public static function fromReinterpretCast(stdClass|float|null $value): ReinterpretCast|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Serialize::from($value); /*class*/
+            return ReinterpretCast::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17259,71 +18294,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSerialize(): stdClass|float|null {
-        if (TopLevel::validateSerialize($this->serialize))  {
-            if (is_null($this->serialize)) {
-                return $this->serialize; /*null*/
-            } elseif ($this->serialize instanceof Serialize) {
-                return $this->serialize->to(); /*class*/
-            } elseif (is_float($this->serialize) || is_int($this->serialize)) {
-                return $this->serialize; /*float*/
+    public function toReinterpretCast(): stdClass|float|null {
+        if (TopLevel::validateReinterpretCast($this->reinterpretCast))  {
+            if (is_null($this->reinterpretCast)) {
+                return $this->reinterpretCast; /*null*/
+            } elseif ($this->reinterpretCast instanceof ReinterpretCast) {
+                return $this->reinterpretCast->to(); /*class*/
+            } elseif (is_float($this->reinterpretCast) || is_int($this->reinterpretCast)) {
+                return $this->reinterpretCast; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::serialize');
+        throw new Exception('never get to this TopLevel::reinterpretCast');
     }
 
     /**
-     * @param Serialize|float|null
+     * @param ReinterpretCast|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSerialize(Serialize|float|null $value): bool {
+    public static function validateReinterpretCast(ReinterpretCast|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::serialize");
+                throw new Exception("Attribute Error:TopLevel::reinterpretCast");
             }
-        } elseif ($value instanceof Serialize) {
+        } elseif ($value instanceof ReinterpretCast) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::serialize");
+                throw new Exception("Attribute Error:TopLevel::reinterpretCast");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::serialize");
+            throw new Exception("Attribute Error:TopLevel::reinterpretCast");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Serialize|float|null
+     * @return ReinterpretCast|float|null
      */
-    public function getSerialize(): Serialize|float|null {
-        if (TopLevel::validateSerialize($this->serialize))  {
-            return $this->serialize;
+    public function getReinterpretCast(): ReinterpretCast|float|null {
+        if (TopLevel::validateReinterpretCast($this->reinterpretCast))  {
+            return $this->reinterpretCast;
         }
-        throw new Exception('never get to getSerialize TopLevel::serialize');
+        throw new Exception('never get to getReinterpretCast TopLevel::reinterpretCast');
     }
 
     /**
-     * @return Serialize|float|null
+     * @return ReinterpretCast|float|null
      */
-    public static function sampleSerialize(): Serialize|float|null {
-        return Serialize::sample(); /*247:serialize*/
+    public static function sampleReinterpretCast(): ReinterpretCast|float|null {
+        return ReinterpretCast::sample(); /*259:reinterpretCast*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Set|float|null
+     * @return Repeat|float|null
      */
-    public static function fromSet(stdClass|float|null $value): Set|float|null {
+    public static function fromRepeat(stdClass|float|null $value): Repeat|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Set::from($value); /*class*/
+            return Repeat::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17335,71 +18370,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSet(): stdClass|float|null {
-        if (TopLevel::validateSet($this->set))  {
-            if (is_null($this->set)) {
-                return $this->set; /*null*/
-            } elseif ($this->set instanceof Set) {
-                return $this->set->to(); /*class*/
-            } elseif (is_float($this->set) || is_int($this->set)) {
-                return $this->set; /*float*/
+    public function toRepeat(): stdClass|float|null {
+        if (TopLevel::validateRepeat($this->repeat))  {
+            if (is_null($this->repeat)) {
+                return $this->repeat; /*null*/
+            } elseif ($this->repeat instanceof Repeat) {
+                return $this->repeat->to(); /*class*/
+            } elseif (is_float($this->repeat) || is_int($this->repeat)) {
+                return $this->repeat; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::set');
+        throw new Exception('never get to this TopLevel::repeat');
     }
 
     /**
-     * @param Set|float|null
+     * @param Repeat|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSet(Set|float|null $value): bool {
+    public static function validateRepeat(Repeat|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::set");
+                throw new Exception("Attribute Error:TopLevel::repeat");
             }
-        } elseif ($value instanceof Set) {
+        } elseif ($value instanceof Repeat) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::set");
+                throw new Exception("Attribute Error:TopLevel::repeat");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::set");
+            throw new Exception("Attribute Error:TopLevel::repeat");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Set|float|null
+     * @return Repeat|float|null
      */
-    public function getSet(): Set|float|null {
-        if (TopLevel::validateSet($this->set))  {
-            return $this->set;
+    public function getRepeat(): Repeat|float|null {
+        if (TopLevel::validateRepeat($this->repeat))  {
+            return $this->repeat;
         }
-        throw new Exception('never get to getSet TopLevel::set');
+        throw new Exception('never get to getRepeat TopLevel::repeat');
     }
 
     /**
-     * @return Set|float|null
+     * @return Repeat|float|null
      */
-    public static function sampleSet(): Set|float|null {
-        return Set::sample(); /*248:set*/
+    public static function sampleRepeat(): Repeat|float|null {
+        return Repeat::sample(); /*260:repeat*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Short|float|null
+     * @return RequireClass|float|null
      */
-    public static function fromShort(stdClass|float|null $value): Short|float|null {
+    public static function fromRequire(stdClass|float|null $value): RequireClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Short::from($value); /*class*/
+            return RequireClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17411,71 +18446,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toShort(): stdClass|float|null {
-        if (TopLevel::validateShort($this->short))  {
-            if (is_null($this->short)) {
-                return $this->short; /*null*/
-            } elseif ($this->short instanceof Short) {
-                return $this->short->to(); /*class*/
-            } elseif (is_float($this->short) || is_int($this->short)) {
-                return $this->short; /*float*/
+    public function toRequire(): stdClass|float|null {
+        if (TopLevel::validateRequire($this->require))  {
+            if (is_null($this->require)) {
+                return $this->require; /*null*/
+            } elseif ($this->require instanceof RequireClass) {
+                return $this->require->to(); /*class*/
+            } elseif (is_float($this->require) || is_int($this->require)) {
+                return $this->require; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::short');
+        throw new Exception('never get to this TopLevel::require');
     }
 
     /**
-     * @param Short|float|null
+     * @param RequireClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateShort(Short|float|null $value): bool {
+    public static function validateRequire(RequireClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::short");
+                throw new Exception("Attribute Error:TopLevel::require");
             }
-        } elseif ($value instanceof Short) {
+        } elseif ($value instanceof RequireClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::short");
+                throw new Exception("Attribute Error:TopLevel::require");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::short");
+            throw new Exception("Attribute Error:TopLevel::require");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Short|float|null
+     * @return RequireClass|float|null
      */
-    public function getShort(): Short|float|null {
-        if (TopLevel::validateShort($this->short))  {
-            return $this->short;
+    public function getRequire(): RequireClass|float|null {
+        if (TopLevel::validateRequire($this->require))  {
+            return $this->require;
         }
-        throw new Exception('never get to getShort TopLevel::short');
+        throw new Exception('never get to getRequire TopLevel::require');
     }
 
     /**
-     * @return Short|float|null
+     * @return RequireClass|float|null
      */
-    public static function sampleShort(): Short|float|null {
-        return Short::sample(); /*249:short*/
+    public static function sampleRequire(): RequireClass|float|null {
+        return RequireClass::sample(); /*261:require*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Signed|float|null
+     * @return Required|float|null
      */
-    public static function fromSigned(stdClass|float|null $value): Signed|float|null {
+    public static function fromRequired(stdClass|float|null $value): Required|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Signed::from($value); /*class*/
+            return Required::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17487,71 +18522,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSigned(): stdClass|float|null {
-        if (TopLevel::validateSigned($this->signed))  {
-            if (is_null($this->signed)) {
-                return $this->signed; /*null*/
-            } elseif ($this->signed instanceof Signed) {
-                return $this->signed->to(); /*class*/
-            } elseif (is_float($this->signed) || is_int($this->signed)) {
-                return $this->signed; /*float*/
+    public function toRequired(): stdClass|float|null {
+        if (TopLevel::validateRequired($this->required))  {
+            if (is_null($this->required)) {
+                return $this->required; /*null*/
+            } elseif ($this->required instanceof Required) {
+                return $this->required->to(); /*class*/
+            } elseif (is_float($this->required) || is_int($this->required)) {
+                return $this->required; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::signed');
+        throw new Exception('never get to this TopLevel::required');
     }
 
     /**
-     * @param Signed|float|null
+     * @param Required|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSigned(Signed|float|null $value): bool {
+    public static function validateRequired(Required|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::signed");
+                throw new Exception("Attribute Error:TopLevel::required");
             }
-        } elseif ($value instanceof Signed) {
+        } elseif ($value instanceof Required) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::signed");
+                throw new Exception("Attribute Error:TopLevel::required");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::signed");
+            throw new Exception("Attribute Error:TopLevel::required");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Signed|float|null
+     * @return Required|float|null
      */
-    public function getSigned(): Signed|float|null {
-        if (TopLevel::validateSigned($this->signed))  {
-            return $this->signed;
+    public function getRequired(): Required|float|null {
+        if (TopLevel::validateRequired($this->required))  {
+            return $this->required;
         }
-        throw new Exception('never get to getSigned TopLevel::signed');
+        throw new Exception('never get to getRequired TopLevel::required');
     }
 
     /**
-     * @return Signed|float|null
+     * @return Required|float|null
      */
-    public static function sampleSigned(): Signed|float|null {
-        return Signed::sample(); /*250:signed*/
+    public static function sampleRequired(): Required|float|null {
+        return Required::sample(); /*262:required*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Sizeof|float|null
+     * @return Requires|float|null
      */
-    public static function fromSizeof(stdClass|float|null $value): Sizeof|float|null {
+    public static function fromRequires(stdClass|float|null $value): Requires|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Sizeof::from($value); /*class*/
+            return Requires::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17563,71 +18598,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSizeof(): stdClass|float|null {
-        if (TopLevel::validateSizeof($this->sizeof))  {
-            if (is_null($this->sizeof)) {
-                return $this->sizeof; /*null*/
-            } elseif ($this->sizeof instanceof Sizeof) {
-                return $this->sizeof->to(); /*class*/
-            } elseif (is_float($this->sizeof) || is_int($this->sizeof)) {
-                return $this->sizeof; /*float*/
+    public function toRequires(): stdClass|float|null {
+        if (TopLevel::validateRequires($this->requires))  {
+            if (is_null($this->requires)) {
+                return $this->requires; /*null*/
+            } elseif ($this->requires instanceof Requires) {
+                return $this->requires->to(); /*class*/
+            } elseif (is_float($this->requires) || is_int($this->requires)) {
+                return $this->requires; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::sizeof');
+        throw new Exception('never get to this TopLevel::requires');
     }
 
     /**
-     * @param Sizeof|float|null
+     * @param Requires|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSizeof(Sizeof|float|null $value): bool {
+    public static function validateRequires(Requires|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::sizeof");
+                throw new Exception("Attribute Error:TopLevel::requires");
             }
-        } elseif ($value instanceof Sizeof) {
+        } elseif ($value instanceof Requires) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::sizeof");
+                throw new Exception("Attribute Error:TopLevel::requires");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::sizeof");
+            throw new Exception("Attribute Error:TopLevel::requires");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Sizeof|float|null
+     * @return Requires|float|null
      */
-    public function getSizeof(): Sizeof|float|null {
-        if (TopLevel::validateSizeof($this->sizeof))  {
-            return $this->sizeof;
+    public function getRequires(): Requires|float|null {
+        if (TopLevel::validateRequires($this->requires))  {
+            return $this->requires;
         }
-        throw new Exception('never get to getSizeof TopLevel::sizeof');
+        throw new Exception('never get to getRequires TopLevel::requires');
     }
 
     /**
-     * @return Sizeof|float|null
+     * @return Requires|float|null
      */
-    public static function sampleSizeof(): Sizeof|float|null {
-        return Sizeof::sample(); /*251:sizeof*/
+    public static function sampleRequires(): Requires|float|null {
+        return Requires::sample(); /*263:requires*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Stackalloc|float|null
+     * @return Restrict|float|null
      */
-    public static function fromStackalloc(stdClass|float|null $value): Stackalloc|float|null {
+    public static function fromRestrict(stdClass|float|null $value): Restrict|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Stackalloc::from($value); /*class*/
+            return Restrict::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17639,71 +18674,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStackalloc(): stdClass|float|null {
-        if (TopLevel::validateStackalloc($this->stackalloc))  {
-            if (is_null($this->stackalloc)) {
-                return $this->stackalloc; /*null*/
-            } elseif ($this->stackalloc instanceof Stackalloc) {
-                return $this->stackalloc->to(); /*class*/
-            } elseif (is_float($this->stackalloc) || is_int($this->stackalloc)) {
-                return $this->stackalloc; /*float*/
+    public function toRestrict(): stdClass|float|null {
+        if (TopLevel::validateRestrict($this->restrict))  {
+            if (is_null($this->restrict)) {
+                return $this->restrict; /*null*/
+            } elseif ($this->restrict instanceof Restrict) {
+                return $this->restrict->to(); /*class*/
+            } elseif (is_float($this->restrict) || is_int($this->restrict)) {
+                return $this->restrict; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::stackalloc');
+        throw new Exception('never get to this TopLevel::restrict');
     }
 
     /**
-     * @param Stackalloc|float|null
+     * @param Restrict|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStackalloc(Stackalloc|float|null $value): bool {
+    public static function validateRestrict(Restrict|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::stackalloc");
+                throw new Exception("Attribute Error:TopLevel::restrict");
             }
-        } elseif ($value instanceof Stackalloc) {
+        } elseif ($value instanceof Restrict) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::stackalloc");
+                throw new Exception("Attribute Error:TopLevel::restrict");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::stackalloc");
+            throw new Exception("Attribute Error:TopLevel::restrict");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Stackalloc|float|null
+     * @return Restrict|float|null
      */
-    public function getStackalloc(): Stackalloc|float|null {
-        if (TopLevel::validateStackalloc($this->stackalloc))  {
-            return $this->stackalloc;
+    public function getRestrict(): Restrict|float|null {
+        if (TopLevel::validateRestrict($this->restrict))  {
+            return $this->restrict;
         }
-        throw new Exception('never get to getStackalloc TopLevel::stackalloc');
+        throw new Exception('never get to getRestrict TopLevel::restrict');
     }
 
     /**
-     * @return Stackalloc|float|null
+     * @return Restrict|float|null
      */
-    public static function sampleStackalloc(): Stackalloc|float|null {
-        return Stackalloc::sample(); /*252:stackalloc*/
+    public static function sampleRestrict(): Restrict|float|null {
+        return Restrict::sample(); /*264:restrict*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return StaticClass|float|null
+     * @return Retain|float|null
      */
-    public static function fromStatic(stdClass|float|null $value): StaticClass|float|null {
+    public static function fromRetain(stdClass|float|null $value): Retain|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return StaticClass::from($value); /*class*/
+            return Retain::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17715,71 +18750,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStatic(): stdClass|float|null {
-        if (TopLevel::validateStatic($this->static))  {
-            if (is_null($this->static)) {
-                return $this->static; /*null*/
-            } elseif ($this->static instanceof StaticClass) {
-                return $this->static->to(); /*class*/
-            } elseif (is_float($this->static) || is_int($this->static)) {
-                return $this->static; /*float*/
+    public function toRetain(): stdClass|float|null {
+        if (TopLevel::validateRetain($this->retain))  {
+            if (is_null($this->retain)) {
+                return $this->retain; /*null*/
+            } elseif ($this->retain instanceof Retain) {
+                return $this->retain->to(); /*class*/
+            } elseif (is_float($this->retain) || is_int($this->retain)) {
+                return $this->retain; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::static');
+        throw new Exception('never get to this TopLevel::retain');
     }
 
     /**
-     * @param StaticClass|float|null
+     * @param Retain|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStatic(StaticClass|float|null $value): bool {
+    public static function validateRetain(Retain|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::static");
+                throw new Exception("Attribute Error:TopLevel::retain");
             }
-        } elseif ($value instanceof StaticClass) {
+        } elseif ($value instanceof Retain) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::static");
+                throw new Exception("Attribute Error:TopLevel::retain");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::static");
+            throw new Exception("Attribute Error:TopLevel::retain");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StaticClass|float|null
+     * @return Retain|float|null
      */
-    public function getStatic(): StaticClass|float|null {
-        if (TopLevel::validateStatic($this->static))  {
-            return $this->static;
+    public function getRetain(): Retain|float|null {
+        if (TopLevel::validateRetain($this->retain))  {
+            return $this->retain;
         }
-        throw new Exception('never get to getStatic TopLevel::static');
+        throw new Exception('never get to getRetain TopLevel::retain');
     }
 
     /**
-     * @return StaticClass|float|null
+     * @return Retain|float|null
      */
-    public static function sampleStatic(): StaticClass|float|null {
-        return StaticClass::sample(); /*253:static*/
+    public static function sampleRetain(): Retain|float|null {
+        return Retain::sample(); /*265:retain*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return StaticAssert|float|null
+     * @return Rethrows|float|null
      */
-    public static function fromStaticAssert(stdClass|float|null $value): StaticAssert|float|null {
+    public static function fromRethrows(stdClass|float|null $value): Rethrows|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return StaticAssert::from($value); /*class*/
+            return Rethrows::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17791,71 +18826,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStaticAssert(): stdClass|float|null {
-        if (TopLevel::validateStaticAssert($this->staticAssert))  {
-            if (is_null($this->staticAssert)) {
-                return $this->staticAssert; /*null*/
-            } elseif ($this->staticAssert instanceof StaticAssert) {
-                return $this->staticAssert->to(); /*class*/
-            } elseif (is_float($this->staticAssert) || is_int($this->staticAssert)) {
-                return $this->staticAssert; /*float*/
+    public function toRethrows(): stdClass|float|null {
+        if (TopLevel::validateRethrows($this->rethrows))  {
+            if (is_null($this->rethrows)) {
+                return $this->rethrows; /*null*/
+            } elseif ($this->rethrows instanceof Rethrows) {
+                return $this->rethrows->to(); /*class*/
+            } elseif (is_float($this->rethrows) || is_int($this->rethrows)) {
+                return $this->rethrows; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::staticAssert');
+        throw new Exception('never get to this TopLevel::rethrows');
     }
 
     /**
-     * @param StaticAssert|float|null
+     * @param Rethrows|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStaticAssert(StaticAssert|float|null $value): bool {
+    public static function validateRethrows(Rethrows|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::staticAssert");
+                throw new Exception("Attribute Error:TopLevel::rethrows");
             }
-        } elseif ($value instanceof StaticAssert) {
+        } elseif ($value instanceof Rethrows) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::staticAssert");
+                throw new Exception("Attribute Error:TopLevel::rethrows");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::staticAssert");
+            throw new Exception("Attribute Error:TopLevel::rethrows");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StaticAssert|float|null
+     * @return Rethrows|float|null
      */
-    public function getStaticAssert(): StaticAssert|float|null {
-        if (TopLevel::validateStaticAssert($this->staticAssert))  {
-            return $this->staticAssert;
+    public function getRethrows(): Rethrows|float|null {
+        if (TopLevel::validateRethrows($this->rethrows))  {
+            return $this->rethrows;
         }
-        throw new Exception('never get to getStaticAssert TopLevel::staticAssert');
+        throw new Exception('never get to getRethrows TopLevel::rethrows');
     }
 
     /**
-     * @return StaticAssert|float|null
+     * @return Rethrows|float|null
      */
-    public static function sampleStaticAssert(): StaticAssert|float|null {
-        return StaticAssert::sample(); /*254:staticAssert*/
+    public static function sampleRethrows(): Rethrows|float|null {
+        return Rethrows::sample(); /*266:rethrows*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return StaticCast|float|null
+     * @return ReturnClass|float|null
      */
-    public static function fromStaticCast(stdClass|float|null $value): StaticCast|float|null {
+    public static function fromReturn(stdClass|float|null $value): ReturnClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return StaticCast::from($value); /*class*/
+            return ReturnClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17867,71 +18902,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStaticCast(): stdClass|float|null {
-        if (TopLevel::validateStaticCast($this->staticCast))  {
-            if (is_null($this->staticCast)) {
-                return $this->staticCast; /*null*/
-            } elseif ($this->staticCast instanceof StaticCast) {
-                return $this->staticCast->to(); /*class*/
-            } elseif (is_float($this->staticCast) || is_int($this->staticCast)) {
-                return $this->staticCast; /*float*/
+    public function toReturn(): stdClass|float|null {
+        if (TopLevel::validateReturn($this->return))  {
+            if (is_null($this->return)) {
+                return $this->return; /*null*/
+            } elseif ($this->return instanceof ReturnClass) {
+                return $this->return->to(); /*class*/
+            } elseif (is_float($this->return) || is_int($this->return)) {
+                return $this->return; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::staticCast');
+        throw new Exception('never get to this TopLevel::return');
     }
 
     /**
-     * @param StaticCast|float|null
+     * @param ReturnClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStaticCast(StaticCast|float|null $value): bool {
+    public static function validateReturn(ReturnClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::staticCast");
+                throw new Exception("Attribute Error:TopLevel::return");
             }
-        } elseif ($value instanceof StaticCast) {
+        } elseif ($value instanceof ReturnClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::staticCast");
+                throw new Exception("Attribute Error:TopLevel::return");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::staticCast");
+            throw new Exception("Attribute Error:TopLevel::return");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StaticCast|float|null
+     * @return ReturnClass|float|null
      */
-    public function getStaticCast(): StaticCast|float|null {
-        if (TopLevel::validateStaticCast($this->staticCast))  {
-            return $this->staticCast;
+    public function getReturn(): ReturnClass|float|null {
+        if (TopLevel::validateReturn($this->return))  {
+            return $this->return;
         }
-        throw new Exception('never get to getStaticCast TopLevel::staticCast');
+        throw new Exception('never get to getReturn TopLevel::return');
     }
 
     /**
-     * @return StaticCast|float|null
+     * @return ReturnClass|float|null
      */
-    public static function sampleStaticCast(): StaticCast|float|null {
-        return StaticCast::sample(); /*255:staticCast*/
+    public static function sampleReturn(): ReturnClass|float|null {
+        return ReturnClass::sample(); /*267:return*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Strictfp|float|null
+     * @return Right|float|null
      */
-    public static function fromStrictfp(stdClass|float|null $value): Strictfp|float|null {
+    public static function fromRight(stdClass|float|null $value): Right|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Strictfp::from($value); /*class*/
+            return Right::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -17943,71 +18978,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStrictfp(): stdClass|float|null {
-        if (TopLevel::validateStrictfp($this->strictfp))  {
-            if (is_null($this->strictfp)) {
-                return $this->strictfp; /*null*/
-            } elseif ($this->strictfp instanceof Strictfp) {
-                return $this->strictfp->to(); /*class*/
-            } elseif (is_float($this->strictfp) || is_int($this->strictfp)) {
-                return $this->strictfp; /*float*/
+    public function toRight(): stdClass|float|null {
+        if (TopLevel::validateRight($this->right))  {
+            if (is_null($this->right)) {
+                return $this->right; /*null*/
+            } elseif ($this->right instanceof Right) {
+                return $this->right->to(); /*class*/
+            } elseif (is_float($this->right) || is_int($this->right)) {
+                return $this->right; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::strictfp');
+        throw new Exception('never get to this TopLevel::right');
     }
 
     /**
-     * @param Strictfp|float|null
+     * @param Right|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStrictfp(Strictfp|float|null $value): bool {
+    public static function validateRight(Right|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::strictfp");
+                throw new Exception("Attribute Error:TopLevel::right");
             }
-        } elseif ($value instanceof Strictfp) {
+        } elseif ($value instanceof Right) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::strictfp");
+                throw new Exception("Attribute Error:TopLevel::right");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::strictfp");
+            throw new Exception("Attribute Error:TopLevel::right");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Strictfp|float|null
+     * @return Right|float|null
      */
-    public function getStrictfp(): Strictfp|float|null {
-        if (TopLevel::validateStrictfp($this->strictfp))  {
-            return $this->strictfp;
+    public function getRight(): Right|float|null {
+        if (TopLevel::validateRight($this->right))  {
+            return $this->right;
         }
-        throw new Exception('never get to getStrictfp TopLevel::strictfp');
+        throw new Exception('never get to getRight TopLevel::right');
     }
 
     /**
-     * @return Strictfp|float|null
+     * @return Right|float|null
      */
-    public static function sampleStrictfp(): Strictfp|float|null {
-        return Strictfp::sample(); /*256:strictfp*/
+    public static function sampleRight(): Right|float|null {
+        return Right::sample(); /*268:right*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return StringClass|float|null
+     * @return RuntimeType|float|null
      */
-    public static function fromString(stdClass|float|null $value): StringClass|float|null {
+    public static function fromRuntimeType(stdClass|float|null $value): RuntimeType|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return StringClass::from($value); /*class*/
+            return RuntimeType::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18019,71 +19054,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toString(): stdClass|float|null {
-        if (TopLevel::validateString($this->string))  {
-            if (is_null($this->string)) {
-                return $this->string; /*null*/
-            } elseif ($this->string instanceof StringClass) {
-                return $this->string->to(); /*class*/
-            } elseif (is_float($this->string) || is_int($this->string)) {
-                return $this->string; /*float*/
+    public function toRuntimeType(): stdClass|float|null {
+        if (TopLevel::validateRuntimeType($this->runtimeType))  {
+            if (is_null($this->runtimeType)) {
+                return $this->runtimeType; /*null*/
+            } elseif ($this->runtimeType instanceof RuntimeType) {
+                return $this->runtimeType->to(); /*class*/
+            } elseif (is_float($this->runtimeType) || is_int($this->runtimeType)) {
+                return $this->runtimeType; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::string');
+        throw new Exception('never get to this TopLevel::runtimeType');
     }
 
     /**
-     * @param StringClass|float|null
+     * @param RuntimeType|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateString(StringClass|float|null $value): bool {
+    public static function validateRuntimeType(RuntimeType|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::string");
+                throw new Exception("Attribute Error:TopLevel::runtimeType");
             }
-        } elseif ($value instanceof StringClass) {
+        } elseif ($value instanceof RuntimeType) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::string");
+                throw new Exception("Attribute Error:TopLevel::runtimeType");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::string");
+            throw new Exception("Attribute Error:TopLevel::runtimeType");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return StringClass|float|null
+     * @return RuntimeType|float|null
      */
-    public function getString(): StringClass|float|null {
-        if (TopLevel::validateString($this->string))  {
-            return $this->string;
+    public function getRuntimeType(): RuntimeType|float|null {
+        if (TopLevel::validateRuntimeType($this->runtimeType))  {
+            return $this->runtimeType;
         }
-        throw new Exception('never get to getString TopLevel::string');
+        throw new Exception('never get to getRuntimeType TopLevel::runtimeType');
     }
 
     /**
-     * @return StringClass|float|null
+     * @return RuntimeType|float|null
      */
-    public static function sampleString(): StringClass|float|null {
-        return StringClass::sample(); /*257:string*/
+    public static function sampleRuntimeType(): RuntimeType|float|null {
+        return RuntimeType::sample(); /*269:runtimeType*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Struct|float|null
+     * @return S|float|null
      */
-    public static function fromStruct(stdClass|float|null $value): Struct|float|null {
+    public static function fromS(stdClass|float|null $value): S|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Struct::from($value); /*class*/
+            return S::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18095,71 +19130,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toStruct(): stdClass|float|null {
-        if (TopLevel::validateStruct($this->struct))  {
-            if (is_null($this->struct)) {
-                return $this->struct; /*null*/
-            } elseif ($this->struct instanceof Struct) {
-                return $this->struct->to(); /*class*/
-            } elseif (is_float($this->struct) || is_int($this->struct)) {
-                return $this->struct; /*float*/
+    public function toS(): stdClass|float|null {
+        if (TopLevel::validateS($this->s))  {
+            if (is_null($this->s)) {
+                return $this->s; /*null*/
+            } elseif ($this->s instanceof S) {
+                return $this->s->to(); /*class*/
+            } elseif (is_float($this->s) || is_int($this->s)) {
+                return $this->s; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::struct');
+        throw new Exception('never get to this TopLevel::s');
     }
 
     /**
-     * @param Struct|float|null
+     * @param S|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateStruct(Struct|float|null $value): bool {
+    public static function validateS(S|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::struct");
+                throw new Exception("Attribute Error:TopLevel::s");
             }
-        } elseif ($value instanceof Struct) {
+        } elseif ($value instanceof S) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::struct");
+                throw new Exception("Attribute Error:TopLevel::s");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::struct");
+            throw new Exception("Attribute Error:TopLevel::s");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Struct|float|null
+     * @return S|float|null
      */
-    public function getStruct(): Struct|float|null {
-        if (TopLevel::validateStruct($this->struct))  {
-            return $this->struct;
+    public function getS(): S|float|null {
+        if (TopLevel::validateS($this->s))  {
+            return $this->s;
         }
-        throw new Exception('never get to getStruct TopLevel::struct');
+        throw new Exception('never get to getS TopLevel::s');
     }
 
     /**
-     * @return Struct|float|null
+     * @return S|float|null
      */
-    public static function sampleStruct(): Struct|float|null {
-        return Struct::sample(); /*258:struct*/
+    public static function sampleS(): S|float|null {
+        return S::sample(); /*270:s*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Subscript|float|null
+     * @return Sbyte|float|null
      */
-    public static function fromSubscript(stdClass|float|null $value): Subscript|float|null {
+    public static function fromSbyte(stdClass|float|null $value): Sbyte|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Subscript::from($value); /*class*/
+            return Sbyte::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18171,71 +19206,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSubscript(): stdClass|float|null {
-        if (TopLevel::validateSubscript($this->subscript))  {
-            if (is_null($this->subscript)) {
-                return $this->subscript; /*null*/
-            } elseif ($this->subscript instanceof Subscript) {
-                return $this->subscript->to(); /*class*/
-            } elseif (is_float($this->subscript) || is_int($this->subscript)) {
-                return $this->subscript; /*float*/
+    public function toSbyte(): stdClass|float|null {
+        if (TopLevel::validateSbyte($this->sbyte))  {
+            if (is_null($this->sbyte)) {
+                return $this->sbyte; /*null*/
+            } elseif ($this->sbyte instanceof Sbyte) {
+                return $this->sbyte->to(); /*class*/
+            } elseif (is_float($this->sbyte) || is_int($this->sbyte)) {
+                return $this->sbyte; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::subscript');
+        throw new Exception('never get to this TopLevel::sbyte');
     }
 
     /**
-     * @param Subscript|float|null
+     * @param Sbyte|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSubscript(Subscript|float|null $value): bool {
+    public static function validateSbyte(Sbyte|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::subscript");
+                throw new Exception("Attribute Error:TopLevel::sbyte");
             }
-        } elseif ($value instanceof Subscript) {
+        } elseif ($value instanceof Sbyte) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::subscript");
+                throw new Exception("Attribute Error:TopLevel::sbyte");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::subscript");
+            throw new Exception("Attribute Error:TopLevel::sbyte");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Subscript|float|null
+     * @return Sbyte|float|null
      */
-    public function getSubscript(): Subscript|float|null {
-        if (TopLevel::validateSubscript($this->subscript))  {
-            return $this->subscript;
+    public function getSbyte(): Sbyte|float|null {
+        if (TopLevel::validateSbyte($this->sbyte))  {
+            return $this->sbyte;
         }
-        throw new Exception('never get to getSubscript TopLevel::subscript');
+        throw new Exception('never get to getSbyte TopLevel::sbyte');
     }
 
     /**
-     * @return Subscript|float|null
+     * @return Sbyte|float|null
      */
-    public static function sampleSubscript(): Subscript|float|null {
-        return Subscript::sample(); /*259:subscript*/
+    public static function sampleSbyte(): Sbyte|float|null {
+        return Sbyte::sample(); /*271:sbyte*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Super|float|null
+     * @return Sealed|float|null
      */
-    public static function fromSuper(stdClass|float|null $value): Super|float|null {
+    public static function fromSealed(stdClass|float|null $value): Sealed|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Super::from($value); /*class*/
+            return Sealed::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18247,71 +19282,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSuper(): stdClass|float|null {
-        if (TopLevel::validateSuper($this->super))  {
-            if (is_null($this->super)) {
-                return $this->super; /*null*/
-            } elseif ($this->super instanceof Super) {
-                return $this->super->to(); /*class*/
-            } elseif (is_float($this->super) || is_int($this->super)) {
-                return $this->super; /*float*/
+    public function toSealed(): stdClass|float|null {
+        if (TopLevel::validateSealed($this->sealed))  {
+            if (is_null($this->sealed)) {
+                return $this->sealed; /*null*/
+            } elseif ($this->sealed instanceof Sealed) {
+                return $this->sealed->to(); /*class*/
+            } elseif (is_float($this->sealed) || is_int($this->sealed)) {
+                return $this->sealed; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::super');
+        throw new Exception('never get to this TopLevel::sealed');
     }
 
     /**
-     * @param Super|float|null
+     * @param Sealed|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSuper(Super|float|null $value): bool {
+    public static function validateSealed(Sealed|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::super");
+                throw new Exception("Attribute Error:TopLevel::sealed");
             }
-        } elseif ($value instanceof Super) {
+        } elseif ($value instanceof Sealed) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::super");
+                throw new Exception("Attribute Error:TopLevel::sealed");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::super");
+            throw new Exception("Attribute Error:TopLevel::sealed");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Super|float|null
+     * @return Sealed|float|null
      */
-    public function getSuper(): Super|float|null {
-        if (TopLevel::validateSuper($this->super))  {
-            return $this->super;
+    public function getSealed(): Sealed|float|null {
+        if (TopLevel::validateSealed($this->sealed))  {
+            return $this->sealed;
         }
-        throw new Exception('never get to getSuper TopLevel::super');
+        throw new Exception('never get to getSealed TopLevel::sealed');
     }
 
     /**
-     * @return Super|float|null
+     * @return Sealed|float|null
      */
-    public static function sampleSuper(): Super|float|null {
-        return Super::sample(); /*260:super*/
+    public static function sampleSealed(): Sealed|float|null {
+        return Sealed::sample(); /*272:sealed*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return SwitchClass|float|null
+     * @return Sel|float|null
      */
-    public static function fromSwitch(stdClass|float|null $value): SwitchClass|float|null {
+    public static function fromSel(stdClass|float|null $value): Sel|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return SwitchClass::from($value); /*class*/
+            return Sel::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18323,71 +19358,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSwitch(): stdClass|float|null {
-        if (TopLevel::validateSwitch($this->switch))  {
-            if (is_null($this->switch)) {
-                return $this->switch; /*null*/
-            } elseif ($this->switch instanceof SwitchClass) {
-                return $this->switch->to(); /*class*/
-            } elseif (is_float($this->switch) || is_int($this->switch)) {
-                return $this->switch; /*float*/
+    public function toSel(): stdClass|float|null {
+        if (TopLevel::validateSel($this->sel))  {
+            if (is_null($this->sel)) {
+                return $this->sel; /*null*/
+            } elseif ($this->sel instanceof Sel) {
+                return $this->sel->to(); /*class*/
+            } elseif (is_float($this->sel) || is_int($this->sel)) {
+                return $this->sel; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::switch');
+        throw new Exception('never get to this TopLevel::sel');
     }
 
     /**
-     * @param SwitchClass|float|null
+     * @param Sel|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSwitch(SwitchClass|float|null $value): bool {
+    public static function validateSel(Sel|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::switch");
+                throw new Exception("Attribute Error:TopLevel::sel");
             }
-        } elseif ($value instanceof SwitchClass) {
+        } elseif ($value instanceof Sel) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::switch");
+                throw new Exception("Attribute Error:TopLevel::sel");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::switch");
+            throw new Exception("Attribute Error:TopLevel::sel");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return SwitchClass|float|null
+     * @return Sel|float|null
      */
-    public function getSwitch(): SwitchClass|float|null {
-        if (TopLevel::validateSwitch($this->switch))  {
-            return $this->switch;
+    public function getSel(): Sel|float|null {
+        if (TopLevel::validateSel($this->sel))  {
+            return $this->sel;
         }
-        throw new Exception('never get to getSwitch TopLevel::switch');
+        throw new Exception('never get to getSel TopLevel::sel');
     }
 
     /**
-     * @return SwitchClass|float|null
+     * @return Sel|float|null
      */
-    public static function sampleSwitch(): SwitchClass|float|null {
-        return SwitchClass::sample(); /*261:switch*/
+    public static function sampleSel(): Sel|float|null {
+        return Sel::sample(); /*273:sel*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Symbol|float|null
+     * @return Select|float|null
      */
-    public static function fromSymbol(stdClass|float|null $value): Symbol|float|null {
+    public static function fromSelect(stdClass|float|null $value): Select|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Symbol::from($value); /*class*/
+            return Select::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18399,71 +19434,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSymbol(): stdClass|float|null {
-        if (TopLevel::validateSymbol($this->symbol))  {
-            if (is_null($this->symbol)) {
-                return $this->symbol; /*null*/
-            } elseif ($this->symbol instanceof Symbol) {
-                return $this->symbol->to(); /*class*/
-            } elseif (is_float($this->symbol) || is_int($this->symbol)) {
-                return $this->symbol; /*float*/
+    public function toSelect(): stdClass|float|null {
+        if (TopLevel::validateSelect($this->select))  {
+            if (is_null($this->select)) {
+                return $this->select; /*null*/
+            } elseif ($this->select instanceof Select) {
+                return $this->select->to(); /*class*/
+            } elseif (is_float($this->select) || is_int($this->select)) {
+                return $this->select; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::symbol');
+        throw new Exception('never get to this TopLevel::select');
     }
 
     /**
-     * @param Symbol|float|null
+     * @param Select|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSymbol(Symbol|float|null $value): bool {
+    public static function validateSelect(Select|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::symbol");
+                throw new Exception("Attribute Error:TopLevel::select");
             }
-        } elseif ($value instanceof Symbol) {
+        } elseif ($value instanceof Select) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::symbol");
+                throw new Exception("Attribute Error:TopLevel::select");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::symbol");
+            throw new Exception("Attribute Error:TopLevel::select");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Symbol|float|null
+     * @return Select|float|null
      */
-    public function getSymbol(): Symbol|float|null {
-        if (TopLevel::validateSymbol($this->symbol))  {
-            return $this->symbol;
+    public function getSelect(): Select|float|null {
+        if (TopLevel::validateSelect($this->select))  {
+            return $this->select;
         }
-        throw new Exception('never get to getSymbol TopLevel::symbol');
+        throw new Exception('never get to getSelect TopLevel::select');
     }
 
     /**
-     * @return Symbol|float|null
+     * @return Select|float|null
      */
-    public static function sampleSymbol(): Symbol|float|null {
-        return Symbol::sample(); /*262:symbol*/
+    public static function sampleSelect(): Select|float|null {
+        return Select::sample(); /*274:select*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Synchronized|float|null
+     * @return SelfClass|float|null
      */
-    public static function fromSynchronized(stdClass|float|null $value): Synchronized|float|null {
+    public static function fromSelf(stdClass|float|null $value): SelfClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Synchronized::from($value); /*class*/
+            return SelfClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18475,71 +19510,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSynchronized(): stdClass|float|null {
-        if (TopLevel::validateSynchronized($this->synchronized))  {
-            if (is_null($this->synchronized)) {
-                return $this->synchronized; /*null*/
-            } elseif ($this->synchronized instanceof Synchronized) {
-                return $this->synchronized->to(); /*class*/
-            } elseif (is_float($this->synchronized) || is_int($this->synchronized)) {
-                return $this->synchronized; /*float*/
+    public function toSelf(): stdClass|float|null {
+        if (TopLevel::validateSelf($this->self))  {
+            if (is_null($this->self)) {
+                return $this->self; /*null*/
+            } elseif ($this->self instanceof SelfClass) {
+                return $this->self->to(); /*class*/
+            } elseif (is_float($this->self) || is_int($this->self)) {
+                return $this->self; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::synchronized');
+        throw new Exception('never get to this TopLevel::self');
     }
 
     /**
-     * @param Synchronized|float|null
+     * @param SelfClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSynchronized(Synchronized|float|null $value): bool {
+    public static function validateSelf(SelfClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::synchronized");
+                throw new Exception("Attribute Error:TopLevel::self");
             }
-        } elseif ($value instanceof Synchronized) {
+        } elseif ($value instanceof SelfClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::synchronized");
+                throw new Exception("Attribute Error:TopLevel::self");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::synchronized");
+            throw new Exception("Attribute Error:TopLevel::self");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Synchronized|float|null
+     * @return SelfClass|float|null
      */
-    public function getSynchronized(): Synchronized|float|null {
-        if (TopLevel::validateSynchronized($this->synchronized))  {
-            return $this->synchronized;
+    public function getSelf(): SelfClass|float|null {
+        if (TopLevel::validateSelf($this->self))  {
+            return $this->self;
         }
-        throw new Exception('never get to getSynchronized TopLevel::synchronized');
+        throw new Exception('never get to getSelf TopLevel::self');
     }
 
     /**
-     * @return Synchronized|float|null
+     * @return SelfClass|float|null
      */
-    public static function sampleSynchronized(): Synchronized|float|null {
-        return Synchronized::sample(); /*263:synchronized*/
+    public static function sampleSelf(): SelfClass|float|null {
+        return SelfClass::sample(); /*275:self*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return System|float|null
+     * @return UnionSelfSelf|float|null
      */
-    public static function fromSystem(stdClass|float|null $value): System|float|null {
+    public static function fromTopLevelSelf(stdClass|float|null $value): UnionSelfSelf|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return System::from($value); /*class*/
+            return UnionSelfSelf::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18551,71 +19586,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toSystem(): stdClass|float|null {
-        if (TopLevel::validateSystem($this->system))  {
-            if (is_null($this->system)) {
-                return $this->system; /*null*/
-            } elseif ($this->system instanceof System) {
-                return $this->system->to(); /*class*/
-            } elseif (is_float($this->system) || is_int($this->system)) {
-                return $this->system; /*float*/
+    public function toTopLevelSelf(): stdClass|float|null {
+        if (TopLevel::validateTopLevelSelf($this->topLevelSelf))  {
+            if (is_null($this->topLevelSelf)) {
+                return $this->topLevelSelf; /*null*/
+            } elseif ($this->topLevelSelf instanceof UnionSelfSelf) {
+                return $this->topLevelSelf->to(); /*class*/
+            } elseif (is_float($this->topLevelSelf) || is_int($this->topLevelSelf)) {
+                return $this->topLevelSelf; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::system');
+        throw new Exception('never get to this TopLevel::topLevelSelf');
     }
 
     /**
-     * @param System|float|null
+     * @param UnionSelfSelf|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateSystem(System|float|null $value): bool {
+    public static function validateTopLevelSelf(UnionSelfSelf|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::system");
+                throw new Exception("Attribute Error:TopLevel::topLevelSelf");
             }
-        } elseif ($value instanceof System) {
+        } elseif ($value instanceof UnionSelfSelf) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::system");
+                throw new Exception("Attribute Error:TopLevel::topLevelSelf");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::system");
+            throw new Exception("Attribute Error:TopLevel::topLevelSelf");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return System|float|null
+     * @return UnionSelfSelf|float|null
      */
-    public function getSystem(): System|float|null {
-        if (TopLevel::validateSystem($this->system))  {
-            return $this->system;
+    public function getTopLevelSelf(): UnionSelfSelf|float|null {
+        if (TopLevel::validateTopLevelSelf($this->topLevelSelf))  {
+            return $this->topLevelSelf;
         }
-        throw new Exception('never get to getSystem TopLevel::system');
+        throw new Exception('never get to getTopLevelSelf TopLevel::topLevelSelf');
     }
 
     /**
-     * @return System|float|null
+     * @return UnionSelfSelf|float|null
      */
-    public static function sampleSystem(): System|float|null {
-        return System::sample(); /*264:system*/
+    public static function sampleTopLevelSelf(): UnionSelfSelf|float|null {
+        return UnionSelfSelf::sample(); /*276:topLevelSelf*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Template|float|null
+     * @return Serialize|float|null
      */
-    public static function fromTemplate(stdClass|float|null $value): Template|float|null {
+    public static function fromSerialize(stdClass|float|null $value): Serialize|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Template::from($value); /*class*/
+            return Serialize::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18627,71 +19662,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTemplate(): stdClass|float|null {
-        if (TopLevel::validateTemplate($this->template))  {
-            if (is_null($this->template)) {
-                return $this->template; /*null*/
-            } elseif ($this->template instanceof Template) {
-                return $this->template->to(); /*class*/
-            } elseif (is_float($this->template) || is_int($this->template)) {
-                return $this->template; /*float*/
+    public function toSerialize(): stdClass|float|null {
+        if (TopLevel::validateSerialize($this->serialize))  {
+            if (is_null($this->serialize)) {
+                return $this->serialize; /*null*/
+            } elseif ($this->serialize instanceof Serialize) {
+                return $this->serialize->to(); /*class*/
+            } elseif (is_float($this->serialize) || is_int($this->serialize)) {
+                return $this->serialize; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::template');
+        throw new Exception('never get to this TopLevel::serialize');
     }
 
     /**
-     * @param Template|float|null
+     * @param Serialize|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTemplate(Template|float|null $value): bool {
+    public static function validateSerialize(Serialize|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::template");
+                throw new Exception("Attribute Error:TopLevel::serialize");
             }
-        } elseif ($value instanceof Template) {
+        } elseif ($value instanceof Serialize) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::template");
+                throw new Exception("Attribute Error:TopLevel::serialize");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::template");
+            throw new Exception("Attribute Error:TopLevel::serialize");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Template|float|null
+     * @return Serialize|float|null
      */
-    public function getTemplate(): Template|float|null {
-        if (TopLevel::validateTemplate($this->template))  {
-            return $this->template;
+    public function getSerialize(): Serialize|float|null {
+        if (TopLevel::validateSerialize($this->serialize))  {
+            return $this->serialize;
         }
-        throw new Exception('never get to getTemplate TopLevel::template');
+        throw new Exception('never get to getSerialize TopLevel::serialize');
     }
 
     /**
-     * @return Template|float|null
+     * @return Serialize|float|null
      */
-    public static function sampleTemplate(): Template|float|null {
-        return Template::sample(); /*265:template*/
+    public static function sampleSerialize(): Serialize|float|null {
+        return Serialize::sample(); /*277:serialize*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Then|float|null
+     * @return SerializerProvider|float|null
      */
-    public static function fromThen(stdClass|float|null $value): Then|float|null {
+    public static function fromSerializerProvider(stdClass|float|null $value): SerializerProvider|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Then::from($value); /*class*/
+            return SerializerProvider::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18703,71 +19738,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toThen(): stdClass|float|null {
-        if (TopLevel::validateThen($this->then))  {
-            if (is_null($this->then)) {
-                return $this->then; /*null*/
-            } elseif ($this->then instanceof Then) {
-                return $this->then->to(); /*class*/
-            } elseif (is_float($this->then) || is_int($this->then)) {
-                return $this->then; /*float*/
+    public function toSerializerProvider(): stdClass|float|null {
+        if (TopLevel::validateSerializerProvider($this->serializerProvider))  {
+            if (is_null($this->serializerProvider)) {
+                return $this->serializerProvider; /*null*/
+            } elseif ($this->serializerProvider instanceof SerializerProvider) {
+                return $this->serializerProvider->to(); /*class*/
+            } elseif (is_float($this->serializerProvider) || is_int($this->serializerProvider)) {
+                return $this->serializerProvider; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::then');
+        throw new Exception('never get to this TopLevel::serializerProvider');
     }
 
     /**
-     * @param Then|float|null
+     * @param SerializerProvider|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateThen(Then|float|null $value): bool {
+    public static function validateSerializerProvider(SerializerProvider|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::then");
+                throw new Exception("Attribute Error:TopLevel::serializerProvider");
             }
-        } elseif ($value instanceof Then) {
+        } elseif ($value instanceof SerializerProvider) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::then");
+                throw new Exception("Attribute Error:TopLevel::serializerProvider");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::then");
+            throw new Exception("Attribute Error:TopLevel::serializerProvider");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Then|float|null
+     * @return SerializerProvider|float|null
      */
-    public function getThen(): Then|float|null {
-        if (TopLevel::validateThen($this->then))  {
-            return $this->then;
+    public function getSerializerProvider(): SerializerProvider|float|null {
+        if (TopLevel::validateSerializerProvider($this->serializerProvider))  {
+            return $this->serializerProvider;
         }
-        throw new Exception('never get to getThen TopLevel::then');
+        throw new Exception('never get to getSerializerProvider TopLevel::serializerProvider');
     }
 
     /**
-     * @return Then|float|null
+     * @return SerializerProvider|float|null
      */
-    public static function sampleThen(): Then|float|null {
-        return Then::sample(); /*266:then*/
+    public static function sampleSerializerProvider(): SerializerProvider|float|null {
+        return SerializerProvider::sample(); /*278:serializerProvider*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return This|float|null
+     * @return Set|float|null
      */
-    public static function fromTopLevelThis(stdClass|float|null $value): This|float|null {
+    public static function fromSet(stdClass|float|null $value): Set|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return This::from($value); /*class*/
+            return Set::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18779,71 +19814,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelThis(): stdClass|float|null {
-        if (TopLevel::validateTopLevelThis($this->topLevelThis))  {
-            if (is_null($this->topLevelThis)) {
-                return $this->topLevelThis; /*null*/
-            } elseif ($this->topLevelThis instanceof This) {
-                return $this->topLevelThis->to(); /*class*/
-            } elseif (is_float($this->topLevelThis) || is_int($this->topLevelThis)) {
-                return $this->topLevelThis; /*float*/
+    public function toSet(): stdClass|float|null {
+        if (TopLevel::validateSet($this->set))  {
+            if (is_null($this->set)) {
+                return $this->set; /*null*/
+            } elseif ($this->set instanceof Set) {
+                return $this->set->to(); /*class*/
+            } elseif (is_float($this->set) || is_int($this->set)) {
+                return $this->set; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelThis');
+        throw new Exception('never get to this TopLevel::set');
     }
 
     /**
-     * @param This|float|null
+     * @param Set|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelThis(This|float|null $value): bool {
+    public static function validateSet(Set|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelThis");
+                throw new Exception("Attribute Error:TopLevel::set");
             }
-        } elseif ($value instanceof This) {
+        } elseif ($value instanceof Set) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelThis");
+                throw new Exception("Attribute Error:TopLevel::set");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelThis");
+            throw new Exception("Attribute Error:TopLevel::set");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return This|float|null
+     * @return Set|float|null
      */
-    public function getTopLevelThis(): This|float|null {
-        if (TopLevel::validateTopLevelThis($this->topLevelThis))  {
-            return $this->topLevelThis;
+    public function getSet(): Set|float|null {
+        if (TopLevel::validateSet($this->set))  {
+            return $this->set;
         }
-        throw new Exception('never get to getTopLevelThis TopLevel::topLevelThis');
+        throw new Exception('never get to getSet TopLevel::set');
     }
 
     /**
-     * @return This|float|null
+     * @return Set|float|null
      */
-    public static function sampleTopLevelThis(): This|float|null {
-        return This::sample(); /*267:topLevelThis*/
+    public static function sampleSet(): Set|float|null {
+        return Set::sample(); /*279:set*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ThreadLocal|float|null
+     * @return Short|float|null
      */
-    public static function fromThreadLocal(stdClass|float|null $value): ThreadLocal|float|null {
+    public static function fromShort(stdClass|float|null $value): Short|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ThreadLocal::from($value); /*class*/
+            return Short::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18855,71 +19890,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toThreadLocal(): stdClass|float|null {
-        if (TopLevel::validateThreadLocal($this->threadLocal))  {
-            if (is_null($this->threadLocal)) {
-                return $this->threadLocal; /*null*/
-            } elseif ($this->threadLocal instanceof ThreadLocal) {
-                return $this->threadLocal->to(); /*class*/
-            } elseif (is_float($this->threadLocal) || is_int($this->threadLocal)) {
-                return $this->threadLocal; /*float*/
+    public function toShort(): stdClass|float|null {
+        if (TopLevel::validateShort($this->short))  {
+            if (is_null($this->short)) {
+                return $this->short; /*null*/
+            } elseif ($this->short instanceof Short) {
+                return $this->short->to(); /*class*/
+            } elseif (is_float($this->short) || is_int($this->short)) {
+                return $this->short; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::threadLocal');
+        throw new Exception('never get to this TopLevel::short');
     }
 
     /**
-     * @param ThreadLocal|float|null
+     * @param Short|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateThreadLocal(ThreadLocal|float|null $value): bool {
+    public static function validateShort(Short|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::threadLocal");
+                throw new Exception("Attribute Error:TopLevel::short");
             }
-        } elseif ($value instanceof ThreadLocal) {
+        } elseif ($value instanceof Short) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::threadLocal");
+                throw new Exception("Attribute Error:TopLevel::short");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::threadLocal");
+            throw new Exception("Attribute Error:TopLevel::short");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ThreadLocal|float|null
+     * @return Short|float|null
      */
-    public function getThreadLocal(): ThreadLocal|float|null {
-        if (TopLevel::validateThreadLocal($this->threadLocal))  {
-            return $this->threadLocal;
+    public function getShort(): Short|float|null {
+        if (TopLevel::validateShort($this->short))  {
+            return $this->short;
         }
-        throw new Exception('never get to getThreadLocal TopLevel::threadLocal');
+        throw new Exception('never get to getShort TopLevel::short');
     }
 
     /**
-     * @return ThreadLocal|float|null
+     * @return Short|float|null
      */
-    public static function sampleThreadLocal(): ThreadLocal|float|null {
-        return ThreadLocal::sample(); /*268:threadLocal*/
+    public static function sampleShort(): Short|float|null {
+        return Short::sample(); /*280:short*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ThrowClass|float|null
+     * @return Signed|float|null
      */
-    public static function fromThrow(stdClass|float|null $value): ThrowClass|float|null {
+    public static function fromSigned(stdClass|float|null $value): Signed|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ThrowClass::from($value); /*class*/
+            return Signed::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -18931,71 +19966,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toThrow(): stdClass|float|null {
-        if (TopLevel::validateThrow($this->throw))  {
-            if (is_null($this->throw)) {
-                return $this->throw; /*null*/
-            } elseif ($this->throw instanceof ThrowClass) {
-                return $this->throw->to(); /*class*/
-            } elseif (is_float($this->throw) || is_int($this->throw)) {
-                return $this->throw; /*float*/
+    public function toSigned(): stdClass|float|null {
+        if (TopLevel::validateSigned($this->signed))  {
+            if (is_null($this->signed)) {
+                return $this->signed; /*null*/
+            } elseif ($this->signed instanceof Signed) {
+                return $this->signed->to(); /*class*/
+            } elseif (is_float($this->signed) || is_int($this->signed)) {
+                return $this->signed; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::throw');
+        throw new Exception('never get to this TopLevel::signed');
     }
 
     /**
-     * @param ThrowClass|float|null
+     * @param Signed|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateThrow(ThrowClass|float|null $value): bool {
+    public static function validateSigned(Signed|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::throw");
+                throw new Exception("Attribute Error:TopLevel::signed");
             }
-        } elseif ($value instanceof ThrowClass) {
+        } elseif ($value instanceof Signed) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::throw");
+                throw new Exception("Attribute Error:TopLevel::signed");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::throw");
+            throw new Exception("Attribute Error:TopLevel::signed");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ThrowClass|float|null
+     * @return Signed|float|null
      */
-    public function getThrow(): ThrowClass|float|null {
-        if (TopLevel::validateThrow($this->throw))  {
-            return $this->throw;
+    public function getSigned(): Signed|float|null {
+        if (TopLevel::validateSigned($this->signed))  {
+            return $this->signed;
         }
-        throw new Exception('never get to getThrow TopLevel::throw');
+        throw new Exception('never get to getSigned TopLevel::signed');
     }
 
     /**
-     * @return ThrowClass|float|null
+     * @return Signed|float|null
      */
-    public static function sampleThrow(): ThrowClass|float|null {
-        return ThrowClass::sample(); /*269:throw*/
+    public static function sampleSigned(): Signed|float|null {
+        return Signed::sample(); /*281:signed*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Throws|float|null
+     * @return SimpleModule|float|null
      */
-    public static function fromThrows(stdClass|float|null $value): Throws|float|null {
+    public static function fromSimpleModule(stdClass|float|null $value): SimpleModule|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Throws::from($value); /*class*/
+            return SimpleModule::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19007,71 +20042,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toThrows(): stdClass|float|null {
-        if (TopLevel::validateThrows($this->throws))  {
-            if (is_null($this->throws)) {
-                return $this->throws; /*null*/
-            } elseif ($this->throws instanceof Throws) {
-                return $this->throws->to(); /*class*/
-            } elseif (is_float($this->throws) || is_int($this->throws)) {
-                return $this->throws; /*float*/
+    public function toSimpleModule(): stdClass|float|null {
+        if (TopLevel::validateSimpleModule($this->simpleModule))  {
+            if (is_null($this->simpleModule)) {
+                return $this->simpleModule; /*null*/
+            } elseif ($this->simpleModule instanceof SimpleModule) {
+                return $this->simpleModule->to(); /*class*/
+            } elseif (is_float($this->simpleModule) || is_int($this->simpleModule)) {
+                return $this->simpleModule; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::throws');
+        throw new Exception('never get to this TopLevel::simpleModule');
     }
 
     /**
-     * @param Throws|float|null
+     * @param SimpleModule|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateThrows(Throws|float|null $value): bool {
+    public static function validateSimpleModule(SimpleModule|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::throws");
+                throw new Exception("Attribute Error:TopLevel::simpleModule");
             }
-        } elseif ($value instanceof Throws) {
+        } elseif ($value instanceof SimpleModule) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::throws");
+                throw new Exception("Attribute Error:TopLevel::simpleModule");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::throws");
+            throw new Exception("Attribute Error:TopLevel::simpleModule");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Throws|float|null
+     * @return SimpleModule|float|null
      */
-    public function getThrows(): Throws|float|null {
-        if (TopLevel::validateThrows($this->throws))  {
-            return $this->throws;
+    public function getSimpleModule(): SimpleModule|float|null {
+        if (TopLevel::validateSimpleModule($this->simpleModule))  {
+            return $this->simpleModule;
         }
-        throw new Exception('never get to getThrows TopLevel::throws');
+        throw new Exception('never get to getSimpleModule TopLevel::simpleModule');
     }
 
     /**
-     * @return Throws|float|null
+     * @return SimpleModule|float|null
      */
-    public static function sampleThrows(): Throws|float|null {
-        return Throws::sample(); /*270:throws*/
+    public static function sampleSimpleModule(): SimpleModule|float|null {
+        return SimpleModule::sample(); /*282:simpleModule*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return ToJSON|float|null
+     * @return Sizeof|float|null
      */
-    public static function fromToJSON(stdClass|float|null $value): ToJSON|float|null {
+    public static function fromSizeof(stdClass|float|null $value): Sizeof|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return ToJSON::from($value); /*class*/
+            return Sizeof::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19083,71 +20118,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toToJSON(): stdClass|float|null {
-        if (TopLevel::validateToJSON($this->toJSON))  {
-            if (is_null($this->toJSON)) {
-                return $this->toJSON; /*null*/
-            } elseif ($this->toJSON instanceof ToJSON) {
-                return $this->toJSON->to(); /*class*/
-            } elseif (is_float($this->toJSON) || is_int($this->toJSON)) {
-                return $this->toJSON; /*float*/
+    public function toSizeof(): stdClass|float|null {
+        if (TopLevel::validateSizeof($this->sizeof))  {
+            if (is_null($this->sizeof)) {
+                return $this->sizeof; /*null*/
+            } elseif ($this->sizeof instanceof Sizeof) {
+                return $this->sizeof->to(); /*class*/
+            } elseif (is_float($this->sizeof) || is_int($this->sizeof)) {
+                return $this->sizeof; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::toJSON');
+        throw new Exception('never get to this TopLevel::sizeof');
     }
 
     /**
-     * @param ToJSON|float|null
+     * @param Sizeof|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateToJSON(ToJSON|float|null $value): bool {
+    public static function validateSizeof(Sizeof|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::toJSON");
+                throw new Exception("Attribute Error:TopLevel::sizeof");
             }
-        } elseif ($value instanceof ToJSON) {
+        } elseif ($value instanceof Sizeof) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::toJSON");
+                throw new Exception("Attribute Error:TopLevel::sizeof");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::toJSON");
+            throw new Exception("Attribute Error:TopLevel::sizeof");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return ToJSON|float|null
+     * @return Sizeof|float|null
      */
-    public function getToJSON(): ToJSON|float|null {
-        if (TopLevel::validateToJSON($this->toJSON))  {
-            return $this->toJSON;
+    public function getSizeof(): Sizeof|float|null {
+        if (TopLevel::validateSizeof($this->sizeof))  {
+            return $this->sizeof;
         }
-        throw new Exception('never get to getToJSON TopLevel::toJSON');
+        throw new Exception('never get to getSizeof TopLevel::sizeof');
     }
 
     /**
-     * @return ToJSON|float|null
+     * @return Sizeof|float|null
      */
-    public static function sampleToJSON(): ToJSON|float|null {
-        return ToJSON::sample(); /*271:toJSON*/
+    public static function sampleSizeof(): Sizeof|float|null {
+        return Sizeof::sample(); /*283:sizeof*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return TopLevelClass|float|null
+     * @return Stackalloc|float|null
      */
-    public static function fromTopLevel(stdClass|float|null $value): TopLevelClass|float|null {
+    public static function fromStackalloc(stdClass|float|null $value): Stackalloc|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return TopLevelClass::from($value); /*class*/
+            return Stackalloc::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19159,71 +20194,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevel(): stdClass|float|null {
-        if (TopLevel::validateTopLevel($this->topLevel))  {
-            if (is_null($this->topLevel)) {
-                return $this->topLevel; /*null*/
-            } elseif ($this->topLevel instanceof TopLevelClass) {
-                return $this->topLevel->to(); /*class*/
-            } elseif (is_float($this->topLevel) || is_int($this->topLevel)) {
-                return $this->topLevel; /*float*/
+    public function toStackalloc(): stdClass|float|null {
+        if (TopLevel::validateStackalloc($this->stackalloc))  {
+            if (is_null($this->stackalloc)) {
+                return $this->stackalloc; /*null*/
+            } elseif ($this->stackalloc instanceof Stackalloc) {
+                return $this->stackalloc->to(); /*class*/
+            } elseif (is_float($this->stackalloc) || is_int($this->stackalloc)) {
+                return $this->stackalloc; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevel');
+        throw new Exception('never get to this TopLevel::stackalloc');
     }
 
     /**
-     * @param TopLevelClass|float|null
+     * @param Stackalloc|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevel(TopLevelClass|float|null $value): bool {
+    public static function validateStackalloc(Stackalloc|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevel");
+                throw new Exception("Attribute Error:TopLevel::stackalloc");
             }
-        } elseif ($value instanceof TopLevelClass) {
+        } elseif ($value instanceof Stackalloc) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevel");
+                throw new Exception("Attribute Error:TopLevel::stackalloc");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevel");
+            throw new Exception("Attribute Error:TopLevel::stackalloc");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TopLevelClass|float|null
+     * @return Stackalloc|float|null
      */
-    public function getTopLevel(): TopLevelClass|float|null {
-        if (TopLevel::validateTopLevel($this->topLevel))  {
-            return $this->topLevel;
+    public function getStackalloc(): Stackalloc|float|null {
+        if (TopLevel::validateStackalloc($this->stackalloc))  {
+            return $this->stackalloc;
         }
-        throw new Exception('never get to getTopLevel TopLevel::topLevel');
+        throw new Exception('never get to getStackalloc TopLevel::stackalloc');
     }
 
     /**
-     * @return TopLevelClass|float|null
+     * @return Stackalloc|float|null
      */
-    public static function sampleTopLevel(): TopLevelClass|float|null {
-        return TopLevelClass::sample(); /*272:topLevel*/
+    public static function sampleStackalloc(): Stackalloc|float|null {
+        return Stackalloc::sample(); /*284:stackalloc*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Transient|float|null
+     * @return Standards|float|null
      */
-    public static function fromTransient(stdClass|float|null $value): Transient|float|null {
+    public static function fromStandards(stdClass|float|null $value): Standards|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Transient::from($value); /*class*/
+            return Standards::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19235,71 +20270,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTransient(): stdClass|float|null {
-        if (TopLevel::validateTransient($this->transient))  {
-            if (is_null($this->transient)) {
-                return $this->transient; /*null*/
-            } elseif ($this->transient instanceof Transient) {
-                return $this->transient->to(); /*class*/
-            } elseif (is_float($this->transient) || is_int($this->transient)) {
-                return $this->transient; /*float*/
+    public function toStandards(): stdClass|float|null {
+        if (TopLevel::validateStandards($this->standards))  {
+            if (is_null($this->standards)) {
+                return $this->standards; /*null*/
+            } elseif ($this->standards instanceof Standards) {
+                return $this->standards->to(); /*class*/
+            } elseif (is_float($this->standards) || is_int($this->standards)) {
+                return $this->standards; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::transient');
+        throw new Exception('never get to this TopLevel::standards');
     }
 
     /**
-     * @param Transient|float|null
+     * @param Standards|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTransient(Transient|float|null $value): bool {
+    public static function validateStandards(Standards|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::transient");
+                throw new Exception("Attribute Error:TopLevel::standards");
             }
-        } elseif ($value instanceof Transient) {
+        } elseif ($value instanceof Standards) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::transient");
+                throw new Exception("Attribute Error:TopLevel::standards");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::transient");
+            throw new Exception("Attribute Error:TopLevel::standards");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Transient|float|null
+     * @return Standards|float|null
      */
-    public function getTransient(): Transient|float|null {
-        if (TopLevel::validateTransient($this->transient))  {
-            return $this->transient;
+    public function getStandards(): Standards|float|null {
+        if (TopLevel::validateStandards($this->standards))  {
+            return $this->standards;
         }
-        throw new Exception('never get to getTransient TopLevel::transient');
+        throw new Exception('never get to getStandards TopLevel::standards');
     }
 
     /**
-     * @return Transient|float|null
+     * @return Standards|float|null
      */
-    public static function sampleTransient(): Transient|float|null {
-        return Transient::sample(); /*273:transient*/
+    public static function sampleStandards(): Standards|float|null {
+        return Standards::sample(); /*285:standards*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return TrueClass|float|null
+     * @return StaticClass|float|null
      */
-    public static function fromTrue(stdClass|float|null $value): TrueClass|float|null {
+    public static function fromStatic(stdClass|float|null $value): StaticClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return TrueClass::from($value); /*class*/
+            return StaticClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19311,71 +20346,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTrue(): stdClass|float|null {
-        if (TopLevel::validateTrue($this->true))  {
-            if (is_null($this->true)) {
-                return $this->true; /*null*/
-            } elseif ($this->true instanceof TrueClass) {
-                return $this->true->to(); /*class*/
-            } elseif (is_float($this->true) || is_int($this->true)) {
-                return $this->true; /*float*/
+    public function toStatic(): stdClass|float|null {
+        if (TopLevel::validateStatic($this->static))  {
+            if (is_null($this->static)) {
+                return $this->static; /*null*/
+            } elseif ($this->static instanceof StaticClass) {
+                return $this->static->to(); /*class*/
+            } elseif (is_float($this->static) || is_int($this->static)) {
+                return $this->static; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::true');
+        throw new Exception('never get to this TopLevel::static');
     }
 
     /**
-     * @param TrueClass|float|null
+     * @param StaticClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTrue(TrueClass|float|null $value): bool {
+    public static function validateStatic(StaticClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::true");
+                throw new Exception("Attribute Error:TopLevel::static");
             }
-        } elseif ($value instanceof TrueClass) {
+        } elseif ($value instanceof StaticClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::true");
+                throw new Exception("Attribute Error:TopLevel::static");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::true");
+            throw new Exception("Attribute Error:TopLevel::static");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TrueClass|float|null
+     * @return StaticClass|float|null
      */
-    public function getTrue(): TrueClass|float|null {
-        if (TopLevel::validateTrue($this->true))  {
-            return $this->true;
+    public function getStatic(): StaticClass|float|null {
+        if (TopLevel::validateStatic($this->static))  {
+            return $this->static;
         }
-        throw new Exception('never get to getTrue TopLevel::true');
+        throw new Exception('never get to getStatic TopLevel::static');
     }
 
     /**
-     * @return TrueClass|float|null
+     * @return StaticClass|float|null
      */
-    public static function sampleTrue(): TrueClass|float|null {
-        return TrueClass::sample(); /*274:true*/
+    public static function sampleStatic(): StaticClass|float|null {
+        return StaticClass::sample(); /*286:static*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return UnionTrueTrue|float|null
+     * @return StaticAssert|float|null
      */
-    public static function fromTopLevelTrue(stdClass|float|null $value): UnionTrueTrue|float|null {
+    public static function fromStaticAssert(stdClass|float|null $value): StaticAssert|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return UnionTrueTrue::from($value); /*class*/
+            return StaticAssert::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19387,71 +20422,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelTrue(): stdClass|float|null {
-        if (TopLevel::validateTopLevelTrue($this->topLevelTrue))  {
-            if (is_null($this->topLevelTrue)) {
-                return $this->topLevelTrue; /*null*/
-            } elseif ($this->topLevelTrue instanceof UnionTrueTrue) {
-                return $this->topLevelTrue->to(); /*class*/
-            } elseif (is_float($this->topLevelTrue) || is_int($this->topLevelTrue)) {
-                return $this->topLevelTrue; /*float*/
+    public function toStaticAssert(): stdClass|float|null {
+        if (TopLevel::validateStaticAssert($this->staticAssert))  {
+            if (is_null($this->staticAssert)) {
+                return $this->staticAssert; /*null*/
+            } elseif ($this->staticAssert instanceof StaticAssert) {
+                return $this->staticAssert->to(); /*class*/
+            } elseif (is_float($this->staticAssert) || is_int($this->staticAssert)) {
+                return $this->staticAssert; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelTrue');
+        throw new Exception('never get to this TopLevel::staticAssert');
     }
 
     /**
-     * @param UnionTrueTrue|float|null
+     * @param StaticAssert|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelTrue(UnionTrueTrue|float|null $value): bool {
+    public static function validateStaticAssert(StaticAssert|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelTrue");
+                throw new Exception("Attribute Error:TopLevel::staticAssert");
             }
-        } elseif ($value instanceof UnionTrueTrue) {
+        } elseif ($value instanceof StaticAssert) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelTrue");
+                throw new Exception("Attribute Error:TopLevel::staticAssert");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelTrue");
+            throw new Exception("Attribute Error:TopLevel::staticAssert");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return UnionTrueTrue|float|null
+     * @return StaticAssert|float|null
      */
-    public function getTopLevelTrue(): UnionTrueTrue|float|null {
-        if (TopLevel::validateTopLevelTrue($this->topLevelTrue))  {
-            return $this->topLevelTrue;
+    public function getStaticAssert(): StaticAssert|float|null {
+        if (TopLevel::validateStaticAssert($this->staticAssert))  {
+            return $this->staticAssert;
         }
-        throw new Exception('never get to getTopLevelTrue TopLevel::topLevelTrue');
+        throw new Exception('never get to getStaticAssert TopLevel::staticAssert');
     }
 
     /**
-     * @return UnionTrueTrue|float|null
+     * @return StaticAssert|float|null
      */
-    public static function sampleTopLevelTrue(): UnionTrueTrue|float|null {
-        return UnionTrueTrue::sample(); /*275:topLevelTrue*/
+    public static function sampleStaticAssert(): StaticAssert|float|null {
+        return StaticAssert::sample(); /*287:staticAssert*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return TryClass|float|null
+     * @return StaticCast|float|null
      */
-    public static function fromTry(stdClass|float|null $value): TryClass|float|null {
+    public static function fromStaticCast(stdClass|float|null $value): StaticCast|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return TryClass::from($value); /*class*/
+            return StaticCast::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19463,71 +20498,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTry(): stdClass|float|null {
-        if (TopLevel::validateTry($this->try))  {
-            if (is_null($this->try)) {
-                return $this->try; /*null*/
-            } elseif ($this->try instanceof TryClass) {
-                return $this->try->to(); /*class*/
-            } elseif (is_float($this->try) || is_int($this->try)) {
-                return $this->try; /*float*/
+    public function toStaticCast(): stdClass|float|null {
+        if (TopLevel::validateStaticCast($this->staticCast))  {
+            if (is_null($this->staticCast)) {
+                return $this->staticCast; /*null*/
+            } elseif ($this->staticCast instanceof StaticCast) {
+                return $this->staticCast->to(); /*class*/
+            } elseif (is_float($this->staticCast) || is_int($this->staticCast)) {
+                return $this->staticCast; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::try');
+        throw new Exception('never get to this TopLevel::staticCast');
     }
 
     /**
-     * @param TryClass|float|null
+     * @param StaticCast|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTry(TryClass|float|null $value): bool {
+    public static function validateStaticCast(StaticCast|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::try");
+                throw new Exception("Attribute Error:TopLevel::staticCast");
             }
-        } elseif ($value instanceof TryClass) {
+        } elseif ($value instanceof StaticCast) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::try");
+                throw new Exception("Attribute Error:TopLevel::staticCast");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::try");
+            throw new Exception("Attribute Error:TopLevel::staticCast");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TryClass|float|null
+     * @return StaticCast|float|null
      */
-    public function getTry(): TryClass|float|null {
-        if (TopLevel::validateTry($this->try))  {
-            return $this->try;
+    public function getStaticCast(): StaticCast|float|null {
+        if (TopLevel::validateStaticCast($this->staticCast))  {
+            return $this->staticCast;
         }
-        throw new Exception('never get to getTry TopLevel::try');
+        throw new Exception('never get to getStaticCast TopLevel::staticCast');
     }
 
     /**
-     * @return TryClass|float|null
+     * @return StaticCast|float|null
      */
-    public static function sampleTry(): TryClass|float|null {
-        return TryClass::sample(); /*276:try*/
+    public static function sampleStaticCast(): StaticCast|float|null {
+        return StaticCast::sample(); /*288:staticCast*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Type|float|null
+     * @return StdDeserializer|float|null
      */
-    public static function fromType(stdClass|float|null $value): Type|float|null {
+    public static function fromStdDeserializer(stdClass|float|null $value): StdDeserializer|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Type::from($value); /*class*/
+            return StdDeserializer::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19539,71 +20574,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toType(): stdClass|float|null {
-        if (TopLevel::validateType($this->type))  {
-            if (is_null($this->type)) {
-                return $this->type; /*null*/
-            } elseif ($this->type instanceof Type) {
-                return $this->type->to(); /*class*/
-            } elseif (is_float($this->type) || is_int($this->type)) {
-                return $this->type; /*float*/
+    public function toStdDeserializer(): stdClass|float|null {
+        if (TopLevel::validateStdDeserializer($this->stdDeserializer))  {
+            if (is_null($this->stdDeserializer)) {
+                return $this->stdDeserializer; /*null*/
+            } elseif ($this->stdDeserializer instanceof StdDeserializer) {
+                return $this->stdDeserializer->to(); /*class*/
+            } elseif (is_float($this->stdDeserializer) || is_int($this->stdDeserializer)) {
+                return $this->stdDeserializer; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::type');
+        throw new Exception('never get to this TopLevel::stdDeserializer');
     }
 
     /**
-     * @param Type|float|null
+     * @param StdDeserializer|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateType(Type|float|null $value): bool {
+    public static function validateStdDeserializer(StdDeserializer|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::type");
+                throw new Exception("Attribute Error:TopLevel::stdDeserializer");
             }
-        } elseif ($value instanceof Type) {
+        } elseif ($value instanceof StdDeserializer) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::type");
+                throw new Exception("Attribute Error:TopLevel::stdDeserializer");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::type");
+            throw new Exception("Attribute Error:TopLevel::stdDeserializer");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Type|float|null
+     * @return StdDeserializer|float|null
      */
-    public function getType(): Type|float|null {
-        if (TopLevel::validateType($this->type))  {
-            return $this->type;
+    public function getStdDeserializer(): StdDeserializer|float|null {
+        if (TopLevel::validateStdDeserializer($this->stdDeserializer))  {
+            return $this->stdDeserializer;
         }
-        throw new Exception('never get to getType TopLevel::type');
+        throw new Exception('never get to getStdDeserializer TopLevel::stdDeserializer');
     }
 
     /**
-     * @return Type|float|null
+     * @return StdDeserializer|float|null
      */
-    public static function sampleType(): Type|float|null {
-        return Type::sample(); /*277:type*/
+    public static function sampleStdDeserializer(): StdDeserializer|float|null {
+        return StdDeserializer::sample(); /*289:stdDeserializer*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return TypeClass|float|null
+     * @return StdSerializer|float|null
      */
-    public static function fromTopLevelType(stdClass|float|null $value): TypeClass|float|null {
+    public static function fromStdSerializer(stdClass|float|null $value): StdSerializer|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return TypeClass::from($value); /*class*/
+            return StdSerializer::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19615,71 +20650,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTopLevelType(): stdClass|float|null {
-        if (TopLevel::validateTopLevelType($this->topLevelType))  {
-            if (is_null($this->topLevelType)) {
-                return $this->topLevelType; /*null*/
-            } elseif ($this->topLevelType instanceof TypeClass) {
-                return $this->topLevelType->to(); /*class*/
-            } elseif (is_float($this->topLevelType) || is_int($this->topLevelType)) {
-                return $this->topLevelType; /*float*/
+    public function toStdSerializer(): stdClass|float|null {
+        if (TopLevel::validateStdSerializer($this->stdSerializer))  {
+            if (is_null($this->stdSerializer)) {
+                return $this->stdSerializer; /*null*/
+            } elseif ($this->stdSerializer instanceof StdSerializer) {
+                return $this->stdSerializer->to(); /*class*/
+            } elseif (is_float($this->stdSerializer) || is_int($this->stdSerializer)) {
+                return $this->stdSerializer; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::topLevelType');
+        throw new Exception('never get to this TopLevel::stdSerializer');
     }
 
     /**
-     * @param TypeClass|float|null
+     * @param StdSerializer|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTopLevelType(TypeClass|float|null $value): bool {
+    public static function validateStdSerializer(StdSerializer|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelType");
+                throw new Exception("Attribute Error:TopLevel::stdSerializer");
             }
-        } elseif ($value instanceof TypeClass) {
+        } elseif ($value instanceof StdSerializer) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::topLevelType");
+                throw new Exception("Attribute Error:TopLevel::stdSerializer");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::topLevelType");
+            throw new Exception("Attribute Error:TopLevel::stdSerializer");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return TypeClass|float|null
+     * @return StdSerializer|float|null
      */
-    public function getTopLevelType(): TypeClass|float|null {
-        if (TopLevel::validateTopLevelType($this->topLevelType))  {
-            return $this->topLevelType;
+    public function getStdSerializer(): StdSerializer|float|null {
+        if (TopLevel::validateStdSerializer($this->stdSerializer))  {
+            return $this->stdSerializer;
         }
-        throw new Exception('never get to getTopLevelType TopLevel::topLevelType');
+        throw new Exception('never get to getStdSerializer TopLevel::stdSerializer');
     }
 
     /**
-     * @return TypeClass|float|null
+     * @return StdSerializer|float|null
      */
-    public static function sampleTopLevelType(): TypeClass|float|null {
-        return TypeClass::sample(); /*278:topLevelType*/
+    public static function sampleStdSerializer(): StdSerializer|float|null {
+        return StdSerializer::sample(); /*290:stdSerializer*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Typealias|float|null
+     * @return Strictfp|float|null
      */
-    public static function fromTypealias(stdClass|float|null $value): Typealias|float|null {
+    public static function fromStrictfp(stdClass|float|null $value): Strictfp|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Typealias::from($value); /*class*/
+            return Strictfp::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19691,71 +20726,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTypealias(): stdClass|float|null {
-        if (TopLevel::validateTypealias($this->typealias))  {
-            if (is_null($this->typealias)) {
-                return $this->typealias; /*null*/
-            } elseif ($this->typealias instanceof Typealias) {
-                return $this->typealias->to(); /*class*/
-            } elseif (is_float($this->typealias) || is_int($this->typealias)) {
-                return $this->typealias; /*float*/
+    public function toStrictfp(): stdClass|float|null {
+        if (TopLevel::validateStrictfp($this->strictfp))  {
+            if (is_null($this->strictfp)) {
+                return $this->strictfp; /*null*/
+            } elseif ($this->strictfp instanceof Strictfp) {
+                return $this->strictfp->to(); /*class*/
+            } elseif (is_float($this->strictfp) || is_int($this->strictfp)) {
+                return $this->strictfp; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::typealias');
+        throw new Exception('never get to this TopLevel::strictfp');
     }
 
     /**
-     * @param Typealias|float|null
+     * @param Strictfp|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTypealias(Typealias|float|null $value): bool {
+    public static function validateStrictfp(Strictfp|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::typealias");
+                throw new Exception("Attribute Error:TopLevel::strictfp");
             }
-        } elseif ($value instanceof Typealias) {
+        } elseif ($value instanceof Strictfp) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::typealias");
+                throw new Exception("Attribute Error:TopLevel::strictfp");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::typealias");
+            throw new Exception("Attribute Error:TopLevel::strictfp");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typealias|float|null
+     * @return Strictfp|float|null
      */
-    public function getTypealias(): Typealias|float|null {
-        if (TopLevel::validateTypealias($this->typealias))  {
-            return $this->typealias;
+    public function getStrictfp(): Strictfp|float|null {
+        if (TopLevel::validateStrictfp($this->strictfp))  {
+            return $this->strictfp;
         }
-        throw new Exception('never get to getTypealias TopLevel::typealias');
+        throw new Exception('never get to getStrictfp TopLevel::strictfp');
     }
 
     /**
-     * @return Typealias|float|null
+     * @return Strictfp|float|null
      */
-    public static function sampleTypealias(): Typealias|float|null {
-        return Typealias::sample(); /*279:typealias*/
+    public static function sampleStrictfp(): Strictfp|float|null {
+        return Strictfp::sample(); /*291:strictfp*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Typedef|float|null
+     * @return StringClass|float|null
      */
-    public static function fromTypedef(stdClass|float|null $value): Typedef|float|null {
+    public static function fromString(stdClass|float|null $value): StringClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Typedef::from($value); /*class*/
+            return StringClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19767,71 +20802,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTypedef(): stdClass|float|null {
-        if (TopLevel::validateTypedef($this->typedef))  {
-            if (is_null($this->typedef)) {
-                return $this->typedef; /*null*/
-            } elseif ($this->typedef instanceof Typedef) {
-                return $this->typedef->to(); /*class*/
-            } elseif (is_float($this->typedef) || is_int($this->typedef)) {
-                return $this->typedef; /*float*/
+    public function purpleToString(): stdClass|float|null {
+        if (TopLevel::validateString($this->string))  {
+            if (is_null($this->string)) {
+                return $this->string; /*null*/
+            } elseif ($this->string instanceof StringClass) {
+                return $this->string->to(); /*class*/
+            } elseif (is_float($this->string) || is_int($this->string)) {
+                return $this->string; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::typedef');
+        throw new Exception('never get to this TopLevel::string');
     }
 
     /**
-     * @param Typedef|float|null
+     * @param StringClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTypedef(Typedef|float|null $value): bool {
+    public static function validateString(StringClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::typedef");
+                throw new Exception("Attribute Error:TopLevel::string");
             }
-        } elseif ($value instanceof Typedef) {
+        } elseif ($value instanceof StringClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::typedef");
+                throw new Exception("Attribute Error:TopLevel::string");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::typedef");
+            throw new Exception("Attribute Error:TopLevel::string");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typedef|float|null
+     * @return StringClass|float|null
      */
-    public function getTypedef(): Typedef|float|null {
-        if (TopLevel::validateTypedef($this->typedef))  {
-            return $this->typedef;
+    public function getString(): StringClass|float|null {
+        if (TopLevel::validateString($this->string))  {
+            return $this->string;
         }
-        throw new Exception('never get to getTypedef TopLevel::typedef');
+        throw new Exception('never get to getString TopLevel::string');
     }
 
     /**
-     * @return Typedef|float|null
+     * @return StringClass|float|null
      */
-    public static function sampleTypedef(): Typedef|float|null {
-        return Typedef::sample(); /*280:typedef*/
+    public static function sampleString(): StringClass|float|null {
+        return StringClass::sample(); /*292:string*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Typeid|float|null
+     * @return Struct|float|null
      */
-    public static function fromTypeid(stdClass|float|null $value): Typeid|float|null {
+    public static function fromStruct(stdClass|float|null $value): Struct|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Typeid::from($value); /*class*/
+            return Struct::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19843,71 +20878,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTypeid(): stdClass|float|null {
-        if (TopLevel::validateTypeid($this->typeid))  {
-            if (is_null($this->typeid)) {
-                return $this->typeid; /*null*/
-            } elseif ($this->typeid instanceof Typeid) {
-                return $this->typeid->to(); /*class*/
-            } elseif (is_float($this->typeid) || is_int($this->typeid)) {
-                return $this->typeid; /*float*/
+    public function toStruct(): stdClass|float|null {
+        if (TopLevel::validateStruct($this->struct))  {
+            if (is_null($this->struct)) {
+                return $this->struct; /*null*/
+            } elseif ($this->struct instanceof Struct) {
+                return $this->struct->to(); /*class*/
+            } elseif (is_float($this->struct) || is_int($this->struct)) {
+                return $this->struct; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::typeid');
+        throw new Exception('never get to this TopLevel::struct');
     }
 
     /**
-     * @param Typeid|float|null
+     * @param Struct|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeid(Typeid|float|null $value): bool {
+    public static function validateStruct(Struct|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::typeid");
+                throw new Exception("Attribute Error:TopLevel::struct");
             }
-        } elseif ($value instanceof Typeid) {
+        } elseif ($value instanceof Struct) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::typeid");
+                throw new Exception("Attribute Error:TopLevel::struct");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::typeid");
+            throw new Exception("Attribute Error:TopLevel::struct");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typeid|float|null
+     * @return Struct|float|null
      */
-    public function getTypeid(): Typeid|float|null {
-        if (TopLevel::validateTypeid($this->typeid))  {
-            return $this->typeid;
+    public function getStruct(): Struct|float|null {
+        if (TopLevel::validateStruct($this->struct))  {
+            return $this->struct;
         }
-        throw new Exception('never get to getTypeid TopLevel::typeid');
+        throw new Exception('never get to getStruct TopLevel::struct');
     }
 
     /**
-     * @return Typeid|float|null
+     * @return Struct|float|null
      */
-    public static function sampleTypeid(): Typeid|float|null {
-        return Typeid::sample(); /*281:typeid*/
+    public static function sampleStruct(): Struct|float|null {
+        return Struct::sample(); /*293:struct*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Typename|float|null
+     * @return Subscript|float|null
      */
-    public static function fromTypename(stdClass|float|null $value): Typename|float|null {
+    public static function fromSubscript(stdClass|float|null $value): Subscript|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Typename::from($value); /*class*/
+            return Subscript::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19919,71 +20954,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTypename(): stdClass|float|null {
-        if (TopLevel::validateTypename($this->typename))  {
-            if (is_null($this->typename)) {
-                return $this->typename; /*null*/
-            } elseif ($this->typename instanceof Typename) {
-                return $this->typename->to(); /*class*/
-            } elseif (is_float($this->typename) || is_int($this->typename)) {
-                return $this->typename; /*float*/
+    public function toSubscript(): stdClass|float|null {
+        if (TopLevel::validateSubscript($this->subscript))  {
+            if (is_null($this->subscript)) {
+                return $this->subscript; /*null*/
+            } elseif ($this->subscript instanceof Subscript) {
+                return $this->subscript->to(); /*class*/
+            } elseif (is_float($this->subscript) || is_int($this->subscript)) {
+                return $this->subscript; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::typename');
+        throw new Exception('never get to this TopLevel::subscript');
     }
 
     /**
-     * @param Typename|float|null
+     * @param Subscript|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTypename(Typename|float|null $value): bool {
+    public static function validateSubscript(Subscript|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::typename");
+                throw new Exception("Attribute Error:TopLevel::subscript");
             }
-        } elseif ($value instanceof Typename) {
+        } elseif ($value instanceof Subscript) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::typename");
+                throw new Exception("Attribute Error:TopLevel::subscript");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::typename");
+            throw new Exception("Attribute Error:TopLevel::subscript");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typename|float|null
+     * @return Subscript|float|null
      */
-    public function getTypename(): Typename|float|null {
-        if (TopLevel::validateTypename($this->typename))  {
-            return $this->typename;
+    public function getSubscript(): Subscript|float|null {
+        if (TopLevel::validateSubscript($this->subscript))  {
+            return $this->subscript;
         }
-        throw new Exception('never get to getTypename TopLevel::typename');
+        throw new Exception('never get to getSubscript TopLevel::subscript');
     }
 
     /**
-     * @return Typename|float|null
+     * @return Subscript|float|null
      */
-    public static function sampleTypename(): Typename|float|null {
-        return Typename::sample(); /*282:typename*/
+    public static function sampleSubscript(): Subscript|float|null {
+        return Subscript::sample(); /*294:subscript*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Typeof|float|null
+     * @return Super|float|null
      */
-    public static function fromTypeof(stdClass|float|null $value): Typeof|float|null {
+    public static function fromSuper(stdClass|float|null $value): Super|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Typeof::from($value); /*class*/
+            return Super::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -19995,71 +21030,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toTypeof(): stdClass|float|null {
-        if (TopLevel::validateTypeof($this->typeof))  {
-            if (is_null($this->typeof)) {
-                return $this->typeof; /*null*/
-            } elseif ($this->typeof instanceof Typeof) {
-                return $this->typeof->to(); /*class*/
-            } elseif (is_float($this->typeof) || is_int($this->typeof)) {
-                return $this->typeof; /*float*/
+    public function toSuper(): stdClass|float|null {
+        if (TopLevel::validateSuper($this->super))  {
+            if (is_null($this->super)) {
+                return $this->super; /*null*/
+            } elseif ($this->super instanceof Super) {
+                return $this->super->to(); /*class*/
+            } elseif (is_float($this->super) || is_int($this->super)) {
+                return $this->super; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::typeof');
+        throw new Exception('never get to this TopLevel::super');
     }
 
     /**
-     * @param Typeof|float|null
+     * @param Super|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateTypeof(Typeof|float|null $value): bool {
+    public static function validateSuper(Super|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::typeof");
+                throw new Exception("Attribute Error:TopLevel::super");
             }
-        } elseif ($value instanceof Typeof) {
+        } elseif ($value instanceof Super) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::typeof");
+                throw new Exception("Attribute Error:TopLevel::super");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::typeof");
+            throw new Exception("Attribute Error:TopLevel::super");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Typeof|float|null
+     * @return Super|float|null
      */
-    public function getTypeof(): Typeof|float|null {
-        if (TopLevel::validateTypeof($this->typeof))  {
-            return $this->typeof;
+    public function getSuper(): Super|float|null {
+        if (TopLevel::validateSuper($this->super))  {
+            return $this->super;
         }
-        throw new Exception('never get to getTypeof TopLevel::typeof');
+        throw new Exception('never get to getSuper TopLevel::super');
     }
 
     /**
-     * @return Typeof|float|null
+     * @return Super|float|null
      */
-    public static function sampleTypeof(): Typeof|float|null {
-        return Typeof::sample(); /*283:typeof*/
+    public static function sampleSuper(): Super|float|null {
+        return Super::sample(); /*295:super*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Uint|float|null
+     * @return SwitchClass|float|null
      */
-    public static function fromUint(stdClass|float|null $value): Uint|float|null {
+    public static function fromSwitch(stdClass|float|null $value): SwitchClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Uint::from($value); /*class*/
+            return SwitchClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20071,71 +21106,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUint(): stdClass|float|null {
-        if (TopLevel::validateUint($this->uint))  {
-            if (is_null($this->uint)) {
-                return $this->uint; /*null*/
-            } elseif ($this->uint instanceof Uint) {
-                return $this->uint->to(); /*class*/
-            } elseif (is_float($this->uint) || is_int($this->uint)) {
-                return $this->uint; /*float*/
+    public function toSwitch(): stdClass|float|null {
+        if (TopLevel::validateSwitch($this->switch))  {
+            if (is_null($this->switch)) {
+                return $this->switch; /*null*/
+            } elseif ($this->switch instanceof SwitchClass) {
+                return $this->switch->to(); /*class*/
+            } elseif (is_float($this->switch) || is_int($this->switch)) {
+                return $this->switch; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::uint');
+        throw new Exception('never get to this TopLevel::switch');
     }
 
     /**
-     * @param Uint|float|null
+     * @param SwitchClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUint(Uint|float|null $value): bool {
+    public static function validateSwitch(SwitchClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::uint");
+                throw new Exception("Attribute Error:TopLevel::switch");
             }
-        } elseif ($value instanceof Uint) {
+        } elseif ($value instanceof SwitchClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::uint");
+                throw new Exception("Attribute Error:TopLevel::switch");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::uint");
+            throw new Exception("Attribute Error:TopLevel::switch");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Uint|float|null
+     * @return SwitchClass|float|null
      */
-    public function getUint(): Uint|float|null {
-        if (TopLevel::validateUint($this->uint))  {
-            return $this->uint;
+    public function getSwitch(): SwitchClass|float|null {
+        if (TopLevel::validateSwitch($this->switch))  {
+            return $this->switch;
         }
-        throw new Exception('never get to getUint TopLevel::uint');
+        throw new Exception('never get to getSwitch TopLevel::switch');
     }
 
     /**
-     * @return Uint|float|null
+     * @return SwitchClass|float|null
      */
-    public static function sampleUint(): Uint|float|null {
-        return Uint::sample(); /*284:uint*/
+    public static function sampleSwitch(): SwitchClass|float|null {
+        return SwitchClass::sample(); /*296:switch*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Ulong|float|null
+     * @return Symbol|float|null
      */
-    public static function fromUlong(stdClass|float|null $value): Ulong|float|null {
+    public static function fromSymbol(stdClass|float|null $value): Symbol|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Ulong::from($value); /*class*/
+            return Symbol::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20147,71 +21182,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUlong(): stdClass|float|null {
-        if (TopLevel::validateUlong($this->ulong))  {
-            if (is_null($this->ulong)) {
-                return $this->ulong; /*null*/
-            } elseif ($this->ulong instanceof Ulong) {
-                return $this->ulong->to(); /*class*/
-            } elseif (is_float($this->ulong) || is_int($this->ulong)) {
-                return $this->ulong; /*float*/
+    public function toSymbol(): stdClass|float|null {
+        if (TopLevel::validateSymbol($this->symbol))  {
+            if (is_null($this->symbol)) {
+                return $this->symbol; /*null*/
+            } elseif ($this->symbol instanceof Symbol) {
+                return $this->symbol->to(); /*class*/
+            } elseif (is_float($this->symbol) || is_int($this->symbol)) {
+                return $this->symbol; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::ulong');
+        throw new Exception('never get to this TopLevel::symbol');
     }
 
     /**
-     * @param Ulong|float|null
+     * @param Symbol|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUlong(Ulong|float|null $value): bool {
+    public static function validateSymbol(Symbol|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::ulong");
+                throw new Exception("Attribute Error:TopLevel::symbol");
             }
-        } elseif ($value instanceof Ulong) {
+        } elseif ($value instanceof Symbol) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::ulong");
+                throw new Exception("Attribute Error:TopLevel::symbol");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::ulong");
+            throw new Exception("Attribute Error:TopLevel::symbol");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Ulong|float|null
+     * @return Symbol|float|null
      */
-    public function getUlong(): Ulong|float|null {
-        if (TopLevel::validateUlong($this->ulong))  {
-            return $this->ulong;
+    public function getSymbol(): Symbol|float|null {
+        if (TopLevel::validateSymbol($this->symbol))  {
+            return $this->symbol;
         }
-        throw new Exception('never get to getUlong TopLevel::ulong');
+        throw new Exception('never get to getSymbol TopLevel::symbol');
     }
 
     /**
-     * @return Ulong|float|null
+     * @return Symbol|float|null
      */
-    public static function sampleUlong(): Ulong|float|null {
-        return Ulong::sample(); /*285:ulong*/
+    public static function sampleSymbol(): Symbol|float|null {
+        return Symbol::sample(); /*297:symbol*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Unchecked|float|null
+     * @return Synchronized|float|null
      */
-    public static function fromUnchecked(stdClass|float|null $value): Unchecked|float|null {
+    public static function fromSynchronized(stdClass|float|null $value): Synchronized|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Unchecked::from($value); /*class*/
+            return Synchronized::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20223,71 +21258,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUnchecked(): stdClass|float|null {
-        if (TopLevel::validateUnchecked($this->unchecked))  {
-            if (is_null($this->unchecked)) {
-                return $this->unchecked; /*null*/
-            } elseif ($this->unchecked instanceof Unchecked) {
-                return $this->unchecked->to(); /*class*/
-            } elseif (is_float($this->unchecked) || is_int($this->unchecked)) {
-                return $this->unchecked; /*float*/
+    public function toSynchronized(): stdClass|float|null {
+        if (TopLevel::validateSynchronized($this->synchronized))  {
+            if (is_null($this->synchronized)) {
+                return $this->synchronized; /*null*/
+            } elseif ($this->synchronized instanceof Synchronized) {
+                return $this->synchronized->to(); /*class*/
+            } elseif (is_float($this->synchronized) || is_int($this->synchronized)) {
+                return $this->synchronized; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::unchecked');
+        throw new Exception('never get to this TopLevel::synchronized');
     }
 
     /**
-     * @param Unchecked|float|null
+     * @param Synchronized|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUnchecked(Unchecked|float|null $value): bool {
+    public static function validateSynchronized(Synchronized|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::unchecked");
+                throw new Exception("Attribute Error:TopLevel::synchronized");
             }
-        } elseif ($value instanceof Unchecked) {
+        } elseif ($value instanceof Synchronized) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::unchecked");
+                throw new Exception("Attribute Error:TopLevel::synchronized");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::unchecked");
+            throw new Exception("Attribute Error:TopLevel::synchronized");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Unchecked|float|null
+     * @return Synchronized|float|null
      */
-    public function getUnchecked(): Unchecked|float|null {
-        if (TopLevel::validateUnchecked($this->unchecked))  {
-            return $this->unchecked;
+    public function getSynchronized(): Synchronized|float|null {
+        if (TopLevel::validateSynchronized($this->synchronized))  {
+            return $this->synchronized;
         }
-        throw new Exception('never get to getUnchecked TopLevel::unchecked');
+        throw new Exception('never get to getSynchronized TopLevel::synchronized');
     }
 
     /**
-     * @return Unchecked|float|null
+     * @return Synchronized|float|null
      */
-    public static function sampleUnchecked(): Unchecked|float|null {
-        return Unchecked::sample(); /*286:unchecked*/
+    public static function sampleSynchronized(): Synchronized|float|null {
+        return Synchronized::sample(); /*298:synchronized*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Undefined|float|null
+     * @return System|float|null
      */
-    public static function fromUndefined(stdClass|float|null $value): Undefined|float|null {
+    public static function fromSystem(stdClass|float|null $value): System|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Undefined::from($value); /*class*/
+            return System::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20299,71 +21334,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUndefined(): stdClass|float|null {
-        if (TopLevel::validateUndefined($this->undefined))  {
-            if (is_null($this->undefined)) {
-                return $this->undefined; /*null*/
-            } elseif ($this->undefined instanceof Undefined) {
-                return $this->undefined->to(); /*class*/
-            } elseif (is_float($this->undefined) || is_int($this->undefined)) {
-                return $this->undefined; /*float*/
+    public function toSystem(): stdClass|float|null {
+        if (TopLevel::validateSystem($this->system))  {
+            if (is_null($this->system)) {
+                return $this->system; /*null*/
+            } elseif ($this->system instanceof System) {
+                return $this->system->to(); /*class*/
+            } elseif (is_float($this->system) || is_int($this->system)) {
+                return $this->system; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::undefined');
+        throw new Exception('never get to this TopLevel::system');
     }
 
     /**
-     * @param Undefined|float|null
+     * @param System|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUndefined(Undefined|float|null $value): bool {
+    public static function validateSystem(System|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::undefined");
+                throw new Exception("Attribute Error:TopLevel::system");
             }
-        } elseif ($value instanceof Undefined) {
+        } elseif ($value instanceof System) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::undefined");
+                throw new Exception("Attribute Error:TopLevel::system");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::undefined");
+            throw new Exception("Attribute Error:TopLevel::system");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Undefined|float|null
+     * @return System|float|null
      */
-    public function getUndefined(): Undefined|float|null {
-        if (TopLevel::validateUndefined($this->undefined))  {
-            return $this->undefined;
+    public function getSystem(): System|float|null {
+        if (TopLevel::validateSystem($this->system))  {
+            return $this->system;
         }
-        throw new Exception('never get to getUndefined TopLevel::undefined');
+        throw new Exception('never get to getSystem TopLevel::system');
     }
 
     /**
-     * @return Undefined|float|null
+     * @return System|float|null
      */
-    public static function sampleUndefined(): Undefined|float|null {
-        return Undefined::sample(); /*287:undefined*/
+    public static function sampleSystem(): System|float|null {
+        return System::sample(); /*299:system*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return UnionClass|float|null
+     * @return Template|float|null
      */
-    public static function fromUnion(stdClass|float|null $value): UnionClass|float|null {
+    public static function fromTemplate(stdClass|float|null $value): Template|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return UnionClass::from($value); /*class*/
+            return Template::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20375,71 +21410,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUnion(): stdClass|float|null {
-        if (TopLevel::validateUnion($this->union))  {
-            if (is_null($this->union)) {
-                return $this->union; /*null*/
-            } elseif ($this->union instanceof UnionClass) {
-                return $this->union->to(); /*class*/
-            } elseif (is_float($this->union) || is_int($this->union)) {
-                return $this->union; /*float*/
+    public function toTemplate(): stdClass|float|null {
+        if (TopLevel::validateTemplate($this->template))  {
+            if (is_null($this->template)) {
+                return $this->template; /*null*/
+            } elseif ($this->template instanceof Template) {
+                return $this->template->to(); /*class*/
+            } elseif (is_float($this->template) || is_int($this->template)) {
+                return $this->template; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::union');
+        throw new Exception('never get to this TopLevel::template');
     }
 
     /**
-     * @param UnionClass|float|null
+     * @param Template|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUnion(UnionClass|float|null $value): bool {
+    public static function validateTemplate(Template|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::union");
+                throw new Exception("Attribute Error:TopLevel::template");
             }
-        } elseif ($value instanceof UnionClass) {
+        } elseif ($value instanceof Template) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::union");
+                throw new Exception("Attribute Error:TopLevel::template");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::union");
+            throw new Exception("Attribute Error:TopLevel::template");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return UnionClass|float|null
+     * @return Template|float|null
      */
-    public function getUnion(): UnionClass|float|null {
-        if (TopLevel::validateUnion($this->union))  {
-            return $this->union;
+    public function getTemplate(): Template|float|null {
+        if (TopLevel::validateTemplate($this->template))  {
+            return $this->template;
         }
-        throw new Exception('never get to getUnion TopLevel::union');
+        throw new Exception('never get to getTemplate TopLevel::template');
     }
 
     /**
-     * @return UnionClass|float|null
+     * @return Template|float|null
      */
-    public static function sampleUnion(): UnionClass|float|null {
-        return UnionClass::sample(); /*288:union*/
+    public static function sampleTemplate(): Template|float|null {
+        return Template::sample(); /*300:template*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Unowned|float|null
+     * @return Then|float|null
      */
-    public static function fromUnowned(stdClass|float|null $value): Unowned|float|null {
+    public static function fromThen(stdClass|float|null $value): Then|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Unowned::from($value); /*class*/
+            return Then::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20451,71 +21486,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUnowned(): stdClass|float|null {
-        if (TopLevel::validateUnowned($this->unowned))  {
-            if (is_null($this->unowned)) {
-                return $this->unowned; /*null*/
-            } elseif ($this->unowned instanceof Unowned) {
-                return $this->unowned->to(); /*class*/
-            } elseif (is_float($this->unowned) || is_int($this->unowned)) {
-                return $this->unowned; /*float*/
+    public function toThen(): stdClass|float|null {
+        if (TopLevel::validateThen($this->then))  {
+            if (is_null($this->then)) {
+                return $this->then; /*null*/
+            } elseif ($this->then instanceof Then) {
+                return $this->then->to(); /*class*/
+            } elseif (is_float($this->then) || is_int($this->then)) {
+                return $this->then; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::unowned');
+        throw new Exception('never get to this TopLevel::then');
     }
 
     /**
-     * @param Unowned|float|null
+     * @param Then|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUnowned(Unowned|float|null $value): bool {
+    public static function validateThen(Then|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::unowned");
+                throw new Exception("Attribute Error:TopLevel::then");
             }
-        } elseif ($value instanceof Unowned) {
+        } elseif ($value instanceof Then) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::unowned");
+                throw new Exception("Attribute Error:TopLevel::then");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::unowned");
+            throw new Exception("Attribute Error:TopLevel::then");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Unowned|float|null
+     * @return Then|float|null
      */
-    public function getUnowned(): Unowned|float|null {
-        if (TopLevel::validateUnowned($this->unowned))  {
-            return $this->unowned;
+    public function getThen(): Then|float|null {
+        if (TopLevel::validateThen($this->then))  {
+            return $this->then;
         }
-        throw new Exception('never get to getUnowned TopLevel::unowned');
+        throw new Exception('never get to getThen TopLevel::then');
     }
 
     /**
-     * @return Unowned|float|null
+     * @return Then|float|null
      */
-    public static function sampleUnowned(): Unowned|float|null {
-        return Unowned::sample(); /*289:unowned*/
+    public static function sampleThen(): Then|float|null {
+        return Then::sample(); /*301:then*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Unsafe|float|null
+     * @return This|float|null
      */
-    public static function fromUnsafe(stdClass|float|null $value): Unsafe|float|null {
+    public static function fromTopLevelThis(stdClass|float|null $value): This|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Unsafe::from($value); /*class*/
+            return This::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20527,71 +21562,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUnsafe(): stdClass|float|null {
-        if (TopLevel::validateUnsafe($this->unsafe))  {
-            if (is_null($this->unsafe)) {
-                return $this->unsafe; /*null*/
-            } elseif ($this->unsafe instanceof Unsafe) {
-                return $this->unsafe->to(); /*class*/
-            } elseif (is_float($this->unsafe) || is_int($this->unsafe)) {
-                return $this->unsafe; /*float*/
+    public function toTopLevelThis(): stdClass|float|null {
+        if (TopLevel::validateTopLevelThis($this->topLevelThis))  {
+            if (is_null($this->topLevelThis)) {
+                return $this->topLevelThis; /*null*/
+            } elseif ($this->topLevelThis instanceof This) {
+                return $this->topLevelThis->to(); /*class*/
+            } elseif (is_float($this->topLevelThis) || is_int($this->topLevelThis)) {
+                return $this->topLevelThis; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::unsafe');
+        throw new Exception('never get to this TopLevel::topLevelThis');
     }
 
     /**
-     * @param Unsafe|float|null
+     * @param This|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUnsafe(Unsafe|float|null $value): bool {
+    public static function validateTopLevelThis(This|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::unsafe");
+                throw new Exception("Attribute Error:TopLevel::topLevelThis");
             }
-        } elseif ($value instanceof Unsafe) {
+        } elseif ($value instanceof This) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::unsafe");
+                throw new Exception("Attribute Error:TopLevel::topLevelThis");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::unsafe");
+            throw new Exception("Attribute Error:TopLevel::topLevelThis");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Unsafe|float|null
+     * @return This|float|null
      */
-    public function getUnsafe(): Unsafe|float|null {
-        if (TopLevel::validateUnsafe($this->unsafe))  {
-            return $this->unsafe;
+    public function getTopLevelThis(): This|float|null {
+        if (TopLevel::validateTopLevelThis($this->topLevelThis))  {
+            return $this->topLevelThis;
         }
-        throw new Exception('never get to getUnsafe TopLevel::unsafe');
+        throw new Exception('never get to getTopLevelThis TopLevel::topLevelThis');
     }
 
     /**
-     * @return Unsafe|float|null
+     * @return This|float|null
      */
-    public static function sampleUnsafe(): Unsafe|float|null {
-        return Unsafe::sample(); /*290:unsafe*/
+    public static function sampleTopLevelThis(): This|float|null {
+        return This::sample(); /*302:topLevelThis*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Unsigned|float|null
+     * @return ThreadLocal|float|null
      */
-    public static function fromUnsigned(stdClass|float|null $value): Unsigned|float|null {
+    public static function fromThreadLocal(stdClass|float|null $value): ThreadLocal|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Unsigned::from($value); /*class*/
+            return ThreadLocal::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20603,71 +21638,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUnsigned(): stdClass|float|null {
-        if (TopLevel::validateUnsigned($this->unsigned))  {
-            if (is_null($this->unsigned)) {
-                return $this->unsigned; /*null*/
-            } elseif ($this->unsigned instanceof Unsigned) {
-                return $this->unsigned->to(); /*class*/
-            } elseif (is_float($this->unsigned) || is_int($this->unsigned)) {
-                return $this->unsigned; /*float*/
+    public function toThreadLocal(): stdClass|float|null {
+        if (TopLevel::validateThreadLocal($this->threadLocal))  {
+            if (is_null($this->threadLocal)) {
+                return $this->threadLocal; /*null*/
+            } elseif ($this->threadLocal instanceof ThreadLocal) {
+                return $this->threadLocal->to(); /*class*/
+            } elseif (is_float($this->threadLocal) || is_int($this->threadLocal)) {
+                return $this->threadLocal; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::unsigned');
+        throw new Exception('never get to this TopLevel::threadLocal');
     }
 
     /**
-     * @param Unsigned|float|null
+     * @param ThreadLocal|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUnsigned(Unsigned|float|null $value): bool {
+    public static function validateThreadLocal(ThreadLocal|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::unsigned");
+                throw new Exception("Attribute Error:TopLevel::threadLocal");
             }
-        } elseif ($value instanceof Unsigned) {
+        } elseif ($value instanceof ThreadLocal) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::unsigned");
+                throw new Exception("Attribute Error:TopLevel::threadLocal");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::unsigned");
+            throw new Exception("Attribute Error:TopLevel::threadLocal");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Unsigned|float|null
+     * @return ThreadLocal|float|null
      */
-    public function getUnsigned(): Unsigned|float|null {
-        if (TopLevel::validateUnsigned($this->unsigned))  {
-            return $this->unsigned;
+    public function getThreadLocal(): ThreadLocal|float|null {
+        if (TopLevel::validateThreadLocal($this->threadLocal))  {
+            return $this->threadLocal;
         }
-        throw new Exception('never get to getUnsigned TopLevel::unsigned');
+        throw new Exception('never get to getThreadLocal TopLevel::threadLocal');
     }
 
     /**
-     * @return Unsigned|float|null
+     * @return ThreadLocal|float|null
      */
-    public static function sampleUnsigned(): Unsigned|float|null {
-        return Unsigned::sample(); /*291:unsigned*/
+    public static function sampleThreadLocal(): ThreadLocal|float|null {
+        return ThreadLocal::sample(); /*303:threadLocal*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Ushort|float|null
+     * @return ThrowClass|float|null
      */
-    public static function fromUshort(stdClass|float|null $value): Ushort|float|null {
+    public static function fromThrow(stdClass|float|null $value): ThrowClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Ushort::from($value); /*class*/
+            return ThrowClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20679,71 +21714,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUshort(): stdClass|float|null {
-        if (TopLevel::validateUshort($this->ushort))  {
-            if (is_null($this->ushort)) {
-                return $this->ushort; /*null*/
-            } elseif ($this->ushort instanceof Ushort) {
-                return $this->ushort->to(); /*class*/
-            } elseif (is_float($this->ushort) || is_int($this->ushort)) {
-                return $this->ushort; /*float*/
+    public function toThrow(): stdClass|float|null {
+        if (TopLevel::validateThrow($this->throw))  {
+            if (is_null($this->throw)) {
+                return $this->throw; /*null*/
+            } elseif ($this->throw instanceof ThrowClass) {
+                return $this->throw->to(); /*class*/
+            } elseif (is_float($this->throw) || is_int($this->throw)) {
+                return $this->throw; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::ushort');
+        throw new Exception('never get to this TopLevel::throw');
     }
 
     /**
-     * @param Ushort|float|null
+     * @param ThrowClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUshort(Ushort|float|null $value): bool {
+    public static function validateThrow(ThrowClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::ushort");
+                throw new Exception("Attribute Error:TopLevel::throw");
             }
-        } elseif ($value instanceof Ushort) {
+        } elseif ($value instanceof ThrowClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::ushort");
+                throw new Exception("Attribute Error:TopLevel::throw");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::ushort");
+            throw new Exception("Attribute Error:TopLevel::throw");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Ushort|float|null
+     * @return ThrowClass|float|null
      */
-    public function getUshort(): Ushort|float|null {
-        if (TopLevel::validateUshort($this->ushort))  {
-            return $this->ushort;
+    public function getThrow(): ThrowClass|float|null {
+        if (TopLevel::validateThrow($this->throw))  {
+            return $this->throw;
         }
-        throw new Exception('never get to getUshort TopLevel::ushort');
+        throw new Exception('never get to getThrow TopLevel::throw');
     }
 
     /**
-     * @return Ushort|float|null
+     * @return ThrowClass|float|null
      */
-    public static function sampleUshort(): Ushort|float|null {
-        return Ushort::sample(); /*292:ushort*/
+    public static function sampleThrow(): ThrowClass|float|null {
+        return ThrowClass::sample(); /*304:throw*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Using|float|null
+     * @return Throws|float|null
      */
-    public static function fromUsing(stdClass|float|null $value): Using|float|null {
+    public static function fromThrows(stdClass|float|null $value): Throws|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Using::from($value); /*class*/
+            return Throws::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20755,71 +21790,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toUsing(): stdClass|float|null {
-        if (TopLevel::validateUsing($this->using))  {
-            if (is_null($this->using)) {
-                return $this->using; /*null*/
-            } elseif ($this->using instanceof Using) {
-                return $this->using->to(); /*class*/
-            } elseif (is_float($this->using) || is_int($this->using)) {
-                return $this->using; /*float*/
+    public function toThrows(): stdClass|float|null {
+        if (TopLevel::validateThrows($this->throws))  {
+            if (is_null($this->throws)) {
+                return $this->throws; /*null*/
+            } elseif ($this->throws instanceof Throws) {
+                return $this->throws->to(); /*class*/
+            } elseif (is_float($this->throws) || is_int($this->throws)) {
+                return $this->throws; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::using');
+        throw new Exception('never get to this TopLevel::throws');
     }
 
     /**
-     * @param Using|float|null
+     * @param Throws|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateUsing(Using|float|null $value): bool {
+    public static function validateThrows(Throws|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::using");
+                throw new Exception("Attribute Error:TopLevel::throws");
             }
-        } elseif ($value instanceof Using) {
+        } elseif ($value instanceof Throws) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::using");
+                throw new Exception("Attribute Error:TopLevel::throws");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::using");
+            throw new Exception("Attribute Error:TopLevel::throws");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Using|float|null
+     * @return Throws|float|null
      */
-    public function getUsing(): Using|float|null {
-        if (TopLevel::validateUsing($this->using))  {
-            return $this->using;
+    public function getThrows(): Throws|float|null {
+        if (TopLevel::validateThrows($this->throws))  {
+            return $this->throws;
         }
-        throw new Exception('never get to getUsing TopLevel::using');
+        throw new Exception('never get to getThrows TopLevel::throws');
     }
 
     /**
-     * @return Using|float|null
+     * @return Throws|float|null
      */
-    public static function sampleUsing(): Using|float|null {
-        return Using::sample(); /*293:using*/
+    public static function sampleThrows(): Throws|float|null {
+        return Throws::sample(); /*305:throws*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return VarClass|float|null
+     * @return TimeOnly|float|null
      */
-    public static function fromVar(stdClass|float|null $value): VarClass|float|null {
+    public static function fromTimeOnly(stdClass|float|null $value): TimeOnly|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return VarClass::from($value); /*class*/
+            return TimeOnly::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20831,71 +21866,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toVar(): stdClass|float|null {
-        if (TopLevel::validateVar($this->var))  {
-            if (is_null($this->var)) {
-                return $this->var; /*null*/
-            } elseif ($this->var instanceof VarClass) {
-                return $this->var->to(); /*class*/
-            } elseif (is_float($this->var) || is_int($this->var)) {
-                return $this->var; /*float*/
+    public function toTimeOnly(): stdClass|float|null {
+        if (TopLevel::validateTimeOnly($this->timeOnly))  {
+            if (is_null($this->timeOnly)) {
+                return $this->timeOnly; /*null*/
+            } elseif ($this->timeOnly instanceof TimeOnly) {
+                return $this->timeOnly->to(); /*class*/
+            } elseif (is_float($this->timeOnly) || is_int($this->timeOnly)) {
+                return $this->timeOnly; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::var');
+        throw new Exception('never get to this TopLevel::timeOnly');
     }
 
     /**
-     * @param VarClass|float|null
+     * @param TimeOnly|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateVar(VarClass|float|null $value): bool {
+    public static function validateTimeOnly(TimeOnly|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::var");
+                throw new Exception("Attribute Error:TopLevel::timeOnly");
             }
-        } elseif ($value instanceof VarClass) {
+        } elseif ($value instanceof TimeOnly) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::var");
+                throw new Exception("Attribute Error:TopLevel::timeOnly");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::var");
+            throw new Exception("Attribute Error:TopLevel::timeOnly");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return VarClass|float|null
+     * @return TimeOnly|float|null
      */
-    public function getVar(): VarClass|float|null {
-        if (TopLevel::validateVar($this->var))  {
-            return $this->var;
+    public function getTimeOnly(): TimeOnly|float|null {
+        if (TopLevel::validateTimeOnly($this->timeOnly))  {
+            return $this->timeOnly;
         }
-        throw new Exception('never get to getVar TopLevel::var');
+        throw new Exception('never get to getTimeOnly TopLevel::timeOnly');
     }
 
     /**
-     * @return VarClass|float|null
+     * @return TimeOnly|float|null
      */
-    public static function sampleVar(): VarClass|float|null {
-        return VarClass::sample(); /*294:var*/
+    public static function sampleTimeOnly(): TimeOnly|float|null {
+        return TimeOnly::sample(); /*306:timeOnly*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Virtual|float|null
+     * @return TimeOnlyConverter|float|null
      */
-    public static function fromVirtual(stdClass|float|null $value): Virtual|float|null {
+    public static function fromTimeOnlyConverter(stdClass|float|null $value): TimeOnlyConverter|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Virtual::from($value); /*class*/
+            return TimeOnlyConverter::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20907,71 +21942,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toVirtual(): stdClass|float|null {
-        if (TopLevel::validateVirtual($this->virtual))  {
-            if (is_null($this->virtual)) {
-                return $this->virtual; /*null*/
-            } elseif ($this->virtual instanceof Virtual) {
-                return $this->virtual->to(); /*class*/
-            } elseif (is_float($this->virtual) || is_int($this->virtual)) {
-                return $this->virtual; /*float*/
+    public function toTimeOnlyConverter(): stdClass|float|null {
+        if (TopLevel::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            if (is_null($this->timeOnlyConverter)) {
+                return $this->timeOnlyConverter; /*null*/
+            } elseif ($this->timeOnlyConverter instanceof TimeOnlyConverter) {
+                return $this->timeOnlyConverter->to(); /*class*/
+            } elseif (is_float($this->timeOnlyConverter) || is_int($this->timeOnlyConverter)) {
+                return $this->timeOnlyConverter; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::virtual');
+        throw new Exception('never get to this TopLevel::timeOnlyConverter');
     }
 
     /**
-     * @param Virtual|float|null
+     * @param TimeOnlyConverter|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateVirtual(Virtual|float|null $value): bool {
+    public static function validateTimeOnlyConverter(TimeOnlyConverter|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::virtual");
+                throw new Exception("Attribute Error:TopLevel::timeOnlyConverter");
             }
-        } elseif ($value instanceof Virtual) {
+        } elseif ($value instanceof TimeOnlyConverter) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::virtual");
+                throw new Exception("Attribute Error:TopLevel::timeOnlyConverter");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::virtual");
+            throw new Exception("Attribute Error:TopLevel::timeOnlyConverter");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Virtual|float|null
+     * @return TimeOnlyConverter|float|null
      */
-    public function getVirtual(): Virtual|float|null {
-        if (TopLevel::validateVirtual($this->virtual))  {
-            return $this->virtual;
+    public function getTimeOnlyConverter(): TimeOnlyConverter|float|null {
+        if (TopLevel::validateTimeOnlyConverter($this->timeOnlyConverter))  {
+            return $this->timeOnlyConverter;
         }
-        throw new Exception('never get to getVirtual TopLevel::virtual');
+        throw new Exception('never get to getTimeOnlyConverter TopLevel::timeOnlyConverter');
     }
 
     /**
-     * @return Virtual|float|null
+     * @return TimeOnlyConverter|float|null
      */
-    public static function sampleVirtual(): Virtual|float|null {
-        return Virtual::sample(); /*295:virtual*/
+    public static function sampleTimeOnlyConverter(): TimeOnlyConverter|float|null {
+        return TimeOnlyConverter::sample(); /*307:timeOnlyConverter*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return VoidClass|float|null
+     * @return ToJSON|float|null
      */
-    public static function fromVoid(stdClass|float|null $value): VoidClass|float|null {
+    public static function fromToJSON(stdClass|float|null $value): ToJSON|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return VoidClass::from($value); /*class*/
+            return ToJSON::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -20983,71 +22018,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toVoid(): stdClass|float|null {
-        if (TopLevel::validateVoid($this->void))  {
-            if (is_null($this->void)) {
-                return $this->void; /*null*/
-            } elseif ($this->void instanceof VoidClass) {
-                return $this->void->to(); /*class*/
-            } elseif (is_float($this->void) || is_int($this->void)) {
-                return $this->void; /*float*/
+    public function toToJSON(): stdClass|float|null {
+        if (TopLevel::validateToJSON($this->toJSON))  {
+            if (is_null($this->toJSON)) {
+                return $this->toJSON; /*null*/
+            } elseif ($this->toJSON instanceof ToJSON) {
+                return $this->toJSON->to(); /*class*/
+            } elseif (is_float($this->toJSON) || is_int($this->toJSON)) {
+                return $this->toJSON; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::void');
+        throw new Exception('never get to this TopLevel::toJSON');
     }
 
     /**
-     * @param VoidClass|float|null
+     * @param ToJSON|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateVoid(VoidClass|float|null $value): bool {
+    public static function validateToJSON(ToJSON|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::void");
+                throw new Exception("Attribute Error:TopLevel::toJSON");
             }
-        } elseif ($value instanceof VoidClass) {
+        } elseif ($value instanceof ToJSON) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::void");
+                throw new Exception("Attribute Error:TopLevel::toJSON");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::void");
+            throw new Exception("Attribute Error:TopLevel::toJSON");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return VoidClass|float|null
+     * @return ToJSON|float|null
      */
-    public function getVoid(): VoidClass|float|null {
-        if (TopLevel::validateVoid($this->void))  {
-            return $this->void;
+    public function getToJSON(): ToJSON|float|null {
+        if (TopLevel::validateToJSON($this->toJSON))  {
+            return $this->toJSON;
         }
-        throw new Exception('never get to getVoid TopLevel::void');
+        throw new Exception('never get to getToJSON TopLevel::toJSON');
     }
 
     /**
-     * @return VoidClass|float|null
+     * @return ToJSON|float|null
      */
-    public static function sampleVoid(): VoidClass|float|null {
-        return VoidClass::sample(); /*296:void*/
+    public static function sampleToJSON(): ToJSON|float|null {
+        return ToJSON::sample(); /*308:toJSON*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Volatile|float|null
+     * @return TopLevelClass|float|null
      */
-    public static function fromVolatile(stdClass|float|null $value): Volatile|float|null {
+    public static function fromTopLevel(stdClass|float|null $value): TopLevelClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Volatile::from($value); /*class*/
+            return TopLevelClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21059,71 +22094,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toVolatile(): stdClass|float|null {
-        if (TopLevel::validateVolatile($this->volatile))  {
-            if (is_null($this->volatile)) {
-                return $this->volatile; /*null*/
-            } elseif ($this->volatile instanceof Volatile) {
-                return $this->volatile->to(); /*class*/
-            } elseif (is_float($this->volatile) || is_int($this->volatile)) {
-                return $this->volatile; /*float*/
+    public function toTopLevel(): stdClass|float|null {
+        if (TopLevel::validateTopLevel($this->topLevel))  {
+            if (is_null($this->topLevel)) {
+                return $this->topLevel; /*null*/
+            } elseif ($this->topLevel instanceof TopLevelClass) {
+                return $this->topLevel->to(); /*class*/
+            } elseif (is_float($this->topLevel) || is_int($this->topLevel)) {
+                return $this->topLevel; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::volatile');
+        throw new Exception('never get to this TopLevel::topLevel');
     }
 
     /**
-     * @param Volatile|float|null
+     * @param TopLevelClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateVolatile(Volatile|float|null $value): bool {
+    public static function validateTopLevel(TopLevelClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::volatile");
+                throw new Exception("Attribute Error:TopLevel::topLevel");
             }
-        } elseif ($value instanceof Volatile) {
+        } elseif ($value instanceof TopLevelClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::volatile");
+                throw new Exception("Attribute Error:TopLevel::topLevel");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::volatile");
+            throw new Exception("Attribute Error:TopLevel::topLevel");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Volatile|float|null
+     * @return TopLevelClass|float|null
      */
-    public function getVolatile(): Volatile|float|null {
-        if (TopLevel::validateVolatile($this->volatile))  {
-            return $this->volatile;
+    public function getTopLevel(): TopLevelClass|float|null {
+        if (TopLevel::validateTopLevel($this->topLevel))  {
+            return $this->topLevel;
         }
-        throw new Exception('never get to getVolatile TopLevel::volatile');
+        throw new Exception('never get to getTopLevel TopLevel::topLevel');
     }
 
     /**
-     * @return Volatile|float|null
+     * @return TopLevelClass|float|null
      */
-    public static function sampleVolatile(): Volatile|float|null {
-        return Volatile::sample(); /*297:volatile*/
+    public static function sampleTopLevel(): TopLevelClass|float|null {
+        return TopLevelClass::sample(); /*309:topLevel*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return WcharT|float|null
+     * @return ToString|float|null
      */
-    public static function fromWcharT(stdClass|float|null $value): WcharT|float|null {
+    public static function fromToString(stdClass|float|null $value): ToString|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return WcharT::from($value); /*class*/
+            return ToString::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21135,71 +22170,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWcharT(): stdClass|float|null {
-        if (TopLevel::validateWcharT($this->wcharT))  {
-            if (is_null($this->wcharT)) {
-                return $this->wcharT; /*null*/
-            } elseif ($this->wcharT instanceof WcharT) {
-                return $this->wcharT->to(); /*class*/
-            } elseif (is_float($this->wcharT) || is_int($this->wcharT)) {
-                return $this->wcharT; /*float*/
+    public function toToString(): stdClass|float|null {
+        if (TopLevel::validateToString($this->toString))  {
+            if (is_null($this->toString)) {
+                return $this->toString; /*null*/
+            } elseif ($this->toString instanceof ToString) {
+                return $this->toString->to(); /*class*/
+            } elseif (is_float($this->toString) || is_int($this->toString)) {
+                return $this->toString; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::wcharT');
+        throw new Exception('never get to this TopLevel::toString');
     }
 
     /**
-     * @param WcharT|float|null
+     * @param ToString|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWcharT(WcharT|float|null $value): bool {
+    public static function validateToString(ToString|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::wcharT");
+                throw new Exception("Attribute Error:TopLevel::toString");
             }
-        } elseif ($value instanceof WcharT) {
+        } elseif ($value instanceof ToString) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::wcharT");
+                throw new Exception("Attribute Error:TopLevel::toString");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::wcharT");
+            throw new Exception("Attribute Error:TopLevel::toString");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return WcharT|float|null
+     * @return ToString|float|null
      */
-    public function getWcharT(): WcharT|float|null {
-        if (TopLevel::validateWcharT($this->wcharT))  {
-            return $this->wcharT;
+    public function getToString(): ToString|float|null {
+        if (TopLevel::validateToString($this->toString))  {
+            return $this->toString;
         }
-        throw new Exception('never get to getWcharT TopLevel::wcharT');
+        throw new Exception('never get to getToString TopLevel::toString');
     }
 
     /**
-     * @return WcharT|float|null
+     * @return ToString|float|null
      */
-    public static function sampleWcharT(): WcharT|float|null {
-        return WcharT::sample(); /*298:wcharT*/
+    public static function sampleToString(): ToString|float|null {
+        return ToString::sample(); /*310:toString*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Weak|float|null
+     * @return Transient|float|null
      */
-    public static function fromWeak(stdClass|float|null $value): Weak|float|null {
+    public static function fromTransient(stdClass|float|null $value): Transient|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Weak::from($value); /*class*/
+            return Transient::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21211,71 +22246,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWeak(): stdClass|float|null {
-        if (TopLevel::validateWeak($this->weak))  {
-            if (is_null($this->weak)) {
-                return $this->weak; /*null*/
-            } elseif ($this->weak instanceof Weak) {
-                return $this->weak->to(); /*class*/
-            } elseif (is_float($this->weak) || is_int($this->weak)) {
-                return $this->weak; /*float*/
+    public function toTransient(): stdClass|float|null {
+        if (TopLevel::validateTransient($this->transient))  {
+            if (is_null($this->transient)) {
+                return $this->transient; /*null*/
+            } elseif ($this->transient instanceof Transient) {
+                return $this->transient->to(); /*class*/
+            } elseif (is_float($this->transient) || is_int($this->transient)) {
+                return $this->transient; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::weak');
+        throw new Exception('never get to this TopLevel::transient');
     }
 
     /**
-     * @param Weak|float|null
+     * @param Transient|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWeak(Weak|float|null $value): bool {
+    public static function validateTransient(Transient|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::weak");
+                throw new Exception("Attribute Error:TopLevel::transient");
             }
-        } elseif ($value instanceof Weak) {
+        } elseif ($value instanceof Transient) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::weak");
+                throw new Exception("Attribute Error:TopLevel::transient");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::weak");
+            throw new Exception("Attribute Error:TopLevel::transient");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Weak|float|null
+     * @return Transient|float|null
      */
-    public function getWeak(): Weak|float|null {
-        if (TopLevel::validateWeak($this->weak))  {
-            return $this->weak;
+    public function getTransient(): Transient|float|null {
+        if (TopLevel::validateTransient($this->transient))  {
+            return $this->transient;
         }
-        throw new Exception('never get to getWeak TopLevel::weak');
+        throw new Exception('never get to getTransient TopLevel::transient');
     }
 
     /**
-     * @return Weak|float|null
+     * @return Transient|float|null
      */
-    public static function sampleWeak(): Weak|float|null {
-        return Weak::sample(); /*299:weak*/
+    public static function sampleTransient(): Transient|float|null {
+        return Transient::sample(); /*311:transient*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Where|float|null
+     * @return TrueClass|float|null
      */
-    public static function fromWhere(stdClass|float|null $value): Where|float|null {
+    public static function fromTrue(stdClass|float|null $value): TrueClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Where::from($value); /*class*/
+            return TrueClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21287,71 +22322,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWhere(): stdClass|float|null {
-        if (TopLevel::validateWhere($this->where))  {
-            if (is_null($this->where)) {
-                return $this->where; /*null*/
-            } elseif ($this->where instanceof Where) {
-                return $this->where->to(); /*class*/
-            } elseif (is_float($this->where) || is_int($this->where)) {
-                return $this->where; /*float*/
+    public function toTrue(): stdClass|float|null {
+        if (TopLevel::validateTrue($this->true))  {
+            if (is_null($this->true)) {
+                return $this->true; /*null*/
+            } elseif ($this->true instanceof TrueClass) {
+                return $this->true->to(); /*class*/
+            } elseif (is_float($this->true) || is_int($this->true)) {
+                return $this->true; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::where');
+        throw new Exception('never get to this TopLevel::true');
     }
 
     /**
-     * @param Where|float|null
+     * @param TrueClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWhere(Where|float|null $value): bool {
+    public static function validateTrue(TrueClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::where");
+                throw new Exception("Attribute Error:TopLevel::true");
             }
-        } elseif ($value instanceof Where) {
+        } elseif ($value instanceof TrueClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::where");
+                throw new Exception("Attribute Error:TopLevel::true");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::where");
+            throw new Exception("Attribute Error:TopLevel::true");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Where|float|null
+     * @return TrueClass|float|null
      */
-    public function getWhere(): Where|float|null {
-        if (TopLevel::validateWhere($this->where))  {
-            return $this->where;
+    public function getTrue(): TrueClass|float|null {
+        if (TopLevel::validateTrue($this->true))  {
+            return $this->true;
         }
-        throw new Exception('never get to getWhere TopLevel::where');
+        throw new Exception('never get to getTrue TopLevel::true');
     }
 
     /**
-     * @return Where|float|null
+     * @return TrueClass|float|null
      */
-    public static function sampleWhere(): Where|float|null {
-        return Where::sample(); /*300:where*/
+    public static function sampleTrue(): TrueClass|float|null {
+        return TrueClass::sample(); /*312:true*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return WhileClass|float|null
+     * @return UnionTrueTrue|float|null
      */
-    public static function fromWhile(stdClass|float|null $value): WhileClass|float|null {
+    public static function fromTopLevelTrue(stdClass|float|null $value): UnionTrueTrue|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return WhileClass::from($value); /*class*/
+            return UnionTrueTrue::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21363,71 +22398,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWhile(): stdClass|float|null {
-        if (TopLevel::validateWhile($this->while))  {
-            if (is_null($this->while)) {
-                return $this->while; /*null*/
-            } elseif ($this->while instanceof WhileClass) {
-                return $this->while->to(); /*class*/
-            } elseif (is_float($this->while) || is_int($this->while)) {
-                return $this->while; /*float*/
+    public function toTopLevelTrue(): stdClass|float|null {
+        if (TopLevel::validateTopLevelTrue($this->topLevelTrue))  {
+            if (is_null($this->topLevelTrue)) {
+                return $this->topLevelTrue; /*null*/
+            } elseif ($this->topLevelTrue instanceof UnionTrueTrue) {
+                return $this->topLevelTrue->to(); /*class*/
+            } elseif (is_float($this->topLevelTrue) || is_int($this->topLevelTrue)) {
+                return $this->topLevelTrue; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::while');
+        throw new Exception('never get to this TopLevel::topLevelTrue');
     }
 
     /**
-     * @param WhileClass|float|null
+     * @param UnionTrueTrue|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWhile(WhileClass|float|null $value): bool {
+    public static function validateTopLevelTrue(UnionTrueTrue|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::while");
+                throw new Exception("Attribute Error:TopLevel::topLevelTrue");
             }
-        } elseif ($value instanceof WhileClass) {
+        } elseif ($value instanceof UnionTrueTrue) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::while");
+                throw new Exception("Attribute Error:TopLevel::topLevelTrue");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::while");
+            throw new Exception("Attribute Error:TopLevel::topLevelTrue");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return WhileClass|float|null
+     * @return UnionTrueTrue|float|null
      */
-    public function getWhile(): WhileClass|float|null {
-        if (TopLevel::validateWhile($this->while))  {
-            return $this->while;
+    public function getTopLevelTrue(): UnionTrueTrue|float|null {
+        if (TopLevel::validateTopLevelTrue($this->topLevelTrue))  {
+            return $this->topLevelTrue;
         }
-        throw new Exception('never get to getWhile TopLevel::while');
+        throw new Exception('never get to getTopLevelTrue TopLevel::topLevelTrue');
     }
 
     /**
-     * @return WhileClass|float|null
+     * @return UnionTrueTrue|float|null
      */
-    public static function sampleWhile(): WhileClass|float|null {
-        return WhileClass::sample(); /*301:while*/
+    public static function sampleTopLevelTrue(): UnionTrueTrue|float|null {
+        return UnionTrueTrue::sample(); /*313:topLevelTrue*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return WillSet|float|null
+     * @return TryClass|float|null
      */
-    public static function fromWillSet(stdClass|float|null $value): WillSet|float|null {
+    public static function fromTry(stdClass|float|null $value): TryClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return WillSet::from($value); /*class*/
+            return TryClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21439,71 +22474,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWillSet(): stdClass|float|null {
-        if (TopLevel::validateWillSet($this->willSet))  {
-            if (is_null($this->willSet)) {
-                return $this->willSet; /*null*/
-            } elseif ($this->willSet instanceof WillSet) {
-                return $this->willSet->to(); /*class*/
-            } elseif (is_float($this->willSet) || is_int($this->willSet)) {
-                return $this->willSet; /*float*/
+    public function toTry(): stdClass|float|null {
+        if (TopLevel::validateTry($this->try))  {
+            if (is_null($this->try)) {
+                return $this->try; /*null*/
+            } elseif ($this->try instanceof TryClass) {
+                return $this->try->to(); /*class*/
+            } elseif (is_float($this->try) || is_int($this->try)) {
+                return $this->try; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::willSet');
+        throw new Exception('never get to this TopLevel::try');
     }
 
     /**
-     * @param WillSet|float|null
+     * @param TryClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWillSet(WillSet|float|null $value): bool {
+    public static function validateTry(TryClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::willSet");
+                throw new Exception("Attribute Error:TopLevel::try");
             }
-        } elseif ($value instanceof WillSet) {
+        } elseif ($value instanceof TryClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::willSet");
+                throw new Exception("Attribute Error:TopLevel::try");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::willSet");
+            throw new Exception("Attribute Error:TopLevel::try");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return WillSet|float|null
+     * @return TryClass|float|null
      */
-    public function getWillSet(): WillSet|float|null {
-        if (TopLevel::validateWillSet($this->willSet))  {
-            return $this->willSet;
+    public function getTry(): TryClass|float|null {
+        if (TopLevel::validateTry($this->try))  {
+            return $this->try;
         }
-        throw new Exception('never get to getWillSet TopLevel::willSet');
+        throw new Exception('never get to getTry TopLevel::try');
     }
 
     /**
-     * @return WillSet|float|null
+     * @return TryClass|float|null
      */
-    public static function sampleWillSet(): WillSet|float|null {
-        return WillSet::sample(); /*302:willSet*/
+    public static function sampleTry(): TryClass|float|null {
+        return TryClass::sample(); /*314:try*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return With|float|null
+     * @return Type|float|null
      */
-    public static function fromWith(stdClass|float|null $value): With|float|null {
+    public static function fromType(stdClass|float|null $value): Type|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return With::from($value); /*class*/
+            return Type::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21515,71 +22550,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toWith(): stdClass|float|null {
-        if (TopLevel::validateWith($this->with))  {
-            if (is_null($this->with)) {
-                return $this->with; /*null*/
-            } elseif ($this->with instanceof With) {
-                return $this->with->to(); /*class*/
-            } elseif (is_float($this->with) || is_int($this->with)) {
-                return $this->with; /*float*/
+    public function toType(): stdClass|float|null {
+        if (TopLevel::validateType($this->type))  {
+            if (is_null($this->type)) {
+                return $this->type; /*null*/
+            } elseif ($this->type instanceof Type) {
+                return $this->type->to(); /*class*/
+            } elseif (is_float($this->type) || is_int($this->type)) {
+                return $this->type; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::with');
+        throw new Exception('never get to this TopLevel::type');
     }
 
     /**
-     * @param With|float|null
+     * @param Type|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateWith(With|float|null $value): bool {
+    public static function validateType(Type|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::with");
+                throw new Exception("Attribute Error:TopLevel::type");
             }
-        } elseif ($value instanceof With) {
+        } elseif ($value instanceof Type) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::with");
+                throw new Exception("Attribute Error:TopLevel::type");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::with");
+            throw new Exception("Attribute Error:TopLevel::type");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return With|float|null
+     * @return Type|float|null
      */
-    public function getWith(): With|float|null {
-        if (TopLevel::validateWith($this->with))  {
-            return $this->with;
+    public function getType(): Type|float|null {
+        if (TopLevel::validateType($this->type))  {
+            return $this->type;
         }
-        throw new Exception('never get to getWith TopLevel::with');
+        throw new Exception('never get to getType TopLevel::type');
     }
 
     /**
-     * @return With|float|null
+     * @return Type|float|null
      */
-    public static function sampleWith(): With|float|null {
-        return With::sample(); /*303:with*/
+    public static function sampleType(): Type|float|null {
+        return Type::sample(); /*315:type*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return XorClass|float|null
+     * @return TypeClass|float|null
      */
-    public static function fromXor(stdClass|float|null $value): XorClass|float|null {
+    public static function fromTopLevelType(stdClass|float|null $value): TypeClass|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return XorClass::from($value); /*class*/
+            return TypeClass::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21591,71 +22626,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toXor(): stdClass|float|null {
-        if (TopLevel::validateXor($this->xor))  {
-            if (is_null($this->xor)) {
-                return $this->xor; /*null*/
-            } elseif ($this->xor instanceof XorClass) {
-                return $this->xor->to(); /*class*/
-            } elseif (is_float($this->xor) || is_int($this->xor)) {
-                return $this->xor; /*float*/
+    public function toTopLevelType(): stdClass|float|null {
+        if (TopLevel::validateTopLevelType($this->topLevelType))  {
+            if (is_null($this->topLevelType)) {
+                return $this->topLevelType; /*null*/
+            } elseif ($this->topLevelType instanceof TypeClass) {
+                return $this->topLevelType->to(); /*class*/
+            } elseif (is_float($this->topLevelType) || is_int($this->topLevelType)) {
+                return $this->topLevelType; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::xor');
+        throw new Exception('never get to this TopLevel::topLevelType');
     }
 
     /**
-     * @param XorClass|float|null
+     * @param TypeClass|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateXor(XorClass|float|null $value): bool {
+    public static function validateTopLevelType(TypeClass|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::xor");
+                throw new Exception("Attribute Error:TopLevel::topLevelType");
             }
-        } elseif ($value instanceof XorClass) {
+        } elseif ($value instanceof TypeClass) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::xor");
+                throw new Exception("Attribute Error:TopLevel::topLevelType");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::xor");
+            throw new Exception("Attribute Error:TopLevel::topLevelType");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return XorClass|float|null
+     * @return TypeClass|float|null
      */
-    public function getXor(): XorClass|float|null {
-        if (TopLevel::validateXor($this->xor))  {
-            return $this->xor;
+    public function getTopLevelType(): TypeClass|float|null {
+        if (TopLevel::validateTopLevelType($this->topLevelType))  {
+            return $this->topLevelType;
         }
-        throw new Exception('never get to getXor TopLevel::xor');
+        throw new Exception('never get to getTopLevelType TopLevel::topLevelType');
     }
 
     /**
-     * @return XorClass|float|null
+     * @return TypeClass|float|null
      */
-    public static function sampleXor(): XorClass|float|null {
-        return XorClass::sample(); /*304:xor*/
+    public static function sampleTopLevelType(): TypeClass|float|null {
+        return TypeClass::sample(); /*316:topLevelType*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return XorEq|float|null
+     * @return Typealias|float|null
      */
-    public static function fromXorEq(stdClass|float|null $value): XorEq|float|null {
+    public static function fromTypealias(stdClass|float|null $value): Typealias|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return XorEq::from($value); /*class*/
+            return Typealias::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21667,71 +22702,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toXorEq(): stdClass|float|null {
-        if (TopLevel::validateXorEq($this->xorEq))  {
-            if (is_null($this->xorEq)) {
-                return $this->xorEq; /*null*/
-            } elseif ($this->xorEq instanceof XorEq) {
-                return $this->xorEq->to(); /*class*/
-            } elseif (is_float($this->xorEq) || is_int($this->xorEq)) {
-                return $this->xorEq; /*float*/
+    public function toTypealias(): stdClass|float|null {
+        if (TopLevel::validateTypealias($this->typealias))  {
+            if (is_null($this->typealias)) {
+                return $this->typealias; /*null*/
+            } elseif ($this->typealias instanceof Typealias) {
+                return $this->typealias->to(); /*class*/
+            } elseif (is_float($this->typealias) || is_int($this->typealias)) {
+                return $this->typealias; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::xorEq');
+        throw new Exception('never get to this TopLevel::typealias');
     }
 
     /**
-     * @param XorEq|float|null
+     * @param Typealias|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateXorEq(XorEq|float|null $value): bool {
+    public static function validateTypealias(Typealias|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::xorEq");
+                throw new Exception("Attribute Error:TopLevel::typealias");
             }
-        } elseif ($value instanceof XorEq) {
+        } elseif ($value instanceof Typealias) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::xorEq");
+                throw new Exception("Attribute Error:TopLevel::typealias");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::xorEq");
+            throw new Exception("Attribute Error:TopLevel::typealias");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return XorEq|float|null
+     * @return Typealias|float|null
      */
-    public function getXorEq(): XorEq|float|null {
-        if (TopLevel::validateXorEq($this->xorEq))  {
-            return $this->xorEq;
+    public function getTypealias(): Typealias|float|null {
+        if (TopLevel::validateTypealias($this->typealias))  {
+            return $this->typealias;
         }
-        throw new Exception('never get to getXorEq TopLevel::xorEq');
+        throw new Exception('never get to getTypealias TopLevel::typealias');
     }
 
     /**
-     * @return XorEq|float|null
+     * @return Typealias|float|null
      */
-    public static function sampleXorEq(): XorEq|float|null {
-        return XorEq::sample(); /*305:xorEq*/
+    public static function sampleTypealias(): Typealias|float|null {
+        return Typealias::sample(); /*317:typealias*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return Yes|float|null
+     * @return Typedef|float|null
      */
-    public static function fromYes(stdClass|float|null $value): Yes|float|null {
+    public static function fromTypedef(stdClass|float|null $value): Typedef|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return Yes::from($value); /*class*/
+            return Typedef::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21743,71 +22778,71 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toYes(): stdClass|float|null {
-        if (TopLevel::validateYes($this->yes))  {
-            if (is_null($this->yes)) {
-                return $this->yes; /*null*/
-            } elseif ($this->yes instanceof Yes) {
-                return $this->yes->to(); /*class*/
-            } elseif (is_float($this->yes) || is_int($this->yes)) {
-                return $this->yes; /*float*/
+    public function toTypedef(): stdClass|float|null {
+        if (TopLevel::validateTypedef($this->typedef))  {
+            if (is_null($this->typedef)) {
+                return $this->typedef; /*null*/
+            } elseif ($this->typedef instanceof Typedef) {
+                return $this->typedef->to(); /*class*/
+            } elseif (is_float($this->typedef) || is_int($this->typedef)) {
+                return $this->typedef; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::yes');
+        throw new Exception('never get to this TopLevel::typedef');
     }
 
     /**
-     * @param Yes|float|null
+     * @param Typedef|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateYes(Yes|float|null $value): bool {
+    public static function validateTypedef(Typedef|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::yes");
+                throw new Exception("Attribute Error:TopLevel::typedef");
             }
-        } elseif ($value instanceof Yes) {
+        } elseif ($value instanceof Typedef) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::yes");
+                throw new Exception("Attribute Error:TopLevel::typedef");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::yes");
+            throw new Exception("Attribute Error:TopLevel::typedef");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return Yes|float|null
+     * @return Typedef|float|null
      */
-    public function getYes(): Yes|float|null {
-        if (TopLevel::validateYes($this->yes))  {
-            return $this->yes;
+    public function getTypedef(): Typedef|float|null {
+        if (TopLevel::validateTypedef($this->typedef))  {
+            return $this->typedef;
         }
-        throw new Exception('never get to getYes TopLevel::yes');
+        throw new Exception('never get to getTypedef TopLevel::typedef');
     }
 
     /**
-     * @return Yes|float|null
+     * @return Typedef|float|null
      */
-    public static function sampleYes(): Yes|float|null {
-        return Yes::sample(); /*306:yes*/
+    public static function sampleTypedef(): Typedef|float|null {
+        return Typedef::sample(); /*318:typedef*/
     }
 
     /**
      * @param stdClass|float|null $value
      * @throws Exception
-     * @return YieldClass|float|null
+     * @return Typeid|float|null
      */
-    public static function fromYield(stdClass|float|null $value): YieldClass|float|null {
+    public static function fromTypeid(stdClass|float|null $value): Typeid|float|null {
         if (is_null($value)) {
             return $value; /*null*/
         } elseif (is_object($value)) {
-            return YieldClass::from($value); /*class*/
+            return Typeid::from($value); /*class*/
         } elseif (is_float($value) || is_int($value)) {
             return $value; /*float*/
         } else {
@@ -21819,681 +22854,2968 @@ class TopLevel {
      * @throws Exception
      * @return stdClass|float|null
      */
-    public function toYield(): stdClass|float|null {
-        if (TopLevel::validateYield($this->yield))  {
-            if (is_null($this->yield)) {
-                return $this->yield; /*null*/
-            } elseif ($this->yield instanceof YieldClass) {
-                return $this->yield->to(); /*class*/
-            } elseif (is_float($this->yield) || is_int($this->yield)) {
-                return $this->yield; /*float*/
+    public function toTypeid(): stdClass|float|null {
+        if (TopLevel::validateTypeid($this->typeid))  {
+            if (is_null($this->typeid)) {
+                return $this->typeid; /*null*/
+            } elseif ($this->typeid instanceof Typeid) {
+                return $this->typeid->to(); /*class*/
+            } elseif (is_float($this->typeid) || is_int($this->typeid)) {
+                return $this->typeid; /*float*/
             } else {
                 throw new Exception('Union value has no matching member in TopLevel');
             }
         }
-        throw new Exception('never get to this TopLevel::yield');
+        throw new Exception('never get to this TopLevel::typeid');
     }
 
     /**
-     * @param YieldClass|float|null
+     * @param Typeid|float|null
      * @return bool
      * @throws Exception
      */
-    public static function validateYield(YieldClass|float|null $value): bool {
+    public static function validateTypeid(Typeid|float|null $value): bool {
         if (is_null($value)) {
             if (!is_null($value)) {
-                throw new Exception("Attribute Error:TopLevel::yield");
+                throw new Exception("Attribute Error:TopLevel::typeid");
             }
-        } elseif ($value instanceof YieldClass) {
+        } elseif ($value instanceof Typeid) {
             $value->validate();
         } elseif (is_float($value) || is_int($value)) {
             if (!is_float($value) && !is_int($value)) {
-                throw new Exception("Attribute Error:TopLevel::yield");
+                throw new Exception("Attribute Error:TopLevel::typeid");
             }
         } else {
-            throw new Exception("Attribute Error:TopLevel::yield");
+            throw new Exception("Attribute Error:TopLevel::typeid");
         }
         return true;
     }
 
     /**
      * @throws Exception
-     * @return YieldClass|float|null
+     * @return Typeid|float|null
      */
-    public function getYield(): YieldClass|float|null {
-        if (TopLevel::validateYield($this->yield))  {
-            return $this->yield;
+    public function getTypeid(): Typeid|float|null {
+        if (TopLevel::validateTypeid($this->typeid))  {
+            return $this->typeid;
         }
-        throw new Exception('never get to getYield TopLevel::yield');
+        throw new Exception('never get to getTypeid TopLevel::typeid');
     }
 
     /**
-     * @return YieldClass|float|null
+     * @return Typeid|float|null
      */
-    public static function sampleYield(): YieldClass|float|null {
-        return YieldClass::sample(); /*307:yield*/
+    public static function sampleTypeid(): Typeid|float|null {
+        return Typeid::sample(); /*319:typeid*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Typename|float|null
+     */
+    public static function fromTypename(stdClass|float|null $value): Typename|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Typename::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
     }
 
     /**
      * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toTypename(): stdClass|float|null {
+        if (TopLevel::validateTypename($this->typename))  {
+            if (is_null($this->typename)) {
+                return $this->typename; /*null*/
+            } elseif ($this->typename instanceof Typename) {
+                return $this->typename->to(); /*class*/
+            } elseif (is_float($this->typename) || is_int($this->typename)) {
+                return $this->typename; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::typename');
+    }
+
+    /**
+     * @param Typename|float|null
      * @return bool
+     * @throws Exception
      */
-    public function validate(): bool {
-        return TopLevel::validateEmpty($this->empty)
-        || TopLevel::validateTopLevelBool($this->topLevelBool)
-        || TopLevel::validateComplex($this->complex)
-        || TopLevel::validateImaginery($this->imaginery)
-        || TopLevel::validateAbstract($this->abstract)
-        || TopLevel::validateAlignas($this->alignas)
-        || TopLevel::validateAlignof($this->alignof)
-        || TopLevel::validateAnd($this->and)
-        || TopLevel::validateAndEq($this->andEq)
-        || TopLevel::validateTopLevelAny($this->topLevelAny)
-        || TopLevel::validateAny($this->any)
-        || TopLevel::validateArray($this->array)
-        || TopLevel::validateAs($this->as)
-        || TopLevel::validateASM($this->asm)
-        || TopLevel::validateAssert($this->assert)
-        || TopLevel::validateAssociatedtype($this->associatedtype)
-        || TopLevel::validateAssociativity($this->associativity)
-        || TopLevel::validateAsync($this->async)
-        || TopLevel::validateAtomic($this->atomic)
-        || TopLevel::validateAtomicCancel($this->atomicCancel)
-        || TopLevel::validateAtomicCommit($this->atomicCommit)
-        || TopLevel::validateAtomicNoexcept($this->atomicNoexcept)
-        || TopLevel::validateAuto($this->auto)
-        || TopLevel::validateAwait($this->await)
-        || TopLevel::validateBase($this->base)
-        || TopLevel::validateBitand($this->bitand)
-        || TopLevel::validateBitor($this->bitor)
-        || TopLevel::validateBool($this->bool)
-        || TopLevel::validatePurpleBool($this->purpleBool)
-        || TopLevel::validateBoolean($this->boolean)
-        || TopLevel::validateBreak($this->break)
-        || TopLevel::validateBycopy($this->bycopy)
-        || TopLevel::validateByref($this->byref)
-        || TopLevel::validateByte($this->byte)
-        || TopLevel::validateCase($this->case)
-        || TopLevel::validateCatch($this->catch)
-        || TopLevel::validateChan($this->chan)
-        || TopLevel::validateChar($this->char)
-        || TopLevel::validateChar16T($this->char16T)
-        || TopLevel::validateChar32T($this->char32T)
-        || TopLevel::validateChecked($this->checked)
-        || TopLevel::validateTopLevelClass($this->topLevelClass)
-        || TopLevel::validateClass($this->class)
-        || TopLevel::validateCoAwait($this->coAwait)
-        || TopLevel::validateCoReturn($this->coReturn)
-        || TopLevel::validateCoYield($this->coYield)
-        || TopLevel::validateCompl($this->compl)
-        || TopLevel::validateConcept($this->concept)
-        || TopLevel::validateConsole($this->console)
-        || TopLevel::validateConst($this->const)
-        || TopLevel::validateConstCast($this->constCast)
-        || TopLevel::validateConstexpr($this->constexpr)
-        || TopLevel::validateConstructor($this->constructor)
-        || TopLevel::validateContinue($this->continue)
-        || TopLevel::validateConvenience($this->convenience)
-        || TopLevel::validateConvert($this->convert)
-        || TopLevel::validateConverter($this->converter)
-        || TopLevel::validateDate($this->date)
-        || TopLevel::validateDateParseHandling($this->dateParseHandling)
-        || TopLevel::validateDebugger($this->debugger)
-        || TopLevel::validateDecimal($this->decimal)
-        || TopLevel::validateDeclare($this->declare)
-        || TopLevel::validateDecltype($this->decltype)
-        || TopLevel::validateDecodeString($this->decodeString)
-        || TopLevel::validateDef($this->def)
-        || TopLevel::validateDefault($this->default)
-        || TopLevel::validateDefer($this->defer)
-        || TopLevel::validateDeinit($this->deinit)
-        || TopLevel::validateDel($this->del)
-        || TopLevel::validateDelegate($this->delegate)
-        || TopLevel::validateDelete($this->delete)
-        || TopLevel::validateDict($this->dict)
-        || TopLevel::validateDictionary($this->dictionary)
-        || TopLevel::validateDidSet($this->didSet)
-        || TopLevel::validateDo($this->do)
-        || TopLevel::validateDouble($this->double)
-        || TopLevel::validateDummy($this->dummy)
-        || TopLevel::validateDynamic($this->dynamic)
-        || TopLevel::validateDynamicCast($this->dynamicCast)
-        || TopLevel::validateElif($this->elif)
-        || TopLevel::validateElse($this->else)
-        || TopLevel::validateEncodeQuickType($this->encodeQuickType)
-        || TopLevel::validateEnum($this->enum)
-        || TopLevel::validateEvent($this->event)
-        || TopLevel::validateExcept($this->except)
-        || TopLevel::validateException($this->exception)
-        || TopLevel::validateExplicit($this->explicit)
-        || TopLevel::validateExport($this->export)
-        || TopLevel::validateExposing($this->exposing)
-        || TopLevel::validateExtends($this->extends)
-        || TopLevel::validateExtension($this->extension)
-        || TopLevel::validateExtern($this->extern)
-        || TopLevel::validateFallthrough($this->fallthrough)
-        || TopLevel::validateTopLevelFalse($this->topLevelFalse)
-        || TopLevel::validateFalse($this->false)
-        || TopLevel::validateFileprivate($this->fileprivate)
-        || TopLevel::validateFinal($this->final)
-        || TopLevel::validateFinally($this->finally)
-        || TopLevel::validateFixed($this->fixed)
-        || TopLevel::validateFloat($this->float)
-        || TopLevel::validateFor($this->for)
-        || TopLevel::validateForeach($this->foreach)
-        || TopLevel::validateFriend($this->friend)
-        || TopLevel::validateFrom($this->from)
-        || TopLevel::validateFromJSON($this->fromJSON)
-        || TopLevel::validateFunc($this->func)
-        || TopLevel::validateFunction($this->function)
-        || TopLevel::validateGet($this->get)
-        || TopLevel::validateGlobal($this->global)
-        || TopLevel::validateGo($this->go)
-        || TopLevel::validateGoto($this->goto)
-        || TopLevel::validateGuard($this->guard)
-        || TopLevel::validateHasOwnProperty($this->hasOwnProperty)
-        || TopLevel::validateID($this->id)
-        || TopLevel::validateIf($this->if)
-        || TopLevel::validateImp($this->imp)
-        || TopLevel::validateImplements($this->implements)
-        || TopLevel::validateImplicit($this->implicit)
-        || TopLevel::validateImport($this->import)
-        || TopLevel::validateIn($this->in)
-        || TopLevel::validateIndirect($this->indirect)
-        || TopLevel::validateInfix($this->infix)
-        || TopLevel::validateInit($this->init)
-        || TopLevel::validateInline($this->inline)
-        || TopLevel::validateInout($this->inout)
-        || TopLevel::validateInstanceof($this->instanceof)
-        || TopLevel::validateInt($this->int)
-        || TopLevel::validateInterface($this->interface)
-        || TopLevel::validateInternal($this->internal)
-        || TopLevel::validateIs($this->is)
-        || TopLevel::validateIterable($this->iterable)
-        || TopLevel::validateJdec($this->jdec)
-        || TopLevel::validateJenc($this->jenc)
-        || TopLevel::validateJpipe($this->jpipe)
-        || TopLevel::validateJSON($this->json)
-        || TopLevel::validateJSONConverter($this->jsonConverter)
-        || TopLevel::validateJSONSerializer($this->jsonSerializer)
-        || TopLevel::validateJSONToken($this->jsonToken)
-        || TopLevel::validateJSONWriter($this->jsonWriter)
-        || TopLevel::validateLambda($this->lambda)
-        || TopLevel::validateLazy($this->lazy)
-        || TopLevel::validateLeft($this->left)
-        || TopLevel::validateLet($this->let)
-        || TopLevel::validateList($this->list)
-        || TopLevel::validateLock($this->lock)
-        || TopLevel::validateLong($this->long)
-        || TopLevel::validateMap($this->map)
-        || TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling)
-        || TopLevel::validateModule($this->module)
-        || TopLevel::validateMutable($this->mutable)
-        || TopLevel::validateMutating($this->mutating)
-        || TopLevel::validateNamespace($this->namespace)
-        || TopLevel::validateNative($this->native)
-        || TopLevel::validateNew($this->new)
-        || TopLevel::validateNewtonsoft($this->newtonsoft)
-        || TopLevel::validateNil($this->nil)
-        || TopLevel::validateNo($this->no)
-        || TopLevel::validateNoexcept($this->noexcept)
-        || TopLevel::validateNonatomic($this->nonatomic)
-        || TopLevel::validateTopLevelNone($this->topLevelNone)
-        || TopLevel::validateNone($this->none)
-        || TopLevel::validateNonlocal($this->nonlocal)
-        || TopLevel::validateNonmutating($this->nonmutating)
-        || TopLevel::validateNot($this->not)
-        || TopLevel::validateNotEq($this->notEq)
-        || TopLevel::validateNSString($this->nsString)
-        || TopLevel::validateNull($this->null)
-        || TopLevel::validateTopLevelNull($this->topLevelNull)
-        || TopLevel::validateNullptr($this->nullptr)
-        || TopLevel::validateNumber($this->number)
-        || TopLevel::validateObject($this->object)
-        || TopLevel::validateOf($this->of)
-        || TopLevel::validateOneway($this->oneway)
-        || TopLevel::validateOpen($this->open)
-        || TopLevel::validateOperator($this->operator)
-        || TopLevel::validateOptional($this->optional)
-        || TopLevel::validateOr($this->or)
-        || TopLevel::validateOrEq($this->orEq)
-        || TopLevel::validateOut($this->out)
-        || TopLevel::validateOverride($this->override)
-        || TopLevel::validatePackage($this->package)
-        || TopLevel::validateParams($this->params)
-        || TopLevel::validatePass($this->pass)
-        || TopLevel::validatePort($this->port)
-        || TopLevel::validatePostfix($this->postfix)
-        || TopLevel::validatePrecedence($this->precedence)
-        || TopLevel::validatePrefix($this->prefix)
-        || TopLevel::validatePrint($this->print)
-        || TopLevel::validatePrintf($this->printf)
-        || TopLevel::validatePrivate($this->private)
-        || TopLevel::validateProtected($this->protected)
-        || TopLevel::validateProtocol($this->protocol)
-        || TopLevel::validateTopLevelProtocol($this->topLevelProtocol)
-        || TopLevel::validatePublic($this->public)
-        || TopLevel::validateQuicktype($this->quicktype)
-        || TopLevel::validateRaise($this->raise)
-        || TopLevel::validateRange($this->range)
-        || TopLevel::validateReadonly($this->readonly)
-        || TopLevel::validateRef($this->ref)
-        || TopLevel::validateRegister($this->register)
-        || TopLevel::validateReinterpretCast($this->reinterpretCast)
-        || TopLevel::validateRepeat($this->repeat)
-        || TopLevel::validateRequire($this->require)
-        || TopLevel::validateRequired($this->required)
-        || TopLevel::validateRequires($this->requires)
-        || TopLevel::validateRestrict($this->restrict)
-        || TopLevel::validateRetain($this->retain)
-        || TopLevel::validateRethrows($this->rethrows)
-        || TopLevel::validateReturn($this->return)
-        || TopLevel::validateRight($this->right)
-        || TopLevel::validateSbyte($this->sbyte)
-        || TopLevel::validateSealed($this->sealed)
-        || TopLevel::validateSel($this->sel)
-        || TopLevel::validateSelect($this->select)
-        || TopLevel::validateSelf($this->self)
-        || TopLevel::validateTopLevelSelf($this->topLevelSelf)
-        || TopLevel::validateSerialize($this->serialize)
-        || TopLevel::validateSet($this->set)
-        || TopLevel::validateShort($this->short)
-        || TopLevel::validateSigned($this->signed)
-        || TopLevel::validateSizeof($this->sizeof)
-        || TopLevel::validateStackalloc($this->stackalloc)
-        || TopLevel::validateStatic($this->static)
-        || TopLevel::validateStaticAssert($this->staticAssert)
-        || TopLevel::validateStaticCast($this->staticCast)
-        || TopLevel::validateStrictfp($this->strictfp)
-        || TopLevel::validateString($this->string)
-        || TopLevel::validateStruct($this->struct)
-        || TopLevel::validateSubscript($this->subscript)
-        || TopLevel::validateSuper($this->super)
-        || TopLevel::validateSwitch($this->switch)
-        || TopLevel::validateSymbol($this->symbol)
-        || TopLevel::validateSynchronized($this->synchronized)
-        || TopLevel::validateSystem($this->system)
-        || TopLevel::validateTemplate($this->template)
-        || TopLevel::validateThen($this->then)
-        || TopLevel::validateTopLevelThis($this->topLevelThis)
-        || TopLevel::validateThreadLocal($this->threadLocal)
-        || TopLevel::validateThrow($this->throw)
-        || TopLevel::validateThrows($this->throws)
-        || TopLevel::validateToJSON($this->toJSON)
-        || TopLevel::validateTopLevel($this->topLevel)
-        || TopLevel::validateTransient($this->transient)
-        || TopLevel::validateTrue($this->true)
-        || TopLevel::validateTopLevelTrue($this->topLevelTrue)
-        || TopLevel::validateTry($this->try)
-        || TopLevel::validateType($this->type)
-        || TopLevel::validateTopLevelType($this->topLevelType)
-        || TopLevel::validateTypealias($this->typealias)
-        || TopLevel::validateTypedef($this->typedef)
-        || TopLevel::validateTypeid($this->typeid)
-        || TopLevel::validateTypename($this->typename)
-        || TopLevel::validateTypeof($this->typeof)
-        || TopLevel::validateUint($this->uint)
-        || TopLevel::validateUlong($this->ulong)
-        || TopLevel::validateUnchecked($this->unchecked)
-        || TopLevel::validateUndefined($this->undefined)
-        || TopLevel::validateUnion($this->union)
-        || TopLevel::validateUnowned($this->unowned)
-        || TopLevel::validateUnsafe($this->unsafe)
-        || TopLevel::validateUnsigned($this->unsigned)
-        || TopLevel::validateUshort($this->ushort)
-        || TopLevel::validateUsing($this->using)
-        || TopLevel::validateVar($this->var)
-        || TopLevel::validateVirtual($this->virtual)
-        || TopLevel::validateVoid($this->void)
-        || TopLevel::validateVolatile($this->volatile)
-        || TopLevel::validateWcharT($this->wcharT)
-        || TopLevel::validateWeak($this->weak)
-        || TopLevel::validateWhere($this->where)
-        || TopLevel::validateWhile($this->while)
-        || TopLevel::validateWillSet($this->willSet)
-        || TopLevel::validateWith($this->with)
-        || TopLevel::validateXor($this->xor)
-        || TopLevel::validateXorEq($this->xorEq)
-        || TopLevel::validateYes($this->yes)
-        || TopLevel::validateYield($this->yield);
+    public static function validateTypename(Typename|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::typename");
+            }
+        } elseif ($value instanceof Typename) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::typename");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::typename");
+        }
+        return true;
     }
 
     /**
-     * @return stdClass
      * @throws Exception
+     * @return Typename|float|null
      */
-    public function to(): stdClass  {
-        $out = new stdClass();
-        $out->{'_'} = $this->toEmpty();
-        $out->{'_Bool'} = $this->toTopLevelBool();
-        $out->{'_Complex'} = $this->toComplex();
-        $out->{'_Imaginery'} = $this->toImaginery();
-        $out->{'abstract'} = $this->toAbstract();
-        $out->{'alignas'} = $this->toAlignas();
-        $out->{'alignof'} = $this->toAlignof();
-        $out->{'and'} = $this->toAnd();
-        $out->{'and_eq'} = $this->toAndEq();
-        $out->{'any'} = $this->toTopLevelAny();
-        $out->{'Any'} = $this->toAny();
-        $out->{'array'} = $this->toArray();
-        $out->{'as'} = $this->toAs();
-        $out->{'asm'} = $this->toASM();
-        $out->{'assert'} = $this->toAssert();
-        $out->{'associatedtype'} = $this->toAssociatedtype();
-        $out->{'associativity'} = $this->toAssociativity();
-        $out->{'async'} = $this->toAsync();
-        $out->{'atomic'} = $this->toAtomic();
-        $out->{'atomic_cancel'} = $this->toAtomicCancel();
-        $out->{'atomic_commit'} = $this->toAtomicCommit();
-        $out->{'atomic_noexcept'} = $this->toAtomicNoexcept();
-        $out->{'auto'} = $this->toAuto();
-        $out->{'await'} = $this->toAwait();
-        $out->{'base'} = $this->toBase();
-        $out->{'bitand'} = $this->toBitand();
-        $out->{'bitor'} = $this->toBitor();
-        $out->{'BOOL'} = $this->toBool();
-        $out->{'bool'} = $this->toPurpleBool();
-        $out->{'boolean'} = $this->toBoolean();
-        $out->{'break'} = $this->toBreak();
-        $out->{'bycopy'} = $this->toBycopy();
-        $out->{'byref'} = $this->toByref();
-        $out->{'byte'} = $this->toByte();
-        $out->{'case'} = $this->toCase();
-        $out->{'catch'} = $this->toCatch();
-        $out->{'chan'} = $this->toChan();
-        $out->{'char'} = $this->toChar();
-        $out->{'char16_t'} = $this->toChar16T();
-        $out->{'char32_t'} = $this->toChar32T();
-        $out->{'checked'} = $this->toChecked();
-        $out->{'class'} = $this->toTopLevelClass();
-        $out->{'Class'} = $this->toClass();
-        $out->{'co_await'} = $this->toCoAwait();
-        $out->{'co_return'} = $this->toCoReturn();
-        $out->{'co_yield'} = $this->toCoYield();
-        $out->{'compl'} = $this->toCompl();
-        $out->{'concept'} = $this->toConcept();
-        $out->{'console'} = $this->toConsole();
-        $out->{'const'} = $this->toConst();
-        $out->{'const_cast'} = $this->toConstCast();
-        $out->{'constexpr'} = $this->toConstexpr();
-        $out->{'constructor'} = $this->toConstructor();
-        $out->{'continue'} = $this->toContinue();
-        $out->{'convenience'} = $this->toConvenience();
-        $out->{'convert'} = $this->toConvert();
-        $out->{'converter'} = $this->toConverter();
-        $out->{'date'} = $this->toDate();
-        $out->{'date_parse_handling'} = $this->toDateParseHandling();
-        $out->{'debugger'} = $this->toDebugger();
-        $out->{'decimal'} = $this->toDecimal();
-        $out->{'declare'} = $this->toDeclare();
-        $out->{'decltype'} = $this->toDecltype();
-        $out->{'decode_string'} = $this->toDecodeString();
-        $out->{'def'} = $this->toDef();
-        $out->{'default'} = $this->toDefault();
-        $out->{'defer'} = $this->toDefer();
-        $out->{'deinit'} = $this->toDeinit();
-        $out->{'del'} = $this->toDel();
-        $out->{'delegate'} = $this->toDelegate();
-        $out->{'delete'} = $this->toDelete();
-        $out->{'dict'} = $this->toDict();
-        $out->{'dictionary'} = $this->toDictionary();
-        $out->{'didSet'} = $this->toDidSet();
-        $out->{'do'} = $this->toDo();
-        $out->{'double'} = $this->toDouble();
-        $out->{'dummy'} = $this->toDummy();
-        $out->{'dynamic'} = $this->toDynamic();
-        $out->{'dynamic_cast'} = $this->toDynamicCast();
-        $out->{'elif'} = $this->toElif();
-        $out->{'else'} = $this->toElse();
-        $out->{'encode_quick_type'} = $this->toEncodeQuickType();
-        $out->{'enum'} = $this->toEnum();
-        $out->{'event'} = $this->toEvent();
-        $out->{'except'} = $this->toExcept();
-        $out->{'exception'} = $this->toException();
-        $out->{'explicit'} = $this->toExplicit();
-        $out->{'export'} = $this->toExport();
-        $out->{'exposing'} = $this->toExposing();
-        $out->{'extends'} = $this->toExtends();
-        $out->{'extension'} = $this->toExtension();
-        $out->{'extern'} = $this->toExtern();
-        $out->{'fallthrough'} = $this->toFallthrough();
-        $out->{'false'} = $this->toTopLevelFalse();
-        $out->{'False'} = $this->toFalse();
-        $out->{'fileprivate'} = $this->toFileprivate();
-        $out->{'final'} = $this->toFinal();
-        $out->{'finally'} = $this->toFinally();
-        $out->{'fixed'} = $this->toFixed();
-        $out->{'float'} = $this->toFloat();
-        $out->{'for'} = $this->toFor();
-        $out->{'foreach'} = $this->toForeach();
-        $out->{'friend'} = $this->toFriend();
-        $out->{'from'} = $this->toFrom();
-        $out->{'from_json'} = $this->toFromJSON();
-        $out->{'func'} = $this->toFunc();
-        $out->{'function'} = $this->toFunction();
-        $out->{'get'} = $this->toGet();
-        $out->{'global'} = $this->toGlobal();
-        $out->{'go'} = $this->toGo();
-        $out->{'goto'} = $this->toGoto();
-        $out->{'guard'} = $this->toGuard();
-        $out->{'hasOwnProperty'} = $this->toHasOwnProperty();
-        $out->{'id'} = $this->toID();
-        $out->{'if'} = $this->toIf();
-        $out->{'IMP'} = $this->toImp();
-        $out->{'implements'} = $this->toImplements();
-        $out->{'implicit'} = $this->toImplicit();
-        $out->{'import'} = $this->toImport();
-        $out->{'in'} = $this->toIn();
-        $out->{'indirect'} = $this->toIndirect();
-        $out->{'infix'} = $this->toInfix();
-        $out->{'init'} = $this->toInit();
-        $out->{'inline'} = $this->toInline();
-        $out->{'inout'} = $this->toInout();
-        $out->{'instanceof'} = $this->toInstanceof();
-        $out->{'int'} = $this->toInt();
-        $out->{'interface'} = $this->toInterface();
-        $out->{'internal'} = $this->toInternal();
-        $out->{'is'} = $this->toIs();
-        $out->{'iterable'} = $this->toIterable();
-        $out->{'jdec'} = $this->toJdec();
-        $out->{'jenc'} = $this->toJenc();
-        $out->{'jpipe'} = $this->toJpipe();
-        $out->{'json'} = $this->purpleToJSON();
-        $out->{'json_converter'} = $this->toJSONConverter();
-        $out->{'json_serializer'} = $this->toJSONSerializer();
-        $out->{'json_token'} = $this->toJSONToken();
-        $out->{'json_writer'} = $this->toJSONWriter();
-        $out->{'lambda'} = $this->toLambda();
-        $out->{'lazy'} = $this->toLazy();
-        $out->{'left'} = $this->toLeft();
-        $out->{'let'} = $this->toLet();
-        $out->{'list'} = $this->toList();
-        $out->{'lock'} = $this->toLock();
-        $out->{'long'} = $this->toLong();
-        $out->{'map'} = $this->toMap();
-        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
-        $out->{'module'} = $this->toModule();
-        $out->{'mutable'} = $this->toMutable();
-        $out->{'mutating'} = $this->toMutating();
-        $out->{'namespace'} = $this->toNamespace();
-        $out->{'native'} = $this->toNative();
-        $out->{'new'} = $this->toNew();
-        $out->{'newtonsoft'} = $this->toNewtonsoft();
-        $out->{'nil'} = $this->toNil();
-        $out->{'NO'} = $this->toNo();
-        $out->{'noexcept'} = $this->toNoexcept();
-        $out->{'nonatomic'} = $this->toNonatomic();
-        $out->{'none'} = $this->toTopLevelNone();
-        $out->{'None'} = $this->toNone();
-        $out->{'nonlocal'} = $this->toNonlocal();
-        $out->{'nonmutating'} = $this->toNonmutating();
-        $out->{'not'} = $this->toNot();
-        $out->{'not_eq'} = $this->toNotEq();
-        $out->{'NSString'} = $this->toNSString();
-        $out->{'NULL'} = $this->toNull();
-        $out->{'null'} = $this->toTopLevelNull();
-        $out->{'nullptr'} = $this->toNullptr();
-        $out->{'number'} = $this->toNumber();
-        $out->{'object'} = $this->toObject();
-        $out->{'of'} = $this->toOf();
-        $out->{'oneway'} = $this->toOneway();
-        $out->{'open'} = $this->toOpen();
-        $out->{'operator'} = $this->toOperator();
-        $out->{'optional'} = $this->toOptional();
-        $out->{'or'} = $this->toOr();
-        $out->{'or_eq'} = $this->toOrEq();
-        $out->{'out'} = $this->toOut();
-        $out->{'override'} = $this->toOverride();
-        $out->{'package'} = $this->toPackage();
-        $out->{'params'} = $this->toParams();
-        $out->{'pass'} = $this->toPass();
-        $out->{'port'} = $this->toPort();
-        $out->{'postfix'} = $this->toPostfix();
-        $out->{'precedence'} = $this->toPrecedence();
-        $out->{'prefix'} = $this->toPrefix();
-        $out->{'print'} = $this->toPrint();
-        $out->{'printf'} = $this->toPrintf();
-        $out->{'private'} = $this->toPrivate();
-        $out->{'protected'} = $this->toProtected();
-        $out->{'Protocol'} = $this->toProtocol();
-        $out->{'protocol'} = $this->toTopLevelProtocol();
-        $out->{'public'} = $this->toPublic();
-        $out->{'quicktype'} = $this->toQuicktype();
-        $out->{'raise'} = $this->toRaise();
-        $out->{'range'} = $this->toRange();
-        $out->{'readonly'} = $this->toReadonly();
-        $out->{'ref'} = $this->toRef();
-        $out->{'register'} = $this->toRegister();
-        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
-        $out->{'repeat'} = $this->toRepeat();
-        $out->{'require'} = $this->toRequire();
-        $out->{'required'} = $this->toRequired();
-        $out->{'requires'} = $this->toRequires();
-        $out->{'restrict'} = $this->toRestrict();
-        $out->{'retain'} = $this->toRetain();
-        $out->{'rethrows'} = $this->toRethrows();
-        $out->{'return'} = $this->toReturn();
-        $out->{'right'} = $this->toRight();
-        $out->{'sbyte'} = $this->toSbyte();
-        $out->{'sealed'} = $this->toSealed();
-        $out->{'SEL'} = $this->toSel();
-        $out->{'select'} = $this->toSelect();
-        $out->{'Self'} = $this->toSelf();
-        $out->{'self'} = $this->toTopLevelSelf();
-        $out->{'serialize'} = $this->toSerialize();
-        $out->{'set'} = $this->toSet();
-        $out->{'short'} = $this->toShort();
-        $out->{'signed'} = $this->toSigned();
-        $out->{'sizeof'} = $this->toSizeof();
-        $out->{'stackalloc'} = $this->toStackalloc();
-        $out->{'static'} = $this->toStatic();
-        $out->{'static_assert'} = $this->toStaticAssert();
-        $out->{'static_cast'} = $this->toStaticCast();
-        $out->{'strictfp'} = $this->toStrictfp();
-        $out->{'string'} = $this->toString();
-        $out->{'struct'} = $this->toStruct();
-        $out->{'subscript'} = $this->toSubscript();
-        $out->{'super'} = $this->toSuper();
-        $out->{'switch'} = $this->toSwitch();
-        $out->{'symbol'} = $this->toSymbol();
-        $out->{'synchronized'} = $this->toSynchronized();
-        $out->{'system'} = $this->toSystem();
-        $out->{'template'} = $this->toTemplate();
-        $out->{'then'} = $this->toThen();
-        $out->{'this'} = $this->toTopLevelThis();
-        $out->{'thread_local'} = $this->toThreadLocal();
-        $out->{'throw'} = $this->toThrow();
-        $out->{'throws'} = $this->toThrows();
-        $out->{'to_json'} = $this->toToJSON();
-        $out->{'top_level'} = $this->toTopLevel();
-        $out->{'transient'} = $this->toTransient();
-        $out->{'True'} = $this->toTrue();
-        $out->{'true'} = $this->toTopLevelTrue();
-        $out->{'try'} = $this->toTry();
-        $out->{'Type'} = $this->toType();
-        $out->{'type'} = $this->toTopLevelType();
-        $out->{'typealias'} = $this->toTypealias();
-        $out->{'typedef'} = $this->toTypedef();
-        $out->{'typeid'} = $this->toTypeid();
-        $out->{'typename'} = $this->toTypename();
-        $out->{'typeof'} = $this->toTypeof();
-        $out->{'uint'} = $this->toUint();
-        $out->{'ulong'} = $this->toUlong();
-        $out->{'unchecked'} = $this->toUnchecked();
-        $out->{'undefined'} = $this->toUndefined();
-        $out->{'union'} = $this->toUnion();
-        $out->{'unowned'} = $this->toUnowned();
-        $out->{'unsafe'} = $this->toUnsafe();
-        $out->{'unsigned'} = $this->toUnsigned();
-        $out->{'ushort'} = $this->toUshort();
-        $out->{'using'} = $this->toUsing();
-        $out->{'var'} = $this->toVar();
-        $out->{'virtual'} = $this->toVirtual();
-        $out->{'void'} = $this->toVoid();
-        $out->{'volatile'} = $this->toVolatile();
-        $out->{'wchar_t'} = $this->toWcharT();
-        $out->{'weak'} = $this->toWeak();
-        $out->{'where'} = $this->toWhere();
-        $out->{'while'} = $this->toWhile();
-        $out->{'willSet'} = $this->toWillSet();
-        $out->{'with'} = $this->toWith();
-        $out->{'xor'} = $this->toXor();
-        $out->{'xor_eq'} = $this->toXorEq();
-        $out->{'YES'} = $this->toYes();
-        $out->{'yield'} = $this->toYield();
-        return $out;
+    public function getTypename(): Typename|float|null {
+        if (TopLevel::validateTypename($this->typename))  {
+            return $this->typename;
+        }
+        throw new Exception('never get to getTypename TopLevel::typename');
     }
 
     /**
-     * @param stdClass $obj
-     * @return TopLevel
+     * @return Typename|float|null
+     */
+    public static function sampleTypename(): Typename|float|null {
+        return Typename::sample(); /*320:typename*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
      * @throws Exception
+     * @return Typeof|float|null
      */
-    public static function from(stdClass $obj): TopLevel {
-        return new TopLevel(
-         TopLevel::fromEmpty($obj->{'_'})
-        ,TopLevel::fromTopLevelBool($obj->{'_Bool'})
-        ,TopLevel::fromComplex($obj->{'_Complex'})
-        ,TopLevel::fromImaginery($obj->{'_Imaginery'})
-        ,TopLevel::fromAbstract($obj->{'abstract'})
-        ,TopLevel::fromAlignas($obj->{'alignas'})
-        ,TopLevel::fromAlignof($obj->{'alignof'})
-        ,TopLevel::fromAnd($obj->{'and'})
-        ,TopLevel::fromAndEq($obj->{'and_eq'})
-        ,TopLevel::fromTopLevelAny($obj->{'any'})
-        ,TopLevel::fromAny($obj->{'Any'})
-        ,TopLevel::fromArray($obj->{'array'})
-        ,TopLevel::fromAs($obj->{'as'})
-        ,TopLevel::fromASM($obj->{'asm'})
-        ,TopLevel::fromAssert($obj->{'assert'})
-        ,TopLevel::fromAssociatedtype($obj->{'associatedtype'})
-        ,TopLevel::fromAssociativity($obj->{'associativity'})
-        ,TopLevel::fromAsync($obj->{'async'})
-        ,TopLevel::fromAtomic($obj->{'atomic'})
-        ,TopLevel::fromAtomicCancel($obj->{'atomic_cancel'})
-        ,TopLevel::fromAtomicCommit($obj->{'atomic_commit'})
-        ,TopLevel::fromAtomicNoexcept($obj->{'atomic_noexcept'})
-        ,TopLevel::fromAuto($obj->{'auto'})
-        ,TopLevel::fromAwait($obj->{'await'})
-        ,TopLevel::fromBase($obj->{'base'})
-        ,TopLevel::fromBitand($obj->{'bitand'})
-        ,TopLevel::fromBitor($obj->{'bitor'})
-        ,TopLevel::fromBool($obj->{'BOOL'})
-        ,TopLevel::fromPurpleBool($obj->{'bool'})
-        ,TopLevel::fromBoolean($obj->{'boolean'})
-        ,TopLevel::fromBreak($obj->{'break'})
-        ,TopLevel::fromBycopy($obj->{'bycopy'})
-        ,TopLevel::fromByref($obj->{'byref'})
-        ,TopLevel::fromByte($obj->{'byte'})
-        ,TopLevel::fromCase($obj->{'case'})
-        ,TopLevel::fromCatch($obj->{'catch'})
-        ,TopLevel::fromChan($obj->{'chan'})
-        ,TopLevel::fromChar($obj->{'char'})
-        ,TopLevel::fromChar16T($obj->{'char16_t'})
-        ,TopLevel::fromChar32T($obj->{'char32_t'})
-        ,TopLevel::fromChecked($obj->{'checked'})
-        ,TopLevel::fromTopLevelClass($obj->{'class'})
+    public static function fromTypeof(stdClass|float|null $value): Typeof|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Typeof::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toTypeof(): stdClass|float|null {
+        if (TopLevel::validateTypeof($this->typeof))  {
+            if (is_null($this->typeof)) {
+                return $this->typeof; /*null*/
+            } elseif ($this->typeof instanceof Typeof) {
+                return $this->typeof->to(); /*class*/
+            } elseif (is_float($this->typeof) || is_int($this->typeof)) {
+                return $this->typeof; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::typeof');
+    }
+
+    /**
+     * @param Typeof|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateTypeof(Typeof|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::typeof");
+            }
+        } elseif ($value instanceof Typeof) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::typeof");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::typeof");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Typeof|float|null
+     */
+    public function getTypeof(): Typeof|float|null {
+        if (TopLevel::validateTypeof($this->typeof))  {
+            return $this->typeof;
+        }
+        throw new Exception('never get to getTypeof TopLevel::typeof');
+    }
+
+    /**
+     * @return Typeof|float|null
+     */
+    public static function sampleTypeof(): Typeof|float|null {
+        return Typeof::sample(); /*321:typeof*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Uint|float|null
+     */
+    public static function fromUint(stdClass|float|null $value): Uint|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Uint::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUint(): stdClass|float|null {
+        if (TopLevel::validateUint($this->uint))  {
+            if (is_null($this->uint)) {
+                return $this->uint; /*null*/
+            } elseif ($this->uint instanceof Uint) {
+                return $this->uint->to(); /*class*/
+            } elseif (is_float($this->uint) || is_int($this->uint)) {
+                return $this->uint; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::uint');
+    }
+
+    /**
+     * @param Uint|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUint(Uint|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::uint");
+            }
+        } elseif ($value instanceof Uint) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::uint");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::uint");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Uint|float|null
+     */
+    public function getUint(): Uint|float|null {
+        if (TopLevel::validateUint($this->uint))  {
+            return $this->uint;
+        }
+        throw new Exception('never get to getUint TopLevel::uint');
+    }
+
+    /**
+     * @return Uint|float|null
+     */
+    public static function sampleUint(): Uint|float|null {
+        return Uint::sample(); /*322:uint*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Ulong|float|null
+     */
+    public static function fromUlong(stdClass|float|null $value): Ulong|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Ulong::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUlong(): stdClass|float|null {
+        if (TopLevel::validateUlong($this->ulong))  {
+            if (is_null($this->ulong)) {
+                return $this->ulong; /*null*/
+            } elseif ($this->ulong instanceof Ulong) {
+                return $this->ulong->to(); /*class*/
+            } elseif (is_float($this->ulong) || is_int($this->ulong)) {
+                return $this->ulong; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::ulong');
+    }
+
+    /**
+     * @param Ulong|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUlong(Ulong|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::ulong");
+            }
+        } elseif ($value instanceof Ulong) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::ulong");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::ulong");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Ulong|float|null
+     */
+    public function getUlong(): Ulong|float|null {
+        if (TopLevel::validateUlong($this->ulong))  {
+            return $this->ulong;
+        }
+        throw new Exception('never get to getUlong TopLevel::ulong');
+    }
+
+    /**
+     * @return Ulong|float|null
+     */
+    public static function sampleUlong(): Ulong|float|null {
+        return Ulong::sample(); /*323:ulong*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Unchecked|float|null
+     */
+    public static function fromUnchecked(stdClass|float|null $value): Unchecked|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Unchecked::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUnchecked(): stdClass|float|null {
+        if (TopLevel::validateUnchecked($this->unchecked))  {
+            if (is_null($this->unchecked)) {
+                return $this->unchecked; /*null*/
+            } elseif ($this->unchecked instanceof Unchecked) {
+                return $this->unchecked->to(); /*class*/
+            } elseif (is_float($this->unchecked) || is_int($this->unchecked)) {
+                return $this->unchecked; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::unchecked');
+    }
+
+    /**
+     * @param Unchecked|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUnchecked(Unchecked|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::unchecked");
+            }
+        } elseif ($value instanceof Unchecked) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::unchecked");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::unchecked");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Unchecked|float|null
+     */
+    public function getUnchecked(): Unchecked|float|null {
+        if (TopLevel::validateUnchecked($this->unchecked))  {
+            return $this->unchecked;
+        }
+        throw new Exception('never get to getUnchecked TopLevel::unchecked');
+    }
+
+    /**
+     * @return Unchecked|float|null
+     */
+    public static function sampleUnchecked(): Unchecked|float|null {
+        return Unchecked::sample(); /*324:unchecked*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Undefined|float|null
+     */
+    public static function fromUndefined(stdClass|float|null $value): Undefined|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Undefined::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUndefined(): stdClass|float|null {
+        if (TopLevel::validateUndefined($this->undefined))  {
+            if (is_null($this->undefined)) {
+                return $this->undefined; /*null*/
+            } elseif ($this->undefined instanceof Undefined) {
+                return $this->undefined->to(); /*class*/
+            } elseif (is_float($this->undefined) || is_int($this->undefined)) {
+                return $this->undefined; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::undefined');
+    }
+
+    /**
+     * @param Undefined|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUndefined(Undefined|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::undefined");
+            }
+        } elseif ($value instanceof Undefined) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::undefined");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::undefined");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Undefined|float|null
+     */
+    public function getUndefined(): Undefined|float|null {
+        if (TopLevel::validateUndefined($this->undefined))  {
+            return $this->undefined;
+        }
+        throw new Exception('never get to getUndefined TopLevel::undefined');
+    }
+
+    /**
+     * @return Undefined|float|null
+     */
+    public static function sampleUndefined(): Undefined|float|null {
+        return Undefined::sample(); /*325:undefined*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return UnionClass|float|null
+     */
+    public static function fromUnion(stdClass|float|null $value): UnionClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return UnionClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUnion(): stdClass|float|null {
+        if (TopLevel::validateUnion($this->union))  {
+            if (is_null($this->union)) {
+                return $this->union; /*null*/
+            } elseif ($this->union instanceof UnionClass) {
+                return $this->union->to(); /*class*/
+            } elseif (is_float($this->union) || is_int($this->union)) {
+                return $this->union; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::union');
+    }
+
+    /**
+     * @param UnionClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUnion(UnionClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::union");
+            }
+        } elseif ($value instanceof UnionClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::union");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::union");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return UnionClass|float|null
+     */
+    public function getUnion(): UnionClass|float|null {
+        if (TopLevel::validateUnion($this->union))  {
+            return $this->union;
+        }
+        throw new Exception('never get to getUnion TopLevel::union');
+    }
+
+    /**
+     * @return UnionClass|float|null
+     */
+    public static function sampleUnion(): UnionClass|float|null {
+        return UnionClass::sample(); /*326:union*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Unowned|float|null
+     */
+    public static function fromUnowned(stdClass|float|null $value): Unowned|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Unowned::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUnowned(): stdClass|float|null {
+        if (TopLevel::validateUnowned($this->unowned))  {
+            if (is_null($this->unowned)) {
+                return $this->unowned; /*null*/
+            } elseif ($this->unowned instanceof Unowned) {
+                return $this->unowned->to(); /*class*/
+            } elseif (is_float($this->unowned) || is_int($this->unowned)) {
+                return $this->unowned; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::unowned');
+    }
+
+    /**
+     * @param Unowned|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUnowned(Unowned|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::unowned");
+            }
+        } elseif ($value instanceof Unowned) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::unowned");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::unowned");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Unowned|float|null
+     */
+    public function getUnowned(): Unowned|float|null {
+        if (TopLevel::validateUnowned($this->unowned))  {
+            return $this->unowned;
+        }
+        throw new Exception('never get to getUnowned TopLevel::unowned');
+    }
+
+    /**
+     * @return Unowned|float|null
+     */
+    public static function sampleUnowned(): Unowned|float|null {
+        return Unowned::sample(); /*327:unowned*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Unsafe|float|null
+     */
+    public static function fromUnsafe(stdClass|float|null $value): Unsafe|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Unsafe::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUnsafe(): stdClass|float|null {
+        if (TopLevel::validateUnsafe($this->unsafe))  {
+            if (is_null($this->unsafe)) {
+                return $this->unsafe; /*null*/
+            } elseif ($this->unsafe instanceof Unsafe) {
+                return $this->unsafe->to(); /*class*/
+            } elseif (is_float($this->unsafe) || is_int($this->unsafe)) {
+                return $this->unsafe; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::unsafe');
+    }
+
+    /**
+     * @param Unsafe|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUnsafe(Unsafe|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::unsafe");
+            }
+        } elseif ($value instanceof Unsafe) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::unsafe");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::unsafe");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Unsafe|float|null
+     */
+    public function getUnsafe(): Unsafe|float|null {
+        if (TopLevel::validateUnsafe($this->unsafe))  {
+            return $this->unsafe;
+        }
+        throw new Exception('never get to getUnsafe TopLevel::unsafe');
+    }
+
+    /**
+     * @return Unsafe|float|null
+     */
+    public static function sampleUnsafe(): Unsafe|float|null {
+        return Unsafe::sample(); /*328:unsafe*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Unsigned|float|null
+     */
+    public static function fromUnsigned(stdClass|float|null $value): Unsigned|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Unsigned::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUnsigned(): stdClass|float|null {
+        if (TopLevel::validateUnsigned($this->unsigned))  {
+            if (is_null($this->unsigned)) {
+                return $this->unsigned; /*null*/
+            } elseif ($this->unsigned instanceof Unsigned) {
+                return $this->unsigned->to(); /*class*/
+            } elseif (is_float($this->unsigned) || is_int($this->unsigned)) {
+                return $this->unsigned; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::unsigned');
+    }
+
+    /**
+     * @param Unsigned|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUnsigned(Unsigned|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::unsigned");
+            }
+        } elseif ($value instanceof Unsigned) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::unsigned");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::unsigned");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Unsigned|float|null
+     */
+    public function getUnsigned(): Unsigned|float|null {
+        if (TopLevel::validateUnsigned($this->unsigned))  {
+            return $this->unsigned;
+        }
+        throw new Exception('never get to getUnsigned TopLevel::unsigned');
+    }
+
+    /**
+     * @return Unsigned|float|null
+     */
+    public static function sampleUnsigned(): Unsigned|float|null {
+        return Unsigned::sample(); /*329:unsigned*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Ushort|float|null
+     */
+    public static function fromUshort(stdClass|float|null $value): Ushort|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Ushort::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUshort(): stdClass|float|null {
+        if (TopLevel::validateUshort($this->ushort))  {
+            if (is_null($this->ushort)) {
+                return $this->ushort; /*null*/
+            } elseif ($this->ushort instanceof Ushort) {
+                return $this->ushort->to(); /*class*/
+            } elseif (is_float($this->ushort) || is_int($this->ushort)) {
+                return $this->ushort; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::ushort');
+    }
+
+    /**
+     * @param Ushort|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUshort(Ushort|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::ushort");
+            }
+        } elseif ($value instanceof Ushort) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::ushort");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::ushort");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Ushort|float|null
+     */
+    public function getUshort(): Ushort|float|null {
+        if (TopLevel::validateUshort($this->ushort))  {
+            return $this->ushort;
+        }
+        throw new Exception('never get to getUshort TopLevel::ushort');
+    }
+
+    /**
+     * @return Ushort|float|null
+     */
+    public static function sampleUshort(): Ushort|float|null {
+        return Ushort::sample(); /*330:ushort*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Using|float|null
+     */
+    public static function fromUsing(stdClass|float|null $value): Using|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Using::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUsing(): stdClass|float|null {
+        if (TopLevel::validateUsing($this->using))  {
+            if (is_null($this->using)) {
+                return $this->using; /*null*/
+            } elseif ($this->using instanceof Using) {
+                return $this->using->to(); /*class*/
+            } elseif (is_float($this->using) || is_int($this->using)) {
+                return $this->using; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::using');
+    }
+
+    /**
+     * @param Using|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUsing(Using|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::using");
+            }
+        } elseif ($value instanceof Using) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::using");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::using");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Using|float|null
+     */
+    public function getUsing(): Using|float|null {
+        if (TopLevel::validateUsing($this->using))  {
+            return $this->using;
+        }
+        throw new Exception('never get to getUsing TopLevel::using');
+    }
+
+    /**
+     * @return Using|float|null
+     */
+    public static function sampleUsing(): Using|float|null {
+        return Using::sample(); /*331:using*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Utf8JSONReader|float|null
+     */
+    public static function fromUtf8JSONReader(stdClass|float|null $value): Utf8JSONReader|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Utf8JSONReader::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUtf8JSONReader(): stdClass|float|null {
+        if (TopLevel::validateUtf8JSONReader($this->utf8JSONReader))  {
+            if (is_null($this->utf8JSONReader)) {
+                return $this->utf8JSONReader; /*null*/
+            } elseif ($this->utf8JSONReader instanceof Utf8JSONReader) {
+                return $this->utf8JSONReader->to(); /*class*/
+            } elseif (is_float($this->utf8JSONReader) || is_int($this->utf8JSONReader)) {
+                return $this->utf8JSONReader; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::utf8JSONReader');
+    }
+
+    /**
+     * @param Utf8JSONReader|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUtf8JSONReader(Utf8JSONReader|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::utf8JSONReader");
+            }
+        } elseif ($value instanceof Utf8JSONReader) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::utf8JSONReader");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::utf8JSONReader");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Utf8JSONReader|float|null
+     */
+    public function getUtf8JSONReader(): Utf8JSONReader|float|null {
+        if (TopLevel::validateUtf8JSONReader($this->utf8JSONReader))  {
+            return $this->utf8JSONReader;
+        }
+        throw new Exception('never get to getUtf8JSONReader TopLevel::utf8JSONReader');
+    }
+
+    /**
+     * @return Utf8JSONReader|float|null
+     */
+    public static function sampleUtf8JSONReader(): Utf8JSONReader|float|null {
+        return Utf8JSONReader::sample(); /*332:utf8JSONReader*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Utf8JSONWriter|float|null
+     */
+    public static function fromUtf8JSONWriter(stdClass|float|null $value): Utf8JSONWriter|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Utf8JSONWriter::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUtf8JSONWriter(): stdClass|float|null {
+        if (TopLevel::validateUtf8JSONWriter($this->utf8JSONWriter))  {
+            if (is_null($this->utf8JSONWriter)) {
+                return $this->utf8JSONWriter; /*null*/
+            } elseif ($this->utf8JSONWriter instanceof Utf8JSONWriter) {
+                return $this->utf8JSONWriter->to(); /*class*/
+            } elseif (is_float($this->utf8JSONWriter) || is_int($this->utf8JSONWriter)) {
+                return $this->utf8JSONWriter; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::utf8JSONWriter');
+    }
+
+    /**
+     * @param Utf8JSONWriter|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUtf8JSONWriter(Utf8JSONWriter|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::utf8JSONWriter");
+            }
+        } elseif ($value instanceof Utf8JSONWriter) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::utf8JSONWriter");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::utf8JSONWriter");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Utf8JSONWriter|float|null
+     */
+    public function getUtf8JSONWriter(): Utf8JSONWriter|float|null {
+        if (TopLevel::validateUtf8JSONWriter($this->utf8JSONWriter))  {
+            return $this->utf8JSONWriter;
+        }
+        throw new Exception('never get to getUtf8JSONWriter TopLevel::utf8JSONWriter');
+    }
+
+    /**
+     * @return Utf8JSONWriter|float|null
+     */
+    public static function sampleUtf8JSONWriter(): Utf8JSONWriter|float|null {
+        return Utf8JSONWriter::sample(); /*333:utf8JSONWriter*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return UUID|float|null
+     */
+    public static function fromUUID(stdClass|float|null $value): UUID|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return UUID::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toUUID(): stdClass|float|null {
+        if (TopLevel::validateUUID($this->uuid))  {
+            if (is_null($this->uuid)) {
+                return $this->uuid; /*null*/
+            } elseif ($this->uuid instanceof UUID) {
+                return $this->uuid->to(); /*class*/
+            } elseif (is_float($this->uuid) || is_int($this->uuid)) {
+                return $this->uuid; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::uuid');
+    }
+
+    /**
+     * @param UUID|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateUUID(UUID|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::uuid");
+            }
+        } elseif ($value instanceof UUID) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::uuid");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::uuid");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return UUID|float|null
+     */
+    public function getUUID(): UUID|float|null {
+        if (TopLevel::validateUUID($this->uuid))  {
+            return $this->uuid;
+        }
+        throw new Exception('never get to getUUID TopLevel::uuid');
+    }
+
+    /**
+     * @return UUID|float|null
+     */
+    public static function sampleUUID(): UUID|float|null {
+        return UUID::sample(); /*334:uuid*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return VarClass|float|null
+     */
+    public static function fromVar(stdClass|float|null $value): VarClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return VarClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toVar(): stdClass|float|null {
+        if (TopLevel::validateVar($this->var))  {
+            if (is_null($this->var)) {
+                return $this->var; /*null*/
+            } elseif ($this->var instanceof VarClass) {
+                return $this->var->to(); /*class*/
+            } elseif (is_float($this->var) || is_int($this->var)) {
+                return $this->var; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::var');
+    }
+
+    /**
+     * @param VarClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateVar(VarClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::var");
+            }
+        } elseif ($value instanceof VarClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::var");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::var");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return VarClass|float|null
+     */
+    public function getVar(): VarClass|float|null {
+        if (TopLevel::validateVar($this->var))  {
+            return $this->var;
+        }
+        throw new Exception('never get to getVar TopLevel::var');
+    }
+
+    /**
+     * @return VarClass|float|null
+     */
+    public static function sampleVar(): VarClass|float|null {
+        return VarClass::sample(); /*335:var*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Virtual|float|null
+     */
+    public static function fromVirtual(stdClass|float|null $value): Virtual|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Virtual::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toVirtual(): stdClass|float|null {
+        if (TopLevel::validateVirtual($this->virtual))  {
+            if (is_null($this->virtual)) {
+                return $this->virtual; /*null*/
+            } elseif ($this->virtual instanceof Virtual) {
+                return $this->virtual->to(); /*class*/
+            } elseif (is_float($this->virtual) || is_int($this->virtual)) {
+                return $this->virtual; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::virtual');
+    }
+
+    /**
+     * @param Virtual|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateVirtual(Virtual|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::virtual");
+            }
+        } elseif ($value instanceof Virtual) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::virtual");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::virtual");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Virtual|float|null
+     */
+    public function getVirtual(): Virtual|float|null {
+        if (TopLevel::validateVirtual($this->virtual))  {
+            return $this->virtual;
+        }
+        throw new Exception('never get to getVirtual TopLevel::virtual');
+    }
+
+    /**
+     * @return Virtual|float|null
+     */
+    public static function sampleVirtual(): Virtual|float|null {
+        return Virtual::sample(); /*336:virtual*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return VoidClass|float|null
+     */
+    public static function fromVoid(stdClass|float|null $value): VoidClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return VoidClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toVoid(): stdClass|float|null {
+        if (TopLevel::validateVoid($this->void))  {
+            if (is_null($this->void)) {
+                return $this->void; /*null*/
+            } elseif ($this->void instanceof VoidClass) {
+                return $this->void->to(); /*class*/
+            } elseif (is_float($this->void) || is_int($this->void)) {
+                return $this->void; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::void');
+    }
+
+    /**
+     * @param VoidClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateVoid(VoidClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::void");
+            }
+        } elseif ($value instanceof VoidClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::void");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::void");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return VoidClass|float|null
+     */
+    public function getVoid(): VoidClass|float|null {
+        if (TopLevel::validateVoid($this->void))  {
+            return $this->void;
+        }
+        throw new Exception('never get to getVoid TopLevel::void');
+    }
+
+    /**
+     * @return VoidClass|float|null
+     */
+    public static function sampleVoid(): VoidClass|float|null {
+        return VoidClass::sample(); /*337:void*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Volatile|float|null
+     */
+    public static function fromVolatile(stdClass|float|null $value): Volatile|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Volatile::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toVolatile(): stdClass|float|null {
+        if (TopLevel::validateVolatile($this->volatile))  {
+            if (is_null($this->volatile)) {
+                return $this->volatile; /*null*/
+            } elseif ($this->volatile instanceof Volatile) {
+                return $this->volatile->to(); /*class*/
+            } elseif (is_float($this->volatile) || is_int($this->volatile)) {
+                return $this->volatile; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::volatile');
+    }
+
+    /**
+     * @param Volatile|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateVolatile(Volatile|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::volatile");
+            }
+        } elseif ($value instanceof Volatile) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::volatile");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::volatile");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Volatile|float|null
+     */
+    public function getVolatile(): Volatile|float|null {
+        if (TopLevel::validateVolatile($this->volatile))  {
+            return $this->volatile;
+        }
+        throw new Exception('never get to getVolatile TopLevel::volatile');
+    }
+
+    /**
+     * @return Volatile|float|null
+     */
+    public static function sampleVolatile(): Volatile|float|null {
+        return Volatile::sample(); /*338:volatile*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return WcharT|float|null
+     */
+    public static function fromWcharT(stdClass|float|null $value): WcharT|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return WcharT::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWcharT(): stdClass|float|null {
+        if (TopLevel::validateWcharT($this->wcharT))  {
+            if (is_null($this->wcharT)) {
+                return $this->wcharT; /*null*/
+            } elseif ($this->wcharT instanceof WcharT) {
+                return $this->wcharT->to(); /*class*/
+            } elseif (is_float($this->wcharT) || is_int($this->wcharT)) {
+                return $this->wcharT; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::wcharT');
+    }
+
+    /**
+     * @param WcharT|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWcharT(WcharT|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::wcharT");
+            }
+        } elseif ($value instanceof WcharT) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::wcharT");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::wcharT");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return WcharT|float|null
+     */
+    public function getWcharT(): WcharT|float|null {
+        if (TopLevel::validateWcharT($this->wcharT))  {
+            return $this->wcharT;
+        }
+        throw new Exception('never get to getWcharT TopLevel::wcharT');
+    }
+
+    /**
+     * @return WcharT|float|null
+     */
+    public static function sampleWcharT(): WcharT|float|null {
+        return WcharT::sample(); /*339:wcharT*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Weak|float|null
+     */
+    public static function fromWeak(stdClass|float|null $value): Weak|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Weak::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWeak(): stdClass|float|null {
+        if (TopLevel::validateWeak($this->weak))  {
+            if (is_null($this->weak)) {
+                return $this->weak; /*null*/
+            } elseif ($this->weak instanceof Weak) {
+                return $this->weak->to(); /*class*/
+            } elseif (is_float($this->weak) || is_int($this->weak)) {
+                return $this->weak; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::weak');
+    }
+
+    /**
+     * @param Weak|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWeak(Weak|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::weak");
+            }
+        } elseif ($value instanceof Weak) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::weak");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::weak");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Weak|float|null
+     */
+    public function getWeak(): Weak|float|null {
+        if (TopLevel::validateWeak($this->weak))  {
+            return $this->weak;
+        }
+        throw new Exception('never get to getWeak TopLevel::weak');
+    }
+
+    /**
+     * @return Weak|float|null
+     */
+    public static function sampleWeak(): Weak|float|null {
+        return Weak::sample(); /*340:weak*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Where|float|null
+     */
+    public static function fromWhere(stdClass|float|null $value): Where|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Where::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWhere(): stdClass|float|null {
+        if (TopLevel::validateWhere($this->where))  {
+            if (is_null($this->where)) {
+                return $this->where; /*null*/
+            } elseif ($this->where instanceof Where) {
+                return $this->where->to(); /*class*/
+            } elseif (is_float($this->where) || is_int($this->where)) {
+                return $this->where; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::where');
+    }
+
+    /**
+     * @param Where|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWhere(Where|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::where");
+            }
+        } elseif ($value instanceof Where) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::where");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::where");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Where|float|null
+     */
+    public function getWhere(): Where|float|null {
+        if (TopLevel::validateWhere($this->where))  {
+            return $this->where;
+        }
+        throw new Exception('never get to getWhere TopLevel::where');
+    }
+
+    /**
+     * @return Where|float|null
+     */
+    public static function sampleWhere(): Where|float|null {
+        return Where::sample(); /*341:where*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return WhileClass|float|null
+     */
+    public static function fromWhile(stdClass|float|null $value): WhileClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return WhileClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWhile(): stdClass|float|null {
+        if (TopLevel::validateWhile($this->while))  {
+            if (is_null($this->while)) {
+                return $this->while; /*null*/
+            } elseif ($this->while instanceof WhileClass) {
+                return $this->while->to(); /*class*/
+            } elseif (is_float($this->while) || is_int($this->while)) {
+                return $this->while; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::while');
+    }
+
+    /**
+     * @param WhileClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWhile(WhileClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::while");
+            }
+        } elseif ($value instanceof WhileClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::while");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::while");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return WhileClass|float|null
+     */
+    public function getWhile(): WhileClass|float|null {
+        if (TopLevel::validateWhile($this->while))  {
+            return $this->while;
+        }
+        throw new Exception('never get to getWhile TopLevel::while');
+    }
+
+    /**
+     * @return WhileClass|float|null
+     */
+    public static function sampleWhile(): WhileClass|float|null {
+        return WhileClass::sample(); /*342:while*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return WillSet|float|null
+     */
+    public static function fromWillSet(stdClass|float|null $value): WillSet|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return WillSet::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWillSet(): stdClass|float|null {
+        if (TopLevel::validateWillSet($this->willSet))  {
+            if (is_null($this->willSet)) {
+                return $this->willSet; /*null*/
+            } elseif ($this->willSet instanceof WillSet) {
+                return $this->willSet->to(); /*class*/
+            } elseif (is_float($this->willSet) || is_int($this->willSet)) {
+                return $this->willSet; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::willSet');
+    }
+
+    /**
+     * @param WillSet|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWillSet(WillSet|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::willSet");
+            }
+        } elseif ($value instanceof WillSet) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::willSet");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::willSet");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return WillSet|float|null
+     */
+    public function getWillSet(): WillSet|float|null {
+        if (TopLevel::validateWillSet($this->willSet))  {
+            return $this->willSet;
+        }
+        throw new Exception('never get to getWillSet TopLevel::willSet');
+    }
+
+    /**
+     * @return WillSet|float|null
+     */
+    public static function sampleWillSet(): WillSet|float|null {
+        return WillSet::sample(); /*343:willSet*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return With|float|null
+     */
+    public static function fromWith(stdClass|float|null $value): With|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return With::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toWith(): stdClass|float|null {
+        if (TopLevel::validateWith($this->with))  {
+            if (is_null($this->with)) {
+                return $this->with; /*null*/
+            } elseif ($this->with instanceof With) {
+                return $this->with->to(); /*class*/
+            } elseif (is_float($this->with) || is_int($this->with)) {
+                return $this->with; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::with');
+    }
+
+    /**
+     * @param With|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateWith(With|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::with");
+            }
+        } elseif ($value instanceof With) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::with");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::with");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return With|float|null
+     */
+    public function getWith(): With|float|null {
+        if (TopLevel::validateWith($this->with))  {
+            return $this->with;
+        }
+        throw new Exception('never get to getWith TopLevel::with');
+    }
+
+    /**
+     * @return With|float|null
+     */
+    public static function sampleWith(): With|float|null {
+        return With::sample(); /*344:with*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return XorClass|float|null
+     */
+    public static function fromXor(stdClass|float|null $value): XorClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return XorClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toXor(): stdClass|float|null {
+        if (TopLevel::validateXor($this->xor))  {
+            if (is_null($this->xor)) {
+                return $this->xor; /*null*/
+            } elseif ($this->xor instanceof XorClass) {
+                return $this->xor->to(); /*class*/
+            } elseif (is_float($this->xor) || is_int($this->xor)) {
+                return $this->xor; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::xor');
+    }
+
+    /**
+     * @param XorClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateXor(XorClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::xor");
+            }
+        } elseif ($value instanceof XorClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::xor");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::xor");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return XorClass|float|null
+     */
+    public function getXor(): XorClass|float|null {
+        if (TopLevel::validateXor($this->xor))  {
+            return $this->xor;
+        }
+        throw new Exception('never get to getXor TopLevel::xor');
+    }
+
+    /**
+     * @return XorClass|float|null
+     */
+    public static function sampleXor(): XorClass|float|null {
+        return XorClass::sample(); /*345:xor*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return XorEq|float|null
+     */
+    public static function fromXorEq(stdClass|float|null $value): XorEq|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return XorEq::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toXorEq(): stdClass|float|null {
+        if (TopLevel::validateXorEq($this->xorEq))  {
+            if (is_null($this->xorEq)) {
+                return $this->xorEq; /*null*/
+            } elseif ($this->xorEq instanceof XorEq) {
+                return $this->xorEq->to(); /*class*/
+            } elseif (is_float($this->xorEq) || is_int($this->xorEq)) {
+                return $this->xorEq; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::xorEq');
+    }
+
+    /**
+     * @param XorEq|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateXorEq(XorEq|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::xorEq");
+            }
+        } elseif ($value instanceof XorEq) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::xorEq");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::xorEq");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return XorEq|float|null
+     */
+    public function getXorEq(): XorEq|float|null {
+        if (TopLevel::validateXorEq($this->xorEq))  {
+            return $this->xorEq;
+        }
+        throw new Exception('never get to getXorEq TopLevel::xorEq');
+    }
+
+    /**
+     * @return XorEq|float|null
+     */
+    public static function sampleXorEq(): XorEq|float|null {
+        return XorEq::sample(); /*346:xorEq*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return Yes|float|null
+     */
+    public static function fromYes(stdClass|float|null $value): Yes|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return Yes::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toYes(): stdClass|float|null {
+        if (TopLevel::validateYes($this->yes))  {
+            if (is_null($this->yes)) {
+                return $this->yes; /*null*/
+            } elseif ($this->yes instanceof Yes) {
+                return $this->yes->to(); /*class*/
+            } elseif (is_float($this->yes) || is_int($this->yes)) {
+                return $this->yes; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::yes');
+    }
+
+    /**
+     * @param Yes|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateYes(Yes|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::yes");
+            }
+        } elseif ($value instanceof Yes) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::yes");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::yes");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return Yes|float|null
+     */
+    public function getYes(): Yes|float|null {
+        if (TopLevel::validateYes($this->yes))  {
+            return $this->yes;
+        }
+        throw new Exception('never get to getYes TopLevel::yes');
+    }
+
+    /**
+     * @return Yes|float|null
+     */
+    public static function sampleYes(): Yes|float|null {
+        return Yes::sample(); /*347:yes*/
+    }
+
+    /**
+     * @param stdClass|float|null $value
+     * @throws Exception
+     * @return YieldClass|float|null
+     */
+    public static function fromYield(stdClass|float|null $value): YieldClass|float|null {
+        if (is_null($value)) {
+            return $value; /*null*/
+        } elseif (is_object($value)) {
+            return YieldClass::from($value); /*class*/
+        } elseif (is_float($value) || is_int($value)) {
+            return $value; /*float*/
+        } else {
+            throw new Exception('Cannot deserialize union value in TopLevel');
+        }
+    }
+
+    /**
+     * @throws Exception
+     * @return stdClass|float|null
+     */
+    public function toYield(): stdClass|float|null {
+        if (TopLevel::validateYield($this->yield))  {
+            if (is_null($this->yield)) {
+                return $this->yield; /*null*/
+            } elseif ($this->yield instanceof YieldClass) {
+                return $this->yield->to(); /*class*/
+            } elseif (is_float($this->yield) || is_int($this->yield)) {
+                return $this->yield; /*float*/
+            } else {
+                throw new Exception('Union value has no matching member in TopLevel');
+            }
+        }
+        throw new Exception('never get to this TopLevel::yield');
+    }
+
+    /**
+     * @param YieldClass|float|null
+     * @return bool
+     * @throws Exception
+     */
+    public static function validateYield(YieldClass|float|null $value): bool {
+        if (is_null($value)) {
+            if (!is_null($value)) {
+                throw new Exception("Attribute Error:TopLevel::yield");
+            }
+        } elseif ($value instanceof YieldClass) {
+            $value->validate();
+        } elseif (is_float($value) || is_int($value)) {
+            if (!is_float($value) && !is_int($value)) {
+                throw new Exception("Attribute Error:TopLevel::yield");
+            }
+        } else {
+            throw new Exception("Attribute Error:TopLevel::yield");
+        }
+        return true;
+    }
+
+    /**
+     * @throws Exception
+     * @return YieldClass|float|null
+     */
+    public function getYield(): YieldClass|float|null {
+        if (TopLevel::validateYield($this->yield))  {
+            return $this->yield;
+        }
+        throw new Exception('never get to getYield TopLevel::yield');
+    }
+
+    /**
+     * @return YieldClass|float|null
+     */
+    public static function sampleYield(): YieldClass|float|null {
+        return YieldClass::sample(); /*348:yield*/
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return TopLevel::validateEmpty($this->empty)
+        || TopLevel::validateTopLevelBool($this->topLevelBool)
+        || TopLevel::validateComplex($this->complex)
+        || TopLevel::validateImaginery($this->imaginery)
+        || TopLevel::validateAbstract($this->abstract)
+        || TopLevel::validateAlignas($this->alignas)
+        || TopLevel::validateAlignof($this->alignof)
+        || TopLevel::validateAnd($this->and)
+        || TopLevel::validateAndEq($this->andEq)
+        || TopLevel::validateTopLevelAny($this->topLevelAny)
+        || TopLevel::validateAny($this->any)
+        || TopLevel::validateArray($this->array)
+        || TopLevel::validateAs($this->as)
+        || TopLevel::validateASM($this->asm)
+        || TopLevel::validateAssert($this->assert)
+        || TopLevel::validateAssociatedtype($this->associatedtype)
+        || TopLevel::validateAssociativity($this->associativity)
+        || TopLevel::validateAsync($this->async)
+        || TopLevel::validateAtomic($this->atomic)
+        || TopLevel::validateAtomicCancel($this->atomicCancel)
+        || TopLevel::validateAtomicCommit($this->atomicCommit)
+        || TopLevel::validateAtomicNoexcept($this->atomicNoexcept)
+        || TopLevel::validateAuto($this->auto)
+        || TopLevel::validateAwait($this->await)
+        || TopLevel::validateBase($this->base)
+        || TopLevel::validateBitand($this->bitand)
+        || TopLevel::validateBitor($this->bitor)
+        || TopLevel::validateBool($this->bool)
+        || TopLevel::validatePurpleBool($this->purpleBool)
+        || TopLevel::validateBoolean($this->boolean)
+        || TopLevel::validateBreak($this->break)
+        || TopLevel::validateBycopy($this->bycopy)
+        || TopLevel::validateByref($this->byref)
+        || TopLevel::validateByte($this->byte)
+        || TopLevel::validateCase($this->case)
+        || TopLevel::validateCatch($this->catch)
+        || TopLevel::validateChan($this->chan)
+        || TopLevel::validateChar($this->char)
+        || TopLevel::validateChar16T($this->char16T)
+        || TopLevel::validateChar32T($this->char32T)
+        || TopLevel::validateChecked($this->checked)
+        || TopLevel::validateTopLevelClass($this->topLevelClass)
+        || TopLevel::validateClass($this->class)
+        || TopLevel::validateClone($this->clone)
+        || TopLevel::validateCoAwait($this->coAwait)
+        || TopLevel::validateCoReturn($this->coReturn)
+        || TopLevel::validateCoYield($this->coYield)
+        || TopLevel::validateCompl($this->compl)
+        || TopLevel::validateConcept($this->concept)
+        || TopLevel::validateConsole($this->console)
+        || TopLevel::validateConst($this->const)
+        || TopLevel::validateConstCast($this->constCast)
+        || TopLevel::validateConstexpr($this->constexpr)
+        || TopLevel::validateConstructor($this->constructor)
+        || TopLevel::validateContinue($this->continue)
+        || TopLevel::validateConvenience($this->convenience)
+        || TopLevel::validateConvert($this->convert)
+        || TopLevel::validateConverter($this->converter)
+        || TopLevel::validateCultureInfo($this->cultureInfo)
+        || TopLevel::validateDate($this->date)
+        || TopLevel::validateDateParseHandling($this->dateParseHandling)
+        || TopLevel::validateDateFormatter($this->dateFormatter)
+        || TopLevel::validateDateOnly($this->dateOnly)
+        || TopLevel::validateDateOnlyConverter($this->dateOnlyConverter)
+        || TopLevel::validateDateTime($this->dateTime)
+        || TopLevel::validateDateTimeStyles($this->dateTimeStyles)
+        || TopLevel::validateDebugger($this->debugger)
+        || TopLevel::validateDecimal($this->decimal)
+        || TopLevel::validateDeclare($this->declare)
+        || TopLevel::validateDecltype($this->decltype)
+        || TopLevel::validateDecodeString($this->decodeString)
+        || TopLevel::validateDef($this->def)
+        || TopLevel::validateDefault($this->default)
+        || TopLevel::validateDefer($this->defer)
+        || TopLevel::validateDeinit($this->deinit)
+        || TopLevel::validateDel($this->del)
+        || TopLevel::validateDelegate($this->delegate)
+        || TopLevel::validateDelete($this->delete)
+        || TopLevel::validateDict($this->dict)
+        || TopLevel::validateDictionary($this->dictionary)
+        || TopLevel::validateDidSet($this->didSet)
+        || TopLevel::validateDo($this->do)
+        || TopLevel::validateDouble($this->double)
+        || TopLevel::validateDummy($this->dummy)
+        || TopLevel::validateDynamic($this->dynamic)
+        || TopLevel::validateDynamicCast($this->dynamicCast)
+        || TopLevel::validateElif($this->elif)
+        || TopLevel::validateElse($this->else)
+        || TopLevel::validateEncodeQuickType($this->encodeQuickType)
+        || TopLevel::validateEnum($this->enum)
+        || TopLevel::validateEnumValues($this->enumValues)
+        || TopLevel::validateEqualityContract($this->equalityContract)
+        || TopLevel::validateEvent($this->event)
+        || TopLevel::validateExcept($this->except)
+        || TopLevel::validateException($this->exception)
+        || TopLevel::validateExplicit($this->explicit)
+        || TopLevel::validateExport($this->export)
+        || TopLevel::validateExposing($this->exposing)
+        || TopLevel::validateExtends($this->extends)
+        || TopLevel::validateExtension($this->extension)
+        || TopLevel::validateExtern($this->extern)
+        || TopLevel::validateFallthrough($this->fallthrough)
+        || TopLevel::validateTopLevelFalse($this->topLevelFalse)
+        || TopLevel::validateFalse($this->false)
+        || TopLevel::validateFileprivate($this->fileprivate)
+        || TopLevel::validateFinal($this->final)
+        || TopLevel::validateFinally($this->finally)
+        || TopLevel::validateFixed($this->fixed)
+        || TopLevel::validateFloat($this->float)
+        || TopLevel::validateFor($this->for)
+        || TopLevel::validateForeach($this->foreach)
+        || TopLevel::validateFormatException($this->formatException)
+        || TopLevel::validateFriend($this->friend)
+        || TopLevel::validateFrom($this->from)
+        || TopLevel::validateFromJSON($this->fromJSON)
+        || TopLevel::validateFunc($this->func)
+        || TopLevel::validateFunction($this->function)
+        || TopLevel::validateGet($this->get)
+        || TopLevel::validateGlobal($this->global)
+        || TopLevel::validateGo($this->go)
+        || TopLevel::validateGoto($this->goto)
+        || TopLevel::validateGuard($this->guard)
+        || TopLevel::validateHashCode($this->hashCode)
+        || TopLevel::validateHasOwnProperty($this->hasOwnProperty)
+        || TopLevel::validateID($this->id)
+        || TopLevel::validateIf($this->if)
+        || TopLevel::validateImp($this->imp)
+        || TopLevel::validateImplements($this->implements)
+        || TopLevel::validateImplicit($this->implicit)
+        || TopLevel::validateImport($this->import)
+        || TopLevel::validateIn($this->in)
+        || TopLevel::validateIndirect($this->indirect)
+        || TopLevel::validateInfix($this->infix)
+        || TopLevel::validateInit($this->init)
+        || TopLevel::validateInline($this->inline)
+        || TopLevel::validateInout($this->inout)
+        || TopLevel::validateInstanceof($this->instanceof)
+        || TopLevel::validateInt($this->int)
+        || TopLevel::validateInterface($this->interface)
+        || TopLevel::validateInternal($this->internal)
+        || TopLevel::validateIs($this->is)
+        || TopLevel::validateISODateTimeOffsetConverter($this->isoDateTimeOffsetConverter)
+        || TopLevel::validateIterable($this->iterable)
+        || TopLevel::validateJdec($this->jdec)
+        || TopLevel::validateJenc($this->jenc)
+        || TopLevel::validateJpipe($this->jpipe)
+        || TopLevel::validateJSON($this->json)
+        || TopLevel::validateJSONConverter($this->jsonConverter)
+        || TopLevel::validateJSONSerializer($this->jsonSerializer)
+        || TopLevel::validateJSONToken($this->jsonToken)
+        || TopLevel::validateJSONWriter($this->jsonWriter)
+        || TopLevel::validateJSONAny($this->jsonAny)
+        || TopLevel::validateJSONCodingKey($this->jsonCodingKey)
+        || TopLevel::validateJSONDecoder($this->jsonDecoder)
+        || TopLevel::validateJSONEncoder($this->jsonEncoder)
+        || TopLevel::validateJSONException($this->jsonException)
+        || TopLevel::validateJSONGenerator($this->jsonGenerator)
+        || TopLevel::validateJSONNode($this->jsonNode)
+        || TopLevel::validateJSONNull($this->jsonNull)
+        || TopLevel::validateJSONParser($this->jsonParser)
+        || TopLevel::validateJSONReader($this->jsonReader)
+        || TopLevel::validateJSONTokenType($this->jsonTokenType)
+        || TopLevel::validateLambda($this->lambda)
+        || TopLevel::validateLazy($this->lazy)
+        || TopLevel::validateLeft($this->left)
+        || TopLevel::validateLet($this->let)
+        || TopLevel::validateList($this->list)
+        || TopLevel::validateLock($this->lock)
+        || TopLevel::validateLong($this->long)
+        || TopLevel::validateMap($this->map)
+        || TopLevel::validateMetadataPropertyHandling($this->metadataPropertyHandling)
+        || TopLevel::validateModule($this->module)
+        || TopLevel::validateMutable($this->mutable)
+        || TopLevel::validateMutating($this->mutating)
+        || TopLevel::validateNamespace($this->namespace)
+        || TopLevel::validateNative($this->native)
+        || TopLevel::validateNew($this->new)
+        || TopLevel::validateNewtonsoft($this->newtonsoft)
+        || TopLevel::validateNil($this->nil)
+        || TopLevel::validateNo($this->no)
+        || TopLevel::validateNoexcept($this->noexcept)
+        || TopLevel::validateNonatomic($this->nonatomic)
+        || TopLevel::validateTopLevelNone($this->topLevelNone)
+        || TopLevel::validateNone($this->none)
+        || TopLevel::validateNonlocal($this->nonlocal)
+        || TopLevel::validateNonmutating($this->nonmutating)
+        || TopLevel::validateNoSuchMethod($this->noSuchMethod)
+        || TopLevel::validateNot($this->not)
+        || TopLevel::validateNotEq($this->notEq)
+        || TopLevel::validateNSError($this->nsError)
+        || TopLevel::validateNSString($this->nsString)
+        || TopLevel::validateNull($this->null)
+        || TopLevel::validateTopLevelNull($this->topLevelNull)
+        || TopLevel::validateNullptr($this->nullptr)
+        || TopLevel::validateNumber($this->number)
+        || TopLevel::validateObject($this->object)
+        || TopLevel::validateObjectMapper($this->objectMapper)
+        || TopLevel::validateOf($this->of)
+        || TopLevel::validateOneway($this->oneway)
+        || TopLevel::validateOpen($this->open)
+        || TopLevel::validateOperator($this->operator)
+        || TopLevel::validateOptional($this->optional)
+        || TopLevel::validateOr($this->or)
+        || TopLevel::validateOrEq($this->orEq)
+        || TopLevel::validateOut($this->out)
+        || TopLevel::validateOverride($this->override)
+        || TopLevel::validatePackage($this->package)
+        || TopLevel::validateParams($this->params)
+        || TopLevel::validatePass($this->pass)
+        || TopLevel::validatePort($this->port)
+        || TopLevel::validatePostfix($this->postfix)
+        || TopLevel::validatePrecedence($this->precedence)
+        || TopLevel::validatePrefix($this->prefix)
+        || TopLevel::validatePrint($this->print)
+        || TopLevel::validatePrintf($this->printf)
+        || TopLevel::validatePrintMembers($this->printMembers)
+        || TopLevel::validatePrivate($this->private)
+        || TopLevel::validateProtected($this->protected)
+        || TopLevel::validateProtocol($this->protocol)
+        || TopLevel::validateTopLevelProtocol($this->topLevelProtocol)
+        || TopLevel::validatePublic($this->public)
+        || TopLevel::validateQuicktype($this->quicktype)
+        || TopLevel::validateRaise($this->raise)
+        || TopLevel::validateRange($this->range)
+        || TopLevel::validateReadonly($this->readonly)
+        || TopLevel::validateRef($this->ref)
+        || TopLevel::validateRegExp($this->regExp)
+        || TopLevel::validateRegister($this->register)
+        || TopLevel::validateReinterpretCast($this->reinterpretCast)
+        || TopLevel::validateRepeat($this->repeat)
+        || TopLevel::validateRequire($this->require)
+        || TopLevel::validateRequired($this->required)
+        || TopLevel::validateRequires($this->requires)
+        || TopLevel::validateRestrict($this->restrict)
+        || TopLevel::validateRetain($this->retain)
+        || TopLevel::validateRethrows($this->rethrows)
+        || TopLevel::validateReturn($this->return)
+        || TopLevel::validateRight($this->right)
+        || TopLevel::validateRuntimeType($this->runtimeType)
+        || TopLevel::validateS($this->s)
+        || TopLevel::validateSbyte($this->sbyte)
+        || TopLevel::validateSealed($this->sealed)
+        || TopLevel::validateSel($this->sel)
+        || TopLevel::validateSelect($this->select)
+        || TopLevel::validateSelf($this->self)
+        || TopLevel::validateTopLevelSelf($this->topLevelSelf)
+        || TopLevel::validateSerialize($this->serialize)
+        || TopLevel::validateSerializerProvider($this->serializerProvider)
+        || TopLevel::validateSet($this->set)
+        || TopLevel::validateShort($this->short)
+        || TopLevel::validateSigned($this->signed)
+        || TopLevel::validateSimpleModule($this->simpleModule)
+        || TopLevel::validateSizeof($this->sizeof)
+        || TopLevel::validateStackalloc($this->stackalloc)
+        || TopLevel::validateStandards($this->standards)
+        || TopLevel::validateStatic($this->static)
+        || TopLevel::validateStaticAssert($this->staticAssert)
+        || TopLevel::validateStaticCast($this->staticCast)
+        || TopLevel::validateStdDeserializer($this->stdDeserializer)
+        || TopLevel::validateStdSerializer($this->stdSerializer)
+        || TopLevel::validateStrictfp($this->strictfp)
+        || TopLevel::validateString($this->string)
+        || TopLevel::validateStruct($this->struct)
+        || TopLevel::validateSubscript($this->subscript)
+        || TopLevel::validateSuper($this->super)
+        || TopLevel::validateSwitch($this->switch)
+        || TopLevel::validateSymbol($this->symbol)
+        || TopLevel::validateSynchronized($this->synchronized)
+        || TopLevel::validateSystem($this->system)
+        || TopLevel::validateTemplate($this->template)
+        || TopLevel::validateThen($this->then)
+        || TopLevel::validateTopLevelThis($this->topLevelThis)
+        || TopLevel::validateThreadLocal($this->threadLocal)
+        || TopLevel::validateThrow($this->throw)
+        || TopLevel::validateThrows($this->throws)
+        || TopLevel::validateTimeOnly($this->timeOnly)
+        || TopLevel::validateTimeOnlyConverter($this->timeOnlyConverter)
+        || TopLevel::validateToJSON($this->toJSON)
+        || TopLevel::validateTopLevel($this->topLevel)
+        || TopLevel::validateToString($this->toString)
+        || TopLevel::validateTransient($this->transient)
+        || TopLevel::validateTrue($this->true)
+        || TopLevel::validateTopLevelTrue($this->topLevelTrue)
+        || TopLevel::validateTry($this->try)
+        || TopLevel::validateType($this->type)
+        || TopLevel::validateTopLevelType($this->topLevelType)
+        || TopLevel::validateTypealias($this->typealias)
+        || TopLevel::validateTypedef($this->typedef)
+        || TopLevel::validateTypeid($this->typeid)
+        || TopLevel::validateTypename($this->typename)
+        || TopLevel::validateTypeof($this->typeof)
+        || TopLevel::validateUint($this->uint)
+        || TopLevel::validateUlong($this->ulong)
+        || TopLevel::validateUnchecked($this->unchecked)
+        || TopLevel::validateUndefined($this->undefined)
+        || TopLevel::validateUnion($this->union)
+        || TopLevel::validateUnowned($this->unowned)
+        || TopLevel::validateUnsafe($this->unsafe)
+        || TopLevel::validateUnsigned($this->unsigned)
+        || TopLevel::validateUshort($this->ushort)
+        || TopLevel::validateUsing($this->using)
+        || TopLevel::validateUtf8JSONReader($this->utf8JSONReader)
+        || TopLevel::validateUtf8JSONWriter($this->utf8JSONWriter)
+        || TopLevel::validateUUID($this->uuid)
+        || TopLevel::validateVar($this->var)
+        || TopLevel::validateVirtual($this->virtual)
+        || TopLevel::validateVoid($this->void)
+        || TopLevel::validateVolatile($this->volatile)
+        || TopLevel::validateWcharT($this->wcharT)
+        || TopLevel::validateWeak($this->weak)
+        || TopLevel::validateWhere($this->where)
+        || TopLevel::validateWhile($this->while)
+        || TopLevel::validateWillSet($this->willSet)
+        || TopLevel::validateWith($this->with)
+        || TopLevel::validateXor($this->xor)
+        || TopLevel::validateXorEq($this->xorEq)
+        || TopLevel::validateYes($this->yes)
+        || TopLevel::validateYield($this->yield);
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        $out->{'_'} = $this->toEmpty();
+        $out->{'_Bool'} = $this->toTopLevelBool();
+        $out->{'_Complex'} = $this->toComplex();
+        $out->{'_Imaginery'} = $this->toImaginery();
+        $out->{'abstract'} = $this->toAbstract();
+        $out->{'alignas'} = $this->toAlignas();
+        $out->{'alignof'} = $this->toAlignof();
+        $out->{'and'} = $this->toAnd();
+        $out->{'and_eq'} = $this->toAndEq();
+        $out->{'any'} = $this->toTopLevelAny();
+        $out->{'Any'} = $this->toAny();
+        $out->{'array'} = $this->toArray();
+        $out->{'as'} = $this->toAs();
+        $out->{'asm'} = $this->toASM();
+        $out->{'assert'} = $this->toAssert();
+        $out->{'associatedtype'} = $this->toAssociatedtype();
+        $out->{'associativity'} = $this->toAssociativity();
+        $out->{'async'} = $this->toAsync();
+        $out->{'atomic'} = $this->toAtomic();
+        $out->{'atomic_cancel'} = $this->toAtomicCancel();
+        $out->{'atomic_commit'} = $this->toAtomicCommit();
+        $out->{'atomic_noexcept'} = $this->toAtomicNoexcept();
+        $out->{'auto'} = $this->toAuto();
+        $out->{'await'} = $this->toAwait();
+        $out->{'base'} = $this->toBase();
+        $out->{'bitand'} = $this->toBitand();
+        $out->{'bitor'} = $this->toBitor();
+        $out->{'BOOL'} = $this->toBool();
+        $out->{'bool'} = $this->toPurpleBool();
+        $out->{'boolean'} = $this->toBoolean();
+        $out->{'break'} = $this->toBreak();
+        $out->{'bycopy'} = $this->toBycopy();
+        $out->{'byref'} = $this->toByref();
+        $out->{'byte'} = $this->toByte();
+        $out->{'case'} = $this->toCase();
+        $out->{'catch'} = $this->toCatch();
+        $out->{'chan'} = $this->toChan();
+        $out->{'char'} = $this->toChar();
+        $out->{'char16_t'} = $this->toChar16T();
+        $out->{'char32_t'} = $this->toChar32T();
+        $out->{'checked'} = $this->toChecked();
+        $out->{'class'} = $this->toTopLevelClass();
+        $out->{'Class'} = $this->toClass();
+        $out->{'clone'} = $this->toClone();
+        $out->{'co_await'} = $this->toCoAwait();
+        $out->{'co_return'} = $this->toCoReturn();
+        $out->{'co_yield'} = $this->toCoYield();
+        $out->{'compl'} = $this->toCompl();
+        $out->{'concept'} = $this->toConcept();
+        $out->{'console'} = $this->toConsole();
+        $out->{'const'} = $this->toConst();
+        $out->{'const_cast'} = $this->toConstCast();
+        $out->{'constexpr'} = $this->toConstexpr();
+        $out->{'constructor'} = $this->toConstructor();
+        $out->{'continue'} = $this->toContinue();
+        $out->{'convenience'} = $this->toConvenience();
+        $out->{'convert'} = $this->toConvert();
+        $out->{'converter'} = $this->toConverter();
+        $out->{'CultureInfo'} = $this->toCultureInfo();
+        $out->{'date'} = $this->toDate();
+        $out->{'date_parse_handling'} = $this->toDateParseHandling();
+        $out->{'DateFormatter'} = $this->toDateFormatter();
+        $out->{'DateOnly'} = $this->toDateOnly();
+        $out->{'DateOnlyConverter'} = $this->toDateOnlyConverter();
+        $out->{'DateTime'} = $this->toDateTime();
+        $out->{'DateTimeStyles'} = $this->toDateTimeStyles();
+        $out->{'debugger'} = $this->toDebugger();
+        $out->{'decimal'} = $this->toDecimal();
+        $out->{'declare'} = $this->toDeclare();
+        $out->{'decltype'} = $this->toDecltype();
+        $out->{'decode_string'} = $this->toDecodeString();
+        $out->{'def'} = $this->toDef();
+        $out->{'default'} = $this->toDefault();
+        $out->{'defer'} = $this->toDefer();
+        $out->{'deinit'} = $this->toDeinit();
+        $out->{'del'} = $this->toDel();
+        $out->{'delegate'} = $this->toDelegate();
+        $out->{'delete'} = $this->toDelete();
+        $out->{'dict'} = $this->toDict();
+        $out->{'dictionary'} = $this->toDictionary();
+        $out->{'didSet'} = $this->toDidSet();
+        $out->{'do'} = $this->toDo();
+        $out->{'double'} = $this->toDouble();
+        $out->{'dummy'} = $this->toDummy();
+        $out->{'dynamic'} = $this->toDynamic();
+        $out->{'dynamic_cast'} = $this->toDynamicCast();
+        $out->{'elif'} = $this->toElif();
+        $out->{'else'} = $this->toElse();
+        $out->{'encode_quick_type'} = $this->toEncodeQuickType();
+        $out->{'enum'} = $this->toEnum();
+        $out->{'EnumValues'} = $this->toEnumValues();
+        $out->{'equalityContract'} = $this->toEqualityContract();
+        $out->{'event'} = $this->toEvent();
+        $out->{'except'} = $this->toExcept();
+        $out->{'exception'} = $this->toException();
+        $out->{'explicit'} = $this->toExplicit();
+        $out->{'export'} = $this->toExport();
+        $out->{'exposing'} = $this->toExposing();
+        $out->{'extends'} = $this->toExtends();
+        $out->{'extension'} = $this->toExtension();
+        $out->{'extern'} = $this->toExtern();
+        $out->{'fallthrough'} = $this->toFallthrough();
+        $out->{'false'} = $this->toTopLevelFalse();
+        $out->{'False'} = $this->toFalse();
+        $out->{'fileprivate'} = $this->toFileprivate();
+        $out->{'final'} = $this->toFinal();
+        $out->{'finally'} = $this->toFinally();
+        $out->{'fixed'} = $this->toFixed();
+        $out->{'float'} = $this->toFloat();
+        $out->{'for'} = $this->toFor();
+        $out->{'foreach'} = $this->toForeach();
+        $out->{'FormatException'} = $this->toFormatException();
+        $out->{'friend'} = $this->toFriend();
+        $out->{'from'} = $this->toFrom();
+        $out->{'from_json'} = $this->toFromJSON();
+        $out->{'func'} = $this->toFunc();
+        $out->{'function'} = $this->toFunction();
+        $out->{'get'} = $this->toGet();
+        $out->{'global'} = $this->toGlobal();
+        $out->{'go'} = $this->toGo();
+        $out->{'goto'} = $this->toGoto();
+        $out->{'guard'} = $this->toGuard();
+        $out->{'hashCode'} = $this->toHashCode();
+        $out->{'hasOwnProperty'} = $this->toHasOwnProperty();
+        $out->{'id'} = $this->toID();
+        $out->{'if'} = $this->toIf();
+        $out->{'IMP'} = $this->toImp();
+        $out->{'implements'} = $this->toImplements();
+        $out->{'implicit'} = $this->toImplicit();
+        $out->{'import'} = $this->toImport();
+        $out->{'in'} = $this->toIn();
+        $out->{'indirect'} = $this->toIndirect();
+        $out->{'infix'} = $this->toInfix();
+        $out->{'init'} = $this->toInit();
+        $out->{'inline'} = $this->toInline();
+        $out->{'inout'} = $this->toInout();
+        $out->{'instanceof'} = $this->toInstanceof();
+        $out->{'int'} = $this->toInt();
+        $out->{'interface'} = $this->toInterface();
+        $out->{'internal'} = $this->toInternal();
+        $out->{'is'} = $this->toIs();
+        $out->{'IsoDateTimeOffsetConverter'} = $this->toISODateTimeOffsetConverter();
+        $out->{'iterable'} = $this->toIterable();
+        $out->{'jdec'} = $this->toJdec();
+        $out->{'jenc'} = $this->toJenc();
+        $out->{'jpipe'} = $this->toJpipe();
+        $out->{'json'} = $this->purpleToJSON();
+        $out->{'json_converter'} = $this->toJSONConverter();
+        $out->{'json_serializer'} = $this->toJSONSerializer();
+        $out->{'json_token'} = $this->toJSONToken();
+        $out->{'json_writer'} = $this->toJSONWriter();
+        $out->{'JSONAny'} = $this->toJSONAny();
+        $out->{'JSONCodingKey'} = $this->toJSONCodingKey();
+        $out->{'JSONDecoder'} = $this->toJSONDecoder();
+        $out->{'JSONEncoder'} = $this->toJSONEncoder();
+        $out->{'JsonException'} = $this->toJSONException();
+        $out->{'JsonGenerator'} = $this->toJSONGenerator();
+        $out->{'JsonNode'} = $this->toJSONNode();
+        $out->{'JSONNull'} = $this->toJSONNull();
+        $out->{'JsonParser'} = $this->toJSONParser();
+        $out->{'JsonReader'} = $this->toJSONReader();
+        $out->{'JsonTokenType'} = $this->toJSONTokenType();
+        $out->{'lambda'} = $this->toLambda();
+        $out->{'lazy'} = $this->toLazy();
+        $out->{'left'} = $this->toLeft();
+        $out->{'let'} = $this->toLet();
+        $out->{'list'} = $this->toList();
+        $out->{'lock'} = $this->toLock();
+        $out->{'long'} = $this->toLong();
+        $out->{'map'} = $this->toMap();
+        $out->{'metadata_property_handling'} = $this->toMetadataPropertyHandling();
+        $out->{'module'} = $this->toModule();
+        $out->{'mutable'} = $this->toMutable();
+        $out->{'mutating'} = $this->toMutating();
+        $out->{'namespace'} = $this->toNamespace();
+        $out->{'native'} = $this->toNative();
+        $out->{'new'} = $this->toNew();
+        $out->{'newtonsoft'} = $this->toNewtonsoft();
+        $out->{'nil'} = $this->toNil();
+        $out->{'NO'} = $this->toNo();
+        $out->{'noexcept'} = $this->toNoexcept();
+        $out->{'nonatomic'} = $this->toNonatomic();
+        $out->{'none'} = $this->toTopLevelNone();
+        $out->{'None'} = $this->toNone();
+        $out->{'nonlocal'} = $this->toNonlocal();
+        $out->{'nonmutating'} = $this->toNonmutating();
+        $out->{'noSuchMethod'} = $this->toNoSuchMethod();
+        $out->{'not'} = $this->toNot();
+        $out->{'not_eq'} = $this->toNotEq();
+        $out->{'NSError'} = $this->toNSError();
+        $out->{'NSString'} = $this->toNSString();
+        $out->{'NULL'} = $this->toNull();
+        $out->{'null'} = $this->toTopLevelNull();
+        $out->{'nullptr'} = $this->toNullptr();
+        $out->{'number'} = $this->toNumber();
+        $out->{'object'} = $this->toObject();
+        $out->{'ObjectMapper'} = $this->toObjectMapper();
+        $out->{'of'} = $this->toOf();
+        $out->{'oneway'} = $this->toOneway();
+        $out->{'open'} = $this->toOpen();
+        $out->{'operator'} = $this->toOperator();
+        $out->{'optional'} = $this->toOptional();
+        $out->{'or'} = $this->toOr();
+        $out->{'or_eq'} = $this->toOrEq();
+        $out->{'out'} = $this->toOut();
+        $out->{'override'} = $this->toOverride();
+        $out->{'package'} = $this->toPackage();
+        $out->{'params'} = $this->toParams();
+        $out->{'pass'} = $this->toPass();
+        $out->{'port'} = $this->toPort();
+        $out->{'postfix'} = $this->toPostfix();
+        $out->{'precedence'} = $this->toPrecedence();
+        $out->{'prefix'} = $this->toPrefix();
+        $out->{'print'} = $this->toPrint();
+        $out->{'printf'} = $this->toPrintf();
+        $out->{'printMembers'} = $this->toPrintMembers();
+        $out->{'private'} = $this->toPrivate();
+        $out->{'protected'} = $this->toProtected();
+        $out->{'Protocol'} = $this->toProtocol();
+        $out->{'protocol'} = $this->toTopLevelProtocol();
+        $out->{'public'} = $this->toPublic();
+        $out->{'quicktype'} = $this->toQuicktype();
+        $out->{'raise'} = $this->toRaise();
+        $out->{'range'} = $this->toRange();
+        $out->{'readonly'} = $this->toReadonly();
+        $out->{'ref'} = $this->toRef();
+        $out->{'RegExp'} = $this->toRegExp();
+        $out->{'register'} = $this->toRegister();
+        $out->{'reinterpret_cast'} = $this->toReinterpretCast();
+        $out->{'repeat'} = $this->toRepeat();
+        $out->{'require'} = $this->toRequire();
+        $out->{'required'} = $this->toRequired();
+        $out->{'requires'} = $this->toRequires();
+        $out->{'restrict'} = $this->toRestrict();
+        $out->{'retain'} = $this->toRetain();
+        $out->{'rethrows'} = $this->toRethrows();
+        $out->{'return'} = $this->toReturn();
+        $out->{'right'} = $this->toRight();
+        $out->{'runtimeType'} = $this->toRuntimeType();
+        $out->{'s'} = $this->toS();
+        $out->{'sbyte'} = $this->toSbyte();
+        $out->{'sealed'} = $this->toSealed();
+        $out->{'SEL'} = $this->toSel();
+        $out->{'select'} = $this->toSelect();
+        $out->{'Self'} = $this->toSelf();
+        $out->{'self'} = $this->toTopLevelSelf();
+        $out->{'serialize'} = $this->toSerialize();
+        $out->{'SerializerProvider'} = $this->toSerializerProvider();
+        $out->{'set'} = $this->toSet();
+        $out->{'short'} = $this->toShort();
+        $out->{'signed'} = $this->toSigned();
+        $out->{'SimpleModule'} = $this->toSimpleModule();
+        $out->{'sizeof'} = $this->toSizeof();
+        $out->{'stackalloc'} = $this->toStackalloc();
+        $out->{'Standards'} = $this->toStandards();
+        $out->{'static'} = $this->toStatic();
+        $out->{'static_assert'} = $this->toStaticAssert();
+        $out->{'static_cast'} = $this->toStaticCast();
+        $out->{'StdDeserializer'} = $this->toStdDeserializer();
+        $out->{'StdSerializer'} = $this->toStdSerializer();
+        $out->{'strictfp'} = $this->toStrictfp();
+        $out->{'string'} = $this->purpleToString();
+        $out->{'struct'} = $this->toStruct();
+        $out->{'subscript'} = $this->toSubscript();
+        $out->{'super'} = $this->toSuper();
+        $out->{'switch'} = $this->toSwitch();
+        $out->{'symbol'} = $this->toSymbol();
+        $out->{'synchronized'} = $this->toSynchronized();
+        $out->{'system'} = $this->toSystem();
+        $out->{'template'} = $this->toTemplate();
+        $out->{'then'} = $this->toThen();
+        $out->{'this'} = $this->toTopLevelThis();
+        $out->{'thread_local'} = $this->toThreadLocal();
+        $out->{'throw'} = $this->toThrow();
+        $out->{'throws'} = $this->toThrows();
+        $out->{'TimeOnly'} = $this->toTimeOnly();
+        $out->{'TimeOnlyConverter'} = $this->toTimeOnlyConverter();
+        $out->{'to_json'} = $this->toToJSON();
+        $out->{'top_level'} = $this->toTopLevel();
+        $out->{'toString'} = $this->toToString();
+        $out->{'transient'} = $this->toTransient();
+        $out->{'True'} = $this->toTrue();
+        $out->{'true'} = $this->toTopLevelTrue();
+        $out->{'try'} = $this->toTry();
+        $out->{'Type'} = $this->toType();
+        $out->{'type'} = $this->toTopLevelType();
+        $out->{'typealias'} = $this->toTypealias();
+        $out->{'typedef'} = $this->toTypedef();
+        $out->{'typeid'} = $this->toTypeid();
+        $out->{'typename'} = $this->toTypename();
+        $out->{'typeof'} = $this->toTypeof();
+        $out->{'uint'} = $this->toUint();
+        $out->{'ulong'} = $this->toUlong();
+        $out->{'unchecked'} = $this->toUnchecked();
+        $out->{'undefined'} = $this->toUndefined();
+        $out->{'union'} = $this->toUnion();
+        $out->{'unowned'} = $this->toUnowned();
+        $out->{'unsafe'} = $this->toUnsafe();
+        $out->{'unsigned'} = $this->toUnsigned();
+        $out->{'ushort'} = $this->toUshort();
+        $out->{'using'} = $this->toUsing();
+        $out->{'Utf8JsonReader'} = $this->toUtf8JSONReader();
+        $out->{'Utf8JsonWriter'} = $this->toUtf8JSONWriter();
+        $out->{'UUID'} = $this->toUUID();
+        $out->{'var'} = $this->toVar();
+        $out->{'virtual'} = $this->toVirtual();
+        $out->{'void'} = $this->toVoid();
+        $out->{'volatile'} = $this->toVolatile();
+        $out->{'wchar_t'} = $this->toWcharT();
+        $out->{'weak'} = $this->toWeak();
+        $out->{'where'} = $this->toWhere();
+        $out->{'while'} = $this->toWhile();
+        $out->{'willSet'} = $this->toWillSet();
+        $out->{'with'} = $this->toWith();
+        $out->{'xor'} = $this->toXor();
+        $out->{'xor_eq'} = $this->toXorEq();
+        $out->{'YES'} = $this->toYes();
+        $out->{'yield'} = $this->toYield();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return TopLevel
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): TopLevel {
+        return new TopLevel(
+         TopLevel::fromEmpty($obj->{'_'})
+        ,TopLevel::fromTopLevelBool($obj->{'_Bool'})
+        ,TopLevel::fromComplex($obj->{'_Complex'})
+        ,TopLevel::fromImaginery($obj->{'_Imaginery'})
+        ,TopLevel::fromAbstract($obj->{'abstract'})
+        ,TopLevel::fromAlignas($obj->{'alignas'})
+        ,TopLevel::fromAlignof($obj->{'alignof'})
+        ,TopLevel::fromAnd($obj->{'and'})
+        ,TopLevel::fromAndEq($obj->{'and_eq'})
+        ,TopLevel::fromTopLevelAny($obj->{'any'})
+        ,TopLevel::fromAny($obj->{'Any'})
+        ,TopLevel::fromArray($obj->{'array'})
+        ,TopLevel::fromAs($obj->{'as'})
+        ,TopLevel::fromASM($obj->{'asm'})
+        ,TopLevel::fromAssert($obj->{'assert'})
+        ,TopLevel::fromAssociatedtype($obj->{'associatedtype'})
+        ,TopLevel::fromAssociativity($obj->{'associativity'})
+        ,TopLevel::fromAsync($obj->{'async'})
+        ,TopLevel::fromAtomic($obj->{'atomic'})
+        ,TopLevel::fromAtomicCancel($obj->{'atomic_cancel'})
+        ,TopLevel::fromAtomicCommit($obj->{'atomic_commit'})
+        ,TopLevel::fromAtomicNoexcept($obj->{'atomic_noexcept'})
+        ,TopLevel::fromAuto($obj->{'auto'})
+        ,TopLevel::fromAwait($obj->{'await'})
+        ,TopLevel::fromBase($obj->{'base'})
+        ,TopLevel::fromBitand($obj->{'bitand'})
+        ,TopLevel::fromBitor($obj->{'bitor'})
+        ,TopLevel::fromBool($obj->{'BOOL'})
+        ,TopLevel::fromPurpleBool($obj->{'bool'})
+        ,TopLevel::fromBoolean($obj->{'boolean'})
+        ,TopLevel::fromBreak($obj->{'break'})
+        ,TopLevel::fromBycopy($obj->{'bycopy'})
+        ,TopLevel::fromByref($obj->{'byref'})
+        ,TopLevel::fromByte($obj->{'byte'})
+        ,TopLevel::fromCase($obj->{'case'})
+        ,TopLevel::fromCatch($obj->{'catch'})
+        ,TopLevel::fromChan($obj->{'chan'})
+        ,TopLevel::fromChar($obj->{'char'})
+        ,TopLevel::fromChar16T($obj->{'char16_t'})
+        ,TopLevel::fromChar32T($obj->{'char32_t'})
+        ,TopLevel::fromChecked($obj->{'checked'})
+        ,TopLevel::fromTopLevelClass($obj->{'class'})
         ,TopLevel::fromClass($obj->{'Class'})
+        ,TopLevel::fromClone($obj->{'clone'})
         ,TopLevel::fromCoAwait($obj->{'co_await'})
         ,TopLevel::fromCoReturn($obj->{'co_return'})
         ,TopLevel::fromCoYield($obj->{'co_yield'})
@@ -22508,8 +25830,14 @@ class TopLevel {
         ,TopLevel::fromConvenience($obj->{'convenience'})
         ,TopLevel::fromConvert($obj->{'convert'})
         ,TopLevel::fromConverter($obj->{'converter'})
+        ,TopLevel::fromCultureInfo($obj->{'CultureInfo'})
         ,TopLevel::fromDate($obj->{'date'})
         ,TopLevel::fromDateParseHandling($obj->{'date_parse_handling'})
+        ,TopLevel::fromDateFormatter($obj->{'DateFormatter'})
+        ,TopLevel::fromDateOnly($obj->{'DateOnly'})
+        ,TopLevel::fromDateOnlyConverter($obj->{'DateOnlyConverter'})
+        ,TopLevel::fromDateTime($obj->{'DateTime'})
+        ,TopLevel::fromDateTimeStyles($obj->{'DateTimeStyles'})
         ,TopLevel::fromDebugger($obj->{'debugger'})
         ,TopLevel::fromDecimal($obj->{'decimal'})
         ,TopLevel::fromDeclare($obj->{'declare'})
@@ -22534,6 +25862,8 @@ class TopLevel {
         ,TopLevel::fromElse($obj->{'else'})
         ,TopLevel::fromEncodeQuickType($obj->{'encode_quick_type'})
         ,TopLevel::fromEnum($obj->{'enum'})
+        ,TopLevel::fromEnumValues($obj->{'EnumValues'})
+        ,TopLevel::fromEqualityContract($obj->{'equalityContract'})
         ,TopLevel::fromEvent($obj->{'event'})
         ,TopLevel::fromExcept($obj->{'except'})
         ,TopLevel::fromException($obj->{'exception'})
@@ -22553,6 +25883,7 @@ class TopLevel {
         ,TopLevel::fromFloat($obj->{'float'})
         ,TopLevel::fromFor($obj->{'for'})
         ,TopLevel::fromForeach($obj->{'foreach'})
+        ,TopLevel::fromFormatException($obj->{'FormatException'})
         ,TopLevel::fromFriend($obj->{'friend'})
         ,TopLevel::fromFrom($obj->{'from'})
         ,TopLevel::fromFromJSON($obj->{'from_json'})
@@ -22563,6 +25894,7 @@ class TopLevel {
         ,TopLevel::fromGo($obj->{'go'})
         ,TopLevel::fromGoto($obj->{'goto'})
         ,TopLevel::fromGuard($obj->{'guard'})
+        ,TopLevel::fromHashCode($obj->{'hashCode'})
         ,TopLevel::fromHasOwnProperty($obj->{'hasOwnProperty'})
         ,TopLevel::fromID($obj->{'id'})
         ,TopLevel::fromIf($obj->{'if'})
@@ -22581,6 +25913,7 @@ class TopLevel {
         ,TopLevel::fromInterface($obj->{'interface'})
         ,TopLevel::fromInternal($obj->{'internal'})
         ,TopLevel::fromIs($obj->{'is'})
+        ,TopLevel::fromISODateTimeOffsetConverter($obj->{'IsoDateTimeOffsetConverter'})
         ,TopLevel::fromIterable($obj->{'iterable'})
         ,TopLevel::fromJdec($obj->{'jdec'})
         ,TopLevel::fromJenc($obj->{'jenc'})
@@ -22590,6 +25923,17 @@ class TopLevel {
         ,TopLevel::fromJSONSerializer($obj->{'json_serializer'})
         ,TopLevel::fromJSONToken($obj->{'json_token'})
         ,TopLevel::fromJSONWriter($obj->{'json_writer'})
+        ,TopLevel::fromJSONAny($obj->{'JSONAny'})
+        ,TopLevel::fromJSONCodingKey($obj->{'JSONCodingKey'})
+        ,TopLevel::fromJSONDecoder($obj->{'JSONDecoder'})
+        ,TopLevel::fromJSONEncoder($obj->{'JSONEncoder'})
+        ,TopLevel::fromJSONException($obj->{'JsonException'})
+        ,TopLevel::fromJSONGenerator($obj->{'JsonGenerator'})
+        ,TopLevel::fromJSONNode($obj->{'JsonNode'})
+        ,TopLevel::fromJSONNull($obj->{'JSONNull'})
+        ,TopLevel::fromJSONParser($obj->{'JsonParser'})
+        ,TopLevel::fromJSONReader($obj->{'JsonReader'})
+        ,TopLevel::fromJSONTokenType($obj->{'JsonTokenType'})
         ,TopLevel::fromLambda($obj->{'lambda'})
         ,TopLevel::fromLazy($obj->{'lazy'})
         ,TopLevel::fromLeft($obj->{'left'})
@@ -22614,14 +25958,17 @@ class TopLevel {
         ,TopLevel::fromNone($obj->{'None'})
         ,TopLevel::fromNonlocal($obj->{'nonlocal'})
         ,TopLevel::fromNonmutating($obj->{'nonmutating'})
+        ,TopLevel::fromNoSuchMethod($obj->{'noSuchMethod'})
         ,TopLevel::fromNot($obj->{'not'})
         ,TopLevel::fromNotEq($obj->{'not_eq'})
+        ,TopLevel::fromNSError($obj->{'NSError'})
         ,TopLevel::fromNSString($obj->{'NSString'})
         ,TopLevel::fromNull($obj->{'NULL'})
         ,TopLevel::fromTopLevelNull($obj->{'null'})
         ,TopLevel::fromNullptr($obj->{'nullptr'})
         ,TopLevel::fromNumber($obj->{'number'})
         ,TopLevel::fromObject($obj->{'object'})
+        ,TopLevel::fromObjectMapper($obj->{'ObjectMapper'})
         ,TopLevel::fromOf($obj->{'of'})
         ,TopLevel::fromOneway($obj->{'oneway'})
         ,TopLevel::fromOpen($obj->{'open'})
@@ -22640,6 +25987,7 @@ class TopLevel {
         ,TopLevel::fromPrefix($obj->{'prefix'})
         ,TopLevel::fromPrint($obj->{'print'})
         ,TopLevel::fromPrintf($obj->{'printf'})
+        ,TopLevel::fromPrintMembers($obj->{'printMembers'})
         ,TopLevel::fromPrivate($obj->{'private'})
         ,TopLevel::fromProtected($obj->{'protected'})
         ,TopLevel::fromProtocol($obj->{'Protocol'})
@@ -22650,6 +25998,7 @@ class TopLevel {
         ,TopLevel::fromRange($obj->{'range'})
         ,TopLevel::fromReadonly($obj->{'readonly'})
         ,TopLevel::fromRef($obj->{'ref'})
+        ,TopLevel::fromRegExp($obj->{'RegExp'})
         ,TopLevel::fromRegister($obj->{'register'})
         ,TopLevel::fromReinterpretCast($obj->{'reinterpret_cast'})
         ,TopLevel::fromRepeat($obj->{'repeat'})
@@ -22661,6 +26010,8 @@ class TopLevel {
         ,TopLevel::fromRethrows($obj->{'rethrows'})
         ,TopLevel::fromReturn($obj->{'return'})
         ,TopLevel::fromRight($obj->{'right'})
+        ,TopLevel::fromRuntimeType($obj->{'runtimeType'})
+        ,TopLevel::fromS($obj->{'s'})
         ,TopLevel::fromSbyte($obj->{'sbyte'})
         ,TopLevel::fromSealed($obj->{'sealed'})
         ,TopLevel::fromSel($obj->{'SEL'})
@@ -22668,14 +26019,19 @@ class TopLevel {
         ,TopLevel::fromSelf($obj->{'Self'})
         ,TopLevel::fromTopLevelSelf($obj->{'self'})
         ,TopLevel::fromSerialize($obj->{'serialize'})
+        ,TopLevel::fromSerializerProvider($obj->{'SerializerProvider'})
         ,TopLevel::fromSet($obj->{'set'})
         ,TopLevel::fromShort($obj->{'short'})
         ,TopLevel::fromSigned($obj->{'signed'})
+        ,TopLevel::fromSimpleModule($obj->{'SimpleModule'})
         ,TopLevel::fromSizeof($obj->{'sizeof'})
         ,TopLevel::fromStackalloc($obj->{'stackalloc'})
+        ,TopLevel::fromStandards($obj->{'Standards'})
         ,TopLevel::fromStatic($obj->{'static'})
         ,TopLevel::fromStaticAssert($obj->{'static_assert'})
         ,TopLevel::fromStaticCast($obj->{'static_cast'})
+        ,TopLevel::fromStdDeserializer($obj->{'StdDeserializer'})
+        ,TopLevel::fromStdSerializer($obj->{'StdSerializer'})
         ,TopLevel::fromStrictfp($obj->{'strictfp'})
         ,TopLevel::fromString($obj->{'string'})
         ,TopLevel::fromStruct($obj->{'struct'})
@@ -22691,8 +26047,11 @@ class TopLevel {
         ,TopLevel::fromThreadLocal($obj->{'thread_local'})
         ,TopLevel::fromThrow($obj->{'throw'})
         ,TopLevel::fromThrows($obj->{'throws'})
+        ,TopLevel::fromTimeOnly($obj->{'TimeOnly'})
+        ,TopLevel::fromTimeOnlyConverter($obj->{'TimeOnlyConverter'})
         ,TopLevel::fromToJSON($obj->{'to_json'})
         ,TopLevel::fromTopLevel($obj->{'top_level'})
+        ,TopLevel::fromToString($obj->{'toString'})
         ,TopLevel::fromTransient($obj->{'transient'})
         ,TopLevel::fromTrue($obj->{'True'})
         ,TopLevel::fromTopLevelTrue($obj->{'true'})
@@ -22714,6 +26073,9 @@ class TopLevel {
         ,TopLevel::fromUnsigned($obj->{'unsigned'})
         ,TopLevel::fromUshort($obj->{'ushort'})
         ,TopLevel::fromUsing($obj->{'using'})
+        ,TopLevel::fromUtf8JSONReader($obj->{'Utf8JsonReader'})
+        ,TopLevel::fromUtf8JSONWriter($obj->{'Utf8JsonWriter'})
+        ,TopLevel::fromUUID($obj->{'UUID'})
         ,TopLevel::fromVar($obj->{'var'})
         ,TopLevel::fromVirtual($obj->{'virtual'})
         ,TopLevel::fromVoid($obj->{'void'})
@@ -22732,294 +26094,1820 @@ class TopLevel {
     }
 
     /**
-     * @return TopLevel
+     * @return TopLevel
+     */
+    public static function sample(): TopLevel {
+        return new TopLevel(
+         TopLevel::sampleEmpty()
+        ,TopLevel::sampleTopLevelBool()
+        ,TopLevel::sampleComplex()
+        ,TopLevel::sampleImaginery()
+        ,TopLevel::sampleAbstract()
+        ,TopLevel::sampleAlignas()
+        ,TopLevel::sampleAlignof()
+        ,TopLevel::sampleAnd()
+        ,TopLevel::sampleAndEq()
+        ,TopLevel::sampleTopLevelAny()
+        ,TopLevel::sampleAny()
+        ,TopLevel::sampleArray()
+        ,TopLevel::sampleAs()
+        ,TopLevel::sampleASM()
+        ,TopLevel::sampleAssert()
+        ,TopLevel::sampleAssociatedtype()
+        ,TopLevel::sampleAssociativity()
+        ,TopLevel::sampleAsync()
+        ,TopLevel::sampleAtomic()
+        ,TopLevel::sampleAtomicCancel()
+        ,TopLevel::sampleAtomicCommit()
+        ,TopLevel::sampleAtomicNoexcept()
+        ,TopLevel::sampleAuto()
+        ,TopLevel::sampleAwait()
+        ,TopLevel::sampleBase()
+        ,TopLevel::sampleBitand()
+        ,TopLevel::sampleBitor()
+        ,TopLevel::sampleBool()
+        ,TopLevel::samplePurpleBool()
+        ,TopLevel::sampleBoolean()
+        ,TopLevel::sampleBreak()
+        ,TopLevel::sampleBycopy()
+        ,TopLevel::sampleByref()
+        ,TopLevel::sampleByte()
+        ,TopLevel::sampleCase()
+        ,TopLevel::sampleCatch()
+        ,TopLevel::sampleChan()
+        ,TopLevel::sampleChar()
+        ,TopLevel::sampleChar16T()
+        ,TopLevel::sampleChar32T()
+        ,TopLevel::sampleChecked()
+        ,TopLevel::sampleTopLevelClass()
+        ,TopLevel::sampleClass()
+        ,TopLevel::sampleClone()
+        ,TopLevel::sampleCoAwait()
+        ,TopLevel::sampleCoReturn()
+        ,TopLevel::sampleCoYield()
+        ,TopLevel::sampleCompl()
+        ,TopLevel::sampleConcept()
+        ,TopLevel::sampleConsole()
+        ,TopLevel::sampleConst()
+        ,TopLevel::sampleConstCast()
+        ,TopLevel::sampleConstexpr()
+        ,TopLevel::sampleConstructor()
+        ,TopLevel::sampleContinue()
+        ,TopLevel::sampleConvenience()
+        ,TopLevel::sampleConvert()
+        ,TopLevel::sampleConverter()
+        ,TopLevel::sampleCultureInfo()
+        ,TopLevel::sampleDate()
+        ,TopLevel::sampleDateParseHandling()
+        ,TopLevel::sampleDateFormatter()
+        ,TopLevel::sampleDateOnly()
+        ,TopLevel::sampleDateOnlyConverter()
+        ,TopLevel::sampleDateTime()
+        ,TopLevel::sampleDateTimeStyles()
+        ,TopLevel::sampleDebugger()
+        ,TopLevel::sampleDecimal()
+        ,TopLevel::sampleDeclare()
+        ,TopLevel::sampleDecltype()
+        ,TopLevel::sampleDecodeString()
+        ,TopLevel::sampleDef()
+        ,TopLevel::sampleDefault()
+        ,TopLevel::sampleDefer()
+        ,TopLevel::sampleDeinit()
+        ,TopLevel::sampleDel()
+        ,TopLevel::sampleDelegate()
+        ,TopLevel::sampleDelete()
+        ,TopLevel::sampleDict()
+        ,TopLevel::sampleDictionary()
+        ,TopLevel::sampleDidSet()
+        ,TopLevel::sampleDo()
+        ,TopLevel::sampleDouble()
+        ,TopLevel::sampleDummy()
+        ,TopLevel::sampleDynamic()
+        ,TopLevel::sampleDynamicCast()
+        ,TopLevel::sampleElif()
+        ,TopLevel::sampleElse()
+        ,TopLevel::sampleEncodeQuickType()
+        ,TopLevel::sampleEnum()
+        ,TopLevel::sampleEnumValues()
+        ,TopLevel::sampleEqualityContract()
+        ,TopLevel::sampleEvent()
+        ,TopLevel::sampleExcept()
+        ,TopLevel::sampleException()
+        ,TopLevel::sampleExplicit()
+        ,TopLevel::sampleExport()
+        ,TopLevel::sampleExposing()
+        ,TopLevel::sampleExtends()
+        ,TopLevel::sampleExtension()
+        ,TopLevel::sampleExtern()
+        ,TopLevel::sampleFallthrough()
+        ,TopLevel::sampleTopLevelFalse()
+        ,TopLevel::sampleFalse()
+        ,TopLevel::sampleFileprivate()
+        ,TopLevel::sampleFinal()
+        ,TopLevel::sampleFinally()
+        ,TopLevel::sampleFixed()
+        ,TopLevel::sampleFloat()
+        ,TopLevel::sampleFor()
+        ,TopLevel::sampleForeach()
+        ,TopLevel::sampleFormatException()
+        ,TopLevel::sampleFriend()
+        ,TopLevel::sampleFrom()
+        ,TopLevel::sampleFromJSON()
+        ,TopLevel::sampleFunc()
+        ,TopLevel::sampleFunction()
+        ,TopLevel::sampleGet()
+        ,TopLevel::sampleGlobal()
+        ,TopLevel::sampleGo()
+        ,TopLevel::sampleGoto()
+        ,TopLevel::sampleGuard()
+        ,TopLevel::sampleHashCode()
+        ,TopLevel::sampleHasOwnProperty()
+        ,TopLevel::sampleID()
+        ,TopLevel::sampleIf()
+        ,TopLevel::sampleImp()
+        ,TopLevel::sampleImplements()
+        ,TopLevel::sampleImplicit()
+        ,TopLevel::sampleImport()
+        ,TopLevel::sampleIn()
+        ,TopLevel::sampleIndirect()
+        ,TopLevel::sampleInfix()
+        ,TopLevel::sampleInit()
+        ,TopLevel::sampleInline()
+        ,TopLevel::sampleInout()
+        ,TopLevel::sampleInstanceof()
+        ,TopLevel::sampleInt()
+        ,TopLevel::sampleInterface()
+        ,TopLevel::sampleInternal()
+        ,TopLevel::sampleIs()
+        ,TopLevel::sampleISODateTimeOffsetConverter()
+        ,TopLevel::sampleIterable()
+        ,TopLevel::sampleJdec()
+        ,TopLevel::sampleJenc()
+        ,TopLevel::sampleJpipe()
+        ,TopLevel::sampleJSON()
+        ,TopLevel::sampleJSONConverter()
+        ,TopLevel::sampleJSONSerializer()
+        ,TopLevel::sampleJSONToken()
+        ,TopLevel::sampleJSONWriter()
+        ,TopLevel::sampleJSONAny()
+        ,TopLevel::sampleJSONCodingKey()
+        ,TopLevel::sampleJSONDecoder()
+        ,TopLevel::sampleJSONEncoder()
+        ,TopLevel::sampleJSONException()
+        ,TopLevel::sampleJSONGenerator()
+        ,TopLevel::sampleJSONNode()
+        ,TopLevel::sampleJSONNull()
+        ,TopLevel::sampleJSONParser()
+        ,TopLevel::sampleJSONReader()
+        ,TopLevel::sampleJSONTokenType()
+        ,TopLevel::sampleLambda()
+        ,TopLevel::sampleLazy()
+        ,TopLevel::sampleLeft()
+        ,TopLevel::sampleLet()
+        ,TopLevel::sampleList()
+        ,TopLevel::sampleLock()
+        ,TopLevel::sampleLong()
+        ,TopLevel::sampleMap()
+        ,TopLevel::sampleMetadataPropertyHandling()
+        ,TopLevel::sampleModule()
+        ,TopLevel::sampleMutable()
+        ,TopLevel::sampleMutating()
+        ,TopLevel::sampleNamespace()
+        ,TopLevel::sampleNative()
+        ,TopLevel::sampleNew()
+        ,TopLevel::sampleNewtonsoft()
+        ,TopLevel::sampleNil()
+        ,TopLevel::sampleNo()
+        ,TopLevel::sampleNoexcept()
+        ,TopLevel::sampleNonatomic()
+        ,TopLevel::sampleTopLevelNone()
+        ,TopLevel::sampleNone()
+        ,TopLevel::sampleNonlocal()
+        ,TopLevel::sampleNonmutating()
+        ,TopLevel::sampleNoSuchMethod()
+        ,TopLevel::sampleNot()
+        ,TopLevel::sampleNotEq()
+        ,TopLevel::sampleNSError()
+        ,TopLevel::sampleNSString()
+        ,TopLevel::sampleNull()
+        ,TopLevel::sampleTopLevelNull()
+        ,TopLevel::sampleNullptr()
+        ,TopLevel::sampleNumber()
+        ,TopLevel::sampleObject()
+        ,TopLevel::sampleObjectMapper()
+        ,TopLevel::sampleOf()
+        ,TopLevel::sampleOneway()
+        ,TopLevel::sampleOpen()
+        ,TopLevel::sampleOperator()
+        ,TopLevel::sampleOptional()
+        ,TopLevel::sampleOr()
+        ,TopLevel::sampleOrEq()
+        ,TopLevel::sampleOut()
+        ,TopLevel::sampleOverride()
+        ,TopLevel::samplePackage()
+        ,TopLevel::sampleParams()
+        ,TopLevel::samplePass()
+        ,TopLevel::samplePort()
+        ,TopLevel::samplePostfix()
+        ,TopLevel::samplePrecedence()
+        ,TopLevel::samplePrefix()
+        ,TopLevel::samplePrint()
+        ,TopLevel::samplePrintf()
+        ,TopLevel::samplePrintMembers()
+        ,TopLevel::samplePrivate()
+        ,TopLevel::sampleProtected()
+        ,TopLevel::sampleProtocol()
+        ,TopLevel::sampleTopLevelProtocol()
+        ,TopLevel::samplePublic()
+        ,TopLevel::sampleQuicktype()
+        ,TopLevel::sampleRaise()
+        ,TopLevel::sampleRange()
+        ,TopLevel::sampleReadonly()
+        ,TopLevel::sampleRef()
+        ,TopLevel::sampleRegExp()
+        ,TopLevel::sampleRegister()
+        ,TopLevel::sampleReinterpretCast()
+        ,TopLevel::sampleRepeat()
+        ,TopLevel::sampleRequire()
+        ,TopLevel::sampleRequired()
+        ,TopLevel::sampleRequires()
+        ,TopLevel::sampleRestrict()
+        ,TopLevel::sampleRetain()
+        ,TopLevel::sampleRethrows()
+        ,TopLevel::sampleReturn()
+        ,TopLevel::sampleRight()
+        ,TopLevel::sampleRuntimeType()
+        ,TopLevel::sampleS()
+        ,TopLevel::sampleSbyte()
+        ,TopLevel::sampleSealed()
+        ,TopLevel::sampleSel()
+        ,TopLevel::sampleSelect()
+        ,TopLevel::sampleSelf()
+        ,TopLevel::sampleTopLevelSelf()
+        ,TopLevel::sampleSerialize()
+        ,TopLevel::sampleSerializerProvider()
+        ,TopLevel::sampleSet()
+        ,TopLevel::sampleShort()
+        ,TopLevel::sampleSigned()
+        ,TopLevel::sampleSimpleModule()
+        ,TopLevel::sampleSizeof()
+        ,TopLevel::sampleStackalloc()
+        ,TopLevel::sampleStandards()
+        ,TopLevel::sampleStatic()
+        ,TopLevel::sampleStaticAssert()
+        ,TopLevel::sampleStaticCast()
+        ,TopLevel::sampleStdDeserializer()
+        ,TopLevel::sampleStdSerializer()
+        ,TopLevel::sampleStrictfp()
+        ,TopLevel::sampleString()
+        ,TopLevel::sampleStruct()
+        ,TopLevel::sampleSubscript()
+        ,TopLevel::sampleSuper()
+        ,TopLevel::sampleSwitch()
+        ,TopLevel::sampleSymbol()
+        ,TopLevel::sampleSynchronized()
+        ,TopLevel::sampleSystem()
+        ,TopLevel::sampleTemplate()
+        ,TopLevel::sampleThen()
+        ,TopLevel::sampleTopLevelThis()
+        ,TopLevel::sampleThreadLocal()
+        ,TopLevel::sampleThrow()
+        ,TopLevel::sampleThrows()
+        ,TopLevel::sampleTimeOnly()
+        ,TopLevel::sampleTimeOnlyConverter()
+        ,TopLevel::sampleToJSON()
+        ,TopLevel::sampleTopLevel()
+        ,TopLevel::sampleToString()
+        ,TopLevel::sampleTransient()
+        ,TopLevel::sampleTrue()
+        ,TopLevel::sampleTopLevelTrue()
+        ,TopLevel::sampleTry()
+        ,TopLevel::sampleType()
+        ,TopLevel::sampleTopLevelType()
+        ,TopLevel::sampleTypealias()
+        ,TopLevel::sampleTypedef()
+        ,TopLevel::sampleTypeid()
+        ,TopLevel::sampleTypename()
+        ,TopLevel::sampleTypeof()
+        ,TopLevel::sampleUint()
+        ,TopLevel::sampleUlong()
+        ,TopLevel::sampleUnchecked()
+        ,TopLevel::sampleUndefined()
+        ,TopLevel::sampleUnion()
+        ,TopLevel::sampleUnowned()
+        ,TopLevel::sampleUnsafe()
+        ,TopLevel::sampleUnsigned()
+        ,TopLevel::sampleUshort()
+        ,TopLevel::sampleUsing()
+        ,TopLevel::sampleUtf8JSONReader()
+        ,TopLevel::sampleUtf8JSONWriter()
+        ,TopLevel::sampleUUID()
+        ,TopLevel::sampleVar()
+        ,TopLevel::sampleVirtual()
+        ,TopLevel::sampleVoid()
+        ,TopLevel::sampleVolatile()
+        ,TopLevel::sampleWcharT()
+        ,TopLevel::sampleWeak()
+        ,TopLevel::sampleWhere()
+        ,TopLevel::sampleWhile()
+        ,TopLevel::sampleWillSet()
+        ,TopLevel::sampleWith()
+        ,TopLevel::sampleXor()
+        ,TopLevel::sampleXorEq()
+        ,TopLevel::sampleYes()
+        ,TopLevel::sampleYield()
+        );
+    }
+}
+
+// This is an autogenerated file:AbstractClass
+
+class AbstractClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AbstractClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AbstractClass {
+        return new AbstractClass(
+        );
+    }
+
+    /**
+     * @return AbstractClass
+     */
+    public static function sample(): AbstractClass {
+        return new AbstractClass(
+        );
+    }
+}
+
+// This is an autogenerated file:Alignas
+
+class Alignas {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Alignas
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Alignas {
+        return new Alignas(
+        );
+    }
+
+    /**
+     * @return Alignas
+     */
+    public static function sample(): Alignas {
+        return new Alignas(
+        );
+    }
+}
+
+// This is an autogenerated file:Alignof
+
+class Alignof {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Alignof
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Alignof {
+        return new Alignof(
+        );
+    }
+
+    /**
+     * @return Alignof
+     */
+    public static function sample(): Alignof {
+        return new Alignof(
+        );
+    }
+}
+
+// This is an autogenerated file:AndClass
+
+class AndClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AndClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AndClass {
+        return new AndClass(
+        );
+    }
+
+    /**
+     * @return AndClass
+     */
+    public static function sample(): AndClass {
+        return new AndClass(
+        );
+    }
+}
+
+// This is an autogenerated file:AndEq
+
+class AndEq {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AndEq
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AndEq {
+        return new AndEq(
+        );
+    }
+
+    /**
+     * @return AndEq
+     */
+    public static function sample(): AndEq {
+        return new AndEq(
+        );
+    }
+}
+
+// This is an autogenerated file:Any
+
+class Any {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Any
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Any {
+        return new Any(
+        );
+    }
+
+    /**
+     * @return Any
+     */
+    public static function sample(): Any {
+        return new Any(
+        );
+    }
+}
+
+// This is an autogenerated file:ArrayClass
+
+class ArrayClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return ArrayClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): ArrayClass {
+        return new ArrayClass(
+        );
+    }
+
+    /**
+     * @return ArrayClass
+     */
+    public static function sample(): ArrayClass {
+        return new ArrayClass(
+        );
+    }
+}
+
+// This is an autogenerated file:AsClass
+
+class AsClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AsClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AsClass {
+        return new AsClass(
+        );
+    }
+
+    /**
+     * @return AsClass
+     */
+    public static function sample(): AsClass {
+        return new AsClass(
+        );
+    }
+}
+
+// This is an autogenerated file:ASM
+
+class ASM {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return ASM
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): ASM {
+        return new ASM(
+        );
+    }
+
+    /**
+     * @return ASM
+     */
+    public static function sample(): ASM {
+        return new ASM(
+        );
+    }
+}
+
+// This is an autogenerated file:Assert
+
+class Assert {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Assert
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Assert {
+        return new Assert(
+        );
+    }
+
+    /**
+     * @return Assert
+     */
+    public static function sample(): Assert {
+        return new Assert(
+        );
+    }
+}
+
+// This is an autogenerated file:Associatedtype
+
+class Associatedtype {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Associatedtype
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Associatedtype {
+        return new Associatedtype(
+        );
+    }
+
+    /**
+     * @return Associatedtype
+     */
+    public static function sample(): Associatedtype {
+        return new Associatedtype(
+        );
+    }
+}
+
+// This is an autogenerated file:Associativity
+
+class Associativity {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Associativity
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Associativity {
+        return new Associativity(
+        );
+    }
+
+    /**
+     * @return Associativity
+     */
+    public static function sample(): Associativity {
+        return new Associativity(
+        );
+    }
+}
+
+// This is an autogenerated file:Async
+
+class Async {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Async
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Async {
+        return new Async(
+        );
+    }
+
+    /**
+     * @return Async
+     */
+    public static function sample(): Async {
+        return new Async(
+        );
+    }
+}
+
+// This is an autogenerated file:Atomic
+
+class Atomic {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Atomic
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Atomic {
+        return new Atomic(
+        );
+    }
+
+    /**
+     * @return Atomic
+     */
+    public static function sample(): Atomic {
+        return new Atomic(
+        );
+    }
+}
+
+// This is an autogenerated file:AtomicCancel
+
+class AtomicCancel {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AtomicCancel
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AtomicCancel {
+        return new AtomicCancel(
+        );
+    }
+
+    /**
+     * @return AtomicCancel
+     */
+    public static function sample(): AtomicCancel {
+        return new AtomicCancel(
+        );
+    }
+}
+
+// This is an autogenerated file:AtomicCommit
+
+class AtomicCommit {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AtomicCommit
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AtomicCommit {
+        return new AtomicCommit(
+        );
+    }
+
+    /**
+     * @return AtomicCommit
+     */
+    public static function sample(): AtomicCommit {
+        return new AtomicCommit(
+        );
+    }
+}
+
+// This is an autogenerated file:AtomicNoexcept
+
+class AtomicNoexcept {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return AtomicNoexcept
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): AtomicNoexcept {
+        return new AtomicNoexcept(
+        );
+    }
+
+    /**
+     * @return AtomicNoexcept
+     */
+    public static function sample(): AtomicNoexcept {
+        return new AtomicNoexcept(
+        );
+    }
+}
+
+// This is an autogenerated file:Auto
+
+class Auto {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Auto
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Auto {
+        return new Auto(
+        );
+    }
+
+    /**
+     * @return Auto
+     */
+    public static function sample(): Auto {
+        return new Auto(
+        );
+    }
+}
+
+// This is an autogenerated file:Await
+
+class Await {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Await
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Await {
+        return new Await(
+        );
+    }
+
+    /**
+     * @return Await
+     */
+    public static function sample(): Await {
+        return new Await(
+        );
+    }
+}
+
+// This is an autogenerated file:Base
+
+class Base {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Base
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Base {
+        return new Base(
+        );
+    }
+
+    /**
+     * @return Base
+     */
+    public static function sample(): Base {
+        return new Base(
+        );
+    }
+}
+
+// This is an autogenerated file:Bitand
+
+class Bitand {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Bitand
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Bitand {
+        return new Bitand(
+        );
+    }
+
+    /**
+     * @return Bitand
+     */
+    public static function sample(): Bitand {
+        return new Bitand(
+        );
+    }
+}
+
+// This is an autogenerated file:Bitor
+
+class Bitor {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Bitor
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Bitor {
+        return new Bitor(
+        );
+    }
+
+    /**
+     * @return Bitor
+     */
+    public static function sample(): Bitor {
+        return new Bitor(
+        );
+    }
+}
+
+// This is an autogenerated file:BOOLClass
+
+class BOOLClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return BOOLClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): BOOLClass {
+        return new BOOLClass(
+        );
+    }
+
+    /**
+     * @return BOOLClass
+     */
+    public static function sample(): BOOLClass {
+        return new BOOLClass(
+        );
+    }
+}
+
+// This is an autogenerated file:Boolean
+
+class Boolean {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Boolean
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Boolean {
+        return new Boolean(
+        );
+    }
+
+    /**
+     * @return Boolean
+     */
+    public static function sample(): Boolean {
+        return new Boolean(
+        );
+    }
+}
+
+// This is an autogenerated file:BreakClass
+
+class BreakClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return BreakClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): BreakClass {
+        return new BreakClass(
+        );
+    }
+
+    /**
+     * @return BreakClass
+     */
+    public static function sample(): BreakClass {
+        return new BreakClass(
+        );
+    }
+}
+
+// This is an autogenerated file:Bycopy
+
+class Bycopy {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Bycopy
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Bycopy {
+        return new Bycopy(
+        );
+    }
+
+    /**
+     * @return Bycopy
+     */
+    public static function sample(): Bycopy {
+        return new Bycopy(
+        );
+    }
+}
+
+// This is an autogenerated file:Byref
+
+class Byref {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Byref
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Byref {
+        return new Byref(
+        );
+    }
+
+    /**
+     * @return Byref
+     */
+    public static function sample(): Byref {
+        return new Byref(
+        );
+    }
+}
+
+// This is an autogenerated file:Byte
+
+class Byte {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Byte
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Byte {
+        return new Byte(
+        );
+    }
+
+    /**
+     * @return Byte
+     */
+    public static function sample(): Byte {
+        return new Byte(
+        );
+    }
+}
+
+// This is an autogenerated file:CaseClass
+
+class CaseClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return CaseClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): CaseClass {
+        return new CaseClass(
+        );
+    }
+
+    /**
+     * @return CaseClass
+     */
+    public static function sample(): CaseClass {
+        return new CaseClass(
+        );
+    }
+}
+
+// This is an autogenerated file:CatchClass
+
+class CatchClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return CatchClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): CatchClass {
+        return new CatchClass(
+        );
+    }
+
+    /**
+     * @return CatchClass
+     */
+    public static function sample(): CatchClass {
+        return new CatchClass(
+        );
+    }
+}
+
+// This is an autogenerated file:Chan
+
+class Chan {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Chan
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Chan {
+        return new Chan(
+        );
+    }
+
+    /**
+     * @return Chan
+     */
+    public static function sample(): Chan {
+        return new Chan(
+        );
+    }
+}
+
+// This is an autogenerated file:Char
+
+class Char {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Char
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Char {
+        return new Char(
+        );
+    }
+
+    /**
+     * @return Char
+     */
+    public static function sample(): Char {
+        return new Char(
+        );
+    }
+}
+
+// This is an autogenerated file:Char16T
+
+class Char16T {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Char16T
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Char16T {
+        return new Char16T(
+        );
+    }
+
+    /**
+     * @return Char16T
      */
-    public static function sample(): TopLevel {
-        return new TopLevel(
-         TopLevel::sampleEmpty()
-        ,TopLevel::sampleTopLevelBool()
-        ,TopLevel::sampleComplex()
-        ,TopLevel::sampleImaginery()
-        ,TopLevel::sampleAbstract()
-        ,TopLevel::sampleAlignas()
-        ,TopLevel::sampleAlignof()
-        ,TopLevel::sampleAnd()
-        ,TopLevel::sampleAndEq()
-        ,TopLevel::sampleTopLevelAny()
-        ,TopLevel::sampleAny()
-        ,TopLevel::sampleArray()
-        ,TopLevel::sampleAs()
-        ,TopLevel::sampleASM()
-        ,TopLevel::sampleAssert()
-        ,TopLevel::sampleAssociatedtype()
-        ,TopLevel::sampleAssociativity()
-        ,TopLevel::sampleAsync()
-        ,TopLevel::sampleAtomic()
-        ,TopLevel::sampleAtomicCancel()
-        ,TopLevel::sampleAtomicCommit()
-        ,TopLevel::sampleAtomicNoexcept()
-        ,TopLevel::sampleAuto()
-        ,TopLevel::sampleAwait()
-        ,TopLevel::sampleBase()
-        ,TopLevel::sampleBitand()
-        ,TopLevel::sampleBitor()
-        ,TopLevel::sampleBool()
-        ,TopLevel::samplePurpleBool()
-        ,TopLevel::sampleBoolean()
-        ,TopLevel::sampleBreak()
-        ,TopLevel::sampleBycopy()
-        ,TopLevel::sampleByref()
-        ,TopLevel::sampleByte()
-        ,TopLevel::sampleCase()
-        ,TopLevel::sampleCatch()
-        ,TopLevel::sampleChan()
-        ,TopLevel::sampleChar()
-        ,TopLevel::sampleChar16T()
-        ,TopLevel::sampleChar32T()
-        ,TopLevel::sampleChecked()
-        ,TopLevel::sampleTopLevelClass()
-        ,TopLevel::sampleClass()
-        ,TopLevel::sampleCoAwait()
-        ,TopLevel::sampleCoReturn()
-        ,TopLevel::sampleCoYield()
-        ,TopLevel::sampleCompl()
-        ,TopLevel::sampleConcept()
-        ,TopLevel::sampleConsole()
-        ,TopLevel::sampleConst()
-        ,TopLevel::sampleConstCast()
-        ,TopLevel::sampleConstexpr()
-        ,TopLevel::sampleConstructor()
-        ,TopLevel::sampleContinue()
-        ,TopLevel::sampleConvenience()
-        ,TopLevel::sampleConvert()
-        ,TopLevel::sampleConverter()
-        ,TopLevel::sampleDate()
-        ,TopLevel::sampleDateParseHandling()
-        ,TopLevel::sampleDebugger()
-        ,TopLevel::sampleDecimal()
-        ,TopLevel::sampleDeclare()
-        ,TopLevel::sampleDecltype()
-        ,TopLevel::sampleDecodeString()
-        ,TopLevel::sampleDef()
-        ,TopLevel::sampleDefault()
-        ,TopLevel::sampleDefer()
-        ,TopLevel::sampleDeinit()
-        ,TopLevel::sampleDel()
-        ,TopLevel::sampleDelegate()
-        ,TopLevel::sampleDelete()
-        ,TopLevel::sampleDict()
-        ,TopLevel::sampleDictionary()
-        ,TopLevel::sampleDidSet()
-        ,TopLevel::sampleDo()
-        ,TopLevel::sampleDouble()
-        ,TopLevel::sampleDummy()
-        ,TopLevel::sampleDynamic()
-        ,TopLevel::sampleDynamicCast()
-        ,TopLevel::sampleElif()
-        ,TopLevel::sampleElse()
-        ,TopLevel::sampleEncodeQuickType()
-        ,TopLevel::sampleEnum()
-        ,TopLevel::sampleEvent()
-        ,TopLevel::sampleExcept()
-        ,TopLevel::sampleException()
-        ,TopLevel::sampleExplicit()
-        ,TopLevel::sampleExport()
-        ,TopLevel::sampleExposing()
-        ,TopLevel::sampleExtends()
-        ,TopLevel::sampleExtension()
-        ,TopLevel::sampleExtern()
-        ,TopLevel::sampleFallthrough()
-        ,TopLevel::sampleTopLevelFalse()
-        ,TopLevel::sampleFalse()
-        ,TopLevel::sampleFileprivate()
-        ,TopLevel::sampleFinal()
-        ,TopLevel::sampleFinally()
-        ,TopLevel::sampleFixed()
-        ,TopLevel::sampleFloat()
-        ,TopLevel::sampleFor()
-        ,TopLevel::sampleForeach()
-        ,TopLevel::sampleFriend()
-        ,TopLevel::sampleFrom()
-        ,TopLevel::sampleFromJSON()
-        ,TopLevel::sampleFunc()
-        ,TopLevel::sampleFunction()
-        ,TopLevel::sampleGet()
-        ,TopLevel::sampleGlobal()
-        ,TopLevel::sampleGo()
-        ,TopLevel::sampleGoto()
-        ,TopLevel::sampleGuard()
-        ,TopLevel::sampleHasOwnProperty()
-        ,TopLevel::sampleID()
-        ,TopLevel::sampleIf()
-        ,TopLevel::sampleImp()
-        ,TopLevel::sampleImplements()
-        ,TopLevel::sampleImplicit()
-        ,TopLevel::sampleImport()
-        ,TopLevel::sampleIn()
-        ,TopLevel::sampleIndirect()
-        ,TopLevel::sampleInfix()
-        ,TopLevel::sampleInit()
-        ,TopLevel::sampleInline()
-        ,TopLevel::sampleInout()
-        ,TopLevel::sampleInstanceof()
-        ,TopLevel::sampleInt()
-        ,TopLevel::sampleInterface()
-        ,TopLevel::sampleInternal()
-        ,TopLevel::sampleIs()
-        ,TopLevel::sampleIterable()
-        ,TopLevel::sampleJdec()
-        ,TopLevel::sampleJenc()
-        ,TopLevel::sampleJpipe()
-        ,TopLevel::sampleJSON()
-        ,TopLevel::sampleJSONConverter()
-        ,TopLevel::sampleJSONSerializer()
-        ,TopLevel::sampleJSONToken()
-        ,TopLevel::sampleJSONWriter()
-        ,TopLevel::sampleLambda()
-        ,TopLevel::sampleLazy()
-        ,TopLevel::sampleLeft()
-        ,TopLevel::sampleLet()
-        ,TopLevel::sampleList()
-        ,TopLevel::sampleLock()
-        ,TopLevel::sampleLong()
-        ,TopLevel::sampleMap()
-        ,TopLevel::sampleMetadataPropertyHandling()
-        ,TopLevel::sampleModule()
-        ,TopLevel::sampleMutable()
-        ,TopLevel::sampleMutating()
-        ,TopLevel::sampleNamespace()
-        ,TopLevel::sampleNative()
-        ,TopLevel::sampleNew()
-        ,TopLevel::sampleNewtonsoft()
-        ,TopLevel::sampleNil()
-        ,TopLevel::sampleNo()
-        ,TopLevel::sampleNoexcept()
-        ,TopLevel::sampleNonatomic()
-        ,TopLevel::sampleTopLevelNone()
-        ,TopLevel::sampleNone()
-        ,TopLevel::sampleNonlocal()
-        ,TopLevel::sampleNonmutating()
-        ,TopLevel::sampleNot()
-        ,TopLevel::sampleNotEq()
-        ,TopLevel::sampleNSString()
-        ,TopLevel::sampleNull()
-        ,TopLevel::sampleTopLevelNull()
-        ,TopLevel::sampleNullptr()
-        ,TopLevel::sampleNumber()
-        ,TopLevel::sampleObject()
-        ,TopLevel::sampleOf()
-        ,TopLevel::sampleOneway()
-        ,TopLevel::sampleOpen()
-        ,TopLevel::sampleOperator()
-        ,TopLevel::sampleOptional()
-        ,TopLevel::sampleOr()
-        ,TopLevel::sampleOrEq()
-        ,TopLevel::sampleOut()
-        ,TopLevel::sampleOverride()
-        ,TopLevel::samplePackage()
-        ,TopLevel::sampleParams()
-        ,TopLevel::samplePass()
-        ,TopLevel::samplePort()
-        ,TopLevel::samplePostfix()
-        ,TopLevel::samplePrecedence()
-        ,TopLevel::samplePrefix()
-        ,TopLevel::samplePrint()
-        ,TopLevel::samplePrintf()
-        ,TopLevel::samplePrivate()
-        ,TopLevel::sampleProtected()
-        ,TopLevel::sampleProtocol()
-        ,TopLevel::sampleTopLevelProtocol()
-        ,TopLevel::samplePublic()
-        ,TopLevel::sampleQuicktype()
-        ,TopLevel::sampleRaise()
-        ,TopLevel::sampleRange()
-        ,TopLevel::sampleReadonly()
-        ,TopLevel::sampleRef()
-        ,TopLevel::sampleRegister()
-        ,TopLevel::sampleReinterpretCast()
-        ,TopLevel::sampleRepeat()
-        ,TopLevel::sampleRequire()
-        ,TopLevel::sampleRequired()
-        ,TopLevel::sampleRequires()
-        ,TopLevel::sampleRestrict()
-        ,TopLevel::sampleRetain()
-        ,TopLevel::sampleRethrows()
-        ,TopLevel::sampleReturn()
-        ,TopLevel::sampleRight()
-        ,TopLevel::sampleSbyte()
-        ,TopLevel::sampleSealed()
-        ,TopLevel::sampleSel()
-        ,TopLevel::sampleSelect()
-        ,TopLevel::sampleSelf()
-        ,TopLevel::sampleTopLevelSelf()
-        ,TopLevel::sampleSerialize()
-        ,TopLevel::sampleSet()
-        ,TopLevel::sampleShort()
-        ,TopLevel::sampleSigned()
-        ,TopLevel::sampleSizeof()
-        ,TopLevel::sampleStackalloc()
-        ,TopLevel::sampleStatic()
-        ,TopLevel::sampleStaticAssert()
-        ,TopLevel::sampleStaticCast()
-        ,TopLevel::sampleStrictfp()
-        ,TopLevel::sampleString()
-        ,TopLevel::sampleStruct()
-        ,TopLevel::sampleSubscript()
-        ,TopLevel::sampleSuper()
-        ,TopLevel::sampleSwitch()
-        ,TopLevel::sampleSymbol()
-        ,TopLevel::sampleSynchronized()
-        ,TopLevel::sampleSystem()
-        ,TopLevel::sampleTemplate()
-        ,TopLevel::sampleThen()
-        ,TopLevel::sampleTopLevelThis()
-        ,TopLevel::sampleThreadLocal()
-        ,TopLevel::sampleThrow()
-        ,TopLevel::sampleThrows()
-        ,TopLevel::sampleToJSON()
-        ,TopLevel::sampleTopLevel()
-        ,TopLevel::sampleTransient()
-        ,TopLevel::sampleTrue()
-        ,TopLevel::sampleTopLevelTrue()
-        ,TopLevel::sampleTry()
-        ,TopLevel::sampleType()
-        ,TopLevel::sampleTopLevelType()
-        ,TopLevel::sampleTypealias()
-        ,TopLevel::sampleTypedef()
-        ,TopLevel::sampleTypeid()
-        ,TopLevel::sampleTypename()
-        ,TopLevel::sampleTypeof()
-        ,TopLevel::sampleUint()
-        ,TopLevel::sampleUlong()
-        ,TopLevel::sampleUnchecked()
-        ,TopLevel::sampleUndefined()
-        ,TopLevel::sampleUnion()
-        ,TopLevel::sampleUnowned()
-        ,TopLevel::sampleUnsafe()
-        ,TopLevel::sampleUnsigned()
-        ,TopLevel::sampleUshort()
-        ,TopLevel::sampleUsing()
-        ,TopLevel::sampleVar()
-        ,TopLevel::sampleVirtual()
-        ,TopLevel::sampleVoid()
-        ,TopLevel::sampleVolatile()
-        ,TopLevel::sampleWcharT()
-        ,TopLevel::sampleWeak()
-        ,TopLevel::sampleWhere()
-        ,TopLevel::sampleWhile()
-        ,TopLevel::sampleWillSet()
-        ,TopLevel::sampleWith()
-        ,TopLevel::sampleXor()
-        ,TopLevel::sampleXorEq()
-        ,TopLevel::sampleYes()
-        ,TopLevel::sampleYield()
+    public static function sample(): Char16T {
+        return new Char16T(
         );
     }
 }
 
-// This is an autogenerated file:AbstractClass
+// This is an autogenerated file:Char32T
 
-class AbstractClass {
+class Char32T {
 
     /**
      */
@@ -23045,26 +27933,26 @@ class AbstractClass {
 
     /**
      * @param stdClass $obj
-     * @return AbstractClass
+     * @return Char32T
      * @throws Exception
      */
-    public static function from(stdClass $obj): AbstractClass {
-        return new AbstractClass(
+    public static function from(stdClass $obj): Char32T {
+        return new Char32T(
         );
     }
 
     /**
-     * @return AbstractClass
+     * @return Char32T
      */
-    public static function sample(): AbstractClass {
-        return new AbstractClass(
+    public static function sample(): Char32T {
+        return new Char32T(
         );
     }
 }
 
-// This is an autogenerated file:Alignas
+// This is an autogenerated file:Checked
 
-class Alignas {
+class Checked {
 
     /**
      */
@@ -23090,26 +27978,26 @@ class Alignas {
 
     /**
      * @param stdClass $obj
-     * @return Alignas
+     * @return Checked
      * @throws Exception
      */
-    public static function from(stdClass $obj): Alignas {
-        return new Alignas(
+    public static function from(stdClass $obj): Checked {
+        return new Checked(
         );
     }
 
     /**
-     * @return Alignas
+     * @return Checked
      */
-    public static function sample(): Alignas {
-        return new Alignas(
+    public static function sample(): Checked {
+        return new Checked(
         );
     }
 }
 
-// This is an autogenerated file:Alignof
+// This is an autogenerated file:ClassClass
 
-class Alignof {
+class ClassClass {
 
     /**
      */
@@ -23135,26 +28023,26 @@ class Alignof {
 
     /**
      * @param stdClass $obj
-     * @return Alignof
+     * @return ClassClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Alignof {
-        return new Alignof(
+    public static function from(stdClass $obj): ClassClass {
+        return new ClassClass(
         );
     }
 
     /**
-     * @return Alignof
+     * @return ClassClass
      */
-    public static function sample(): Alignof {
-        return new Alignof(
+    public static function sample(): ClassClass {
+        return new ClassClass(
         );
     }
 }
 
-// This is an autogenerated file:AndClass
+// This is an autogenerated file:CloneClass
 
-class AndClass {
+class CloneClass {
 
     /**
      */
@@ -23180,26 +28068,26 @@ class AndClass {
 
     /**
      * @param stdClass $obj
-     * @return AndClass
+     * @return CloneClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): AndClass {
-        return new AndClass(
+    public static function from(stdClass $obj): CloneClass {
+        return new CloneClass(
         );
     }
 
     /**
-     * @return AndClass
+     * @return CloneClass
      */
-    public static function sample(): AndClass {
-        return new AndClass(
+    public static function sample(): CloneClass {
+        return new CloneClass(
         );
     }
 }
 
-// This is an autogenerated file:AndEq
+// This is an autogenerated file:CoAwait
 
-class AndEq {
+class CoAwait {
 
     /**
      */
@@ -23225,26 +28113,26 @@ class AndEq {
 
     /**
      * @param stdClass $obj
-     * @return AndEq
+     * @return CoAwait
      * @throws Exception
      */
-    public static function from(stdClass $obj): AndEq {
-        return new AndEq(
+    public static function from(stdClass $obj): CoAwait {
+        return new CoAwait(
         );
     }
 
     /**
-     * @return AndEq
+     * @return CoAwait
      */
-    public static function sample(): AndEq {
-        return new AndEq(
+    public static function sample(): CoAwait {
+        return new CoAwait(
         );
     }
 }
 
-// This is an autogenerated file:Any
+// This is an autogenerated file:CoReturn
 
-class Any {
+class CoReturn {
 
     /**
      */
@@ -23270,26 +28158,26 @@ class Any {
 
     /**
      * @param stdClass $obj
-     * @return Any
+     * @return CoReturn
      * @throws Exception
      */
-    public static function from(stdClass $obj): Any {
-        return new Any(
+    public static function from(stdClass $obj): CoReturn {
+        return new CoReturn(
         );
     }
 
     /**
-     * @return Any
+     * @return CoReturn
      */
-    public static function sample(): Any {
-        return new Any(
+    public static function sample(): CoReturn {
+        return new CoReturn(
         );
     }
 }
 
-// This is an autogenerated file:ArrayClass
+// This is an autogenerated file:CoYield
 
-class ArrayClass {
+class CoYield {
 
     /**
      */
@@ -23315,26 +28203,26 @@ class ArrayClass {
 
     /**
      * @param stdClass $obj
-     * @return ArrayClass
+     * @return CoYield
      * @throws Exception
      */
-    public static function from(stdClass $obj): ArrayClass {
-        return new ArrayClass(
+    public static function from(stdClass $obj): CoYield {
+        return new CoYield(
         );
     }
 
     /**
-     * @return ArrayClass
+     * @return CoYield
      */
-    public static function sample(): ArrayClass {
-        return new ArrayClass(
+    public static function sample(): CoYield {
+        return new CoYield(
         );
     }
 }
 
-// This is an autogenerated file:AsClass
+// This is an autogenerated file:Compl
 
-class AsClass {
+class Compl {
 
     /**
      */
@@ -23360,26 +28248,26 @@ class AsClass {
 
     /**
      * @param stdClass $obj
-     * @return AsClass
+     * @return Compl
      * @throws Exception
      */
-    public static function from(stdClass $obj): AsClass {
-        return new AsClass(
+    public static function from(stdClass $obj): Compl {
+        return new Compl(
         );
     }
 
     /**
-     * @return AsClass
+     * @return Compl
      */
-    public static function sample(): AsClass {
-        return new AsClass(
+    public static function sample(): Compl {
+        return new Compl(
         );
     }
 }
 
-// This is an autogenerated file:ASM
+// This is an autogenerated file:Complex
 
-class ASM {
+class Complex {
 
     /**
      */
@@ -23405,26 +28293,26 @@ class ASM {
 
     /**
      * @param stdClass $obj
-     * @return ASM
+     * @return Complex
      * @throws Exception
      */
-    public static function from(stdClass $obj): ASM {
-        return new ASM(
+    public static function from(stdClass $obj): Complex {
+        return new Complex(
         );
     }
 
     /**
-     * @return ASM
+     * @return Complex
      */
-    public static function sample(): ASM {
-        return new ASM(
+    public static function sample(): Complex {
+        return new Complex(
         );
     }
 }
 
-// This is an autogenerated file:Assert
+// This is an autogenerated file:Concept
 
-class Assert {
+class Concept {
 
     /**
      */
@@ -23450,26 +28338,71 @@ class Assert {
 
     /**
      * @param stdClass $obj
-     * @return Assert
+     * @return Concept
      * @throws Exception
      */
-    public static function from(stdClass $obj): Assert {
-        return new Assert(
+    public static function from(stdClass $obj): Concept {
+        return new Concept(
         );
     }
 
     /**
-     * @return Assert
+     * @return Concept
      */
-    public static function sample(): Assert {
-        return new Assert(
+    public static function sample(): Concept {
+        return new Concept(
         );
     }
 }
 
-// This is an autogenerated file:Associatedtype
+// This is an autogenerated file:Console
 
-class Associatedtype {
+class Console {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Console
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Console {
+        return new Console(
+        );
+    }
+
+    /**
+     * @return Console
+     */
+    public static function sample(): Console {
+        return new Console(
+        );
+    }
+}
+
+// This is an autogenerated file:ConstClass
+
+class ConstClass {
 
     /**
      */
@@ -23495,26 +28428,26 @@ class Associatedtype {
 
     /**
      * @param stdClass $obj
-     * @return Associatedtype
+     * @return ConstClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Associatedtype {
-        return new Associatedtype(
+    public static function from(stdClass $obj): ConstClass {
+        return new ConstClass(
         );
     }
 
     /**
-     * @return Associatedtype
+     * @return ConstClass
      */
-    public static function sample(): Associatedtype {
-        return new Associatedtype(
+    public static function sample(): ConstClass {
+        return new ConstClass(
         );
     }
 }
 
-// This is an autogenerated file:Associativity
+// This is an autogenerated file:ConstCast
 
-class Associativity {
+class ConstCast {
 
     /**
      */
@@ -23540,26 +28473,26 @@ class Associativity {
 
     /**
      * @param stdClass $obj
-     * @return Associativity
+     * @return ConstCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): Associativity {
-        return new Associativity(
+    public static function from(stdClass $obj): ConstCast {
+        return new ConstCast(
         );
     }
 
     /**
-     * @return Associativity
+     * @return ConstCast
      */
-    public static function sample(): Associativity {
-        return new Associativity(
+    public static function sample(): ConstCast {
+        return new ConstCast(
         );
     }
 }
 
-// This is an autogenerated file:Async
+// This is an autogenerated file:Constexpr
 
-class Async {
+class Constexpr {
 
     /**
      */
@@ -23585,26 +28518,26 @@ class Async {
 
     /**
      * @param stdClass $obj
-     * @return Async
+     * @return Constexpr
      * @throws Exception
      */
-    public static function from(stdClass $obj): Async {
-        return new Async(
+    public static function from(stdClass $obj): Constexpr {
+        return new Constexpr(
         );
     }
 
     /**
-     * @return Async
+     * @return Constexpr
      */
-    public static function sample(): Async {
-        return new Async(
+    public static function sample(): Constexpr {
+        return new Constexpr(
         );
     }
 }
 
-// This is an autogenerated file:Atomic
+// This is an autogenerated file:Constructor
 
-class Atomic {
+class Constructor {
 
     /**
      */
@@ -23630,26 +28563,26 @@ class Atomic {
 
     /**
      * @param stdClass $obj
-     * @return Atomic
+     * @return Constructor
      * @throws Exception
      */
-    public static function from(stdClass $obj): Atomic {
-        return new Atomic(
+    public static function from(stdClass $obj): Constructor {
+        return new Constructor(
         );
     }
 
     /**
-     * @return Atomic
+     * @return Constructor
      */
-    public static function sample(): Atomic {
-        return new Atomic(
+    public static function sample(): Constructor {
+        return new Constructor(
         );
     }
 }
 
-// This is an autogenerated file:AtomicCancel
+// This is an autogenerated file:ContinueClass
 
-class AtomicCancel {
+class ContinueClass {
 
     /**
      */
@@ -23675,26 +28608,26 @@ class AtomicCancel {
 
     /**
      * @param stdClass $obj
-     * @return AtomicCancel
+     * @return ContinueClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): AtomicCancel {
-        return new AtomicCancel(
+    public static function from(stdClass $obj): ContinueClass {
+        return new ContinueClass(
         );
     }
 
     /**
-     * @return AtomicCancel
+     * @return ContinueClass
      */
-    public static function sample(): AtomicCancel {
-        return new AtomicCancel(
+    public static function sample(): ContinueClass {
+        return new ContinueClass(
         );
     }
 }
 
-// This is an autogenerated file:AtomicCommit
+// This is an autogenerated file:Convenience
 
-class AtomicCommit {
+class Convenience {
 
     /**
      */
@@ -23720,26 +28653,26 @@ class AtomicCommit {
 
     /**
      * @param stdClass $obj
-     * @return AtomicCommit
+     * @return Convenience
      * @throws Exception
      */
-    public static function from(stdClass $obj): AtomicCommit {
-        return new AtomicCommit(
+    public static function from(stdClass $obj): Convenience {
+        return new Convenience(
         );
     }
 
     /**
-     * @return AtomicCommit
+     * @return Convenience
      */
-    public static function sample(): AtomicCommit {
-        return new AtomicCommit(
+    public static function sample(): Convenience {
+        return new Convenience(
         );
     }
 }
 
-// This is an autogenerated file:AtomicNoexcept
+// This is an autogenerated file:Convert
 
-class AtomicNoexcept {
+class Convert {
 
     /**
      */
@@ -23765,26 +28698,26 @@ class AtomicNoexcept {
 
     /**
      * @param stdClass $obj
-     * @return AtomicNoexcept
+     * @return Convert
      * @throws Exception
      */
-    public static function from(stdClass $obj): AtomicNoexcept {
-        return new AtomicNoexcept(
+    public static function from(stdClass $obj): Convert {
+        return new Convert(
         );
     }
 
     /**
-     * @return AtomicNoexcept
+     * @return Convert
      */
-    public static function sample(): AtomicNoexcept {
-        return new AtomicNoexcept(
+    public static function sample(): Convert {
+        return new Convert(
         );
     }
 }
 
-// This is an autogenerated file:Auto
+// This is an autogenerated file:ConverterClass
 
-class Auto {
+class ConverterClass {
 
     /**
      */
@@ -23810,26 +28743,26 @@ class Auto {
 
     /**
      * @param stdClass $obj
-     * @return Auto
+     * @return ConverterClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Auto {
-        return new Auto(
+    public static function from(stdClass $obj): ConverterClass {
+        return new ConverterClass(
         );
     }
 
     /**
-     * @return Auto
+     * @return ConverterClass
      */
-    public static function sample(): Auto {
-        return new Auto(
+    public static function sample(): ConverterClass {
+        return new ConverterClass(
         );
     }
 }
 
-// This is an autogenerated file:Await
+// This is an autogenerated file:CultureInfo
 
-class Await {
+class CultureInfo {
 
     /**
      */
@@ -23855,26 +28788,26 @@ class Await {
 
     /**
      * @param stdClass $obj
-     * @return Await
+     * @return CultureInfo
      * @throws Exception
      */
-    public static function from(stdClass $obj): Await {
-        return new Await(
+    public static function from(stdClass $obj): CultureInfo {
+        return new CultureInfo(
         );
     }
 
     /**
-     * @return Await
+     * @return CultureInfo
      */
-    public static function sample(): Await {
-        return new Await(
+    public static function sample(): CultureInfo {
+        return new CultureInfo(
         );
     }
 }
 
-// This is an autogenerated file:Base
+// This is an autogenerated file:Date
 
-class Base {
+class Date {
 
     /**
      */
@@ -23900,26 +28833,26 @@ class Base {
 
     /**
      * @param stdClass $obj
-     * @return Base
+     * @return Date
      * @throws Exception
      */
-    public static function from(stdClass $obj): Base {
-        return new Base(
+    public static function from(stdClass $obj): Date {
+        return new Date(
         );
     }
 
     /**
-     * @return Base
+     * @return Date
      */
-    public static function sample(): Base {
-        return new Base(
+    public static function sample(): Date {
+        return new Date(
         );
     }
 }
 
-// This is an autogenerated file:Bitand
+// This is an autogenerated file:DateFormatter
 
-class Bitand {
+class DateFormatter {
 
     /**
      */
@@ -23945,26 +28878,26 @@ class Bitand {
 
     /**
      * @param stdClass $obj
-     * @return Bitand
+     * @return DateFormatter
      * @throws Exception
      */
-    public static function from(stdClass $obj): Bitand {
-        return new Bitand(
+    public static function from(stdClass $obj): DateFormatter {
+        return new DateFormatter(
         );
     }
 
     /**
-     * @return Bitand
+     * @return DateFormatter
      */
-    public static function sample(): Bitand {
-        return new Bitand(
+    public static function sample(): DateFormatter {
+        return new DateFormatter(
         );
     }
 }
 
-// This is an autogenerated file:Bitor
+// This is an autogenerated file:DateOnly
 
-class Bitor {
+class DateOnly {
 
     /**
      */
@@ -23990,26 +28923,26 @@ class Bitor {
 
     /**
      * @param stdClass $obj
-     * @return Bitor
+     * @return DateOnly
      * @throws Exception
      */
-    public static function from(stdClass $obj): Bitor {
-        return new Bitor(
+    public static function from(stdClass $obj): DateOnly {
+        return new DateOnly(
         );
     }
 
     /**
-     * @return Bitor
+     * @return DateOnly
      */
-    public static function sample(): Bitor {
-        return new Bitor(
+    public static function sample(): DateOnly {
+        return new DateOnly(
         );
     }
 }
 
-// This is an autogenerated file:BOOLClass
+// This is an autogenerated file:DateOnlyConverter
 
-class BOOLClass {
+class DateOnlyConverter {
 
     /**
      */
@@ -24035,26 +28968,26 @@ class BOOLClass {
 
     /**
      * @param stdClass $obj
-     * @return BOOLClass
+     * @return DateOnlyConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): BOOLClass {
-        return new BOOLClass(
+    public static function from(stdClass $obj): DateOnlyConverter {
+        return new DateOnlyConverter(
         );
     }
 
     /**
-     * @return BOOLClass
+     * @return DateOnlyConverter
      */
-    public static function sample(): BOOLClass {
-        return new BOOLClass(
+    public static function sample(): DateOnlyConverter {
+        return new DateOnlyConverter(
         );
     }
 }
 
-// This is an autogenerated file:Boolean
+// This is an autogenerated file:DateParseHandling
 
-class Boolean {
+class DateParseHandling {
 
     /**
      */
@@ -24080,26 +29013,26 @@ class Boolean {
 
     /**
      * @param stdClass $obj
-     * @return Boolean
+     * @return DateParseHandling
      * @throws Exception
      */
-    public static function from(stdClass $obj): Boolean {
-        return new Boolean(
+    public static function from(stdClass $obj): DateParseHandling {
+        return new DateParseHandling(
         );
     }
 
     /**
-     * @return Boolean
+     * @return DateParseHandling
      */
-    public static function sample(): Boolean {
-        return new Boolean(
+    public static function sample(): DateParseHandling {
+        return new DateParseHandling(
         );
     }
 }
 
-// This is an autogenerated file:BreakClass
+// This is an autogenerated file:DateTimeClass
 
-class BreakClass {
+class DateTimeClass {
 
     /**
      */
@@ -24125,26 +29058,26 @@ class BreakClass {
 
     /**
      * @param stdClass $obj
-     * @return BreakClass
+     * @return DateTimeClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): BreakClass {
-        return new BreakClass(
+    public static function from(stdClass $obj): DateTimeClass {
+        return new DateTimeClass(
         );
     }
 
     /**
-     * @return BreakClass
+     * @return DateTimeClass
      */
-    public static function sample(): BreakClass {
-        return new BreakClass(
+    public static function sample(): DateTimeClass {
+        return new DateTimeClass(
         );
     }
 }
 
-// This is an autogenerated file:Bycopy
+// This is an autogenerated file:DateTimeStyles
 
-class Bycopy {
+class DateTimeStyles {
 
     /**
      */
@@ -24170,26 +29103,26 @@ class Bycopy {
 
     /**
      * @param stdClass $obj
-     * @return Bycopy
+     * @return DateTimeStyles
      * @throws Exception
      */
-    public static function from(stdClass $obj): Bycopy {
-        return new Bycopy(
+    public static function from(stdClass $obj): DateTimeStyles {
+        return new DateTimeStyles(
         );
     }
 
     /**
-     * @return Bycopy
+     * @return DateTimeStyles
      */
-    public static function sample(): Bycopy {
-        return new Bycopy(
+    public static function sample(): DateTimeStyles {
+        return new DateTimeStyles(
         );
     }
 }
 
-// This is an autogenerated file:Byref
+// This is an autogenerated file:Debugger
 
-class Byref {
+class Debugger {
 
     /**
      */
@@ -24215,26 +29148,26 @@ class Byref {
 
     /**
      * @param stdClass $obj
-     * @return Byref
+     * @return Debugger
      * @throws Exception
      */
-    public static function from(stdClass $obj): Byref {
-        return new Byref(
+    public static function from(stdClass $obj): Debugger {
+        return new Debugger(
         );
     }
 
     /**
-     * @return Byref
+     * @return Debugger
      */
-    public static function sample(): Byref {
-        return new Byref(
+    public static function sample(): Debugger {
+        return new Debugger(
         );
     }
 }
 
-// This is an autogenerated file:Byte
+// This is an autogenerated file:Decimal
 
-class Byte {
+class Decimal {
 
     /**
      */
@@ -24260,26 +29193,26 @@ class Byte {
 
     /**
      * @param stdClass $obj
-     * @return Byte
+     * @return Decimal
      * @throws Exception
      */
-    public static function from(stdClass $obj): Byte {
-        return new Byte(
+    public static function from(stdClass $obj): Decimal {
+        return new Decimal(
         );
     }
 
     /**
-     * @return Byte
+     * @return Decimal
      */
-    public static function sample(): Byte {
-        return new Byte(
+    public static function sample(): Decimal {
+        return new Decimal(
         );
     }
 }
 
-// This is an autogenerated file:CaseClass
+// This is an autogenerated file:DeclareClass
 
-class CaseClass {
+class DeclareClass {
 
     /**
      */
@@ -24305,26 +29238,26 @@ class CaseClass {
 
     /**
      * @param stdClass $obj
-     * @return CaseClass
+     * @return DeclareClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): CaseClass {
-        return new CaseClass(
+    public static function from(stdClass $obj): DeclareClass {
+        return new DeclareClass(
         );
     }
 
     /**
-     * @return CaseClass
+     * @return DeclareClass
      */
-    public static function sample(): CaseClass {
-        return new CaseClass(
+    public static function sample(): DeclareClass {
+        return new DeclareClass(
         );
     }
 }
 
-// This is an autogenerated file:CatchClass
+// This is an autogenerated file:Decltype
 
-class CatchClass {
+class Decltype {
 
     /**
      */
@@ -24350,26 +29283,26 @@ class CatchClass {
 
     /**
      * @param stdClass $obj
-     * @return CatchClass
+     * @return Decltype
      * @throws Exception
      */
-    public static function from(stdClass $obj): CatchClass {
-        return new CatchClass(
+    public static function from(stdClass $obj): Decltype {
+        return new Decltype(
         );
     }
 
     /**
-     * @return CatchClass
+     * @return Decltype
      */
-    public static function sample(): CatchClass {
-        return new CatchClass(
+    public static function sample(): Decltype {
+        return new Decltype(
         );
     }
 }
 
-// This is an autogenerated file:Chan
+// This is an autogenerated file:DecodeString
 
-class Chan {
+class DecodeString {
 
     /**
      */
@@ -24395,26 +29328,26 @@ class Chan {
 
     /**
      * @param stdClass $obj
-     * @return Chan
+     * @return DecodeString
      * @throws Exception
      */
-    public static function from(stdClass $obj): Chan {
-        return new Chan(
+    public static function from(stdClass $obj): DecodeString {
+        return new DecodeString(
         );
     }
 
     /**
-     * @return Chan
+     * @return DecodeString
      */
-    public static function sample(): Chan {
-        return new Chan(
+    public static function sample(): DecodeString {
+        return new DecodeString(
         );
     }
 }
 
-// This is an autogenerated file:Char
+// This is an autogenerated file:Def
 
-class Char {
+class Def {
 
     /**
      */
@@ -24440,26 +29373,26 @@ class Char {
 
     /**
      * @param stdClass $obj
-     * @return Char
+     * @return Def
      * @throws Exception
      */
-    public static function from(stdClass $obj): Char {
-        return new Char(
+    public static function from(stdClass $obj): Def {
+        return new Def(
         );
     }
 
     /**
-     * @return Char
+     * @return Def
      */
-    public static function sample(): Char {
-        return new Char(
+    public static function sample(): Def {
+        return new Def(
         );
     }
 }
 
-// This is an autogenerated file:Char16T
+// This is an autogenerated file:DefaultClass
 
-class Char16T {
+class DefaultClass {
 
     /**
      */
@@ -24485,26 +29418,26 @@ class Char16T {
 
     /**
      * @param stdClass $obj
-     * @return Char16T
+     * @return DefaultClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Char16T {
-        return new Char16T(
+    public static function from(stdClass $obj): DefaultClass {
+        return new DefaultClass(
         );
     }
 
     /**
-     * @return Char16T
+     * @return DefaultClass
      */
-    public static function sample(): Char16T {
-        return new Char16T(
+    public static function sample(): DefaultClass {
+        return new DefaultClass(
         );
     }
 }
 
-// This is an autogenerated file:Char32T
+// This is an autogenerated file:Defer
 
-class Char32T {
+class Defer {
 
     /**
      */
@@ -24530,26 +29463,26 @@ class Char32T {
 
     /**
      * @param stdClass $obj
-     * @return Char32T
+     * @return Defer
      * @throws Exception
      */
-    public static function from(stdClass $obj): Char32T {
-        return new Char32T(
+    public static function from(stdClass $obj): Defer {
+        return new Defer(
         );
     }
 
     /**
-     * @return Char32T
+     * @return Defer
      */
-    public static function sample(): Char32T {
-        return new Char32T(
+    public static function sample(): Defer {
+        return new Defer(
         );
     }
 }
 
-// This is an autogenerated file:Checked
+// This is an autogenerated file:Deinit
 
-class Checked {
+class Deinit {
 
     /**
      */
@@ -24575,26 +29508,26 @@ class Checked {
 
     /**
      * @param stdClass $obj
-     * @return Checked
+     * @return Deinit
      * @throws Exception
      */
-    public static function from(stdClass $obj): Checked {
-        return new Checked(
+    public static function from(stdClass $obj): Deinit {
+        return new Deinit(
         );
     }
 
     /**
-     * @return Checked
+     * @return Deinit
      */
-    public static function sample(): Checked {
-        return new Checked(
+    public static function sample(): Deinit {
+        return new Deinit(
         );
     }
 }
 
-// This is an autogenerated file:ClassClass
+// This is an autogenerated file:Del
 
-class ClassClass {
+class Del {
 
     /**
      */
@@ -24620,26 +29553,26 @@ class ClassClass {
 
     /**
      * @param stdClass $obj
-     * @return ClassClass
+     * @return Del
      * @throws Exception
      */
-    public static function from(stdClass $obj): ClassClass {
-        return new ClassClass(
+    public static function from(stdClass $obj): Del {
+        return new Del(
         );
     }
 
     /**
-     * @return ClassClass
+     * @return Del
      */
-    public static function sample(): ClassClass {
-        return new ClassClass(
+    public static function sample(): Del {
+        return new Del(
         );
     }
 }
 
-// This is an autogenerated file:CoAwait
+// This is an autogenerated file:Delegate
 
-class CoAwait {
+class Delegate {
 
     /**
      */
@@ -24665,26 +29598,26 @@ class CoAwait {
 
     /**
      * @param stdClass $obj
-     * @return CoAwait
+     * @return Delegate
      * @throws Exception
      */
-    public static function from(stdClass $obj): CoAwait {
-        return new CoAwait(
+    public static function from(stdClass $obj): Delegate {
+        return new Delegate(
         );
     }
 
     /**
-     * @return CoAwait
+     * @return Delegate
      */
-    public static function sample(): CoAwait {
-        return new CoAwait(
+    public static function sample(): Delegate {
+        return new Delegate(
         );
     }
 }
 
-// This is an autogenerated file:CoReturn
+// This is an autogenerated file:Delete
 
-class CoReturn {
+class Delete {
 
     /**
      */
@@ -24710,26 +29643,26 @@ class CoReturn {
 
     /**
      * @param stdClass $obj
-     * @return CoReturn
+     * @return Delete
      * @throws Exception
      */
-    public static function from(stdClass $obj): CoReturn {
-        return new CoReturn(
+    public static function from(stdClass $obj): Delete {
+        return new Delete(
         );
     }
 
     /**
-     * @return CoReturn
+     * @return Delete
      */
-    public static function sample(): CoReturn {
-        return new CoReturn(
+    public static function sample(): Delete {
+        return new Delete(
         );
     }
 }
 
-// This is an autogenerated file:CoYield
+// This is an autogenerated file:Dict
 
-class CoYield {
+class Dict {
 
     /**
      */
@@ -24755,26 +29688,26 @@ class CoYield {
 
     /**
      * @param stdClass $obj
-     * @return CoYield
+     * @return Dict
      * @throws Exception
      */
-    public static function from(stdClass $obj): CoYield {
-        return new CoYield(
+    public static function from(stdClass $obj): Dict {
+        return new Dict(
         );
     }
 
     /**
-     * @return CoYield
+     * @return Dict
      */
-    public static function sample(): CoYield {
-        return new CoYield(
+    public static function sample(): Dict {
+        return new Dict(
         );
     }
 }
 
-// This is an autogenerated file:Compl
+// This is an autogenerated file:Dictionary
 
-class Compl {
+class Dictionary {
 
     /**
      */
@@ -24800,26 +29733,26 @@ class Compl {
 
     /**
      * @param stdClass $obj
-     * @return Compl
+     * @return Dictionary
      * @throws Exception
      */
-    public static function from(stdClass $obj): Compl {
-        return new Compl(
+    public static function from(stdClass $obj): Dictionary {
+        return new Dictionary(
         );
     }
 
     /**
-     * @return Compl
+     * @return Dictionary
      */
-    public static function sample(): Compl {
-        return new Compl(
+    public static function sample(): Dictionary {
+        return new Dictionary(
         );
     }
 }
 
-// This is an autogenerated file:Complex
+// This is an autogenerated file:DidSet
 
-class Complex {
+class DidSet {
 
     /**
      */
@@ -24845,26 +29778,26 @@ class Complex {
 
     /**
      * @param stdClass $obj
-     * @return Complex
+     * @return DidSet
      * @throws Exception
      */
-    public static function from(stdClass $obj): Complex {
-        return new Complex(
+    public static function from(stdClass $obj): DidSet {
+        return new DidSet(
         );
     }
 
     /**
-     * @return Complex
+     * @return DidSet
      */
-    public static function sample(): Complex {
-        return new Complex(
+    public static function sample(): DidSet {
+        return new DidSet(
         );
     }
 }
 
-// This is an autogenerated file:Concept
+// This is an autogenerated file:DoClass
 
-class Concept {
+class DoClass {
 
     /**
      */
@@ -24890,26 +29823,26 @@ class Concept {
 
     /**
      * @param stdClass $obj
-     * @return Concept
+     * @return DoClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Concept {
-        return new Concept(
+    public static function from(stdClass $obj): DoClass {
+        return new DoClass(
         );
     }
 
     /**
-     * @return Concept
+     * @return DoClass
      */
-    public static function sample(): Concept {
-        return new Concept(
+    public static function sample(): DoClass {
+        return new DoClass(
         );
     }
 }
 
-// This is an autogenerated file:Console
+// This is an autogenerated file:Double
 
-class Console {
+class Double {
 
     /**
      */
@@ -24935,26 +29868,26 @@ class Console {
 
     /**
      * @param stdClass $obj
-     * @return Console
+     * @return Double
      * @throws Exception
      */
-    public static function from(stdClass $obj): Console {
-        return new Console(
+    public static function from(stdClass $obj): Double {
+        return new Double(
         );
     }
 
     /**
-     * @return Console
+     * @return Double
      */
-    public static function sample(): Console {
-        return new Console(
+    public static function sample(): Double {
+        return new Double(
         );
     }
 }
 
-// This is an autogenerated file:ConstClass
+// This is an autogenerated file:Dynamic
 
-class ConstClass {
+class Dynamic {
 
     /**
      */
@@ -24980,26 +29913,26 @@ class ConstClass {
 
     /**
      * @param stdClass $obj
-     * @return ConstClass
+     * @return Dynamic
      * @throws Exception
      */
-    public static function from(stdClass $obj): ConstClass {
-        return new ConstClass(
+    public static function from(stdClass $obj): Dynamic {
+        return new Dynamic(
         );
     }
 
     /**
-     * @return ConstClass
+     * @return Dynamic
      */
-    public static function sample(): ConstClass {
-        return new ConstClass(
+    public static function sample(): Dynamic {
+        return new Dynamic(
         );
     }
 }
 
-// This is an autogenerated file:ConstCast
+// This is an autogenerated file:DynamicCast
 
-class ConstCast {
+class DynamicCast {
 
     /**
      */
@@ -25025,26 +29958,26 @@ class ConstCast {
 
     /**
      * @param stdClass $obj
-     * @return ConstCast
+     * @return DynamicCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): ConstCast {
-        return new ConstCast(
+    public static function from(stdClass $obj): DynamicCast {
+        return new DynamicCast(
         );
     }
 
     /**
-     * @return ConstCast
+     * @return DynamicCast
      */
-    public static function sample(): ConstCast {
-        return new ConstCast(
+    public static function sample(): DynamicCast {
+        return new DynamicCast(
         );
     }
 }
 
-// This is an autogenerated file:Constexpr
+// This is an autogenerated file:Elif
 
-class Constexpr {
+class Elif {
 
     /**
      */
@@ -25070,26 +30003,26 @@ class Constexpr {
 
     /**
      * @param stdClass $obj
-     * @return Constexpr
+     * @return Elif
      * @throws Exception
      */
-    public static function from(stdClass $obj): Constexpr {
-        return new Constexpr(
+    public static function from(stdClass $obj): Elif {
+        return new Elif(
         );
     }
 
     /**
-     * @return Constexpr
+     * @return Elif
      */
-    public static function sample(): Constexpr {
-        return new Constexpr(
+    public static function sample(): Elif {
+        return new Elif(
         );
     }
 }
 
-// This is an autogenerated file:Constructor
+// This is an autogenerated file:ElseClass
 
-class Constructor {
+class ElseClass {
 
     /**
      */
@@ -25115,26 +30048,26 @@ class Constructor {
 
     /**
      * @param stdClass $obj
-     * @return Constructor
+     * @return ElseClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Constructor {
-        return new Constructor(
+    public static function from(stdClass $obj): ElseClass {
+        return new ElseClass(
         );
     }
 
     /**
-     * @return Constructor
+     * @return ElseClass
      */
-    public static function sample(): Constructor {
-        return new Constructor(
+    public static function sample(): ElseClass {
+        return new ElseClass(
         );
     }
 }
 
-// This is an autogenerated file:ContinueClass
+// This is an autogenerated file:Union
 
-class ContinueClass {
+class Union {
 
     /**
      */
@@ -25160,26 +30093,26 @@ class ContinueClass {
 
     /**
      * @param stdClass $obj
-     * @return ContinueClass
+     * @return Union
      * @throws Exception
      */
-    public static function from(stdClass $obj): ContinueClass {
-        return new ContinueClass(
+    public static function from(stdClass $obj): Union {
+        return new Union(
         );
     }
 
     /**
-     * @return ContinueClass
+     * @return Union
      */
-    public static function sample(): ContinueClass {
-        return new ContinueClass(
+    public static function sample(): Union {
+        return new Union(
         );
     }
 }
 
-// This is an autogenerated file:Convenience
+// This is an autogenerated file:EncodeQuickType
 
-class Convenience {
+class EncodeQuickType {
 
     /**
      */
@@ -25205,26 +30138,26 @@ class Convenience {
 
     /**
      * @param stdClass $obj
-     * @return Convenience
+     * @return EncodeQuickType
      * @throws Exception
      */
-    public static function from(stdClass $obj): Convenience {
-        return new Convenience(
+    public static function from(stdClass $obj): EncodeQuickType {
+        return new EncodeQuickType(
         );
     }
 
     /**
-     * @return Convenience
+     * @return EncodeQuickType
      */
-    public static function sample(): Convenience {
-        return new Convenience(
+    public static function sample(): EncodeQuickType {
+        return new EncodeQuickType(
         );
     }
 }
 
-// This is an autogenerated file:Convert
+// This is an autogenerated file:EnumClass
 
-class Convert {
+class EnumClass {
 
     /**
      */
@@ -25250,26 +30183,26 @@ class Convert {
 
     /**
      * @param stdClass $obj
-     * @return Convert
+     * @return EnumClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Convert {
-        return new Convert(
+    public static function from(stdClass $obj): EnumClass {
+        return new EnumClass(
         );
     }
 
     /**
-     * @return Convert
+     * @return EnumClass
      */
-    public static function sample(): Convert {
-        return new Convert(
+    public static function sample(): EnumClass {
+        return new EnumClass(
         );
     }
 }
 
-// This is an autogenerated file:ConverterClass
+// This is an autogenerated file:EnumValues
 
-class ConverterClass {
+class EnumValues {
 
     /**
      */
@@ -25295,26 +30228,26 @@ class ConverterClass {
 
     /**
      * @param stdClass $obj
-     * @return ConverterClass
+     * @return EnumValues
      * @throws Exception
      */
-    public static function from(stdClass $obj): ConverterClass {
-        return new ConverterClass(
+    public static function from(stdClass $obj): EnumValues {
+        return new EnumValues(
         );
     }
 
     /**
-     * @return ConverterClass
+     * @return EnumValues
      */
-    public static function sample(): ConverterClass {
-        return new ConverterClass(
+    public static function sample(): EnumValues {
+        return new EnumValues(
         );
     }
 }
 
-// This is an autogenerated file:Date
+// This is an autogenerated file:EqualityContract
 
-class Date {
+class EqualityContract {
 
     /**
      */
@@ -25340,26 +30273,26 @@ class Date {
 
     /**
      * @param stdClass $obj
-     * @return Date
+     * @return EqualityContract
      * @throws Exception
      */
-    public static function from(stdClass $obj): Date {
-        return new Date(
+    public static function from(stdClass $obj): EqualityContract {
+        return new EqualityContract(
         );
     }
 
     /**
-     * @return Date
+     * @return EqualityContract
      */
-    public static function sample(): Date {
-        return new Date(
+    public static function sample(): EqualityContract {
+        return new EqualityContract(
         );
     }
 }
 
-// This is an autogenerated file:DateParseHandling
+// This is an autogenerated file:Event
 
-class DateParseHandling {
+class Event {
 
     /**
      */
@@ -25385,26 +30318,26 @@ class DateParseHandling {
 
     /**
      * @param stdClass $obj
-     * @return DateParseHandling
+     * @return Event
      * @throws Exception
      */
-    public static function from(stdClass $obj): DateParseHandling {
-        return new DateParseHandling(
+    public static function from(stdClass $obj): Event {
+        return new Event(
         );
     }
 
     /**
-     * @return DateParseHandling
+     * @return Event
      */
-    public static function sample(): DateParseHandling {
-        return new DateParseHandling(
+    public static function sample(): Event {
+        return new Event(
         );
     }
 }
 
-// This is an autogenerated file:Debugger
+// This is an autogenerated file:Except
 
-class Debugger {
+class Except {
 
     /**
      */
@@ -25430,26 +30363,26 @@ class Debugger {
 
     /**
      * @param stdClass $obj
-     * @return Debugger
+     * @return Except
      * @throws Exception
      */
-    public static function from(stdClass $obj): Debugger {
-        return new Debugger(
+    public static function from(stdClass $obj): Except {
+        return new Except(
         );
     }
 
     /**
-     * @return Debugger
+     * @return Except
      */
-    public static function sample(): Debugger {
-        return new Debugger(
+    public static function sample(): Except {
+        return new Except(
         );
     }
 }
 
-// This is an autogenerated file:Decimal
+// This is an autogenerated file:ExceptionClass
 
-class Decimal {
+class ExceptionClass {
 
     /**
      */
@@ -25475,26 +30408,26 @@ class Decimal {
 
     /**
      * @param stdClass $obj
-     * @return Decimal
+     * @return ExceptionClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Decimal {
-        return new Decimal(
+    public static function from(stdClass $obj): ExceptionClass {
+        return new ExceptionClass(
         );
     }
 
     /**
-     * @return Decimal
+     * @return ExceptionClass
      */
-    public static function sample(): Decimal {
-        return new Decimal(
+    public static function sample(): ExceptionClass {
+        return new ExceptionClass(
         );
     }
 }
 
-// This is an autogenerated file:DeclareClass
+// This is an autogenerated file:Explicit
 
-class DeclareClass {
+class Explicit {
 
     /**
      */
@@ -25520,26 +30453,26 @@ class DeclareClass {
 
     /**
      * @param stdClass $obj
-     * @return DeclareClass
+     * @return Explicit
      * @throws Exception
      */
-    public static function from(stdClass $obj): DeclareClass {
-        return new DeclareClass(
+    public static function from(stdClass $obj): Explicit {
+        return new Explicit(
         );
     }
 
     /**
-     * @return DeclareClass
+     * @return Explicit
      */
-    public static function sample(): DeclareClass {
-        return new DeclareClass(
+    public static function sample(): Explicit {
+        return new Explicit(
         );
     }
 }
 
-// This is an autogenerated file:Decltype
+// This is an autogenerated file:Export
 
-class Decltype {
+class Export {
 
     /**
      */
@@ -25565,26 +30498,26 @@ class Decltype {
 
     /**
      * @param stdClass $obj
-     * @return Decltype
+     * @return Export
      * @throws Exception
      */
-    public static function from(stdClass $obj): Decltype {
-        return new Decltype(
+    public static function from(stdClass $obj): Export {
+        return new Export(
         );
     }
 
     /**
-     * @return Decltype
+     * @return Export
      */
-    public static function sample(): Decltype {
-        return new Decltype(
+    public static function sample(): Export {
+        return new Export(
         );
     }
 }
 
-// This is an autogenerated file:DecodeString
+// This is an autogenerated file:Exposing
 
-class DecodeString {
+class Exposing {
 
     /**
      */
@@ -25610,26 +30543,26 @@ class DecodeString {
 
     /**
      * @param stdClass $obj
-     * @return DecodeString
+     * @return Exposing
      * @throws Exception
      */
-    public static function from(stdClass $obj): DecodeString {
-        return new DecodeString(
+    public static function from(stdClass $obj): Exposing {
+        return new Exposing(
         );
     }
 
     /**
-     * @return DecodeString
+     * @return Exposing
      */
-    public static function sample(): DecodeString {
-        return new DecodeString(
+    public static function sample(): Exposing {
+        return new Exposing(
         );
     }
 }
 
-// This is an autogenerated file:Def
+// This is an autogenerated file:ExtendsClass
 
-class Def {
+class ExtendsClass {
 
     /**
      */
@@ -25655,26 +30588,26 @@ class Def {
 
     /**
      * @param stdClass $obj
-     * @return Def
+     * @return ExtendsClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Def {
-        return new Def(
+    public static function from(stdClass $obj): ExtendsClass {
+        return new ExtendsClass(
         );
     }
 
     /**
-     * @return Def
+     * @return ExtendsClass
      */
-    public static function sample(): Def {
-        return new Def(
+    public static function sample(): ExtendsClass {
+        return new ExtendsClass(
         );
     }
 }
 
-// This is an autogenerated file:DefaultClass
+// This is an autogenerated file:Extension
 
-class DefaultClass {
+class Extension {
 
     /**
      */
@@ -25700,26 +30633,26 @@ class DefaultClass {
 
     /**
      * @param stdClass $obj
-     * @return DefaultClass
+     * @return Extension
      * @throws Exception
      */
-    public static function from(stdClass $obj): DefaultClass {
-        return new DefaultClass(
+    public static function from(stdClass $obj): Extension {
+        return new Extension(
         );
     }
 
     /**
-     * @return DefaultClass
+     * @return Extension
      */
-    public static function sample(): DefaultClass {
-        return new DefaultClass(
+    public static function sample(): Extension {
+        return new Extension(
         );
     }
 }
 
-// This is an autogenerated file:Defer
+// This is an autogenerated file:Extern
 
-class Defer {
+class Extern {
 
     /**
      */
@@ -25745,26 +30678,26 @@ class Defer {
 
     /**
      * @param stdClass $obj
-     * @return Defer
+     * @return Extern
      * @throws Exception
      */
-    public static function from(stdClass $obj): Defer {
-        return new Defer(
+    public static function from(stdClass $obj): Extern {
+        return new Extern(
         );
     }
 
     /**
-     * @return Defer
+     * @return Extern
      */
-    public static function sample(): Defer {
-        return new Defer(
+    public static function sample(): Extern {
+        return new Extern(
         );
     }
 }
 
-// This is an autogenerated file:Deinit
+// This is an autogenerated file:Fallthrough
 
-class Deinit {
+class Fallthrough {
 
     /**
      */
@@ -25790,26 +30723,26 @@ class Deinit {
 
     /**
      * @param stdClass $obj
-     * @return Deinit
+     * @return Fallthrough
      * @throws Exception
      */
-    public static function from(stdClass $obj): Deinit {
-        return new Deinit(
+    public static function from(stdClass $obj): Fallthrough {
+        return new Fallthrough(
         );
     }
 
     /**
-     * @return Deinit
+     * @return Fallthrough
      */
-    public static function sample(): Deinit {
-        return new Deinit(
+    public static function sample(): Fallthrough {
+        return new Fallthrough(
         );
     }
 }
 
-// This is an autogenerated file:Del
+// This is an autogenerated file:FalseClass
 
-class Del {
+class FalseClass {
 
     /**
      */
@@ -25835,26 +30768,26 @@ class Del {
 
     /**
      * @param stdClass $obj
-     * @return Del
+     * @return FalseClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Del {
-        return new Del(
+    public static function from(stdClass $obj): FalseClass {
+        return new FalseClass(
         );
     }
 
     /**
-     * @return Del
+     * @return FalseClass
      */
-    public static function sample(): Del {
-        return new Del(
+    public static function sample(): FalseClass {
+        return new FalseClass(
         );
     }
 }
 
-// This is an autogenerated file:Delegate
+// This is an autogenerated file:Fileprivate
 
-class Delegate {
+class Fileprivate {
 
     /**
      */
@@ -25880,26 +30813,26 @@ class Delegate {
 
     /**
      * @param stdClass $obj
-     * @return Delegate
+     * @return Fileprivate
      * @throws Exception
      */
-    public static function from(stdClass $obj): Delegate {
-        return new Delegate(
+    public static function from(stdClass $obj): Fileprivate {
+        return new Fileprivate(
         );
     }
 
     /**
-     * @return Delegate
+     * @return Fileprivate
      */
-    public static function sample(): Delegate {
-        return new Delegate(
+    public static function sample(): Fileprivate {
+        return new Fileprivate(
         );
     }
 }
 
-// This is an autogenerated file:Delete
+// This is an autogenerated file:FinalClass
 
-class Delete {
+class FinalClass {
 
     /**
      */
@@ -25925,26 +30858,26 @@ class Delete {
 
     /**
      * @param stdClass $obj
-     * @return Delete
+     * @return FinalClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Delete {
-        return new Delete(
+    public static function from(stdClass $obj): FinalClass {
+        return new FinalClass(
         );
     }
 
     /**
-     * @return Delete
+     * @return FinalClass
      */
-    public static function sample(): Delete {
-        return new Delete(
+    public static function sample(): FinalClass {
+        return new FinalClass(
         );
     }
 }
 
-// This is an autogenerated file:Dict
+// This is an autogenerated file:FinallyClass
 
-class Dict {
+class FinallyClass {
 
     /**
      */
@@ -25970,26 +30903,26 @@ class Dict {
 
     /**
      * @param stdClass $obj
-     * @return Dict
+     * @return FinallyClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dict {
-        return new Dict(
+    public static function from(stdClass $obj): FinallyClass {
+        return new FinallyClass(
         );
     }
 
     /**
-     * @return Dict
+     * @return FinallyClass
      */
-    public static function sample(): Dict {
-        return new Dict(
+    public static function sample(): FinallyClass {
+        return new FinallyClass(
         );
     }
 }
 
-// This is an autogenerated file:Dictionary
+// This is an autogenerated file:Fixed
 
-class Dictionary {
+class Fixed {
 
     /**
      */
@@ -26015,26 +30948,26 @@ class Dictionary {
 
     /**
      * @param stdClass $obj
-     * @return Dictionary
+     * @return Fixed
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dictionary {
-        return new Dictionary(
+    public static function from(stdClass $obj): Fixed {
+        return new Fixed(
         );
     }
 
     /**
-     * @return Dictionary
+     * @return Fixed
      */
-    public static function sample(): Dictionary {
-        return new Dictionary(
+    public static function sample(): Fixed {
+        return new Fixed(
         );
     }
 }
 
-// This is an autogenerated file:DidSet
+// This is an autogenerated file:FloatClass
 
-class DidSet {
+class FloatClass {
 
     /**
      */
@@ -26060,26 +30993,26 @@ class DidSet {
 
     /**
      * @param stdClass $obj
-     * @return DidSet
+     * @return FloatClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): DidSet {
-        return new DidSet(
+    public static function from(stdClass $obj): FloatClass {
+        return new FloatClass(
         );
     }
 
     /**
-     * @return DidSet
+     * @return FloatClass
      */
-    public static function sample(): DidSet {
-        return new DidSet(
+    public static function sample(): FloatClass {
+        return new FloatClass(
         );
     }
 }
 
-// This is an autogenerated file:DoClass
+// This is an autogenerated file:ForClass
 
-class DoClass {
+class ForClass {
 
     /**
      */
@@ -26105,26 +31038,26 @@ class DoClass {
 
     /**
      * @param stdClass $obj
-     * @return DoClass
+     * @return ForClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): DoClass {
-        return new DoClass(
+    public static function from(stdClass $obj): ForClass {
+        return new ForClass(
         );
     }
 
     /**
-     * @return DoClass
+     * @return ForClass
      */
-    public static function sample(): DoClass {
-        return new DoClass(
+    public static function sample(): ForClass {
+        return new ForClass(
         );
     }
 }
 
-// This is an autogenerated file:Double
+// This is an autogenerated file:ForeachClass
 
-class Double {
+class ForeachClass {
 
     /**
      */
@@ -26150,26 +31083,26 @@ class Double {
 
     /**
      * @param stdClass $obj
-     * @return Double
+     * @return ForeachClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Double {
-        return new Double(
+    public static function from(stdClass $obj): ForeachClass {
+        return new ForeachClass(
         );
     }
 
     /**
-     * @return Double
+     * @return ForeachClass
      */
-    public static function sample(): Double {
-        return new Double(
+    public static function sample(): ForeachClass {
+        return new ForeachClass(
         );
     }
 }
 
-// This is an autogenerated file:Dynamic
+// This is an autogenerated file:FormatException
 
-class Dynamic {
+class FormatException {
 
     /**
      */
@@ -26195,26 +31128,26 @@ class Dynamic {
 
     /**
      * @param stdClass $obj
-     * @return Dynamic
+     * @return FormatException
      * @throws Exception
      */
-    public static function from(stdClass $obj): Dynamic {
-        return new Dynamic(
+    public static function from(stdClass $obj): FormatException {
+        return new FormatException(
         );
     }
 
     /**
-     * @return Dynamic
+     * @return FormatException
      */
-    public static function sample(): Dynamic {
-        return new Dynamic(
+    public static function sample(): FormatException {
+        return new FormatException(
         );
     }
 }
 
-// This is an autogenerated file:DynamicCast
+// This is an autogenerated file:Friend
 
-class DynamicCast {
+class Friend {
 
     /**
      */
@@ -26240,26 +31173,26 @@ class DynamicCast {
 
     /**
      * @param stdClass $obj
-     * @return DynamicCast
+     * @return Friend
      * @throws Exception
      */
-    public static function from(stdClass $obj): DynamicCast {
-        return new DynamicCast(
+    public static function from(stdClass $obj): Friend {
+        return new Friend(
         );
     }
 
     /**
-     * @return DynamicCast
+     * @return Friend
      */
-    public static function sample(): DynamicCast {
-        return new DynamicCast(
+    public static function sample(): Friend {
+        return new Friend(
         );
     }
 }
 
-// This is an autogenerated file:Elif
+// This is an autogenerated file:From
 
-class Elif {
+class From {
 
     /**
      */
@@ -26285,26 +31218,26 @@ class Elif {
 
     /**
      * @param stdClass $obj
-     * @return Elif
+     * @return From
      * @throws Exception
      */
-    public static function from(stdClass $obj): Elif {
-        return new Elif(
+    public static function from(stdClass $obj): From {
+        return new From(
         );
     }
 
     /**
-     * @return Elif
+     * @return From
      */
-    public static function sample(): Elif {
-        return new Elif(
+    public static function sample(): From {
+        return new From(
         );
     }
 }
 
-// This is an autogenerated file:ElseClass
+// This is an autogenerated file:FromJSON
 
-class ElseClass {
+class FromJSON {
 
     /**
      */
@@ -26330,26 +31263,26 @@ class ElseClass {
 
     /**
      * @param stdClass $obj
-     * @return ElseClass
+     * @return FromJSON
      * @throws Exception
      */
-    public static function from(stdClass $obj): ElseClass {
-        return new ElseClass(
+    public static function from(stdClass $obj): FromJSON {
+        return new FromJSON(
         );
     }
 
     /**
-     * @return ElseClass
+     * @return FromJSON
      */
-    public static function sample(): ElseClass {
-        return new ElseClass(
+    public static function sample(): FromJSON {
+        return new FromJSON(
         );
     }
 }
 
-// This is an autogenerated file:Union
+// This is an autogenerated file:Func
 
-class Union {
+class Func {
 
     /**
      */
@@ -26375,26 +31308,26 @@ class Union {
 
     /**
      * @param stdClass $obj
-     * @return Union
+     * @return Func
      * @throws Exception
      */
-    public static function from(stdClass $obj): Union {
-        return new Union(
+    public static function from(stdClass $obj): Func {
+        return new Func(
         );
     }
 
     /**
-     * @return Union
+     * @return Func
      */
-    public static function sample(): Union {
-        return new Union(
+    public static function sample(): Func {
+        return new Func(
         );
     }
 }
 
-// This is an autogenerated file:EncodeQuickType
+// This is an autogenerated file:FunctionClass
 
-class EncodeQuickType {
+class FunctionClass {
 
     /**
      */
@@ -26420,26 +31353,26 @@ class EncodeQuickType {
 
     /**
      * @param stdClass $obj
-     * @return EncodeQuickType
+     * @return FunctionClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): EncodeQuickType {
-        return new EncodeQuickType(
+    public static function from(stdClass $obj): FunctionClass {
+        return new FunctionClass(
         );
     }
 
     /**
-     * @return EncodeQuickType
+     * @return FunctionClass
      */
-    public static function sample(): EncodeQuickType {
-        return new EncodeQuickType(
+    public static function sample(): FunctionClass {
+        return new FunctionClass(
         );
     }
 }
 
-// This is an autogenerated file:EnumClass
+// This is an autogenerated file:Get
 
-class EnumClass {
+class Get {
 
     /**
      */
@@ -26465,26 +31398,26 @@ class EnumClass {
 
     /**
      * @param stdClass $obj
-     * @return EnumClass
+     * @return Get
      * @throws Exception
      */
-    public static function from(stdClass $obj): EnumClass {
-        return new EnumClass(
+    public static function from(stdClass $obj): Get {
+        return new Get(
         );
     }
 
     /**
-     * @return EnumClass
+     * @return Get
      */
-    public static function sample(): EnumClass {
-        return new EnumClass(
+    public static function sample(): Get {
+        return new Get(
         );
     }
 }
 
-// This is an autogenerated file:Event
+// This is an autogenerated file:GlobalClass
 
-class Event {
+class GlobalClass {
 
     /**
      */
@@ -26510,26 +31443,26 @@ class Event {
 
     /**
      * @param stdClass $obj
-     * @return Event
+     * @return GlobalClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Event {
-        return new Event(
+    public static function from(stdClass $obj): GlobalClass {
+        return new GlobalClass(
         );
     }
 
     /**
-     * @return Event
+     * @return GlobalClass
      */
-    public static function sample(): Event {
-        return new Event(
+    public static function sample(): GlobalClass {
+        return new GlobalClass(
         );
     }
 }
 
-// This is an autogenerated file:Except
+// This is an autogenerated file:Go
 
-class Except {
+class Go {
 
     /**
      */
@@ -26555,26 +31488,26 @@ class Except {
 
     /**
      * @param stdClass $obj
-     * @return Except
+     * @return Go
      * @throws Exception
      */
-    public static function from(stdClass $obj): Except {
-        return new Except(
+    public static function from(stdClass $obj): Go {
+        return new Go(
         );
     }
 
     /**
-     * @return Except
+     * @return Go
      */
-    public static function sample(): Except {
-        return new Except(
+    public static function sample(): Go {
+        return new Go(
         );
     }
 }
 
-// This is an autogenerated file:ExceptionClass
+// This is an autogenerated file:GotoClass
 
-class ExceptionClass {
+class GotoClass {
 
     /**
      */
@@ -26600,26 +31533,26 @@ class ExceptionClass {
 
     /**
      * @param stdClass $obj
-     * @return ExceptionClass
+     * @return GotoClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ExceptionClass {
-        return new ExceptionClass(
+    public static function from(stdClass $obj): GotoClass {
+        return new GotoClass(
         );
     }
 
     /**
-     * @return ExceptionClass
+     * @return GotoClass
      */
-    public static function sample(): ExceptionClass {
-        return new ExceptionClass(
+    public static function sample(): GotoClass {
+        return new GotoClass(
         );
     }
 }
 
-// This is an autogenerated file:Explicit
+// This is an autogenerated file:Guard
 
-class Explicit {
+class Guard {
 
     /**
      */
@@ -26645,26 +31578,26 @@ class Explicit {
 
     /**
      * @param stdClass $obj
-     * @return Explicit
+     * @return Guard
      * @throws Exception
      */
-    public static function from(stdClass $obj): Explicit {
-        return new Explicit(
+    public static function from(stdClass $obj): Guard {
+        return new Guard(
         );
     }
 
     /**
-     * @return Explicit
+     * @return Guard
      */
-    public static function sample(): Explicit {
-        return new Explicit(
+    public static function sample(): Guard {
+        return new Guard(
         );
     }
 }
 
-// This is an autogenerated file:Export
+// This is an autogenerated file:HasOwnProperty
 
-class Export {
+class HasOwnProperty {
 
     /**
      */
@@ -26690,26 +31623,26 @@ class Export {
 
     /**
      * @param stdClass $obj
-     * @return Export
+     * @return HasOwnProperty
      * @throws Exception
      */
-    public static function from(stdClass $obj): Export {
-        return new Export(
+    public static function from(stdClass $obj): HasOwnProperty {
+        return new HasOwnProperty(
         );
     }
 
     /**
-     * @return Export
+     * @return HasOwnProperty
      */
-    public static function sample(): Export {
-        return new Export(
+    public static function sample(): HasOwnProperty {
+        return new HasOwnProperty(
         );
     }
 }
 
-// This is an autogenerated file:Exposing
+// This is an autogenerated file:HashCode
 
-class Exposing {
+class HashCode {
 
     /**
      */
@@ -26735,26 +31668,26 @@ class Exposing {
 
     /**
      * @param stdClass $obj
-     * @return Exposing
+     * @return HashCode
      * @throws Exception
      */
-    public static function from(stdClass $obj): Exposing {
-        return new Exposing(
+    public static function from(stdClass $obj): HashCode {
+        return new HashCode(
         );
     }
 
     /**
-     * @return Exposing
+     * @return HashCode
      */
-    public static function sample(): Exposing {
-        return new Exposing(
+    public static function sample(): HashCode {
+        return new HashCode(
         );
     }
 }
 
-// This is an autogenerated file:ExtendsClass
+// This is an autogenerated file:ID
 
-class ExtendsClass {
+class ID {
 
     /**
      */
@@ -26780,26 +31713,26 @@ class ExtendsClass {
 
     /**
      * @param stdClass $obj
-     * @return ExtendsClass
+     * @return ID
      * @throws Exception
      */
-    public static function from(stdClass $obj): ExtendsClass {
-        return new ExtendsClass(
+    public static function from(stdClass $obj): ID {
+        return new ID(
         );
     }
 
     /**
-     * @return ExtendsClass
+     * @return ID
      */
-    public static function sample(): ExtendsClass {
-        return new ExtendsClass(
+    public static function sample(): ID {
+        return new ID(
         );
     }
 }
 
-// This is an autogenerated file:Extension
+// This is an autogenerated file:IfClass
 
-class Extension {
+class IfClass {
 
     /**
      */
@@ -26825,26 +31758,26 @@ class Extension {
 
     /**
      * @param stdClass $obj
-     * @return Extension
+     * @return IfClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Extension {
-        return new Extension(
+    public static function from(stdClass $obj): IfClass {
+        return new IfClass(
         );
     }
 
     /**
-     * @return Extension
+     * @return IfClass
      */
-    public static function sample(): Extension {
-        return new Extension(
+    public static function sample(): IfClass {
+        return new IfClass(
         );
     }
 }
 
-// This is an autogenerated file:Extern
+// This is an autogenerated file:Imaginery
 
-class Extern {
+class Imaginery {
 
     /**
      */
@@ -26870,26 +31803,26 @@ class Extern {
 
     /**
      * @param stdClass $obj
-     * @return Extern
+     * @return Imaginery
      * @throws Exception
      */
-    public static function from(stdClass $obj): Extern {
-        return new Extern(
+    public static function from(stdClass $obj): Imaginery {
+        return new Imaginery(
         );
     }
 
     /**
-     * @return Extern
+     * @return Imaginery
      */
-    public static function sample(): Extern {
-        return new Extern(
+    public static function sample(): Imaginery {
+        return new Imaginery(
         );
     }
 }
 
-// This is an autogenerated file:Fallthrough
+// This is an autogenerated file:Imp
 
-class Fallthrough {
+class Imp {
 
     /**
      */
@@ -26915,26 +31848,26 @@ class Fallthrough {
 
     /**
      * @param stdClass $obj
-     * @return Fallthrough
+     * @return Imp
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fallthrough {
-        return new Fallthrough(
+    public static function from(stdClass $obj): Imp {
+        return new Imp(
         );
     }
 
     /**
-     * @return Fallthrough
+     * @return Imp
      */
-    public static function sample(): Fallthrough {
-        return new Fallthrough(
+    public static function sample(): Imp {
+        return new Imp(
         );
     }
 }
 
-// This is an autogenerated file:FalseClass
+// This is an autogenerated file:ImplementsClass
 
-class FalseClass {
+class ImplementsClass {
 
     /**
      */
@@ -26960,26 +31893,26 @@ class FalseClass {
 
     /**
      * @param stdClass $obj
-     * @return FalseClass
+     * @return ImplementsClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): FalseClass {
-        return new FalseClass(
+    public static function from(stdClass $obj): ImplementsClass {
+        return new ImplementsClass(
         );
     }
 
     /**
-     * @return FalseClass
+     * @return ImplementsClass
      */
-    public static function sample(): FalseClass {
-        return new FalseClass(
+    public static function sample(): ImplementsClass {
+        return new ImplementsClass(
         );
     }
 }
 
-// This is an autogenerated file:Fileprivate
+// This is an autogenerated file:Implicit
 
-class Fileprivate {
+class Implicit {
 
     /**
      */
@@ -27005,26 +31938,26 @@ class Fileprivate {
 
     /**
      * @param stdClass $obj
-     * @return Fileprivate
+     * @return Implicit
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fileprivate {
-        return new Fileprivate(
+    public static function from(stdClass $obj): Implicit {
+        return new Implicit(
         );
     }
 
     /**
-     * @return Fileprivate
+     * @return Implicit
      */
-    public static function sample(): Fileprivate {
-        return new Fileprivate(
+    public static function sample(): Implicit {
+        return new Implicit(
         );
     }
 }
 
-// This is an autogenerated file:FinalClass
+// This is an autogenerated file:Import
 
-class FinalClass {
+class Import {
 
     /**
      */
@@ -27050,26 +31983,26 @@ class FinalClass {
 
     /**
      * @param stdClass $obj
-     * @return FinalClass
+     * @return Import
      * @throws Exception
      */
-    public static function from(stdClass $obj): FinalClass {
-        return new FinalClass(
+    public static function from(stdClass $obj): Import {
+        return new Import(
         );
     }
 
     /**
-     * @return FinalClass
+     * @return Import
      */
-    public static function sample(): FinalClass {
-        return new FinalClass(
+    public static function sample(): Import {
+        return new Import(
         );
     }
 }
 
-// This is an autogenerated file:FinallyClass
+// This is an autogenerated file:In
 
-class FinallyClass {
+class In {
 
     /**
      */
@@ -27095,26 +32028,26 @@ class FinallyClass {
 
     /**
      * @param stdClass $obj
-     * @return FinallyClass
+     * @return In
      * @throws Exception
      */
-    public static function from(stdClass $obj): FinallyClass {
-        return new FinallyClass(
+    public static function from(stdClass $obj): In {
+        return new In(
         );
     }
 
     /**
-     * @return FinallyClass
+     * @return In
      */
-    public static function sample(): FinallyClass {
-        return new FinallyClass(
+    public static function sample(): In {
+        return new In(
         );
     }
 }
 
-// This is an autogenerated file:Fixed
+// This is an autogenerated file:Indirect
 
-class Fixed {
+class Indirect {
 
     /**
      */
@@ -27140,26 +32073,26 @@ class Fixed {
 
     /**
      * @param stdClass $obj
-     * @return Fixed
+     * @return Indirect
      * @throws Exception
      */
-    public static function from(stdClass $obj): Fixed {
-        return new Fixed(
+    public static function from(stdClass $obj): Indirect {
+        return new Indirect(
         );
     }
 
     /**
-     * @return Fixed
+     * @return Indirect
      */
-    public static function sample(): Fixed {
-        return new Fixed(
+    public static function sample(): Indirect {
+        return new Indirect(
         );
     }
 }
 
-// This is an autogenerated file:FloatClass
+// This is an autogenerated file:Infix
 
-class FloatClass {
+class Infix {
 
     /**
      */
@@ -27185,26 +32118,26 @@ class FloatClass {
 
     /**
      * @param stdClass $obj
-     * @return FloatClass
+     * @return Infix
      * @throws Exception
      */
-    public static function from(stdClass $obj): FloatClass {
-        return new FloatClass(
+    public static function from(stdClass $obj): Infix {
+        return new Infix(
         );
     }
 
     /**
-     * @return FloatClass
+     * @return Infix
      */
-    public static function sample(): FloatClass {
-        return new FloatClass(
+    public static function sample(): Infix {
+        return new Infix(
         );
     }
 }
 
-// This is an autogenerated file:ForClass
+// This is an autogenerated file:Init
 
-class ForClass {
+class Init {
 
     /**
      */
@@ -27230,26 +32163,26 @@ class ForClass {
 
     /**
      * @param stdClass $obj
-     * @return ForClass
+     * @return Init
      * @throws Exception
      */
-    public static function from(stdClass $obj): ForClass {
-        return new ForClass(
+    public static function from(stdClass $obj): Init {
+        return new Init(
         );
     }
 
     /**
-     * @return ForClass
+     * @return Init
      */
-    public static function sample(): ForClass {
-        return new ForClass(
+    public static function sample(): Init {
+        return new Init(
         );
     }
 }
 
-// This is an autogenerated file:ForeachClass
+// This is an autogenerated file:Inline
 
-class ForeachClass {
+class Inline {
 
     /**
      */
@@ -27275,26 +32208,26 @@ class ForeachClass {
 
     /**
      * @param stdClass $obj
-     * @return ForeachClass
+     * @return Inline
      * @throws Exception
      */
-    public static function from(stdClass $obj): ForeachClass {
-        return new ForeachClass(
+    public static function from(stdClass $obj): Inline {
+        return new Inline(
         );
     }
 
     /**
-     * @return ForeachClass
+     * @return Inline
      */
-    public static function sample(): ForeachClass {
-        return new ForeachClass(
+    public static function sample(): Inline {
+        return new Inline(
         );
     }
 }
 
-// This is an autogenerated file:Friend
+// This is an autogenerated file:Inout
 
-class Friend {
+class Inout {
 
     /**
      */
@@ -27320,26 +32253,26 @@ class Friend {
 
     /**
      * @param stdClass $obj
-     * @return Friend
+     * @return Inout
      * @throws Exception
      */
-    public static function from(stdClass $obj): Friend {
-        return new Friend(
+    public static function from(stdClass $obj): Inout {
+        return new Inout(
         );
     }
 
     /**
-     * @return Friend
+     * @return Inout
      */
-    public static function sample(): Friend {
-        return new Friend(
+    public static function sample(): Inout {
+        return new Inout(
         );
     }
 }
 
-// This is an autogenerated file:From
+// This is an autogenerated file:InstanceofClass
 
-class From {
+class InstanceofClass {
 
     /**
      */
@@ -27365,26 +32298,26 @@ class From {
 
     /**
      * @param stdClass $obj
-     * @return From
+     * @return InstanceofClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): From {
-        return new From(
+    public static function from(stdClass $obj): InstanceofClass {
+        return new InstanceofClass(
         );
     }
 
     /**
-     * @return From
+     * @return InstanceofClass
      */
-    public static function sample(): From {
-        return new From(
+    public static function sample(): InstanceofClass {
+        return new InstanceofClass(
         );
     }
 }
 
-// This is an autogenerated file:FromJSON
+// This is an autogenerated file:IntClass
 
-class FromJSON {
+class IntClass {
 
     /**
      */
@@ -27410,26 +32343,26 @@ class FromJSON {
 
     /**
      * @param stdClass $obj
-     * @return FromJSON
+     * @return IntClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): FromJSON {
-        return new FromJSON(
+    public static function from(stdClass $obj): IntClass {
+        return new IntClass(
         );
     }
 
     /**
-     * @return FromJSON
+     * @return IntClass
      */
-    public static function sample(): FromJSON {
-        return new FromJSON(
+    public static function sample(): IntClass {
+        return new IntClass(
         );
     }
 }
 
-// This is an autogenerated file:Func
+// This is an autogenerated file:InterfaceClass
 
-class Func {
+class InterfaceClass {
 
     /**
      */
@@ -27455,26 +32388,26 @@ class Func {
 
     /**
      * @param stdClass $obj
-     * @return Func
+     * @return InterfaceClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Func {
-        return new Func(
+    public static function from(stdClass $obj): InterfaceClass {
+        return new InterfaceClass(
         );
     }
 
     /**
-     * @return Func
+     * @return InterfaceClass
      */
-    public static function sample(): Func {
-        return new Func(
+    public static function sample(): InterfaceClass {
+        return new InterfaceClass(
         );
     }
 }
 
-// This is an autogenerated file:FunctionClass
+// This is an autogenerated file:Internal
 
-class FunctionClass {
+class Internal {
 
     /**
      */
@@ -27500,26 +32433,26 @@ class FunctionClass {
 
     /**
      * @param stdClass $obj
-     * @return FunctionClass
+     * @return Internal
      * @throws Exception
      */
-    public static function from(stdClass $obj): FunctionClass {
-        return new FunctionClass(
+    public static function from(stdClass $obj): Internal {
+        return new Internal(
         );
     }
 
     /**
-     * @return FunctionClass
+     * @return Internal
      */
-    public static function sample(): FunctionClass {
-        return new FunctionClass(
+    public static function sample(): Internal {
+        return new Internal(
         );
     }
 }
 
-// This is an autogenerated file:Get
+// This is an autogenerated file:Is
 
-class Get {
+class Is {
 
     /**
      */
@@ -27545,26 +32478,26 @@ class Get {
 
     /**
      * @param stdClass $obj
-     * @return Get
+     * @return Is
      * @throws Exception
      */
-    public static function from(stdClass $obj): Get {
-        return new Get(
+    public static function from(stdClass $obj): Is {
+        return new Is(
         );
     }
 
     /**
-     * @return Get
+     * @return Is
      */
-    public static function sample(): Get {
-        return new Get(
+    public static function sample(): Is {
+        return new Is(
         );
     }
 }
 
-// This is an autogenerated file:GlobalClass
+// This is an autogenerated file:ISODateTimeOffsetConverter
 
-class GlobalClass {
+class ISODateTimeOffsetConverter {
 
     /**
      */
@@ -27590,26 +32523,26 @@ class GlobalClass {
 
     /**
      * @param stdClass $obj
-     * @return GlobalClass
+     * @return ISODateTimeOffsetConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): GlobalClass {
-        return new GlobalClass(
+    public static function from(stdClass $obj): ISODateTimeOffsetConverter {
+        return new ISODateTimeOffsetConverter(
         );
     }
 
     /**
-     * @return GlobalClass
+     * @return ISODateTimeOffsetConverter
      */
-    public static function sample(): GlobalClass {
-        return new GlobalClass(
+    public static function sample(): ISODateTimeOffsetConverter {
+        return new ISODateTimeOffsetConverter(
         );
     }
 }
 
-// This is an autogenerated file:Go
+// This is an autogenerated file:IterableClass
 
-class Go {
+class IterableClass {
 
     /**
      */
@@ -27635,26 +32568,26 @@ class Go {
 
     /**
      * @param stdClass $obj
-     * @return Go
+     * @return IterableClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Go {
-        return new Go(
+    public static function from(stdClass $obj): IterableClass {
+        return new IterableClass(
         );
     }
 
     /**
-     * @return Go
+     * @return IterableClass
      */
-    public static function sample(): Go {
-        return new Go(
+    public static function sample(): IterableClass {
+        return new IterableClass(
         );
     }
 }
 
-// This is an autogenerated file:GotoClass
+// This is an autogenerated file:Jdec
 
-class GotoClass {
+class Jdec {
 
     /**
      */
@@ -27680,26 +32613,26 @@ class GotoClass {
 
     /**
      * @param stdClass $obj
-     * @return GotoClass
+     * @return Jdec
      * @throws Exception
      */
-    public static function from(stdClass $obj): GotoClass {
-        return new GotoClass(
+    public static function from(stdClass $obj): Jdec {
+        return new Jdec(
         );
     }
 
     /**
-     * @return GotoClass
+     * @return Jdec
      */
-    public static function sample(): GotoClass {
-        return new GotoClass(
+    public static function sample(): Jdec {
+        return new Jdec(
         );
     }
 }
 
-// This is an autogenerated file:Guard
+// This is an autogenerated file:Jenc
 
-class Guard {
+class Jenc {
 
     /**
      */
@@ -27725,26 +32658,26 @@ class Guard {
 
     /**
      * @param stdClass $obj
-     * @return Guard
+     * @return Jenc
      * @throws Exception
      */
-    public static function from(stdClass $obj): Guard {
-        return new Guard(
+    public static function from(stdClass $obj): Jenc {
+        return new Jenc(
         );
     }
 
     /**
-     * @return Guard
+     * @return Jenc
      */
-    public static function sample(): Guard {
-        return new Guard(
+    public static function sample(): Jenc {
+        return new Jenc(
         );
     }
 }
 
-// This is an autogenerated file:HasOwnProperty
+// This is an autogenerated file:Jpipe
 
-class HasOwnProperty {
+class Jpipe {
 
     /**
      */
@@ -27770,26 +32703,26 @@ class HasOwnProperty {
 
     /**
      * @param stdClass $obj
-     * @return HasOwnProperty
+     * @return Jpipe
      * @throws Exception
      */
-    public static function from(stdClass $obj): HasOwnProperty {
-        return new HasOwnProperty(
+    public static function from(stdClass $obj): Jpipe {
+        return new Jpipe(
         );
     }
 
     /**
-     * @return HasOwnProperty
+     * @return Jpipe
      */
-    public static function sample(): HasOwnProperty {
-        return new HasOwnProperty(
+    public static function sample(): Jpipe {
+        return new Jpipe(
         );
     }
 }
 
-// This is an autogenerated file:ID
+// This is an autogenerated file:JSON
 
-class ID {
+class JSON {
 
     /**
      */
@@ -27815,26 +32748,26 @@ class ID {
 
     /**
      * @param stdClass $obj
-     * @return ID
+     * @return JSON
      * @throws Exception
      */
-    public static function from(stdClass $obj): ID {
-        return new ID(
+    public static function from(stdClass $obj): JSON {
+        return new JSON(
         );
     }
 
     /**
-     * @return ID
+     * @return JSON
      */
-    public static function sample(): ID {
-        return new ID(
+    public static function sample(): JSON {
+        return new JSON(
         );
     }
 }
 
-// This is an autogenerated file:IfClass
+// This is an autogenerated file:JSONAny
 
-class IfClass {
+class JSONAny {
 
     /**
      */
@@ -27860,26 +32793,26 @@ class IfClass {
 
     /**
      * @param stdClass $obj
-     * @return IfClass
+     * @return JSONAny
      * @throws Exception
      */
-    public static function from(stdClass $obj): IfClass {
-        return new IfClass(
+    public static function from(stdClass $obj): JSONAny {
+        return new JSONAny(
         );
     }
 
     /**
-     * @return IfClass
+     * @return JSONAny
      */
-    public static function sample(): IfClass {
-        return new IfClass(
+    public static function sample(): JSONAny {
+        return new JSONAny(
         );
     }
 }
 
-// This is an autogenerated file:Imaginery
+// This is an autogenerated file:JSONCodingKey
 
-class Imaginery {
+class JSONCodingKey {
 
     /**
      */
@@ -27905,26 +32838,26 @@ class Imaginery {
 
     /**
      * @param stdClass $obj
-     * @return Imaginery
+     * @return JSONCodingKey
      * @throws Exception
      */
-    public static function from(stdClass $obj): Imaginery {
-        return new Imaginery(
+    public static function from(stdClass $obj): JSONCodingKey {
+        return new JSONCodingKey(
         );
     }
 
     /**
-     * @return Imaginery
+     * @return JSONCodingKey
      */
-    public static function sample(): Imaginery {
-        return new Imaginery(
+    public static function sample(): JSONCodingKey {
+        return new JSONCodingKey(
         );
     }
 }
 
-// This is an autogenerated file:Imp
+// This is an autogenerated file:JSONConverter
 
-class Imp {
+class JSONConverter {
 
     /**
      */
@@ -27950,26 +32883,26 @@ class Imp {
 
     /**
      * @param stdClass $obj
-     * @return Imp
+     * @return JSONConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): Imp {
-        return new Imp(
+    public static function from(stdClass $obj): JSONConverter {
+        return new JSONConverter(
         );
     }
 
     /**
-     * @return Imp
+     * @return JSONConverter
      */
-    public static function sample(): Imp {
-        return new Imp(
+    public static function sample(): JSONConverter {
+        return new JSONConverter(
         );
     }
 }
 
-// This is an autogenerated file:ImplementsClass
+// This is an autogenerated file:JSONDecoder
 
-class ImplementsClass {
+class JSONDecoder {
 
     /**
      */
@@ -27995,26 +32928,26 @@ class ImplementsClass {
 
     /**
      * @param stdClass $obj
-     * @return ImplementsClass
+     * @return JSONDecoder
      * @throws Exception
      */
-    public static function from(stdClass $obj): ImplementsClass {
-        return new ImplementsClass(
+    public static function from(stdClass $obj): JSONDecoder {
+        return new JSONDecoder(
         );
     }
 
     /**
-     * @return ImplementsClass
+     * @return JSONDecoder
      */
-    public static function sample(): ImplementsClass {
-        return new ImplementsClass(
+    public static function sample(): JSONDecoder {
+        return new JSONDecoder(
         );
     }
 }
 
-// This is an autogenerated file:Implicit
+// This is an autogenerated file:JSONEncoder
 
-class Implicit {
+class JSONEncoder {
 
     /**
      */
@@ -28040,26 +32973,26 @@ class Implicit {
 
     /**
      * @param stdClass $obj
-     * @return Implicit
+     * @return JSONEncoder
      * @throws Exception
      */
-    public static function from(stdClass $obj): Implicit {
-        return new Implicit(
+    public static function from(stdClass $obj): JSONEncoder {
+        return new JSONEncoder(
         );
     }
 
     /**
-     * @return Implicit
+     * @return JSONEncoder
      */
-    public static function sample(): Implicit {
-        return new Implicit(
+    public static function sample(): JSONEncoder {
+        return new JSONEncoder(
         );
     }
 }
 
-// This is an autogenerated file:Import
+// This is an autogenerated file:JSONExceptionClass
 
-class Import {
+class JSONExceptionClass {
 
     /**
      */
@@ -28085,26 +33018,26 @@ class Import {
 
     /**
      * @param stdClass $obj
-     * @return Import
+     * @return JSONExceptionClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Import {
-        return new Import(
+    public static function from(stdClass $obj): JSONExceptionClass {
+        return new JSONExceptionClass(
         );
     }
 
     /**
-     * @return Import
+     * @return JSONExceptionClass
      */
-    public static function sample(): Import {
-        return new Import(
+    public static function sample(): JSONExceptionClass {
+        return new JSONExceptionClass(
         );
     }
 }
 
-// This is an autogenerated file:In
+// This is an autogenerated file:JSONGenerator
 
-class In {
+class JSONGenerator {
 
     /**
      */
@@ -28130,26 +33063,26 @@ class In {
 
     /**
      * @param stdClass $obj
-     * @return In
+     * @return JSONGenerator
      * @throws Exception
      */
-    public static function from(stdClass $obj): In {
-        return new In(
+    public static function from(stdClass $obj): JSONGenerator {
+        return new JSONGenerator(
         );
     }
 
     /**
-     * @return In
+     * @return JSONGenerator
      */
-    public static function sample(): In {
-        return new In(
+    public static function sample(): JSONGenerator {
+        return new JSONGenerator(
         );
     }
 }
 
-// This is an autogenerated file:Indirect
+// This is an autogenerated file:JSONNode
 
-class Indirect {
+class JSONNode {
 
     /**
      */
@@ -28175,26 +33108,26 @@ class Indirect {
 
     /**
      * @param stdClass $obj
-     * @return Indirect
+     * @return JSONNode
      * @throws Exception
      */
-    public static function from(stdClass $obj): Indirect {
-        return new Indirect(
+    public static function from(stdClass $obj): JSONNode {
+        return new JSONNode(
         );
     }
 
     /**
-     * @return Indirect
+     * @return JSONNode
      */
-    public static function sample(): Indirect {
-        return new Indirect(
+    public static function sample(): JSONNode {
+        return new JSONNode(
         );
     }
 }
 
-// This is an autogenerated file:Infix
+// This is an autogenerated file:JSONNull
 
-class Infix {
+class JSONNull {
 
     /**
      */
@@ -28220,26 +33153,26 @@ class Infix {
 
     /**
      * @param stdClass $obj
-     * @return Infix
+     * @return JSONNull
      * @throws Exception
      */
-    public static function from(stdClass $obj): Infix {
-        return new Infix(
+    public static function from(stdClass $obj): JSONNull {
+        return new JSONNull(
         );
     }
 
     /**
-     * @return Infix
+     * @return JSONNull
      */
-    public static function sample(): Infix {
-        return new Infix(
+    public static function sample(): JSONNull {
+        return new JSONNull(
         );
     }
 }
 
-// This is an autogenerated file:Init
+// This is an autogenerated file:JSONParser
 
-class Init {
+class JSONParser {
 
     /**
      */
@@ -28265,26 +33198,26 @@ class Init {
 
     /**
      * @param stdClass $obj
-     * @return Init
+     * @return JSONParser
      * @throws Exception
      */
-    public static function from(stdClass $obj): Init {
-        return new Init(
+    public static function from(stdClass $obj): JSONParser {
+        return new JSONParser(
         );
     }
 
     /**
-     * @return Init
+     * @return JSONParser
      */
-    public static function sample(): Init {
-        return new Init(
+    public static function sample(): JSONParser {
+        return new JSONParser(
         );
     }
 }
 
-// This is an autogenerated file:Inline
+// This is an autogenerated file:JSONReader
 
-class Inline {
+class JSONReader {
 
     /**
      */
@@ -28310,26 +33243,26 @@ class Inline {
 
     /**
      * @param stdClass $obj
-     * @return Inline
+     * @return JSONReader
      * @throws Exception
      */
-    public static function from(stdClass $obj): Inline {
-        return new Inline(
+    public static function from(stdClass $obj): JSONReader {
+        return new JSONReader(
         );
     }
 
     /**
-     * @return Inline
+     * @return JSONReader
      */
-    public static function sample(): Inline {
-        return new Inline(
+    public static function sample(): JSONReader {
+        return new JSONReader(
         );
     }
 }
 
-// This is an autogenerated file:Inout
+// This is an autogenerated file:JSONSerializer
 
-class Inout {
+class JSONSerializer {
 
     /**
      */
@@ -28355,26 +33288,26 @@ class Inout {
 
     /**
      * @param stdClass $obj
-     * @return Inout
+     * @return JSONSerializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): Inout {
-        return new Inout(
+    public static function from(stdClass $obj): JSONSerializer {
+        return new JSONSerializer(
         );
     }
 
     /**
-     * @return Inout
+     * @return JSONSerializer
      */
-    public static function sample(): Inout {
-        return new Inout(
+    public static function sample(): JSONSerializer {
+        return new JSONSerializer(
         );
     }
 }
 
-// This is an autogenerated file:InstanceofClass
+// This is an autogenerated file:JSONToken
 
-class InstanceofClass {
+class JSONToken {
 
     /**
      */
@@ -28400,26 +33333,26 @@ class InstanceofClass {
 
     /**
      * @param stdClass $obj
-     * @return InstanceofClass
+     * @return JSONToken
      * @throws Exception
      */
-    public static function from(stdClass $obj): InstanceofClass {
-        return new InstanceofClass(
+    public static function from(stdClass $obj): JSONToken {
+        return new JSONToken(
         );
     }
 
     /**
-     * @return InstanceofClass
+     * @return JSONToken
      */
-    public static function sample(): InstanceofClass {
-        return new InstanceofClass(
+    public static function sample(): JSONToken {
+        return new JSONToken(
         );
     }
 }
 
-// This is an autogenerated file:IntClass
+// This is an autogenerated file:JSONTokenType
 
-class IntClass {
+class JSONTokenType {
 
     /**
      */
@@ -28445,26 +33378,26 @@ class IntClass {
 
     /**
      * @param stdClass $obj
-     * @return IntClass
+     * @return JSONTokenType
      * @throws Exception
      */
-    public static function from(stdClass $obj): IntClass {
-        return new IntClass(
+    public static function from(stdClass $obj): JSONTokenType {
+        return new JSONTokenType(
         );
     }
 
     /**
-     * @return IntClass
+     * @return JSONTokenType
      */
-    public static function sample(): IntClass {
-        return new IntClass(
+    public static function sample(): JSONTokenType {
+        return new JSONTokenType(
         );
     }
 }
 
-// This is an autogenerated file:InterfaceClass
+// This is an autogenerated file:JSONWriter
 
-class InterfaceClass {
+class JSONWriter {
 
     /**
      */
@@ -28490,26 +33423,26 @@ class InterfaceClass {
 
     /**
      * @param stdClass $obj
-     * @return InterfaceClass
+     * @return JSONWriter
      * @throws Exception
      */
-    public static function from(stdClass $obj): InterfaceClass {
-        return new InterfaceClass(
+    public static function from(stdClass $obj): JSONWriter {
+        return new JSONWriter(
         );
     }
 
     /**
-     * @return InterfaceClass
+     * @return JSONWriter
      */
-    public static function sample(): InterfaceClass {
-        return new InterfaceClass(
+    public static function sample(): JSONWriter {
+        return new JSONWriter(
         );
     }
 }
 
-// This is an autogenerated file:Internal
+// This is an autogenerated file:Lambda
 
-class Internal {
+class Lambda {
 
     /**
      */
@@ -28535,26 +33468,26 @@ class Internal {
 
     /**
      * @param stdClass $obj
-     * @return Internal
+     * @return Lambda
      * @throws Exception
      */
-    public static function from(stdClass $obj): Internal {
-        return new Internal(
+    public static function from(stdClass $obj): Lambda {
+        return new Lambda(
         );
     }
 
     /**
-     * @return Internal
+     * @return Lambda
      */
-    public static function sample(): Internal {
-        return new Internal(
+    public static function sample(): Lambda {
+        return new Lambda(
         );
     }
 }
 
-// This is an autogenerated file:Is
+// This is an autogenerated file:Lazy
 
-class Is {
+class Lazy {
 
     /**
      */
@@ -28580,26 +33513,26 @@ class Is {
 
     /**
      * @param stdClass $obj
-     * @return Is
+     * @return Lazy
      * @throws Exception
      */
-    public static function from(stdClass $obj): Is {
-        return new Is(
+    public static function from(stdClass $obj): Lazy {
+        return new Lazy(
         );
     }
 
     /**
-     * @return Is
+     * @return Lazy
      */
-    public static function sample(): Is {
-        return new Is(
+    public static function sample(): Lazy {
+        return new Lazy(
         );
     }
 }
 
-// This is an autogenerated file:IterableClass
+// This is an autogenerated file:Left
 
-class IterableClass {
+class Left {
 
     /**
      */
@@ -28625,26 +33558,26 @@ class IterableClass {
 
     /**
      * @param stdClass $obj
-     * @return IterableClass
+     * @return Left
      * @throws Exception
      */
-    public static function from(stdClass $obj): IterableClass {
-        return new IterableClass(
+    public static function from(stdClass $obj): Left {
+        return new Left(
         );
     }
 
     /**
-     * @return IterableClass
+     * @return Left
      */
-    public static function sample(): IterableClass {
-        return new IterableClass(
+    public static function sample(): Left {
+        return new Left(
         );
     }
 }
 
-// This is an autogenerated file:Jdec
+// This is an autogenerated file:Let
 
-class Jdec {
+class Let {
 
     /**
      */
@@ -28670,26 +33603,26 @@ class Jdec {
 
     /**
      * @param stdClass $obj
-     * @return Jdec
+     * @return Let
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jdec {
-        return new Jdec(
+    public static function from(stdClass $obj): Let {
+        return new Let(
         );
     }
 
     /**
-     * @return Jdec
+     * @return Let
      */
-    public static function sample(): Jdec {
-        return new Jdec(
+    public static function sample(): Let {
+        return new Let(
         );
     }
 }
 
-// This is an autogenerated file:Jenc
+// This is an autogenerated file:ListClass
 
-class Jenc {
+class ListClass {
 
     /**
      */
@@ -28715,26 +33648,26 @@ class Jenc {
 
     /**
      * @param stdClass $obj
-     * @return Jenc
+     * @return ListClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jenc {
-        return new Jenc(
+    public static function from(stdClass $obj): ListClass {
+        return new ListClass(
         );
     }
 
     /**
-     * @return Jenc
+     * @return ListClass
      */
-    public static function sample(): Jenc {
-        return new Jenc(
+    public static function sample(): ListClass {
+        return new ListClass(
         );
     }
 }
 
-// This is an autogenerated file:Jpipe
+// This is an autogenerated file:Lock
 
-class Jpipe {
+class Lock {
 
     /**
      */
@@ -28760,26 +33693,26 @@ class Jpipe {
 
     /**
      * @param stdClass $obj
-     * @return Jpipe
+     * @return Lock
      * @throws Exception
      */
-    public static function from(stdClass $obj): Jpipe {
-        return new Jpipe(
+    public static function from(stdClass $obj): Lock {
+        return new Lock(
         );
     }
 
     /**
-     * @return Jpipe
+     * @return Lock
      */
-    public static function sample(): Jpipe {
-        return new Jpipe(
+    public static function sample(): Lock {
+        return new Lock(
         );
     }
 }
 
-// This is an autogenerated file:JSON
+// This is an autogenerated file:Long
 
-class JSON {
+class Long {
 
     /**
      */
@@ -28805,26 +33738,26 @@ class JSON {
 
     /**
      * @param stdClass $obj
-     * @return JSON
+     * @return Long
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSON {
-        return new JSON(
+    public static function from(stdClass $obj): Long {
+        return new Long(
         );
     }
 
     /**
-     * @return JSON
+     * @return Long
      */
-    public static function sample(): JSON {
-        return new JSON(
+    public static function sample(): Long {
+        return new Long(
         );
     }
 }
 
-// This is an autogenerated file:JSONConverter
+// This is an autogenerated file:Map
 
-class JSONConverter {
+class Map {
 
     /**
      */
@@ -28850,26 +33783,26 @@ class JSONConverter {
 
     /**
      * @param stdClass $obj
-     * @return JSONConverter
+     * @return Map
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONConverter {
-        return new JSONConverter(
+    public static function from(stdClass $obj): Map {
+        return new Map(
         );
     }
 
     /**
-     * @return JSONConverter
+     * @return Map
      */
-    public static function sample(): JSONConverter {
-        return new JSONConverter(
+    public static function sample(): Map {
+        return new Map(
         );
     }
 }
 
-// This is an autogenerated file:JSONSerializer
+// This is an autogenerated file:MetadataPropertyHandling
 
-class JSONSerializer {
+class MetadataPropertyHandling {
 
     /**
      */
@@ -28895,26 +33828,26 @@ class JSONSerializer {
 
     /**
      * @param stdClass $obj
-     * @return JSONSerializer
+     * @return MetadataPropertyHandling
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONSerializer {
-        return new JSONSerializer(
+    public static function from(stdClass $obj): MetadataPropertyHandling {
+        return new MetadataPropertyHandling(
         );
     }
 
     /**
-     * @return JSONSerializer
+     * @return MetadataPropertyHandling
      */
-    public static function sample(): JSONSerializer {
-        return new JSONSerializer(
+    public static function sample(): MetadataPropertyHandling {
+        return new MetadataPropertyHandling(
         );
     }
 }
 
-// This is an autogenerated file:JSONToken
+// This is an autogenerated file:Module
 
-class JSONToken {
+class Module {
 
     /**
      */
@@ -28940,26 +33873,26 @@ class JSONToken {
 
     /**
      * @param stdClass $obj
-     * @return JSONToken
+     * @return Module
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONToken {
-        return new JSONToken(
+    public static function from(stdClass $obj): Module {
+        return new Module(
         );
     }
 
     /**
-     * @return JSONToken
+     * @return Module
      */
-    public static function sample(): JSONToken {
-        return new JSONToken(
+    public static function sample(): Module {
+        return new Module(
         );
     }
 }
 
-// This is an autogenerated file:JSONWriter
+// This is an autogenerated file:Mutable
 
-class JSONWriter {
+class Mutable {
 
     /**
      */
@@ -28985,26 +33918,26 @@ class JSONWriter {
 
     /**
      * @param stdClass $obj
-     * @return JSONWriter
+     * @return Mutable
      * @throws Exception
      */
-    public static function from(stdClass $obj): JSONWriter {
-        return new JSONWriter(
+    public static function from(stdClass $obj): Mutable {
+        return new Mutable(
         );
     }
 
     /**
-     * @return JSONWriter
+     * @return Mutable
      */
-    public static function sample(): JSONWriter {
-        return new JSONWriter(
+    public static function sample(): Mutable {
+        return new Mutable(
         );
     }
 }
 
-// This is an autogenerated file:Lambda
+// This is an autogenerated file:Mutating
 
-class Lambda {
+class Mutating {
 
     /**
      */
@@ -29030,26 +33963,26 @@ class Lambda {
 
     /**
      * @param stdClass $obj
-     * @return Lambda
+     * @return Mutating
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lambda {
-        return new Lambda(
+    public static function from(stdClass $obj): Mutating {
+        return new Mutating(
         );
     }
 
     /**
-     * @return Lambda
+     * @return Mutating
      */
-    public static function sample(): Lambda {
-        return new Lambda(
+    public static function sample(): Mutating {
+        return new Mutating(
         );
     }
 }
 
-// This is an autogenerated file:Lazy
+// This is an autogenerated file:NamespaceClass
 
-class Lazy {
+class NamespaceClass {
 
     /**
      */
@@ -29075,26 +34008,26 @@ class Lazy {
 
     /**
      * @param stdClass $obj
-     * @return Lazy
+     * @return NamespaceClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lazy {
-        return new Lazy(
+    public static function from(stdClass $obj): NamespaceClass {
+        return new NamespaceClass(
         );
     }
 
     /**
-     * @return Lazy
+     * @return NamespaceClass
      */
-    public static function sample(): Lazy {
-        return new Lazy(
+    public static function sample(): NamespaceClass {
+        return new NamespaceClass(
         );
     }
 }
 
-// This is an autogenerated file:Left
+// This is an autogenerated file:Native
 
-class Left {
+class Native {
 
     /**
      */
@@ -29120,26 +34053,26 @@ class Left {
 
     /**
      * @param stdClass $obj
-     * @return Left
+     * @return Native
      * @throws Exception
      */
-    public static function from(stdClass $obj): Left {
-        return new Left(
+    public static function from(stdClass $obj): Native {
+        return new Native(
         );
     }
 
     /**
-     * @return Left
+     * @return Native
      */
-    public static function sample(): Left {
-        return new Left(
+    public static function sample(): Native {
+        return new Native(
         );
     }
 }
 
-// This is an autogenerated file:Let
+// This is an autogenerated file:NewClass
 
-class Let {
+class NewClass {
 
     /**
      */
@@ -29165,26 +34098,26 @@ class Let {
 
     /**
      * @param stdClass $obj
-     * @return Let
+     * @return NewClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Let {
-        return new Let(
+    public static function from(stdClass $obj): NewClass {
+        return new NewClass(
         );
     }
 
     /**
-     * @return Let
+     * @return NewClass
      */
-    public static function sample(): Let {
-        return new Let(
+    public static function sample(): NewClass {
+        return new NewClass(
         );
     }
 }
 
-// This is an autogenerated file:ListClass
+// This is an autogenerated file:Newtonsoft
 
-class ListClass {
+class Newtonsoft {
 
     /**
      */
@@ -29210,26 +34143,26 @@ class ListClass {
 
     /**
      * @param stdClass $obj
-     * @return ListClass
+     * @return Newtonsoft
      * @throws Exception
      */
-    public static function from(stdClass $obj): ListClass {
-        return new ListClass(
+    public static function from(stdClass $obj): Newtonsoft {
+        return new Newtonsoft(
         );
     }
 
     /**
-     * @return ListClass
+     * @return Newtonsoft
      */
-    public static function sample(): ListClass {
-        return new ListClass(
+    public static function sample(): Newtonsoft {
+        return new Newtonsoft(
         );
     }
 }
 
-// This is an autogenerated file:Lock
+// This is an autogenerated file:Nil
 
-class Lock {
+class Nil {
 
     /**
      */
@@ -29255,26 +34188,26 @@ class Lock {
 
     /**
      * @param stdClass $obj
-     * @return Lock
+     * @return Nil
      * @throws Exception
      */
-    public static function from(stdClass $obj): Lock {
-        return new Lock(
+    public static function from(stdClass $obj): Nil {
+        return new Nil(
         );
     }
 
     /**
-     * @return Lock
+     * @return Nil
      */
-    public static function sample(): Lock {
-        return new Lock(
+    public static function sample(): Nil {
+        return new Nil(
         );
     }
 }
 
-// This is an autogenerated file:Long
+// This is an autogenerated file:No
 
-class Long {
+class No {
 
     /**
      */
@@ -29300,26 +34233,26 @@ class Long {
 
     /**
      * @param stdClass $obj
-     * @return Long
+     * @return No
      * @throws Exception
      */
-    public static function from(stdClass $obj): Long {
-        return new Long(
+    public static function from(stdClass $obj): No {
+        return new No(
         );
     }
 
     /**
-     * @return Long
+     * @return No
      */
-    public static function sample(): Long {
-        return new Long(
+    public static function sample(): No {
+        return new No(
         );
     }
 }
 
-// This is an autogenerated file:Map
+// This is an autogenerated file:NoSuchMethod
 
-class Map {
+class NoSuchMethod {
 
     /**
      */
@@ -29345,26 +34278,26 @@ class Map {
 
     /**
      * @param stdClass $obj
-     * @return Map
+     * @return NoSuchMethod
      * @throws Exception
      */
-    public static function from(stdClass $obj): Map {
-        return new Map(
+    public static function from(stdClass $obj): NoSuchMethod {
+        return new NoSuchMethod(
         );
     }
 
     /**
-     * @return Map
+     * @return NoSuchMethod
      */
-    public static function sample(): Map {
-        return new Map(
+    public static function sample(): NoSuchMethod {
+        return new NoSuchMethod(
         );
     }
 }
 
-// This is an autogenerated file:MetadataPropertyHandling
+// This is an autogenerated file:Noexcept
 
-class MetadataPropertyHandling {
+class Noexcept {
 
     /**
      */
@@ -29390,26 +34323,26 @@ class MetadataPropertyHandling {
 
     /**
      * @param stdClass $obj
-     * @return MetadataPropertyHandling
+     * @return Noexcept
      * @throws Exception
      */
-    public static function from(stdClass $obj): MetadataPropertyHandling {
-        return new MetadataPropertyHandling(
+    public static function from(stdClass $obj): Noexcept {
+        return new Noexcept(
         );
     }
 
     /**
-     * @return MetadataPropertyHandling
+     * @return Noexcept
      */
-    public static function sample(): MetadataPropertyHandling {
-        return new MetadataPropertyHandling(
+    public static function sample(): Noexcept {
+        return new Noexcept(
         );
     }
 }
 
-// This is an autogenerated file:Module
+// This is an autogenerated file:Nonatomic
 
-class Module {
+class Nonatomic {
 
     /**
      */
@@ -29435,26 +34368,26 @@ class Module {
 
     /**
      * @param stdClass $obj
-     * @return Module
+     * @return Nonatomic
      * @throws Exception
      */
-    public static function from(stdClass $obj): Module {
-        return new Module(
+    public static function from(stdClass $obj): Nonatomic {
+        return new Nonatomic(
         );
     }
 
     /**
-     * @return Module
+     * @return Nonatomic
      */
-    public static function sample(): Module {
-        return new Module(
+    public static function sample(): Nonatomic {
+        return new Nonatomic(
         );
     }
 }
 
-// This is an autogenerated file:Mutable
+// This is an autogenerated file:None
 
-class Mutable {
+class None {
 
     /**
      */
@@ -29480,26 +34413,26 @@ class Mutable {
 
     /**
      * @param stdClass $obj
-     * @return Mutable
+     * @return None
      * @throws Exception
      */
-    public static function from(stdClass $obj): Mutable {
-        return new Mutable(
+    public static function from(stdClass $obj): None {
+        return new None(
         );
     }
 
     /**
-     * @return Mutable
+     * @return None
      */
-    public static function sample(): Mutable {
-        return new Mutable(
+    public static function sample(): None {
+        return new None(
         );
     }
 }
 
-// This is an autogenerated file:Mutating
+// This is an autogenerated file:Nonlocal
 
-class Mutating {
+class Nonlocal {
 
     /**
      */
@@ -29525,26 +34458,26 @@ class Mutating {
 
     /**
      * @param stdClass $obj
-     * @return Mutating
+     * @return Nonlocal
      * @throws Exception
      */
-    public static function from(stdClass $obj): Mutating {
-        return new Mutating(
+    public static function from(stdClass $obj): Nonlocal {
+        return new Nonlocal(
         );
     }
 
     /**
-     * @return Mutating
+     * @return Nonlocal
      */
-    public static function sample(): Mutating {
-        return new Mutating(
+    public static function sample(): Nonlocal {
+        return new Nonlocal(
         );
     }
 }
 
-// This is an autogenerated file:NamespaceClass
+// This is an autogenerated file:Nonmutating
 
-class NamespaceClass {
+class Nonmutating {
 
     /**
      */
@@ -29570,26 +34503,26 @@ class NamespaceClass {
 
     /**
      * @param stdClass $obj
-     * @return NamespaceClass
+     * @return Nonmutating
      * @throws Exception
      */
-    public static function from(stdClass $obj): NamespaceClass {
-        return new NamespaceClass(
+    public static function from(stdClass $obj): Nonmutating {
+        return new Nonmutating(
         );
     }
 
     /**
-     * @return NamespaceClass
+     * @return Nonmutating
      */
-    public static function sample(): NamespaceClass {
-        return new NamespaceClass(
+    public static function sample(): Nonmutating {
+        return new Nonmutating(
         );
     }
 }
 
-// This is an autogenerated file:Native
+// This is an autogenerated file:Not
 
-class Native {
+class Not {
 
     /**
      */
@@ -29615,26 +34548,26 @@ class Native {
 
     /**
      * @param stdClass $obj
-     * @return Native
+     * @return Not
      * @throws Exception
      */
-    public static function from(stdClass $obj): Native {
-        return new Native(
+    public static function from(stdClass $obj): Not {
+        return new Not(
         );
     }
 
     /**
-     * @return Native
+     * @return Not
      */
-    public static function sample(): Native {
-        return new Native(
+    public static function sample(): Not {
+        return new Not(
         );
     }
 }
 
-// This is an autogenerated file:NewClass
+// This is an autogenerated file:NotEq
 
-class NewClass {
+class NotEq {
 
     /**
      */
@@ -29660,26 +34593,26 @@ class NewClass {
 
     /**
      * @param stdClass $obj
-     * @return NewClass
+     * @return NotEq
      * @throws Exception
      */
-    public static function from(stdClass $obj): NewClass {
-        return new NewClass(
+    public static function from(stdClass $obj): NotEq {
+        return new NotEq(
         );
     }
 
     /**
-     * @return NewClass
+     * @return NotEq
      */
-    public static function sample(): NewClass {
-        return new NewClass(
+    public static function sample(): NotEq {
+        return new NotEq(
         );
     }
 }
 
-// This is an autogenerated file:Newtonsoft
+// This is an autogenerated file:NSError
 
-class Newtonsoft {
+class NSError {
 
     /**
      */
@@ -29705,26 +34638,26 @@ class Newtonsoft {
 
     /**
      * @param stdClass $obj
-     * @return Newtonsoft
+     * @return NSError
      * @throws Exception
      */
-    public static function from(stdClass $obj): Newtonsoft {
-        return new Newtonsoft(
+    public static function from(stdClass $obj): NSError {
+        return new NSError(
         );
     }
 
     /**
-     * @return Newtonsoft
+     * @return NSError
      */
-    public static function sample(): Newtonsoft {
-        return new Newtonsoft(
+    public static function sample(): NSError {
+        return new NSError(
         );
     }
 }
 
-// This is an autogenerated file:Nil
+// This is an autogenerated file:NSString
 
-class Nil {
+class NSString {
 
     /**
      */
@@ -29750,26 +34683,26 @@ class Nil {
 
     /**
      * @param stdClass $obj
-     * @return Nil
+     * @return NSString
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nil {
-        return new Nil(
+    public static function from(stdClass $obj): NSString {
+        return new NSString(
         );
     }
 
     /**
-     * @return Nil
+     * @return NSString
      */
-    public static function sample(): Nil {
-        return new Nil(
+    public static function sample(): NSString {
+        return new NSString(
         );
     }
 }
 
-// This is an autogenerated file:No
+// This is an autogenerated file:NULLClass
 
-class No {
+class NULLClass {
 
     /**
      */
@@ -29795,26 +34728,26 @@ class No {
 
     /**
      * @param stdClass $obj
-     * @return No
+     * @return NULLClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): No {
-        return new No(
+    public static function from(stdClass $obj): NULLClass {
+        return new NULLClass(
         );
     }
 
     /**
-     * @return No
+     * @return NULLClass
      */
-    public static function sample(): No {
-        return new No(
+    public static function sample(): NULLClass {
+        return new NULLClass(
         );
     }
 }
 
-// This is an autogenerated file:Noexcept
+// This is an autogenerated file:Nullptr
 
-class Noexcept {
+class Nullptr {
 
     /**
      */
@@ -29840,26 +34773,26 @@ class Noexcept {
 
     /**
      * @param stdClass $obj
-     * @return Noexcept
+     * @return Nullptr
      * @throws Exception
      */
-    public static function from(stdClass $obj): Noexcept {
-        return new Noexcept(
+    public static function from(stdClass $obj): Nullptr {
+        return new Nullptr(
         );
     }
 
     /**
-     * @return Noexcept
+     * @return Nullptr
      */
-    public static function sample(): Noexcept {
-        return new Noexcept(
+    public static function sample(): Nullptr {
+        return new Nullptr(
         );
     }
 }
 
-// This is an autogenerated file:Nonatomic
+// This is an autogenerated file:Number
 
-class Nonatomic {
+class Number {
 
     /**
      */
@@ -29885,26 +34818,26 @@ class Nonatomic {
 
     /**
      * @param stdClass $obj
-     * @return Nonatomic
+     * @return Number
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonatomic {
-        return new Nonatomic(
+    public static function from(stdClass $obj): Number {
+        return new Number(
         );
     }
 
     /**
-     * @return Nonatomic
+     * @return Number
      */
-    public static function sample(): Nonatomic {
-        return new Nonatomic(
+    public static function sample(): Number {
+        return new Number(
         );
     }
 }
 
-// This is an autogenerated file:None
+// This is an autogenerated file:ObjectClass
 
-class None {
+class ObjectClass {
 
     /**
      */
@@ -29930,26 +34863,26 @@ class None {
 
     /**
      * @param stdClass $obj
-     * @return None
+     * @return ObjectClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): None {
-        return new None(
+    public static function from(stdClass $obj): ObjectClass {
+        return new ObjectClass(
         );
     }
 
     /**
-     * @return None
+     * @return ObjectClass
      */
-    public static function sample(): None {
-        return new None(
+    public static function sample(): ObjectClass {
+        return new ObjectClass(
         );
     }
 }
 
-// This is an autogenerated file:Nonlocal
+// This is an autogenerated file:ObjectMapper
 
-class Nonlocal {
+class ObjectMapper {
 
     /**
      */
@@ -29975,26 +34908,26 @@ class Nonlocal {
 
     /**
      * @param stdClass $obj
-     * @return Nonlocal
+     * @return ObjectMapper
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonlocal {
-        return new Nonlocal(
+    public static function from(stdClass $obj): ObjectMapper {
+        return new ObjectMapper(
         );
     }
 
     /**
-     * @return Nonlocal
+     * @return ObjectMapper
      */
-    public static function sample(): Nonlocal {
-        return new Nonlocal(
+    public static function sample(): ObjectMapper {
+        return new ObjectMapper(
         );
     }
 }
 
-// This is an autogenerated file:Nonmutating
+// This is an autogenerated file:Of
 
-class Nonmutating {
+class Of {
 
     /**
      */
@@ -30020,26 +34953,26 @@ class Nonmutating {
 
     /**
      * @param stdClass $obj
-     * @return Nonmutating
+     * @return Of
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nonmutating {
-        return new Nonmutating(
+    public static function from(stdClass $obj): Of {
+        return new Of(
         );
     }
 
     /**
-     * @return Nonmutating
+     * @return Of
      */
-    public static function sample(): Nonmutating {
-        return new Nonmutating(
+    public static function sample(): Of {
+        return new Of(
         );
     }
 }
 
-// This is an autogenerated file:Not
+// This is an autogenerated file:Oneway
 
-class Not {
+class Oneway {
 
     /**
      */
@@ -30065,26 +34998,26 @@ class Not {
 
     /**
      * @param stdClass $obj
-     * @return Not
+     * @return Oneway
      * @throws Exception
      */
-    public static function from(stdClass $obj): Not {
-        return new Not(
+    public static function from(stdClass $obj): Oneway {
+        return new Oneway(
         );
     }
 
     /**
-     * @return Not
+     * @return Oneway
      */
-    public static function sample(): Not {
-        return new Not(
+    public static function sample(): Oneway {
+        return new Oneway(
         );
     }
 }
 
-// This is an autogenerated file:NotEq
+// This is an autogenerated file:Open
 
-class NotEq {
+class Open {
 
     /**
      */
@@ -30110,26 +35043,26 @@ class NotEq {
 
     /**
      * @param stdClass $obj
-     * @return NotEq
+     * @return Open
      * @throws Exception
      */
-    public static function from(stdClass $obj): NotEq {
-        return new NotEq(
+    public static function from(stdClass $obj): Open {
+        return new Open(
         );
     }
 
     /**
-     * @return NotEq
+     * @return Open
      */
-    public static function sample(): NotEq {
-        return new NotEq(
+    public static function sample(): Open {
+        return new Open(
         );
     }
 }
 
-// This is an autogenerated file:NSString
+// This is an autogenerated file:Operator
 
-class NSString {
+class Operator {
 
     /**
      */
@@ -30155,26 +35088,26 @@ class NSString {
 
     /**
      * @param stdClass $obj
-     * @return NSString
+     * @return Operator
      * @throws Exception
      */
-    public static function from(stdClass $obj): NSString {
-        return new NSString(
+    public static function from(stdClass $obj): Operator {
+        return new Operator(
         );
     }
 
     /**
-     * @return NSString
+     * @return Operator
      */
-    public static function sample(): NSString {
-        return new NSString(
+    public static function sample(): Operator {
+        return new Operator(
         );
     }
 }
 
-// This is an autogenerated file:NULLClass
+// This is an autogenerated file:Optional
 
-class NULLClass {
+class Optional {
 
     /**
      */
@@ -30200,26 +35133,26 @@ class NULLClass {
 
     /**
      * @param stdClass $obj
-     * @return NULLClass
+     * @return Optional
      * @throws Exception
      */
-    public static function from(stdClass $obj): NULLClass {
-        return new NULLClass(
+    public static function from(stdClass $obj): Optional {
+        return new Optional(
         );
     }
 
     /**
-     * @return NULLClass
+     * @return Optional
      */
-    public static function sample(): NULLClass {
-        return new NULLClass(
+    public static function sample(): Optional {
+        return new Optional(
         );
     }
 }
 
-// This is an autogenerated file:Nullptr
+// This is an autogenerated file:OrClass
 
-class Nullptr {
+class OrClass {
 
     /**
      */
@@ -30245,26 +35178,26 @@ class Nullptr {
 
     /**
      * @param stdClass $obj
-     * @return Nullptr
+     * @return OrClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Nullptr {
-        return new Nullptr(
+    public static function from(stdClass $obj): OrClass {
+        return new OrClass(
         );
     }
 
     /**
-     * @return Nullptr
+     * @return OrClass
      */
-    public static function sample(): Nullptr {
-        return new Nullptr(
+    public static function sample(): OrClass {
+        return new OrClass(
         );
     }
 }
 
-// This is an autogenerated file:Number
+// This is an autogenerated file:OrEq
 
-class Number {
+class OrEq {
 
     /**
      */
@@ -30290,26 +35223,26 @@ class Number {
 
     /**
      * @param stdClass $obj
-     * @return Number
+     * @return OrEq
      * @throws Exception
      */
-    public static function from(stdClass $obj): Number {
-        return new Number(
+    public static function from(stdClass $obj): OrEq {
+        return new OrEq(
         );
     }
 
     /**
-     * @return Number
+     * @return OrEq
      */
-    public static function sample(): Number {
-        return new Number(
+    public static function sample(): OrEq {
+        return new OrEq(
         );
     }
 }
 
-// This is an autogenerated file:ObjectClass
+// This is an autogenerated file:Out
 
-class ObjectClass {
+class Out {
 
     /**
      */
@@ -30335,26 +35268,26 @@ class ObjectClass {
 
     /**
      * @param stdClass $obj
-     * @return ObjectClass
+     * @return Out
      * @throws Exception
      */
-    public static function from(stdClass $obj): ObjectClass {
-        return new ObjectClass(
+    public static function from(stdClass $obj): Out {
+        return new Out(
         );
     }
 
     /**
-     * @return ObjectClass
+     * @return Out
      */
-    public static function sample(): ObjectClass {
-        return new ObjectClass(
+    public static function sample(): Out {
+        return new Out(
         );
     }
 }
 
-// This is an autogenerated file:Of
+// This is an autogenerated file:OverrideClass
 
-class Of {
+class OverrideClass {
 
     /**
      */
@@ -30380,26 +35313,26 @@ class Of {
 
     /**
      * @param stdClass $obj
-     * @return Of
+     * @return OverrideClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Of {
-        return new Of(
+    public static function from(stdClass $obj): OverrideClass {
+        return new OverrideClass(
         );
     }
 
     /**
-     * @return Of
+     * @return OverrideClass
      */
-    public static function sample(): Of {
-        return new Of(
+    public static function sample(): OverrideClass {
+        return new OverrideClass(
         );
     }
 }
 
-// This is an autogenerated file:Oneway
+// This is an autogenerated file:Package
 
-class Oneway {
+class Package {
 
     /**
      */
@@ -30425,26 +35358,26 @@ class Oneway {
 
     /**
      * @param stdClass $obj
-     * @return Oneway
+     * @return Package
      * @throws Exception
      */
-    public static function from(stdClass $obj): Oneway {
-        return new Oneway(
+    public static function from(stdClass $obj): Package {
+        return new Package(
         );
     }
 
     /**
-     * @return Oneway
+     * @return Package
      */
-    public static function sample(): Oneway {
-        return new Oneway(
+    public static function sample(): Package {
+        return new Package(
         );
     }
 }
 
-// This is an autogenerated file:Open
+// This is an autogenerated file:Params
 
-class Open {
+class Params {
 
     /**
      */
@@ -30470,26 +35403,26 @@ class Open {
 
     /**
      * @param stdClass $obj
-     * @return Open
+     * @return Params
      * @throws Exception
      */
-    public static function from(stdClass $obj): Open {
-        return new Open(
+    public static function from(stdClass $obj): Params {
+        return new Params(
         );
     }
 
     /**
-     * @return Open
+     * @return Params
      */
-    public static function sample(): Open {
-        return new Open(
+    public static function sample(): Params {
+        return new Params(
         );
     }
 }
 
-// This is an autogenerated file:Operator
+// This is an autogenerated file:Pass
 
-class Operator {
+class Pass {
 
     /**
      */
@@ -30515,26 +35448,26 @@ class Operator {
 
     /**
      * @param stdClass $obj
-     * @return Operator
+     * @return Pass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Operator {
-        return new Operator(
+    public static function from(stdClass $obj): Pass {
+        return new Pass(
         );
     }
 
     /**
-     * @return Operator
+     * @return Pass
      */
-    public static function sample(): Operator {
-        return new Operator(
+    public static function sample(): Pass {
+        return new Pass(
         );
     }
 }
 
-// This is an autogenerated file:Optional
+// This is an autogenerated file:Port
 
-class Optional {
+class Port {
 
     /**
      */
@@ -30560,26 +35493,26 @@ class Optional {
 
     /**
      * @param stdClass $obj
-     * @return Optional
+     * @return Port
      * @throws Exception
      */
-    public static function from(stdClass $obj): Optional {
-        return new Optional(
+    public static function from(stdClass $obj): Port {
+        return new Port(
         );
     }
 
     /**
-     * @return Optional
+     * @return Port
      */
-    public static function sample(): Optional {
-        return new Optional(
+    public static function sample(): Port {
+        return new Port(
         );
     }
 }
 
-// This is an autogenerated file:OrClass
+// This is an autogenerated file:Postfix
 
-class OrClass {
+class Postfix {
 
     /**
      */
@@ -30605,26 +35538,26 @@ class OrClass {
 
     /**
      * @param stdClass $obj
-     * @return OrClass
+     * @return Postfix
      * @throws Exception
      */
-    public static function from(stdClass $obj): OrClass {
-        return new OrClass(
+    public static function from(stdClass $obj): Postfix {
+        return new Postfix(
         );
     }
 
     /**
-     * @return OrClass
+     * @return Postfix
      */
-    public static function sample(): OrClass {
-        return new OrClass(
+    public static function sample(): Postfix {
+        return new Postfix(
         );
     }
 }
 
-// This is an autogenerated file:OrEq
+// This is an autogenerated file:Precedence
 
-class OrEq {
+class Precedence {
 
     /**
      */
@@ -30650,26 +35583,26 @@ class OrEq {
 
     /**
      * @param stdClass $obj
-     * @return OrEq
+     * @return Precedence
      * @throws Exception
      */
-    public static function from(stdClass $obj): OrEq {
-        return new OrEq(
+    public static function from(stdClass $obj): Precedence {
+        return new Precedence(
         );
     }
 
     /**
-     * @return OrEq
+     * @return Precedence
      */
-    public static function sample(): OrEq {
-        return new OrEq(
+    public static function sample(): Precedence {
+        return new Precedence(
         );
     }
 }
 
-// This is an autogenerated file:Out
+// This is an autogenerated file:Prefix
 
-class Out {
+class Prefix {
 
     /**
      */
@@ -30695,26 +35628,26 @@ class Out {
 
     /**
      * @param stdClass $obj
-     * @return Out
+     * @return Prefix
      * @throws Exception
      */
-    public static function from(stdClass $obj): Out {
-        return new Out(
+    public static function from(stdClass $obj): Prefix {
+        return new Prefix(
         );
     }
 
     /**
-     * @return Out
+     * @return Prefix
      */
-    public static function sample(): Out {
-        return new Out(
+    public static function sample(): Prefix {
+        return new Prefix(
         );
     }
 }
 
-// This is an autogenerated file:OverrideClass
+// This is an autogenerated file:PrintClass
 
-class OverrideClass {
+class PrintClass {
 
     /**
      */
@@ -30740,26 +35673,26 @@ class OverrideClass {
 
     /**
      * @param stdClass $obj
-     * @return OverrideClass
+     * @return PrintClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): OverrideClass {
-        return new OverrideClass(
+    public static function from(stdClass $obj): PrintClass {
+        return new PrintClass(
         );
     }
 
     /**
-     * @return OverrideClass
+     * @return PrintClass
      */
-    public static function sample(): OverrideClass {
-        return new OverrideClass(
+    public static function sample(): PrintClass {
+        return new PrintClass(
         );
     }
 }
 
-// This is an autogenerated file:Package
+// This is an autogenerated file:PrintMembers
 
-class Package {
+class PrintMembers {
 
     /**
      */
@@ -30785,26 +35718,26 @@ class Package {
 
     /**
      * @param stdClass $obj
-     * @return Package
+     * @return PrintMembers
      * @throws Exception
      */
-    public static function from(stdClass $obj): Package {
-        return new Package(
+    public static function from(stdClass $obj): PrintMembers {
+        return new PrintMembers(
         );
     }
 
     /**
-     * @return Package
+     * @return PrintMembers
      */
-    public static function sample(): Package {
-        return new Package(
+    public static function sample(): PrintMembers {
+        return new PrintMembers(
         );
     }
 }
 
-// This is an autogenerated file:Params
+// This is an autogenerated file:Printf
 
-class Params {
+class Printf {
 
     /**
      */
@@ -30830,26 +35763,26 @@ class Params {
 
     /**
      * @param stdClass $obj
-     * @return Params
+     * @return Printf
      * @throws Exception
      */
-    public static function from(stdClass $obj): Params {
-        return new Params(
+    public static function from(stdClass $obj): Printf {
+        return new Printf(
         );
     }
 
     /**
-     * @return Params
+     * @return Printf
      */
-    public static function sample(): Params {
-        return new Params(
+    public static function sample(): Printf {
+        return new Printf(
         );
     }
 }
 
-// This is an autogenerated file:Pass
+// This is an autogenerated file:PrivateClass
 
-class Pass {
+class PrivateClass {
 
     /**
      */
@@ -30875,26 +35808,26 @@ class Pass {
 
     /**
      * @param stdClass $obj
-     * @return Pass
+     * @return PrivateClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Pass {
-        return new Pass(
+    public static function from(stdClass $obj): PrivateClass {
+        return new PrivateClass(
         );
     }
 
     /**
-     * @return Pass
+     * @return PrivateClass
      */
-    public static function sample(): Pass {
-        return new Pass(
+    public static function sample(): PrivateClass {
+        return new PrivateClass(
         );
     }
 }
 
-// This is an autogenerated file:Port
+// This is an autogenerated file:ProtectedClass
 
-class Port {
+class ProtectedClass {
 
     /**
      */
@@ -30920,26 +35853,26 @@ class Port {
 
     /**
      * @param stdClass $obj
-     * @return Port
+     * @return ProtectedClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Port {
-        return new Port(
+    public static function from(stdClass $obj): ProtectedClass {
+        return new ProtectedClass(
         );
     }
 
     /**
-     * @return Port
+     * @return ProtectedClass
      */
-    public static function sample(): Port {
-        return new Port(
+    public static function sample(): ProtectedClass {
+        return new ProtectedClass(
         );
     }
 }
 
-// This is an autogenerated file:Postfix
+// This is an autogenerated file:Protocol
 
-class Postfix {
+class Protocol {
 
     /**
      */
@@ -30965,26 +35898,26 @@ class Postfix {
 
     /**
      * @param stdClass $obj
-     * @return Postfix
+     * @return Protocol
      * @throws Exception
      */
-    public static function from(stdClass $obj): Postfix {
-        return new Postfix(
+    public static function from(stdClass $obj): Protocol {
+        return new Protocol(
         );
     }
 
     /**
-     * @return Postfix
+     * @return Protocol
      */
-    public static function sample(): Postfix {
-        return new Postfix(
+    public static function sample(): Protocol {
+        return new Protocol(
         );
     }
 }
 
-// This is an autogenerated file:Precedence
+// This is an autogenerated file:PublicClass
 
-class Precedence {
+class PublicClass {
 
     /**
      */
@@ -31010,26 +35943,26 @@ class Precedence {
 
     /**
      * @param stdClass $obj
-     * @return Precedence
+     * @return PublicClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Precedence {
-        return new Precedence(
+    public static function from(stdClass $obj): PublicClass {
+        return new PublicClass(
         );
     }
 
     /**
-     * @return Precedence
+     * @return PublicClass
      */
-    public static function sample(): Precedence {
-        return new Precedence(
+    public static function sample(): PublicClass {
+        return new PublicClass(
         );
     }
 }
 
-// This is an autogenerated file:Prefix
+// This is an autogenerated file:UnionBoolBoolClass
 
-class Prefix {
+class UnionBoolBoolClass {
 
     /**
      */
@@ -31055,26 +35988,26 @@ class Prefix {
 
     /**
      * @param stdClass $obj
-     * @return Prefix
+     * @return UnionBoolBoolClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Prefix {
-        return new Prefix(
+    public static function from(stdClass $obj): UnionBoolBoolClass {
+        return new UnionBoolBoolClass(
         );
     }
 
     /**
-     * @return Prefix
+     * @return UnionBoolBoolClass
      */
-    public static function sample(): Prefix {
-        return new Prefix(
+    public static function sample(): UnionBoolBoolClass {
+        return new UnionBoolBoolClass(
         );
     }
 }
 
-// This is an autogenerated file:PrintClass
+// This is an autogenerated file:Quicktype
 
-class PrintClass {
+class Quicktype {
 
     /**
      */
@@ -31100,26 +36033,26 @@ class PrintClass {
 
     /**
      * @param stdClass $obj
-     * @return PrintClass
+     * @return Quicktype
      * @throws Exception
      */
-    public static function from(stdClass $obj): PrintClass {
-        return new PrintClass(
+    public static function from(stdClass $obj): Quicktype {
+        return new Quicktype(
         );
     }
 
     /**
-     * @return PrintClass
+     * @return Quicktype
      */
-    public static function sample(): PrintClass {
-        return new PrintClass(
+    public static function sample(): Quicktype {
+        return new Quicktype(
         );
     }
 }
 
-// This is an autogenerated file:Printf
+// This is an autogenerated file:Raise
 
-class Printf {
+class Raise {
 
     /**
      */
@@ -31145,26 +36078,26 @@ class Printf {
 
     /**
      * @param stdClass $obj
-     * @return Printf
+     * @return Raise
      * @throws Exception
      */
-    public static function from(stdClass $obj): Printf {
-        return new Printf(
+    public static function from(stdClass $obj): Raise {
+        return new Raise(
         );
     }
 
     /**
-     * @return Printf
+     * @return Raise
      */
-    public static function sample(): Printf {
-        return new Printf(
+    public static function sample(): Raise {
+        return new Raise(
         );
     }
 }
 
-// This is an autogenerated file:PrivateClass
+// This is an autogenerated file:Range
 
-class PrivateClass {
+class Range {
 
     /**
      */
@@ -31190,26 +36123,26 @@ class PrivateClass {
 
     /**
      * @param stdClass $obj
-     * @return PrivateClass
+     * @return Range
      * @throws Exception
      */
-    public static function from(stdClass $obj): PrivateClass {
-        return new PrivateClass(
+    public static function from(stdClass $obj): Range {
+        return new Range(
         );
     }
 
     /**
-     * @return PrivateClass
+     * @return Range
      */
-    public static function sample(): PrivateClass {
-        return new PrivateClass(
+    public static function sample(): Range {
+        return new Range(
         );
     }
 }
 
-// This is an autogenerated file:ProtectedClass
+// This is an autogenerated file:ReadonlyClass
 
-class ProtectedClass {
+class ReadonlyClass {
 
     /**
      */
@@ -31235,26 +36168,26 @@ class ProtectedClass {
 
     /**
      * @param stdClass $obj
-     * @return ProtectedClass
+     * @return ReadonlyClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): ProtectedClass {
-        return new ProtectedClass(
+    public static function from(stdClass $obj): ReadonlyClass {
+        return new ReadonlyClass(
         );
     }
 
     /**
-     * @return ProtectedClass
+     * @return ReadonlyClass
      */
-    public static function sample(): ProtectedClass {
-        return new ProtectedClass(
+    public static function sample(): ReadonlyClass {
+        return new ReadonlyClass(
         );
     }
 }
 
-// This is an autogenerated file:Protocol
+// This is an autogenerated file:Ref
 
-class Protocol {
+class Ref {
 
     /**
      */
@@ -31280,26 +36213,26 @@ class Protocol {
 
     /**
      * @param stdClass $obj
-     * @return Protocol
+     * @return Ref
      * @throws Exception
      */
-    public static function from(stdClass $obj): Protocol {
-        return new Protocol(
+    public static function from(stdClass $obj): Ref {
+        return new Ref(
         );
     }
 
     /**
-     * @return Protocol
+     * @return Ref
      */
-    public static function sample(): Protocol {
-        return new Protocol(
+    public static function sample(): Ref {
+        return new Ref(
         );
     }
 }
 
-// This is an autogenerated file:PublicClass
+// This is an autogenerated file:RegExp
 
-class PublicClass {
+class RegExp {
 
     /**
      */
@@ -31325,26 +36258,26 @@ class PublicClass {
 
     /**
      * @param stdClass $obj
-     * @return PublicClass
+     * @return RegExp
      * @throws Exception
      */
-    public static function from(stdClass $obj): PublicClass {
-        return new PublicClass(
+    public static function from(stdClass $obj): RegExp {
+        return new RegExp(
         );
     }
 
     /**
-     * @return PublicClass
+     * @return RegExp
      */
-    public static function sample(): PublicClass {
-        return new PublicClass(
+    public static function sample(): RegExp {
+        return new RegExp(
         );
     }
 }
 
-// This is an autogenerated file:UnionBoolBoolClass
+// This is an autogenerated file:Register
 
-class UnionBoolBoolClass {
+class Register {
 
     /**
      */
@@ -31370,26 +36303,26 @@ class UnionBoolBoolClass {
 
     /**
      * @param stdClass $obj
-     * @return UnionBoolBoolClass
+     * @return Register
      * @throws Exception
      */
-    public static function from(stdClass $obj): UnionBoolBoolClass {
-        return new UnionBoolBoolClass(
+    public static function from(stdClass $obj): Register {
+        return new Register(
         );
     }
 
     /**
-     * @return UnionBoolBoolClass
+     * @return Register
      */
-    public static function sample(): UnionBoolBoolClass {
-        return new UnionBoolBoolClass(
+    public static function sample(): Register {
+        return new Register(
         );
     }
 }
 
-// This is an autogenerated file:Quicktype
+// This is an autogenerated file:ReinterpretCast
 
-class Quicktype {
+class ReinterpretCast {
 
     /**
      */
@@ -31415,26 +36348,26 @@ class Quicktype {
 
     /**
      * @param stdClass $obj
-     * @return Quicktype
+     * @return ReinterpretCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): Quicktype {
-        return new Quicktype(
+    public static function from(stdClass $obj): ReinterpretCast {
+        return new ReinterpretCast(
         );
     }
 
     /**
-     * @return Quicktype
+     * @return ReinterpretCast
      */
-    public static function sample(): Quicktype {
-        return new Quicktype(
+    public static function sample(): ReinterpretCast {
+        return new ReinterpretCast(
         );
     }
 }
 
-// This is an autogenerated file:Raise
+// This is an autogenerated file:Repeat
 
-class Raise {
+class Repeat {
 
     /**
      */
@@ -31460,26 +36393,26 @@ class Raise {
 
     /**
      * @param stdClass $obj
-     * @return Raise
+     * @return Repeat
      * @throws Exception
      */
-    public static function from(stdClass $obj): Raise {
-        return new Raise(
+    public static function from(stdClass $obj): Repeat {
+        return new Repeat(
         );
     }
 
     /**
-     * @return Raise
+     * @return Repeat
      */
-    public static function sample(): Raise {
-        return new Raise(
+    public static function sample(): Repeat {
+        return new Repeat(
         );
     }
 }
 
-// This is an autogenerated file:Range
+// This is an autogenerated file:RequireClass
 
-class Range {
+class RequireClass {
 
     /**
      */
@@ -31505,26 +36438,26 @@ class Range {
 
     /**
      * @param stdClass $obj
-     * @return Range
+     * @return RequireClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Range {
-        return new Range(
+    public static function from(stdClass $obj): RequireClass {
+        return new RequireClass(
         );
     }
 
     /**
-     * @return Range
+     * @return RequireClass
      */
-    public static function sample(): Range {
-        return new Range(
+    public static function sample(): RequireClass {
+        return new RequireClass(
         );
     }
 }
 
-// This is an autogenerated file:ReadonlyClass
+// This is an autogenerated file:Required
 
-class ReadonlyClass {
+class Required {
 
     /**
      */
@@ -31550,26 +36483,26 @@ class ReadonlyClass {
 
     /**
      * @param stdClass $obj
-     * @return ReadonlyClass
+     * @return Required
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReadonlyClass {
-        return new ReadonlyClass(
+    public static function from(stdClass $obj): Required {
+        return new Required(
         );
     }
 
     /**
-     * @return ReadonlyClass
+     * @return Required
      */
-    public static function sample(): ReadonlyClass {
-        return new ReadonlyClass(
+    public static function sample(): Required {
+        return new Required(
         );
     }
 }
 
-// This is an autogenerated file:Ref
+// This is an autogenerated file:Requires
 
-class Ref {
+class Requires {
 
     /**
      */
@@ -31595,26 +36528,26 @@ class Ref {
 
     /**
      * @param stdClass $obj
-     * @return Ref
+     * @return Requires
      * @throws Exception
      */
-    public static function from(stdClass $obj): Ref {
-        return new Ref(
+    public static function from(stdClass $obj): Requires {
+        return new Requires(
         );
     }
 
     /**
-     * @return Ref
+     * @return Requires
      */
-    public static function sample(): Ref {
-        return new Ref(
+    public static function sample(): Requires {
+        return new Requires(
         );
     }
 }
 
-// This is an autogenerated file:Register
+// This is an autogenerated file:Restrict
 
-class Register {
+class Restrict {
 
     /**
      */
@@ -31640,26 +36573,26 @@ class Register {
 
     /**
      * @param stdClass $obj
-     * @return Register
+     * @return Restrict
      * @throws Exception
      */
-    public static function from(stdClass $obj): Register {
-        return new Register(
+    public static function from(stdClass $obj): Restrict {
+        return new Restrict(
         );
     }
 
     /**
-     * @return Register
+     * @return Restrict
      */
-    public static function sample(): Register {
-        return new Register(
+    public static function sample(): Restrict {
+        return new Restrict(
         );
     }
 }
 
-// This is an autogenerated file:ReinterpretCast
+// This is an autogenerated file:Retain
 
-class ReinterpretCast {
+class Retain {
 
     /**
      */
@@ -31685,26 +36618,26 @@ class ReinterpretCast {
 
     /**
      * @param stdClass $obj
-     * @return ReinterpretCast
+     * @return Retain
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReinterpretCast {
-        return new ReinterpretCast(
+    public static function from(stdClass $obj): Retain {
+        return new Retain(
         );
     }
 
     /**
-     * @return ReinterpretCast
+     * @return Retain
      */
-    public static function sample(): ReinterpretCast {
-        return new ReinterpretCast(
+    public static function sample(): Retain {
+        return new Retain(
         );
     }
 }
 
-// This is an autogenerated file:Repeat
+// This is an autogenerated file:Rethrows
 
-class Repeat {
+class Rethrows {
 
     /**
      */
@@ -31730,26 +36663,26 @@ class Repeat {
 
     /**
      * @param stdClass $obj
-     * @return Repeat
+     * @return Rethrows
      * @throws Exception
      */
-    public static function from(stdClass $obj): Repeat {
-        return new Repeat(
+    public static function from(stdClass $obj): Rethrows {
+        return new Rethrows(
         );
     }
 
     /**
-     * @return Repeat
+     * @return Rethrows
      */
-    public static function sample(): Repeat {
-        return new Repeat(
+    public static function sample(): Rethrows {
+        return new Rethrows(
         );
     }
 }
 
-// This is an autogenerated file:RequireClass
+// This is an autogenerated file:ReturnClass
 
-class RequireClass {
+class ReturnClass {
 
     /**
      */
@@ -31775,26 +36708,26 @@ class RequireClass {
 
     /**
      * @param stdClass $obj
-     * @return RequireClass
+     * @return ReturnClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): RequireClass {
-        return new RequireClass(
+    public static function from(stdClass $obj): ReturnClass {
+        return new ReturnClass(
         );
     }
 
     /**
-     * @return RequireClass
+     * @return ReturnClass
      */
-    public static function sample(): RequireClass {
-        return new RequireClass(
+    public static function sample(): ReturnClass {
+        return new ReturnClass(
         );
     }
 }
 
-// This is an autogenerated file:Required
+// This is an autogenerated file:Right
 
-class Required {
+class Right {
 
     /**
      */
@@ -31820,26 +36753,26 @@ class Required {
 
     /**
      * @param stdClass $obj
-     * @return Required
+     * @return Right
      * @throws Exception
      */
-    public static function from(stdClass $obj): Required {
-        return new Required(
+    public static function from(stdClass $obj): Right {
+        return new Right(
         );
     }
 
     /**
-     * @return Required
+     * @return Right
      */
-    public static function sample(): Required {
-        return new Required(
+    public static function sample(): Right {
+        return new Right(
         );
     }
 }
 
-// This is an autogenerated file:Requires
+// This is an autogenerated file:RuntimeType
 
-class Requires {
+class RuntimeType {
 
     /**
      */
@@ -31865,26 +36798,26 @@ class Requires {
 
     /**
      * @param stdClass $obj
-     * @return Requires
+     * @return RuntimeType
      * @throws Exception
      */
-    public static function from(stdClass $obj): Requires {
-        return new Requires(
+    public static function from(stdClass $obj): RuntimeType {
+        return new RuntimeType(
         );
     }
 
     /**
-     * @return Requires
+     * @return RuntimeType
      */
-    public static function sample(): Requires {
-        return new Requires(
+    public static function sample(): RuntimeType {
+        return new RuntimeType(
         );
     }
 }
 
-// This is an autogenerated file:Restrict
+// This is an autogenerated file:S
 
-class Restrict {
+class S {
 
     /**
      */
@@ -31910,26 +36843,26 @@ class Restrict {
 
     /**
      * @param stdClass $obj
-     * @return Restrict
+     * @return S
      * @throws Exception
      */
-    public static function from(stdClass $obj): Restrict {
-        return new Restrict(
+    public static function from(stdClass $obj): S {
+        return new S(
         );
     }
 
     /**
-     * @return Restrict
+     * @return S
      */
-    public static function sample(): Restrict {
-        return new Restrict(
+    public static function sample(): S {
+        return new S(
         );
     }
 }
 
-// This is an autogenerated file:Retain
+// This is an autogenerated file:Sbyte
 
-class Retain {
+class Sbyte {
 
     /**
      */
@@ -31955,26 +36888,26 @@ class Retain {
 
     /**
      * @param stdClass $obj
-     * @return Retain
+     * @return Sbyte
      * @throws Exception
      */
-    public static function from(stdClass $obj): Retain {
-        return new Retain(
+    public static function from(stdClass $obj): Sbyte {
+        return new Sbyte(
         );
     }
 
     /**
-     * @return Retain
+     * @return Sbyte
      */
-    public static function sample(): Retain {
-        return new Retain(
+    public static function sample(): Sbyte {
+        return new Sbyte(
         );
     }
 }
 
-// This is an autogenerated file:Rethrows
+// This is an autogenerated file:Sealed
 
-class Rethrows {
+class Sealed {
 
     /**
      */
@@ -32000,26 +36933,26 @@ class Rethrows {
 
     /**
      * @param stdClass $obj
-     * @return Rethrows
+     * @return Sealed
      * @throws Exception
      */
-    public static function from(stdClass $obj): Rethrows {
-        return new Rethrows(
+    public static function from(stdClass $obj): Sealed {
+        return new Sealed(
         );
     }
 
     /**
-     * @return Rethrows
+     * @return Sealed
      */
-    public static function sample(): Rethrows {
-        return new Rethrows(
+    public static function sample(): Sealed {
+        return new Sealed(
         );
     }
 }
 
-// This is an autogenerated file:ReturnClass
+// This is an autogenerated file:Sel
 
-class ReturnClass {
+class Sel {
 
     /**
      */
@@ -32045,26 +36978,26 @@ class ReturnClass {
 
     /**
      * @param stdClass $obj
-     * @return ReturnClass
+     * @return Sel
      * @throws Exception
      */
-    public static function from(stdClass $obj): ReturnClass {
-        return new ReturnClass(
+    public static function from(stdClass $obj): Sel {
+        return new Sel(
         );
     }
 
     /**
-     * @return ReturnClass
+     * @return Sel
      */
-    public static function sample(): ReturnClass {
-        return new ReturnClass(
+    public static function sample(): Sel {
+        return new Sel(
         );
     }
 }
 
-// This is an autogenerated file:Right
+// This is an autogenerated file:Select
 
-class Right {
+class Select {
 
     /**
      */
@@ -32090,26 +37023,26 @@ class Right {
 
     /**
      * @param stdClass $obj
-     * @return Right
+     * @return Select
      * @throws Exception
      */
-    public static function from(stdClass $obj): Right {
-        return new Right(
+    public static function from(stdClass $obj): Select {
+        return new Select(
         );
     }
 
     /**
-     * @return Right
+     * @return Select
      */
-    public static function sample(): Right {
-        return new Right(
+    public static function sample(): Select {
+        return new Select(
         );
     }
 }
 
-// This is an autogenerated file:Sbyte
+// This is an autogenerated file:SelfClass
 
-class Sbyte {
+class SelfClass {
 
     /**
      */
@@ -32135,26 +37068,26 @@ class Sbyte {
 
     /**
      * @param stdClass $obj
-     * @return Sbyte
+     * @return SelfClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sbyte {
-        return new Sbyte(
+    public static function from(stdClass $obj): SelfClass {
+        return new SelfClass(
         );
     }
 
     /**
-     * @return Sbyte
+     * @return SelfClass
      */
-    public static function sample(): Sbyte {
-        return new Sbyte(
+    public static function sample(): SelfClass {
+        return new SelfClass(
         );
     }
 }
 
-// This is an autogenerated file:Sealed
+// This is an autogenerated file:Serialize
 
-class Sealed {
+class Serialize {
 
     /**
      */
@@ -32180,26 +37113,26 @@ class Sealed {
 
     /**
      * @param stdClass $obj
-     * @return Sealed
+     * @return Serialize
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sealed {
-        return new Sealed(
+    public static function from(stdClass $obj): Serialize {
+        return new Serialize(
         );
     }
 
     /**
-     * @return Sealed
+     * @return Serialize
      */
-    public static function sample(): Sealed {
-        return new Sealed(
+    public static function sample(): Serialize {
+        return new Serialize(
         );
     }
 }
 
-// This is an autogenerated file:Sel
+// This is an autogenerated file:SerializerProvider
 
-class Sel {
+class SerializerProvider {
 
     /**
      */
@@ -32225,26 +37158,26 @@ class Sel {
 
     /**
      * @param stdClass $obj
-     * @return Sel
+     * @return SerializerProvider
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sel {
-        return new Sel(
+    public static function from(stdClass $obj): SerializerProvider {
+        return new SerializerProvider(
         );
     }
 
     /**
-     * @return Sel
+     * @return SerializerProvider
      */
-    public static function sample(): Sel {
-        return new Sel(
+    public static function sample(): SerializerProvider {
+        return new SerializerProvider(
         );
     }
 }
 
-// This is an autogenerated file:Select
+// This is an autogenerated file:Set
 
-class Select {
+class Set {
 
     /**
      */
@@ -32270,26 +37203,71 @@ class Select {
 
     /**
      * @param stdClass $obj
-     * @return Select
+     * @return Set
      * @throws Exception
      */
-    public static function from(stdClass $obj): Select {
-        return new Select(
+    public static function from(stdClass $obj): Set {
+        return new Set(
         );
     }
 
     /**
-     * @return Select
+     * @return Set
      */
-    public static function sample(): Select {
-        return new Select(
+    public static function sample(): Set {
+        return new Set(
         );
     }
 }
 
-// This is an autogenerated file:SelfClass
+// This is an autogenerated file:Short
 
-class SelfClass {
+class Short {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Short
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Short {
+        return new Short(
+        );
+    }
+
+    /**
+     * @return Short
+     */
+    public static function sample(): Short {
+        return new Short(
+        );
+    }
+}
+
+// This is an autogenerated file:Signed
+
+class Signed {
 
     /**
      */
@@ -32315,26 +37293,26 @@ class SelfClass {
 
     /**
      * @param stdClass $obj
-     * @return SelfClass
+     * @return Signed
      * @throws Exception
      */
-    public static function from(stdClass $obj): SelfClass {
-        return new SelfClass(
+    public static function from(stdClass $obj): Signed {
+        return new Signed(
         );
     }
 
     /**
-     * @return SelfClass
+     * @return Signed
      */
-    public static function sample(): SelfClass {
-        return new SelfClass(
+    public static function sample(): Signed {
+        return new Signed(
         );
     }
 }
 
-// This is an autogenerated file:Serialize
+// This is an autogenerated file:SimpleModule
 
-class Serialize {
+class SimpleModule {
 
     /**
      */
@@ -32360,26 +37338,26 @@ class Serialize {
 
     /**
      * @param stdClass $obj
-     * @return Serialize
+     * @return SimpleModule
      * @throws Exception
      */
-    public static function from(stdClass $obj): Serialize {
-        return new Serialize(
+    public static function from(stdClass $obj): SimpleModule {
+        return new SimpleModule(
         );
     }
 
     /**
-     * @return Serialize
+     * @return SimpleModule
      */
-    public static function sample(): Serialize {
-        return new Serialize(
+    public static function sample(): SimpleModule {
+        return new SimpleModule(
         );
     }
 }
 
-// This is an autogenerated file:Set
+// This is an autogenerated file:Sizeof
 
-class Set {
+class Sizeof {
 
     /**
      */
@@ -32405,26 +37383,26 @@ class Set {
 
     /**
      * @param stdClass $obj
-     * @return Set
+     * @return Sizeof
      * @throws Exception
      */
-    public static function from(stdClass $obj): Set {
-        return new Set(
+    public static function from(stdClass $obj): Sizeof {
+        return new Sizeof(
         );
     }
 
     /**
-     * @return Set
+     * @return Sizeof
      */
-    public static function sample(): Set {
-        return new Set(
+    public static function sample(): Sizeof {
+        return new Sizeof(
         );
     }
 }
 
-// This is an autogenerated file:Short
+// This is an autogenerated file:Stackalloc
 
-class Short {
+class Stackalloc {
 
     /**
      */
@@ -32450,26 +37428,26 @@ class Short {
 
     /**
      * @param stdClass $obj
-     * @return Short
+     * @return Stackalloc
      * @throws Exception
      */
-    public static function from(stdClass $obj): Short {
-        return new Short(
+    public static function from(stdClass $obj): Stackalloc {
+        return new Stackalloc(
         );
     }
 
     /**
-     * @return Short
+     * @return Stackalloc
      */
-    public static function sample(): Short {
-        return new Short(
+    public static function sample(): Stackalloc {
+        return new Stackalloc(
         );
     }
 }
 
-// This is an autogenerated file:Signed
+// This is an autogenerated file:Standards
 
-class Signed {
+class Standards {
 
     /**
      */
@@ -32495,26 +37473,26 @@ class Signed {
 
     /**
      * @param stdClass $obj
-     * @return Signed
+     * @return Standards
      * @throws Exception
      */
-    public static function from(stdClass $obj): Signed {
-        return new Signed(
+    public static function from(stdClass $obj): Standards {
+        return new Standards(
         );
     }
 
     /**
-     * @return Signed
+     * @return Standards
      */
-    public static function sample(): Signed {
-        return new Signed(
+    public static function sample(): Standards {
+        return new Standards(
         );
     }
 }
 
-// This is an autogenerated file:Sizeof
+// This is an autogenerated file:StaticClass
 
-class Sizeof {
+class StaticClass {
 
     /**
      */
@@ -32540,26 +37518,26 @@ class Sizeof {
 
     /**
      * @param stdClass $obj
-     * @return Sizeof
+     * @return StaticClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Sizeof {
-        return new Sizeof(
+    public static function from(stdClass $obj): StaticClass {
+        return new StaticClass(
         );
     }
 
     /**
-     * @return Sizeof
+     * @return StaticClass
      */
-    public static function sample(): Sizeof {
-        return new Sizeof(
+    public static function sample(): StaticClass {
+        return new StaticClass(
         );
     }
 }
 
-// This is an autogenerated file:Stackalloc
+// This is an autogenerated file:StaticAssert
 
-class Stackalloc {
+class StaticAssert {
 
     /**
      */
@@ -32585,26 +37563,26 @@ class Stackalloc {
 
     /**
      * @param stdClass $obj
-     * @return Stackalloc
+     * @return StaticAssert
      * @throws Exception
      */
-    public static function from(stdClass $obj): Stackalloc {
-        return new Stackalloc(
+    public static function from(stdClass $obj): StaticAssert {
+        return new StaticAssert(
         );
     }
 
     /**
-     * @return Stackalloc
+     * @return StaticAssert
      */
-    public static function sample(): Stackalloc {
-        return new Stackalloc(
+    public static function sample(): StaticAssert {
+        return new StaticAssert(
         );
     }
 }
 
-// This is an autogenerated file:StaticClass
+// This is an autogenerated file:StaticCast
 
-class StaticClass {
+class StaticCast {
 
     /**
      */
@@ -32630,26 +37608,26 @@ class StaticClass {
 
     /**
      * @param stdClass $obj
-     * @return StaticClass
+     * @return StaticCast
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticClass {
-        return new StaticClass(
+    public static function from(stdClass $obj): StaticCast {
+        return new StaticCast(
         );
     }
 
     /**
-     * @return StaticClass
+     * @return StaticCast
      */
-    public static function sample(): StaticClass {
-        return new StaticClass(
+    public static function sample(): StaticCast {
+        return new StaticCast(
         );
     }
 }
 
-// This is an autogenerated file:StaticAssert
+// This is an autogenerated file:StdDeserializer
 
-class StaticAssert {
+class StdDeserializer {
 
     /**
      */
@@ -32675,26 +37653,26 @@ class StaticAssert {
 
     /**
      * @param stdClass $obj
-     * @return StaticAssert
+     * @return StdDeserializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticAssert {
-        return new StaticAssert(
+    public static function from(stdClass $obj): StdDeserializer {
+        return new StdDeserializer(
         );
     }
 
     /**
-     * @return StaticAssert
+     * @return StdDeserializer
      */
-    public static function sample(): StaticAssert {
-        return new StaticAssert(
+    public static function sample(): StdDeserializer {
+        return new StdDeserializer(
         );
     }
 }
 
-// This is an autogenerated file:StaticCast
+// This is an autogenerated file:StdSerializer
 
-class StaticCast {
+class StdSerializer {
 
     /**
      */
@@ -32720,19 +37698,19 @@ class StaticCast {
 
     /**
      * @param stdClass $obj
-     * @return StaticCast
+     * @return StdSerializer
      * @throws Exception
      */
-    public static function from(stdClass $obj): StaticCast {
-        return new StaticCast(
+    public static function from(stdClass $obj): StdSerializer {
+        return new StdSerializer(
         );
     }
 
     /**
-     * @return StaticCast
+     * @return StdSerializer
      */
-    public static function sample(): StaticCast {
-        return new StaticCast(
+    public static function sample(): StdSerializer {
+        return new StdSerializer(
         );
     }
 }
@@ -32945,26 +37923,161 @@ class Super {
 
     /**
      * @param stdClass $obj
-     * @return Super
+     * @return Super
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Super {
+        return new Super(
+        );
+    }
+
+    /**
+     * @return Super
+     */
+    public static function sample(): Super {
+        return new Super(
+        );
+    }
+}
+
+// This is an autogenerated file:SwitchClass
+
+class SwitchClass {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return SwitchClass
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): SwitchClass {
+        return new SwitchClass(
+        );
+    }
+
+    /**
+     * @return SwitchClass
+     */
+    public static function sample(): SwitchClass {
+        return new SwitchClass(
+        );
+    }
+}
+
+// This is an autogenerated file:Symbol
+
+class Symbol {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Symbol
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Symbol {
+        return new Symbol(
+        );
+    }
+
+    /**
+     * @return Symbol
+     */
+    public static function sample(): Symbol {
+        return new Symbol(
+        );
+    }
+}
+
+// This is an autogenerated file:Synchronized
+
+class Synchronized {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Synchronized
      * @throws Exception
      */
-    public static function from(stdClass $obj): Super {
-        return new Super(
+    public static function from(stdClass $obj): Synchronized {
+        return new Synchronized(
         );
     }
 
     /**
-     * @return Super
+     * @return Synchronized
      */
-    public static function sample(): Super {
-        return new Super(
+    public static function sample(): Synchronized {
+        return new Synchronized(
         );
     }
 }
 
-// This is an autogenerated file:SwitchClass
+// This is an autogenerated file:System
 
-class SwitchClass {
+class System {
 
     /**
      */
@@ -32990,26 +38103,26 @@ class SwitchClass {
 
     /**
      * @param stdClass $obj
-     * @return SwitchClass
+     * @return System
      * @throws Exception
      */
-    public static function from(stdClass $obj): SwitchClass {
-        return new SwitchClass(
+    public static function from(stdClass $obj): System {
+        return new System(
         );
     }
 
     /**
-     * @return SwitchClass
+     * @return System
      */
-    public static function sample(): SwitchClass {
-        return new SwitchClass(
+    public static function sample(): System {
+        return new System(
         );
     }
 }
 
-// This is an autogenerated file:Symbol
+// This is an autogenerated file:Template
 
-class Symbol {
+class Template {
 
     /**
      */
@@ -33035,26 +38148,26 @@ class Symbol {
 
     /**
      * @param stdClass $obj
-     * @return Symbol
+     * @return Template
      * @throws Exception
      */
-    public static function from(stdClass $obj): Symbol {
-        return new Symbol(
+    public static function from(stdClass $obj): Template {
+        return new Template(
         );
     }
 
     /**
-     * @return Symbol
+     * @return Template
      */
-    public static function sample(): Symbol {
-        return new Symbol(
+    public static function sample(): Template {
+        return new Template(
         );
     }
 }
 
-// This is an autogenerated file:Synchronized
+// This is an autogenerated file:Then
 
-class Synchronized {
+class Then {
 
     /**
      */
@@ -33080,26 +38193,26 @@ class Synchronized {
 
     /**
      * @param stdClass $obj
-     * @return Synchronized
+     * @return Then
      * @throws Exception
      */
-    public static function from(stdClass $obj): Synchronized {
-        return new Synchronized(
+    public static function from(stdClass $obj): Then {
+        return new Then(
         );
     }
 
     /**
-     * @return Synchronized
+     * @return Then
      */
-    public static function sample(): Synchronized {
-        return new Synchronized(
+    public static function sample(): Then {
+        return new Then(
         );
     }
 }
 
-// This is an autogenerated file:System
+// This is an autogenerated file:ThreadLocal
 
-class System {
+class ThreadLocal {
 
     /**
      */
@@ -33125,26 +38238,26 @@ class System {
 
     /**
      * @param stdClass $obj
-     * @return System
+     * @return ThreadLocal
      * @throws Exception
      */
-    public static function from(stdClass $obj): System {
-        return new System(
+    public static function from(stdClass $obj): ThreadLocal {
+        return new ThreadLocal(
         );
     }
 
     /**
-     * @return System
+     * @return ThreadLocal
      */
-    public static function sample(): System {
-        return new System(
+    public static function sample(): ThreadLocal {
+        return new ThreadLocal(
         );
     }
 }
 
-// This is an autogenerated file:Template
+// This is an autogenerated file:ThrowClass
 
-class Template {
+class ThrowClass {
 
     /**
      */
@@ -33170,26 +38283,26 @@ class Template {
 
     /**
      * @param stdClass $obj
-     * @return Template
+     * @return ThrowClass
      * @throws Exception
      */
-    public static function from(stdClass $obj): Template {
-        return new Template(
+    public static function from(stdClass $obj): ThrowClass {
+        return new ThrowClass(
         );
     }
 
     /**
-     * @return Template
+     * @return ThrowClass
      */
-    public static function sample(): Template {
-        return new Template(
+    public static function sample(): ThrowClass {
+        return new ThrowClass(
         );
     }
 }
 
-// This is an autogenerated file:Then
+// This is an autogenerated file:Throws
 
-class Then {
+class Throws {
 
     /**
      */
@@ -33215,26 +38328,26 @@ class Then {
 
     /**
      * @param stdClass $obj
-     * @return Then
+     * @return Throws
      * @throws Exception
      */
-    public static function from(stdClass $obj): Then {
-        return new Then(
+    public static function from(stdClass $obj): Throws {
+        return new Throws(
         );
     }
 
     /**
-     * @return Then
+     * @return Throws
      */
-    public static function sample(): Then {
-        return new Then(
+    public static function sample(): Throws {
+        return new Throws(
         );
     }
 }
 
-// This is an autogenerated file:ThreadLocal
+// This is an autogenerated file:TimeOnly
 
-class ThreadLocal {
+class TimeOnly {
 
     /**
      */
@@ -33260,26 +38373,26 @@ class ThreadLocal {
 
     /**
      * @param stdClass $obj
-     * @return ThreadLocal
+     * @return TimeOnly
      * @throws Exception
      */
-    public static function from(stdClass $obj): ThreadLocal {
-        return new ThreadLocal(
+    public static function from(stdClass $obj): TimeOnly {
+        return new TimeOnly(
         );
     }
 
     /**
-     * @return ThreadLocal
+     * @return TimeOnly
      */
-    public static function sample(): ThreadLocal {
-        return new ThreadLocal(
+    public static function sample(): TimeOnly {
+        return new TimeOnly(
         );
     }
 }
 
-// This is an autogenerated file:ThrowClass
+// This is an autogenerated file:TimeOnlyConverter
 
-class ThrowClass {
+class TimeOnlyConverter {
 
     /**
      */
@@ -33305,26 +38418,26 @@ class ThrowClass {
 
     /**
      * @param stdClass $obj
-     * @return ThrowClass
+     * @return TimeOnlyConverter
      * @throws Exception
      */
-    public static function from(stdClass $obj): ThrowClass {
-        return new ThrowClass(
+    public static function from(stdClass $obj): TimeOnlyConverter {
+        return new TimeOnlyConverter(
         );
     }
 
     /**
-     * @return ThrowClass
+     * @return TimeOnlyConverter
      */
-    public static function sample(): ThrowClass {
-        return new ThrowClass(
+    public static function sample(): TimeOnlyConverter {
+        return new TimeOnlyConverter(
         );
     }
 }
 
-// This is an autogenerated file:Throws
+// This is an autogenerated file:ToJSON
 
-class Throws {
+class ToJSON {
 
     /**
      */
@@ -33350,26 +38463,26 @@ class Throws {
 
     /**
      * @param stdClass $obj
-     * @return Throws
+     * @return ToJSON
      * @throws Exception
      */
-    public static function from(stdClass $obj): Throws {
-        return new Throws(
+    public static function from(stdClass $obj): ToJSON {
+        return new ToJSON(
         );
     }
 
     /**
-     * @return Throws
+     * @return ToJSON
      */
-    public static function sample(): Throws {
-        return new Throws(
+    public static function sample(): ToJSON {
+        return new ToJSON(
         );
     }
 }
 
-// This is an autogenerated file:ToJSON
+// This is an autogenerated file:ToString
 
-class ToJSON {
+class ToString {
 
     /**
      */
@@ -33395,19 +38508,19 @@ class ToJSON {
 
     /**
      * @param stdClass $obj
-     * @return ToJSON
+     * @return ToString
      * @throws Exception
      */
-    public static function from(stdClass $obj): ToJSON {
-        return new ToJSON(
+    public static function from(stdClass $obj): ToString {
+        return new ToString(
         );
     }
 
     /**
-     * @return ToJSON
+     * @return ToString
      */
-    public static function sample(): ToJSON {
-        return new ToJSON(
+    public static function sample(): ToString {
+        return new ToString(
         );
     }
 }
@@ -34807,6 +39920,141 @@ class Using {
     }
 }
 
+// This is an autogenerated file:Utf8JSONReader
+
+class Utf8JSONReader {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Utf8JSONReader
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Utf8JSONReader {
+        return new Utf8JSONReader(
+        );
+    }
+
+    /**
+     * @return Utf8JSONReader
+     */
+    public static function sample(): Utf8JSONReader {
+        return new Utf8JSONReader(
+        );
+    }
+}
+
+// This is an autogenerated file:Utf8JSONWriter
+
+class Utf8JSONWriter {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return Utf8JSONWriter
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): Utf8JSONWriter {
+        return new Utf8JSONWriter(
+        );
+    }
+
+    /**
+     * @return Utf8JSONWriter
+     */
+    public static function sample(): Utf8JSONWriter {
+        return new Utf8JSONWriter(
+        );
+    }
+}
+
+// This is an autogenerated file:UUID
+
+class UUID {
+
+    /**
+     */
+    public function __construct() {
+    }
+
+    /**
+     * @throws Exception
+     * @return bool
+     */
+    public function validate(): bool {
+        return true;
+    }
+
+    /**
+     * @return stdClass
+     * @throws Exception
+     */
+    public function to(): stdClass  {
+        $out = new stdClass();
+        return $out;
+    }
+
+    /**
+     * @param stdClass $obj
+     * @return UUID
+     * @throws Exception
+     */
+    public static function from(stdClass $obj): UUID {
+        return new UUID(
+        );
+    }
+
+    /**
+     * @return UUID
+     */
+    public static function sample(): UUID {
+        return new UUID(
+        );
+    }
+}
+
 // This is an autogenerated file:VarClass
 
 class VarClass {
diff --git a/base/schema-pike/test/inputs/schema/keyword-enum.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/keyword-enum.schema/default/TopLevel.pmod
index c80d01c..e866fc0 100644
--- a/base/schema-pike/test/inputs/schema/keyword-enum.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/keyword-enum.schema/default/TopLevel.pmod
@@ -33,285 +33,326 @@ TopLevel TopLevel_from_JSON(mixed json) {
 }
 
 enum Enum {
-    EMPTY = "_",                                               // json: "_"
-    BOOL = "_Bool",                                            // json: "_Bool"
-    COMPLEX = "_Complex",                                      // json: "_Complex"
-    IMAGINERY = "_Imaginery",                                  // json: "_Imaginery"
-    ABSTRACT = "abstract",                                     // json: "abstract"
-    ALIGNAS = "alignas",                                       // json: "alignas"
-    ALIGNOF = "alignof",                                       // json: "alignof"
-    AND = "and",                                               // json: "and"
-    AND_EQ = "and_eq",                                         // json: "and_eq"
-    ANY = "any",                                               // json: "any"
-    ENUM_ANY = "Any",                                          // json: "Any"
-    ARRAY = "array",                                           // json: "array"
-    AS = "as",                                                 // json: "as"
-    ASM = "asm",                                               // json: "asm"
-    ASSERT = "assert",                                         // json: "assert"
-    ASSOCIATEDTYPE = "associatedtype",                         // json: "associatedtype"
-    ASSOCIATIVITY = "associativity",                           // json: "associativity"
-    ASYNC = "async",                                           // json: "async"
-    ATOMIC = "atomic",                                         // json: "atomic"
-    ATOMIC_CANCEL = "atomic_cancel",                           // json: "atomic_cancel"
-    ATOMIC_COMMIT = "atomic_commit",                           // json: "atomic_commit"
-    ATOMIC_NOEXCEPT = "atomic_noexcept",                       // json: "atomic_noexcept"
-    AUTO = "auto",                                             // json: "auto"
-    AWAIT = "await",                                           // json: "await"
-    BASE = "base",                                             // json: "base"
-    BITAND = "bitand",                                         // json: "bitand"
-    BITOR = "bitor",                                           // json: "bitor"
-    ENUM_BOOL = "BOOL",                                        // json: "BOOL"
-    PURPLE_BOOL = "bool",                                      // json: "bool"
-    BOOLEAN = "boolean",                                       // json: "boolean"
-    BREAK = "break",                                           // json: "break"
-    BYCOPY = "bycopy",                                         // json: "bycopy"
-    BYREF = "byref",                                           // json: "byref"
-    BYTE = "byte",                                             // json: "byte"
-    CASE = "case",                                             // json: "case"
-    CATCH = "catch",                                           // json: "catch"
-    CHAN = "chan",                                             // json: "chan"
-    CHAR = "char",                                             // json: "char"
-    CHAR16_T = "char16_t",                                     // json: "char16_t"
-    CHAR32_T = "char32_t",                                     // json: "char32_t"
-    CHECKED = "checked",                                       // json: "checked"
-    CLASS = "class",                                           // json: "class"
-    ENUM_CLASS = "Class",                                      // json: "Class"
-    CO_AWAIT = "co_await",                                     // json: "co_await"
-    CO_RETURN = "co_return",                                   // json: "co_return"
-    CO_YIELD = "co_yield",                                     // json: "co_yield"
-    COMPL = "compl",                                           // json: "compl"
-    CONCEPT = "concept",                                       // json: "concept"
-    CONSOLE = "console",                                       // json: "console"
-    CONST = "const",                                           // json: "const"
-    CONST_CAST = "const_cast",                                 // json: "const_cast"
-    CONSTEXPR = "constexpr",                                   // json: "constexpr"
-    CONSTRUCTOR = "constructor",                               // json: "constructor"
-    CONTINUE = "continue",                                     // json: "continue"
-    CONVENIENCE = "convenience",                               // json: "convenience"
-    CONVERT = "convert",                                       // json: "convert"
-    CONVERTER = "converter",                                   // json: "converter"
-    DATE = "date",                                             // json: "date"
-    DATE_PARSE_HANDLING = "date_parse_handling",               // json: "date_parse_handling"
-    DEBUGGER = "debugger",                                     // json: "debugger"
-    DECIMAL = "decimal",                                       // json: "decimal"
-    DECLARE = "declare",                                       // json: "declare"
-    DECLTYPE = "decltype",                                     // json: "decltype"
-    DECODE_STRING = "decode_string",                           // json: "decode_string"
-    DEF = "def",                                               // json: "def"
-    DEFAULT = "default",                                       // json: "default"
-    DEFER = "defer",                                           // json: "defer"
-    DEINIT = "deinit",                                         // json: "deinit"
-    DEL = "del",                                               // json: "del"
-    DELEGATE = "delegate",                                     // json: "delegate"
-    DELETE = "delete",                                         // json: "delete"
-    DICT = "dict",                                             // json: "dict"
-    DICTIONARY = "dictionary",                                 // json: "dictionary"
-    DID_SET = "didSet",                                        // json: "didSet"
-    DO = "do",                                                 // json: "do"
-    DOUBLE = "double",                                         // json: "double"
-    DYNAMIC = "dynamic",                                       // json: "dynamic"
-    DYNAMIC_CAST = "dynamic_cast",                             // json: "dynamic_cast"
-    ELIF = "elif",                                             // json: "elif"
-    ELSE = "else",                                             // json: "else"
-    ENCODE_QUICK_TYPE = "encode_quick_type",                   // json: "encode_quick_type"
-    ENUM = "enum",                                             // json: "enum"
-    EVENT = "event",                                           // json: "event"
-    EXCEPT = "except",                                         // json: "except"
-    EXCEPTION = "exception",                                   // json: "exception"
-    EXPLICIT = "explicit",                                     // json: "explicit"
-    EXPORT = "export",                                         // json: "export"
-    EXPOSING = "exposing",                                     // json: "exposing"
-    EXTENDS = "extends",                                       // json: "extends"
-    EXTENSION = "extension",                                   // json: "extension"
-    EXTERN = "extern",                                         // json: "extern"
-    FALLTHROUGH = "fallthrough",                               // json: "fallthrough"
-    FALSE = "false",                                           // json: "false"
-    ENUM_FALSE = "False",                                      // json: "False"
-    FILEPRIVATE = "fileprivate",                               // json: "fileprivate"
-    FINAL = "final",                                           // json: "final"
-    FINALLY = "finally",                                       // json: "finally"
-    FIXED = "fixed",                                           // json: "fixed"
-    FLOAT = "float",                                           // json: "float"
-    FOR = "for",                                               // json: "for"
-    FOREACH = "foreach",                                       // json: "foreach"
-    FRIEND = "friend",                                         // json: "friend"
-    FROM = "from",                                             // json: "from"
-    FROM_JSON = "from_json",                                   // json: "from_json"
-    FUNC = "func",                                             // json: "func"
-    FUNCTION = "function",                                     // json: "function"
-    GET = "get",                                               // json: "get"
-    GLOBAL = "global",                                         // json: "global"
-    GO = "go",                                                 // json: "go"
-    GOTO = "goto",                                             // json: "goto"
-    GUARD = "guard",                                           // json: "guard"
-    HAS_OWN_PROPERTY = "hasOwnProperty",                       // json: "hasOwnProperty"
-    ID = "id",                                                 // json: "id"
-    IF = "if",                                                 // json: "if"
-    IMP = "IMP",                                               // json: "IMP"
-    IMPLEMENTS = "implements",                                 // json: "implements"
-    IMPLICIT = "implicit",                                     // json: "implicit"
-    IMPORT = "import",                                         // json: "import"
-    IN = "in",                                                 // json: "in"
-    INDIRECT = "indirect",                                     // json: "indirect"
-    INFIX = "infix",                                           // json: "infix"
-    INIT = "init",                                             // json: "init"
-    INLINE = "inline",                                         // json: "inline"
-    INOUT = "inout",                                           // json: "inout"
-    INSTANCEOF = "instanceof",                                 // json: "instanceof"
-    INT = "int",                                               // json: "int"
-    INTERFACE = "interface",                                   // json: "interface"
-    INTERNAL = "internal",                                     // json: "internal"
-    ITERABLE = "iterable",                                     // json: "iterable"
-    IS = "is",                                                 // json: "is"
-    JDEC = "jdec",                                             // json: "jdec"
-    JENC = "jenc",                                             // json: "jenc"
-    JPIPE = "jpipe",                                           // json: "jpipe"
-    JSON = "json",                                             // json: "json"
-    JSON_CONVERTER = "json_converter",                         // json: "json_converter"
-    JSON_SERIALIZER = "json_serializer",                       // json: "json_serializer"
-    JSON_TOKEN = "json_token",                                 // json: "json_token"
-    JSON_WRITER = "json_writer",                               // json: "json_writer"
-    LAMBDA = "lambda",                                         // json: "lambda"
-    LAZY = "lazy",                                             // json: "lazy"
-    LEFT = "left",                                             // json: "left"
-    LET = "let",                                               // json: "let"
-    LIST = "list",                                             // json: "list"
-    LOCK = "lock",                                             // json: "lock"
-    LONG = "long",                                             // json: "long"
-    MAP = "map",                                               // json: "map"
-    METADATA_PROPERTY_HANDLING = "metadata_property_handling", // json: "metadata_property_handling"
-    MODULE = "module",                                         // json: "module"
-    MUTABLE = "mutable",                                       // json: "mutable"
-    MUTATING = "mutating",                                     // json: "mutating"
-    NAMESPACE = "namespace",                                   // json: "namespace"
-    NATIVE = "native",                                         // json: "native"
-    NEW = "new",                                               // json: "new"
-    NEWTONSOFT = "newtonsoft",                                 // json: "newtonsoft"
-    NIL = "nil",                                               // json: "nil"
-    NO = "NO",                                                 // json: "NO"
-    NOEXCEPT = "noexcept",                                     // json: "noexcept"
-    NONATOMIC = "nonatomic",                                   // json: "nonatomic"
-    NONE = "none",                                             // json: "none"
-    ENUM_NONE = "None",                                        // json: "None"
-    NONLOCAL = "nonlocal",                                     // json: "nonlocal"
-    NONMUTATING = "nonmutating",                               // json: "nonmutating"
-    NOT = "not",                                               // json: "not"
-    NOT_EQ = "not_eq",                                         // json: "not_eq"
-    NS_STRING = "NSString",                                    // json: "NSString"
-    NULL = "NULL",                                             // json: "NULL"
-    ENUM_NULL = "null",                                        // json: "null"
-    NULLPTR = "nullptr",                                       // json: "nullptr"
-    NUMBER = "number",                                         // json: "number"
-    OBJECT = "object",                                         // json: "object"
-    OF = "of",                                                 // json: "of"
-    ONEWAY = "oneway",                                         // json: "oneway"
-    OPEN = "open",                                             // json: "open"
-    OPERATOR = "operator",                                     // json: "operator"
-    OPTIONAL = "optional",                                     // json: "optional"
-    OR = "or",                                                 // json: "or"
-    OR_EQ = "or_eq",                                           // json: "or_eq"
-    OUT = "out",                                               // json: "out"
-    OVERRIDE = "override",                                     // json: "override"
-    PACKAGE = "package",                                       // json: "package"
-    PARAMS = "params",                                         // json: "params"
-    PASS = "pass",                                             // json: "pass"
-    PORT = "port",                                             // json: "port"
-    POSTFIX = "postfix",                                       // json: "postfix"
-    PRECEDENCE = "precedence",                                 // json: "precedence"
-    PREFIX = "prefix",                                         // json: "prefix"
-    PRINT = "print",                                           // json: "print"
-    PRINTF = "printf",                                         // json: "printf"
-    PRIVATE = "private",                                       // json: "private"
-    PROTECTED = "protected",                                   // json: "protected"
-    PROTOCOL = "Protocol",                                     // json: "Protocol"
-    ENUM_PROTOCOL = "protocol",                                // json: "protocol"
-    PUBLIC = "public",                                         // json: "public"
-    QUICKTYPE = "quicktype",                                   // json: "quicktype"
-    RAISE = "raise",                                           // json: "raise"
-    RANGE = "range",                                           // json: "range"
-    READONLY = "readonly",                                     // json: "readonly"
-    REF = "ref",                                               // json: "ref"
-    REGISTER = "register",                                     // json: "register"
-    REINTERPRET_CAST = "reinterpret_cast",                     // json: "reinterpret_cast"
-    REPEAT = "repeat",                                         // json: "repeat"
-    REQUIRE = "require",                                       // json: "require"
-    REQUIRED = "required",                                     // json: "required"
-    REQUIRES = "requires",                                     // json: "requires"
-    RESTRICT = "restrict",                                     // json: "restrict"
-    RETAIN = "retain",                                         // json: "retain"
-    RETHROWS = "rethrows",                                     // json: "rethrows"
-    RETURN = "return",                                         // json: "return"
-    RIGHT = "right",                                           // json: "right"
-    SBYTE = "sbyte",                                           // json: "sbyte"
-    SEALED = "sealed",                                         // json: "sealed"
-    SEL = "SEL",                                               // json: "SEL"
-    SELECT = "select",                                         // json: "select"
-    SELF = "Self",                                             // json: "Self"
-    ENUM_SELF = "self",                                        // json: "self"
-    SERIALIZE = "serialize",                                   // json: "serialize"
-    SET = "set",                                               // json: "set"
-    SHORT = "short",                                           // json: "short"
-    SIGNED = "signed",                                         // json: "signed"
-    SIZEOF = "sizeof",                                         // json: "sizeof"
-    STACKALLOC = "stackalloc",                                 // json: "stackalloc"
-    STATIC = "static",                                         // json: "static"
-    STATIC_ASSERT = "static_assert",                           // json: "static_assert"
-    STATIC_CAST = "static_cast",                               // json: "static_cast"
-    STRICTFP = "strictfp",                                     // json: "strictfp"
-    STRING = "string",                                         // json: "string"
-    STRUCT = "struct",                                         // json: "struct"
-    SUBSCRIPT = "subscript",                                   // json: "subscript"
-    SUPER = "super",                                           // json: "super"
-    SWITCH = "switch",                                         // json: "switch"
-    SYMBOL = "symbol",                                         // json: "symbol"
-    SYNCHRONIZED = "synchronized",                             // json: "synchronized"
-    SYSTEM = "system",                                         // json: "system"
-    TEMPLATE = "template",                                     // json: "template"
-    THEN = "then",                                             // json: "then"
-    THIS = "this",                                             // json: "this"
-    THREAD_LOCAL = "thread_local",                             // json: "thread_local"
-    THROW = "throw",                                           // json: "throw"
-    THROWS = "throws",                                         // json: "throws"
-    TO_JSON = "to_json",                                       // json: "to_json"
-    TOP_LEVEL = "top_level",                                   // json: "top_level"
-    TRANSIENT = "transient",                                   // json: "transient"
-    TRUE = "True",                                             // json: "True"
-    ENUM_TRUE = "true",                                        // json: "true"
-    TRY = "try",                                               // json: "try"
-    TYPE = "Type",                                             // json: "Type"
-    ENUM_TYPE = "type",                                        // json: "type"
-    TYPEALIAS = "typealias",                                   // json: "typealias"
-    TYPEDEF = "typedef",                                       // json: "typedef"
-    TYPEID = "typeid",                                         // json: "typeid"
-    TYPENAME = "typename",                                     // json: "typename"
-    TYPEOF = "typeof",                                         // json: "typeof"
-    UINT = "uint",                                             // json: "uint"
-    ULONG = "ulong",                                           // json: "ulong"
-    UNCHECKED = "unchecked",                                   // json: "unchecked"
-    UNDEFINED = "undefined",                                   // json: "undefined"
-    UNION = "union",                                           // json: "union"
-    UNOWNED = "unowned",                                       // json: "unowned"
-    UNSAFE = "unsafe",                                         // json: "unsafe"
-    UNSIGNED = "unsigned",                                     // json: "unsigned"
-    USHORT = "ushort",                                         // json: "ushort"
-    USING = "using",                                           // json: "using"
-    VAR = "var",                                               // json: "var"
-    VIRTUAL = "virtual",                                       // json: "virtual"
-    VOID = "void",                                             // json: "void"
-    VOLATILE = "volatile",                                     // json: "volatile"
-    WCHAR_T = "wchar_t",                                       // json: "wchar_t"
-    WEAK = "weak",                                             // json: "weak"
-    WHERE = "where",                                           // json: "where"
-    WHILE = "while",                                           // json: "while"
-    WILL_SET = "willSet",                                      // json: "willSet"
-    WITH = "with",                                             // json: "with"
-    XOR = "xor",                                               // json: "xor"
-    XOR_EQ = "xor_eq",                                         // json: "xor_eq"
-    YES = "YES",                                               // json: "YES"
-    YIELD = "yield",                                           // json: "yield"
-    DUMMY = "dummy",                                           // json: "dummy"
+    EMPTY = "_",                                                   // json: "_"
+    BOOL = "_Bool",                                                // json: "_Bool"
+    COMPLEX = "_Complex",                                          // json: "_Complex"
+    IMAGINERY = "_Imaginery",                                      // json: "_Imaginery"
+    ABSTRACT = "abstract",                                         // json: "abstract"
+    ALIGNAS = "alignas",                                           // json: "alignas"
+    ALIGNOF = "alignof",                                           // json: "alignof"
+    AND = "and",                                                   // json: "and"
+    AND_EQ = "and_eq",                                             // json: "and_eq"
+    ANY = "any",                                                   // json: "any"
+    ENUM_ANY = "Any",                                              // json: "Any"
+    ARRAY = "array",                                               // json: "array"
+    AS = "as",                                                     // json: "as"
+    ASM = "asm",                                                   // json: "asm"
+    ASSERT = "assert",                                             // json: "assert"
+    ASSOCIATEDTYPE = "associatedtype",                             // json: "associatedtype"
+    ASSOCIATIVITY = "associativity",                               // json: "associativity"
+    ASYNC = "async",                                               // json: "async"
+    ATOMIC = "atomic",                                             // json: "atomic"
+    ATOMIC_CANCEL = "atomic_cancel",                               // json: "atomic_cancel"
+    ATOMIC_COMMIT = "atomic_commit",                               // json: "atomic_commit"
+    ATOMIC_NOEXCEPT = "atomic_noexcept",                           // json: "atomic_noexcept"
+    AUTO = "auto",                                                 // json: "auto"
+    AWAIT = "await",                                               // json: "await"
+    BASE = "base",                                                 // json: "base"
+    BITAND = "bitand",                                             // json: "bitand"
+    BITOR = "bitor",                                               // json: "bitor"
+    ENUM_BOOL = "BOOL",                                            // json: "BOOL"
+    PURPLE_BOOL = "bool",                                          // json: "bool"
+    BOOLEAN = "boolean",                                           // json: "boolean"
+    BREAK = "break",                                               // json: "break"
+    BYCOPY = "bycopy",                                             // json: "bycopy"
+    BYREF = "byref",                                               // json: "byref"
+    BYTE = "byte",                                                 // json: "byte"
+    CASE = "case",                                                 // json: "case"
+    CATCH = "catch",                                               // json: "catch"
+    CHAN = "chan",                                                 // json: "chan"
+    CHAR = "char",                                                 // json: "char"
+    CHAR16_T = "char16_t",                                         // json: "char16_t"
+    CHAR32_T = "char32_t",                                         // json: "char32_t"
+    CHECKED = "checked",                                           // json: "checked"
+    CLASS = "class",                                               // json: "class"
+    ENUM_CLASS = "Class",                                          // json: "Class"
+    CLONE = "clone",                                               // json: "clone"
+    CO_AWAIT = "co_await",                                         // json: "co_await"
+    CO_RETURN = "co_return",                                       // json: "co_return"
+    CO_YIELD = "co_yield",                                         // json: "co_yield"
+    COMPL = "compl",                                               // json: "compl"
+    CONCEPT = "concept",                                           // json: "concept"
+    CONSOLE = "console",                                           // json: "console"
+    CONST = "const",                                               // json: "const"
+    CONST_CAST = "const_cast",                                     // json: "const_cast"
+    CONSTEXPR = "constexpr",                                       // json: "constexpr"
+    CONSTRUCTOR = "constructor",                                   // json: "constructor"
+    CONTINUE = "continue",                                         // json: "continue"
+    CONVENIENCE = "convenience",                                   // json: "convenience"
+    CONVERT = "convert",                                           // json: "convert"
+    CONVERTER = "converter",                                       // json: "converter"
+    CULTURE_INFO = "CultureInfo",                                  // json: "CultureInfo"
+    DATE = "date",                                                 // json: "date"
+    DATE_PARSE_HANDLING = "date_parse_handling",                   // json: "date_parse_handling"
+    DATE_FORMATTER = "DateFormatter",                              // json: "DateFormatter"
+    DATE_ONLY = "DateOnly",                                        // json: "DateOnly"
+    DATE_ONLY_CONVERTER = "DateOnlyConverter",                     // json: "DateOnlyConverter"
+    DATE_TIME = "DateTime",                                        // json: "DateTime"
+    DATE_TIME_STYLES = "DateTimeStyles",                           // json: "DateTimeStyles"
+    DEBUGGER = "debugger",                                         // json: "debugger"
+    DECIMAL = "decimal",                                           // json: "decimal"
+    DECLARE = "declare",                                           // json: "declare"
+    DECLTYPE = "decltype",                                         // json: "decltype"
+    DECODE_STRING = "decode_string",                               // json: "decode_string"
+    DEF = "def",                                                   // json: "def"
+    DEFAULT = "default",                                           // json: "default"
+    DEFER = "defer",                                               // json: "defer"
+    DEINIT = "deinit",                                             // json: "deinit"
+    DEL = "del",                                                   // json: "del"
+    DELEGATE = "delegate",                                         // json: "delegate"
+    DELETE = "delete",                                             // json: "delete"
+    DICT = "dict",                                                 // json: "dict"
+    DICTIONARY = "dictionary",                                     // json: "dictionary"
+    DID_SET = "didSet",                                            // json: "didSet"
+    DO = "do",                                                     // json: "do"
+    DOUBLE = "double",                                             // json: "double"
+    DYNAMIC = "dynamic",                                           // json: "dynamic"
+    DYNAMIC_CAST = "dynamic_cast",                                 // json: "dynamic_cast"
+    ELIF = "elif",                                                 // json: "elif"
+    ELSE = "else",                                                 // json: "else"
+    ENCODE_QUICK_TYPE = "encode_quick_type",                       // json: "encode_quick_type"
+    ENUM = "enum",                                                 // json: "enum"
+    ENUM_VALUES = "EnumValues",                                    // json: "EnumValues"
+    EQUALITY_CONTRACT = "equalityContract",                        // json: "equalityContract"
+    EVENT = "event",                                               // json: "event"
+    EXCEPT = "except",                                             // json: "except"
+    EXCEPTION = "exception",                                       // json: "exception"
+    EXPLICIT = "explicit",                                         // json: "explicit"
+    EXPORT = "export",                                             // json: "export"
+    EXPOSING = "exposing",                                         // json: "exposing"
+    EXTENDS = "extends",                                           // json: "extends"
+    EXTENSION = "extension",                                       // json: "extension"
+    EXTERN = "extern",                                             // json: "extern"
+    FALLTHROUGH = "fallthrough",                                   // json: "fallthrough"
+    FALSE = "false",                                               // json: "false"
+    ENUM_FALSE = "False",                                          // json: "False"
+    FILEPRIVATE = "fileprivate",                                   // json: "fileprivate"
+    FINAL = "final",                                               // json: "final"
+    FINALLY = "finally",                                           // json: "finally"
+    FIXED = "fixed",                                               // json: "fixed"
+    FLOAT = "float",                                               // json: "float"
+    FOR = "for",                                                   // json: "for"
+    FOREACH = "foreach",                                           // json: "foreach"
+    FORMAT_EXCEPTION = "FormatException",                          // json: "FormatException"
+    FRIEND = "friend",                                             // json: "friend"
+    FROM = "from",                                                 // json: "from"
+    FROM_JSON = "from_json",                                       // json: "from_json"
+    FUNC = "func",                                                 // json: "func"
+    FUNCTION = "function",                                         // json: "function"
+    GET = "get",                                                   // json: "get"
+    GLOBAL = "global",                                             // json: "global"
+    GO = "go",                                                     // json: "go"
+    GOTO = "goto",                                                 // json: "goto"
+    GUARD = "guard",                                               // json: "guard"
+    HASH_CODE = "hashCode",                                        // json: "hashCode"
+    HAS_OWN_PROPERTY = "hasOwnProperty",                           // json: "hasOwnProperty"
+    ID = "id",                                                     // json: "id"
+    IF = "if",                                                     // json: "if"
+    IMP = "IMP",                                                   // json: "IMP"
+    IMPLEMENTS = "implements",                                     // json: "implements"
+    IMPLICIT = "implicit",                                         // json: "implicit"
+    IMPORT = "import",                                             // json: "import"
+    IN = "in",                                                     // json: "in"
+    INDIRECT = "indirect",                                         // json: "indirect"
+    INFIX = "infix",                                               // json: "infix"
+    INIT = "init",                                                 // json: "init"
+    INLINE = "inline",                                             // json: "inline"
+    INOUT = "inout",                                               // json: "inout"
+    INSTANCEOF = "instanceof",                                     // json: "instanceof"
+    INT = "int",                                                   // json: "int"
+    INTERFACE = "interface",                                       // json: "interface"
+    INTERNAL = "internal",                                         // json: "internal"
+    ISO_DATE_TIME_OFFSET_CONVERTER = "IsoDateTimeOffsetConverter", // json: "IsoDateTimeOffsetConverter"
+    ITERABLE = "iterable",                                         // json: "iterable"
+    IS = "is",                                                     // json: "is"
+    JDEC = "jdec",                                                 // json: "jdec"
+    JENC = "jenc",                                                 // json: "jenc"
+    JPIPE = "jpipe",                                               // json: "jpipe"
+    JSON = "json",                                                 // json: "json"
+    JSON_CONVERTER = "json_converter",                             // json: "json_converter"
+    JSON_SERIALIZER = "json_serializer",                           // json: "json_serializer"
+    JSON_TOKEN = "json_token",                                     // json: "json_token"
+    JSON_WRITER = "json_writer",                                   // json: "json_writer"
+    JSON_ANY = "JSONAny",                                          // json: "JSONAny"
+    JSON_CODING_KEY = "JSONCodingKey",                             // json: "JSONCodingKey"
+    JSON_DECODER = "JSONDecoder",                                  // json: "JSONDecoder"
+    JSON_ENCODER = "JSONEncoder",                                  // json: "JSONEncoder"
+    JSON_EXCEPTION = "JsonException",                              // json: "JsonException"
+    JSON_GENERATOR = "JsonGenerator",                              // json: "JsonGenerator"
+    JSON_NODE = "JsonNode",                                        // json: "JsonNode"
+    JSON_NULL = "JSONNull",                                        // json: "JSONNull"
+    JSON_PARSER = "JsonParser",                                    // json: "JsonParser"
+    JSON_READER = "JsonReader",                                    // json: "JsonReader"
+    JSON_TOKEN_TYPE = "JsonTokenType",                             // json: "JsonTokenType"
+    LAMBDA = "lambda",                                             // json: "lambda"
+    LAZY = "lazy",                                                 // json: "lazy"
+    LEFT = "left",                                                 // json: "left"
+    LET = "let",                                                   // json: "let"
+    LIST = "list",                                                 // json: "list"
+    LOCK = "lock",                                                 // json: "lock"
+    LONG = "long",                                                 // json: "long"
+    MAP = "map",                                                   // json: "map"
+    METADATA_PROPERTY_HANDLING = "metadata_property_handling",     // json: "metadata_property_handling"
+    MODULE = "module",                                             // json: "module"
+    MUTABLE = "mutable",                                           // json: "mutable"
+    MUTATING = "mutating",                                         // json: "mutating"
+    NAMESPACE = "namespace",                                       // json: "namespace"
+    NATIVE = "native",                                             // json: "native"
+    NEW = "new",                                                   // json: "new"
+    NEWTONSOFT = "newtonsoft",                                     // json: "newtonsoft"
+    NIL = "nil",                                                   // json: "nil"
+    NO = "NO",                                                     // json: "NO"
+    NOEXCEPT = "noexcept",                                         // json: "noexcept"
+    NONATOMIC = "nonatomic",                                       // json: "nonatomic"
+    NONE = "none",                                                 // json: "none"
+    ENUM_NONE = "None",                                            // json: "None"
+    NONLOCAL = "nonlocal",                                         // json: "nonlocal"
+    NONMUTATING = "nonmutating",                                   // json: "nonmutating"
+    NO_SUCH_METHOD = "noSuchMethod",                               // json: "noSuchMethod"
+    NOT = "not",                                                   // json: "not"
+    NOT_EQ = "not_eq",                                             // json: "not_eq"
+    NS_ERROR = "NSError",                                          // json: "NSError"
+    NS_STRING = "NSString",                                        // json: "NSString"
+    NULL = "NULL",                                                 // json: "NULL"
+    ENUM_NULL = "null",                                            // json: "null"
+    NULLPTR = "nullptr",                                           // json: "nullptr"
+    NUMBER = "number",                                             // json: "number"
+    OBJECT = "object",                                             // json: "object"
+    OBJECT_MAPPER = "ObjectMapper",                                // json: "ObjectMapper"
+    OF = "of",                                                     // json: "of"
+    ONEWAY = "oneway",                                             // json: "oneway"
+    OPEN = "open",                                                 // json: "open"
+    OPERATOR = "operator",                                         // json: "operator"
+    OPTIONAL = "optional",                                         // json: "optional"
+    OR = "or",                                                     // json: "or"
+    OR_EQ = "or_eq",                                               // json: "or_eq"
+    OUT = "out",                                                   // json: "out"
+    OVERRIDE = "override",                                         // json: "override"
+    PACKAGE = "package",                                           // json: "package"
+    PARAMS = "params",                                             // json: "params"
+    PASS = "pass",                                                 // json: "pass"
+    PORT = "port",                                                 // json: "port"
+    POSTFIX = "postfix",                                           // json: "postfix"
+    PRECEDENCE = "precedence",                                     // json: "precedence"
+    PREFIX = "prefix",                                             // json: "prefix"
+    PRINT = "print",                                               // json: "print"
+    PRINTF = "printf",                                             // json: "printf"
+    PRINT_MEMBERS = "printMembers",                                // json: "printMembers"
+    PRIVATE = "private",                                           // json: "private"
+    PROTECTED = "protected",                                       // json: "protected"
+    PROTOCOL = "Protocol",                                         // json: "Protocol"
+    ENUM_PROTOCOL = "protocol",                                    // json: "protocol"
+    PUBLIC = "public",                                             // json: "public"
+    QUICKTYPE = "quicktype",                                       // json: "quicktype"
+    RAISE = "raise",                                               // json: "raise"
+    RANGE = "range",                                               // json: "range"
+    READONLY = "readonly",                                         // json: "readonly"
+    REF = "ref",                                                   // json: "ref"
+    REG_EXP = "RegExp",                                            // json: "RegExp"
+    REGISTER = "register",                                         // json: "register"
+    REINTERPRET_CAST = "reinterpret_cast",                         // json: "reinterpret_cast"
+    REPEAT = "repeat",                                             // json: "repeat"
+    REQUIRE = "require",                                           // json: "require"
+    REQUIRED = "required",                                         // json: "required"
+    REQUIRES = "requires",                                         // json: "requires"
+    RESTRICT = "restrict",                                         // json: "restrict"
+    RETAIN = "retain",                                             // json: "retain"
+    RETHROWS = "rethrows",                                         // json: "rethrows"
+    RETURN = "return",                                             // json: "return"
+    RIGHT = "right",                                               // json: "right"
+    RUNTIME_TYPE = "runtimeType",                                  // json: "runtimeType"
+    S = "s",                                                       // json: "s"
+    SBYTE = "sbyte",                                               // json: "sbyte"
+    SEALED = "sealed",                                             // json: "sealed"
+    SEL = "SEL",                                                   // json: "SEL"
+    SELECT = "select",                                             // json: "select"
+    SELF = "Self",                                                 // json: "Self"
+    ENUM_SELF = "self",                                            // json: "self"
+    SERIALIZE = "serialize",                                       // json: "serialize"
+    SERIALIZER_PROVIDER = "SerializerProvider",                    // json: "SerializerProvider"
+    SET = "set",                                                   // json: "set"
+    SHORT = "short",                                               // json: "short"
+    SIGNED = "signed",                                             // json: "signed"
+    SIMPLE_MODULE = "SimpleModule",                                // json: "SimpleModule"
+    SIZEOF = "sizeof",                                             // json: "sizeof"
+    STACKALLOC = "stackalloc",                                     // json: "stackalloc"
+    STANDARDS = "Standards",                                       // json: "Standards"
+    STATIC = "static",                                             // json: "static"
+    STATIC_ASSERT = "static_assert",                               // json: "static_assert"
+    STATIC_CAST = "static_cast",                                   // json: "static_cast"
+    STD_DESERIALIZER = "StdDeserializer",                          // json: "StdDeserializer"
+    STD_SERIALIZER = "StdSerializer",                              // json: "StdSerializer"
+    STRICTFP = "strictfp",                                         // json: "strictfp"
+    STRING = "string",                                             // json: "string"
+    STRUCT = "struct",                                             // json: "struct"
+    SUBSCRIPT = "subscript",                                       // json: "subscript"
+    SUPER = "super",                                               // json: "super"
+    SWITCH = "switch",                                             // json: "switch"
+    SYMBOL = "symbol",                                             // json: "symbol"
+    SYNCHRONIZED = "synchronized",                                 // json: "synchronized"
+    SYSTEM = "system",                                             // json: "system"
+    TEMPLATE = "template",                                         // json: "template"
+    THEN = "then",                                                 // json: "then"
+    THIS = "this",                                                 // json: "this"
+    THREAD_LOCAL = "thread_local",                                 // json: "thread_local"
+    THROW = "throw",                                               // json: "throw"
+    THROWS = "throws",                                             // json: "throws"
+    TIME_ONLY = "TimeOnly",                                        // json: "TimeOnly"
+    TIME_ONLY_CONVERTER = "TimeOnlyConverter",                     // json: "TimeOnlyConverter"
+    TO_JSON = "to_json",                                           // json: "to_json"
+    TOP_LEVEL = "top_level",                                       // json: "top_level"
+    TO_STRING = "toString",                                        // json: "toString"
+    TRANSIENT = "transient",                                       // json: "transient"
+    TRUE = "True",                                                 // json: "True"
+    ENUM_TRUE = "true",                                            // json: "true"
+    TRY = "try",                                                   // json: "try"
+    TYPE = "Type",                                                 // json: "Type"
+    ENUM_TYPE = "type",                                            // json: "type"
+    TYPEALIAS = "typealias",                                       // json: "typealias"
+    TYPEDEF = "typedef",                                           // json: "typedef"
+    TYPEID = "typeid",                                             // json: "typeid"
+    TYPENAME = "typename",                                         // json: "typename"
+    TYPEOF = "typeof",                                             // json: "typeof"
+    UINT = "uint",                                                 // json: "uint"
+    ULONG = "ulong",                                               // json: "ulong"
+    UNCHECKED = "unchecked",                                       // json: "unchecked"
+    UNDEFINED = "undefined",                                       // json: "undefined"
+    UNION = "union",                                               // json: "union"
+    UNOWNED = "unowned",                                           // json: "unowned"
+    UNSAFE = "unsafe",                                             // json: "unsafe"
+    UNSIGNED = "unsigned",                                         // json: "unsigned"
+    USHORT = "ushort",                                             // json: "ushort"
+    USING = "using",                                               // json: "using"
+    UTF8_JSON_READER = "Utf8JsonReader",                           // json: "Utf8JsonReader"
+    UTF8_JSON_WRITER = "Utf8JsonWriter",                           // json: "Utf8JsonWriter"
+    UUID = "UUID",                                                 // json: "UUID"
+    VAR = "var",                                                   // json: "var"
+    VIRTUAL = "virtual",                                           // json: "virtual"
+    VOID = "void",                                                 // json: "void"
+    VOLATILE = "volatile",                                         // json: "volatile"
+    WCHAR_T = "wchar_t",                                           // json: "wchar_t"
+    WEAK = "weak",                                                 // json: "weak"
+    WHERE = "where",                                               // json: "where"
+    WHILE = "while",                                               // json: "while"
+    WILL_SET = "willSet",                                          // json: "willSet"
+    WITH = "with",                                                 // json: "with"
+    XOR = "xor",                                                   // json: "xor"
+    XOR_EQ = "xor_eq",                                             // json: "xor_eq"
+    YES = "YES",                                                   // json: "YES"
+    YIELD = "yield",                                               // json: "yield"
+    DUMMY = "dummy",                                               // json: "dummy"
 }
 
 Enum Enum_from_JSON(mixed json) {
-    if(!zero_type(json)&&json != "_"&&json != "_Bool"&&json != "_Complex"&&json != "_Imaginery"&&json != "abstract"&&json != "alignas"&&json != "alignof"&&json != "and"&&json != "and_eq"&&json != "any"&&json != "Any"&&json != "array"&&json != "as"&&json != "asm"&&json != "assert"&&json != "associatedtype"&&json != "associativity"&&json != "async"&&json != "atomic"&&json != "atomic_cancel"&&json != "atomic_commit"&&json != "atomic_noexcept"&&json != "auto"&&json != "await"&&json != "base"&&json != "bitand"&&json != "bitor"&&json != "BOOL"&&json != "bool"&&json != "boolean"&&json != "break"&&json != "bycopy"&&json != "byref"&&json != "byte"&&json != "case"&&json != "catch"&&json != "chan"&&json != "char"&&json != "char16_t"&&json != "char32_t"&&json != "checked"&&json != "class"&&json != "Class"&&json != "co_await"&&json != "co_return"&&json != "co_yield"&&json != "compl"&&json != "concept"&&json != "console"&&json != "const"&&json != "const_cast"&&json != "constexpr"&&json != "constructor"&&json != "continue"&&json != "convenience"&&json != "convert"&&json != "converter"&&json != "date"&&json != "date_parse_handling"&&json != "debugger"&&json != "decimal"&&json != "declare"&&json != "decltype"&&json != "decode_string"&&json != "def"&&json != "default"&&json != "defer"&&json != "deinit"&&json != "del"&&json != "delegate"&&json != "delete"&&json != "dict"&&json != "dictionary"&&json != "didSet"&&json != "do"&&json != "double"&&json != "dynamic"&&json != "dynamic_cast"&&json != "elif"&&json != "else"&&json != "encode_quick_type"&&json != "enum"&&json != "event"&&json != "except"&&json != "exception"&&json != "explicit"&&json != "export"&&json != "exposing"&&json != "extends"&&json != "extension"&&json != "extern"&&json != "fallthrough"&&json != "false"&&json != "False"&&json != "fileprivate"&&json != "final"&&json != "finally"&&json != "fixed"&&json != "float"&&json != "for"&&json != "foreach"&&json != "friend"&&json != "from"&&json != "from_json"&&json != "func"&&json != "function"&&json != "get"&&json != "global"&&json != "go"&&json != "goto"&&json != "guard"&&json != "hasOwnProperty"&&json != "id"&&json != "if"&&json != "IMP"&&json != "implements"&&json != "implicit"&&json != "import"&&json != "in"&&json != "indirect"&&json != "infix"&&json != "init"&&json != "inline"&&json != "inout"&&json != "instanceof"&&json != "int"&&json != "interface"&&json != "internal"&&json != "iterable"&&json != "is"&&json != "jdec"&&json != "jenc"&&json != "jpipe"&&json != "json"&&json != "json_converter"&&json != "json_serializer"&&json != "json_token"&&json != "json_writer"&&json != "lambda"&&json != "lazy"&&json != "left"&&json != "let"&&json != "list"&&json != "lock"&&json != "long"&&json != "map"&&json != "metadata_property_handling"&&json != "module"&&json != "mutable"&&json != "mutating"&&json != "namespace"&&json != "native"&&json != "new"&&json != "newtonsoft"&&json != "nil"&&json != "NO"&&json != "noexcept"&&json != "nonatomic"&&json != "none"&&json != "None"&&json != "nonlocal"&&json != "nonmutating"&&json != "not"&&json != "not_eq"&&json != "NSString"&&json != "NULL"&&json != "null"&&json != "nullptr"&&json != "number"&&json != "object"&&json != "of"&&json != "oneway"&&json != "open"&&json != "operator"&&json != "optional"&&json != "or"&&json != "or_eq"&&json != "out"&&json != "override"&&json != "package"&&json != "params"&&json != "pass"&&json != "port"&&json != "postfix"&&json != "precedence"&&json != "prefix"&&json != "print"&&json != "printf"&&json != "private"&&json != "protected"&&json != "Protocol"&&json != "protocol"&&json != "public"&&json != "quicktype"&&json != "raise"&&json != "range"&&json != "readonly"&&json != "ref"&&json != "register"&&json != "reinterpret_cast"&&json != "repeat"&&json != "require"&&json != "required"&&json != "requires"&&json != "restrict"&&json != "retain"&&json != "rethrows"&&json != "return"&&json != "right"&&json != "sbyte"&&json != "sealed"&&json != "SEL"&&json != "select"&&json != "Self"&&json != "self"&&json != "serialize"&&json != "set"&&json != "short"&&json != "signed"&&json != "sizeof"&&json != "stackalloc"&&json != "static"&&json != "static_assert"&&json != "static_cast"&&json != "strictfp"&&json != "string"&&json != "struct"&&json != "subscript"&&json != "super"&&json != "switch"&&json != "symbol"&&json != "synchronized"&&json != "system"&&json != "template"&&json != "then"&&json != "this"&&json != "thread_local"&&json != "throw"&&json != "throws"&&json != "to_json"&&json != "top_level"&&json != "transient"&&json != "True"&&json != "true"&&json != "try"&&json != "Type"&&json != "type"&&json != "typealias"&&json != "typedef"&&json != "typeid"&&json != "typename"&&json != "typeof"&&json != "uint"&&json != "ulong"&&json != "unchecked"&&json != "undefined"&&json != "union"&&json != "unowned"&&json != "unsafe"&&json != "unsigned"&&json != "ushort"&&json != "using"&&json != "var"&&json != "virtual"&&json != "void"&&json != "volatile"&&json != "wchar_t"&&json != "weak"&&json != "where"&&json != "while"&&json != "willSet"&&json != "with"&&json != "xor"&&json != "xor_eq"&&json != "YES"&&json != "yield"&&json != "dummy")error("enum");return json;
+    if(!zero_type(json)&&json != "_"&&json != "_Bool"&&json != "_Complex"&&json != "_Imaginery"&&json != "abstract"&&json != "alignas"&&json != "alignof"&&json != "and"&&json != "and_eq"&&json != "any"&&json != "Any"&&json != "array"&&json != "as"&&json != "asm"&&json != "assert"&&json != "associatedtype"&&json != "associativity"&&json != "async"&&json != "atomic"&&json != "atomic_cancel"&&json != "atomic_commit"&&json != "atomic_noexcept"&&json != "auto"&&json != "await"&&json != "base"&&json != "bitand"&&json != "bitor"&&json != "BOOL"&&json != "bool"&&json != "boolean"&&json != "break"&&json != "bycopy"&&json != "byref"&&json != "byte"&&json != "case"&&json != "catch"&&json != "chan"&&json != "char"&&json != "char16_t"&&json != "char32_t"&&json != "checked"&&json != "class"&&json != "Class"&&json != "clone"&&json != "co_await"&&json != "co_return"&&json != "co_yield"&&json != "compl"&&json != "concept"&&json != "console"&&json != "const"&&json != "const_cast"&&json != "constexpr"&&json != "constructor"&&json != "continue"&&json != "convenience"&&json != "convert"&&json != "converter"&&json != "CultureInfo"&&json != "date"&&json != "date_parse_handling"&&json != "DateFormatter"&&json != "DateOnly"&&json != "DateOnlyConverter"&&json != "DateTime"&&json != "DateTimeStyles"&&json != "debugger"&&json != "decimal"&&json != "declare"&&json != "decltype"&&json != "decode_string"&&json != "def"&&json != "default"&&json != "defer"&&json != "deinit"&&json != "del"&&json != "delegate"&&json != "delete"&&json != "dict"&&json != "dictionary"&&json != "didSet"&&json != "do"&&json != "double"&&json != "dynamic"&&json != "dynamic_cast"&&json != "elif"&&json != "else"&&json != "encode_quick_type"&&json != "enum"&&json != "EnumValues"&&json != "equalityContract"&&json != "event"&&json != "except"&&json != "exception"&&json != "explicit"&&json != "export"&&json != "exposing"&&json != "extends"&&json != "extension"&&json != "extern"&&json != "fallthrough"&&json != "false"&&json != "False"&&json != "fileprivate"&&json != "final"&&json != "finally"&&json != "fixed"&&json != "float"&&json != "for"&&json != "foreach"&&json != "FormatException"&&json != "friend"&&json != "from"&&json != "from_json"&&json != "func"&&json != "function"&&json != "get"&&json != "global"&&json != "go"&&json != "goto"&&json != "guard"&&json != "hashCode"&&json != "hasOwnProperty"&&json != "id"&&json != "if"&&json != "IMP"&&json != "implements"&&json != "implicit"&&json != "import"&&json != "in"&&json != "indirect"&&json != "infix"&&json != "init"&&json != "inline"&&json != "inout"&&json != "instanceof"&&json != "int"&&json != "interface"&&json != "internal"&&json != "IsoDateTimeOffsetConverter"&&json != "iterable"&&json != "is"&&json != "jdec"&&json != "jenc"&&json != "jpipe"&&json != "json"&&json != "json_converter"&&json != "json_serializer"&&json != "json_token"&&json != "json_writer"&&json != "JSONAny"&&json != "JSONCodingKey"&&json != "JSONDecoder"&&json != "JSONEncoder"&&json != "JsonException"&&json != "JsonGenerator"&&json != "JsonNode"&&json != "JSONNull"&&json != "JsonParser"&&json != "JsonReader"&&json != "JsonTokenType"&&json != "lambda"&&json != "lazy"&&json != "left"&&json != "let"&&json != "list"&&json != "lock"&&json != "long"&&json != "map"&&json != "metadata_property_handling"&&json != "module"&&json != "mutable"&&json != "mutating"&&json != "namespace"&&json != "native"&&json != "new"&&json != "newtonsoft"&&json != "nil"&&json != "NO"&&json != "noexcept"&&json != "nonatomic"&&json != "none"&&json != "None"&&json != "nonlocal"&&json != "nonmutating"&&json != "noSuchMethod"&&json != "not"&&json != "not_eq"&&json != "NSError"&&json != "NSString"&&json != "NULL"&&json != "null"&&json != "nullptr"&&json != "number"&&json != "object"&&json != "ObjectMapper"&&json != "of"&&json != "oneway"&&json != "open"&&json != "operator"&&json != "optional"&&json != "or"&&json != "or_eq"&&json != "out"&&json != "override"&&json != "package"&&json != "params"&&json != "pass"&&json != "port"&&json != "postfix"&&json != "precedence"&&json != "prefix"&&json != "print"&&json != "printf"&&json != "printMembers"&&json != "private"&&json != "protected"&&json != "Protocol"&&json != "protocol"&&json != "public"&&json != "quicktype"&&json != "raise"&&json != "range"&&json != "readonly"&&json != "ref"&&json != "RegExp"&&json != "register"&&json != "reinterpret_cast"&&json != "repeat"&&json != "require"&&json != "required"&&json != "requires"&&json != "restrict"&&json != "retain"&&json != "rethrows"&&json != "return"&&json != "right"&&json != "runtimeType"&&json != "s"&&json != "sbyte"&&json != "sealed"&&json != "SEL"&&json != "select"&&json != "Self"&&json != "self"&&json != "serialize"&&json != "SerializerProvider"&&json != "set"&&json != "short"&&json != "signed"&&json != "SimpleModule"&&json != "sizeof"&&json != "stackalloc"&&json != "Standards"&&json != "static"&&json != "static_assert"&&json != "static_cast"&&json != "StdDeserializer"&&json != "StdSerializer"&&json != "strictfp"&&json != "string"&&json != "struct"&&json != "subscript"&&json != "super"&&json != "switch"&&json != "symbol"&&json != "synchronized"&&json != "system"&&json != "template"&&json != "then"&&json != "this"&&json != "thread_local"&&json != "throw"&&json != "throws"&&json != "TimeOnly"&&json != "TimeOnlyConverter"&&json != "to_json"&&json != "top_level"&&json != "toString"&&json != "transient"&&json != "True"&&json != "true"&&json != "try"&&json != "Type"&&json != "type"&&json != "typealias"&&json != "typedef"&&json != "typeid"&&json != "typename"&&json != "typeof"&&json != "uint"&&json != "ulong"&&json != "unchecked"&&json != "undefined"&&json != "union"&&json != "unowned"&&json != "unsafe"&&json != "unsigned"&&json != "ushort"&&json != "using"&&json != "Utf8JsonReader"&&json != "Utf8JsonWriter"&&json != "UUID"&&json != "var"&&json != "virtual"&&json != "void"&&json != "volatile"&&json != "wchar_t"&&json != "weak"&&json != "where"&&json != "while"&&json != "willSet"&&json != "with"&&json != "xor"&&json != "xor_eq"&&json != "YES"&&json != "yield"&&json != "dummy")error("enum");return json;
 }
diff --git a/base/schema-pike/test/inputs/schema/keyword-unions.schema/default/TopLevel.pmod b/head/schema-pike/test/inputs/schema/keyword-unions.schema/default/TopLevel.pmod
index 8283b7c..7375d81 100644
--- a/base/schema-pike/test/inputs/schema/keyword-unions.schema/default/TopLevel.pmod
+++ b/head/schema-pike/test/inputs/schema/keyword-unions.schema/default/TopLevel.pmod
@@ -13,283 +13,324 @@
 // match the expected interface, even if the JSON itself is valid.
 
 class TopLevel {
-    UnionUnion                    empty;                      // json: "_"
-    UnionBoolUnion                top_level_bool;             // json: "_Bool"
-    UnionComplex                  complex;                    // json: "_Complex"
-    UnionImaginery                imaginery;                  // json: "_Imaginery"
-    UnionAbstract                 abstract;                   // json: "abstract"
-    UnionAlignas                  alignas;                    // json: "alignas"
-    UnionAlignof                  alignof;                    // json: "alignof"
-    UnionAnd                      and;                        // json: "and"
-    UnionAndEq                    and_eq;                     // json: "and_eq"
-    UnionAnyUnion                 top_level_any;              // json: "any"
-    UnionAny                      any;                        // json: "Any"
-    UnionArray                    top_level_array;            // json: "array"
-    UnionAs                       as;                         // json: "as"
-    UnionAsm                      asm;                        // json: "asm"
-    UnionAssert                   assert;                     // json: "assert"
-    UnionAssociatedtype           associatedtype;             // json: "associatedtype"
-    UnionAssociativity            associativity;              // json: "associativity"
-    UnionAsync                    async;                      // json: "async"
-    UnionAtomic                   atomic;                     // json: "atomic"
-    UnionAtomicCancel             atomic_cancel;              // json: "atomic_cancel"
-    UnionAtomicCommit             atomic_commit;              // json: "atomic_commit"
-    UnionAtomicNoexcept           atomic_noexcept;            // json: "atomic_noexcept"
-    UnionAuto                     top_level_auto;             // json: "auto"
-    UnionAwait                    await;                      // json: "await"
-    UnionBase                     base;                       // json: "base"
-    UnionBitand                   bitand;                     // json: "bitand"
-    UnionBitor                    bitor;                      // json: "bitor"
-    UnionBool                     bool;                       // json: "BOOL"
-    TopLevelUnionBool             purple_bool;                // json: "bool"
-    UnionBoolean                  boolean;                    // json: "boolean"
-    UnionBreak                    top_level_break;            // json: "break"
-    UnionBycopy                   bycopy;                     // json: "bycopy"
-    UnionByref                    byref;                      // json: "byref"
-    UnionByte                     byte;                       // json: "byte"
-    UnionCase                     top_level_case;             // json: "case"
-    UnionCatch                    top_level_catch;            // json: "catch"
-    UnionChan                     chan;                       // json: "chan"
-    UnionChar                     char;                       // json: "char"
-    UnionChar16T                  char16_t;                   // json: "char16_t"
-    UnionChar32T                  char32_t;                   // json: "char32_t"
-    UnionChecked                  checked;                    // json: "checked"
-    UnionClassUnion               purple_class;               // json: "class"
-    UnionClass                    top_level_class;            // json: "Class"
-    UnionCoAwait                  co_await;                   // json: "co_await"
-    UnionCoReturn                 co_return;                  // json: "co_return"
-    UnionCoYield                  co_yield;                   // json: "co_yield"
-    UnionCompl                    compl;                      // json: "compl"
-    UnionConcept                  concept;                    // json: "concept"
-    UnionConsole                  console;                    // json: "console"
-    UnionConst                    top_level_const;            // json: "const"
-    UnionConstCast                const_cast;                 // json: "const_cast"
-    UnionConstexpr                constexpr;                  // json: "constexpr"
-    UnionConstructor              constructor;                // json: "constructor"
-    UnionContinue                 top_level_continue;         // json: "continue"
-    UnionConvenience              convenience;                // json: "convenience"
-    UnionConvert                  convert;                    // json: "convert"
-    UnionConverter                converter;                  // json: "converter"
-    UnionDate                     date;                       // json: "date"
-    UnionDateParseHandling        date_parse_handling;        // json: "date_parse_handling"
-    UnionDebugger                 debugger;                   // json: "debugger"
-    UnionDecimal                  decimal;                    // json: "decimal"
-    UnionDeclare                  declare;                    // json: "declare"
-    UnionDecltype                 decltype;                   // json: "decltype"
-    UnionDecodeString             decode_string;              // json: "decode_string"
-    UnionDef                      def;                        // json: "def"
-    UnionDefault                  top_level_default;          // json: "default"
-    UnionDefer                    defer;                      // json: "defer"
-    UnionDeinit                   deinit;                     // json: "deinit"
-    UnionDel                      del;                        // json: "del"
-    UnionDelegate                 delegate;                   // json: "delegate"
-    UnionDelete                   delete;                     // json: "delete"
-    UnionDict                     dict;                       // json: "dict"
-    UnionDictionary               dictionary;                 // json: "dictionary"
-    UnionDidSet                   did_set;                    // json: "didSet"
-    UnionDo                       top_level_do;               // json: "do"
-    UnionDouble                   double;                     // json: "double"
-    float|mixed                   dummy;                      // json: "dummy"
-    UnionDynamic                  dynamic;                    // json: "dynamic"
-    UnionDynamicCast              dynamic_cast;               // json: "dynamic_cast"
-    UnionElif                     elif;                       // json: "elif"
-    UnionElse                     top_level_else;             // json: "else"
-    UnionEncodeQuickType          encode_quick_type;          // json: "encode_quick_type"
-    UnionEnum                     top_level_enum;             // json: "enum"
-    UnionEvent                    event;                      // json: "event"
-    UnionExcept                   except;                     // json: "except"
-    UnionException                exception;                  // json: "exception"
-    UnionExplicit                 explicit;                   // json: "explicit"
-    UnionExport                   export;                     // json: "export"
-    UnionExposing                 exposing;                   // json: "exposing"
-    UnionExtends                  extends;                    // json: "extends"
-    UnionExtension                extension;                  // json: "extension"
-    UnionExtern                   top_level_extern;           // json: "extern"
-    UnionFallthrough              fallthrough;                // json: "fallthrough"
-    UnionFalseUnion               top_level_false;            // json: "false"
-    UnionFalse                    false;                      // json: "False"
-    UnionFileprivate              fileprivate;                // json: "fileprivate"
-    UnionFinal                    top_level_final;            // json: "final"
-    UnionFinally                  finally;                    // json: "finally"
-    UnionFixed                    fixed;                      // json: "fixed"
-    UnionFloat                    top_level_float;            // json: "float"
-    UnionFor                      top_level_for;              // json: "for"
-    UnionForeach                  top_level_foreach;          // json: "foreach"
-    UnionFriend                   friend;                     // json: "friend"
-    UnionFrom                     from;                       // json: "from"
-    UnionFromJson                 from_json;                  // json: "from_json"
-    UnionFunc                     func;                       // json: "func"
-    UnionFunction                 top_level_function;         // json: "function"
-    UnionGet                      get;                        // json: "get"
-    UnionGlobal                   top_level_global;           // json: "global"
-    UnionGo                       go;                         // json: "go"
-    UnionGoto                     goto;                       // json: "goto"
-    UnionGuard                    guard;                      // json: "guard"
-    UnionHasOwnProperty           has_own_property;           // json: "hasOwnProperty"
-    UnionId                       id;                         // json: "id"
-    UnionIf                       top_level_if;               // json: "if"
-    UnionImp                      imp;                        // json: "IMP"
-    UnionImplements               implements;                 // json: "implements"
-    UnionImplicit                 implicit;                   // json: "implicit"
-    UnionImport                   top_level_import;           // json: "import"
-    UnionIn                       in;                         // json: "in"
-    UnionIndirect                 indirect;                   // json: "indirect"
-    UnionInfix                    infix;                      // json: "infix"
-    UnionInit                     init;                       // json: "init"
-    UnionInline                   top_level_inline;           // json: "inline"
-    UnionInout                    inout;                      // json: "inout"
-    UnionInstanceof               instanceof;                 // json: "instanceof"
-    UnionInt                      top_level_int;              // json: "int"
-    UnionInterface                interface;                  // json: "interface"
-    UnionInternal                 internal;                   // json: "internal"
-    UnionIs                       is;                         // json: "is"
-    UnionIterable                 iterable;                   // json: "iterable"
-    UnionJdec                     jdec;                       // json: "jdec"
-    UnionJenc                     jenc;                       // json: "jenc"
-    UnionJpipe                    jpipe;                      // json: "jpipe"
-    UnionJson                     json;                       // json: "json"
-    UnionJsonConverter            json_converter;             // json: "json_converter"
-    UnionJsonSerializer           json_serializer;            // json: "json_serializer"
-    UnionJsonToken                json_token;                 // json: "json_token"
-    UnionJsonWriter               json_writer;                // json: "json_writer"
-    UnionLambda                   top_level_lambda;           // json: "lambda"
-    UnionLazy                     lazy;                       // json: "lazy"
-    UnionLeft                     left;                       // json: "left"
-    UnionLet                      let;                        // json: "let"
-    UnionList                     list;                       // json: "list"
-    UnionLock                     lock;                       // json: "lock"
-    UnionLong                     long;                       // json: "long"
-    UnionMap                      map;                        // json: "map"
-    UnionMetadataPropertyHandling metadata_property_handling; // json: "metadata_property_handling"
-    UnionModule                   module;                     // json: "module"
-    UnionMutable                  mutable;                    // json: "mutable"
-    UnionMutating                 mutating;                   // json: "mutating"
-    UnionNamespace                namespace;                  // json: "namespace"
-    UnionNative                   native;                     // json: "native"
-    UnionNew                      new;                        // json: "new"
-    UnionNewtonsoft               newtonsoft;                 // json: "newtonsoft"
-    UnionNil                      nil;                        // json: "nil"
-    UnionNo                       no;                         // json: "NO"
-    UnionNoexcept                 noexcept;                   // json: "noexcept"
-    UnionNonatomic                nonatomic;                  // json: "nonatomic"
-    UnionNoneUnion                top_level_none;             // json: "none"
-    UnionNone                     none;                       // json: "None"
-    UnionNonlocal                 nonlocal;                   // json: "nonlocal"
-    UnionNonmutating              nonmutating;                // json: "nonmutating"
-    UnionNot                      not;                        // json: "not"
-    UnionNotEq                    not_eq;                     // json: "not_eq"
-    UnionNsString                 ns_string;                  // json: "NSString"
-    UnionNull                     null;                       // json: "NULL"
-    UnionNullUnion                top_level_null;             // json: "null"
-    UnionNullptr                  nullptr;                    // json: "nullptr"
-    UnionNumber                   number;                     // json: "number"
-    UnionObject                   top_level_object;           // json: "object"
-    UnionOf                       of;                         // json: "of"
-    UnionOneway                   oneway;                     // json: "oneway"
-    UnionOpen                     open;                       // json: "open"
-    UnionOperator                 operator;                   // json: "operator"
-    UnionOptional                 top_level_optional;         // json: "optional"
-    UnionOr                       or;                         // json: "or"
-    UnionOrEq                     or_eq;                      // json: "or_eq"
-    UnionOut                      out;                        // json: "out"
-    UnionOverride                 override;                   // json: "override"
-    UnionPackage                  package;                    // json: "package"
-    UnionParams                   params;                     // json: "params"
-    UnionPass                     pass;                       // json: "pass"
-    UnionPort                     port;                       // json: "port"
-    UnionPostfix                  postfix;                    // json: "postfix"
-    UnionPrecedence               precedence;                 // json: "precedence"
-    UnionPrefix                   prefix;                     // json: "prefix"
-    UnionPrint                    print;                      // json: "print"
-    UnionPrintf                   printf;                     // json: "printf"
-    UnionPrivate                  top_level_private;          // json: "private"
-    UnionProtected                top_level_protected;        // json: "protected"
-    UnionProtocol                 protocol;                   // json: "Protocol"
-    UnionProtocolUnion            top_level_protocol;         // json: "protocol"
-    UnionPublic                   top_level_public;           // json: "public"
-    UnionQuicktype                quicktype;                  // json: "quicktype"
-    UnionRaise                    raise;                      // json: "raise"
-    UnionRange                    range;                      // json: "range"
-    UnionReadonly                 readonly;                   // json: "readonly"
-    UnionRef                      ref;                        // json: "ref"
-    UnionRegister                 register;                   // json: "register"
-    UnionReinterpretCast          reinterpret_cast;           // json: "reinterpret_cast"
-    UnionRepeat                   repeat;                     // json: "repeat"
-    UnionRequire                  require;                    // json: "require"
-    UnionRequired                 required;                   // json: "required"
-    UnionRequires                 requires;                   // json: "requires"
-    UnionRestrict                 restrict;                   // json: "restrict"
-    UnionRetain                   retain;                     // json: "retain"
-    UnionRethrows                 rethrows;                   // json: "rethrows"
-    UnionReturn                   top_level_return;           // json: "return"
-    UnionRight                    right;                      // json: "right"
-    UnionSbyte                    sbyte;                      // json: "sbyte"
-    UnionSealed                   sealed;                     // json: "sealed"
-    UnionSel                      sel;                        // json: "SEL"
-    UnionSelect                   select;                     // json: "select"
-    UnionSelf                     self;                       // json: "Self"
-    UnionSelfUnion                top_level_self;             // json: "self"
-    UnionSerialize                serialize;                  // json: "serialize"
-    UnionSet                      set;                        // json: "set"
-    UnionShort                    short;                      // json: "short"
-    UnionSigned                   signed;                     // json: "signed"
-    UnionSizeof                   sizeof;                     // json: "sizeof"
-    UnionStackalloc               stackalloc;                 // json: "stackalloc"
-    UnionStatic                   top_level_static;           // json: "static"
-    UnionStaticAssert             static_assert;              // json: "static_assert"
-    UnionStaticCast               static_cast;                // json: "static_cast"
-    UnionStrictfp                 strictfp;                   // json: "strictfp"
-    UnionString                   top_level_string;           // json: "string"
-    UnionStruct                   struct;                     // json: "struct"
-    UnionSubscript                subscript;                  // json: "subscript"
-    UnionSuper                    super;                      // json: "super"
-    UnionSwitch                   top_level_switch;           // json: "switch"
-    UnionSymbol                   symbol;                     // json: "symbol"
-    UnionSynchronized             synchronized;               // json: "synchronized"
-    UnionSystem                   system;                     // json: "system"
-    UnionTemplate                 template;                   // json: "template"
-    UnionThen                     then;                       // json: "then"
-    UnionThis                     this;                       // json: "this"
-    UnionThreadLocal              thread_local;               // json: "thread_local"
-    UnionThrow                    throw;                      // json: "throw"
-    UnionThrows                   throws;                     // json: "throws"
-    UnionToJson                   to_json;                    // json: "to_json"
-    UnionTopLevel                 top_level;                  // json: "top_level"
-    UnionTransient                transient;                  // json: "transient"
-    UnionTrue                     true;                       // json: "True"
-    UnionTrueUnion                top_level_true;             // json: "true"
-    UnionTry                      try;                        // json: "try"
-    UnionType                     type;                       // json: "Type"
-    UnionTypeUnion                top_level_type;             // json: "type"
-    UnionTypealias                typealias;                  // json: "typealias"
-    UnionTypedef                  top_level_typedef;          // json: "typedef"
-    UnionTypeid                   typeid;                     // json: "typeid"
-    UnionTypename                 typename;                   // json: "typename"
-    UnionTypeof                   top_level_typeof;           // json: "typeof"
-    UnionUint                     uint;                       // json: "uint"
-    UnionUlong                    ulong;                      // json: "ulong"
-    UnionUnchecked                unchecked;                  // json: "unchecked"
-    UnionUndefined                undefined;                  // json: "undefined"
-    UnionUnionUnion               union;                      // json: "union"
-    UnionUnowned                  unowned;                    // json: "unowned"
-    UnionUnsafe                   unsafe;                     // json: "unsafe"
-    UnionUnsigned                 unsigned;                   // json: "unsigned"
-    UnionUshort                   ushort;                     // json: "ushort"
-    UnionUsing                    using;                      // json: "using"
-    UnionVar                      var;                        // json: "var"
-    UnionVirtual                  virtual;                    // json: "virtual"
-    UnionVoid                     top_level_void;             // json: "void"
-    UnionVolatile                 volatile;                   // json: "volatile"
-    UnionWcharT                   wchar_t;                    // json: "wchar_t"
-    UnionWeak                     weak;                       // json: "weak"
-    UnionWhere                    where;                      // json: "where"
-    UnionWhile                    top_level_while;            // json: "while"
-    UnionWillSet                  will_set;                   // json: "willSet"
-    UnionWith                     with;                       // json: "with"
-    UnionXor                      xor;                        // json: "xor"
-    UnionXorEq                    xor_eq;                     // json: "xor_eq"
-    UnionYes                      yes;                        // json: "YES"
-    UnionYield                    yield;                      // json: "yield"
+    UnionUnion                      empty;                          // json: "_"
+    UnionBoolUnion                  top_level_bool;                 // json: "_Bool"
+    UnionComplex                    complex;                        // json: "_Complex"
+    UnionImaginery                  imaginery;                      // json: "_Imaginery"
+    UnionAbstract                   abstract;                       // json: "abstract"
+    UnionAlignas                    alignas;                        // json: "alignas"
+    UnionAlignof                    alignof;                        // json: "alignof"
+    UnionAnd                        and;                            // json: "and"
+    UnionAndEq                      and_eq;                         // json: "and_eq"
+    UnionAnyUnion                   top_level_any;                  // json: "any"
+    UnionAny                        any;                            // json: "Any"
+    UnionArray                      top_level_array;                // json: "array"
+    UnionAs                         as;                             // json: "as"
+    UnionAsm                        asm;                            // json: "asm"
+    UnionAssert                     assert;                         // json: "assert"
+    UnionAssociatedtype             associatedtype;                 // json: "associatedtype"
+    UnionAssociativity              associativity;                  // json: "associativity"
+    UnionAsync                      async;                          // json: "async"
+    UnionAtomic                     atomic;                         // json: "atomic"
+    UnionAtomicCancel               atomic_cancel;                  // json: "atomic_cancel"
+    UnionAtomicCommit               atomic_commit;                  // json: "atomic_commit"
+    UnionAtomicNoexcept             atomic_noexcept;                // json: "atomic_noexcept"
+    UnionAuto                       top_level_auto;                 // json: "auto"
+    UnionAwait                      await;                          // json: "await"
+    UnionBase                       base;                           // json: "base"
+    UnionBitand                     bitand;                         // json: "bitand"
+    UnionBitor                      bitor;                          // json: "bitor"
+    UnionBool                       bool;                           // json: "BOOL"
+    TopLevelUnionBool               purple_bool;                    // json: "bool"
+    UnionBoolean                    boolean;                        // json: "boolean"
+    UnionBreak                      top_level_break;                // json: "break"
+    UnionBycopy                     bycopy;                         // json: "bycopy"
+    UnionByref                      byref;                          // json: "byref"
+    UnionByte                       byte;                           // json: "byte"
+    UnionCase                       top_level_case;                 // json: "case"
+    UnionCatch                      top_level_catch;                // json: "catch"
+    UnionChan                       chan;                           // json: "chan"
+    UnionChar                       char;                           // json: "char"
+    UnionChar16T                    char16_t;                       // json: "char16_t"
+    UnionChar32T                    char32_t;                       // json: "char32_t"
+    UnionChecked                    checked;                        // json: "checked"
+    UnionClassUnion                 purple_class;                   // json: "class"
+    UnionClass                      top_level_class;                // json: "Class"
+    UnionClone                      clone;                          // json: "clone"
+    UnionCoAwait                    co_await;                       // json: "co_await"
+    UnionCoReturn                   co_return;                      // json: "co_return"
+    UnionCoYield                    co_yield;                       // json: "co_yield"
+    UnionCompl                      compl;                          // json: "compl"
+    UnionConcept                    concept;                        // json: "concept"
+    UnionConsole                    console;                        // json: "console"
+    UnionConst                      top_level_const;                // json: "const"
+    UnionConstCast                  const_cast;                     // json: "const_cast"
+    UnionConstexpr                  constexpr;                      // json: "constexpr"
+    UnionConstructor                constructor;                    // json: "constructor"
+    UnionContinue                   top_level_continue;             // json: "continue"
+    UnionConvenience                convenience;                    // json: "convenience"
+    UnionConvert                    convert;                        // json: "convert"
+    UnionConverter                  converter;                      // json: "converter"
+    UnionCultureInfo                culture_info;                   // json: "CultureInfo"
+    UnionDate                       date;                           // json: "date"
+    UnionDateParseHandling          date_parse_handling;            // json: "date_parse_handling"
+    UnionDateFormatter              date_formatter;                 // json: "DateFormatter"
+    UnionDateOnly                   date_only;                      // json: "DateOnly"
+    UnionDateOnlyConverter          date_only_converter;            // json: "DateOnlyConverter"
+    UnionDateTime                   date_time;                      // json: "DateTime"
+    UnionDateTimeStyles             date_time_styles;               // json: "DateTimeStyles"
+    UnionDebugger                   debugger;                       // json: "debugger"
+    UnionDecimal                    decimal;                        // json: "decimal"
+    UnionDeclare                    declare;                        // json: "declare"
+    UnionDecltype                   decltype;                       // json: "decltype"
+    UnionDecodeString               decode_string;                  // json: "decode_string"
+    UnionDef                        def;                            // json: "def"
+    UnionDefault                    top_level_default;              // json: "default"
+    UnionDefer                      defer;                          // json: "defer"
+    UnionDeinit                     deinit;                         // json: "deinit"
+    UnionDel                        del;                            // json: "del"
+    UnionDelegate                   delegate;                       // json: "delegate"
+    UnionDelete                     delete;                         // json: "delete"
+    UnionDict                       dict;                           // json: "dict"
+    UnionDictionary                 dictionary;                     // json: "dictionary"
+    UnionDidSet                     did_set;                        // json: "didSet"
+    UnionDo                         top_level_do;                   // json: "do"
+    UnionDouble                     double;                         // json: "double"
+    float|mixed                     dummy;                          // json: "dummy"
+    UnionDynamic                    dynamic;                        // json: "dynamic"
+    UnionDynamicCast                dynamic_cast;                   // json: "dynamic_cast"
+    UnionElif                       elif;                           // json: "elif"
+    UnionElse                       top_level_else;                 // json: "else"
+    UnionEncodeQuickType            encode_quick_type;              // json: "encode_quick_type"
+    UnionEnum                       top_level_enum;                 // json: "enum"
+    UnionEnumValues                 enum_values;                    // json: "EnumValues"
+    UnionEqualityContract           equality_contract;              // json: "equalityContract"
+    UnionEvent                      event;                          // json: "event"
+    UnionExcept                     except;                         // json: "except"
+    UnionException                  exception;                      // json: "exception"
+    UnionExplicit                   explicit;                       // json: "explicit"
+    UnionExport                     export;                         // json: "export"
+    UnionExposing                   exposing;                       // json: "exposing"
+    UnionExtends                    extends;                        // json: "extends"
+    UnionExtension                  extension;                      // json: "extension"
+    UnionExtern                     top_level_extern;               // json: "extern"
+    UnionFallthrough                fallthrough;                    // json: "fallthrough"
+    UnionFalseUnion                 top_level_false;                // json: "false"
+    UnionFalse                      false;                          // json: "False"
+    UnionFileprivate                fileprivate;                    // json: "fileprivate"
+    UnionFinal                      top_level_final;                // json: "final"
+    UnionFinally                    finally;                        // json: "finally"
+    UnionFixed                      fixed;                          // json: "fixed"
+    UnionFloat                      top_level_float;                // json: "float"
+    UnionFor                        top_level_for;                  // json: "for"
+    UnionForeach                    top_level_foreach;              // json: "foreach"
+    UnionFormatException            format_exception;               // json: "FormatException"
+    UnionFriend                     friend;                         // json: "friend"
+    UnionFrom                       from;                           // json: "from"
+    UnionFromJson                   from_json;                      // json: "from_json"
+    UnionFunc                       func;                           // json: "func"
+    UnionFunction                   top_level_function;             // json: "function"
+    UnionGet                        get;                            // json: "get"
+    UnionGlobal                     top_level_global;               // json: "global"
+    UnionGo                         go;                             // json: "go"
+    UnionGoto                       goto;                           // json: "goto"
+    UnionGuard                      guard;                          // json: "guard"
+    UnionHashCode                   hash_code;                      // json: "hashCode"
+    UnionHasOwnProperty             has_own_property;               // json: "hasOwnProperty"
+    UnionId                         id;                             // json: "id"
+    UnionIf                         top_level_if;                   // json: "if"
+    UnionImp                        imp;                            // json: "IMP"
+    UnionImplements                 implements;                     // json: "implements"
+    UnionImplicit                   implicit;                       // json: "implicit"
+    UnionImport                     top_level_import;               // json: "import"
+    UnionIn                         in;                             // json: "in"
+    UnionIndirect                   indirect;                       // json: "indirect"
+    UnionInfix                      infix;                          // json: "infix"
+    UnionInit                       init;                           // json: "init"
+    UnionInline                     top_level_inline;               // json: "inline"
+    UnionInout                      inout;                          // json: "inout"
+    UnionInstanceof                 instanceof;                     // json: "instanceof"
+    UnionInt                        top_level_int;                  // json: "int"
+    UnionInterface                  interface;                      // json: "interface"
+    UnionInternal                   internal;                       // json: "internal"
+    UnionIs                         is;                             // json: "is"
+    UnionIsoDateTimeOffsetConverter iso_date_time_offset_converter; // json: "IsoDateTimeOffsetConverter"
+    UnionIterable                   iterable;                       // json: "iterable"
+    UnionJdec                       jdec;                           // json: "jdec"
+    UnionJenc                       jenc;                           // json: "jenc"
+    UnionJpipe                      jpipe;                          // json: "jpipe"
+    UnionJson                       json;                           // json: "json"
+    UnionJsonConverter              json_converter;                 // json: "json_converter"
+    UnionJsonSerializer             json_serializer;                // json: "json_serializer"
+    UnionJsonToken                  json_token;                     // json: "json_token"
+    UnionJsonWriter                 json_writer;                    // json: "json_writer"
+    UnionJsonAny                    json_any;                       // json: "JSONAny"
+    UnionJsonCodingKey              json_coding_key;                // json: "JSONCodingKey"
+    UnionJsonDecoder                json_decoder;                   // json: "JSONDecoder"
+    UnionJsonEncoder                json_encoder;                   // json: "JSONEncoder"
+    UnionJsonException              json_exception;                 // json: "JsonException"
+    UnionJsonGenerator              json_generator;                 // json: "JsonGenerator"
+    UnionJsonNode                   json_node;                      // json: "JsonNode"
+    UnionJsonNull                   json_null;                      // json: "JSONNull"
+    UnionJsonParser                 json_parser;                    // json: "JsonParser"
+    UnionJsonReader                 json_reader;                    // json: "JsonReader"
+    UnionJsonTokenType              json_token_type;                // json: "JsonTokenType"
+    UnionLambda                     top_level_lambda;               // json: "lambda"
+    UnionLazy                       lazy;                           // json: "lazy"
+    UnionLeft                       left;                           // json: "left"
+    UnionLet                        let;                            // json: "let"
+    UnionList                       list;                           // json: "list"
+    UnionLock                       lock;                           // json: "lock"
+    UnionLong                       long;                           // json: "long"
+    UnionMap                        map;                            // json: "map"
+    UnionMetadataPropertyHandling   metadata_property_handling;     // json: "metadata_property_handling"
+    UnionModule                     module;                         // json: "module"
+    UnionMutable                    mutable;                        // json: "mutable"
+    UnionMutating                   mutating;                       // json: "mutating"
+    UnionNamespace                  namespace;                      // json: "namespace"
+    UnionNative                     native;                         // json: "native"
+    UnionNew                        new;                            // json: "new"
+    UnionNewtonsoft                 newtonsoft;                     // json: "newtonsoft"
+    UnionNil                        nil;                            // json: "nil"
+    UnionNo                         no;                             // json: "NO"
+    UnionNoexcept                   noexcept;                       // json: "noexcept"
+    UnionNonatomic                  nonatomic;                      // json: "nonatomic"
+    UnionNoneUnion                  top_level_none;                 // json: "none"
+    UnionNone                       none;                           // json: "None"
+    UnionNonlocal                   nonlocal;                       // json: "nonlocal"
+    UnionNonmutating                nonmutating;                    // json: "nonmutating"
+    UnionNoSuchMethod               no_such_method;                 // json: "noSuchMethod"
+    UnionNot                        not;                            // json: "not"
+    UnionNotEq                      not_eq;                         // json: "not_eq"
+    UnionNsError                    ns_error;                       // json: "NSError"
+    UnionNsString                   ns_string;                      // json: "NSString"
+    UnionNull                       null;                           // json: "NULL"
+    UnionNullUnion                  top_level_null;                 // json: "null"
+    UnionNullptr                    nullptr;                        // json: "nullptr"
+    UnionNumber                     number;                         // json: "number"
+    UnionObject                     top_level_object;               // json: "object"
+    UnionObjectMapper               object_mapper;                  // json: "ObjectMapper"
+    UnionOf                         of;                             // json: "of"
+    UnionOneway                     oneway;                         // json: "oneway"
+    UnionOpen                       open;                           // json: "open"
+    UnionOperator                   operator;                       // json: "operator"
+    UnionOptional                   top_level_optional;             // json: "optional"
+    UnionOr                         or;                             // json: "or"
+    UnionOrEq                       or_eq;                          // json: "or_eq"
+    UnionOut                        out;                            // json: "out"
+    UnionOverride                   override;                       // json: "override"
+    UnionPackage                    package;                        // json: "package"
+    UnionParams                     params;                         // json: "params"
+    UnionPass                       pass;                           // json: "pass"
+    UnionPort                       port;                           // json: "port"
+    UnionPostfix                    postfix;                        // json: "postfix"
+    UnionPrecedence                 precedence;                     // json: "precedence"
+    UnionPrefix                     prefix;                         // json: "prefix"
+    UnionPrint                      print;                          // json: "print"
+    UnionPrintf                     printf;                         // json: "printf"
+    UnionPrintMembers               print_members;                  // json: "printMembers"
+    UnionPrivate                    top_level_private;              // json: "private"
+    UnionProtected                  top_level_protected;            // json: "protected"
+    UnionProtocol                   protocol;                       // json: "Protocol"
+    UnionProtocolUnion              top_level_protocol;             // json: "protocol"
+    UnionPublic                     top_level_public;               // json: "public"
+    UnionQuicktype                  quicktype;                      // json: "quicktype"
+    UnionRaise                      raise;                          // json: "raise"
+    UnionRange                      range;                          // json: "range"
+    UnionReadonly                   readonly;                       // json: "readonly"
+    UnionRef                        ref;                            // json: "ref"
+    UnionRegExp                     reg_exp;                        // json: "RegExp"
+    UnionRegister                   register;                       // json: "register"
+    UnionReinterpretCast            reinterpret_cast;               // json: "reinterpret_cast"
+    UnionRepeat                     repeat;                         // json: "repeat"
+    UnionRequire                    require;                        // json: "require"
+    UnionRequired                   required;                       // json: "required"
+    UnionRequires                   requires;                       // json: "requires"
+    UnionRestrict                   restrict;                       // json: "restrict"
+    UnionRetain                     retain;                         // json: "retain"
+    UnionRethrows                   rethrows;                       // json: "rethrows"
+    UnionReturn                     top_level_return;               // json: "return"
+    UnionRight                      right;                          // json: "right"
+    UnionRuntimeType                runtime_type;                   // json: "runtimeType"
+    UnionS                          s;                              // json: "s"
+    UnionSbyte                      sbyte;                          // json: "sbyte"
+    UnionSealed                     sealed;                         // json: "sealed"
+    UnionSel                        sel;                            // json: "SEL"
+    UnionSelect                     select;                         // json: "select"
+    UnionSelf                       self;                           // json: "Self"
+    UnionSelfUnion                  top_level_self;                 // json: "self"
+    UnionSerialize                  serialize;                      // json: "serialize"
+    UnionSerializerProvider         serializer_provider;            // json: "SerializerProvider"
+    UnionSet                        set;                            // json: "set"
+    UnionShort                      short;                          // json: "short"
+    UnionSigned                     signed;                         // json: "signed"
+    UnionSimpleModule               simple_module;                  // json: "SimpleModule"
+    UnionSizeof                     sizeof;                         // json: "sizeof"
+    UnionStackalloc                 stackalloc;                     // json: "stackalloc"
+    UnionStandards                  standards;                      // json: "Standards"
+    UnionStatic                     top_level_static;               // json: "static"
+    UnionStaticAssert               static_assert;                  // json: "static_assert"
+    UnionStaticCast                 static_cast;                    // json: "static_cast"
+    UnionStdDeserializer            std_deserializer;               // json: "StdDeserializer"
+    UnionStdSerializer              std_serializer;                 // json: "StdSerializer"
+    UnionStrictfp                   strictfp;                       // json: "strictfp"
+    UnionString                     top_level_string;               // json: "string"
+    UnionStruct                     struct;                         // json: "struct"
+    UnionSubscript                  subscript;                      // json: "subscript"
+    UnionSuper                      super;                          // json: "super"
+    UnionSwitch                     top_level_switch;               // json: "switch"
+    UnionSymbol                     symbol;                         // json: "symbol"
+    UnionSynchronized               synchronized;                   // json: "synchronized"
+    UnionSystem                     system;                         // json: "system"
+    UnionTemplate                   template;                       // json: "template"
+    UnionThen                       then;                           // json: "then"
+    UnionThis                       this;                           // json: "this"
+    UnionThreadLocal                thread_local;                   // json: "thread_local"
+    UnionThrow                      throw;                          // json: "throw"
+    UnionThrows                     throws;                         // json: "throws"
+    UnionTimeOnly                   time_only;                      // json: "TimeOnly"
+    UnionTimeOnlyConverter          time_only_converter;            // json: "TimeOnlyConverter"
+    UnionToJson                     to_json;                        // json: "to_json"
+    UnionTopLevel                   top_level;                      // json: "top_level"
+    UnionToString                   to_string;                      // json: "toString"
+    UnionTransient                  transient;                      // json: "transient"
+    UnionTrue                       true;                           // json: "True"
+    UnionTrueUnion                  top_level_true;                 // json: "true"
+    UnionTry                        try;                            // json: "try"
+    UnionType                       type;                           // json: "Type"
+    UnionTypeUnion                  top_level_type;                 // json: "type"
+    UnionTypealias                  typealias;                      // json: "typealias"
+    UnionTypedef                    top_level_typedef;              // json: "typedef"
+    UnionTypeid                     typeid;                         // json: "typeid"
+    UnionTypename                   typename;                       // json: "typename"
+    UnionTypeof                     top_level_typeof;               // json: "typeof"
+    UnionUint                       uint;                           // json: "uint"
+    UnionUlong                      ulong;                          // json: "ulong"
+    UnionUnchecked                  unchecked;                      // json: "unchecked"
+    UnionUndefined                  undefined;                      // json: "undefined"
+    UnionUnionUnion                 union;                          // json: "union"
+    UnionUnowned                    unowned;                        // json: "unowned"
+    UnionUnsafe                     unsafe;                         // json: "unsafe"
+    UnionUnsigned                   unsigned;                       // json: "unsigned"
+    UnionUshort                     ushort;                         // json: "ushort"
+    UnionUsing                      using;                          // json: "using"
+    UnionUtf8JsonReader             utf8_json_reader;               // json: "Utf8JsonReader"
+    UnionUtf8JsonWriter             utf8_json_writer;               // json: "Utf8JsonWriter"
+    UnionUuid                       uuid;                           // json: "UUID"
+    UnionVar                        var;                            // json: "var"
+    UnionVirtual                    virtual;                        // json: "virtual"
+    UnionVoid                       top_level_void;                 // json: "void"
+    UnionVolatile                   volatile;                       // json: "volatile"
+    UnionWcharT                     wchar_t;                        // json: "wchar_t"
+    UnionWeak                       weak;                           // json: "weak"
+    UnionWhere                      where;                          // json: "where"
+    UnionWhile                      top_level_while;                // json: "while"
+    UnionWillSet                    will_set;                       // json: "willSet"
+    UnionWith                       with;                           // json: "with"
+    UnionXor                        xor;                            // json: "xor"
+    UnionXorEq                      xor_eq;                         // json: "xor_eq"
+    UnionYes                        yes;                            // json: "YES"
+    UnionYield                      yield;                          // json: "yield"
 
     string encode_json() {
         mapping(string:mixed) json = ([
@@ -336,6 +377,7 @@ class TopLevel {
             "checked" : checked,
             "class" : purple_class,
             "Class" : top_level_class,
+            "clone" : clone,
             "co_await" : co_await,
             "co_return" : co_return,
             "co_yield" : co_yield,
@@ -350,8 +392,14 @@ class TopLevel {
             "convenience" : convenience,
             "convert" : convert,
             "converter" : converter,
+            "CultureInfo" : culture_info,
             "date" : date,
             "date_parse_handling" : date_parse_handling,
+            "DateFormatter" : date_formatter,
+            "DateOnly" : date_only,
+            "DateOnlyConverter" : date_only_converter,
+            "DateTime" : date_time,
+            "DateTimeStyles" : date_time_styles,
             "debugger" : debugger,
             "decimal" : decimal,
             "declare" : declare,
@@ -376,6 +424,8 @@ class TopLevel {
             "else" : top_level_else,
             "encode_quick_type" : encode_quick_type,
             "enum" : top_level_enum,
+            "EnumValues" : enum_values,
+            "equalityContract" : equality_contract,
             "event" : event,
             "except" : except,
             "exception" : exception,
@@ -395,6 +445,7 @@ class TopLevel {
             "float" : top_level_float,
             "for" : top_level_for,
             "foreach" : top_level_foreach,
+            "FormatException" : format_exception,
             "friend" : friend,
             "from" : from,
             "from_json" : from_json,
@@ -405,6 +456,7 @@ class TopLevel {
             "go" : go,
             "goto" : goto,
             "guard" : guard,
+            "hashCode" : hash_code,
             "hasOwnProperty" : has_own_property,
             "id" : id,
             "if" : top_level_if,
@@ -423,6 +475,7 @@ class TopLevel {
             "interface" : interface,
             "internal" : internal,
             "is" : is,
+            "IsoDateTimeOffsetConverter" : iso_date_time_offset_converter,
             "iterable" : iterable,
             "jdec" : jdec,
             "jenc" : jenc,
@@ -432,6 +485,17 @@ class TopLevel {
             "json_serializer" : json_serializer,
             "json_token" : json_token,
             "json_writer" : json_writer,
+            "JSONAny" : json_any,
+            "JSONCodingKey" : json_coding_key,
+            "JSONDecoder" : json_decoder,
+            "JSONEncoder" : json_encoder,
+            "JsonException" : json_exception,
+            "JsonGenerator" : json_generator,
+            "JsonNode" : json_node,
+            "JSONNull" : json_null,
+            "JsonParser" : json_parser,
+            "JsonReader" : json_reader,
+            "JsonTokenType" : json_token_type,
             "lambda" : top_level_lambda,
             "lazy" : lazy,
             "left" : left,
@@ -456,14 +520,17 @@ class TopLevel {
             "None" : none,
             "nonlocal" : nonlocal,
             "nonmutating" : nonmutating,
+            "noSuchMethod" : no_such_method,
             "not" : not,
             "not_eq" : not_eq,
+            "NSError" : ns_error,
             "NSString" : ns_string,
             "NULL" : null,
             "null" : top_level_null,
             "nullptr" : nullptr,
             "number" : number,
             "object" : top_level_object,
+            "ObjectMapper" : object_mapper,
             "of" : of,
             "oneway" : oneway,
             "open" : open,
@@ -482,6 +549,7 @@ class TopLevel {
             "prefix" : prefix,
             "print" : print,
             "printf" : printf,
+            "printMembers" : print_members,
             "private" : top_level_private,
             "protected" : top_level_protected,
             "Protocol" : protocol,
@@ -492,6 +560,7 @@ class TopLevel {
             "range" : range,
             "readonly" : readonly,
             "ref" : ref,
+            "RegExp" : reg_exp,
             "register" : register,
             "reinterpret_cast" : reinterpret_cast,
             "repeat" : repeat,
@@ -503,6 +572,8 @@ class TopLevel {
             "rethrows" : rethrows,
             "return" : top_level_return,
             "right" : right,
+            "runtimeType" : runtime_type,
+            "s" : s,
             "sbyte" : sbyte,
             "sealed" : sealed,
             "SEL" : sel,
@@ -510,14 +581,19 @@ class TopLevel {
             "Self" : self,
             "self" : top_level_self,
             "serialize" : serialize,
+            "SerializerProvider" : serializer_provider,
             "set" : set,
             "short" : short,
             "signed" : signed,
+            "SimpleModule" : simple_module,
             "sizeof" : sizeof,
             "stackalloc" : stackalloc,
+            "Standards" : standards,
             "static" : top_level_static,
             "static_assert" : static_assert,
             "static_cast" : static_cast,
+            "StdDeserializer" : std_deserializer,
+            "StdSerializer" : std_serializer,
             "strictfp" : strictfp,
             "string" : top_level_string,
             "struct" : struct,
@@ -533,8 +609,11 @@ class TopLevel {
             "thread_local" : thread_local,
             "throw" : throw,
             "throws" : throws,
+            "TimeOnly" : time_only,
+            "TimeOnlyConverter" : time_only_converter,
             "to_json" : to_json,
             "top_level" : top_level,
+            "toString" : to_string,
             "transient" : transient,
             "True" : true,
             "true" : top_level_true,
@@ -556,6 +635,9 @@ class TopLevel {
             "unsigned" : unsigned,
             "ushort" : ushort,
             "using" : using,
+            "Utf8JsonReader" : utf8_json_reader,
+            "Utf8JsonWriter" : utf8_json_writer,
+            "UUID" : uuid,
             "var" : var,
             "virtual" : virtual,
             "void" : top_level_void,
@@ -665,6 +747,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.purple_class = json["class"];
     if (arrayp(json["Class"])) error("Unexpected array");
     retval.top_level_class = json["Class"];
+    if (arrayp(json["clone"])) error("Unexpected array");
+    retval.clone = json["clone"];
     if (arrayp(json["co_await"])) error("Unexpected array");
     retval.co_await = json["co_await"];
     if (arrayp(json["co_return"])) error("Unexpected array");
@@ -693,10 +777,22 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.convert = json["convert"];
     if (arrayp(json["converter"])) error("Unexpected array");
     retval.converter = json["converter"];
+    if (arrayp(json["CultureInfo"])) error("Unexpected array");
+    retval.culture_info = json["CultureInfo"];
     if (arrayp(json["date"])) error("Unexpected array");
     retval.date = json["date"];
     if (arrayp(json["date_parse_handling"])) error("Unexpected array");
     retval.date_parse_handling = json["date_parse_handling"];
+    if (arrayp(json["DateFormatter"])) error("Unexpected array");
+    retval.date_formatter = json["DateFormatter"];
+    if (arrayp(json["DateOnly"])) error("Unexpected array");
+    retval.date_only = json["DateOnly"];
+    if (arrayp(json["DateOnlyConverter"])) error("Unexpected array");
+    retval.date_only_converter = json["DateOnlyConverter"];
+    if (arrayp(json["DateTime"])) error("Unexpected array");
+    retval.date_time = json["DateTime"];
+    if (arrayp(json["DateTimeStyles"])) error("Unexpected array");
+    retval.date_time_styles = json["DateTimeStyles"];
     if (arrayp(json["debugger"])) error("Unexpected array");
     retval.debugger = json["debugger"];
     if (arrayp(json["decimal"])) error("Unexpected array");
@@ -744,6 +840,10 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.encode_quick_type = json["encode_quick_type"];
     if (arrayp(json["enum"])) error("Unexpected array");
     retval.top_level_enum = json["enum"];
+    if (arrayp(json["EnumValues"])) error("Unexpected array");
+    retval.enum_values = json["EnumValues"];
+    if (arrayp(json["equalityContract"])) error("Unexpected array");
+    retval.equality_contract = json["equalityContract"];
     if (arrayp(json["event"])) error("Unexpected array");
     retval.event = json["event"];
     if (arrayp(json["except"])) error("Unexpected array");
@@ -782,6 +882,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.top_level_for = json["for"];
     if (arrayp(json["foreach"])) error("Unexpected array");
     retval.top_level_foreach = json["foreach"];
+    if (arrayp(json["FormatException"])) error("Unexpected array");
+    retval.format_exception = json["FormatException"];
     if (arrayp(json["friend"])) error("Unexpected array");
     retval.friend = json["friend"];
     if (arrayp(json["from"])) error("Unexpected array");
@@ -802,6 +904,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.goto = json["goto"];
     if (arrayp(json["guard"])) error("Unexpected array");
     retval.guard = json["guard"];
+    if (arrayp(json["hashCode"])) error("Unexpected array");
+    retval.hash_code = json["hashCode"];
     if (arrayp(json["hasOwnProperty"])) error("Unexpected array");
     retval.has_own_property = json["hasOwnProperty"];
     if (arrayp(json["id"])) error("Unexpected array");
@@ -838,6 +942,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.internal = json["internal"];
     if (arrayp(json["is"])) error("Unexpected array");
     retval.is = json["is"];
+    if (arrayp(json["IsoDateTimeOffsetConverter"])) error("Unexpected array");
+    retval.iso_date_time_offset_converter = json["IsoDateTimeOffsetConverter"];
     if (arrayp(json["iterable"])) error("Unexpected array");
     retval.iterable = json["iterable"];
     if (arrayp(json["jdec"])) error("Unexpected array");
@@ -856,6 +962,28 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.json_token = json["json_token"];
     if (arrayp(json["json_writer"])) error("Unexpected array");
     retval.json_writer = json["json_writer"];
+    if (arrayp(json["JSONAny"])) error("Unexpected array");
+    retval.json_any = json["JSONAny"];
+    if (arrayp(json["JSONCodingKey"])) error("Unexpected array");
+    retval.json_coding_key = json["JSONCodingKey"];
+    if (arrayp(json["JSONDecoder"])) error("Unexpected array");
+    retval.json_decoder = json["JSONDecoder"];
+    if (arrayp(json["JSONEncoder"])) error("Unexpected array");
+    retval.json_encoder = json["JSONEncoder"];
+    if (arrayp(json["JsonException"])) error("Unexpected array");
+    retval.json_exception = json["JsonException"];
+    if (arrayp(json["JsonGenerator"])) error("Unexpected array");
+    retval.json_generator = json["JsonGenerator"];
+    if (arrayp(json["JsonNode"])) error("Unexpected array");
+    retval.json_node = json["JsonNode"];
+    if (arrayp(json["JSONNull"])) error("Unexpected array");
+    retval.json_null = json["JSONNull"];
+    if (arrayp(json["JsonParser"])) error("Unexpected array");
+    retval.json_parser = json["JsonParser"];
+    if (arrayp(json["JsonReader"])) error("Unexpected array");
+    retval.json_reader = json["JsonReader"];
+    if (arrayp(json["JsonTokenType"])) error("Unexpected array");
+    retval.json_token_type = json["JsonTokenType"];
     if (arrayp(json["lambda"])) error("Unexpected array");
     retval.top_level_lambda = json["lambda"];
     if (arrayp(json["lazy"])) error("Unexpected array");
@@ -904,10 +1032,14 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.nonlocal = json["nonlocal"];
     if (arrayp(json["nonmutating"])) error("Unexpected array");
     retval.nonmutating = json["nonmutating"];
+    if (arrayp(json["noSuchMethod"])) error("Unexpected array");
+    retval.no_such_method = json["noSuchMethod"];
     if (arrayp(json["not"])) error("Unexpected array");
     retval.not = json["not"];
     if (arrayp(json["not_eq"])) error("Unexpected array");
     retval.not_eq = json["not_eq"];
+    if (arrayp(json["NSError"])) error("Unexpected array");
+    retval.ns_error = json["NSError"];
     if (arrayp(json["NSString"])) error("Unexpected array");
     retval.ns_string = json["NSString"];
     if (arrayp(json["NULL"])) error("Unexpected array");
@@ -920,6 +1052,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.number = json["number"];
     if (arrayp(json["object"])) error("Unexpected array");
     retval.top_level_object = json["object"];
+    if (arrayp(json["ObjectMapper"])) error("Unexpected array");
+    retval.object_mapper = json["ObjectMapper"];
     if (arrayp(json["of"])) error("Unexpected array");
     retval.of = json["of"];
     if (arrayp(json["oneway"])) error("Unexpected array");
@@ -956,6 +1090,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.print = json["print"];
     if (arrayp(json["printf"])) error("Unexpected array");
     retval.printf = json["printf"];
+    if (arrayp(json["printMembers"])) error("Unexpected array");
+    retval.print_members = json["printMembers"];
     if (arrayp(json["private"])) error("Unexpected array");
     retval.top_level_private = json["private"];
     if (arrayp(json["protected"])) error("Unexpected array");
@@ -976,6 +1112,8 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.readonly = json["readonly"];
     if (arrayp(json["ref"])) error("Unexpected array");
     retval.ref = json["ref"];
+    if (arrayp(json["RegExp"])) error("Unexpected array");
+    retval.reg_exp = json["RegExp"];
     if (arrayp(json["register"])) error("Unexpected array");
     retval.register = json["register"];
     if (arrayp(json["reinterpret_cast"])) error("Unexpected array");
@@ -998,6 +1136,10 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.top_level_return = json["return"];
     if (arrayp(json["right"])) error("Unexpected array");
     retval.right = json["right"];
+    if (arrayp(json["runtimeType"])) error("Unexpected array");
+    retval.runtime_type = json["runtimeType"];
+    if (arrayp(json["s"])) error("Unexpected array");
+    retval.s = json["s"];
     if (arrayp(json["sbyte"])) error("Unexpected array");
     retval.sbyte = json["sbyte"];
     if (arrayp(json["sealed"])) error("Unexpected array");
@@ -1012,22 +1154,32 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.top_level_self = json["self"];
     if (arrayp(json["serialize"])) error("Unexpected array");
     retval.serialize = json["serialize"];
+    if (arrayp(json["SerializerProvider"])) error("Unexpected array");
+    retval.serializer_provider = json["SerializerProvider"];
     if (arrayp(json["set"])) error("Unexpected array");
     retval.set = json["set"];
     if (arrayp(json["short"])) error("Unexpected array");
     retval.short = json["short"];
     if (arrayp(json["signed"])) error("Unexpected array");
     retval.signed = json["signed"];
+    if (arrayp(json["SimpleModule"])) error("Unexpected array");
+    retval.simple_module = json["SimpleModule"];
     if (arrayp(json["sizeof"])) error("Unexpected array");
     retval.sizeof = json["sizeof"];
     if (arrayp(json["stackalloc"])) error("Unexpected array");
     retval.stackalloc = json["stackalloc"];
+    if (arrayp(json["Standards"])) error("Unexpected array");
+    retval.standards = json["Standards"];
     if (arrayp(json["static"])) error("Unexpected array");
     retval.top_level_static = json["static"];
     if (arrayp(json["static_assert"])) error("Unexpected array");
     retval.static_assert = json["static_assert"];
     if (arrayp(json["static_cast"])) error("Unexpected array");
     retval.static_cast = json["static_cast"];
+    if (arrayp(json["StdDeserializer"])) error("Unexpected array");
+    retval.std_deserializer = json["StdDeserializer"];
+    if (arrayp(json["StdSerializer"])) error("Unexpected array");
+    retval.std_serializer = json["StdSerializer"];
     if (arrayp(json["strictfp"])) error("Unexpected array");
     retval.strictfp = json["strictfp"];
     if (arrayp(json["string"])) error("Unexpected array");
@@ -1058,10 +1210,16 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.throw = json["throw"];
     if (arrayp(json["throws"])) error("Unexpected array");
     retval.throws = json["throws"];
+    if (arrayp(json["TimeOnly"])) error("Unexpected array");
+    retval.time_only = json["TimeOnly"];
+    if (arrayp(json["TimeOnlyConverter"])) error("Unexpected array");
+    retval.time_only_converter = json["TimeOnlyConverter"];
     if (arrayp(json["to_json"])) error("Unexpected array");
     retval.to_json = json["to_json"];
     if (arrayp(json["top_level"])) error("Unexpected array");
     retval.top_level = json["top_level"];
+    if (arrayp(json["toString"])) error("Unexpected array");
+    retval.to_string = json["toString"];
     if (arrayp(json["transient"])) error("Unexpected array");
     retval.transient = json["transient"];
     if (arrayp(json["True"])) error("Unexpected array");
@@ -1104,6 +1262,12 @@ TopLevel TopLevel_from_JSON(mixed json) {
     retval.ushort = json["ushort"];
     if (arrayp(json["using"])) error("Unexpected array");
     retval.using = json["using"];
+    if (arrayp(json["Utf8JsonReader"])) error("Unexpected array");
+    retval.utf8_json_reader = json["Utf8JsonReader"];
+    if (arrayp(json["Utf8JsonWriter"])) error("Unexpected array");
+    retval.utf8_json_writer = json["Utf8JsonWriter"];
+    if (arrayp(json["UUID"])) error("Unexpected array");
+    retval.uuid = json["UUID"];
     if (arrayp(json["var"])) error("Unexpected array");
     retval.var = json["var"];
     if (arrayp(json["virtual"])) error("Unexpected array");
@@ -1796,6 +1960,28 @@ Checked Checked_from_JSON(mixed json) {
     return retval;
 }
 
+typedef Clone|float UnionClone;
+
+UnionClone UnionClone_from_JSON(mixed json) {
+    return json;
+}
+
+class Clone {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Clone Clone_from_JSON(mixed json) {
+    Clone retval = Clone();
+
+    return retval;
+}
+
 typedef CoAwait|float UnionCoAwait;
 
 UnionCoAwait UnionCoAwait_from_JSON(mixed json) {
@@ -2082,6 +2268,28 @@ Converter Converter_from_JSON(mixed json) {
     return retval;
 }
 
+typedef CultureInfo|float UnionCultureInfo;
+
+UnionCultureInfo UnionCultureInfo_from_JSON(mixed json) {
+    return json;
+}
+
+class CultureInfo {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+CultureInfo CultureInfo_from_JSON(mixed json) {
+    CultureInfo retval = CultureInfo();
+
+    return retval;
+}
+
 typedef Date|float UnionDate;
 
 UnionDate UnionDate_from_JSON(mixed json) {
@@ -2104,6 +2312,72 @@ Date Date_from_JSON(mixed json) {
     return retval;
 }
 
+typedef DateFormatter|float UnionDateFormatter;
+
+UnionDateFormatter UnionDateFormatter_from_JSON(mixed json) {
+    return json;
+}
+
+class DateFormatter {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DateFormatter DateFormatter_from_JSON(mixed json) {
+    DateFormatter retval = DateFormatter();
+
+    return retval;
+}
+
+typedef DateOnly|float UnionDateOnly;
+
+UnionDateOnly UnionDateOnly_from_JSON(mixed json) {
+    return json;
+}
+
+class DateOnly {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DateOnly DateOnly_from_JSON(mixed json) {
+    DateOnly retval = DateOnly();
+
+    return retval;
+}
+
+typedef DateOnlyConverter|float UnionDateOnlyConverter;
+
+UnionDateOnlyConverter UnionDateOnlyConverter_from_JSON(mixed json) {
+    return json;
+}
+
+class DateOnlyConverter {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DateOnlyConverter DateOnlyConverter_from_JSON(mixed json) {
+    DateOnlyConverter retval = DateOnlyConverter();
+
+    return retval;
+}
+
 typedef DateParseHandling|float UnionDateParseHandling;
 
 UnionDateParseHandling UnionDateParseHandling_from_JSON(mixed json) {
@@ -2126,6 +2400,50 @@ DateParseHandling DateParseHandling_from_JSON(mixed json) {
     return retval;
 }
 
+typedef DateTime|float UnionDateTime;
+
+UnionDateTime UnionDateTime_from_JSON(mixed json) {
+    return json;
+}
+
+class DateTime {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DateTime DateTime_from_JSON(mixed json) {
+    DateTime retval = DateTime();
+
+    return retval;
+}
+
+typedef DateTimeStyles|float UnionDateTimeStyles;
+
+UnionDateTimeStyles UnionDateTimeStyles_from_JSON(mixed json) {
+    return json;
+}
+
+class DateTimeStyles {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+DateTimeStyles DateTimeStyles_from_JSON(mixed json) {
+    DateTimeStyles retval = DateTimeStyles();
+
+    return retval;
+}
+
 typedef Debugger|float UnionDebugger;
 
 UnionDebugger UnionDebugger_from_JSON(mixed json) {
@@ -2566,6 +2884,50 @@ EncodeQuickType EncodeQuickType_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|EnumValues UnionEnumValues;
+
+UnionEnumValues UnionEnumValues_from_JSON(mixed json) {
+    return json;
+}
+
+class EnumValues {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+EnumValues EnumValues_from_JSON(mixed json) {
+    EnumValues retval = EnumValues();
+
+    return retval;
+}
+
+typedef float|EqualityContract UnionEqualityContract;
+
+UnionEqualityContract UnionEqualityContract_from_JSON(mixed json) {
+    return json;
+}
+
+class EqualityContract {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+EqualityContract EqualityContract_from_JSON(mixed json) {
+    EqualityContract retval = EqualityContract();
+
+    return retval;
+}
+
 typedef float|Event UnionEvent;
 
 UnionEvent UnionEvent_from_JSON(mixed json) {
@@ -2852,6 +3214,28 @@ Fixed Fixed_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|FormatException UnionFormatException;
+
+UnionFormatException UnionFormatException_from_JSON(mixed json) {
+    return json;
+}
+
+class FormatException {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+FormatException FormatException_from_JSON(mixed json) {
+    FormatException retval = FormatException();
+
+    return retval;
+}
+
 typedef float|Friend UnionFriend;
 
 UnionFriend UnionFriend_from_JSON(mixed json) {
@@ -3050,6 +3434,28 @@ HasOwnProperty HasOwnProperty_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|HashCode UnionHashCode;
+
+UnionHashCode UnionHashCode_from_JSON(mixed json) {
+    return json;
+}
+
+class HashCode {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+HashCode HashCode_from_JSON(mixed json) {
+    HashCode retval = HashCode();
+
+    return retval;
+}
+
 typedef float|Id UnionId;
 
 UnionId UnionId_from_JSON(mixed json) {
@@ -3358,6 +3764,28 @@ Is Is_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|IsoDateTimeOffsetConverter UnionIsoDateTimeOffsetConverter;
+
+UnionIsoDateTimeOffsetConverter UnionIsoDateTimeOffsetConverter_from_JSON(mixed json) {
+    return json;
+}
+
+class IsoDateTimeOffsetConverter {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+IsoDateTimeOffsetConverter IsoDateTimeOffsetConverter_from_JSON(mixed json) {
+    IsoDateTimeOffsetConverter retval = IsoDateTimeOffsetConverter();
+
+    return retval;
+}
+
 typedef float|Iterable UnionIterable;
 
 UnionIterable UnionIterable_from_JSON(mixed json) {
@@ -3468,6 +3896,50 @@ Json Json_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|JsonAny UnionJsonAny;
+
+UnionJsonAny UnionJsonAny_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonAny {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonAny JsonAny_from_JSON(mixed json) {
+    JsonAny retval = JsonAny();
+
+    return retval;
+}
+
+typedef float|JsonCodingKey UnionJsonCodingKey;
+
+UnionJsonCodingKey UnionJsonCodingKey_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonCodingKey {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonCodingKey JsonCodingKey_from_JSON(mixed json) {
+    JsonCodingKey retval = JsonCodingKey();
+
+    return retval;
+}
+
 typedef float|JsonConverter UnionJsonConverter;
 
 UnionJsonConverter UnionJsonConverter_from_JSON(mixed json) {
@@ -3490,6 +3962,182 @@ JsonConverter JsonConverter_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|JsonDecoder UnionJsonDecoder;
+
+UnionJsonDecoder UnionJsonDecoder_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonDecoder {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonDecoder JsonDecoder_from_JSON(mixed json) {
+    JsonDecoder retval = JsonDecoder();
+
+    return retval;
+}
+
+typedef float|JsonEncoder UnionJsonEncoder;
+
+UnionJsonEncoder UnionJsonEncoder_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonEncoder {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonEncoder JsonEncoder_from_JSON(mixed json) {
+    JsonEncoder retval = JsonEncoder();
+
+    return retval;
+}
+
+typedef float|JsonException UnionJsonException;
+
+UnionJsonException UnionJsonException_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonException {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonException JsonException_from_JSON(mixed json) {
+    JsonException retval = JsonException();
+
+    return retval;
+}
+
+typedef float|JsonGenerator UnionJsonGenerator;
+
+UnionJsonGenerator UnionJsonGenerator_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonGenerator {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonGenerator JsonGenerator_from_JSON(mixed json) {
+    JsonGenerator retval = JsonGenerator();
+
+    return retval;
+}
+
+typedef float|JsonNode UnionJsonNode;
+
+UnionJsonNode UnionJsonNode_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonNode {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonNode JsonNode_from_JSON(mixed json) {
+    JsonNode retval = JsonNode();
+
+    return retval;
+}
+
+typedef float|JsonNull UnionJsonNull;
+
+UnionJsonNull UnionJsonNull_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonNull {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonNull JsonNull_from_JSON(mixed json) {
+    JsonNull retval = JsonNull();
+
+    return retval;
+}
+
+typedef float|JsonParser UnionJsonParser;
+
+UnionJsonParser UnionJsonParser_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonParser {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonParser JsonParser_from_JSON(mixed json) {
+    JsonParser retval = JsonParser();
+
+    return retval;
+}
+
+typedef float|JsonReader UnionJsonReader;
+
+UnionJsonReader UnionJsonReader_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonReader {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonReader JsonReader_from_JSON(mixed json) {
+    JsonReader retval = JsonReader();
+
+    return retval;
+}
+
 typedef float|JsonSerializer UnionJsonSerializer;
 
 UnionJsonSerializer UnionJsonSerializer_from_JSON(mixed json) {
@@ -3534,6 +4182,28 @@ JsonToken JsonToken_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|JsonTokenType UnionJsonTokenType;
+
+UnionJsonTokenType UnionJsonTokenType_from_JSON(mixed json) {
+    return json;
+}
+
+class JsonTokenType {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+JsonTokenType JsonTokenType_from_JSON(mixed json) {
+    JsonTokenType retval = JsonTokenType();
+
+    return retval;
+}
+
 typedef float|JsonWriter UnionJsonWriter;
 
 UnionJsonWriter UnionJsonWriter_from_JSON(mixed json) {
@@ -3930,6 +4600,28 @@ No No_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|NoSuchMethod UnionNoSuchMethod;
+
+UnionNoSuchMethod UnionNoSuchMethod_from_JSON(mixed json) {
+    return json;
+}
+
+class NoSuchMethod {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+NoSuchMethod NoSuchMethod_from_JSON(mixed json) {
+    NoSuchMethod retval = NoSuchMethod();
+
+    return retval;
+}
+
 typedef float|Noexcept UnionNoexcept;
 
 UnionNoexcept UnionNoexcept_from_JSON(mixed json) {
@@ -4084,6 +4776,28 @@ NotEq NotEq_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|NsError UnionNsError;
+
+UnionNsError UnionNsError_from_JSON(mixed json) {
+    return json;
+}
+
+class NsError {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+NsError NsError_from_JSON(mixed json) {
+    NsError retval = NsError();
+
+    return retval;
+}
+
 typedef float|NsString UnionNsString;
 
 UnionNsString UnionNsString_from_JSON(mixed json) {
@@ -4172,6 +4886,28 @@ Number Number_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|ObjectMapper UnionObjectMapper;
+
+UnionObjectMapper UnionObjectMapper_from_JSON(mixed json) {
+    return json;
+}
+
+class ObjectMapper {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+ObjectMapper ObjectMapper_from_JSON(mixed json) {
+    ObjectMapper retval = ObjectMapper();
+
+    return retval;
+}
+
 typedef float|Of UnionOf;
 
 UnionOf UnionOf_from_JSON(mixed json) {
@@ -4524,6 +5260,28 @@ Print Print_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|PrintMembers UnionPrintMembers;
+
+UnionPrintMembers UnionPrintMembers_from_JSON(mixed json) {
+    return json;
+}
+
+class PrintMembers {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+PrintMembers PrintMembers_from_JSON(mixed json) {
+    PrintMembers retval = PrintMembers();
+
+    return retval;
+}
+
 typedef float|Printf UnionPrintf;
 
 UnionPrintf UnionPrintf_from_JSON(mixed json) {
@@ -4722,6 +5480,28 @@ Ref Ref_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|RegExp UnionRegExp;
+
+UnionRegExp UnionRegExp_from_JSON(mixed json) {
+    return json;
+}
+
+class RegExp {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+RegExp RegExp_from_JSON(mixed json) {
+    RegExp retval = RegExp();
+
+    return retval;
+}
+
 typedef float|Register UnionRegister;
 
 UnionRegister UnionRegister_from_JSON(mixed json) {
@@ -4942,6 +5722,50 @@ Right Right_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|RuntimeType UnionRuntimeType;
+
+UnionRuntimeType UnionRuntimeType_from_JSON(mixed json) {
+    return json;
+}
+
+class RuntimeType {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+RuntimeType RuntimeType_from_JSON(mixed json) {
+    RuntimeType retval = RuntimeType();
+
+    return retval;
+}
+
+typedef float|S UnionS;
+
+UnionS UnionS_from_JSON(mixed json) {
+    return json;
+}
+
+class S {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+S S_from_JSON(mixed json) {
+    S retval = S();
+
+    return retval;
+}
+
 typedef float|Sbyte UnionSbyte;
 
 UnionSbyte UnionSbyte_from_JSON(mixed json) {
@@ -5074,6 +5898,28 @@ Serialize Serialize_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|SerializerProvider UnionSerializerProvider;
+
+UnionSerializerProvider UnionSerializerProvider_from_JSON(mixed json) {
+    return json;
+}
+
+class SerializerProvider {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+SerializerProvider SerializerProvider_from_JSON(mixed json) {
+    SerializerProvider retval = SerializerProvider();
+
+    return retval;
+}
+
 typedef float|Set UnionSet;
 
 UnionSet UnionSet_from_JSON(mixed json) {
@@ -5140,6 +5986,28 @@ Signed Signed_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|SimpleModule UnionSimpleModule;
+
+UnionSimpleModule UnionSimpleModule_from_JSON(mixed json) {
+    return json;
+}
+
+class SimpleModule {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+SimpleModule SimpleModule_from_JSON(mixed json) {
+    SimpleModule retval = SimpleModule();
+
+    return retval;
+}
+
 typedef float|Sizeof UnionSizeof;
 
 UnionSizeof UnionSizeof_from_JSON(mixed json) {
@@ -5184,6 +6052,28 @@ Stackalloc Stackalloc_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|StandardsClass UnionStandards;
+
+UnionStandards UnionStandards_from_JSON(mixed json) {
+    return json;
+}
+
+class StandardsClass {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+StandardsClass StandardsClass_from_JSON(mixed json) {
+    StandardsClass retval = StandardsClass();
+
+    return retval;
+}
+
 typedef float|StaticAssert UnionStaticAssert;
 
 UnionStaticAssert UnionStaticAssert_from_JSON(mixed json) {
@@ -5228,6 +6118,50 @@ StaticCast StaticCast_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|StdDeserializer UnionStdDeserializer;
+
+UnionStdDeserializer UnionStdDeserializer_from_JSON(mixed json) {
+    return json;
+}
+
+class StdDeserializer {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+StdDeserializer StdDeserializer_from_JSON(mixed json) {
+    StdDeserializer retval = StdDeserializer();
+
+    return retval;
+}
+
+typedef float|StdSerializer UnionStdSerializer;
+
+UnionStdSerializer UnionStdSerializer_from_JSON(mixed json) {
+    return json;
+}
+
+class StdSerializer {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+StdSerializer StdSerializer_from_JSON(mixed json) {
+    StdSerializer retval = StdSerializer();
+
+    return retval;
+}
+
 typedef float|Strictfp UnionStrictfp;
 
 UnionStrictfp UnionStrictfp_from_JSON(mixed json) {
@@ -5514,6 +6448,50 @@ Throws Throws_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|TimeOnly UnionTimeOnly;
+
+UnionTimeOnly UnionTimeOnly_from_JSON(mixed json) {
+    return json;
+}
+
+class TimeOnly {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+TimeOnly TimeOnly_from_JSON(mixed json) {
+    TimeOnly retval = TimeOnly();
+
+    return retval;
+}
+
+typedef float|TimeOnlyConverter UnionTimeOnlyConverter;
+
+UnionTimeOnlyConverter UnionTimeOnlyConverter_from_JSON(mixed json) {
+    return json;
+}
+
+class TimeOnlyConverter {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+TimeOnlyConverter TimeOnlyConverter_from_JSON(mixed json) {
+    TimeOnlyConverter retval = TimeOnlyConverter();
+
+    return retval;
+}
+
 typedef float|ToJson UnionToJson;
 
 UnionToJson UnionToJson_from_JSON(mixed json) {
@@ -5536,6 +6514,28 @@ ToJson ToJson_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|ToString UnionToString;
+
+UnionToString UnionToString_from_JSON(mixed json) {
+    return json;
+}
+
+class ToString {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+ToString ToString_from_JSON(mixed json) {
+    ToString retval = ToString();
+
+    return retval;
+}
+
 typedef float|TopLevelClass UnionTopLevel;
 
 UnionTopLevel UnionTopLevel_from_JSON(mixed json) {
@@ -6944,6 +7944,72 @@ Using Using_from_JSON(mixed json) {
     return retval;
 }
 
+typedef float|Utf8JsonReader UnionUtf8JsonReader;
+
+UnionUtf8JsonReader UnionUtf8JsonReader_from_JSON(mixed json) {
+    return json;
+}
+
+class Utf8JsonReader {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Utf8JsonReader Utf8JsonReader_from_JSON(mixed json) {
+    Utf8JsonReader retval = Utf8JsonReader();
+
+    return retval;
+}
+
+typedef float|Utf8JsonWriter UnionUtf8JsonWriter;
+
+UnionUtf8JsonWriter UnionUtf8JsonWriter_from_JSON(mixed json) {
+    return json;
+}
+
+class Utf8JsonWriter {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Utf8JsonWriter Utf8JsonWriter_from_JSON(mixed json) {
+    Utf8JsonWriter retval = Utf8JsonWriter();
+
+    return retval;
+}
+
+typedef float|Uuid UnionUuid;
+
+UnionUuid UnionUuid_from_JSON(mixed json) {
+    return json;
+}
+
+class Uuid {
+
+    string encode_json() {
+        mapping(string:mixed) json = ([
+        ]);
+
+        return Standards.JSON.encode(json);
+    }
+}
+
+Uuid Uuid_from_JSON(mixed json) {
+    Uuid retval = Uuid();
+
+    return retval;
+}
+
 typedef float|Var UnionVar;
 
 UnionVar UnionVar_from_JSON(mixed json) {
diff --git a/base/schema-python/test/inputs/schema/keyword-enum.schema/default/quicktype.py b/head/schema-python/test/inputs/schema/keyword-enum.schema/default/quicktype.py
index e31e28b..4da6dfa 100644
--- a/base/schema-python/test/inputs/schema/keyword-enum.schema/default/quicktype.py
+++ b/head/schema-python/test/inputs/schema/keyword-enum.schema/default/quicktype.py
@@ -75,6 +75,7 @@ class EnumEnum(Enum):
     CHECKED = "checked"
     CLASS = "class"
     ENUM_CLASS = "Class"
+    CLONE = "clone"
     CO_AWAIT = "co_await"
     CO_RETURN = "co_return"
     CO_YIELD = "co_yield"
@@ -89,8 +90,14 @@ class EnumEnum(Enum):
     CONVENIENCE = "convenience"
     CONVERT = "convert"
     CONVERTER = "converter"
+    CULTURE_INFO = "CultureInfo"
     DATE = "date"
     DATE_PARSE_HANDLING = "date_parse_handling"
+    DATE_FORMATTER = "DateFormatter"
+    DATE_ONLY = "DateOnly"
+    DATE_ONLY_CONVERTER = "DateOnlyConverter"
+    DATE_TIME = "DateTime"
+    DATE_TIME_STYLES = "DateTimeStyles"
     DEBUGGER = "debugger"
     DECIMAL = "decimal"
     DECLARE = "declare"
@@ -114,6 +121,8 @@ class EnumEnum(Enum):
     ELSE = "else"
     ENCODE_QUICK_TYPE = "encode_quick_type"
     ENUM = "enum"
+    ENUM_VALUES = "EnumValues"
+    EQUALITY_CONTRACT = "equalityContract"
     EVENT = "event"
     EXCEPT = "except"
     EXCEPTION = "exception"
@@ -133,6 +142,7 @@ class EnumEnum(Enum):
     FLOAT = "float"
     FOR = "for"
     FOREACH = "foreach"
+    FORMAT_EXCEPTION = "FormatException"
     FRIEND = "friend"
     FROM = "from"
     FROM_JSON = "from_json"
@@ -143,6 +153,7 @@ class EnumEnum(Enum):
     GO = "go"
     GOTO = "goto"
     GUARD = "guard"
+    HASH_CODE = "hashCode"
     HAS_OWN_PROPERTY = "hasOwnProperty"
     ID = "id"
     IF = "if"
@@ -160,6 +171,7 @@ class EnumEnum(Enum):
     INT = "int"
     INTERFACE = "interface"
     INTERNAL = "internal"
+    ISO_DATE_TIME_OFFSET_CONVERTER = "IsoDateTimeOffsetConverter"
     ITERABLE = "iterable"
     IS = "is"
     JDEC = "jdec"
@@ -170,6 +182,17 @@ class EnumEnum(Enum):
     JSON_SERIALIZER = "json_serializer"
     JSON_TOKEN = "json_token"
     JSON_WRITER = "json_writer"
+    JSON_ANY = "JSONAny"
+    JSON_CODING_KEY = "JSONCodingKey"
+    JSON_DECODER = "JSONDecoder"
+    JSON_ENCODER = "JSONEncoder"
+    JSON_EXCEPTION = "JsonException"
+    JSON_GENERATOR = "JsonGenerator"
+    JSON_NODE = "JsonNode"
+    JSON_NULL = "JSONNull"
+    JSON_PARSER = "JsonParser"
+    JSON_READER = "JsonReader"
+    JSON_TOKEN_TYPE = "JsonTokenType"
     LAMBDA = "lambda"
     LAZY = "lazy"
     LEFT = "left"
@@ -194,14 +217,17 @@ class EnumEnum(Enum):
     ENUM_NONE = "None"
     NONLOCAL = "nonlocal"
     NONMUTATING = "nonmutating"
+    NO_SUCH_METHOD = "noSuchMethod"
     NOT = "not"
     NOT_EQ = "not_eq"
+    NS_ERROR = "NSError"
     NS_STRING = "NSString"
     NULL = "NULL"
     ENUM_NULL = "null"
     NULLPTR = "nullptr"
     NUMBER = "number"
     OBJECT = "object"
+    OBJECT_MAPPER = "ObjectMapper"
     OF = "of"
     ONEWAY = "oneway"
     OPEN = "open"
@@ -220,6 +246,7 @@ class EnumEnum(Enum):
     PREFIX = "prefix"
     PRINT = "print"
     PRINTF = "printf"
+    PRINT_MEMBERS = "printMembers"
     PRIVATE = "private"
     PROTECTED = "protected"
     PROTOCOL = "Protocol"
@@ -230,6 +257,7 @@ class EnumEnum(Enum):
     RANGE = "range"
     READONLY = "readonly"
     REF = "ref"
+    REG_EXP = "RegExp"
     REGISTER = "register"
     REINTERPRET_CAST = "reinterpret_cast"
     REPEAT = "repeat"
@@ -241,6 +269,8 @@ class EnumEnum(Enum):
     RETHROWS = "rethrows"
     RETURN = "return"
     RIGHT = "right"
+    RUNTIME_TYPE = "runtimeType"
+    S = "s"
     SBYTE = "sbyte"
     SEALED = "sealed"
     SEL = "SEL"
@@ -248,14 +278,19 @@ class EnumEnum(Enum):
     SELF = "Self"
     ENUM_SELF = "self"
     SERIALIZE = "serialize"
+    SERIALIZER_PROVIDER = "SerializerProvider"
     SET = "set"
     SHORT = "short"
     SIGNED = "signed"
+    SIMPLE_MODULE = "SimpleModule"
     SIZEOF = "sizeof"
     STACKALLOC = "stackalloc"
+    STANDARDS = "Standards"
     STATIC = "static"
     STATIC_ASSERT = "static_assert"
     STATIC_CAST = "static_cast"
+    STD_DESERIALIZER = "StdDeserializer"
+    STD_SERIALIZER = "StdSerializer"
     STRICTFP = "strictfp"
     STRING = "string"
     STRUCT = "struct"
@@ -271,8 +306,11 @@ class EnumEnum(Enum):
     THREAD_LOCAL = "thread_local"
     THROW = "throw"
     THROWS = "throws"
+    TIME_ONLY = "TimeOnly"
+    TIME_ONLY_CONVERTER = "TimeOnlyConverter"
     TO_JSON = "to_json"
     TOP_LEVEL = "top_level"
+    TO_STRING = "toString"
     TRANSIENT = "transient"
     TRUE = "True"
     ENUM_TRUE = "true"
@@ -294,6 +332,9 @@ class EnumEnum(Enum):
     UNSIGNED = "unsigned"
     USHORT = "ushort"
     USING = "using"
+    UTF8_JSON_READER = "Utf8JsonReader"
+    UTF8_JSON_WRITER = "Utf8JsonWriter"
+    UUID = "UUID"
     VAR = "var"
     VIRTUAL = "virtual"
     VOID = "void"
diff --git a/base/schema-python/test/inputs/schema/keyword-unions.schema/default/quicktype.py b/head/schema-python/test/inputs/schema/keyword-unions.schema/default/quicktype.py
index 6f3e022..51aa9a6 100644
--- a/base/schema-python/test/inputs/schema/keyword-unions.schema/default/quicktype.py
+++ b/head/schema-python/test/inputs/schema/keyword-unions.schema/default/quicktype.py
@@ -426,6 +426,20 @@ class Checked:
         return result
 
 
+@dataclass
+class Clone:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Clone':
+        assert isinstance(obj, dict)
+        return Clone()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class CoAwait:
     pass
@@ -622,6 +636,20 @@ class Converter:
         return result
 
 
+@dataclass
+class CultureInfo:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'CultureInfo':
+        assert isinstance(obj, dict)
+        return CultureInfo()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Date:
     pass
@@ -636,6 +664,48 @@ class Date:
         return result
 
 
+@dataclass
+class DateFormatter:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateFormatter':
+        assert isinstance(obj, dict)
+        return DateFormatter()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class DateOnly:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateOnly':
+        assert isinstance(obj, dict)
+        return DateOnly()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class DateOnlyConverter:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateOnlyConverter':
+        assert isinstance(obj, dict)
+        return DateOnlyConverter()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class DateParseHandling:
     pass
@@ -650,6 +720,34 @@ class DateParseHandling:
         return result
 
 
+@dataclass
+class DateTime:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateTime':
+        assert isinstance(obj, dict)
+        return DateTime()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class DateTimeStyles:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'DateTimeStyles':
+        assert isinstance(obj, dict)
+        return DateTimeStyles()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Debugger:
     pass
@@ -916,6 +1014,34 @@ class EnumClass:
         return result
 
 
+@dataclass
+class EnumValues:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'EnumValues':
+        assert isinstance(obj, dict)
+        return EnumValues()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class EqualityContract:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'EqualityContract':
+        assert isinstance(obj, dict)
+        return EqualityContract()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Event:
     pass
@@ -1126,6 +1252,20 @@ class Foreach:
         return result
 
 
+@dataclass
+class FormatException:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'FormatException':
+        assert isinstance(obj, dict)
+        return FormatException()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Friend:
     pass
@@ -1252,6 +1392,20 @@ class HasOwnProperty:
         return result
 
 
+@dataclass
+class HashCode:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'HashCode':
+        assert isinstance(obj, dict)
+        return HashCode()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class ID:
     pass
@@ -1434,6 +1588,20 @@ class Internal:
         return result
 
 
+@dataclass
+class ISODateTimeOffsetConverter:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'ISODateTimeOffsetConverter':
+        assert isinstance(obj, dict)
+        return ISODateTimeOffsetConverter()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class IterableClass:
     pass
@@ -1504,6 +1672,34 @@ class JSON:
         return result
 
 
+@dataclass
+class JSONAny:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONAny':
+        assert isinstance(obj, dict)
+        return JSONAny()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONCodingKey:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONCodingKey':
+        assert isinstance(obj, dict)
+        return JSONCodingKey()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class JSONConverter:
     pass
@@ -1518,6 +1714,118 @@ class JSONConverter:
         return result
 
 
+@dataclass
+class JSONDecoder:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONDecoder':
+        assert isinstance(obj, dict)
+        return JSONDecoder()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONEncoder:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONEncoder':
+        assert isinstance(obj, dict)
+        return JSONEncoder()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONException:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONException':
+        assert isinstance(obj, dict)
+        return JSONException()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONGenerator:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONGenerator':
+        assert isinstance(obj, dict)
+        return JSONGenerator()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONNode:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONNode':
+        assert isinstance(obj, dict)
+        return JSONNode()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONNull:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONNull':
+        assert isinstance(obj, dict)
+        return JSONNull()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONParser:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONParser':
+        assert isinstance(obj, dict)
+        return JSONParser()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class JSONReader:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONReader':
+        assert isinstance(obj, dict)
+        return JSONReader()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class JSONSerializer:
     pass
@@ -1546,6 +1854,20 @@ class JSONToken:
         return result
 
 
+@dataclass
+class JSONTokenType:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'JSONTokenType':
+        assert isinstance(obj, dict)
+        return JSONTokenType()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class JSONWriter:
     pass
@@ -1798,6 +2120,20 @@ class No:
         return result
 
 
+@dataclass
+class NoSuchMethod:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'NoSuchMethod':
+        assert isinstance(obj, dict)
+        return NoSuchMethod()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Noexcept:
     pass
@@ -1868,6 +2204,20 @@ class NotEq:
         return result
 
 
+@dataclass
+class NSError:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'NSError':
+        assert isinstance(obj, dict)
+        return NSError()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class NSString:
     pass
@@ -1938,6 +2288,20 @@ class Object:
         return result
 
 
+@dataclass
+class ObjectMapper:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'ObjectMapper':
+        assert isinstance(obj, dict)
+        return ObjectMapper()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Of:
     pass
@@ -2134,6 +2498,20 @@ class Prefix:
         return result
 
 
+@dataclass
+class PrintMembers:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'PrintMembers':
+        assert isinstance(obj, dict)
+        return PrintMembers()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Printf:
     pass
@@ -2302,6 +2680,20 @@ class Ref:
         return result
 
 
+@dataclass
+class RegExp:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'RegExp':
+        assert isinstance(obj, dict)
+        return RegExp()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Register:
     pass
@@ -2442,6 +2834,34 @@ class Right:
         return result
 
 
+@dataclass
+class RuntimeType:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'RuntimeType':
+        assert isinstance(obj, dict)
+        return RuntimeType()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class S:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'S':
+        assert isinstance(obj, dict)
+        return S()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Sbyte:
     pass
@@ -2512,6 +2932,20 @@ class Serialize:
         return result
 
 
+@dataclass
+class SerializerProvider:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'SerializerProvider':
+        assert isinstance(obj, dict)
+        return SerializerProvider()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Set:
     pass
@@ -2554,6 +2988,20 @@ class Signed:
         return result
 
 
+@dataclass
+class SimpleModule:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'SimpleModule':
+        assert isinstance(obj, dict)
+        return SimpleModule()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Sizeof:
     pass
@@ -2582,6 +3030,20 @@ class Stackalloc:
         return result
 
 
+@dataclass
+class Standards:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Standards':
+        assert isinstance(obj, dict)
+        return Standards()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Static:
     pass
@@ -2624,6 +3086,34 @@ class StaticCast:
         return result
 
 
+@dataclass
+class StdDeserializer:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'StdDeserializer':
+        assert isinstance(obj, dict)
+        return StdDeserializer()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class StdSerializer:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'StdSerializer':
+        assert isinstance(obj, dict)
+        return StdSerializer()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Strictfp:
     pass
@@ -2834,6 +3324,34 @@ class Throws:
         return result
 
 
+@dataclass
+class TimeOnly:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'TimeOnly':
+        assert isinstance(obj, dict)
+        return TimeOnly()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class TimeOnlyConverter:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'TimeOnlyConverter':
+        assert isinstance(obj, dict)
+        return TimeOnlyConverter()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class ToJSON:
     pass
@@ -2848,6 +3366,20 @@ class ToJSON:
         return result
 
 
+@dataclass
+class ToString:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'ToString':
+        assert isinstance(obj, dict)
+        return ToString()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class TopLevelClass:
     pass
@@ -3744,6 +4276,48 @@ class Using:
         return result
 
 
+@dataclass
+class Utf8JSONReader:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Utf8JSONReader':
+        assert isinstance(obj, dict)
+        return Utf8JSONReader()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class Utf8JSONWriter:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'Utf8JSONWriter':
+        assert isinstance(obj, dict)
+        return Utf8JSONWriter()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
+@dataclass
+class UUIDClass:
+    pass
+
+    @staticmethod
+    def from_dict(obj: Any) -> 'UUIDClass':
+        assert isinstance(obj, dict)
+        return UUIDClass()
+
+    def to_dict(self) -> dict:
+        result: dict = {}
+        return result
+
+
 @dataclass
 class Var:
     pass
@@ -3943,6 +4517,7 @@ class TopLevel:
     checked: float | Checked | None = None
     purple_class: float | ClassClass | None = None
     top_level_class: float | Class | None = None
+    clone: float | Clone | None = None
     co_await: float | CoAwait | None = None
     co_return: float | CoReturn | None = None
     co_yield: float | CoYield | None = None
@@ -3957,8 +4532,14 @@ class TopLevel:
     convenience: float | Convenience | None = None
     convert: float | Convert | None = None
     converter: float | Converter | None = None
+    culture_info: float | CultureInfo | None = None
     date: float | Date | None = None
     date_parse_handling: float | DateParseHandling | None = None
+    date_formatter: float | DateFormatter | None = None
+    date_only: float | DateOnly | None = None
+    date_only_converter: float | DateOnlyConverter | None = None
+    date_time: float | DateTime | None = None
+    date_time_styles: float | DateTimeStyles | None = None
     debugger: float | Debugger | None = None
     decimal: float | Decimal | None = None
     declare: float | Declare | None = None
@@ -3983,6 +4564,8 @@ class TopLevel:
     top_level_else: float | Else | None = None
     encode_quick_type: float | EncodeQuickType | None = None
     enum: float | EnumClass | None = None
+    enum_values: float | EnumValues | None = None
+    equality_contract: float | EqualityContract | None = None
     event: float | Event | None = None
     top_level_except: float | Except | None = None
     exception: float | Exception | None = None
@@ -4002,6 +4585,7 @@ class TopLevel:
     top_level_float: float | Float | None = None
     top_level_for: float | For | None = None
     foreach: float | Foreach | None = None
+    format_exception: float | FormatException | None = None
     friend: float | Friend | None = None
     top_level_from: float | From | None = None
     from_json: float | FromJSON | None = None
@@ -4012,6 +4596,7 @@ class TopLevel:
     go: float | Go | None = None
     goto: float | Goto | None = None
     guard: float | Guard | None = None
+    hash_code: float | HashCode | None = None
     has_own_property: float | HasOwnProperty | None = None
     id: float | ID | None = None
     top_level_if: float | If | None = None
@@ -4030,6 +4615,7 @@ class TopLevel:
     interface: float | Interface | None = None
     internal: float | Internal | None = None
     top_level_is: float | Is | None = None
+    iso_date_time_offset_converter: float | ISODateTimeOffsetConverter | None = None
     iterable: float | IterableClass | None = None
     jdec: float | Jdec | None = None
     jenc: float | Jenc | None = None
@@ -4039,6 +4625,17 @@ class TopLevel:
     json_serializer: float | JSONSerializer | None = None
     json_token: float | JSONToken | None = None
     json_writer: float | JSONWriter | None = None
+    json_any: float | JSONAny | None = None
+    json_coding_key: float | JSONCodingKey | None = None
+    json_decoder: float | JSONDecoder | None = None
+    json_encoder: float | JSONEncoder | None = None
+    json_exception: float | JSONException | None = None
+    json_generator: float | JSONGenerator | None = None
+    json_node: float | JSONNode | None = None
+    json_null: float | JSONNull | None = None
+    json_parser: float | JSONParser | None = None
+    json_reader: float | JSONReader | None = None
+    json_token_type: float | JSONTokenType | None = None
     top_level_lambda: float | Lambda | None = None
     lazy: float | Lazy | None = None
     left: float | Left | None = None
@@ -4063,14 +4660,17 @@ class TopLevel:
     none: float | NoneClass | None = None
     top_level_nonlocal: float | Nonlocal | None = None
     nonmutating: float | Nonmutating | None = None
+    no_such_method: float | NoSuchMethod | None = None
     top_level_not: float | Not | None = None
     not_eq: float | NotEq | None = None
+    ns_error: float | NSError | None = None
     ns_string: float | NSString | None = None
     null: float | Null | None = None
     top_level_null: float | NullClass | None = None
     nullptr: float | Nullptr | None = None
     number: float | Number | None = None
     object: float | Object | None = None
+    object_mapper: float | ObjectMapper | None = None
     of: float | Of | None = None
     oneway: float | Oneway | None = None
     open: float | Open | None = None
@@ -4089,6 +4689,7 @@ class TopLevel:
     prefix: float | Prefix | None = None
     top_level_print: float | Print | None = None
     printf: float | Printf | None = None
+    print_members: float | PrintMembers | None = None
     private: float | Private | None = None
     protected: float | Protected | None = None
     protocol: float | Protocol | None = None
@@ -4099,6 +4700,7 @@ class TopLevel:
     range: float | Range | None = None
     readonly: float | Readonly | None = None
     ref: float | Ref | None = None
+    reg_exp: float | RegExp | None = None
     register: float | Register | None = None
     reinterpret_cast: float | ReinterpretCast | None = None
     repeat: float | Repeat | None = None
@@ -4110,6 +4712,8 @@ class TopLevel:
     rethrows: float | Rethrows | None = None
     top_level_return: float | Return | None = None
     right: float | Right | None = None
+    runtime_type: float | RuntimeType | None = None
+    s: float | S | None = None
     sbyte: float | Sbyte | None = None
     sealed: float | Sealed | None = None
     sel: float | Sel | None = None
@@ -4117,14 +4721,19 @@ class TopLevel:
     top_level_self: float | Self | None = None
     purple_self: float | SelfClass | None = None
     serialize: float | Serialize | None = None
+    serializer_provider: float | SerializerProvider | None = None
     set: float | Set | None = None
     short: float | Short | None = None
     signed: float | Signed | None = None
+    simple_module: float | SimpleModule | None = None
     sizeof: float | Sizeof | None = None
     stackalloc: float | Stackalloc | None = None
+    standards: float | Standards | None = None
     static: float | Static | None = None
     static_assert: float | StaticAssert | None = None
     static_cast: float | StaticCast | None = None
+    std_deserializer: float | StdDeserializer | None = None
+    std_serializer: float | StdSerializer | None = None
     strictfp: float | Strictfp | None = None
     string: float | String | None = None
     struct: float | Struct | None = None
@@ -4140,8 +4749,11 @@ class TopLevel:
     thread_local: float | ThreadLocal | None = None
     throw: float | Throw | None = None
     throws: float | Throws | None = None
+    time_only: float | TimeOnly | None = None
+    time_only_converter: float | TimeOnlyConverter | None = None
     to_json: float | ToJSON | None = None
     top_level: float | TopLevelClass | None = None
+    to_string: float | ToString | None = None
     transient: float | Transient | None = None
     true: float | TrueClass | None = None
     top_level_true: float | UnionTrueTrue | None = None
@@ -4163,6 +4775,9 @@ class TopLevel:
     unsigned: float | Unsigned | None = None
     ushort: float | Ushort | None = None
     using: float | Using | None = None
+    utf8_json_reader: float | Utf8JSONReader | None = None
+    utf8_json_writer: float | Utf8JSONWriter | None = None
+    uuid: float | UUIDClass | None = None
     var: float | Var | None = None
     virtual: float | Virtual | None = None
     void: float | Void | None = None
@@ -4224,6 +4839,7 @@ class TopLevel:
         checked = from_union([from_float, Checked.from_dict, from_none], obj.get("checked"))
         purple_class = from_union([from_float, ClassClass.from_dict, from_none], obj.get("class"))
         top_level_class = from_union([from_float, Class.from_dict, from_none], obj.get("Class"))
+        clone = from_union([from_float, Clone.from_dict, from_none], obj.get("clone"))
         co_await = from_union([from_float, CoAwait.from_dict, from_none], obj.get("co_await"))
         co_return = from_union([from_float, CoReturn.from_dict, from_none], obj.get("co_return"))
         co_yield = from_union([from_float, CoYield.from_dict, from_none], obj.get("co_yield"))
@@ -4238,8 +4854,14 @@ class TopLevel:
         convenience = from_union([from_float, Convenience.from_dict, from_none], obj.get("convenience"))
         convert = from_union([from_float, Convert.from_dict, from_none], obj.get("convert"))
         converter = from_union([from_float, Converter.from_dict, from_none], obj.get("converter"))
+        culture_info = from_union([from_float, CultureInfo.from_dict, from_none], obj.get("CultureInfo"))
         date = from_union([from_float, Date.from_dict, from_none], obj.get("date"))
         date_parse_handling = from_union([from_float, DateParseHandling.from_dict, from_none], obj.get("date_parse_handling"))
+        date_formatter = from_union([from_float, DateFormatter.from_dict, from_none], obj.get("DateFormatter"))
+        date_only = from_union([from_float, DateOnly.from_dict, from_none], obj.get("DateOnly"))
+        date_only_converter = from_union([from_float, DateOnlyConverter.from_dict, from_none], obj.get("DateOnlyConverter"))
+        date_time = from_union([from_float, DateTime.from_dict, from_none], obj.get("DateTime"))
+        date_time_styles = from_union([from_float, DateTimeStyles.from_dict, from_none], obj.get("DateTimeStyles"))
         debugger = from_union([from_float, Debugger.from_dict, from_none], obj.get("debugger"))
         decimal = from_union([from_float, Decimal.from_dict, from_none], obj.get("decimal"))
         declare = from_union([from_float, Declare.from_dict, from_none], obj.get("declare"))
@@ -4264,6 +4886,8 @@ class TopLevel:
         top_level_else = from_union([from_float, Else.from_dict, from_none], obj.get("else"))
         encode_quick_type = from_union([from_float, EncodeQuickType.from_dict, from_none], obj.get("encode_quick_type"))
         enum = from_union([from_float, EnumClass.from_dict, from_none], obj.get("enum"))
+        enum_values = from_union([from_float, EnumValues.from_dict, from_none], obj.get("EnumValues"))
+        equality_contract = from_union([from_float, EqualityContract.from_dict, from_none], obj.get("equalityContract"))
         event = from_union([from_float, Event.from_dict, from_none], obj.get("event"))
         top_level_except = from_union([from_float, Except.from_dict, from_none], obj.get("except"))
         exception = from_union([from_float, Exception.from_dict, from_none], obj.get("exception"))
@@ -4283,6 +4907,7 @@ class TopLevel:
         top_level_float = from_union([from_float, Float.from_dict, from_none], obj.get("float"))
         top_level_for = from_union([from_float, For.from_dict, from_none], obj.get("for"))
         foreach = from_union([from_float, Foreach.from_dict, from_none], obj.get("foreach"))
+        format_exception = from_union([from_float, FormatException.from_dict, from_none], obj.get("FormatException"))
         friend = from_union([from_float, Friend.from_dict, from_none], obj.get("friend"))
         top_level_from = from_union([from_float, From.from_dict, from_none], obj.get("from"))
         from_json = from_union([from_float, FromJSON.from_dict, from_none], obj.get("from_json"))
@@ -4293,6 +4918,7 @@ class TopLevel:
         go = from_union([from_float, Go.from_dict, from_none], obj.get("go"))
         goto = from_union([from_float, Goto.from_dict, from_none], obj.get("goto"))
         guard = from_union([from_float, Guard.from_dict, from_none], obj.get("guard"))
+        hash_code = from_union([from_float, HashCode.from_dict, from_none], obj.get("hashCode"))
         has_own_property = from_union([from_float, HasOwnProperty.from_dict, from_none], obj.get("hasOwnProperty"))
         id = from_union([from_float, ID.from_dict, from_none], obj.get("id"))
         top_level_if = from_union([from_float, If.from_dict, from_none], obj.get("if"))
@@ -4311,6 +4937,7 @@ class TopLevel:
         interface = from_union([from_float, Interface.from_dict, from_none], obj.get("interface"))
         internal = from_union([from_float, Internal.from_dict, from_none], obj.get("internal"))
         top_level_is = from_union([from_float, Is.from_dict, from_none], obj.get("is"))
+        iso_date_time_offset_converter = from_union([from_float, ISODateTimeOffsetConverter.from_dict, from_none], obj.get("IsoDateTimeOffsetConverter"))
         iterable = from_union([from_float, IterableClass.from_dict, from_none], obj.get("iterable"))
         jdec = from_union([from_float, Jdec.from_dict, from_none], obj.get("jdec"))
         jenc = from_union([from_float, Jenc.from_dict, from_none], obj.get("jenc"))
@@ -4320,6 +4947,17 @@ class TopLevel:
         json_serializer = from_union([from_float, JSONSerializer.from_dict, from_none], obj.get("json_serializer"))
         json_token = from_union([from_float, JSONToken.from_dict, from_none], obj.get("json_token"))
         json_writer = from_union([from_float, JSONWriter.from_dict, from_none], obj.get("json_writer"))
+        json_any = from_union([from_float, JSONAny.from_dict, from_none], obj.get("JSONAny"))
+        json_coding_key = from_union([from_float, JSONCodingKey.from_dict, from_none], obj.get("JSONCodingKey"))
+        json_decoder = from_union([from_float, JSONDecoder.from_dict, from_none], obj.get("JSONDecoder"))
+        json_encoder = from_union([from_float, JSONEncoder.from_dict, from_none], obj.get("JSONEncoder"))
+        json_exception = from_union([from_float, JSONException.from_dict, from_none], obj.get("JsonException"))
+        json_generator = from_union([from_float, JSONGenerator.from_dict, from_none], obj.get("JsonGenerator"))
+        json_node = from_union([from_float, JSONNode.from_dict, from_none], obj.get("JsonNode"))
+        json_null = from_union([from_float, JSONNull.from_dict, from_none], obj.get("JSONNull"))
+        json_parser = from_union([from_float, JSONParser.from_dict, from_none], obj.get("JsonParser"))
+        json_reader = from_union([from_float, JSONReader.from_dict, from_none], obj.get("JsonReader"))
+        json_token_type = from_union([from_float, JSONTokenType.from_dict, from_none], obj.get("JsonTokenType"))
         top_level_lambda = from_union([from_float, Lambda.from_dict, from_none], obj.get("lambda"))
         lazy = from_union([from_float, Lazy.from_dict, from_none], obj.get("lazy"))
         left = from_union([from_float, Left.from_dict, from_none], obj.get("left"))
@@ -4344,14 +4982,17 @@ class TopLevel:
         none = from_union([from_float, NoneClass.from_dict, from_none], obj.get("None"))
         top_level_nonlocal = from_union([from_float, Nonlocal.from_dict, from_none], obj.get("nonlocal"))
         nonmutating = from_union([from_float, Nonmutating.from_dict, from_none], obj.get("nonmutating"))
+        no_such_method = from_union([from_float, NoSuchMethod.from_dict, from_none], obj.get("noSuchMethod"))
         top_level_not = from_union([from_float, Not.from_dict, from_none], obj.get("not"))
         not_eq = from_union([from_float, NotEq.from_dict, from_none], obj.get("not_eq"))
+        ns_error = from_union([from_float, NSError.from_dict, from_none], obj.get("NSError"))
         ns_string = from_union([from_float, NSString.from_dict, from_none], obj.get("NSString"))
         null = from_union([from_float, Null.from_dict, from_none], obj.get("NULL"))
         top_level_null = from_union([from_float, NullClass.from_dict, from_none], obj.get("null"))
         nullptr = from_union([from_float, Nullptr.from_dict, from_none], obj.get("nullptr"))
         number = from_union([from_float, Number.from_dict, from_none], obj.get("number"))
         object = from_union([from_float, Object.from_dict, from_none], obj.get("object"))
+        object_mapper = from_union([from_float, ObjectMapper.from_dict, from_none], obj.get("ObjectMapper"))
         of = from_union([from_float, Of.from_dict, from_none], obj.get("of"))
         oneway = from_union([from_float, Oneway.from_dict, from_none], obj.get("oneway"))
         open = from_union([from_float, Open.from_dict, from_none], obj.get("open"))
@@ -4370,6 +5011,7 @@ class TopLevel:
         prefix = from_union([from_float, Prefix.from_dict, from_none], obj.get("prefix"))
         top_level_print = from_union([from_float, Print.from_dict, from_none], obj.get("print"))
         printf = from_union([from_float, Printf.from_dict, from_none], obj.get("printf"))
+        print_members = from_union([from_float, PrintMembers.from_dict, from_none], obj.get("printMembers"))
         private = from_union([from_float, Private.from_dict, from_none], obj.get("private"))
         protected = from_union([from_float, Protected.from_dict, from_none], obj.get("protected"))
         protocol = from_union([from_float, Protocol.from_dict, from_none], obj.get("Protocol"))
@@ -4380,6 +5022,7 @@ class TopLevel:
         range = from_union([from_float, Range.from_dict, from_none], obj.get("range"))
         readonly = from_union([from_float, Readonly.from_dict, from_none], obj.get("readonly"))
         ref = from_union([from_float, Ref.from_dict, from_none], obj.get("ref"))
+        reg_exp = from_union([from_float, RegExp.from_dict, from_none], obj.get("RegExp"))
         register = from_union([from_float, Register.from_dict, from_none], obj.get("register"))
         reinterpret_cast = from_union([from_float, ReinterpretCast.from_dict, from_none], obj.get("reinterpret_cast"))
         repeat = from_union([from_float, Repeat.from_dict, from_none], obj.get("repeat"))
@@ -4391,6 +5034,8 @@ class TopLevel:
         rethrows = from_union([from_float, Rethrows.from_dict, from_none], obj.get("rethrows"))
         top_level_return = from_union([from_float, Return.from_dict, from_none], obj.get("return"))
         right = from_union([from_float, Right.from_dict, from_none], obj.get("right"))
+        runtime_type = from_union([from_float, RuntimeType.from_dict, from_none], obj.get("runtimeType"))
+        s = from_union([from_float, S.from_dict, from_none], obj.get("s"))
         sbyte = from_union([from_float, Sbyte.from_dict, from_none], obj.get("sbyte"))
         sealed = from_union([from_float, Sealed.from_dict, from_none], obj.get("sealed"))
         sel = from_union([from_float, Sel.from_dict, from_none], obj.get("SEL"))
@@ -4398,14 +5043,19 @@ class TopLevel:
         top_level_self = from_union([from_float, Self.from_dict, from_none], obj.get("Self"))
         purple_self = from_union([from_float, SelfClass.from_dict, from_none], obj.get("self"))
         serialize = from_union([from_float, Serialize.from_dict, from_none], obj.get("serialize"))
+        serializer_provider = from_union([from_float, SerializerProvider.from_dict, from_none], obj.get("SerializerProvider"))
         set = from_union([from_float, Set.from_dict, from_none], obj.get("set"))
         short = from_union([from_float, Short.from_dict, from_none], obj.get("short"))
         signed = from_union([from_float, Signed.from_dict, from_none], obj.get("signed"))
+        simple_module = from_union([from_float, SimpleModule.from_dict, from_none], obj.get("SimpleModule"))
         sizeof = from_union([from_float, Sizeof.from_dict, from_none], obj.get("sizeof"))
         stackalloc = from_union([from_float, Stackalloc.from_dict, from_none], obj.get("stackalloc"))
+        standards = from_union([from_float, Standards.from_dict, from_none], obj.get("Standards"))
         static = from_union([from_float, Static.from_dict, from_none], obj.get("static"))
         static_assert = from_union([from_float, StaticAssert.from_dict, from_none], obj.get("static_assert"))
         static_cast = from_union([from_float, StaticCast.from_dict, from_none], obj.get("static_cast"))
+        std_deserializer = from_union([from_float, StdDeserializer.from_dict, from_none], obj.get("StdDeserializer"))
+        std_serializer = from_union([from_float, StdSerializer.from_dict, from_none], obj.get("StdSerializer"))
         strictfp = from_union([from_float, Strictfp.from_dict, from_none], obj.get("strictfp"))
         string = from_union([from_float, String.from_dict, from_none], obj.get("string"))
         struct = from_union([from_float, Struct.from_dict, from_none], obj.get("struct"))
@@ -4421,8 +5071,11 @@ class TopLevel:
         thread_local = from_union([from_float, ThreadLocal.from_dict, from_none], obj.get("thread_local"))
         throw = from_union([from_float, Throw.from_dict, from_none], obj.get("throw"))
         throws = from_union([from_float, Throws.from_dict, from_none], obj.get("throws"))
+        time_only = from_union([from_float, TimeOnly.from_dict, from_none], obj.get("TimeOnly"))
+        time_only_converter = from_union([from_float, TimeOnlyConverter.from_dict, from_none], obj.get("TimeOnlyConverter"))
         to_json = from_union([from_float, ToJSON.from_dict, from_none], obj.get("to_json"))
         top_level = from_union([from_float, TopLevelClass.from_dict, from_none], obj.get("top_level"))
+        to_string = from_union([from_float, ToString.from_dict, from_none], obj.get("toString"))
         transient = from_union([from_float, Transient.from_dict, from_none], obj.get("transient"))
         true = from_union([from_float, TrueClass.from_dict, from_none], obj.get("True"))
         top_level_true = from_union([from_float, UnionTrueTrue.from_dict, from_none], obj.get("true"))
@@ -4444,6 +5097,9 @@ class TopLevel:
         unsigned = from_union([from_float, Unsigned.from_dict, from_none], obj.get("unsigned"))
         ushort = from_union([from_float, Ushort.from_dict, from_none], obj.get("ushort"))
         using = from_union([from_float, Using.from_dict, from_none], obj.get("using"))
+        utf8_json_reader = from_union([from_float, Utf8JSONReader.from_dict, from_none], obj.get("Utf8JsonReader"))
+        utf8_json_writer = from_union([from_float, Utf8JSONWriter.from_dict, from_none], obj.get("Utf8JsonWriter"))
+        uuid = from_union([from_float, UUIDClass.from_dict, from_none], obj.get("UUID"))
         var = from_union([from_float, Var.from_dict, from_none], obj.get("var"))
         virtual = from_union([from_float, Virtual.from_dict, from_none], obj.get("virtual"))
         void = from_union([from_float, Void.from_dict, from_none], obj.get("void"))
@@ -4458,7 +5114,7 @@ class TopLevel:
         xor_eq = from_union([from_float, XorEq.from_dict, from_none], obj.get("xor_eq"))
         yes = from_union([from_float, Yes.from_dict, from_none], obj.get("YES"))
         top_level_yield = from_union([from_float, Yield.from_dict, from_none], obj.get("yield"))
-        return TopLevel(empty, purple_bool, complex, imaginery, abstract, alignas, alignof, top_level_and, and_eq, top_level_any, any, array, top_level_as, asm, top_level_assert, associatedtype, associativity, top_level_async, atomic, atomic_cancel, atomic_commit, atomic_noexcept, auto, top_level_await, base, bitand, bitor, top_level_bool, fluffy_bool, boolean, top_level_break, bycopy, byref, byte, case, catch, chan, char, char16_t, char32_t, checked, purple_class, top_level_class, co_await, co_return, co_yield, compl, concept, console, const, const_cast, constexpr, constructor, top_level_continue, convenience, convert, converter, date, date_parse_handling, debugger, decimal, declare, decltype, decode_string, top_level_def, default, defer, deinit, top_level_del, delegate, delete, top_level_dict, dictionary, did_set, do, double, dummy, dynamic, dynamic_cast, top_level_elif, top_level_else, encode_quick_type, enum, event, top_level_except, exception, explicit, export, exposing, extends, extension, extern, fallthrough, top_level_false, false, fileprivate, final, top_level_finally, fixed, top_level_float, top_level_for, foreach, friend, top_level_from, from_json, func, function, get, top_level_global, go, goto, guard, has_own_property, id, top_level_if, imp, implements, implicit, top_level_import, top_level_in, indirect, infix, init, inline, inout, instanceof, top_level_int, interface, internal, top_level_is, iterable, jdec, jenc, jpipe, json, json_converter, json_serializer, json_token, json_writer, top_level_lambda, lazy, left, let, list, lock, long, map, metadata_property_handling, module, mutable, mutating, namespace, native, new, newtonsoft, nil, no, noexcept, nonatomic, top_level_none, none, top_level_nonlocal, nonmutating, top_level_not, not_eq, ns_string, null, top_level_null, nullptr, number, object, of, oneway, open, operator, optional, top_level_or, or_eq, out, override, package, params, top_level_pass, port, postfix, precedence, prefix, top_level_print, printf, private, protected, protocol, top_level_protocol, public, quicktype, top_level_raise, range, readonly, ref, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, top_level_return, right, sbyte, sealed, sel, select, top_level_self, purple_self, serialize, set, short, signed, sizeof, stackalloc, static, static_assert, static_cast, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, to_json, top_level, transient, true, top_level_true, top_level_try, type, top_level_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined, union, unowned, unsafe, unsigned, ushort, using, var, virtual, void, volatile, wchar_t, weak, where, top_level_while, will_set, top_level_with, xor, xor_eq, yes, top_level_yield)
+        return TopLevel(empty, purple_bool, complex, imaginery, abstract, alignas, alignof, top_level_and, and_eq, top_level_any, any, array, top_level_as, asm, top_level_assert, associatedtype, associativity, top_level_async, atomic, atomic_cancel, atomic_commit, atomic_noexcept, auto, top_level_await, base, bitand, bitor, top_level_bool, fluffy_bool, boolean, top_level_break, bycopy, byref, byte, case, catch, chan, char, char16_t, char32_t, checked, purple_class, top_level_class, clone, co_await, co_return, co_yield, compl, concept, console, const, const_cast, constexpr, constructor, top_level_continue, convenience, convert, converter, culture_info, date, date_parse_handling, date_formatter, date_only, date_only_converter, date_time, date_time_styles, debugger, decimal, declare, decltype, decode_string, top_level_def, default, defer, deinit, top_level_del, delegate, delete, top_level_dict, dictionary, did_set, do, double, dummy, dynamic, dynamic_cast, top_level_elif, top_level_else, encode_quick_type, enum, enum_values, equality_contract, event, top_level_except, exception, explicit, export, exposing, extends, extension, extern, fallthrough, top_level_false, false, fileprivate, final, top_level_finally, fixed, top_level_float, top_level_for, foreach, format_exception, friend, top_level_from, from_json, func, function, get, top_level_global, go, goto, guard, hash_code, has_own_property, id, top_level_if, imp, implements, implicit, top_level_import, top_level_in, indirect, infix, init, inline, inout, instanceof, top_level_int, interface, internal, top_level_is, iso_date_time_offset_converter, iterable, jdec, jenc, jpipe, json, json_converter, json_serializer, json_token, json_writer, json_any, json_coding_key, json_decoder, json_encoder, json_exception, json_generator, json_node, json_null, json_parser, json_reader, json_token_type, top_level_lambda, lazy, left, let, list, lock, long, map, metadata_property_handling, module, mutable, mutating, namespace, native, new, newtonsoft, nil, no, noexcept, nonatomic, top_level_none, none, top_level_nonlocal, nonmutating, no_such_method, top_level_not, not_eq, ns_error, ns_string, null, top_level_null, nullptr, number, object, object_mapper, of, oneway, open, operator, optional, top_level_or, or_eq, out, override, package, params, top_level_pass, port, postfix, precedence, prefix, top_level_print, printf, print_members, private, protected, protocol, top_level_protocol, public, quicktype, top_level_raise, range, readonly, ref, reg_exp, register, reinterpret_cast, repeat, require, required, requires, restrict, retain, rethrows, top_level_return, right, runtime_type, s, sbyte, sealed, sel, select, top_level_self, purple_self, serialize, serializer_provider, set, short, signed, simple_module, sizeof, stackalloc, standards, static, static_assert, static_cast, std_deserializer, std_serializer, strictfp, string, struct, subscript, super, switch, symbol, synchronized, system, template, then, this, thread_local, throw, throws, time_only, time_only_converter, to_json, top_level, to_string, transient, true, top_level_true, top_level_try, type, top_level_type, typealias, typedef, typeid, typename, typeof, uint, ulong, unchecked, undefined, union, unowned, unsafe, unsigned, ushort, using, utf8_json_reader, utf8_json_writer, uuid, var, virtual, void, volatile, wchar_t, weak, where, top_level_while, will_set, top_level_with, xor, xor_eq, yes, top_level_yield)
 
     def to_dict(self) -> dict:
         result: dict = {}
@@ -4548,6 +5204,8 @@ class TopLevel:
             result["class"] = from_union([to_float, lambda x: to_class(ClassClass, x), from_none], self.purple_class)
         if self.top_level_class is not None:
             result["Class"] = from_union([to_float, lambda x: to_class(Class, x), from_none], self.top_level_class)
+        if self.clone is not None:
+            result["clone"] = from_union([to_float, lambda x: to_class(Clone, x), from_none], self.clone)
         if self.co_await is not None:
             result["co_await"] = from_union([to_float, lambda x: to_class(CoAwait, x), from_none], self.co_await)
         if self.co_return is not None:
@@ -4576,10 +5234,22 @@ class TopLevel:
             result["convert"] = from_union([to_float, lambda x: to_class(Convert, x), from_none], self.convert)
         if self.converter is not None:
             result["converter"] = from_union([to_float, lambda x: to_class(Converter, x), from_none], self.converter)
+        if self.culture_info is not None:
+            result["CultureInfo"] = from_union([to_float, lambda x: to_class(CultureInfo, x), from_none], self.culture_info)
         if self.date is not None:
             result["date"] = from_union([to_float, lambda x: to_class(Date, x), from_none], self.date)
         if self.date_parse_handling is not None:
             result["date_parse_handling"] = from_union([to_float, lambda x: to_class(DateParseHandling, x), from_none], self.date_parse_handling)
+        if self.date_formatter is not None:
+            result["DateFormatter"] = from_union([to_float, lambda x: to_class(DateFormatter, x), from_none], self.date_formatter)
+        if self.date_only is not None:
+            result["DateOnly"] = from_union([to_float, lambda x: to_class(DateOnly, x), from_none], self.date_only)
+        if self.date_only_converter is not None:
+            result["DateOnlyConverter"] = from_union([to_float, lambda x: to_class(DateOnlyConverter, x), from_none], self.date_only_converter)
+        if self.date_time is not None:
+            result["DateTime"] = from_union([to_float, lambda x: to_class(DateTime, x), from_none], self.date_time)
+        if self.date_time_styles is not None:
+            result["DateTimeStyles"] = from_union([to_float, lambda x: to_class(DateTimeStyles, x), from_none], self.date_time_styles)
         if self.debugger is not None:
             result["debugger"] = from_union([to_float, lambda x: to_class(Debugger, x), from_none], self.debugger)
         if self.decimal is not None:
@@ -4628,6 +5298,10 @@ class TopLevel:
             result["encode_quick_type"] = from_union([to_float, lambda x: to_class(EncodeQuickType, x), from_none], self.encode_quick_type)
         if self.enum is not None:
             result["enum"] = from_union([to_float, lambda x: to_class(EnumClass, x), from_none], self.enum)
+        if self.enum_values is not None:
+            result["EnumValues"] = from_union([to_float, lambda x: to_class(EnumValues, x), from_none], self.enum_values)
+        if self.equality_contract is not None:
+            result["equalityContract"] = from_union([to_float, lambda x: to_class(EqualityContract, x), from_none], self.equality_contract)
         if self.event is not None:
             result["event"] = from_union([to_float, lambda x: to_class(Event, x), from_none], self.event)
         if self.top_level_except is not None:
@@ -4666,6 +5340,8 @@ class TopLevel:
             result["for"] = from_union([to_float, lambda x: to_class(For, x), from_none], self.top_level_for)
         if self.foreach is not None:
             result["foreach"] = from_union([to_float, lambda x: to_class(Foreach, x), from_none], self.foreach)
+        if self.format_exception is not None:
+            result["FormatException"] = from_union([to_float, lambda x: to_class(FormatException, x), from_none], self.format_exception)
         if self.friend is not None:
             result["friend"] = from_union([to_float, lambda x: to_class(Friend, x), from_none], self.friend)
         if self.top_level_from is not None:
@@ -4686,6 +5362,8 @@ class TopLevel:
             result["goto"] = from_union([to_float, lambda x: to_class(Goto, x), from_none], self.goto)
         if self.guard is not None:
             result["guard"] = from_union([to_float, lambda x: to_class(Guard, x), from_none], self.guard)
+        if self.hash_code is not None:
+            result["hashCode"] = from_union([to_float, lambda x: to_class(HashCode, x), from_none], self.hash_code)
         if self.has_own_property is not None:
             result["hasOwnProperty"] = from_union([to_float, lambda x: to_class(HasOwnProperty, x), from_none], self.has_own_property)
         if self.id is not None:
@@ -4722,6 +5400,8 @@ class TopLevel:
             result["internal"] = from_union([to_float, lambda x: to_class(Internal, x), from_none], self.internal)
         if self.top_level_is is not None:
             result["is"] = from_union([to_float, lambda x: to_class(Is, x), from_none], self.top_level_is)
+        if self.iso_date_time_offset_converter is not None:
+            result["IsoDateTimeOffsetConverter"] = from_union([to_float, lambda x: to_class(ISODateTimeOffsetConverter, x), from_none], self.iso_date_time_offset_converter)
         if self.iterable is not None:
             result["iterable"] = from_union([to_float, lambda x: to_class(IterableClass, x), from_none], self.iterable)
         if self.jdec is not None:
@@ -4740,6 +5420,28 @@ class TopLevel:
             result["json_token"] = from_union([to_float, lambda x: to_class(JSONToken, x), from_none], self.json_token)
         if self.json_writer is not None:
             result["json_writer"] = from_union([to_float, lambda x: to_class(JSONWriter, x), from_none], self.json_writer)
+        if self.json_any is not None:
+            result["JSONAny"] = from_union([to_float, lambda x: to_class(JSONAny, x), from_none], self.json_any)
+        if self.json_coding_key is not None:
+            result["JSONCodingKey"] = from_union([to_float, lambda x: to_class(JSONCodingKey, x), from_none], self.json_coding_key)
+        if self.json_decoder is not None:
+            result["JSONDecoder"] = from_union([to_float, lambda x: to_class(JSONDecoder, x), from_none], self.json_decoder)
+        if self.json_encoder is not None:
+            result["JSONEncoder"] = from_union([to_float, lambda x: to_class(JSONEncoder, x), from_none], self.json_encoder)
+        if self.json_exception is not None:
+            result["JsonException"] = from_union([to_float, lambda x: to_class(JSONException, x), from_none], self.json_exception)
+        if self.json_generator is not None:
+            result["JsonGenerator"] = from_union([to_float, lambda x: to_class(JSONGenerator, x), from_none], self.json_generator)
+        if self.json_node is not None:
+            result["JsonNode"] = from_union([to_float, lambda x: to_class(JSONNode, x), from_none], self.json_node)
+        if self.json_null is not None:
+            result["JSONNull"] = from_union([to_float, lambda x: to_class(JSONNull, x), from_none], self.json_null)
+        if self.json_parser is not None:
+            result["JsonParser"] = from_union([to_float, lambda x: to_class(JSONParser, x), from_none], self.json_parser)
+        if self.json_reader is not None:
+            result["JsonReader"] = from_union([to_float, lambda x: to_class(JSONReader, x), from_none], self.json_reader)
+        if self.json_token_type is not None:
+            result["JsonTokenType"] = from_union([to_float, lambda x: to_class(JSONTokenType, x), from_none], self.json_token_type)
         if self.top_level_lambda is not None:
             result["lambda"] = from_union([to_float, lambda x: to_class(Lambda, x), from_none], self.top_level_lambda)
         if self.lazy is not None:
@@ -4788,10 +5490,14 @@ class TopLevel:
             result["nonlocal"] = from_union([to_float, lambda x: to_class(Nonlocal, x), from_none], self.top_level_nonlocal)
         if self.nonmutating is not None:
             result["nonmutating"] = from_union([to_float, lambda x: to_class(Nonmutating, x), from_none], self.nonmutating)
+        if self.no_such_method is not None:
+            result["noSuchMethod"] = from_union([to_float, lambda x: to_class(NoSuchMethod, x), from_none], self.no_such_method)
         if self.top_level_not is not None:
             result["not"] = from_union([to_float, lambda x: to_class(Not, x), from_none], self.top_level_not)
         if self.not_eq is not None:
             result["not_eq"] = from_union([to_float, lambda x: to_class(NotEq, x), from_none], self.not_eq)
+        if self.ns_error is not None:
+            result["NSError"] = from_union([to_float, lambda x: to_class(NSError, x), from_none], self.ns_error)
         if self.ns_string is not None:
             result["NSString"] = from_union([to_float, lambda x: to_class(NSString, x), from_none], self.ns_string)
         if self.null is not None:
@@ -4804,6 +5510,8 @@ class TopLevel:
             result["number"] = from_union([to_float, lambda x: to_class(Number, x), from_none], self.number)
         if self.object is not None:
             result["object"] = from_union([to_float, lambda x: to_class(Object, x), from_none], self.object)
+        if self.object_mapper is not None:
+            result["ObjectMapper"] = from_union([to_float, lambda x: to_class(ObjectMapper, x), from_none], self.object_mapper)
         if self.of is not None:
             result["of"] = from_union([to_float, lambda x: to_class(Of, x), from_none], self.of)
         if self.oneway is not None:
@@ -4840,6 +5548,8 @@ class TopLevel:
             result["print"] = from_union([to_float, lambda x: to_class(Print, x), from_none], self.top_level_print)
         if self.printf is not None:
             result["printf"] = from_union([to_float, lambda x: to_class(Printf, x), from_none], self.printf)
+        if self.print_members is not None:
+            result["printMembers"] = from_union([to_float, lambda x: to_class(PrintMembers, x), from_none], self.print_members)
         if self.private is not None:
             result["private"] = from_union([to_float, lambda x: to_class(Private, x), from_none], self.private)
         if self.protected is not None:
@@ -4860,6 +5570,8 @@ class TopLevel:
             result["readonly"] = from_union([to_float, lambda x: to_class(Readonly, x), from_none], self.readonly)
         if self.ref is not None:
             result["ref"] = from_union([to_float, lambda x: to_class(Ref, x), from_none], self.ref)
+        if self.reg_exp is not None:
+            result["RegExp"] = from_union([to_float, lambda x: to_class(RegExp, x), from_none], self.reg_exp)
         if self.register is not None:
             result["register"] = from_union([to_float, lambda x: to_class(Register, x), from_none], self.register)
         if self.reinterpret_cast is not None:
@@ -4882,6 +5594,10 @@ class TopLevel:
             result["return"] = from_union([to_float, lambda x: to_class(Return, x), from_none], self.top_level_return)
         if self.right is not None:
             result["right"] = from_union([to_float, lambda x: to_class(Right, x), from_none], self.right)
+        if self.runtime_type is not None:
+            result["runtimeType"] = from_union([to_float, lambda x: to_class(RuntimeType, x), from_none], self.runtime_type)
+        if self.s is not None:
+            result["s"] = from_union([to_float, lambda x: to_class(S, x), from_none], self.s)
         if self.sbyte is not None:
             result["sbyte"] = from_union([to_float, lambda x: to_class(Sbyte, x), from_none], self.sbyte)
         if self.sealed is not None:
@@ -4896,22 +5612,32 @@ class TopLevel:
             result["self"] = from_union([to_float, lambda x: to_class(SelfClass, x), from_none], self.purple_self)
         if self.serialize is not None:
             result["serialize"] = from_union([to_float, lambda x: to_class(Serialize, x), from_none], self.serialize)
+        if self.serializer_provider is not None:
+            result["SerializerProvider"] = from_union([to_float, lambda x: to_class(SerializerProvider, x), from_none], self.serializer_provider)
         if self.set is not None:
             result["set"] = from_union([to_float, lambda x: to_class(Set, x), from_none], self.set)
         if self.short is not None:
             result["short"] = from_union([to_float, lambda x: to_class(Short, x), from_none], self.short)
         if self.signed is not None:
             result["signed"] = from_union([to_float, lambda x: to_class(Signed, x), from_none], self.signed)
+        if self.simple_module is not None:
+            result["SimpleModule"] = from_union([to_float, lambda x: to_class(SimpleModule, x), from_none], self.simple_module)
         if self.sizeof is not None:
             result["sizeof"] = from_union([to_float, lambda x: to_class(Sizeof, x), from_none], self.sizeof)
         if self.stackalloc is not None:
             result["stackalloc"] = from_union([to_float, lambda x: to_class(Stackalloc, x), from_none], self.stackalloc)
+        if self.standards is not None:
+            result["Standards"] = from_union([to_float, lambda x: to_class(Standards, x), from_none], self.standards)
         if self.static is not None:
             result["static"] = from_union([to_float, lambda x: to_class(Static, x), from_none], self.static)
         if self.static_assert is not None:
             result["static_assert"] = from_union([to_float, lambda x: to_class(StaticAssert, x), from_none], self.static_assert)
         if self.static_cast is not None:
             result["static_cast"] = from_union([to_float, lambda x: to_class(StaticCast, x), from_none], self.static_cast)
+        if self.std_deserializer is not None:
+            result["StdDeserializer"] = from_union([to_float, lambda x: to_class(StdDeserializer, x), from_none], self.std_deserializer)
+        if self.std_serializer is not None:
+            result["StdSerializer"] = from_union([to_float, lambda x: to_class(StdSerializer, x), from_none], self.std_serializer)
         if self.strictfp is not None:
             result["strictfp"] = from_union([to_float, lambda x: to_class(Strictfp, x), from_none], self.strictfp)
         if self.string is not None:
@@ -4942,10 +5668,16 @@ class TopLevel:
             result["throw"] = from_union([to_float, lambda x: to_class(Throw, x), from_none], self.throw)
         if self.throws is not None:
             result["throws"] = from_union([to_float, lambda x: to_class(Throws, x), from_none], self.throws)
+        if self.time_only is not None:
+            result["TimeOnly"] = from_union([to_float, lambda x: to_class(TimeOnly, x), from_none], self.time_only)
+        if self.time_only_converter is not None:
+            result["TimeOnlyConverter"] = from_union([to_float, lambda x: to_class(TimeOnlyConverter, x), from_none], self.time_only_converter)
         if self.to_json is not None:
             result["to_json"] = from_union([to_float, lambda x: to_class(ToJSON, x), from_none], self.to_json)
         if self.top_level is not None:
             result["top_level"] = from_union([to_float, lambda x: to_class(TopLevelClass, x), from_none], self.top_level)
+        if self.to_string is not None:
+            result["toString"] = from_union([to_float, lambda x: to_class(ToString, x), from_none], self.to_string)
         if self.transient is not None:
             result["transient"] = from_union([to_float, lambda x: to_class(Transient, x), from_none], self.transient)
         if self.true is not None:
@@ -4988,6 +5720,12 @@ class TopLevel:
             result["ushort"] = from_union([to_float, lambda x: to_class(Ushort, x), from_none], self.ushort)
         if self.using is not None:
             result["using"] = from_union([to_float, lambda x: to_class(Using, x), from_none], self.using)
+        if self.utf8_json_reader is not None:
+            result["Utf8JsonReader"] = from_union([to_float, lambda x: to_class(Utf8JSONReader, x), from_none], self.utf8_json_reader)
+        if self.utf8_json_writer is not None:
+            result["Utf8JsonWriter"] = from_union([to_float, lambda x: to_class(Utf8JSONWriter, x), from_none], self.utf8_json_writer)
+        if self.uuid is not None:
+            result["UUID"] = from_union([to_float, lambda x: to_class(UUIDClass, x), from_none], self.uuid)
         if self.var is not None:
             result["var"] = from_union([to_float, lambda x: to_class(Var, x), from_none], self.var)
         if self.virtual is not None:
diff --git a/base/schema-ruby/test/inputs/schema/keyword-enum.schema/default/TopLevel.rb b/head/schema-ruby/test/inputs/schema/keyword-enum.schema/default/TopLevel.rb
index b772442..d5ce084 100644
--- a/base/schema-ruby/test/inputs/schema/keyword-enum.schema/default/TopLevel.rb
+++ b/head/schema-ruby/test/inputs/schema/keyword-enum.schema/default/TopLevel.rb
@@ -17,287 +17,328 @@ module Types
 
   Hash   = Strict::Hash
   String = Strict::String
-  Enum   = Strict::String.enum("_", "_Bool", "_Complex", "_Imaginery", "abstract", "alignas", "alignof", "and", "and_eq", "any", "Any", "array", "as", "asm", "assert", "associatedtype", "associativity", "async", "atomic", "atomic_cancel", "atomic_commit", "atomic_noexcept", "auto", "await", "base", "bitand", "bitor", "BOOL", "bool", "boolean", "break", "bycopy", "byref", "byte", "case", "catch", "chan", "char", "char16_t", "char32_t", "checked", "class", "Class", "co_await", "co_return", "co_yield", "compl", "concept", "console", "const", "const_cast", "constexpr", "constructor", "continue", "convenience", "convert", "converter", "date", "date_parse_handling", "debugger", "decimal", "declare", "decltype", "decode_string", "def", "default", "defer", "deinit", "del", "delegate", "delete", "dict", "dictionary", "didSet", "do", "double", "dynamic", "dynamic_cast", "elif", "else", "encode_quick_type", "enum", "event", "except", "exception", "explicit", "export", "exposing", "extends", "extension", "extern", "fallthrough", "false", "False", "fileprivate", "final", "finally", "fixed", "float", "for", "foreach", "friend", "from", "from_json", "func", "function", "get", "global", "go", "goto", "guard", "hasOwnProperty", "id", "if", "IMP", "implements", "implicit", "import", "in", "indirect", "infix", "init", "inline", "inout", "instanceof", "int", "interface", "internal", "iterable", "is", "jdec", "jenc", "jpipe", "json", "json_converter", "json_serializer", "json_token", "json_writer", "lambda", "lazy", "left", "let", "list", "lock", "long", "map", "metadata_property_handling", "module", "mutable", "mutating", "namespace", "native", "new", "newtonsoft", "nil", "NO", "noexcept", "nonatomic", "none", "None", "nonlocal", "nonmutating", "not", "not_eq", "NSString", "NULL", "null", "nullptr", "number", "object", "of", "oneway", "open", "operator", "optional", "or", "or_eq", "out", "override", "package", "params", "pass", "port", "postfix", "precedence", "prefix", "print", "printf", "private", "protected", "Protocol", "protocol", "public", "quicktype", "raise", "range", "readonly", "ref", "register", "reinterpret_cast", "repeat", "require", "required", "requires", "restrict", "retain", "rethrows", "return", "right", "sbyte", "sealed", "SEL", "select", "Self", "self", "serialize", "set", "short", "signed", "sizeof", "stackalloc", "static", "static_assert", "static_cast", "strictfp", "string", "struct", "subscript", "super", "switch", "symbol", "synchronized", "system", "template", "then", "this", "thread_local", "throw", "throws", "to_json", "top_level", "transient", "True", "true", "try", "Type", "type", "typealias", "typedef", "typeid", "typename", "typeof", "uint", "ulong", "unchecked", "undefined", "union", "unowned", "unsafe", "unsigned", "ushort", "using", "var", "virtual", "void", "volatile", "wchar_t", "weak", "where", "while", "willSet", "with", "xor", "xor_eq", "YES", "yield", "dummy")
+  Enum   = Strict::String.enum("_", "_Bool", "_Complex", "_Imaginery", "abstract", "alignas", "alignof", "and", "and_eq", "any", "Any", "array", "as", "asm", "assert", "associatedtype", "associativity", "async", "atomic", "atomic_cancel", "atomic_commit", "atomic_noexcept", "auto", "await", "base", "bitand", "bitor", "BOOL", "bool", "boolean", "break", "bycopy", "byref", "byte", "case", "catch", "chan", "char", "char16_t", "char32_t", "checked", "class", "Class", "clone", "co_await", "co_return", "co_yield", "compl", "concept", "console", "const", "const_cast", "constexpr", "constructor", "continue", "convenience", "convert", "converter", "CultureInfo", "date", "date_parse_handling", "DateFormatter", "DateOnly", "DateOnlyConverter", "DateTime", "DateTimeStyles", "debugger", "decimal", "declare", "decltype", "decode_string", "def", "default", "defer", "deinit", "del", "delegate", "delete", "dict", "dictionary", "didSet", "do", "double", "dynamic", "dynamic_cast", "elif", "else", "encode_quick_type", "enum", "EnumValues", "equalityContract", "event", "except", "exception", "explicit", "export", "exposing", "extends", "extension", "extern", "fallthrough", "false", "False", "fileprivate", "final", "finally", "fixed", "float", "for", "foreach", "FormatException", "friend", "from", "from_json", "func", "function", "get", "global", "go", "goto", "guard", "hashCode", "hasOwnProperty", "id", "if", "IMP", "implements", "implicit", "import", "in", "indirect", "infix", "init", "inline", "inout", "instanceof", "int", "interface", "internal", "IsoDateTimeOffsetConverter", "iterable", "is", "jdec", "jenc", "jpipe", "json", "json_converter", "json_serializer", "json_token", "json_writer", "JSONAny", "JSONCodingKey", "JSONDecoder", "JSONEncoder", "JsonException", "JsonGenerator", "JsonNode", "JSONNull", "JsonParser", "JsonReader", "JsonTokenType", "lambda", "lazy", "left", "let", "list", "lock", "long", "map", "metadata_property_handling", "module", "mutable", "mutating", "namespace", "native", "new", "newtonsoft", "nil", "NO", "noexcept", "nonatomic", "none", "None", "nonlocal", "nonmutating", "noSuchMethod", "not", "not_eq", "NSError", "NSString", "NULL", "null", "nullptr", "number", "object", "ObjectMapper", "of", "oneway", "open", "operator", "optional", "or", "or_eq", "out", "override", "package", "params", "pass", "port", "postfix", "precedence", "prefix", "print", "printf", "printMembers", "private", "protected", "Protocol", "protocol", "public", "quicktype", "raise", "range", "readonly", "ref", "RegExp", "register", "reinterpret_cast", "repeat", "require", "required", "requires", "restrict", "retain", "rethrows", "return", "right", "runtimeType", "s", "sbyte", "sealed", "SEL", "select", "Self", "self", "serialize", "SerializerProvider", "set", "short", "signed", "SimpleModule", "sizeof", "stackalloc", "Standards", "static", "static_assert", "static_cast", "StdDeserializer", "StdSerializer", "strictfp", "string", "struct", "subscript", "super", "switch", "symbol", "synchronized", "system", "template", "then", "this", "thread_local", "throw", "throws", "TimeOnly", "TimeOnlyConverter", "to_json", "top_level", "toString", "transient", "True", "true", "try", "Type", "type", "typealias", "typedef", "typeid", "typename", "typeof", "uint", "ulong", "unchecked", "undefined", "union", "unowned", "unsafe", "unsigned", "ushort", "using", "Utf8JsonReader", "Utf8JsonWriter", "UUID", "var", "virtual", "void", "volatile", "wchar_t", "weak", "where", "while", "willSet", "with", "xor", "xor_eq", "YES", "yield", "dummy")
 end
 
 module Enum
-  Empty                    = "_"
-  Bool                     = "_Bool"
-  Complex                  = "_Complex"
-  Imaginery                = "_Imaginery"
-  Abstract                 = "abstract"
-  Alignas                  = "alignas"
-  Alignof                  = "alignof"
-  And                      = "and"
-  AndEq                    = "and_eq"
-  Any                      = "any"
-  EnumAny                  = "Any"
-  Array                    = "array"
-  As                       = "as"
-  ASM                      = "asm"
-  Assert                   = "assert"
-  Associatedtype           = "associatedtype"
-  Associativity            = "associativity"
-  Async                    = "async"
-  Atomic                   = "atomic"
-  AtomicCancel             = "atomic_cancel"
-  AtomicCommit             = "atomic_commit"
-  AtomicNoexcept           = "atomic_noexcept"
-  Auto                     = "auto"
-  Await                    = "await"
-  Base                     = "base"
-  Bitand                   = "bitand"
-  Bitor                    = "bitor"
-  EnumBOOL                 = "BOOL"
-  EnumBool                 = "bool"
-  Boolean                  = "boolean"
-  Break                    = "break"
-  Bycopy                   = "bycopy"
-  Byref                    = "byref"
-  Byte                     = "byte"
-  Case                     = "case"
-  Catch                    = "catch"
-  Chan                     = "chan"
-  Char                     = "char"
-  Char16T                  = "char16_t"
-  Char32T                  = "char32_t"
-  Checked                  = "checked"
-  Class                    = "class"
-  EnumClass                = "Class"
-  CoAwait                  = "co_await"
-  CoReturn                 = "co_return"
-  CoYield                  = "co_yield"
-  Compl                    = "compl"
-  Concept                  = "concept"
-  Console                  = "console"
-  Const                    = "const"
-  ConstCast                = "const_cast"
-  Constexpr                = "constexpr"
-  Constructor              = "constructor"
-  Continue                 = "continue"
-  Convenience              = "convenience"
-  Convert                  = "convert"
-  Converter                = "converter"
-  Date                     = "date"
-  DateParseHandling        = "date_parse_handling"
-  Debugger                 = "debugger"
-  Decimal                  = "decimal"
-  Declare                  = "declare"
-  Decltype                 = "decltype"
-  DecodeString             = "decode_string"
-  Def                      = "def"
-  Default                  = "default"
-  Defer                    = "defer"
-  Deinit                   = "deinit"
-  Del                      = "del"
-  Delegate                 = "delegate"
-  Delete                   = "delete"
-  Dict                     = "dict"
-  Dictionary               = "dictionary"
-  DidSet                   = "didSet"
-  Do                       = "do"
-  Double                   = "double"
-  Dynamic                  = "dynamic"
-  DynamicCast              = "dynamic_cast"
-  Elif                     = "elif"
-  Else                     = "else"
-  EncodeQuickType          = "encode_quick_type"
-  Enum                     = "enum"
-  Event                    = "event"
-  Except                   = "except"
-  Exception                = "exception"
-  Explicit                 = "explicit"
-  Export                   = "export"
-  Exposing                 = "exposing"
-  Extends                  = "extends"
-  Extension                = "extension"
-  Extern                   = "extern"
-  Fallthrough              = "fallthrough"
-  False                    = "false"
-  EnumFalse                = "False"
-  Fileprivate              = "fileprivate"
-  Final                    = "final"
-  Finally                  = "finally"
-  Fixed                    = "fixed"
-  Float                    = "float"
-  For                      = "for"
-  Foreach                  = "foreach"
-  Friend                   = "friend"
-  From                     = "from"
-  FromJSON                 = "from_json"
-  Func                     = "func"
-  Function                 = "function"
-  Get                      = "get"
-  Global                   = "global"
-  Go                       = "go"
-  Goto                     = "goto"
-  Guard                    = "guard"
-  HasOwnProperty           = "hasOwnProperty"
-  ID                       = "id"
-  If                       = "if"
-  Imp                      = "IMP"
-  Implements               = "implements"
-  Implicit                 = "implicit"
-  Import                   = "import"
-  In                       = "in"
-  Indirect                 = "indirect"
-  Infix                    = "infix"
-  Init                     = "init"
-  Inline                   = "inline"
-  Inout                    = "inout"
-  Instanceof               = "instanceof"
-  Int                      = "int"
-  Interface                = "interface"
-  Internal                 = "internal"
-  Iterable                 = "iterable"
-  Is                       = "is"
-  Jdec                     = "jdec"
-  Jenc                     = "jenc"
-  Jpipe                    = "jpipe"
-  JSON                     = "json"
-  JSONConverter            = "json_converter"
-  JSONSerializer           = "json_serializer"
-  JSONToken                = "json_token"
-  JSONWriter               = "json_writer"
-  Lambda                   = "lambda"
-  Lazy                     = "lazy"
-  Left                     = "left"
-  Let                      = "let"
-  List                     = "list"
-  Lock                     = "lock"
-  Long                     = "long"
-  Map                      = "map"
-  MetadataPropertyHandling = "metadata_property_handling"
-  Module                   = "module"
-  Mutable                  = "mutable"
-  Mutating                 = "mutating"
-  Namespace                = "namespace"
-  Native                   = "native"
-  New                      = "new"
-  Newtonsoft               = "newtonsoft"
-  Nil                      = "nil"
-  No                       = "NO"
-  Noexcept                 = "noexcept"
-  Nonatomic                = "nonatomic"
-  None                     = "none"
-  EnumNone                 = "None"
-  Nonlocal                 = "nonlocal"
-  Nonmutating              = "nonmutating"
-  Not                      = "not"
-  NotEq                    = "not_eq"
-  NSString                 = "NSString"
-  Null                     = "NULL"
-  EnumNull                 = "null"
-  Nullptr                  = "nullptr"
-  Number                   = "number"
-  Object                   = "object"
-  Of                       = "of"
-  Oneway                   = "oneway"
-  Open                     = "open"
-  Operator                 = "operator"
-  Optional                 = "optional"
-  Or                       = "or"
-  OrEq                     = "or_eq"
-  Out                      = "out"
-  Override                 = "override"
-  Package                  = "package"
-  Params                   = "params"
-  Pass                     = "pass"
-  Port                     = "port"
-  Postfix                  = "postfix"
-  Precedence               = "precedence"
-  Prefix                   = "prefix"
-  Print                    = "print"
-  Printf                   = "printf"
-  Private                  = "private"
-  Protected                = "protected"
-  Protocol                 = "Protocol"
-  EnumProtocol             = "protocol"
-  Public                   = "public"
-  Quicktype                = "quicktype"
-  Raise                    = "raise"
-  Range                    = "range"
-  Readonly                 = "readonly"
-  Ref                      = "ref"
-  Register                 = "register"
-  ReinterpretCast          = "reinterpret_cast"
-  Repeat                   = "repeat"
-  Require                  = "require"
-  Required                 = "required"
-  Requires                 = "requires"
-  Restrict                 = "restrict"
-  Retain                   = "retain"
-  Rethrows                 = "rethrows"
-  Return                   = "return"
-  Right                    = "right"
-  Sbyte                    = "sbyte"
-  Sealed                   = "sealed"
-  Sel                      = "SEL"
-  Select                   = "select"
-  Self                     = "Self"
-  EnumSelf                 = "self"
-  Serialize                = "serialize"
-  Set                      = "set"
-  Short                    = "short"
-  Signed                   = "signed"
-  Sizeof                   = "sizeof"
-  Stackalloc               = "stackalloc"
-  Static                   = "static"
-  StaticAssert             = "static_assert"
-  StaticCast               = "static_cast"
-  Strictfp                 = "strictfp"
-  String                   = "string"
-  Struct                   = "struct"
-  Subscript                = "subscript"
-  Super                    = "super"
-  Switch                   = "switch"
-  Symbol                   = "symbol"
-  Synchronized             = "synchronized"
-  System                   = "system"
-  Template                 = "template"
-  Then                     = "then"
-  This                     = "this"
-  ThreadLocal              = "thread_local"
-  Throw                    = "throw"
-  Throws                   = "throws"
-  ToJSON                   = "to_json"
-  TopLevel                 = "top_level"
-  Transient                = "transient"
-  True                     = "True"
-  EnumTrue                 = "true"
-  Try                      = "try"
-  Type                     = "Type"
-  EnumType                 = "type"
-  Typealias                = "typealias"
-  Typedef                  = "typedef"
-  Typeid                   = "typeid"
-  Typename                 = "typename"
-  Typeof                   = "typeof"
-  Uint                     = "uint"
-  Ulong                    = "ulong"
-  Unchecked                = "unchecked"
-  Undefined                = "undefined"
-  Union                    = "union"
-  Unowned                  = "unowned"
-  Unsafe                   = "unsafe"
-  Unsigned                 = "unsigned"
-  Ushort                   = "ushort"
-  Using                    = "using"
-  Var                      = "var"
-  Virtual                  = "virtual"
-  Void                     = "void"
-  Volatile                 = "volatile"
-  WcharT                   = "wchar_t"
-  Weak                     = "weak"
-  Where                    = "where"
-  While                    = "while"
-  WillSet                  = "willSet"
-  With                     = "with"
-  Xor                      = "xor"
-  XorEq                    = "xor_eq"
-  Yes                      = "YES"
-  Yield                    = "yield"
-  Dummy                    = "dummy"
+  Empty                      = "_"
+  Bool                       = "_Bool"
+  Complex                    = "_Complex"
+  Imaginery                  = "_Imaginery"
+  Abstract                   = "abstract"
+  Alignas                    = "alignas"
+  Alignof                    = "alignof"
+  And                        = "and"
+  AndEq                      = "and_eq"
+  Any                        = "any"
+  EnumAny                    = "Any"
+  Array                      = "array"
+  As                         = "as"
+  ASM                        = "asm"
+  Assert                     = "assert"
+  Associatedtype             = "associatedtype"
+  Associativity              = "associativity"
+  Async                      = "async"
+  Atomic                     = "atomic"
+  AtomicCancel               = "atomic_cancel"
+  AtomicCommit               = "atomic_commit"
+  AtomicNoexcept             = "atomic_noexcept"
+  Auto                       = "auto"
+  Await                      = "await"
+  Base                       = "base"
+  Bitand                     = "bitand"
+  Bitor                      = "bitor"
+  EnumBOOL                   = "BOOL"
+  EnumBool                   = "bool"
+  Boolean                    = "boolean"
+  Break                      = "break"
+  Bycopy                     = "bycopy"
+  Byref                      = "byref"
+  Byte                       = "byte"
+  Case                       = "case"
+  Catch                      = "catch"
+  Chan                       = "chan"
+  Char                       = "char"
+  Char16T                    = "char16_t"
+  Char32T                    = "char32_t"
+  Checked                    = "checked"
+  Class                      = "class"
+  EnumClass                  = "Class"
+  Clone                      = "clone"
+  CoAwait                    = "co_await"
+  CoReturn                   = "co_return"
+  CoYield                    = "co_yield"
+  Compl                      = "compl"
+  Concept                    = "concept"
+  Console                    = "console"
+  Const                      = "const"
+  ConstCast                  = "const_cast"
+  Constexpr                  = "constexpr"
+  Constructor                = "constructor"
+  Continue                   = "continue"
+  Convenience                = "convenience"
+  Convert                    = "convert"
+  Converter                  = "converter"
+  CultureInfo                = "CultureInfo"
+  Date                       = "date"
+  DateParseHandling          = "date_parse_handling"
+  DateFormatter              = "DateFormatter"
+  DateOnly                   = "DateOnly"
+  DateOnlyConverter          = "DateOnlyConverter"
+  DateTime                   = "DateTime"
+  DateTimeStyles             = "DateTimeStyles"
+  Debugger                   = "debugger"
+  Decimal                    = "decimal"
+  Declare                    = "declare"
+  Decltype                   = "decltype"
+  DecodeString               = "decode_string"
+  Def                        = "def"
+  Default                    = "default"
+  Defer                      = "defer"
+  Deinit                     = "deinit"
+  Del                        = "del"
+  Delegate                   = "delegate"
+  Delete                     = "delete"
+  Dict                       = "dict"
+  Dictionary                 = "dictionary"
+  DidSet                     = "didSet"
+  Do                         = "do"
+  Double                     = "double"
+  Dynamic                    = "dynamic"
+  DynamicCast                = "dynamic_cast"
+  Elif                       = "elif"
+  Else                       = "else"
+  EncodeQuickType            = "encode_quick_type"
+  Enum                       = "enum"
+  EnumValues                 = "EnumValues"
+  EqualityContract           = "equalityContract"
+  Event                      = "event"
+  Except                     = "except"
+  Exception                  = "exception"
+  Explicit                   = "explicit"
+  Export                     = "export"
+  Exposing                   = "exposing"
+  Extends                    = "extends"
+  Extension                  = "extension"
+  Extern                     = "extern"
+  Fallthrough                = "fallthrough"
+  False                      = "false"
+  EnumFalse                  = "False"
+  Fileprivate                = "fileprivate"
+  Final                      = "final"
+  Finally                    = "finally"
+  Fixed                      = "fixed"
+  Float                      = "float"
+  For                        = "for"
+  Foreach                    = "foreach"
+  FormatException            = "FormatException"
+  Friend                     = "friend"
+  From                       = "from"
+  FromJSON                   = "from_json"
+  Func                       = "func"
+  Function                   = "function"
+  Get                        = "get"
+  Global                     = "global"
+  Go                         = "go"
+  Goto                       = "goto"
+  Guard                      = "guard"
+  HashCode                   = "hashCode"
+  HasOwnProperty             = "hasOwnProperty"
+  ID                         = "id"
+  If                         = "if"
+  Imp                        = "IMP"
+  Implements                 = "implements"
+  Implicit                   = "implicit"
+  Import                     = "import"
+  In                         = "in"
+  Indirect                   = "indirect"
+  Infix                      = "infix"
+  Init                       = "init"
+  Inline                     = "inline"
+  Inout                      = "inout"
+  Instanceof                 = "instanceof"
+  Int                        = "int"
+  Interface                  = "interface"
+  Internal                   = "internal"
+  ISODateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
+  Iterable                   = "iterable"
+  Is                         = "is"
+  Jdec                       = "jdec"
+  Jenc                       = "jenc"
+  Jpipe                      = "jpipe"
+  JSON                       = "json"
+  JSONConverter              = "json_converter"
+  JSONSerializer             = "json_serializer"
+  JSONToken                  = "json_token"
+  JSONWriter                 = "json_writer"
+  JSONAny                    = "JSONAny"
+  JSONCodingKey              = "JSONCodingKey"
+  JSONDecoder                = "JSONDecoder"
+  JSONEncoder                = "JSONEncoder"
+  JSONException              = "JsonException"
+  JSONGenerator              = "JsonGenerator"
+  JSONNode                   = "JsonNode"
+  JSONNull                   = "JSONNull"
+  JSONParser                 = "JsonParser"
+  JSONReader                 = "JsonReader"
+  JSONTokenType              = "JsonTokenType"
+  Lambda                     = "lambda"
+  Lazy                       = "lazy"
+  Left                       = "left"
+  Let                        = "let"
+  List                       = "list"
+  Lock                       = "lock"
+  Long                       = "long"
+  Map                        = "map"
+  MetadataPropertyHandling   = "metadata_property_handling"
+  Module                     = "module"
+  Mutable                    = "mutable"
+  Mutating                   = "mutating"
+  Namespace                  = "namespace"
+  Native                     = "native"
+  New                        = "new"
+  Newtonsoft                 = "newtonsoft"
+  Nil                        = "nil"
+  No                         = "NO"
+  Noexcept                   = "noexcept"
+  Nonatomic                  = "nonatomic"
+  None                       = "none"
+  EnumNone                   = "None"
+  Nonlocal                   = "nonlocal"
+  Nonmutating                = "nonmutating"
+  NoSuchMethod               = "noSuchMethod"
+  Not                        = "not"
+  NotEq                      = "not_eq"
+  NSError                    = "NSError"
+  NSString                   = "NSString"
+  Null                       = "NULL"
+  EnumNull                   = "null"
+  Nullptr                    = "nullptr"
+  Number                     = "number"
+  Object                     = "object"
+  ObjectMapper               = "ObjectMapper"
+  Of                         = "of"
+  Oneway                     = "oneway"
+  Open                       = "open"
+  Operator                   = "operator"
+  Optional                   = "optional"
+  Or                         = "or"
+  OrEq                       = "or_eq"
+  Out                        = "out"
+  Override                   = "override"
+  Package                    = "package"
+  Params                     = "params"
+  Pass                       = "pass"
+  Port                       = "port"
+  Postfix                    = "postfix"
+  Precedence                 = "precedence"
+  Prefix                     = "prefix"
+  Print                      = "print"
+  Printf                     = "printf"
+  PrintMembers               = "printMembers"
+  Private                    = "private"
+  Protected                  = "protected"
+  Protocol                   = "Protocol"
+  EnumProtocol               = "protocol"
+  Public                     = "public"
+  Quicktype                  = "quicktype"
+  Raise                      = "raise"
+  Range                      = "range"
+  Readonly                   = "readonly"
+  Ref                        = "ref"
+  RegExp                     = "RegExp"
+  Register                   = "register"
+  ReinterpretCast            = "reinterpret_cast"
+  Repeat                     = "repeat"
+  Require                    = "require"
+  Required                   = "required"
+  Requires                   = "requires"
+  Restrict                   = "restrict"
+  Retain                     = "retain"
+  Rethrows                   = "rethrows"
+  Return                     = "return"
+  Right                      = "right"
+  RuntimeType                = "runtimeType"
+  S                          = "s"
+  Sbyte                      = "sbyte"
+  Sealed                     = "sealed"
+  Sel                        = "SEL"
+  Select                     = "select"
+  Self                       = "Self"
+  EnumSelf                   = "self"
+  Serialize                  = "serialize"
+  SerializerProvider         = "SerializerProvider"
+  Set                        = "set"
+  Short                      = "short"
+  Signed                     = "signed"
+  SimpleModule               = "SimpleModule"
+  Sizeof                     = "sizeof"
+  Stackalloc                 = "stackalloc"
+  Standards                  = "Standards"
+  Static                     = "static"
+  StaticAssert               = "static_assert"
+  StaticCast                 = "static_cast"
+  StdDeserializer            = "StdDeserializer"
+  StdSerializer              = "StdSerializer"
+  Strictfp                   = "strictfp"
+  String                     = "string"
+  Struct                     = "struct"
+  Subscript                  = "subscript"
+  Super                      = "super"
+  Switch                     = "switch"
+  Symbol                     = "symbol"
+  Synchronized               = "synchronized"
+  System                     = "system"
+  Template                   = "template"
+  Then                       = "then"
+  This                       = "this"
+  ThreadLocal                = "thread_local"
+  Throw                      = "throw"
+  Throws                     = "throws"
+  TimeOnly                   = "TimeOnly"
+  TimeOnlyConverter          = "TimeOnlyConverter"
+  ToJSON                     = "to_json"
+  TopLevel                   = "top_level"
+  ToString                   = "toString"
+  Transient                  = "transient"
+  True                       = "True"
+  EnumTrue                   = "true"
+  Try                        = "try"
+  Type                       = "Type"
+  EnumType                   = "type"
+  Typealias                  = "typealias"
+  Typedef                    = "typedef"
+  Typeid                     = "typeid"
+  Typename                   = "typename"
+  Typeof                     = "typeof"
+  Uint                       = "uint"
+  Ulong                      = "ulong"
+  Unchecked                  = "unchecked"
+  Undefined                  = "undefined"
+  Union                      = "union"
+  Unowned                    = "unowned"
+  Unsafe                     = "unsafe"
+  Unsigned                   = "unsigned"
+  Ushort                     = "ushort"
+  Using                      = "using"
+  Utf8JSONReader             = "Utf8JsonReader"
+  Utf8JSONWriter             = "Utf8JsonWriter"
+  UUID                       = "UUID"
+  Var                        = "var"
+  Virtual                    = "virtual"
+  Void                       = "void"
+  Volatile                   = "volatile"
+  WcharT                     = "wchar_t"
+  Weak                       = "weak"
+  Where                      = "where"
+  While                      = "while"
+  WillSet                    = "willSet"
+  With                       = "with"
+  Xor                        = "xor"
+  XorEq                      = "xor_eq"
+  Yes                        = "YES"
+  Yield                      = "yield"
+  Dummy                      = "dummy"
 end
 
 class TopLevel < Dry::Struct
diff --git a/base/schema-ruby/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb b/head/schema-ruby/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
index e97d682..64ef3cb 100644
--- a/base/schema-ruby/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
+++ b/head/schema-ruby/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
@@ -2698,7 +2698,7 @@ class UnionConverter < Dry::Struct
   end
 end
 
-class DateClass < Dry::Struct
+class CultureInfo < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2720,20 +2720,20 @@ class DateClass < Dry::Struct
   end
 end
 
-class UnionDate < Dry::Struct
-  attribute :date_class, DateClass.optional
-  attribute :double,     Types::Double.optional
+class UnionCultureInfo < Dry::Struct
+  attribute :culture_info, CultureInfo.optional
+  attribute :double,       Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DateClass.from_dynamic!(d)
-      if schema.key(:date_class).type.right.valid? value
-        return new(date_class: value, double: nil)
+      value = CultureInfo.from_dynamic!(d)
+      if schema.key(:culture_info).type.right.valid? value
+        return new(culture_info: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, date_class: nil)
+      return new(double: d, culture_info: nil)
     end
     raise "Invalid union"
   end
@@ -2743,8 +2743,8 @@ class UnionDate < Dry::Struct
   end
 
   def to_dynamic
-    if date_class != nil
-      date_class.to_dynamic
+    if culture_info != nil
+      culture_info.to_dynamic
     elsif double != nil
       double
     end
@@ -2755,7 +2755,7 @@ class UnionDate < Dry::Struct
   end
 end
 
-class DateParseHandling < Dry::Struct
+class DateClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2777,20 +2777,20 @@ class DateParseHandling < Dry::Struct
   end
 end
 
-class UnionDateParseHandling < Dry::Struct
-  attribute :date_parse_handling, DateParseHandling.optional
-  attribute :double,              Types::Double.optional
+class UnionDate < Dry::Struct
+  attribute :date_class, DateClass.optional
+  attribute :double,     Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DateParseHandling.from_dynamic!(d)
-      if schema.key(:date_parse_handling).type.right.valid? value
-        return new(date_parse_handling: value, double: nil)
+      value = DateClass.from_dynamic!(d)
+      if schema.key(:date_class).type.right.valid? value
+        return new(date_class: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, date_parse_handling: nil)
+      return new(double: d, date_class: nil)
     end
     raise "Invalid union"
   end
@@ -2800,8 +2800,8 @@ class UnionDateParseHandling < Dry::Struct
   end
 
   def to_dynamic
-    if date_parse_handling != nil
-      date_parse_handling.to_dynamic
+    if date_class != nil
+      date_class.to_dynamic
     elsif double != nil
       double
     end
@@ -2812,7 +2812,7 @@ class UnionDateParseHandling < Dry::Struct
   end
 end
 
-class Debugger < Dry::Struct
+class DateFormatter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2834,20 +2834,20 @@ class Debugger < Dry::Struct
   end
 end
 
-class UnionDebugger < Dry::Struct
-  attribute :debugger, Debugger.optional
-  attribute :double,   Types::Double.optional
+class UnionDateFormatter < Dry::Struct
+  attribute :date_formatter, DateFormatter.optional
+  attribute :double,         Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Debugger.from_dynamic!(d)
-      if schema.key(:debugger).type.right.valid? value
-        return new(debugger: value, double: nil)
+      value = DateFormatter.from_dynamic!(d)
+      if schema.key(:date_formatter).type.right.valid? value
+        return new(date_formatter: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, debugger: nil)
+      return new(double: d, date_formatter: nil)
     end
     raise "Invalid union"
   end
@@ -2857,8 +2857,8 @@ class UnionDebugger < Dry::Struct
   end
 
   def to_dynamic
-    if debugger != nil
-      debugger.to_dynamic
+    if date_formatter != nil
+      date_formatter.to_dynamic
     elsif double != nil
       double
     end
@@ -2869,7 +2869,7 @@ class UnionDebugger < Dry::Struct
   end
 end
 
-class Decimal < Dry::Struct
+class DateOnly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2891,20 +2891,20 @@ class Decimal < Dry::Struct
   end
 end
 
-class UnionDecimal < Dry::Struct
-  attribute :decimal, Decimal.optional
-  attribute :double,  Types::Double.optional
+class UnionDateOnly < Dry::Struct
+  attribute :date_only, DateOnly.optional
+  attribute :double,    Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Decimal.from_dynamic!(d)
-      if schema.key(:decimal).type.right.valid? value
-        return new(decimal: value, double: nil)
+      value = DateOnly.from_dynamic!(d)
+      if schema.key(:date_only).type.right.valid? value
+        return new(date_only: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decimal: nil)
+      return new(double: d, date_only: nil)
     end
     raise "Invalid union"
   end
@@ -2914,8 +2914,8 @@ class UnionDecimal < Dry::Struct
   end
 
   def to_dynamic
-    if decimal != nil
-      decimal.to_dynamic
+    if date_only != nil
+      date_only.to_dynamic
     elsif double != nil
       double
     end
@@ -2926,7 +2926,7 @@ class UnionDecimal < Dry::Struct
   end
 end
 
-class Declare < Dry::Struct
+class DateOnlyConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2948,20 +2948,20 @@ class Declare < Dry::Struct
   end
 end
 
-class UnionDeclare < Dry::Struct
-  attribute :declare, Declare.optional
-  attribute :double,  Types::Double.optional
+class UnionDateOnlyConverter < Dry::Struct
+  attribute :date_only_converter, DateOnlyConverter.optional
+  attribute :double,              Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Declare.from_dynamic!(d)
-      if schema.key(:declare).type.right.valid? value
-        return new(declare: value, double: nil)
+      value = DateOnlyConverter.from_dynamic!(d)
+      if schema.key(:date_only_converter).type.right.valid? value
+        return new(date_only_converter: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, declare: nil)
+      return new(double: d, date_only_converter: nil)
     end
     raise "Invalid union"
   end
@@ -2971,8 +2971,8 @@ class UnionDeclare < Dry::Struct
   end
 
   def to_dynamic
-    if declare != nil
-      declare.to_dynamic
+    if date_only_converter != nil
+      date_only_converter.to_dynamic
     elsif double != nil
       double
     end
@@ -2983,7 +2983,7 @@ class UnionDeclare < Dry::Struct
   end
 end
 
-class Decltype < Dry::Struct
+class DateParseHandling < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3005,20 +3005,20 @@ class Decltype < Dry::Struct
   end
 end
 
-class UnionDecltype < Dry::Struct
-  attribute :decltype, Decltype.optional
-  attribute :double,   Types::Double.optional
+class UnionDateParseHandling < Dry::Struct
+  attribute :date_parse_handling, DateParseHandling.optional
+  attribute :double,              Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Decltype.from_dynamic!(d)
-      if schema.key(:decltype).type.right.valid? value
-        return new(decltype: value, double: nil)
+      value = DateParseHandling.from_dynamic!(d)
+      if schema.key(:date_parse_handling).type.right.valid? value
+        return new(date_parse_handling: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decltype: nil)
+      return new(double: d, date_parse_handling: nil)
     end
     raise "Invalid union"
   end
@@ -3028,8 +3028,8 @@ class UnionDecltype < Dry::Struct
   end
 
   def to_dynamic
-    if decltype != nil
-      decltype.to_dynamic
+    if date_parse_handling != nil
+      date_parse_handling.to_dynamic
     elsif double != nil
       double
     end
@@ -3040,7 +3040,7 @@ class UnionDecltype < Dry::Struct
   end
 end
 
-class DecodeString < Dry::Struct
+class DateTimeClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3062,20 +3062,20 @@ class DecodeString < Dry::Struct
   end
 end
 
-class UnionDecodeString < Dry::Struct
-  attribute :decode_string, DecodeString.optional
-  attribute :double,        Types::Double.optional
+class UnionDateTime < Dry::Struct
+  attribute :date_time_class, DateTimeClass.optional
+  attribute :double,          Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DecodeString.from_dynamic!(d)
-      if schema.key(:decode_string).type.right.valid? value
-        return new(decode_string: value, double: nil)
+      value = DateTimeClass.from_dynamic!(d)
+      if schema.key(:date_time_class).type.right.valid? value
+        return new(date_time_class: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decode_string: nil)
+      return new(double: d, date_time_class: nil)
     end
     raise "Invalid union"
   end
@@ -3085,8 +3085,8 @@ class UnionDecodeString < Dry::Struct
   end
 
   def to_dynamic
-    if decode_string != nil
-      decode_string.to_dynamic
+    if date_time_class != nil
+      date_time_class.to_dynamic
     elsif double != nil
       double
     end
@@ -3097,7 +3097,7 @@ class UnionDecodeString < Dry::Struct
   end
 end
 
-class Defer < Dry::Struct
+class DateTimeStyles < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3119,20 +3119,20 @@ class Defer < Dry::Struct
   end
 end
 
-class UnionDefer < Dry::Struct
-  attribute :defer,  Defer.optional
-  attribute :double, Types::Double.optional
+class UnionDateTimeStyles < Dry::Struct
+  attribute :date_time_styles, DateTimeStyles.optional
+  attribute :double,           Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Defer.from_dynamic!(d)
-      if schema.key(:defer).type.right.valid? value
-        return new(defer: value, double: nil)
+      value = DateTimeStyles.from_dynamic!(d)
+      if schema.key(:date_time_styles).type.right.valid? value
+        return new(date_time_styles: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, defer: nil)
+      return new(double: d, date_time_styles: nil)
     end
     raise "Invalid union"
   end
@@ -3142,8 +3142,8 @@ class UnionDefer < Dry::Struct
   end
 
   def to_dynamic
-    if defer != nil
-      defer.to_dynamic
+    if date_time_styles != nil
+      date_time_styles.to_dynamic
     elsif double != nil
       double
     end
@@ -3154,7 +3154,7 @@ class UnionDefer < Dry::Struct
   end
 end
 
-class Deinit < Dry::Struct
+class Debugger < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3176,20 +3176,20 @@ class Deinit < Dry::Struct
   end
 end
 
-class UnionDeinit < Dry::Struct
-  attribute :deinit, Deinit.optional
-  attribute :double, Types::Double.optional
+class UnionDebugger < Dry::Struct
+  attribute :debugger, Debugger.optional
+  attribute :double,   Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Deinit.from_dynamic!(d)
-      if schema.key(:deinit).type.right.valid? value
-        return new(deinit: value, double: nil)
+      value = Debugger.from_dynamic!(d)
+      if schema.key(:debugger).type.right.valid? value
+        return new(debugger: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, deinit: nil)
+      return new(double: d, debugger: nil)
     end
     raise "Invalid union"
   end
@@ -3199,8 +3199,8 @@ class UnionDeinit < Dry::Struct
   end
 
   def to_dynamic
-    if deinit != nil
-      deinit.to_dynamic
+    if debugger != nil
+      debugger.to_dynamic
     elsif double != nil
       double
     end
@@ -3211,7 +3211,7 @@ class UnionDeinit < Dry::Struct
   end
 end
 
-class Del < Dry::Struct
+class Decimal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3233,20 +3233,20 @@ class Del < Dry::Struct
   end
 end
 
-class UnionDel < Dry::Struct
-  attribute :del,    Del.optional
-  attribute :double, Types::Double.optional
+class UnionDecimal < Dry::Struct
+  attribute :decimal, Decimal.optional
+  attribute :double,  Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Del.from_dynamic!(d)
-      if schema.key(:del).type.right.valid? value
-        return new(del: value, double: nil)
+      value = Decimal.from_dynamic!(d)
+      if schema.key(:decimal).type.right.valid? value
+        return new(decimal: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, del: nil)
+      return new(double: d, decimal: nil)
     end
     raise "Invalid union"
   end
@@ -3256,8 +3256,8 @@ class UnionDel < Dry::Struct
   end
 
   def to_dynamic
-    if del != nil
-      del.to_dynamic
+    if decimal != nil
+      decimal.to_dynamic
     elsif double != nil
       double
     end
@@ -3268,7 +3268,7 @@ class UnionDel < Dry::Struct
   end
 end
 
-class Delegate < Dry::Struct
+class Declare < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3290,20 +3290,20 @@ class Delegate < Dry::Struct
   end
 end
 
-class UnionDelegate < Dry::Struct
-  attribute :delegate, Delegate.optional
-  attribute :double,   Types::Double.optional
+class UnionDeclare < Dry::Struct
+  attribute :declare, Declare.optional
+  attribute :double,  Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Delegate.from_dynamic!(d)
-      if schema.key(:delegate).type.right.valid? value
-        return new(delegate: value, double: nil)
+      value = Declare.from_dynamic!(d)
+      if schema.key(:declare).type.right.valid? value
+        return new(declare: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, delegate: nil)
+      return new(double: d, declare: nil)
     end
     raise "Invalid union"
   end
@@ -3313,8 +3313,8 @@ class UnionDelegate < Dry::Struct
   end
 
   def to_dynamic
-    if delegate != nil
-      delegate.to_dynamic
+    if declare != nil
+      declare.to_dynamic
     elsif double != nil
       double
     end
@@ -3325,7 +3325,7 @@ class UnionDelegate < Dry::Struct
   end
 end
 
-class Delete < Dry::Struct
+class Decltype < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3347,20 +3347,20 @@ class Delete < Dry::Struct
   end
 end
 
-class UnionDelete < Dry::Struct
-  attribute :delete, Delete.optional
-  attribute :double, Types::Double.optional
+class UnionDecltype < Dry::Struct
+  attribute :decltype, Decltype.optional
+  attribute :double,   Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Delete.from_dynamic!(d)
-      if schema.key(:delete).type.right.valid? value
-        return new(delete: value, double: nil)
+      value = Decltype.from_dynamic!(d)
+      if schema.key(:decltype).type.right.valid? value
+        return new(decltype: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, delete: nil)
+      return new(double: d, decltype: nil)
     end
     raise "Invalid union"
   end
@@ -3370,8 +3370,8 @@ class UnionDelete < Dry::Struct
   end
 
   def to_dynamic
-    if delete != nil
-      delete.to_dynamic
+    if decltype != nil
+      decltype.to_dynamic
     elsif double != nil
       double
     end
@@ -3382,7 +3382,7 @@ class UnionDelete < Dry::Struct
   end
 end
 
-class Dict < Dry::Struct
+class DecodeString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3404,20 +3404,20 @@ class Dict < Dry::Struct
   end
 end
 
-class UnionDict < Dry::Struct
-  attribute :dict,   Dict.optional
-  attribute :double, Types::Double.optional
+class UnionDecodeString < Dry::Struct
+  attribute :decode_string, DecodeString.optional
+  attribute :double,        Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Dict.from_dynamic!(d)
-      if schema.key(:dict).type.right.valid? value
-        return new(dict: value, double: nil)
+      value = DecodeString.from_dynamic!(d)
+      if schema.key(:decode_string).type.right.valid? value
+        return new(decode_string: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dict: nil)
+      return new(double: d, decode_string: nil)
     end
     raise "Invalid union"
   end
@@ -3427,8 +3427,8 @@ class UnionDict < Dry::Struct
   end
 
   def to_dynamic
-    if dict != nil
-      dict.to_dynamic
+    if decode_string != nil
+      decode_string.to_dynamic
     elsif double != nil
       double
     end
@@ -3439,7 +3439,7 @@ class UnionDict < Dry::Struct
   end
 end
 
-class Dictionary < Dry::Struct
+class Defer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3461,20 +3461,20 @@ class Dictionary < Dry::Struct
   end
 end
 
-class UnionDictionary < Dry::Struct
-  attribute :dictionary, Dictionary.optional
-  attribute :double,     Types::Double.optional
+class UnionDefer < Dry::Struct
+  attribute :defer,  Defer.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Dictionary.from_dynamic!(d)
-      if schema.key(:dictionary).type.right.valid? value
-        return new(dictionary: value, double: nil)
+      value = Defer.from_dynamic!(d)
+      if schema.key(:defer).type.right.valid? value
+        return new(defer: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dictionary: nil)
+      return new(double: d, defer: nil)
     end
     raise "Invalid union"
   end
@@ -3484,8 +3484,8 @@ class UnionDictionary < Dry::Struct
   end
 
   def to_dynamic
-    if dictionary != nil
-      dictionary.to_dynamic
+    if defer != nil
+      defer.to_dynamic
     elsif double != nil
       double
     end
@@ -3496,7 +3496,7 @@ class UnionDictionary < Dry::Struct
   end
 end
 
-class DidSet < Dry::Struct
+class Deinit < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3518,20 +3518,20 @@ class DidSet < Dry::Struct
   end
 end
 
-class UnionDidSet < Dry::Struct
-  attribute :did_set, DidSet.optional
-  attribute :double,  Types::Double.optional
+class UnionDeinit < Dry::Struct
+  attribute :deinit, Deinit.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DidSet.from_dynamic!(d)
-      if schema.key(:did_set).type.right.valid? value
-        return new(did_set: value, double: nil)
+      value = Deinit.from_dynamic!(d)
+      if schema.key(:deinit).type.right.valid? value
+        return new(deinit: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, did_set: nil)
+      return new(double: d, deinit: nil)
     end
     raise "Invalid union"
   end
@@ -3541,8 +3541,8 @@ class UnionDidSet < Dry::Struct
   end
 
   def to_dynamic
-    if did_set != nil
-      did_set.to_dynamic
+    if deinit != nil
+      deinit.to_dynamic
     elsif double != nil
       double
     end
@@ -3553,7 +3553,7 @@ class UnionDidSet < Dry::Struct
   end
 end
 
-class Double < Dry::Struct
+class Del < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3575,18 +3575,1956 @@ class Double < Dry::Struct
   end
 end
 
-class UnionDouble < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :double_1, Double.optional
+class UnionDel < Dry::Struct
+  attribute :del,    Del.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
-    if schema.key(:double).type.right.valid? d
-      return new(double: d, double_1: nil)
+    begin
+      value = Del.from_dynamic!(d)
+      if schema.key(:del).type.right.valid? value
+        return new(del: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, del: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if del != nil
+      del.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Delegate < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDelegate < Dry::Struct
+  attribute :delegate, Delegate.optional
+  attribute :double,   Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Delegate.from_dynamic!(d)
+      if schema.key(:delegate).type.right.valid? value
+        return new(delegate: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, delegate: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if delegate != nil
+      delegate.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Delete < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDelete < Dry::Struct
+  attribute :delete, Delete.optional
+  attribute :double, Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Delete.from_dynamic!(d)
+      if schema.key(:delete).type.right.valid? value
+        return new(delete: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, delete: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if delete != nil
+      delete.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dict < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDict < Dry::Struct
+  attribute :dict,   Dict.optional
+  attribute :double, Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Dict.from_dynamic!(d)
+      if schema.key(:dict).type.right.valid? value
+        return new(dict: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dict: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if dict != nil
+      dict.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dictionary < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDictionary < Dry::Struct
+  attribute :dictionary, Dictionary.optional
+  attribute :double,     Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Dictionary.from_dynamic!(d)
+      if schema.key(:dictionary).type.right.valid? value
+        return new(dictionary: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dictionary: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if dictionary != nil
+      dictionary.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DidSet < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDidSet < Dry::Struct
+  attribute :did_set, DidSet.optional
+  attribute :double,  Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = DidSet.from_dynamic!(d)
+      if schema.key(:did_set).type.right.valid? value
+        return new(did_set: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, did_set: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if did_set != nil
+      did_set.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Double < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDouble < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :double_1, Double.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, double_1: nil)
+    end
+    begin
+      value = Double.from_dynamic!(d)
+      if schema.key(:double_1).type.right.valid? value
+        return new(double_1: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif double_1 != nil
+      double_1.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dynamic < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDynamic < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :dynamic, Dynamic.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dynamic: nil)
+    end
+    begin
+      value = Dynamic.from_dynamic!(d)
+      if schema.key(:dynamic).type.right.valid? value
+        return new(dynamic: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif dynamic != nil
+      dynamic.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DynamicCast < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDynamicCast < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :dynamic_cast, DynamicCast.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dynamic_cast: nil)
+    end
+    begin
+      value = DynamicCast.from_dynamic!(d)
+      if schema.key(:dynamic_cast).type.right.valid? value
+        return new(dynamic_cast: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif dynamic_cast != nil
+      dynamic_cast.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Elif < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionElif < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :elif,   Elif.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, elif: nil)
+    end
+    begin
+      value = Elif.from_dynamic!(d)
+      if schema.key(:elif).type.right.valid? value
+        return new(elif: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif elif != nil
+      elif.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Empty < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUnion < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :empty,  Empty.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, empty: nil)
+    end
+    begin
+      value = Empty.from_dynamic!(d)
+      if schema.key(:empty).type.right.valid? value
+        return new(empty: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif empty != nil
+      empty.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EncodeQuickType < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEncodeQuickType < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :encode_quick_type, EncodeQuickType.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, encode_quick_type: nil)
+    end
+    begin
+      value = EncodeQuickType.from_dynamic!(d)
+      if schema.key(:encode_quick_type).type.right.valid? value
+        return new(encode_quick_type: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif encode_quick_type != nil
+      encode_quick_type.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EnumValues < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEnumValues < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :enum_values, EnumValues.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, enum_values: nil)
+    end
+    begin
+      value = EnumValues.from_dynamic!(d)
+      if schema.key(:enum_values).type.right.valid? value
+        return new(enum_values: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif enum_values != nil
+      enum_values.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EqualityContract < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEqualityContract < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :equality_contract, EqualityContract.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, equality_contract: nil)
+    end
+    begin
+      value = EqualityContract.from_dynamic!(d)
+      if schema.key(:equality_contract).type.right.valid? value
+        return new(equality_contract: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif equality_contract != nil
+      equality_contract.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Event < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEvent < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :event,  Event.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, event: nil)
+    end
+    begin
+      value = Event.from_dynamic!(d)
+      if schema.key(:event).type.right.valid? value
+        return new(event: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif event != nil
+      event.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Except < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExcept < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :except, Except.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, except: nil)
+    end
+    begin
+      value = Except.from_dynamic!(d)
+      if schema.key(:except).type.right.valid? value
+        return new(except: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif except != nil
+      except.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class ExceptionClass < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionException < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :exception_class, ExceptionClass.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, exception_class: nil)
+    end
+    begin
+      value = ExceptionClass.from_dynamic!(d)
+      if schema.key(:exception_class).type.right.valid? value
+        return new(exception_class: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif exception_class != nil
+      exception_class.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Explicit < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExplicit < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :explicit, Explicit.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, explicit: nil)
+    end
+    begin
+      value = Explicit.from_dynamic!(d)
+      if schema.key(:explicit).type.right.valid? value
+        return new(explicit: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif explicit != nil
+      explicit.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Export < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExport < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :export, Export.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, export: nil)
+    end
+    begin
+      value = Export.from_dynamic!(d)
+      if schema.key(:export).type.right.valid? value
+        return new(export: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif export != nil
+      export.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Exposing < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExposing < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :exposing, Exposing.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, exposing: nil)
+    end
+    begin
+      value = Exposing.from_dynamic!(d)
+      if schema.key(:exposing).type.right.valid? value
+        return new(exposing: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif exposing != nil
+      exposing.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extends < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtends < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :extends, Extends.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extends: nil)
+    end
+    begin
+      value = Extends.from_dynamic!(d)
+      if schema.key(:extends).type.right.valid? value
+        return new(extends: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extends != nil
+      extends.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extension < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtension < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :extension, Extension.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extension: nil)
+    end
+    begin
+      value = Extension.from_dynamic!(d)
+      if schema.key(:extension).type.right.valid? value
+        return new(extension: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extension != nil
+      extension.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extern < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtern < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :extern, Extern.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extern: nil)
+    end
+    begin
+      value = Extern.from_dynamic!(d)
+      if schema.key(:extern).type.right.valid? value
+        return new(extern: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extern != nil
+      extern.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fallthrough < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFallthrough < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :fallthrough, Fallthrough.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fallthrough: nil)
+    end
+    begin
+      value = Fallthrough.from_dynamic!(d)
+      if schema.key(:fallthrough).type.right.valid? value
+        return new(fallthrough: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fallthrough != nil
+      fallthrough.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFalseFalse < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFalseUnion < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :union_false_false, UnionFalseFalse.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, union_false_false: nil)
+    end
+    begin
+      value = UnionFalseFalse.from_dynamic!(d)
+      if schema.key(:union_false_false).type.right.valid? value
+        return new(union_false_false: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif union_false_false != nil
+      union_false_false.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fileprivate < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFileprivate < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :fileprivate, Fileprivate.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fileprivate: nil)
+    end
+    begin
+      value = Fileprivate.from_dynamic!(d)
+      if schema.key(:fileprivate).type.right.valid? value
+        return new(fileprivate: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fileprivate != nil
+      fileprivate.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Final < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFinal < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :final,  Final.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, final: nil)
+    end
+    begin
+      value = Final.from_dynamic!(d)
+      if schema.key(:final).type.right.valid? value
+        return new(final: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif final != nil
+      final.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Finally < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFinally < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :finally, Finally.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, finally: nil)
+    end
+    begin
+      value = Finally.from_dynamic!(d)
+      if schema.key(:finally).type.right.valid? value
+        return new(finally: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif finally != nil
+      finally.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fixed < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFixed < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :fixed,  Fixed.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fixed: nil)
+    end
+    begin
+      value = Fixed.from_dynamic!(d)
+      if schema.key(:fixed).type.right.valid? value
+        return new(fixed: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fixed != nil
+      fixed.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FloatClass < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFloat < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :float_class, FloatClass.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, float_class: nil)
+    end
+    begin
+      value = FloatClass.from_dynamic!(d)
+      if schema.key(:float_class).type.right.valid? value
+        return new(float_class: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif float_class != nil
+      float_class.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Foreach < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionForeach < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :foreach, Foreach.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, foreach: nil)
+    end
+    begin
+      value = Foreach.from_dynamic!(d)
+      if schema.key(:foreach).type.right.valid? value
+        return new(foreach: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif foreach != nil
+      foreach.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FormatException < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFormatException < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :format_exception, FormatException.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, format_exception: nil)
+    end
+    begin
+      value = FormatException.from_dynamic!(d)
+      if schema.key(:format_exception).type.right.valid? value
+        return new(format_exception: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif format_exception != nil
+      format_exception.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Friend < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFriend < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :friend, Friend.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, friend: nil)
+    end
+    begin
+      value = Friend.from_dynamic!(d)
+      if schema.key(:friend).type.right.valid? value
+        return new(friend: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif friend != nil
+      friend.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class From < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFrom < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :from,   From.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, from: nil)
+    end
+    begin
+      value = From.from_dynamic!(d)
+      if schema.key(:from).type.right.valid? value
+        return new(from: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif from != nil
+      from.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FromJSON < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFromJSON < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :from_json, FromJSON.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, from_json: nil)
     end
     begin
-      value = Double.from_dynamic!(d)
-      if schema.key(:double_1).type.right.valid? value
-        return new(double_1: value, double: nil)
+      value = FromJSON.from_dynamic!(d)
+      if schema.key(:from_json).type.right.valid? value
+        return new(from_json: value, double: nil)
       end
     rescue
     end
@@ -3600,8 +5538,8 @@ class UnionDouble < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif double_1 != nil
-      double_1.to_dynamic
+    elsif from_json != nil
+      from_json.to_dynamic
     end
   end
 
@@ -3610,7 +5548,7 @@ class UnionDouble < Dry::Struct
   end
 end
 
-class Dynamic < Dry::Struct
+class Func < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3632,18 +5570,18 @@ class Dynamic < Dry::Struct
   end
 end
 
-class UnionDynamic < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :dynamic, Dynamic.optional
+class UnionFunc < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :func,   Func.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dynamic: nil)
+      return new(double: d, func: nil)
     end
     begin
-      value = Dynamic.from_dynamic!(d)
-      if schema.key(:dynamic).type.right.valid? value
-        return new(dynamic: value, double: nil)
+      value = Func.from_dynamic!(d)
+      if schema.key(:func).type.right.valid? value
+        return new(func: value, double: nil)
       end
     rescue
     end
@@ -3657,8 +5595,8 @@ class UnionDynamic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif dynamic != nil
-      dynamic.to_dynamic
+    elsif func != nil
+      func.to_dynamic
     end
   end
 
@@ -3667,7 +5605,7 @@ class UnionDynamic < Dry::Struct
   end
 end
 
-class DynamicCast < Dry::Struct
+class Function < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3689,18 +5627,18 @@ class DynamicCast < Dry::Struct
   end
 end
 
-class UnionDynamicCast < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :dynamic_cast, DynamicCast.optional
+class UnionFunction < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :function, Function.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dynamic_cast: nil)
+      return new(double: d, function: nil)
     end
     begin
-      value = DynamicCast.from_dynamic!(d)
-      if schema.key(:dynamic_cast).type.right.valid? value
-        return new(dynamic_cast: value, double: nil)
+      value = Function.from_dynamic!(d)
+      if schema.key(:function).type.right.valid? value
+        return new(function: value, double: nil)
       end
     rescue
     end
@@ -3714,8 +5652,8 @@ class UnionDynamicCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif dynamic_cast != nil
-      dynamic_cast.to_dynamic
+    elsif function != nil
+      function.to_dynamic
     end
   end
 
@@ -3724,7 +5662,7 @@ class UnionDynamicCast < Dry::Struct
   end
 end
 
-class Elif < Dry::Struct
+class Get < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3746,18 +5684,18 @@ class Elif < Dry::Struct
   end
 end
 
-class UnionElif < Dry::Struct
+class UnionGet < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :elif,   Elif.optional
+  attribute :get,    Get.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, elif: nil)
+      return new(double: d, get: nil)
     end
     begin
-      value = Elif.from_dynamic!(d)
-      if schema.key(:elif).type.right.valid? value
-        return new(elif: value, double: nil)
+      value = Get.from_dynamic!(d)
+      if schema.key(:get).type.right.valid? value
+        return new(get: value, double: nil)
       end
     rescue
     end
@@ -3771,8 +5709,8 @@ class UnionElif < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif elif != nil
-      elif.to_dynamic
+    elsif get != nil
+      get.to_dynamic
     end
   end
 
@@ -3781,7 +5719,7 @@ class UnionElif < Dry::Struct
   end
 end
 
-class Empty < Dry::Struct
+class Global < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3803,18 +5741,18 @@ class Empty < Dry::Struct
   end
 end
 
-class UnionUnion < Dry::Struct
+class UnionGlobal < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :empty,  Empty.optional
+  attribute :global, Global.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, empty: nil)
+      return new(double: d, global: nil)
     end
     begin
-      value = Empty.from_dynamic!(d)
-      if schema.key(:empty).type.right.valid? value
-        return new(empty: value, double: nil)
+      value = Global.from_dynamic!(d)
+      if schema.key(:global).type.right.valid? value
+        return new(global: value, double: nil)
       end
     rescue
     end
@@ -3828,8 +5766,179 @@ class UnionUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif empty != nil
-      empty.to_dynamic
+    elsif global != nil
+      global.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Go < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGo < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :go,     Go.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, go: nil)
+    end
+    begin
+      value = Go.from_dynamic!(d)
+      if schema.key(:go).type.right.valid? value
+        return new(go: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif go != nil
+      go.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Goto < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGoto < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :goto,   Goto.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, goto: nil)
+    end
+    begin
+      value = Goto.from_dynamic!(d)
+      if schema.key(:goto).type.right.valid? value
+        return new(goto: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif goto != nil
+      goto.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Guard < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGuard < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :guard,  Guard.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, guard: nil)
+    end
+    begin
+      value = Guard.from_dynamic!(d)
+      if schema.key(:guard).type.right.valid? value
+        return new(guard: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif guard != nil
+      guard.to_dynamic
     end
   end
 
@@ -3838,7 +5947,7 @@ class UnionUnion < Dry::Struct
   end
 end
 
-class EncodeQuickType < Dry::Struct
+class HasOwnProperty < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3860,18 +5969,18 @@ class EncodeQuickType < Dry::Struct
   end
 end
 
-class UnionEncodeQuickType < Dry::Struct
-  attribute :double,            Types::Double.optional
-  attribute :encode_quick_type, EncodeQuickType.optional
+class UnionHasOwnProperty < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :has_own_property, HasOwnProperty.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, encode_quick_type: nil)
+      return new(double: d, has_own_property: nil)
     end
     begin
-      value = EncodeQuickType.from_dynamic!(d)
-      if schema.key(:encode_quick_type).type.right.valid? value
-        return new(encode_quick_type: value, double: nil)
+      value = HasOwnProperty.from_dynamic!(d)
+      if schema.key(:has_own_property).type.right.valid? value
+        return new(has_own_property: value, double: nil)
       end
     rescue
     end
@@ -3885,8 +5994,8 @@ class UnionEncodeQuickType < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif encode_quick_type != nil
-      encode_quick_type.to_dynamic
+    elsif has_own_property != nil
+      has_own_property.to_dynamic
     end
   end
 
@@ -3895,7 +6004,7 @@ class UnionEncodeQuickType < Dry::Struct
   end
 end
 
-class Event < Dry::Struct
+class HashCode < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3917,18 +6026,18 @@ class Event < Dry::Struct
   end
 end
 
-class UnionEvent < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :event,  Event.optional
+class UnionHashCode < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :hash_code, HashCode.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, event: nil)
+      return new(double: d, hash_code: nil)
     end
     begin
-      value = Event.from_dynamic!(d)
-      if schema.key(:event).type.right.valid? value
-        return new(event: value, double: nil)
+      value = HashCode.from_dynamic!(d)
+      if schema.key(:hash_code).type.right.valid? value
+        return new(hash_code: value, double: nil)
       end
     rescue
     end
@@ -3942,8 +6051,8 @@ class UnionEvent < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif event != nil
-      event.to_dynamic
+    elsif hash_code != nil
+      hash_code.to_dynamic
     end
   end
 
@@ -3952,7 +6061,7 @@ class UnionEvent < Dry::Struct
   end
 end
 
-class Except < Dry::Struct
+class ID < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3974,18 +6083,18 @@ class Except < Dry::Struct
   end
 end
 
-class UnionExcept < Dry::Struct
+class UnionID < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :except, Except.optional
+  attribute :id,     ID.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, except: nil)
+      return new(double: d, id: nil)
     end
     begin
-      value = Except.from_dynamic!(d)
-      if schema.key(:except).type.right.valid? value
-        return new(except: value, double: nil)
+      value = ID.from_dynamic!(d)
+      if schema.key(:id).type.right.valid? value
+        return new(id: value, double: nil)
       end
     rescue
     end
@@ -3999,8 +6108,8 @@ class UnionExcept < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif except != nil
-      except.to_dynamic
+    elsif id != nil
+      id.to_dynamic
     end
   end
 
@@ -4009,7 +6118,7 @@ class UnionExcept < Dry::Struct
   end
 end
 
-class ExceptionClass < Dry::Struct
+class Imaginery < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4031,18 +6140,18 @@ class ExceptionClass < Dry::Struct
   end
 end
 
-class UnionException < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :exception_class, ExceptionClass.optional
+class UnionImaginery < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :imaginery, Imaginery.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, exception_class: nil)
+      return new(double: d, imaginery: nil)
     end
     begin
-      value = ExceptionClass.from_dynamic!(d)
-      if schema.key(:exception_class).type.right.valid? value
-        return new(exception_class: value, double: nil)
+      value = Imaginery.from_dynamic!(d)
+      if schema.key(:imaginery).type.right.valid? value
+        return new(imaginery: value, double: nil)
       end
     rescue
     end
@@ -4056,8 +6165,8 @@ class UnionException < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif exception_class != nil
-      exception_class.to_dynamic
+    elsif imaginery != nil
+      imaginery.to_dynamic
     end
   end
 
@@ -4066,7 +6175,7 @@ class UnionException < Dry::Struct
   end
 end
 
-class Explicit < Dry::Struct
+class Imp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4088,18 +6197,18 @@ class Explicit < Dry::Struct
   end
 end
 
-class UnionExplicit < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :explicit, Explicit.optional
+class UnionIMP < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :imp,    Imp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, explicit: nil)
+      return new(double: d, imp: nil)
     end
     begin
-      value = Explicit.from_dynamic!(d)
-      if schema.key(:explicit).type.right.valid? value
-        return new(explicit: value, double: nil)
+      value = Imp.from_dynamic!(d)
+      if schema.key(:imp).type.right.valid? value
+        return new(imp: value, double: nil)
       end
     rescue
     end
@@ -4113,8 +6222,8 @@ class UnionExplicit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif explicit != nil
-      explicit.to_dynamic
+    elsif imp != nil
+      imp.to_dynamic
     end
   end
 
@@ -4123,7 +6232,7 @@ class UnionExplicit < Dry::Struct
   end
 end
 
-class Export < Dry::Struct
+class Implements < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4145,18 +6254,18 @@ class Export < Dry::Struct
   end
 end
 
-class UnionExport < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :export, Export.optional
+class UnionImplements < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :implements, Implements.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, export: nil)
+      return new(double: d, implements: nil)
     end
     begin
-      value = Export.from_dynamic!(d)
-      if schema.key(:export).type.right.valid? value
-        return new(export: value, double: nil)
+      value = Implements.from_dynamic!(d)
+      if schema.key(:implements).type.right.valid? value
+        return new(implements: value, double: nil)
       end
     rescue
     end
@@ -4170,8 +6279,8 @@ class UnionExport < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif export != nil
-      export.to_dynamic
+    elsif implements != nil
+      implements.to_dynamic
     end
   end
 
@@ -4180,7 +6289,7 @@ class UnionExport < Dry::Struct
   end
 end
 
-class Exposing < Dry::Struct
+class Implicit < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4202,18 +6311,18 @@ class Exposing < Dry::Struct
   end
 end
 
-class UnionExposing < Dry::Struct
+class UnionImplicit < Dry::Struct
   attribute :double,   Types::Double.optional
-  attribute :exposing, Exposing.optional
+  attribute :implicit, Implicit.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, exposing: nil)
+      return new(double: d, implicit: nil)
     end
     begin
-      value = Exposing.from_dynamic!(d)
-      if schema.key(:exposing).type.right.valid? value
-        return new(exposing: value, double: nil)
+      value = Implicit.from_dynamic!(d)
+      if schema.key(:implicit).type.right.valid? value
+        return new(implicit: value, double: nil)
       end
     rescue
     end
@@ -4227,8 +6336,8 @@ class UnionExposing < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif exposing != nil
-      exposing.to_dynamic
+    elsif implicit != nil
+      implicit.to_dynamic
     end
   end
 
@@ -4237,7 +6346,7 @@ class UnionExposing < Dry::Struct
   end
 end
 
-class Extends < Dry::Struct
+class Import < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4259,18 +6368,18 @@ class Extends < Dry::Struct
   end
 end
 
-class UnionExtends < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :extends, Extends.optional
+class UnionImport < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :import, Import.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extends: nil)
+      return new(double: d, import: nil)
     end
     begin
-      value = Extends.from_dynamic!(d)
-      if schema.key(:extends).type.right.valid? value
-        return new(extends: value, double: nil)
+      value = Import.from_dynamic!(d)
+      if schema.key(:import).type.right.valid? value
+        return new(import: value, double: nil)
       end
     rescue
     end
@@ -4284,8 +6393,8 @@ class UnionExtends < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extends != nil
-      extends.to_dynamic
+    elsif import != nil
+      import.to_dynamic
     end
   end
 
@@ -4294,7 +6403,7 @@ class UnionExtends < Dry::Struct
   end
 end
 
-class Extension < Dry::Struct
+class Indirect < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4316,18 +6425,18 @@ class Extension < Dry::Struct
   end
 end
 
-class UnionExtension < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :extension, Extension.optional
+class UnionIndirect < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :indirect, Indirect.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extension: nil)
+      return new(double: d, indirect: nil)
     end
     begin
-      value = Extension.from_dynamic!(d)
-      if schema.key(:extension).type.right.valid? value
-        return new(extension: value, double: nil)
+      value = Indirect.from_dynamic!(d)
+      if schema.key(:indirect).type.right.valid? value
+        return new(indirect: value, double: nil)
       end
     rescue
     end
@@ -4341,8 +6450,8 @@ class UnionExtension < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extension != nil
-      extension.to_dynamic
+    elsif indirect != nil
+      indirect.to_dynamic
     end
   end
 
@@ -4351,7 +6460,7 @@ class UnionExtension < Dry::Struct
   end
 end
 
-class Extern < Dry::Struct
+class Infix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4373,18 +6482,18 @@ class Extern < Dry::Struct
   end
 end
 
-class UnionExtern < Dry::Struct
+class UnionInfix < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :extern, Extern.optional
+  attribute :infix,  Infix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extern: nil)
+      return new(double: d, infix: nil)
     end
     begin
-      value = Extern.from_dynamic!(d)
-      if schema.key(:extern).type.right.valid? value
-        return new(extern: value, double: nil)
+      value = Infix.from_dynamic!(d)
+      if schema.key(:infix).type.right.valid? value
+        return new(infix: value, double: nil)
       end
     rescue
     end
@@ -4398,8 +6507,8 @@ class UnionExtern < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extern != nil
-      extern.to_dynamic
+    elsif infix != nil
+      infix.to_dynamic
     end
   end
 
@@ -4408,7 +6517,7 @@ class UnionExtern < Dry::Struct
   end
 end
 
-class Fallthrough < Dry::Struct
+class Init < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4430,18 +6539,18 @@ class Fallthrough < Dry::Struct
   end
 end
 
-class UnionFallthrough < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :fallthrough, Fallthrough.optional
+class UnionInit < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :init,   Init.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fallthrough: nil)
+      return new(double: d, init: nil)
     end
     begin
-      value = Fallthrough.from_dynamic!(d)
-      if schema.key(:fallthrough).type.right.valid? value
-        return new(fallthrough: value, double: nil)
+      value = Init.from_dynamic!(d)
+      if schema.key(:init).type.right.valid? value
+        return new(init: value, double: nil)
       end
     rescue
     end
@@ -4455,8 +6564,8 @@ class UnionFallthrough < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fallthrough != nil
-      fallthrough.to_dynamic
+    elsif init != nil
+      init.to_dynamic
     end
   end
 
@@ -4465,7 +6574,7 @@ class UnionFallthrough < Dry::Struct
   end
 end
 
-class UnionFalseFalse < Dry::Struct
+class Inline < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4487,18 +6596,18 @@ class UnionFalseFalse < Dry::Struct
   end
 end
 
-class UnionFalseUnion < Dry::Struct
-  attribute :double,            Types::Double.optional
-  attribute :union_false_false, UnionFalseFalse.optional
+class UnionInline < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :inline, Inline.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, union_false_false: nil)
+      return new(double: d, inline: nil)
     end
     begin
-      value = UnionFalseFalse.from_dynamic!(d)
-      if schema.key(:union_false_false).type.right.valid? value
-        return new(union_false_false: value, double: nil)
+      value = Inline.from_dynamic!(d)
+      if schema.key(:inline).type.right.valid? value
+        return new(inline: value, double: nil)
       end
     rescue
     end
@@ -4512,8 +6621,8 @@ class UnionFalseUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif union_false_false != nil
-      union_false_false.to_dynamic
+    elsif inline != nil
+      inline.to_dynamic
     end
   end
 
@@ -4522,7 +6631,7 @@ class UnionFalseUnion < Dry::Struct
   end
 end
 
-class Fileprivate < Dry::Struct
+class Inout < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4544,18 +6653,18 @@ class Fileprivate < Dry::Struct
   end
 end
 
-class UnionFileprivate < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :fileprivate, Fileprivate.optional
+class UnionInout < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :inout,  Inout.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fileprivate: nil)
+      return new(double: d, inout: nil)
     end
     begin
-      value = Fileprivate.from_dynamic!(d)
-      if schema.key(:fileprivate).type.right.valid? value
-        return new(fileprivate: value, double: nil)
+      value = Inout.from_dynamic!(d)
+      if schema.key(:inout).type.right.valid? value
+        return new(inout: value, double: nil)
       end
     rescue
     end
@@ -4569,8 +6678,8 @@ class UnionFileprivate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fileprivate != nil
-      fileprivate.to_dynamic
+    elsif inout != nil
+      inout.to_dynamic
     end
   end
 
@@ -4579,7 +6688,7 @@ class UnionFileprivate < Dry::Struct
   end
 end
 
-class Final < Dry::Struct
+class Instanceof < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4601,18 +6710,18 @@ class Final < Dry::Struct
   end
 end
 
-class UnionFinal < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :final,  Final.optional
+class UnionInstanceof < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :instanceof, Instanceof.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, final: nil)
+      return new(double: d, instanceof: nil)
     end
     begin
-      value = Final.from_dynamic!(d)
-      if schema.key(:final).type.right.valid? value
-        return new(final: value, double: nil)
+      value = Instanceof.from_dynamic!(d)
+      if schema.key(:instanceof).type.right.valid? value
+        return new(instanceof: value, double: nil)
       end
     rescue
     end
@@ -4626,8 +6735,8 @@ class UnionFinal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif final != nil
-      final.to_dynamic
+    elsif instanceof != nil
+      instanceof.to_dynamic
     end
   end
 
@@ -4636,7 +6745,7 @@ class UnionFinal < Dry::Struct
   end
 end
 
-class Finally < Dry::Struct
+class Int < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4658,18 +6767,18 @@ class Finally < Dry::Struct
   end
 end
 
-class UnionFinally < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :finally, Finally.optional
+class UnionInt < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :int,    Int.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, finally: nil)
+      return new(double: d, int: nil)
     end
     begin
-      value = Finally.from_dynamic!(d)
-      if schema.key(:finally).type.right.valid? value
-        return new(finally: value, double: nil)
+      value = Int.from_dynamic!(d)
+      if schema.key(:int).type.right.valid? value
+        return new(int: value, double: nil)
       end
     rescue
     end
@@ -4683,8 +6792,8 @@ class UnionFinally < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif finally != nil
-      finally.to_dynamic
+    elsif int != nil
+      int.to_dynamic
     end
   end
 
@@ -4693,7 +6802,7 @@ class UnionFinally < Dry::Struct
   end
 end
 
-class Fixed < Dry::Struct
+class Interface < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4715,18 +6824,18 @@ class Fixed < Dry::Struct
   end
 end
 
-class UnionFixed < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :fixed,  Fixed.optional
+class UnionInterface < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :interface, Interface.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fixed: nil)
+      return new(double: d, interface: nil)
     end
     begin
-      value = Fixed.from_dynamic!(d)
-      if schema.key(:fixed).type.right.valid? value
-        return new(fixed: value, double: nil)
+      value = Interface.from_dynamic!(d)
+      if schema.key(:interface).type.right.valid? value
+        return new(interface: value, double: nil)
       end
     rescue
     end
@@ -4740,8 +6849,8 @@ class UnionFixed < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fixed != nil
-      fixed.to_dynamic
+    elsif interface != nil
+      interface.to_dynamic
     end
   end
 
@@ -4750,7 +6859,7 @@ class UnionFixed < Dry::Struct
   end
 end
 
-class FloatClass < Dry::Struct
+class Internal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4772,18 +6881,18 @@ class FloatClass < Dry::Struct
   end
 end
 
-class UnionFloat < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :float_class, FloatClass.optional
+class UnionInternal < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :internal, Internal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, float_class: nil)
+      return new(double: d, internal: nil)
     end
     begin
-      value = FloatClass.from_dynamic!(d)
-      if schema.key(:float_class).type.right.valid? value
-        return new(float_class: value, double: nil)
+      value = Internal.from_dynamic!(d)
+      if schema.key(:internal).type.right.valid? value
+        return new(internal: value, double: nil)
       end
     rescue
     end
@@ -4797,8 +6906,8 @@ class UnionFloat < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif float_class != nil
-      float_class.to_dynamic
+    elsif internal != nil
+      internal.to_dynamic
     end
   end
 
@@ -4807,7 +6916,7 @@ class UnionFloat < Dry::Struct
   end
 end
 
-class Foreach < Dry::Struct
+class Is < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4829,18 +6938,18 @@ class Foreach < Dry::Struct
   end
 end
 
-class UnionForeach < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :foreach, Foreach.optional
+class UnionIs < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :is,     Is.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, foreach: nil)
+      return new(double: d, is: nil)
     end
     begin
-      value = Foreach.from_dynamic!(d)
-      if schema.key(:foreach).type.right.valid? value
-        return new(foreach: value, double: nil)
+      value = Is.from_dynamic!(d)
+      if schema.key(:is).type.right.valid? value
+        return new(is: value, double: nil)
       end
     rescue
     end
@@ -4854,8 +6963,8 @@ class UnionForeach < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif foreach != nil
-      foreach.to_dynamic
+    elsif is != nil
+      is.to_dynamic
     end
   end
 
@@ -4864,7 +6973,7 @@ class UnionForeach < Dry::Struct
   end
 end
 
-class Friend < Dry::Struct
+class ISODateTimeOffsetConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4886,18 +6995,18 @@ class Friend < Dry::Struct
   end
 end
 
-class UnionFriend < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :friend, Friend.optional
+class UnionISODateTimeOffsetConverter < Dry::Struct
+  attribute :double,                         Types::Double.optional
+  attribute :iso_date_time_offset_converter, ISODateTimeOffsetConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, friend: nil)
+      return new(double: d, iso_date_time_offset_converter: nil)
     end
     begin
-      value = Friend.from_dynamic!(d)
-      if schema.key(:friend).type.right.valid? value
-        return new(friend: value, double: nil)
+      value = ISODateTimeOffsetConverter.from_dynamic!(d)
+      if schema.key(:iso_date_time_offset_converter).type.right.valid? value
+        return new(iso_date_time_offset_converter: value, double: nil)
       end
     rescue
     end
@@ -4911,8 +7020,8 @@ class UnionFriend < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif friend != nil
-      friend.to_dynamic
+    elsif iso_date_time_offset_converter != nil
+      iso_date_time_offset_converter.to_dynamic
     end
   end
 
@@ -4921,7 +7030,7 @@ class UnionFriend < Dry::Struct
   end
 end
 
-class From < Dry::Struct
+class Iterable < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4943,18 +7052,18 @@ class From < Dry::Struct
   end
 end
 
-class UnionFrom < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :from,   From.optional
+class UnionIterable < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :iterable, Iterable.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, from: nil)
+      return new(double: d, iterable: nil)
     end
     begin
-      value = From.from_dynamic!(d)
-      if schema.key(:from).type.right.valid? value
-        return new(from: value, double: nil)
+      value = Iterable.from_dynamic!(d)
+      if schema.key(:iterable).type.right.valid? value
+        return new(iterable: value, double: nil)
       end
     rescue
     end
@@ -4968,8 +7077,8 @@ class UnionFrom < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif from != nil
-      from.to_dynamic
+    elsif iterable != nil
+      iterable.to_dynamic
     end
   end
 
@@ -4978,7 +7087,7 @@ class UnionFrom < Dry::Struct
   end
 end
 
-class FromJSON < Dry::Struct
+class Jdec < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5000,18 +7109,18 @@ class FromJSON < Dry::Struct
   end
 end
 
-class UnionFromJSON < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :from_json, FromJSON.optional
+class UnionJdec < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :jdec,   Jdec.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, from_json: nil)
+      return new(double: d, jdec: nil)
     end
     begin
-      value = FromJSON.from_dynamic!(d)
-      if schema.key(:from_json).type.right.valid? value
-        return new(from_json: value, double: nil)
+      value = Jdec.from_dynamic!(d)
+      if schema.key(:jdec).type.right.valid? value
+        return new(jdec: value, double: nil)
       end
     rescue
     end
@@ -5025,8 +7134,8 @@ class UnionFromJSON < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif from_json != nil
-      from_json.to_dynamic
+    elsif jdec != nil
+      jdec.to_dynamic
     end
   end
 
@@ -5035,7 +7144,7 @@ class UnionFromJSON < Dry::Struct
   end
 end
 
-class Func < Dry::Struct
+class Jenc < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5057,18 +7166,18 @@ class Func < Dry::Struct
   end
 end
 
-class UnionFunc < Dry::Struct
+class UnionJenc < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :func,   Func.optional
+  attribute :jenc,   Jenc.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, func: nil)
+      return new(double: d, jenc: nil)
     end
     begin
-      value = Func.from_dynamic!(d)
-      if schema.key(:func).type.right.valid? value
-        return new(func: value, double: nil)
+      value = Jenc.from_dynamic!(d)
+      if schema.key(:jenc).type.right.valid? value
+        return new(jenc: value, double: nil)
       end
     rescue
     end
@@ -5082,8 +7191,8 @@ class UnionFunc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif func != nil
-      func.to_dynamic
+    elsif jenc != nil
+      jenc.to_dynamic
     end
   end
 
@@ -5092,7 +7201,7 @@ class UnionFunc < Dry::Struct
   end
 end
 
-class Function < Dry::Struct
+class Jpipe < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5114,18 +7223,18 @@ class Function < Dry::Struct
   end
 end
 
-class UnionFunction < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :function, Function.optional
+class UnionJpipe < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :jpipe,  Jpipe.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, function: nil)
+      return new(double: d, jpipe: nil)
     end
     begin
-      value = Function.from_dynamic!(d)
-      if schema.key(:function).type.right.valid? value
-        return new(function: value, double: nil)
+      value = Jpipe.from_dynamic!(d)
+      if schema.key(:jpipe).type.right.valid? value
+        return new(jpipe: value, double: nil)
       end
     rescue
     end
@@ -5139,8 +7248,8 @@ class UnionFunction < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif function != nil
-      function.to_dynamic
+    elsif jpipe != nil
+      jpipe.to_dynamic
     end
   end
 
@@ -5149,7 +7258,7 @@ class UnionFunction < Dry::Struct
   end
 end
 
-class Get < Dry::Struct
+class JSONClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5171,18 +7280,18 @@ class Get < Dry::Struct
   end
 end
 
-class UnionGet < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :get,    Get.optional
+class UnionJSON < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :json_class, JSONClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, get: nil)
+      return new(double: d, json_class: nil)
     end
     begin
-      value = Get.from_dynamic!(d)
-      if schema.key(:get).type.right.valid? value
-        return new(get: value, double: nil)
+      value = JSONClass.from_dynamic!(d)
+      if schema.key(:json_class).type.right.valid? value
+        return new(json_class: value, double: nil)
       end
     rescue
     end
@@ -5196,8 +7305,8 @@ class UnionGet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif get != nil
-      get.to_dynamic
+    elsif json_class != nil
+      json_class.to_dynamic
     end
   end
 
@@ -5206,7 +7315,7 @@ class UnionGet < Dry::Struct
   end
 end
 
-class Global < Dry::Struct
+class JSONAny < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5228,18 +7337,18 @@ class Global < Dry::Struct
   end
 end
 
-class UnionGlobal < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :global, Global.optional
+class UnionJSONAny < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :json_any, JSONAny.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, global: nil)
+      return new(double: d, json_any: nil)
     end
     begin
-      value = Global.from_dynamic!(d)
-      if schema.key(:global).type.right.valid? value
-        return new(global: value, double: nil)
+      value = JSONAny.from_dynamic!(d)
+      if schema.key(:json_any).type.right.valid? value
+        return new(json_any: value, double: nil)
       end
     rescue
     end
@@ -5253,8 +7362,8 @@ class UnionGlobal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif global != nil
-      global.to_dynamic
+    elsif json_any != nil
+      json_any.to_dynamic
     end
   end
 
@@ -5263,7 +7372,7 @@ class UnionGlobal < Dry::Struct
   end
 end
 
-class Go < Dry::Struct
+class JSONCodingKey < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5285,18 +7394,18 @@ class Go < Dry::Struct
   end
 end
 
-class UnionGo < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :go,     Go.optional
+class UnionJSONCodingKey < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_coding_key, JSONCodingKey.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, go: nil)
+      return new(double: d, json_coding_key: nil)
     end
     begin
-      value = Go.from_dynamic!(d)
-      if schema.key(:go).type.right.valid? value
-        return new(go: value, double: nil)
+      value = JSONCodingKey.from_dynamic!(d)
+      if schema.key(:json_coding_key).type.right.valid? value
+        return new(json_coding_key: value, double: nil)
       end
     rescue
     end
@@ -5310,8 +7419,8 @@ class UnionGo < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif go != nil
-      go.to_dynamic
+    elsif json_coding_key != nil
+      json_coding_key.to_dynamic
     end
   end
 
@@ -5320,7 +7429,7 @@ class UnionGo < Dry::Struct
   end
 end
 
-class Goto < Dry::Struct
+class JSONConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5342,18 +7451,18 @@ class Goto < Dry::Struct
   end
 end
 
-class UnionGoto < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :goto,   Goto.optional
+class UnionJSONConverter < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_converter, JSONConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, goto: nil)
+      return new(double: d, json_converter: nil)
     end
     begin
-      value = Goto.from_dynamic!(d)
-      if schema.key(:goto).type.right.valid? value
-        return new(goto: value, double: nil)
+      value = JSONConverter.from_dynamic!(d)
+      if schema.key(:json_converter).type.right.valid? value
+        return new(json_converter: value, double: nil)
       end
     rescue
     end
@@ -5367,8 +7476,8 @@ class UnionGoto < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif goto != nil
-      goto.to_dynamic
+    elsif json_converter != nil
+      json_converter.to_dynamic
     end
   end
 
@@ -5377,7 +7486,7 @@ class UnionGoto < Dry::Struct
   end
 end
 
-class Guard < Dry::Struct
+class JSONDecoder < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5399,18 +7508,18 @@ class Guard < Dry::Struct
   end
 end
 
-class UnionGuard < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :guard,  Guard.optional
+class UnionJSONDecoder < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :json_decoder, JSONDecoder.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, guard: nil)
+      return new(double: d, json_decoder: nil)
     end
     begin
-      value = Guard.from_dynamic!(d)
-      if schema.key(:guard).type.right.valid? value
-        return new(guard: value, double: nil)
+      value = JSONDecoder.from_dynamic!(d)
+      if schema.key(:json_decoder).type.right.valid? value
+        return new(json_decoder: value, double: nil)
       end
     rescue
     end
@@ -5424,8 +7533,8 @@ class UnionGuard < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif guard != nil
-      guard.to_dynamic
+    elsif json_decoder != nil
+      json_decoder.to_dynamic
     end
   end
 
@@ -5434,7 +7543,7 @@ class UnionGuard < Dry::Struct
   end
 end
 
-class HasOwnProperty < Dry::Struct
+class JSONEncoder < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5456,18 +7565,18 @@ class HasOwnProperty < Dry::Struct
   end
 end
 
-class UnionHasOwnProperty < Dry::Struct
-  attribute :double,           Types::Double.optional
-  attribute :has_own_property, HasOwnProperty.optional
+class UnionJSONEncoder < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :json_encoder, JSONEncoder.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, has_own_property: nil)
+      return new(double: d, json_encoder: nil)
     end
     begin
-      value = HasOwnProperty.from_dynamic!(d)
-      if schema.key(:has_own_property).type.right.valid? value
-        return new(has_own_property: value, double: nil)
+      value = JSONEncoder.from_dynamic!(d)
+      if schema.key(:json_encoder).type.right.valid? value
+        return new(json_encoder: value, double: nil)
       end
     rescue
     end
@@ -5481,8 +7590,8 @@ class UnionHasOwnProperty < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif has_own_property != nil
-      has_own_property.to_dynamic
+    elsif json_encoder != nil
+      json_encoder.to_dynamic
     end
   end
 
@@ -5491,7 +7600,7 @@ class UnionHasOwnProperty < Dry::Struct
   end
 end
 
-class ID < Dry::Struct
+class JSONException < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5513,18 +7622,18 @@ class ID < Dry::Struct
   end
 end
 
-class UnionID < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :id,     ID.optional
+class UnionJSONException < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_exception, JSONException.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, id: nil)
+      return new(double: d, json_exception: nil)
     end
     begin
-      value = ID.from_dynamic!(d)
-      if schema.key(:id).type.right.valid? value
-        return new(id: value, double: nil)
+      value = JSONException.from_dynamic!(d)
+      if schema.key(:json_exception).type.right.valid? value
+        return new(json_exception: value, double: nil)
       end
     rescue
     end
@@ -5538,8 +7647,8 @@ class UnionID < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif id != nil
-      id.to_dynamic
+    elsif json_exception != nil
+      json_exception.to_dynamic
     end
   end
 
@@ -5548,7 +7657,7 @@ class UnionID < Dry::Struct
   end
 end
 
-class Imaginery < Dry::Struct
+class JSONGenerator < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5570,18 +7679,18 @@ class Imaginery < Dry::Struct
   end
 end
 
-class UnionImaginery < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :imaginery, Imaginery.optional
+class UnionJSONGenerator < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_generator, JSONGenerator.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, imaginery: nil)
+      return new(double: d, json_generator: nil)
     end
     begin
-      value = Imaginery.from_dynamic!(d)
-      if schema.key(:imaginery).type.right.valid? value
-        return new(imaginery: value, double: nil)
+      value = JSONGenerator.from_dynamic!(d)
+      if schema.key(:json_generator).type.right.valid? value
+        return new(json_generator: value, double: nil)
       end
     rescue
     end
@@ -5595,8 +7704,8 @@ class UnionImaginery < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif imaginery != nil
-      imaginery.to_dynamic
+    elsif json_generator != nil
+      json_generator.to_dynamic
     end
   end
 
@@ -5605,7 +7714,7 @@ class UnionImaginery < Dry::Struct
   end
 end
 
-class Imp < Dry::Struct
+class JSONNode < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5627,18 +7736,18 @@ class Imp < Dry::Struct
   end
 end
 
-class UnionIMP < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :imp,    Imp.optional
+class UnionJSONNode < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :json_node, JSONNode.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, imp: nil)
+      return new(double: d, json_node: nil)
     end
     begin
-      value = Imp.from_dynamic!(d)
-      if schema.key(:imp).type.right.valid? value
-        return new(imp: value, double: nil)
+      value = JSONNode.from_dynamic!(d)
+      if schema.key(:json_node).type.right.valid? value
+        return new(json_node: value, double: nil)
       end
     rescue
     end
@@ -5652,8 +7761,8 @@ class UnionIMP < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif imp != nil
-      imp.to_dynamic
+    elsif json_node != nil
+      json_node.to_dynamic
     end
   end
 
@@ -5662,7 +7771,7 @@ class UnionIMP < Dry::Struct
   end
 end
 
-class Implements < Dry::Struct
+class JSONNull < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5684,18 +7793,18 @@ class Implements < Dry::Struct
   end
 end
 
-class UnionImplements < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :implements, Implements.optional
+class UnionJSONNull < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :json_null, JSONNull.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, implements: nil)
+      return new(double: d, json_null: nil)
     end
     begin
-      value = Implements.from_dynamic!(d)
-      if schema.key(:implements).type.right.valid? value
-        return new(implements: value, double: nil)
+      value = JSONNull.from_dynamic!(d)
+      if schema.key(:json_null).type.right.valid? value
+        return new(json_null: value, double: nil)
       end
     rescue
     end
@@ -5709,8 +7818,8 @@ class UnionImplements < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif implements != nil
-      implements.to_dynamic
+    elsif json_null != nil
+      json_null.to_dynamic
     end
   end
 
@@ -5719,7 +7828,7 @@ class UnionImplements < Dry::Struct
   end
 end
 
-class Implicit < Dry::Struct
+class JSONParser < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5741,18 +7850,18 @@ class Implicit < Dry::Struct
   end
 end
 
-class UnionImplicit < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :implicit, Implicit.optional
+class UnionJSONParser < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_parser, JSONParser.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, implicit: nil)
+      return new(double: d, json_parser: nil)
     end
     begin
-      value = Implicit.from_dynamic!(d)
-      if schema.key(:implicit).type.right.valid? value
-        return new(implicit: value, double: nil)
+      value = JSONParser.from_dynamic!(d)
+      if schema.key(:json_parser).type.right.valid? value
+        return new(json_parser: value, double: nil)
       end
     rescue
     end
@@ -5766,8 +7875,8 @@ class UnionImplicit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif implicit != nil
-      implicit.to_dynamic
+    elsif json_parser != nil
+      json_parser.to_dynamic
     end
   end
 
@@ -5776,7 +7885,7 @@ class UnionImplicit < Dry::Struct
   end
 end
 
-class Import < Dry::Struct
+class JSONReader < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5798,18 +7907,18 @@ class Import < Dry::Struct
   end
 end
 
-class UnionImport < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :import, Import.optional
+class UnionJSONReader < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_reader, JSONReader.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, import: nil)
+      return new(double: d, json_reader: nil)
     end
     begin
-      value = Import.from_dynamic!(d)
-      if schema.key(:import).type.right.valid? value
-        return new(import: value, double: nil)
+      value = JSONReader.from_dynamic!(d)
+      if schema.key(:json_reader).type.right.valid? value
+        return new(json_reader: value, double: nil)
       end
     rescue
     end
@@ -5823,8 +7932,8 @@ class UnionImport < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif import != nil
-      import.to_dynamic
+    elsif json_reader != nil
+      json_reader.to_dynamic
     end
   end
 
@@ -5833,7 +7942,7 @@ class UnionImport < Dry::Struct
   end
 end
 
-class Indirect < Dry::Struct
+class JSONSerializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5855,18 +7964,18 @@ class Indirect < Dry::Struct
   end
 end
 
-class UnionIndirect < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :indirect, Indirect.optional
+class UnionJSONSerializer < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_serializer, JSONSerializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, indirect: nil)
+      return new(double: d, json_serializer: nil)
     end
     begin
-      value = Indirect.from_dynamic!(d)
-      if schema.key(:indirect).type.right.valid? value
-        return new(indirect: value, double: nil)
+      value = JSONSerializer.from_dynamic!(d)
+      if schema.key(:json_serializer).type.right.valid? value
+        return new(json_serializer: value, double: nil)
       end
     rescue
     end
@@ -5880,8 +7989,8 @@ class UnionIndirect < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif indirect != nil
-      indirect.to_dynamic
+    elsif json_serializer != nil
+      json_serializer.to_dynamic
     end
   end
 
@@ -5890,7 +7999,7 @@ class UnionIndirect < Dry::Struct
   end
 end
 
-class Infix < Dry::Struct
+class JSONToken < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5912,18 +8021,18 @@ class Infix < Dry::Struct
   end
 end
 
-class UnionInfix < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :infix,  Infix.optional
+class UnionJSONToken < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :json_token, JSONToken.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, infix: nil)
+      return new(double: d, json_token: nil)
     end
     begin
-      value = Infix.from_dynamic!(d)
-      if schema.key(:infix).type.right.valid? value
-        return new(infix: value, double: nil)
+      value = JSONToken.from_dynamic!(d)
+      if schema.key(:json_token).type.right.valid? value
+        return new(json_token: value, double: nil)
       end
     rescue
     end
@@ -5937,8 +8046,8 @@ class UnionInfix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif infix != nil
-      infix.to_dynamic
+    elsif json_token != nil
+      json_token.to_dynamic
     end
   end
 
@@ -5947,7 +8056,7 @@ class UnionInfix < Dry::Struct
   end
 end
 
-class Init < Dry::Struct
+class JSONTokenType < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5969,18 +8078,18 @@ class Init < Dry::Struct
   end
 end
 
-class UnionInit < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :init,   Init.optional
+class UnionJSONTokenType < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_token_type, JSONTokenType.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, init: nil)
+      return new(double: d, json_token_type: nil)
     end
     begin
-      value = Init.from_dynamic!(d)
-      if schema.key(:init).type.right.valid? value
-        return new(init: value, double: nil)
+      value = JSONTokenType.from_dynamic!(d)
+      if schema.key(:json_token_type).type.right.valid? value
+        return new(json_token_type: value, double: nil)
       end
     rescue
     end
@@ -5994,8 +8103,8 @@ class UnionInit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif init != nil
-      init.to_dynamic
+    elsif json_token_type != nil
+      json_token_type.to_dynamic
     end
   end
 
@@ -6004,7 +8113,7 @@ class UnionInit < Dry::Struct
   end
 end
 
-class Inline < Dry::Struct
+class JSONWriter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6026,18 +8135,18 @@ class Inline < Dry::Struct
   end
 end
 
-class UnionInline < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :inline, Inline.optional
+class UnionJSONWriter < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_writer, JSONWriter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, inline: nil)
+      return new(double: d, json_writer: nil)
     end
     begin
-      value = Inline.from_dynamic!(d)
-      if schema.key(:inline).type.right.valid? value
-        return new(inline: value, double: nil)
+      value = JSONWriter.from_dynamic!(d)
+      if schema.key(:json_writer).type.right.valid? value
+        return new(json_writer: value, double: nil)
       end
     rescue
     end
@@ -6051,8 +8160,8 @@ class UnionInline < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif inline != nil
-      inline.to_dynamic
+    elsif json_writer != nil
+      json_writer.to_dynamic
     end
   end
 
@@ -6061,7 +8170,7 @@ class UnionInline < Dry::Struct
   end
 end
 
-class Inout < Dry::Struct
+class Lazy < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6083,18 +8192,18 @@ class Inout < Dry::Struct
   end
 end
 
-class UnionInout < Dry::Struct
+class UnionLazy < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :inout,  Inout.optional
+  attribute :lazy,   Lazy.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, inout: nil)
+      return new(double: d, lazy: nil)
     end
     begin
-      value = Inout.from_dynamic!(d)
-      if schema.key(:inout).type.right.valid? value
-        return new(inout: value, double: nil)
+      value = Lazy.from_dynamic!(d)
+      if schema.key(:lazy).type.right.valid? value
+        return new(lazy: value, double: nil)
       end
     rescue
     end
@@ -6108,8 +8217,8 @@ class UnionInout < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif inout != nil
-      inout.to_dynamic
+    elsif lazy != nil
+      lazy.to_dynamic
     end
   end
 
@@ -6118,7 +8227,7 @@ class UnionInout < Dry::Struct
   end
 end
 
-class Instanceof < Dry::Struct
+class Left < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6140,18 +8249,18 @@ class Instanceof < Dry::Struct
   end
 end
 
-class UnionInstanceof < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :instanceof, Instanceof.optional
+class UnionLeft < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :left,   Left.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, instanceof: nil)
+      return new(double: d, left: nil)
     end
     begin
-      value = Instanceof.from_dynamic!(d)
-      if schema.key(:instanceof).type.right.valid? value
-        return new(instanceof: value, double: nil)
+      value = Left.from_dynamic!(d)
+      if schema.key(:left).type.right.valid? value
+        return new(left: value, double: nil)
       end
     rescue
     end
@@ -6165,8 +8274,8 @@ class UnionInstanceof < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif instanceof != nil
-      instanceof.to_dynamic
+    elsif left != nil
+      left.to_dynamic
     end
   end
 
@@ -6175,7 +8284,7 @@ class UnionInstanceof < Dry::Struct
   end
 end
 
-class Int < Dry::Struct
+class Let < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6197,18 +8306,18 @@ class Int < Dry::Struct
   end
 end
 
-class UnionInt < Dry::Struct
+class UnionLet < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :int,    Int.optional
+  attribute :let,    Let.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, int: nil)
+      return new(double: d, let: nil)
     end
     begin
-      value = Int.from_dynamic!(d)
-      if schema.key(:int).type.right.valid? value
-        return new(int: value, double: nil)
+      value = Let.from_dynamic!(d)
+      if schema.key(:let).type.right.valid? value
+        return new(let: value, double: nil)
       end
     rescue
     end
@@ -6222,8 +8331,8 @@ class UnionInt < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif int != nil
-      int.to_dynamic
+    elsif let != nil
+      let.to_dynamic
     end
   end
 
@@ -6232,7 +8341,7 @@ class UnionInt < Dry::Struct
   end
 end
 
-class Interface < Dry::Struct
+class List < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6254,18 +8363,18 @@ class Interface < Dry::Struct
   end
 end
 
-class UnionInterface < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :interface, Interface.optional
+class UnionList < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :list,   List.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, interface: nil)
+      return new(double: d, list: nil)
     end
     begin
-      value = Interface.from_dynamic!(d)
-      if schema.key(:interface).type.right.valid? value
-        return new(interface: value, double: nil)
+      value = List.from_dynamic!(d)
+      if schema.key(:list).type.right.valid? value
+        return new(list: value, double: nil)
       end
     rescue
     end
@@ -6279,8 +8388,8 @@ class UnionInterface < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif interface != nil
-      interface.to_dynamic
+    elsif list != nil
+      list.to_dynamic
     end
   end
 
@@ -6289,7 +8398,7 @@ class UnionInterface < Dry::Struct
   end
 end
 
-class Internal < Dry::Struct
+class Lock < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6311,18 +8420,18 @@ class Internal < Dry::Struct
   end
 end
 
-class UnionInternal < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :internal, Internal.optional
+class UnionLock < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :lock,   Lock.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, internal: nil)
+      return new(double: d, lock: nil)
     end
     begin
-      value = Internal.from_dynamic!(d)
-      if schema.key(:internal).type.right.valid? value
-        return new(internal: value, double: nil)
+      value = Lock.from_dynamic!(d)
+      if schema.key(:lock).type.right.valid? value
+        return new(lock: value, double: nil)
       end
     rescue
     end
@@ -6336,8 +8445,8 @@ class UnionInternal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif internal != nil
-      internal.to_dynamic
+    elsif lock != nil
+      lock.to_dynamic
     end
   end
 
@@ -6346,7 +8455,7 @@ class UnionInternal < Dry::Struct
   end
 end
 
-class Is < Dry::Struct
+class Long < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6368,18 +8477,18 @@ class Is < Dry::Struct
   end
 end
 
-class UnionIs < Dry::Struct
+class UnionLong < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :is,     Is.optional
+  attribute :long,   Long.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, is: nil)
+      return new(double: d, long: nil)
     end
     begin
-      value = Is.from_dynamic!(d)
-      if schema.key(:is).type.right.valid? value
-        return new(is: value, double: nil)
+      value = Long.from_dynamic!(d)
+      if schema.key(:long).type.right.valid? value
+        return new(long: value, double: nil)
       end
     rescue
     end
@@ -6393,8 +8502,8 @@ class UnionIs < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif is != nil
-      is.to_dynamic
+    elsif long != nil
+      long.to_dynamic
     end
   end
 
@@ -6403,7 +8512,7 @@ class UnionIs < Dry::Struct
   end
 end
 
-class Iterable < Dry::Struct
+class Map < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6425,18 +8534,18 @@ class Iterable < Dry::Struct
   end
 end
 
-class UnionIterable < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :iterable, Iterable.optional
+class UnionMap < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :map,    Map.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, iterable: nil)
+      return new(double: d, map: nil)
     end
     begin
-      value = Iterable.from_dynamic!(d)
-      if schema.key(:iterable).type.right.valid? value
-        return new(iterable: value, double: nil)
+      value = Map.from_dynamic!(d)
+      if schema.key(:map).type.right.valid? value
+        return new(map: value, double: nil)
       end
     rescue
     end
@@ -6450,8 +8559,8 @@ class UnionIterable < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif iterable != nil
-      iterable.to_dynamic
+    elsif map != nil
+      map.to_dynamic
     end
   end
 
@@ -6460,7 +8569,7 @@ class UnionIterable < Dry::Struct
   end
 end
 
-class Jdec < Dry::Struct
+class MetadataPropertyHandling < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6482,18 +8591,18 @@ class Jdec < Dry::Struct
   end
 end
 
-class UnionJdec < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jdec,   Jdec.optional
+class UnionMetadataPropertyHandling < Dry::Struct
+  attribute :double,                     Types::Double.optional
+  attribute :metadata_property_handling, MetadataPropertyHandling.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jdec: nil)
+      return new(double: d, metadata_property_handling: nil)
     end
     begin
-      value = Jdec.from_dynamic!(d)
-      if schema.key(:jdec).type.right.valid? value
-        return new(jdec: value, double: nil)
+      value = MetadataPropertyHandling.from_dynamic!(d)
+      if schema.key(:metadata_property_handling).type.right.valid? value
+        return new(metadata_property_handling: value, double: nil)
       end
     rescue
     end
@@ -6507,8 +8616,8 @@ class UnionJdec < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jdec != nil
-      jdec.to_dynamic
+    elsif metadata_property_handling != nil
+      metadata_property_handling.to_dynamic
     end
   end
 
@@ -6517,7 +8626,7 @@ class UnionJdec < Dry::Struct
   end
 end
 
-class Jenc < Dry::Struct
+class Mutable < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6539,18 +8648,18 @@ class Jenc < Dry::Struct
   end
 end
 
-class UnionJenc < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jenc,   Jenc.optional
+class UnionMutable < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :mutable, Mutable.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jenc: nil)
+      return new(double: d, mutable: nil)
     end
     begin
-      value = Jenc.from_dynamic!(d)
-      if schema.key(:jenc).type.right.valid? value
-        return new(jenc: value, double: nil)
+      value = Mutable.from_dynamic!(d)
+      if schema.key(:mutable).type.right.valid? value
+        return new(mutable: value, double: nil)
       end
     rescue
     end
@@ -6564,8 +8673,8 @@ class UnionJenc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jenc != nil
-      jenc.to_dynamic
+    elsif mutable != nil
+      mutable.to_dynamic
     end
   end
 
@@ -6574,7 +8683,7 @@ class UnionJenc < Dry::Struct
   end
 end
 
-class Jpipe < Dry::Struct
+class Mutating < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6596,18 +8705,18 @@ class Jpipe < Dry::Struct
   end
 end
 
-class UnionJpipe < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jpipe,  Jpipe.optional
+class UnionMutating < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :mutating, Mutating.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jpipe: nil)
+      return new(double: d, mutating: nil)
     end
     begin
-      value = Jpipe.from_dynamic!(d)
-      if schema.key(:jpipe).type.right.valid? value
-        return new(jpipe: value, double: nil)
+      value = Mutating.from_dynamic!(d)
+      if schema.key(:mutating).type.right.valid? value
+        return new(mutating: value, double: nil)
       end
     rescue
     end
@@ -6621,8 +8730,8 @@ class UnionJpipe < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jpipe != nil
-      jpipe.to_dynamic
+    elsif mutating != nil
+      mutating.to_dynamic
     end
   end
 
@@ -6631,7 +8740,7 @@ class UnionJpipe < Dry::Struct
   end
 end
 
-class JSONClass < Dry::Struct
+class Namespace < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6653,18 +8762,18 @@ class JSONClass < Dry::Struct
   end
 end
 
-class UnionJSON < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :json_class, JSONClass.optional
+class UnionNamespace < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :namespace, Namespace.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_class: nil)
+      return new(double: d, namespace: nil)
     end
     begin
-      value = JSONClass.from_dynamic!(d)
-      if schema.key(:json_class).type.right.valid? value
-        return new(json_class: value, double: nil)
+      value = Namespace.from_dynamic!(d)
+      if schema.key(:namespace).type.right.valid? value
+        return new(namespace: value, double: nil)
       end
     rescue
     end
@@ -6678,8 +8787,8 @@ class UnionJSON < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_class != nil
-      json_class.to_dynamic
+    elsif namespace != nil
+      namespace.to_dynamic
     end
   end
 
@@ -6688,7 +8797,7 @@ class UnionJSON < Dry::Struct
   end
 end
 
-class JSONConverter < Dry::Struct
+class Native < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6710,18 +8819,18 @@ class JSONConverter < Dry::Struct
   end
 end
 
-class UnionJSONConverter < Dry::Struct
-  attribute :double,         Types::Double.optional
-  attribute :json_converter, JSONConverter.optional
+class UnionNative < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :native, Native.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_converter: nil)
+      return new(double: d, native: nil)
     end
     begin
-      value = JSONConverter.from_dynamic!(d)
-      if schema.key(:json_converter).type.right.valid? value
-        return new(json_converter: value, double: nil)
+      value = Native.from_dynamic!(d)
+      if schema.key(:native).type.right.valid? value
+        return new(native: value, double: nil)
       end
     rescue
     end
@@ -6735,8 +8844,8 @@ class UnionJSONConverter < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_converter != nil
-      json_converter.to_dynamic
+    elsif native != nil
+      native.to_dynamic
     end
   end
 
@@ -6745,7 +8854,7 @@ class UnionJSONConverter < Dry::Struct
   end
 end
 
-class JSONSerializer < Dry::Struct
+class Newtonsoft < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6767,18 +8876,18 @@ class JSONSerializer < Dry::Struct
   end
 end
 
-class UnionJSONSerializer < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :json_serializer, JSONSerializer.optional
+class UnionNewtonsoft < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :newtonsoft, Newtonsoft.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_serializer: nil)
+      return new(double: d, newtonsoft: nil)
     end
     begin
-      value = JSONSerializer.from_dynamic!(d)
-      if schema.key(:json_serializer).type.right.valid? value
-        return new(json_serializer: value, double: nil)
+      value = Newtonsoft.from_dynamic!(d)
+      if schema.key(:newtonsoft).type.right.valid? value
+        return new(newtonsoft: value, double: nil)
       end
     rescue
     end
@@ -6792,8 +8901,8 @@ class UnionJSONSerializer < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_serializer != nil
-      json_serializer.to_dynamic
+    elsif newtonsoft != nil
+      newtonsoft.to_dynamic
     end
   end
 
@@ -6802,7 +8911,7 @@ class UnionJSONSerializer < Dry::Struct
   end
 end
 
-class JSONToken < Dry::Struct
+class No < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6824,18 +8933,18 @@ class JSONToken < Dry::Struct
   end
 end
 
-class UnionJSONToken < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :json_token, JSONToken.optional
+class UnionNO < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :no,     No.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_token: nil)
+      return new(double: d, no: nil)
     end
     begin
-      value = JSONToken.from_dynamic!(d)
-      if schema.key(:json_token).type.right.valid? value
-        return new(json_token: value, double: nil)
+      value = No.from_dynamic!(d)
+      if schema.key(:no).type.right.valid? value
+        return new(no: value, double: nil)
       end
     rescue
     end
@@ -6849,8 +8958,8 @@ class UnionJSONToken < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_token != nil
-      json_token.to_dynamic
+    elsif no != nil
+      no.to_dynamic
     end
   end
 
@@ -6859,7 +8968,7 @@ class UnionJSONToken < Dry::Struct
   end
 end
 
-class JSONWriter < Dry::Struct
+class NoSuchMethod < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6881,18 +8990,18 @@ class JSONWriter < Dry::Struct
   end
 end
 
-class UnionJSONWriter < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :json_writer, JSONWriter.optional
+class UnionNoSuchMethod < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :no_such_method, NoSuchMethod.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_writer: nil)
+      return new(double: d, no_such_method: nil)
     end
     begin
-      value = JSONWriter.from_dynamic!(d)
-      if schema.key(:json_writer).type.right.valid? value
-        return new(json_writer: value, double: nil)
+      value = NoSuchMethod.from_dynamic!(d)
+      if schema.key(:no_such_method).type.right.valid? value
+        return new(no_such_method: value, double: nil)
       end
     rescue
     end
@@ -6906,8 +9015,8 @@ class UnionJSONWriter < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_writer != nil
-      json_writer.to_dynamic
+    elsif no_such_method != nil
+      no_such_method.to_dynamic
     end
   end
 
@@ -6916,7 +9025,7 @@ class UnionJSONWriter < Dry::Struct
   end
 end
 
-class Lazy < Dry::Struct
+class Noexcept < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6938,18 +9047,18 @@ class Lazy < Dry::Struct
   end
 end
 
-class UnionLazy < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :lazy,   Lazy.optional
+class UnionNoexcept < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :noexcept, Noexcept.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, lazy: nil)
+      return new(double: d, noexcept: nil)
     end
     begin
-      value = Lazy.from_dynamic!(d)
-      if schema.key(:lazy).type.right.valid? value
-        return new(lazy: value, double: nil)
+      value = Noexcept.from_dynamic!(d)
+      if schema.key(:noexcept).type.right.valid? value
+        return new(noexcept: value, double: nil)
       end
     rescue
     end
@@ -6963,8 +9072,8 @@ class UnionLazy < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif lazy != nil
-      lazy.to_dynamic
+    elsif noexcept != nil
+      noexcept.to_dynamic
     end
   end
 
@@ -6973,7 +9082,7 @@ class UnionLazy < Dry::Struct
   end
 end
 
-class Left < Dry::Struct
+class Nonatomic < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6995,18 +9104,18 @@ class Left < Dry::Struct
   end
 end
 
-class UnionLeft < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :left,   Left.optional
+class UnionNonatomic < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :nonatomic, Nonatomic.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, left: nil)
+      return new(double: d, nonatomic: nil)
     end
     begin
-      value = Left.from_dynamic!(d)
-      if schema.key(:left).type.right.valid? value
-        return new(left: value, double: nil)
+      value = Nonatomic.from_dynamic!(d)
+      if schema.key(:nonatomic).type.right.valid? value
+        return new(nonatomic: value, double: nil)
       end
     rescue
     end
@@ -7020,8 +9129,8 @@ class UnionLeft < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif left != nil
-      left.to_dynamic
+    elsif nonatomic != nil
+      nonatomic.to_dynamic
     end
   end
 
@@ -7030,7 +9139,7 @@ class UnionLeft < Dry::Struct
   end
 end
 
-class Let < Dry::Struct
+class None < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7052,18 +9161,18 @@ class Let < Dry::Struct
   end
 end
 
-class UnionLet < Dry::Struct
+class UnionNone < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :let,    Let.optional
+  attribute :none,   None.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, let: nil)
+      return new(double: d, none: nil)
     end
     begin
-      value = Let.from_dynamic!(d)
-      if schema.key(:let).type.right.valid? value
-        return new(let: value, double: nil)
+      value = None.from_dynamic!(d)
+      if schema.key(:none).type.right.valid? value
+        return new(none: value, double: nil)
       end
     rescue
     end
@@ -7077,8 +9186,8 @@ class UnionLet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif let != nil
-      let.to_dynamic
+    elsif none != nil
+      none.to_dynamic
     end
   end
 
@@ -7087,7 +9196,7 @@ class UnionLet < Dry::Struct
   end
 end
 
-class List < Dry::Struct
+class Nonlocal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7109,18 +9218,18 @@ class List < Dry::Struct
   end
 end
 
-class UnionList < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :list,   List.optional
+class UnionNonlocal < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :nonlocal, Nonlocal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, list: nil)
+      return new(double: d, nonlocal: nil)
     end
     begin
-      value = List.from_dynamic!(d)
-      if schema.key(:list).type.right.valid? value
-        return new(list: value, double: nil)
+      value = Nonlocal.from_dynamic!(d)
+      if schema.key(:nonlocal).type.right.valid? value
+        return new(nonlocal: value, double: nil)
       end
     rescue
     end
@@ -7134,8 +9243,8 @@ class UnionList < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif list != nil
-      list.to_dynamic
+    elsif nonlocal != nil
+      nonlocal.to_dynamic
     end
   end
 
@@ -7144,7 +9253,7 @@ class UnionList < Dry::Struct
   end
 end
 
-class Lock < Dry::Struct
+class Nonmutating < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7166,18 +9275,18 @@ class Lock < Dry::Struct
   end
 end
 
-class UnionLock < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :lock,   Lock.optional
+class UnionNonmutating < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :nonmutating, Nonmutating.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, lock: nil)
+      return new(double: d, nonmutating: nil)
     end
     begin
-      value = Lock.from_dynamic!(d)
-      if schema.key(:lock).type.right.valid? value
-        return new(lock: value, double: nil)
+      value = Nonmutating.from_dynamic!(d)
+      if schema.key(:nonmutating).type.right.valid? value
+        return new(nonmutating: value, double: nil)
       end
     rescue
     end
@@ -7191,8 +9300,8 @@ class UnionLock < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif lock != nil
-      lock.to_dynamic
+    elsif nonmutating != nil
+      nonmutating.to_dynamic
     end
   end
 
@@ -7201,7 +9310,7 @@ class UnionLock < Dry::Struct
   end
 end
 
-class Long < Dry::Struct
+class NotEq < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7223,18 +9332,18 @@ class Long < Dry::Struct
   end
 end
 
-class UnionLong < Dry::Struct
+class UnionNotEq < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :long,   Long.optional
+  attribute :not_eq, NotEq.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, long: nil)
+      return new(double: d, not_eq: nil)
     end
     begin
-      value = Long.from_dynamic!(d)
-      if schema.key(:long).type.right.valid? value
-        return new(long: value, double: nil)
+      value = NotEq.from_dynamic!(d)
+      if schema.key(:not_eq).type.right.valid? value
+        return new(not_eq: value, double: nil)
       end
     rescue
     end
@@ -7248,8 +9357,8 @@ class UnionLong < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif long != nil
-      long.to_dynamic
+    elsif not_eq != nil
+      not_eq.to_dynamic
     end
   end
 
@@ -7258,7 +9367,7 @@ class UnionLong < Dry::Struct
   end
 end
 
-class Map < Dry::Struct
+class NSError < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7280,18 +9389,18 @@ class Map < Dry::Struct
   end
 end
 
-class UnionMap < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :map,    Map.optional
+class UnionNSError < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :ns_error, NSError.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, map: nil)
+      return new(double: d, ns_error: nil)
     end
     begin
-      value = Map.from_dynamic!(d)
-      if schema.key(:map).type.right.valid? value
-        return new(map: value, double: nil)
+      value = NSError.from_dynamic!(d)
+      if schema.key(:ns_error).type.right.valid? value
+        return new(ns_error: value, double: nil)
       end
     rescue
     end
@@ -7305,8 +9414,8 @@ class UnionMap < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif map != nil
-      map.to_dynamic
+    elsif ns_error != nil
+      ns_error.to_dynamic
     end
   end
 
@@ -7315,7 +9424,7 @@ class UnionMap < Dry::Struct
   end
 end
 
-class MetadataPropertyHandling < Dry::Struct
+class NSString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7337,18 +9446,18 @@ class MetadataPropertyHandling < Dry::Struct
   end
 end
 
-class UnionMetadataPropertyHandling < Dry::Struct
-  attribute :double,                     Types::Double.optional
-  attribute :metadata_property_handling, MetadataPropertyHandling.optional
+class UnionNSString < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :ns_string, NSString.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, metadata_property_handling: nil)
+      return new(double: d, ns_string: nil)
     end
     begin
-      value = MetadataPropertyHandling.from_dynamic!(d)
-      if schema.key(:metadata_property_handling).type.right.valid? value
-        return new(metadata_property_handling: value, double: nil)
+      value = NSString.from_dynamic!(d)
+      if schema.key(:ns_string).type.right.valid? value
+        return new(ns_string: value, double: nil)
       end
     rescue
     end
@@ -7362,8 +9471,8 @@ class UnionMetadataPropertyHandling < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif metadata_property_handling != nil
-      metadata_property_handling.to_dynamic
+    elsif ns_string != nil
+      ns_string.to_dynamic
     end
   end
 
@@ -7372,7 +9481,7 @@ class UnionMetadataPropertyHandling < Dry::Struct
   end
 end
 
-class Mutable < Dry::Struct
+class Null < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7394,18 +9503,18 @@ class Mutable < Dry::Struct
   end
 end
 
-class UnionMutable < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :mutable, Mutable.optional
+class UnionNULL < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :null,   Null.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, mutable: nil)
+      return new(double: d, null: nil)
     end
     begin
-      value = Mutable.from_dynamic!(d)
-      if schema.key(:mutable).type.right.valid? value
-        return new(mutable: value, double: nil)
+      value = Null.from_dynamic!(d)
+      if schema.key(:null).type.right.valid? value
+        return new(null: value, double: nil)
       end
     rescue
     end
@@ -7419,8 +9528,8 @@ class UnionMutable < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif mutable != nil
-      mutable.to_dynamic
+    elsif null != nil
+      null.to_dynamic
     end
   end
 
@@ -7429,7 +9538,7 @@ class UnionMutable < Dry::Struct
   end
 end
 
-class Mutating < Dry::Struct
+class Nullptr < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7451,18 +9560,18 @@ class Mutating < Dry::Struct
   end
 end
 
-class UnionMutating < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :mutating, Mutating.optional
+class UnionNullptr < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :nullptr, Nullptr.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, mutating: nil)
+      return new(double: d, nullptr: nil)
     end
     begin
-      value = Mutating.from_dynamic!(d)
-      if schema.key(:mutating).type.right.valid? value
-        return new(mutating: value, double: nil)
+      value = Nullptr.from_dynamic!(d)
+      if schema.key(:nullptr).type.right.valid? value
+        return new(nullptr: value, double: nil)
       end
     rescue
     end
@@ -7476,8 +9585,8 @@ class UnionMutating < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif mutating != nil
-      mutating.to_dynamic
+    elsif nullptr != nil
+      nullptr.to_dynamic
     end
   end
 
@@ -7486,7 +9595,7 @@ class UnionMutating < Dry::Struct
   end
 end
 
-class Namespace < Dry::Struct
+class Number < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7508,18 +9617,18 @@ class Namespace < Dry::Struct
   end
 end
 
-class UnionNamespace < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :namespace, Namespace.optional
+class UnionNumber < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :number, Number.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, namespace: nil)
+      return new(double: d, number: nil)
     end
     begin
-      value = Namespace.from_dynamic!(d)
-      if schema.key(:namespace).type.right.valid? value
-        return new(namespace: value, double: nil)
+      value = Number.from_dynamic!(d)
+      if schema.key(:number).type.right.valid? value
+        return new(number: value, double: nil)
       end
     rescue
     end
@@ -7533,8 +9642,8 @@ class UnionNamespace < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif namespace != nil
-      namespace.to_dynamic
+    elsif number != nil
+      number.to_dynamic
     end
   end
 
@@ -7543,7 +9652,7 @@ class UnionNamespace < Dry::Struct
   end
 end
 
-class Native < Dry::Struct
+class ObjectClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7565,18 +9674,18 @@ class Native < Dry::Struct
   end
 end
 
-class UnionNative < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :native, Native.optional
+class UnionObject < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :object_class, ObjectClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, native: nil)
+      return new(double: d, object_class: nil)
     end
     begin
-      value = Native.from_dynamic!(d)
-      if schema.key(:native).type.right.valid? value
-        return new(native: value, double: nil)
+      value = ObjectClass.from_dynamic!(d)
+      if schema.key(:object_class).type.right.valid? value
+        return new(object_class: value, double: nil)
       end
     rescue
     end
@@ -7590,8 +9699,8 @@ class UnionNative < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif native != nil
-      native.to_dynamic
+    elsif object_class != nil
+      object_class.to_dynamic
     end
   end
 
@@ -7600,7 +9709,7 @@ class UnionNative < Dry::Struct
   end
 end
 
-class Newtonsoft < Dry::Struct
+class ObjectMapper < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7622,18 +9731,18 @@ class Newtonsoft < Dry::Struct
   end
 end
 
-class UnionNewtonsoft < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :newtonsoft, Newtonsoft.optional
+class UnionObjectMapper < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :object_mapper, ObjectMapper.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, newtonsoft: nil)
+      return new(double: d, object_mapper: nil)
     end
     begin
-      value = Newtonsoft.from_dynamic!(d)
-      if schema.key(:newtonsoft).type.right.valid? value
-        return new(newtonsoft: value, double: nil)
+      value = ObjectMapper.from_dynamic!(d)
+      if schema.key(:object_mapper).type.right.valid? value
+        return new(object_mapper: value, double: nil)
       end
     rescue
     end
@@ -7647,8 +9756,8 @@ class UnionNewtonsoft < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif newtonsoft != nil
-      newtonsoft.to_dynamic
+    elsif object_mapper != nil
+      object_mapper.to_dynamic
     end
   end
 
@@ -7657,7 +9766,7 @@ class UnionNewtonsoft < Dry::Struct
   end
 end
 
-class No < Dry::Struct
+class Of < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7679,18 +9788,18 @@ class No < Dry::Struct
   end
 end
 
-class UnionNO < Dry::Struct
+class UnionOf < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :no,     No.optional
+  attribute :of,     Of.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, no: nil)
+      return new(double: d, of: nil)
     end
     begin
-      value = No.from_dynamic!(d)
-      if schema.key(:no).type.right.valid? value
-        return new(no: value, double: nil)
+      value = Of.from_dynamic!(d)
+      if schema.key(:of).type.right.valid? value
+        return new(of: value, double: nil)
       end
     rescue
     end
@@ -7704,8 +9813,8 @@ class UnionNO < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif no != nil
-      no.to_dynamic
+    elsif of != nil
+      of.to_dynamic
     end
   end
 
@@ -7714,7 +9823,7 @@ class UnionNO < Dry::Struct
   end
 end
 
-class Noexcept < Dry::Struct
+class Oneway < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7736,18 +9845,18 @@ class Noexcept < Dry::Struct
   end
 end
 
-class UnionNoexcept < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :noexcept, Noexcept.optional
+class UnionOneway < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :oneway, Oneway.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, noexcept: nil)
+      return new(double: d, oneway: nil)
     end
     begin
-      value = Noexcept.from_dynamic!(d)
-      if schema.key(:noexcept).type.right.valid? value
-        return new(noexcept: value, double: nil)
+      value = Oneway.from_dynamic!(d)
+      if schema.key(:oneway).type.right.valid? value
+        return new(oneway: value, double: nil)
       end
     rescue
     end
@@ -7761,8 +9870,8 @@ class UnionNoexcept < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif noexcept != nil
-      noexcept.to_dynamic
+    elsif oneway != nil
+      oneway.to_dynamic
     end
   end
 
@@ -7771,7 +9880,7 @@ class UnionNoexcept < Dry::Struct
   end
 end
 
-class Nonatomic < Dry::Struct
+class Operator < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7793,18 +9902,18 @@ class Nonatomic < Dry::Struct
   end
 end
 
-class UnionNonatomic < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :nonatomic, Nonatomic.optional
+class UnionOperator < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :operator, Operator.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonatomic: nil)
+      return new(double: d, operator: nil)
     end
     begin
-      value = Nonatomic.from_dynamic!(d)
-      if schema.key(:nonatomic).type.right.valid? value
-        return new(nonatomic: value, double: nil)
+      value = Operator.from_dynamic!(d)
+      if schema.key(:operator).type.right.valid? value
+        return new(operator: value, double: nil)
       end
     rescue
     end
@@ -7818,8 +9927,8 @@ class UnionNonatomic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonatomic != nil
-      nonatomic.to_dynamic
+    elsif operator != nil
+      operator.to_dynamic
     end
   end
 
@@ -7828,7 +9937,7 @@ class UnionNonatomic < Dry::Struct
   end
 end
 
-class None < Dry::Struct
+class OrEq < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7850,18 +9959,18 @@ class None < Dry::Struct
   end
 end
 
-class UnionNone < Dry::Struct
+class UnionOrEq < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :none,   None.optional
+  attribute :or_eq,  OrEq.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, none: nil)
+      return new(double: d, or_eq: nil)
     end
     begin
-      value = None.from_dynamic!(d)
-      if schema.key(:none).type.right.valid? value
-        return new(none: value, double: nil)
+      value = OrEq.from_dynamic!(d)
+      if schema.key(:or_eq).type.right.valid? value
+        return new(or_eq: value, double: nil)
       end
     rescue
     end
@@ -7875,8 +9984,8 @@ class UnionNone < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif none != nil
-      none.to_dynamic
+    elsif or_eq != nil
+      or_eq.to_dynamic
     end
   end
 
@@ -7885,7 +9994,7 @@ class UnionNone < Dry::Struct
   end
 end
 
-class Nonlocal < Dry::Struct
+class Out < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7907,18 +10016,18 @@ class Nonlocal < Dry::Struct
   end
 end
 
-class UnionNonlocal < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :nonlocal, Nonlocal.optional
+class UnionOut < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :out,    Out.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonlocal: nil)
+      return new(double: d, out: nil)
     end
     begin
-      value = Nonlocal.from_dynamic!(d)
-      if schema.key(:nonlocal).type.right.valid? value
-        return new(nonlocal: value, double: nil)
+      value = Out.from_dynamic!(d)
+      if schema.key(:out).type.right.valid? value
+        return new(out: value, double: nil)
       end
     rescue
     end
@@ -7932,8 +10041,8 @@ class UnionNonlocal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonlocal != nil
-      nonlocal.to_dynamic
+    elsif out != nil
+      out.to_dynamic
     end
   end
 
@@ -7942,7 +10051,7 @@ class UnionNonlocal < Dry::Struct
   end
 end
 
-class Nonmutating < Dry::Struct
+class Override < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7964,18 +10073,18 @@ class Nonmutating < Dry::Struct
   end
 end
 
-class UnionNonmutating < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :nonmutating, Nonmutating.optional
-
+class UnionOverride < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :override, Override.optional
+
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonmutating: nil)
+      return new(double: d, override: nil)
     end
     begin
-      value = Nonmutating.from_dynamic!(d)
-      if schema.key(:nonmutating).type.right.valid? value
-        return new(nonmutating: value, double: nil)
+      value = Override.from_dynamic!(d)
+      if schema.key(:override).type.right.valid? value
+        return new(override: value, double: nil)
       end
     rescue
     end
@@ -7989,8 +10098,8 @@ class UnionNonmutating < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonmutating != nil
-      nonmutating.to_dynamic
+    elsif override != nil
+      override.to_dynamic
     end
   end
 
@@ -7999,7 +10108,7 @@ class UnionNonmutating < Dry::Struct
   end
 end
 
-class NotEq < Dry::Struct
+class Package < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8021,18 +10130,18 @@ class NotEq < Dry::Struct
   end
 end
 
-class UnionNotEq < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :not_eq, NotEq.optional
+class UnionPackage < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :package, Package.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, not_eq: nil)
+      return new(double: d, package: nil)
     end
     begin
-      value = NotEq.from_dynamic!(d)
-      if schema.key(:not_eq).type.right.valid? value
-        return new(not_eq: value, double: nil)
+      value = Package.from_dynamic!(d)
+      if schema.key(:package).type.right.valid? value
+        return new(package: value, double: nil)
       end
     rescue
     end
@@ -8046,8 +10155,8 @@ class UnionNotEq < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif not_eq != nil
-      not_eq.to_dynamic
+    elsif package != nil
+      package.to_dynamic
     end
   end
 
@@ -8056,7 +10165,7 @@ class UnionNotEq < Dry::Struct
   end
 end
 
-class NSString < Dry::Struct
+class Params < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8078,18 +10187,18 @@ class NSString < Dry::Struct
   end
 end
 
-class UnionNSString < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :ns_string, NSString.optional
+class UnionParams < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :params, Params.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, ns_string: nil)
+      return new(double: d, params: nil)
     end
     begin
-      value = NSString.from_dynamic!(d)
-      if schema.key(:ns_string).type.right.valid? value
-        return new(ns_string: value, double: nil)
+      value = Params.from_dynamic!(d)
+      if schema.key(:params).type.right.valid? value
+        return new(params: value, double: nil)
       end
     rescue
     end
@@ -8103,8 +10212,8 @@ class UnionNSString < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif ns_string != nil
-      ns_string.to_dynamic
+    elsif params != nil
+      params.to_dynamic
     end
   end
 
@@ -8113,7 +10222,7 @@ class UnionNSString < Dry::Struct
   end
 end
 
-class Null < Dry::Struct
+class Pass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8135,18 +10244,18 @@ class Null < Dry::Struct
   end
 end
 
-class UnionNULL < Dry::Struct
+class UnionPass < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :null,   Null.optional
+  attribute :pass,   Pass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, null: nil)
+      return new(double: d, pass: nil)
     end
     begin
-      value = Null.from_dynamic!(d)
-      if schema.key(:null).type.right.valid? value
-        return new(null: value, double: nil)
+      value = Pass.from_dynamic!(d)
+      if schema.key(:pass).type.right.valid? value
+        return new(pass: value, double: nil)
       end
     rescue
     end
@@ -8160,8 +10269,8 @@ class UnionNULL < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif null != nil
-      null.to_dynamic
+    elsif pass != nil
+      pass.to_dynamic
     end
   end
 
@@ -8170,7 +10279,7 @@ class UnionNULL < Dry::Struct
   end
 end
 
-class Nullptr < Dry::Struct
+class Port < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8192,18 +10301,18 @@ class Nullptr < Dry::Struct
   end
 end
 
-class UnionNullptr < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :nullptr, Nullptr.optional
+class UnionPort < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :port,   Port.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nullptr: nil)
+      return new(double: d, port: nil)
     end
     begin
-      value = Nullptr.from_dynamic!(d)
-      if schema.key(:nullptr).type.right.valid? value
-        return new(nullptr: value, double: nil)
+      value = Port.from_dynamic!(d)
+      if schema.key(:port).type.right.valid? value
+        return new(port: value, double: nil)
       end
     rescue
     end
@@ -8217,8 +10326,8 @@ class UnionNullptr < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nullptr != nil
-      nullptr.to_dynamic
+    elsif port != nil
+      port.to_dynamic
     end
   end
 
@@ -8227,7 +10336,7 @@ class UnionNullptr < Dry::Struct
   end
 end
 
-class Number < Dry::Struct
+class Postfix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8249,18 +10358,18 @@ class Number < Dry::Struct
   end
 end
 
-class UnionNumber < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :number, Number.optional
+class UnionPostfix < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :postfix, Postfix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, number: nil)
+      return new(double: d, postfix: nil)
     end
     begin
-      value = Number.from_dynamic!(d)
-      if schema.key(:number).type.right.valid? value
-        return new(number: value, double: nil)
+      value = Postfix.from_dynamic!(d)
+      if schema.key(:postfix).type.right.valid? value
+        return new(postfix: value, double: nil)
       end
     rescue
     end
@@ -8274,8 +10383,8 @@ class UnionNumber < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif number != nil
-      number.to_dynamic
+    elsif postfix != nil
+      postfix.to_dynamic
     end
   end
 
@@ -8284,7 +10393,7 @@ class UnionNumber < Dry::Struct
   end
 end
 
-class ObjectClass < Dry::Struct
+class Precedence < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8306,18 +10415,18 @@ class ObjectClass < Dry::Struct
   end
 end
 
-class UnionObject < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :object_class, ObjectClass.optional
+class UnionPrecedence < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :precedence, Precedence.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, object_class: nil)
+      return new(double: d, precedence: nil)
     end
     begin
-      value = ObjectClass.from_dynamic!(d)
-      if schema.key(:object_class).type.right.valid? value
-        return new(object_class: value, double: nil)
+      value = Precedence.from_dynamic!(d)
+      if schema.key(:precedence).type.right.valid? value
+        return new(precedence: value, double: nil)
       end
     rescue
     end
@@ -8331,8 +10440,8 @@ class UnionObject < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif object_class != nil
-      object_class.to_dynamic
+    elsif precedence != nil
+      precedence.to_dynamic
     end
   end
 
@@ -8341,7 +10450,7 @@ class UnionObject < Dry::Struct
   end
 end
 
-class Of < Dry::Struct
+class Prefix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8363,18 +10472,18 @@ class Of < Dry::Struct
   end
 end
 
-class UnionOf < Dry::Struct
+class UnionPrefix < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :of,     Of.optional
+  attribute :prefix, Prefix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, of: nil)
+      return new(double: d, prefix: nil)
     end
     begin
-      value = Of.from_dynamic!(d)
-      if schema.key(:of).type.right.valid? value
-        return new(of: value, double: nil)
+      value = Prefix.from_dynamic!(d)
+      if schema.key(:prefix).type.right.valid? value
+        return new(prefix: value, double: nil)
       end
     rescue
     end
@@ -8388,8 +10497,8 @@ class UnionOf < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif of != nil
-      of.to_dynamic
+    elsif prefix != nil
+      prefix.to_dynamic
     end
   end
 
@@ -8398,7 +10507,7 @@ class UnionOf < Dry::Struct
   end
 end
 
-class Oneway < Dry::Struct
+class PrintMembers < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8420,18 +10529,18 @@ class Oneway < Dry::Struct
   end
 end
 
-class UnionOneway < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :oneway, Oneway.optional
+class UnionPrintMembers < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :print_members, PrintMembers.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, oneway: nil)
+      return new(double: d, print_members: nil)
     end
     begin
-      value = Oneway.from_dynamic!(d)
-      if schema.key(:oneway).type.right.valid? value
-        return new(oneway: value, double: nil)
+      value = PrintMembers.from_dynamic!(d)
+      if schema.key(:print_members).type.right.valid? value
+        return new(print_members: value, double: nil)
       end
     rescue
     end
@@ -8445,8 +10554,8 @@ class UnionOneway < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif oneway != nil
-      oneway.to_dynamic
+    elsif print_members != nil
+      print_members.to_dynamic
     end
   end
 
@@ -8455,7 +10564,7 @@ class UnionOneway < Dry::Struct
   end
 end
 
-class Operator < Dry::Struct
+class Private < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8477,18 +10586,18 @@ class Operator < Dry::Struct
   end
 end
 
-class UnionOperator < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :operator, Operator.optional
+class UnionPrivate < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :private, Private.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, operator: nil)
+      return new(double: d, private: nil)
     end
     begin
-      value = Operator.from_dynamic!(d)
-      if schema.key(:operator).type.right.valid? value
-        return new(operator: value, double: nil)
+      value = Private.from_dynamic!(d)
+      if schema.key(:private).type.right.valid? value
+        return new(private: value, double: nil)
       end
     rescue
     end
@@ -8502,8 +10611,8 @@ class UnionOperator < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif operator != nil
-      operator.to_dynamic
+    elsif private != nil
+      private.to_dynamic
     end
   end
 
@@ -8512,7 +10621,7 @@ class UnionOperator < Dry::Struct
   end
 end
 
-class OrEq < Dry::Struct
+class Protected < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8534,18 +10643,18 @@ class OrEq < Dry::Struct
   end
 end
 
-class UnionOrEq < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :or_eq,  OrEq.optional
+class UnionProtected < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :protected, Protected.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, or_eq: nil)
+      return new(double: d, protected: nil)
     end
     begin
-      value = OrEq.from_dynamic!(d)
-      if schema.key(:or_eq).type.right.valid? value
-        return new(or_eq: value, double: nil)
+      value = Protected.from_dynamic!(d)
+      if schema.key(:protected).type.right.valid? value
+        return new(protected: value, double: nil)
       end
     rescue
     end
@@ -8559,8 +10668,8 @@ class UnionOrEq < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif or_eq != nil
-      or_eq.to_dynamic
+    elsif protected != nil
+      protected.to_dynamic
     end
   end
 
@@ -8569,7 +10678,7 @@ class UnionOrEq < Dry::Struct
   end
 end
 
-class Out < Dry::Struct
+class Protocol < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8591,18 +10700,18 @@ class Out < Dry::Struct
   end
 end
 
-class UnionOut < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :out,    Out.optional
+class UnionProtocol < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :protocol, Protocol.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, out: nil)
+      return new(double: d, protocol: nil)
     end
     begin
-      value = Out.from_dynamic!(d)
-      if schema.key(:out).type.right.valid? value
-        return new(out: value, double: nil)
+      value = Protocol.from_dynamic!(d)
+      if schema.key(:protocol).type.right.valid? value
+        return new(protocol: value, double: nil)
       end
     rescue
     end
@@ -8616,8 +10725,8 @@ class UnionOut < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif out != nil
-      out.to_dynamic
+    elsif protocol != nil
+      protocol.to_dynamic
     end
   end
 
@@ -8626,7 +10735,7 @@ class UnionOut < Dry::Struct
   end
 end
 
-class Override < Dry::Struct
+class Public < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8648,18 +10757,18 @@ class Override < Dry::Struct
   end
 end
 
-class UnionOverride < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :override, Override.optional
+class UnionPublic < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :public, Public.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, override: nil)
+      return new(double: d, public: nil)
     end
     begin
-      value = Override.from_dynamic!(d)
-      if schema.key(:override).type.right.valid? value
-        return new(override: value, double: nil)
+      value = Public.from_dynamic!(d)
+      if schema.key(:public).type.right.valid? value
+        return new(public: value, double: nil)
       end
     rescue
     end
@@ -8673,8 +10782,8 @@ class UnionOverride < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif override != nil
-      override.to_dynamic
+    elsif public != nil
+      public.to_dynamic
     end
   end
 
@@ -8683,7 +10792,7 @@ class UnionOverride < Dry::Struct
   end
 end
 
-class Package < Dry::Struct
+class Quicktype < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8705,18 +10814,18 @@ class Package < Dry::Struct
   end
 end
 
-class UnionPackage < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :package, Package.optional
+class UnionQuicktype < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :quicktype, Quicktype.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, package: nil)
+      return new(double: d, quicktype: nil)
     end
     begin
-      value = Package.from_dynamic!(d)
-      if schema.key(:package).type.right.valid? value
-        return new(package: value, double: nil)
+      value = Quicktype.from_dynamic!(d)
+      if schema.key(:quicktype).type.right.valid? value
+        return new(quicktype: value, double: nil)
       end
     rescue
     end
@@ -8730,8 +10839,8 @@ class UnionPackage < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif package != nil
-      package.to_dynamic
+    elsif quicktype != nil
+      quicktype.to_dynamic
     end
   end
 
@@ -8740,7 +10849,7 @@ class UnionPackage < Dry::Struct
   end
 end
 
-class Params < Dry::Struct
+class RangeClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8762,18 +10871,18 @@ class Params < Dry::Struct
   end
 end
 
-class UnionParams < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :params, Params.optional
+class UnionRange < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :range_class, RangeClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, params: nil)
+      return new(double: d, range_class: nil)
     end
     begin
-      value = Params.from_dynamic!(d)
-      if schema.key(:params).type.right.valid? value
-        return new(params: value, double: nil)
+      value = RangeClass.from_dynamic!(d)
+      if schema.key(:range_class).type.right.valid? value
+        return new(range_class: value, double: nil)
       end
     rescue
     end
@@ -8787,8 +10896,8 @@ class UnionParams < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif params != nil
-      params.to_dynamic
+    elsif range_class != nil
+      range_class.to_dynamic
     end
   end
 
@@ -8797,7 +10906,7 @@ class UnionParams < Dry::Struct
   end
 end
 
-class Pass < Dry::Struct
+class Readonly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8819,18 +10928,18 @@ class Pass < Dry::Struct
   end
 end
 
-class UnionPass < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :pass,   Pass.optional
+class UnionReadonly < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :readonly, Readonly.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, pass: nil)
+      return new(double: d, readonly: nil)
     end
     begin
-      value = Pass.from_dynamic!(d)
-      if schema.key(:pass).type.right.valid? value
-        return new(pass: value, double: nil)
+      value = Readonly.from_dynamic!(d)
+      if schema.key(:readonly).type.right.valid? value
+        return new(readonly: value, double: nil)
       end
     rescue
     end
@@ -8844,8 +10953,8 @@ class UnionPass < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif pass != nil
-      pass.to_dynamic
+    elsif readonly != nil
+      readonly.to_dynamic
     end
   end
 
@@ -8854,7 +10963,7 @@ class UnionPass < Dry::Struct
   end
 end
 
-class Port < Dry::Struct
+class Ref < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8876,18 +10985,18 @@ class Port < Dry::Struct
   end
 end
 
-class UnionPort < Dry::Struct
+class UnionRef < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :port,   Port.optional
+  attribute :ref,    Ref.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, port: nil)
+      return new(double: d, ref: nil)
     end
     begin
-      value = Port.from_dynamic!(d)
-      if schema.key(:port).type.right.valid? value
-        return new(port: value, double: nil)
+      value = Ref.from_dynamic!(d)
+      if schema.key(:ref).type.right.valid? value
+        return new(ref: value, double: nil)
       end
     rescue
     end
@@ -8901,8 +11010,8 @@ class UnionPort < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif port != nil
-      port.to_dynamic
+    elsif ref != nil
+      ref.to_dynamic
     end
   end
 
@@ -8911,7 +11020,7 @@ class UnionPort < Dry::Struct
   end
 end
 
-class Postfix < Dry::Struct
+class RegExp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8933,18 +11042,18 @@ class Postfix < Dry::Struct
   end
 end
 
-class UnionPostfix < Dry::Struct
+class UnionRegExp < Dry::Struct
   attribute :double,  Types::Double.optional
-  attribute :postfix, Postfix.optional
+  attribute :reg_exp, RegExp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, postfix: nil)
+      return new(double: d, reg_exp: nil)
     end
     begin
-      value = Postfix.from_dynamic!(d)
-      if schema.key(:postfix).type.right.valid? value
-        return new(postfix: value, double: nil)
+      value = RegExp.from_dynamic!(d)
+      if schema.key(:reg_exp).type.right.valid? value
+        return new(reg_exp: value, double: nil)
       end
     rescue
     end
@@ -8958,8 +11067,8 @@ class UnionPostfix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif postfix != nil
-      postfix.to_dynamic
+    elsif reg_exp != nil
+      reg_exp.to_dynamic
     end
   end
 
@@ -8968,7 +11077,7 @@ class UnionPostfix < Dry::Struct
   end
 end
 
-class Precedence < Dry::Struct
+class Register < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8990,18 +11099,18 @@ class Precedence < Dry::Struct
   end
 end
 
-class UnionPrecedence < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :precedence, Precedence.optional
+class UnionRegister < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :register, Register.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, precedence: nil)
+      return new(double: d, register: nil)
     end
     begin
-      value = Precedence.from_dynamic!(d)
-      if schema.key(:precedence).type.right.valid? value
-        return new(precedence: value, double: nil)
+      value = Register.from_dynamic!(d)
+      if schema.key(:register).type.right.valid? value
+        return new(register: value, double: nil)
       end
     rescue
     end
@@ -9015,8 +11124,8 @@ class UnionPrecedence < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif precedence != nil
-      precedence.to_dynamic
+    elsif register != nil
+      register.to_dynamic
     end
   end
 
@@ -9025,7 +11134,7 @@ class UnionPrecedence < Dry::Struct
   end
 end
 
-class Prefix < Dry::Struct
+class ReinterpretCast < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9047,18 +11156,18 @@ class Prefix < Dry::Struct
   end
 end
 
-class UnionPrefix < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :prefix, Prefix.optional
+class UnionReinterpretCast < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :reinterpret_cast, ReinterpretCast.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, prefix: nil)
+      return new(double: d, reinterpret_cast: nil)
     end
     begin
-      value = Prefix.from_dynamic!(d)
-      if schema.key(:prefix).type.right.valid? value
-        return new(prefix: value, double: nil)
+      value = ReinterpretCast.from_dynamic!(d)
+      if schema.key(:reinterpret_cast).type.right.valid? value
+        return new(reinterpret_cast: value, double: nil)
       end
     rescue
     end
@@ -9072,8 +11181,8 @@ class UnionPrefix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif prefix != nil
-      prefix.to_dynamic
+    elsif reinterpret_cast != nil
+      reinterpret_cast.to_dynamic
     end
   end
 
@@ -9082,7 +11191,7 @@ class UnionPrefix < Dry::Struct
   end
 end
 
-class Private < Dry::Struct
+class Repeat < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9104,18 +11213,18 @@ class Private < Dry::Struct
   end
 end
 
-class UnionPrivate < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :private, Private.optional
+class UnionRepeat < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :repeat, Repeat.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, private: nil)
+      return new(double: d, repeat: nil)
     end
     begin
-      value = Private.from_dynamic!(d)
-      if schema.key(:private).type.right.valid? value
-        return new(private: value, double: nil)
+      value = Repeat.from_dynamic!(d)
+      if schema.key(:repeat).type.right.valid? value
+        return new(repeat: value, double: nil)
       end
     rescue
     end
@@ -9129,8 +11238,8 @@ class UnionPrivate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif private != nil
-      private.to_dynamic
+    elsif repeat != nil
+      repeat.to_dynamic
     end
   end
 
@@ -9139,7 +11248,7 @@ class UnionPrivate < Dry::Struct
   end
 end
 
-class Protected < Dry::Struct
+class Required < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9161,18 +11270,18 @@ class Protected < Dry::Struct
   end
 end
 
-class UnionProtected < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :protected, Protected.optional
+class UnionRequired < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :required, Required.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, protected: nil)
+      return new(double: d, required: nil)
     end
     begin
-      value = Protected.from_dynamic!(d)
-      if schema.key(:protected).type.right.valid? value
-        return new(protected: value, double: nil)
+      value = Required.from_dynamic!(d)
+      if schema.key(:required).type.right.valid? value
+        return new(required: value, double: nil)
       end
     rescue
     end
@@ -9186,8 +11295,8 @@ class UnionProtected < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif protected != nil
-      protected.to_dynamic
+    elsif required != nil
+      required.to_dynamic
     end
   end
 
@@ -9196,7 +11305,7 @@ class UnionProtected < Dry::Struct
   end
 end
 
-class Protocol < Dry::Struct
+class Requires < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9218,18 +11327,18 @@ class Protocol < Dry::Struct
   end
 end
 
-class UnionProtocol < Dry::Struct
+class UnionRequires < Dry::Struct
   attribute :double,   Types::Double.optional
-  attribute :protocol, Protocol.optional
+  attribute :requires, Requires.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, protocol: nil)
+      return new(double: d, requires: nil)
     end
     begin
-      value = Protocol.from_dynamic!(d)
-      if schema.key(:protocol).type.right.valid? value
-        return new(protocol: value, double: nil)
+      value = Requires.from_dynamic!(d)
+      if schema.key(:requires).type.right.valid? value
+        return new(requires: value, double: nil)
       end
     rescue
     end
@@ -9243,8 +11352,8 @@ class UnionProtocol < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif protocol != nil
-      protocol.to_dynamic
+    elsif requires != nil
+      requires.to_dynamic
     end
   end
 
@@ -9253,7 +11362,7 @@ class UnionProtocol < Dry::Struct
   end
 end
 
-class Public < Dry::Struct
+class Restrict < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9275,18 +11384,18 @@ class Public < Dry::Struct
   end
 end
 
-class UnionPublic < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :public, Public.optional
+class UnionRestrict < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :restrict, Restrict.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, public: nil)
+      return new(double: d, restrict: nil)
     end
     begin
-      value = Public.from_dynamic!(d)
-      if schema.key(:public).type.right.valid? value
-        return new(public: value, double: nil)
+      value = Restrict.from_dynamic!(d)
+      if schema.key(:restrict).type.right.valid? value
+        return new(restrict: value, double: nil)
       end
     rescue
     end
@@ -9300,8 +11409,8 @@ class UnionPublic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif public != nil
-      public.to_dynamic
+    elsif restrict != nil
+      restrict.to_dynamic
     end
   end
 
@@ -9310,7 +11419,7 @@ class UnionPublic < Dry::Struct
   end
 end
 
-class Quicktype < Dry::Struct
+class Retain < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9332,18 +11441,18 @@ class Quicktype < Dry::Struct
   end
 end
 
-class UnionQuicktype < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :quicktype, Quicktype.optional
+class UnionRetain < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :retain, Retain.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, quicktype: nil)
+      return new(double: d, retain: nil)
     end
     begin
-      value = Quicktype.from_dynamic!(d)
-      if schema.key(:quicktype).type.right.valid? value
-        return new(quicktype: value, double: nil)
+      value = Retain.from_dynamic!(d)
+      if schema.key(:retain).type.right.valid? value
+        return new(retain: value, double: nil)
       end
     rescue
     end
@@ -9357,8 +11466,8 @@ class UnionQuicktype < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif quicktype != nil
-      quicktype.to_dynamic
+    elsif retain != nil
+      retain.to_dynamic
     end
   end
 
@@ -9367,7 +11476,7 @@ class UnionQuicktype < Dry::Struct
   end
 end
 
-class RangeClass < Dry::Struct
+class Rethrows < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9389,18 +11498,18 @@ class RangeClass < Dry::Struct
   end
 end
 
-class UnionRange < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :range_class, RangeClass.optional
+class UnionRethrows < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :rethrows, Rethrows.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, range_class: nil)
+      return new(double: d, rethrows: nil)
     end
     begin
-      value = RangeClass.from_dynamic!(d)
-      if schema.key(:range_class).type.right.valid? value
-        return new(range_class: value, double: nil)
+      value = Rethrows.from_dynamic!(d)
+      if schema.key(:rethrows).type.right.valid? value
+        return new(rethrows: value, double: nil)
       end
     rescue
     end
@@ -9414,8 +11523,8 @@ class UnionRange < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif range_class != nil
-      range_class.to_dynamic
+    elsif rethrows != nil
+      rethrows.to_dynamic
     end
   end
 
@@ -9424,7 +11533,7 @@ class UnionRange < Dry::Struct
   end
 end
 
-class Readonly < Dry::Struct
+class Right < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9446,18 +11555,18 @@ class Readonly < Dry::Struct
   end
 end
 
-class UnionReadonly < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :readonly, Readonly.optional
+class UnionRight < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :right,  Right.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, readonly: nil)
+      return new(double: d, right: nil)
     end
     begin
-      value = Readonly.from_dynamic!(d)
-      if schema.key(:readonly).type.right.valid? value
-        return new(readonly: value, double: nil)
+      value = Right.from_dynamic!(d)
+      if schema.key(:right).type.right.valid? value
+        return new(right: value, double: nil)
       end
     rescue
     end
@@ -9471,8 +11580,8 @@ class UnionReadonly < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif readonly != nil
-      readonly.to_dynamic
+    elsif right != nil
+      right.to_dynamic
     end
   end
 
@@ -9481,7 +11590,7 @@ class UnionReadonly < Dry::Struct
   end
 end
 
-class Ref < Dry::Struct
+class RuntimeType < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9503,18 +11612,18 @@ class Ref < Dry::Struct
   end
 end
 
-class UnionRef < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :ref,    Ref.optional
+class UnionRuntimeType < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :runtime_type, RuntimeType.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, ref: nil)
+      return new(double: d, runtime_type: nil)
     end
     begin
-      value = Ref.from_dynamic!(d)
-      if schema.key(:ref).type.right.valid? value
-        return new(ref: value, double: nil)
+      value = RuntimeType.from_dynamic!(d)
+      if schema.key(:runtime_type).type.right.valid? value
+        return new(runtime_type: value, double: nil)
       end
     rescue
     end
@@ -9528,8 +11637,8 @@ class UnionRef < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif ref != nil
-      ref.to_dynamic
+    elsif runtime_type != nil
+      runtime_type.to_dynamic
     end
   end
 
@@ -9538,7 +11647,7 @@ class UnionRef < Dry::Struct
   end
 end
 
-class Register < Dry::Struct
+class S < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9560,18 +11669,18 @@ class Register < Dry::Struct
   end
 end
 
-class UnionRegister < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :register, Register.optional
+class UnionS < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :s,      S.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, register: nil)
+      return new(double: d, s: nil)
     end
     begin
-      value = Register.from_dynamic!(d)
-      if schema.key(:register).type.right.valid? value
-        return new(register: value, double: nil)
+      value = S.from_dynamic!(d)
+      if schema.key(:s).type.right.valid? value
+        return new(s: value, double: nil)
       end
     rescue
     end
@@ -9585,8 +11694,8 @@ class UnionRegister < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif register != nil
-      register.to_dynamic
+    elsif s != nil
+      s.to_dynamic
     end
   end
 
@@ -9595,7 +11704,7 @@ class UnionRegister < Dry::Struct
   end
 end
 
-class ReinterpretCast < Dry::Struct
+class Sbyte < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9617,18 +11726,18 @@ class ReinterpretCast < Dry::Struct
   end
 end
 
-class UnionReinterpretCast < Dry::Struct
-  attribute :double,           Types::Double.optional
-  attribute :reinterpret_cast, ReinterpretCast.optional
+class UnionSbyte < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :sbyte,  Sbyte.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, reinterpret_cast: nil)
+      return new(double: d, sbyte: nil)
     end
     begin
-      value = ReinterpretCast.from_dynamic!(d)
-      if schema.key(:reinterpret_cast).type.right.valid? value
-        return new(reinterpret_cast: value, double: nil)
+      value = Sbyte.from_dynamic!(d)
+      if schema.key(:sbyte).type.right.valid? value
+        return new(sbyte: value, double: nil)
       end
     rescue
     end
@@ -9642,8 +11751,8 @@ class UnionReinterpretCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif reinterpret_cast != nil
-      reinterpret_cast.to_dynamic
+    elsif sbyte != nil
+      sbyte.to_dynamic
     end
   end
 
@@ -9652,7 +11761,7 @@ class UnionReinterpretCast < Dry::Struct
   end
 end
 
-class Repeat < Dry::Struct
+class Sealed < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9674,18 +11783,18 @@ class Repeat < Dry::Struct
   end
 end
 
-class UnionRepeat < Dry::Struct
+class UnionSealed < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :repeat, Repeat.optional
+  attribute :sealed, Sealed.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, repeat: nil)
+      return new(double: d, sealed: nil)
     end
     begin
-      value = Repeat.from_dynamic!(d)
-      if schema.key(:repeat).type.right.valid? value
-        return new(repeat: value, double: nil)
+      value = Sealed.from_dynamic!(d)
+      if schema.key(:sealed).type.right.valid? value
+        return new(sealed: value, double: nil)
       end
     rescue
     end
@@ -9699,8 +11808,8 @@ class UnionRepeat < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif repeat != nil
-      repeat.to_dynamic
+    elsif sealed != nil
+      sealed.to_dynamic
     end
   end
 
@@ -9709,7 +11818,7 @@ class UnionRepeat < Dry::Struct
   end
 end
 
-class Required < Dry::Struct
+class Sel < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9731,18 +11840,18 @@ class Required < Dry::Struct
   end
 end
 
-class UnionRequired < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :required, Required.optional
+class UnionSEL < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :sel,    Sel.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, required: nil)
+      return new(double: d, sel: nil)
     end
     begin
-      value = Required.from_dynamic!(d)
-      if schema.key(:required).type.right.valid? value
-        return new(required: value, double: nil)
+      value = Sel.from_dynamic!(d)
+      if schema.key(:sel).type.right.valid? value
+        return new(sel: value, double: nil)
       end
     rescue
     end
@@ -9756,8 +11865,8 @@ class UnionRequired < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif required != nil
-      required.to_dynamic
+    elsif sel != nil
+      sel.to_dynamic
     end
   end
 
@@ -9766,7 +11875,7 @@ class UnionRequired < Dry::Struct
   end
 end
 
-class Requires < Dry::Struct
+class UnionSelfSelf < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9788,18 +11897,18 @@ class Requires < Dry::Struct
   end
 end
 
-class UnionRequires < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :requires, Requires.optional
+class UnionSelfUnion < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :union_self_self, UnionSelfSelf.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, requires: nil)
+      return new(double: d, union_self_self: nil)
     end
     begin
-      value = Requires.from_dynamic!(d)
-      if schema.key(:requires).type.right.valid? value
-        return new(requires: value, double: nil)
+      value = UnionSelfSelf.from_dynamic!(d)
+      if schema.key(:union_self_self).type.right.valid? value
+        return new(union_self_self: value, double: nil)
       end
     rescue
     end
@@ -9813,8 +11922,8 @@ class UnionRequires < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif requires != nil
-      requires.to_dynamic
+    elsif union_self_self != nil
+      union_self_self.to_dynamic
     end
   end
 
@@ -9823,7 +11932,7 @@ class UnionRequires < Dry::Struct
   end
 end
 
-class Restrict < Dry::Struct
+class Serialize < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9845,18 +11954,18 @@ class Restrict < Dry::Struct
   end
 end
 
-class UnionRestrict < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :restrict, Restrict.optional
+class UnionSerialize < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :serialize, Serialize.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, restrict: nil)
+      return new(double: d, serialize: nil)
     end
     begin
-      value = Restrict.from_dynamic!(d)
-      if schema.key(:restrict).type.right.valid? value
-        return new(restrict: value, double: nil)
+      value = Serialize.from_dynamic!(d)
+      if schema.key(:serialize).type.right.valid? value
+        return new(serialize: value, double: nil)
       end
     rescue
     end
@@ -9870,8 +11979,8 @@ class UnionRestrict < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif restrict != nil
-      restrict.to_dynamic
+    elsif serialize != nil
+      serialize.to_dynamic
     end
   end
 
@@ -9880,7 +11989,7 @@ class UnionRestrict < Dry::Struct
   end
 end
 
-class Retain < Dry::Struct
+class SerializerProvider < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9902,18 +12011,18 @@ class Retain < Dry::Struct
   end
 end
 
-class UnionRetain < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :retain, Retain.optional
+class UnionSerializerProvider < Dry::Struct
+  attribute :double,              Types::Double.optional
+  attribute :serializer_provider, SerializerProvider.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, retain: nil)
+      return new(double: d, serializer_provider: nil)
     end
     begin
-      value = Retain.from_dynamic!(d)
-      if schema.key(:retain).type.right.valid? value
-        return new(retain: value, double: nil)
+      value = SerializerProvider.from_dynamic!(d)
+      if schema.key(:serializer_provider).type.right.valid? value
+        return new(serializer_provider: value, double: nil)
       end
     rescue
     end
@@ -9927,8 +12036,8 @@ class UnionRetain < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif retain != nil
-      retain.to_dynamic
+    elsif serializer_provider != nil
+      serializer_provider.to_dynamic
     end
   end
 
@@ -9937,7 +12046,7 @@ class UnionRetain < Dry::Struct
   end
 end
 
-class Rethrows < Dry::Struct
+class SetClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9959,18 +12068,18 @@ class Rethrows < Dry::Struct
   end
 end
 
-class UnionRethrows < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :rethrows, Rethrows.optional
+class UnionSet < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :set_class, SetClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, rethrows: nil)
+      return new(double: d, set_class: nil)
     end
     begin
-      value = Rethrows.from_dynamic!(d)
-      if schema.key(:rethrows).type.right.valid? value
-        return new(rethrows: value, double: nil)
+      value = SetClass.from_dynamic!(d)
+      if schema.key(:set_class).type.right.valid? value
+        return new(set_class: value, double: nil)
       end
     rescue
     end
@@ -9984,8 +12093,8 @@ class UnionRethrows < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif rethrows != nil
-      rethrows.to_dynamic
+    elsif set_class != nil
+      set_class.to_dynamic
     end
   end
 
@@ -9994,7 +12103,7 @@ class UnionRethrows < Dry::Struct
   end
 end
 
-class Right < Dry::Struct
+class Short < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10016,18 +12125,18 @@ class Right < Dry::Struct
   end
 end
 
-class UnionRight < Dry::Struct
+class UnionShort < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :right,  Right.optional
+  attribute :short,  Short.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, right: nil)
+      return new(double: d, short: nil)
     end
     begin
-      value = Right.from_dynamic!(d)
-      if schema.key(:right).type.right.valid? value
-        return new(right: value, double: nil)
+      value = Short.from_dynamic!(d)
+      if schema.key(:short).type.right.valid? value
+        return new(short: value, double: nil)
       end
     rescue
     end
@@ -10041,8 +12150,8 @@ class UnionRight < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif right != nil
-      right.to_dynamic
+    elsif short != nil
+      short.to_dynamic
     end
   end
 
@@ -10051,7 +12160,7 @@ class UnionRight < Dry::Struct
   end
 end
 
-class Sbyte < Dry::Struct
+class Signed < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10073,18 +12182,18 @@ class Sbyte < Dry::Struct
   end
 end
 
-class UnionSbyte < Dry::Struct
+class UnionSigned < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :sbyte,  Sbyte.optional
+  attribute :signed, Signed.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sbyte: nil)
+      return new(double: d, signed: nil)
     end
     begin
-      value = Sbyte.from_dynamic!(d)
-      if schema.key(:sbyte).type.right.valid? value
-        return new(sbyte: value, double: nil)
+      value = Signed.from_dynamic!(d)
+      if schema.key(:signed).type.right.valid? value
+        return new(signed: value, double: nil)
       end
     rescue
     end
@@ -10098,8 +12207,8 @@ class UnionSbyte < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sbyte != nil
-      sbyte.to_dynamic
+    elsif signed != nil
+      signed.to_dynamic
     end
   end
 
@@ -10108,7 +12217,7 @@ class UnionSbyte < Dry::Struct
   end
 end
 
-class Sealed < Dry::Struct
+class SimpleModule < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10130,18 +12239,18 @@ class Sealed < Dry::Struct
   end
 end
 
-class UnionSealed < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :sealed, Sealed.optional
+class UnionSimpleModule < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :simple_module, SimpleModule.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sealed: nil)
+      return new(double: d, simple_module: nil)
     end
     begin
-      value = Sealed.from_dynamic!(d)
-      if schema.key(:sealed).type.right.valid? value
-        return new(sealed: value, double: nil)
+      value = SimpleModule.from_dynamic!(d)
+      if schema.key(:simple_module).type.right.valid? value
+        return new(simple_module: value, double: nil)
       end
     rescue
     end
@@ -10155,8 +12264,8 @@ class UnionSealed < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sealed != nil
-      sealed.to_dynamic
+    elsif simple_module != nil
+      simple_module.to_dynamic
     end
   end
 
@@ -10165,7 +12274,7 @@ class UnionSealed < Dry::Struct
   end
 end
 
-class Sel < Dry::Struct
+class Sizeof < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10187,18 +12296,18 @@ class Sel < Dry::Struct
   end
 end
 
-class UnionSEL < Dry::Struct
+class UnionSizeof < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :sel,    Sel.optional
+  attribute :sizeof, Sizeof.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sel: nil)
+      return new(double: d, sizeof: nil)
     end
     begin
-      value = Sel.from_dynamic!(d)
-      if schema.key(:sel).type.right.valid? value
-        return new(sel: value, double: nil)
+      value = Sizeof.from_dynamic!(d)
+      if schema.key(:sizeof).type.right.valid? value
+        return new(sizeof: value, double: nil)
       end
     rescue
     end
@@ -10212,8 +12321,8 @@ class UnionSEL < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sel != nil
-      sel.to_dynamic
+    elsif sizeof != nil
+      sizeof.to_dynamic
     end
   end
 
@@ -10222,7 +12331,7 @@ class UnionSEL < Dry::Struct
   end
 end
 
-class UnionSelfSelf < Dry::Struct
+class Stackalloc < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10244,18 +12353,18 @@ class UnionSelfSelf < Dry::Struct
   end
 end
 
-class UnionSelfUnion < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :union_self_self, UnionSelfSelf.optional
+class UnionStackalloc < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :stackalloc, Stackalloc.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, union_self_self: nil)
+      return new(double: d, stackalloc: nil)
     end
     begin
-      value = UnionSelfSelf.from_dynamic!(d)
-      if schema.key(:union_self_self).type.right.valid? value
-        return new(union_self_self: value, double: nil)
+      value = Stackalloc.from_dynamic!(d)
+      if schema.key(:stackalloc).type.right.valid? value
+        return new(stackalloc: value, double: nil)
       end
     rescue
     end
@@ -10269,8 +12378,8 @@ class UnionSelfUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif union_self_self != nil
-      union_self_self.to_dynamic
+    elsif stackalloc != nil
+      stackalloc.to_dynamic
     end
   end
 
@@ -10279,7 +12388,7 @@ class UnionSelfUnion < Dry::Struct
   end
 end
 
-class Serialize < Dry::Struct
+class Standards < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10301,18 +12410,18 @@ class Serialize < Dry::Struct
   end
 end
 
-class UnionSerialize < Dry::Struct
+class UnionStandards < Dry::Struct
   attribute :double,    Types::Double.optional
-  attribute :serialize, Serialize.optional
+  attribute :standards, Standards.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, serialize: nil)
+      return new(double: d, standards: nil)
     end
     begin
-      value = Serialize.from_dynamic!(d)
-      if schema.key(:serialize).type.right.valid? value
-        return new(serialize: value, double: nil)
+      value = Standards.from_dynamic!(d)
+      if schema.key(:standards).type.right.valid? value
+        return new(standards: value, double: nil)
       end
     rescue
     end
@@ -10326,8 +12435,8 @@ class UnionSerialize < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif serialize != nil
-      serialize.to_dynamic
+    elsif standards != nil
+      standards.to_dynamic
     end
   end
 
@@ -10336,7 +12445,7 @@ class UnionSerialize < Dry::Struct
   end
 end
 
-class SetClass < Dry::Struct
+class Static < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10358,18 +12467,18 @@ class SetClass < Dry::Struct
   end
 end
 
-class UnionSet < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :set_class, SetClass.optional
+class UnionStatic < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :static, Static.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, set_class: nil)
-    end
-    begin
-      value = SetClass.from_dynamic!(d)
-      if schema.key(:set_class).type.right.valid? value
-        return new(set_class: value, double: nil)
+      return new(double: d, static: nil)
+    end
+    begin
+      value = Static.from_dynamic!(d)
+      if schema.key(:static).type.right.valid? value
+        return new(static: value, double: nil)
       end
     rescue
     end
@@ -10383,8 +12492,8 @@ class UnionSet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif set_class != nil
-      set_class.to_dynamic
+    elsif static != nil
+      static.to_dynamic
     end
   end
 
@@ -10393,7 +12502,7 @@ class UnionSet < Dry::Struct
   end
 end
 
-class Short < Dry::Struct
+class StaticAssert < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10415,18 +12524,18 @@ class Short < Dry::Struct
   end
 end
 
-class UnionShort < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :short,  Short.optional
+class UnionStaticAssert < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :static_assert, StaticAssert.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, short: nil)
+      return new(double: d, static_assert: nil)
     end
     begin
-      value = Short.from_dynamic!(d)
-      if schema.key(:short).type.right.valid? value
-        return new(short: value, double: nil)
+      value = StaticAssert.from_dynamic!(d)
+      if schema.key(:static_assert).type.right.valid? value
+        return new(static_assert: value, double: nil)
       end
     rescue
     end
@@ -10440,8 +12549,8 @@ class UnionShort < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif short != nil
-      short.to_dynamic
+    elsif static_assert != nil
+      static_assert.to_dynamic
     end
   end
 
@@ -10450,7 +12559,7 @@ class UnionShort < Dry::Struct
   end
 end
 
-class Signed < Dry::Struct
+class StaticCast < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10472,18 +12581,18 @@ class Signed < Dry::Struct
   end
 end
 
-class UnionSigned < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :signed, Signed.optional
+class UnionStaticCast < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :static_cast, StaticCast.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, signed: nil)
+      return new(double: d, static_cast: nil)
     end
     begin
-      value = Signed.from_dynamic!(d)
-      if schema.key(:signed).type.right.valid? value
-        return new(signed: value, double: nil)
+      value = StaticCast.from_dynamic!(d)
+      if schema.key(:static_cast).type.right.valid? value
+        return new(static_cast: value, double: nil)
       end
     rescue
     end
@@ -10497,8 +12606,8 @@ class UnionSigned < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif signed != nil
-      signed.to_dynamic
+    elsif static_cast != nil
+      static_cast.to_dynamic
     end
   end
 
@@ -10507,7 +12616,7 @@ class UnionSigned < Dry::Struct
   end
 end
 
-class Sizeof < Dry::Struct
+class StdDeserializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10529,18 +12638,18 @@ class Sizeof < Dry::Struct
   end
 end
 
-class UnionSizeof < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :sizeof, Sizeof.optional
+class UnionStdDeserializer < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :std_deserializer, StdDeserializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sizeof: nil)
+      return new(double: d, std_deserializer: nil)
     end
     begin
-      value = Sizeof.from_dynamic!(d)
-      if schema.key(:sizeof).type.right.valid? value
-        return new(sizeof: value, double: nil)
+      value = StdDeserializer.from_dynamic!(d)
+      if schema.key(:std_deserializer).type.right.valid? value
+        return new(std_deserializer: value, double: nil)
       end
     rescue
     end
@@ -10554,8 +12663,8 @@ class UnionSizeof < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sizeof != nil
-      sizeof.to_dynamic
+    elsif std_deserializer != nil
+      std_deserializer.to_dynamic
     end
   end
 
@@ -10564,7 +12673,7 @@ class UnionSizeof < Dry::Struct
   end
 end
 
-class Stackalloc < Dry::Struct
+class StdSerializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10586,18 +12695,18 @@ class Stackalloc < Dry::Struct
   end
 end
 
-class UnionStackalloc < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :stackalloc, Stackalloc.optional
+class UnionStdSerializer < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :std_serializer, StdSerializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, stackalloc: nil)
+      return new(double: d, std_serializer: nil)
     end
     begin
-      value = Stackalloc.from_dynamic!(d)
-      if schema.key(:stackalloc).type.right.valid? value
-        return new(stackalloc: value, double: nil)
+      value = StdSerializer.from_dynamic!(d)
+      if schema.key(:std_serializer).type.right.valid? value
+        return new(std_serializer: value, double: nil)
       end
     rescue
     end
@@ -10611,8 +12720,8 @@ class UnionStackalloc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif stackalloc != nil
-      stackalloc.to_dynamic
+    elsif std_serializer != nil
+      std_serializer.to_dynamic
     end
   end
 
@@ -10621,7 +12730,7 @@ class UnionStackalloc < Dry::Struct
   end
 end
 
-class Static < Dry::Struct
+class Strictfp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10643,18 +12752,18 @@ class Static < Dry::Struct
   end
 end
 
-class UnionStatic < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :static, Static.optional
+class UnionStrictfp < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :strictfp, Strictfp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static: nil)
+      return new(double: d, strictfp: nil)
     end
     begin
-      value = Static.from_dynamic!(d)
-      if schema.key(:static).type.right.valid? value
-        return new(static: value, double: nil)
+      value = Strictfp.from_dynamic!(d)
+      if schema.key(:strictfp).type.right.valid? value
+        return new(strictfp: value, double: nil)
       end
     rescue
     end
@@ -10668,8 +12777,8 @@ class UnionStatic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static != nil
-      static.to_dynamic
+    elsif strictfp != nil
+      strictfp.to_dynamic
     end
   end
 
@@ -10678,7 +12787,7 @@ class UnionStatic < Dry::Struct
   end
 end
 
-class StaticAssert < Dry::Struct
+class StringClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10700,18 +12809,18 @@ class StaticAssert < Dry::Struct
   end
 end
 
-class UnionStaticAssert < Dry::Struct
-  attribute :double,        Types::Double.optional
-  attribute :static_assert, StaticAssert.optional
+class UnionString < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :string_class, StringClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static_assert: nil)
+      return new(double: d, string_class: nil)
     end
     begin
-      value = StaticAssert.from_dynamic!(d)
-      if schema.key(:static_assert).type.right.valid? value
-        return new(static_assert: value, double: nil)
+      value = StringClass.from_dynamic!(d)
+      if schema.key(:string_class).type.right.valid? value
+        return new(string_class: value, double: nil)
       end
     rescue
     end
@@ -10725,8 +12834,8 @@ class UnionStaticAssert < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static_assert != nil
-      static_assert.to_dynamic
+    elsif string_class != nil
+      string_class.to_dynamic
     end
   end
 
@@ -10735,7 +12844,7 @@ class UnionStaticAssert < Dry::Struct
   end
 end
 
-class StaticCast < Dry::Struct
+class StructClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10757,18 +12866,18 @@ class StaticCast < Dry::Struct
   end
 end
 
-class UnionStaticCast < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :static_cast, StaticCast.optional
+class UnionStruct < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :struct_class, StructClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static_cast: nil)
+      return new(double: d, struct_class: nil)
     end
     begin
-      value = StaticCast.from_dynamic!(d)
-      if schema.key(:static_cast).type.right.valid? value
-        return new(static_cast: value, double: nil)
+      value = StructClass.from_dynamic!(d)
+      if schema.key(:struct_class).type.right.valid? value
+        return new(struct_class: value, double: nil)
       end
     rescue
     end
@@ -10782,8 +12891,8 @@ class UnionStaticCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static_cast != nil
-      static_cast.to_dynamic
+    elsif struct_class != nil
+      struct_class.to_dynamic
     end
   end
 
@@ -10792,7 +12901,7 @@ class UnionStaticCast < Dry::Struct
   end
 end
 
-class Strictfp < Dry::Struct
+class Subscript < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10814,18 +12923,18 @@ class Strictfp < Dry::Struct
   end
 end
 
-class UnionStrictfp < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :strictfp, Strictfp.optional
+class UnionSubscript < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :subscript, Subscript.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, strictfp: nil)
+      return new(double: d, subscript: nil)
     end
     begin
-      value = Strictfp.from_dynamic!(d)
-      if schema.key(:strictfp).type.right.valid? value
-        return new(strictfp: value, double: nil)
+      value = Subscript.from_dynamic!(d)
+      if schema.key(:subscript).type.right.valid? value
+        return new(subscript: value, double: nil)
       end
     rescue
     end
@@ -10839,8 +12948,8 @@ class UnionStrictfp < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif strictfp != nil
-      strictfp.to_dynamic
+    elsif subscript != nil
+      subscript.to_dynamic
     end
   end
 
@@ -10849,7 +12958,7 @@ class UnionStrictfp < Dry::Struct
   end
 end
 
-class StringClass < Dry::Struct
+class Switch < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10871,18 +12980,18 @@ class StringClass < Dry::Struct
   end
 end
 
-class UnionString < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :string_class, StringClass.optional
+class UnionSwitch < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :switch, Switch.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, string_class: nil)
+      return new(double: d, switch: nil)
     end
     begin
-      value = StringClass.from_dynamic!(d)
-      if schema.key(:string_class).type.right.valid? value
-        return new(string_class: value, double: nil)
+      value = Switch.from_dynamic!(d)
+      if schema.key(:switch).type.right.valid? value
+        return new(switch: value, double: nil)
       end
     rescue
     end
@@ -10896,8 +13005,8 @@ class UnionString < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif string_class != nil
-      string_class.to_dynamic
+    elsif switch != nil
+      switch.to_dynamic
     end
   end
 
@@ -10906,7 +13015,7 @@ class UnionString < Dry::Struct
   end
 end
 
-class StructClass < Dry::Struct
+class SymbolClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10928,18 +13037,18 @@ class StructClass < Dry::Struct
   end
 end
 
-class UnionStruct < Dry::Struct
+class UnionSymbol < Dry::Struct
   attribute :double,       Types::Double.optional
-  attribute :struct_class, StructClass.optional
+  attribute :symbol_class, SymbolClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, struct_class: nil)
+      return new(double: d, symbol_class: nil)
     end
     begin
-      value = StructClass.from_dynamic!(d)
-      if schema.key(:struct_class).type.right.valid? value
-        return new(struct_class: value, double: nil)
+      value = SymbolClass.from_dynamic!(d)
+      if schema.key(:symbol_class).type.right.valid? value
+        return new(symbol_class: value, double: nil)
       end
     rescue
     end
@@ -10953,8 +13062,8 @@ class UnionStruct < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif struct_class != nil
-      struct_class.to_dynamic
+    elsif symbol_class != nil
+      symbol_class.to_dynamic
     end
   end
 
@@ -10963,7 +13072,7 @@ class UnionStruct < Dry::Struct
   end
 end
 
-class Subscript < Dry::Struct
+class Synchronized < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10985,18 +13094,18 @@ class Subscript < Dry::Struct
   end
 end
 
-class UnionSubscript < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :subscript, Subscript.optional
+class UnionSynchronized < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :synchronized, Synchronized.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, subscript: nil)
+      return new(double: d, synchronized: nil)
     end
     begin
-      value = Subscript.from_dynamic!(d)
-      if schema.key(:subscript).type.right.valid? value
-        return new(subscript: value, double: nil)
+      value = Synchronized.from_dynamic!(d)
+      if schema.key(:synchronized).type.right.valid? value
+        return new(synchronized: value, double: nil)
       end
     rescue
     end
@@ -11010,8 +13119,8 @@ class UnionSubscript < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif subscript != nil
-      subscript.to_dynamic
+    elsif synchronized != nil
+      synchronized.to_dynamic
     end
   end
 
@@ -11020,7 +13129,7 @@ class UnionSubscript < Dry::Struct
   end
 end
 
-class Switch < Dry::Struct
+class Template < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11042,18 +13151,18 @@ class Switch < Dry::Struct
   end
 end
 
-class UnionSwitch < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :switch, Switch.optional
+class UnionTemplate < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :template, Template.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, switch: nil)
+      return new(double: d, template: nil)
     end
     begin
-      value = Switch.from_dynamic!(d)
-      if schema.key(:switch).type.right.valid? value
-        return new(switch: value, double: nil)
+      value = Template.from_dynamic!(d)
+      if schema.key(:template).type.right.valid? value
+        return new(template: value, double: nil)
       end
     rescue
     end
@@ -11067,8 +13176,8 @@ class UnionSwitch < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif switch != nil
-      switch.to_dynamic
+    elsif template != nil
+      template.to_dynamic
     end
   end
 
@@ -11077,7 +13186,7 @@ class UnionSwitch < Dry::Struct
   end
 end
 
-class SymbolClass < Dry::Struct
+class This < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11099,18 +13208,18 @@ class SymbolClass < Dry::Struct
   end
 end
 
-class UnionSymbol < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :symbol_class, SymbolClass.optional
+class UnionThis < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :this,   This.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, symbol_class: nil)
+      return new(double: d, this: nil)
     end
     begin
-      value = SymbolClass.from_dynamic!(d)
-      if schema.key(:symbol_class).type.right.valid? value
-        return new(symbol_class: value, double: nil)
+      value = This.from_dynamic!(d)
+      if schema.key(:this).type.right.valid? value
+        return new(this: value, double: nil)
       end
     rescue
     end
@@ -11124,8 +13233,8 @@ class UnionSymbol < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif symbol_class != nil
-      symbol_class.to_dynamic
+    elsif this != nil
+      this.to_dynamic
     end
   end
 
@@ -11134,7 +13243,7 @@ class UnionSymbol < Dry::Struct
   end
 end
 
-class Synchronized < Dry::Struct
+class ThreadLocal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11156,18 +13265,18 @@ class Synchronized < Dry::Struct
   end
 end
 
-class UnionSynchronized < Dry::Struct
+class UnionThreadLocal < Dry::Struct
   attribute :double,       Types::Double.optional
-  attribute :synchronized, Synchronized.optional
+  attribute :thread_local, ThreadLocal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, synchronized: nil)
+      return new(double: d, thread_local: nil)
     end
     begin
-      value = Synchronized.from_dynamic!(d)
-      if schema.key(:synchronized).type.right.valid? value
-        return new(synchronized: value, double: nil)
+      value = ThreadLocal.from_dynamic!(d)
+      if schema.key(:thread_local).type.right.valid? value
+        return new(thread_local: value, double: nil)
       end
     rescue
     end
@@ -11181,8 +13290,8 @@ class UnionSynchronized < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif synchronized != nil
-      synchronized.to_dynamic
+    elsif thread_local != nil
+      thread_local.to_dynamic
     end
   end
 
@@ -11191,7 +13300,7 @@ class UnionSynchronized < Dry::Struct
   end
 end
 
-class Template < Dry::Struct
+class Throws < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11213,18 +13322,18 @@ class Template < Dry::Struct
   end
 end
 
-class UnionTemplate < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :template, Template.optional
+class UnionThrows < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :throws, Throws.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, template: nil)
+      return new(double: d, throws: nil)
     end
     begin
-      value = Template.from_dynamic!(d)
-      if schema.key(:template).type.right.valid? value
-        return new(template: value, double: nil)
+      value = Throws.from_dynamic!(d)
+      if schema.key(:throws).type.right.valid? value
+        return new(throws: value, double: nil)
       end
     rescue
     end
@@ -11238,8 +13347,8 @@ class UnionTemplate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif template != nil
-      template.to_dynamic
+    elsif throws != nil
+      throws.to_dynamic
     end
   end
 
@@ -11248,7 +13357,7 @@ class UnionTemplate < Dry::Struct
   end
 end
 
-class This < Dry::Struct
+class TimeOnly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11270,18 +13379,18 @@ class This < Dry::Struct
   end
 end
 
-class UnionThis < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :this,   This.optional
+class UnionTimeOnly < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :time_only, TimeOnly.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, this: nil)
+      return new(double: d, time_only: nil)
     end
     begin
-      value = This.from_dynamic!(d)
-      if schema.key(:this).type.right.valid? value
-        return new(this: value, double: nil)
+      value = TimeOnly.from_dynamic!(d)
+      if schema.key(:time_only).type.right.valid? value
+        return new(time_only: value, double: nil)
       end
     rescue
     end
@@ -11295,8 +13404,8 @@ class UnionThis < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif this != nil
-      this.to_dynamic
+    elsif time_only != nil
+      time_only.to_dynamic
     end
   end
 
@@ -11305,7 +13414,7 @@ class UnionThis < Dry::Struct
   end
 end
 
-class ThreadLocal < Dry::Struct
+class TimeOnlyConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11327,18 +13436,18 @@ class ThreadLocal < Dry::Struct
   end
 end
 
-class UnionThreadLocal < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :thread_local, ThreadLocal.optional
+class UnionTimeOnlyConverter < Dry::Struct
+  attribute :double,              Types::Double.optional
+  attribute :time_only_converter, TimeOnlyConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, thread_local: nil)
+      return new(double: d, time_only_converter: nil)
     end
     begin
-      value = ThreadLocal.from_dynamic!(d)
-      if schema.key(:thread_local).type.right.valid? value
-        return new(thread_local: value, double: nil)
+      value = TimeOnlyConverter.from_dynamic!(d)
+      if schema.key(:time_only_converter).type.right.valid? value
+        return new(time_only_converter: value, double: nil)
       end
     rescue
     end
@@ -11352,8 +13461,8 @@ class UnionThreadLocal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif thread_local != nil
-      thread_local.to_dynamic
+    elsif time_only_converter != nil
+      time_only_converter.to_dynamic
     end
   end
 
@@ -11362,7 +13471,7 @@ class UnionThreadLocal < Dry::Struct
   end
 end
 
-class Throws < Dry::Struct
+class ToString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11384,18 +13493,18 @@ class Throws < Dry::Struct
   end
 end
 
-class UnionThrows < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :throws, Throws.optional
+class UnionToString < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :to_string, ToString.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, throws: nil)
+      return new(double: d, to_string: nil)
     end
     begin
-      value = Throws.from_dynamic!(d)
-      if schema.key(:throws).type.right.valid? value
-        return new(throws: value, double: nil)
+      value = ToString.from_dynamic!(d)
+      if schema.key(:to_string).type.right.valid? value
+        return new(to_string: value, double: nil)
       end
     rescue
     end
@@ -11409,8 +13518,8 @@ class UnionThrows < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif throws != nil
-      throws.to_dynamic
+    elsif to_string != nil
+      to_string.to_dynamic
     end
   end
 
@@ -11875,6 +13984,63 @@ class UnionClass < Dry::Struct
   end
 end
 
+class Clone < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionClone < Dry::Struct
+  attribute :clone_1, Clone.optional
+  attribute :double,  Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Clone.from_dynamic!(d)
+      if schema.key(:clone_1).type.right.valid? value
+        return new(clone_1: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, clone_1: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if clone_1 != nil
+      clone_1.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
 class ConstructorClass < Dry::Struct
 
   def self.from_dynamic!(d)
@@ -15124,6 +17290,177 @@ class UnionUsing < Dry::Struct
   end
 end
 
+class Utf8JSONReader < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUtf8JSONReader < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :utf8_json_reader, Utf8JSONReader.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, utf8_json_reader: nil)
+    end
+    begin
+      value = Utf8JSONReader.from_dynamic!(d)
+      if schema.key(:utf8_json_reader).type.right.valid? value
+        return new(utf8_json_reader: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif utf8_json_reader != nil
+      utf8_json_reader.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Utf8JSONWriter < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUtf8JSONWriter < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :utf8_json_writer, Utf8JSONWriter.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, utf8_json_writer: nil)
+    end
+    begin
+      value = Utf8JSONWriter.from_dynamic!(d)
+      if schema.key(:utf8_json_writer).type.right.valid? value
+        return new(utf8_json_writer: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif utf8_json_writer != nil
+      utf8_json_writer.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UUID < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUUID < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :uuid,   UUID.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, uuid: nil)
+    end
+    begin
+      value = UUID.from_dynamic!(d)
+      if schema.key(:uuid).type.right.valid? value
+        return new(uuid: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif uuid != nil
+      uuid.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
 class Var < Dry::Struct
 
   def self.from_dynamic!(d)
@@ -15752,564 +18089,646 @@ class UnionYES < Dry::Struct
 end
 
 class TopLevel < Dry::Struct
-  attribute :empty,                      Types.Instance(UnionUnion).optional
-  attribute :top_level_bool,             Types.Instance(UnionBool).optional
-  attribute :complex,                    Types.Instance(UnionComplex).optional
-  attribute :imaginery,                  Types.Instance(UnionImaginery).optional
-  attribute :abstract,                   Types.Instance(UnionAbstract).optional
-  attribute :alignas,                    Types.Instance(UnionAlignas).optional
-  attribute :alignof,                    Types.Instance(UnionAlignof).optional
-  attribute :top_level_and,              Types.Instance(UnionAnd).optional
-  attribute :and_eq,                     Types.Instance(UnionAndEq).optional
-  attribute :top_level_any,              Types.Instance(UnionAnyUnion).optional
-  attribute :any,                        Types.Instance(UnionAny).optional
-  attribute :array,                      Types.Instance(UnionArray).optional
-  attribute :as,                         Types.Instance(UnionAs).optional
-  attribute :asm,                        Types.Instance(UnionASM).optional
-  attribute :assert,                     Types.Instance(UnionAssert).optional
-  attribute :associatedtype,             Types.Instance(UnionAssociatedtype).optional
-  attribute :associativity,              Types.Instance(UnionAssociativity).optional
-  attribute :async,                      Types.Instance(UnionAsync).optional
-  attribute :atomic,                     Types.Instance(UnionAtomic).optional
-  attribute :atomic_cancel,              Types.Instance(UnionAtomicCancel).optional
-  attribute :atomic_commit,              Types.Instance(UnionAtomicCommit).optional
-  attribute :atomic_noexcept,            Types.Instance(UnionAtomicNoexcept).optional
-  attribute :auto,                       Types.Instance(UnionAuto).optional
-  attribute :await,                      Types.Instance(UnionAwait).optional
-  attribute :base,                       Types.Instance(UnionBase).optional
-  attribute :bitand,                     Types.Instance(UnionBitand).optional
-  attribute :bitor,                      Types.Instance(UnionBitor).optional
-  attribute :bool,                       Types.Instance(UnionBOOL).optional
-  attribute :bool_1,                     Types.Instance(UnionBoolUnion).optional
-  attribute :boolean,                    Types.Instance(UnionBoolean).optional
-  attribute :top_level_break,            Types.Instance(UnionBreak).optional
-  attribute :bycopy,                     Types.Instance(UnionBycopy).optional
-  attribute :byref,                      Types.Instance(UnionByref).optional
-  attribute :byte,                       Types.Instance(UnionByte).optional
-  attribute :top_level_case,             Types.Instance(UnionCase).optional
-  attribute :top_level_catch,            Types.Instance(UnionCatch).optional
-  attribute :chan,                       Types.Instance(UnionChan).optional
-  attribute :char,                       Types.Instance(UnionChar).optional
-  attribute :char16_t,                   Types.Instance(UnionChar16T).optional
-  attribute :char32_t,                   Types.Instance(UnionChar32T).optional
-  attribute :checked,                    Types.Instance(UnionChecked).optional
-  attribute :class_1,                    Types.Instance(UnionClassUnion).optional
-  attribute :top_level_class,            Types.Instance(UnionClass).optional
-  attribute :co_await,                   Types.Instance(UnionCoAwait).optional
-  attribute :co_return,                  Types.Instance(UnionCoReturn).optional
-  attribute :co_yield,                   Types.Instance(UnionCoYield).optional
-  attribute :compl,                      Types.Instance(UnionCompl).optional
-  attribute :concept,                    Types.Instance(UnionConcept).optional
-  attribute :console,                    Types.Instance(UnionConsole).optional
-  attribute :const,                      Types.Instance(UnionConst).optional
-  attribute :const_cast,                 Types.Instance(UnionConstCast).optional
-  attribute :constexpr,                  Types.Instance(UnionConstexpr).optional
-  attribute :top_level_constructor,      Types.Instance(UnionConstructor).optional
-  attribute :continue,                   Types.Instance(UnionContinue).optional
-  attribute :convenience,                Types.Instance(UnionConvenience).optional
-  attribute :convert,                    Types.Instance(UnionConvert).optional
-  attribute :converter,                  Types.Instance(UnionConverter).optional
-  attribute :date,                       Types.Instance(UnionDate).optional
-  attribute :date_parse_handling,        Types.Instance(UnionDateParseHandling).optional
-  attribute :debugger,                   Types.Instance(UnionDebugger).optional
-  attribute :decimal,                    Types.Instance(UnionDecimal).optional
-  attribute :declare,                    Types.Instance(UnionDeclare).optional
-  attribute :decltype,                   Types.Instance(UnionDecltype).optional
-  attribute :decode_string,              Types.Instance(UnionDecodeString).optional
-  attribute :top_level_def,              Types.Instance(UnionDef).optional
-  attribute :top_level_default,          Types.Instance(UnionDefault).optional
-  attribute :defer,                      Types.Instance(UnionDefer).optional
-  attribute :deinit,                     Types.Instance(UnionDeinit).optional
-  attribute :del,                        Types.Instance(UnionDel).optional
-  attribute :delegate,                   Types.Instance(UnionDelegate).optional
-  attribute :delete,                     Types.Instance(UnionDelete).optional
-  attribute :dict,                       Types.Instance(UnionDict).optional
-  attribute :dictionary,                 Types.Instance(UnionDictionary).optional
-  attribute :did_set,                    Types.Instance(UnionDidSet).optional
-  attribute :top_level_do,               Types.Instance(UnionDo).optional
-  attribute :double,                     Types.Instance(UnionDouble).optional
-  attribute :dummy,                      Types::Double.optional
-  attribute :dynamic,                    Types.Instance(UnionDynamic).optional
-  attribute :dynamic_cast,               Types.Instance(UnionDynamicCast).optional
-  attribute :elif,                       Types.Instance(UnionElif).optional
-  attribute :top_level_else,             Types.Instance(UnionElse).optional
-  attribute :encode_quick_type,          Types.Instance(UnionEncodeQuickType).optional
-  attribute :top_level_enum,             Types.Instance(UnionEnum).optional
-  attribute :event,                      Types.Instance(UnionEvent).optional
-  attribute :except,                     Types.Instance(UnionExcept).optional
-  attribute :exception,                  Types.Instance(UnionException).optional
-  attribute :explicit,                   Types.Instance(UnionExplicit).optional
-  attribute :export,                     Types.Instance(UnionExport).optional
-  attribute :exposing,                   Types.Instance(UnionExposing).optional
-  attribute :extends,                    Types.Instance(UnionExtends).optional
-  attribute :extension,                  Types.Instance(UnionExtension).optional
-  attribute :extern,                     Types.Instance(UnionExtern).optional
-  attribute :fallthrough,                Types.Instance(UnionFallthrough).optional
-  attribute :false_1,                    Types.Instance(UnionFalseUnion).optional
-  attribute :top_level_false,            Types.Instance(UnionFalse).optional
-  attribute :fileprivate,                Types.Instance(UnionFileprivate).optional
-  attribute :final,                      Types.Instance(UnionFinal).optional
-  attribute :finally,                    Types.Instance(UnionFinally).optional
-  attribute :fixed,                      Types.Instance(UnionFixed).optional
-  attribute :float,                      Types.Instance(UnionFloat).optional
-  attribute :top_level_for,              Types.Instance(UnionFor).optional
-  attribute :foreach,                    Types.Instance(UnionForeach).optional
-  attribute :friend,                     Types.Instance(UnionFriend).optional
-  attribute :from,                       Types.Instance(UnionFrom).optional
-  attribute :from_json,                  Types.Instance(UnionFromJSON).optional
-  attribute :func,                       Types.Instance(UnionFunc).optional
-  attribute :function,                   Types.Instance(UnionFunction).optional
-  attribute :get,                        Types.Instance(UnionGet).optional
-  attribute :global,                     Types.Instance(UnionGlobal).optional
-  attribute :go,                         Types.Instance(UnionGo).optional
-  attribute :goto,                       Types.Instance(UnionGoto).optional
-  attribute :guard,                      Types.Instance(UnionGuard).optional
-  attribute :has_own_property,           Types.Instance(UnionHasOwnProperty).optional
-  attribute :id,                         Types.Instance(UnionID).optional
-  attribute :top_level_if,               Types.Instance(UnionIf).optional
-  attribute :imp,                        Types.Instance(UnionIMP).optional
-  attribute :implements,                 Types.Instance(UnionImplements).optional
-  attribute :implicit,                   Types.Instance(UnionImplicit).optional
-  attribute :import,                     Types.Instance(UnionImport).optional
-  attribute :top_level_in,               Types.Instance(UnionIn).optional
-  attribute :indirect,                   Types.Instance(UnionIndirect).optional
-  attribute :infix,                      Types.Instance(UnionInfix).optional
-  attribute :init,                       Types.Instance(UnionInit).optional
-  attribute :inline,                     Types.Instance(UnionInline).optional
-  attribute :inout,                      Types.Instance(UnionInout).optional
-  attribute :instanceof,                 Types.Instance(UnionInstanceof).optional
-  attribute :int,                        Types.Instance(UnionInt).optional
-  attribute :interface,                  Types.Instance(UnionInterface).optional
-  attribute :internal,                   Types.Instance(UnionInternal).optional
-  attribute :is,                         Types.Instance(UnionIs).optional
-  attribute :iterable,                   Types.Instance(UnionIterable).optional
-  attribute :jdec,                       Types.Instance(UnionJdec).optional
-  attribute :jenc,                       Types.Instance(UnionJenc).optional
-  attribute :jpipe,                      Types.Instance(UnionJpipe).optional
-  attribute :json,                       Types.Instance(UnionJSON).optional
-  attribute :json_converter,             Types.Instance(UnionJSONConverter).optional
-  attribute :json_serializer,            Types.Instance(UnionJSONSerializer).optional
-  attribute :json_token,                 Types.Instance(UnionJSONToken).optional
-  attribute :json_writer,                Types.Instance(UnionJSONWriter).optional
-  attribute :top_level_lambda,           Types.Instance(UnionLambda).optional
-  attribute :lazy,                       Types.Instance(UnionLazy).optional
-  attribute :left,                       Types.Instance(UnionLeft).optional
-  attribute :let,                        Types.Instance(UnionLet).optional
-  attribute :list,                       Types.Instance(UnionList).optional
-  attribute :lock,                       Types.Instance(UnionLock).optional
-  attribute :long,                       Types.Instance(UnionLong).optional
-  attribute :map,                        Types.Instance(UnionMap).optional
-  attribute :metadata_property_handling, Types.Instance(UnionMetadataPropertyHandling).optional
-  attribute :top_level_module,           Types.Instance(UnionModule).optional
-  attribute :mutable,                    Types.Instance(UnionMutable).optional
-  attribute :mutating,                   Types.Instance(UnionMutating).optional
-  attribute :namespace,                  Types.Instance(UnionNamespace).optional
-  attribute :native,                     Types.Instance(UnionNative).optional
-  attribute :top_level_new,              Types.Instance(UnionNew).optional
-  attribute :newtonsoft,                 Types.Instance(UnionNewtonsoft).optional
-  attribute :top_level_nil,              Types.Instance(UnionNil).optional
-  attribute :no,                         Types.Instance(UnionNO).optional
-  attribute :noexcept,                   Types.Instance(UnionNoexcept).optional
-  attribute :nonatomic,                  Types.Instance(UnionNonatomic).optional
-  attribute :top_level_none,             Types.Instance(UnionNoneUnion).optional
-  attribute :none,                       Types.Instance(UnionNone).optional
-  attribute :nonlocal,                   Types.Instance(UnionNonlocal).optional
-  attribute :nonmutating,                Types.Instance(UnionNonmutating).optional
-  attribute :top_level_not,              Types.Instance(UnionNot).optional
-  attribute :not_eq,                     Types.Instance(UnionNotEq).optional
-  attribute :ns_string,                  Types.Instance(UnionNSString).optional
-  attribute :null,                       Types.Instance(UnionNULL).optional
-  attribute :top_level_null,             Types.Instance(UnionNull).optional
-  attribute :nullptr,                    Types.Instance(UnionNullptr).optional
-  attribute :number,                     Types.Instance(UnionNumber).optional
-  attribute :object,                     Types.Instance(UnionObject).optional
-  attribute :of,                         Types.Instance(UnionOf).optional
-  attribute :oneway,                     Types.Instance(UnionOneway).optional
-  attribute :top_level_open,             Types.Instance(UnionOpen).optional
-  attribute :operator,                   Types.Instance(UnionOperator).optional
-  attribute :top_level_optional,         Types.Instance(UnionOptional).optional
-  attribute :top_level_or,               Types.Instance(UnionOr).optional
-  attribute :or_eq,                      Types.Instance(UnionOrEq).optional
-  attribute :out,                        Types.Instance(UnionOut).optional
-  attribute :override,                   Types.Instance(UnionOverride).optional
-  attribute :package,                    Types.Instance(UnionPackage).optional
-  attribute :params,                     Types.Instance(UnionParams).optional
-  attribute :pass,                       Types.Instance(UnionPass).optional
-  attribute :port,                       Types.Instance(UnionPort).optional
-  attribute :postfix,                    Types.Instance(UnionPostfix).optional
-  attribute :precedence,                 Types.Instance(UnionPrecedence).optional
-  attribute :prefix,                     Types.Instance(UnionPrefix).optional
-  attribute :top_level_print,            Types.Instance(UnionPrint).optional
-  attribute :top_level_printf,           Types.Instance(UnionPrintf).optional
-  attribute :private,                    Types.Instance(UnionPrivate).optional
-  attribute :protected,                  Types.Instance(UnionProtected).optional
-  attribute :protocol,                   Types.Instance(UnionProtocol).optional
-  attribute :top_level_protocol,         Types.Instance(UnionProtocolUnion).optional
-  attribute :public,                     Types.Instance(UnionPublic).optional
-  attribute :quicktype,                  Types.Instance(UnionQuicktype).optional
-  attribute :top_level_raise,            Types.Instance(UnionRaise).optional
-  attribute :range,                      Types.Instance(UnionRange).optional
-  attribute :readonly,                   Types.Instance(UnionReadonly).optional
-  attribute :ref,                        Types.Instance(UnionRef).optional
-  attribute :register,                   Types.Instance(UnionRegister).optional
-  attribute :reinterpret_cast,           Types.Instance(UnionReinterpretCast).optional
-  attribute :repeat,                     Types.Instance(UnionRepeat).optional
-  attribute :top_level_require,          Types.Instance(UnionRequire).optional
-  attribute :required,                   Types.Instance(UnionRequired).optional
-  attribute :requires,                   Types.Instance(UnionRequires).optional
-  attribute :restrict,                   Types.Instance(UnionRestrict).optional
-  attribute :retain,                     Types.Instance(UnionRetain).optional
-  attribute :rethrows,                   Types.Instance(UnionRethrows).optional
-  attribute :top_level_return,           Types.Instance(UnionReturn).optional
-  attribute :right,                      Types.Instance(UnionRight).optional
-  attribute :sbyte,                      Types.Instance(UnionSbyte).optional
-  attribute :sealed,                     Types.Instance(UnionSealed).optional
-  attribute :sel,                        Types.Instance(UnionSEL).optional
-  attribute :top_level_select,           Types.Instance(UnionSelect).optional
-  attribute :top_level_self,             Types.Instance(UnionSelf).optional
-  attribute :self_1,                     Types.Instance(UnionSelfUnion).optional
-  attribute :serialize,                  Types.Instance(UnionSerialize).optional
-  attribute :set,                        Types.Instance(UnionSet).optional
-  attribute :short,                      Types.Instance(UnionShort).optional
-  attribute :signed,                     Types.Instance(UnionSigned).optional
-  attribute :sizeof,                     Types.Instance(UnionSizeof).optional
-  attribute :stackalloc,                 Types.Instance(UnionStackalloc).optional
-  attribute :static,                     Types.Instance(UnionStatic).optional
-  attribute :static_assert,              Types.Instance(UnionStaticAssert).optional
-  attribute :static_cast,                Types.Instance(UnionStaticCast).optional
-  attribute :strictfp,                   Types.Instance(UnionStrictfp).optional
-  attribute :string,                     Types.Instance(UnionString).optional
-  attribute :struct,                     Types.Instance(UnionStruct).optional
-  attribute :subscript,                  Types.Instance(UnionSubscript).optional
-  attribute :top_level_super,            Types.Instance(UnionSuper).optional
-  attribute :switch,                     Types.Instance(UnionSwitch).optional
-  attribute :symbol,                     Types.Instance(UnionSymbol).optional
-  attribute :synchronized,               Types.Instance(UnionSynchronized).optional
-  attribute :top_level_system,           Types.Instance(UnionSystem).optional
-  attribute :template,                   Types.Instance(UnionTemplate).optional
-  attribute :top_level_then,             Types.Instance(UnionThen).optional
-  attribute :this,                       Types.Instance(UnionThis).optional
-  attribute :thread_local,               Types.Instance(UnionThreadLocal).optional
-  attribute :top_level_throw,            Types.Instance(UnionThrow).optional
-  attribute :throws,                     Types.Instance(UnionThrows).optional
-  attribute :top_level_to_json,          Types.Instance(UnionToJSON).optional
-  attribute :top_level,                  Types.Instance(UnionTopLevel).optional
-  attribute :transient,                  Types.Instance(UnionTransient).optional
-  attribute :top_level_true,             Types.Instance(UnionTrue).optional
-  attribute :true_1,                     Types.Instance(UnionTrueUnion).optional
-  attribute :top_level_try,              Types.Instance(UnionTry).optional
-  attribute :top_level_type,             Types.Instance(UnionType).optional
-  attribute :type_1,                     Types.Instance(UnionTypeUnion).optional
-  attribute :typealias,                  Types.Instance(UnionTypealias).optional
-  attribute :typedef,                    Types.Instance(UnionTypedef).optional
-  attribute :typeid,                     Types.Instance(UnionTypeid).optional
-  attribute :typename,                   Types.Instance(UnionTypename).optional
-  attribute :typeof,                     Types.Instance(UnionTypeof).optional
-  attribute :uint,                       Types.Instance(UnionUint).optional
-  attribute :ulong,                      Types.Instance(UnionUlong).optional
-  attribute :unchecked,                  Types.Instance(UnionUnchecked).optional
-  attribute :undefined,                  Types.Instance(UnionUndefined).optional
-  attribute :union,                      Types.Instance(UnionUnionUnion).optional
-  attribute :unowned,                    Types.Instance(UnionUnowned).optional
-  attribute :unsafe,                     Types.Instance(UnionUnsafe).optional
-  attribute :unsigned,                   Types.Instance(UnionUnsigned).optional
-  attribute :ushort,                     Types.Instance(UnionUshort).optional
-  attribute :using,                      Types.Instance(UnionUsing).optional
-  attribute :var,                        Types.Instance(UnionVar).optional
-  attribute :virtual,                    Types.Instance(UnionVirtual).optional
-  attribute :void,                       Types.Instance(UnionVoid).optional
-  attribute :volatile,                   Types.Instance(UnionVolatile).optional
-  attribute :wchar_t,                    Types.Instance(UnionWcharT).optional
-  attribute :weak,                       Types.Instance(UnionWeak).optional
-  attribute :where,                      Types.Instance(UnionWhere).optional
-  attribute :top_level_while,            Types.Instance(UnionWhile).optional
-  attribute :will_set,                   Types.Instance(UnionWillSet).optional
-  attribute :top_level_with,             Types.Instance(UnionWith).optional
-  attribute :xor,                        Types.Instance(UnionXor).optional
-  attribute :xor_eq,                     Types.Instance(UnionXorEq).optional
-  attribute :yes,                        Types.Instance(UnionYES).optional
-  attribute :top_level_yield,            Types.Instance(UnionYield).optional
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      empty:                      d["_"] ? UnionUnion.from_dynamic!(d["_"]) : nil,
-      top_level_bool:             d["_Bool"] ? UnionBool.from_dynamic!(d["_Bool"]) : nil,
-      complex:                    d["_Complex"] ? UnionComplex.from_dynamic!(d["_Complex"]) : nil,
-      imaginery:                  d["_Imaginery"] ? UnionImaginery.from_dynamic!(d["_Imaginery"]) : nil,
-      abstract:                   d["abstract"] ? UnionAbstract.from_dynamic!(d["abstract"]) : nil,
-      alignas:                    d["alignas"] ? UnionAlignas.from_dynamic!(d["alignas"]) : nil,
-      alignof:                    d["alignof"] ? UnionAlignof.from_dynamic!(d["alignof"]) : nil,
-      top_level_and:              d["and"] ? UnionAnd.from_dynamic!(d["and"]) : nil,
-      and_eq:                     d["and_eq"] ? UnionAndEq.from_dynamic!(d["and_eq"]) : nil,
-      top_level_any:              d["any"] ? UnionAnyUnion.from_dynamic!(d["any"]) : nil,
-      any:                        d["Any"] ? UnionAny.from_dynamic!(d["Any"]) : nil,
-      array:                      d["array"] ? UnionArray.from_dynamic!(d["array"]) : nil,
-      as:                         d["as"] ? UnionAs.from_dynamic!(d["as"]) : nil,
-      asm:                        d["asm"] ? UnionASM.from_dynamic!(d["asm"]) : nil,
-      assert:                     d["assert"] ? UnionAssert.from_dynamic!(d["assert"]) : nil,
-      associatedtype:             d["associatedtype"] ? UnionAssociatedtype.from_dynamic!(d["associatedtype"]) : nil,
-      associativity:              d["associativity"] ? UnionAssociativity.from_dynamic!(d["associativity"]) : nil,
-      async:                      d["async"] ? UnionAsync.from_dynamic!(d["async"]) : nil,
-      atomic:                     d["atomic"] ? UnionAtomic.from_dynamic!(d["atomic"]) : nil,
-      atomic_cancel:              d["atomic_cancel"] ? UnionAtomicCancel.from_dynamic!(d["atomic_cancel"]) : nil,
-      atomic_commit:              d["atomic_commit"] ? UnionAtomicCommit.from_dynamic!(d["atomic_commit"]) : nil,
-      atomic_noexcept:            d["atomic_noexcept"] ? UnionAtomicNoexcept.from_dynamic!(d["atomic_noexcept"]) : nil,
-      auto:                       d["auto"] ? UnionAuto.from_dynamic!(d["auto"]) : nil,
-      await:                      d["await"] ? UnionAwait.from_dynamic!(d["await"]) : nil,
-      base:                       d["base"] ? UnionBase.from_dynamic!(d["base"]) : nil,
-      bitand:                     d["bitand"] ? UnionBitand.from_dynamic!(d["bitand"]) : nil,
-      bitor:                      d["bitor"] ? UnionBitor.from_dynamic!(d["bitor"]) : nil,
-      bool:                       d["BOOL"] ? UnionBOOL.from_dynamic!(d["BOOL"]) : nil,
-      bool_1:                     d["bool"] ? UnionBoolUnion.from_dynamic!(d["bool"]) : nil,
-      boolean:                    d["boolean"] ? UnionBoolean.from_dynamic!(d["boolean"]) : nil,
-      top_level_break:            d["break"] ? UnionBreak.from_dynamic!(d["break"]) : nil,
-      bycopy:                     d["bycopy"] ? UnionBycopy.from_dynamic!(d["bycopy"]) : nil,
-      byref:                      d["byref"] ? UnionByref.from_dynamic!(d["byref"]) : nil,
-      byte:                       d["byte"] ? UnionByte.from_dynamic!(d["byte"]) : nil,
-      top_level_case:             d["case"] ? UnionCase.from_dynamic!(d["case"]) : nil,
-      top_level_catch:            d["catch"] ? UnionCatch.from_dynamic!(d["catch"]) : nil,
-      chan:                       d["chan"] ? UnionChan.from_dynamic!(d["chan"]) : nil,
-      char:                       d["char"] ? UnionChar.from_dynamic!(d["char"]) : nil,
-      char16_t:                   d["char16_t"] ? UnionChar16T.from_dynamic!(d["char16_t"]) : nil,
-      char32_t:                   d["char32_t"] ? UnionChar32T.from_dynamic!(d["char32_t"]) : nil,
-      checked:                    d["checked"] ? UnionChecked.from_dynamic!(d["checked"]) : nil,
-      class_1:                    d["class"] ? UnionClassUnion.from_dynamic!(d["class"]) : nil,
-      top_level_class:            d["Class"] ? UnionClass.from_dynamic!(d["Class"]) : nil,
-      co_await:                   d["co_await"] ? UnionCoAwait.from_dynamic!(d["co_await"]) : nil,
-      co_return:                  d["co_return"] ? UnionCoReturn.from_dynamic!(d["co_return"]) : nil,
-      co_yield:                   d["co_yield"] ? UnionCoYield.from_dynamic!(d["co_yield"]) : nil,
-      compl:                      d["compl"] ? UnionCompl.from_dynamic!(d["compl"]) : nil,
-      concept:                    d["concept"] ? UnionConcept.from_dynamic!(d["concept"]) : nil,
-      console:                    d["console"] ? UnionConsole.from_dynamic!(d["console"]) : nil,
-      const:                      d["const"] ? UnionConst.from_dynamic!(d["const"]) : nil,
-      const_cast:                 d["const_cast"] ? UnionConstCast.from_dynamic!(d["const_cast"]) : nil,
-      constexpr:                  d["constexpr"] ? UnionConstexpr.from_dynamic!(d["constexpr"]) : nil,
-      top_level_constructor:      d["constructor"] ? UnionConstructor.from_dynamic!(d["constructor"]) : nil,
-      continue:                   d["continue"] ? UnionContinue.from_dynamic!(d["continue"]) : nil,
-      convenience:                d["convenience"] ? UnionConvenience.from_dynamic!(d["convenience"]) : nil,
-      convert:                    d["convert"] ? UnionConvert.from_dynamic!(d["convert"]) : nil,
-      converter:                  d["converter"] ? UnionConverter.from_dynamic!(d["converter"]) : nil,
-      date:                       d["date"] ? UnionDate.from_dynamic!(d["date"]) : nil,
-      date_parse_handling:        d["date_parse_handling"] ? UnionDateParseHandling.from_dynamic!(d["date_parse_handling"]) : nil,
-      debugger:                   d["debugger"] ? UnionDebugger.from_dynamic!(d["debugger"]) : nil,
-      decimal:                    d["decimal"] ? UnionDecimal.from_dynamic!(d["decimal"]) : nil,
-      declare:                    d["declare"] ? UnionDeclare.from_dynamic!(d["declare"]) : nil,
-      decltype:                   d["decltype"] ? UnionDecltype.from_dynamic!(d["decltype"]) : nil,
-      decode_string:              d["decode_string"] ? UnionDecodeString.from_dynamic!(d["decode_string"]) : nil,
-      top_level_def:              d["def"] ? UnionDef.from_dynamic!(d["def"]) : nil,
-      top_level_default:          d["default"] ? UnionDefault.from_dynamic!(d["default"]) : nil,
-      defer:                      d["defer"] ? UnionDefer.from_dynamic!(d["defer"]) : nil,
-      deinit:                     d["deinit"] ? UnionDeinit.from_dynamic!(d["deinit"]) : nil,
-      del:                        d["del"] ? UnionDel.from_dynamic!(d["del"]) : nil,
-      delegate:                   d["delegate"] ? UnionDelegate.from_dynamic!(d["delegate"]) : nil,
-      delete:                     d["delete"] ? UnionDelete.from_dynamic!(d["delete"]) : nil,
-      dict:                       d["dict"] ? UnionDict.from_dynamic!(d["dict"]) : nil,
-      dictionary:                 d["dictionary"] ? UnionDictionary.from_dynamic!(d["dictionary"]) : nil,
-      did_set:                    d["didSet"] ? UnionDidSet.from_dynamic!(d["didSet"]) : nil,
-      top_level_do:               d["do"] ? UnionDo.from_dynamic!(d["do"]) : nil,
-      double:                     d["double"] ? UnionDouble.from_dynamic!(d["double"]) : nil,
-      dummy:                      d["dummy"],
-      dynamic:                    d["dynamic"] ? UnionDynamic.from_dynamic!(d["dynamic"]) : nil,
-      dynamic_cast:               d["dynamic_cast"] ? UnionDynamicCast.from_dynamic!(d["dynamic_cast"]) : nil,
-      elif:                       d["elif"] ? UnionElif.from_dynamic!(d["elif"]) : nil,
-      top_level_else:             d["else"] ? UnionElse.from_dynamic!(d["else"]) : nil,
-      encode_quick_type:          d["encode_quick_type"] ? UnionEncodeQuickType.from_dynamic!(d["encode_quick_type"]) : nil,
-      top_level_enum:             d["enum"] ? UnionEnum.from_dynamic!(d["enum"]) : nil,
-      event:                      d["event"] ? UnionEvent.from_dynamic!(d["event"]) : nil,
-      except:                     d["except"] ? UnionExcept.from_dynamic!(d["except"]) : nil,
-      exception:                  d["exception"] ? UnionException.from_dynamic!(d["exception"]) : nil,
-      explicit:                   d["explicit"] ? UnionExplicit.from_dynamic!(d["explicit"]) : nil,
-      export:                     d["export"] ? UnionExport.from_dynamic!(d["export"]) : nil,
-      exposing:                   d["exposing"] ? UnionExposing.from_dynamic!(d["exposing"]) : nil,
-      extends:                    d["extends"] ? UnionExtends.from_dynamic!(d["extends"]) : nil,
-      extension:                  d["extension"] ? UnionExtension.from_dynamic!(d["extension"]) : nil,
-      extern:                     d["extern"] ? UnionExtern.from_dynamic!(d["extern"]) : nil,
-      fallthrough:                d["fallthrough"] ? UnionFallthrough.from_dynamic!(d["fallthrough"]) : nil,
-      false_1:                    d["false"] ? UnionFalseUnion.from_dynamic!(d["false"]) : nil,
-      top_level_false:            d["False"] ? UnionFalse.from_dynamic!(d["False"]) : nil,
-      fileprivate:                d["fileprivate"] ? UnionFileprivate.from_dynamic!(d["fileprivate"]) : nil,
-      final:                      d["final"] ? UnionFinal.from_dynamic!(d["final"]) : nil,
-      finally:                    d["finally"] ? UnionFinally.from_dynamic!(d["finally"]) : nil,
-      fixed:                      d["fixed"] ? UnionFixed.from_dynamic!(d["fixed"]) : nil,
-      float:                      d["float"] ? UnionFloat.from_dynamic!(d["float"]) : nil,
-      top_level_for:              d["for"] ? UnionFor.from_dynamic!(d["for"]) : nil,
-      foreach:                    d["foreach"] ? UnionForeach.from_dynamic!(d["foreach"]) : nil,
-      friend:                     d["friend"] ? UnionFriend.from_dynamic!(d["friend"]) : nil,
-      from:                       d["from"] ? UnionFrom.from_dynamic!(d["from"]) : nil,
-      from_json:                  d["from_json"] ? UnionFromJSON.from_dynamic!(d["from_json"]) : nil,
-      func:                       d["func"] ? UnionFunc.from_dynamic!(d["func"]) : nil,
-      function:                   d["function"] ? UnionFunction.from_dynamic!(d["function"]) : nil,
-      get:                        d["get"] ? UnionGet.from_dynamic!(d["get"]) : nil,
-      global:                     d["global"] ? UnionGlobal.from_dynamic!(d["global"]) : nil,
-      go:                         d["go"] ? UnionGo.from_dynamic!(d["go"]) : nil,
-      goto:                       d["goto"] ? UnionGoto.from_dynamic!(d["goto"]) : nil,
-      guard:                      d["guard"] ? UnionGuard.from_dynamic!(d["guard"]) : nil,
-      has_own_property:           d["hasOwnProperty"] ? UnionHasOwnProperty.from_dynamic!(d["hasOwnProperty"]) : nil,
-      id:                         d["id"] ? UnionID.from_dynamic!(d["id"]) : nil,
-      top_level_if:               d["if"] ? UnionIf.from_dynamic!(d["if"]) : nil,
-      imp:                        d["IMP"] ? UnionIMP.from_dynamic!(d["IMP"]) : nil,
-      implements:                 d["implements"] ? UnionImplements.from_dynamic!(d["implements"]) : nil,
-      implicit:                   d["implicit"] ? UnionImplicit.from_dynamic!(d["implicit"]) : nil,
-      import:                     d["import"] ? UnionImport.from_dynamic!(d["import"]) : nil,
-      top_level_in:               d["in"] ? UnionIn.from_dynamic!(d["in"]) : nil,
-      indirect:                   d["indirect"] ? UnionIndirect.from_dynamic!(d["indirect"]) : nil,
-      infix:                      d["infix"] ? UnionInfix.from_dynamic!(d["infix"]) : nil,
-      init:                       d["init"] ? UnionInit.from_dynamic!(d["init"]) : nil,
-      inline:                     d["inline"] ? UnionInline.from_dynamic!(d["inline"]) : nil,
-      inout:                      d["inout"] ? UnionInout.from_dynamic!(d["inout"]) : nil,
-      instanceof:                 d["instanceof"] ? UnionInstanceof.from_dynamic!(d["instanceof"]) : nil,
-      int:                        d["int"] ? UnionInt.from_dynamic!(d["int"]) : nil,
-      interface:                  d["interface"] ? UnionInterface.from_dynamic!(d["interface"]) : nil,
-      internal:                   d["internal"] ? UnionInternal.from_dynamic!(d["internal"]) : nil,
-      is:                         d["is"] ? UnionIs.from_dynamic!(d["is"]) : nil,
-      iterable:                   d["iterable"] ? UnionIterable.from_dynamic!(d["iterable"]) : nil,
-      jdec:                       d["jdec"] ? UnionJdec.from_dynamic!(d["jdec"]) : nil,
-      jenc:                       d["jenc"] ? UnionJenc.from_dynamic!(d["jenc"]) : nil,
-      jpipe:                      d["jpipe"] ? UnionJpipe.from_dynamic!(d["jpipe"]) : nil,
-      json:                       d["json"] ? UnionJSON.from_dynamic!(d["json"]) : nil,
-      json_converter:             d["json_converter"] ? UnionJSONConverter.from_dynamic!(d["json_converter"]) : nil,
-      json_serializer:            d["json_serializer"] ? UnionJSONSerializer.from_dynamic!(d["json_serializer"]) : nil,
-      json_token:                 d["json_token"] ? UnionJSONToken.from_dynamic!(d["json_token"]) : nil,
-      json_writer:                d["json_writer"] ? UnionJSONWriter.from_dynamic!(d["json_writer"]) : nil,
-      top_level_lambda:           d["lambda"] ? UnionLambda.from_dynamic!(d["lambda"]) : nil,
-      lazy:                       d["lazy"] ? UnionLazy.from_dynamic!(d["lazy"]) : nil,
-      left:                       d["left"] ? UnionLeft.from_dynamic!(d["left"]) : nil,
-      let:                        d["let"] ? UnionLet.from_dynamic!(d["let"]) : nil,
-      list:                       d["list"] ? UnionList.from_dynamic!(d["list"]) : nil,
-      lock:                       d["lock"] ? UnionLock.from_dynamic!(d["lock"]) : nil,
-      long:                       d["long"] ? UnionLong.from_dynamic!(d["long"]) : nil,
-      map:                        d["map"] ? UnionMap.from_dynamic!(d["map"]) : nil,
-      metadata_property_handling: d["metadata_property_handling"] ? UnionMetadataPropertyHandling.from_dynamic!(d["metadata_property_handling"]) : nil,
-      top_level_module:           d["module"] ? UnionModule.from_dynamic!(d["module"]) : nil,
-      mutable:                    d["mutable"] ? UnionMutable.from_dynamic!(d["mutable"]) : nil,
-      mutating:                   d["mutating"] ? UnionMutating.from_dynamic!(d["mutating"]) : nil,
-      namespace:                  d["namespace"] ? UnionNamespace.from_dynamic!(d["namespace"]) : nil,
-      native:                     d["native"] ? UnionNative.from_dynamic!(d["native"]) : nil,
-      top_level_new:              d["new"] ? UnionNew.from_dynamic!(d["new"]) : nil,
-      newtonsoft:                 d["newtonsoft"] ? UnionNewtonsoft.from_dynamic!(d["newtonsoft"]) : nil,
-      top_level_nil:              d["nil"] ? UnionNil.from_dynamic!(d["nil"]) : nil,
-      no:                         d["NO"] ? UnionNO.from_dynamic!(d["NO"]) : nil,
-      noexcept:                   d["noexcept"] ? UnionNoexcept.from_dynamic!(d["noexcept"]) : nil,
-      nonatomic:                  d["nonatomic"] ? UnionNonatomic.from_dynamic!(d["nonatomic"]) : nil,
-      top_level_none:             d["none"] ? UnionNoneUnion.from_dynamic!(d["none"]) : nil,
-      none:                       d["None"] ? UnionNone.from_dynamic!(d["None"]) : nil,
-      nonlocal:                   d["nonlocal"] ? UnionNonlocal.from_dynamic!(d["nonlocal"]) : nil,
-      nonmutating:                d["nonmutating"] ? UnionNonmutating.from_dynamic!(d["nonmutating"]) : nil,
-      top_level_not:              d["not"] ? UnionNot.from_dynamic!(d["not"]) : nil,
-      not_eq:                     d["not_eq"] ? UnionNotEq.from_dynamic!(d["not_eq"]) : nil,
-      ns_string:                  d["NSString"] ? UnionNSString.from_dynamic!(d["NSString"]) : nil,
-      null:                       d["NULL"] ? UnionNULL.from_dynamic!(d["NULL"]) : nil,
-      top_level_null:             d["null"] ? UnionNull.from_dynamic!(d["null"]) : nil,
-      nullptr:                    d["nullptr"] ? UnionNullptr.from_dynamic!(d["nullptr"]) : nil,
-      number:                     d["number"] ? UnionNumber.from_dynamic!(d["number"]) : nil,
-      object:                     d["object"] ? UnionObject.from_dynamic!(d["object"]) : nil,
-      of:                         d["of"] ? UnionOf.from_dynamic!(d["of"]) : nil,
-      oneway:                     d["oneway"] ? UnionOneway.from_dynamic!(d["oneway"]) : nil,
-      top_level_open:             d["open"] ? UnionOpen.from_dynamic!(d["open"]) : nil,
-      operator:                   d["operator"] ? UnionOperator.from_dynamic!(d["operator"]) : nil,
-      top_level_optional:         d["optional"] ? UnionOptional.from_dynamic!(d["optional"]) : nil,
-      top_level_or:               d["or"] ? UnionOr.from_dynamic!(d["or"]) : nil,
-      or_eq:                      d["or_eq"] ? UnionOrEq.from_dynamic!(d["or_eq"]) : nil,
-      out:                        d["out"] ? UnionOut.from_dynamic!(d["out"]) : nil,
-      override:                   d["override"] ? UnionOverride.from_dynamic!(d["override"]) : nil,
-      package:                    d["package"] ? UnionPackage.from_dynamic!(d["package"]) : nil,
-      params:                     d["params"] ? UnionParams.from_dynamic!(d["params"]) : nil,
-      pass:                       d["pass"] ? UnionPass.from_dynamic!(d["pass"]) : nil,
-      port:                       d["port"] ? UnionPort.from_dynamic!(d["port"]) : nil,
-      postfix:                    d["postfix"] ? UnionPostfix.from_dynamic!(d["postfix"]) : nil,
-      precedence:                 d["precedence"] ? UnionPrecedence.from_dynamic!(d["precedence"]) : nil,
-      prefix:                     d["prefix"] ? UnionPrefix.from_dynamic!(d["prefix"]) : nil,
-      top_level_print:            d["print"] ? UnionPrint.from_dynamic!(d["print"]) : nil,
-      top_level_printf:           d["printf"] ? UnionPrintf.from_dynamic!(d["printf"]) : nil,
-      private:                    d["private"] ? UnionPrivate.from_dynamic!(d["private"]) : nil,
-      protected:                  d["protected"] ? UnionProtected.from_dynamic!(d["protected"]) : nil,
-      protocol:                   d["Protocol"] ? UnionProtocol.from_dynamic!(d["Protocol"]) : nil,
-      top_level_protocol:         d["protocol"] ? UnionProtocolUnion.from_dynamic!(d["protocol"]) : nil,
-      public:                     d["public"] ? UnionPublic.from_dynamic!(d["public"]) : nil,
-      quicktype:                  d["quicktype"] ? UnionQuicktype.from_dynamic!(d["quicktype"]) : nil,
-      top_level_raise:            d["raise"] ? UnionRaise.from_dynamic!(d["raise"]) : nil,
-      range:                      d["range"] ? UnionRange.from_dynamic!(d["range"]) : nil,
-      readonly:                   d["readonly"] ? UnionReadonly.from_dynamic!(d["readonly"]) : nil,
-      ref:                        d["ref"] ? UnionRef.from_dynamic!(d["ref"]) : nil,
-      register:                   d["register"] ? UnionRegister.from_dynamic!(d["register"]) : nil,
-      reinterpret_cast:           d["reinterpret_cast"] ? UnionReinterpretCast.from_dynamic!(d["reinterpret_cast"]) : nil,
-      repeat:                     d["repeat"] ? UnionRepeat.from_dynamic!(d["repeat"]) : nil,
-      top_level_require:          d["require"] ? UnionRequire.from_dynamic!(d["require"]) : nil,
-      required:                   d["required"] ? UnionRequired.from_dynamic!(d["required"]) : nil,
-      requires:                   d["requires"] ? UnionRequires.from_dynamic!(d["requires"]) : nil,
-      restrict:                   d["restrict"] ? UnionRestrict.from_dynamic!(d["restrict"]) : nil,
-      retain:                     d["retain"] ? UnionRetain.from_dynamic!(d["retain"]) : nil,
-      rethrows:                   d["rethrows"] ? UnionRethrows.from_dynamic!(d["rethrows"]) : nil,
-      top_level_return:           d["return"] ? UnionReturn.from_dynamic!(d["return"]) : nil,
-      right:                      d["right"] ? UnionRight.from_dynamic!(d["right"]) : nil,
-      sbyte:                      d["sbyte"] ? UnionSbyte.from_dynamic!(d["sbyte"]) : nil,
-      sealed:                     d["sealed"] ? UnionSealed.from_dynamic!(d["sealed"]) : nil,
-      sel:                        d["SEL"] ? UnionSEL.from_dynamic!(d["SEL"]) : nil,
-      top_level_select:           d["select"] ? UnionSelect.from_dynamic!(d["select"]) : nil,
-      top_level_self:             d["Self"] ? UnionSelf.from_dynamic!(d["Self"]) : nil,
-      self_1:                     d["self"] ? UnionSelfUnion.from_dynamic!(d["self"]) : nil,
-      serialize:                  d["serialize"] ? UnionSerialize.from_dynamic!(d["serialize"]) : nil,
-      set:                        d["set"] ? UnionSet.from_dynamic!(d["set"]) : nil,
-      short:                      d["short"] ? UnionShort.from_dynamic!(d["short"]) : nil,
-      signed:                     d["signed"] ? UnionSigned.from_dynamic!(d["signed"]) : nil,
-      sizeof:                     d["sizeof"] ? UnionSizeof.from_dynamic!(d["sizeof"]) : nil,
-      stackalloc:                 d["stackalloc"] ? UnionStackalloc.from_dynamic!(d["stackalloc"]) : nil,
-      static:                     d["static"] ? UnionStatic.from_dynamic!(d["static"]) : nil,
-      static_assert:              d["static_assert"] ? UnionStaticAssert.from_dynamic!(d["static_assert"]) : nil,
-      static_cast:                d["static_cast"] ? UnionStaticCast.from_dynamic!(d["static_cast"]) : nil,
-      strictfp:                   d["strictfp"] ? UnionStrictfp.from_dynamic!(d["strictfp"]) : nil,
-      string:                     d["string"] ? UnionString.from_dynamic!(d["string"]) : nil,
-      struct:                     d["struct"] ? UnionStruct.from_dynamic!(d["struct"]) : nil,
-      subscript:                  d["subscript"] ? UnionSubscript.from_dynamic!(d["subscript"]) : nil,
-      top_level_super:            d["super"] ? UnionSuper.from_dynamic!(d["super"]) : nil,
-      switch:                     d["switch"] ? UnionSwitch.from_dynamic!(d["switch"]) : nil,
-      symbol:                     d["symbol"] ? UnionSymbol.from_dynamic!(d["symbol"]) : nil,
-      synchronized:               d["synchronized"] ? UnionSynchronized.from_dynamic!(d["synchronized"]) : nil,
-      top_level_system:           d["system"] ? UnionSystem.from_dynamic!(d["system"]) : nil,
-      template:                   d["template"] ? UnionTemplate.from_dynamic!(d["template"]) : nil,
-      top_level_then:             d["then"] ? UnionThen.from_dynamic!(d["then"]) : nil,
-      this:                       d["this"] ? UnionThis.from_dynamic!(d["this"]) : nil,
-      thread_local:               d["thread_local"] ? UnionThreadLocal.from_dynamic!(d["thread_local"]) : nil,
-      top_level_throw:            d["throw"] ? UnionThrow.from_dynamic!(d["throw"]) : nil,
-      throws:                     d["throws"] ? UnionThrows.from_dynamic!(d["throws"]) : nil,
-      top_level_to_json:          d["to_json"] ? UnionToJSON.from_dynamic!(d["to_json"]) : nil,
-      top_level:                  d["top_level"] ? UnionTopLevel.from_dynamic!(d["top_level"]) : nil,
-      transient:                  d["transient"] ? UnionTransient.from_dynamic!(d["transient"]) : nil,
-      top_level_true:             d["True"] ? UnionTrue.from_dynamic!(d["True"]) : nil,
-      true_1:                     d["true"] ? UnionTrueUnion.from_dynamic!(d["true"]) : nil,
-      top_level_try:              d["try"] ? UnionTry.from_dynamic!(d["try"]) : nil,
-      top_level_type:             d["Type"] ? UnionType.from_dynamic!(d["Type"]) : nil,
-      type_1:                     d["type"] ? UnionTypeUnion.from_dynamic!(d["type"]) : nil,
-      typealias:                  d["typealias"] ? UnionTypealias.from_dynamic!(d["typealias"]) : nil,
-      typedef:                    d["typedef"] ? UnionTypedef.from_dynamic!(d["typedef"]) : nil,
-      typeid:                     d["typeid"] ? UnionTypeid.from_dynamic!(d["typeid"]) : nil,
-      typename:                   d["typename"] ? UnionTypename.from_dynamic!(d["typename"]) : nil,
-      typeof:                     d["typeof"] ? UnionTypeof.from_dynamic!(d["typeof"]) : nil,
-      uint:                       d["uint"] ? UnionUint.from_dynamic!(d["uint"]) : nil,
-      ulong:                      d["ulong"] ? UnionUlong.from_dynamic!(d["ulong"]) : nil,
-      unchecked:                  d["unchecked"] ? UnionUnchecked.from_dynamic!(d["unchecked"]) : nil,
-      undefined:                  d["undefined"] ? UnionUndefined.from_dynamic!(d["undefined"]) : nil,
-      union:                      d["union"] ? UnionUnionUnion.from_dynamic!(d["union"]) : nil,
-      unowned:                    d["unowned"] ? UnionUnowned.from_dynamic!(d["unowned"]) : nil,
-      unsafe:                     d["unsafe"] ? UnionUnsafe.from_dynamic!(d["unsafe"]) : nil,
-      unsigned:                   d["unsigned"] ? UnionUnsigned.from_dynamic!(d["unsigned"]) : nil,
-      ushort:                     d["ushort"] ? UnionUshort.from_dynamic!(d["ushort"]) : nil,
-      using:                      d["using"] ? UnionUsing.from_dynamic!(d["using"]) : nil,
-      var:                        d["var"] ? UnionVar.from_dynamic!(d["var"]) : nil,
-      virtual:                    d["virtual"] ? UnionVirtual.from_dynamic!(d["virtual"]) : nil,
-      void:                       d["void"] ? UnionVoid.from_dynamic!(d["void"]) : nil,
-      volatile:                   d["volatile"] ? UnionVolatile.from_dynamic!(d["volatile"]) : nil,
-      wchar_t:                    d["wchar_t"] ? UnionWcharT.from_dynamic!(d["wchar_t"]) : nil,
-      weak:                       d["weak"] ? UnionWeak.from_dynamic!(d["weak"]) : nil,
-      where:                      d["where"] ? UnionWhere.from_dynamic!(d["where"]) : nil,
-      top_level_while:            d["while"] ? UnionWhile.from_dynamic!(d["while"]) : nil,
-      will_set:                   d["willSet"] ? UnionWillSet.from_dynamic!(d["willSet"]) : nil,
-      top_level_with:             d["with"] ? UnionWith.from_dynamic!(d["with"]) : nil,
-      xor:                        d["xor"] ? UnionXor.from_dynamic!(d["xor"]) : nil,
-      xor_eq:                     d["xor_eq"] ? UnionXorEq.from_dynamic!(d["xor_eq"]) : nil,
-      yes:                        d["YES"] ? UnionYES.from_dynamic!(d["YES"]) : nil,
-      top_level_yield:            d["yield"] ? UnionYield.from_dynamic!(d["yield"]) : nil,
+  attribute :empty,                          Types.Instance(UnionUnion).optional
+  attribute :top_level_bool,                 Types.Instance(UnionBool).optional
+  attribute :complex,                        Types.Instance(UnionComplex).optional
+  attribute :imaginery,                      Types.Instance(UnionImaginery).optional
+  attribute :abstract,                       Types.Instance(UnionAbstract).optional
+  attribute :alignas,                        Types.Instance(UnionAlignas).optional
+  attribute :alignof,                        Types.Instance(UnionAlignof).optional
+  attribute :top_level_and,                  Types.Instance(UnionAnd).optional
+  attribute :and_eq,                         Types.Instance(UnionAndEq).optional
+  attribute :top_level_any,                  Types.Instance(UnionAnyUnion).optional
+  attribute :any,                            Types.Instance(UnionAny).optional
+  attribute :array,                          Types.Instance(UnionArray).optional
+  attribute :as,                             Types.Instance(UnionAs).optional
+  attribute :asm,                            Types.Instance(UnionASM).optional
+  attribute :assert,                         Types.Instance(UnionAssert).optional
+  attribute :associatedtype,                 Types.Instance(UnionAssociatedtype).optional
+  attribute :associativity,                  Types.Instance(UnionAssociativity).optional
+  attribute :async,                          Types.Instance(UnionAsync).optional
+  attribute :atomic,                         Types.Instance(UnionAtomic).optional
+  attribute :atomic_cancel,                  Types.Instance(UnionAtomicCancel).optional
+  attribute :atomic_commit,                  Types.Instance(UnionAtomicCommit).optional
+  attribute :atomic_noexcept,                Types.Instance(UnionAtomicNoexcept).optional
+  attribute :auto,                           Types.Instance(UnionAuto).optional
+  attribute :await,                          Types.Instance(UnionAwait).optional
+  attribute :base,                           Types.Instance(UnionBase).optional
+  attribute :bitand,                         Types.Instance(UnionBitand).optional
+  attribute :bitor,                          Types.Instance(UnionBitor).optional
+  attribute :bool,                           Types.Instance(UnionBOOL).optional
+  attribute :bool_1,                         Types.Instance(UnionBoolUnion).optional
+  attribute :boolean,                        Types.Instance(UnionBoolean).optional
+  attribute :top_level_break,                Types.Instance(UnionBreak).optional
+  attribute :bycopy,                         Types.Instance(UnionBycopy).optional
+  attribute :byref,                          Types.Instance(UnionByref).optional
+  attribute :byte,                           Types.Instance(UnionByte).optional
+  attribute :top_level_case,                 Types.Instance(UnionCase).optional
+  attribute :top_level_catch,                Types.Instance(UnionCatch).optional
+  attribute :chan,                           Types.Instance(UnionChan).optional
+  attribute :char,                           Types.Instance(UnionChar).optional
+  attribute :char16_t,                       Types.Instance(UnionChar16T).optional
+  attribute :char32_t,                       Types.Instance(UnionChar32T).optional
+  attribute :checked,                        Types.Instance(UnionChecked).optional
+  attribute :class_1,                        Types.Instance(UnionClassUnion).optional
+  attribute :top_level_class,                Types.Instance(UnionClass).optional
+  attribute :top_level_clone,                Types.Instance(UnionClone).optional
+  attribute :co_await,                       Types.Instance(UnionCoAwait).optional
+  attribute :co_return,                      Types.Instance(UnionCoReturn).optional
+  attribute :co_yield,                       Types.Instance(UnionCoYield).optional
+  attribute :compl,                          Types.Instance(UnionCompl).optional
+  attribute :concept,                        Types.Instance(UnionConcept).optional
+  attribute :console,                        Types.Instance(UnionConsole).optional
+  attribute :const,                          Types.Instance(UnionConst).optional
+  attribute :const_cast,                     Types.Instance(UnionConstCast).optional
+  attribute :constexpr,                      Types.Instance(UnionConstexpr).optional
+  attribute :top_level_constructor,          Types.Instance(UnionConstructor).optional
+  attribute :continue,                       Types.Instance(UnionContinue).optional
+  attribute :convenience,                    Types.Instance(UnionConvenience).optional
+  attribute :convert,                        Types.Instance(UnionConvert).optional
+  attribute :converter,                      Types.Instance(UnionConverter).optional
+  attribute :culture_info,                   Types.Instance(UnionCultureInfo).optional
+  attribute :date,                           Types.Instance(UnionDate).optional
+  attribute :date_parse_handling,            Types.Instance(UnionDateParseHandling).optional
+  attribute :date_formatter,                 Types.Instance(UnionDateFormatter).optional
+  attribute :date_only,                      Types.Instance(UnionDateOnly).optional
+  attribute :date_only_converter,            Types.Instance(UnionDateOnlyConverter).optional
+  attribute :date_time,                      Types.Instance(UnionDateTime).optional
+  attribute :date_time_styles,               Types.Instance(UnionDateTimeStyles).optional
+  attribute :debugger,                       Types.Instance(UnionDebugger).optional
+  attribute :decimal,                        Types.Instance(UnionDecimal).optional
+  attribute :declare,                        Types.Instance(UnionDeclare).optional
+  attribute :decltype,                       Types.Instance(UnionDecltype).optional
+  attribute :decode_string,                  Types.Instance(UnionDecodeString).optional
+  attribute :top_level_def,                  Types.Instance(UnionDef).optional
+  attribute :top_level_default,              Types.Instance(UnionDefault).optional
+  attribute :defer,                          Types.Instance(UnionDefer).optional
+  attribute :deinit,                         Types.Instance(UnionDeinit).optional
+  attribute :del,                            Types.Instance(UnionDel).optional
+  attribute :delegate,                       Types.Instance(UnionDelegate).optional
+  attribute :delete,                         Types.Instance(UnionDelete).optional
+  attribute :dict,                           Types.Instance(UnionDict).optional
+  attribute :dictionary,                     Types.Instance(UnionDictionary).optional
+  attribute :did_set,                        Types.Instance(UnionDidSet).optional
+  attribute :top_level_do,                   Types.Instance(UnionDo).optional
+  attribute :double,                         Types.Instance(UnionDouble).optional
+  attribute :dummy,                          Types::Double.optional
+  attribute :dynamic,                        Types.Instance(UnionDynamic).optional
+  attribute :dynamic_cast,                   Types.Instance(UnionDynamicCast).optional
+  attribute :elif,                           Types.Instance(UnionElif).optional
+  attribute :top_level_else,                 Types.Instance(UnionElse).optional
+  attribute :encode_quick_type,              Types.Instance(UnionEncodeQuickType).optional
+  attribute :top_level_enum,                 Types.Instance(UnionEnum).optional
+  attribute :enum_values,                    Types.Instance(UnionEnumValues).optional
+  attribute :equality_contract,              Types.Instance(UnionEqualityContract).optional
+  attribute :event,                          Types.Instance(UnionEvent).optional
+  attribute :except,                         Types.Instance(UnionExcept).optional
+  attribute :exception,                      Types.Instance(UnionException).optional
+  attribute :explicit,                       Types.Instance(UnionExplicit).optional
+  attribute :export,                         Types.Instance(UnionExport).optional
+  attribute :exposing,                       Types.Instance(UnionExposing).optional
+  attribute :extends,                        Types.Instance(UnionExtends).optional
+  attribute :extension,                      Types.Instance(UnionExtension).optional
+  attribute :extern,                         Types.Instance(UnionExtern).optional
+  attribute :fallthrough,                    Types.Instance(UnionFallthrough).optional
+  attribute :false_1,                        Types.Instance(UnionFalseUnion).optional
+  attribute :top_level_false,                Types.Instance(UnionFalse).optional
+  attribute :fileprivate,                    Types.Instance(UnionFileprivate).optional
+  attribute :final,                          Types.Instance(UnionFinal).optional
+  attribute :finally,                        Types.Instance(UnionFinally).optional
+  attribute :fixed,                          Types.Instance(UnionFixed).optional
+  attribute :float,                          Types.Instance(UnionFloat).optional
+  attribute :top_level_for,                  Types.Instance(UnionFor).optional
+  attribute :foreach,                        Types.Instance(UnionForeach).optional
+  attribute :format_exception,               Types.Instance(UnionFormatException).optional
+  attribute :friend,                         Types.Instance(UnionFriend).optional
+  attribute :from,                           Types.Instance(UnionFrom).optional
+  attribute :from_json,                      Types.Instance(UnionFromJSON).optional
+  attribute :func,                           Types.Instance(UnionFunc).optional
+  attribute :function,                       Types.Instance(UnionFunction).optional
+  attribute :get,                            Types.Instance(UnionGet).optional
+  attribute :global,                         Types.Instance(UnionGlobal).optional
+  attribute :go,                             Types.Instance(UnionGo).optional
+  attribute :goto,                           Types.Instance(UnionGoto).optional
+  attribute :guard,                          Types.Instance(UnionGuard).optional
+  attribute :hash_code,                      Types.Instance(UnionHashCode).optional
+  attribute :has_own_property,               Types.Instance(UnionHasOwnProperty).optional
+  attribute :id,                             Types.Instance(UnionID).optional
+  attribute :top_level_if,                   Types.Instance(UnionIf).optional
+  attribute :imp,                            Types.Instance(UnionIMP).optional
+  attribute :implements,                     Types.Instance(UnionImplements).optional
+  attribute :implicit,                       Types.Instance(UnionImplicit).optional
+  attribute :import,                         Types.Instance(UnionImport).optional
+  attribute :top_level_in,                   Types.Instance(UnionIn).optional
+  attribute :indirect,                       Types.Instance(UnionIndirect).optional
+  attribute :infix,                          Types.Instance(UnionInfix).optional
+  attribute :init,                           Types.Instance(UnionInit).optional
+  attribute :inline,                         Types.Instance(UnionInline).optional
+  attribute :inout,                          Types.Instance(UnionInout).optional
+  attribute :instanceof,                     Types.Instance(UnionInstanceof).optional
+  attribute :int,                            Types.Instance(UnionInt).optional
+  attribute :interface,                      Types.Instance(UnionInterface).optional
+  attribute :internal,                       Types.Instance(UnionInternal).optional
+  attribute :is,                             Types.Instance(UnionIs).optional
+  attribute :iso_date_time_offset_converter, Types.Instance(UnionISODateTimeOffsetConverter).optional
+  attribute :iterable,                       Types.Instance(UnionIterable).optional
+  attribute :jdec,                           Types.Instance(UnionJdec).optional
+  attribute :jenc,                           Types.Instance(UnionJenc).optional
+  attribute :jpipe,                          Types.Instance(UnionJpipe).optional
+  attribute :json,                           Types.Instance(UnionJSON).optional
+  attribute :json_converter,                 Types.Instance(UnionJSONConverter).optional
+  attribute :json_serializer,                Types.Instance(UnionJSONSerializer).optional
+  attribute :json_token,                     Types.Instance(UnionJSONToken).optional
+  attribute :json_writer,                    Types.Instance(UnionJSONWriter).optional
+  attribute :json_any,                       Types.Instance(UnionJSONAny).optional
+  attribute :json_coding_key,                Types.Instance(UnionJSONCodingKey).optional
+  attribute :json_decoder,                   Types.Instance(UnionJSONDecoder).optional
+  attribute :json_encoder,                   Types.Instance(UnionJSONEncoder).optional
+  attribute :json_exception,                 Types.Instance(UnionJSONException).optional
+  attribute :json_generator,                 Types.Instance(UnionJSONGenerator).optional
+  attribute :json_node,                      Types.Instance(UnionJSONNode).optional
+  attribute :json_null,                      Types.Instance(UnionJSONNull).optional
+  attribute :json_parser,                    Types.Instance(UnionJSONParser).optional
+  attribute :json_reader,                    Types.Instance(UnionJSONReader).optional
+  attribute :json_token_type,                Types.Instance(UnionJSONTokenType).optional
+  attribute :top_level_lambda,               Types.Instance(UnionLambda).optional
+  attribute :lazy,                           Types.Instance(UnionLazy).optional
+  attribute :left,                           Types.Instance(UnionLeft).optional
+  attribute :let,                            Types.Instance(UnionLet).optional
+  attribute :list,                           Types.Instance(UnionList).optional
+  attribute :lock,                           Types.Instance(UnionLock).optional
+  attribute :long,                           Types.Instance(UnionLong).optional
+  attribute :map,                            Types.Instance(UnionMap).optional
+  attribute :metadata_property_handling,     Types.Instance(UnionMetadataPropertyHandling).optional
+  attribute :top_level_module,               Types.Instance(UnionModule).optional
+  attribute :mutable,                        Types.Instance(UnionMutable).optional
+  attribute :mutating,                       Types.Instance(UnionMutating).optional
+  attribute :namespace,                      Types.Instance(UnionNamespace).optional
+  attribute :native,                         Types.Instance(UnionNative).optional
+  attribute :top_level_new,                  Types.Instance(UnionNew).optional
+  attribute :newtonsoft,                     Types.Instance(UnionNewtonsoft).optional
+  attribute :top_level_nil,                  Types.Instance(UnionNil).optional
+  attribute :no,                             Types.Instance(UnionNO).optional
+  attribute :noexcept,                       Types.Instance(UnionNoexcept).optional
+  attribute :nonatomic,                      Types.Instance(UnionNonatomic).optional
+  attribute :top_level_none,                 Types.Instance(UnionNoneUnion).optional
+  attribute :none,                           Types.Instance(UnionNone).optional
+  attribute :nonlocal,                       Types.Instance(UnionNonlocal).optional
+  attribute :nonmutating,                    Types.Instance(UnionNonmutating).optional
+  attribute :no_such_method,                 Types.Instance(UnionNoSuchMethod).optional
+  attribute :top_level_not,                  Types.Instance(UnionNot).optional
+  attribute :not_eq,                         Types.Instance(UnionNotEq).optional
+  attribute :ns_error,                       Types.Instance(UnionNSError).optional
+  attribute :ns_string,                      Types.Instance(UnionNSString).optional
+  attribute :null,                           Types.Instance(UnionNULL).optional
+  attribute :top_level_null,                 Types.Instance(UnionNull).optional
+  attribute :nullptr,                        Types.Instance(UnionNullptr).optional
+  attribute :number,                         Types.Instance(UnionNumber).optional
+  attribute :object,                         Types.Instance(UnionObject).optional
+  attribute :object_mapper,                  Types.Instance(UnionObjectMapper).optional
+  attribute :of,                             Types.Instance(UnionOf).optional
+  attribute :oneway,                         Types.Instance(UnionOneway).optional
+  attribute :top_level_open,                 Types.Instance(UnionOpen).optional
+  attribute :operator,                       Types.Instance(UnionOperator).optional
+  attribute :top_level_optional,             Types.Instance(UnionOptional).optional
+  attribute :top_level_or,                   Types.Instance(UnionOr).optional
+  attribute :or_eq,                          Types.Instance(UnionOrEq).optional
+  attribute :out,                            Types.Instance(UnionOut).optional
+  attribute :override,                       Types.Instance(UnionOverride).optional
+  attribute :package,                        Types.Instance(UnionPackage).optional
+  attribute :params,                         Types.Instance(UnionParams).optional
+  attribute :pass,                           Types.Instance(UnionPass).optional
+  attribute :port,                           Types.Instance(UnionPort).optional
+  attribute :postfix,                        Types.Instance(UnionPostfix).optional
+  attribute :precedence,                     Types.Instance(UnionPrecedence).optional
+  attribute :prefix,                         Types.Instance(UnionPrefix).optional
+  attribute :top_level_print,                Types.Instance(UnionPrint).optional
+  attribute :top_level_printf,               Types.Instance(UnionPrintf).optional
+  attribute :print_members,                  Types.Instance(UnionPrintMembers).optional
+  attribute :private,                        Types.Instance(UnionPrivate).optional
+  attribute :protected,                      Types.Instance(UnionProtected).optional
+  attribute :protocol,                       Types.Instance(UnionProtocol).optional
+  attribute :top_level_protocol,             Types.Instance(UnionProtocolUnion).optional
+  attribute :public,                         Types.Instance(UnionPublic).optional
+  attribute :quicktype,                      Types.Instance(UnionQuicktype).optional
+  attribute :top_level_raise,                Types.Instance(UnionRaise).optional
+  attribute :range,                          Types.Instance(UnionRange).optional
+  attribute :readonly,                       Types.Instance(UnionReadonly).optional
+  attribute :ref,                            Types.Instance(UnionRef).optional
+  attribute :reg_exp,                        Types.Instance(UnionRegExp).optional
+  attribute :register,                       Types.Instance(UnionRegister).optional
+  attribute :reinterpret_cast,               Types.Instance(UnionReinterpretCast).optional
+  attribute :repeat,                         Types.Instance(UnionRepeat).optional
+  attribute :top_level_require,              Types.Instance(UnionRequire).optional
+  attribute :required,                       Types.Instance(UnionRequired).optional
+  attribute :requires,                       Types.Instance(UnionRequires).optional
+  attribute :restrict,                       Types.Instance(UnionRestrict).optional
+  attribute :retain,                         Types.Instance(UnionRetain).optional
+  attribute :rethrows,                       Types.Instance(UnionRethrows).optional
+  attribute :top_level_return,               Types.Instance(UnionReturn).optional
+  attribute :right,                          Types.Instance(UnionRight).optional
+  attribute :runtime_type,                   Types.Instance(UnionRuntimeType).optional
+  attribute :s,                              Types.Instance(UnionS).optional
+  attribute :sbyte,                          Types.Instance(UnionSbyte).optional
+  attribute :sealed,                         Types.Instance(UnionSealed).optional
+  attribute :sel,                            Types.Instance(UnionSEL).optional
+  attribute :top_level_select,               Types.Instance(UnionSelect).optional
+  attribute :top_level_self,                 Types.Instance(UnionSelf).optional
+  attribute :self_1,                         Types.Instance(UnionSelfUnion).optional
+  attribute :serialize,                      Types.Instance(UnionSerialize).optional
+  attribute :serializer_provider,            Types.Instance(UnionSerializerProvider).optional
+  attribute :set,                            Types.Instance(UnionSet).optional
+  attribute :short,                          Types.Instance(UnionShort).optional
+  attribute :signed,                         Types.Instance(UnionSigned).optional
+  attribute :simple_module,                  Types.Instance(UnionSimpleModule).optional
+  attribute :sizeof,                         Types.Instance(UnionSizeof).optional
+  attribute :stackalloc,                     Types.Instance(UnionStackalloc).optional
+  attribute :standards,                      Types.Instance(UnionStandards).optional
+  attribute :static,                         Types.Instance(UnionStatic).optional
+  attribute :static_assert,                  Types.Instance(UnionStaticAssert).optional
+  attribute :static_cast,                    Types.Instance(UnionStaticCast).optional
+  attribute :std_deserializer,               Types.Instance(UnionStdDeserializer).optional
+  attribute :std_serializer,                 Types.Instance(UnionStdSerializer).optional
+  attribute :strictfp,                       Types.Instance(UnionStrictfp).optional
+  attribute :string,                         Types.Instance(UnionString).optional
+  attribute :struct,                         Types.Instance(UnionStruct).optional
+  attribute :subscript,                      Types.Instance(UnionSubscript).optional
+  attribute :top_level_super,                Types.Instance(UnionSuper).optional
+  attribute :switch,                         Types.Instance(UnionSwitch).optional
+  attribute :symbol,                         Types.Instance(UnionSymbol).optional
+  attribute :synchronized,                   Types.Instance(UnionSynchronized).optional
+  attribute :top_level_system,               Types.Instance(UnionSystem).optional
+  attribute :template,                       Types.Instance(UnionTemplate).optional
+  attribute :top_level_then,                 Types.Instance(UnionThen).optional
+  attribute :this,                           Types.Instance(UnionThis).optional
+  attribute :thread_local,                   Types.Instance(UnionThreadLocal).optional
+  attribute :top_level_throw,                Types.Instance(UnionThrow).optional
+  attribute :throws,                         Types.Instance(UnionThrows).optional
+  attribute :time_only,                      Types.Instance(UnionTimeOnly).optional
+  attribute :time_only_converter,            Types.Instance(UnionTimeOnlyConverter).optional
+  attribute :top_level_to_json,              Types.Instance(UnionToJSON).optional
+  attribute :top_level,                      Types.Instance(UnionTopLevel).optional
+  attribute :to_string,                      Types.Instance(UnionToString).optional
+  attribute :transient,                      Types.Instance(UnionTransient).optional
+  attribute :top_level_true,                 Types.Instance(UnionTrue).optional
+  attribute :true_1,                         Types.Instance(UnionTrueUnion).optional
+  attribute :top_level_try,                  Types.Instance(UnionTry).optional
+  attribute :top_level_type,                 Types.Instance(UnionType).optional
+  attribute :type_1,                         Types.Instance(UnionTypeUnion).optional
+  attribute :typealias,                      Types.Instance(UnionTypealias).optional
+  attribute :typedef,                        Types.Instance(UnionTypedef).optional
+  attribute :typeid,                         Types.Instance(UnionTypeid).optional
+  attribute :typename,                       Types.Instance(UnionTypename).optional
+  attribute :typeof,                         Types.Instance(UnionTypeof).optional
+  attribute :uint,                           Types.Instance(UnionUint).optional
+  attribute :ulong,                          Types.Instance(UnionUlong).optional
+  attribute :unchecked,                      Types.Instance(UnionUnchecked).optional
+  attribute :undefined,                      Types.Instance(UnionUndefined).optional
+  attribute :union,                          Types.Instance(UnionUnionUnion).optional
+  attribute :unowned,                        Types.Instance(UnionUnowned).optional
+  attribute :unsafe,                         Types.Instance(UnionUnsafe).optional
+  attribute :unsigned,                       Types.Instance(UnionUnsigned).optional
+  attribute :ushort,                         Types.Instance(UnionUshort).optional
+  attribute :using,                          Types.Instance(UnionUsing).optional
+  attribute :utf8_json_reader,               Types.Instance(UnionUtf8JSONReader).optional
+  attribute :utf8_json_writer,               Types.Instance(UnionUtf8JSONWriter).optional
+  attribute :uuid,                           Types.Instance(UnionUUID).optional
+  attribute :var,                            Types.Instance(UnionVar).optional
+  attribute :virtual,                        Types.Instance(UnionVirtual).optional
+  attribute :void,                           Types.Instance(UnionVoid).optional
+  attribute :volatile,                       Types.Instance(UnionVolatile).optional
+  attribute :wchar_t,                        Types.Instance(UnionWcharT).optional
+  attribute :weak,                           Types.Instance(UnionWeak).optional
+  attribute :where,                          Types.Instance(UnionWhere).optional
+  attribute :top_level_while,                Types.Instance(UnionWhile).optional
+  attribute :will_set,                       Types.Instance(UnionWillSet).optional
+  attribute :top_level_with,                 Types.Instance(UnionWith).optional
+  attribute :xor,                            Types.Instance(UnionXor).optional
+  attribute :xor_eq,                         Types.Instance(UnionXorEq).optional
+  attribute :yes,                            Types.Instance(UnionYES).optional
+  attribute :top_level_yield,                Types.Instance(UnionYield).optional
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      empty:                          d["_"] ? UnionUnion.from_dynamic!(d["_"]) : nil,
+      top_level_bool:                 d["_Bool"] ? UnionBool.from_dynamic!(d["_Bool"]) : nil,
+      complex:                        d["_Complex"] ? UnionComplex.from_dynamic!(d["_Complex"]) : nil,
+      imaginery:                      d["_Imaginery"] ? UnionImaginery.from_dynamic!(d["_Imaginery"]) : nil,
+      abstract:                       d["abstract"] ? UnionAbstract.from_dynamic!(d["abstract"]) : nil,
+      alignas:                        d["alignas"] ? UnionAlignas.from_dynamic!(d["alignas"]) : nil,
+      alignof:                        d["alignof"] ? UnionAlignof.from_dynamic!(d["alignof"]) : nil,
+      top_level_and:                  d["and"] ? UnionAnd.from_dynamic!(d["and"]) : nil,
+      and_eq:                         d["and_eq"] ? UnionAndEq.from_dynamic!(d["and_eq"]) : nil,
+      top_level_any:                  d["any"] ? UnionAnyUnion.from_dynamic!(d["any"]) : nil,
+      any:                            d["Any"] ? UnionAny.from_dynamic!(d["Any"]) : nil,
+      array:                          d["array"] ? UnionArray.from_dynamic!(d["array"]) : nil,
+      as:                             d["as"] ? UnionAs.from_dynamic!(d["as"]) : nil,
+      asm:                            d["asm"] ? UnionASM.from_dynamic!(d["asm"]) : nil,
+      assert:                         d["assert"] ? UnionAssert.from_dynamic!(d["assert"]) : nil,
+      associatedtype:                 d["associatedtype"] ? UnionAssociatedtype.from_dynamic!(d["associatedtype"]) : nil,
+      associativity:                  d["associativity"] ? UnionAssociativity.from_dynamic!(d["associativity"]) : nil,
+      async:                          d["async"] ? UnionAsync.from_dynamic!(d["async"]) : nil,
+      atomic:                         d["atomic"] ? UnionAtomic.from_dynamic!(d["atomic"]) : nil,
+      atomic_cancel:                  d["atomic_cancel"] ? UnionAtomicCancel.from_dynamic!(d["atomic_cancel"]) : nil,
+      atomic_commit:                  d["atomic_commit"] ? UnionAtomicCommit.from_dynamic!(d["atomic_commit"]) : nil,
+      atomic_noexcept:                d["atomic_noexcept"] ? UnionAtomicNoexcept.from_dynamic!(d["atomic_noexcept"]) : nil,
+      auto:                           d["auto"] ? UnionAuto.from_dynamic!(d["auto"]) : nil,
+      await:                          d["await"] ? UnionAwait.from_dynamic!(d["await"]) : nil,
+      base:                           d["base"] ? UnionBase.from_dynamic!(d["base"]) : nil,
+      bitand:                         d["bitand"] ? UnionBitand.from_dynamic!(d["bitand"]) : nil,
+      bitor:                          d["bitor"] ? UnionBitor.from_dynamic!(d["bitor"]) : nil,
+      bool:                           d["BOOL"] ? UnionBOOL.from_dynamic!(d["BOOL"]) : nil,
+      bool_1:                         d["bool"] ? UnionBoolUnion.from_dynamic!(d["bool"]) : nil,
+      boolean:                        d["boolean"] ? UnionBoolean.from_dynamic!(d["boolean"]) : nil,
+      top_level_break:                d["break"] ? UnionBreak.from_dynamic!(d["break"]) : nil,
+      bycopy:                         d["bycopy"] ? UnionBycopy.from_dynamic!(d["bycopy"]) : nil,
+      byref:                          d["byref"] ? UnionByref.from_dynamic!(d["byref"]) : nil,
+      byte:                           d["byte"] ? UnionByte.from_dynamic!(d["byte"]) : nil,
+      top_level_case:                 d["case"] ? UnionCase.from_dynamic!(d["case"]) : nil,
+      top_level_catch:                d["catch"] ? UnionCatch.from_dynamic!(d["catch"]) : nil,
+      chan:                           d["chan"] ? UnionChan.from_dynamic!(d["chan"]) : nil,
+      char:                           d["char"] ? UnionChar.from_dynamic!(d["char"]) : nil,
+      char16_t:                       d["char16_t"] ? UnionChar16T.from_dynamic!(d["char16_t"]) : nil,
+      char32_t:                       d["char32_t"] ? UnionChar32T.from_dynamic!(d["char32_t"]) : nil,
+      checked:                        d["checked"] ? UnionChecked.from_dynamic!(d["checked"]) : nil,
+      class_1:                        d["class"] ? UnionClassUnion.from_dynamic!(d["class"]) : nil,
+      top_level_class:                d["Class"] ? UnionClass.from_dynamic!(d["Class"]) : nil,
+      top_level_clone:                d["clone"] ? UnionClone.from_dynamic!(d["clone"]) : nil,
+      co_await:                       d["co_await"] ? UnionCoAwait.from_dynamic!(d["co_await"]) : nil,
+      co_return:                      d["co_return"] ? UnionCoReturn.from_dynamic!(d["co_return"]) : nil,
+      co_yield:                       d["co_yield"] ? UnionCoYield.from_dynamic!(d["co_yield"]) : nil,
+      compl:                          d["compl"] ? UnionCompl.from_dynamic!(d["compl"]) : nil,
+      concept:                        d["concept"] ? UnionConcept.from_dynamic!(d["concept"]) : nil,
+      console:                        d["console"] ? UnionConsole.from_dynamic!(d["console"]) : nil,
+      const:                          d["const"] ? UnionConst.from_dynamic!(d["const"]) : nil,
+      const_cast:                     d["const_cast"] ? UnionConstCast.from_dynamic!(d["const_cast"]) : nil,
+      constexpr:                      d["constexpr"] ? UnionConstexpr.from_dynamic!(d["constexpr"]) : nil,
+      top_level_constructor:          d["constructor"] ? UnionConstructor.from_dynamic!(d["constructor"]) : nil,
+      continue:                       d["continue"] ? UnionContinue.from_dynamic!(d["continue"]) : nil,
+      convenience:                    d["convenience"] ? UnionConvenience.from_dynamic!(d["convenience"]) : nil,
+      convert:                        d["convert"] ? UnionConvert.from_dynamic!(d["convert"]) : nil,
+      converter:                      d["converter"] ? UnionConverter.from_dynamic!(d["converter"]) : nil,
+      culture_info:                   d["CultureInfo"] ? UnionCultureInfo.from_dynamic!(d["CultureInfo"]) : nil,
+      date:                           d["date"] ? UnionDate.from_dynamic!(d["date"]) : nil,
+      date_parse_handling:            d["date_parse_handling"] ? UnionDateParseHandling.from_dynamic!(d["date_parse_handling"]) : nil,
+      date_formatter:                 d["DateFormatter"] ? UnionDateFormatter.from_dynamic!(d["DateFormatter"]) : nil,
+      date_only:                      d["DateOnly"] ? UnionDateOnly.from_dynamic!(d["DateOnly"]) : nil,
+      date_only_converter:            d["DateOnlyConverter"] ? UnionDateOnlyConverter.from_dynamic!(d["DateOnlyConverter"]) : nil,
+      date_time:                      d["DateTime"] ? UnionDateTime.from_dynamic!(d["DateTime"]) : nil,
+      date_time_styles:               d["DateTimeStyles"] ? UnionDateTimeStyles.from_dynamic!(d["DateTimeStyles"]) : nil,
+      debugger:                       d["debugger"] ? UnionDebugger.from_dynamic!(d["debugger"]) : nil,
+      decimal:                        d["decimal"] ? UnionDecimal.from_dynamic!(d["decimal"]) : nil,
+      declare:                        d["declare"] ? UnionDeclare.from_dynamic!(d["declare"]) : nil,
+      decltype:                       d["decltype"] ? UnionDecltype.from_dynamic!(d["decltype"]) : nil,
+      decode_string:                  d["decode_string"] ? UnionDecodeString.from_dynamic!(d["decode_string"]) : nil,
+      top_level_def:                  d["def"] ? UnionDef.from_dynamic!(d["def"]) : nil,
+      top_level_default:              d["default"] ? UnionDefault.from_dynamic!(d["default"]) : nil,
+      defer:                          d["defer"] ? UnionDefer.from_dynamic!(d["defer"]) : nil,
+      deinit:                         d["deinit"] ? UnionDeinit.from_dynamic!(d["deinit"]) : nil,
+      del:                            d["del"] ? UnionDel.from_dynamic!(d["del"]) : nil,
+      delegate:                       d["delegate"] ? UnionDelegate.from_dynamic!(d["delegate"]) : nil,
+      delete:                         d["delete"] ? UnionDelete.from_dynamic!(d["delete"]) : nil,
+      dict:                           d["dict"] ? UnionDict.from_dynamic!(d["dict"]) : nil,
+      dictionary:                     d["dictionary"] ? UnionDictionary.from_dynamic!(d["dictionary"]) : nil,
+      did_set:                        d["didSet"] ? UnionDidSet.from_dynamic!(d["didSet"]) : nil,
+      top_level_do:                   d["do"] ? UnionDo.from_dynamic!(d["do"]) : nil,
+      double:                         d["double"] ? UnionDouble.from_dynamic!(d["double"]) : nil,
+      dummy:                          d["dummy"],
+      dynamic:                        d["dynamic"] ? UnionDynamic.from_dynamic!(d["dynamic"]) : nil,
+      dynamic_cast:                   d["dynamic_cast"] ? UnionDynamicCast.from_dynamic!(d["dynamic_cast"]) : nil,
+      elif:                           d["elif"] ? UnionElif.from_dynamic!(d["elif"]) : nil,
+      top_level_else:                 d["else"] ? UnionElse.from_dynamic!(d["else"]) : nil,
+      encode_quick_type:              d["encode_quick_type"] ? UnionEncodeQuickType.from_dynamic!(d["encode_quick_type"]) : nil,
+      top_level_enum:                 d["enum"] ? UnionEnum.from_dynamic!(d["enum"]) : nil,
+      enum_values:                    d["EnumValues"] ? UnionEnumValues.from_dynamic!(d["EnumValues"]) : nil,
+      equality_contract:              d["equalityContract"] ? UnionEqualityContract.from_dynamic!(d["equalityContract"]) : nil,
+      event:                          d["event"] ? UnionEvent.from_dynamic!(d["event"]) : nil,
+      except:                         d["except"] ? UnionExcept.from_dynamic!(d["except"]) : nil,
+      exception:                      d["exception"] ? UnionException.from_dynamic!(d["exception"]) : nil,
+      explicit:                       d["explicit"] ? UnionExplicit.from_dynamic!(d["explicit"]) : nil,
+      export:                         d["export"] ? UnionExport.from_dynamic!(d["export"]) : nil,
+      exposing:                       d["exposing"] ? UnionExposing.from_dynamic!(d["exposing"]) : nil,
+      extends:                        d["extends"] ? UnionExtends.from_dynamic!(d["extends"]) : nil,
+      extension:                      d["extension"] ? UnionExtension.from_dynamic!(d["extension"]) : nil,
+      extern:                         d["extern"] ? UnionExtern.from_dynamic!(d["extern"]) : nil,
+      fallthrough:                    d["fallthrough"] ? UnionFallthrough.from_dynamic!(d["fallthrough"]) : nil,
+      false_1:                        d["false"] ? UnionFalseUnion.from_dynamic!(d["false"]) : nil,
+      top_level_false:                d["False"] ? UnionFalse.from_dynamic!(d["False"]) : nil,
+      fileprivate:                    d["fileprivate"] ? UnionFileprivate.from_dynamic!(d["fileprivate"]) : nil,
+      final:                          d["final"] ? UnionFinal.from_dynamic!(d["final"]) : nil,
+      finally:                        d["finally"] ? UnionFinally.from_dynamic!(d["finally"]) : nil,
+      fixed:                          d["fixed"] ? UnionFixed.from_dynamic!(d["fixed"]) : nil,
+      float:                          d["float"] ? UnionFloat.from_dynamic!(d["float"]) : nil,
+      top_level_for:                  d["for"] ? UnionFor.from_dynamic!(d["for"]) : nil,
+      foreach:                        d["foreach"] ? UnionForeach.from_dynamic!(d["foreach"]) : nil,
+      format_exception:               d["FormatException"] ? UnionFormatException.from_dynamic!(d["FormatException"]) : nil,
+      friend:                         d["friend"] ? UnionFriend.from_dynamic!(d["friend"]) : nil,
+      from:                           d["from"] ? UnionFrom.from_dynamic!(d["from"]) : nil,
+      from_json:                      d["from_json"] ? UnionFromJSON.from_dynamic!(d["from_json"]) : nil,
+      func:                           d["func"] ? UnionFunc.from_dynamic!(d["func"]) : nil,
+      function:                       d["function"] ? UnionFunction.from_dynamic!(d["function"]) : nil,
+      get:                            d["get"] ? UnionGet.from_dynamic!(d["get"]) : nil,
+      global:                         d["global"] ? UnionGlobal.from_dynamic!(d["global"]) : nil,
+      go:                             d["go"] ? UnionGo.from_dynamic!(d["go"]) : nil,
+      goto:                           d["goto"] ? UnionGoto.from_dynamic!(d["goto"]) : nil,
+      guard:                          d["guard"] ? UnionGuard.from_dynamic!(d["guard"]) : nil,
+      hash_code:                      d["hashCode"] ? UnionHashCode.from_dynamic!(d["hashCode"]) : nil,
+      has_own_property:               d["hasOwnProperty"] ? UnionHasOwnProperty.from_dynamic!(d["hasOwnProperty"]) : nil,
+      id:                             d["id"] ? UnionID.from_dynamic!(d["id"]) : nil,
+      top_level_if:                   d["if"] ? UnionIf.from_dynamic!(d["if"]) : nil,
+      imp:                            d["IMP"] ? UnionIMP.from_dynamic!(d["IMP"]) : nil,
+      implements:                     d["implements"] ? UnionImplements.from_dynamic!(d["implements"]) : nil,
+      implicit:                       d["implicit"] ? UnionImplicit.from_dynamic!(d["implicit"]) : nil,
+      import:                         d["import"] ? UnionImport.from_dynamic!(d["import"]) : nil,
+      top_level_in:                   d["in"] ? UnionIn.from_dynamic!(d["in"]) : nil,
+      indirect:                       d["indirect"] ? UnionIndirect.from_dynamic!(d["indirect"]) : nil,
+      infix:                          d["infix"] ? UnionInfix.from_dynamic!(d["infix"]) : nil,
+      init:                           d["init"] ? UnionInit.from_dynamic!(d["init"]) : nil,
+      inline:                         d["inline"] ? UnionInline.from_dynamic!(d["inline"]) : nil,
+      inout:                          d["inout"] ? UnionInout.from_dynamic!(d["inout"]) : nil,
+      instanceof:                     d["instanceof"] ? UnionInstanceof.from_dynamic!(d["instanceof"]) : nil,
+      int:                            d["int"] ? UnionInt.from_dynamic!(d["int"]) : nil,
+      interface:                      d["interface"] ? UnionInterface.from_dynamic!(d["interface"]) : nil,
+      internal:                       d["internal"] ? UnionInternal.from_dynamic!(d["internal"]) : nil,
+      is:                             d["is"] ? UnionIs.from_dynamic!(d["is"]) : nil,
+      iso_date_time_offset_converter: d["IsoDateTimeOffsetConverter"] ? UnionISODateTimeOffsetConverter.from_dynamic!(d["IsoDateTimeOffsetConverter"]) : nil,
+      iterable:                       d["iterable"] ? UnionIterable.from_dynamic!(d["iterable"]) : nil,
+      jdec:                           d["jdec"] ? UnionJdec.from_dynamic!(d["jdec"]) : nil,
+      jenc:                           d["jenc"] ? UnionJenc.from_dynamic!(d["jenc"]) : nil,
+      jpipe:                          d["jpipe"] ? UnionJpipe.from_dynamic!(d["jpipe"]) : nil,
+      json:                           d["json"] ? UnionJSON.from_dynamic!(d["json"]) : nil,
+      json_converter:                 d["json_converter"] ? UnionJSONConverter.from_dynamic!(d["json_converter"]) : nil,
+      json_serializer:                d["json_serializer"] ? UnionJSONSerializer.from_dynamic!(d["json_serializer"]) : nil,
+      json_token:                     d["json_token"] ? UnionJSONToken.from_dynamic!(d["json_token"]) : nil,
+      json_writer:                    d["json_writer"] ? UnionJSONWriter.from_dynamic!(d["json_writer"]) : nil,
+      json_any:                       d["JSONAny"] ? UnionJSONAny.from_dynamic!(d["JSONAny"]) : nil,
+      json_coding_key:                d["JSONCodingKey"] ? UnionJSONCodingKey.from_dynamic!(d["JSONCodingKey"]) : nil,
+      json_decoder:                   d["JSONDecoder"] ? UnionJSONDecoder.from_dynamic!(d["JSONDecoder"]) : nil,
+      json_encoder:                   d["JSONEncoder"] ? UnionJSONEncoder.from_dynamic!(d["JSONEncoder"]) : nil,
+      json_exception:                 d["JsonException"] ? UnionJSONException.from_dynamic!(d["JsonException"]) : nil,
+      json_generator:                 d["JsonGenerator"] ? UnionJSONGenerator.from_dynamic!(d["JsonGenerator"]) : nil,
+      json_node:                      d["JsonNode"] ? UnionJSONNode.from_dynamic!(d["JsonNode"]) : nil,
+      json_null:                      d["JSONNull"] ? UnionJSONNull.from_dynamic!(d["JSONNull"]) : nil,
+      json_parser:                    d["JsonParser"] ? UnionJSONParser.from_dynamic!(d["JsonParser"]) : nil,
+      json_reader:                    d["JsonReader"] ? UnionJSONReader.from_dynamic!(d["JsonReader"]) : nil,
+      json_token_type:                d["JsonTokenType"] ? UnionJSONTokenType.from_dynamic!(d["JsonTokenType"]) : nil,
+      top_level_lambda:               d["lambda"] ? UnionLambda.from_dynamic!(d["lambda"]) : nil,
+      lazy:                           d["lazy"] ? UnionLazy.from_dynamic!(d["lazy"]) : nil,
+      left:                           d["left"] ? UnionLeft.from_dynamic!(d["left"]) : nil,
+      let:                            d["let"] ? UnionLet.from_dynamic!(d["let"]) : nil,
+      list:                           d["list"] ? UnionList.from_dynamic!(d["list"]) : nil,
+      lock:                           d["lock"] ? UnionLock.from_dynamic!(d["lock"]) : nil,
+      long:                           d["long"] ? UnionLong.from_dynamic!(d["long"]) : nil,
+      map:                            d["map"] ? UnionMap.from_dynamic!(d["map"]) : nil,
+      metadata_property_handling:     d["metadata_property_handling"] ? UnionMetadataPropertyHandling.from_dynamic!(d["metadata_property_handling"]) : nil,
+      top_level_module:               d["module"] ? UnionModule.from_dynamic!(d["module"]) : nil,
+      mutable:                        d["mutable"] ? UnionMutable.from_dynamic!(d["mutable"]) : nil,
+      mutating:                       d["mutating"] ? UnionMutating.from_dynamic!(d["mutating"]) : nil,
+      namespace:                      d["namespace"] ? UnionNamespace.from_dynamic!(d["namespace"]) : nil,
+      native:                         d["native"] ? UnionNative.from_dynamic!(d["native"]) : nil,
+      top_level_new:                  d["new"] ? UnionNew.from_dynamic!(d["new"]) : nil,
+      newtonsoft:                     d["newtonsoft"] ? UnionNewtonsoft.from_dynamic!(d["newtonsoft"]) : nil,
+      top_level_nil:                  d["nil"] ? UnionNil.from_dynamic!(d["nil"]) : nil,
+      no:                             d["NO"] ? UnionNO.from_dynamic!(d["NO"]) : nil,
+      noexcept:                       d["noexcept"] ? UnionNoexcept.from_dynamic!(d["noexcept"]) : nil,
+      nonatomic:                      d["nonatomic"] ? UnionNonatomic.from_dynamic!(d["nonatomic"]) : nil,
+      top_level_none:                 d["none"] ? UnionNoneUnion.from_dynamic!(d["none"]) : nil,
+      none:                           d["None"] ? UnionNone.from_dynamic!(d["None"]) : nil,
+      nonlocal:                       d["nonlocal"] ? UnionNonlocal.from_dynamic!(d["nonlocal"]) : nil,
+      nonmutating:                    d["nonmutating"] ? UnionNonmutating.from_dynamic!(d["nonmutating"]) : nil,
+      no_such_method:                 d["noSuchMethod"] ? UnionNoSuchMethod.from_dynamic!(d["noSuchMethod"]) : nil,
+      top_level_not:                  d["not"] ? UnionNot.from_dynamic!(d["not"]) : nil,
+      not_eq:                         d["not_eq"] ? UnionNotEq.from_dynamic!(d["not_eq"]) : nil,
+      ns_error:                       d["NSError"] ? UnionNSError.from_dynamic!(d["NSError"]) : nil,
+      ns_string:                      d["NSString"] ? UnionNSString.from_dynamic!(d["NSString"]) : nil,
+      null:                           d["NULL"] ? UnionNULL.from_dynamic!(d["NULL"]) : nil,
+      top_level_null:                 d["null"] ? UnionNull.from_dynamic!(d["null"]) : nil,
+      nullptr:                        d["nullptr"] ? UnionNullptr.from_dynamic!(d["nullptr"]) : nil,
+      number:                         d["number"] ? UnionNumber.from_dynamic!(d["number"]) : nil,
+      object:                         d["object"] ? UnionObject.from_dynamic!(d["object"]) : nil,
+      object_mapper:                  d["ObjectMapper"] ? UnionObjectMapper.from_dynamic!(d["ObjectMapper"]) : nil,
+      of:                             d["of"] ? UnionOf.from_dynamic!(d["of"]) : nil,
+      oneway:                         d["oneway"] ? UnionOneway.from_dynamic!(d["oneway"]) : nil,
+      top_level_open:                 d["open"] ? UnionOpen.from_dynamic!(d["open"]) : nil,
+      operator:                       d["operator"] ? UnionOperator.from_dynamic!(d["operator"]) : nil,
+      top_level_optional:             d["optional"] ? UnionOptional.from_dynamic!(d["optional"]) : nil,
+      top_level_or:                   d["or"] ? UnionOr.from_dynamic!(d["or"]) : nil,
+      or_eq:                          d["or_eq"] ? UnionOrEq.from_dynamic!(d["or_eq"]) : nil,
+      out:                            d["out"] ? UnionOut.from_dynamic!(d["out"]) : nil,
+      override:                       d["override"] ? UnionOverride.from_dynamic!(d["override"]) : nil,
+      package:                        d["package"] ? UnionPackage.from_dynamic!(d["package"]) : nil,
+      params:                         d["params"] ? UnionParams.from_dynamic!(d["params"]) : nil,
+      pass:                           d["pass"] ? UnionPass.from_dynamic!(d["pass"]) : nil,
+      port:                           d["port"] ? UnionPort.from_dynamic!(d["port"]) : nil,
+      postfix:                        d["postfix"] ? UnionPostfix.from_dynamic!(d["postfix"]) : nil,
+      precedence:                     d["precedence"] ? UnionPrecedence.from_dynamic!(d["precedence"]) : nil,
+      prefix:                         d["prefix"] ? UnionPrefix.from_dynamic!(d["prefix"]) : nil,
+      top_level_print:                d["print"] ? UnionPrint.from_dynamic!(d["print"]) : nil,
+      top_level_printf:               d["printf"] ? UnionPrintf.from_dynamic!(d["printf"]) : nil,
+      print_members:                  d["printMembers"] ? UnionPrintMembers.from_dynamic!(d["printMembers"]) : nil,
+      private:                        d["private"] ? UnionPrivate.from_dynamic!(d["private"]) : nil,
+      protected:                      d["protected"] ? UnionProtected.from_dynamic!(d["protected"]) : nil,
+      protocol:                       d["Protocol"] ? UnionProtocol.from_dynamic!(d["Protocol"]) : nil,
+      top_level_protocol:             d["protocol"] ? UnionProtocolUnion.from_dynamic!(d["protocol"]) : nil,
+      public:                         d["public"] ? UnionPublic.from_dynamic!(d["public"]) : nil,
+      quicktype:                      d["quicktype"] ? UnionQuicktype.from_dynamic!(d["quicktype"]) : nil,
+      top_level_raise:                d["raise"] ? UnionRaise.from_dynamic!(d["raise"]) : nil,
+      range:                          d["range"] ? UnionRange.from_dynamic!(d["range"]) : nil,
+      readonly:                       d["readonly"] ? UnionReadonly.from_dynamic!(d["readonly"]) : nil,
+      ref:                            d["ref"] ? UnionRef.from_dynamic!(d["ref"]) : nil,
+      reg_exp:                        d["RegExp"] ? UnionRegExp.from_dynamic!(d["RegExp"]) : nil,
+      register:                       d["register"] ? UnionRegister.from_dynamic!(d["register"]) : nil,
+      reinterpret_cast:               d["reinterpret_cast"] ? UnionReinterpretCast.from_dynamic!(d["reinterpret_cast"]) : nil,
+      repeat:                         d["repeat"] ? UnionRepeat.from_dynamic!(d["repeat"]) : nil,
+      top_level_require:              d["require"] ? UnionRequire.from_dynamic!(d["require"]) : nil,
+      required:                       d["required"] ? UnionRequired.from_dynamic!(d["required"]) : nil,
+      requires:                       d["requires"] ? UnionRequires.from_dynamic!(d["requires"]) : nil,
+      restrict:                       d["restrict"] ? UnionRestrict.from_dynamic!(d["restrict"]) : nil,
+      retain:                         d["retain"] ? UnionRetain.from_dynamic!(d["retain"]) : nil,
+      rethrows:                       d["rethrows"] ? UnionRethrows.from_dynamic!(d["rethrows"]) : nil,
+      top_level_return:               d["return"] ? UnionReturn.from_dynamic!(d["return"]) : nil,
+      right:                          d["right"] ? UnionRight.from_dynamic!(d["right"]) : nil,
+      runtime_type:                   d["runtimeType"] ? UnionRuntimeType.from_dynamic!(d["runtimeType"]) : nil,
+      s:                              d["s"] ? UnionS.from_dynamic!(d["s"]) : nil,
+      sbyte:                          d["sbyte"] ? UnionSbyte.from_dynamic!(d["sbyte"]) : nil,
+      sealed:                         d["sealed"] ? UnionSealed.from_dynamic!(d["sealed"]) : nil,
+      sel:                            d["SEL"] ? UnionSEL.from_dynamic!(d["SEL"]) : nil,
+      top_level_select:               d["select"] ? UnionSelect.from_dynamic!(d["select"]) : nil,
+      top_level_self:                 d["Self"] ? UnionSelf.from_dynamic!(d["Self"]) : nil,
+      self_1:                         d["self"] ? UnionSelfUnion.from_dynamic!(d["self"]) : nil,
+      serialize:                      d["serialize"] ? UnionSerialize.from_dynamic!(d["serialize"]) : nil,
+      serializer_provider:            d["SerializerProvider"] ? UnionSerializerProvider.from_dynamic!(d["SerializerProvider"]) : nil,
+      set:                            d["set"] ? UnionSet.from_dynamic!(d["set"]) : nil,
+      short:                          d["short"] ? UnionShort.from_dynamic!(d["short"]) : nil,
+      signed:                         d["signed"] ? UnionSigned.from_dynamic!(d["signed"]) : nil,
+      simple_module:                  d["SimpleModule"] ? UnionSimpleModule.from_dynamic!(d["SimpleModule"]) : nil,
+      sizeof:                         d["sizeof"] ? UnionSizeof.from_dynamic!(d["sizeof"]) : nil,
+      stackalloc:                     d["stackalloc"] ? UnionStackalloc.from_dynamic!(d["stackalloc"]) : nil,
+      standards:                      d["Standards"] ? UnionStandards.from_dynamic!(d["Standards"]) : nil,
+      static:                         d["static"] ? UnionStatic.from_dynamic!(d["static"]) : nil,
+      static_assert:                  d["static_assert"] ? UnionStaticAssert.from_dynamic!(d["static_assert"]) : nil,
+      static_cast:                    d["static_cast"] ? UnionStaticCast.from_dynamic!(d["static_cast"]) : nil,
+      std_deserializer:               d["StdDeserializer"] ? UnionStdDeserializer.from_dynamic!(d["StdDeserializer"]) : nil,
+      std_serializer:                 d["StdSerializer"] ? UnionStdSerializer.from_dynamic!(d["StdSerializer"]) : nil,
+      strictfp:                       d["strictfp"] ? UnionStrictfp.from_dynamic!(d["strictfp"]) : nil,
+      string:                         d["string"] ? UnionString.from_dynamic!(d["string"]) : nil,
+      struct:                         d["struct"] ? UnionStruct.from_dynamic!(d["struct"]) : nil,
+      subscript:                      d["subscript"] ? UnionSubscript.from_dynamic!(d["subscript"]) : nil,
+      top_level_super:                d["super"] ? UnionSuper.from_dynamic!(d["super"]) : nil,
+      switch:                         d["switch"] ? UnionSwitch.from_dynamic!(d["switch"]) : nil,
+      symbol:                         d["symbol"] ? UnionSymbol.from_dynamic!(d["symbol"]) : nil,
+      synchronized:                   d["synchronized"] ? UnionSynchronized.from_dynamic!(d["synchronized"]) : nil,
+      top_level_system:               d["system"] ? UnionSystem.from_dynamic!(d["system"]) : nil,
+      template:                       d["template"] ? UnionTemplate.from_dynamic!(d["template"]) : nil,
+      top_level_then:                 d["then"] ? UnionThen.from_dynamic!(d["then"]) : nil,
+      this:                           d["this"] ? UnionThis.from_dynamic!(d["this"]) : nil,
+      thread_local:                   d["thread_local"] ? UnionThreadLocal.from_dynamic!(d["thread_local"]) : nil,
+      top_level_throw:                d["throw"] ? UnionThrow.from_dynamic!(d["throw"]) : nil,
+      throws:                         d["throws"] ? UnionThrows.from_dynamic!(d["throws"]) : nil,
+      time_only:                      d["TimeOnly"] ? UnionTimeOnly.from_dynamic!(d["TimeOnly"]) : nil,
+      time_only_converter:            d["TimeOnlyConverter"] ? UnionTimeOnlyConverter.from_dynamic!(d["TimeOnlyConverter"]) : nil,
+      top_level_to_json:              d["to_json"] ? UnionToJSON.from_dynamic!(d["to_json"]) : nil,
+      top_level:                      d["top_level"] ? UnionTopLevel.from_dynamic!(d["top_level"]) : nil,
+      to_string:                      d["toString"] ? UnionToString.from_dynamic!(d["toString"]) : nil,
+      transient:                      d["transient"] ? UnionTransient.from_dynamic!(d["transient"]) : nil,
+      top_level_true:                 d["True"] ? UnionTrue.from_dynamic!(d["True"]) : nil,
+      true_1:                         d["true"] ? UnionTrueUnion.from_dynamic!(d["true"]) : nil,
+      top_level_try:                  d["try"] ? UnionTry.from_dynamic!(d["try"]) : nil,
+      top_level_type:                 d["Type"] ? UnionType.from_dynamic!(d["Type"]) : nil,
+      type_1:                         d["type"] ? UnionTypeUnion.from_dynamic!(d["type"]) : nil,
+      typealias:                      d["typealias"] ? UnionTypealias.from_dynamic!(d["typealias"]) : nil,
+      typedef:                        d["typedef"] ? UnionTypedef.from_dynamic!(d["typedef"]) : nil,
+      typeid:                         d["typeid"] ? UnionTypeid.from_dynamic!(d["typeid"]) : nil,
+      typename:                       d["typename"] ? UnionTypename.from_dynamic!(d["typename"]) : nil,
+      typeof:                         d["typeof"] ? UnionTypeof.from_dynamic!(d["typeof"]) : nil,
+      uint:                           d["uint"] ? UnionUint.from_dynamic!(d["uint"]) : nil,
+      ulong:                          d["ulong"] ? UnionUlong.from_dynamic!(d["ulong"]) : nil,
+      unchecked:                      d["unchecked"] ? UnionUnchecked.from_dynamic!(d["unchecked"]) : nil,
+      undefined:                      d["undefined"] ? UnionUndefined.from_dynamic!(d["undefined"]) : nil,
+      union:                          d["union"] ? UnionUnionUnion.from_dynamic!(d["union"]) : nil,
+      unowned:                        d["unowned"] ? UnionUnowned.from_dynamic!(d["unowned"]) : nil,
+      unsafe:                         d["unsafe"] ? UnionUnsafe.from_dynamic!(d["unsafe"]) : nil,
+      unsigned:                       d["unsigned"] ? UnionUnsigned.from_dynamic!(d["unsigned"]) : nil,
+      ushort:                         d["ushort"] ? UnionUshort.from_dynamic!(d["ushort"]) : nil,
+      using:                          d["using"] ? UnionUsing.from_dynamic!(d["using"]) : nil,
+      utf8_json_reader:               d["Utf8JsonReader"] ? UnionUtf8JSONReader.from_dynamic!(d["Utf8JsonReader"]) : nil,
+      utf8_json_writer:               d["Utf8JsonWriter"] ? UnionUtf8JSONWriter.from_dynamic!(d["Utf8JsonWriter"]) : nil,
+      uuid:                           d["UUID"] ? UnionUUID.from_dynamic!(d["UUID"]) : nil,
+      var:                            d["var"] ? UnionVar.from_dynamic!(d["var"]) : nil,
+      virtual:                        d["virtual"] ? UnionVirtual.from_dynamic!(d["virtual"]) : nil,
+      void:                           d["void"] ? UnionVoid.from_dynamic!(d["void"]) : nil,
+      volatile:                       d["volatile"] ? UnionVolatile.from_dynamic!(d["volatile"]) : nil,
+      wchar_t:                        d["wchar_t"] ? UnionWcharT.from_dynamic!(d["wchar_t"]) : nil,
+      weak:                           d["weak"] ? UnionWeak.from_dynamic!(d["weak"]) : nil,
+      where:                          d["where"] ? UnionWhere.from_dynamic!(d["where"]) : nil,
+      top_level_while:                d["while"] ? UnionWhile.from_dynamic!(d["while"]) : nil,
+      will_set:                       d["willSet"] ? UnionWillSet.from_dynamic!(d["willSet"]) : nil,
+      top_level_with:                 d["with"] ? UnionWith.from_dynamic!(d["with"]) : nil,
+      xor:                            d["xor"] ? UnionXor.from_dynamic!(d["xor"]) : nil,
+      xor_eq:                         d["xor_eq"] ? UnionXorEq.from_dynamic!(d["xor_eq"]) : nil,
+      yes:                            d["YES"] ? UnionYES.from_dynamic!(d["YES"]) : nil,
+      top_level_yield:                d["yield"] ? UnionYield.from_dynamic!(d["yield"]) : nil,
     )
   end
 
@@ -16362,6 +18781,7 @@ class TopLevel < Dry::Struct
       "checked"                    => checked&.to_dynamic,
       "class"                      => class_1&.to_dynamic,
       "Class"                      => top_level_class&.to_dynamic,
+      "clone"                      => top_level_clone&.to_dynamic,
       "co_await"                   => co_await&.to_dynamic,
       "co_return"                  => co_return&.to_dynamic,
       "co_yield"                   => co_yield&.to_dynamic,
@@ -16376,8 +18796,14 @@ class TopLevel < Dry::Struct
       "convenience"                => convenience&.to_dynamic,
       "convert"                    => convert&.to_dynamic,
       "converter"                  => converter&.to_dynamic,
+      "CultureInfo"                => culture_info&.to_dynamic,
       "date"                       => date&.to_dynamic,
       "date_parse_handling"        => date_parse_handling&.to_dynamic,
+      "DateFormatter"              => date_formatter&.to_dynamic,
+      "DateOnly"                   => date_only&.to_dynamic,
+      "DateOnlyConverter"          => date_only_converter&.to_dynamic,
+      "DateTime"                   => date_time&.to_dynamic,
+      "DateTimeStyles"             => date_time_styles&.to_dynamic,
       "debugger"                   => debugger&.to_dynamic,
       "decimal"                    => decimal&.to_dynamic,
       "declare"                    => declare&.to_dynamic,
@@ -16402,6 +18828,8 @@ class TopLevel < Dry::Struct
       "else"                       => top_level_else&.to_dynamic,
       "encode_quick_type"          => encode_quick_type&.to_dynamic,
       "enum"                       => top_level_enum&.to_dynamic,
+      "EnumValues"                 => enum_values&.to_dynamic,
+      "equalityContract"           => equality_contract&.to_dynamic,
       "event"                      => event&.to_dynamic,
       "except"                     => except&.to_dynamic,
       "exception"                  => exception&.to_dynamic,
@@ -16421,6 +18849,7 @@ class TopLevel < Dry::Struct
       "float"                      => float&.to_dynamic,
       "for"                        => top_level_for&.to_dynamic,
       "foreach"                    => foreach&.to_dynamic,
+      "FormatException"            => format_exception&.to_dynamic,
       "friend"                     => friend&.to_dynamic,
       "from"                       => from&.to_dynamic,
       "from_json"                  => from_json&.to_dynamic,
@@ -16431,6 +18860,7 @@ class TopLevel < Dry::Struct
       "go"                         => go&.to_dynamic,
       "goto"                       => goto&.to_dynamic,
       "guard"                      => guard&.to_dynamic,
+      "hashCode"                   => hash_code&.to_dynamic,
       "hasOwnProperty"             => has_own_property&.to_dynamic,
       "id"                         => id&.to_dynamic,
       "if"                         => top_level_if&.to_dynamic,
@@ -16449,6 +18879,7 @@ class TopLevel < Dry::Struct
       "interface"                  => interface&.to_dynamic,
       "internal"                   => internal&.to_dynamic,
       "is"                         => is&.to_dynamic,
+      "IsoDateTimeOffsetConverter" => iso_date_time_offset_converter&.to_dynamic,
       "iterable"                   => iterable&.to_dynamic,
       "jdec"                       => jdec&.to_dynamic,
       "jenc"                       => jenc&.to_dynamic,
@@ -16458,6 +18889,17 @@ class TopLevel < Dry::Struct
       "json_serializer"            => json_serializer&.to_dynamic,
       "json_token"                 => json_token&.to_dynamic,
       "json_writer"                => json_writer&.to_dynamic,
+      "JSONAny"                    => json_any&.to_dynamic,
+      "JSONCodingKey"              => json_coding_key&.to_dynamic,
+      "JSONDecoder"                => json_decoder&.to_dynamic,
+      "JSONEncoder"                => json_encoder&.to_dynamic,
+      "JsonException"              => json_exception&.to_dynamic,
+      "JsonGenerator"              => json_generator&.to_dynamic,
+      "JsonNode"                   => json_node&.to_dynamic,
+      "JSONNull"                   => json_null&.to_dynamic,
+      "JsonParser"                 => json_parser&.to_dynamic,
+      "JsonReader"                 => json_reader&.to_dynamic,
+      "JsonTokenType"              => json_token_type&.to_dynamic,
       "lambda"                     => top_level_lambda&.to_dynamic,
       "lazy"                       => lazy&.to_dynamic,
       "left"                       => left&.to_dynamic,
@@ -16482,14 +18924,17 @@ class TopLevel < Dry::Struct
       "None"                       => none&.to_dynamic,
       "nonlocal"                   => nonlocal&.to_dynamic,
       "nonmutating"                => nonmutating&.to_dynamic,
+      "noSuchMethod"               => no_such_method&.to_dynamic,
       "not"                        => top_level_not&.to_dynamic,
       "not_eq"                     => not_eq&.to_dynamic,
+      "NSError"                    => ns_error&.to_dynamic,
       "NSString"                   => ns_string&.to_dynamic,
       "NULL"                       => null&.to_dynamic,
       "null"                       => top_level_null&.to_dynamic,
       "nullptr"                    => nullptr&.to_dynamic,
       "number"                     => number&.to_dynamic,
       "object"                     => object&.to_dynamic,
+      "ObjectMapper"               => object_mapper&.to_dynamic,
       "of"                         => of&.to_dynamic,
       "oneway"                     => oneway&.to_dynamic,
       "open"                       => top_level_open&.to_dynamic,
@@ -16508,6 +18953,7 @@ class TopLevel < Dry::Struct
       "prefix"                     => prefix&.to_dynamic,
       "print"                      => top_level_print&.to_dynamic,
       "printf"                     => top_level_printf&.to_dynamic,
+      "printMembers"               => print_members&.to_dynamic,
       "private"                    => private&.to_dynamic,
       "protected"                  => protected&.to_dynamic,
       "Protocol"                   => protocol&.to_dynamic,
@@ -16518,6 +18964,7 @@ class TopLevel < Dry::Struct
       "range"                      => range&.to_dynamic,
       "readonly"                   => readonly&.to_dynamic,
       "ref"                        => ref&.to_dynamic,
+      "RegExp"                     => reg_exp&.to_dynamic,
       "register"                   => register&.to_dynamic,
       "reinterpret_cast"           => reinterpret_cast&.to_dynamic,
       "repeat"                     => repeat&.to_dynamic,
@@ -16529,6 +18976,8 @@ class TopLevel < Dry::Struct
       "rethrows"                   => rethrows&.to_dynamic,
       "return"                     => top_level_return&.to_dynamic,
       "right"                      => right&.to_dynamic,
+      "runtimeType"                => runtime_type&.to_dynamic,
+      "s"                          => s&.to_dynamic,
       "sbyte"                      => sbyte&.to_dynamic,
       "sealed"                     => sealed&.to_dynamic,
       "SEL"                        => sel&.to_dynamic,
@@ -16536,14 +18985,19 @@ class TopLevel < Dry::Struct
       "Self"                       => top_level_self&.to_dynamic,
       "self"                       => self_1&.to_dynamic,
       "serialize"                  => serialize&.to_dynamic,
+      "SerializerProvider"         => serializer_provider&.to_dynamic,
       "set"                        => set&.to_dynamic,
       "short"                      => short&.to_dynamic,
       "signed"                     => signed&.to_dynamic,
+      "SimpleModule"               => simple_module&.to_dynamic,
       "sizeof"                     => sizeof&.to_dynamic,
       "stackalloc"                 => stackalloc&.to_dynamic,
+      "Standards"                  => standards&.to_dynamic,
       "static"                     => static&.to_dynamic,
       "static_assert"              => static_assert&.to_dynamic,
       "static_cast"                => static_cast&.to_dynamic,
+      "StdDeserializer"            => std_deserializer&.to_dynamic,
+      "StdSerializer"              => std_serializer&.to_dynamic,
       "strictfp"                   => strictfp&.to_dynamic,
       "string"                     => string&.to_dynamic,
       "struct"                     => struct&.to_dynamic,
@@ -16559,8 +19013,11 @@ class TopLevel < Dry::Struct
       "thread_local"               => thread_local&.to_dynamic,
       "throw"                      => top_level_throw&.to_dynamic,
       "throws"                     => throws&.to_dynamic,
+      "TimeOnly"                   => time_only&.to_dynamic,
+      "TimeOnlyConverter"          => time_only_converter&.to_dynamic,
       "to_json"                    => top_level_to_json&.to_dynamic,
       "top_level"                  => top_level&.to_dynamic,
+      "toString"                   => to_string&.to_dynamic,
       "transient"                  => transient&.to_dynamic,
       "True"                       => top_level_true&.to_dynamic,
       "true"                       => true_1&.to_dynamic,
@@ -16582,6 +19039,9 @@ class TopLevel < Dry::Struct
       "unsigned"                   => unsigned&.to_dynamic,
       "ushort"                     => ushort&.to_dynamic,
       "using"                      => using&.to_dynamic,
+      "Utf8JsonReader"             => utf8_json_reader&.to_dynamic,
+      "Utf8JsonWriter"             => utf8_json_writer&.to_dynamic,
+      "UUID"                       => uuid&.to_dynamic,
       "var"                        => var&.to_dynamic,
       "virtual"                    => virtual&.to_dynamic,
       "void"                       => void&.to_dynamic,
diff --git a/base/schema-ruby-syntax/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb b/head/schema-ruby-syntax/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
index e97d682..64ef3cb 100644
--- a/base/schema-ruby-syntax/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
+++ b/head/schema-ruby-syntax/test/inputs/schema/keyword-unions.schema/default/TopLevel.rb
@@ -2698,7 +2698,7 @@ class UnionConverter < Dry::Struct
   end
 end
 
-class DateClass < Dry::Struct
+class CultureInfo < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2720,20 +2720,20 @@ class DateClass < Dry::Struct
   end
 end
 
-class UnionDate < Dry::Struct
-  attribute :date_class, DateClass.optional
-  attribute :double,     Types::Double.optional
+class UnionCultureInfo < Dry::Struct
+  attribute :culture_info, CultureInfo.optional
+  attribute :double,       Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DateClass.from_dynamic!(d)
-      if schema.key(:date_class).type.right.valid? value
-        return new(date_class: value, double: nil)
+      value = CultureInfo.from_dynamic!(d)
+      if schema.key(:culture_info).type.right.valid? value
+        return new(culture_info: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, date_class: nil)
+      return new(double: d, culture_info: nil)
     end
     raise "Invalid union"
   end
@@ -2743,8 +2743,8 @@ class UnionDate < Dry::Struct
   end
 
   def to_dynamic
-    if date_class != nil
-      date_class.to_dynamic
+    if culture_info != nil
+      culture_info.to_dynamic
     elsif double != nil
       double
     end
@@ -2755,7 +2755,7 @@ class UnionDate < Dry::Struct
   end
 end
 
-class DateParseHandling < Dry::Struct
+class DateClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2777,20 +2777,20 @@ class DateParseHandling < Dry::Struct
   end
 end
 
-class UnionDateParseHandling < Dry::Struct
-  attribute :date_parse_handling, DateParseHandling.optional
-  attribute :double,              Types::Double.optional
+class UnionDate < Dry::Struct
+  attribute :date_class, DateClass.optional
+  attribute :double,     Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DateParseHandling.from_dynamic!(d)
-      if schema.key(:date_parse_handling).type.right.valid? value
-        return new(date_parse_handling: value, double: nil)
+      value = DateClass.from_dynamic!(d)
+      if schema.key(:date_class).type.right.valid? value
+        return new(date_class: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, date_parse_handling: nil)
+      return new(double: d, date_class: nil)
     end
     raise "Invalid union"
   end
@@ -2800,8 +2800,8 @@ class UnionDateParseHandling < Dry::Struct
   end
 
   def to_dynamic
-    if date_parse_handling != nil
-      date_parse_handling.to_dynamic
+    if date_class != nil
+      date_class.to_dynamic
     elsif double != nil
       double
     end
@@ -2812,7 +2812,7 @@ class UnionDateParseHandling < Dry::Struct
   end
 end
 
-class Debugger < Dry::Struct
+class DateFormatter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2834,20 +2834,20 @@ class Debugger < Dry::Struct
   end
 end
 
-class UnionDebugger < Dry::Struct
-  attribute :debugger, Debugger.optional
-  attribute :double,   Types::Double.optional
+class UnionDateFormatter < Dry::Struct
+  attribute :date_formatter, DateFormatter.optional
+  attribute :double,         Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Debugger.from_dynamic!(d)
-      if schema.key(:debugger).type.right.valid? value
-        return new(debugger: value, double: nil)
+      value = DateFormatter.from_dynamic!(d)
+      if schema.key(:date_formatter).type.right.valid? value
+        return new(date_formatter: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, debugger: nil)
+      return new(double: d, date_formatter: nil)
     end
     raise "Invalid union"
   end
@@ -2857,8 +2857,8 @@ class UnionDebugger < Dry::Struct
   end
 
   def to_dynamic
-    if debugger != nil
-      debugger.to_dynamic
+    if date_formatter != nil
+      date_formatter.to_dynamic
     elsif double != nil
       double
     end
@@ -2869,7 +2869,7 @@ class UnionDebugger < Dry::Struct
   end
 end
 
-class Decimal < Dry::Struct
+class DateOnly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2891,20 +2891,20 @@ class Decimal < Dry::Struct
   end
 end
 
-class UnionDecimal < Dry::Struct
-  attribute :decimal, Decimal.optional
-  attribute :double,  Types::Double.optional
+class UnionDateOnly < Dry::Struct
+  attribute :date_only, DateOnly.optional
+  attribute :double,    Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Decimal.from_dynamic!(d)
-      if schema.key(:decimal).type.right.valid? value
-        return new(decimal: value, double: nil)
+      value = DateOnly.from_dynamic!(d)
+      if schema.key(:date_only).type.right.valid? value
+        return new(date_only: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decimal: nil)
+      return new(double: d, date_only: nil)
     end
     raise "Invalid union"
   end
@@ -2914,8 +2914,8 @@ class UnionDecimal < Dry::Struct
   end
 
   def to_dynamic
-    if decimal != nil
-      decimal.to_dynamic
+    if date_only != nil
+      date_only.to_dynamic
     elsif double != nil
       double
     end
@@ -2926,7 +2926,7 @@ class UnionDecimal < Dry::Struct
   end
 end
 
-class Declare < Dry::Struct
+class DateOnlyConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -2948,20 +2948,20 @@ class Declare < Dry::Struct
   end
 end
 
-class UnionDeclare < Dry::Struct
-  attribute :declare, Declare.optional
-  attribute :double,  Types::Double.optional
+class UnionDateOnlyConverter < Dry::Struct
+  attribute :date_only_converter, DateOnlyConverter.optional
+  attribute :double,              Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Declare.from_dynamic!(d)
-      if schema.key(:declare).type.right.valid? value
-        return new(declare: value, double: nil)
+      value = DateOnlyConverter.from_dynamic!(d)
+      if schema.key(:date_only_converter).type.right.valid? value
+        return new(date_only_converter: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, declare: nil)
+      return new(double: d, date_only_converter: nil)
     end
     raise "Invalid union"
   end
@@ -2971,8 +2971,8 @@ class UnionDeclare < Dry::Struct
   end
 
   def to_dynamic
-    if declare != nil
-      declare.to_dynamic
+    if date_only_converter != nil
+      date_only_converter.to_dynamic
     elsif double != nil
       double
     end
@@ -2983,7 +2983,7 @@ class UnionDeclare < Dry::Struct
   end
 end
 
-class Decltype < Dry::Struct
+class DateParseHandling < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3005,20 +3005,20 @@ class Decltype < Dry::Struct
   end
 end
 
-class UnionDecltype < Dry::Struct
-  attribute :decltype, Decltype.optional
-  attribute :double,   Types::Double.optional
+class UnionDateParseHandling < Dry::Struct
+  attribute :date_parse_handling, DateParseHandling.optional
+  attribute :double,              Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Decltype.from_dynamic!(d)
-      if schema.key(:decltype).type.right.valid? value
-        return new(decltype: value, double: nil)
+      value = DateParseHandling.from_dynamic!(d)
+      if schema.key(:date_parse_handling).type.right.valid? value
+        return new(date_parse_handling: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decltype: nil)
+      return new(double: d, date_parse_handling: nil)
     end
     raise "Invalid union"
   end
@@ -3028,8 +3028,8 @@ class UnionDecltype < Dry::Struct
   end
 
   def to_dynamic
-    if decltype != nil
-      decltype.to_dynamic
+    if date_parse_handling != nil
+      date_parse_handling.to_dynamic
     elsif double != nil
       double
     end
@@ -3040,7 +3040,7 @@ class UnionDecltype < Dry::Struct
   end
 end
 
-class DecodeString < Dry::Struct
+class DateTimeClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3062,20 +3062,20 @@ class DecodeString < Dry::Struct
   end
 end
 
-class UnionDecodeString < Dry::Struct
-  attribute :decode_string, DecodeString.optional
-  attribute :double,        Types::Double.optional
+class UnionDateTime < Dry::Struct
+  attribute :date_time_class, DateTimeClass.optional
+  attribute :double,          Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DecodeString.from_dynamic!(d)
-      if schema.key(:decode_string).type.right.valid? value
-        return new(decode_string: value, double: nil)
+      value = DateTimeClass.from_dynamic!(d)
+      if schema.key(:date_time_class).type.right.valid? value
+        return new(date_time_class: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, decode_string: nil)
+      return new(double: d, date_time_class: nil)
     end
     raise "Invalid union"
   end
@@ -3085,8 +3085,8 @@ class UnionDecodeString < Dry::Struct
   end
 
   def to_dynamic
-    if decode_string != nil
-      decode_string.to_dynamic
+    if date_time_class != nil
+      date_time_class.to_dynamic
     elsif double != nil
       double
     end
@@ -3097,7 +3097,7 @@ class UnionDecodeString < Dry::Struct
   end
 end
 
-class Defer < Dry::Struct
+class DateTimeStyles < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3119,20 +3119,20 @@ class Defer < Dry::Struct
   end
 end
 
-class UnionDefer < Dry::Struct
-  attribute :defer,  Defer.optional
-  attribute :double, Types::Double.optional
+class UnionDateTimeStyles < Dry::Struct
+  attribute :date_time_styles, DateTimeStyles.optional
+  attribute :double,           Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Defer.from_dynamic!(d)
-      if schema.key(:defer).type.right.valid? value
-        return new(defer: value, double: nil)
+      value = DateTimeStyles.from_dynamic!(d)
+      if schema.key(:date_time_styles).type.right.valid? value
+        return new(date_time_styles: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, defer: nil)
+      return new(double: d, date_time_styles: nil)
     end
     raise "Invalid union"
   end
@@ -3142,8 +3142,8 @@ class UnionDefer < Dry::Struct
   end
 
   def to_dynamic
-    if defer != nil
-      defer.to_dynamic
+    if date_time_styles != nil
+      date_time_styles.to_dynamic
     elsif double != nil
       double
     end
@@ -3154,7 +3154,7 @@ class UnionDefer < Dry::Struct
   end
 end
 
-class Deinit < Dry::Struct
+class Debugger < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3176,20 +3176,20 @@ class Deinit < Dry::Struct
   end
 end
 
-class UnionDeinit < Dry::Struct
-  attribute :deinit, Deinit.optional
-  attribute :double, Types::Double.optional
+class UnionDebugger < Dry::Struct
+  attribute :debugger, Debugger.optional
+  attribute :double,   Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Deinit.from_dynamic!(d)
-      if schema.key(:deinit).type.right.valid? value
-        return new(deinit: value, double: nil)
+      value = Debugger.from_dynamic!(d)
+      if schema.key(:debugger).type.right.valid? value
+        return new(debugger: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, deinit: nil)
+      return new(double: d, debugger: nil)
     end
     raise "Invalid union"
   end
@@ -3199,8 +3199,8 @@ class UnionDeinit < Dry::Struct
   end
 
   def to_dynamic
-    if deinit != nil
-      deinit.to_dynamic
+    if debugger != nil
+      debugger.to_dynamic
     elsif double != nil
       double
     end
@@ -3211,7 +3211,7 @@ class UnionDeinit < Dry::Struct
   end
 end
 
-class Del < Dry::Struct
+class Decimal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3233,20 +3233,20 @@ class Del < Dry::Struct
   end
 end
 
-class UnionDel < Dry::Struct
-  attribute :del,    Del.optional
-  attribute :double, Types::Double.optional
+class UnionDecimal < Dry::Struct
+  attribute :decimal, Decimal.optional
+  attribute :double,  Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Del.from_dynamic!(d)
-      if schema.key(:del).type.right.valid? value
-        return new(del: value, double: nil)
+      value = Decimal.from_dynamic!(d)
+      if schema.key(:decimal).type.right.valid? value
+        return new(decimal: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, del: nil)
+      return new(double: d, decimal: nil)
     end
     raise "Invalid union"
   end
@@ -3256,8 +3256,8 @@ class UnionDel < Dry::Struct
   end
 
   def to_dynamic
-    if del != nil
-      del.to_dynamic
+    if decimal != nil
+      decimal.to_dynamic
     elsif double != nil
       double
     end
@@ -3268,7 +3268,7 @@ class UnionDel < Dry::Struct
   end
 end
 
-class Delegate < Dry::Struct
+class Declare < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3290,20 +3290,20 @@ class Delegate < Dry::Struct
   end
 end
 
-class UnionDelegate < Dry::Struct
-  attribute :delegate, Delegate.optional
-  attribute :double,   Types::Double.optional
+class UnionDeclare < Dry::Struct
+  attribute :declare, Declare.optional
+  attribute :double,  Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Delegate.from_dynamic!(d)
-      if schema.key(:delegate).type.right.valid? value
-        return new(delegate: value, double: nil)
+      value = Declare.from_dynamic!(d)
+      if schema.key(:declare).type.right.valid? value
+        return new(declare: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, delegate: nil)
+      return new(double: d, declare: nil)
     end
     raise "Invalid union"
   end
@@ -3313,8 +3313,8 @@ class UnionDelegate < Dry::Struct
   end
 
   def to_dynamic
-    if delegate != nil
-      delegate.to_dynamic
+    if declare != nil
+      declare.to_dynamic
     elsif double != nil
       double
     end
@@ -3325,7 +3325,7 @@ class UnionDelegate < Dry::Struct
   end
 end
 
-class Delete < Dry::Struct
+class Decltype < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3347,20 +3347,20 @@ class Delete < Dry::Struct
   end
 end
 
-class UnionDelete < Dry::Struct
-  attribute :delete, Delete.optional
-  attribute :double, Types::Double.optional
+class UnionDecltype < Dry::Struct
+  attribute :decltype, Decltype.optional
+  attribute :double,   Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Delete.from_dynamic!(d)
-      if schema.key(:delete).type.right.valid? value
-        return new(delete: value, double: nil)
+      value = Decltype.from_dynamic!(d)
+      if schema.key(:decltype).type.right.valid? value
+        return new(decltype: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, delete: nil)
+      return new(double: d, decltype: nil)
     end
     raise "Invalid union"
   end
@@ -3370,8 +3370,8 @@ class UnionDelete < Dry::Struct
   end
 
   def to_dynamic
-    if delete != nil
-      delete.to_dynamic
+    if decltype != nil
+      decltype.to_dynamic
     elsif double != nil
       double
     end
@@ -3382,7 +3382,7 @@ class UnionDelete < Dry::Struct
   end
 end
 
-class Dict < Dry::Struct
+class DecodeString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3404,20 +3404,20 @@ class Dict < Dry::Struct
   end
 end
 
-class UnionDict < Dry::Struct
-  attribute :dict,   Dict.optional
-  attribute :double, Types::Double.optional
+class UnionDecodeString < Dry::Struct
+  attribute :decode_string, DecodeString.optional
+  attribute :double,        Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Dict.from_dynamic!(d)
-      if schema.key(:dict).type.right.valid? value
-        return new(dict: value, double: nil)
+      value = DecodeString.from_dynamic!(d)
+      if schema.key(:decode_string).type.right.valid? value
+        return new(decode_string: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dict: nil)
+      return new(double: d, decode_string: nil)
     end
     raise "Invalid union"
   end
@@ -3427,8 +3427,8 @@ class UnionDict < Dry::Struct
   end
 
   def to_dynamic
-    if dict != nil
-      dict.to_dynamic
+    if decode_string != nil
+      decode_string.to_dynamic
     elsif double != nil
       double
     end
@@ -3439,7 +3439,7 @@ class UnionDict < Dry::Struct
   end
 end
 
-class Dictionary < Dry::Struct
+class Defer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3461,20 +3461,20 @@ class Dictionary < Dry::Struct
   end
 end
 
-class UnionDictionary < Dry::Struct
-  attribute :dictionary, Dictionary.optional
-  attribute :double,     Types::Double.optional
+class UnionDefer < Dry::Struct
+  attribute :defer,  Defer.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = Dictionary.from_dynamic!(d)
-      if schema.key(:dictionary).type.right.valid? value
-        return new(dictionary: value, double: nil)
+      value = Defer.from_dynamic!(d)
+      if schema.key(:defer).type.right.valid? value
+        return new(defer: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dictionary: nil)
+      return new(double: d, defer: nil)
     end
     raise "Invalid union"
   end
@@ -3484,8 +3484,8 @@ class UnionDictionary < Dry::Struct
   end
 
   def to_dynamic
-    if dictionary != nil
-      dictionary.to_dynamic
+    if defer != nil
+      defer.to_dynamic
     elsif double != nil
       double
     end
@@ -3496,7 +3496,7 @@ class UnionDictionary < Dry::Struct
   end
 end
 
-class DidSet < Dry::Struct
+class Deinit < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3518,20 +3518,20 @@ class DidSet < Dry::Struct
   end
 end
 
-class UnionDidSet < Dry::Struct
-  attribute :did_set, DidSet.optional
-  attribute :double,  Types::Double.optional
+class UnionDeinit < Dry::Struct
+  attribute :deinit, Deinit.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
     begin
-      value = DidSet.from_dynamic!(d)
-      if schema.key(:did_set).type.right.valid? value
-        return new(did_set: value, double: nil)
+      value = Deinit.from_dynamic!(d)
+      if schema.key(:deinit).type.right.valid? value
+        return new(deinit: value, double: nil)
       end
     rescue
     end
     if schema.key(:double).type.right.valid? d
-      return new(double: d, did_set: nil)
+      return new(double: d, deinit: nil)
     end
     raise "Invalid union"
   end
@@ -3541,8 +3541,8 @@ class UnionDidSet < Dry::Struct
   end
 
   def to_dynamic
-    if did_set != nil
-      did_set.to_dynamic
+    if deinit != nil
+      deinit.to_dynamic
     elsif double != nil
       double
     end
@@ -3553,7 +3553,7 @@ class UnionDidSet < Dry::Struct
   end
 end
 
-class Double < Dry::Struct
+class Del < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3575,18 +3575,1956 @@ class Double < Dry::Struct
   end
 end
 
-class UnionDouble < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :double_1, Double.optional
+class UnionDel < Dry::Struct
+  attribute :del,    Del.optional
+  attribute :double, Types::Double.optional
 
   def self.from_dynamic!(d)
-    if schema.key(:double).type.right.valid? d
-      return new(double: d, double_1: nil)
+    begin
+      value = Del.from_dynamic!(d)
+      if schema.key(:del).type.right.valid? value
+        return new(del: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, del: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if del != nil
+      del.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Delegate < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDelegate < Dry::Struct
+  attribute :delegate, Delegate.optional
+  attribute :double,   Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Delegate.from_dynamic!(d)
+      if schema.key(:delegate).type.right.valid? value
+        return new(delegate: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, delegate: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if delegate != nil
+      delegate.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Delete < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDelete < Dry::Struct
+  attribute :delete, Delete.optional
+  attribute :double, Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Delete.from_dynamic!(d)
+      if schema.key(:delete).type.right.valid? value
+        return new(delete: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, delete: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if delete != nil
+      delete.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dict < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDict < Dry::Struct
+  attribute :dict,   Dict.optional
+  attribute :double, Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Dict.from_dynamic!(d)
+      if schema.key(:dict).type.right.valid? value
+        return new(dict: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dict: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if dict != nil
+      dict.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dictionary < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDictionary < Dry::Struct
+  attribute :dictionary, Dictionary.optional
+  attribute :double,     Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Dictionary.from_dynamic!(d)
+      if schema.key(:dictionary).type.right.valid? value
+        return new(dictionary: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dictionary: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if dictionary != nil
+      dictionary.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DidSet < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDidSet < Dry::Struct
+  attribute :did_set, DidSet.optional
+  attribute :double,  Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = DidSet.from_dynamic!(d)
+      if schema.key(:did_set).type.right.valid? value
+        return new(did_set: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, did_set: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if did_set != nil
+      did_set.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Double < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDouble < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :double_1, Double.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, double_1: nil)
+    end
+    begin
+      value = Double.from_dynamic!(d)
+      if schema.key(:double_1).type.right.valid? value
+        return new(double_1: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif double_1 != nil
+      double_1.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Dynamic < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDynamic < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :dynamic, Dynamic.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dynamic: nil)
+    end
+    begin
+      value = Dynamic.from_dynamic!(d)
+      if schema.key(:dynamic).type.right.valid? value
+        return new(dynamic: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif dynamic != nil
+      dynamic.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class DynamicCast < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionDynamicCast < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :dynamic_cast, DynamicCast.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, dynamic_cast: nil)
+    end
+    begin
+      value = DynamicCast.from_dynamic!(d)
+      if schema.key(:dynamic_cast).type.right.valid? value
+        return new(dynamic_cast: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif dynamic_cast != nil
+      dynamic_cast.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Elif < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionElif < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :elif,   Elif.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, elif: nil)
+    end
+    begin
+      value = Elif.from_dynamic!(d)
+      if schema.key(:elif).type.right.valid? value
+        return new(elif: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif elif != nil
+      elif.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Empty < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUnion < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :empty,  Empty.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, empty: nil)
+    end
+    begin
+      value = Empty.from_dynamic!(d)
+      if schema.key(:empty).type.right.valid? value
+        return new(empty: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif empty != nil
+      empty.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EncodeQuickType < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEncodeQuickType < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :encode_quick_type, EncodeQuickType.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, encode_quick_type: nil)
+    end
+    begin
+      value = EncodeQuickType.from_dynamic!(d)
+      if schema.key(:encode_quick_type).type.right.valid? value
+        return new(encode_quick_type: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif encode_quick_type != nil
+      encode_quick_type.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EnumValues < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEnumValues < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :enum_values, EnumValues.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, enum_values: nil)
+    end
+    begin
+      value = EnumValues.from_dynamic!(d)
+      if schema.key(:enum_values).type.right.valid? value
+        return new(enum_values: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif enum_values != nil
+      enum_values.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class EqualityContract < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEqualityContract < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :equality_contract, EqualityContract.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, equality_contract: nil)
+    end
+    begin
+      value = EqualityContract.from_dynamic!(d)
+      if schema.key(:equality_contract).type.right.valid? value
+        return new(equality_contract: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif equality_contract != nil
+      equality_contract.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Event < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionEvent < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :event,  Event.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, event: nil)
+    end
+    begin
+      value = Event.from_dynamic!(d)
+      if schema.key(:event).type.right.valid? value
+        return new(event: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif event != nil
+      event.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Except < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExcept < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :except, Except.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, except: nil)
+    end
+    begin
+      value = Except.from_dynamic!(d)
+      if schema.key(:except).type.right.valid? value
+        return new(except: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif except != nil
+      except.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class ExceptionClass < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionException < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :exception_class, ExceptionClass.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, exception_class: nil)
+    end
+    begin
+      value = ExceptionClass.from_dynamic!(d)
+      if schema.key(:exception_class).type.right.valid? value
+        return new(exception_class: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif exception_class != nil
+      exception_class.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Explicit < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExplicit < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :explicit, Explicit.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, explicit: nil)
+    end
+    begin
+      value = Explicit.from_dynamic!(d)
+      if schema.key(:explicit).type.right.valid? value
+        return new(explicit: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif explicit != nil
+      explicit.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Export < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExport < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :export, Export.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, export: nil)
+    end
+    begin
+      value = Export.from_dynamic!(d)
+      if schema.key(:export).type.right.valid? value
+        return new(export: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif export != nil
+      export.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Exposing < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExposing < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :exposing, Exposing.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, exposing: nil)
+    end
+    begin
+      value = Exposing.from_dynamic!(d)
+      if schema.key(:exposing).type.right.valid? value
+        return new(exposing: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif exposing != nil
+      exposing.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extends < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtends < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :extends, Extends.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extends: nil)
+    end
+    begin
+      value = Extends.from_dynamic!(d)
+      if schema.key(:extends).type.right.valid? value
+        return new(extends: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extends != nil
+      extends.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extension < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtension < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :extension, Extension.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extension: nil)
+    end
+    begin
+      value = Extension.from_dynamic!(d)
+      if schema.key(:extension).type.right.valid? value
+        return new(extension: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extension != nil
+      extension.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Extern < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionExtern < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :extern, Extern.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, extern: nil)
+    end
+    begin
+      value = Extern.from_dynamic!(d)
+      if schema.key(:extern).type.right.valid? value
+        return new(extern: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif extern != nil
+      extern.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fallthrough < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFallthrough < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :fallthrough, Fallthrough.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fallthrough: nil)
+    end
+    begin
+      value = Fallthrough.from_dynamic!(d)
+      if schema.key(:fallthrough).type.right.valid? value
+        return new(fallthrough: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fallthrough != nil
+      fallthrough.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFalseFalse < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFalseUnion < Dry::Struct
+  attribute :double,            Types::Double.optional
+  attribute :union_false_false, UnionFalseFalse.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, union_false_false: nil)
+    end
+    begin
+      value = UnionFalseFalse.from_dynamic!(d)
+      if schema.key(:union_false_false).type.right.valid? value
+        return new(union_false_false: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif union_false_false != nil
+      union_false_false.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fileprivate < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFileprivate < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :fileprivate, Fileprivate.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fileprivate: nil)
+    end
+    begin
+      value = Fileprivate.from_dynamic!(d)
+      if schema.key(:fileprivate).type.right.valid? value
+        return new(fileprivate: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fileprivate != nil
+      fileprivate.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Final < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFinal < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :final,  Final.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, final: nil)
+    end
+    begin
+      value = Final.from_dynamic!(d)
+      if schema.key(:final).type.right.valid? value
+        return new(final: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif final != nil
+      final.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Finally < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFinally < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :finally, Finally.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, finally: nil)
+    end
+    begin
+      value = Finally.from_dynamic!(d)
+      if schema.key(:finally).type.right.valid? value
+        return new(finally: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif finally != nil
+      finally.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Fixed < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFixed < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :fixed,  Fixed.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, fixed: nil)
+    end
+    begin
+      value = Fixed.from_dynamic!(d)
+      if schema.key(:fixed).type.right.valid? value
+        return new(fixed: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif fixed != nil
+      fixed.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FloatClass < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFloat < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :float_class, FloatClass.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, float_class: nil)
+    end
+    begin
+      value = FloatClass.from_dynamic!(d)
+      if schema.key(:float_class).type.right.valid? value
+        return new(float_class: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif float_class != nil
+      float_class.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Foreach < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionForeach < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :foreach, Foreach.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, foreach: nil)
+    end
+    begin
+      value = Foreach.from_dynamic!(d)
+      if schema.key(:foreach).type.right.valid? value
+        return new(foreach: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif foreach != nil
+      foreach.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FormatException < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFormatException < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :format_exception, FormatException.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, format_exception: nil)
+    end
+    begin
+      value = FormatException.from_dynamic!(d)
+      if schema.key(:format_exception).type.right.valid? value
+        return new(format_exception: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif format_exception != nil
+      format_exception.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Friend < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFriend < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :friend, Friend.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, friend: nil)
+    end
+    begin
+      value = Friend.from_dynamic!(d)
+      if schema.key(:friend).type.right.valid? value
+        return new(friend: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif friend != nil
+      friend.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class From < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFrom < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :from,   From.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, from: nil)
+    end
+    begin
+      value = From.from_dynamic!(d)
+      if schema.key(:from).type.right.valid? value
+        return new(from: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif from != nil
+      from.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class FromJSON < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionFromJSON < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :from_json, FromJSON.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, from_json: nil)
     end
     begin
-      value = Double.from_dynamic!(d)
-      if schema.key(:double_1).type.right.valid? value
-        return new(double_1: value, double: nil)
+      value = FromJSON.from_dynamic!(d)
+      if schema.key(:from_json).type.right.valid? value
+        return new(from_json: value, double: nil)
       end
     rescue
     end
@@ -3600,8 +5538,8 @@ class UnionDouble < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif double_1 != nil
-      double_1.to_dynamic
+    elsif from_json != nil
+      from_json.to_dynamic
     end
   end
 
@@ -3610,7 +5548,7 @@ class UnionDouble < Dry::Struct
   end
 end
 
-class Dynamic < Dry::Struct
+class Func < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3632,18 +5570,18 @@ class Dynamic < Dry::Struct
   end
 end
 
-class UnionDynamic < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :dynamic, Dynamic.optional
+class UnionFunc < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :func,   Func.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dynamic: nil)
+      return new(double: d, func: nil)
     end
     begin
-      value = Dynamic.from_dynamic!(d)
-      if schema.key(:dynamic).type.right.valid? value
-        return new(dynamic: value, double: nil)
+      value = Func.from_dynamic!(d)
+      if schema.key(:func).type.right.valid? value
+        return new(func: value, double: nil)
       end
     rescue
     end
@@ -3657,8 +5595,8 @@ class UnionDynamic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif dynamic != nil
-      dynamic.to_dynamic
+    elsif func != nil
+      func.to_dynamic
     end
   end
 
@@ -3667,7 +5605,7 @@ class UnionDynamic < Dry::Struct
   end
 end
 
-class DynamicCast < Dry::Struct
+class Function < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3689,18 +5627,18 @@ class DynamicCast < Dry::Struct
   end
 end
 
-class UnionDynamicCast < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :dynamic_cast, DynamicCast.optional
+class UnionFunction < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :function, Function.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, dynamic_cast: nil)
+      return new(double: d, function: nil)
     end
     begin
-      value = DynamicCast.from_dynamic!(d)
-      if schema.key(:dynamic_cast).type.right.valid? value
-        return new(dynamic_cast: value, double: nil)
+      value = Function.from_dynamic!(d)
+      if schema.key(:function).type.right.valid? value
+        return new(function: value, double: nil)
       end
     rescue
     end
@@ -3714,8 +5652,8 @@ class UnionDynamicCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif dynamic_cast != nil
-      dynamic_cast.to_dynamic
+    elsif function != nil
+      function.to_dynamic
     end
   end
 
@@ -3724,7 +5662,7 @@ class UnionDynamicCast < Dry::Struct
   end
 end
 
-class Elif < Dry::Struct
+class Get < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3746,18 +5684,18 @@ class Elif < Dry::Struct
   end
 end
 
-class UnionElif < Dry::Struct
+class UnionGet < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :elif,   Elif.optional
+  attribute :get,    Get.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, elif: nil)
+      return new(double: d, get: nil)
     end
     begin
-      value = Elif.from_dynamic!(d)
-      if schema.key(:elif).type.right.valid? value
-        return new(elif: value, double: nil)
+      value = Get.from_dynamic!(d)
+      if schema.key(:get).type.right.valid? value
+        return new(get: value, double: nil)
       end
     rescue
     end
@@ -3771,8 +5709,8 @@ class UnionElif < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif elif != nil
-      elif.to_dynamic
+    elsif get != nil
+      get.to_dynamic
     end
   end
 
@@ -3781,7 +5719,7 @@ class UnionElif < Dry::Struct
   end
 end
 
-class Empty < Dry::Struct
+class Global < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3803,18 +5741,18 @@ class Empty < Dry::Struct
   end
 end
 
-class UnionUnion < Dry::Struct
+class UnionGlobal < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :empty,  Empty.optional
+  attribute :global, Global.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, empty: nil)
+      return new(double: d, global: nil)
     end
     begin
-      value = Empty.from_dynamic!(d)
-      if schema.key(:empty).type.right.valid? value
-        return new(empty: value, double: nil)
+      value = Global.from_dynamic!(d)
+      if schema.key(:global).type.right.valid? value
+        return new(global: value, double: nil)
       end
     rescue
     end
@@ -3828,8 +5766,179 @@ class UnionUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif empty != nil
-      empty.to_dynamic
+    elsif global != nil
+      global.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Go < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGo < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :go,     Go.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, go: nil)
+    end
+    begin
+      value = Go.from_dynamic!(d)
+      if schema.key(:go).type.right.valid? value
+        return new(go: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif go != nil
+      go.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Goto < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGoto < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :goto,   Goto.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, goto: nil)
+    end
+    begin
+      value = Goto.from_dynamic!(d)
+      if schema.key(:goto).type.right.valid? value
+        return new(goto: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif goto != nil
+      goto.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Guard < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionGuard < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :guard,  Guard.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, guard: nil)
+    end
+    begin
+      value = Guard.from_dynamic!(d)
+      if schema.key(:guard).type.right.valid? value
+        return new(guard: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif guard != nil
+      guard.to_dynamic
     end
   end
 
@@ -3838,7 +5947,7 @@ class UnionUnion < Dry::Struct
   end
 end
 
-class EncodeQuickType < Dry::Struct
+class HasOwnProperty < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3860,18 +5969,18 @@ class EncodeQuickType < Dry::Struct
   end
 end
 
-class UnionEncodeQuickType < Dry::Struct
-  attribute :double,            Types::Double.optional
-  attribute :encode_quick_type, EncodeQuickType.optional
+class UnionHasOwnProperty < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :has_own_property, HasOwnProperty.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, encode_quick_type: nil)
+      return new(double: d, has_own_property: nil)
     end
     begin
-      value = EncodeQuickType.from_dynamic!(d)
-      if schema.key(:encode_quick_type).type.right.valid? value
-        return new(encode_quick_type: value, double: nil)
+      value = HasOwnProperty.from_dynamic!(d)
+      if schema.key(:has_own_property).type.right.valid? value
+        return new(has_own_property: value, double: nil)
       end
     rescue
     end
@@ -3885,8 +5994,8 @@ class UnionEncodeQuickType < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif encode_quick_type != nil
-      encode_quick_type.to_dynamic
+    elsif has_own_property != nil
+      has_own_property.to_dynamic
     end
   end
 
@@ -3895,7 +6004,7 @@ class UnionEncodeQuickType < Dry::Struct
   end
 end
 
-class Event < Dry::Struct
+class HashCode < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3917,18 +6026,18 @@ class Event < Dry::Struct
   end
 end
 
-class UnionEvent < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :event,  Event.optional
+class UnionHashCode < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :hash_code, HashCode.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, event: nil)
+      return new(double: d, hash_code: nil)
     end
     begin
-      value = Event.from_dynamic!(d)
-      if schema.key(:event).type.right.valid? value
-        return new(event: value, double: nil)
+      value = HashCode.from_dynamic!(d)
+      if schema.key(:hash_code).type.right.valid? value
+        return new(hash_code: value, double: nil)
       end
     rescue
     end
@@ -3942,8 +6051,8 @@ class UnionEvent < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif event != nil
-      event.to_dynamic
+    elsif hash_code != nil
+      hash_code.to_dynamic
     end
   end
 
@@ -3952,7 +6061,7 @@ class UnionEvent < Dry::Struct
   end
 end
 
-class Except < Dry::Struct
+class ID < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -3974,18 +6083,18 @@ class Except < Dry::Struct
   end
 end
 
-class UnionExcept < Dry::Struct
+class UnionID < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :except, Except.optional
+  attribute :id,     ID.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, except: nil)
+      return new(double: d, id: nil)
     end
     begin
-      value = Except.from_dynamic!(d)
-      if schema.key(:except).type.right.valid? value
-        return new(except: value, double: nil)
+      value = ID.from_dynamic!(d)
+      if schema.key(:id).type.right.valid? value
+        return new(id: value, double: nil)
       end
     rescue
     end
@@ -3999,8 +6108,8 @@ class UnionExcept < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif except != nil
-      except.to_dynamic
+    elsif id != nil
+      id.to_dynamic
     end
   end
 
@@ -4009,7 +6118,7 @@ class UnionExcept < Dry::Struct
   end
 end
 
-class ExceptionClass < Dry::Struct
+class Imaginery < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4031,18 +6140,18 @@ class ExceptionClass < Dry::Struct
   end
 end
 
-class UnionException < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :exception_class, ExceptionClass.optional
+class UnionImaginery < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :imaginery, Imaginery.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, exception_class: nil)
+      return new(double: d, imaginery: nil)
     end
     begin
-      value = ExceptionClass.from_dynamic!(d)
-      if schema.key(:exception_class).type.right.valid? value
-        return new(exception_class: value, double: nil)
+      value = Imaginery.from_dynamic!(d)
+      if schema.key(:imaginery).type.right.valid? value
+        return new(imaginery: value, double: nil)
       end
     rescue
     end
@@ -4056,8 +6165,8 @@ class UnionException < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif exception_class != nil
-      exception_class.to_dynamic
+    elsif imaginery != nil
+      imaginery.to_dynamic
     end
   end
 
@@ -4066,7 +6175,7 @@ class UnionException < Dry::Struct
   end
 end
 
-class Explicit < Dry::Struct
+class Imp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4088,18 +6197,18 @@ class Explicit < Dry::Struct
   end
 end
 
-class UnionExplicit < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :explicit, Explicit.optional
+class UnionIMP < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :imp,    Imp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, explicit: nil)
+      return new(double: d, imp: nil)
     end
     begin
-      value = Explicit.from_dynamic!(d)
-      if schema.key(:explicit).type.right.valid? value
-        return new(explicit: value, double: nil)
+      value = Imp.from_dynamic!(d)
+      if schema.key(:imp).type.right.valid? value
+        return new(imp: value, double: nil)
       end
     rescue
     end
@@ -4113,8 +6222,8 @@ class UnionExplicit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif explicit != nil
-      explicit.to_dynamic
+    elsif imp != nil
+      imp.to_dynamic
     end
   end
 
@@ -4123,7 +6232,7 @@ class UnionExplicit < Dry::Struct
   end
 end
 
-class Export < Dry::Struct
+class Implements < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4145,18 +6254,18 @@ class Export < Dry::Struct
   end
 end
 
-class UnionExport < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :export, Export.optional
+class UnionImplements < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :implements, Implements.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, export: nil)
+      return new(double: d, implements: nil)
     end
     begin
-      value = Export.from_dynamic!(d)
-      if schema.key(:export).type.right.valid? value
-        return new(export: value, double: nil)
+      value = Implements.from_dynamic!(d)
+      if schema.key(:implements).type.right.valid? value
+        return new(implements: value, double: nil)
       end
     rescue
     end
@@ -4170,8 +6279,8 @@ class UnionExport < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif export != nil
-      export.to_dynamic
+    elsif implements != nil
+      implements.to_dynamic
     end
   end
 
@@ -4180,7 +6289,7 @@ class UnionExport < Dry::Struct
   end
 end
 
-class Exposing < Dry::Struct
+class Implicit < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4202,18 +6311,18 @@ class Exposing < Dry::Struct
   end
 end
 
-class UnionExposing < Dry::Struct
+class UnionImplicit < Dry::Struct
   attribute :double,   Types::Double.optional
-  attribute :exposing, Exposing.optional
+  attribute :implicit, Implicit.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, exposing: nil)
+      return new(double: d, implicit: nil)
     end
     begin
-      value = Exposing.from_dynamic!(d)
-      if schema.key(:exposing).type.right.valid? value
-        return new(exposing: value, double: nil)
+      value = Implicit.from_dynamic!(d)
+      if schema.key(:implicit).type.right.valid? value
+        return new(implicit: value, double: nil)
       end
     rescue
     end
@@ -4227,8 +6336,8 @@ class UnionExposing < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif exposing != nil
-      exposing.to_dynamic
+    elsif implicit != nil
+      implicit.to_dynamic
     end
   end
 
@@ -4237,7 +6346,7 @@ class UnionExposing < Dry::Struct
   end
 end
 
-class Extends < Dry::Struct
+class Import < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4259,18 +6368,18 @@ class Extends < Dry::Struct
   end
 end
 
-class UnionExtends < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :extends, Extends.optional
+class UnionImport < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :import, Import.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extends: nil)
+      return new(double: d, import: nil)
     end
     begin
-      value = Extends.from_dynamic!(d)
-      if schema.key(:extends).type.right.valid? value
-        return new(extends: value, double: nil)
+      value = Import.from_dynamic!(d)
+      if schema.key(:import).type.right.valid? value
+        return new(import: value, double: nil)
       end
     rescue
     end
@@ -4284,8 +6393,8 @@ class UnionExtends < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extends != nil
-      extends.to_dynamic
+    elsif import != nil
+      import.to_dynamic
     end
   end
 
@@ -4294,7 +6403,7 @@ class UnionExtends < Dry::Struct
   end
 end
 
-class Extension < Dry::Struct
+class Indirect < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4316,18 +6425,18 @@ class Extension < Dry::Struct
   end
 end
 
-class UnionExtension < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :extension, Extension.optional
+class UnionIndirect < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :indirect, Indirect.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extension: nil)
+      return new(double: d, indirect: nil)
     end
     begin
-      value = Extension.from_dynamic!(d)
-      if schema.key(:extension).type.right.valid? value
-        return new(extension: value, double: nil)
+      value = Indirect.from_dynamic!(d)
+      if schema.key(:indirect).type.right.valid? value
+        return new(indirect: value, double: nil)
       end
     rescue
     end
@@ -4341,8 +6450,8 @@ class UnionExtension < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extension != nil
-      extension.to_dynamic
+    elsif indirect != nil
+      indirect.to_dynamic
     end
   end
 
@@ -4351,7 +6460,7 @@ class UnionExtension < Dry::Struct
   end
 end
 
-class Extern < Dry::Struct
+class Infix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4373,18 +6482,18 @@ class Extern < Dry::Struct
   end
 end
 
-class UnionExtern < Dry::Struct
+class UnionInfix < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :extern, Extern.optional
+  attribute :infix,  Infix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, extern: nil)
+      return new(double: d, infix: nil)
     end
     begin
-      value = Extern.from_dynamic!(d)
-      if schema.key(:extern).type.right.valid? value
-        return new(extern: value, double: nil)
+      value = Infix.from_dynamic!(d)
+      if schema.key(:infix).type.right.valid? value
+        return new(infix: value, double: nil)
       end
     rescue
     end
@@ -4398,8 +6507,8 @@ class UnionExtern < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif extern != nil
-      extern.to_dynamic
+    elsif infix != nil
+      infix.to_dynamic
     end
   end
 
@@ -4408,7 +6517,7 @@ class UnionExtern < Dry::Struct
   end
 end
 
-class Fallthrough < Dry::Struct
+class Init < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4430,18 +6539,18 @@ class Fallthrough < Dry::Struct
   end
 end
 
-class UnionFallthrough < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :fallthrough, Fallthrough.optional
+class UnionInit < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :init,   Init.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fallthrough: nil)
+      return new(double: d, init: nil)
     end
     begin
-      value = Fallthrough.from_dynamic!(d)
-      if schema.key(:fallthrough).type.right.valid? value
-        return new(fallthrough: value, double: nil)
+      value = Init.from_dynamic!(d)
+      if schema.key(:init).type.right.valid? value
+        return new(init: value, double: nil)
       end
     rescue
     end
@@ -4455,8 +6564,8 @@ class UnionFallthrough < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fallthrough != nil
-      fallthrough.to_dynamic
+    elsif init != nil
+      init.to_dynamic
     end
   end
 
@@ -4465,7 +6574,7 @@ class UnionFallthrough < Dry::Struct
   end
 end
 
-class UnionFalseFalse < Dry::Struct
+class Inline < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4487,18 +6596,18 @@ class UnionFalseFalse < Dry::Struct
   end
 end
 
-class UnionFalseUnion < Dry::Struct
-  attribute :double,            Types::Double.optional
-  attribute :union_false_false, UnionFalseFalse.optional
+class UnionInline < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :inline, Inline.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, union_false_false: nil)
+      return new(double: d, inline: nil)
     end
     begin
-      value = UnionFalseFalse.from_dynamic!(d)
-      if schema.key(:union_false_false).type.right.valid? value
-        return new(union_false_false: value, double: nil)
+      value = Inline.from_dynamic!(d)
+      if schema.key(:inline).type.right.valid? value
+        return new(inline: value, double: nil)
       end
     rescue
     end
@@ -4512,8 +6621,8 @@ class UnionFalseUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif union_false_false != nil
-      union_false_false.to_dynamic
+    elsif inline != nil
+      inline.to_dynamic
     end
   end
 
@@ -4522,7 +6631,7 @@ class UnionFalseUnion < Dry::Struct
   end
 end
 
-class Fileprivate < Dry::Struct
+class Inout < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4544,18 +6653,18 @@ class Fileprivate < Dry::Struct
   end
 end
 
-class UnionFileprivate < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :fileprivate, Fileprivate.optional
+class UnionInout < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :inout,  Inout.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fileprivate: nil)
+      return new(double: d, inout: nil)
     end
     begin
-      value = Fileprivate.from_dynamic!(d)
-      if schema.key(:fileprivate).type.right.valid? value
-        return new(fileprivate: value, double: nil)
+      value = Inout.from_dynamic!(d)
+      if schema.key(:inout).type.right.valid? value
+        return new(inout: value, double: nil)
       end
     rescue
     end
@@ -4569,8 +6678,8 @@ class UnionFileprivate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fileprivate != nil
-      fileprivate.to_dynamic
+    elsif inout != nil
+      inout.to_dynamic
     end
   end
 
@@ -4579,7 +6688,7 @@ class UnionFileprivate < Dry::Struct
   end
 end
 
-class Final < Dry::Struct
+class Instanceof < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4601,18 +6710,18 @@ class Final < Dry::Struct
   end
 end
 
-class UnionFinal < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :final,  Final.optional
+class UnionInstanceof < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :instanceof, Instanceof.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, final: nil)
+      return new(double: d, instanceof: nil)
     end
     begin
-      value = Final.from_dynamic!(d)
-      if schema.key(:final).type.right.valid? value
-        return new(final: value, double: nil)
+      value = Instanceof.from_dynamic!(d)
+      if schema.key(:instanceof).type.right.valid? value
+        return new(instanceof: value, double: nil)
       end
     rescue
     end
@@ -4626,8 +6735,8 @@ class UnionFinal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif final != nil
-      final.to_dynamic
+    elsif instanceof != nil
+      instanceof.to_dynamic
     end
   end
 
@@ -4636,7 +6745,7 @@ class UnionFinal < Dry::Struct
   end
 end
 
-class Finally < Dry::Struct
+class Int < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4658,18 +6767,18 @@ class Finally < Dry::Struct
   end
 end
 
-class UnionFinally < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :finally, Finally.optional
+class UnionInt < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :int,    Int.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, finally: nil)
+      return new(double: d, int: nil)
     end
     begin
-      value = Finally.from_dynamic!(d)
-      if schema.key(:finally).type.right.valid? value
-        return new(finally: value, double: nil)
+      value = Int.from_dynamic!(d)
+      if schema.key(:int).type.right.valid? value
+        return new(int: value, double: nil)
       end
     rescue
     end
@@ -4683,8 +6792,8 @@ class UnionFinally < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif finally != nil
-      finally.to_dynamic
+    elsif int != nil
+      int.to_dynamic
     end
   end
 
@@ -4693,7 +6802,7 @@ class UnionFinally < Dry::Struct
   end
 end
 
-class Fixed < Dry::Struct
+class Interface < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4715,18 +6824,18 @@ class Fixed < Dry::Struct
   end
 end
 
-class UnionFixed < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :fixed,  Fixed.optional
+class UnionInterface < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :interface, Interface.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, fixed: nil)
+      return new(double: d, interface: nil)
     end
     begin
-      value = Fixed.from_dynamic!(d)
-      if schema.key(:fixed).type.right.valid? value
-        return new(fixed: value, double: nil)
+      value = Interface.from_dynamic!(d)
+      if schema.key(:interface).type.right.valid? value
+        return new(interface: value, double: nil)
       end
     rescue
     end
@@ -4740,8 +6849,8 @@ class UnionFixed < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif fixed != nil
-      fixed.to_dynamic
+    elsif interface != nil
+      interface.to_dynamic
     end
   end
 
@@ -4750,7 +6859,7 @@ class UnionFixed < Dry::Struct
   end
 end
 
-class FloatClass < Dry::Struct
+class Internal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4772,18 +6881,18 @@ class FloatClass < Dry::Struct
   end
 end
 
-class UnionFloat < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :float_class, FloatClass.optional
+class UnionInternal < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :internal, Internal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, float_class: nil)
+      return new(double: d, internal: nil)
     end
     begin
-      value = FloatClass.from_dynamic!(d)
-      if schema.key(:float_class).type.right.valid? value
-        return new(float_class: value, double: nil)
+      value = Internal.from_dynamic!(d)
+      if schema.key(:internal).type.right.valid? value
+        return new(internal: value, double: nil)
       end
     rescue
     end
@@ -4797,8 +6906,8 @@ class UnionFloat < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif float_class != nil
-      float_class.to_dynamic
+    elsif internal != nil
+      internal.to_dynamic
     end
   end
 
@@ -4807,7 +6916,7 @@ class UnionFloat < Dry::Struct
   end
 end
 
-class Foreach < Dry::Struct
+class Is < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4829,18 +6938,18 @@ class Foreach < Dry::Struct
   end
 end
 
-class UnionForeach < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :foreach, Foreach.optional
+class UnionIs < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :is,     Is.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, foreach: nil)
+      return new(double: d, is: nil)
     end
     begin
-      value = Foreach.from_dynamic!(d)
-      if schema.key(:foreach).type.right.valid? value
-        return new(foreach: value, double: nil)
+      value = Is.from_dynamic!(d)
+      if schema.key(:is).type.right.valid? value
+        return new(is: value, double: nil)
       end
     rescue
     end
@@ -4854,8 +6963,8 @@ class UnionForeach < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif foreach != nil
-      foreach.to_dynamic
+    elsif is != nil
+      is.to_dynamic
     end
   end
 
@@ -4864,7 +6973,7 @@ class UnionForeach < Dry::Struct
   end
 end
 
-class Friend < Dry::Struct
+class ISODateTimeOffsetConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4886,18 +6995,18 @@ class Friend < Dry::Struct
   end
 end
 
-class UnionFriend < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :friend, Friend.optional
+class UnionISODateTimeOffsetConverter < Dry::Struct
+  attribute :double,                         Types::Double.optional
+  attribute :iso_date_time_offset_converter, ISODateTimeOffsetConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, friend: nil)
+      return new(double: d, iso_date_time_offset_converter: nil)
     end
     begin
-      value = Friend.from_dynamic!(d)
-      if schema.key(:friend).type.right.valid? value
-        return new(friend: value, double: nil)
+      value = ISODateTimeOffsetConverter.from_dynamic!(d)
+      if schema.key(:iso_date_time_offset_converter).type.right.valid? value
+        return new(iso_date_time_offset_converter: value, double: nil)
       end
     rescue
     end
@@ -4911,8 +7020,8 @@ class UnionFriend < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif friend != nil
-      friend.to_dynamic
+    elsif iso_date_time_offset_converter != nil
+      iso_date_time_offset_converter.to_dynamic
     end
   end
 
@@ -4921,7 +7030,7 @@ class UnionFriend < Dry::Struct
   end
 end
 
-class From < Dry::Struct
+class Iterable < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -4943,18 +7052,18 @@ class From < Dry::Struct
   end
 end
 
-class UnionFrom < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :from,   From.optional
+class UnionIterable < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :iterable, Iterable.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, from: nil)
+      return new(double: d, iterable: nil)
     end
     begin
-      value = From.from_dynamic!(d)
-      if schema.key(:from).type.right.valid? value
-        return new(from: value, double: nil)
+      value = Iterable.from_dynamic!(d)
+      if schema.key(:iterable).type.right.valid? value
+        return new(iterable: value, double: nil)
       end
     rescue
     end
@@ -4968,8 +7077,8 @@ class UnionFrom < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif from != nil
-      from.to_dynamic
+    elsif iterable != nil
+      iterable.to_dynamic
     end
   end
 
@@ -4978,7 +7087,7 @@ class UnionFrom < Dry::Struct
   end
 end
 
-class FromJSON < Dry::Struct
+class Jdec < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5000,18 +7109,18 @@ class FromJSON < Dry::Struct
   end
 end
 
-class UnionFromJSON < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :from_json, FromJSON.optional
+class UnionJdec < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :jdec,   Jdec.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, from_json: nil)
+      return new(double: d, jdec: nil)
     end
     begin
-      value = FromJSON.from_dynamic!(d)
-      if schema.key(:from_json).type.right.valid? value
-        return new(from_json: value, double: nil)
+      value = Jdec.from_dynamic!(d)
+      if schema.key(:jdec).type.right.valid? value
+        return new(jdec: value, double: nil)
       end
     rescue
     end
@@ -5025,8 +7134,8 @@ class UnionFromJSON < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif from_json != nil
-      from_json.to_dynamic
+    elsif jdec != nil
+      jdec.to_dynamic
     end
   end
 
@@ -5035,7 +7144,7 @@ class UnionFromJSON < Dry::Struct
   end
 end
 
-class Func < Dry::Struct
+class Jenc < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5057,18 +7166,18 @@ class Func < Dry::Struct
   end
 end
 
-class UnionFunc < Dry::Struct
+class UnionJenc < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :func,   Func.optional
+  attribute :jenc,   Jenc.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, func: nil)
+      return new(double: d, jenc: nil)
     end
     begin
-      value = Func.from_dynamic!(d)
-      if schema.key(:func).type.right.valid? value
-        return new(func: value, double: nil)
+      value = Jenc.from_dynamic!(d)
+      if schema.key(:jenc).type.right.valid? value
+        return new(jenc: value, double: nil)
       end
     rescue
     end
@@ -5082,8 +7191,8 @@ class UnionFunc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif func != nil
-      func.to_dynamic
+    elsif jenc != nil
+      jenc.to_dynamic
     end
   end
 
@@ -5092,7 +7201,7 @@ class UnionFunc < Dry::Struct
   end
 end
 
-class Function < Dry::Struct
+class Jpipe < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5114,18 +7223,18 @@ class Function < Dry::Struct
   end
 end
 
-class UnionFunction < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :function, Function.optional
+class UnionJpipe < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :jpipe,  Jpipe.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, function: nil)
+      return new(double: d, jpipe: nil)
     end
     begin
-      value = Function.from_dynamic!(d)
-      if schema.key(:function).type.right.valid? value
-        return new(function: value, double: nil)
+      value = Jpipe.from_dynamic!(d)
+      if schema.key(:jpipe).type.right.valid? value
+        return new(jpipe: value, double: nil)
       end
     rescue
     end
@@ -5139,8 +7248,8 @@ class UnionFunction < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif function != nil
-      function.to_dynamic
+    elsif jpipe != nil
+      jpipe.to_dynamic
     end
   end
 
@@ -5149,7 +7258,7 @@ class UnionFunction < Dry::Struct
   end
 end
 
-class Get < Dry::Struct
+class JSONClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5171,18 +7280,18 @@ class Get < Dry::Struct
   end
 end
 
-class UnionGet < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :get,    Get.optional
+class UnionJSON < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :json_class, JSONClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, get: nil)
+      return new(double: d, json_class: nil)
     end
     begin
-      value = Get.from_dynamic!(d)
-      if schema.key(:get).type.right.valid? value
-        return new(get: value, double: nil)
+      value = JSONClass.from_dynamic!(d)
+      if schema.key(:json_class).type.right.valid? value
+        return new(json_class: value, double: nil)
       end
     rescue
     end
@@ -5196,8 +7305,8 @@ class UnionGet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif get != nil
-      get.to_dynamic
+    elsif json_class != nil
+      json_class.to_dynamic
     end
   end
 
@@ -5206,7 +7315,7 @@ class UnionGet < Dry::Struct
   end
 end
 
-class Global < Dry::Struct
+class JSONAny < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5228,18 +7337,18 @@ class Global < Dry::Struct
   end
 end
 
-class UnionGlobal < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :global, Global.optional
+class UnionJSONAny < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :json_any, JSONAny.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, global: nil)
+      return new(double: d, json_any: nil)
     end
     begin
-      value = Global.from_dynamic!(d)
-      if schema.key(:global).type.right.valid? value
-        return new(global: value, double: nil)
+      value = JSONAny.from_dynamic!(d)
+      if schema.key(:json_any).type.right.valid? value
+        return new(json_any: value, double: nil)
       end
     rescue
     end
@@ -5253,8 +7362,8 @@ class UnionGlobal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif global != nil
-      global.to_dynamic
+    elsif json_any != nil
+      json_any.to_dynamic
     end
   end
 
@@ -5263,7 +7372,7 @@ class UnionGlobal < Dry::Struct
   end
 end
 
-class Go < Dry::Struct
+class JSONCodingKey < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5285,18 +7394,18 @@ class Go < Dry::Struct
   end
 end
 
-class UnionGo < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :go,     Go.optional
+class UnionJSONCodingKey < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_coding_key, JSONCodingKey.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, go: nil)
+      return new(double: d, json_coding_key: nil)
     end
     begin
-      value = Go.from_dynamic!(d)
-      if schema.key(:go).type.right.valid? value
-        return new(go: value, double: nil)
+      value = JSONCodingKey.from_dynamic!(d)
+      if schema.key(:json_coding_key).type.right.valid? value
+        return new(json_coding_key: value, double: nil)
       end
     rescue
     end
@@ -5310,8 +7419,8 @@ class UnionGo < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif go != nil
-      go.to_dynamic
+    elsif json_coding_key != nil
+      json_coding_key.to_dynamic
     end
   end
 
@@ -5320,7 +7429,7 @@ class UnionGo < Dry::Struct
   end
 end
 
-class Goto < Dry::Struct
+class JSONConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5342,18 +7451,18 @@ class Goto < Dry::Struct
   end
 end
 
-class UnionGoto < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :goto,   Goto.optional
+class UnionJSONConverter < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_converter, JSONConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, goto: nil)
+      return new(double: d, json_converter: nil)
     end
     begin
-      value = Goto.from_dynamic!(d)
-      if schema.key(:goto).type.right.valid? value
-        return new(goto: value, double: nil)
+      value = JSONConverter.from_dynamic!(d)
+      if schema.key(:json_converter).type.right.valid? value
+        return new(json_converter: value, double: nil)
       end
     rescue
     end
@@ -5367,8 +7476,8 @@ class UnionGoto < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif goto != nil
-      goto.to_dynamic
+    elsif json_converter != nil
+      json_converter.to_dynamic
     end
   end
 
@@ -5377,7 +7486,7 @@ class UnionGoto < Dry::Struct
   end
 end
 
-class Guard < Dry::Struct
+class JSONDecoder < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5399,18 +7508,18 @@ class Guard < Dry::Struct
   end
 end
 
-class UnionGuard < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :guard,  Guard.optional
+class UnionJSONDecoder < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :json_decoder, JSONDecoder.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, guard: nil)
+      return new(double: d, json_decoder: nil)
     end
     begin
-      value = Guard.from_dynamic!(d)
-      if schema.key(:guard).type.right.valid? value
-        return new(guard: value, double: nil)
+      value = JSONDecoder.from_dynamic!(d)
+      if schema.key(:json_decoder).type.right.valid? value
+        return new(json_decoder: value, double: nil)
       end
     rescue
     end
@@ -5424,8 +7533,8 @@ class UnionGuard < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif guard != nil
-      guard.to_dynamic
+    elsif json_decoder != nil
+      json_decoder.to_dynamic
     end
   end
 
@@ -5434,7 +7543,7 @@ class UnionGuard < Dry::Struct
   end
 end
 
-class HasOwnProperty < Dry::Struct
+class JSONEncoder < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5456,18 +7565,18 @@ class HasOwnProperty < Dry::Struct
   end
 end
 
-class UnionHasOwnProperty < Dry::Struct
-  attribute :double,           Types::Double.optional
-  attribute :has_own_property, HasOwnProperty.optional
+class UnionJSONEncoder < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :json_encoder, JSONEncoder.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, has_own_property: nil)
+      return new(double: d, json_encoder: nil)
     end
     begin
-      value = HasOwnProperty.from_dynamic!(d)
-      if schema.key(:has_own_property).type.right.valid? value
-        return new(has_own_property: value, double: nil)
+      value = JSONEncoder.from_dynamic!(d)
+      if schema.key(:json_encoder).type.right.valid? value
+        return new(json_encoder: value, double: nil)
       end
     rescue
     end
@@ -5481,8 +7590,8 @@ class UnionHasOwnProperty < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif has_own_property != nil
-      has_own_property.to_dynamic
+    elsif json_encoder != nil
+      json_encoder.to_dynamic
     end
   end
 
@@ -5491,7 +7600,7 @@ class UnionHasOwnProperty < Dry::Struct
   end
 end
 
-class ID < Dry::Struct
+class JSONException < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5513,18 +7622,18 @@ class ID < Dry::Struct
   end
 end
 
-class UnionID < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :id,     ID.optional
+class UnionJSONException < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_exception, JSONException.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, id: nil)
+      return new(double: d, json_exception: nil)
     end
     begin
-      value = ID.from_dynamic!(d)
-      if schema.key(:id).type.right.valid? value
-        return new(id: value, double: nil)
+      value = JSONException.from_dynamic!(d)
+      if schema.key(:json_exception).type.right.valid? value
+        return new(json_exception: value, double: nil)
       end
     rescue
     end
@@ -5538,8 +7647,8 @@ class UnionID < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif id != nil
-      id.to_dynamic
+    elsif json_exception != nil
+      json_exception.to_dynamic
     end
   end
 
@@ -5548,7 +7657,7 @@ class UnionID < Dry::Struct
   end
 end
 
-class Imaginery < Dry::Struct
+class JSONGenerator < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5570,18 +7679,18 @@ class Imaginery < Dry::Struct
   end
 end
 
-class UnionImaginery < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :imaginery, Imaginery.optional
+class UnionJSONGenerator < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :json_generator, JSONGenerator.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, imaginery: nil)
+      return new(double: d, json_generator: nil)
     end
     begin
-      value = Imaginery.from_dynamic!(d)
-      if schema.key(:imaginery).type.right.valid? value
-        return new(imaginery: value, double: nil)
+      value = JSONGenerator.from_dynamic!(d)
+      if schema.key(:json_generator).type.right.valid? value
+        return new(json_generator: value, double: nil)
       end
     rescue
     end
@@ -5595,8 +7704,8 @@ class UnionImaginery < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif imaginery != nil
-      imaginery.to_dynamic
+    elsif json_generator != nil
+      json_generator.to_dynamic
     end
   end
 
@@ -5605,7 +7714,7 @@ class UnionImaginery < Dry::Struct
   end
 end
 
-class Imp < Dry::Struct
+class JSONNode < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5627,18 +7736,18 @@ class Imp < Dry::Struct
   end
 end
 
-class UnionIMP < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :imp,    Imp.optional
+class UnionJSONNode < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :json_node, JSONNode.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, imp: nil)
+      return new(double: d, json_node: nil)
     end
     begin
-      value = Imp.from_dynamic!(d)
-      if schema.key(:imp).type.right.valid? value
-        return new(imp: value, double: nil)
+      value = JSONNode.from_dynamic!(d)
+      if schema.key(:json_node).type.right.valid? value
+        return new(json_node: value, double: nil)
       end
     rescue
     end
@@ -5652,8 +7761,8 @@ class UnionIMP < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif imp != nil
-      imp.to_dynamic
+    elsif json_node != nil
+      json_node.to_dynamic
     end
   end
 
@@ -5662,7 +7771,7 @@ class UnionIMP < Dry::Struct
   end
 end
 
-class Implements < Dry::Struct
+class JSONNull < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5684,18 +7793,18 @@ class Implements < Dry::Struct
   end
 end
 
-class UnionImplements < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :implements, Implements.optional
+class UnionJSONNull < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :json_null, JSONNull.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, implements: nil)
+      return new(double: d, json_null: nil)
     end
     begin
-      value = Implements.from_dynamic!(d)
-      if schema.key(:implements).type.right.valid? value
-        return new(implements: value, double: nil)
+      value = JSONNull.from_dynamic!(d)
+      if schema.key(:json_null).type.right.valid? value
+        return new(json_null: value, double: nil)
       end
     rescue
     end
@@ -5709,8 +7818,8 @@ class UnionImplements < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif implements != nil
-      implements.to_dynamic
+    elsif json_null != nil
+      json_null.to_dynamic
     end
   end
 
@@ -5719,7 +7828,7 @@ class UnionImplements < Dry::Struct
   end
 end
 
-class Implicit < Dry::Struct
+class JSONParser < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5741,18 +7850,18 @@ class Implicit < Dry::Struct
   end
 end
 
-class UnionImplicit < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :implicit, Implicit.optional
+class UnionJSONParser < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_parser, JSONParser.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, implicit: nil)
+      return new(double: d, json_parser: nil)
     end
     begin
-      value = Implicit.from_dynamic!(d)
-      if schema.key(:implicit).type.right.valid? value
-        return new(implicit: value, double: nil)
+      value = JSONParser.from_dynamic!(d)
+      if schema.key(:json_parser).type.right.valid? value
+        return new(json_parser: value, double: nil)
       end
     rescue
     end
@@ -5766,8 +7875,8 @@ class UnionImplicit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif implicit != nil
-      implicit.to_dynamic
+    elsif json_parser != nil
+      json_parser.to_dynamic
     end
   end
 
@@ -5776,7 +7885,7 @@ class UnionImplicit < Dry::Struct
   end
 end
 
-class Import < Dry::Struct
+class JSONReader < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5798,18 +7907,18 @@ class Import < Dry::Struct
   end
 end
 
-class UnionImport < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :import, Import.optional
+class UnionJSONReader < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_reader, JSONReader.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, import: nil)
+      return new(double: d, json_reader: nil)
     end
     begin
-      value = Import.from_dynamic!(d)
-      if schema.key(:import).type.right.valid? value
-        return new(import: value, double: nil)
+      value = JSONReader.from_dynamic!(d)
+      if schema.key(:json_reader).type.right.valid? value
+        return new(json_reader: value, double: nil)
       end
     rescue
     end
@@ -5823,8 +7932,8 @@ class UnionImport < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif import != nil
-      import.to_dynamic
+    elsif json_reader != nil
+      json_reader.to_dynamic
     end
   end
 
@@ -5833,7 +7942,7 @@ class UnionImport < Dry::Struct
   end
 end
 
-class Indirect < Dry::Struct
+class JSONSerializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5855,18 +7964,18 @@ class Indirect < Dry::Struct
   end
 end
 
-class UnionIndirect < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :indirect, Indirect.optional
+class UnionJSONSerializer < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_serializer, JSONSerializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, indirect: nil)
+      return new(double: d, json_serializer: nil)
     end
     begin
-      value = Indirect.from_dynamic!(d)
-      if schema.key(:indirect).type.right.valid? value
-        return new(indirect: value, double: nil)
+      value = JSONSerializer.from_dynamic!(d)
+      if schema.key(:json_serializer).type.right.valid? value
+        return new(json_serializer: value, double: nil)
       end
     rescue
     end
@@ -5880,8 +7989,8 @@ class UnionIndirect < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif indirect != nil
-      indirect.to_dynamic
+    elsif json_serializer != nil
+      json_serializer.to_dynamic
     end
   end
 
@@ -5890,7 +7999,7 @@ class UnionIndirect < Dry::Struct
   end
 end
 
-class Infix < Dry::Struct
+class JSONToken < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5912,18 +8021,18 @@ class Infix < Dry::Struct
   end
 end
 
-class UnionInfix < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :infix,  Infix.optional
+class UnionJSONToken < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :json_token, JSONToken.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, infix: nil)
+      return new(double: d, json_token: nil)
     end
     begin
-      value = Infix.from_dynamic!(d)
-      if schema.key(:infix).type.right.valid? value
-        return new(infix: value, double: nil)
+      value = JSONToken.from_dynamic!(d)
+      if schema.key(:json_token).type.right.valid? value
+        return new(json_token: value, double: nil)
       end
     rescue
     end
@@ -5937,8 +8046,8 @@ class UnionInfix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif infix != nil
-      infix.to_dynamic
+    elsif json_token != nil
+      json_token.to_dynamic
     end
   end
 
@@ -5947,7 +8056,7 @@ class UnionInfix < Dry::Struct
   end
 end
 
-class Init < Dry::Struct
+class JSONTokenType < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -5969,18 +8078,18 @@ class Init < Dry::Struct
   end
 end
 
-class UnionInit < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :init,   Init.optional
+class UnionJSONTokenType < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :json_token_type, JSONTokenType.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, init: nil)
+      return new(double: d, json_token_type: nil)
     end
     begin
-      value = Init.from_dynamic!(d)
-      if schema.key(:init).type.right.valid? value
-        return new(init: value, double: nil)
+      value = JSONTokenType.from_dynamic!(d)
+      if schema.key(:json_token_type).type.right.valid? value
+        return new(json_token_type: value, double: nil)
       end
     rescue
     end
@@ -5994,8 +8103,8 @@ class UnionInit < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif init != nil
-      init.to_dynamic
+    elsif json_token_type != nil
+      json_token_type.to_dynamic
     end
   end
 
@@ -6004,7 +8113,7 @@ class UnionInit < Dry::Struct
   end
 end
 
-class Inline < Dry::Struct
+class JSONWriter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6026,18 +8135,18 @@ class Inline < Dry::Struct
   end
 end
 
-class UnionInline < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :inline, Inline.optional
+class UnionJSONWriter < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :json_writer, JSONWriter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, inline: nil)
+      return new(double: d, json_writer: nil)
     end
     begin
-      value = Inline.from_dynamic!(d)
-      if schema.key(:inline).type.right.valid? value
-        return new(inline: value, double: nil)
+      value = JSONWriter.from_dynamic!(d)
+      if schema.key(:json_writer).type.right.valid? value
+        return new(json_writer: value, double: nil)
       end
     rescue
     end
@@ -6051,8 +8160,8 @@ class UnionInline < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif inline != nil
-      inline.to_dynamic
+    elsif json_writer != nil
+      json_writer.to_dynamic
     end
   end
 
@@ -6061,7 +8170,7 @@ class UnionInline < Dry::Struct
   end
 end
 
-class Inout < Dry::Struct
+class Lazy < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6083,18 +8192,18 @@ class Inout < Dry::Struct
   end
 end
 
-class UnionInout < Dry::Struct
+class UnionLazy < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :inout,  Inout.optional
+  attribute :lazy,   Lazy.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, inout: nil)
+      return new(double: d, lazy: nil)
     end
     begin
-      value = Inout.from_dynamic!(d)
-      if schema.key(:inout).type.right.valid? value
-        return new(inout: value, double: nil)
+      value = Lazy.from_dynamic!(d)
+      if schema.key(:lazy).type.right.valid? value
+        return new(lazy: value, double: nil)
       end
     rescue
     end
@@ -6108,8 +8217,8 @@ class UnionInout < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif inout != nil
-      inout.to_dynamic
+    elsif lazy != nil
+      lazy.to_dynamic
     end
   end
 
@@ -6118,7 +8227,7 @@ class UnionInout < Dry::Struct
   end
 end
 
-class Instanceof < Dry::Struct
+class Left < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6140,18 +8249,18 @@ class Instanceof < Dry::Struct
   end
 end
 
-class UnionInstanceof < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :instanceof, Instanceof.optional
+class UnionLeft < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :left,   Left.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, instanceof: nil)
+      return new(double: d, left: nil)
     end
     begin
-      value = Instanceof.from_dynamic!(d)
-      if schema.key(:instanceof).type.right.valid? value
-        return new(instanceof: value, double: nil)
+      value = Left.from_dynamic!(d)
+      if schema.key(:left).type.right.valid? value
+        return new(left: value, double: nil)
       end
     rescue
     end
@@ -6165,8 +8274,8 @@ class UnionInstanceof < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif instanceof != nil
-      instanceof.to_dynamic
+    elsif left != nil
+      left.to_dynamic
     end
   end
 
@@ -6175,7 +8284,7 @@ class UnionInstanceof < Dry::Struct
   end
 end
 
-class Int < Dry::Struct
+class Let < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6197,18 +8306,18 @@ class Int < Dry::Struct
   end
 end
 
-class UnionInt < Dry::Struct
+class UnionLet < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :int,    Int.optional
+  attribute :let,    Let.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, int: nil)
+      return new(double: d, let: nil)
     end
     begin
-      value = Int.from_dynamic!(d)
-      if schema.key(:int).type.right.valid? value
-        return new(int: value, double: nil)
+      value = Let.from_dynamic!(d)
+      if schema.key(:let).type.right.valid? value
+        return new(let: value, double: nil)
       end
     rescue
     end
@@ -6222,8 +8331,8 @@ class UnionInt < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif int != nil
-      int.to_dynamic
+    elsif let != nil
+      let.to_dynamic
     end
   end
 
@@ -6232,7 +8341,7 @@ class UnionInt < Dry::Struct
   end
 end
 
-class Interface < Dry::Struct
+class List < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6254,18 +8363,18 @@ class Interface < Dry::Struct
   end
 end
 
-class UnionInterface < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :interface, Interface.optional
+class UnionList < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :list,   List.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, interface: nil)
+      return new(double: d, list: nil)
     end
     begin
-      value = Interface.from_dynamic!(d)
-      if schema.key(:interface).type.right.valid? value
-        return new(interface: value, double: nil)
+      value = List.from_dynamic!(d)
+      if schema.key(:list).type.right.valid? value
+        return new(list: value, double: nil)
       end
     rescue
     end
@@ -6279,8 +8388,8 @@ class UnionInterface < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif interface != nil
-      interface.to_dynamic
+    elsif list != nil
+      list.to_dynamic
     end
   end
 
@@ -6289,7 +8398,7 @@ class UnionInterface < Dry::Struct
   end
 end
 
-class Internal < Dry::Struct
+class Lock < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6311,18 +8420,18 @@ class Internal < Dry::Struct
   end
 end
 
-class UnionInternal < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :internal, Internal.optional
+class UnionLock < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :lock,   Lock.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, internal: nil)
+      return new(double: d, lock: nil)
     end
     begin
-      value = Internal.from_dynamic!(d)
-      if schema.key(:internal).type.right.valid? value
-        return new(internal: value, double: nil)
+      value = Lock.from_dynamic!(d)
+      if schema.key(:lock).type.right.valid? value
+        return new(lock: value, double: nil)
       end
     rescue
     end
@@ -6336,8 +8445,8 @@ class UnionInternal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif internal != nil
-      internal.to_dynamic
+    elsif lock != nil
+      lock.to_dynamic
     end
   end
 
@@ -6346,7 +8455,7 @@ class UnionInternal < Dry::Struct
   end
 end
 
-class Is < Dry::Struct
+class Long < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6368,18 +8477,18 @@ class Is < Dry::Struct
   end
 end
 
-class UnionIs < Dry::Struct
+class UnionLong < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :is,     Is.optional
+  attribute :long,   Long.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, is: nil)
+      return new(double: d, long: nil)
     end
     begin
-      value = Is.from_dynamic!(d)
-      if schema.key(:is).type.right.valid? value
-        return new(is: value, double: nil)
+      value = Long.from_dynamic!(d)
+      if schema.key(:long).type.right.valid? value
+        return new(long: value, double: nil)
       end
     rescue
     end
@@ -6393,8 +8502,8 @@ class UnionIs < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif is != nil
-      is.to_dynamic
+    elsif long != nil
+      long.to_dynamic
     end
   end
 
@@ -6403,7 +8512,7 @@ class UnionIs < Dry::Struct
   end
 end
 
-class Iterable < Dry::Struct
+class Map < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6425,18 +8534,18 @@ class Iterable < Dry::Struct
   end
 end
 
-class UnionIterable < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :iterable, Iterable.optional
+class UnionMap < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :map,    Map.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, iterable: nil)
+      return new(double: d, map: nil)
     end
     begin
-      value = Iterable.from_dynamic!(d)
-      if schema.key(:iterable).type.right.valid? value
-        return new(iterable: value, double: nil)
+      value = Map.from_dynamic!(d)
+      if schema.key(:map).type.right.valid? value
+        return new(map: value, double: nil)
       end
     rescue
     end
@@ -6450,8 +8559,8 @@ class UnionIterable < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif iterable != nil
-      iterable.to_dynamic
+    elsif map != nil
+      map.to_dynamic
     end
   end
 
@@ -6460,7 +8569,7 @@ class UnionIterable < Dry::Struct
   end
 end
 
-class Jdec < Dry::Struct
+class MetadataPropertyHandling < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6482,18 +8591,18 @@ class Jdec < Dry::Struct
   end
 end
 
-class UnionJdec < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jdec,   Jdec.optional
+class UnionMetadataPropertyHandling < Dry::Struct
+  attribute :double,                     Types::Double.optional
+  attribute :metadata_property_handling, MetadataPropertyHandling.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jdec: nil)
+      return new(double: d, metadata_property_handling: nil)
     end
     begin
-      value = Jdec.from_dynamic!(d)
-      if schema.key(:jdec).type.right.valid? value
-        return new(jdec: value, double: nil)
+      value = MetadataPropertyHandling.from_dynamic!(d)
+      if schema.key(:metadata_property_handling).type.right.valid? value
+        return new(metadata_property_handling: value, double: nil)
       end
     rescue
     end
@@ -6507,8 +8616,8 @@ class UnionJdec < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jdec != nil
-      jdec.to_dynamic
+    elsif metadata_property_handling != nil
+      metadata_property_handling.to_dynamic
     end
   end
 
@@ -6517,7 +8626,7 @@ class UnionJdec < Dry::Struct
   end
 end
 
-class Jenc < Dry::Struct
+class Mutable < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6539,18 +8648,18 @@ class Jenc < Dry::Struct
   end
 end
 
-class UnionJenc < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jenc,   Jenc.optional
+class UnionMutable < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :mutable, Mutable.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jenc: nil)
+      return new(double: d, mutable: nil)
     end
     begin
-      value = Jenc.from_dynamic!(d)
-      if schema.key(:jenc).type.right.valid? value
-        return new(jenc: value, double: nil)
+      value = Mutable.from_dynamic!(d)
+      if schema.key(:mutable).type.right.valid? value
+        return new(mutable: value, double: nil)
       end
     rescue
     end
@@ -6564,8 +8673,8 @@ class UnionJenc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jenc != nil
-      jenc.to_dynamic
+    elsif mutable != nil
+      mutable.to_dynamic
     end
   end
 
@@ -6574,7 +8683,7 @@ class UnionJenc < Dry::Struct
   end
 end
 
-class Jpipe < Dry::Struct
+class Mutating < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6596,18 +8705,18 @@ class Jpipe < Dry::Struct
   end
 end
 
-class UnionJpipe < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :jpipe,  Jpipe.optional
+class UnionMutating < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :mutating, Mutating.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, jpipe: nil)
+      return new(double: d, mutating: nil)
     end
     begin
-      value = Jpipe.from_dynamic!(d)
-      if schema.key(:jpipe).type.right.valid? value
-        return new(jpipe: value, double: nil)
+      value = Mutating.from_dynamic!(d)
+      if schema.key(:mutating).type.right.valid? value
+        return new(mutating: value, double: nil)
       end
     rescue
     end
@@ -6621,8 +8730,8 @@ class UnionJpipe < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif jpipe != nil
-      jpipe.to_dynamic
+    elsif mutating != nil
+      mutating.to_dynamic
     end
   end
 
@@ -6631,7 +8740,7 @@ class UnionJpipe < Dry::Struct
   end
 end
 
-class JSONClass < Dry::Struct
+class Namespace < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6653,18 +8762,18 @@ class JSONClass < Dry::Struct
   end
 end
 
-class UnionJSON < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :json_class, JSONClass.optional
+class UnionNamespace < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :namespace, Namespace.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_class: nil)
+      return new(double: d, namespace: nil)
     end
     begin
-      value = JSONClass.from_dynamic!(d)
-      if schema.key(:json_class).type.right.valid? value
-        return new(json_class: value, double: nil)
+      value = Namespace.from_dynamic!(d)
+      if schema.key(:namespace).type.right.valid? value
+        return new(namespace: value, double: nil)
       end
     rescue
     end
@@ -6678,8 +8787,8 @@ class UnionJSON < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_class != nil
-      json_class.to_dynamic
+    elsif namespace != nil
+      namespace.to_dynamic
     end
   end
 
@@ -6688,7 +8797,7 @@ class UnionJSON < Dry::Struct
   end
 end
 
-class JSONConverter < Dry::Struct
+class Native < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6710,18 +8819,18 @@ class JSONConverter < Dry::Struct
   end
 end
 
-class UnionJSONConverter < Dry::Struct
-  attribute :double,         Types::Double.optional
-  attribute :json_converter, JSONConverter.optional
+class UnionNative < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :native, Native.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_converter: nil)
+      return new(double: d, native: nil)
     end
     begin
-      value = JSONConverter.from_dynamic!(d)
-      if schema.key(:json_converter).type.right.valid? value
-        return new(json_converter: value, double: nil)
+      value = Native.from_dynamic!(d)
+      if schema.key(:native).type.right.valid? value
+        return new(native: value, double: nil)
       end
     rescue
     end
@@ -6735,8 +8844,8 @@ class UnionJSONConverter < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_converter != nil
-      json_converter.to_dynamic
+    elsif native != nil
+      native.to_dynamic
     end
   end
 
@@ -6745,7 +8854,7 @@ class UnionJSONConverter < Dry::Struct
   end
 end
 
-class JSONSerializer < Dry::Struct
+class Newtonsoft < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6767,18 +8876,18 @@ class JSONSerializer < Dry::Struct
   end
 end
 
-class UnionJSONSerializer < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :json_serializer, JSONSerializer.optional
+class UnionNewtonsoft < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :newtonsoft, Newtonsoft.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_serializer: nil)
+      return new(double: d, newtonsoft: nil)
     end
     begin
-      value = JSONSerializer.from_dynamic!(d)
-      if schema.key(:json_serializer).type.right.valid? value
-        return new(json_serializer: value, double: nil)
+      value = Newtonsoft.from_dynamic!(d)
+      if schema.key(:newtonsoft).type.right.valid? value
+        return new(newtonsoft: value, double: nil)
       end
     rescue
     end
@@ -6792,8 +8901,8 @@ class UnionJSONSerializer < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_serializer != nil
-      json_serializer.to_dynamic
+    elsif newtonsoft != nil
+      newtonsoft.to_dynamic
     end
   end
 
@@ -6802,7 +8911,7 @@ class UnionJSONSerializer < Dry::Struct
   end
 end
 
-class JSONToken < Dry::Struct
+class No < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6824,18 +8933,18 @@ class JSONToken < Dry::Struct
   end
 end
 
-class UnionJSONToken < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :json_token, JSONToken.optional
+class UnionNO < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :no,     No.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_token: nil)
+      return new(double: d, no: nil)
     end
     begin
-      value = JSONToken.from_dynamic!(d)
-      if schema.key(:json_token).type.right.valid? value
-        return new(json_token: value, double: nil)
+      value = No.from_dynamic!(d)
+      if schema.key(:no).type.right.valid? value
+        return new(no: value, double: nil)
       end
     rescue
     end
@@ -6849,8 +8958,8 @@ class UnionJSONToken < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_token != nil
-      json_token.to_dynamic
+    elsif no != nil
+      no.to_dynamic
     end
   end
 
@@ -6859,7 +8968,7 @@ class UnionJSONToken < Dry::Struct
   end
 end
 
-class JSONWriter < Dry::Struct
+class NoSuchMethod < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6881,18 +8990,18 @@ class JSONWriter < Dry::Struct
   end
 end
 
-class UnionJSONWriter < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :json_writer, JSONWriter.optional
+class UnionNoSuchMethod < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :no_such_method, NoSuchMethod.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, json_writer: nil)
+      return new(double: d, no_such_method: nil)
     end
     begin
-      value = JSONWriter.from_dynamic!(d)
-      if schema.key(:json_writer).type.right.valid? value
-        return new(json_writer: value, double: nil)
+      value = NoSuchMethod.from_dynamic!(d)
+      if schema.key(:no_such_method).type.right.valid? value
+        return new(no_such_method: value, double: nil)
       end
     rescue
     end
@@ -6906,8 +9015,8 @@ class UnionJSONWriter < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif json_writer != nil
-      json_writer.to_dynamic
+    elsif no_such_method != nil
+      no_such_method.to_dynamic
     end
   end
 
@@ -6916,7 +9025,7 @@ class UnionJSONWriter < Dry::Struct
   end
 end
 
-class Lazy < Dry::Struct
+class Noexcept < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6938,18 +9047,18 @@ class Lazy < Dry::Struct
   end
 end
 
-class UnionLazy < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :lazy,   Lazy.optional
+class UnionNoexcept < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :noexcept, Noexcept.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, lazy: nil)
+      return new(double: d, noexcept: nil)
     end
     begin
-      value = Lazy.from_dynamic!(d)
-      if schema.key(:lazy).type.right.valid? value
-        return new(lazy: value, double: nil)
+      value = Noexcept.from_dynamic!(d)
+      if schema.key(:noexcept).type.right.valid? value
+        return new(noexcept: value, double: nil)
       end
     rescue
     end
@@ -6963,8 +9072,8 @@ class UnionLazy < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif lazy != nil
-      lazy.to_dynamic
+    elsif noexcept != nil
+      noexcept.to_dynamic
     end
   end
 
@@ -6973,7 +9082,7 @@ class UnionLazy < Dry::Struct
   end
 end
 
-class Left < Dry::Struct
+class Nonatomic < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -6995,18 +9104,18 @@ class Left < Dry::Struct
   end
 end
 
-class UnionLeft < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :left,   Left.optional
+class UnionNonatomic < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :nonatomic, Nonatomic.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, left: nil)
+      return new(double: d, nonatomic: nil)
     end
     begin
-      value = Left.from_dynamic!(d)
-      if schema.key(:left).type.right.valid? value
-        return new(left: value, double: nil)
+      value = Nonatomic.from_dynamic!(d)
+      if schema.key(:nonatomic).type.right.valid? value
+        return new(nonatomic: value, double: nil)
       end
     rescue
     end
@@ -7020,8 +9129,8 @@ class UnionLeft < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif left != nil
-      left.to_dynamic
+    elsif nonatomic != nil
+      nonatomic.to_dynamic
     end
   end
 
@@ -7030,7 +9139,7 @@ class UnionLeft < Dry::Struct
   end
 end
 
-class Let < Dry::Struct
+class None < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7052,18 +9161,18 @@ class Let < Dry::Struct
   end
 end
 
-class UnionLet < Dry::Struct
+class UnionNone < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :let,    Let.optional
+  attribute :none,   None.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, let: nil)
+      return new(double: d, none: nil)
     end
     begin
-      value = Let.from_dynamic!(d)
-      if schema.key(:let).type.right.valid? value
-        return new(let: value, double: nil)
+      value = None.from_dynamic!(d)
+      if schema.key(:none).type.right.valid? value
+        return new(none: value, double: nil)
       end
     rescue
     end
@@ -7077,8 +9186,8 @@ class UnionLet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif let != nil
-      let.to_dynamic
+    elsif none != nil
+      none.to_dynamic
     end
   end
 
@@ -7087,7 +9196,7 @@ class UnionLet < Dry::Struct
   end
 end
 
-class List < Dry::Struct
+class Nonlocal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7109,18 +9218,18 @@ class List < Dry::Struct
   end
 end
 
-class UnionList < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :list,   List.optional
+class UnionNonlocal < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :nonlocal, Nonlocal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, list: nil)
+      return new(double: d, nonlocal: nil)
     end
     begin
-      value = List.from_dynamic!(d)
-      if schema.key(:list).type.right.valid? value
-        return new(list: value, double: nil)
+      value = Nonlocal.from_dynamic!(d)
+      if schema.key(:nonlocal).type.right.valid? value
+        return new(nonlocal: value, double: nil)
       end
     rescue
     end
@@ -7134,8 +9243,8 @@ class UnionList < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif list != nil
-      list.to_dynamic
+    elsif nonlocal != nil
+      nonlocal.to_dynamic
     end
   end
 
@@ -7144,7 +9253,7 @@ class UnionList < Dry::Struct
   end
 end
 
-class Lock < Dry::Struct
+class Nonmutating < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7166,18 +9275,18 @@ class Lock < Dry::Struct
   end
 end
 
-class UnionLock < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :lock,   Lock.optional
+class UnionNonmutating < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :nonmutating, Nonmutating.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, lock: nil)
+      return new(double: d, nonmutating: nil)
     end
     begin
-      value = Lock.from_dynamic!(d)
-      if schema.key(:lock).type.right.valid? value
-        return new(lock: value, double: nil)
+      value = Nonmutating.from_dynamic!(d)
+      if schema.key(:nonmutating).type.right.valid? value
+        return new(nonmutating: value, double: nil)
       end
     rescue
     end
@@ -7191,8 +9300,8 @@ class UnionLock < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif lock != nil
-      lock.to_dynamic
+    elsif nonmutating != nil
+      nonmutating.to_dynamic
     end
   end
 
@@ -7201,7 +9310,7 @@ class UnionLock < Dry::Struct
   end
 end
 
-class Long < Dry::Struct
+class NotEq < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7223,18 +9332,18 @@ class Long < Dry::Struct
   end
 end
 
-class UnionLong < Dry::Struct
+class UnionNotEq < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :long,   Long.optional
+  attribute :not_eq, NotEq.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, long: nil)
+      return new(double: d, not_eq: nil)
     end
     begin
-      value = Long.from_dynamic!(d)
-      if schema.key(:long).type.right.valid? value
-        return new(long: value, double: nil)
+      value = NotEq.from_dynamic!(d)
+      if schema.key(:not_eq).type.right.valid? value
+        return new(not_eq: value, double: nil)
       end
     rescue
     end
@@ -7248,8 +9357,8 @@ class UnionLong < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif long != nil
-      long.to_dynamic
+    elsif not_eq != nil
+      not_eq.to_dynamic
     end
   end
 
@@ -7258,7 +9367,7 @@ class UnionLong < Dry::Struct
   end
 end
 
-class Map < Dry::Struct
+class NSError < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7280,18 +9389,18 @@ class Map < Dry::Struct
   end
 end
 
-class UnionMap < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :map,    Map.optional
+class UnionNSError < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :ns_error, NSError.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, map: nil)
+      return new(double: d, ns_error: nil)
     end
     begin
-      value = Map.from_dynamic!(d)
-      if schema.key(:map).type.right.valid? value
-        return new(map: value, double: nil)
+      value = NSError.from_dynamic!(d)
+      if schema.key(:ns_error).type.right.valid? value
+        return new(ns_error: value, double: nil)
       end
     rescue
     end
@@ -7305,8 +9414,8 @@ class UnionMap < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif map != nil
-      map.to_dynamic
+    elsif ns_error != nil
+      ns_error.to_dynamic
     end
   end
 
@@ -7315,7 +9424,7 @@ class UnionMap < Dry::Struct
   end
 end
 
-class MetadataPropertyHandling < Dry::Struct
+class NSString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7337,18 +9446,18 @@ class MetadataPropertyHandling < Dry::Struct
   end
 end
 
-class UnionMetadataPropertyHandling < Dry::Struct
-  attribute :double,                     Types::Double.optional
-  attribute :metadata_property_handling, MetadataPropertyHandling.optional
+class UnionNSString < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :ns_string, NSString.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, metadata_property_handling: nil)
+      return new(double: d, ns_string: nil)
     end
     begin
-      value = MetadataPropertyHandling.from_dynamic!(d)
-      if schema.key(:metadata_property_handling).type.right.valid? value
-        return new(metadata_property_handling: value, double: nil)
+      value = NSString.from_dynamic!(d)
+      if schema.key(:ns_string).type.right.valid? value
+        return new(ns_string: value, double: nil)
       end
     rescue
     end
@@ -7362,8 +9471,8 @@ class UnionMetadataPropertyHandling < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif metadata_property_handling != nil
-      metadata_property_handling.to_dynamic
+    elsif ns_string != nil
+      ns_string.to_dynamic
     end
   end
 
@@ -7372,7 +9481,7 @@ class UnionMetadataPropertyHandling < Dry::Struct
   end
 end
 
-class Mutable < Dry::Struct
+class Null < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7394,18 +9503,18 @@ class Mutable < Dry::Struct
   end
 end
 
-class UnionMutable < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :mutable, Mutable.optional
+class UnionNULL < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :null,   Null.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, mutable: nil)
+      return new(double: d, null: nil)
     end
     begin
-      value = Mutable.from_dynamic!(d)
-      if schema.key(:mutable).type.right.valid? value
-        return new(mutable: value, double: nil)
+      value = Null.from_dynamic!(d)
+      if schema.key(:null).type.right.valid? value
+        return new(null: value, double: nil)
       end
     rescue
     end
@@ -7419,8 +9528,8 @@ class UnionMutable < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif mutable != nil
-      mutable.to_dynamic
+    elsif null != nil
+      null.to_dynamic
     end
   end
 
@@ -7429,7 +9538,7 @@ class UnionMutable < Dry::Struct
   end
 end
 
-class Mutating < Dry::Struct
+class Nullptr < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7451,18 +9560,18 @@ class Mutating < Dry::Struct
   end
 end
 
-class UnionMutating < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :mutating, Mutating.optional
+class UnionNullptr < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :nullptr, Nullptr.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, mutating: nil)
+      return new(double: d, nullptr: nil)
     end
     begin
-      value = Mutating.from_dynamic!(d)
-      if schema.key(:mutating).type.right.valid? value
-        return new(mutating: value, double: nil)
+      value = Nullptr.from_dynamic!(d)
+      if schema.key(:nullptr).type.right.valid? value
+        return new(nullptr: value, double: nil)
       end
     rescue
     end
@@ -7476,8 +9585,8 @@ class UnionMutating < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif mutating != nil
-      mutating.to_dynamic
+    elsif nullptr != nil
+      nullptr.to_dynamic
     end
   end
 
@@ -7486,7 +9595,7 @@ class UnionMutating < Dry::Struct
   end
 end
 
-class Namespace < Dry::Struct
+class Number < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7508,18 +9617,18 @@ class Namespace < Dry::Struct
   end
 end
 
-class UnionNamespace < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :namespace, Namespace.optional
+class UnionNumber < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :number, Number.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, namespace: nil)
+      return new(double: d, number: nil)
     end
     begin
-      value = Namespace.from_dynamic!(d)
-      if schema.key(:namespace).type.right.valid? value
-        return new(namespace: value, double: nil)
+      value = Number.from_dynamic!(d)
+      if schema.key(:number).type.right.valid? value
+        return new(number: value, double: nil)
       end
     rescue
     end
@@ -7533,8 +9642,8 @@ class UnionNamespace < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif namespace != nil
-      namespace.to_dynamic
+    elsif number != nil
+      number.to_dynamic
     end
   end
 
@@ -7543,7 +9652,7 @@ class UnionNamespace < Dry::Struct
   end
 end
 
-class Native < Dry::Struct
+class ObjectClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7565,18 +9674,18 @@ class Native < Dry::Struct
   end
 end
 
-class UnionNative < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :native, Native.optional
+class UnionObject < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :object_class, ObjectClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, native: nil)
+      return new(double: d, object_class: nil)
     end
     begin
-      value = Native.from_dynamic!(d)
-      if schema.key(:native).type.right.valid? value
-        return new(native: value, double: nil)
+      value = ObjectClass.from_dynamic!(d)
+      if schema.key(:object_class).type.right.valid? value
+        return new(object_class: value, double: nil)
       end
     rescue
     end
@@ -7590,8 +9699,8 @@ class UnionNative < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif native != nil
-      native.to_dynamic
+    elsif object_class != nil
+      object_class.to_dynamic
     end
   end
 
@@ -7600,7 +9709,7 @@ class UnionNative < Dry::Struct
   end
 end
 
-class Newtonsoft < Dry::Struct
+class ObjectMapper < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7622,18 +9731,18 @@ class Newtonsoft < Dry::Struct
   end
 end
 
-class UnionNewtonsoft < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :newtonsoft, Newtonsoft.optional
+class UnionObjectMapper < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :object_mapper, ObjectMapper.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, newtonsoft: nil)
+      return new(double: d, object_mapper: nil)
     end
     begin
-      value = Newtonsoft.from_dynamic!(d)
-      if schema.key(:newtonsoft).type.right.valid? value
-        return new(newtonsoft: value, double: nil)
+      value = ObjectMapper.from_dynamic!(d)
+      if schema.key(:object_mapper).type.right.valid? value
+        return new(object_mapper: value, double: nil)
       end
     rescue
     end
@@ -7647,8 +9756,8 @@ class UnionNewtonsoft < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif newtonsoft != nil
-      newtonsoft.to_dynamic
+    elsif object_mapper != nil
+      object_mapper.to_dynamic
     end
   end
 
@@ -7657,7 +9766,7 @@ class UnionNewtonsoft < Dry::Struct
   end
 end
 
-class No < Dry::Struct
+class Of < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7679,18 +9788,18 @@ class No < Dry::Struct
   end
 end
 
-class UnionNO < Dry::Struct
+class UnionOf < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :no,     No.optional
+  attribute :of,     Of.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, no: nil)
+      return new(double: d, of: nil)
     end
     begin
-      value = No.from_dynamic!(d)
-      if schema.key(:no).type.right.valid? value
-        return new(no: value, double: nil)
+      value = Of.from_dynamic!(d)
+      if schema.key(:of).type.right.valid? value
+        return new(of: value, double: nil)
       end
     rescue
     end
@@ -7704,8 +9813,8 @@ class UnionNO < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif no != nil
-      no.to_dynamic
+    elsif of != nil
+      of.to_dynamic
     end
   end
 
@@ -7714,7 +9823,7 @@ class UnionNO < Dry::Struct
   end
 end
 
-class Noexcept < Dry::Struct
+class Oneway < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7736,18 +9845,18 @@ class Noexcept < Dry::Struct
   end
 end
 
-class UnionNoexcept < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :noexcept, Noexcept.optional
+class UnionOneway < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :oneway, Oneway.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, noexcept: nil)
+      return new(double: d, oneway: nil)
     end
     begin
-      value = Noexcept.from_dynamic!(d)
-      if schema.key(:noexcept).type.right.valid? value
-        return new(noexcept: value, double: nil)
+      value = Oneway.from_dynamic!(d)
+      if schema.key(:oneway).type.right.valid? value
+        return new(oneway: value, double: nil)
       end
     rescue
     end
@@ -7761,8 +9870,8 @@ class UnionNoexcept < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif noexcept != nil
-      noexcept.to_dynamic
+    elsif oneway != nil
+      oneway.to_dynamic
     end
   end
 
@@ -7771,7 +9880,7 @@ class UnionNoexcept < Dry::Struct
   end
 end
 
-class Nonatomic < Dry::Struct
+class Operator < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7793,18 +9902,18 @@ class Nonatomic < Dry::Struct
   end
 end
 
-class UnionNonatomic < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :nonatomic, Nonatomic.optional
+class UnionOperator < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :operator, Operator.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonatomic: nil)
+      return new(double: d, operator: nil)
     end
     begin
-      value = Nonatomic.from_dynamic!(d)
-      if schema.key(:nonatomic).type.right.valid? value
-        return new(nonatomic: value, double: nil)
+      value = Operator.from_dynamic!(d)
+      if schema.key(:operator).type.right.valid? value
+        return new(operator: value, double: nil)
       end
     rescue
     end
@@ -7818,8 +9927,8 @@ class UnionNonatomic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonatomic != nil
-      nonatomic.to_dynamic
+    elsif operator != nil
+      operator.to_dynamic
     end
   end
 
@@ -7828,7 +9937,7 @@ class UnionNonatomic < Dry::Struct
   end
 end
 
-class None < Dry::Struct
+class OrEq < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7850,18 +9959,18 @@ class None < Dry::Struct
   end
 end
 
-class UnionNone < Dry::Struct
+class UnionOrEq < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :none,   None.optional
+  attribute :or_eq,  OrEq.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, none: nil)
+      return new(double: d, or_eq: nil)
     end
     begin
-      value = None.from_dynamic!(d)
-      if schema.key(:none).type.right.valid? value
-        return new(none: value, double: nil)
+      value = OrEq.from_dynamic!(d)
+      if schema.key(:or_eq).type.right.valid? value
+        return new(or_eq: value, double: nil)
       end
     rescue
     end
@@ -7875,8 +9984,8 @@ class UnionNone < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif none != nil
-      none.to_dynamic
+    elsif or_eq != nil
+      or_eq.to_dynamic
     end
   end
 
@@ -7885,7 +9994,7 @@ class UnionNone < Dry::Struct
   end
 end
 
-class Nonlocal < Dry::Struct
+class Out < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7907,18 +10016,18 @@ class Nonlocal < Dry::Struct
   end
 end
 
-class UnionNonlocal < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :nonlocal, Nonlocal.optional
+class UnionOut < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :out,    Out.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonlocal: nil)
+      return new(double: d, out: nil)
     end
     begin
-      value = Nonlocal.from_dynamic!(d)
-      if schema.key(:nonlocal).type.right.valid? value
-        return new(nonlocal: value, double: nil)
+      value = Out.from_dynamic!(d)
+      if schema.key(:out).type.right.valid? value
+        return new(out: value, double: nil)
       end
     rescue
     end
@@ -7932,8 +10041,8 @@ class UnionNonlocal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonlocal != nil
-      nonlocal.to_dynamic
+    elsif out != nil
+      out.to_dynamic
     end
   end
 
@@ -7942,7 +10051,7 @@ class UnionNonlocal < Dry::Struct
   end
 end
 
-class Nonmutating < Dry::Struct
+class Override < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -7964,18 +10073,18 @@ class Nonmutating < Dry::Struct
   end
 end
 
-class UnionNonmutating < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :nonmutating, Nonmutating.optional
-
+class UnionOverride < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :override, Override.optional
+
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nonmutating: nil)
+      return new(double: d, override: nil)
     end
     begin
-      value = Nonmutating.from_dynamic!(d)
-      if schema.key(:nonmutating).type.right.valid? value
-        return new(nonmutating: value, double: nil)
+      value = Override.from_dynamic!(d)
+      if schema.key(:override).type.right.valid? value
+        return new(override: value, double: nil)
       end
     rescue
     end
@@ -7989,8 +10098,8 @@ class UnionNonmutating < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nonmutating != nil
-      nonmutating.to_dynamic
+    elsif override != nil
+      override.to_dynamic
     end
   end
 
@@ -7999,7 +10108,7 @@ class UnionNonmutating < Dry::Struct
   end
 end
 
-class NotEq < Dry::Struct
+class Package < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8021,18 +10130,18 @@ class NotEq < Dry::Struct
   end
 end
 
-class UnionNotEq < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :not_eq, NotEq.optional
+class UnionPackage < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :package, Package.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, not_eq: nil)
+      return new(double: d, package: nil)
     end
     begin
-      value = NotEq.from_dynamic!(d)
-      if schema.key(:not_eq).type.right.valid? value
-        return new(not_eq: value, double: nil)
+      value = Package.from_dynamic!(d)
+      if schema.key(:package).type.right.valid? value
+        return new(package: value, double: nil)
       end
     rescue
     end
@@ -8046,8 +10155,8 @@ class UnionNotEq < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif not_eq != nil
-      not_eq.to_dynamic
+    elsif package != nil
+      package.to_dynamic
     end
   end
 
@@ -8056,7 +10165,7 @@ class UnionNotEq < Dry::Struct
   end
 end
 
-class NSString < Dry::Struct
+class Params < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8078,18 +10187,18 @@ class NSString < Dry::Struct
   end
 end
 
-class UnionNSString < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :ns_string, NSString.optional
+class UnionParams < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :params, Params.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, ns_string: nil)
+      return new(double: d, params: nil)
     end
     begin
-      value = NSString.from_dynamic!(d)
-      if schema.key(:ns_string).type.right.valid? value
-        return new(ns_string: value, double: nil)
+      value = Params.from_dynamic!(d)
+      if schema.key(:params).type.right.valid? value
+        return new(params: value, double: nil)
       end
     rescue
     end
@@ -8103,8 +10212,8 @@ class UnionNSString < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif ns_string != nil
-      ns_string.to_dynamic
+    elsif params != nil
+      params.to_dynamic
     end
   end
 
@@ -8113,7 +10222,7 @@ class UnionNSString < Dry::Struct
   end
 end
 
-class Null < Dry::Struct
+class Pass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8135,18 +10244,18 @@ class Null < Dry::Struct
   end
 end
 
-class UnionNULL < Dry::Struct
+class UnionPass < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :null,   Null.optional
+  attribute :pass,   Pass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, null: nil)
+      return new(double: d, pass: nil)
     end
     begin
-      value = Null.from_dynamic!(d)
-      if schema.key(:null).type.right.valid? value
-        return new(null: value, double: nil)
+      value = Pass.from_dynamic!(d)
+      if schema.key(:pass).type.right.valid? value
+        return new(pass: value, double: nil)
       end
     rescue
     end
@@ -8160,8 +10269,8 @@ class UnionNULL < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif null != nil
-      null.to_dynamic
+    elsif pass != nil
+      pass.to_dynamic
     end
   end
 
@@ -8170,7 +10279,7 @@ class UnionNULL < Dry::Struct
   end
 end
 
-class Nullptr < Dry::Struct
+class Port < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8192,18 +10301,18 @@ class Nullptr < Dry::Struct
   end
 end
 
-class UnionNullptr < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :nullptr, Nullptr.optional
+class UnionPort < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :port,   Port.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, nullptr: nil)
+      return new(double: d, port: nil)
     end
     begin
-      value = Nullptr.from_dynamic!(d)
-      if schema.key(:nullptr).type.right.valid? value
-        return new(nullptr: value, double: nil)
+      value = Port.from_dynamic!(d)
+      if schema.key(:port).type.right.valid? value
+        return new(port: value, double: nil)
       end
     rescue
     end
@@ -8217,8 +10326,8 @@ class UnionNullptr < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif nullptr != nil
-      nullptr.to_dynamic
+    elsif port != nil
+      port.to_dynamic
     end
   end
 
@@ -8227,7 +10336,7 @@ class UnionNullptr < Dry::Struct
   end
 end
 
-class Number < Dry::Struct
+class Postfix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8249,18 +10358,18 @@ class Number < Dry::Struct
   end
 end
 
-class UnionNumber < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :number, Number.optional
+class UnionPostfix < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :postfix, Postfix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, number: nil)
+      return new(double: d, postfix: nil)
     end
     begin
-      value = Number.from_dynamic!(d)
-      if schema.key(:number).type.right.valid? value
-        return new(number: value, double: nil)
+      value = Postfix.from_dynamic!(d)
+      if schema.key(:postfix).type.right.valid? value
+        return new(postfix: value, double: nil)
       end
     rescue
     end
@@ -8274,8 +10383,8 @@ class UnionNumber < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif number != nil
-      number.to_dynamic
+    elsif postfix != nil
+      postfix.to_dynamic
     end
   end
 
@@ -8284,7 +10393,7 @@ class UnionNumber < Dry::Struct
   end
 end
 
-class ObjectClass < Dry::Struct
+class Precedence < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8306,18 +10415,18 @@ class ObjectClass < Dry::Struct
   end
 end
 
-class UnionObject < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :object_class, ObjectClass.optional
+class UnionPrecedence < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :precedence, Precedence.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, object_class: nil)
+      return new(double: d, precedence: nil)
     end
     begin
-      value = ObjectClass.from_dynamic!(d)
-      if schema.key(:object_class).type.right.valid? value
-        return new(object_class: value, double: nil)
+      value = Precedence.from_dynamic!(d)
+      if schema.key(:precedence).type.right.valid? value
+        return new(precedence: value, double: nil)
       end
     rescue
     end
@@ -8331,8 +10440,8 @@ class UnionObject < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif object_class != nil
-      object_class.to_dynamic
+    elsif precedence != nil
+      precedence.to_dynamic
     end
   end
 
@@ -8341,7 +10450,7 @@ class UnionObject < Dry::Struct
   end
 end
 
-class Of < Dry::Struct
+class Prefix < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8363,18 +10472,18 @@ class Of < Dry::Struct
   end
 end
 
-class UnionOf < Dry::Struct
+class UnionPrefix < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :of,     Of.optional
+  attribute :prefix, Prefix.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, of: nil)
+      return new(double: d, prefix: nil)
     end
     begin
-      value = Of.from_dynamic!(d)
-      if schema.key(:of).type.right.valid? value
-        return new(of: value, double: nil)
+      value = Prefix.from_dynamic!(d)
+      if schema.key(:prefix).type.right.valid? value
+        return new(prefix: value, double: nil)
       end
     rescue
     end
@@ -8388,8 +10497,8 @@ class UnionOf < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif of != nil
-      of.to_dynamic
+    elsif prefix != nil
+      prefix.to_dynamic
     end
   end
 
@@ -8398,7 +10507,7 @@ class UnionOf < Dry::Struct
   end
 end
 
-class Oneway < Dry::Struct
+class PrintMembers < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8420,18 +10529,18 @@ class Oneway < Dry::Struct
   end
 end
 
-class UnionOneway < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :oneway, Oneway.optional
+class UnionPrintMembers < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :print_members, PrintMembers.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, oneway: nil)
+      return new(double: d, print_members: nil)
     end
     begin
-      value = Oneway.from_dynamic!(d)
-      if schema.key(:oneway).type.right.valid? value
-        return new(oneway: value, double: nil)
+      value = PrintMembers.from_dynamic!(d)
+      if schema.key(:print_members).type.right.valid? value
+        return new(print_members: value, double: nil)
       end
     rescue
     end
@@ -8445,8 +10554,8 @@ class UnionOneway < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif oneway != nil
-      oneway.to_dynamic
+    elsif print_members != nil
+      print_members.to_dynamic
     end
   end
 
@@ -8455,7 +10564,7 @@ class UnionOneway < Dry::Struct
   end
 end
 
-class Operator < Dry::Struct
+class Private < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8477,18 +10586,18 @@ class Operator < Dry::Struct
   end
 end
 
-class UnionOperator < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :operator, Operator.optional
+class UnionPrivate < Dry::Struct
+  attribute :double,  Types::Double.optional
+  attribute :private, Private.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, operator: nil)
+      return new(double: d, private: nil)
     end
     begin
-      value = Operator.from_dynamic!(d)
-      if schema.key(:operator).type.right.valid? value
-        return new(operator: value, double: nil)
+      value = Private.from_dynamic!(d)
+      if schema.key(:private).type.right.valid? value
+        return new(private: value, double: nil)
       end
     rescue
     end
@@ -8502,8 +10611,8 @@ class UnionOperator < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif operator != nil
-      operator.to_dynamic
+    elsif private != nil
+      private.to_dynamic
     end
   end
 
@@ -8512,7 +10621,7 @@ class UnionOperator < Dry::Struct
   end
 end
 
-class OrEq < Dry::Struct
+class Protected < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8534,18 +10643,18 @@ class OrEq < Dry::Struct
   end
 end
 
-class UnionOrEq < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :or_eq,  OrEq.optional
+class UnionProtected < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :protected, Protected.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, or_eq: nil)
+      return new(double: d, protected: nil)
     end
     begin
-      value = OrEq.from_dynamic!(d)
-      if schema.key(:or_eq).type.right.valid? value
-        return new(or_eq: value, double: nil)
+      value = Protected.from_dynamic!(d)
+      if schema.key(:protected).type.right.valid? value
+        return new(protected: value, double: nil)
       end
     rescue
     end
@@ -8559,8 +10668,8 @@ class UnionOrEq < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif or_eq != nil
-      or_eq.to_dynamic
+    elsif protected != nil
+      protected.to_dynamic
     end
   end
 
@@ -8569,7 +10678,7 @@ class UnionOrEq < Dry::Struct
   end
 end
 
-class Out < Dry::Struct
+class Protocol < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8591,18 +10700,18 @@ class Out < Dry::Struct
   end
 end
 
-class UnionOut < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :out,    Out.optional
+class UnionProtocol < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :protocol, Protocol.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, out: nil)
+      return new(double: d, protocol: nil)
     end
     begin
-      value = Out.from_dynamic!(d)
-      if schema.key(:out).type.right.valid? value
-        return new(out: value, double: nil)
+      value = Protocol.from_dynamic!(d)
+      if schema.key(:protocol).type.right.valid? value
+        return new(protocol: value, double: nil)
       end
     rescue
     end
@@ -8616,8 +10725,8 @@ class UnionOut < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif out != nil
-      out.to_dynamic
+    elsif protocol != nil
+      protocol.to_dynamic
     end
   end
 
@@ -8626,7 +10735,7 @@ class UnionOut < Dry::Struct
   end
 end
 
-class Override < Dry::Struct
+class Public < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8648,18 +10757,18 @@ class Override < Dry::Struct
   end
 end
 
-class UnionOverride < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :override, Override.optional
+class UnionPublic < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :public, Public.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, override: nil)
+      return new(double: d, public: nil)
     end
     begin
-      value = Override.from_dynamic!(d)
-      if schema.key(:override).type.right.valid? value
-        return new(override: value, double: nil)
+      value = Public.from_dynamic!(d)
+      if schema.key(:public).type.right.valid? value
+        return new(public: value, double: nil)
       end
     rescue
     end
@@ -8673,8 +10782,8 @@ class UnionOverride < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif override != nil
-      override.to_dynamic
+    elsif public != nil
+      public.to_dynamic
     end
   end
 
@@ -8683,7 +10792,7 @@ class UnionOverride < Dry::Struct
   end
 end
 
-class Package < Dry::Struct
+class Quicktype < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8705,18 +10814,18 @@ class Package < Dry::Struct
   end
 end
 
-class UnionPackage < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :package, Package.optional
+class UnionQuicktype < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :quicktype, Quicktype.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, package: nil)
+      return new(double: d, quicktype: nil)
     end
     begin
-      value = Package.from_dynamic!(d)
-      if schema.key(:package).type.right.valid? value
-        return new(package: value, double: nil)
+      value = Quicktype.from_dynamic!(d)
+      if schema.key(:quicktype).type.right.valid? value
+        return new(quicktype: value, double: nil)
       end
     rescue
     end
@@ -8730,8 +10839,8 @@ class UnionPackage < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif package != nil
-      package.to_dynamic
+    elsif quicktype != nil
+      quicktype.to_dynamic
     end
   end
 
@@ -8740,7 +10849,7 @@ class UnionPackage < Dry::Struct
   end
 end
 
-class Params < Dry::Struct
+class RangeClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8762,18 +10871,18 @@ class Params < Dry::Struct
   end
 end
 
-class UnionParams < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :params, Params.optional
+class UnionRange < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :range_class, RangeClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, params: nil)
+      return new(double: d, range_class: nil)
     end
     begin
-      value = Params.from_dynamic!(d)
-      if schema.key(:params).type.right.valid? value
-        return new(params: value, double: nil)
+      value = RangeClass.from_dynamic!(d)
+      if schema.key(:range_class).type.right.valid? value
+        return new(range_class: value, double: nil)
       end
     rescue
     end
@@ -8787,8 +10896,8 @@ class UnionParams < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif params != nil
-      params.to_dynamic
+    elsif range_class != nil
+      range_class.to_dynamic
     end
   end
 
@@ -8797,7 +10906,7 @@ class UnionParams < Dry::Struct
   end
 end
 
-class Pass < Dry::Struct
+class Readonly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8819,18 +10928,18 @@ class Pass < Dry::Struct
   end
 end
 
-class UnionPass < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :pass,   Pass.optional
+class UnionReadonly < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :readonly, Readonly.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, pass: nil)
+      return new(double: d, readonly: nil)
     end
     begin
-      value = Pass.from_dynamic!(d)
-      if schema.key(:pass).type.right.valid? value
-        return new(pass: value, double: nil)
+      value = Readonly.from_dynamic!(d)
+      if schema.key(:readonly).type.right.valid? value
+        return new(readonly: value, double: nil)
       end
     rescue
     end
@@ -8844,8 +10953,8 @@ class UnionPass < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif pass != nil
-      pass.to_dynamic
+    elsif readonly != nil
+      readonly.to_dynamic
     end
   end
 
@@ -8854,7 +10963,7 @@ class UnionPass < Dry::Struct
   end
 end
 
-class Port < Dry::Struct
+class Ref < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8876,18 +10985,18 @@ class Port < Dry::Struct
   end
 end
 
-class UnionPort < Dry::Struct
+class UnionRef < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :port,   Port.optional
+  attribute :ref,    Ref.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, port: nil)
+      return new(double: d, ref: nil)
     end
     begin
-      value = Port.from_dynamic!(d)
-      if schema.key(:port).type.right.valid? value
-        return new(port: value, double: nil)
+      value = Ref.from_dynamic!(d)
+      if schema.key(:ref).type.right.valid? value
+        return new(ref: value, double: nil)
       end
     rescue
     end
@@ -8901,8 +11010,8 @@ class UnionPort < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif port != nil
-      port.to_dynamic
+    elsif ref != nil
+      ref.to_dynamic
     end
   end
 
@@ -8911,7 +11020,7 @@ class UnionPort < Dry::Struct
   end
 end
 
-class Postfix < Dry::Struct
+class RegExp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8933,18 +11042,18 @@ class Postfix < Dry::Struct
   end
 end
 
-class UnionPostfix < Dry::Struct
+class UnionRegExp < Dry::Struct
   attribute :double,  Types::Double.optional
-  attribute :postfix, Postfix.optional
+  attribute :reg_exp, RegExp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, postfix: nil)
+      return new(double: d, reg_exp: nil)
     end
     begin
-      value = Postfix.from_dynamic!(d)
-      if schema.key(:postfix).type.right.valid? value
-        return new(postfix: value, double: nil)
+      value = RegExp.from_dynamic!(d)
+      if schema.key(:reg_exp).type.right.valid? value
+        return new(reg_exp: value, double: nil)
       end
     rescue
     end
@@ -8958,8 +11067,8 @@ class UnionPostfix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif postfix != nil
-      postfix.to_dynamic
+    elsif reg_exp != nil
+      reg_exp.to_dynamic
     end
   end
 
@@ -8968,7 +11077,7 @@ class UnionPostfix < Dry::Struct
   end
 end
 
-class Precedence < Dry::Struct
+class Register < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -8990,18 +11099,18 @@ class Precedence < Dry::Struct
   end
 end
 
-class UnionPrecedence < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :precedence, Precedence.optional
+class UnionRegister < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :register, Register.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, precedence: nil)
+      return new(double: d, register: nil)
     end
     begin
-      value = Precedence.from_dynamic!(d)
-      if schema.key(:precedence).type.right.valid? value
-        return new(precedence: value, double: nil)
+      value = Register.from_dynamic!(d)
+      if schema.key(:register).type.right.valid? value
+        return new(register: value, double: nil)
       end
     rescue
     end
@@ -9015,8 +11124,8 @@ class UnionPrecedence < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif precedence != nil
-      precedence.to_dynamic
+    elsif register != nil
+      register.to_dynamic
     end
   end
 
@@ -9025,7 +11134,7 @@ class UnionPrecedence < Dry::Struct
   end
 end
 
-class Prefix < Dry::Struct
+class ReinterpretCast < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9047,18 +11156,18 @@ class Prefix < Dry::Struct
   end
 end
 
-class UnionPrefix < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :prefix, Prefix.optional
+class UnionReinterpretCast < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :reinterpret_cast, ReinterpretCast.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, prefix: nil)
+      return new(double: d, reinterpret_cast: nil)
     end
     begin
-      value = Prefix.from_dynamic!(d)
-      if schema.key(:prefix).type.right.valid? value
-        return new(prefix: value, double: nil)
+      value = ReinterpretCast.from_dynamic!(d)
+      if schema.key(:reinterpret_cast).type.right.valid? value
+        return new(reinterpret_cast: value, double: nil)
       end
     rescue
     end
@@ -9072,8 +11181,8 @@ class UnionPrefix < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif prefix != nil
-      prefix.to_dynamic
+    elsif reinterpret_cast != nil
+      reinterpret_cast.to_dynamic
     end
   end
 
@@ -9082,7 +11191,7 @@ class UnionPrefix < Dry::Struct
   end
 end
 
-class Private < Dry::Struct
+class Repeat < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9104,18 +11213,18 @@ class Private < Dry::Struct
   end
 end
 
-class UnionPrivate < Dry::Struct
-  attribute :double,  Types::Double.optional
-  attribute :private, Private.optional
+class UnionRepeat < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :repeat, Repeat.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, private: nil)
+      return new(double: d, repeat: nil)
     end
     begin
-      value = Private.from_dynamic!(d)
-      if schema.key(:private).type.right.valid? value
-        return new(private: value, double: nil)
+      value = Repeat.from_dynamic!(d)
+      if schema.key(:repeat).type.right.valid? value
+        return new(repeat: value, double: nil)
       end
     rescue
     end
@@ -9129,8 +11238,8 @@ class UnionPrivate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif private != nil
-      private.to_dynamic
+    elsif repeat != nil
+      repeat.to_dynamic
     end
   end
 
@@ -9139,7 +11248,7 @@ class UnionPrivate < Dry::Struct
   end
 end
 
-class Protected < Dry::Struct
+class Required < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9161,18 +11270,18 @@ class Protected < Dry::Struct
   end
 end
 
-class UnionProtected < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :protected, Protected.optional
+class UnionRequired < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :required, Required.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, protected: nil)
+      return new(double: d, required: nil)
     end
     begin
-      value = Protected.from_dynamic!(d)
-      if schema.key(:protected).type.right.valid? value
-        return new(protected: value, double: nil)
+      value = Required.from_dynamic!(d)
+      if schema.key(:required).type.right.valid? value
+        return new(required: value, double: nil)
       end
     rescue
     end
@@ -9186,8 +11295,8 @@ class UnionProtected < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif protected != nil
-      protected.to_dynamic
+    elsif required != nil
+      required.to_dynamic
     end
   end
 
@@ -9196,7 +11305,7 @@ class UnionProtected < Dry::Struct
   end
 end
 
-class Protocol < Dry::Struct
+class Requires < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9218,18 +11327,18 @@ class Protocol < Dry::Struct
   end
 end
 
-class UnionProtocol < Dry::Struct
+class UnionRequires < Dry::Struct
   attribute :double,   Types::Double.optional
-  attribute :protocol, Protocol.optional
+  attribute :requires, Requires.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, protocol: nil)
+      return new(double: d, requires: nil)
     end
     begin
-      value = Protocol.from_dynamic!(d)
-      if schema.key(:protocol).type.right.valid? value
-        return new(protocol: value, double: nil)
+      value = Requires.from_dynamic!(d)
+      if schema.key(:requires).type.right.valid? value
+        return new(requires: value, double: nil)
       end
     rescue
     end
@@ -9243,8 +11352,8 @@ class UnionProtocol < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif protocol != nil
-      protocol.to_dynamic
+    elsif requires != nil
+      requires.to_dynamic
     end
   end
 
@@ -9253,7 +11362,7 @@ class UnionProtocol < Dry::Struct
   end
 end
 
-class Public < Dry::Struct
+class Restrict < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9275,18 +11384,18 @@ class Public < Dry::Struct
   end
 end
 
-class UnionPublic < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :public, Public.optional
+class UnionRestrict < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :restrict, Restrict.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, public: nil)
+      return new(double: d, restrict: nil)
     end
     begin
-      value = Public.from_dynamic!(d)
-      if schema.key(:public).type.right.valid? value
-        return new(public: value, double: nil)
+      value = Restrict.from_dynamic!(d)
+      if schema.key(:restrict).type.right.valid? value
+        return new(restrict: value, double: nil)
       end
     rescue
     end
@@ -9300,8 +11409,8 @@ class UnionPublic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif public != nil
-      public.to_dynamic
+    elsif restrict != nil
+      restrict.to_dynamic
     end
   end
 
@@ -9310,7 +11419,7 @@ class UnionPublic < Dry::Struct
   end
 end
 
-class Quicktype < Dry::Struct
+class Retain < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9332,18 +11441,18 @@ class Quicktype < Dry::Struct
   end
 end
 
-class UnionQuicktype < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :quicktype, Quicktype.optional
+class UnionRetain < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :retain, Retain.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, quicktype: nil)
+      return new(double: d, retain: nil)
     end
     begin
-      value = Quicktype.from_dynamic!(d)
-      if schema.key(:quicktype).type.right.valid? value
-        return new(quicktype: value, double: nil)
+      value = Retain.from_dynamic!(d)
+      if schema.key(:retain).type.right.valid? value
+        return new(retain: value, double: nil)
       end
     rescue
     end
@@ -9357,8 +11466,8 @@ class UnionQuicktype < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif quicktype != nil
-      quicktype.to_dynamic
+    elsif retain != nil
+      retain.to_dynamic
     end
   end
 
@@ -9367,7 +11476,7 @@ class UnionQuicktype < Dry::Struct
   end
 end
 
-class RangeClass < Dry::Struct
+class Rethrows < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9389,18 +11498,18 @@ class RangeClass < Dry::Struct
   end
 end
 
-class UnionRange < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :range_class, RangeClass.optional
+class UnionRethrows < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :rethrows, Rethrows.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, range_class: nil)
+      return new(double: d, rethrows: nil)
     end
     begin
-      value = RangeClass.from_dynamic!(d)
-      if schema.key(:range_class).type.right.valid? value
-        return new(range_class: value, double: nil)
+      value = Rethrows.from_dynamic!(d)
+      if schema.key(:rethrows).type.right.valid? value
+        return new(rethrows: value, double: nil)
       end
     rescue
     end
@@ -9414,8 +11523,8 @@ class UnionRange < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif range_class != nil
-      range_class.to_dynamic
+    elsif rethrows != nil
+      rethrows.to_dynamic
     end
   end
 
@@ -9424,7 +11533,7 @@ class UnionRange < Dry::Struct
   end
 end
 
-class Readonly < Dry::Struct
+class Right < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9446,18 +11555,18 @@ class Readonly < Dry::Struct
   end
 end
 
-class UnionReadonly < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :readonly, Readonly.optional
+class UnionRight < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :right,  Right.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, readonly: nil)
+      return new(double: d, right: nil)
     end
     begin
-      value = Readonly.from_dynamic!(d)
-      if schema.key(:readonly).type.right.valid? value
-        return new(readonly: value, double: nil)
+      value = Right.from_dynamic!(d)
+      if schema.key(:right).type.right.valid? value
+        return new(right: value, double: nil)
       end
     rescue
     end
@@ -9471,8 +11580,8 @@ class UnionReadonly < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif readonly != nil
-      readonly.to_dynamic
+    elsif right != nil
+      right.to_dynamic
     end
   end
 
@@ -9481,7 +11590,7 @@ class UnionReadonly < Dry::Struct
   end
 end
 
-class Ref < Dry::Struct
+class RuntimeType < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9503,18 +11612,18 @@ class Ref < Dry::Struct
   end
 end
 
-class UnionRef < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :ref,    Ref.optional
+class UnionRuntimeType < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :runtime_type, RuntimeType.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, ref: nil)
+      return new(double: d, runtime_type: nil)
     end
     begin
-      value = Ref.from_dynamic!(d)
-      if schema.key(:ref).type.right.valid? value
-        return new(ref: value, double: nil)
+      value = RuntimeType.from_dynamic!(d)
+      if schema.key(:runtime_type).type.right.valid? value
+        return new(runtime_type: value, double: nil)
       end
     rescue
     end
@@ -9528,8 +11637,8 @@ class UnionRef < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif ref != nil
-      ref.to_dynamic
+    elsif runtime_type != nil
+      runtime_type.to_dynamic
     end
   end
 
@@ -9538,7 +11647,7 @@ class UnionRef < Dry::Struct
   end
 end
 
-class Register < Dry::Struct
+class S < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9560,18 +11669,18 @@ class Register < Dry::Struct
   end
 end
 
-class UnionRegister < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :register, Register.optional
+class UnionS < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :s,      S.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, register: nil)
+      return new(double: d, s: nil)
     end
     begin
-      value = Register.from_dynamic!(d)
-      if schema.key(:register).type.right.valid? value
-        return new(register: value, double: nil)
+      value = S.from_dynamic!(d)
+      if schema.key(:s).type.right.valid? value
+        return new(s: value, double: nil)
       end
     rescue
     end
@@ -9585,8 +11694,8 @@ class UnionRegister < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif register != nil
-      register.to_dynamic
+    elsif s != nil
+      s.to_dynamic
     end
   end
 
@@ -9595,7 +11704,7 @@ class UnionRegister < Dry::Struct
   end
 end
 
-class ReinterpretCast < Dry::Struct
+class Sbyte < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9617,18 +11726,18 @@ class ReinterpretCast < Dry::Struct
   end
 end
 
-class UnionReinterpretCast < Dry::Struct
-  attribute :double,           Types::Double.optional
-  attribute :reinterpret_cast, ReinterpretCast.optional
+class UnionSbyte < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :sbyte,  Sbyte.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, reinterpret_cast: nil)
+      return new(double: d, sbyte: nil)
     end
     begin
-      value = ReinterpretCast.from_dynamic!(d)
-      if schema.key(:reinterpret_cast).type.right.valid? value
-        return new(reinterpret_cast: value, double: nil)
+      value = Sbyte.from_dynamic!(d)
+      if schema.key(:sbyte).type.right.valid? value
+        return new(sbyte: value, double: nil)
       end
     rescue
     end
@@ -9642,8 +11751,8 @@ class UnionReinterpretCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif reinterpret_cast != nil
-      reinterpret_cast.to_dynamic
+    elsif sbyte != nil
+      sbyte.to_dynamic
     end
   end
 
@@ -9652,7 +11761,7 @@ class UnionReinterpretCast < Dry::Struct
   end
 end
 
-class Repeat < Dry::Struct
+class Sealed < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9674,18 +11783,18 @@ class Repeat < Dry::Struct
   end
 end
 
-class UnionRepeat < Dry::Struct
+class UnionSealed < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :repeat, Repeat.optional
+  attribute :sealed, Sealed.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, repeat: nil)
+      return new(double: d, sealed: nil)
     end
     begin
-      value = Repeat.from_dynamic!(d)
-      if schema.key(:repeat).type.right.valid? value
-        return new(repeat: value, double: nil)
+      value = Sealed.from_dynamic!(d)
+      if schema.key(:sealed).type.right.valid? value
+        return new(sealed: value, double: nil)
       end
     rescue
     end
@@ -9699,8 +11808,8 @@ class UnionRepeat < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif repeat != nil
-      repeat.to_dynamic
+    elsif sealed != nil
+      sealed.to_dynamic
     end
   end
 
@@ -9709,7 +11818,7 @@ class UnionRepeat < Dry::Struct
   end
 end
 
-class Required < Dry::Struct
+class Sel < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9731,18 +11840,18 @@ class Required < Dry::Struct
   end
 end
 
-class UnionRequired < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :required, Required.optional
+class UnionSEL < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :sel,    Sel.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, required: nil)
+      return new(double: d, sel: nil)
     end
     begin
-      value = Required.from_dynamic!(d)
-      if schema.key(:required).type.right.valid? value
-        return new(required: value, double: nil)
+      value = Sel.from_dynamic!(d)
+      if schema.key(:sel).type.right.valid? value
+        return new(sel: value, double: nil)
       end
     rescue
     end
@@ -9756,8 +11865,8 @@ class UnionRequired < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif required != nil
-      required.to_dynamic
+    elsif sel != nil
+      sel.to_dynamic
     end
   end
 
@@ -9766,7 +11875,7 @@ class UnionRequired < Dry::Struct
   end
 end
 
-class Requires < Dry::Struct
+class UnionSelfSelf < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9788,18 +11897,18 @@ class Requires < Dry::Struct
   end
 end
 
-class UnionRequires < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :requires, Requires.optional
+class UnionSelfUnion < Dry::Struct
+  attribute :double,          Types::Double.optional
+  attribute :union_self_self, UnionSelfSelf.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, requires: nil)
+      return new(double: d, union_self_self: nil)
     end
     begin
-      value = Requires.from_dynamic!(d)
-      if schema.key(:requires).type.right.valid? value
-        return new(requires: value, double: nil)
+      value = UnionSelfSelf.from_dynamic!(d)
+      if schema.key(:union_self_self).type.right.valid? value
+        return new(union_self_self: value, double: nil)
       end
     rescue
     end
@@ -9813,8 +11922,8 @@ class UnionRequires < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif requires != nil
-      requires.to_dynamic
+    elsif union_self_self != nil
+      union_self_self.to_dynamic
     end
   end
 
@@ -9823,7 +11932,7 @@ class UnionRequires < Dry::Struct
   end
 end
 
-class Restrict < Dry::Struct
+class Serialize < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9845,18 +11954,18 @@ class Restrict < Dry::Struct
   end
 end
 
-class UnionRestrict < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :restrict, Restrict.optional
+class UnionSerialize < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :serialize, Serialize.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, restrict: nil)
+      return new(double: d, serialize: nil)
     end
     begin
-      value = Restrict.from_dynamic!(d)
-      if schema.key(:restrict).type.right.valid? value
-        return new(restrict: value, double: nil)
+      value = Serialize.from_dynamic!(d)
+      if schema.key(:serialize).type.right.valid? value
+        return new(serialize: value, double: nil)
       end
     rescue
     end
@@ -9870,8 +11979,8 @@ class UnionRestrict < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif restrict != nil
-      restrict.to_dynamic
+    elsif serialize != nil
+      serialize.to_dynamic
     end
   end
 
@@ -9880,7 +11989,7 @@ class UnionRestrict < Dry::Struct
   end
 end
 
-class Retain < Dry::Struct
+class SerializerProvider < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9902,18 +12011,18 @@ class Retain < Dry::Struct
   end
 end
 
-class UnionRetain < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :retain, Retain.optional
+class UnionSerializerProvider < Dry::Struct
+  attribute :double,              Types::Double.optional
+  attribute :serializer_provider, SerializerProvider.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, retain: nil)
+      return new(double: d, serializer_provider: nil)
     end
     begin
-      value = Retain.from_dynamic!(d)
-      if schema.key(:retain).type.right.valid? value
-        return new(retain: value, double: nil)
+      value = SerializerProvider.from_dynamic!(d)
+      if schema.key(:serializer_provider).type.right.valid? value
+        return new(serializer_provider: value, double: nil)
       end
     rescue
     end
@@ -9927,8 +12036,8 @@ class UnionRetain < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif retain != nil
-      retain.to_dynamic
+    elsif serializer_provider != nil
+      serializer_provider.to_dynamic
     end
   end
 
@@ -9937,7 +12046,7 @@ class UnionRetain < Dry::Struct
   end
 end
 
-class Rethrows < Dry::Struct
+class SetClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -9959,18 +12068,18 @@ class Rethrows < Dry::Struct
   end
 end
 
-class UnionRethrows < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :rethrows, Rethrows.optional
+class UnionSet < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :set_class, SetClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, rethrows: nil)
+      return new(double: d, set_class: nil)
     end
     begin
-      value = Rethrows.from_dynamic!(d)
-      if schema.key(:rethrows).type.right.valid? value
-        return new(rethrows: value, double: nil)
+      value = SetClass.from_dynamic!(d)
+      if schema.key(:set_class).type.right.valid? value
+        return new(set_class: value, double: nil)
       end
     rescue
     end
@@ -9984,8 +12093,8 @@ class UnionRethrows < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif rethrows != nil
-      rethrows.to_dynamic
+    elsif set_class != nil
+      set_class.to_dynamic
     end
   end
 
@@ -9994,7 +12103,7 @@ class UnionRethrows < Dry::Struct
   end
 end
 
-class Right < Dry::Struct
+class Short < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10016,18 +12125,18 @@ class Right < Dry::Struct
   end
 end
 
-class UnionRight < Dry::Struct
+class UnionShort < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :right,  Right.optional
+  attribute :short,  Short.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, right: nil)
+      return new(double: d, short: nil)
     end
     begin
-      value = Right.from_dynamic!(d)
-      if schema.key(:right).type.right.valid? value
-        return new(right: value, double: nil)
+      value = Short.from_dynamic!(d)
+      if schema.key(:short).type.right.valid? value
+        return new(short: value, double: nil)
       end
     rescue
     end
@@ -10041,8 +12150,8 @@ class UnionRight < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif right != nil
-      right.to_dynamic
+    elsif short != nil
+      short.to_dynamic
     end
   end
 
@@ -10051,7 +12160,7 @@ class UnionRight < Dry::Struct
   end
 end
 
-class Sbyte < Dry::Struct
+class Signed < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10073,18 +12182,18 @@ class Sbyte < Dry::Struct
   end
 end
 
-class UnionSbyte < Dry::Struct
+class UnionSigned < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :sbyte,  Sbyte.optional
+  attribute :signed, Signed.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sbyte: nil)
+      return new(double: d, signed: nil)
     end
     begin
-      value = Sbyte.from_dynamic!(d)
-      if schema.key(:sbyte).type.right.valid? value
-        return new(sbyte: value, double: nil)
+      value = Signed.from_dynamic!(d)
+      if schema.key(:signed).type.right.valid? value
+        return new(signed: value, double: nil)
       end
     rescue
     end
@@ -10098,8 +12207,8 @@ class UnionSbyte < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sbyte != nil
-      sbyte.to_dynamic
+    elsif signed != nil
+      signed.to_dynamic
     end
   end
 
@@ -10108,7 +12217,7 @@ class UnionSbyte < Dry::Struct
   end
 end
 
-class Sealed < Dry::Struct
+class SimpleModule < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10130,18 +12239,18 @@ class Sealed < Dry::Struct
   end
 end
 
-class UnionSealed < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :sealed, Sealed.optional
+class UnionSimpleModule < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :simple_module, SimpleModule.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sealed: nil)
+      return new(double: d, simple_module: nil)
     end
     begin
-      value = Sealed.from_dynamic!(d)
-      if schema.key(:sealed).type.right.valid? value
-        return new(sealed: value, double: nil)
+      value = SimpleModule.from_dynamic!(d)
+      if schema.key(:simple_module).type.right.valid? value
+        return new(simple_module: value, double: nil)
       end
     rescue
     end
@@ -10155,8 +12264,8 @@ class UnionSealed < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sealed != nil
-      sealed.to_dynamic
+    elsif simple_module != nil
+      simple_module.to_dynamic
     end
   end
 
@@ -10165,7 +12274,7 @@ class UnionSealed < Dry::Struct
   end
 end
 
-class Sel < Dry::Struct
+class Sizeof < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10187,18 +12296,18 @@ class Sel < Dry::Struct
   end
 end
 
-class UnionSEL < Dry::Struct
+class UnionSizeof < Dry::Struct
   attribute :double, Types::Double.optional
-  attribute :sel,    Sel.optional
+  attribute :sizeof, Sizeof.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sel: nil)
+      return new(double: d, sizeof: nil)
     end
     begin
-      value = Sel.from_dynamic!(d)
-      if schema.key(:sel).type.right.valid? value
-        return new(sel: value, double: nil)
+      value = Sizeof.from_dynamic!(d)
+      if schema.key(:sizeof).type.right.valid? value
+        return new(sizeof: value, double: nil)
       end
     rescue
     end
@@ -10212,8 +12321,8 @@ class UnionSEL < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sel != nil
-      sel.to_dynamic
+    elsif sizeof != nil
+      sizeof.to_dynamic
     end
   end
 
@@ -10222,7 +12331,7 @@ class UnionSEL < Dry::Struct
   end
 end
 
-class UnionSelfSelf < Dry::Struct
+class Stackalloc < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10244,18 +12353,18 @@ class UnionSelfSelf < Dry::Struct
   end
 end
 
-class UnionSelfUnion < Dry::Struct
-  attribute :double,          Types::Double.optional
-  attribute :union_self_self, UnionSelfSelf.optional
+class UnionStackalloc < Dry::Struct
+  attribute :double,     Types::Double.optional
+  attribute :stackalloc, Stackalloc.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, union_self_self: nil)
+      return new(double: d, stackalloc: nil)
     end
     begin
-      value = UnionSelfSelf.from_dynamic!(d)
-      if schema.key(:union_self_self).type.right.valid? value
-        return new(union_self_self: value, double: nil)
+      value = Stackalloc.from_dynamic!(d)
+      if schema.key(:stackalloc).type.right.valid? value
+        return new(stackalloc: value, double: nil)
       end
     rescue
     end
@@ -10269,8 +12378,8 @@ class UnionSelfUnion < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif union_self_self != nil
-      union_self_self.to_dynamic
+    elsif stackalloc != nil
+      stackalloc.to_dynamic
     end
   end
 
@@ -10279,7 +12388,7 @@ class UnionSelfUnion < Dry::Struct
   end
 end
 
-class Serialize < Dry::Struct
+class Standards < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10301,18 +12410,18 @@ class Serialize < Dry::Struct
   end
 end
 
-class UnionSerialize < Dry::Struct
+class UnionStandards < Dry::Struct
   attribute :double,    Types::Double.optional
-  attribute :serialize, Serialize.optional
+  attribute :standards, Standards.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, serialize: nil)
+      return new(double: d, standards: nil)
     end
     begin
-      value = Serialize.from_dynamic!(d)
-      if schema.key(:serialize).type.right.valid? value
-        return new(serialize: value, double: nil)
+      value = Standards.from_dynamic!(d)
+      if schema.key(:standards).type.right.valid? value
+        return new(standards: value, double: nil)
       end
     rescue
     end
@@ -10326,8 +12435,8 @@ class UnionSerialize < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif serialize != nil
-      serialize.to_dynamic
+    elsif standards != nil
+      standards.to_dynamic
     end
   end
 
@@ -10336,7 +12445,7 @@ class UnionSerialize < Dry::Struct
   end
 end
 
-class SetClass < Dry::Struct
+class Static < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10358,18 +12467,18 @@ class SetClass < Dry::Struct
   end
 end
 
-class UnionSet < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :set_class, SetClass.optional
+class UnionStatic < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :static, Static.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, set_class: nil)
-    end
-    begin
-      value = SetClass.from_dynamic!(d)
-      if schema.key(:set_class).type.right.valid? value
-        return new(set_class: value, double: nil)
+      return new(double: d, static: nil)
+    end
+    begin
+      value = Static.from_dynamic!(d)
+      if schema.key(:static).type.right.valid? value
+        return new(static: value, double: nil)
       end
     rescue
     end
@@ -10383,8 +12492,8 @@ class UnionSet < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif set_class != nil
-      set_class.to_dynamic
+    elsif static != nil
+      static.to_dynamic
     end
   end
 
@@ -10393,7 +12502,7 @@ class UnionSet < Dry::Struct
   end
 end
 
-class Short < Dry::Struct
+class StaticAssert < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10415,18 +12524,18 @@ class Short < Dry::Struct
   end
 end
 
-class UnionShort < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :short,  Short.optional
+class UnionStaticAssert < Dry::Struct
+  attribute :double,        Types::Double.optional
+  attribute :static_assert, StaticAssert.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, short: nil)
+      return new(double: d, static_assert: nil)
     end
     begin
-      value = Short.from_dynamic!(d)
-      if schema.key(:short).type.right.valid? value
-        return new(short: value, double: nil)
+      value = StaticAssert.from_dynamic!(d)
+      if schema.key(:static_assert).type.right.valid? value
+        return new(static_assert: value, double: nil)
       end
     rescue
     end
@@ -10440,8 +12549,8 @@ class UnionShort < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif short != nil
-      short.to_dynamic
+    elsif static_assert != nil
+      static_assert.to_dynamic
     end
   end
 
@@ -10450,7 +12559,7 @@ class UnionShort < Dry::Struct
   end
 end
 
-class Signed < Dry::Struct
+class StaticCast < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10472,18 +12581,18 @@ class Signed < Dry::Struct
   end
 end
 
-class UnionSigned < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :signed, Signed.optional
+class UnionStaticCast < Dry::Struct
+  attribute :double,      Types::Double.optional
+  attribute :static_cast, StaticCast.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, signed: nil)
+      return new(double: d, static_cast: nil)
     end
     begin
-      value = Signed.from_dynamic!(d)
-      if schema.key(:signed).type.right.valid? value
-        return new(signed: value, double: nil)
+      value = StaticCast.from_dynamic!(d)
+      if schema.key(:static_cast).type.right.valid? value
+        return new(static_cast: value, double: nil)
       end
     rescue
     end
@@ -10497,8 +12606,8 @@ class UnionSigned < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif signed != nil
-      signed.to_dynamic
+    elsif static_cast != nil
+      static_cast.to_dynamic
     end
   end
 
@@ -10507,7 +12616,7 @@ class UnionSigned < Dry::Struct
   end
 end
 
-class Sizeof < Dry::Struct
+class StdDeserializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10529,18 +12638,18 @@ class Sizeof < Dry::Struct
   end
 end
 
-class UnionSizeof < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :sizeof, Sizeof.optional
+class UnionStdDeserializer < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :std_deserializer, StdDeserializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, sizeof: nil)
+      return new(double: d, std_deserializer: nil)
     end
     begin
-      value = Sizeof.from_dynamic!(d)
-      if schema.key(:sizeof).type.right.valid? value
-        return new(sizeof: value, double: nil)
+      value = StdDeserializer.from_dynamic!(d)
+      if schema.key(:std_deserializer).type.right.valid? value
+        return new(std_deserializer: value, double: nil)
       end
     rescue
     end
@@ -10554,8 +12663,8 @@ class UnionSizeof < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif sizeof != nil
-      sizeof.to_dynamic
+    elsif std_deserializer != nil
+      std_deserializer.to_dynamic
     end
   end
 
@@ -10564,7 +12673,7 @@ class UnionSizeof < Dry::Struct
   end
 end
 
-class Stackalloc < Dry::Struct
+class StdSerializer < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10586,18 +12695,18 @@ class Stackalloc < Dry::Struct
   end
 end
 
-class UnionStackalloc < Dry::Struct
-  attribute :double,     Types::Double.optional
-  attribute :stackalloc, Stackalloc.optional
+class UnionStdSerializer < Dry::Struct
+  attribute :double,         Types::Double.optional
+  attribute :std_serializer, StdSerializer.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, stackalloc: nil)
+      return new(double: d, std_serializer: nil)
     end
     begin
-      value = Stackalloc.from_dynamic!(d)
-      if schema.key(:stackalloc).type.right.valid? value
-        return new(stackalloc: value, double: nil)
+      value = StdSerializer.from_dynamic!(d)
+      if schema.key(:std_serializer).type.right.valid? value
+        return new(std_serializer: value, double: nil)
       end
     rescue
     end
@@ -10611,8 +12720,8 @@ class UnionStackalloc < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif stackalloc != nil
-      stackalloc.to_dynamic
+    elsif std_serializer != nil
+      std_serializer.to_dynamic
     end
   end
 
@@ -10621,7 +12730,7 @@ class UnionStackalloc < Dry::Struct
   end
 end
 
-class Static < Dry::Struct
+class Strictfp < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10643,18 +12752,18 @@ class Static < Dry::Struct
   end
 end
 
-class UnionStatic < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :static, Static.optional
+class UnionStrictfp < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :strictfp, Strictfp.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static: nil)
+      return new(double: d, strictfp: nil)
     end
     begin
-      value = Static.from_dynamic!(d)
-      if schema.key(:static).type.right.valid? value
-        return new(static: value, double: nil)
+      value = Strictfp.from_dynamic!(d)
+      if schema.key(:strictfp).type.right.valid? value
+        return new(strictfp: value, double: nil)
       end
     rescue
     end
@@ -10668,8 +12777,8 @@ class UnionStatic < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static != nil
-      static.to_dynamic
+    elsif strictfp != nil
+      strictfp.to_dynamic
     end
   end
 
@@ -10678,7 +12787,7 @@ class UnionStatic < Dry::Struct
   end
 end
 
-class StaticAssert < Dry::Struct
+class StringClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10700,18 +12809,18 @@ class StaticAssert < Dry::Struct
   end
 end
 
-class UnionStaticAssert < Dry::Struct
-  attribute :double,        Types::Double.optional
-  attribute :static_assert, StaticAssert.optional
+class UnionString < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :string_class, StringClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static_assert: nil)
+      return new(double: d, string_class: nil)
     end
     begin
-      value = StaticAssert.from_dynamic!(d)
-      if schema.key(:static_assert).type.right.valid? value
-        return new(static_assert: value, double: nil)
+      value = StringClass.from_dynamic!(d)
+      if schema.key(:string_class).type.right.valid? value
+        return new(string_class: value, double: nil)
       end
     rescue
     end
@@ -10725,8 +12834,8 @@ class UnionStaticAssert < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static_assert != nil
-      static_assert.to_dynamic
+    elsif string_class != nil
+      string_class.to_dynamic
     end
   end
 
@@ -10735,7 +12844,7 @@ class UnionStaticAssert < Dry::Struct
   end
 end
 
-class StaticCast < Dry::Struct
+class StructClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10757,18 +12866,18 @@ class StaticCast < Dry::Struct
   end
 end
 
-class UnionStaticCast < Dry::Struct
-  attribute :double,      Types::Double.optional
-  attribute :static_cast, StaticCast.optional
+class UnionStruct < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :struct_class, StructClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, static_cast: nil)
+      return new(double: d, struct_class: nil)
     end
     begin
-      value = StaticCast.from_dynamic!(d)
-      if schema.key(:static_cast).type.right.valid? value
-        return new(static_cast: value, double: nil)
+      value = StructClass.from_dynamic!(d)
+      if schema.key(:struct_class).type.right.valid? value
+        return new(struct_class: value, double: nil)
       end
     rescue
     end
@@ -10782,8 +12891,8 @@ class UnionStaticCast < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif static_cast != nil
-      static_cast.to_dynamic
+    elsif struct_class != nil
+      struct_class.to_dynamic
     end
   end
 
@@ -10792,7 +12901,7 @@ class UnionStaticCast < Dry::Struct
   end
 end
 
-class Strictfp < Dry::Struct
+class Subscript < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10814,18 +12923,18 @@ class Strictfp < Dry::Struct
   end
 end
 
-class UnionStrictfp < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :strictfp, Strictfp.optional
+class UnionSubscript < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :subscript, Subscript.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, strictfp: nil)
+      return new(double: d, subscript: nil)
     end
     begin
-      value = Strictfp.from_dynamic!(d)
-      if schema.key(:strictfp).type.right.valid? value
-        return new(strictfp: value, double: nil)
+      value = Subscript.from_dynamic!(d)
+      if schema.key(:subscript).type.right.valid? value
+        return new(subscript: value, double: nil)
       end
     rescue
     end
@@ -10839,8 +12948,8 @@ class UnionStrictfp < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif strictfp != nil
-      strictfp.to_dynamic
+    elsif subscript != nil
+      subscript.to_dynamic
     end
   end
 
@@ -10849,7 +12958,7 @@ class UnionStrictfp < Dry::Struct
   end
 end
 
-class StringClass < Dry::Struct
+class Switch < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10871,18 +12980,18 @@ class StringClass < Dry::Struct
   end
 end
 
-class UnionString < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :string_class, StringClass.optional
+class UnionSwitch < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :switch, Switch.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, string_class: nil)
+      return new(double: d, switch: nil)
     end
     begin
-      value = StringClass.from_dynamic!(d)
-      if schema.key(:string_class).type.right.valid? value
-        return new(string_class: value, double: nil)
+      value = Switch.from_dynamic!(d)
+      if schema.key(:switch).type.right.valid? value
+        return new(switch: value, double: nil)
       end
     rescue
     end
@@ -10896,8 +13005,8 @@ class UnionString < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif string_class != nil
-      string_class.to_dynamic
+    elsif switch != nil
+      switch.to_dynamic
     end
   end
 
@@ -10906,7 +13015,7 @@ class UnionString < Dry::Struct
   end
 end
 
-class StructClass < Dry::Struct
+class SymbolClass < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10928,18 +13037,18 @@ class StructClass < Dry::Struct
   end
 end
 
-class UnionStruct < Dry::Struct
+class UnionSymbol < Dry::Struct
   attribute :double,       Types::Double.optional
-  attribute :struct_class, StructClass.optional
+  attribute :symbol_class, SymbolClass.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, struct_class: nil)
+      return new(double: d, symbol_class: nil)
     end
     begin
-      value = StructClass.from_dynamic!(d)
-      if schema.key(:struct_class).type.right.valid? value
-        return new(struct_class: value, double: nil)
+      value = SymbolClass.from_dynamic!(d)
+      if schema.key(:symbol_class).type.right.valid? value
+        return new(symbol_class: value, double: nil)
       end
     rescue
     end
@@ -10953,8 +13062,8 @@ class UnionStruct < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif struct_class != nil
-      struct_class.to_dynamic
+    elsif symbol_class != nil
+      symbol_class.to_dynamic
     end
   end
 
@@ -10963,7 +13072,7 @@ class UnionStruct < Dry::Struct
   end
 end
 
-class Subscript < Dry::Struct
+class Synchronized < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -10985,18 +13094,18 @@ class Subscript < Dry::Struct
   end
 end
 
-class UnionSubscript < Dry::Struct
-  attribute :double,    Types::Double.optional
-  attribute :subscript, Subscript.optional
+class UnionSynchronized < Dry::Struct
+  attribute :double,       Types::Double.optional
+  attribute :synchronized, Synchronized.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, subscript: nil)
+      return new(double: d, synchronized: nil)
     end
     begin
-      value = Subscript.from_dynamic!(d)
-      if schema.key(:subscript).type.right.valid? value
-        return new(subscript: value, double: nil)
+      value = Synchronized.from_dynamic!(d)
+      if schema.key(:synchronized).type.right.valid? value
+        return new(synchronized: value, double: nil)
       end
     rescue
     end
@@ -11010,8 +13119,8 @@ class UnionSubscript < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif subscript != nil
-      subscript.to_dynamic
+    elsif synchronized != nil
+      synchronized.to_dynamic
     end
   end
 
@@ -11020,7 +13129,7 @@ class UnionSubscript < Dry::Struct
   end
 end
 
-class Switch < Dry::Struct
+class Template < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11042,18 +13151,18 @@ class Switch < Dry::Struct
   end
 end
 
-class UnionSwitch < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :switch, Switch.optional
+class UnionTemplate < Dry::Struct
+  attribute :double,   Types::Double.optional
+  attribute :template, Template.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, switch: nil)
+      return new(double: d, template: nil)
     end
     begin
-      value = Switch.from_dynamic!(d)
-      if schema.key(:switch).type.right.valid? value
-        return new(switch: value, double: nil)
+      value = Template.from_dynamic!(d)
+      if schema.key(:template).type.right.valid? value
+        return new(template: value, double: nil)
       end
     rescue
     end
@@ -11067,8 +13176,8 @@ class UnionSwitch < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif switch != nil
-      switch.to_dynamic
+    elsif template != nil
+      template.to_dynamic
     end
   end
 
@@ -11077,7 +13186,7 @@ class UnionSwitch < Dry::Struct
   end
 end
 
-class SymbolClass < Dry::Struct
+class This < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11099,18 +13208,18 @@ class SymbolClass < Dry::Struct
   end
 end
 
-class UnionSymbol < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :symbol_class, SymbolClass.optional
+class UnionThis < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :this,   This.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, symbol_class: nil)
+      return new(double: d, this: nil)
     end
     begin
-      value = SymbolClass.from_dynamic!(d)
-      if schema.key(:symbol_class).type.right.valid? value
-        return new(symbol_class: value, double: nil)
+      value = This.from_dynamic!(d)
+      if schema.key(:this).type.right.valid? value
+        return new(this: value, double: nil)
       end
     rescue
     end
@@ -11124,8 +13233,8 @@ class UnionSymbol < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif symbol_class != nil
-      symbol_class.to_dynamic
+    elsif this != nil
+      this.to_dynamic
     end
   end
 
@@ -11134,7 +13243,7 @@ class UnionSymbol < Dry::Struct
   end
 end
 
-class Synchronized < Dry::Struct
+class ThreadLocal < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11156,18 +13265,18 @@ class Synchronized < Dry::Struct
   end
 end
 
-class UnionSynchronized < Dry::Struct
+class UnionThreadLocal < Dry::Struct
   attribute :double,       Types::Double.optional
-  attribute :synchronized, Synchronized.optional
+  attribute :thread_local, ThreadLocal.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, synchronized: nil)
+      return new(double: d, thread_local: nil)
     end
     begin
-      value = Synchronized.from_dynamic!(d)
-      if schema.key(:synchronized).type.right.valid? value
-        return new(synchronized: value, double: nil)
+      value = ThreadLocal.from_dynamic!(d)
+      if schema.key(:thread_local).type.right.valid? value
+        return new(thread_local: value, double: nil)
       end
     rescue
     end
@@ -11181,8 +13290,8 @@ class UnionSynchronized < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif synchronized != nil
-      synchronized.to_dynamic
+    elsif thread_local != nil
+      thread_local.to_dynamic
     end
   end
 
@@ -11191,7 +13300,7 @@ class UnionSynchronized < Dry::Struct
   end
 end
 
-class Template < Dry::Struct
+class Throws < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11213,18 +13322,18 @@ class Template < Dry::Struct
   end
 end
 
-class UnionTemplate < Dry::Struct
-  attribute :double,   Types::Double.optional
-  attribute :template, Template.optional
+class UnionThrows < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :throws, Throws.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, template: nil)
+      return new(double: d, throws: nil)
     end
     begin
-      value = Template.from_dynamic!(d)
-      if schema.key(:template).type.right.valid? value
-        return new(template: value, double: nil)
+      value = Throws.from_dynamic!(d)
+      if schema.key(:throws).type.right.valid? value
+        return new(throws: value, double: nil)
       end
     rescue
     end
@@ -11238,8 +13347,8 @@ class UnionTemplate < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif template != nil
-      template.to_dynamic
+    elsif throws != nil
+      throws.to_dynamic
     end
   end
 
@@ -11248,7 +13357,7 @@ class UnionTemplate < Dry::Struct
   end
 end
 
-class This < Dry::Struct
+class TimeOnly < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11270,18 +13379,18 @@ class This < Dry::Struct
   end
 end
 
-class UnionThis < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :this,   This.optional
+class UnionTimeOnly < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :time_only, TimeOnly.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, this: nil)
+      return new(double: d, time_only: nil)
     end
     begin
-      value = This.from_dynamic!(d)
-      if schema.key(:this).type.right.valid? value
-        return new(this: value, double: nil)
+      value = TimeOnly.from_dynamic!(d)
+      if schema.key(:time_only).type.right.valid? value
+        return new(time_only: value, double: nil)
       end
     rescue
     end
@@ -11295,8 +13404,8 @@ class UnionThis < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif this != nil
-      this.to_dynamic
+    elsif time_only != nil
+      time_only.to_dynamic
     end
   end
 
@@ -11305,7 +13414,7 @@ class UnionThis < Dry::Struct
   end
 end
 
-class ThreadLocal < Dry::Struct
+class TimeOnlyConverter < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11327,18 +13436,18 @@ class ThreadLocal < Dry::Struct
   end
 end
 
-class UnionThreadLocal < Dry::Struct
-  attribute :double,       Types::Double.optional
-  attribute :thread_local, ThreadLocal.optional
+class UnionTimeOnlyConverter < Dry::Struct
+  attribute :double,              Types::Double.optional
+  attribute :time_only_converter, TimeOnlyConverter.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, thread_local: nil)
+      return new(double: d, time_only_converter: nil)
     end
     begin
-      value = ThreadLocal.from_dynamic!(d)
-      if schema.key(:thread_local).type.right.valid? value
-        return new(thread_local: value, double: nil)
+      value = TimeOnlyConverter.from_dynamic!(d)
+      if schema.key(:time_only_converter).type.right.valid? value
+        return new(time_only_converter: value, double: nil)
       end
     rescue
     end
@@ -11352,8 +13461,8 @@ class UnionThreadLocal < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif thread_local != nil
-      thread_local.to_dynamic
+    elsif time_only_converter != nil
+      time_only_converter.to_dynamic
     end
   end
 
@@ -11362,7 +13471,7 @@ class UnionThreadLocal < Dry::Struct
   end
 end
 
-class Throws < Dry::Struct
+class ToString < Dry::Struct
 
   def self.from_dynamic!(d)
     d = Types::Hash[d]
@@ -11384,18 +13493,18 @@ class Throws < Dry::Struct
   end
 end
 
-class UnionThrows < Dry::Struct
-  attribute :double, Types::Double.optional
-  attribute :throws, Throws.optional
+class UnionToString < Dry::Struct
+  attribute :double,    Types::Double.optional
+  attribute :to_string, ToString.optional
 
   def self.from_dynamic!(d)
     if schema.key(:double).type.right.valid? d
-      return new(double: d, throws: nil)
+      return new(double: d, to_string: nil)
     end
     begin
-      value = Throws.from_dynamic!(d)
-      if schema.key(:throws).type.right.valid? value
-        return new(throws: value, double: nil)
+      value = ToString.from_dynamic!(d)
+      if schema.key(:to_string).type.right.valid? value
+        return new(to_string: value, double: nil)
       end
     rescue
     end
@@ -11409,8 +13518,8 @@ class UnionThrows < Dry::Struct
   def to_dynamic
     if double != nil
       double
-    elsif throws != nil
-      throws.to_dynamic
+    elsif to_string != nil
+      to_string.to_dynamic
     end
   end
 
@@ -11875,6 +13984,63 @@ class UnionClass < Dry::Struct
   end
 end
 
+class Clone < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionClone < Dry::Struct
+  attribute :clone_1, Clone.optional
+  attribute :double,  Types::Double.optional
+
+  def self.from_dynamic!(d)
+    begin
+      value = Clone.from_dynamic!(d)
+      if schema.key(:clone_1).type.right.valid? value
+        return new(clone_1: value, double: nil)
+      end
+    rescue
+    end
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, clone_1: nil)
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if clone_1 != nil
+      clone_1.to_dynamic
+    elsif double != nil
+      double
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
 class ConstructorClass < Dry::Struct
 
   def self.from_dynamic!(d)
@@ -15124,6 +17290,177 @@ class UnionUsing < Dry::Struct
   end
 end
 
+class Utf8JSONReader < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUtf8JSONReader < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :utf8_json_reader, Utf8JSONReader.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, utf8_json_reader: nil)
+    end
+    begin
+      value = Utf8JSONReader.from_dynamic!(d)
+      if schema.key(:utf8_json_reader).type.right.valid? value
+        return new(utf8_json_reader: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif utf8_json_reader != nil
+      utf8_json_reader.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class Utf8JSONWriter < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUtf8JSONWriter < Dry::Struct
+  attribute :double,           Types::Double.optional
+  attribute :utf8_json_writer, Utf8JSONWriter.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, utf8_json_writer: nil)
+    end
+    begin
+      value = Utf8JSONWriter.from_dynamic!(d)
+      if schema.key(:utf8_json_writer).type.right.valid? value
+        return new(utf8_json_writer: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif utf8_json_writer != nil
+      utf8_json_writer.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UUID < Dry::Struct
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+    )
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    {
+    }
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
+class UnionUUID < Dry::Struct
+  attribute :double, Types::Double.optional
+  attribute :uuid,   UUID.optional
+
+  def self.from_dynamic!(d)
+    if schema.key(:double).type.right.valid? d
+      return new(double: d, uuid: nil)
+    end
+    begin
+      value = UUID.from_dynamic!(d)
+      if schema.key(:uuid).type.right.valid? value
+        return new(uuid: value, double: nil)
+      end
+    rescue
+    end
+    raise "Invalid union"
+  end
+
+  def self.from_json!(json)
+    from_dynamic!(JSON.parse(json))
+  end
+
+  def to_dynamic
+    if double != nil
+      double
+    elsif uuid != nil
+      uuid.to_dynamic
+    end
+  end
+
+  def to_json(options = nil)
+    JSON.generate(to_dynamic, options)
+  end
+end
+
 class Var < Dry::Struct
 
   def self.from_dynamic!(d)
@@ -15752,564 +18089,646 @@ class UnionYES < Dry::Struct
 end
 
 class TopLevel < Dry::Struct
-  attribute :empty,                      Types.Instance(UnionUnion).optional
-  attribute :top_level_bool,             Types.Instance(UnionBool).optional
-  attribute :complex,                    Types.Instance(UnionComplex).optional
-  attribute :imaginery,                  Types.Instance(UnionImaginery).optional
-  attribute :abstract,                   Types.Instance(UnionAbstract).optional
-  attribute :alignas,                    Types.Instance(UnionAlignas).optional
-  attribute :alignof,                    Types.Instance(UnionAlignof).optional
-  attribute :top_level_and,              Types.Instance(UnionAnd).optional
-  attribute :and_eq,                     Types.Instance(UnionAndEq).optional
-  attribute :top_level_any,              Types.Instance(UnionAnyUnion).optional
-  attribute :any,                        Types.Instance(UnionAny).optional
-  attribute :array,                      Types.Instance(UnionArray).optional
-  attribute :as,                         Types.Instance(UnionAs).optional
-  attribute :asm,                        Types.Instance(UnionASM).optional
-  attribute :assert,                     Types.Instance(UnionAssert).optional
-  attribute :associatedtype,             Types.Instance(UnionAssociatedtype).optional
-  attribute :associativity,              Types.Instance(UnionAssociativity).optional
-  attribute :async,                      Types.Instance(UnionAsync).optional
-  attribute :atomic,                     Types.Instance(UnionAtomic).optional
-  attribute :atomic_cancel,              Types.Instance(UnionAtomicCancel).optional
-  attribute :atomic_commit,              Types.Instance(UnionAtomicCommit).optional
-  attribute :atomic_noexcept,            Types.Instance(UnionAtomicNoexcept).optional
-  attribute :auto,                       Types.Instance(UnionAuto).optional
-  attribute :await,                      Types.Instance(UnionAwait).optional
-  attribute :base,                       Types.Instance(UnionBase).optional
-  attribute :bitand,                     Types.Instance(UnionBitand).optional
-  attribute :bitor,                      Types.Instance(UnionBitor).optional
-  attribute :bool,                       Types.Instance(UnionBOOL).optional
-  attribute :bool_1,                     Types.Instance(UnionBoolUnion).optional
-  attribute :boolean,                    Types.Instance(UnionBoolean).optional
-  attribute :top_level_break,            Types.Instance(UnionBreak).optional
-  attribute :bycopy,                     Types.Instance(UnionBycopy).optional
-  attribute :byref,                      Types.Instance(UnionByref).optional
-  attribute :byte,                       Types.Instance(UnionByte).optional
-  attribute :top_level_case,             Types.Instance(UnionCase).optional
-  attribute :top_level_catch,            Types.Instance(UnionCatch).optional
-  attribute :chan,                       Types.Instance(UnionChan).optional
-  attribute :char,                       Types.Instance(UnionChar).optional
-  attribute :char16_t,                   Types.Instance(UnionChar16T).optional
-  attribute :char32_t,                   Types.Instance(UnionChar32T).optional
-  attribute :checked,                    Types.Instance(UnionChecked).optional
-  attribute :class_1,                    Types.Instance(UnionClassUnion).optional
-  attribute :top_level_class,            Types.Instance(UnionClass).optional
-  attribute :co_await,                   Types.Instance(UnionCoAwait).optional
-  attribute :co_return,                  Types.Instance(UnionCoReturn).optional
-  attribute :co_yield,                   Types.Instance(UnionCoYield).optional
-  attribute :compl,                      Types.Instance(UnionCompl).optional
-  attribute :concept,                    Types.Instance(UnionConcept).optional
-  attribute :console,                    Types.Instance(UnionConsole).optional
-  attribute :const,                      Types.Instance(UnionConst).optional
-  attribute :const_cast,                 Types.Instance(UnionConstCast).optional
-  attribute :constexpr,                  Types.Instance(UnionConstexpr).optional
-  attribute :top_level_constructor,      Types.Instance(UnionConstructor).optional
-  attribute :continue,                   Types.Instance(UnionContinue).optional
-  attribute :convenience,                Types.Instance(UnionConvenience).optional
-  attribute :convert,                    Types.Instance(UnionConvert).optional
-  attribute :converter,                  Types.Instance(UnionConverter).optional
-  attribute :date,                       Types.Instance(UnionDate).optional
-  attribute :date_parse_handling,        Types.Instance(UnionDateParseHandling).optional
-  attribute :debugger,                   Types.Instance(UnionDebugger).optional
-  attribute :decimal,                    Types.Instance(UnionDecimal).optional
-  attribute :declare,                    Types.Instance(UnionDeclare).optional
-  attribute :decltype,                   Types.Instance(UnionDecltype).optional
-  attribute :decode_string,              Types.Instance(UnionDecodeString).optional
-  attribute :top_level_def,              Types.Instance(UnionDef).optional
-  attribute :top_level_default,          Types.Instance(UnionDefault).optional
-  attribute :defer,                      Types.Instance(UnionDefer).optional
-  attribute :deinit,                     Types.Instance(UnionDeinit).optional
-  attribute :del,                        Types.Instance(UnionDel).optional
-  attribute :delegate,                   Types.Instance(UnionDelegate).optional
-  attribute :delete,                     Types.Instance(UnionDelete).optional
-  attribute :dict,                       Types.Instance(UnionDict).optional
-  attribute :dictionary,                 Types.Instance(UnionDictionary).optional
-  attribute :did_set,                    Types.Instance(UnionDidSet).optional
-  attribute :top_level_do,               Types.Instance(UnionDo).optional
-  attribute :double,                     Types.Instance(UnionDouble).optional
-  attribute :dummy,                      Types::Double.optional
-  attribute :dynamic,                    Types.Instance(UnionDynamic).optional
-  attribute :dynamic_cast,               Types.Instance(UnionDynamicCast).optional
-  attribute :elif,                       Types.Instance(UnionElif).optional
-  attribute :top_level_else,             Types.Instance(UnionElse).optional
-  attribute :encode_quick_type,          Types.Instance(UnionEncodeQuickType).optional
-  attribute :top_level_enum,             Types.Instance(UnionEnum).optional
-  attribute :event,                      Types.Instance(UnionEvent).optional
-  attribute :except,                     Types.Instance(UnionExcept).optional
-  attribute :exception,                  Types.Instance(UnionException).optional
-  attribute :explicit,                   Types.Instance(UnionExplicit).optional
-  attribute :export,                     Types.Instance(UnionExport).optional
-  attribute :exposing,                   Types.Instance(UnionExposing).optional
-  attribute :extends,                    Types.Instance(UnionExtends).optional
-  attribute :extension,                  Types.Instance(UnionExtension).optional
-  attribute :extern,                     Types.Instance(UnionExtern).optional
-  attribute :fallthrough,                Types.Instance(UnionFallthrough).optional
-  attribute :false_1,                    Types.Instance(UnionFalseUnion).optional
-  attribute :top_level_false,            Types.Instance(UnionFalse).optional
-  attribute :fileprivate,                Types.Instance(UnionFileprivate).optional
-  attribute :final,                      Types.Instance(UnionFinal).optional
-  attribute :finally,                    Types.Instance(UnionFinally).optional
-  attribute :fixed,                      Types.Instance(UnionFixed).optional
-  attribute :float,                      Types.Instance(UnionFloat).optional
-  attribute :top_level_for,              Types.Instance(UnionFor).optional
-  attribute :foreach,                    Types.Instance(UnionForeach).optional
-  attribute :friend,                     Types.Instance(UnionFriend).optional
-  attribute :from,                       Types.Instance(UnionFrom).optional
-  attribute :from_json,                  Types.Instance(UnionFromJSON).optional
-  attribute :func,                       Types.Instance(UnionFunc).optional
-  attribute :function,                   Types.Instance(UnionFunction).optional
-  attribute :get,                        Types.Instance(UnionGet).optional
-  attribute :global,                     Types.Instance(UnionGlobal).optional
-  attribute :go,                         Types.Instance(UnionGo).optional
-  attribute :goto,                       Types.Instance(UnionGoto).optional
-  attribute :guard,                      Types.Instance(UnionGuard).optional
-  attribute :has_own_property,           Types.Instance(UnionHasOwnProperty).optional
-  attribute :id,                         Types.Instance(UnionID).optional
-  attribute :top_level_if,               Types.Instance(UnionIf).optional
-  attribute :imp,                        Types.Instance(UnionIMP).optional
-  attribute :implements,                 Types.Instance(UnionImplements).optional
-  attribute :implicit,                   Types.Instance(UnionImplicit).optional
-  attribute :import,                     Types.Instance(UnionImport).optional
-  attribute :top_level_in,               Types.Instance(UnionIn).optional
-  attribute :indirect,                   Types.Instance(UnionIndirect).optional
-  attribute :infix,                      Types.Instance(UnionInfix).optional
-  attribute :init,                       Types.Instance(UnionInit).optional
-  attribute :inline,                     Types.Instance(UnionInline).optional
-  attribute :inout,                      Types.Instance(UnionInout).optional
-  attribute :instanceof,                 Types.Instance(UnionInstanceof).optional
-  attribute :int,                        Types.Instance(UnionInt).optional
-  attribute :interface,                  Types.Instance(UnionInterface).optional
-  attribute :internal,                   Types.Instance(UnionInternal).optional
-  attribute :is,                         Types.Instance(UnionIs).optional
-  attribute :iterable,                   Types.Instance(UnionIterable).optional
-  attribute :jdec,                       Types.Instance(UnionJdec).optional
-  attribute :jenc,                       Types.Instance(UnionJenc).optional
-  attribute :jpipe,                      Types.Instance(UnionJpipe).optional
-  attribute :json,                       Types.Instance(UnionJSON).optional
-  attribute :json_converter,             Types.Instance(UnionJSONConverter).optional
-  attribute :json_serializer,            Types.Instance(UnionJSONSerializer).optional
-  attribute :json_token,                 Types.Instance(UnionJSONToken).optional
-  attribute :json_writer,                Types.Instance(UnionJSONWriter).optional
-  attribute :top_level_lambda,           Types.Instance(UnionLambda).optional
-  attribute :lazy,                       Types.Instance(UnionLazy).optional
-  attribute :left,                       Types.Instance(UnionLeft).optional
-  attribute :let,                        Types.Instance(UnionLet).optional
-  attribute :list,                       Types.Instance(UnionList).optional
-  attribute :lock,                       Types.Instance(UnionLock).optional
-  attribute :long,                       Types.Instance(UnionLong).optional
-  attribute :map,                        Types.Instance(UnionMap).optional
-  attribute :metadata_property_handling, Types.Instance(UnionMetadataPropertyHandling).optional
-  attribute :top_level_module,           Types.Instance(UnionModule).optional
-  attribute :mutable,                    Types.Instance(UnionMutable).optional
-  attribute :mutating,                   Types.Instance(UnionMutating).optional
-  attribute :namespace,                  Types.Instance(UnionNamespace).optional
-  attribute :native,                     Types.Instance(UnionNative).optional
-  attribute :top_level_new,              Types.Instance(UnionNew).optional
-  attribute :newtonsoft,                 Types.Instance(UnionNewtonsoft).optional
-  attribute :top_level_nil,              Types.Instance(UnionNil).optional
-  attribute :no,                         Types.Instance(UnionNO).optional
-  attribute :noexcept,                   Types.Instance(UnionNoexcept).optional
-  attribute :nonatomic,                  Types.Instance(UnionNonatomic).optional
-  attribute :top_level_none,             Types.Instance(UnionNoneUnion).optional
-  attribute :none,                       Types.Instance(UnionNone).optional
-  attribute :nonlocal,                   Types.Instance(UnionNonlocal).optional
-  attribute :nonmutating,                Types.Instance(UnionNonmutating).optional
-  attribute :top_level_not,              Types.Instance(UnionNot).optional
-  attribute :not_eq,                     Types.Instance(UnionNotEq).optional
-  attribute :ns_string,                  Types.Instance(UnionNSString).optional
-  attribute :null,                       Types.Instance(UnionNULL).optional
-  attribute :top_level_null,             Types.Instance(UnionNull).optional
-  attribute :nullptr,                    Types.Instance(UnionNullptr).optional
-  attribute :number,                     Types.Instance(UnionNumber).optional
-  attribute :object,                     Types.Instance(UnionObject).optional
-  attribute :of,                         Types.Instance(UnionOf).optional
-  attribute :oneway,                     Types.Instance(UnionOneway).optional
-  attribute :top_level_open,             Types.Instance(UnionOpen).optional
-  attribute :operator,                   Types.Instance(UnionOperator).optional
-  attribute :top_level_optional,         Types.Instance(UnionOptional).optional
-  attribute :top_level_or,               Types.Instance(UnionOr).optional
-  attribute :or_eq,                      Types.Instance(UnionOrEq).optional
-  attribute :out,                        Types.Instance(UnionOut).optional
-  attribute :override,                   Types.Instance(UnionOverride).optional
-  attribute :package,                    Types.Instance(UnionPackage).optional
-  attribute :params,                     Types.Instance(UnionParams).optional
-  attribute :pass,                       Types.Instance(UnionPass).optional
-  attribute :port,                       Types.Instance(UnionPort).optional
-  attribute :postfix,                    Types.Instance(UnionPostfix).optional
-  attribute :precedence,                 Types.Instance(UnionPrecedence).optional
-  attribute :prefix,                     Types.Instance(UnionPrefix).optional
-  attribute :top_level_print,            Types.Instance(UnionPrint).optional
-  attribute :top_level_printf,           Types.Instance(UnionPrintf).optional
-  attribute :private,                    Types.Instance(UnionPrivate).optional
-  attribute :protected,                  Types.Instance(UnionProtected).optional
-  attribute :protocol,                   Types.Instance(UnionProtocol).optional
-  attribute :top_level_protocol,         Types.Instance(UnionProtocolUnion).optional
-  attribute :public,                     Types.Instance(UnionPublic).optional
-  attribute :quicktype,                  Types.Instance(UnionQuicktype).optional
-  attribute :top_level_raise,            Types.Instance(UnionRaise).optional
-  attribute :range,                      Types.Instance(UnionRange).optional
-  attribute :readonly,                   Types.Instance(UnionReadonly).optional
-  attribute :ref,                        Types.Instance(UnionRef).optional
-  attribute :register,                   Types.Instance(UnionRegister).optional
-  attribute :reinterpret_cast,           Types.Instance(UnionReinterpretCast).optional
-  attribute :repeat,                     Types.Instance(UnionRepeat).optional
-  attribute :top_level_require,          Types.Instance(UnionRequire).optional
-  attribute :required,                   Types.Instance(UnionRequired).optional
-  attribute :requires,                   Types.Instance(UnionRequires).optional
-  attribute :restrict,                   Types.Instance(UnionRestrict).optional
-  attribute :retain,                     Types.Instance(UnionRetain).optional
-  attribute :rethrows,                   Types.Instance(UnionRethrows).optional
-  attribute :top_level_return,           Types.Instance(UnionReturn).optional
-  attribute :right,                      Types.Instance(UnionRight).optional
-  attribute :sbyte,                      Types.Instance(UnionSbyte).optional
-  attribute :sealed,                     Types.Instance(UnionSealed).optional
-  attribute :sel,                        Types.Instance(UnionSEL).optional
-  attribute :top_level_select,           Types.Instance(UnionSelect).optional
-  attribute :top_level_self,             Types.Instance(UnionSelf).optional
-  attribute :self_1,                     Types.Instance(UnionSelfUnion).optional
-  attribute :serialize,                  Types.Instance(UnionSerialize).optional
-  attribute :set,                        Types.Instance(UnionSet).optional
-  attribute :short,                      Types.Instance(UnionShort).optional
-  attribute :signed,                     Types.Instance(UnionSigned).optional
-  attribute :sizeof,                     Types.Instance(UnionSizeof).optional
-  attribute :stackalloc,                 Types.Instance(UnionStackalloc).optional
-  attribute :static,                     Types.Instance(UnionStatic).optional
-  attribute :static_assert,              Types.Instance(UnionStaticAssert).optional
-  attribute :static_cast,                Types.Instance(UnionStaticCast).optional
-  attribute :strictfp,                   Types.Instance(UnionStrictfp).optional
-  attribute :string,                     Types.Instance(UnionString).optional
-  attribute :struct,                     Types.Instance(UnionStruct).optional
-  attribute :subscript,                  Types.Instance(UnionSubscript).optional
-  attribute :top_level_super,            Types.Instance(UnionSuper).optional
-  attribute :switch,                     Types.Instance(UnionSwitch).optional
-  attribute :symbol,                     Types.Instance(UnionSymbol).optional
-  attribute :synchronized,               Types.Instance(UnionSynchronized).optional
-  attribute :top_level_system,           Types.Instance(UnionSystem).optional
-  attribute :template,                   Types.Instance(UnionTemplate).optional
-  attribute :top_level_then,             Types.Instance(UnionThen).optional
-  attribute :this,                       Types.Instance(UnionThis).optional
-  attribute :thread_local,               Types.Instance(UnionThreadLocal).optional
-  attribute :top_level_throw,            Types.Instance(UnionThrow).optional
-  attribute :throws,                     Types.Instance(UnionThrows).optional
-  attribute :top_level_to_json,          Types.Instance(UnionToJSON).optional
-  attribute :top_level,                  Types.Instance(UnionTopLevel).optional
-  attribute :transient,                  Types.Instance(UnionTransient).optional
-  attribute :top_level_true,             Types.Instance(UnionTrue).optional
-  attribute :true_1,                     Types.Instance(UnionTrueUnion).optional
-  attribute :top_level_try,              Types.Instance(UnionTry).optional
-  attribute :top_level_type,             Types.Instance(UnionType).optional
-  attribute :type_1,                     Types.Instance(UnionTypeUnion).optional
-  attribute :typealias,                  Types.Instance(UnionTypealias).optional
-  attribute :typedef,                    Types.Instance(UnionTypedef).optional
-  attribute :typeid,                     Types.Instance(UnionTypeid).optional
-  attribute :typename,                   Types.Instance(UnionTypename).optional
-  attribute :typeof,                     Types.Instance(UnionTypeof).optional
-  attribute :uint,                       Types.Instance(UnionUint).optional
-  attribute :ulong,                      Types.Instance(UnionUlong).optional
-  attribute :unchecked,                  Types.Instance(UnionUnchecked).optional
-  attribute :undefined,                  Types.Instance(UnionUndefined).optional
-  attribute :union,                      Types.Instance(UnionUnionUnion).optional
-  attribute :unowned,                    Types.Instance(UnionUnowned).optional
-  attribute :unsafe,                     Types.Instance(UnionUnsafe).optional
-  attribute :unsigned,                   Types.Instance(UnionUnsigned).optional
-  attribute :ushort,                     Types.Instance(UnionUshort).optional
-  attribute :using,                      Types.Instance(UnionUsing).optional
-  attribute :var,                        Types.Instance(UnionVar).optional
-  attribute :virtual,                    Types.Instance(UnionVirtual).optional
-  attribute :void,                       Types.Instance(UnionVoid).optional
-  attribute :volatile,                   Types.Instance(UnionVolatile).optional
-  attribute :wchar_t,                    Types.Instance(UnionWcharT).optional
-  attribute :weak,                       Types.Instance(UnionWeak).optional
-  attribute :where,                      Types.Instance(UnionWhere).optional
-  attribute :top_level_while,            Types.Instance(UnionWhile).optional
-  attribute :will_set,                   Types.Instance(UnionWillSet).optional
-  attribute :top_level_with,             Types.Instance(UnionWith).optional
-  attribute :xor,                        Types.Instance(UnionXor).optional
-  attribute :xor_eq,                     Types.Instance(UnionXorEq).optional
-  attribute :yes,                        Types.Instance(UnionYES).optional
-  attribute :top_level_yield,            Types.Instance(UnionYield).optional
-
-  def self.from_dynamic!(d)
-    d = Types::Hash[d]
-    new(
-      empty:                      d["_"] ? UnionUnion.from_dynamic!(d["_"]) : nil,
-      top_level_bool:             d["_Bool"] ? UnionBool.from_dynamic!(d["_Bool"]) : nil,
-      complex:                    d["_Complex"] ? UnionComplex.from_dynamic!(d["_Complex"]) : nil,
-      imaginery:                  d["_Imaginery"] ? UnionImaginery.from_dynamic!(d["_Imaginery"]) : nil,
-      abstract:                   d["abstract"] ? UnionAbstract.from_dynamic!(d["abstract"]) : nil,
-      alignas:                    d["alignas"] ? UnionAlignas.from_dynamic!(d["alignas"]) : nil,
-      alignof:                    d["alignof"] ? UnionAlignof.from_dynamic!(d["alignof"]) : nil,
-      top_level_and:              d["and"] ? UnionAnd.from_dynamic!(d["and"]) : nil,
-      and_eq:                     d["and_eq"] ? UnionAndEq.from_dynamic!(d["and_eq"]) : nil,
-      top_level_any:              d["any"] ? UnionAnyUnion.from_dynamic!(d["any"]) : nil,
-      any:                        d["Any"] ? UnionAny.from_dynamic!(d["Any"]) : nil,
-      array:                      d["array"] ? UnionArray.from_dynamic!(d["array"]) : nil,
-      as:                         d["as"] ? UnionAs.from_dynamic!(d["as"]) : nil,
-      asm:                        d["asm"] ? UnionASM.from_dynamic!(d["asm"]) : nil,
-      assert:                     d["assert"] ? UnionAssert.from_dynamic!(d["assert"]) : nil,
-      associatedtype:             d["associatedtype"] ? UnionAssociatedtype.from_dynamic!(d["associatedtype"]) : nil,
-      associativity:              d["associativity"] ? UnionAssociativity.from_dynamic!(d["associativity"]) : nil,
-      async:                      d["async"] ? UnionAsync.from_dynamic!(d["async"]) : nil,
-      atomic:                     d["atomic"] ? UnionAtomic.from_dynamic!(d["atomic"]) : nil,
-      atomic_cancel:              d["atomic_cancel"] ? UnionAtomicCancel.from_dynamic!(d["atomic_cancel"]) : nil,
-      atomic_commit:              d["atomic_commit"] ? UnionAtomicCommit.from_dynamic!(d["atomic_commit"]) : nil,
-      atomic_noexcept:            d["atomic_noexcept"] ? UnionAtomicNoexcept.from_dynamic!(d["atomic_noexcept"]) : nil,
-      auto:                       d["auto"] ? UnionAuto.from_dynamic!(d["auto"]) : nil,
-      await:                      d["await"] ? UnionAwait.from_dynamic!(d["await"]) : nil,
-      base:                       d["base"] ? UnionBase.from_dynamic!(d["base"]) : nil,
-      bitand:                     d["bitand"] ? UnionBitand.from_dynamic!(d["bitand"]) : nil,
-      bitor:                      d["bitor"] ? UnionBitor.from_dynamic!(d["bitor"]) : nil,
-      bool:                       d["BOOL"] ? UnionBOOL.from_dynamic!(d["BOOL"]) : nil,
-      bool_1:                     d["bool"] ? UnionBoolUnion.from_dynamic!(d["bool"]) : nil,
-      boolean:                    d["boolean"] ? UnionBoolean.from_dynamic!(d["boolean"]) : nil,
-      top_level_break:            d["break"] ? UnionBreak.from_dynamic!(d["break"]) : nil,
-      bycopy:                     d["bycopy"] ? UnionBycopy.from_dynamic!(d["bycopy"]) : nil,
-      byref:                      d["byref"] ? UnionByref.from_dynamic!(d["byref"]) : nil,
-      byte:                       d["byte"] ? UnionByte.from_dynamic!(d["byte"]) : nil,
-      top_level_case:             d["case"] ? UnionCase.from_dynamic!(d["case"]) : nil,
-      top_level_catch:            d["catch"] ? UnionCatch.from_dynamic!(d["catch"]) : nil,
-      chan:                       d["chan"] ? UnionChan.from_dynamic!(d["chan"]) : nil,
-      char:                       d["char"] ? UnionChar.from_dynamic!(d["char"]) : nil,
-      char16_t:                   d["char16_t"] ? UnionChar16T.from_dynamic!(d["char16_t"]) : nil,
-      char32_t:                   d["char32_t"] ? UnionChar32T.from_dynamic!(d["char32_t"]) : nil,
-      checked:                    d["checked"] ? UnionChecked.from_dynamic!(d["checked"]) : nil,
-      class_1:                    d["class"] ? UnionClassUnion.from_dynamic!(d["class"]) : nil,
-      top_level_class:            d["Class"] ? UnionClass.from_dynamic!(d["Class"]) : nil,
-      co_await:                   d["co_await"] ? UnionCoAwait.from_dynamic!(d["co_await"]) : nil,
-      co_return:                  d["co_return"] ? UnionCoReturn.from_dynamic!(d["co_return"]) : nil,
-      co_yield:                   d["co_yield"] ? UnionCoYield.from_dynamic!(d["co_yield"]) : nil,
-      compl:                      d["compl"] ? UnionCompl.from_dynamic!(d["compl"]) : nil,
-      concept:                    d["concept"] ? UnionConcept.from_dynamic!(d["concept"]) : nil,
-      console:                    d["console"] ? UnionConsole.from_dynamic!(d["console"]) : nil,
-      const:                      d["const"] ? UnionConst.from_dynamic!(d["const"]) : nil,
-      const_cast:                 d["const_cast"] ? UnionConstCast.from_dynamic!(d["const_cast"]) : nil,
-      constexpr:                  d["constexpr"] ? UnionConstexpr.from_dynamic!(d["constexpr"]) : nil,
-      top_level_constructor:      d["constructor"] ? UnionConstructor.from_dynamic!(d["constructor"]) : nil,
-      continue:                   d["continue"] ? UnionContinue.from_dynamic!(d["continue"]) : nil,
-      convenience:                d["convenience"] ? UnionConvenience.from_dynamic!(d["convenience"]) : nil,
-      convert:                    d["convert"] ? UnionConvert.from_dynamic!(d["convert"]) : nil,
-      converter:                  d["converter"] ? UnionConverter.from_dynamic!(d["converter"]) : nil,
-      date:                       d["date"] ? UnionDate.from_dynamic!(d["date"]) : nil,
-      date_parse_handling:        d["date_parse_handling"] ? UnionDateParseHandling.from_dynamic!(d["date_parse_handling"]) : nil,
-      debugger:                   d["debugger"] ? UnionDebugger.from_dynamic!(d["debugger"]) : nil,
-      decimal:                    d["decimal"] ? UnionDecimal.from_dynamic!(d["decimal"]) : nil,
-      declare:                    d["declare"] ? UnionDeclare.from_dynamic!(d["declare"]) : nil,
-      decltype:                   d["decltype"] ? UnionDecltype.from_dynamic!(d["decltype"]) : nil,
-      decode_string:              d["decode_string"] ? UnionDecodeString.from_dynamic!(d["decode_string"]) : nil,
-      top_level_def:              d["def"] ? UnionDef.from_dynamic!(d["def"]) : nil,
-      top_level_default:          d["default"] ? UnionDefault.from_dynamic!(d["default"]) : nil,
-      defer:                      d["defer"] ? UnionDefer.from_dynamic!(d["defer"]) : nil,
-      deinit:                     d["deinit"] ? UnionDeinit.from_dynamic!(d["deinit"]) : nil,
-      del:                        d["del"] ? UnionDel.from_dynamic!(d["del"]) : nil,
-      delegate:                   d["delegate"] ? UnionDelegate.from_dynamic!(d["delegate"]) : nil,
-      delete:                     d["delete"] ? UnionDelete.from_dynamic!(d["delete"]) : nil,
-      dict:                       d["dict"] ? UnionDict.from_dynamic!(d["dict"]) : nil,
-      dictionary:                 d["dictionary"] ? UnionDictionary.from_dynamic!(d["dictionary"]) : nil,
-      did_set:                    d["didSet"] ? UnionDidSet.from_dynamic!(d["didSet"]) : nil,
-      top_level_do:               d["do"] ? UnionDo.from_dynamic!(d["do"]) : nil,
-      double:                     d["double"] ? UnionDouble.from_dynamic!(d["double"]) : nil,
-      dummy:                      d["dummy"],
-      dynamic:                    d["dynamic"] ? UnionDynamic.from_dynamic!(d["dynamic"]) : nil,
-      dynamic_cast:               d["dynamic_cast"] ? UnionDynamicCast.from_dynamic!(d["dynamic_cast"]) : nil,
-      elif:                       d["elif"] ? UnionElif.from_dynamic!(d["elif"]) : nil,
-      top_level_else:             d["else"] ? UnionElse.from_dynamic!(d["else"]) : nil,
-      encode_quick_type:          d["encode_quick_type"] ? UnionEncodeQuickType.from_dynamic!(d["encode_quick_type"]) : nil,
-      top_level_enum:             d["enum"] ? UnionEnum.from_dynamic!(d["enum"]) : nil,
-      event:                      d["event"] ? UnionEvent.from_dynamic!(d["event"]) : nil,
-      except:                     d["except"] ? UnionExcept.from_dynamic!(d["except"]) : nil,
-      exception:                  d["exception"] ? UnionException.from_dynamic!(d["exception"]) : nil,
-      explicit:                   d["explicit"] ? UnionExplicit.from_dynamic!(d["explicit"]) : nil,
-      export:                     d["export"] ? UnionExport.from_dynamic!(d["export"]) : nil,
-      exposing:                   d["exposing"] ? UnionExposing.from_dynamic!(d["exposing"]) : nil,
-      extends:                    d["extends"] ? UnionExtends.from_dynamic!(d["extends"]) : nil,
-      extension:                  d["extension"] ? UnionExtension.from_dynamic!(d["extension"]) : nil,
-      extern:                     d["extern"] ? UnionExtern.from_dynamic!(d["extern"]) : nil,
-      fallthrough:                d["fallthrough"] ? UnionFallthrough.from_dynamic!(d["fallthrough"]) : nil,
-      false_1:                    d["false"] ? UnionFalseUnion.from_dynamic!(d["false"]) : nil,
-      top_level_false:            d["False"] ? UnionFalse.from_dynamic!(d["False"]) : nil,
-      fileprivate:                d["fileprivate"] ? UnionFileprivate.from_dynamic!(d["fileprivate"]) : nil,
-      final:                      d["final"] ? UnionFinal.from_dynamic!(d["final"]) : nil,
-      finally:                    d["finally"] ? UnionFinally.from_dynamic!(d["finally"]) : nil,
-      fixed:                      d["fixed"] ? UnionFixed.from_dynamic!(d["fixed"]) : nil,
-      float:                      d["float"] ? UnionFloat.from_dynamic!(d["float"]) : nil,
-      top_level_for:              d["for"] ? UnionFor.from_dynamic!(d["for"]) : nil,
-      foreach:                    d["foreach"] ? UnionForeach.from_dynamic!(d["foreach"]) : nil,
-      friend:                     d["friend"] ? UnionFriend.from_dynamic!(d["friend"]) : nil,
-      from:                       d["from"] ? UnionFrom.from_dynamic!(d["from"]) : nil,
-      from_json:                  d["from_json"] ? UnionFromJSON.from_dynamic!(d["from_json"]) : nil,
-      func:                       d["func"] ? UnionFunc.from_dynamic!(d["func"]) : nil,
-      function:                   d["function"] ? UnionFunction.from_dynamic!(d["function"]) : nil,
-      get:                        d["get"] ? UnionGet.from_dynamic!(d["get"]) : nil,
-      global:                     d["global"] ? UnionGlobal.from_dynamic!(d["global"]) : nil,
-      go:                         d["go"] ? UnionGo.from_dynamic!(d["go"]) : nil,
-      goto:                       d["goto"] ? UnionGoto.from_dynamic!(d["goto"]) : nil,
-      guard:                      d["guard"] ? UnionGuard.from_dynamic!(d["guard"]) : nil,
-      has_own_property:           d["hasOwnProperty"] ? UnionHasOwnProperty.from_dynamic!(d["hasOwnProperty"]) : nil,
-      id:                         d["id"] ? UnionID.from_dynamic!(d["id"]) : nil,
-      top_level_if:               d["if"] ? UnionIf.from_dynamic!(d["if"]) : nil,
-      imp:                        d["IMP"] ? UnionIMP.from_dynamic!(d["IMP"]) : nil,
-      implements:                 d["implements"] ? UnionImplements.from_dynamic!(d["implements"]) : nil,
-      implicit:                   d["implicit"] ? UnionImplicit.from_dynamic!(d["implicit"]) : nil,
-      import:                     d["import"] ? UnionImport.from_dynamic!(d["import"]) : nil,
-      top_level_in:               d["in"] ? UnionIn.from_dynamic!(d["in"]) : nil,
-      indirect:                   d["indirect"] ? UnionIndirect.from_dynamic!(d["indirect"]) : nil,
-      infix:                      d["infix"] ? UnionInfix.from_dynamic!(d["infix"]) : nil,
-      init:                       d["init"] ? UnionInit.from_dynamic!(d["init"]) : nil,
-      inline:                     d["inline"] ? UnionInline.from_dynamic!(d["inline"]) : nil,
-      inout:                      d["inout"] ? UnionInout.from_dynamic!(d["inout"]) : nil,
-      instanceof:                 d["instanceof"] ? UnionInstanceof.from_dynamic!(d["instanceof"]) : nil,
-      int:                        d["int"] ? UnionInt.from_dynamic!(d["int"]) : nil,
-      interface:                  d["interface"] ? UnionInterface.from_dynamic!(d["interface"]) : nil,
-      internal:                   d["internal"] ? UnionInternal.from_dynamic!(d["internal"]) : nil,
-      is:                         d["is"] ? UnionIs.from_dynamic!(d["is"]) : nil,
-      iterable:                   d["iterable"] ? UnionIterable.from_dynamic!(d["iterable"]) : nil,
-      jdec:                       d["jdec"] ? UnionJdec.from_dynamic!(d["jdec"]) : nil,
-      jenc:                       d["jenc"] ? UnionJenc.from_dynamic!(d["jenc"]) : nil,
-      jpipe:                      d["jpipe"] ? UnionJpipe.from_dynamic!(d["jpipe"]) : nil,
-      json:                       d["json"] ? UnionJSON.from_dynamic!(d["json"]) : nil,
-      json_converter:             d["json_converter"] ? UnionJSONConverter.from_dynamic!(d["json_converter"]) : nil,
-      json_serializer:            d["json_serializer"] ? UnionJSONSerializer.from_dynamic!(d["json_serializer"]) : nil,
-      json_token:                 d["json_token"] ? UnionJSONToken.from_dynamic!(d["json_token"]) : nil,
-      json_writer:                d["json_writer"] ? UnionJSONWriter.from_dynamic!(d["json_writer"]) : nil,
-      top_level_lambda:           d["lambda"] ? UnionLambda.from_dynamic!(d["lambda"]) : nil,
-      lazy:                       d["lazy"] ? UnionLazy.from_dynamic!(d["lazy"]) : nil,
-      left:                       d["left"] ? UnionLeft.from_dynamic!(d["left"]) : nil,
-      let:                        d["let"] ? UnionLet.from_dynamic!(d["let"]) : nil,
-      list:                       d["list"] ? UnionList.from_dynamic!(d["list"]) : nil,
-      lock:                       d["lock"] ? UnionLock.from_dynamic!(d["lock"]) : nil,
-      long:                       d["long"] ? UnionLong.from_dynamic!(d["long"]) : nil,
-      map:                        d["map"] ? UnionMap.from_dynamic!(d["map"]) : nil,
-      metadata_property_handling: d["metadata_property_handling"] ? UnionMetadataPropertyHandling.from_dynamic!(d["metadata_property_handling"]) : nil,
-      top_level_module:           d["module"] ? UnionModule.from_dynamic!(d["module"]) : nil,
-      mutable:                    d["mutable"] ? UnionMutable.from_dynamic!(d["mutable"]) : nil,
-      mutating:                   d["mutating"] ? UnionMutating.from_dynamic!(d["mutating"]) : nil,
-      namespace:                  d["namespace"] ? UnionNamespace.from_dynamic!(d["namespace"]) : nil,
-      native:                     d["native"] ? UnionNative.from_dynamic!(d["native"]) : nil,
-      top_level_new:              d["new"] ? UnionNew.from_dynamic!(d["new"]) : nil,
-      newtonsoft:                 d["newtonsoft"] ? UnionNewtonsoft.from_dynamic!(d["newtonsoft"]) : nil,
-      top_level_nil:              d["nil"] ? UnionNil.from_dynamic!(d["nil"]) : nil,
-      no:                         d["NO"] ? UnionNO.from_dynamic!(d["NO"]) : nil,
-      noexcept:                   d["noexcept"] ? UnionNoexcept.from_dynamic!(d["noexcept"]) : nil,
-      nonatomic:                  d["nonatomic"] ? UnionNonatomic.from_dynamic!(d["nonatomic"]) : nil,
-      top_level_none:             d["none"] ? UnionNoneUnion.from_dynamic!(d["none"]) : nil,
-      none:                       d["None"] ? UnionNone.from_dynamic!(d["None"]) : nil,
-      nonlocal:                   d["nonlocal"] ? UnionNonlocal.from_dynamic!(d["nonlocal"]) : nil,
-      nonmutating:                d["nonmutating"] ? UnionNonmutating.from_dynamic!(d["nonmutating"]) : nil,
-      top_level_not:              d["not"] ? UnionNot.from_dynamic!(d["not"]) : nil,
-      not_eq:                     d["not_eq"] ? UnionNotEq.from_dynamic!(d["not_eq"]) : nil,
-      ns_string:                  d["NSString"] ? UnionNSString.from_dynamic!(d["NSString"]) : nil,
-      null:                       d["NULL"] ? UnionNULL.from_dynamic!(d["NULL"]) : nil,
-      top_level_null:             d["null"] ? UnionNull.from_dynamic!(d["null"]) : nil,
-      nullptr:                    d["nullptr"] ? UnionNullptr.from_dynamic!(d["nullptr"]) : nil,
-      number:                     d["number"] ? UnionNumber.from_dynamic!(d["number"]) : nil,
-      object:                     d["object"] ? UnionObject.from_dynamic!(d["object"]) : nil,
-      of:                         d["of"] ? UnionOf.from_dynamic!(d["of"]) : nil,
-      oneway:                     d["oneway"] ? UnionOneway.from_dynamic!(d["oneway"]) : nil,
-      top_level_open:             d["open"] ? UnionOpen.from_dynamic!(d["open"]) : nil,
-      operator:                   d["operator"] ? UnionOperator.from_dynamic!(d["operator"]) : nil,
-      top_level_optional:         d["optional"] ? UnionOptional.from_dynamic!(d["optional"]) : nil,
-      top_level_or:               d["or"] ? UnionOr.from_dynamic!(d["or"]) : nil,
-      or_eq:                      d["or_eq"] ? UnionOrEq.from_dynamic!(d["or_eq"]) : nil,
-      out:                        d["out"] ? UnionOut.from_dynamic!(d["out"]) : nil,
-      override:                   d["override"] ? UnionOverride.from_dynamic!(d["override"]) : nil,
-      package:                    d["package"] ? UnionPackage.from_dynamic!(d["package"]) : nil,
-      params:                     d["params"] ? UnionParams.from_dynamic!(d["params"]) : nil,
-      pass:                       d["pass"] ? UnionPass.from_dynamic!(d["pass"]) : nil,
-      port:                       d["port"] ? UnionPort.from_dynamic!(d["port"]) : nil,
-      postfix:                    d["postfix"] ? UnionPostfix.from_dynamic!(d["postfix"]) : nil,
-      precedence:                 d["precedence"] ? UnionPrecedence.from_dynamic!(d["precedence"]) : nil,
-      prefix:                     d["prefix"] ? UnionPrefix.from_dynamic!(d["prefix"]) : nil,
-      top_level_print:            d["print"] ? UnionPrint.from_dynamic!(d["print"]) : nil,
-      top_level_printf:           d["printf"] ? UnionPrintf.from_dynamic!(d["printf"]) : nil,
-      private:                    d["private"] ? UnionPrivate.from_dynamic!(d["private"]) : nil,
-      protected:                  d["protected"] ? UnionProtected.from_dynamic!(d["protected"]) : nil,
-      protocol:                   d["Protocol"] ? UnionProtocol.from_dynamic!(d["Protocol"]) : nil,
-      top_level_protocol:         d["protocol"] ? UnionProtocolUnion.from_dynamic!(d["protocol"]) : nil,
-      public:                     d["public"] ? UnionPublic.from_dynamic!(d["public"]) : nil,
-      quicktype:                  d["quicktype"] ? UnionQuicktype.from_dynamic!(d["quicktype"]) : nil,
-      top_level_raise:            d["raise"] ? UnionRaise.from_dynamic!(d["raise"]) : nil,
-      range:                      d["range"] ? UnionRange.from_dynamic!(d["range"]) : nil,
-      readonly:                   d["readonly"] ? UnionReadonly.from_dynamic!(d["readonly"]) : nil,
-      ref:                        d["ref"] ? UnionRef.from_dynamic!(d["ref"]) : nil,
-      register:                   d["register"] ? UnionRegister.from_dynamic!(d["register"]) : nil,
-      reinterpret_cast:           d["reinterpret_cast"] ? UnionReinterpretCast.from_dynamic!(d["reinterpret_cast"]) : nil,
-      repeat:                     d["repeat"] ? UnionRepeat.from_dynamic!(d["repeat"]) : nil,
-      top_level_require:          d["require"] ? UnionRequire.from_dynamic!(d["require"]) : nil,
-      required:                   d["required"] ? UnionRequired.from_dynamic!(d["required"]) : nil,
-      requires:                   d["requires"] ? UnionRequires.from_dynamic!(d["requires"]) : nil,
-      restrict:                   d["restrict"] ? UnionRestrict.from_dynamic!(d["restrict"]) : nil,
-      retain:                     d["retain"] ? UnionRetain.from_dynamic!(d["retain"]) : nil,
-      rethrows:                   d["rethrows"] ? UnionRethrows.from_dynamic!(d["rethrows"]) : nil,
-      top_level_return:           d["return"] ? UnionReturn.from_dynamic!(d["return"]) : nil,
-      right:                      d["right"] ? UnionRight.from_dynamic!(d["right"]) : nil,
-      sbyte:                      d["sbyte"] ? UnionSbyte.from_dynamic!(d["sbyte"]) : nil,
-      sealed:                     d["sealed"] ? UnionSealed.from_dynamic!(d["sealed"]) : nil,
-      sel:                        d["SEL"] ? UnionSEL.from_dynamic!(d["SEL"]) : nil,
-      top_level_select:           d["select"] ? UnionSelect.from_dynamic!(d["select"]) : nil,
-      top_level_self:             d["Self"] ? UnionSelf.from_dynamic!(d["Self"]) : nil,
-      self_1:                     d["self"] ? UnionSelfUnion.from_dynamic!(d["self"]) : nil,
-      serialize:                  d["serialize"] ? UnionSerialize.from_dynamic!(d["serialize"]) : nil,
-      set:                        d["set"] ? UnionSet.from_dynamic!(d["set"]) : nil,
-      short:                      d["short"] ? UnionShort.from_dynamic!(d["short"]) : nil,
-      signed:                     d["signed"] ? UnionSigned.from_dynamic!(d["signed"]) : nil,
-      sizeof:                     d["sizeof"] ? UnionSizeof.from_dynamic!(d["sizeof"]) : nil,
-      stackalloc:                 d["stackalloc"] ? UnionStackalloc.from_dynamic!(d["stackalloc"]) : nil,
-      static:                     d["static"] ? UnionStatic.from_dynamic!(d["static"]) : nil,
-      static_assert:              d["static_assert"] ? UnionStaticAssert.from_dynamic!(d["static_assert"]) : nil,
-      static_cast:                d["static_cast"] ? UnionStaticCast.from_dynamic!(d["static_cast"]) : nil,
-      strictfp:                   d["strictfp"] ? UnionStrictfp.from_dynamic!(d["strictfp"]) : nil,
-      string:                     d["string"] ? UnionString.from_dynamic!(d["string"]) : nil,
-      struct:                     d["struct"] ? UnionStruct.from_dynamic!(d["struct"]) : nil,
-      subscript:                  d["subscript"] ? UnionSubscript.from_dynamic!(d["subscript"]) : nil,
-      top_level_super:            d["super"] ? UnionSuper.from_dynamic!(d["super"]) : nil,
-      switch:                     d["switch"] ? UnionSwitch.from_dynamic!(d["switch"]) : nil,
-      symbol:                     d["symbol"] ? UnionSymbol.from_dynamic!(d["symbol"]) : nil,
-      synchronized:               d["synchronized"] ? UnionSynchronized.from_dynamic!(d["synchronized"]) : nil,
-      top_level_system:           d["system"] ? UnionSystem.from_dynamic!(d["system"]) : nil,
-      template:                   d["template"] ? UnionTemplate.from_dynamic!(d["template"]) : nil,
-      top_level_then:             d["then"] ? UnionThen.from_dynamic!(d["then"]) : nil,
-      this:                       d["this"] ? UnionThis.from_dynamic!(d["this"]) : nil,
-      thread_local:               d["thread_local"] ? UnionThreadLocal.from_dynamic!(d["thread_local"]) : nil,
-      top_level_throw:            d["throw"] ? UnionThrow.from_dynamic!(d["throw"]) : nil,
-      throws:                     d["throws"] ? UnionThrows.from_dynamic!(d["throws"]) : nil,
-      top_level_to_json:          d["to_json"] ? UnionToJSON.from_dynamic!(d["to_json"]) : nil,
-      top_level:                  d["top_level"] ? UnionTopLevel.from_dynamic!(d["top_level"]) : nil,
-      transient:                  d["transient"] ? UnionTransient.from_dynamic!(d["transient"]) : nil,
-      top_level_true:             d["True"] ? UnionTrue.from_dynamic!(d["True"]) : nil,
-      true_1:                     d["true"] ? UnionTrueUnion.from_dynamic!(d["true"]) : nil,
-      top_level_try:              d["try"] ? UnionTry.from_dynamic!(d["try"]) : nil,
-      top_level_type:             d["Type"] ? UnionType.from_dynamic!(d["Type"]) : nil,
-      type_1:                     d["type"] ? UnionTypeUnion.from_dynamic!(d["type"]) : nil,
-      typealias:                  d["typealias"] ? UnionTypealias.from_dynamic!(d["typealias"]) : nil,
-      typedef:                    d["typedef"] ? UnionTypedef.from_dynamic!(d["typedef"]) : nil,
-      typeid:                     d["typeid"] ? UnionTypeid.from_dynamic!(d["typeid"]) : nil,
-      typename:                   d["typename"] ? UnionTypename.from_dynamic!(d["typename"]) : nil,
-      typeof:                     d["typeof"] ? UnionTypeof.from_dynamic!(d["typeof"]) : nil,
-      uint:                       d["uint"] ? UnionUint.from_dynamic!(d["uint"]) : nil,
-      ulong:                      d["ulong"] ? UnionUlong.from_dynamic!(d["ulong"]) : nil,
-      unchecked:                  d["unchecked"] ? UnionUnchecked.from_dynamic!(d["unchecked"]) : nil,
-      undefined:                  d["undefined"] ? UnionUndefined.from_dynamic!(d["undefined"]) : nil,
-      union:                      d["union"] ? UnionUnionUnion.from_dynamic!(d["union"]) : nil,
-      unowned:                    d["unowned"] ? UnionUnowned.from_dynamic!(d["unowned"]) : nil,
-      unsafe:                     d["unsafe"] ? UnionUnsafe.from_dynamic!(d["unsafe"]) : nil,
-      unsigned:                   d["unsigned"] ? UnionUnsigned.from_dynamic!(d["unsigned"]) : nil,
-      ushort:                     d["ushort"] ? UnionUshort.from_dynamic!(d["ushort"]) : nil,
-      using:                      d["using"] ? UnionUsing.from_dynamic!(d["using"]) : nil,
-      var:                        d["var"] ? UnionVar.from_dynamic!(d["var"]) : nil,
-      virtual:                    d["virtual"] ? UnionVirtual.from_dynamic!(d["virtual"]) : nil,
-      void:                       d["void"] ? UnionVoid.from_dynamic!(d["void"]) : nil,
-      volatile:                   d["volatile"] ? UnionVolatile.from_dynamic!(d["volatile"]) : nil,
-      wchar_t:                    d["wchar_t"] ? UnionWcharT.from_dynamic!(d["wchar_t"]) : nil,
-      weak:                       d["weak"] ? UnionWeak.from_dynamic!(d["weak"]) : nil,
-      where:                      d["where"] ? UnionWhere.from_dynamic!(d["where"]) : nil,
-      top_level_while:            d["while"] ? UnionWhile.from_dynamic!(d["while"]) : nil,
-      will_set:                   d["willSet"] ? UnionWillSet.from_dynamic!(d["willSet"]) : nil,
-      top_level_with:             d["with"] ? UnionWith.from_dynamic!(d["with"]) : nil,
-      xor:                        d["xor"] ? UnionXor.from_dynamic!(d["xor"]) : nil,
-      xor_eq:                     d["xor_eq"] ? UnionXorEq.from_dynamic!(d["xor_eq"]) : nil,
-      yes:                        d["YES"] ? UnionYES.from_dynamic!(d["YES"]) : nil,
-      top_level_yield:            d["yield"] ? UnionYield.from_dynamic!(d["yield"]) : nil,
+  attribute :empty,                          Types.Instance(UnionUnion).optional
+  attribute :top_level_bool,                 Types.Instance(UnionBool).optional
+  attribute :complex,                        Types.Instance(UnionComplex).optional
+  attribute :imaginery,                      Types.Instance(UnionImaginery).optional
+  attribute :abstract,                       Types.Instance(UnionAbstract).optional
+  attribute :alignas,                        Types.Instance(UnionAlignas).optional
+  attribute :alignof,                        Types.Instance(UnionAlignof).optional
+  attribute :top_level_and,                  Types.Instance(UnionAnd).optional
+  attribute :and_eq,                         Types.Instance(UnionAndEq).optional
+  attribute :top_level_any,                  Types.Instance(UnionAnyUnion).optional
+  attribute :any,                            Types.Instance(UnionAny).optional
+  attribute :array,                          Types.Instance(UnionArray).optional
+  attribute :as,                             Types.Instance(UnionAs).optional
+  attribute :asm,                            Types.Instance(UnionASM).optional
+  attribute :assert,                         Types.Instance(UnionAssert).optional
+  attribute :associatedtype,                 Types.Instance(UnionAssociatedtype).optional
+  attribute :associativity,                  Types.Instance(UnionAssociativity).optional
+  attribute :async,                          Types.Instance(UnionAsync).optional
+  attribute :atomic,                         Types.Instance(UnionAtomic).optional
+  attribute :atomic_cancel,                  Types.Instance(UnionAtomicCancel).optional
+  attribute :atomic_commit,                  Types.Instance(UnionAtomicCommit).optional
+  attribute :atomic_noexcept,                Types.Instance(UnionAtomicNoexcept).optional
+  attribute :auto,                           Types.Instance(UnionAuto).optional
+  attribute :await,                          Types.Instance(UnionAwait).optional
+  attribute :base,                           Types.Instance(UnionBase).optional
+  attribute :bitand,                         Types.Instance(UnionBitand).optional
+  attribute :bitor,                          Types.Instance(UnionBitor).optional
+  attribute :bool,                           Types.Instance(UnionBOOL).optional
+  attribute :bool_1,                         Types.Instance(UnionBoolUnion).optional
+  attribute :boolean,                        Types.Instance(UnionBoolean).optional
+  attribute :top_level_break,                Types.Instance(UnionBreak).optional
+  attribute :bycopy,                         Types.Instance(UnionBycopy).optional
+  attribute :byref,                          Types.Instance(UnionByref).optional
+  attribute :byte,                           Types.Instance(UnionByte).optional
+  attribute :top_level_case,                 Types.Instance(UnionCase).optional
+  attribute :top_level_catch,                Types.Instance(UnionCatch).optional
+  attribute :chan,                           Types.Instance(UnionChan).optional
+  attribute :char,                           Types.Instance(UnionChar).optional
+  attribute :char16_t,                       Types.Instance(UnionChar16T).optional
+  attribute :char32_t,                       Types.Instance(UnionChar32T).optional
+  attribute :checked,                        Types.Instance(UnionChecked).optional
+  attribute :class_1,                        Types.Instance(UnionClassUnion).optional
+  attribute :top_level_class,                Types.Instance(UnionClass).optional
+  attribute :top_level_clone,                Types.Instance(UnionClone).optional
+  attribute :co_await,                       Types.Instance(UnionCoAwait).optional
+  attribute :co_return,                      Types.Instance(UnionCoReturn).optional
+  attribute :co_yield,                       Types.Instance(UnionCoYield).optional
+  attribute :compl,                          Types.Instance(UnionCompl).optional
+  attribute :concept,                        Types.Instance(UnionConcept).optional
+  attribute :console,                        Types.Instance(UnionConsole).optional
+  attribute :const,                          Types.Instance(UnionConst).optional
+  attribute :const_cast,                     Types.Instance(UnionConstCast).optional
+  attribute :constexpr,                      Types.Instance(UnionConstexpr).optional
+  attribute :top_level_constructor,          Types.Instance(UnionConstructor).optional
+  attribute :continue,                       Types.Instance(UnionContinue).optional
+  attribute :convenience,                    Types.Instance(UnionConvenience).optional
+  attribute :convert,                        Types.Instance(UnionConvert).optional
+  attribute :converter,                      Types.Instance(UnionConverter).optional
+  attribute :culture_info,                   Types.Instance(UnionCultureInfo).optional
+  attribute :date,                           Types.Instance(UnionDate).optional
+  attribute :date_parse_handling,            Types.Instance(UnionDateParseHandling).optional
+  attribute :date_formatter,                 Types.Instance(UnionDateFormatter).optional
+  attribute :date_only,                      Types.Instance(UnionDateOnly).optional
+  attribute :date_only_converter,            Types.Instance(UnionDateOnlyConverter).optional
+  attribute :date_time,                      Types.Instance(UnionDateTime).optional
+  attribute :date_time_styles,               Types.Instance(UnionDateTimeStyles).optional
+  attribute :debugger,                       Types.Instance(UnionDebugger).optional
+  attribute :decimal,                        Types.Instance(UnionDecimal).optional
+  attribute :declare,                        Types.Instance(UnionDeclare).optional
+  attribute :decltype,                       Types.Instance(UnionDecltype).optional
+  attribute :decode_string,                  Types.Instance(UnionDecodeString).optional
+  attribute :top_level_def,                  Types.Instance(UnionDef).optional
+  attribute :top_level_default,              Types.Instance(UnionDefault).optional
+  attribute :defer,                          Types.Instance(UnionDefer).optional
+  attribute :deinit,                         Types.Instance(UnionDeinit).optional
+  attribute :del,                            Types.Instance(UnionDel).optional
+  attribute :delegate,                       Types.Instance(UnionDelegate).optional
+  attribute :delete,                         Types.Instance(UnionDelete).optional
+  attribute :dict,                           Types.Instance(UnionDict).optional
+  attribute :dictionary,                     Types.Instance(UnionDictionary).optional
+  attribute :did_set,                        Types.Instance(UnionDidSet).optional
+  attribute :top_level_do,                   Types.Instance(UnionDo).optional
+  attribute :double,                         Types.Instance(UnionDouble).optional
+  attribute :dummy,                          Types::Double.optional
+  attribute :dynamic,                        Types.Instance(UnionDynamic).optional
+  attribute :dynamic_cast,                   Types.Instance(UnionDynamicCast).optional
+  attribute :elif,                           Types.Instance(UnionElif).optional
+  attribute :top_level_else,                 Types.Instance(UnionElse).optional
+  attribute :encode_quick_type,              Types.Instance(UnionEncodeQuickType).optional
+  attribute :top_level_enum,                 Types.Instance(UnionEnum).optional
+  attribute :enum_values,                    Types.Instance(UnionEnumValues).optional
+  attribute :equality_contract,              Types.Instance(UnionEqualityContract).optional
+  attribute :event,                          Types.Instance(UnionEvent).optional
+  attribute :except,                         Types.Instance(UnionExcept).optional
+  attribute :exception,                      Types.Instance(UnionException).optional
+  attribute :explicit,                       Types.Instance(UnionExplicit).optional
+  attribute :export,                         Types.Instance(UnionExport).optional
+  attribute :exposing,                       Types.Instance(UnionExposing).optional
+  attribute :extends,                        Types.Instance(UnionExtends).optional
+  attribute :extension,                      Types.Instance(UnionExtension).optional
+  attribute :extern,                         Types.Instance(UnionExtern).optional
+  attribute :fallthrough,                    Types.Instance(UnionFallthrough).optional
+  attribute :false_1,                        Types.Instance(UnionFalseUnion).optional
+  attribute :top_level_false,                Types.Instance(UnionFalse).optional
+  attribute :fileprivate,                    Types.Instance(UnionFileprivate).optional
+  attribute :final,                          Types.Instance(UnionFinal).optional
+  attribute :finally,                        Types.Instance(UnionFinally).optional
+  attribute :fixed,                          Types.Instance(UnionFixed).optional
+  attribute :float,                          Types.Instance(UnionFloat).optional
+  attribute :top_level_for,                  Types.Instance(UnionFor).optional
+  attribute :foreach,                        Types.Instance(UnionForeach).optional
+  attribute :format_exception,               Types.Instance(UnionFormatException).optional
+  attribute :friend,                         Types.Instance(UnionFriend).optional
+  attribute :from,                           Types.Instance(UnionFrom).optional
+  attribute :from_json,                      Types.Instance(UnionFromJSON).optional
+  attribute :func,                           Types.Instance(UnionFunc).optional
+  attribute :function,                       Types.Instance(UnionFunction).optional
+  attribute :get,                            Types.Instance(UnionGet).optional
+  attribute :global,                         Types.Instance(UnionGlobal).optional
+  attribute :go,                             Types.Instance(UnionGo).optional
+  attribute :goto,                           Types.Instance(UnionGoto).optional
+  attribute :guard,                          Types.Instance(UnionGuard).optional
+  attribute :hash_code,                      Types.Instance(UnionHashCode).optional
+  attribute :has_own_property,               Types.Instance(UnionHasOwnProperty).optional
+  attribute :id,                             Types.Instance(UnionID).optional
+  attribute :top_level_if,                   Types.Instance(UnionIf).optional
+  attribute :imp,                            Types.Instance(UnionIMP).optional
+  attribute :implements,                     Types.Instance(UnionImplements).optional
+  attribute :implicit,                       Types.Instance(UnionImplicit).optional
+  attribute :import,                         Types.Instance(UnionImport).optional
+  attribute :top_level_in,                   Types.Instance(UnionIn).optional
+  attribute :indirect,                       Types.Instance(UnionIndirect).optional
+  attribute :infix,                          Types.Instance(UnionInfix).optional
+  attribute :init,                           Types.Instance(UnionInit).optional
+  attribute :inline,                         Types.Instance(UnionInline).optional
+  attribute :inout,                          Types.Instance(UnionInout).optional
+  attribute :instanceof,                     Types.Instance(UnionInstanceof).optional
+  attribute :int,                            Types.Instance(UnionInt).optional
+  attribute :interface,                      Types.Instance(UnionInterface).optional
+  attribute :internal,                       Types.Instance(UnionInternal).optional
+  attribute :is,                             Types.Instance(UnionIs).optional
+  attribute :iso_date_time_offset_converter, Types.Instance(UnionISODateTimeOffsetConverter).optional
+  attribute :iterable,                       Types.Instance(UnionIterable).optional
+  attribute :jdec,                           Types.Instance(UnionJdec).optional
+  attribute :jenc,                           Types.Instance(UnionJenc).optional
+  attribute :jpipe,                          Types.Instance(UnionJpipe).optional
+  attribute :json,                           Types.Instance(UnionJSON).optional
+  attribute :json_converter,                 Types.Instance(UnionJSONConverter).optional
+  attribute :json_serializer,                Types.Instance(UnionJSONSerializer).optional
+  attribute :json_token,                     Types.Instance(UnionJSONToken).optional
+  attribute :json_writer,                    Types.Instance(UnionJSONWriter).optional
+  attribute :json_any,                       Types.Instance(UnionJSONAny).optional
+  attribute :json_coding_key,                Types.Instance(UnionJSONCodingKey).optional
+  attribute :json_decoder,                   Types.Instance(UnionJSONDecoder).optional
+  attribute :json_encoder,                   Types.Instance(UnionJSONEncoder).optional
+  attribute :json_exception,                 Types.Instance(UnionJSONException).optional
+  attribute :json_generator,                 Types.Instance(UnionJSONGenerator).optional
+  attribute :json_node,                      Types.Instance(UnionJSONNode).optional
+  attribute :json_null,                      Types.Instance(UnionJSONNull).optional
+  attribute :json_parser,                    Types.Instance(UnionJSONParser).optional
+  attribute :json_reader,                    Types.Instance(UnionJSONReader).optional
+  attribute :json_token_type,                Types.Instance(UnionJSONTokenType).optional
+  attribute :top_level_lambda,               Types.Instance(UnionLambda).optional
+  attribute :lazy,                           Types.Instance(UnionLazy).optional
+  attribute :left,                           Types.Instance(UnionLeft).optional
+  attribute :let,                            Types.Instance(UnionLet).optional
+  attribute :list,                           Types.Instance(UnionList).optional
+  attribute :lock,                           Types.Instance(UnionLock).optional
+  attribute :long,                           Types.Instance(UnionLong).optional
+  attribute :map,                            Types.Instance(UnionMap).optional
+  attribute :metadata_property_handling,     Types.Instance(UnionMetadataPropertyHandling).optional
+  attribute :top_level_module,               Types.Instance(UnionModule).optional
+  attribute :mutable,                        Types.Instance(UnionMutable).optional
+  attribute :mutating,                       Types.Instance(UnionMutating).optional
+  attribute :namespace,                      Types.Instance(UnionNamespace).optional
+  attribute :native,                         Types.Instance(UnionNative).optional
+  attribute :top_level_new,                  Types.Instance(UnionNew).optional
+  attribute :newtonsoft,                     Types.Instance(UnionNewtonsoft).optional
+  attribute :top_level_nil,                  Types.Instance(UnionNil).optional
+  attribute :no,                             Types.Instance(UnionNO).optional
+  attribute :noexcept,                       Types.Instance(UnionNoexcept).optional
+  attribute :nonatomic,                      Types.Instance(UnionNonatomic).optional
+  attribute :top_level_none,                 Types.Instance(UnionNoneUnion).optional
+  attribute :none,                           Types.Instance(UnionNone).optional
+  attribute :nonlocal,                       Types.Instance(UnionNonlocal).optional
+  attribute :nonmutating,                    Types.Instance(UnionNonmutating).optional
+  attribute :no_such_method,                 Types.Instance(UnionNoSuchMethod).optional
+  attribute :top_level_not,                  Types.Instance(UnionNot).optional
+  attribute :not_eq,                         Types.Instance(UnionNotEq).optional
+  attribute :ns_error,                       Types.Instance(UnionNSError).optional
+  attribute :ns_string,                      Types.Instance(UnionNSString).optional
+  attribute :null,                           Types.Instance(UnionNULL).optional
+  attribute :top_level_null,                 Types.Instance(UnionNull).optional
+  attribute :nullptr,                        Types.Instance(UnionNullptr).optional
+  attribute :number,                         Types.Instance(UnionNumber).optional
+  attribute :object,                         Types.Instance(UnionObject).optional
+  attribute :object_mapper,                  Types.Instance(UnionObjectMapper).optional
+  attribute :of,                             Types.Instance(UnionOf).optional
+  attribute :oneway,                         Types.Instance(UnionOneway).optional
+  attribute :top_level_open,                 Types.Instance(UnionOpen).optional
+  attribute :operator,                       Types.Instance(UnionOperator).optional
+  attribute :top_level_optional,             Types.Instance(UnionOptional).optional
+  attribute :top_level_or,                   Types.Instance(UnionOr).optional
+  attribute :or_eq,                          Types.Instance(UnionOrEq).optional
+  attribute :out,                            Types.Instance(UnionOut).optional
+  attribute :override,                       Types.Instance(UnionOverride).optional
+  attribute :package,                        Types.Instance(UnionPackage).optional
+  attribute :params,                         Types.Instance(UnionParams).optional
+  attribute :pass,                           Types.Instance(UnionPass).optional
+  attribute :port,                           Types.Instance(UnionPort).optional
+  attribute :postfix,                        Types.Instance(UnionPostfix).optional
+  attribute :precedence,                     Types.Instance(UnionPrecedence).optional
+  attribute :prefix,                         Types.Instance(UnionPrefix).optional
+  attribute :top_level_print,                Types.Instance(UnionPrint).optional
+  attribute :top_level_printf,               Types.Instance(UnionPrintf).optional
+  attribute :print_members,                  Types.Instance(UnionPrintMembers).optional
+  attribute :private,                        Types.Instance(UnionPrivate).optional
+  attribute :protected,                      Types.Instance(UnionProtected).optional
+  attribute :protocol,                       Types.Instance(UnionProtocol).optional
+  attribute :top_level_protocol,             Types.Instance(UnionProtocolUnion).optional
+  attribute :public,                         Types.Instance(UnionPublic).optional
+  attribute :quicktype,                      Types.Instance(UnionQuicktype).optional
+  attribute :top_level_raise,                Types.Instance(UnionRaise).optional
+  attribute :range,                          Types.Instance(UnionRange).optional
+  attribute :readonly,                       Types.Instance(UnionReadonly).optional
+  attribute :ref,                            Types.Instance(UnionRef).optional
+  attribute :reg_exp,                        Types.Instance(UnionRegExp).optional
+  attribute :register,                       Types.Instance(UnionRegister).optional
+  attribute :reinterpret_cast,               Types.Instance(UnionReinterpretCast).optional
+  attribute :repeat,                         Types.Instance(UnionRepeat).optional
+  attribute :top_level_require,              Types.Instance(UnionRequire).optional
+  attribute :required,                       Types.Instance(UnionRequired).optional
+  attribute :requires,                       Types.Instance(UnionRequires).optional
+  attribute :restrict,                       Types.Instance(UnionRestrict).optional
+  attribute :retain,                         Types.Instance(UnionRetain).optional
+  attribute :rethrows,                       Types.Instance(UnionRethrows).optional
+  attribute :top_level_return,               Types.Instance(UnionReturn).optional
+  attribute :right,                          Types.Instance(UnionRight).optional
+  attribute :runtime_type,                   Types.Instance(UnionRuntimeType).optional
+  attribute :s,                              Types.Instance(UnionS).optional
+  attribute :sbyte,                          Types.Instance(UnionSbyte).optional
+  attribute :sealed,                         Types.Instance(UnionSealed).optional
+  attribute :sel,                            Types.Instance(UnionSEL).optional
+  attribute :top_level_select,               Types.Instance(UnionSelect).optional
+  attribute :top_level_self,                 Types.Instance(UnionSelf).optional
+  attribute :self_1,                         Types.Instance(UnionSelfUnion).optional
+  attribute :serialize,                      Types.Instance(UnionSerialize).optional
+  attribute :serializer_provider,            Types.Instance(UnionSerializerProvider).optional
+  attribute :set,                            Types.Instance(UnionSet).optional
+  attribute :short,                          Types.Instance(UnionShort).optional
+  attribute :signed,                         Types.Instance(UnionSigned).optional
+  attribute :simple_module,                  Types.Instance(UnionSimpleModule).optional
+  attribute :sizeof,                         Types.Instance(UnionSizeof).optional
+  attribute :stackalloc,                     Types.Instance(UnionStackalloc).optional
+  attribute :standards,                      Types.Instance(UnionStandards).optional
+  attribute :static,                         Types.Instance(UnionStatic).optional
+  attribute :static_assert,                  Types.Instance(UnionStaticAssert).optional
+  attribute :static_cast,                    Types.Instance(UnionStaticCast).optional
+  attribute :std_deserializer,               Types.Instance(UnionStdDeserializer).optional
+  attribute :std_serializer,                 Types.Instance(UnionStdSerializer).optional
+  attribute :strictfp,                       Types.Instance(UnionStrictfp).optional
+  attribute :string,                         Types.Instance(UnionString).optional
+  attribute :struct,                         Types.Instance(UnionStruct).optional
+  attribute :subscript,                      Types.Instance(UnionSubscript).optional
+  attribute :top_level_super,                Types.Instance(UnionSuper).optional
+  attribute :switch,                         Types.Instance(UnionSwitch).optional
+  attribute :symbol,                         Types.Instance(UnionSymbol).optional
+  attribute :synchronized,                   Types.Instance(UnionSynchronized).optional
+  attribute :top_level_system,               Types.Instance(UnionSystem).optional
+  attribute :template,                       Types.Instance(UnionTemplate).optional
+  attribute :top_level_then,                 Types.Instance(UnionThen).optional
+  attribute :this,                           Types.Instance(UnionThis).optional
+  attribute :thread_local,                   Types.Instance(UnionThreadLocal).optional
+  attribute :top_level_throw,                Types.Instance(UnionThrow).optional
+  attribute :throws,                         Types.Instance(UnionThrows).optional
+  attribute :time_only,                      Types.Instance(UnionTimeOnly).optional
+  attribute :time_only_converter,            Types.Instance(UnionTimeOnlyConverter).optional
+  attribute :top_level_to_json,              Types.Instance(UnionToJSON).optional
+  attribute :top_level,                      Types.Instance(UnionTopLevel).optional
+  attribute :to_string,                      Types.Instance(UnionToString).optional
+  attribute :transient,                      Types.Instance(UnionTransient).optional
+  attribute :top_level_true,                 Types.Instance(UnionTrue).optional
+  attribute :true_1,                         Types.Instance(UnionTrueUnion).optional
+  attribute :top_level_try,                  Types.Instance(UnionTry).optional
+  attribute :top_level_type,                 Types.Instance(UnionType).optional
+  attribute :type_1,                         Types.Instance(UnionTypeUnion).optional
+  attribute :typealias,                      Types.Instance(UnionTypealias).optional
+  attribute :typedef,                        Types.Instance(UnionTypedef).optional
+  attribute :typeid,                         Types.Instance(UnionTypeid).optional
+  attribute :typename,                       Types.Instance(UnionTypename).optional
+  attribute :typeof,                         Types.Instance(UnionTypeof).optional
+  attribute :uint,                           Types.Instance(UnionUint).optional
+  attribute :ulong,                          Types.Instance(UnionUlong).optional
+  attribute :unchecked,                      Types.Instance(UnionUnchecked).optional
+  attribute :undefined,                      Types.Instance(UnionUndefined).optional
+  attribute :union,                          Types.Instance(UnionUnionUnion).optional
+  attribute :unowned,                        Types.Instance(UnionUnowned).optional
+  attribute :unsafe,                         Types.Instance(UnionUnsafe).optional
+  attribute :unsigned,                       Types.Instance(UnionUnsigned).optional
+  attribute :ushort,                         Types.Instance(UnionUshort).optional
+  attribute :using,                          Types.Instance(UnionUsing).optional
+  attribute :utf8_json_reader,               Types.Instance(UnionUtf8JSONReader).optional
+  attribute :utf8_json_writer,               Types.Instance(UnionUtf8JSONWriter).optional
+  attribute :uuid,                           Types.Instance(UnionUUID).optional
+  attribute :var,                            Types.Instance(UnionVar).optional
+  attribute :virtual,                        Types.Instance(UnionVirtual).optional
+  attribute :void,                           Types.Instance(UnionVoid).optional
+  attribute :volatile,                       Types.Instance(UnionVolatile).optional
+  attribute :wchar_t,                        Types.Instance(UnionWcharT).optional
+  attribute :weak,                           Types.Instance(UnionWeak).optional
+  attribute :where,                          Types.Instance(UnionWhere).optional
+  attribute :top_level_while,                Types.Instance(UnionWhile).optional
+  attribute :will_set,                       Types.Instance(UnionWillSet).optional
+  attribute :top_level_with,                 Types.Instance(UnionWith).optional
+  attribute :xor,                            Types.Instance(UnionXor).optional
+  attribute :xor_eq,                         Types.Instance(UnionXorEq).optional
+  attribute :yes,                            Types.Instance(UnionYES).optional
+  attribute :top_level_yield,                Types.Instance(UnionYield).optional
+
+  def self.from_dynamic!(d)
+    d = Types::Hash[d]
+    new(
+      empty:                          d["_"] ? UnionUnion.from_dynamic!(d["_"]) : nil,
+      top_level_bool:                 d["_Bool"] ? UnionBool.from_dynamic!(d["_Bool"]) : nil,
+      complex:                        d["_Complex"] ? UnionComplex.from_dynamic!(d["_Complex"]) : nil,
+      imaginery:                      d["_Imaginery"] ? UnionImaginery.from_dynamic!(d["_Imaginery"]) : nil,
+      abstract:                       d["abstract"] ? UnionAbstract.from_dynamic!(d["abstract"]) : nil,
+      alignas:                        d["alignas"] ? UnionAlignas.from_dynamic!(d["alignas"]) : nil,
+      alignof:                        d["alignof"] ? UnionAlignof.from_dynamic!(d["alignof"]) : nil,
+      top_level_and:                  d["and"] ? UnionAnd.from_dynamic!(d["and"]) : nil,
+      and_eq:                         d["and_eq"] ? UnionAndEq.from_dynamic!(d["and_eq"]) : nil,
+      top_level_any:                  d["any"] ? UnionAnyUnion.from_dynamic!(d["any"]) : nil,
+      any:                            d["Any"] ? UnionAny.from_dynamic!(d["Any"]) : nil,
+      array:                          d["array"] ? UnionArray.from_dynamic!(d["array"]) : nil,
+      as:                             d["as"] ? UnionAs.from_dynamic!(d["as"]) : nil,
+      asm:                            d["asm"] ? UnionASM.from_dynamic!(d["asm"]) : nil,
+      assert:                         d["assert"] ? UnionAssert.from_dynamic!(d["assert"]) : nil,
+      associatedtype:                 d["associatedtype"] ? UnionAssociatedtype.from_dynamic!(d["associatedtype"]) : nil,
+      associativity:                  d["associativity"] ? UnionAssociativity.from_dynamic!(d["associativity"]) : nil,
+      async:                          d["async"] ? UnionAsync.from_dynamic!(d["async"]) : nil,
+      atomic:                         d["atomic"] ? UnionAtomic.from_dynamic!(d["atomic"]) : nil,
+      atomic_cancel:                  d["atomic_cancel"] ? UnionAtomicCancel.from_dynamic!(d["atomic_cancel"]) : nil,
+      atomic_commit:                  d["atomic_commit"] ? UnionAtomicCommit.from_dynamic!(d["atomic_commit"]) : nil,
+      atomic_noexcept:                d["atomic_noexcept"] ? UnionAtomicNoexcept.from_dynamic!(d["atomic_noexcept"]) : nil,
+      auto:                           d["auto"] ? UnionAuto.from_dynamic!(d["auto"]) : nil,
+      await:                          d["await"] ? UnionAwait.from_dynamic!(d["await"]) : nil,
+      base:                           d["base"] ? UnionBase.from_dynamic!(d["base"]) : nil,
+      bitand:                         d["bitand"] ? UnionBitand.from_dynamic!(d["bitand"]) : nil,
+      bitor:                          d["bitor"] ? UnionBitor.from_dynamic!(d["bitor"]) : nil,
+      bool:                           d["BOOL"] ? UnionBOOL.from_dynamic!(d["BOOL"]) : nil,
+      bool_1:                         d["bool"] ? UnionBoolUnion.from_dynamic!(d["bool"]) : nil,
+      boolean:                        d["boolean"] ? UnionBoolean.from_dynamic!(d["boolean"]) : nil,
+      top_level_break:                d["break"] ? UnionBreak.from_dynamic!(d["break"]) : nil,
+      bycopy:                         d["bycopy"] ? UnionBycopy.from_dynamic!(d["bycopy"]) : nil,
+      byref:                          d["byref"] ? UnionByref.from_dynamic!(d["byref"]) : nil,
+      byte:                           d["byte"] ? UnionByte.from_dynamic!(d["byte"]) : nil,
+      top_level_case:                 d["case"] ? UnionCase.from_dynamic!(d["case"]) : nil,
+      top_level_catch:                d["catch"] ? UnionCatch.from_dynamic!(d["catch"]) : nil,
+      chan:                           d["chan"] ? UnionChan.from_dynamic!(d["chan"]) : nil,
+      char:                           d["char"] ? UnionChar.from_dynamic!(d["char"]) : nil,
+      char16_t:                       d["char16_t"] ? UnionChar16T.from_dynamic!(d["char16_t"]) : nil,
+      char32_t:                       d["char32_t"] ? UnionChar32T.from_dynamic!(d["char32_t"]) : nil,
+      checked:                        d["checked"] ? UnionChecked.from_dynamic!(d["checked"]) : nil,
+      class_1:                        d["class"] ? UnionClassUnion.from_dynamic!(d["class"]) : nil,
+      top_level_class:                d["Class"] ? UnionClass.from_dynamic!(d["Class"]) : nil,
+      top_level_clone:                d["clone"] ? UnionClone.from_dynamic!(d["clone"]) : nil,
+      co_await:                       d["co_await"] ? UnionCoAwait.from_dynamic!(d["co_await"]) : nil,
+      co_return:                      d["co_return"] ? UnionCoReturn.from_dynamic!(d["co_return"]) : nil,
+      co_yield:                       d["co_yield"] ? UnionCoYield.from_dynamic!(d["co_yield"]) : nil,
+      compl:                          d["compl"] ? UnionCompl.from_dynamic!(d["compl"]) : nil,
+      concept:                        d["concept"] ? UnionConcept.from_dynamic!(d["concept"]) : nil,
+      console:                        d["console"] ? UnionConsole.from_dynamic!(d["console"]) : nil,
+      const:                          d["const"] ? UnionConst.from_dynamic!(d["const"]) : nil,
+      const_cast:                     d["const_cast"] ? UnionConstCast.from_dynamic!(d["const_cast"]) : nil,
+      constexpr:                      d["constexpr"] ? UnionConstexpr.from_dynamic!(d["constexpr"]) : nil,
+      top_level_constructor:          d["constructor"] ? UnionConstructor.from_dynamic!(d["constructor"]) : nil,
+      continue:                       d["continue"] ? UnionContinue.from_dynamic!(d["continue"]) : nil,
+      convenience:                    d["convenience"] ? UnionConvenience.from_dynamic!(d["convenience"]) : nil,
+      convert:                        d["convert"] ? UnionConvert.from_dynamic!(d["convert"]) : nil,
+      converter:                      d["converter"] ? UnionConverter.from_dynamic!(d["converter"]) : nil,
+      culture_info:                   d["CultureInfo"] ? UnionCultureInfo.from_dynamic!(d["CultureInfo"]) : nil,
+      date:                           d["date"] ? UnionDate.from_dynamic!(d["date"]) : nil,
+      date_parse_handling:            d["date_parse_handling"] ? UnionDateParseHandling.from_dynamic!(d["date_parse_handling"]) : nil,
+      date_formatter:                 d["DateFormatter"] ? UnionDateFormatter.from_dynamic!(d["DateFormatter"]) : nil,
+      date_only:                      d["DateOnly"] ? UnionDateOnly.from_dynamic!(d["DateOnly"]) : nil,
+      date_only_converter:            d["DateOnlyConverter"] ? UnionDateOnlyConverter.from_dynamic!(d["DateOnlyConverter"]) : nil,
+      date_time:                      d["DateTime"] ? UnionDateTime.from_dynamic!(d["DateTime"]) : nil,
+      date_time_styles:               d["DateTimeStyles"] ? UnionDateTimeStyles.from_dynamic!(d["DateTimeStyles"]) : nil,
+      debugger:                       d["debugger"] ? UnionDebugger.from_dynamic!(d["debugger"]) : nil,
+      decimal:                        d["decimal"] ? UnionDecimal.from_dynamic!(d["decimal"]) : nil,
+      declare:                        d["declare"] ? UnionDeclare.from_dynamic!(d["declare"]) : nil,
+      decltype:                       d["decltype"] ? UnionDecltype.from_dynamic!(d["decltype"]) : nil,
+      decode_string:                  d["decode_string"] ? UnionDecodeString.from_dynamic!(d["decode_string"]) : nil,
+      top_level_def:                  d["def"] ? UnionDef.from_dynamic!(d["def"]) : nil,
+      top_level_default:              d["default"] ? UnionDefault.from_dynamic!(d["default"]) : nil,
+      defer:                          d["defer"] ? UnionDefer.from_dynamic!(d["defer"]) : nil,
+      deinit:                         d["deinit"] ? UnionDeinit.from_dynamic!(d["deinit"]) : nil,
+      del:                            d["del"] ? UnionDel.from_dynamic!(d["del"]) : nil,
+      delegate:                       d["delegate"] ? UnionDelegate.from_dynamic!(d["delegate"]) : nil,
+      delete:                         d["delete"] ? UnionDelete.from_dynamic!(d["delete"]) : nil,
+      dict:                           d["dict"] ? UnionDict.from_dynamic!(d["dict"]) : nil,
+      dictionary:                     d["dictionary"] ? UnionDictionary.from_dynamic!(d["dictionary"]) : nil,
+      did_set:                        d["didSet"] ? UnionDidSet.from_dynamic!(d["didSet"]) : nil,
+      top_level_do:                   d["do"] ? UnionDo.from_dynamic!(d["do"]) : nil,
+      double:                         d["double"] ? UnionDouble.from_dynamic!(d["double"]) : nil,
+      dummy:                          d["dummy"],
+      dynamic:                        d["dynamic"] ? UnionDynamic.from_dynamic!(d["dynamic"]) : nil,
+      dynamic_cast:                   d["dynamic_cast"] ? UnionDynamicCast.from_dynamic!(d["dynamic_cast"]) : nil,
+      elif:                           d["elif"] ? UnionElif.from_dynamic!(d["elif"]) : nil,
+      top_level_else:                 d["else"] ? UnionElse.from_dynamic!(d["else"]) : nil,
+      encode_quick_type:              d["encode_quick_type"] ? UnionEncodeQuickType.from_dynamic!(d["encode_quick_type"]) : nil,
+      top_level_enum:                 d["enum"] ? UnionEnum.from_dynamic!(d["enum"]) : nil,
+      enum_values:                    d["EnumValues"] ? UnionEnumValues.from_dynamic!(d["EnumValues"]) : nil,
+      equality_contract:              d["equalityContract"] ? UnionEqualityContract.from_dynamic!(d["equalityContract"]) : nil,
+      event:                          d["event"] ? UnionEvent.from_dynamic!(d["event"]) : nil,
+      except:                         d["except"] ? UnionExcept.from_dynamic!(d["except"]) : nil,
+      exception:                      d["exception"] ? UnionException.from_dynamic!(d["exception"]) : nil,
+      explicit:                       d["explicit"] ? UnionExplicit.from_dynamic!(d["explicit"]) : nil,
+      export:                         d["export"] ? UnionExport.from_dynamic!(d["export"]) : nil,
+      exposing:                       d["exposing"] ? UnionExposing.from_dynamic!(d["exposing"]) : nil,
+      extends:                        d["extends"] ? UnionExtends.from_dynamic!(d["extends"]) : nil,
+      extension:                      d["extension"] ? UnionExtension.from_dynamic!(d["extension"]) : nil,
+      extern:                         d["extern"] ? UnionExtern.from_dynamic!(d["extern"]) : nil,
+      fallthrough:                    d["fallthrough"] ? UnionFallthrough.from_dynamic!(d["fallthrough"]) : nil,
+      false_1:                        d["false"] ? UnionFalseUnion.from_dynamic!(d["false"]) : nil,
+      top_level_false:                d["False"] ? UnionFalse.from_dynamic!(d["False"]) : nil,
+      fileprivate:                    d["fileprivate"] ? UnionFileprivate.from_dynamic!(d["fileprivate"]) : nil,
+      final:                          d["final"] ? UnionFinal.from_dynamic!(d["final"]) : nil,
+      finally:                        d["finally"] ? UnionFinally.from_dynamic!(d["finally"]) : nil,
+      fixed:                          d["fixed"] ? UnionFixed.from_dynamic!(d["fixed"]) : nil,
+      float:                          d["float"] ? UnionFloat.from_dynamic!(d["float"]) : nil,
+      top_level_for:                  d["for"] ? UnionFor.from_dynamic!(d["for"]) : nil,
+      foreach:                        d["foreach"] ? UnionForeach.from_dynamic!(d["foreach"]) : nil,
+      format_exception:               d["FormatException"] ? UnionFormatException.from_dynamic!(d["FormatException"]) : nil,
+      friend:                         d["friend"] ? UnionFriend.from_dynamic!(d["friend"]) : nil,
+      from:                           d["from"] ? UnionFrom.from_dynamic!(d["from"]) : nil,
+      from_json:                      d["from_json"] ? UnionFromJSON.from_dynamic!(d["from_json"]) : nil,
+      func:                           d["func"] ? UnionFunc.from_dynamic!(d["func"]) : nil,
+      function:                       d["function"] ? UnionFunction.from_dynamic!(d["function"]) : nil,
+      get:                            d["get"] ? UnionGet.from_dynamic!(d["get"]) : nil,
+      global:                         d["global"] ? UnionGlobal.from_dynamic!(d["global"]) : nil,
+      go:                             d["go"] ? UnionGo.from_dynamic!(d["go"]) : nil,
+      goto:                           d["goto"] ? UnionGoto.from_dynamic!(d["goto"]) : nil,
+      guard:                          d["guard"] ? UnionGuard.from_dynamic!(d["guard"]) : nil,
+      hash_code:                      d["hashCode"] ? UnionHashCode.from_dynamic!(d["hashCode"]) : nil,
+      has_own_property:               d["hasOwnProperty"] ? UnionHasOwnProperty.from_dynamic!(d["hasOwnProperty"]) : nil,
+      id:                             d["id"] ? UnionID.from_dynamic!(d["id"]) : nil,
+      top_level_if:                   d["if"] ? UnionIf.from_dynamic!(d["if"]) : nil,
+      imp:                            d["IMP"] ? UnionIMP.from_dynamic!(d["IMP"]) : nil,
+      implements:                     d["implements"] ? UnionImplements.from_dynamic!(d["implements"]) : nil,
+      implicit:                       d["implicit"] ? UnionImplicit.from_dynamic!(d["implicit"]) : nil,
+      import:                         d["import"] ? UnionImport.from_dynamic!(d["import"]) : nil,
+      top_level_in:                   d["in"] ? UnionIn.from_dynamic!(d["in"]) : nil,
+      indirect:                       d["indirect"] ? UnionIndirect.from_dynamic!(d["indirect"]) : nil,
+      infix:                          d["infix"] ? UnionInfix.from_dynamic!(d["infix"]) : nil,
+      init:                           d["init"] ? UnionInit.from_dynamic!(d["init"]) : nil,
+      inline:                         d["inline"] ? UnionInline.from_dynamic!(d["inline"]) : nil,
+      inout:                          d["inout"] ? UnionInout.from_dynamic!(d["inout"]) : nil,
+      instanceof:                     d["instanceof"] ? UnionInstanceof.from_dynamic!(d["instanceof"]) : nil,
+      int:                            d["int"] ? UnionInt.from_dynamic!(d["int"]) : nil,
+      interface:                      d["interface"] ? UnionInterface.from_dynamic!(d["interface"]) : nil,
+      internal:                       d["internal"] ? UnionInternal.from_dynamic!(d["internal"]) : nil,
+      is:                             d["is"] ? UnionIs.from_dynamic!(d["is"]) : nil,
+      iso_date_time_offset_converter: d["IsoDateTimeOffsetConverter"] ? UnionISODateTimeOffsetConverter.from_dynamic!(d["IsoDateTimeOffsetConverter"]) : nil,
+      iterable:                       d["iterable"] ? UnionIterable.from_dynamic!(d["iterable"]) : nil,
+      jdec:                           d["jdec"] ? UnionJdec.from_dynamic!(d["jdec"]) : nil,
+      jenc:                           d["jenc"] ? UnionJenc.from_dynamic!(d["jenc"]) : nil,
+      jpipe:                          d["jpipe"] ? UnionJpipe.from_dynamic!(d["jpipe"]) : nil,
+      json:                           d["json"] ? UnionJSON.from_dynamic!(d["json"]) : nil,
+      json_converter:                 d["json_converter"] ? UnionJSONConverter.from_dynamic!(d["json_converter"]) : nil,
+      json_serializer:                d["json_serializer"] ? UnionJSONSerializer.from_dynamic!(d["json_serializer"]) : nil,
+      json_token:                     d["json_token"] ? UnionJSONToken.from_dynamic!(d["json_token"]) : nil,
+      json_writer:                    d["json_writer"] ? UnionJSONWriter.from_dynamic!(d["json_writer"]) : nil,
+      json_any:                       d["JSONAny"] ? UnionJSONAny.from_dynamic!(d["JSONAny"]) : nil,
+      json_coding_key:                d["JSONCodingKey"] ? UnionJSONCodingKey.from_dynamic!(d["JSONCodingKey"]) : nil,
+      json_decoder:                   d["JSONDecoder"] ? UnionJSONDecoder.from_dynamic!(d["JSONDecoder"]) : nil,
+      json_encoder:                   d["JSONEncoder"] ? UnionJSONEncoder.from_dynamic!(d["JSONEncoder"]) : nil,
+      json_exception:                 d["JsonException"] ? UnionJSONException.from_dynamic!(d["JsonException"]) : nil,
+      json_generator:                 d["JsonGenerator"] ? UnionJSONGenerator.from_dynamic!(d["JsonGenerator"]) : nil,
+      json_node:                      d["JsonNode"] ? UnionJSONNode.from_dynamic!(d["JsonNode"]) : nil,
+      json_null:                      d["JSONNull"] ? UnionJSONNull.from_dynamic!(d["JSONNull"]) : nil,
+      json_parser:                    d["JsonParser"] ? UnionJSONParser.from_dynamic!(d["JsonParser"]) : nil,
+      json_reader:                    d["JsonReader"] ? UnionJSONReader.from_dynamic!(d["JsonReader"]) : nil,
+      json_token_type:                d["JsonTokenType"] ? UnionJSONTokenType.from_dynamic!(d["JsonTokenType"]) : nil,
+      top_level_lambda:               d["lambda"] ? UnionLambda.from_dynamic!(d["lambda"]) : nil,
+      lazy:                           d["lazy"] ? UnionLazy.from_dynamic!(d["lazy"]) : nil,
+      left:                           d["left"] ? UnionLeft.from_dynamic!(d["left"]) : nil,
+      let:                            d["let"] ? UnionLet.from_dynamic!(d["let"]) : nil,
+      list:                           d["list"] ? UnionList.from_dynamic!(d["list"]) : nil,
+      lock:                           d["lock"] ? UnionLock.from_dynamic!(d["lock"]) : nil,
+      long:                           d["long"] ? UnionLong.from_dynamic!(d["long"]) : nil,
+      map:                            d["map"] ? UnionMap.from_dynamic!(d["map"]) : nil,
+      metadata_property_handling:     d["metadata_property_handling"] ? UnionMetadataPropertyHandling.from_dynamic!(d["metadata_property_handling"]) : nil,
+      top_level_module:               d["module"] ? UnionModule.from_dynamic!(d["module"]) : nil,
+      mutable:                        d["mutable"] ? UnionMutable.from_dynamic!(d["mutable"]) : nil,
+      mutating:                       d["mutating"] ? UnionMutating.from_dynamic!(d["mutating"]) : nil,
+      namespace:                      d["namespace"] ? UnionNamespace.from_dynamic!(d["namespace"]) : nil,
+      native:                         d["native"] ? UnionNative.from_dynamic!(d["native"]) : nil,
+      top_level_new:                  d["new"] ? UnionNew.from_dynamic!(d["new"]) : nil,
+      newtonsoft:                     d["newtonsoft"] ? UnionNewtonsoft.from_dynamic!(d["newtonsoft"]) : nil,
+      top_level_nil:                  d["nil"] ? UnionNil.from_dynamic!(d["nil"]) : nil,
+      no:                             d["NO"] ? UnionNO.from_dynamic!(d["NO"]) : nil,
+      noexcept:                       d["noexcept"] ? UnionNoexcept.from_dynamic!(d["noexcept"]) : nil,
+      nonatomic:                      d["nonatomic"] ? UnionNonatomic.from_dynamic!(d["nonatomic"]) : nil,
+      top_level_none:                 d["none"] ? UnionNoneUnion.from_dynamic!(d["none"]) : nil,
+      none:                           d["None"] ? UnionNone.from_dynamic!(d["None"]) : nil,
+      nonlocal:                       d["nonlocal"] ? UnionNonlocal.from_dynamic!(d["nonlocal"]) : nil,
+      nonmutating:                    d["nonmutating"] ? UnionNonmutating.from_dynamic!(d["nonmutating"]) : nil,
+      no_such_method:                 d["noSuchMethod"] ? UnionNoSuchMethod.from_dynamic!(d["noSuchMethod"]) : nil,
+      top_level_not:                  d["not"] ? UnionNot.from_dynamic!(d["not"]) : nil,
+      not_eq:                         d["not_eq"] ? UnionNotEq.from_dynamic!(d["not_eq"]) : nil,
+      ns_error:                       d["NSError"] ? UnionNSError.from_dynamic!(d["NSError"]) : nil,
+      ns_string:                      d["NSString"] ? UnionNSString.from_dynamic!(d["NSString"]) : nil,
+      null:                           d["NULL"] ? UnionNULL.from_dynamic!(d["NULL"]) : nil,
+      top_level_null:                 d["null"] ? UnionNull.from_dynamic!(d["null"]) : nil,
+      nullptr:                        d["nullptr"] ? UnionNullptr.from_dynamic!(d["nullptr"]) : nil,
+      number:                         d["number"] ? UnionNumber.from_dynamic!(d["number"]) : nil,
+      object:                         d["object"] ? UnionObject.from_dynamic!(d["object"]) : nil,
+      object_mapper:                  d["ObjectMapper"] ? UnionObjectMapper.from_dynamic!(d["ObjectMapper"]) : nil,
+      of:                             d["of"] ? UnionOf.from_dynamic!(d["of"]) : nil,
+      oneway:                         d["oneway"] ? UnionOneway.from_dynamic!(d["oneway"]) : nil,
+      top_level_open:                 d["open"] ? UnionOpen.from_dynamic!(d["open"]) : nil,
+      operator:                       d["operator"] ? UnionOperator.from_dynamic!(d["operator"]) : nil,
+      top_level_optional:             d["optional"] ? UnionOptional.from_dynamic!(d["optional"]) : nil,
+      top_level_or:                   d["or"] ? UnionOr.from_dynamic!(d["or"]) : nil,
+      or_eq:                          d["or_eq"] ? UnionOrEq.from_dynamic!(d["or_eq"]) : nil,
+      out:                            d["out"] ? UnionOut.from_dynamic!(d["out"]) : nil,
+      override:                       d["override"] ? UnionOverride.from_dynamic!(d["override"]) : nil,
+      package:                        d["package"] ? UnionPackage.from_dynamic!(d["package"]) : nil,
+      params:                         d["params"] ? UnionParams.from_dynamic!(d["params"]) : nil,
+      pass:                           d["pass"] ? UnionPass.from_dynamic!(d["pass"]) : nil,
+      port:                           d["port"] ? UnionPort.from_dynamic!(d["port"]) : nil,
+      postfix:                        d["postfix"] ? UnionPostfix.from_dynamic!(d["postfix"]) : nil,
+      precedence:                     d["precedence"] ? UnionPrecedence.from_dynamic!(d["precedence"]) : nil,
+      prefix:                         d["prefix"] ? UnionPrefix.from_dynamic!(d["prefix"]) : nil,
+      top_level_print:                d["print"] ? UnionPrint.from_dynamic!(d["print"]) : nil,
+      top_level_printf:               d["printf"] ? UnionPrintf.from_dynamic!(d["printf"]) : nil,
+      print_members:                  d["printMembers"] ? UnionPrintMembers.from_dynamic!(d["printMembers"]) : nil,
+      private:                        d["private"] ? UnionPrivate.from_dynamic!(d["private"]) : nil,
+      protected:                      d["protected"] ? UnionProtected.from_dynamic!(d["protected"]) : nil,
+      protocol:                       d["Protocol"] ? UnionProtocol.from_dynamic!(d["Protocol"]) : nil,
+      top_level_protocol:             d["protocol"] ? UnionProtocolUnion.from_dynamic!(d["protocol"]) : nil,
+      public:                         d["public"] ? UnionPublic.from_dynamic!(d["public"]) : nil,
+      quicktype:                      d["quicktype"] ? UnionQuicktype.from_dynamic!(d["quicktype"]) : nil,
+      top_level_raise:                d["raise"] ? UnionRaise.from_dynamic!(d["raise"]) : nil,
+      range:                          d["range"] ? UnionRange.from_dynamic!(d["range"]) : nil,
+      readonly:                       d["readonly"] ? UnionReadonly.from_dynamic!(d["readonly"]) : nil,
+      ref:                            d["ref"] ? UnionRef.from_dynamic!(d["ref"]) : nil,
+      reg_exp:                        d["RegExp"] ? UnionRegExp.from_dynamic!(d["RegExp"]) : nil,
+      register:                       d["register"] ? UnionRegister.from_dynamic!(d["register"]) : nil,
+      reinterpret_cast:               d["reinterpret_cast"] ? UnionReinterpretCast.from_dynamic!(d["reinterpret_cast"]) : nil,
+      repeat:                         d["repeat"] ? UnionRepeat.from_dynamic!(d["repeat"]) : nil,
+      top_level_require:              d["require"] ? UnionRequire.from_dynamic!(d["require"]) : nil,
+      required:                       d["required"] ? UnionRequired.from_dynamic!(d["required"]) : nil,
+      requires:                       d["requires"] ? UnionRequires.from_dynamic!(d["requires"]) : nil,
+      restrict:                       d["restrict"] ? UnionRestrict.from_dynamic!(d["restrict"]) : nil,
+      retain:                         d["retain"] ? UnionRetain.from_dynamic!(d["retain"]) : nil,
+      rethrows:                       d["rethrows"] ? UnionRethrows.from_dynamic!(d["rethrows"]) : nil,
+      top_level_return:               d["return"] ? UnionReturn.from_dynamic!(d["return"]) : nil,
+      right:                          d["right"] ? UnionRight.from_dynamic!(d["right"]) : nil,
+      runtime_type:                   d["runtimeType"] ? UnionRuntimeType.from_dynamic!(d["runtimeType"]) : nil,
+      s:                              d["s"] ? UnionS.from_dynamic!(d["s"]) : nil,
+      sbyte:                          d["sbyte"] ? UnionSbyte.from_dynamic!(d["sbyte"]) : nil,
+      sealed:                         d["sealed"] ? UnionSealed.from_dynamic!(d["sealed"]) : nil,
+      sel:                            d["SEL"] ? UnionSEL.from_dynamic!(d["SEL"]) : nil,
+      top_level_select:               d["select"] ? UnionSelect.from_dynamic!(d["select"]) : nil,
+      top_level_self:                 d["Self"] ? UnionSelf.from_dynamic!(d["Self"]) : nil,
+      self_1:                         d["self"] ? UnionSelfUnion.from_dynamic!(d["self"]) : nil,
+      serialize:                      d["serialize"] ? UnionSerialize.from_dynamic!(d["serialize"]) : nil,
+      serializer_provider:            d["SerializerProvider"] ? UnionSerializerProvider.from_dynamic!(d["SerializerProvider"]) : nil,
+      set:                            d["set"] ? UnionSet.from_dynamic!(d["set"]) : nil,
+      short:                          d["short"] ? UnionShort.from_dynamic!(d["short"]) : nil,
+      signed:                         d["signed"] ? UnionSigned.from_dynamic!(d["signed"]) : nil,
+      simple_module:                  d["SimpleModule"] ? UnionSimpleModule.from_dynamic!(d["SimpleModule"]) : nil,
+      sizeof:                         d["sizeof"] ? UnionSizeof.from_dynamic!(d["sizeof"]) : nil,
+      stackalloc:                     d["stackalloc"] ? UnionStackalloc.from_dynamic!(d["stackalloc"]) : nil,
+      standards:                      d["Standards"] ? UnionStandards.from_dynamic!(d["Standards"]) : nil,
+      static:                         d["static"] ? UnionStatic.from_dynamic!(d["static"]) : nil,
+      static_assert:                  d["static_assert"] ? UnionStaticAssert.from_dynamic!(d["static_assert"]) : nil,
+      static_cast:                    d["static_cast"] ? UnionStaticCast.from_dynamic!(d["static_cast"]) : nil,
+      std_deserializer:               d["StdDeserializer"] ? UnionStdDeserializer.from_dynamic!(d["StdDeserializer"]) : nil,
+      std_serializer:                 d["StdSerializer"] ? UnionStdSerializer.from_dynamic!(d["StdSerializer"]) : nil,
+      strictfp:                       d["strictfp"] ? UnionStrictfp.from_dynamic!(d["strictfp"]) : nil,
+      string:                         d["string"] ? UnionString.from_dynamic!(d["string"]) : nil,
+      struct:                         d["struct"] ? UnionStruct.from_dynamic!(d["struct"]) : nil,
+      subscript:                      d["subscript"] ? UnionSubscript.from_dynamic!(d["subscript"]) : nil,
+      top_level_super:                d["super"] ? UnionSuper.from_dynamic!(d["super"]) : nil,
+      switch:                         d["switch"] ? UnionSwitch.from_dynamic!(d["switch"]) : nil,
+      symbol:                         d["symbol"] ? UnionSymbol.from_dynamic!(d["symbol"]) : nil,
+      synchronized:                   d["synchronized"] ? UnionSynchronized.from_dynamic!(d["synchronized"]) : nil,
+      top_level_system:               d["system"] ? UnionSystem.from_dynamic!(d["system"]) : nil,
+      template:                       d["template"] ? UnionTemplate.from_dynamic!(d["template"]) : nil,
+      top_level_then:                 d["then"] ? UnionThen.from_dynamic!(d["then"]) : nil,
+      this:                           d["this"] ? UnionThis.from_dynamic!(d["this"]) : nil,
+      thread_local:                   d["thread_local"] ? UnionThreadLocal.from_dynamic!(d["thread_local"]) : nil,
+      top_level_throw:                d["throw"] ? UnionThrow.from_dynamic!(d["throw"]) : nil,
+      throws:                         d["throws"] ? UnionThrows.from_dynamic!(d["throws"]) : nil,
+      time_only:                      d["TimeOnly"] ? UnionTimeOnly.from_dynamic!(d["TimeOnly"]) : nil,
+      time_only_converter:            d["TimeOnlyConverter"] ? UnionTimeOnlyConverter.from_dynamic!(d["TimeOnlyConverter"]) : nil,
+      top_level_to_json:              d["to_json"] ? UnionToJSON.from_dynamic!(d["to_json"]) : nil,
+      top_level:                      d["top_level"] ? UnionTopLevel.from_dynamic!(d["top_level"]) : nil,
+      to_string:                      d["toString"] ? UnionToString.from_dynamic!(d["toString"]) : nil,
+      transient:                      d["transient"] ? UnionTransient.from_dynamic!(d["transient"]) : nil,
+      top_level_true:                 d["True"] ? UnionTrue.from_dynamic!(d["True"]) : nil,
+      true_1:                         d["true"] ? UnionTrueUnion.from_dynamic!(d["true"]) : nil,
+      top_level_try:                  d["try"] ? UnionTry.from_dynamic!(d["try"]) : nil,
+      top_level_type:                 d["Type"] ? UnionType.from_dynamic!(d["Type"]) : nil,
+      type_1:                         d["type"] ? UnionTypeUnion.from_dynamic!(d["type"]) : nil,
+      typealias:                      d["typealias"] ? UnionTypealias.from_dynamic!(d["typealias"]) : nil,
+      typedef:                        d["typedef"] ? UnionTypedef.from_dynamic!(d["typedef"]) : nil,
+      typeid:                         d["typeid"] ? UnionTypeid.from_dynamic!(d["typeid"]) : nil,
+      typename:                       d["typename"] ? UnionTypename.from_dynamic!(d["typename"]) : nil,
+      typeof:                         d["typeof"] ? UnionTypeof.from_dynamic!(d["typeof"]) : nil,
+      uint:                           d["uint"] ? UnionUint.from_dynamic!(d["uint"]) : nil,
+      ulong:                          d["ulong"] ? UnionUlong.from_dynamic!(d["ulong"]) : nil,
+      unchecked:                      d["unchecked"] ? UnionUnchecked.from_dynamic!(d["unchecked"]) : nil,
+      undefined:                      d["undefined"] ? UnionUndefined.from_dynamic!(d["undefined"]) : nil,
+      union:                          d["union"] ? UnionUnionUnion.from_dynamic!(d["union"]) : nil,
+      unowned:                        d["unowned"] ? UnionUnowned.from_dynamic!(d["unowned"]) : nil,
+      unsafe:                         d["unsafe"] ? UnionUnsafe.from_dynamic!(d["unsafe"]) : nil,
+      unsigned:                       d["unsigned"] ? UnionUnsigned.from_dynamic!(d["unsigned"]) : nil,
+      ushort:                         d["ushort"] ? UnionUshort.from_dynamic!(d["ushort"]) : nil,
+      using:                          d["using"] ? UnionUsing.from_dynamic!(d["using"]) : nil,
+      utf8_json_reader:               d["Utf8JsonReader"] ? UnionUtf8JSONReader.from_dynamic!(d["Utf8JsonReader"]) : nil,
+      utf8_json_writer:               d["Utf8JsonWriter"] ? UnionUtf8JSONWriter.from_dynamic!(d["Utf8JsonWriter"]) : nil,
+      uuid:                           d["UUID"] ? UnionUUID.from_dynamic!(d["UUID"]) : nil,
+      var:                            d["var"] ? UnionVar.from_dynamic!(d["var"]) : nil,
+      virtual:                        d["virtual"] ? UnionVirtual.from_dynamic!(d["virtual"]) : nil,
+      void:                           d["void"] ? UnionVoid.from_dynamic!(d["void"]) : nil,
+      volatile:                       d["volatile"] ? UnionVolatile.from_dynamic!(d["volatile"]) : nil,
+      wchar_t:                        d["wchar_t"] ? UnionWcharT.from_dynamic!(d["wchar_t"]) : nil,
+      weak:                           d["weak"] ? UnionWeak.from_dynamic!(d["weak"]) : nil,
+      where:                          d["where"] ? UnionWhere.from_dynamic!(d["where"]) : nil,
+      top_level_while:                d["while"] ? UnionWhile.from_dynamic!(d["while"]) : nil,
+      will_set:                       d["willSet"] ? UnionWillSet.from_dynamic!(d["willSet"]) : nil,
+      top_level_with:                 d["with"] ? UnionWith.from_dynamic!(d["with"]) : nil,
+      xor:                            d["xor"] ? UnionXor.from_dynamic!(d["xor"]) : nil,
+      xor_eq:                         d["xor_eq"] ? UnionXorEq.from_dynamic!(d["xor_eq"]) : nil,
+      yes:                            d["YES"] ? UnionYES.from_dynamic!(d["YES"]) : nil,
+      top_level_yield:                d["yield"] ? UnionYield.from_dynamic!(d["yield"]) : nil,
     )
   end
 
@@ -16362,6 +18781,7 @@ class TopLevel < Dry::Struct
       "checked"                    => checked&.to_dynamic,
       "class"                      => class_1&.to_dynamic,
       "Class"                      => top_level_class&.to_dynamic,
+      "clone"                      => top_level_clone&.to_dynamic,
       "co_await"                   => co_await&.to_dynamic,
       "co_return"                  => co_return&.to_dynamic,
       "co_yield"                   => co_yield&.to_dynamic,
@@ -16376,8 +18796,14 @@ class TopLevel < Dry::Struct
       "convenience"                => convenience&.to_dynamic,
       "convert"                    => convert&.to_dynamic,
       "converter"                  => converter&.to_dynamic,
+      "CultureInfo"                => culture_info&.to_dynamic,
       "date"                       => date&.to_dynamic,
       "date_parse_handling"        => date_parse_handling&.to_dynamic,
+      "DateFormatter"              => date_formatter&.to_dynamic,
+      "DateOnly"                   => date_only&.to_dynamic,
+      "DateOnlyConverter"          => date_only_converter&.to_dynamic,
+      "DateTime"                   => date_time&.to_dynamic,
+      "DateTimeStyles"             => date_time_styles&.to_dynamic,
       "debugger"                   => debugger&.to_dynamic,
       "decimal"                    => decimal&.to_dynamic,
       "declare"                    => declare&.to_dynamic,
@@ -16402,6 +18828,8 @@ class TopLevel < Dry::Struct
       "else"                       => top_level_else&.to_dynamic,
       "encode_quick_type"          => encode_quick_type&.to_dynamic,
       "enum"                       => top_level_enum&.to_dynamic,
+      "EnumValues"                 => enum_values&.to_dynamic,
+      "equalityContract"           => equality_contract&.to_dynamic,
       "event"                      => event&.to_dynamic,
       "except"                     => except&.to_dynamic,
       "exception"                  => exception&.to_dynamic,
@@ -16421,6 +18849,7 @@ class TopLevel < Dry::Struct
       "float"                      => float&.to_dynamic,
       "for"                        => top_level_for&.to_dynamic,
       "foreach"                    => foreach&.to_dynamic,
+      "FormatException"            => format_exception&.to_dynamic,
       "friend"                     => friend&.to_dynamic,
       "from"                       => from&.to_dynamic,
       "from_json"                  => from_json&.to_dynamic,
@@ -16431,6 +18860,7 @@ class TopLevel < Dry::Struct
       "go"                         => go&.to_dynamic,
       "goto"                       => goto&.to_dynamic,
       "guard"                      => guard&.to_dynamic,
+      "hashCode"                   => hash_code&.to_dynamic,
       "hasOwnProperty"             => has_own_property&.to_dynamic,
       "id"                         => id&.to_dynamic,
       "if"                         => top_level_if&.to_dynamic,
@@ -16449,6 +18879,7 @@ class TopLevel < Dry::Struct
       "interface"                  => interface&.to_dynamic,
       "internal"                   => internal&.to_dynamic,
       "is"                         => is&.to_dynamic,
+      "IsoDateTimeOffsetConverter" => iso_date_time_offset_converter&.to_dynamic,
       "iterable"                   => iterable&.to_dynamic,
       "jdec"                       => jdec&.to_dynamic,
       "jenc"                       => jenc&.to_dynamic,
@@ -16458,6 +18889,17 @@ class TopLevel < Dry::Struct
       "json_serializer"            => json_serializer&.to_dynamic,
       "json_token"                 => json_token&.to_dynamic,
       "json_writer"                => json_writer&.to_dynamic,
+      "JSONAny"                    => json_any&.to_dynamic,
+      "JSONCodingKey"              => json_coding_key&.to_dynamic,
+      "JSONDecoder"                => json_decoder&.to_dynamic,
+      "JSONEncoder"                => json_encoder&.to_dynamic,
+      "JsonException"              => json_exception&.to_dynamic,
+      "JsonGenerator"              => json_generator&.to_dynamic,
+      "JsonNode"                   => json_node&.to_dynamic,
+      "JSONNull"                   => json_null&.to_dynamic,
+      "JsonParser"                 => json_parser&.to_dynamic,
+      "JsonReader"                 => json_reader&.to_dynamic,
+      "JsonTokenType"              => json_token_type&.to_dynamic,
       "lambda"                     => top_level_lambda&.to_dynamic,
       "lazy"                       => lazy&.to_dynamic,
       "left"                       => left&.to_dynamic,
@@ -16482,14 +18924,17 @@ class TopLevel < Dry::Struct
       "None"                       => none&.to_dynamic,
       "nonlocal"                   => nonlocal&.to_dynamic,
       "nonmutating"                => nonmutating&.to_dynamic,
+      "noSuchMethod"               => no_such_method&.to_dynamic,
       "not"                        => top_level_not&.to_dynamic,
       "not_eq"                     => not_eq&.to_dynamic,
+      "NSError"                    => ns_error&.to_dynamic,
       "NSString"                   => ns_string&.to_dynamic,
       "NULL"                       => null&.to_dynamic,
       "null"                       => top_level_null&.to_dynamic,
       "nullptr"                    => nullptr&.to_dynamic,
       "number"                     => number&.to_dynamic,
       "object"                     => object&.to_dynamic,
+      "ObjectMapper"               => object_mapper&.to_dynamic,
       "of"                         => of&.to_dynamic,
       "oneway"                     => oneway&.to_dynamic,
       "open"                       => top_level_open&.to_dynamic,
@@ -16508,6 +18953,7 @@ class TopLevel < Dry::Struct
       "prefix"                     => prefix&.to_dynamic,
       "print"                      => top_level_print&.to_dynamic,
       "printf"                     => top_level_printf&.to_dynamic,
+      "printMembers"               => print_members&.to_dynamic,
       "private"                    => private&.to_dynamic,
       "protected"                  => protected&.to_dynamic,
       "Protocol"                   => protocol&.to_dynamic,
@@ -16518,6 +18964,7 @@ class TopLevel < Dry::Struct
       "range"                      => range&.to_dynamic,
       "readonly"                   => readonly&.to_dynamic,
       "ref"                        => ref&.to_dynamic,
+      "RegExp"                     => reg_exp&.to_dynamic,
       "register"                   => register&.to_dynamic,
       "reinterpret_cast"           => reinterpret_cast&.to_dynamic,
       "repeat"                     => repeat&.to_dynamic,
@@ -16529,6 +18976,8 @@ class TopLevel < Dry::Struct
       "rethrows"                   => rethrows&.to_dynamic,
       "return"                     => top_level_return&.to_dynamic,
       "right"                      => right&.to_dynamic,
+      "runtimeType"                => runtime_type&.to_dynamic,
+      "s"                          => s&.to_dynamic,
       "sbyte"                      => sbyte&.to_dynamic,
       "sealed"                     => sealed&.to_dynamic,
       "SEL"                        => sel&.to_dynamic,
@@ -16536,14 +18985,19 @@ class TopLevel < Dry::Struct
       "Self"                       => top_level_self&.to_dynamic,
       "self"                       => self_1&.to_dynamic,
       "serialize"                  => serialize&.to_dynamic,
+      "SerializerProvider"         => serializer_provider&.to_dynamic,
       "set"                        => set&.to_dynamic,
       "short"                      => short&.to_dynamic,
       "signed"                     => signed&.to_dynamic,
+      "SimpleModule"               => simple_module&.to_dynamic,
       "sizeof"                     => sizeof&.to_dynamic,
       "stackalloc"                 => stackalloc&.to_dynamic,
+      "Standards"                  => standards&.to_dynamic,
       "static"                     => static&.to_dynamic,
       "static_assert"              => static_assert&.to_dynamic,
       "static_cast"                => static_cast&.to_dynamic,
+      "StdDeserializer"            => std_deserializer&.to_dynamic,
+      "StdSerializer"              => std_serializer&.to_dynamic,
       "strictfp"                   => strictfp&.to_dynamic,
       "string"                     => string&.to_dynamic,
       "struct"                     => struct&.to_dynamic,
@@ -16559,8 +19013,11 @@ class TopLevel < Dry::Struct
       "thread_local"               => thread_local&.to_dynamic,
       "throw"                      => top_level_throw&.to_dynamic,
       "throws"                     => throws&.to_dynamic,
+      "TimeOnly"                   => time_only&.to_dynamic,
+      "TimeOnlyConverter"          => time_only_converter&.to_dynamic,
       "to_json"                    => top_level_to_json&.to_dynamic,
       "top_level"                  => top_level&.to_dynamic,
+      "toString"                   => to_string&.to_dynamic,
       "transient"                  => transient&.to_dynamic,
       "True"                       => top_level_true&.to_dynamic,
       "true"                       => true_1&.to_dynamic,
@@ -16582,6 +19039,9 @@ class TopLevel < Dry::Struct
       "unsigned"                   => unsigned&.to_dynamic,
       "ushort"                     => ushort&.to_dynamic,
       "using"                      => using&.to_dynamic,
+      "Utf8JsonReader"             => utf8_json_reader&.to_dynamic,
+      "Utf8JsonWriter"             => utf8_json_writer&.to_dynamic,
+      "UUID"                       => uuid&.to_dynamic,
       "var"                        => var&.to_dynamic,
       "virtual"                    => virtual&.to_dynamic,
       "void"                       => void&.to_dynamic,
diff --git a/base/schema-rust/test/inputs/schema/keyword-enum.schema/default/module_under_test.rs b/head/schema-rust/test/inputs/schema/keyword-enum.schema/default/module_under_test.rs
index fdc455c..3edb7e6 100644
--- a/base/schema-rust/test/inputs/schema/keyword-enum.schema/default/module_under_test.rs
+++ b/head/schema-rust/test/inputs/schema/keyword-enum.schema/default/module_under_test.rs
@@ -122,6 +122,8 @@ pub enum Enum {
     #[serde(rename = "Class")]
     EnumClass,
 
+    Clone,
+
     #[serde(rename = "co_await")]
     CoAwait,
 
@@ -154,11 +156,29 @@ pub enum Enum {
 
     Converter,
 
+    #[serde(rename = "CultureInfo")]
+    CultureInfo,
+
     Date,
 
     #[serde(rename = "date_parse_handling")]
     DateParseHandling,
 
+    #[serde(rename = "DateFormatter")]
+    DateFormatter,
+
+    #[serde(rename = "DateOnly")]
+    DateOnly,
+
+    #[serde(rename = "DateOnlyConverter")]
+    DateOnlyConverter,
+
+    #[serde(rename = "DateTime")]
+    DateTime,
+
+    #[serde(rename = "DateTimeStyles")]
+    DateTimeStyles,
+
     Debugger,
 
     Decimal,
@@ -209,6 +229,12 @@ pub enum Enum {
 
     Enum,
 
+    #[serde(rename = "EnumValues")]
+    EnumValues,
+
+    #[serde(rename = "equalityContract")]
+    EqualityContract,
+
     Event,
 
     Except,
@@ -248,6 +274,9 @@ pub enum Enum {
 
     Foreach,
 
+    #[serde(rename = "FormatException")]
+    FormatException,
+
     Friend,
 
     From,
@@ -269,6 +298,9 @@ pub enum Enum {
 
     Guard,
 
+    #[serde(rename = "hashCode")]
+    HashCode,
+
     #[serde(rename = "hasOwnProperty")]
     HasOwnProperty,
 
@@ -305,6 +337,9 @@ pub enum Enum {
 
     Internal,
 
+    #[serde(rename = "IsoDateTimeOffsetConverter")]
+    IsoDateTimeOffsetConverter,
+
     Iterable,
 
     Is,
@@ -329,6 +364,39 @@ pub enum Enum {
     #[serde(rename = "json_writer")]
     JsonWriter,
 
+    #[serde(rename = "JSONAny")]
+    JsonAny,
+
+    #[serde(rename = "JSONCodingKey")]
+    JsonCodingKey,
+
+    #[serde(rename = "JSONDecoder")]
+    JsonDecoder,
+
+    #[serde(rename = "JSONEncoder")]
+    JsonEncoder,
+
+    #[serde(rename = "JsonException")]
+    JsonException,
+
+    #[serde(rename = "JsonGenerator")]
+    JsonGenerator,
+
+    #[serde(rename = "JsonNode")]
+    JsonNode,
+
+    #[serde(rename = "JSONNull")]
+    JsonNull,
+
+    #[serde(rename = "JsonParser")]
+    JsonParser,
+
+    #[serde(rename = "JsonReader")]
+    JsonReader,
+
+    #[serde(rename = "JsonTokenType")]
+    JsonTokenType,
+
     Lambda,
 
     Lazy,
@@ -381,11 +449,17 @@ pub enum Enum {
 
     Nonmutating,
 
+    #[serde(rename = "noSuchMethod")]
+    NoSuchMethod,
+
     Not,
 
     #[serde(rename = "not_eq")]
     NotEq,
 
+    #[serde(rename = "NSError")]
+    NsError,
+
     #[serde(rename = "NSString")]
     NsString,
 
@@ -401,6 +475,9 @@ pub enum Enum {
 
     Object,
 
+    #[serde(rename = "ObjectMapper")]
+    ObjectMapper,
+
     Of,
 
     Oneway,
@@ -438,6 +515,9 @@ pub enum Enum {
 
     Printf,
 
+    #[serde(rename = "printMembers")]
+    PrintMembers,
+
     Private,
 
     Protected,
@@ -460,6 +540,9 @@ pub enum Enum {
 
     Ref,
 
+    #[serde(rename = "RegExp")]
+    RegExp,
+
     Register,
 
     #[serde(rename = "reinterpret_cast")]
@@ -483,6 +566,11 @@ pub enum Enum {
 
     Right,
 
+    #[serde(rename = "runtimeType")]
+    RuntimeType,
+
+    S,
+
     Sbyte,
 
     Sealed,
@@ -501,16 +589,25 @@ pub enum Enum {
     #[serde(rename = "serialize")]
     EnumSerialize,
 
+    #[serde(rename = "SerializerProvider")]
+    SerializerProvider,
+
     Set,
 
     Short,
 
     Signed,
 
+    #[serde(rename = "SimpleModule")]
+    SimpleModule,
+
     Sizeof,
 
     Stackalloc,
 
+    #[serde(rename = "Standards")]
+    Standards,
+
     Static,
 
     #[serde(rename = "static_assert")]
@@ -519,6 +616,12 @@ pub enum Enum {
     #[serde(rename = "static_cast")]
     StaticCast,
 
+    #[serde(rename = "StdDeserializer")]
+    StdDeserializer,
+
+    #[serde(rename = "StdSerializer")]
+    StdSerializer,
+
     Strictfp,
 
     #[serde(rename = "string")]
@@ -551,12 +654,21 @@ pub enum Enum {
 
     Throws,
 
+    #[serde(rename = "TimeOnly")]
+    TimeOnly,
+
+    #[serde(rename = "TimeOnlyConverter")]
+    TimeOnlyConverter,
+
     #[serde(rename = "to_json")]
     ToJson,
 
     #[serde(rename = "top_level")]
     TopLevel,
 
+    #[serde(rename = "toString")]
+    ToString,
+
     Transient,
 
     #[serde(rename = "True")]
@@ -603,6 +715,15 @@ pub enum Enum {
 
     Using,
 
+    #[serde(rename = "Utf8JsonReader")]
+    Utf8JsonReader,
+
+    #[serde(rename = "Utf8JsonWriter")]
+    Utf8JsonWriter,
+
+    #[serde(rename = "UUID")]
+    Uuid,
+
     Var,
 
     Virtual,
diff --git a/base/schema-rust/test/inputs/schema/keyword-unions.schema/default/module_under_test.rs b/head/schema-rust/test/inputs/schema/keyword-unions.schema/default/module_under_test.rs
index 131d3af..a92ace1 100644
--- a/base/schema-rust/test/inputs/schema/keyword-unions.schema/default/module_under_test.rs
+++ b/head/schema-rust/test/inputs/schema/keyword-unions.schema/default/module_under_test.rs
@@ -117,6 +117,8 @@ pub struct TopLevel {
     #[serde(rename = "Class")]
     pub class: Option<UnionClass>,
 
+    pub clone: Option<UnionClone>,
+
     pub co_await: Option<UnionCoAwait>,
 
     pub co_return: Option<UnionCoReturn>,
@@ -147,10 +149,28 @@ pub struct TopLevel {
 
     pub converter: Option<UnionConverter>,
 
+    #[serde(rename = "CultureInfo")]
+    pub culture_info: Option<UnionCultureInfo>,
+
     pub date: Option<UnionDate>,
 
     pub date_parse_handling: Option<UnionDateParseHandling>,
 
+    #[serde(rename = "DateFormatter")]
+    pub date_formatter: Option<UnionDateFormatter>,
+
+    #[serde(rename = "DateOnly")]
+    pub date_only: Option<UnionDateOnly>,
+
+    #[serde(rename = "DateOnlyConverter")]
+    pub date_only_converter: Option<UnionDateOnlyConverter>,
+
+    #[serde(rename = "DateTime")]
+    pub date_time: Option<UnionDateTime>,
+
+    #[serde(rename = "DateTimeStyles")]
+    pub date_time_styles: Option<UnionDateTimeStyles>,
+
     pub debugger: Option<UnionDebugger>,
 
     pub decimal: Option<UnionDecimal>,
@@ -204,6 +224,12 @@ pub struct TopLevel {
     #[serde(rename = "enum")]
     pub top_level_enum: Option<UnionEnum>,
 
+    #[serde(rename = "EnumValues")]
+    pub enum_values: Option<UnionEnumValues>,
+
+    #[serde(rename = "equalityContract")]
+    pub equality_contract: Option<UnionEqualityContract>,
+
     pub event: Option<UnionEvent>,
 
     pub except: Option<UnionExcept>,
@@ -247,6 +273,9 @@ pub struct TopLevel {
 
     pub foreach: Option<UnionForeach>,
 
+    #[serde(rename = "FormatException")]
+    pub format_exception: Option<UnionFormatException>,
+
     pub friend: Option<UnionFriend>,
 
     pub from: Option<UnionFrom>,
@@ -267,6 +296,9 @@ pub struct TopLevel {
 
     pub guard: Option<UnionGuard>,
 
+    #[serde(rename = "hashCode")]
+    pub hash_code: Option<UnionHashCode>,
+
     #[serde(rename = "hasOwnProperty")]
     pub has_own_property: Option<UnionHasOwnProperty>,
 
@@ -307,6 +339,9 @@ pub struct TopLevel {
 
     pub is: Option<UnionIs>,
 
+    #[serde(rename = "IsoDateTimeOffsetConverter")]
+    pub iso_date_time_offset_converter: Option<UnionIsoDateTimeOffsetConverter>,
+
     pub iterable: Option<UnionIterable>,
 
     pub jdec: Option<UnionJdec>,
@@ -325,6 +360,39 @@ pub struct TopLevel {
 
     pub json_writer: Option<UnionJsonWriter>,
 
+    #[serde(rename = "JSONAny")]
+    pub json_any: Option<UnionJsonAny>,
+
+    #[serde(rename = "JSONCodingKey")]
+    pub json_coding_key: Option<UnionJsonCodingKey>,
+
+    #[serde(rename = "JSONDecoder")]
+    pub json_decoder: Option<UnionJsonDecoder>,
+
+    #[serde(rename = "JSONEncoder")]
+    pub json_encoder: Option<UnionJsonEncoder>,
+
+    #[serde(rename = "JsonException")]
+    pub json_exception: Option<UnionJsonException>,
+
+    #[serde(rename = "JsonGenerator")]
+    pub json_generator: Option<UnionJsonGenerator>,
+
+    #[serde(rename = "JsonNode")]
+    pub json_node: Option<UnionJsonNode>,
+
+    #[serde(rename = "JSONNull")]
+    pub json_null: Option<UnionJsonNull>,
+
+    #[serde(rename = "JsonParser")]
+    pub json_parser: Option<UnionJsonParser>,
+
+    #[serde(rename = "JsonReader")]
+    pub json_reader: Option<UnionJsonReader>,
+
+    #[serde(rename = "JsonTokenType")]
+    pub json_token_type: Option<UnionJsonTokenType>,
+
     pub lambda: Option<UnionLambda>,
 
     pub lazy: Option<UnionLazy>,
@@ -377,10 +445,16 @@ pub struct TopLevel {
 
     pub nonmutating: Option<UnionNonmutating>,
 
+    #[serde(rename = "noSuchMethod")]
+    pub no_such_method: Option<UnionNoSuchMethod>,
+
     pub not: Option<UnionNot>,
 
     pub not_eq: Option<UnionNotEq>,
 
+    #[serde(rename = "NSError")]
+    pub ns_error: Option<UnionNsError>,
+
     #[serde(rename = "NSString")]
     pub ns_string: Option<UnionNsString>,
 
@@ -396,6 +470,9 @@ pub struct TopLevel {
 
     pub object: Option<UnionObject>,
 
+    #[serde(rename = "ObjectMapper")]
+    pub object_mapper: Option<UnionObjectMapper>,
+
     pub of: Option<UnionOf>,
 
     pub oneway: Option<UnionOneway>,
@@ -433,6 +510,9 @@ pub struct TopLevel {
 
     pub printf: Option<UnionPrintf>,
 
+    #[serde(rename = "printMembers")]
+    pub print_members: Option<UnionPrintMembers>,
+
     pub private: Option<UnionPrivate>,
 
     pub protected: Option<UnionProtected>,
@@ -456,6 +536,9 @@ pub struct TopLevel {
     #[serde(rename = "ref")]
     pub top_level_ref: Option<UnionRef>,
 
+    #[serde(rename = "RegExp")]
+    pub reg_exp: Option<UnionRegExp>,
+
     pub register: Option<UnionRegister>,
 
     pub reinterpret_cast: Option<UnionReinterpretCast>,
@@ -479,6 +562,11 @@ pub struct TopLevel {
 
     pub right: Option<UnionRight>,
 
+    #[serde(rename = "runtimeType")]
+    pub runtime_type: Option<UnionRuntimeType>,
+
+    pub s: Option<UnionS>,
+
     pub sbyte: Option<UnionSbyte>,
 
     pub sealed: Option<UnionSealed>,
@@ -496,17 +584,26 @@ pub struct TopLevel {
 
     pub serialize: Option<UnionSerialize>,
 
+    #[serde(rename = "SerializerProvider")]
+    pub serializer_provider: Option<UnionSerializerProvider>,
+
     pub set: Option<UnionSet>,
 
     pub short: Option<UnionShort>,
 
     pub signed: Option<UnionSigned>,
 
+    #[serde(rename = "SimpleModule")]
+    pub simple_module: Option<UnionSimpleModule>,
+
     #[serde(rename = "sizeof")]
     pub top_level_sizeof: Option<UnionSizeof>,
 
     pub stackalloc: Option<UnionStackalloc>,
 
+    #[serde(rename = "Standards")]
+    pub standards: Option<UnionStandards>,
+
     #[serde(rename = "static")]
     pub top_level_static: Option<UnionStatic>,
 
@@ -514,6 +611,12 @@ pub struct TopLevel {
 
     pub static_cast: Option<UnionStaticCast>,
 
+    #[serde(rename = "StdDeserializer")]
+    pub std_deserializer: Option<UnionStdDeserializer>,
+
+    #[serde(rename = "StdSerializer")]
+    pub std_serializer: Option<UnionStdSerializer>,
+
     pub strictfp: Option<UnionStrictfp>,
 
     pub string: Option<UnionString>,
@@ -546,10 +649,19 @@ pub struct TopLevel {
 
     pub throws: Option<UnionThrows>,
 
+    #[serde(rename = "TimeOnly")]
+    pub time_only: Option<UnionTimeOnly>,
+
+    #[serde(rename = "TimeOnlyConverter")]
+    pub time_only_converter: Option<UnionTimeOnlyConverter>,
+
     pub to_json: Option<UnionToJson>,
 
     pub top_level: Option<UnionTopLevel>,
 
+    #[serde(rename = "toString")]
+    pub to_string: Option<UnionToString>,
+
     pub transient: Option<UnionTransient>,
 
     #[serde(rename = "True")]
@@ -599,6 +711,15 @@ pub struct TopLevel {
 
     pub using: Option<UnionUsing>,
 
+    #[serde(rename = "Utf8JsonReader")]
+    pub utf8_json_reader: Option<UnionUtf8JsonReader>,
+
+    #[serde(rename = "Utf8JsonWriter")]
+    pub utf8_json_writer: Option<UnionUtf8JsonWriter>,
+
+    #[serde(rename = "UUID")]
+    pub uuid: Option<UnionUuid>,
+
     pub var: Option<UnionVar>,
 
     #[serde(rename = "virtual")]
@@ -994,6 +1115,18 @@ pub enum UnionClass {
 pub struct Class {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionClone {
+    Clone(Clone),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Clone {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionCoAwait {
@@ -1150,6 +1283,18 @@ pub enum UnionConverter {
 pub struct Converter {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionCultureInfo {
+    CultureInfo(CultureInfo),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct CultureInfo {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionDate {
@@ -1162,6 +1307,42 @@ pub enum UnionDate {
 pub struct Date {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionDateFormatter {
+    DateFormatter(DateFormatter),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DateFormatter {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionDateOnly {
+    DateOnly(DateOnly),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DateOnly {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionDateOnlyConverter {
+    DateOnlyConverter(DateOnlyConverter),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DateOnlyConverter {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionDateParseHandling {
@@ -1174,6 +1355,30 @@ pub enum UnionDateParseHandling {
 pub struct DateParseHandling {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionDateTime {
+    DateTime(DateTime),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DateTime {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionDateTimeStyles {
+    DateTimeStyles(DateTimeStyles),
+
+    Double(f64),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct DateTimeStyles {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionDebugger {
@@ -1414,6 +1619,30 @@ pub enum UnionEncodeQuickType {
 pub struct EncodeQuickType {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionEnumValues {
+    Double(f64),
+
+    EnumValues(EnumValues),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct EnumValues {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionEqualityContract {
+    Double(f64),
+
+    EqualityContract(EqualityContract),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct EqualityContract {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionEvent {
@@ -1582,6 +1811,18 @@ pub enum UnionForeach {
 pub struct Foreach {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionFormatException {
+    Double(f64),
+
+    FormatException(FormatException),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct FormatException {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionFriend {
@@ -1714,6 +1955,18 @@ pub enum UnionHasOwnProperty {
 pub struct HasOwnProperty {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionHashCode {
+    Double(f64),
+
+    HashCode(HashCode),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct HashCode {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionId {
@@ -1906,6 +2159,18 @@ pub enum UnionIs {
 pub struct Is {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionIsoDateTimeOffsetConverter {
+    Double(f64),
+
+    IsoDateTimeOffsetConverter(IsoDateTimeOffsetConverter),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct IsoDateTimeOffsetConverter {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionIterable {
@@ -1966,6 +2231,30 @@ pub enum UnionJson {
 pub struct Json {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonAny {
+    Double(f64),
+
+    JsonAny(JsonAny),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonAny {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonCodingKey {
+    Double(f64),
+
+    JsonCodingKey(JsonCodingKey),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonCodingKey {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionJsonConverter {
@@ -1978,6 +2267,102 @@ pub enum UnionJsonConverter {
 pub struct JsonConverter {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonDecoder {
+    Double(f64),
+
+    JsonDecoder(JsonDecoder),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonDecoder {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonEncoder {
+    Double(f64),
+
+    JsonEncoder(JsonEncoder),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonEncoder {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonException {
+    Double(f64),
+
+    JsonException(JsonException),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonException {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonGenerator {
+    Double(f64),
+
+    JsonGenerator(JsonGenerator),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonGenerator {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonNode {
+    Double(f64),
+
+    JsonNode(JsonNode),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonNode {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonNull {
+    Double(f64),
+
+    JsonNull(JsonNull),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonNull {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonParser {
+    Double(f64),
+
+    JsonParser(JsonParser),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonParser {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonReader {
+    Double(f64),
+
+    JsonReader(JsonReader),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonReader {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionJsonSerializer {
@@ -2002,6 +2387,18 @@ pub enum UnionJsonToken {
 pub struct JsonToken {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionJsonTokenType {
+    Double(f64),
+
+    JsonTokenType(JsonTokenType),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct JsonTokenType {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionJsonWriter {
@@ -2218,6 +2615,18 @@ pub enum UnionNo {
 pub struct No {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionNoSuchMethod {
+    Double(f64),
+
+    NoSuchMethod(NoSuchMethod),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct NoSuchMethod {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionNoexcept {
@@ -2302,6 +2711,18 @@ pub enum UnionNotEq {
 pub struct NotEq {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionNsError {
+    Double(f64),
+
+    NsError(NsError),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct NsError {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionNsString {
@@ -2362,6 +2783,18 @@ pub enum UnionObject {
 pub struct Object {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionObjectMapper {
+    Double(f64),
+
+    ObjectMapper(ObjectMapper),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ObjectMapper {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionOf {
@@ -2554,6 +2987,18 @@ pub enum UnionPrint {
 pub struct Print {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionPrintMembers {
+    Double(f64),
+
+    PrintMembers(PrintMembers),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct PrintMembers {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionPrintf {
@@ -2722,6 +3167,18 @@ pub enum UnionReadonly {
 pub struct Readonly {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionRegExp {
+    Double(f64),
+
+    RegExp(RegExp),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct RegExp {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionRegister {
@@ -2842,6 +3299,30 @@ pub enum UnionRight {
 pub struct Right {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionRuntimeType {
+    Double(f64),
+
+    RuntimeType(RuntimeType),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct RuntimeType {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionS {
+    Double(f64),
+
+    S(S),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct S {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionSbyte {
@@ -2902,6 +3383,18 @@ pub enum UnionSerialize {
 pub struct SerializeClass {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionSerializerProvider {
+    Double(f64),
+
+    SerializerProvider(SerializerProvider),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct SerializerProvider {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionSet {
@@ -2938,6 +3431,18 @@ pub enum UnionSigned {
 pub struct Signed {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionSimpleModule {
+    Double(f64),
+
+    SimpleModule(SimpleModule),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct SimpleModule {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionStackalloc {
@@ -2950,6 +3455,18 @@ pub enum UnionStackalloc {
 pub struct Stackalloc {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionStandards {
+    Double(f64),
+
+    Standards(Standards),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Standards {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionStaticAssert {
@@ -2974,6 +3491,30 @@ pub enum UnionStaticCast {
 pub struct StaticCast {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionStdDeserializer {
+    Double(f64),
+
+    StdDeserializer(StdDeserializer),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct StdDeserializer {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionStdSerializer {
+    Double(f64),
+
+    StdSerializer(StdSerializer),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct StdSerializer {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionStrictfp {
@@ -3130,6 +3671,30 @@ pub enum UnionThrows {
 pub struct Throws {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionTimeOnly {
+    Double(f64),
+
+    TimeOnly(TimeOnly),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct TimeOnly {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionTimeOnlyConverter {
+    Double(f64),
+
+    TimeOnlyConverter(TimeOnlyConverter),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct TimeOnlyConverter {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionToJson {
@@ -3142,6 +3707,18 @@ pub enum UnionToJson {
 pub struct ToJson {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionToString {
+    Double(f64),
+
+    ToString(ToString),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ToString {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionTopLevel {
@@ -3826,6 +4403,42 @@ pub enum UnionUsing {
 pub struct Using {
 }
 
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionUtf8JsonReader {
+    Double(f64),
+
+    Utf8JsonReader(Utf8JsonReader),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Utf8JsonReader {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionUtf8JsonWriter {
+    Double(f64),
+
+    Utf8JsonWriter(Utf8JsonWriter),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Utf8JsonWriter {
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum UnionUuid {
+    Double(f64),
+
+    Uuid(Uuid),
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Uuid {
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize)]
 #[serde(untagged)]
 pub enum UnionVar {
diff --git a/base/schema-scala3/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala b/head/schema-scala3/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
index 8a573fb..594f797 100644
--- a/base/schema-scala3/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
+++ b/head/schema-scala3/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
@@ -55,6 +55,7 @@ enum EnumEnum :
     case Checked
     case Class
     case EnumClass
+    case Clone
     case CoAwait
     case CoReturn
     case CoYield
@@ -69,8 +70,14 @@ enum EnumEnum :
     case Convenience
     case Convert
     case Converter
+    case CultureInfo
     case Date
     case DateParseHandling
+    case DateFormatter
+    case DateOnly
+    case DateOnlyConverter
+    case DateTime
+    case DateTimeStyles
     case Debugger
     case Decimal
     case Declare
@@ -94,6 +101,8 @@ enum EnumEnum :
     case Else
     case EncodeQuickType
     case EnumEnum
+    case EnumValues
+    case EqualityContract
     case Event
     case Except
     case Exception
@@ -113,6 +122,7 @@ enum EnumEnum :
     case EnumFloat
     case For
     case Foreach
+    case FormatException
     case Friend
     case From
     case FromJSON
@@ -123,6 +133,7 @@ enum EnumEnum :
     case Go
     case Goto
     case Guard
+    case HashCode
     case HasOwnProperty
     case ID
     case If
@@ -140,6 +151,7 @@ enum EnumEnum :
     case EnumInt
     case Interface
     case Internal
+    case ISODateTimeOffsetConverter
     case Iterable
     case Is
     case Jdec
@@ -150,6 +162,17 @@ enum EnumEnum :
     case JSONSerializer
     case JSONToken
     case JSONWriter
+    case JSONAny
+    case JSONCodingKey
+    case JSONDecoder
+    case JSONEncoder
+    case JSONException
+    case JSONGenerator
+    case JSONNode
+    case JSONNull
+    case JSONParser
+    case JSONReader
+    case JSONTokenType
     case Lambda
     case Lazy
     case Left
@@ -174,14 +197,17 @@ enum EnumEnum :
     case EnumNone
     case Nonlocal
     case Nonmutating
+    case NoSuchMethod
     case Not
     case NotEq
+    case NSError
     case NSString
     case Null
     case EnumNull
     case Nullptr
     case Number
     case Object
+    case ObjectMapper
     case Of
     case Oneway
     case Open
@@ -200,6 +226,7 @@ enum EnumEnum :
     case Prefix
     case Print
     case Printf
+    case PrintMembers
     case Private
     case Protected
     case Protocol
@@ -210,6 +237,7 @@ enum EnumEnum :
     case Range
     case Readonly
     case Ref
+    case RegExp
     case Register
     case ReinterpretCast
     case Repeat
@@ -221,6 +249,8 @@ enum EnumEnum :
     case Rethrows
     case Return
     case Right
+    case RuntimeType
+    case S
     case Sbyte
     case Sealed
     case Sel
@@ -228,14 +258,19 @@ enum EnumEnum :
     case Self
     case EnumSelf
     case Serialize
+    case SerializerProvider
     case Set
     case EnumShort
     case Signed
+    case SimpleModule
     case Sizeof
     case Stackalloc
+    case Standards
     case Static
     case StaticAssert
     case StaticCast
+    case StdDeserializer
+    case StdSerializer
     case Strictfp
     case EnumString
     case Struct
@@ -251,8 +286,11 @@ enum EnumEnum :
     case ThreadLocal
     case Throw
     case Throws
+    case TimeOnly
+    case TimeOnlyConverter
     case ToJSON
     case TopLevel
+    case ToString
     case Transient
     case True
     case EnumTrue
@@ -274,6 +312,9 @@ enum EnumEnum :
     case Unsigned
     case Ushort
     case Using
+    case Utf8JSONReader
+    case Utf8JSONWriter
+    case UUID
     case Var
     case Virtual
     case Void
@@ -334,6 +375,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "checked" => scala.Right(EnumEnum.Checked)
     case "class" => scala.Right(EnumEnum.Class)
     case "Class" => scala.Right(EnumEnum.EnumClass)
+    case "clone" => scala.Right(EnumEnum.Clone)
     case "co_await" => scala.Right(EnumEnum.CoAwait)
     case "co_return" => scala.Right(EnumEnum.CoReturn)
     case "co_yield" => scala.Right(EnumEnum.CoYield)
@@ -348,8 +390,14 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "convenience" => scala.Right(EnumEnum.Convenience)
     case "convert" => scala.Right(EnumEnum.Convert)
     case "converter" => scala.Right(EnumEnum.Converter)
+    case "CultureInfo" => scala.Right(EnumEnum.CultureInfo)
     case "date" => scala.Right(EnumEnum.Date)
     case "date_parse_handling" => scala.Right(EnumEnum.DateParseHandling)
+    case "DateFormatter" => scala.Right(EnumEnum.DateFormatter)
+    case "DateOnly" => scala.Right(EnumEnum.DateOnly)
+    case "DateOnlyConverter" => scala.Right(EnumEnum.DateOnlyConverter)
+    case "DateTime" => scala.Right(EnumEnum.DateTime)
+    case "DateTimeStyles" => scala.Right(EnumEnum.DateTimeStyles)
     case "debugger" => scala.Right(EnumEnum.Debugger)
     case "decimal" => scala.Right(EnumEnum.Decimal)
     case "declare" => scala.Right(EnumEnum.Declare)
@@ -373,6 +421,8 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "else" => scala.Right(EnumEnum.Else)
     case "encode_quick_type" => scala.Right(EnumEnum.EncodeQuickType)
     case "enum" => scala.Right(EnumEnum.EnumEnum)
+    case "EnumValues" => scala.Right(EnumEnum.EnumValues)
+    case "equalityContract" => scala.Right(EnumEnum.EqualityContract)
     case "event" => scala.Right(EnumEnum.Event)
     case "except" => scala.Right(EnumEnum.Except)
     case "exception" => scala.Right(EnumEnum.Exception)
@@ -392,6 +442,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "float" => scala.Right(EnumEnum.EnumFloat)
     case "for" => scala.Right(EnumEnum.For)
     case "foreach" => scala.Right(EnumEnum.Foreach)
+    case "FormatException" => scala.Right(EnumEnum.FormatException)
     case "friend" => scala.Right(EnumEnum.Friend)
     case "from" => scala.Right(EnumEnum.From)
     case "from_json" => scala.Right(EnumEnum.FromJSON)
@@ -402,6 +453,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "go" => scala.Right(EnumEnum.Go)
     case "goto" => scala.Right(EnumEnum.Goto)
     case "guard" => scala.Right(EnumEnum.Guard)
+    case "hashCode" => scala.Right(EnumEnum.HashCode)
     case "hasOwnProperty" => scala.Right(EnumEnum.HasOwnProperty)
     case "id" => scala.Right(EnumEnum.ID)
     case "if" => scala.Right(EnumEnum.If)
@@ -419,6 +471,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "int" => scala.Right(EnumEnum.EnumInt)
     case "interface" => scala.Right(EnumEnum.Interface)
     case "internal" => scala.Right(EnumEnum.Internal)
+    case "IsoDateTimeOffsetConverter" => scala.Right(EnumEnum.ISODateTimeOffsetConverter)
     case "iterable" => scala.Right(EnumEnum.Iterable)
     case "is" => scala.Right(EnumEnum.Is)
     case "jdec" => scala.Right(EnumEnum.Jdec)
@@ -429,6 +482,17 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "json_serializer" => scala.Right(EnumEnum.JSONSerializer)
     case "json_token" => scala.Right(EnumEnum.JSONToken)
     case "json_writer" => scala.Right(EnumEnum.JSONWriter)
+    case "JSONAny" => scala.Right(EnumEnum.JSONAny)
+    case "JSONCodingKey" => scala.Right(EnumEnum.JSONCodingKey)
+    case "JSONDecoder" => scala.Right(EnumEnum.JSONDecoder)
+    case "JSONEncoder" => scala.Right(EnumEnum.JSONEncoder)
+    case "JsonException" => scala.Right(EnumEnum.JSONException)
+    case "JsonGenerator" => scala.Right(EnumEnum.JSONGenerator)
+    case "JsonNode" => scala.Right(EnumEnum.JSONNode)
+    case "JSONNull" => scala.Right(EnumEnum.JSONNull)
+    case "JsonParser" => scala.Right(EnumEnum.JSONParser)
+    case "JsonReader" => scala.Right(EnumEnum.JSONReader)
+    case "JsonTokenType" => scala.Right(EnumEnum.JSONTokenType)
     case "lambda" => scala.Right(EnumEnum.Lambda)
     case "lazy" => scala.Right(EnumEnum.Lazy)
     case "left" => scala.Right(EnumEnum.Left)
@@ -453,14 +517,17 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "None" => scala.Right(EnumEnum.EnumNone)
     case "nonlocal" => scala.Right(EnumEnum.Nonlocal)
     case "nonmutating" => scala.Right(EnumEnum.Nonmutating)
+    case "noSuchMethod" => scala.Right(EnumEnum.NoSuchMethod)
     case "not" => scala.Right(EnumEnum.Not)
     case "not_eq" => scala.Right(EnumEnum.NotEq)
+    case "NSError" => scala.Right(EnumEnum.NSError)
     case "NSString" => scala.Right(EnumEnum.NSString)
     case "NULL" => scala.Right(EnumEnum.Null)
     case "null" => scala.Right(EnumEnum.EnumNull)
     case "nullptr" => scala.Right(EnumEnum.Nullptr)
     case "number" => scala.Right(EnumEnum.Number)
     case "object" => scala.Right(EnumEnum.Object)
+    case "ObjectMapper" => scala.Right(EnumEnum.ObjectMapper)
     case "of" => scala.Right(EnumEnum.Of)
     case "oneway" => scala.Right(EnumEnum.Oneway)
     case "open" => scala.Right(EnumEnum.Open)
@@ -479,6 +546,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "prefix" => scala.Right(EnumEnum.Prefix)
     case "print" => scala.Right(EnumEnum.Print)
     case "printf" => scala.Right(EnumEnum.Printf)
+    case "printMembers" => scala.Right(EnumEnum.PrintMembers)
     case "private" => scala.Right(EnumEnum.Private)
     case "protected" => scala.Right(EnumEnum.Protected)
     case "Protocol" => scala.Right(EnumEnum.Protocol)
@@ -489,6 +557,7 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "range" => scala.Right(EnumEnum.Range)
     case "readonly" => scala.Right(EnumEnum.Readonly)
     case "ref" => scala.Right(EnumEnum.Ref)
+    case "RegExp" => scala.Right(EnumEnum.RegExp)
     case "register" => scala.Right(EnumEnum.Register)
     case "reinterpret_cast" => scala.Right(EnumEnum.ReinterpretCast)
     case "repeat" => scala.Right(EnumEnum.Repeat)
@@ -500,6 +569,8 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "rethrows" => scala.Right(EnumEnum.Rethrows)
     case "return" => scala.Right(EnumEnum.Return)
     case "right" => scala.Right(EnumEnum.Right)
+    case "runtimeType" => scala.Right(EnumEnum.RuntimeType)
+    case "s" => scala.Right(EnumEnum.S)
     case "sbyte" => scala.Right(EnumEnum.Sbyte)
     case "sealed" => scala.Right(EnumEnum.Sealed)
     case "SEL" => scala.Right(EnumEnum.Sel)
@@ -507,14 +578,19 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "Self" => scala.Right(EnumEnum.Self)
     case "self" => scala.Right(EnumEnum.EnumSelf)
     case "serialize" => scala.Right(EnumEnum.Serialize)
+    case "SerializerProvider" => scala.Right(EnumEnum.SerializerProvider)
     case "set" => scala.Right(EnumEnum.Set)
     case "short" => scala.Right(EnumEnum.EnumShort)
     case "signed" => scala.Right(EnumEnum.Signed)
+    case "SimpleModule" => scala.Right(EnumEnum.SimpleModule)
     case "sizeof" => scala.Right(EnumEnum.Sizeof)
     case "stackalloc" => scala.Right(EnumEnum.Stackalloc)
+    case "Standards" => scala.Right(EnumEnum.Standards)
     case "static" => scala.Right(EnumEnum.Static)
     case "static_assert" => scala.Right(EnumEnum.StaticAssert)
     case "static_cast" => scala.Right(EnumEnum.StaticCast)
+    case "StdDeserializer" => scala.Right(EnumEnum.StdDeserializer)
+    case "StdSerializer" => scala.Right(EnumEnum.StdSerializer)
     case "strictfp" => scala.Right(EnumEnum.Strictfp)
     case "string" => scala.Right(EnumEnum.EnumString)
     case "struct" => scala.Right(EnumEnum.Struct)
@@ -530,8 +606,11 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "thread_local" => scala.Right(EnumEnum.ThreadLocal)
     case "throw" => scala.Right(EnumEnum.Throw)
     case "throws" => scala.Right(EnumEnum.Throws)
+    case "TimeOnly" => scala.Right(EnumEnum.TimeOnly)
+    case "TimeOnlyConverter" => scala.Right(EnumEnum.TimeOnlyConverter)
     case "to_json" => scala.Right(EnumEnum.ToJSON)
     case "top_level" => scala.Right(EnumEnum.TopLevel)
+    case "toString" => scala.Right(EnumEnum.ToString)
     case "transient" => scala.Right(EnumEnum.Transient)
     case "True" => scala.Right(EnumEnum.True)
     case "true" => scala.Right(EnumEnum.EnumTrue)
@@ -553,6 +632,9 @@ given Decoder[EnumEnum] = Decoder.decodeString.emap {
     case "unsigned" => scala.Right(EnumEnum.Unsigned)
     case "ushort" => scala.Right(EnumEnum.Ushort)
     case "using" => scala.Right(EnumEnum.Using)
+    case "Utf8JsonReader" => scala.Right(EnumEnum.Utf8JSONReader)
+    case "Utf8JsonWriter" => scala.Right(EnumEnum.Utf8JSONWriter)
+    case "UUID" => scala.Right(EnumEnum.UUID)
     case "var" => scala.Right(EnumEnum.Var)
     case "virtual" => scala.Right(EnumEnum.Virtual)
     case "void" => scala.Right(EnumEnum.Void)
@@ -614,6 +696,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Checked => "checked"
     case EnumEnum.Class => "class"
     case EnumEnum.EnumClass => "Class"
+    case EnumEnum.Clone => "clone"
     case EnumEnum.CoAwait => "co_await"
     case EnumEnum.CoReturn => "co_return"
     case EnumEnum.CoYield => "co_yield"
@@ -628,8 +711,14 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Convenience => "convenience"
     case EnumEnum.Convert => "convert"
     case EnumEnum.Converter => "converter"
+    case EnumEnum.CultureInfo => "CultureInfo"
     case EnumEnum.Date => "date"
     case EnumEnum.DateParseHandling => "date_parse_handling"
+    case EnumEnum.DateFormatter => "DateFormatter"
+    case EnumEnum.DateOnly => "DateOnly"
+    case EnumEnum.DateOnlyConverter => "DateOnlyConverter"
+    case EnumEnum.DateTime => "DateTime"
+    case EnumEnum.DateTimeStyles => "DateTimeStyles"
     case EnumEnum.Debugger => "debugger"
     case EnumEnum.Decimal => "decimal"
     case EnumEnum.Declare => "declare"
@@ -653,6 +742,8 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Else => "else"
     case EnumEnum.EncodeQuickType => "encode_quick_type"
     case EnumEnum.EnumEnum => "enum"
+    case EnumEnum.EnumValues => "EnumValues"
+    case EnumEnum.EqualityContract => "equalityContract"
     case EnumEnum.Event => "event"
     case EnumEnum.Except => "except"
     case EnumEnum.Exception => "exception"
@@ -672,6 +763,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.EnumFloat => "float"
     case EnumEnum.For => "for"
     case EnumEnum.Foreach => "foreach"
+    case EnumEnum.FormatException => "FormatException"
     case EnumEnum.Friend => "friend"
     case EnumEnum.From => "from"
     case EnumEnum.FromJSON => "from_json"
@@ -682,6 +774,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Go => "go"
     case EnumEnum.Goto => "goto"
     case EnumEnum.Guard => "guard"
+    case EnumEnum.HashCode => "hashCode"
     case EnumEnum.HasOwnProperty => "hasOwnProperty"
     case EnumEnum.ID => "id"
     case EnumEnum.If => "if"
@@ -699,6 +792,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.EnumInt => "int"
     case EnumEnum.Interface => "interface"
     case EnumEnum.Internal => "internal"
+    case EnumEnum.ISODateTimeOffsetConverter => "IsoDateTimeOffsetConverter"
     case EnumEnum.Iterable => "iterable"
     case EnumEnum.Is => "is"
     case EnumEnum.Jdec => "jdec"
@@ -709,6 +803,17 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.JSONSerializer => "json_serializer"
     case EnumEnum.JSONToken => "json_token"
     case EnumEnum.JSONWriter => "json_writer"
+    case EnumEnum.JSONAny => "JSONAny"
+    case EnumEnum.JSONCodingKey => "JSONCodingKey"
+    case EnumEnum.JSONDecoder => "JSONDecoder"
+    case EnumEnum.JSONEncoder => "JSONEncoder"
+    case EnumEnum.JSONException => "JsonException"
+    case EnumEnum.JSONGenerator => "JsonGenerator"
+    case EnumEnum.JSONNode => "JsonNode"
+    case EnumEnum.JSONNull => "JSONNull"
+    case EnumEnum.JSONParser => "JsonParser"
+    case EnumEnum.JSONReader => "JsonReader"
+    case EnumEnum.JSONTokenType => "JsonTokenType"
     case EnumEnum.Lambda => "lambda"
     case EnumEnum.Lazy => "lazy"
     case EnumEnum.Left => "left"
@@ -733,14 +838,17 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.EnumNone => "None"
     case EnumEnum.Nonlocal => "nonlocal"
     case EnumEnum.Nonmutating => "nonmutating"
+    case EnumEnum.NoSuchMethod => "noSuchMethod"
     case EnumEnum.Not => "not"
     case EnumEnum.NotEq => "not_eq"
+    case EnumEnum.NSError => "NSError"
     case EnumEnum.NSString => "NSString"
     case EnumEnum.Null => "NULL"
     case EnumEnum.EnumNull => "null"
     case EnumEnum.Nullptr => "nullptr"
     case EnumEnum.Number => "number"
     case EnumEnum.Object => "object"
+    case EnumEnum.ObjectMapper => "ObjectMapper"
     case EnumEnum.Of => "of"
     case EnumEnum.Oneway => "oneway"
     case EnumEnum.Open => "open"
@@ -759,6 +867,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Prefix => "prefix"
     case EnumEnum.Print => "print"
     case EnumEnum.Printf => "printf"
+    case EnumEnum.PrintMembers => "printMembers"
     case EnumEnum.Private => "private"
     case EnumEnum.Protected => "protected"
     case EnumEnum.Protocol => "Protocol"
@@ -769,6 +878,7 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Range => "range"
     case EnumEnum.Readonly => "readonly"
     case EnumEnum.Ref => "ref"
+    case EnumEnum.RegExp => "RegExp"
     case EnumEnum.Register => "register"
     case EnumEnum.ReinterpretCast => "reinterpret_cast"
     case EnumEnum.Repeat => "repeat"
@@ -780,6 +890,8 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Rethrows => "rethrows"
     case EnumEnum.Return => "return"
     case EnumEnum.Right => "right"
+    case EnumEnum.RuntimeType => "runtimeType"
+    case EnumEnum.S => "s"
     case EnumEnum.Sbyte => "sbyte"
     case EnumEnum.Sealed => "sealed"
     case EnumEnum.Sel => "SEL"
@@ -787,14 +899,19 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Self => "Self"
     case EnumEnum.EnumSelf => "self"
     case EnumEnum.Serialize => "serialize"
+    case EnumEnum.SerializerProvider => "SerializerProvider"
     case EnumEnum.Set => "set"
     case EnumEnum.EnumShort => "short"
     case EnumEnum.Signed => "signed"
+    case EnumEnum.SimpleModule => "SimpleModule"
     case EnumEnum.Sizeof => "sizeof"
     case EnumEnum.Stackalloc => "stackalloc"
+    case EnumEnum.Standards => "Standards"
     case EnumEnum.Static => "static"
     case EnumEnum.StaticAssert => "static_assert"
     case EnumEnum.StaticCast => "static_cast"
+    case EnumEnum.StdDeserializer => "StdDeserializer"
+    case EnumEnum.StdSerializer => "StdSerializer"
     case EnumEnum.Strictfp => "strictfp"
     case EnumEnum.EnumString => "string"
     case EnumEnum.Struct => "struct"
@@ -810,8 +927,11 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.ThreadLocal => "thread_local"
     case EnumEnum.Throw => "throw"
     case EnumEnum.Throws => "throws"
+    case EnumEnum.TimeOnly => "TimeOnly"
+    case EnumEnum.TimeOnlyConverter => "TimeOnlyConverter"
     case EnumEnum.ToJSON => "to_json"
     case EnumEnum.TopLevel => "top_level"
+    case EnumEnum.ToString => "toString"
     case EnumEnum.Transient => "transient"
     case EnumEnum.True => "True"
     case EnumEnum.EnumTrue => "true"
@@ -833,6 +953,9 @@ given Encoder[EnumEnum] = Encoder.encodeString.contramap {
     case EnumEnum.Unsigned => "unsigned"
     case EnumEnum.Ushort => "ushort"
     case EnumEnum.Using => "using"
+    case EnumEnum.Utf8JSONReader => "Utf8JsonReader"
+    case EnumEnum.Utf8JSONWriter => "Utf8JsonWriter"
+    case EnumEnum.UUID => "UUID"
     case EnumEnum.Var => "var"
     case EnumEnum.Virtual => "virtual"
     case EnumEnum.Void => "void"
diff --git a/base/schema-scala3-upickle/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala b/head/schema-scala3-upickle/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
index 611e16d..a308ba9 100644
--- a/base/schema-scala3-upickle/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
+++ b/head/schema-scala3-upickle/test/inputs/schema/keyword-enum.schema/default/TopLevel.scala
@@ -126,6 +126,7 @@ enum EnumEnum :
     case Checked
     case Class
     case EnumClass
+    case Clone
     case CoAwait
     case CoReturn
     case CoYield
@@ -140,8 +141,14 @@ enum EnumEnum :
     case Convenience
     case Convert
     case Converter
+    case CultureInfo
     case Date
     case DateParseHandling
+    case DateFormatter
+    case DateOnly
+    case DateOnlyConverter
+    case DateTime
+    case DateTimeStyles
     case Debugger
     case Decimal
     case Declare
@@ -165,6 +172,8 @@ enum EnumEnum :
     case Else
     case EncodeQuickType
     case EnumEnum
+    case EnumValues
+    case EqualityContract
     case Event
     case Except
     case Exception
@@ -184,6 +193,7 @@ enum EnumEnum :
     case EnumFloat
     case For
     case Foreach
+    case FormatException
     case Friend
     case From
     case FromJSON
@@ -194,6 +204,7 @@ enum EnumEnum :
     case Go
     case Goto
     case Guard
+    case HashCode
     case HasOwnProperty
     case ID
     case If
@@ -211,6 +222,7 @@ enum EnumEnum :
     case EnumInt
     case Interface
     case Internal
+    case ISODateTimeOffsetConverter
     case Iterable
     case Is
     case Jdec
@@ -221,6 +233,17 @@ enum EnumEnum :
     case JSONSerializer
     case JSONToken
     case JSONWriter
+    case JSONAny
+    case JSONCodingKey
+    case JSONDecoder
+    case JSONEncoder
+    case JSONException
+    case JSONGenerator
+    case JSONNode
+    case JSONNull
+    case JSONParser
+    case JSONReader
+    case JSONTokenType
     case Lambda
     case Lazy
     case Left
@@ -245,14 +268,17 @@ enum EnumEnum :
     case EnumNone
     case Nonlocal
     case Nonmutating
+    case NoSuchMethod
     case Not
     case NotEq
+    case NSError
     case NSString
     case Null
     case EnumNull
     case Nullptr
     case Number
     case Object
+    case ObjectMapper
     case Of
     case Oneway
     case Open
@@ -271,6 +297,7 @@ enum EnumEnum :
     case Prefix
     case Print
     case Printf
+    case PrintMembers
     case Private
     case Protected
     case Protocol
@@ -281,6 +308,7 @@ enum EnumEnum :
     case Range
     case Readonly
     case Ref
+    case RegExp
     case Register
     case ReinterpretCast
     case Repeat
@@ -292,6 +320,8 @@ enum EnumEnum :
     case Rethrows
     case Return
     case Right
+    case RuntimeType
+    case S
     case Sbyte
     case Sealed
     case Sel
@@ -299,14 +329,19 @@ enum EnumEnum :
     case Self
     case EnumSelf
     case Serialize
+    case SerializerProvider
     case Set
     case EnumShort
     case Signed
+    case SimpleModule
     case Sizeof
     case Stackalloc
+    case Standards
     case Static
     case StaticAssert
     case StaticCast
+    case StdDeserializer
+    case StdSerializer
     case Strictfp
     case EnumString
     case Struct
@@ -322,8 +357,11 @@ enum EnumEnum :
     case ThreadLocal
     case Throw
     case Throws
+    case TimeOnly
+    case TimeOnlyConverter
     case ToJSON
     case TopLevel
+    case ToString
     case Transient
     case True
     case EnumTrue
@@ -345,6 +383,9 @@ enum EnumEnum :
     case Unsigned
     case Ushort
     case Using
+    case Utf8JSONReader
+    case Utf8JSONWriter
+    case UUID
     case Var
     case Virtual
     case Void
@@ -406,6 +447,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Checked => "checked"
         case EnumEnum.Class => "class"
         case EnumEnum.EnumClass => "Class"
+        case EnumEnum.Clone => "clone"
         case EnumEnum.CoAwait => "co_await"
         case EnumEnum.CoReturn => "co_return"
         case EnumEnum.CoYield => "co_yield"
@@ -420,8 +462,14 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Convenience => "convenience"
         case EnumEnum.Convert => "convert"
         case EnumEnum.Converter => "converter"
+        case EnumEnum.CultureInfo => "CultureInfo"
         case EnumEnum.Date => "date"
         case EnumEnum.DateParseHandling => "date_parse_handling"
+        case EnumEnum.DateFormatter => "DateFormatter"
+        case EnumEnum.DateOnly => "DateOnly"
+        case EnumEnum.DateOnlyConverter => "DateOnlyConverter"
+        case EnumEnum.DateTime => "DateTime"
+        case EnumEnum.DateTimeStyles => "DateTimeStyles"
         case EnumEnum.Debugger => "debugger"
         case EnumEnum.Decimal => "decimal"
         case EnumEnum.Declare => "declare"
@@ -445,6 +493,8 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Else => "else"
         case EnumEnum.EncodeQuickType => "encode_quick_type"
         case EnumEnum.EnumEnum => "enum"
+        case EnumEnum.EnumValues => "EnumValues"
+        case EnumEnum.EqualityContract => "equalityContract"
         case EnumEnum.Event => "event"
         case EnumEnum.Except => "except"
         case EnumEnum.Exception => "exception"
@@ -464,6 +514,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.EnumFloat => "float"
         case EnumEnum.For => "for"
         case EnumEnum.Foreach => "foreach"
+        case EnumEnum.FormatException => "FormatException"
         case EnumEnum.Friend => "friend"
         case EnumEnum.From => "from"
         case EnumEnum.FromJSON => "from_json"
@@ -474,6 +525,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Go => "go"
         case EnumEnum.Goto => "goto"
         case EnumEnum.Guard => "guard"
+        case EnumEnum.HashCode => "hashCode"
         case EnumEnum.HasOwnProperty => "hasOwnProperty"
         case EnumEnum.ID => "id"
         case EnumEnum.If => "if"
@@ -491,6 +543,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.EnumInt => "int"
         case EnumEnum.Interface => "interface"
         case EnumEnum.Internal => "internal"
+        case EnumEnum.ISODateTimeOffsetConverter => "IsoDateTimeOffsetConverter"
         case EnumEnum.Iterable => "iterable"
         case EnumEnum.Is => "is"
         case EnumEnum.Jdec => "jdec"
@@ -501,6 +554,17 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.JSONSerializer => "json_serializer"
         case EnumEnum.JSONToken => "json_token"
         case EnumEnum.JSONWriter => "json_writer"
+        case EnumEnum.JSONAny => "JSONAny"
+        case EnumEnum.JSONCodingKey => "JSONCodingKey"
+        case EnumEnum.JSONDecoder => "JSONDecoder"
+        case EnumEnum.JSONEncoder => "JSONEncoder"
+        case EnumEnum.JSONException => "JsonException"
+        case EnumEnum.JSONGenerator => "JsonGenerator"
+        case EnumEnum.JSONNode => "JsonNode"
+        case EnumEnum.JSONNull => "JSONNull"
+        case EnumEnum.JSONParser => "JsonParser"
+        case EnumEnum.JSONReader => "JsonReader"
+        case EnumEnum.JSONTokenType => "JsonTokenType"
         case EnumEnum.Lambda => "lambda"
         case EnumEnum.Lazy => "lazy"
         case EnumEnum.Left => "left"
@@ -525,14 +589,17 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.EnumNone => "None"
         case EnumEnum.Nonlocal => "nonlocal"
         case EnumEnum.Nonmutating => "nonmutating"
+        case EnumEnum.NoSuchMethod => "noSuchMethod"
         case EnumEnum.Not => "not"
         case EnumEnum.NotEq => "not_eq"
+        case EnumEnum.NSError => "NSError"
         case EnumEnum.NSString => "NSString"
         case EnumEnum.Null => "NULL"
         case EnumEnum.EnumNull => "null"
         case EnumEnum.Nullptr => "nullptr"
         case EnumEnum.Number => "number"
         case EnumEnum.Object => "object"
+        case EnumEnum.ObjectMapper => "ObjectMapper"
         case EnumEnum.Of => "of"
         case EnumEnum.Oneway => "oneway"
         case EnumEnum.Open => "open"
@@ -551,6 +618,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Prefix => "prefix"
         case EnumEnum.Print => "print"
         case EnumEnum.Printf => "printf"
+        case EnumEnum.PrintMembers => "printMembers"
         case EnumEnum.Private => "private"
         case EnumEnum.Protected => "protected"
         case EnumEnum.Protocol => "Protocol"
@@ -561,6 +629,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Range => "range"
         case EnumEnum.Readonly => "readonly"
         case EnumEnum.Ref => "ref"
+        case EnumEnum.RegExp => "RegExp"
         case EnumEnum.Register => "register"
         case EnumEnum.ReinterpretCast => "reinterpret_cast"
         case EnumEnum.Repeat => "repeat"
@@ -572,6 +641,8 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Rethrows => "rethrows"
         case EnumEnum.Return => "return"
         case EnumEnum.Right => "right"
+        case EnumEnum.RuntimeType => "runtimeType"
+        case EnumEnum.S => "s"
         case EnumEnum.Sbyte => "sbyte"
         case EnumEnum.Sealed => "sealed"
         case EnumEnum.Sel => "SEL"
@@ -579,14 +650,19 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Self => "Self"
         case EnumEnum.EnumSelf => "self"
         case EnumEnum.Serialize => "serialize"
+        case EnumEnum.SerializerProvider => "SerializerProvider"
         case EnumEnum.Set => "set"
         case EnumEnum.EnumShort => "short"
         case EnumEnum.Signed => "signed"
+        case EnumEnum.SimpleModule => "SimpleModule"
         case EnumEnum.Sizeof => "sizeof"
         case EnumEnum.Stackalloc => "stackalloc"
+        case EnumEnum.Standards => "Standards"
         case EnumEnum.Static => "static"
         case EnumEnum.StaticAssert => "static_assert"
         case EnumEnum.StaticCast => "static_cast"
+        case EnumEnum.StdDeserializer => "StdDeserializer"
+        case EnumEnum.StdSerializer => "StdSerializer"
         case EnumEnum.Strictfp => "strictfp"
         case EnumEnum.EnumString => "string"
         case EnumEnum.Struct => "struct"
@@ -602,8 +678,11 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.ThreadLocal => "thread_local"
         case EnumEnum.Throw => "throw"
         case EnumEnum.Throws => "throws"
+        case EnumEnum.TimeOnly => "TimeOnly"
+        case EnumEnum.TimeOnlyConverter => "TimeOnlyConverter"
         case EnumEnum.ToJSON => "to_json"
         case EnumEnum.TopLevel => "top_level"
+        case EnumEnum.ToString => "toString"
         case EnumEnum.Transient => "transient"
         case EnumEnum.True => "True"
         case EnumEnum.EnumTrue => "true"
@@ -625,6 +704,9 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case EnumEnum.Unsigned => "unsigned"
         case EnumEnum.Ushort => "ushort"
         case EnumEnum.Using => "using"
+        case EnumEnum.Utf8JSONReader => "Utf8JsonReader"
+        case EnumEnum.Utf8JSONWriter => "Utf8JsonWriter"
+        case EnumEnum.UUID => "UUID"
         case EnumEnum.Var => "var"
         case EnumEnum.Virtual => "virtual"
         case EnumEnum.Void => "void"
@@ -685,6 +767,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "checked" => EnumEnum.Checked
         case "class" => EnumEnum.Class
         case "Class" => EnumEnum.EnumClass
+        case "clone" => EnumEnum.Clone
         case "co_await" => EnumEnum.CoAwait
         case "co_return" => EnumEnum.CoReturn
         case "co_yield" => EnumEnum.CoYield
@@ -699,8 +782,14 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "convenience" => EnumEnum.Convenience
         case "convert" => EnumEnum.Convert
         case "converter" => EnumEnum.Converter
+        case "CultureInfo" => EnumEnum.CultureInfo
         case "date" => EnumEnum.Date
         case "date_parse_handling" => EnumEnum.DateParseHandling
+        case "DateFormatter" => EnumEnum.DateFormatter
+        case "DateOnly" => EnumEnum.DateOnly
+        case "DateOnlyConverter" => EnumEnum.DateOnlyConverter
+        case "DateTime" => EnumEnum.DateTime
+        case "DateTimeStyles" => EnumEnum.DateTimeStyles
         case "debugger" => EnumEnum.Debugger
         case "decimal" => EnumEnum.Decimal
         case "declare" => EnumEnum.Declare
@@ -724,6 +813,8 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "else" => EnumEnum.Else
         case "encode_quick_type" => EnumEnum.EncodeQuickType
         case "enum" => EnumEnum.EnumEnum
+        case "EnumValues" => EnumEnum.EnumValues
+        case "equalityContract" => EnumEnum.EqualityContract
         case "event" => EnumEnum.Event
         case "except" => EnumEnum.Except
         case "exception" => EnumEnum.Exception
@@ -743,6 +834,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "float" => EnumEnum.EnumFloat
         case "for" => EnumEnum.For
         case "foreach" => EnumEnum.Foreach
+        case "FormatException" => EnumEnum.FormatException
         case "friend" => EnumEnum.Friend
         case "from" => EnumEnum.From
         case "from_json" => EnumEnum.FromJSON
@@ -753,6 +845,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "go" => EnumEnum.Go
         case "goto" => EnumEnum.Goto
         case "guard" => EnumEnum.Guard
+        case "hashCode" => EnumEnum.HashCode
         case "hasOwnProperty" => EnumEnum.HasOwnProperty
         case "id" => EnumEnum.ID
         case "if" => EnumEnum.If
@@ -770,6 +863,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "int" => EnumEnum.EnumInt
         case "interface" => EnumEnum.Interface
         case "internal" => EnumEnum.Internal
+        case "IsoDateTimeOffsetConverter" => EnumEnum.ISODateTimeOffsetConverter
         case "iterable" => EnumEnum.Iterable
         case "is" => EnumEnum.Is
         case "jdec" => EnumEnum.Jdec
@@ -780,6 +874,17 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "json_serializer" => EnumEnum.JSONSerializer
         case "json_token" => EnumEnum.JSONToken
         case "json_writer" => EnumEnum.JSONWriter
+        case "JSONAny" => EnumEnum.JSONAny
+        case "JSONCodingKey" => EnumEnum.JSONCodingKey
+        case "JSONDecoder" => EnumEnum.JSONDecoder
+        case "JSONEncoder" => EnumEnum.JSONEncoder
+        case "JsonException" => EnumEnum.JSONException
+        case "JsonGenerator" => EnumEnum.JSONGenerator
+        case "JsonNode" => EnumEnum.JSONNode
+        case "JSONNull" => EnumEnum.JSONNull
+        case "JsonParser" => EnumEnum.JSONParser
+        case "JsonReader" => EnumEnum.JSONReader
+        case "JsonTokenType" => EnumEnum.JSONTokenType
         case "lambda" => EnumEnum.Lambda
         case "lazy" => EnumEnum.Lazy
         case "left" => EnumEnum.Left
@@ -804,14 +909,17 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "None" => EnumEnum.EnumNone
         case "nonlocal" => EnumEnum.Nonlocal
         case "nonmutating" => EnumEnum.Nonmutating
+        case "noSuchMethod" => EnumEnum.NoSuchMethod
         case "not" => EnumEnum.Not
         case "not_eq" => EnumEnum.NotEq
+        case "NSError" => EnumEnum.NSError
         case "NSString" => EnumEnum.NSString
         case "NULL" => EnumEnum.Null
         case "null" => EnumEnum.EnumNull
         case "nullptr" => EnumEnum.Nullptr
         case "number" => EnumEnum.Number
         case "object" => EnumEnum.Object
+        case "ObjectMapper" => EnumEnum.ObjectMapper
         case "of" => EnumEnum.Of
         case "oneway" => EnumEnum.Oneway
         case "open" => EnumEnum.Open
@@ -830,6 +938,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "prefix" => EnumEnum.Prefix
         case "print" => EnumEnum.Print
         case "printf" => EnumEnum.Printf
+        case "printMembers" => EnumEnum.PrintMembers
         case "private" => EnumEnum.Private
         case "protected" => EnumEnum.Protected
         case "Protocol" => EnumEnum.Protocol
@@ -840,6 +949,7 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "range" => EnumEnum.Range
         case "readonly" => EnumEnum.Readonly
         case "ref" => EnumEnum.Ref
+        case "RegExp" => EnumEnum.RegExp
         case "register" => EnumEnum.Register
         case "reinterpret_cast" => EnumEnum.ReinterpretCast
         case "repeat" => EnumEnum.Repeat
@@ -851,6 +961,8 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "rethrows" => EnumEnum.Rethrows
         case "return" => EnumEnum.Return
         case "right" => EnumEnum.Right
+        case "runtimeType" => EnumEnum.RuntimeType
+        case "s" => EnumEnum.S
         case "sbyte" => EnumEnum.Sbyte
         case "sealed" => EnumEnum.Sealed
         case "SEL" => EnumEnum.Sel
@@ -858,14 +970,19 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "Self" => EnumEnum.Self
         case "self" => EnumEnum.EnumSelf
         case "serialize" => EnumEnum.Serialize
+        case "SerializerProvider" => EnumEnum.SerializerProvider
         case "set" => EnumEnum.Set
         case "short" => EnumEnum.EnumShort
         case "signed" => EnumEnum.Signed
+        case "SimpleModule" => EnumEnum.SimpleModule
         case "sizeof" => EnumEnum.Sizeof
         case "stackalloc" => EnumEnum.Stackalloc
+        case "Standards" => EnumEnum.Standards
         case "static" => EnumEnum.Static
         case "static_assert" => EnumEnum.StaticAssert
         case "static_cast" => EnumEnum.StaticCast
+        case "StdDeserializer" => EnumEnum.StdDeserializer
+        case "StdSerializer" => EnumEnum.StdSerializer
         case "strictfp" => EnumEnum.Strictfp
         case "string" => EnumEnum.EnumString
         case "struct" => EnumEnum.Struct
@@ -881,8 +998,11 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "thread_local" => EnumEnum.ThreadLocal
         case "throw" => EnumEnum.Throw
         case "throws" => EnumEnum.Throws
+        case "TimeOnly" => EnumEnum.TimeOnly
+        case "TimeOnlyConverter" => EnumEnum.TimeOnlyConverter
         case "to_json" => EnumEnum.ToJSON
         case "top_level" => EnumEnum.TopLevel
+        case "toString" => EnumEnum.ToString
         case "transient" => EnumEnum.Transient
         case "True" => EnumEnum.True
         case "true" => EnumEnum.EnumTrue
@@ -904,6 +1024,9 @@ given OptionPickler.ReadWriter[EnumEnum] = OptionPickler.readwriter[String].bima
         case "unsigned" => EnumEnum.Unsigned
         case "ushort" => EnumEnum.Ushort
         case "using" => EnumEnum.Using
+        case "Utf8JsonReader" => EnumEnum.Utf8JSONReader
+        case "Utf8JsonWriter" => EnumEnum.Utf8JSONWriter
+        case "UUID" => EnumEnum.UUID
         case "var" => EnumEnum.Var
         case "virtual" => EnumEnum.Virtual
         case "void" => EnumEnum.Void
diff --git a/base/schema-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.schema b/head/schema-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.schema
index 2fa9762..02651bf 100644
--- a/base/schema-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.schema
+++ b/head/schema-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.schema
@@ -59,6 +59,7 @@
                 "checked",
                 "class",
                 "Class",
+                "clone",
                 "co_await",
                 "co_return",
                 "co_yield",
@@ -73,8 +74,14 @@
                 "convenience",
                 "convert",
                 "converter",
+                "CultureInfo",
                 "date",
                 "date_parse_handling",
+                "DateFormatter",
+                "DateOnly",
+                "DateOnlyConverter",
+                "DateTime",
+                "DateTimeStyles",
                 "debugger",
                 "decimal",
                 "declare",
@@ -98,6 +105,8 @@
                 "else",
                 "encode_quick_type",
                 "enum",
+                "EnumValues",
+                "equalityContract",
                 "event",
                 "except",
                 "exception",
@@ -117,6 +126,7 @@
                 "float",
                 "for",
                 "foreach",
+                "FormatException",
                 "friend",
                 "from",
                 "from_json",
@@ -127,6 +137,7 @@
                 "go",
                 "goto",
                 "guard",
+                "hashCode",
                 "hasOwnProperty",
                 "id",
                 "if",
@@ -144,6 +155,7 @@
                 "int",
                 "interface",
                 "internal",
+                "IsoDateTimeOffsetConverter",
                 "iterable",
                 "is",
                 "jdec",
@@ -154,6 +166,17 @@
                 "json_serializer",
                 "json_token",
                 "json_writer",
+                "JSONAny",
+                "JSONCodingKey",
+                "JSONDecoder",
+                "JSONEncoder",
+                "JsonException",
+                "JsonGenerator",
+                "JsonNode",
+                "JSONNull",
+                "JsonParser",
+                "JsonReader",
+                "JsonTokenType",
                 "lambda",
                 "lazy",
                 "left",
@@ -178,14 +201,17 @@
                 "None",
                 "nonlocal",
                 "nonmutating",
+                "noSuchMethod",
                 "not",
                 "not_eq",
+                "NSError",
                 "NSString",
                 "NULL",
                 "null",
                 "nullptr",
                 "number",
                 "object",
+                "ObjectMapper",
                 "of",
                 "oneway",
                 "open",
@@ -204,6 +230,7 @@
                 "prefix",
                 "print",
                 "printf",
+                "printMembers",
                 "private",
                 "protected",
                 "Protocol",
@@ -214,6 +241,7 @@
                 "range",
                 "readonly",
                 "ref",
+                "RegExp",
                 "register",
                 "reinterpret_cast",
                 "repeat",
@@ -225,6 +253,8 @@
                 "rethrows",
                 "return",
                 "right",
+                "runtimeType",
+                "s",
                 "sbyte",
                 "sealed",
                 "SEL",
@@ -232,14 +262,19 @@
                 "Self",
                 "self",
                 "serialize",
+                "SerializerProvider",
                 "set",
                 "short",
                 "signed",
+                "SimpleModule",
                 "sizeof",
                 "stackalloc",
+                "Standards",
                 "static",
                 "static_assert",
                 "static_cast",
+                "StdDeserializer",
+                "StdSerializer",
                 "strictfp",
                 "string",
                 "struct",
@@ -255,8 +290,11 @@
                 "thread_local",
                 "throw",
                 "throws",
+                "TimeOnly",
+                "TimeOnlyConverter",
                 "to_json",
                 "top_level",
+                "toString",
                 "transient",
                 "True",
                 "true",
@@ -278,6 +316,9 @@
                 "unsigned",
                 "ushort",
                 "using",
+                "Utf8JsonReader",
+                "Utf8JsonWriter",
+                "UUID",
                 "var",
                 "virtual",
                 "void",
diff --git a/base/schema-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.schema b/head/schema-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.schema
index 81438ca..d1b7311 100644
--- a/base/schema-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.schema
+++ b/head/schema-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.schema
@@ -135,6 +135,9 @@
                 "Class": {
                     "$ref": "#/definitions/UnionClass"
                 },
+                "clone": {
+                    "$ref": "#/definitions/UnionClone"
+                },
                 "co_await": {
                     "$ref": "#/definitions/UnionCoAwait"
                 },
@@ -177,12 +180,30 @@
                 "converter": {
                     "$ref": "#/definitions/UnionConverter"
                 },
+                "CultureInfo": {
+                    "$ref": "#/definitions/UnionCultureInfo"
+                },
                 "date": {
                     "$ref": "#/definitions/UnionDate"
                 },
                 "date_parse_handling": {
                     "$ref": "#/definitions/UnionDateParseHandling"
                 },
+                "DateFormatter": {
+                    "$ref": "#/definitions/UnionDateFormatter"
+                },
+                "DateOnly": {
+                    "$ref": "#/definitions/UnionDateOnly"
+                },
+                "DateOnlyConverter": {
+                    "$ref": "#/definitions/UnionDateOnlyConverter"
+                },
+                "DateTime": {
+                    "$ref": "#/definitions/UnionDateTime"
+                },
+                "DateTimeStyles": {
+                    "$ref": "#/definitions/UnionDateTimeStyles"
+                },
                 "debugger": {
                     "$ref": "#/definitions/UnionDebugger"
                 },
@@ -255,6 +276,12 @@
                 "enum": {
                     "$ref": "#/definitions/UnionEnum"
                 },
+                "EnumValues": {
+                    "$ref": "#/definitions/UnionEnumValues"
+                },
+                "equalityContract": {
+                    "$ref": "#/definitions/UnionEqualityContract"
+                },
                 "event": {
                     "$ref": "#/definitions/UnionEvent"
                 },
@@ -312,6 +339,9 @@
                 "foreach": {
                     "$ref": "#/definitions/UnionForeach"
                 },
+                "FormatException": {
+                    "$ref": "#/definitions/UnionFormatException"
+                },
                 "friend": {
                     "$ref": "#/definitions/UnionFriend"
                 },
@@ -342,6 +372,9 @@
                 "guard": {
                     "$ref": "#/definitions/UnionGuard"
                 },
+                "hashCode": {
+                    "$ref": "#/definitions/UnionHashCode"
+                },
                 "hasOwnProperty": {
                     "$ref": "#/definitions/UnionHasOwnProperty"
                 },
@@ -396,6 +429,9 @@
                 "is": {
                     "$ref": "#/definitions/UnionIs"
                 },
+                "IsoDateTimeOffsetConverter": {
+                    "$ref": "#/definitions/UnionISODateTimeOffsetConverter"
+                },
                 "iterable": {
                     "$ref": "#/definitions/UnionIterable"
                 },
@@ -423,6 +459,39 @@
                 "json_writer": {
                     "$ref": "#/definitions/UnionJSONWriter"
                 },
+                "JSONAny": {
+                    "$ref": "#/definitions/UnionJSONAny"
+                },
+                "JSONCodingKey": {
+                    "$ref": "#/definitions/UnionJSONCodingKey"
+                },
+                "JSONDecoder": {
+                    "$ref": "#/definitions/UnionJSONDecoder"
+                },
+                "JSONEncoder": {
+                    "$ref": "#/definitions/UnionJSONEncoder"
+                },
+                "JsonException": {
+                    "$ref": "#/definitions/UnionJSONException"
+                },
+                "JsonGenerator": {
+                    "$ref": "#/definitions/UnionJSONGenerator"
+                },
+                "JsonNode": {
+                    "$ref": "#/definitions/UnionJSONNode"
+                },
+                "JSONNull": {
+                    "$ref": "#/definitions/UnionJSONNull"
+                },
+                "JsonParser": {
+                    "$ref": "#/definitions/UnionJSONParser"
+                },
+                "JsonReader": {
+                    "$ref": "#/definitions/UnionJSONReader"
+                },
+                "JsonTokenType": {
+                    "$ref": "#/definitions/UnionJSONTokenType"
+                },
                 "lambda": {
                     "$ref": "#/definitions/UnionLambda"
                 },
@@ -495,12 +564,18 @@
                 "nonmutating": {
                     "$ref": "#/definitions/UnionNonmutating"
                 },
+                "noSuchMethod": {
+                    "$ref": "#/definitions/UnionNoSuchMethod"
+                },
                 "not": {
                     "$ref": "#/definitions/UnionNot"
                 },
                 "not_eq": {
                     "$ref": "#/definitions/UnionNotEq"
                 },
+                "NSError": {
+                    "$ref": "#/definitions/UnionNSError"
+                },
                 "NSString": {
                     "$ref": "#/definitions/UnionNSString"
                 },
@@ -519,6 +594,9 @@
                 "object": {
                     "$ref": "#/definitions/UnionObject"
                 },
+                "ObjectMapper": {
+                    "$ref": "#/definitions/UnionObjectMapper"
+                },
                 "of": {
                     "$ref": "#/definitions/UnionOf"
                 },
@@ -573,6 +651,9 @@
                 "printf": {
                     "$ref": "#/definitions/UnionPrintf"
                 },
+                "printMembers": {
+                    "$ref": "#/definitions/UnionPrintMembers"
+                },
                 "private": {
                     "$ref": "#/definitions/UnionPrivate"
                 },
@@ -603,6 +684,9 @@
                 "ref": {
                     "$ref": "#/definitions/UnionRef"
                 },
+                "RegExp": {
+                    "$ref": "#/definitions/UnionRegExp"
+                },
                 "register": {
                     "$ref": "#/definitions/UnionRegister"
                 },
@@ -636,6 +720,12 @@
                 "right": {
                     "$ref": "#/definitions/UnionRight"
                 },
+                "runtimeType": {
+                    "$ref": "#/definitions/UnionRuntimeType"
+                },
+                "s": {
+                    "$ref": "#/definitions/UnionS"
+                },
                 "sbyte": {
                     "$ref": "#/definitions/UnionSbyte"
                 },
@@ -657,6 +747,9 @@
                 "serialize": {
                     "$ref": "#/definitions/UnionSerialize"
                 },
+                "SerializerProvider": {
+                    "$ref": "#/definitions/UnionSerializerProvider"
+                },
                 "set": {
                     "$ref": "#/definitions/UnionSet"
                 },
@@ -666,12 +759,18 @@
                 "signed": {
                     "$ref": "#/definitions/UnionSigned"
                 },
+                "SimpleModule": {
+                    "$ref": "#/definitions/UnionSimpleModule"
+                },
                 "sizeof": {
                     "$ref": "#/definitions/UnionSizeof"
                 },
                 "stackalloc": {
                     "$ref": "#/definitions/UnionStackalloc"
                 },
+                "Standards": {
+                    "$ref": "#/definitions/UnionStandards"
+                },
                 "static": {
                     "$ref": "#/definitions/UnionStatic"
                 },
@@ -681,6 +780,12 @@
                 "static_cast": {
                     "$ref": "#/definitions/UnionStaticCast"
                 },
+                "StdDeserializer": {
+                    "$ref": "#/definitions/UnionStdDeserializer"
+                },
+                "StdSerializer": {
+                    "$ref": "#/definitions/UnionStdSerializer"
+                },
                 "strictfp": {
                     "$ref": "#/definitions/UnionStrictfp"
                 },
@@ -726,12 +831,21 @@
                 "throws": {
                     "$ref": "#/definitions/UnionThrows"
                 },
+                "TimeOnly": {
+                    "$ref": "#/definitions/UnionTimeOnly"
+                },
+                "TimeOnlyConverter": {
+                    "$ref": "#/definitions/UnionTimeOnlyConverter"
+                },
                 "to_json": {
                     "$ref": "#/definitions/UnionToJSON"
                 },
                 "top_level": {
                     "$ref": "#/definitions/UnionTopLevel"
                 },
+                "toString": {
+                    "$ref": "#/definitions/UnionToString"
+                },
                 "transient": {
                     "$ref": "#/definitions/UnionTransient"
                 },
@@ -795,6 +909,15 @@
                 "using": {
                     "$ref": "#/definitions/UnionUsing"
                 },
+                "Utf8JsonReader": {
+                    "$ref": "#/definitions/UnionUtf8JSONReader"
+                },
+                "Utf8JsonWriter": {
+                    "$ref": "#/definitions/UnionUtf8JSONWriter"
+                },
+                "UUID": {
+                    "$ref": "#/definitions/UnionUUID"
+                },
                 "var": {
                     "$ref": "#/definitions/UnionVar"
                 },
@@ -856,21 +979,126 @@
             "additionalProperties": false,
             "title": "Class"
         },
+        "CultureInfo": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "CultureInfo"
+        },
+        "DateFormatter": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "DateFormatter"
+        },
+        "DateOnly": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "DateOnly"
+        },
+        "DateOnlyConverter": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "DateOnlyConverter"
+        },
+        "DateTime": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "DateTime"
+        },
+        "DateTimeStyles": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "DateTimeStyles"
+        },
+        "EnumValues": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "EnumValues"
+        },
         "False": {
             "type": "object",
             "additionalProperties": false,
             "title": "False"
         },
+        "FormatException": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "FormatException"
+        },
         "Imp": {
             "type": "object",
             "additionalProperties": false,
             "title": "Imp"
         },
+        "ISODateTimeOffsetConverter": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "ISODateTimeOffsetConverter"
+        },
+        "JSONAny": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONAny"
+        },
+        "JSONCodingKey": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONCodingKey"
+        },
+        "JSONDecoder": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONDecoder"
+        },
+        "JSONEncoder": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONEncoder"
+        },
+        "JSONNull": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONNull"
+        },
+        "JSONException": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONException"
+        },
+        "JSONGenerator": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONGenerator"
+        },
+        "JSONNode": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONNode"
+        },
+        "JSONParser": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONParser"
+        },
+        "JSONReader": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONReader"
+        },
+        "JSONTokenType": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "JSONTokenType"
+        },
         "No": {
             "type": "object",
             "additionalProperties": false,
             "title": "No"
         },
+        "NSError": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "NSError"
+        },
         "NSString": {
             "type": "object",
             "additionalProperties": false,
@@ -886,11 +1114,21 @@
             "additionalProperties": false,
             "title": "None"
         },
+        "ObjectMapper": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "ObjectMapper"
+        },
         "Protocol": {
             "type": "object",
             "additionalProperties": false,
             "title": "Protocol"
         },
+        "RegExp": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "RegExp"
+        },
         "Sel": {
             "type": "object",
             "additionalProperties": false,
@@ -901,6 +1139,41 @@
             "additionalProperties": false,
             "title": "Self"
         },
+        "SerializerProvider": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "SerializerProvider"
+        },
+        "SimpleModule": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "SimpleModule"
+        },
+        "Standards": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "Standards"
+        },
+        "StdDeserializer": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "StdDeserializer"
+        },
+        "StdSerializer": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "StdSerializer"
+        },
+        "TimeOnly": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "TimeOnly"
+        },
+        "TimeOnlyConverter": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "TimeOnlyConverter"
+        },
         "True": {
             "type": "object",
             "additionalProperties": false,
@@ -911,6 +1184,21 @@
             "additionalProperties": false,
             "title": "Type"
         },
+        "UUID": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "UUID"
+        },
+        "Utf8JSONReader": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "Utf8JSONReader"
+        },
+        "Utf8JSONWriter": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "Utf8JSONWriter"
+        },
         "Yes": {
             "type": "object",
             "additionalProperties": false,
@@ -1116,6 +1404,11 @@
             "additionalProperties": false,
             "title": "ClassClass"
         },
+        "Clone": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "Clone"
+        },
         "CoAwait": {
             "type": "object",
             "additionalProperties": false,
@@ -1311,6 +1604,11 @@
             "additionalProperties": false,
             "title": "Enum"
         },
+        "EqualityContract": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "EqualityContract"
+        },
         "Event": {
             "type": "object",
             "additionalProperties": false,
@@ -1456,6 +1754,11 @@
             "additionalProperties": false,
             "title": "HasOwnProperty"
         },
+        "HashCode": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "HashCode"
+        },
         "ID": {
             "type": "object",
             "additionalProperties": false,
@@ -1666,6 +1969,11 @@
             "additionalProperties": false,
             "title": "Nil"
         },
+        "NoSuchMethod": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "NoSuchMethod"
+        },
         "Noexcept": {
             "type": "object",
             "additionalProperties": false,
@@ -1806,6 +2114,11 @@
             "additionalProperties": false,
             "title": "Print"
         },
+        "PrintMembers": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "PrintMembers"
+        },
         "Printf": {
             "type": "object",
             "additionalProperties": false,
@@ -1911,6 +2224,16 @@
             "additionalProperties": false,
             "title": "Right"
         },
+        "RuntimeType": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "RuntimeType"
+        },
+        "S": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "S"
+        },
         "Sbyte": {
             "type": "object",
             "additionalProperties": false,
@@ -2051,6 +2374,11 @@
             "additionalProperties": false,
             "title": "Throws"
         },
+        "ToString": {
+            "type": "object",
+            "additionalProperties": false,
+            "title": "ToString"
+        },
         "ToJSON": {
             "type": "object",
             "additionalProperties": false,
@@ -2254,6 +2582,83 @@
             ],
             "title": "UnionClass"
         },
+        "UnionCultureInfo": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/CultureInfo"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionCultureInfo"
+        },
+        "UnionDateFormatter": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/DateFormatter"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionDateFormatter"
+        },
+        "UnionDateOnly": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/DateOnly"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionDateOnly"
+        },
+        "UnionDateOnlyConverter": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/DateOnlyConverter"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionDateOnlyConverter"
+        },
+        "UnionDateTime": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/DateTime"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionDateTime"
+        },
+        "UnionDateTimeStyles": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/DateTimeStyles"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionDateTimeStyles"
+        },
+        "UnionEnumValues": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/EnumValues"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionEnumValues"
+        },
         "UnionFalse": {
             "anyOf": [
                 {
@@ -2265,6 +2670,17 @@
             ],
             "title": "UnionFalse"
         },
+        "UnionFormatException": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/FormatException"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionFormatException"
+        },
         "UnionIMP": {
             "anyOf": [
                 {
@@ -2276,6 +2692,138 @@
             ],
             "title": "UnionIMP"
         },
+        "UnionISODateTimeOffsetConverter": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/ISODateTimeOffsetConverter"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionISODateTimeOffsetConverter"
+        },
+        "UnionJSONAny": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONAny"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONAny"
+        },
+        "UnionJSONCodingKey": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONCodingKey"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONCodingKey"
+        },
+        "UnionJSONDecoder": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONDecoder"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONDecoder"
+        },
+        "UnionJSONEncoder": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONEncoder"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONEncoder"
+        },
+        "UnionJSONNull": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONNull"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONNull"
+        },
+        "UnionJSONException": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONException"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONException"
+        },
+        "UnionJSONGenerator": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONGenerator"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONGenerator"
+        },
+        "UnionJSONNode": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONNode"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONNode"
+        },
+        "UnionJSONParser": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONParser"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONParser"
+        },
+        "UnionJSONReader": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONReader"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONReader"
+        },
+        "UnionJSONTokenType": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/JSONTokenType"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionJSONTokenType"
+        },
         "UnionNO": {
             "anyOf": [
                 {
@@ -2287,6 +2835,17 @@
             ],
             "title": "UnionNO"
         },
+        "UnionNSError": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/NSError"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionNSError"
+        },
         "UnionNSString": {
             "anyOf": [
                 {
@@ -2320,6 +2879,17 @@
             ],
             "title": "UnionNone"
         },
+        "UnionObjectMapper": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/ObjectMapper"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionObjectMapper"
+        },
         "UnionProtocol": {
             "anyOf": [
                 {
@@ -2331,6 +2901,17 @@
             ],
             "title": "UnionProtocol"
         },
+        "UnionRegExp": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/RegExp"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionRegExp"
+        },
         "UnionSEL": {
             "anyOf": [
                 {
@@ -2353,6 +2934,83 @@
             ],
             "title": "UnionSelf"
         },
+        "UnionSerializerProvider": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/SerializerProvider"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionSerializerProvider"
+        },
+        "UnionSimpleModule": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/SimpleModule"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionSimpleModule"
+        },
+        "UnionStandards": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/Standards"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionStandards"
+        },
+        "UnionStdDeserializer": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/StdDeserializer"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionStdDeserializer"
+        },
+        "UnionStdSerializer": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/StdSerializer"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionStdSerializer"
+        },
+        "UnionTimeOnly": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/TimeOnly"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionTimeOnly"
+        },
+        "UnionTimeOnlyConverter": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/TimeOnlyConverter"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionTimeOnlyConverter"
+        },
         "UnionTrue": {
             "anyOf": [
                 {
@@ -2375,6 +3033,39 @@
             ],
             "title": "UnionType"
         },
+        "UnionUUID": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/UUID"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionUUID"
+        },
+        "UnionUtf8JSONReader": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/Utf8JSONReader"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionUtf8JSONReader"
+        },
+        "UnionUtf8JSONWriter": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/Utf8JSONWriter"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionUtf8JSONWriter"
+        },
         "UnionYES": {
             "anyOf": [
                 {
@@ -2826,6 +3517,17 @@
             ],
             "title": "UnionClassUnion"
         },
+        "UnionClone": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/Clone"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionClone"
+        },
         "UnionCoAwait": {
             "anyOf": [
                 {
@@ -3255,6 +3957,17 @@
             ],
             "title": "UnionEnum"
         },
+        "UnionEqualityContract": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/EqualityContract"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionEqualityContract"
+        },
         "UnionEvent": {
             "anyOf": [
                 {
@@ -3574,6 +4287,17 @@
             ],
             "title": "UnionHasOwnProperty"
         },
+        "UnionHashCode": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/HashCode"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionHashCode"
+        },
         "UnionID": {
             "anyOf": [
                 {
@@ -4036,6 +4760,17 @@
             ],
             "title": "UnionNil"
         },
+        "UnionNoSuchMethod": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/NoSuchMethod"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionNoSuchMethod"
+        },
         "UnionNoexcept": {
             "anyOf": [
                 {
@@ -4344,6 +5079,17 @@
             ],
             "title": "UnionPrint"
         },
+        "UnionPrintMembers": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/PrintMembers"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionPrintMembers"
+        },
         "UnionPrintf": {
             "anyOf": [
                 {
@@ -4575,6 +5321,28 @@
             ],
             "title": "UnionRight"
         },
+        "UnionRuntimeType": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/RuntimeType"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionRuntimeType"
+        },
+        "UnionS": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/S"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionS"
+        },
         "UnionSbyte": {
             "anyOf": [
                 {
@@ -4883,6 +5651,17 @@
             ],
             "title": "UnionThrows"
         },
+        "UnionToString": {
+            "anyOf": [
+                {
+                    "$ref": "#/definitions/ToString"
+                },
+                {
+                    "type": "number"
+                }
+            ],
+            "title": "UnionToString"
+        },
         "UnionToJSON": {
             "anyOf": [
                 {
diff --git a/base/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
index 504b686..ef33bfc 100644
--- a/base/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
@@ -93,6 +93,7 @@ enum Enum: String, Codable {
     case checked = "checked"
     case enumClass = "class"
     case purpleClass = "Class"
+    case clone = "clone"
     case coAwait = "co_await"
     case coReturn = "co_return"
     case coYield = "co_yield"
@@ -107,8 +108,14 @@ enum Enum: String, Codable {
     case enumConvenience = "convenience"
     case convert = "convert"
     case converter = "converter"
+    case cultureInfo = "CultureInfo"
     case date = "date"
     case dateParseHandling = "date_parse_handling"
+    case dateFormatter = "DateFormatter"
+    case dateOnly = "DateOnly"
+    case dateOnlyConverter = "DateOnlyConverter"
+    case dateTime = "DateTime"
+    case dateTimeStyles = "DateTimeStyles"
     case debugger = "debugger"
     case decimal = "decimal"
     case declare = "declare"
@@ -132,6 +139,8 @@ enum Enum: String, Codable {
     case enumElse = "else"
     case encodeQuickType = "encode_quick_type"
     case enumEnum = "enum"
+    case enumValues = "EnumValues"
+    case equalityContract = "equalityContract"
     case event = "event"
     case except = "except"
     case exception = "exception"
@@ -151,6 +160,7 @@ enum Enum: String, Codable {
     case float = "float"
     case enumFor = "for"
     case foreach = "foreach"
+    case formatException = "FormatException"
     case friend = "friend"
     case from = "from"
     case fromJSON = "from_json"
@@ -161,6 +171,7 @@ enum Enum: String, Codable {
     case go = "go"
     case goto = "goto"
     case enumGuard = "guard"
+    case hashCode = "hashCode"
     case hasOwnProperty = "hasOwnProperty"
     case id = "id"
     case enumIf = "if"
@@ -178,6 +189,7 @@ enum Enum: String, Codable {
     case int = "int"
     case interface = "interface"
     case enumInternal = "internal"
+    case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
     case iterable = "iterable"
     case enumIs = "is"
     case jdec = "jdec"
@@ -188,6 +200,17 @@ enum Enum: String, Codable {
     case jsonSerializer = "json_serializer"
     case jsonToken = "json_token"
     case jsonWriter = "json_writer"
+    case jsonAny = "JSONAny"
+    case jsonCodingKey = "JSONCodingKey"
+    case jsonDecoder = "JSONDecoder"
+    case jsonEncoder = "JSONEncoder"
+    case jsonException = "JsonException"
+    case jsonGenerator = "JsonGenerator"
+    case jsonNode = "JsonNode"
+    case jsonNull = "JSONNull"
+    case jsonParser = "JsonParser"
+    case jsonReader = "JsonReader"
+    case jsonTokenType = "JsonTokenType"
     case lambda = "lambda"
     case enumLazy = "lazy"
     case enumLeft = "left"
@@ -212,14 +235,17 @@ enum Enum: String, Codable {
     case enumNone = "None"
     case nonlocal = "nonlocal"
     case enumNonmutating = "nonmutating"
+    case noSuchMethod = "noSuchMethod"
     case not = "not"
     case notEq = "not_eq"
+    case nsError = "NSError"
     case nsString = "NSString"
     case null = "NULL"
     case enumNull = "null"
     case nullptr = "nullptr"
     case number = "number"
     case object = "object"
+    case objectMapper = "ObjectMapper"
     case of = "of"
     case oneway = "oneway"
     case enumOpen = "open"
@@ -238,6 +264,7 @@ enum Enum: String, Codable {
     case enumPrefix = "prefix"
     case print = "print"
     case printf = "printf"
+    case printMembers = "printMembers"
     case enumPrivate = "private"
     case protected = "protected"
     case enumProtocol = "Protocol"
@@ -248,6 +275,7 @@ enum Enum: String, Codable {
     case range = "range"
     case readonly = "readonly"
     case ref = "ref"
+    case regExp = "RegExp"
     case register = "register"
     case reinterpretCast = "reinterpret_cast"
     case enumRepeat = "repeat"
@@ -259,6 +287,8 @@ enum Enum: String, Codable {
     case enumRethrows = "rethrows"
     case enumReturn = "return"
     case enumRight = "right"
+    case runtimeType = "runtimeType"
+    case s = "s"
     case sbyte = "sbyte"
     case sealed = "sealed"
     case sel = "SEL"
@@ -266,14 +296,19 @@ enum Enum: String, Codable {
     case enumSelf = "Self"
     case purpleSelf = "self"
     case serialize = "serialize"
+    case serializerProvider = "SerializerProvider"
     case enumSet = "set"
     case short = "short"
     case signed = "signed"
+    case simpleModule = "SimpleModule"
     case sizeof = "sizeof"
     case stackalloc = "stackalloc"
+    case standards = "Standards"
     case enumStatic = "static"
     case staticAssert = "static_assert"
     case staticCast = "static_cast"
+    case stdDeserializer = "StdDeserializer"
+    case stdSerializer = "StdSerializer"
     case strictfp = "strictfp"
     case string = "string"
     case enumStruct = "struct"
@@ -289,8 +324,11 @@ enum Enum: String, Codable {
     case threadLocal = "thread_local"
     case enumThrow = "throw"
     case enumThrows = "throws"
+    case timeOnly = "TimeOnly"
+    case timeOnlyConverter = "TimeOnlyConverter"
     case toJSON = "to_json"
     case topLevel = "top_level"
+    case toString = "toString"
     case transient = "transient"
     case enumTrue = "True"
     case purpleTrue = "true"
@@ -312,6 +350,9 @@ enum Enum: String, Codable {
     case unsigned = "unsigned"
     case ushort = "ushort"
     case using = "using"
+    case utf8JSONReader = "Utf8JsonReader"
+    case utf8JSONWriter = "Utf8JsonWriter"
+    case uuid = "UUID"
     case enumVar = "var"
     case virtual = "virtual"
     case void = "void"
diff --git a/base/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
index 72f3f47..84af08a 100644
--- a/base/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
@@ -50,6 +50,7 @@ struct TopLevel: Codable {
     let checked: UnionChecked?
     let purpleClass: UnionClassUnion?
     let topLevelClass: UnionClass?
+    let clone: UnionClone?
     let coAwait: UnionCoAwait?
     let coReturn: UnionCoReturn?
     let coYield: UnionCoYield?
@@ -64,8 +65,14 @@ struct TopLevel: Codable {
     let topLevelConvenience: UnionConvenience?
     let convert: UnionConvert?
     let converter: UnionConverter?
+    let cultureInfo: UnionCultureInfo?
     let date: UnionDate?
     let dateParseHandling: UnionDateParseHandling?
+    let dateFormatter: UnionDateFormatter?
+    let dateOnly: UnionDateOnly?
+    let dateOnlyConverter: UnionDateOnlyConverter?
+    let dateTime: UnionDateTime?
+    let dateTimeStyles: UnionDateTimeStyles?
     let debugger: UnionDebugger?
     let decimal: UnionDecimal?
     let declare: UnionDeclare?
@@ -90,6 +97,8 @@ struct TopLevel: Codable {
     let topLevelElse: UnionElse?
     let encodeQuickType: UnionEncodeQuickType?
     let topLevelEnum: UnionEnum?
+    let enumValues: UnionEnumValues?
+    let equalityContract: UnionEqualityContract?
     let event: UnionEvent?
     let except: UnionExcept?
     let exception: UnionException?
@@ -109,6 +118,7 @@ struct TopLevel: Codable {
     let float: UnionFloat?
     let topLevelFor: UnionFor?
     let foreach: UnionForeach?
+    let formatException: UnionFormatException?
     let friend: UnionFriend?
     let from: UnionFrom?
     let fromJSON: UnionFromJSON?
@@ -119,6 +129,7 @@ struct TopLevel: Codable {
     let go: UnionGo?
     let goto: UnionGoto?
     let topLevelGuard: UnionGuard?
+    let hashCode: UnionHashCode?
     let hasOwnProperty: UnionHasOwnProperty?
     let id: UnionID?
     let topLevelIf: UnionIf?
@@ -137,6 +148,7 @@ struct TopLevel: Codable {
     let interface: UnionInterface?
     let topLevelInternal: UnionInternal?
     let topLevelIs: UnionIs?
+    let isoDateTimeOffsetConverter: UnionISODateTimeOffsetConverter?
     let iterable: UnionIterable?
     let jdec: UnionJdec?
     let jenc: UnionJenc?
@@ -146,6 +158,17 @@ struct TopLevel: Codable {
     let jsonSerializer: UnionJSONSerializer?
     let jsonToken: UnionJSONToken?
     let jsonWriter: UnionJSONWriter?
+    let jsonAny: UnionJSONAny?
+    let jsonCodingKey: UnionJSONCodingKey?
+    let jsonDecoder: UnionJSONDecoder?
+    let jsonEncoder: UnionJSONEncoder?
+    let jsonException: UnionJSONException?
+    let jsonGenerator: UnionJSONGenerator?
+    let jsonNode: UnionJSONNode?
+    let jsonNull: UnionJSONNull?
+    let jsonParser: UnionJSONParser?
+    let jsonReader: UnionJSONReader?
+    let jsonTokenType: UnionJSONTokenType?
     let lambda: UnionLambda?
     let topLevelLazy: UnionLazy?
     let topLevelLeft: UnionLeft?
@@ -170,14 +193,17 @@ struct TopLevel: Codable {
     let none: UnionNone?
     let nonlocal: UnionNonlocal?
     let topLevelNonmutating: UnionNonmutating?
+    let noSuchMethod: UnionNoSuchMethod?
     let not: UnionNot?
     let notEq: UnionNotEq?
+    let nsError: UnionNSError?
     let nsString: UnionNSString?
     let null: UnionNULL?
     let topLevelNull: UnionNull?
     let nullptr: UnionNullptr?
     let number: UnionNumber?
     let object: UnionObject?
+    let objectMapper: UnionObjectMapper?
     let of: UnionOf?
     let oneway: UnionOneway?
     let topLevelOpen: UnionOpen?
@@ -196,6 +222,7 @@ struct TopLevel: Codable {
     let topLevelPrefix: UnionPrefix?
     let print: UnionPrint?
     let printf: UnionPrintf?
+    let printMembers: UnionPrintMembers?
     let topLevelPrivate: UnionPrivate?
     let protected: UnionProtected?
     let topLevelProtocol: UnionProtocol?
@@ -206,6 +233,7 @@ struct TopLevel: Codable {
     let range: UnionRange?
     let readonly: UnionReadonly?
     let ref: UnionRef?
+    let regExp: UnionRegExp?
     let register: UnionRegister?
     let reinterpretCast: UnionReinterpretCast?
     let topLevelRepeat: UnionRepeat?
@@ -217,6 +245,8 @@ struct TopLevel: Codable {
     let topLevelRethrows: UnionRethrows?
     let topLevelReturn: UnionReturn?
     let topLevelRight: UnionRight?
+    let runtimeType: UnionRuntimeType?
+    let s: UnionS?
     let sbyte: UnionSbyte?
     let sealed: UnionSealed?
     let sel: UnionSEL?
@@ -224,14 +254,19 @@ struct TopLevel: Codable {
     let topLevelSelf: UnionSelf?
     let purpleSelf: UnionSelfUnion?
     let serialize: UnionSerialize?
+    let serializerProvider: UnionSerializerProvider?
     let topLevelSet: UnionSet?
     let short: UnionShort?
     let signed: UnionSigned?
+    let simpleModule: UnionSimpleModule?
     let sizeof: UnionSizeof?
     let stackalloc: UnionStackalloc?
+    let standards: UnionStandards?
     let topLevelStatic: UnionStatic?
     let staticAssert: UnionStaticAssert?
     let staticCast: UnionStaticCast?
+    let stdDeserializer: UnionStdDeserializer?
+    let stdSerializer: UnionStdSerializer?
     let strictfp: UnionStrictfp?
     let string: UnionString?
     let topLevelStruct: UnionStruct?
@@ -247,8 +282,11 @@ struct TopLevel: Codable {
     let threadLocal: UnionThreadLocal?
     let topLevelThrow: UnionThrow?
     let topLevelThrows: UnionThrows?
+    let timeOnly: UnionTimeOnly?
+    let timeOnlyConverter: UnionTimeOnlyConverter?
     let toJSON: UnionToJSON?
     let topLevel: UnionTopLevel?
+    let toString: UnionToString?
     let transient: UnionTransient?
     let topLevelTrue: UnionTrue?
     let purpleTrue: UnionTrueUnion?
@@ -270,6 +308,9 @@ struct TopLevel: Codable {
     let unsigned: UnionUnsigned?
     let ushort: UnionUshort?
     let using: UnionUsing?
+    let utf8JSONReader: UnionUtf8JSONReader?
+    let utf8JSONWriter: UnionUtf8JSONWriter?
+    let uuid: UnionUUID?
     let topLevelVar: UnionVar?
     let virtual: UnionVirtual?
     let void: UnionVoid?
@@ -329,6 +370,7 @@ struct TopLevel: Codable {
         case checked = "checked"
         case purpleClass = "class"
         case topLevelClass = "Class"
+        case clone = "clone"
         case coAwait = "co_await"
         case coReturn = "co_return"
         case coYield = "co_yield"
@@ -343,8 +385,14 @@ struct TopLevel: Codable {
         case topLevelConvenience = "convenience"
         case convert = "convert"
         case converter = "converter"
+        case cultureInfo = "CultureInfo"
         case date = "date"
         case dateParseHandling = "date_parse_handling"
+        case dateFormatter = "DateFormatter"
+        case dateOnly = "DateOnly"
+        case dateOnlyConverter = "DateOnlyConverter"
+        case dateTime = "DateTime"
+        case dateTimeStyles = "DateTimeStyles"
         case debugger = "debugger"
         case decimal = "decimal"
         case declare = "declare"
@@ -369,6 +417,8 @@ struct TopLevel: Codable {
         case topLevelElse = "else"
         case encodeQuickType = "encode_quick_type"
         case topLevelEnum = "enum"
+        case enumValues = "EnumValues"
+        case equalityContract = "equalityContract"
         case event = "event"
         case except = "except"
         case exception = "exception"
@@ -388,6 +438,7 @@ struct TopLevel: Codable {
         case float = "float"
         case topLevelFor = "for"
         case foreach = "foreach"
+        case formatException = "FormatException"
         case friend = "friend"
         case from = "from"
         case fromJSON = "from_json"
@@ -398,6 +449,7 @@ struct TopLevel: Codable {
         case go = "go"
         case goto = "goto"
         case topLevelGuard = "guard"
+        case hashCode = "hashCode"
         case hasOwnProperty = "hasOwnProperty"
         case id = "id"
         case topLevelIf = "if"
@@ -416,6 +468,7 @@ struct TopLevel: Codable {
         case interface = "interface"
         case topLevelInternal = "internal"
         case topLevelIs = "is"
+        case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
         case iterable = "iterable"
         case jdec = "jdec"
         case jenc = "jenc"
@@ -425,6 +478,17 @@ struct TopLevel: Codable {
         case jsonSerializer = "json_serializer"
         case jsonToken = "json_token"
         case jsonWriter = "json_writer"
+        case jsonAny = "JSONAny"
+        case jsonCodingKey = "JSONCodingKey"
+        case jsonDecoder = "JSONDecoder"
+        case jsonEncoder = "JSONEncoder"
+        case jsonException = "JsonException"
+        case jsonGenerator = "JsonGenerator"
+        case jsonNode = "JsonNode"
+        case jsonNull = "JSONNull"
+        case jsonParser = "JsonParser"
+        case jsonReader = "JsonReader"
+        case jsonTokenType = "JsonTokenType"
         case lambda = "lambda"
         case topLevelLazy = "lazy"
         case topLevelLeft = "left"
@@ -449,14 +513,17 @@ struct TopLevel: Codable {
         case none = "None"
         case nonlocal = "nonlocal"
         case topLevelNonmutating = "nonmutating"
+        case noSuchMethod = "noSuchMethod"
         case not = "not"
         case notEq = "not_eq"
+        case nsError = "NSError"
         case nsString = "NSString"
         case null = "NULL"
         case topLevelNull = "null"
         case nullptr = "nullptr"
         case number = "number"
         case object = "object"
+        case objectMapper = "ObjectMapper"
         case of = "of"
         case oneway = "oneway"
         case topLevelOpen = "open"
@@ -475,6 +542,7 @@ struct TopLevel: Codable {
         case topLevelPrefix = "prefix"
         case print = "print"
         case printf = "printf"
+        case printMembers = "printMembers"
         case topLevelPrivate = "private"
         case protected = "protected"
         case topLevelProtocol = "Protocol"
@@ -485,6 +553,7 @@ struct TopLevel: Codable {
         case range = "range"
         case readonly = "readonly"
         case ref = "ref"
+        case regExp = "RegExp"
         case register = "register"
         case reinterpretCast = "reinterpret_cast"
         case topLevelRepeat = "repeat"
@@ -496,6 +565,8 @@ struct TopLevel: Codable {
         case topLevelRethrows = "rethrows"
         case topLevelReturn = "return"
         case topLevelRight = "right"
+        case runtimeType = "runtimeType"
+        case s = "s"
         case sbyte = "sbyte"
         case sealed = "sealed"
         case sel = "SEL"
@@ -503,14 +574,19 @@ struct TopLevel: Codable {
         case topLevelSelf = "Self"
         case purpleSelf = "self"
         case serialize = "serialize"
+        case serializerProvider = "SerializerProvider"
         case topLevelSet = "set"
         case short = "short"
         case signed = "signed"
+        case simpleModule = "SimpleModule"
         case sizeof = "sizeof"
         case stackalloc = "stackalloc"
+        case standards = "Standards"
         case topLevelStatic = "static"
         case staticAssert = "static_assert"
         case staticCast = "static_cast"
+        case stdDeserializer = "StdDeserializer"
+        case stdSerializer = "StdSerializer"
         case strictfp = "strictfp"
         case string = "string"
         case topLevelStruct = "struct"
@@ -526,8 +602,11 @@ struct TopLevel: Codable {
         case threadLocal = "thread_local"
         case topLevelThrow = "throw"
         case topLevelThrows = "throws"
+        case timeOnly = "TimeOnly"
+        case timeOnlyConverter = "TimeOnlyConverter"
         case toJSON = "to_json"
         case topLevel = "top_level"
+        case toString = "toString"
         case transient = "transient"
         case topLevelTrue = "True"
         case purpleTrue = "true"
@@ -549,6 +628,9 @@ struct TopLevel: Codable {
         case unsigned = "unsigned"
         case ushort = "ushort"
         case using = "using"
+        case utf8JSONReader = "Utf8JsonReader"
+        case utf8JSONWriter = "Utf8JsonWriter"
+        case uuid = "UUID"
         case topLevelVar = "var"
         case virtual = "virtual"
         case void = "void"
@@ -628,6 +710,7 @@ extension TopLevel {
         checked: UnionChecked?? = nil,
         purpleClass: UnionClassUnion?? = nil,
         topLevelClass: UnionClass?? = nil,
+        clone: UnionClone?? = nil,
         coAwait: UnionCoAwait?? = nil,
         coReturn: UnionCoReturn?? = nil,
         coYield: UnionCoYield?? = nil,
@@ -642,8 +725,14 @@ extension TopLevel {
         topLevelConvenience: UnionConvenience?? = nil,
         convert: UnionConvert?? = nil,
         converter: UnionConverter?? = nil,
+        cultureInfo: UnionCultureInfo?? = nil,
         date: UnionDate?? = nil,
         dateParseHandling: UnionDateParseHandling?? = nil,
+        dateFormatter: UnionDateFormatter?? = nil,
+        dateOnly: UnionDateOnly?? = nil,
+        dateOnlyConverter: UnionDateOnlyConverter?? = nil,
+        dateTime: UnionDateTime?? = nil,
+        dateTimeStyles: UnionDateTimeStyles?? = nil,
         debugger: UnionDebugger?? = nil,
         decimal: UnionDecimal?? = nil,
         declare: UnionDeclare?? = nil,
@@ -668,6 +757,8 @@ extension TopLevel {
         topLevelElse: UnionElse?? = nil,
         encodeQuickType: UnionEncodeQuickType?? = nil,
         topLevelEnum: UnionEnum?? = nil,
+        enumValues: UnionEnumValues?? = nil,
+        equalityContract: UnionEqualityContract?? = nil,
         event: UnionEvent?? = nil,
         except: UnionExcept?? = nil,
         exception: UnionException?? = nil,
@@ -687,6 +778,7 @@ extension TopLevel {
         float: UnionFloat?? = nil,
         topLevelFor: UnionFor?? = nil,
         foreach: UnionForeach?? = nil,
+        formatException: UnionFormatException?? = nil,
         friend: UnionFriend?? = nil,
         from: UnionFrom?? = nil,
         fromJSON: UnionFromJSON?? = nil,
@@ -697,6 +789,7 @@ extension TopLevel {
         go: UnionGo?? = nil,
         goto: UnionGoto?? = nil,
         topLevelGuard: UnionGuard?? = nil,
+        hashCode: UnionHashCode?? = nil,
         hasOwnProperty: UnionHasOwnProperty?? = nil,
         id: UnionID?? = nil,
         topLevelIf: UnionIf?? = nil,
@@ -715,6 +808,7 @@ extension TopLevel {
         interface: UnionInterface?? = nil,
         topLevelInternal: UnionInternal?? = nil,
         topLevelIs: UnionIs?? = nil,
+        isoDateTimeOffsetConverter: UnionISODateTimeOffsetConverter?? = nil,
         iterable: UnionIterable?? = nil,
         jdec: UnionJdec?? = nil,
         jenc: UnionJenc?? = nil,
@@ -724,6 +818,17 @@ extension TopLevel {
         jsonSerializer: UnionJSONSerializer?? = nil,
         jsonToken: UnionJSONToken?? = nil,
         jsonWriter: UnionJSONWriter?? = nil,
+        jsonAny: UnionJSONAny?? = nil,
+        jsonCodingKey: UnionJSONCodingKey?? = nil,
+        jsonDecoder: UnionJSONDecoder?? = nil,
+        jsonEncoder: UnionJSONEncoder?? = nil,
+        jsonException: UnionJSONException?? = nil,
+        jsonGenerator: UnionJSONGenerator?? = nil,
+        jsonNode: UnionJSONNode?? = nil,
+        jsonNull: UnionJSONNull?? = nil,
+        jsonParser: UnionJSONParser?? = nil,
+        jsonReader: UnionJSONReader?? = nil,
+        jsonTokenType: UnionJSONTokenType?? = nil,
         lambda: UnionLambda?? = nil,
         topLevelLazy: UnionLazy?? = nil,
         topLevelLeft: UnionLeft?? = nil,
@@ -748,14 +853,17 @@ extension TopLevel {
         none: UnionNone?? = nil,
         nonlocal: UnionNonlocal?? = nil,
         topLevelNonmutating: UnionNonmutating?? = nil,
+        noSuchMethod: UnionNoSuchMethod?? = nil,
         not: UnionNot?? = nil,
         notEq: UnionNotEq?? = nil,
+        nsError: UnionNSError?? = nil,
         nsString: UnionNSString?? = nil,
         null: UnionNULL?? = nil,
         topLevelNull: UnionNull?? = nil,
         nullptr: UnionNullptr?? = nil,
         number: UnionNumber?? = nil,
         object: UnionObject?? = nil,
+        objectMapper: UnionObjectMapper?? = nil,
         of: UnionOf?? = nil,
         oneway: UnionOneway?? = nil,
         topLevelOpen: UnionOpen?? = nil,
@@ -774,6 +882,7 @@ extension TopLevel {
         topLevelPrefix: UnionPrefix?? = nil,
         print: UnionPrint?? = nil,
         printf: UnionPrintf?? = nil,
+        printMembers: UnionPrintMembers?? = nil,
         topLevelPrivate: UnionPrivate?? = nil,
         protected: UnionProtected?? = nil,
         topLevelProtocol: UnionProtocol?? = nil,
@@ -784,6 +893,7 @@ extension TopLevel {
         range: UnionRange?? = nil,
         readonly: UnionReadonly?? = nil,
         ref: UnionRef?? = nil,
+        regExp: UnionRegExp?? = nil,
         register: UnionRegister?? = nil,
         reinterpretCast: UnionReinterpretCast?? = nil,
         topLevelRepeat: UnionRepeat?? = nil,
@@ -795,6 +905,8 @@ extension TopLevel {
         topLevelRethrows: UnionRethrows?? = nil,
         topLevelReturn: UnionReturn?? = nil,
         topLevelRight: UnionRight?? = nil,
+        runtimeType: UnionRuntimeType?? = nil,
+        s: UnionS?? = nil,
         sbyte: UnionSbyte?? = nil,
         sealed: UnionSealed?? = nil,
         sel: UnionSEL?? = nil,
@@ -802,14 +914,19 @@ extension TopLevel {
         topLevelSelf: UnionSelf?? = nil,
         purpleSelf: UnionSelfUnion?? = nil,
         serialize: UnionSerialize?? = nil,
+        serializerProvider: UnionSerializerProvider?? = nil,
         topLevelSet: UnionSet?? = nil,
         short: UnionShort?? = nil,
         signed: UnionSigned?? = nil,
+        simpleModule: UnionSimpleModule?? = nil,
         sizeof: UnionSizeof?? = nil,
         stackalloc: UnionStackalloc?? = nil,
+        standards: UnionStandards?? = nil,
         topLevelStatic: UnionStatic?? = nil,
         staticAssert: UnionStaticAssert?? = nil,
         staticCast: UnionStaticCast?? = nil,
+        stdDeserializer: UnionStdDeserializer?? = nil,
+        stdSerializer: UnionStdSerializer?? = nil,
         strictfp: UnionStrictfp?? = nil,
         string: UnionString?? = nil,
         topLevelStruct: UnionStruct?? = nil,
@@ -825,8 +942,11 @@ extension TopLevel {
         threadLocal: UnionThreadLocal?? = nil,
         topLevelThrow: UnionThrow?? = nil,
         topLevelThrows: UnionThrows?? = nil,
+        timeOnly: UnionTimeOnly?? = nil,
+        timeOnlyConverter: UnionTimeOnlyConverter?? = nil,
         toJSON: UnionToJSON?? = nil,
         topLevel: UnionTopLevel?? = nil,
+        toString: UnionToString?? = nil,
         transient: UnionTransient?? = nil,
         topLevelTrue: UnionTrue?? = nil,
         purpleTrue: UnionTrueUnion?? = nil,
@@ -848,6 +968,9 @@ extension TopLevel {
         unsigned: UnionUnsigned?? = nil,
         ushort: UnionUshort?? = nil,
         using: UnionUsing?? = nil,
+        utf8JSONReader: UnionUtf8JSONReader?? = nil,
+        utf8JSONWriter: UnionUtf8JSONWriter?? = nil,
+        uuid: UnionUUID?? = nil,
         topLevelVar: UnionVar?? = nil,
         virtual: UnionVirtual?? = nil,
         void: UnionVoid?? = nil,
@@ -907,6 +1030,7 @@ extension TopLevel {
             checked: checked ?? self.checked,
             purpleClass: purpleClass ?? self.purpleClass,
             topLevelClass: topLevelClass ?? self.topLevelClass,
+            clone: clone ?? self.clone,
             coAwait: coAwait ?? self.coAwait,
             coReturn: coReturn ?? self.coReturn,
             coYield: coYield ?? self.coYield,
@@ -921,8 +1045,14 @@ extension TopLevel {
             topLevelConvenience: topLevelConvenience ?? self.topLevelConvenience,
             convert: convert ?? self.convert,
             converter: converter ?? self.converter,
+            cultureInfo: cultureInfo ?? self.cultureInfo,
             date: date ?? self.date,
             dateParseHandling: dateParseHandling ?? self.dateParseHandling,
+            dateFormatter: dateFormatter ?? self.dateFormatter,
+            dateOnly: dateOnly ?? self.dateOnly,
+            dateOnlyConverter: dateOnlyConverter ?? self.dateOnlyConverter,
+            dateTime: dateTime ?? self.dateTime,
+            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles,
             debugger: debugger ?? self.debugger,
             decimal: decimal ?? self.decimal,
             declare: declare ?? self.declare,
@@ -947,6 +1077,8 @@ extension TopLevel {
             topLevelElse: topLevelElse ?? self.topLevelElse,
             encodeQuickType: encodeQuickType ?? self.encodeQuickType,
             topLevelEnum: topLevelEnum ?? self.topLevelEnum,
+            enumValues: enumValues ?? self.enumValues,
+            equalityContract: equalityContract ?? self.equalityContract,
             event: event ?? self.event,
             except: except ?? self.except,
             exception: exception ?? self.exception,
@@ -966,6 +1098,7 @@ extension TopLevel {
             float: float ?? self.float,
             topLevelFor: topLevelFor ?? self.topLevelFor,
             foreach: foreach ?? self.foreach,
+            formatException: formatException ?? self.formatException,
             friend: friend ?? self.friend,
             from: from ?? self.from,
             fromJSON: fromJSON ?? self.fromJSON,
@@ -976,6 +1109,7 @@ extension TopLevel {
             go: go ?? self.go,
             goto: goto ?? self.goto,
             topLevelGuard: topLevelGuard ?? self.topLevelGuard,
+            hashCode: hashCode ?? self.hashCode,
             hasOwnProperty: hasOwnProperty ?? self.hasOwnProperty,
             id: id ?? self.id,
             topLevelIf: topLevelIf ?? self.topLevelIf,
@@ -994,6 +1128,7 @@ extension TopLevel {
             interface: interface ?? self.interface,
             topLevelInternal: topLevelInternal ?? self.topLevelInternal,
             topLevelIs: topLevelIs ?? self.topLevelIs,
+            isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter,
             iterable: iterable ?? self.iterable,
             jdec: jdec ?? self.jdec,
             jenc: jenc ?? self.jenc,
@@ -1003,6 +1138,17 @@ extension TopLevel {
             jsonSerializer: jsonSerializer ?? self.jsonSerializer,
             jsonToken: jsonToken ?? self.jsonToken,
             jsonWriter: jsonWriter ?? self.jsonWriter,
+            jsonAny: jsonAny ?? self.jsonAny,
+            jsonCodingKey: jsonCodingKey ?? self.jsonCodingKey,
+            jsonDecoder: jsonDecoder ?? self.jsonDecoder,
+            jsonEncoder: jsonEncoder ?? self.jsonEncoder,
+            jsonException: jsonException ?? self.jsonException,
+            jsonGenerator: jsonGenerator ?? self.jsonGenerator,
+            jsonNode: jsonNode ?? self.jsonNode,
+            jsonNull: jsonNull ?? self.jsonNull,
+            jsonParser: jsonParser ?? self.jsonParser,
+            jsonReader: jsonReader ?? self.jsonReader,
+            jsonTokenType: jsonTokenType ?? self.jsonTokenType,
             lambda: lambda ?? self.lambda,
             topLevelLazy: topLevelLazy ?? self.topLevelLazy,
             topLevelLeft: topLevelLeft ?? self.topLevelLeft,
@@ -1027,14 +1173,17 @@ extension TopLevel {
             none: none ?? self.none,
             nonlocal: nonlocal ?? self.nonlocal,
             topLevelNonmutating: topLevelNonmutating ?? self.topLevelNonmutating,
+            noSuchMethod: noSuchMethod ?? self.noSuchMethod,
             not: not ?? self.not,
             notEq: notEq ?? self.notEq,
+            nsError: nsError ?? self.nsError,
             nsString: nsString ?? self.nsString,
             null: null ?? self.null,
             topLevelNull: topLevelNull ?? self.topLevelNull,
             nullptr: nullptr ?? self.nullptr,
             number: number ?? self.number,
             object: object ?? self.object,
+            objectMapper: objectMapper ?? self.objectMapper,
             of: of ?? self.of,
             oneway: oneway ?? self.oneway,
             topLevelOpen: topLevelOpen ?? self.topLevelOpen,
@@ -1053,6 +1202,7 @@ extension TopLevel {
             topLevelPrefix: topLevelPrefix ?? self.topLevelPrefix,
             print: print ?? self.print,
             printf: printf ?? self.printf,
+            printMembers: printMembers ?? self.printMembers,
             topLevelPrivate: topLevelPrivate ?? self.topLevelPrivate,
             protected: protected ?? self.protected,
             topLevelProtocol: topLevelProtocol ?? self.topLevelProtocol,
@@ -1063,6 +1213,7 @@ extension TopLevel {
             range: range ?? self.range,
             readonly: readonly ?? self.readonly,
             ref: ref ?? self.ref,
+            regExp: regExp ?? self.regExp,
             register: register ?? self.register,
             reinterpretCast: reinterpretCast ?? self.reinterpretCast,
             topLevelRepeat: topLevelRepeat ?? self.topLevelRepeat,
@@ -1074,6 +1225,8 @@ extension TopLevel {
             topLevelRethrows: topLevelRethrows ?? self.topLevelRethrows,
             topLevelReturn: topLevelReturn ?? self.topLevelReturn,
             topLevelRight: topLevelRight ?? self.topLevelRight,
+            runtimeType: runtimeType ?? self.runtimeType,
+            s: s ?? self.s,
             sbyte: sbyte ?? self.sbyte,
             sealed: sealed ?? self.sealed,
             sel: sel ?? self.sel,
@@ -1081,14 +1234,19 @@ extension TopLevel {
             topLevelSelf: topLevelSelf ?? self.topLevelSelf,
             purpleSelf: purpleSelf ?? self.purpleSelf,
             serialize: serialize ?? self.serialize,
+            serializerProvider: serializerProvider ?? self.serializerProvider,
             topLevelSet: topLevelSet ?? self.topLevelSet,
             short: short ?? self.short,
             signed: signed ?? self.signed,
+            simpleModule: simpleModule ?? self.simpleModule,
             sizeof: sizeof ?? self.sizeof,
             stackalloc: stackalloc ?? self.stackalloc,
+            standards: standards ?? self.standards,
             topLevelStatic: topLevelStatic ?? self.topLevelStatic,
             staticAssert: staticAssert ?? self.staticAssert,
             staticCast: staticCast ?? self.staticCast,
+            stdDeserializer: stdDeserializer ?? self.stdDeserializer,
+            stdSerializer: stdSerializer ?? self.stdSerializer,
             strictfp: strictfp ?? self.strictfp,
             string: string ?? self.string,
             topLevelStruct: topLevelStruct ?? self.topLevelStruct,
@@ -1104,8 +1262,11 @@ extension TopLevel {
             threadLocal: threadLocal ?? self.threadLocal,
             topLevelThrow: topLevelThrow ?? self.topLevelThrow,
             topLevelThrows: topLevelThrows ?? self.topLevelThrows,
+            timeOnly: timeOnly ?? self.timeOnly,
+            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter,
             toJSON: toJSON ?? self.toJSON,
             topLevel: topLevel ?? self.topLevel,
+            toString: toString ?? self.toString,
             transient: transient ?? self.transient,
             topLevelTrue: topLevelTrue ?? self.topLevelTrue,
             purpleTrue: purpleTrue ?? self.purpleTrue,
@@ -1127,6 +1288,9 @@ extension TopLevel {
             unsigned: unsigned ?? self.unsigned,
             ushort: ushort ?? self.ushort,
             using: using ?? self.using,
+            utf8JSONReader: utf8JSONReader ?? self.utf8JSONReader,
+            utf8JSONWriter: utf8JSONWriter ?? self.utf8JSONWriter,
+            uuid: uuid ?? self.uuid,
             topLevelVar: topLevelVar ?? self.topLevelVar,
             virtual: virtual ?? self.virtual,
             void: void ?? self.void,
@@ -3141,6 +3305,77 @@ extension Checked {
     }
 }
 
+enum UnionClone: Codable {
+    case clone(Clone)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Clone.self) {
+            self = .clone(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionClone.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionClone"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .clone(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Clone
+struct Clone: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Clone convenience initializers and mutators
+
+extension Clone {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Clone.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Clone {
+        return Clone(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
 enum UnionCoAwait: Codable {
     case coAwait(CoAwait)
     case double(Double)
@@ -4064,8 +4299,8 @@ extension Converter {
     }
 }
 
-enum UnionDate: Codable {
-    case dateClass(DateClass)
+enum UnionCultureInfo: Codable {
+    case cultureInfo(CultureInfo)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4074,17 +4309,17 @@ enum UnionDate: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(DateClass.self) {
-            self = .dateClass(x)
+        if let x = try? container.decode(CultureInfo.self) {
+            self = .cultureInfo(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDate"))
+        throw DecodingError.typeMismatch(UnionCultureInfo.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionCultureInfo"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .dateClass(let x):
+        case .cultureInfo(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4092,8 +4327,8 @@ enum UnionDate: Codable {
     }
 }
 
-// MARK: - DateClass
-struct DateClass: Codable {
+// MARK: - CultureInfo
+struct CultureInfo: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4102,11 +4337,11 @@ struct DateClass: Codable {
     }
 }
 
-// MARK: DateClass convenience initializers and mutators
+// MARK: CultureInfo convenience initializers and mutators
 
-extension DateClass {
+extension CultureInfo {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DateClass.self, from: data)
+        self = try newJSONDecoder().decode(CultureInfo.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4121,8 +4356,8 @@ extension DateClass {
     }
 
     func with(
-    ) -> DateClass {
-        return DateClass(
+    ) -> CultureInfo {
+        return CultureInfo(
         )
     }
 
@@ -4135,8 +4370,8 @@ extension DateClass {
     }
 }
 
-enum UnionDateParseHandling: Codable {
-    case dateParseHandling(DateParseHandling)
+enum UnionDate: Codable {
+    case dateClass(DateClass)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4145,17 +4380,17 @@ enum UnionDateParseHandling: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(DateParseHandling.self) {
-            self = .dateParseHandling(x)
+        if let x = try? container.decode(DateClass.self) {
+            self = .dateClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDateParseHandling.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateParseHandling"))
+        throw DecodingError.typeMismatch(UnionDate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDate"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .dateParseHandling(let x):
+        case .dateClass(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4163,8 +4398,8 @@ enum UnionDateParseHandling: Codable {
     }
 }
 
-// MARK: - DateParseHandling
-struct DateParseHandling: Codable {
+// MARK: - DateClass
+struct DateClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4173,11 +4408,11 @@ struct DateParseHandling: Codable {
     }
 }
 
-// MARK: DateParseHandling convenience initializers and mutators
+// MARK: DateClass convenience initializers and mutators
 
-extension DateParseHandling {
+extension DateClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DateParseHandling.self, from: data)
+        self = try newJSONDecoder().decode(DateClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4192,8 +4427,8 @@ extension DateParseHandling {
     }
 
     func with(
-    ) -> DateParseHandling {
-        return DateParseHandling(
+    ) -> DateClass {
+        return DateClass(
         )
     }
 
@@ -4206,8 +4441,8 @@ extension DateParseHandling {
     }
 }
 
-enum UnionDebugger: Codable {
-    case debugger(Debugger)
+enum UnionDateFormatter: Codable {
+    case dateFormatterClass(DateFormatterClass)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4216,17 +4451,17 @@ enum UnionDebugger: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Debugger.self) {
-            self = .debugger(x)
+        if let x = try? container.decode(DateFormatterClass.self) {
+            self = .dateFormatterClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDebugger.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDebugger"))
+        throw DecodingError.typeMismatch(UnionDateFormatter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateFormatter"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .debugger(let x):
+        case .dateFormatterClass(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4234,8 +4469,8 @@ enum UnionDebugger: Codable {
     }
 }
 
-// MARK: - Debugger
-struct Debugger: Codable {
+// MARK: - DateFormatterClass
+struct DateFormatterClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4244,11 +4479,11 @@ struct Debugger: Codable {
     }
 }
 
-// MARK: Debugger convenience initializers and mutators
+// MARK: DateFormatterClass convenience initializers and mutators
 
-extension Debugger {
+extension DateFormatterClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Debugger.self, from: data)
+        self = try newJSONDecoder().decode(DateFormatterClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4263,8 +4498,8 @@ extension Debugger {
     }
 
     func with(
-    ) -> Debugger {
-        return Debugger(
+    ) -> DateFormatterClass {
+        return DateFormatterClass(
         )
     }
 
@@ -4277,8 +4512,8 @@ extension Debugger {
     }
 }
 
-enum UnionDecimal: Codable {
-    case decimal(Decimal)
+enum UnionDateOnly: Codable {
+    case dateOnly(DateOnly)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4287,17 +4522,17 @@ enum UnionDecimal: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Decimal.self) {
-            self = .decimal(x)
+        if let x = try? container.decode(DateOnly.self) {
+            self = .dateOnly(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDecimal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecimal"))
+        throw DecodingError.typeMismatch(UnionDateOnly.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateOnly"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .decimal(let x):
+        case .dateOnly(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4305,8 +4540,8 @@ enum UnionDecimal: Codable {
     }
 }
 
-// MARK: - Decimal
-struct Decimal: Codable {
+// MARK: - DateOnly
+struct DateOnly: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4315,11 +4550,11 @@ struct Decimal: Codable {
     }
 }
 
-// MARK: Decimal convenience initializers and mutators
+// MARK: DateOnly convenience initializers and mutators
 
-extension Decimal {
+extension DateOnly {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Decimal.self, from: data)
+        self = try newJSONDecoder().decode(DateOnly.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4334,8 +4569,8 @@ extension Decimal {
     }
 
     func with(
-    ) -> Decimal {
-        return Decimal(
+    ) -> DateOnly {
+        return DateOnly(
         )
     }
 
@@ -4348,8 +4583,8 @@ extension Decimal {
     }
 }
 
-enum UnionDeclare: Codable {
-    case declare(Declare)
+enum UnionDateOnlyConverter: Codable {
+    case dateOnlyConverter(DateOnlyConverter)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4358,17 +4593,17 @@ enum UnionDeclare: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Declare.self) {
-            self = .declare(x)
+        if let x = try? container.decode(DateOnlyConverter.self) {
+            self = .dateOnlyConverter(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDeclare.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDeclare"))
+        throw DecodingError.typeMismatch(UnionDateOnlyConverter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateOnlyConverter"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .declare(let x):
+        case .dateOnlyConverter(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4376,8 +4611,8 @@ enum UnionDeclare: Codable {
     }
 }
 
-// MARK: - Declare
-struct Declare: Codable {
+// MARK: - DateOnlyConverter
+struct DateOnlyConverter: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4386,11 +4621,11 @@ struct Declare: Codable {
     }
 }
 
-// MARK: Declare convenience initializers and mutators
+// MARK: DateOnlyConverter convenience initializers and mutators
 
-extension Declare {
+extension DateOnlyConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Declare.self, from: data)
+        self = try newJSONDecoder().decode(DateOnlyConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4405,8 +4640,8 @@ extension Declare {
     }
 
     func with(
-    ) -> Declare {
-        return Declare(
+    ) -> DateOnlyConverter {
+        return DateOnlyConverter(
         )
     }
 
@@ -4419,8 +4654,8 @@ extension Declare {
     }
 }
 
-enum UnionDecltype: Codable {
-    case decltype(Decltype)
+enum UnionDateParseHandling: Codable {
+    case dateParseHandling(DateParseHandling)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4429,17 +4664,17 @@ enum UnionDecltype: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Decltype.self) {
-            self = .decltype(x)
+        if let x = try? container.decode(DateParseHandling.self) {
+            self = .dateParseHandling(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDecltype.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecltype"))
+        throw DecodingError.typeMismatch(UnionDateParseHandling.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateParseHandling"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .decltype(let x):
+        case .dateParseHandling(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4447,8 +4682,8 @@ enum UnionDecltype: Codable {
     }
 }
 
-// MARK: - Decltype
-struct Decltype: Codable {
+// MARK: - DateParseHandling
+struct DateParseHandling: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4457,11 +4692,11 @@ struct Decltype: Codable {
     }
 }
 
-// MARK: Decltype convenience initializers and mutators
+// MARK: DateParseHandling convenience initializers and mutators
 
-extension Decltype {
+extension DateParseHandling {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Decltype.self, from: data)
+        self = try newJSONDecoder().decode(DateParseHandling.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4476,8 +4711,8 @@ extension Decltype {
     }
 
     func with(
-    ) -> Decltype {
-        return Decltype(
+    ) -> DateParseHandling {
+        return DateParseHandling(
         )
     }
 
@@ -4490,8 +4725,8 @@ extension Decltype {
     }
 }
 
-enum UnionDecodeString: Codable {
-    case decodeString(DecodeString)
+enum UnionDateTime: Codable {
+    case dateTime(DateTime)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4500,17 +4735,17 @@ enum UnionDecodeString: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(DecodeString.self) {
-            self = .decodeString(x)
+        if let x = try? container.decode(DateTime.self) {
+            self = .dateTime(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDecodeString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecodeString"))
+        throw DecodingError.typeMismatch(UnionDateTime.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateTime"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .decodeString(let x):
+        case .dateTime(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4518,8 +4753,8 @@ enum UnionDecodeString: Codable {
     }
 }
 
-// MARK: - DecodeString
-struct DecodeString: Codable {
+// MARK: - DateTime
+struct DateTime: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4528,11 +4763,11 @@ struct DecodeString: Codable {
     }
 }
 
-// MARK: DecodeString convenience initializers and mutators
+// MARK: DateTime convenience initializers and mutators
 
-extension DecodeString {
+extension DateTime {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DecodeString.self, from: data)
+        self = try newJSONDecoder().decode(DateTime.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4547,8 +4782,8 @@ extension DecodeString {
     }
 
     func with(
-    ) -> DecodeString {
-        return DecodeString(
+    ) -> DateTime {
+        return DateTime(
         )
     }
 
@@ -4561,8 +4796,8 @@ extension DecodeString {
     }
 }
 
-enum UnionDef: Codable {
-    case def(Def)
+enum UnionDateTimeStyles: Codable {
+    case dateTimeStyles(DateTimeStyles)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4571,17 +4806,17 @@ enum UnionDef: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Def.self) {
-            self = .def(x)
+        if let x = try? container.decode(DateTimeStyles.self) {
+            self = .dateTimeStyles(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDef.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDef"))
+        throw DecodingError.typeMismatch(UnionDateTimeStyles.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDateTimeStyles"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .def(let x):
+        case .dateTimeStyles(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4589,8 +4824,8 @@ enum UnionDef: Codable {
     }
 }
 
-// MARK: - Def
-struct Def: Codable {
+// MARK: - DateTimeStyles
+struct DateTimeStyles: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4599,11 +4834,11 @@ struct Def: Codable {
     }
 }
 
-// MARK: Def convenience initializers and mutators
+// MARK: DateTimeStyles convenience initializers and mutators
 
-extension Def {
+extension DateTimeStyles {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Def.self, from: data)
+        self = try newJSONDecoder().decode(DateTimeStyles.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4618,8 +4853,8 @@ extension Def {
     }
 
     func with(
-    ) -> Def {
-        return Def(
+    ) -> DateTimeStyles {
+        return DateTimeStyles(
         )
     }
 
@@ -4632,8 +4867,8 @@ extension Def {
     }
 }
 
-enum UnionDel: Codable {
-    case del(Del)
+enum UnionDebugger: Codable {
+    case debugger(Debugger)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4642,17 +4877,17 @@ enum UnionDel: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Del.self) {
-            self = .del(x)
+        if let x = try? container.decode(Debugger.self) {
+            self = .debugger(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDel.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDel"))
+        throw DecodingError.typeMismatch(UnionDebugger.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDebugger"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .del(let x):
+        case .debugger(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4660,8 +4895,8 @@ enum UnionDel: Codable {
     }
 }
 
-// MARK: - Del
-struct Del: Codable {
+// MARK: - Debugger
+struct Debugger: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4670,11 +4905,11 @@ struct Del: Codable {
     }
 }
 
-// MARK: Del convenience initializers and mutators
+// MARK: Debugger convenience initializers and mutators
 
-extension Del {
+extension Debugger {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Del.self, from: data)
+        self = try newJSONDecoder().decode(Debugger.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4689,8 +4924,8 @@ extension Del {
     }
 
     func with(
-    ) -> Del {
-        return Del(
+    ) -> Debugger {
+        return Debugger(
         )
     }
 
@@ -4703,8 +4938,8 @@ extension Del {
     }
 }
 
-enum UnionDelegate: Codable {
-    case delegate(Delegate)
+enum UnionDecimal: Codable {
+    case decimal(Decimal)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4713,17 +4948,17 @@ enum UnionDelegate: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Delegate.self) {
-            self = .delegate(x)
+        if let x = try? container.decode(Decimal.self) {
+            self = .decimal(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDelegate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDelegate"))
+        throw DecodingError.typeMismatch(UnionDecimal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecimal"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .delegate(let x):
+        case .decimal(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4731,8 +4966,8 @@ enum UnionDelegate: Codable {
     }
 }
 
-// MARK: - Delegate
-struct Delegate: Codable {
+// MARK: - Decimal
+struct Decimal: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4741,11 +4976,11 @@ struct Delegate: Codable {
     }
 }
 
-// MARK: Delegate convenience initializers and mutators
+// MARK: Decimal convenience initializers and mutators
 
-extension Delegate {
+extension Decimal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Delegate.self, from: data)
+        self = try newJSONDecoder().decode(Decimal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4760,8 +4995,8 @@ extension Delegate {
     }
 
     func with(
-    ) -> Delegate {
-        return Delegate(
+    ) -> Decimal {
+        return Decimal(
         )
     }
 
@@ -4774,8 +5009,8 @@ extension Delegate {
     }
 }
 
-enum UnionDelete: Codable {
-    case delete(Delete)
+enum UnionDeclare: Codable {
+    case declare(Declare)
     case double(Double)
 
     init(from decoder: Decoder) throws {
@@ -4784,17 +5019,17 @@ enum UnionDelete: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Delete.self) {
-            self = .delete(x)
+        if let x = try? container.decode(Declare.self) {
+            self = .declare(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDelete.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDelete"))
+        throw DecodingError.typeMismatch(UnionDeclare.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDeclare"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .delete(let x):
+        case .declare(let x):
             try container.encode(x)
         case .double(let x):
             try container.encode(x)
@@ -4802,8 +5037,434 @@ enum UnionDelete: Codable {
     }
 }
 
-// MARK: - Delete
-struct Delete: Codable {
+// MARK: - Declare
+struct Declare: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Declare convenience initializers and mutators
+
+extension Declare {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Declare.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Declare {
+        return Declare(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDecltype: Codable {
+    case decltype(Decltype)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Decltype.self) {
+            self = .decltype(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDecltype.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecltype"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .decltype(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Decltype
+struct Decltype: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Decltype convenience initializers and mutators
+
+extension Decltype {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Decltype.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Decltype {
+        return Decltype(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDecodeString: Codable {
+    case decodeString(DecodeString)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(DecodeString.self) {
+            self = .decodeString(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDecodeString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDecodeString"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .decodeString(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - DecodeString
+struct DecodeString: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: DecodeString convenience initializers and mutators
+
+extension DecodeString {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(DecodeString.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> DecodeString {
+        return DecodeString(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDef: Codable {
+    case def(Def)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Def.self) {
+            self = .def(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDef.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDef"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .def(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Def
+struct Def: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Def convenience initializers and mutators
+
+extension Def {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Def.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Def {
+        return Def(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDel: Codable {
+    case del(Del)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Del.self) {
+            self = .del(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDel.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDel"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .del(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Del
+struct Del: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Del convenience initializers and mutators
+
+extension Del {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Del.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Del {
+        return Del(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDelegate: Codable {
+    case delegate(Delegate)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Delegate.self) {
+            self = .delegate(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDelegate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDelegate"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .delegate(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Delegate
+struct Delegate: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Delegate convenience initializers and mutators
+
+extension Delegate {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Delegate.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Delegate {
+        return Delegate(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDelete: Codable {
+    case delete(Delete)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Delete.self) {
+            self = .delete(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDelete.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDelete"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .delete(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Delete
+struct Delete: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4814,9 +5475,2068 @@ struct Delete: Codable {
 
 // MARK: Delete convenience initializers and mutators
 
-extension Delete {
+extension Delete {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Delete.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Delete {
+        return Delete(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDict: Codable {
+    case dict(Dict)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Dict.self) {
+            self = .dict(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDict.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDict"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .dict(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Dict
+struct Dict: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Dict convenience initializers and mutators
+
+extension Dict {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Dict.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Dict {
+        return Dict(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDictionary: Codable {
+    case dictionary(Dictionary)
+    case double(Double)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Dictionary.self) {
+            self = .dictionary(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDictionary.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDictionary"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .dictionary(let x):
+            try container.encode(x)
+        case .double(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Dictionary
+struct Dictionary: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Dictionary convenience initializers and mutators
+
+extension Dictionary {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Dictionary.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Dictionary {
+        return Dictionary(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDouble: Codable {
+    case double(Double)
+    case doubleClass(DoubleClass)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(DoubleClass.self) {
+            self = .doubleClass(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDouble.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDouble"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .doubleClass(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - DoubleClass
+struct DoubleClass: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: DoubleClass convenience initializers and mutators
+
+extension DoubleClass {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(DoubleClass.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> DoubleClass {
+        return DoubleClass(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionDynamicCast: Codable {
+    case double(Double)
+    case dynamicCast(DynamicCast)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(DynamicCast.self) {
+            self = .dynamicCast(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionDynamicCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDynamicCast"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .dynamicCast(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - DynamicCast
+struct DynamicCast: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: DynamicCast convenience initializers and mutators
+
+extension DynamicCast {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(DynamicCast.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> DynamicCast {
+        return DynamicCast(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionElif: Codable {
+    case double(Double)
+    case elif(Elif)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Elif.self) {
+            self = .elif(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionElif.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionElif"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .elif(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Elif
+struct Elif: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Elif convenience initializers and mutators
+
+extension Elif {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Elif.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Elif {
+        return Elif(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionUnion: Codable {
+    case double(Double)
+    case empty(Empty)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Empty.self) {
+            self = .empty(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionUnion"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .empty(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Empty
+struct Empty: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Empty convenience initializers and mutators
+
+extension Empty {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Empty.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Empty {
+        return Empty(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionEncodeQuickType: Codable {
+    case double(Double)
+    case encodeQuickType(EncodeQuickType)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(EncodeQuickType.self) {
+            self = .encodeQuickType(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionEncodeQuickType.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEncodeQuickType"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .encodeQuickType(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - EncodeQuickType
+struct EncodeQuickType: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: EncodeQuickType convenience initializers and mutators
+
+extension EncodeQuickType {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(EncodeQuickType.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> EncodeQuickType {
+        return EncodeQuickType(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionEnumValues: Codable {
+    case double(Double)
+    case enumValues(EnumValues)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(EnumValues.self) {
+            self = .enumValues(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionEnumValues.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEnumValues"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .enumValues(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - EnumValues
+struct EnumValues: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: EnumValues convenience initializers and mutators
+
+extension EnumValues {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(EnumValues.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> EnumValues {
+        return EnumValues(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionEqualityContract: Codable {
+    case double(Double)
+    case equalityContract(EqualityContract)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(EqualityContract.self) {
+            self = .equalityContract(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionEqualityContract.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEqualityContract"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .equalityContract(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - EqualityContract
+struct EqualityContract: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: EqualityContract convenience initializers and mutators
+
+extension EqualityContract {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(EqualityContract.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> EqualityContract {
+        return EqualityContract(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionEvent: Codable {
+    case double(Double)
+    case event(Event)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Event.self) {
+            self = .event(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionEvent.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEvent"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .event(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Event
+struct Event: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Event convenience initializers and mutators
+
+extension Event {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Event.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Event {
+        return Event(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExcept: Codable {
+    case double(Double)
+    case except(Except)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Except.self) {
+            self = .except(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExcept.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExcept"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .except(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Except
+struct Except: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Except convenience initializers and mutators
+
+extension Except {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Except.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Except {
+        return Except(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionException: Codable {
+    case double(Double)
+    case exception(Exception)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Exception.self) {
+            self = .exception(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionException.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionException"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .exception(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Exception
+struct Exception: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Exception convenience initializers and mutators
+
+extension Exception {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Exception.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Exception {
+        return Exception(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExplicit: Codable {
+    case double(Double)
+    case explicit(Explicit)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Explicit.self) {
+            self = .explicit(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExplicit.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExplicit"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .explicit(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Explicit
+struct Explicit: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Explicit convenience initializers and mutators
+
+extension Explicit {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Explicit.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Explicit {
+        return Explicit(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExport: Codable {
+    case double(Double)
+    case export(Export)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Export.self) {
+            self = .export(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExport.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExport"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .export(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Export
+struct Export: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Export convenience initializers and mutators
+
+extension Export {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Export.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Export {
+        return Export(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExposing: Codable {
+    case double(Double)
+    case exposing(Exposing)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Exposing.self) {
+            self = .exposing(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExposing.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExposing"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .exposing(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Exposing
+struct Exposing: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Exposing convenience initializers and mutators
+
+extension Exposing {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Exposing.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Exposing {
+        return Exposing(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExtends: Codable {
+    case double(Double)
+    case extends(Extends)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Extends.self) {
+            self = .extends(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExtends.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExtends"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .extends(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Extends
+struct Extends: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Extends convenience initializers and mutators
+
+extension Extends {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Extends.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Extends {
+        return Extends(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionExtern: Codable {
+    case double(Double)
+    case extern(Extern)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Extern.self) {
+            self = .extern(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionExtern.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExtern"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .extern(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Extern
+struct Extern: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Extern convenience initializers and mutators
+
+extension Extern {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Extern.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Extern {
+        return Extern(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFinally: Codable {
+    case double(Double)
+    case finally(Finally)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Finally.self) {
+            self = .finally(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFinally.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFinally"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .finally(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Finally
+struct Finally: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Finally convenience initializers and mutators
+
+extension Finally {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Finally.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Finally {
+        return Finally(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFixed: Codable {
+    case double(Double)
+    case fixed(Fixed)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Fixed.self) {
+            self = .fixed(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFixed.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFixed"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .fixed(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Fixed
+struct Fixed: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Fixed convenience initializers and mutators
+
+extension Fixed {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Fixed.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Fixed {
+        return Fixed(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFloat: Codable {
+    case double(Double)
+    case float(Float)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Float.self) {
+            self = .float(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFloat.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFloat"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .float(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Float
+struct Float: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Float convenience initializers and mutators
+
+extension Float {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Float.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Float {
+        return Float(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionForeach: Codable {
+    case double(Double)
+    case foreach(Foreach)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Foreach.self) {
+            self = .foreach(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionForeach.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionForeach"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .foreach(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Foreach
+struct Foreach: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Foreach convenience initializers and mutators
+
+extension Foreach {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Foreach.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Foreach {
+        return Foreach(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFormatException: Codable {
+    case double(Double)
+    case formatException(FormatException)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(FormatException.self) {
+            self = .formatException(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFormatException.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFormatException"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .formatException(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - FormatException
+struct FormatException: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: FormatException convenience initializers and mutators
+
+extension FormatException {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(FormatException.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> FormatException {
+        return FormatException(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFriend: Codable {
+    case double(Double)
+    case friend(Friend)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Friend.self) {
+            self = .friend(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFriend.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFriend"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .friend(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Friend
+struct Friend: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Friend convenience initializers and mutators
+
+extension Friend {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Friend.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Friend {
+        return Friend(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFrom: Codable {
+    case double(Double)
+    case from(From)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(From.self) {
+            self = .from(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFrom.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFrom"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .from(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - From
+struct From: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: From convenience initializers and mutators
+
+extension From {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(From.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> From {
+        return From(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFromJSON: Codable {
+    case double(Double)
+    case fromJSON(FromJSON)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(FromJSON.self) {
+            self = .fromJSON(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFromJSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFromJSON"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .fromJSON(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - FromJSON
+struct FromJSON: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: FromJSON convenience initializers and mutators
+
+extension FromJSON {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(FromJSON.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> FromJSON {
+        return FromJSON(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionFunction: Codable {
+    case double(Double)
+    case function(Function)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Function.self) {
+            self = .function(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionFunction.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFunction"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .function(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Function
+struct Function: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Function convenience initializers and mutators
+
+extension Function {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Function.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Function {
+        return Function(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionGlobal: Codable {
+    case double(Double)
+    case global(Global)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Global.self) {
+            self = .global(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionGlobal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGlobal"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .global(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Global
+struct Global: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Global convenience initializers and mutators
+
+extension Global {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Global.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Global {
+        return Global(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionGo: Codable {
+    case double(Double)
+    case go(Go)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Go.self) {
+            self = .go(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionGo.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGo"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .go(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Go
+struct Go: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Go convenience initializers and mutators
+
+extension Go {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Go.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Go {
+        return Go(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionGoto: Codable {
+    case double(Double)
+    case goto(Goto)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Goto.self) {
+            self = .goto(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionGoto.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGoto"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .goto(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Goto
+struct Goto: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Goto convenience initializers and mutators
+
+extension Goto {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Delete.self, from: data)
+        self = try newJSONDecoder().decode(Goto.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4831,8 +7551,8 @@ extension Delete {
     }
 
     func with(
-    ) -> Delete {
-        return Delete(
+    ) -> Goto {
+        return Goto(
         )
     }
 
@@ -4845,9 +7565,9 @@ extension Delete {
     }
 }
 
-enum UnionDict: Codable {
-    case dict(Dict)
+enum UnionHasOwnProperty: Codable {
     case double(Double)
+    case hasOwnProperty(HasOwnProperty)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -4855,26 +7575,97 @@ enum UnionDict: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Dict.self) {
-            self = .dict(x)
+        if let x = try? container.decode(HasOwnProperty.self) {
+            self = .hasOwnProperty(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDict.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDict"))
+        throw DecodingError.typeMismatch(UnionHasOwnProperty.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionHasOwnProperty"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .dict(let x):
+        case .double(let x):
+            try container.encode(x)
+        case .hasOwnProperty(let x):
             try container.encode(x)
+        }
+    }
+}
+
+// MARK: - HasOwnProperty
+struct HasOwnProperty: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: HasOwnProperty convenience initializers and mutators
+
+extension HasOwnProperty {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(HasOwnProperty.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> HasOwnProperty {
+        return HasOwnProperty(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionHashCode: Codable {
+    case double(Double)
+    case hashCode(HashCode)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(HashCode.self) {
+            self = .hashCode(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionHashCode.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionHashCode"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
         case .double(let x):
             try container.encode(x)
+        case .hashCode(let x):
+            try container.encode(x)
         }
     }
 }
 
-// MARK: - Dict
-struct Dict: Codable {
+// MARK: - HashCode
+struct HashCode: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4883,11 +7674,11 @@ struct Dict: Codable {
     }
 }
 
-// MARK: Dict convenience initializers and mutators
+// MARK: HashCode convenience initializers and mutators
 
-extension Dict {
+extension HashCode {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Dict.self, from: data)
+        self = try newJSONDecoder().decode(HashCode.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4902,8 +7693,8 @@ extension Dict {
     }
 
     func with(
-    ) -> Dict {
-        return Dict(
+    ) -> HashCode {
+        return HashCode(
         )
     }
 
@@ -4916,9 +7707,9 @@ extension Dict {
     }
 }
 
-enum UnionDictionary: Codable {
-    case dictionary(Dictionary)
+enum UnionID: Codable {
     case double(Double)
+    case id(ID)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -4926,26 +7717,97 @@ enum UnionDictionary: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Dictionary.self) {
-            self = .dictionary(x)
+        if let x = try? container.decode(ID.self) {
+            self = .id(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDictionary.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDictionary"))
+        throw DecodingError.typeMismatch(UnionID.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionID"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .dictionary(let x):
+        case .double(let x):
+            try container.encode(x)
+        case .id(let x):
             try container.encode(x)
+        }
+    }
+}
+
+// MARK: - ID
+struct ID: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: ID convenience initializers and mutators
+
+extension ID {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(ID.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> ID {
+        return ID(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionImaginery: Codable {
+    case double(Double)
+    case imaginery(Imaginery)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Imaginery.self) {
+            self = .imaginery(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionImaginery.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImaginery"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
         case .double(let x):
             try container.encode(x)
+        case .imaginery(let x):
+            try container.encode(x)
         }
     }
 }
 
-// MARK: - Dictionary
-struct Dictionary: Codable {
+// MARK: - Imaginery
+struct Imaginery: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -4954,11 +7816,11 @@ struct Dictionary: Codable {
     }
 }
 
-// MARK: Dictionary convenience initializers and mutators
+// MARK: Imaginery convenience initializers and mutators
 
-extension Dictionary {
+extension Imaginery {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Dictionary.self, from: data)
+        self = try newJSONDecoder().decode(Imaginery.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4973,8 +7835,8 @@ extension Dictionary {
     }
 
     func with(
-    ) -> Dictionary {
-        return Dictionary(
+    ) -> Imaginery {
+        return Imaginery(
         )
     }
 
@@ -4987,9 +7849,9 @@ extension Dictionary {
     }
 }
 
-enum UnionDouble: Codable {
+enum UnionIMP: Codable {
     case double(Double)
-    case doubleClass(DoubleClass)
+    case imp(Imp)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -4997,11 +7859,11 @@ enum UnionDouble: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(DoubleClass.self) {
-            self = .doubleClass(x)
+        if let x = try? container.decode(Imp.self) {
+            self = .imp(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDouble.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDouble"))
+        throw DecodingError.typeMismatch(UnionIMP.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionIMP"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5009,14 +7871,14 @@ enum UnionDouble: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .doubleClass(let x):
+        case .imp(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - DoubleClass
-struct DoubleClass: Codable {
+// MARK: - Imp
+struct Imp: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5025,11 +7887,11 @@ struct DoubleClass: Codable {
     }
 }
 
-// MARK: DoubleClass convenience initializers and mutators
+// MARK: Imp convenience initializers and mutators
 
-extension DoubleClass {
+extension Imp {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DoubleClass.self, from: data)
+        self = try newJSONDecoder().decode(Imp.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5044,8 +7906,8 @@ extension DoubleClass {
     }
 
     func with(
-    ) -> DoubleClass {
-        return DoubleClass(
+    ) -> Imp {
+        return Imp(
         )
     }
 
@@ -5058,9 +7920,9 @@ extension DoubleClass {
     }
 }
 
-enum UnionDynamicCast: Codable {
+enum UnionImplements: Codable {
     case double(Double)
-    case dynamicCast(DynamicCast)
+    case implements(Implements)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5068,11 +7930,11 @@ enum UnionDynamicCast: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(DynamicCast.self) {
-            self = .dynamicCast(x)
+        if let x = try? container.decode(Implements.self) {
+            self = .implements(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionDynamicCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionDynamicCast"))
+        throw DecodingError.typeMismatch(UnionImplements.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImplements"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5080,14 +7942,14 @@ enum UnionDynamicCast: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .dynamicCast(let x):
+        case .implements(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - DynamicCast
-struct DynamicCast: Codable {
+// MARK: - Implements
+struct Implements: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5096,11 +7958,11 @@ struct DynamicCast: Codable {
     }
 }
 
-// MARK: DynamicCast convenience initializers and mutators
+// MARK: Implements convenience initializers and mutators
 
-extension DynamicCast {
+extension Implements {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DynamicCast.self, from: data)
+        self = try newJSONDecoder().decode(Implements.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5115,8 +7977,8 @@ extension DynamicCast {
     }
 
     func with(
-    ) -> DynamicCast {
-        return DynamicCast(
+    ) -> Implements {
+        return Implements(
         )
     }
 
@@ -5129,9 +7991,9 @@ extension DynamicCast {
     }
 }
 
-enum UnionElif: Codable {
+enum UnionImplicit: Codable {
     case double(Double)
-    case elif(Elif)
+    case implicit(Implicit)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5139,11 +8001,11 @@ enum UnionElif: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Elif.self) {
-            self = .elif(x)
+        if let x = try? container.decode(Implicit.self) {
+            self = .implicit(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionElif.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionElif"))
+        throw DecodingError.typeMismatch(UnionImplicit.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImplicit"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5151,14 +8013,14 @@ enum UnionElif: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .elif(let x):
+        case .implicit(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Elif
-struct Elif: Codable {
+// MARK: - Implicit
+struct Implicit: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5167,11 +8029,11 @@ struct Elif: Codable {
     }
 }
 
-// MARK: Elif convenience initializers and mutators
+// MARK: Implicit convenience initializers and mutators
 
-extension Elif {
+extension Implicit {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Elif.self, from: data)
+        self = try newJSONDecoder().decode(Implicit.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5186,8 +8048,8 @@ extension Elif {
     }
 
     func with(
-    ) -> Elif {
-        return Elif(
+    ) -> Implicit {
+        return Implicit(
         )
     }
 
@@ -5200,9 +8062,9 @@ extension Elif {
     }
 }
 
-enum UnionUnion: Codable {
+enum UnionInline: Codable {
     case double(Double)
-    case empty(Empty)
+    case inline(Inline)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5210,11 +8072,11 @@ enum UnionUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Empty.self) {
-            self = .empty(x)
+        if let x = try? container.decode(Inline.self) {
+            self = .inline(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionUnion"))
+        throw DecodingError.typeMismatch(UnionInline.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInline"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5222,14 +8084,14 @@ enum UnionUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .empty(let x):
+        case .inline(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Empty
-struct Empty: Codable {
+// MARK: - Inline
+struct Inline: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5238,11 +8100,11 @@ struct Empty: Codable {
     }
 }
 
-// MARK: Empty convenience initializers and mutators
+// MARK: Inline convenience initializers and mutators
 
-extension Empty {
+extension Inline {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Empty.self, from: data)
+        self = try newJSONDecoder().decode(Inline.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5257,8 +8119,8 @@ extension Empty {
     }
 
     func with(
-    ) -> Empty {
-        return Empty(
+    ) -> Inline {
+        return Inline(
         )
     }
 
@@ -5271,9 +8133,9 @@ extension Empty {
     }
 }
 
-enum UnionEncodeQuickType: Codable {
+enum UnionInstanceof: Codable {
     case double(Double)
-    case encodeQuickType(EncodeQuickType)
+    case instanceof(Instanceof)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5281,11 +8143,11 @@ enum UnionEncodeQuickType: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(EncodeQuickType.self) {
-            self = .encodeQuickType(x)
+        if let x = try? container.decode(Instanceof.self) {
+            self = .instanceof(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionEncodeQuickType.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEncodeQuickType"))
+        throw DecodingError.typeMismatch(UnionInstanceof.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInstanceof"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5293,14 +8155,14 @@ enum UnionEncodeQuickType: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .encodeQuickType(let x):
+        case .instanceof(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - EncodeQuickType
-struct EncodeQuickType: Codable {
+// MARK: - Instanceof
+struct Instanceof: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5309,11 +8171,11 @@ struct EncodeQuickType: Codable {
     }
 }
 
-// MARK: EncodeQuickType convenience initializers and mutators
+// MARK: Instanceof convenience initializers and mutators
 
-extension EncodeQuickType {
+extension Instanceof {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(EncodeQuickType.self, from: data)
+        self = try newJSONDecoder().decode(Instanceof.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5328,8 +8190,8 @@ extension EncodeQuickType {
     }
 
     func with(
-    ) -> EncodeQuickType {
-        return EncodeQuickType(
+    ) -> Instanceof {
+        return Instanceof(
         )
     }
 
@@ -5342,9 +8204,9 @@ extension EncodeQuickType {
     }
 }
 
-enum UnionEvent: Codable {
+enum UnionInt: Codable {
     case double(Double)
-    case event(Event)
+    case intClass(IntClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5352,11 +8214,11 @@ enum UnionEvent: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Event.self) {
-            self = .event(x)
+        if let x = try? container.decode(IntClass.self) {
+            self = .intClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionEvent.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionEvent"))
+        throw DecodingError.typeMismatch(UnionInt.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInt"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5364,14 +8226,14 @@ enum UnionEvent: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .event(let x):
+        case .intClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Event
-struct Event: Codable {
+// MARK: - IntClass
+struct IntClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5380,11 +8242,11 @@ struct Event: Codable {
     }
 }
 
-// MARK: Event convenience initializers and mutators
+// MARK: IntClass convenience initializers and mutators
 
-extension Event {
+extension IntClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Event.self, from: data)
+        self = try newJSONDecoder().decode(IntClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5399,8 +8261,8 @@ extension Event {
     }
 
     func with(
-    ) -> Event {
-        return Event(
+    ) -> IntClass {
+        return IntClass(
         )
     }
 
@@ -5413,9 +8275,9 @@ extension Event {
     }
 }
 
-enum UnionExcept: Codable {
+enum UnionInterface: Codable {
     case double(Double)
-    case except(Except)
+    case interface(Interface)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5423,11 +8285,11 @@ enum UnionExcept: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Except.self) {
-            self = .except(x)
+        if let x = try? container.decode(Interface.self) {
+            self = .interface(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExcept.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExcept"))
+        throw DecodingError.typeMismatch(UnionInterface.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInterface"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5435,14 +8297,14 @@ enum UnionExcept: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .except(let x):
+        case .interface(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Except
-struct Except: Codable {
+// MARK: - Interface
+struct Interface: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5451,11 +8313,11 @@ struct Except: Codable {
     }
 }
 
-// MARK: Except convenience initializers and mutators
+// MARK: Interface convenience initializers and mutators
 
-extension Except {
+extension Interface {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Except.self, from: data)
+        self = try newJSONDecoder().decode(Interface.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5470,8 +8332,8 @@ extension Except {
     }
 
     func with(
-    ) -> Except {
-        return Except(
+    ) -> Interface {
+        return Interface(
         )
     }
 
@@ -5484,9 +8346,9 @@ extension Except {
     }
 }
 
-enum UnionException: Codable {
+enum UnionISODateTimeOffsetConverter: Codable {
     case double(Double)
-    case exception(Exception)
+    case isoDateTimeOffsetConverter(ISODateTimeOffsetConverter)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5494,11 +8356,11 @@ enum UnionException: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Exception.self) {
-            self = .exception(x)
+        if let x = try? container.decode(ISODateTimeOffsetConverter.self) {
+            self = .isoDateTimeOffsetConverter(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionException.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionException"))
+        throw DecodingError.typeMismatch(UnionISODateTimeOffsetConverter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionISODateTimeOffsetConverter"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5506,14 +8368,14 @@ enum UnionException: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .exception(let x):
+        case .isoDateTimeOffsetConverter(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Exception
-struct Exception: Codable {
+// MARK: - ISODateTimeOffsetConverter
+struct ISODateTimeOffsetConverter: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5522,11 +8384,11 @@ struct Exception: Codable {
     }
 }
 
-// MARK: Exception convenience initializers and mutators
+// MARK: ISODateTimeOffsetConverter convenience initializers and mutators
 
-extension Exception {
+extension ISODateTimeOffsetConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Exception.self, from: data)
+        self = try newJSONDecoder().decode(ISODateTimeOffsetConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5541,8 +8403,8 @@ extension Exception {
     }
 
     func with(
-    ) -> Exception {
-        return Exception(
+    ) -> ISODateTimeOffsetConverter {
+        return ISODateTimeOffsetConverter(
         )
     }
 
@@ -5555,9 +8417,9 @@ extension Exception {
     }
 }
 
-enum UnionExplicit: Codable {
+enum UnionIterable: Codable {
     case double(Double)
-    case explicit(Explicit)
+    case iterable(Iterable)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5565,11 +8427,11 @@ enum UnionExplicit: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Explicit.self) {
-            self = .explicit(x)
+        if let x = try? container.decode(Iterable.self) {
+            self = .iterable(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExplicit.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExplicit"))
+        throw DecodingError.typeMismatch(UnionIterable.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionIterable"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5577,14 +8439,14 @@ enum UnionExplicit: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .explicit(let x):
+        case .iterable(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Explicit
-struct Explicit: Codable {
+// MARK: - Iterable
+struct Iterable: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5593,11 +8455,11 @@ struct Explicit: Codable {
     }
 }
 
-// MARK: Explicit convenience initializers and mutators
+// MARK: Iterable convenience initializers and mutators
 
-extension Explicit {
+extension Iterable {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Explicit.self, from: data)
+        self = try newJSONDecoder().decode(Iterable.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5612,8 +8474,8 @@ extension Explicit {
     }
 
     func with(
-    ) -> Explicit {
-        return Explicit(
+    ) -> Iterable {
+        return Iterable(
         )
     }
 
@@ -5626,9 +8488,9 @@ extension Explicit {
     }
 }
 
-enum UnionExport: Codable {
+enum UnionJdec: Codable {
     case double(Double)
-    case export(Export)
+    case jdec(Jdec)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5636,11 +8498,11 @@ enum UnionExport: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Export.self) {
-            self = .export(x)
+        if let x = try? container.decode(Jdec.self) {
+            self = .jdec(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExport.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExport"))
+        throw DecodingError.typeMismatch(UnionJdec.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJdec"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5648,14 +8510,14 @@ enum UnionExport: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .export(let x):
+        case .jdec(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Export
-struct Export: Codable {
+// MARK: - Jdec
+struct Jdec: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5664,11 +8526,11 @@ struct Export: Codable {
     }
 }
 
-// MARK: Export convenience initializers and mutators
+// MARK: Jdec convenience initializers and mutators
 
-extension Export {
+extension Jdec {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Export.self, from: data)
+        self = try newJSONDecoder().decode(Jdec.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5683,8 +8545,8 @@ extension Export {
     }
 
     func with(
-    ) -> Export {
-        return Export(
+    ) -> Jdec {
+        return Jdec(
         )
     }
 
@@ -5697,9 +8559,9 @@ extension Export {
     }
 }
 
-enum UnionExposing: Codable {
+enum UnionJenc: Codable {
     case double(Double)
-    case exposing(Exposing)
+    case jenc(Jenc)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5707,11 +8569,11 @@ enum UnionExposing: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Exposing.self) {
-            self = .exposing(x)
+        if let x = try? container.decode(Jenc.self) {
+            self = .jenc(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExposing.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExposing"))
+        throw DecodingError.typeMismatch(UnionJenc.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJenc"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5719,14 +8581,14 @@ enum UnionExposing: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .exposing(let x):
+        case .jenc(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Exposing
-struct Exposing: Codable {
+// MARK: - Jenc
+struct Jenc: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5735,11 +8597,11 @@ struct Exposing: Codable {
     }
 }
 
-// MARK: Exposing convenience initializers and mutators
+// MARK: Jenc convenience initializers and mutators
 
-extension Exposing {
+extension Jenc {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Exposing.self, from: data)
+        self = try newJSONDecoder().decode(Jenc.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5754,8 +8616,8 @@ extension Exposing {
     }
 
     func with(
-    ) -> Exposing {
-        return Exposing(
+    ) -> Jenc {
+        return Jenc(
         )
     }
 
@@ -5768,9 +8630,9 @@ extension Exposing {
     }
 }
 
-enum UnionExtends: Codable {
+enum UnionJpipe: Codable {
     case double(Double)
-    case extends(Extends)
+    case jpipe(Jpipe)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5778,11 +8640,11 @@ enum UnionExtends: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Extends.self) {
-            self = .extends(x)
+        if let x = try? container.decode(Jpipe.self) {
+            self = .jpipe(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExtends.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExtends"))
+        throw DecodingError.typeMismatch(UnionJpipe.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJpipe"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5790,14 +8652,14 @@ enum UnionExtends: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .extends(let x):
+        case .jpipe(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Extends
-struct Extends: Codable {
+// MARK: - Jpipe
+struct Jpipe: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5806,11 +8668,11 @@ struct Extends: Codable {
     }
 }
 
-// MARK: Extends convenience initializers and mutators
+// MARK: Jpipe convenience initializers and mutators
 
-extension Extends {
+extension Jpipe {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Extends.self, from: data)
+        self = try newJSONDecoder().decode(Jpipe.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5825,8 +8687,8 @@ extension Extends {
     }
 
     func with(
-    ) -> Extends {
-        return Extends(
+    ) -> Jpipe {
+        return Jpipe(
         )
     }
 
@@ -5839,9 +8701,9 @@ extension Extends {
     }
 }
 
-enum UnionExtern: Codable {
+enum UnionJSONAny: Codable {
     case double(Double)
-    case extern(Extern)
+    case jsonAnyClass(JSONAnyClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5849,11 +8711,11 @@ enum UnionExtern: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Extern.self) {
-            self = .extern(x)
+        if let x = try? container.decode(JSONAnyClass.self) {
+            self = .jsonAnyClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionExtern.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionExtern"))
+        throw DecodingError.typeMismatch(UnionJSONAny.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONAny"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5861,14 +8723,14 @@ enum UnionExtern: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .extern(let x):
+        case .jsonAnyClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Extern
-struct Extern: Codable {
+// MARK: - JSONAnyClass
+struct JSONAnyClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5877,11 +8739,11 @@ struct Extern: Codable {
     }
 }
 
-// MARK: Extern convenience initializers and mutators
+// MARK: JSONAnyClass convenience initializers and mutators
 
-extension Extern {
+extension JSONAnyClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Extern.self, from: data)
+        self = try newJSONDecoder().decode(JSONAnyClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5896,8 +8758,8 @@ extension Extern {
     }
 
     func with(
-    ) -> Extern {
-        return Extern(
+    ) -> JSONAnyClass {
+        return JSONAnyClass(
         )
     }
 
@@ -5910,9 +8772,9 @@ extension Extern {
     }
 }
 
-enum UnionFinally: Codable {
+enum UnionJSONCodingKey: Codable {
     case double(Double)
-    case finally(Finally)
+    case jsonCodingKeyClass(JSONCodingKeyClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5920,11 +8782,11 @@ enum UnionFinally: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Finally.self) {
-            self = .finally(x)
+        if let x = try? container.decode(JSONCodingKeyClass.self) {
+            self = .jsonCodingKeyClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFinally.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFinally"))
+        throw DecodingError.typeMismatch(UnionJSONCodingKey.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONCodingKey"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -5932,14 +8794,14 @@ enum UnionFinally: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .finally(let x):
+        case .jsonCodingKeyClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Finally
-struct Finally: Codable {
+// MARK: - JSONCodingKeyClass
+struct JSONCodingKeyClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -5948,11 +8810,11 @@ struct Finally: Codable {
     }
 }
 
-// MARK: Finally convenience initializers and mutators
+// MARK: JSONCodingKeyClass convenience initializers and mutators
 
-extension Finally {
+extension JSONCodingKeyClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Finally.self, from: data)
+        self = try newJSONDecoder().decode(JSONCodingKeyClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5967,8 +8829,8 @@ extension Finally {
     }
 
     func with(
-    ) -> Finally {
-        return Finally(
+    ) -> JSONCodingKeyClass {
+        return JSONCodingKeyClass(
         )
     }
 
@@ -5981,9 +8843,9 @@ extension Finally {
     }
 }
 
-enum UnionFixed: Codable {
+enum UnionJSONConverter: Codable {
     case double(Double)
-    case fixed(Fixed)
+    case jsonConverter(JSONConverter)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -5991,11 +8853,11 @@ enum UnionFixed: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Fixed.self) {
-            self = .fixed(x)
+        if let x = try? container.decode(JSONConverter.self) {
+            self = .jsonConverter(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFixed.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFixed"))
+        throw DecodingError.typeMismatch(UnionJSONConverter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONConverter"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6003,14 +8865,14 @@ enum UnionFixed: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .fixed(let x):
+        case .jsonConverter(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Fixed
-struct Fixed: Codable {
+// MARK: - JSONConverter
+struct JSONConverter: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6019,11 +8881,11 @@ struct Fixed: Codable {
     }
 }
 
-// MARK: Fixed convenience initializers and mutators
+// MARK: JSONConverter convenience initializers and mutators
 
-extension Fixed {
+extension JSONConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Fixed.self, from: data)
+        self = try newJSONDecoder().decode(JSONConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6038,8 +8900,8 @@ extension Fixed {
     }
 
     func with(
-    ) -> Fixed {
-        return Fixed(
+    ) -> JSONConverter {
+        return JSONConverter(
         )
     }
 
@@ -6052,9 +8914,9 @@ extension Fixed {
     }
 }
 
-enum UnionFloat: Codable {
+enum UnionJSONDecoder: Codable {
     case double(Double)
-    case float(Float)
+    case jsonDecoderClass(JSONDecoderClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6062,11 +8924,11 @@ enum UnionFloat: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Float.self) {
-            self = .float(x)
+        if let x = try? container.decode(JSONDecoderClass.self) {
+            self = .jsonDecoderClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFloat.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFloat"))
+        throw DecodingError.typeMismatch(UnionJSONDecoder.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONDecoder"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6074,14 +8936,14 @@ enum UnionFloat: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .float(let x):
+        case .jsonDecoderClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Float
-struct Float: Codable {
+// MARK: - JSONDecoderClass
+struct JSONDecoderClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6090,11 +8952,11 @@ struct Float: Codable {
     }
 }
 
-// MARK: Float convenience initializers and mutators
+// MARK: JSONDecoderClass convenience initializers and mutators
 
-extension Float {
+extension JSONDecoderClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Float.self, from: data)
+        self = try newJSONDecoder().decode(JSONDecoderClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6109,8 +8971,8 @@ extension Float {
     }
 
     func with(
-    ) -> Float {
-        return Float(
+    ) -> JSONDecoderClass {
+        return JSONDecoderClass(
         )
     }
 
@@ -6123,9 +8985,9 @@ extension Float {
     }
 }
 
-enum UnionForeach: Codable {
+enum UnionJSONEncoder: Codable {
     case double(Double)
-    case foreach(Foreach)
+    case jsonEncoderClass(JSONEncoderClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6133,11 +8995,11 @@ enum UnionForeach: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Foreach.self) {
-            self = .foreach(x)
+        if let x = try? container.decode(JSONEncoderClass.self) {
+            self = .jsonEncoderClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionForeach.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionForeach"))
+        throw DecodingError.typeMismatch(UnionJSONEncoder.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONEncoder"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6145,14 +9007,14 @@ enum UnionForeach: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .foreach(let x):
+        case .jsonEncoderClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Foreach
-struct Foreach: Codable {
+// MARK: - JSONEncoderClass
+struct JSONEncoderClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6161,11 +9023,11 @@ struct Foreach: Codable {
     }
 }
 
-// MARK: Foreach convenience initializers and mutators
+// MARK: JSONEncoderClass convenience initializers and mutators
 
-extension Foreach {
+extension JSONEncoderClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Foreach.self, from: data)
+        self = try newJSONDecoder().decode(JSONEncoderClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6180,8 +9042,8 @@ extension Foreach {
     }
 
     func with(
-    ) -> Foreach {
-        return Foreach(
+    ) -> JSONEncoderClass {
+        return JSONEncoderClass(
         )
     }
 
@@ -6194,9 +9056,9 @@ extension Foreach {
     }
 }
 
-enum UnionFriend: Codable {
+enum UnionJSONException: Codable {
     case double(Double)
-    case friend(Friend)
+    case jsonException(JSONException)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6204,11 +9066,11 @@ enum UnionFriend: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Friend.self) {
-            self = .friend(x)
+        if let x = try? container.decode(JSONException.self) {
+            self = .jsonException(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFriend.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFriend"))
+        throw DecodingError.typeMismatch(UnionJSONException.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONException"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6216,14 +9078,14 @@ enum UnionFriend: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .friend(let x):
+        case .jsonException(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Friend
-struct Friend: Codable {
+// MARK: - JSONException
+struct JSONException: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6232,11 +9094,11 @@ struct Friend: Codable {
     }
 }
 
-// MARK: Friend convenience initializers and mutators
+// MARK: JSONException convenience initializers and mutators
 
-extension Friend {
+extension JSONException {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Friend.self, from: data)
+        self = try newJSONDecoder().decode(JSONException.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6251,8 +9113,8 @@ extension Friend {
     }
 
     func with(
-    ) -> Friend {
-        return Friend(
+    ) -> JSONException {
+        return JSONException(
         )
     }
 
@@ -6265,9 +9127,9 @@ extension Friend {
     }
 }
 
-enum UnionFrom: Codable {
+enum UnionJSONGenerator: Codable {
     case double(Double)
-    case from(From)
+    case jsonGenerator(JSONGenerator)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6275,11 +9137,11 @@ enum UnionFrom: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(From.self) {
-            self = .from(x)
+        if let x = try? container.decode(JSONGenerator.self) {
+            self = .jsonGenerator(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFrom.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFrom"))
+        throw DecodingError.typeMismatch(UnionJSONGenerator.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONGenerator"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6287,14 +9149,14 @@ enum UnionFrom: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .from(let x):
+        case .jsonGenerator(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - From
-struct From: Codable {
+// MARK: - JSONGenerator
+struct JSONGenerator: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6303,11 +9165,11 @@ struct From: Codable {
     }
 }
 
-// MARK: From convenience initializers and mutators
+// MARK: JSONGenerator convenience initializers and mutators
 
-extension From {
+extension JSONGenerator {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(From.self, from: data)
+        self = try newJSONDecoder().decode(JSONGenerator.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6322,8 +9184,8 @@ extension From {
     }
 
     func with(
-    ) -> From {
-        return From(
+    ) -> JSONGenerator {
+        return JSONGenerator(
         )
     }
 
@@ -6336,9 +9198,9 @@ extension From {
     }
 }
 
-enum UnionFromJSON: Codable {
+enum UnionJSONNode: Codable {
     case double(Double)
-    case fromJSON(FromJSON)
+    case jsonNode(JSONNode)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6346,11 +9208,11 @@ enum UnionFromJSON: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(FromJSON.self) {
-            self = .fromJSON(x)
+        if let x = try? container.decode(JSONNode.self) {
+            self = .jsonNode(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFromJSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFromJSON"))
+        throw DecodingError.typeMismatch(UnionJSONNode.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONNode"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6358,14 +9220,14 @@ enum UnionFromJSON: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .fromJSON(let x):
+        case .jsonNode(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - FromJSON
-struct FromJSON: Codable {
+// MARK: - JSONNode
+struct JSONNode: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6374,11 +9236,11 @@ struct FromJSON: Codable {
     }
 }
 
-// MARK: FromJSON convenience initializers and mutators
+// MARK: JSONNode convenience initializers and mutators
 
-extension FromJSON {
+extension JSONNode {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(FromJSON.self, from: data)
+        self = try newJSONDecoder().decode(JSONNode.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6393,8 +9255,8 @@ extension FromJSON {
     }
 
     func with(
-    ) -> FromJSON {
-        return FromJSON(
+    ) -> JSONNode {
+        return JSONNode(
         )
     }
 
@@ -6407,9 +9269,9 @@ extension FromJSON {
     }
 }
 
-enum UnionFunction: Codable {
+enum UnionJSONNull: Codable {
     case double(Double)
-    case function(Function)
+    case jsonNullClass(JSONNullClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6417,11 +9279,11 @@ enum UnionFunction: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Function.self) {
-            self = .function(x)
+        if let x = try? container.decode(JSONNullClass.self) {
+            self = .jsonNullClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFunction.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFunction"))
+        throw DecodingError.typeMismatch(UnionJSONNull.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONNull"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6429,14 +9291,14 @@ enum UnionFunction: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .function(let x):
+        case .jsonNullClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Function
-struct Function: Codable {
+// MARK: - JSONNullClass
+struct JSONNullClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6445,11 +9307,11 @@ struct Function: Codable {
     }
 }
 
-// MARK: Function convenience initializers and mutators
+// MARK: JSONNullClass convenience initializers and mutators
 
-extension Function {
+extension JSONNullClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Function.self, from: data)
+        self = try newJSONDecoder().decode(JSONNullClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6464,8 +9326,8 @@ extension Function {
     }
 
     func with(
-    ) -> Function {
-        return Function(
+    ) -> JSONNullClass {
+        return JSONNullClass(
         )
     }
 
@@ -6478,9 +9340,9 @@ extension Function {
     }
 }
 
-enum UnionGlobal: Codable {
+enum UnionJSONParser: Codable {
     case double(Double)
-    case global(Global)
+    case jsonParser(JSONParser)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6488,11 +9350,11 @@ enum UnionGlobal: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Global.self) {
-            self = .global(x)
+        if let x = try? container.decode(JSONParser.self) {
+            self = .jsonParser(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionGlobal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGlobal"))
+        throw DecodingError.typeMismatch(UnionJSONParser.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONParser"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6500,14 +9362,14 @@ enum UnionGlobal: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .global(let x):
+        case .jsonParser(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Global
-struct Global: Codable {
+// MARK: - JSONParser
+struct JSONParser: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6516,11 +9378,11 @@ struct Global: Codable {
     }
 }
 
-// MARK: Global convenience initializers and mutators
+// MARK: JSONParser convenience initializers and mutators
 
-extension Global {
+extension JSONParser {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Global.self, from: data)
+        self = try newJSONDecoder().decode(JSONParser.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6535,8 +9397,8 @@ extension Global {
     }
 
     func with(
-    ) -> Global {
-        return Global(
+    ) -> JSONParser {
+        return JSONParser(
         )
     }
 
@@ -6549,9 +9411,9 @@ extension Global {
     }
 }
 
-enum UnionGo: Codable {
+enum UnionJSONReader: Codable {
     case double(Double)
-    case go(Go)
+    case jsonReader(JSONReader)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6559,11 +9421,11 @@ enum UnionGo: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Go.self) {
-            self = .go(x)
+        if let x = try? container.decode(JSONReader.self) {
+            self = .jsonReader(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionGo.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGo"))
+        throw DecodingError.typeMismatch(UnionJSONReader.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONReader"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6571,14 +9433,14 @@ enum UnionGo: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .go(let x):
+        case .jsonReader(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Go
-struct Go: Codable {
+// MARK: - JSONReader
+struct JSONReader: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6587,11 +9449,11 @@ struct Go: Codable {
     }
 }
 
-// MARK: Go convenience initializers and mutators
+// MARK: JSONReader convenience initializers and mutators
 
-extension Go {
+extension JSONReader {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Go.self, from: data)
+        self = try newJSONDecoder().decode(JSONReader.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6606,8 +9468,8 @@ extension Go {
     }
 
     func with(
-    ) -> Go {
-        return Go(
+    ) -> JSONReader {
+        return JSONReader(
         )
     }
 
@@ -6620,9 +9482,9 @@ extension Go {
     }
 }
 
-enum UnionGoto: Codable {
+enum UnionJSONSerializer: Codable {
     case double(Double)
-    case goto(Goto)
+    case jsonSerializer(JSONSerializer)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6630,11 +9492,11 @@ enum UnionGoto: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Goto.self) {
-            self = .goto(x)
+        if let x = try? container.decode(JSONSerializer.self) {
+            self = .jsonSerializer(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionGoto.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionGoto"))
+        throw DecodingError.typeMismatch(UnionJSONSerializer.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONSerializer"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6642,14 +9504,14 @@ enum UnionGoto: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .goto(let x):
+        case .jsonSerializer(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Goto
-struct Goto: Codable {
+// MARK: - JSONSerializer
+struct JSONSerializer: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6658,11 +9520,11 @@ struct Goto: Codable {
     }
 }
 
-// MARK: Goto convenience initializers and mutators
+// MARK: JSONSerializer convenience initializers and mutators
 
-extension Goto {
+extension JSONSerializer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Goto.self, from: data)
+        self = try newJSONDecoder().decode(JSONSerializer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6677,8 +9539,8 @@ extension Goto {
     }
 
     func with(
-    ) -> Goto {
-        return Goto(
+    ) -> JSONSerializer {
+        return JSONSerializer(
         )
     }
 
@@ -6691,9 +9553,9 @@ extension Goto {
     }
 }
 
-enum UnionHasOwnProperty: Codable {
+enum UnionJSONToken: Codable {
     case double(Double)
-    case hasOwnProperty(HasOwnProperty)
+    case jsonToken(JSONToken)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6701,11 +9563,11 @@ enum UnionHasOwnProperty: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(HasOwnProperty.self) {
-            self = .hasOwnProperty(x)
+        if let x = try? container.decode(JSONToken.self) {
+            self = .jsonToken(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionHasOwnProperty.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionHasOwnProperty"))
+        throw DecodingError.typeMismatch(UnionJSONToken.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONToken"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6713,14 +9575,14 @@ enum UnionHasOwnProperty: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .hasOwnProperty(let x):
+        case .jsonToken(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - HasOwnProperty
-struct HasOwnProperty: Codable {
+// MARK: - JSONToken
+struct JSONToken: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6729,11 +9591,11 @@ struct HasOwnProperty: Codable {
     }
 }
 
-// MARK: HasOwnProperty convenience initializers and mutators
+// MARK: JSONToken convenience initializers and mutators
 
-extension HasOwnProperty {
+extension JSONToken {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(HasOwnProperty.self, from: data)
+        self = try newJSONDecoder().decode(JSONToken.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6748,8 +9610,8 @@ extension HasOwnProperty {
     }
 
     func with(
-    ) -> HasOwnProperty {
-        return HasOwnProperty(
+    ) -> JSONToken {
+        return JSONToken(
         )
     }
 
@@ -6762,9 +9624,9 @@ extension HasOwnProperty {
     }
 }
 
-enum UnionID: Codable {
+enum UnionJSONTokenType: Codable {
     case double(Double)
-    case id(ID)
+    case jsonTokenType(JSONTokenType)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6772,11 +9634,11 @@ enum UnionID: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(ID.self) {
-            self = .id(x)
+        if let x = try? container.decode(JSONTokenType.self) {
+            self = .jsonTokenType(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionID.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionID"))
+        throw DecodingError.typeMismatch(UnionJSONTokenType.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONTokenType"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6784,14 +9646,14 @@ enum UnionID: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .id(let x):
+        case .jsonTokenType(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - ID
-struct ID: Codable {
+// MARK: - JSONTokenType
+struct JSONTokenType: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6800,11 +9662,11 @@ struct ID: Codable {
     }
 }
 
-// MARK: ID convenience initializers and mutators
+// MARK: JSONTokenType convenience initializers and mutators
 
-extension ID {
+extension JSONTokenType {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ID.self, from: data)
+        self = try newJSONDecoder().decode(JSONTokenType.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6819,8 +9681,8 @@ extension ID {
     }
 
     func with(
-    ) -> ID {
-        return ID(
+    ) -> JSONTokenType {
+        return JSONTokenType(
         )
     }
 
@@ -6833,9 +9695,9 @@ extension ID {
     }
 }
 
-enum UnionImaginery: Codable {
+enum UnionJSONWriter: Codable {
     case double(Double)
-    case imaginery(Imaginery)
+    case jsonWriter(JSONWriter)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6843,11 +9705,11 @@ enum UnionImaginery: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Imaginery.self) {
-            self = .imaginery(x)
+        if let x = try? container.decode(JSONWriter.self) {
+            self = .jsonWriter(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionImaginery.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImaginery"))
+        throw DecodingError.typeMismatch(UnionJSONWriter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONWriter"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6855,14 +9717,14 @@ enum UnionImaginery: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .imaginery(let x):
+        case .jsonWriter(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Imaginery
-struct Imaginery: Codable {
+// MARK: - JSONWriter
+struct JSONWriter: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6871,11 +9733,11 @@ struct Imaginery: Codable {
     }
 }
 
-// MARK: Imaginery convenience initializers and mutators
+// MARK: JSONWriter convenience initializers and mutators
 
-extension Imaginery {
+extension JSONWriter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Imaginery.self, from: data)
+        self = try newJSONDecoder().decode(JSONWriter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6889,9 +9751,9 @@ extension Imaginery {
         try self.init(data: try Data(contentsOf: url))
     }
 
-    func with(
-    ) -> Imaginery {
-        return Imaginery(
+    func with(
+    ) -> JSONWriter {
+        return JSONWriter(
         )
     }
 
@@ -6904,9 +9766,9 @@ extension Imaginery {
     }
 }
 
-enum UnionIMP: Codable {
+enum UnionLambda: Codable {
     case double(Double)
-    case imp(Imp)
+    case lambda(Lambda)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6914,11 +9776,11 @@ enum UnionIMP: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Imp.self) {
-            self = .imp(x)
+        if let x = try? container.decode(Lambda.self) {
+            self = .lambda(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionIMP.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionIMP"))
+        throw DecodingError.typeMismatch(UnionLambda.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLambda"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6926,14 +9788,14 @@ enum UnionIMP: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .imp(let x):
+        case .lambda(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Imp
-struct Imp: Codable {
+// MARK: - Lambda
+struct Lambda: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -6942,11 +9804,11 @@ struct Imp: Codable {
     }
 }
 
-// MARK: Imp convenience initializers and mutators
+// MARK: Lambda convenience initializers and mutators
 
-extension Imp {
+extension Lambda {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Imp.self, from: data)
+        self = try newJSONDecoder().decode(Lambda.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6961,8 +9823,8 @@ extension Imp {
     }
 
     func with(
-    ) -> Imp {
-        return Imp(
+    ) -> Lambda {
+        return Lambda(
         )
     }
 
@@ -6975,9 +9837,9 @@ extension Imp {
     }
 }
 
-enum UnionImplements: Codable {
+enum UnionList: Codable {
     case double(Double)
-    case implements(Implements)
+    case list(List)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -6985,11 +9847,11 @@ enum UnionImplements: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Implements.self) {
-            self = .implements(x)
+        if let x = try? container.decode(List.self) {
+            self = .list(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionImplements.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImplements"))
+        throw DecodingError.typeMismatch(UnionList.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionList"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -6997,14 +9859,14 @@ enum UnionImplements: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .implements(let x):
+        case .list(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Implements
-struct Implements: Codable {
+// MARK: - List
+struct List: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7013,11 +9875,11 @@ struct Implements: Codable {
     }
 }
 
-// MARK: Implements convenience initializers and mutators
+// MARK: List convenience initializers and mutators
 
-extension Implements {
+extension List {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Implements.self, from: data)
+        self = try newJSONDecoder().decode(List.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7032,8 +9894,8 @@ extension Implements {
     }
 
     func with(
-    ) -> Implements {
-        return Implements(
+    ) -> List {
+        return List(
         )
     }
 
@@ -7046,9 +9908,9 @@ extension Implements {
     }
 }
 
-enum UnionImplicit: Codable {
+enum UnionLock: Codable {
     case double(Double)
-    case implicit(Implicit)
+    case lock(Lock)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7056,11 +9918,11 @@ enum UnionImplicit: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Implicit.self) {
-            self = .implicit(x)
+        if let x = try? container.decode(Lock.self) {
+            self = .lock(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionImplicit.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionImplicit"))
+        throw DecodingError.typeMismatch(UnionLock.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLock"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7068,14 +9930,14 @@ enum UnionImplicit: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .implicit(let x):
+        case .lock(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Implicit
-struct Implicit: Codable {
+// MARK: - Lock
+struct Lock: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7084,11 +9946,11 @@ struct Implicit: Codable {
     }
 }
 
-// MARK: Implicit convenience initializers and mutators
+// MARK: Lock convenience initializers and mutators
 
-extension Implicit {
+extension Lock {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Implicit.self, from: data)
+        self = try newJSONDecoder().decode(Lock.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7103,8 +9965,8 @@ extension Implicit {
     }
 
     func with(
-    ) -> Implicit {
-        return Implicit(
+    ) -> Lock {
+        return Lock(
         )
     }
 
@@ -7117,9 +9979,9 @@ extension Implicit {
     }
 }
 
-enum UnionInline: Codable {
+enum UnionLong: Codable {
     case double(Double)
-    case inline(Inline)
+    case long(Long)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7127,11 +9989,11 @@ enum UnionInline: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Inline.self) {
-            self = .inline(x)
+        if let x = try? container.decode(Long.self) {
+            self = .long(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionInline.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInline"))
+        throw DecodingError.typeMismatch(UnionLong.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLong"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7139,14 +10001,14 @@ enum UnionInline: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .inline(let x):
+        case .long(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Inline
-struct Inline: Codable {
+// MARK: - Long
+struct Long: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7155,11 +10017,11 @@ struct Inline: Codable {
     }
 }
 
-// MARK: Inline convenience initializers and mutators
+// MARK: Long convenience initializers and mutators
 
-extension Inline {
+extension Long {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Inline.self, from: data)
+        self = try newJSONDecoder().decode(Long.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7174,8 +10036,8 @@ extension Inline {
     }
 
     func with(
-    ) -> Inline {
-        return Inline(
+    ) -> Long {
+        return Long(
         )
     }
 
@@ -7188,9 +10050,9 @@ extension Inline {
     }
 }
 
-enum UnionInstanceof: Codable {
+enum UnionMap: Codable {
     case double(Double)
-    case instanceof(Instanceof)
+    case map(Map)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7198,11 +10060,11 @@ enum UnionInstanceof: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Instanceof.self) {
-            self = .instanceof(x)
+        if let x = try? container.decode(Map.self) {
+            self = .map(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionInstanceof.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInstanceof"))
+        throw DecodingError.typeMismatch(UnionMap.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMap"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7210,14 +10072,14 @@ enum UnionInstanceof: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .instanceof(let x):
+        case .map(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Instanceof
-struct Instanceof: Codable {
+// MARK: - Map
+struct Map: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7226,11 +10088,11 @@ struct Instanceof: Codable {
     }
 }
 
-// MARK: Instanceof convenience initializers and mutators
+// MARK: Map convenience initializers and mutators
 
-extension Instanceof {
+extension Map {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Instanceof.self, from: data)
+        self = try newJSONDecoder().decode(Map.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7245,8 +10107,8 @@ extension Instanceof {
     }
 
     func with(
-    ) -> Instanceof {
-        return Instanceof(
+    ) -> Map {
+        return Map(
         )
     }
 
@@ -7259,9 +10121,9 @@ extension Instanceof {
     }
 }
 
-enum UnionInt: Codable {
+enum UnionMetadataPropertyHandling: Codable {
     case double(Double)
-    case intClass(IntClass)
+    case metadataPropertyHandling(MetadataPropertyHandling)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7269,11 +10131,11 @@ enum UnionInt: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(IntClass.self) {
-            self = .intClass(x)
+        if let x = try? container.decode(MetadataPropertyHandling.self) {
+            self = .metadataPropertyHandling(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionInt.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInt"))
+        throw DecodingError.typeMismatch(UnionMetadataPropertyHandling.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMetadataPropertyHandling"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7281,14 +10143,14 @@ enum UnionInt: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .intClass(let x):
+        case .metadataPropertyHandling(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - IntClass
-struct IntClass: Codable {
+// MARK: - MetadataPropertyHandling
+struct MetadataPropertyHandling: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7297,11 +10159,11 @@ struct IntClass: Codable {
     }
 }
 
-// MARK: IntClass convenience initializers and mutators
+// MARK: MetadataPropertyHandling convenience initializers and mutators
 
-extension IntClass {
+extension MetadataPropertyHandling {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(IntClass.self, from: data)
+        self = try newJSONDecoder().decode(MetadataPropertyHandling.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7316,8 +10178,8 @@ extension IntClass {
     }
 
     func with(
-    ) -> IntClass {
-        return IntClass(
+    ) -> MetadataPropertyHandling {
+        return MetadataPropertyHandling(
         )
     }
 
@@ -7330,9 +10192,9 @@ extension IntClass {
     }
 }
 
-enum UnionInterface: Codable {
+enum UnionModule: Codable {
     case double(Double)
-    case interface(Interface)
+    case module(Module)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7340,11 +10202,11 @@ enum UnionInterface: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Interface.self) {
-            self = .interface(x)
+        if let x = try? container.decode(Module.self) {
+            self = .module(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionInterface.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionInterface"))
+        throw DecodingError.typeMismatch(UnionModule.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionModule"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7352,14 +10214,14 @@ enum UnionInterface: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .interface(let x):
+        case .module(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Interface
-struct Interface: Codable {
+// MARK: - Module
+struct Module: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7368,11 +10230,11 @@ struct Interface: Codable {
     }
 }
 
-// MARK: Interface convenience initializers and mutators
+// MARK: Module convenience initializers and mutators
 
-extension Interface {
+extension Module {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Interface.self, from: data)
+        self = try newJSONDecoder().decode(Module.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7387,8 +10249,8 @@ extension Interface {
     }
 
     func with(
-    ) -> Interface {
-        return Interface(
+    ) -> Module {
+        return Module(
         )
     }
 
@@ -7401,9 +10263,9 @@ extension Interface {
     }
 }
 
-enum UnionIterable: Codable {
+enum UnionMutable: Codable {
     case double(Double)
-    case iterable(Iterable)
+    case mutable(Mutable)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7411,11 +10273,11 @@ enum UnionIterable: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Iterable.self) {
-            self = .iterable(x)
+        if let x = try? container.decode(Mutable.self) {
+            self = .mutable(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionIterable.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionIterable"))
+        throw DecodingError.typeMismatch(UnionMutable.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMutable"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7423,14 +10285,14 @@ enum UnionIterable: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .iterable(let x):
+        case .mutable(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Iterable
-struct Iterable: Codable {
+// MARK: - Mutable
+struct Mutable: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7439,11 +10301,11 @@ struct Iterable: Codable {
     }
 }
 
-// MARK: Iterable convenience initializers and mutators
+// MARK: Mutable convenience initializers and mutators
 
-extension Iterable {
+extension Mutable {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Iterable.self, from: data)
+        self = try newJSONDecoder().decode(Mutable.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7458,8 +10320,8 @@ extension Iterable {
     }
 
     func with(
-    ) -> Iterable {
-        return Iterable(
+    ) -> Mutable {
+        return Mutable(
         )
     }
 
@@ -7472,9 +10334,9 @@ extension Iterable {
     }
 }
 
-enum UnionJdec: Codable {
+enum UnionNamespace: Codable {
     case double(Double)
-    case jdec(Jdec)
+    case namespace(Namespace)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7482,11 +10344,11 @@ enum UnionJdec: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Jdec.self) {
-            self = .jdec(x)
+        if let x = try? container.decode(Namespace.self) {
+            self = .namespace(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJdec.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJdec"))
+        throw DecodingError.typeMismatch(UnionNamespace.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNamespace"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7494,14 +10356,14 @@ enum UnionJdec: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jdec(let x):
+        case .namespace(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Jdec
-struct Jdec: Codable {
+// MARK: - Namespace
+struct Namespace: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7510,11 +10372,11 @@ struct Jdec: Codable {
     }
 }
 
-// MARK: Jdec convenience initializers and mutators
+// MARK: Namespace convenience initializers and mutators
 
-extension Jdec {
+extension Namespace {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jdec.self, from: data)
+        self = try newJSONDecoder().decode(Namespace.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7529,8 +10391,8 @@ extension Jdec {
     }
 
     func with(
-    ) -> Jdec {
-        return Jdec(
+    ) -> Namespace {
+        return Namespace(
         )
     }
 
@@ -7543,9 +10405,9 @@ extension Jdec {
     }
 }
 
-enum UnionJenc: Codable {
+enum UnionNative: Codable {
     case double(Double)
-    case jenc(Jenc)
+    case native(Native)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7553,11 +10415,11 @@ enum UnionJenc: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Jenc.self) {
-            self = .jenc(x)
+        if let x = try? container.decode(Native.self) {
+            self = .native(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJenc.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJenc"))
+        throw DecodingError.typeMismatch(UnionNative.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNative"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7565,14 +10427,14 @@ enum UnionJenc: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jenc(let x):
+        case .native(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Jenc
-struct Jenc: Codable {
+// MARK: - Native
+struct Native: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7581,11 +10443,11 @@ struct Jenc: Codable {
     }
 }
 
-// MARK: Jenc convenience initializers and mutators
+// MARK: Native convenience initializers and mutators
 
-extension Jenc {
+extension Native {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jenc.self, from: data)
+        self = try newJSONDecoder().decode(Native.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7600,8 +10462,8 @@ extension Jenc {
     }
 
     func with(
-    ) -> Jenc {
-        return Jenc(
+    ) -> Native {
+        return Native(
         )
     }
 
@@ -7614,9 +10476,9 @@ extension Jenc {
     }
 }
 
-enum UnionJpipe: Codable {
+enum UnionNew: Codable {
     case double(Double)
-    case jpipe(Jpipe)
+    case new(New)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7624,11 +10486,11 @@ enum UnionJpipe: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Jpipe.self) {
-            self = .jpipe(x)
+        if let x = try? container.decode(New.self) {
+            self = .new(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJpipe.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJpipe"))
+        throw DecodingError.typeMismatch(UnionNew.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNew"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7636,14 +10498,14 @@ enum UnionJpipe: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jpipe(let x):
+        case .new(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Jpipe
-struct Jpipe: Codable {
+// MARK: - New
+struct New: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7652,11 +10514,11 @@ struct Jpipe: Codable {
     }
 }
 
-// MARK: Jpipe convenience initializers and mutators
+// MARK: New convenience initializers and mutators
 
-extension Jpipe {
+extension New {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jpipe.self, from: data)
+        self = try newJSONDecoder().decode(New.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7671,8 +10533,8 @@ extension Jpipe {
     }
 
     func with(
-    ) -> Jpipe {
-        return Jpipe(
+    ) -> New {
+        return New(
         )
     }
 
@@ -7685,9 +10547,9 @@ extension Jpipe {
     }
 }
 
-enum UnionJSONConverter: Codable {
+enum UnionNewtonsoft: Codable {
     case double(Double)
-    case jsonConverter(JSONConverter)
+    case newtonsoft(Newtonsoft)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7695,11 +10557,11 @@ enum UnionJSONConverter: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(JSONConverter.self) {
-            self = .jsonConverter(x)
+        if let x = try? container.decode(Newtonsoft.self) {
+            self = .newtonsoft(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJSONConverter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONConverter"))
+        throw DecodingError.typeMismatch(UnionNewtonsoft.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNewtonsoft"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7707,14 +10569,14 @@ enum UnionJSONConverter: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jsonConverter(let x):
+        case .newtonsoft(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - JSONConverter
-struct JSONConverter: Codable {
+// MARK: - Newtonsoft
+struct Newtonsoft: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7723,11 +10585,11 @@ struct JSONConverter: Codable {
     }
 }
 
-// MARK: JSONConverter convenience initializers and mutators
+// MARK: Newtonsoft convenience initializers and mutators
 
-extension JSONConverter {
+extension Newtonsoft {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONConverter.self, from: data)
+        self = try newJSONDecoder().decode(Newtonsoft.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7742,8 +10604,8 @@ extension JSONConverter {
     }
 
     func with(
-    ) -> JSONConverter {
-        return JSONConverter(
+    ) -> Newtonsoft {
+        return Newtonsoft(
         )
     }
 
@@ -7756,9 +10618,9 @@ extension JSONConverter {
     }
 }
 
-enum UnionJSONSerializer: Codable {
+enum UnionNO: Codable {
     case double(Double)
-    case jsonSerializer(JSONSerializer)
+    case no(No)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7766,11 +10628,11 @@ enum UnionJSONSerializer: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(JSONSerializer.self) {
-            self = .jsonSerializer(x)
+        if let x = try? container.decode(No.self) {
+            self = .no(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJSONSerializer.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONSerializer"))
+        throw DecodingError.typeMismatch(UnionNO.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNO"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7778,14 +10640,14 @@ enum UnionJSONSerializer: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jsonSerializer(let x):
+        case .no(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - JSONSerializer
-struct JSONSerializer: Codable {
+// MARK: - No
+struct No: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7794,11 +10656,11 @@ struct JSONSerializer: Codable {
     }
 }
 
-// MARK: JSONSerializer convenience initializers and mutators
+// MARK: No convenience initializers and mutators
 
-extension JSONSerializer {
+extension No {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONSerializer.self, from: data)
+        self = try newJSONDecoder().decode(No.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7813,8 +10675,8 @@ extension JSONSerializer {
     }
 
     func with(
-    ) -> JSONSerializer {
-        return JSONSerializer(
+    ) -> No {
+        return No(
         )
     }
 
@@ -7827,9 +10689,9 @@ extension JSONSerializer {
     }
 }
 
-enum UnionJSONToken: Codable {
+enum UnionNoSuchMethod: Codable {
     case double(Double)
-    case jsonToken(JSONToken)
+    case noSuchMethod(NoSuchMethod)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7837,11 +10699,11 @@ enum UnionJSONToken: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(JSONToken.self) {
-            self = .jsonToken(x)
+        if let x = try? container.decode(NoSuchMethod.self) {
+            self = .noSuchMethod(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJSONToken.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONToken"))
+        throw DecodingError.typeMismatch(UnionNoSuchMethod.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNoSuchMethod"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7849,14 +10711,14 @@ enum UnionJSONToken: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jsonToken(let x):
+        case .noSuchMethod(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - JSONToken
-struct JSONToken: Codable {
+// MARK: - NoSuchMethod
+struct NoSuchMethod: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7865,11 +10727,11 @@ struct JSONToken: Codable {
     }
 }
 
-// MARK: JSONToken convenience initializers and mutators
+// MARK: NoSuchMethod convenience initializers and mutators
 
-extension JSONToken {
+extension NoSuchMethod {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONToken.self, from: data)
+        self = try newJSONDecoder().decode(NoSuchMethod.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7884,8 +10746,8 @@ extension JSONToken {
     }
 
     func with(
-    ) -> JSONToken {
-        return JSONToken(
+    ) -> NoSuchMethod {
+        return NoSuchMethod(
         )
     }
 
@@ -7898,9 +10760,9 @@ extension JSONToken {
     }
 }
 
-enum UnionJSONWriter: Codable {
+enum UnionNoexcept: Codable {
     case double(Double)
-    case jsonWriter(JSONWriter)
+    case noexcept(Noexcept)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7908,11 +10770,11 @@ enum UnionJSONWriter: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(JSONWriter.self) {
-            self = .jsonWriter(x)
+        if let x = try? container.decode(Noexcept.self) {
+            self = .noexcept(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionJSONWriter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionJSONWriter"))
+        throw DecodingError.typeMismatch(UnionNoexcept.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNoexcept"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7920,14 +10782,14 @@ enum UnionJSONWriter: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .jsonWriter(let x):
+        case .noexcept(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - JSONWriter
-struct JSONWriter: Codable {
+// MARK: - Noexcept
+struct Noexcept: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -7936,11 +10798,11 @@ struct JSONWriter: Codable {
     }
 }
 
-// MARK: JSONWriter convenience initializers and mutators
+// MARK: Noexcept convenience initializers and mutators
 
-extension JSONWriter {
+extension Noexcept {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONWriter.self, from: data)
+        self = try newJSONDecoder().decode(Noexcept.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7955,8 +10817,8 @@ extension JSONWriter {
     }
 
     func with(
-    ) -> JSONWriter {
-        return JSONWriter(
+    ) -> Noexcept {
+        return Noexcept(
         )
     }
 
@@ -7969,9 +10831,9 @@ extension JSONWriter {
     }
 }
 
-enum UnionLambda: Codable {
+enum UnionNonatomic: Codable {
     case double(Double)
-    case lambda(Lambda)
+    case nonatomic(Nonatomic)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -7979,11 +10841,11 @@ enum UnionLambda: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Lambda.self) {
-            self = .lambda(x)
+        if let x = try? container.decode(Nonatomic.self) {
+            self = .nonatomic(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionLambda.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLambda"))
+        throw DecodingError.typeMismatch(UnionNonatomic.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNonatomic"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -7991,14 +10853,14 @@ enum UnionLambda: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .lambda(let x):
+        case .nonatomic(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Lambda
-struct Lambda: Codable {
+// MARK: - Nonatomic
+struct Nonatomic: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8007,11 +10869,11 @@ struct Lambda: Codable {
     }
 }
 
-// MARK: Lambda convenience initializers and mutators
+// MARK: Nonatomic convenience initializers and mutators
 
-extension Lambda {
+extension Nonatomic {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Lambda.self, from: data)
+        self = try newJSONDecoder().decode(Nonatomic.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8026,8 +10888,8 @@ extension Lambda {
     }
 
     func with(
-    ) -> Lambda {
-        return Lambda(
+    ) -> Nonatomic {
+        return Nonatomic(
         )
     }
 
@@ -8040,9 +10902,9 @@ extension Lambda {
     }
 }
 
-enum UnionList: Codable {
+enum UnionNone: Codable {
     case double(Double)
-    case list(List)
+    case none(None)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8050,11 +10912,11 @@ enum UnionList: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(List.self) {
-            self = .list(x)
+        if let x = try? container.decode(None.self) {
+            self = .none(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionList.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionList"))
+        throw DecodingError.typeMismatch(UnionNone.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNone"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8062,14 +10924,14 @@ enum UnionList: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .list(let x):
+        case .none(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - List
-struct List: Codable {
+// MARK: - None
+struct None: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8078,11 +10940,11 @@ struct List: Codable {
     }
 }
 
-// MARK: List convenience initializers and mutators
+// MARK: None convenience initializers and mutators
 
-extension List {
+extension None {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(List.self, from: data)
+        self = try newJSONDecoder().decode(None.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8097,8 +10959,8 @@ extension List {
     }
 
     func with(
-    ) -> List {
-        return List(
+    ) -> None {
+        return None(
         )
     }
 
@@ -8111,9 +10973,9 @@ extension List {
     }
 }
 
-enum UnionLock: Codable {
+enum UnionNonlocal: Codable {
     case double(Double)
-    case lock(Lock)
+    case nonlocal(Nonlocal)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8121,11 +10983,11 @@ enum UnionLock: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Lock.self) {
-            self = .lock(x)
+        if let x = try? container.decode(Nonlocal.self) {
+            self = .nonlocal(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionLock.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLock"))
+        throw DecodingError.typeMismatch(UnionNonlocal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNonlocal"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8133,14 +10995,14 @@ enum UnionLock: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .lock(let x):
+        case .nonlocal(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Lock
-struct Lock: Codable {
+// MARK: - Nonlocal
+struct Nonlocal: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8149,11 +11011,11 @@ struct Lock: Codable {
     }
 }
 
-// MARK: Lock convenience initializers and mutators
+// MARK: Nonlocal convenience initializers and mutators
 
-extension Lock {
+extension Nonlocal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Lock.self, from: data)
+        self = try newJSONDecoder().decode(Nonlocal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8168,8 +11030,8 @@ extension Lock {
     }
 
     func with(
-    ) -> Lock {
-        return Lock(
+    ) -> Nonlocal {
+        return Nonlocal(
         )
     }
 
@@ -8182,9 +11044,9 @@ extension Lock {
     }
 }
 
-enum UnionLong: Codable {
+enum UnionNot: Codable {
     case double(Double)
-    case long(Long)
+    case not(Not)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8192,11 +11054,11 @@ enum UnionLong: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Long.self) {
-            self = .long(x)
+        if let x = try? container.decode(Not.self) {
+            self = .not(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionLong.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionLong"))
+        throw DecodingError.typeMismatch(UnionNot.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNot"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8204,14 +11066,14 @@ enum UnionLong: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .long(let x):
+        case .not(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Long
-struct Long: Codable {
+// MARK: - Not
+struct Not: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8220,11 +11082,11 @@ struct Long: Codable {
     }
 }
 
-// MARK: Long convenience initializers and mutators
+// MARK: Not convenience initializers and mutators
 
-extension Long {
+extension Not {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Long.self, from: data)
+        self = try newJSONDecoder().decode(Not.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8239,8 +11101,8 @@ extension Long {
     }
 
     func with(
-    ) -> Long {
-        return Long(
+    ) -> Not {
+        return Not(
         )
     }
 
@@ -8253,9 +11115,9 @@ extension Long {
     }
 }
 
-enum UnionMap: Codable {
+enum UnionNotEq: Codable {
     case double(Double)
-    case map(Map)
+    case notEq(NotEq)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8263,11 +11125,11 @@ enum UnionMap: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Map.self) {
-            self = .map(x)
+        if let x = try? container.decode(NotEq.self) {
+            self = .notEq(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionMap.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMap"))
+        throw DecodingError.typeMismatch(UnionNotEq.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNotEq"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8275,14 +11137,14 @@ enum UnionMap: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .map(let x):
+        case .notEq(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Map
-struct Map: Codable {
+// MARK: - NotEq
+struct NotEq: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8291,11 +11153,11 @@ struct Map: Codable {
     }
 }
 
-// MARK: Map convenience initializers and mutators
+// MARK: NotEq convenience initializers and mutators
 
-extension Map {
+extension NotEq {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Map.self, from: data)
+        self = try newJSONDecoder().decode(NotEq.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8310,8 +11172,8 @@ extension Map {
     }
 
     func with(
-    ) -> Map {
-        return Map(
+    ) -> NotEq {
+        return NotEq(
         )
     }
 
@@ -8324,9 +11186,9 @@ extension Map {
     }
 }
 
-enum UnionMetadataPropertyHandling: Codable {
+enum UnionNSError: Codable {
     case double(Double)
-    case metadataPropertyHandling(MetadataPropertyHandling)
+    case nsErrorClass(NSErrorClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8334,11 +11196,11 @@ enum UnionMetadataPropertyHandling: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(MetadataPropertyHandling.self) {
-            self = .metadataPropertyHandling(x)
+        if let x = try? container.decode(NSErrorClass.self) {
+            self = .nsErrorClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionMetadataPropertyHandling.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMetadataPropertyHandling"))
+        throw DecodingError.typeMismatch(UnionNSError.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNSError"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8346,14 +11208,14 @@ enum UnionMetadataPropertyHandling: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .metadataPropertyHandling(let x):
+        case .nsErrorClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - MetadataPropertyHandling
-struct MetadataPropertyHandling: Codable {
+// MARK: - NSErrorClass
+struct NSErrorClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8362,11 +11224,11 @@ struct MetadataPropertyHandling: Codable {
     }
 }
 
-// MARK: MetadataPropertyHandling convenience initializers and mutators
+// MARK: NSErrorClass convenience initializers and mutators
 
-extension MetadataPropertyHandling {
+extension NSErrorClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(MetadataPropertyHandling.self, from: data)
+        self = try newJSONDecoder().decode(NSErrorClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8381,8 +11243,8 @@ extension MetadataPropertyHandling {
     }
 
     func with(
-    ) -> MetadataPropertyHandling {
-        return MetadataPropertyHandling(
+    ) -> NSErrorClass {
+        return NSErrorClass(
         )
     }
 
@@ -8395,9 +11257,9 @@ extension MetadataPropertyHandling {
     }
 }
 
-enum UnionModule: Codable {
+enum UnionNSString: Codable {
     case double(Double)
-    case module(Module)
+    case nsString(NSString)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8405,11 +11267,11 @@ enum UnionModule: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Module.self) {
-            self = .module(x)
+        if let x = try? container.decode(NSString.self) {
+            self = .nsString(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionModule.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionModule"))
+        throw DecodingError.typeMismatch(UnionNSString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNSString"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8417,14 +11279,14 @@ enum UnionModule: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .module(let x):
+        case .nsString(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Module
-struct Module: Codable {
+// MARK: - NSString
+struct NSString: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8433,11 +11295,11 @@ struct Module: Codable {
     }
 }
 
-// MARK: Module convenience initializers and mutators
+// MARK: NSString convenience initializers and mutators
 
-extension Module {
+extension NSString {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Module.self, from: data)
+        self = try newJSONDecoder().decode(NSString.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8452,8 +11314,8 @@ extension Module {
     }
 
     func with(
-    ) -> Module {
-        return Module(
+    ) -> NSString {
+        return NSString(
         )
     }
 
@@ -8466,9 +11328,9 @@ extension Module {
     }
 }
 
-enum UnionMutable: Codable {
+enum UnionNULL: Codable {
     case double(Double)
-    case mutable(Mutable)
+    case null(Null)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8476,11 +11338,11 @@ enum UnionMutable: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Mutable.self) {
-            self = .mutable(x)
+        if let x = try? container.decode(Null.self) {
+            self = .null(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionMutable.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionMutable"))
+        throw DecodingError.typeMismatch(UnionNULL.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNULL"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8488,14 +11350,14 @@ enum UnionMutable: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .mutable(let x):
+        case .null(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Mutable
-struct Mutable: Codable {
+// MARK: - Null
+struct Null: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8504,11 +11366,11 @@ struct Mutable: Codable {
     }
 }
 
-// MARK: Mutable convenience initializers and mutators
+// MARK: Null convenience initializers and mutators
 
-extension Mutable {
+extension Null {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Mutable.self, from: data)
+        self = try newJSONDecoder().decode(Null.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8523,8 +11385,8 @@ extension Mutable {
     }
 
     func with(
-    ) -> Mutable {
-        return Mutable(
+    ) -> Null {
+        return Null(
         )
     }
 
@@ -8537,9 +11399,9 @@ extension Mutable {
     }
 }
 
-enum UnionNamespace: Codable {
+enum UnionNullptr: Codable {
     case double(Double)
-    case namespace(Namespace)
+    case nullptr(Nullptr)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8547,11 +11409,11 @@ enum UnionNamespace: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Namespace.self) {
-            self = .namespace(x)
+        if let x = try? container.decode(Nullptr.self) {
+            self = .nullptr(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNamespace.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNamespace"))
+        throw DecodingError.typeMismatch(UnionNullptr.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNullptr"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8559,14 +11421,14 @@ enum UnionNamespace: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .namespace(let x):
+        case .nullptr(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Namespace
-struct Namespace: Codable {
+// MARK: - Nullptr
+struct Nullptr: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8575,11 +11437,11 @@ struct Namespace: Codable {
     }
 }
 
-// MARK: Namespace convenience initializers and mutators
+// MARK: Nullptr convenience initializers and mutators
 
-extension Namespace {
+extension Nullptr {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Namespace.self, from: data)
+        self = try newJSONDecoder().decode(Nullptr.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8594,8 +11456,8 @@ extension Namespace {
     }
 
     func with(
-    ) -> Namespace {
-        return Namespace(
+    ) -> Nullptr {
+        return Nullptr(
         )
     }
 
@@ -8608,9 +11470,9 @@ extension Namespace {
     }
 }
 
-enum UnionNative: Codable {
+enum UnionNumber: Codable {
     case double(Double)
-    case native(Native)
+    case number(Number)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8618,11 +11480,11 @@ enum UnionNative: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Native.self) {
-            self = .native(x)
+        if let x = try? container.decode(Number.self) {
+            self = .number(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNative.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNative"))
+        throw DecodingError.typeMismatch(UnionNumber.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNumber"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8630,14 +11492,14 @@ enum UnionNative: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .native(let x):
+        case .number(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Native
-struct Native: Codable {
+// MARK: - Number
+struct Number: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8646,11 +11508,11 @@ struct Native: Codable {
     }
 }
 
-// MARK: Native convenience initializers and mutators
+// MARK: Number convenience initializers and mutators
 
-extension Native {
+extension Number {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Native.self, from: data)
+        self = try newJSONDecoder().decode(Number.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8665,8 +11527,8 @@ extension Native {
     }
 
     func with(
-    ) -> Native {
-        return Native(
+    ) -> Number {
+        return Number(
         )
     }
 
@@ -8679,9 +11541,9 @@ extension Native {
     }
 }
 
-enum UnionNew: Codable {
+enum UnionObject: Codable {
     case double(Double)
-    case new(New)
+    case object(Object)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8689,11 +11551,11 @@ enum UnionNew: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(New.self) {
-            self = .new(x)
+        if let x = try? container.decode(Object.self) {
+            self = .object(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNew.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNew"))
+        throw DecodingError.typeMismatch(UnionObject.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionObject"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8701,14 +11563,14 @@ enum UnionNew: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .new(let x):
+        case .object(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - New
-struct New: Codable {
+// MARK: - Object
+struct Object: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8717,11 +11579,11 @@ struct New: Codable {
     }
 }
 
-// MARK: New convenience initializers and mutators
+// MARK: Object convenience initializers and mutators
 
-extension New {
+extension Object {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(New.self, from: data)
+        self = try newJSONDecoder().decode(Object.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8736,8 +11598,8 @@ extension New {
     }
 
     func with(
-    ) -> New {
-        return New(
+    ) -> Object {
+        return Object(
         )
     }
 
@@ -8750,9 +11612,9 @@ extension New {
     }
 }
 
-enum UnionNewtonsoft: Codable {
+enum UnionObjectMapper: Codable {
     case double(Double)
-    case newtonsoft(Newtonsoft)
+    case objectMapper(ObjectMapper)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8760,11 +11622,11 @@ enum UnionNewtonsoft: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Newtonsoft.self) {
-            self = .newtonsoft(x)
+        if let x = try? container.decode(ObjectMapper.self) {
+            self = .objectMapper(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNewtonsoft.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNewtonsoft"))
+        throw DecodingError.typeMismatch(UnionObjectMapper.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionObjectMapper"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8772,14 +11634,14 @@ enum UnionNewtonsoft: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .newtonsoft(let x):
+        case .objectMapper(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Newtonsoft
-struct Newtonsoft: Codable {
+// MARK: - ObjectMapper
+struct ObjectMapper: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8788,11 +11650,11 @@ struct Newtonsoft: Codable {
     }
 }
 
-// MARK: Newtonsoft convenience initializers and mutators
+// MARK: ObjectMapper convenience initializers and mutators
 
-extension Newtonsoft {
+extension ObjectMapper {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Newtonsoft.self, from: data)
+        self = try newJSONDecoder().decode(ObjectMapper.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8807,8 +11669,8 @@ extension Newtonsoft {
     }
 
     func with(
-    ) -> Newtonsoft {
-        return Newtonsoft(
+    ) -> ObjectMapper {
+        return ObjectMapper(
         )
     }
 
@@ -8821,9 +11683,9 @@ extension Newtonsoft {
     }
 }
 
-enum UnionNO: Codable {
+enum UnionOf: Codable {
     case double(Double)
-    case no(No)
+    case of(Of)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8831,11 +11693,11 @@ enum UnionNO: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(No.self) {
-            self = .no(x)
+        if let x = try? container.decode(Of.self) {
+            self = .of(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNO.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNO"))
+        throw DecodingError.typeMismatch(UnionOf.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOf"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8843,14 +11705,14 @@ enum UnionNO: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .no(let x):
+        case .of(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - No
-struct No: Codable {
+// MARK: - Of
+struct Of: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8859,11 +11721,11 @@ struct No: Codable {
     }
 }
 
-// MARK: No convenience initializers and mutators
+// MARK: Of convenience initializers and mutators
 
-extension No {
+extension Of {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(No.self, from: data)
+        self = try newJSONDecoder().decode(Of.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8878,8 +11740,8 @@ extension No {
     }
 
     func with(
-    ) -> No {
-        return No(
+    ) -> Of {
+        return Of(
         )
     }
 
@@ -8892,9 +11754,9 @@ extension No {
     }
 }
 
-enum UnionNoexcept: Codable {
+enum UnionOneway: Codable {
     case double(Double)
-    case noexcept(Noexcept)
+    case oneway(Oneway)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8902,11 +11764,11 @@ enum UnionNoexcept: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Noexcept.self) {
-            self = .noexcept(x)
+        if let x = try? container.decode(Oneway.self) {
+            self = .oneway(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNoexcept.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNoexcept"))
+        throw DecodingError.typeMismatch(UnionOneway.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOneway"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8914,14 +11776,14 @@ enum UnionNoexcept: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .noexcept(let x):
+        case .oneway(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Noexcept
-struct Noexcept: Codable {
+// MARK: - Oneway
+struct Oneway: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -8930,11 +11792,11 @@ struct Noexcept: Codable {
     }
 }
 
-// MARK: Noexcept convenience initializers and mutators
+// MARK: Oneway convenience initializers and mutators
 
-extension Noexcept {
+extension Oneway {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Noexcept.self, from: data)
+        self = try newJSONDecoder().decode(Oneway.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -8949,8 +11811,8 @@ extension Noexcept {
     }
 
     func with(
-    ) -> Noexcept {
-        return Noexcept(
+    ) -> Oneway {
+        return Oneway(
         )
     }
 
@@ -8963,9 +11825,9 @@ extension Noexcept {
     }
 }
 
-enum UnionNonatomic: Codable {
+enum UnionOr: Codable {
     case double(Double)
-    case nonatomic(Nonatomic)
+    case or(Or)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -8973,11 +11835,11 @@ enum UnionNonatomic: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Nonatomic.self) {
-            self = .nonatomic(x)
+        if let x = try? container.decode(Or.self) {
+            self = .or(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNonatomic.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNonatomic"))
+        throw DecodingError.typeMismatch(UnionOr.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOr"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -8985,14 +11847,14 @@ enum UnionNonatomic: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .nonatomic(let x):
+        case .or(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Nonatomic
-struct Nonatomic: Codable {
+// MARK: - Or
+struct Or: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9001,11 +11863,11 @@ struct Nonatomic: Codable {
     }
 }
 
-// MARK: Nonatomic convenience initializers and mutators
+// MARK: Or convenience initializers and mutators
 
-extension Nonatomic {
+extension Or {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nonatomic.self, from: data)
+        self = try newJSONDecoder().decode(Or.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9020,8 +11882,8 @@ extension Nonatomic {
     }
 
     func with(
-    ) -> Nonatomic {
-        return Nonatomic(
+    ) -> Or {
+        return Or(
         )
     }
 
@@ -9034,9 +11896,9 @@ extension Nonatomic {
     }
 }
 
-enum UnionNone: Codable {
+enum UnionOrEq: Codable {
     case double(Double)
-    case none(None)
+    case orEq(OrEq)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9044,11 +11906,11 @@ enum UnionNone: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(None.self) {
-            self = .none(x)
+        if let x = try? container.decode(OrEq.self) {
+            self = .orEq(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNone.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNone"))
+        throw DecodingError.typeMismatch(UnionOrEq.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOrEq"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9056,14 +11918,14 @@ enum UnionNone: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .none(let x):
+        case .orEq(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - None
-struct None: Codable {
+// MARK: - OrEq
+struct OrEq: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9072,11 +11934,11 @@ struct None: Codable {
     }
 }
 
-// MARK: None convenience initializers and mutators
+// MARK: OrEq convenience initializers and mutators
 
-extension None {
+extension OrEq {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(None.self, from: data)
+        self = try newJSONDecoder().decode(OrEq.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9091,8 +11953,8 @@ extension None {
     }
 
     func with(
-    ) -> None {
-        return None(
+    ) -> OrEq {
+        return OrEq(
         )
     }
 
@@ -9105,9 +11967,9 @@ extension None {
     }
 }
 
-enum UnionNonlocal: Codable {
+enum UnionOut: Codable {
     case double(Double)
-    case nonlocal(Nonlocal)
+    case out(Out)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9115,11 +11977,11 @@ enum UnionNonlocal: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Nonlocal.self) {
-            self = .nonlocal(x)
+        if let x = try? container.decode(Out.self) {
+            self = .out(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNonlocal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNonlocal"))
+        throw DecodingError.typeMismatch(UnionOut.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOut"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9127,14 +11989,14 @@ enum UnionNonlocal: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .nonlocal(let x):
+        case .out(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Nonlocal
-struct Nonlocal: Codable {
+// MARK: - Out
+struct Out: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9143,11 +12005,11 @@ struct Nonlocal: Codable {
     }
 }
 
-// MARK: Nonlocal convenience initializers and mutators
+// MARK: Out convenience initializers and mutators
 
-extension Nonlocal {
+extension Out {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nonlocal.self, from: data)
+        self = try newJSONDecoder().decode(Out.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9162,8 +12024,8 @@ extension Nonlocal {
     }
 
     func with(
-    ) -> Nonlocal {
-        return Nonlocal(
+    ) -> Out {
+        return Out(
         )
     }
 
@@ -9176,9 +12038,9 @@ extension Nonlocal {
     }
 }
 
-enum UnionNot: Codable {
+enum UnionPackage: Codable {
     case double(Double)
-    case not(Not)
+    case package(Package)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9186,11 +12048,11 @@ enum UnionNot: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Not.self) {
-            self = .not(x)
+        if let x = try? container.decode(Package.self) {
+            self = .package(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNot.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNot"))
+        throw DecodingError.typeMismatch(UnionPackage.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPackage"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9198,14 +12060,14 @@ enum UnionNot: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .not(let x):
+        case .package(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Not
-struct Not: Codable {
+// MARK: - Package
+struct Package: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9214,11 +12076,11 @@ struct Not: Codable {
     }
 }
 
-// MARK: Not convenience initializers and mutators
+// MARK: Package convenience initializers and mutators
 
-extension Not {
+extension Package {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Not.self, from: data)
+        self = try newJSONDecoder().decode(Package.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9233,8 +12095,8 @@ extension Not {
     }
 
     func with(
-    ) -> Not {
-        return Not(
+    ) -> Package {
+        return Package(
         )
     }
 
@@ -9247,9 +12109,9 @@ extension Not {
     }
 }
 
-enum UnionNotEq: Codable {
+enum UnionParams: Codable {
     case double(Double)
-    case notEq(NotEq)
+    case params(Params)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9257,11 +12119,11 @@ enum UnionNotEq: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(NotEq.self) {
-            self = .notEq(x)
+        if let x = try? container.decode(Params.self) {
+            self = .params(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNotEq.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNotEq"))
+        throw DecodingError.typeMismatch(UnionParams.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionParams"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9269,14 +12131,14 @@ enum UnionNotEq: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .notEq(let x):
+        case .params(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - NotEq
-struct NotEq: Codable {
+// MARK: - Params
+struct Params: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9285,11 +12147,11 @@ struct NotEq: Codable {
     }
 }
 
-// MARK: NotEq convenience initializers and mutators
+// MARK: Params convenience initializers and mutators
 
-extension NotEq {
+extension Params {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(NotEq.self, from: data)
+        self = try newJSONDecoder().decode(Params.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9304,8 +12166,8 @@ extension NotEq {
     }
 
     func with(
-    ) -> NotEq {
-        return NotEq(
+    ) -> Params {
+        return Params(
         )
     }
 
@@ -9318,9 +12180,9 @@ extension NotEq {
     }
 }
 
-enum UnionNSString: Codable {
+enum UnionPass: Codable {
     case double(Double)
-    case nsString(NSString)
+    case pass(Pass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9328,11 +12190,11 @@ enum UnionNSString: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(NSString.self) {
-            self = .nsString(x)
+        if let x = try? container.decode(Pass.self) {
+            self = .pass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNSString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNSString"))
+        throw DecodingError.typeMismatch(UnionPass.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPass"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9340,14 +12202,14 @@ enum UnionNSString: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .nsString(let x):
+        case .pass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - NSString
-struct NSString: Codable {
+// MARK: - Pass
+struct Pass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9356,11 +12218,11 @@ struct NSString: Codable {
     }
 }
 
-// MARK: NSString convenience initializers and mutators
+// MARK: Pass convenience initializers and mutators
 
-extension NSString {
+extension Pass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(NSString.self, from: data)
+        self = try newJSONDecoder().decode(Pass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9375,8 +12237,8 @@ extension NSString {
     }
 
     func with(
-    ) -> NSString {
-        return NSString(
+    ) -> Pass {
+        return Pass(
         )
     }
 
@@ -9389,9 +12251,9 @@ extension NSString {
     }
 }
 
-enum UnionNULL: Codable {
+enum UnionPort: Codable {
     case double(Double)
-    case null(Null)
+    case port(Port)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9399,11 +12261,11 @@ enum UnionNULL: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Null.self) {
-            self = .null(x)
+        if let x = try? container.decode(Port.self) {
+            self = .port(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNULL.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNULL"))
+        throw DecodingError.typeMismatch(UnionPort.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPort"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9411,14 +12273,14 @@ enum UnionNULL: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .null(let x):
+        case .port(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Null
-struct Null: Codable {
+// MARK: - Port
+struct Port: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9427,11 +12289,11 @@ struct Null: Codable {
     }
 }
 
-// MARK: Null convenience initializers and mutators
+// MARK: Port convenience initializers and mutators
 
-extension Null {
+extension Port {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Null.self, from: data)
+        self = try newJSONDecoder().decode(Port.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9446,8 +12308,8 @@ extension Null {
     }
 
     func with(
-    ) -> Null {
-        return Null(
+    ) -> Port {
+        return Port(
         )
     }
 
@@ -9460,9 +12322,9 @@ extension Null {
     }
 }
 
-enum UnionNullptr: Codable {
+enum UnionPrint: Codable {
     case double(Double)
-    case nullptr(Nullptr)
+    case print(Print)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9470,11 +12332,11 @@ enum UnionNullptr: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Nullptr.self) {
-            self = .nullptr(x)
+        if let x = try? container.decode(Print.self) {
+            self = .print(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNullptr.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNullptr"))
+        throw DecodingError.typeMismatch(UnionPrint.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPrint"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9482,14 +12344,14 @@ enum UnionNullptr: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .nullptr(let x):
+        case .print(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Nullptr
-struct Nullptr: Codable {
+// MARK: - Print
+struct Print: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9498,11 +12360,11 @@ struct Nullptr: Codable {
     }
 }
 
-// MARK: Nullptr convenience initializers and mutators
+// MARK: Print convenience initializers and mutators
 
-extension Nullptr {
+extension Print {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nullptr.self, from: data)
+        self = try newJSONDecoder().decode(Print.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9517,8 +12379,8 @@ extension Nullptr {
     }
 
     func with(
-    ) -> Nullptr {
-        return Nullptr(
+    ) -> Print {
+        return Print(
         )
     }
 
@@ -9531,9 +12393,9 @@ extension Nullptr {
     }
 }
 
-enum UnionNumber: Codable {
+enum UnionPrintMembers: Codable {
     case double(Double)
-    case number(Number)
+    case printMembers(PrintMembers)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9541,11 +12403,11 @@ enum UnionNumber: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Number.self) {
-            self = .number(x)
+        if let x = try? container.decode(PrintMembers.self) {
+            self = .printMembers(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionNumber.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionNumber"))
+        throw DecodingError.typeMismatch(UnionPrintMembers.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPrintMembers"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9553,14 +12415,14 @@ enum UnionNumber: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .number(let x):
+        case .printMembers(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Number
-struct Number: Codable {
+// MARK: - PrintMembers
+struct PrintMembers: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9569,11 +12431,11 @@ struct Number: Codable {
     }
 }
 
-// MARK: Number convenience initializers and mutators
+// MARK: PrintMembers convenience initializers and mutators
 
-extension Number {
+extension PrintMembers {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Number.self, from: data)
+        self = try newJSONDecoder().decode(PrintMembers.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9588,8 +12450,8 @@ extension Number {
     }
 
     func with(
-    ) -> Number {
-        return Number(
+    ) -> PrintMembers {
+        return PrintMembers(
         )
     }
 
@@ -9602,9 +12464,9 @@ extension Number {
     }
 }
 
-enum UnionObject: Codable {
+enum UnionPrintf: Codable {
     case double(Double)
-    case object(Object)
+    case printf(Printf)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9612,11 +12474,11 @@ enum UnionObject: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Object.self) {
-            self = .object(x)
+        if let x = try? container.decode(Printf.self) {
+            self = .printf(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionObject.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionObject"))
+        throw DecodingError.typeMismatch(UnionPrintf.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPrintf"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9624,14 +12486,14 @@ enum UnionObject: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .object(let x):
+        case .printf(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Object
-struct Object: Codable {
+// MARK: - Printf
+struct Printf: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9640,11 +12502,11 @@ struct Object: Codable {
     }
 }
 
-// MARK: Object convenience initializers and mutators
+// MARK: Printf convenience initializers and mutators
 
-extension Object {
+extension Printf {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Object.self, from: data)
+        self = try newJSONDecoder().decode(Printf.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9659,8 +12521,8 @@ extension Object {
     }
 
     func with(
-    ) -> Object {
-        return Object(
+    ) -> Printf {
+        return Printf(
         )
     }
 
@@ -9673,9 +12535,9 @@ extension Object {
     }
 }
 
-enum UnionOf: Codable {
+enum UnionProtected: Codable {
     case double(Double)
-    case of(Of)
+    case protected(Protected)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9683,11 +12545,11 @@ enum UnionOf: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Of.self) {
-            self = .of(x)
+        if let x = try? container.decode(Protected.self) {
+            self = .protected(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionOf.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOf"))
+        throw DecodingError.typeMismatch(UnionProtected.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionProtected"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9695,14 +12557,14 @@ enum UnionOf: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .of(let x):
+        case .protected(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Of
-struct Of: Codable {
+// MARK: - Protected
+struct Protected: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9711,11 +12573,11 @@ struct Of: Codable {
     }
 }
 
-// MARK: Of convenience initializers and mutators
+// MARK: Protected convenience initializers and mutators
 
-extension Of {
+extension Protected {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Of.self, from: data)
+        self = try newJSONDecoder().decode(Protected.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9730,8 +12592,8 @@ extension Of {
     }
 
     func with(
-    ) -> Of {
-        return Of(
+    ) -> Protected {
+        return Protected(
         )
     }
 
@@ -9744,9 +12606,9 @@ extension Of {
     }
 }
 
-enum UnionOneway: Codable {
+enum UnionBoolUnion: Codable {
     case double(Double)
-    case oneway(Oneway)
+    case unionBoolBool(UnionBoolBool)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9754,11 +12616,11 @@ enum UnionOneway: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Oneway.self) {
-            self = .oneway(x)
+        if let x = try? container.decode(UnionBoolBool.self) {
+            self = .unionBoolBool(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionOneway.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOneway"))
+        throw DecodingError.typeMismatch(UnionBoolUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionBoolUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9766,14 +12628,14 @@ enum UnionOneway: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .oneway(let x):
+        case .unionBoolBool(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Oneway
-struct Oneway: Codable {
+// MARK: - UnionBoolBool
+struct UnionBoolBool: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9782,11 +12644,11 @@ struct Oneway: Codable {
     }
 }
 
-// MARK: Oneway convenience initializers and mutators
+// MARK: UnionBoolBool convenience initializers and mutators
 
-extension Oneway {
+extension UnionBoolBool {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Oneway.self, from: data)
+        self = try newJSONDecoder().decode(UnionBoolBool.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9801,8 +12663,8 @@ extension Oneway {
     }
 
     func with(
-    ) -> Oneway {
-        return Oneway(
+    ) -> UnionBoolBool {
+        return UnionBoolBool(
         )
     }
 
@@ -9815,36 +12677,36 @@ extension Oneway {
     }
 }
 
-enum UnionOr: Codable {
+enum UnionClassUnion: Codable {
+    case classClass(ClassClass)
     case double(Double)
-    case or(Or)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
         if let x = try? container.decode(Double.self) {
             self = .double(x)
             return
-        }
-        if let x = try? container.decode(Or.self) {
-            self = .or(x)
+        }
+        if let x = try? container.decode(ClassClass.self) {
+            self = .classClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionOr.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOr"))
+        throw DecodingError.typeMismatch(UnionClassUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionClassUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .double(let x):
+        case .classClass(let x):
             try container.encode(x)
-        case .or(let x):
+        case .double(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Or
-struct Or: Codable {
+// MARK: - ClassClass
+struct ClassClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9853,11 +12715,11 @@ struct Or: Codable {
     }
 }
 
-// MARK: Or convenience initializers and mutators
+// MARK: ClassClass convenience initializers and mutators
 
-extension Or {
+extension ClassClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Or.self, from: data)
+        self = try newJSONDecoder().decode(ClassClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9872,8 +12734,8 @@ extension Or {
     }
 
     func with(
-    ) -> Or {
-        return Or(
+    ) -> ClassClass {
+        return ClassClass(
         )
     }
 
@@ -9886,9 +12748,9 @@ extension Or {
     }
 }
 
-enum UnionOrEq: Codable {
+enum UnionFalseUnion: Codable {
     case double(Double)
-    case orEq(OrEq)
+    case falseClass(FalseClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9896,11 +12758,11 @@ enum UnionOrEq: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(OrEq.self) {
-            self = .orEq(x)
+        if let x = try? container.decode(FalseClass.self) {
+            self = .falseClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionOrEq.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOrEq"))
+        throw DecodingError.typeMismatch(UnionFalseUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFalseUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9908,14 +12770,14 @@ enum UnionOrEq: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .orEq(let x):
+        case .falseClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - OrEq
-struct OrEq: Codable {
+// MARK: - FalseClass
+struct FalseClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9924,11 +12786,11 @@ struct OrEq: Codable {
     }
 }
 
-// MARK: OrEq convenience initializers and mutators
+// MARK: FalseClass convenience initializers and mutators
 
-extension OrEq {
+extension FalseClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(OrEq.self, from: data)
+        self = try newJSONDecoder().decode(FalseClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9943,8 +12805,8 @@ extension OrEq {
     }
 
     func with(
-    ) -> OrEq {
-        return OrEq(
+    ) -> FalseClass {
+        return FalseClass(
         )
     }
 
@@ -9957,9 +12819,9 @@ extension OrEq {
     }
 }
 
-enum UnionOut: Codable {
+enum UnionProtocolUnion: Codable {
     case double(Double)
-    case out(Out)
+    case unionProtocolProtocol(UnionProtocolProtocol)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -9967,11 +12829,11 @@ enum UnionOut: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Out.self) {
-            self = .out(x)
+        if let x = try? container.decode(UnionProtocolProtocol.self) {
+            self = .unionProtocolProtocol(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionOut.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionOut"))
+        throw DecodingError.typeMismatch(UnionProtocolUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionProtocolUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -9979,14 +12841,14 @@ enum UnionOut: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .out(let x):
+        case .unionProtocolProtocol(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Out
-struct Out: Codable {
+// MARK: - UnionProtocolProtocol
+struct UnionProtocolProtocol: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -9995,11 +12857,11 @@ struct Out: Codable {
     }
 }
 
-// MARK: Out convenience initializers and mutators
+// MARK: UnionProtocolProtocol convenience initializers and mutators
 
-extension Out {
+extension UnionProtocolProtocol {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Out.self, from: data)
+        self = try newJSONDecoder().decode(UnionProtocolProtocol.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10014,8 +12876,8 @@ extension Out {
     }
 
     func with(
-    ) -> Out {
-        return Out(
+    ) -> UnionProtocolProtocol {
+        return UnionProtocolProtocol(
         )
     }
 
@@ -10028,9 +12890,9 @@ extension Out {
     }
 }
 
-enum UnionPackage: Codable {
+enum UnionSelfUnion: Codable {
     case double(Double)
-    case package(Package)
+    case unionSelfSelf(UnionSelfSelf)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10038,11 +12900,11 @@ enum UnionPackage: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Package.self) {
-            self = .package(x)
+        if let x = try? container.decode(UnionSelfSelf.self) {
+            self = .unionSelfSelf(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionPackage.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPackage"))
+        throw DecodingError.typeMismatch(UnionSelfUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSelfUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10050,14 +12912,14 @@ enum UnionPackage: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .package(let x):
+        case .unionSelfSelf(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Package
-struct Package: Codable {
+// MARK: - UnionSelfSelf
+struct UnionSelfSelf: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10066,11 +12928,11 @@ struct Package: Codable {
     }
 }
 
-// MARK: Package convenience initializers and mutators
+// MARK: UnionSelfSelf convenience initializers and mutators
 
-extension Package {
+extension UnionSelfSelf {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Package.self, from: data)
+        self = try newJSONDecoder().decode(UnionSelfSelf.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10085,8 +12947,8 @@ extension Package {
     }
 
     func with(
-    ) -> Package {
-        return Package(
+    ) -> UnionSelfSelf {
+        return UnionSelfSelf(
         )
     }
 
@@ -10099,9 +12961,9 @@ extension Package {
     }
 }
 
-enum UnionParams: Codable {
+enum UnionTrueUnion: Codable {
     case double(Double)
-    case params(Params)
+    case trueClass(TrueClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10109,11 +12971,11 @@ enum UnionParams: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Params.self) {
-            self = .params(x)
+        if let x = try? container.decode(TrueClass.self) {
+            self = .trueClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionParams.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionParams"))
+        throw DecodingError.typeMismatch(UnionTrueUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTrueUnion"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10121,14 +12983,14 @@ enum UnionParams: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .params(let x):
+        case .trueClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Params
-struct Params: Codable {
+// MARK: - TrueClass
+struct TrueClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10137,11 +12999,11 @@ struct Params: Codable {
     }
 }
 
-// MARK: Params convenience initializers and mutators
+// MARK: TrueClass convenience initializers and mutators
 
-extension Params {
+extension TrueClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Params.self, from: data)
+        self = try newJSONDecoder().decode(TrueClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10156,8 +13018,8 @@ extension Params {
     }
 
     func with(
-    ) -> Params {
-        return Params(
+    ) -> TrueClass {
+        return TrueClass(
         )
     }
 
@@ -10170,9 +13032,9 @@ extension Params {
     }
 }
 
-enum UnionPass: Codable {
+enum UnionQuicktype: Codable {
     case double(Double)
-    case pass(Pass)
+    case quicktype(Quicktype)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10180,11 +13042,11 @@ enum UnionPass: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Pass.self) {
-            self = .pass(x)
+        if let x = try? container.decode(Quicktype.self) {
+            self = .quicktype(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionPass.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPass"))
+        throw DecodingError.typeMismatch(UnionQuicktype.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionQuicktype"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10192,14 +13054,14 @@ enum UnionPass: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .pass(let x):
+        case .quicktype(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Pass
-struct Pass: Codable {
+// MARK: - Quicktype
+struct Quicktype: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10208,11 +13070,11 @@ struct Pass: Codable {
     }
 }
 
-// MARK: Pass convenience initializers and mutators
+// MARK: Quicktype convenience initializers and mutators
 
-extension Pass {
+extension Quicktype {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Pass.self, from: data)
+        self = try newJSONDecoder().decode(Quicktype.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10227,8 +13089,8 @@ extension Pass {
     }
 
     func with(
-    ) -> Pass {
-        return Pass(
+    ) -> Quicktype {
+        return Quicktype(
         )
     }
 
@@ -10241,9 +13103,9 @@ extension Pass {
     }
 }
 
-enum UnionPort: Codable {
+enum UnionRaise: Codable {
     case double(Double)
-    case port(Port)
+    case raise(Raise)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10251,11 +13113,11 @@ enum UnionPort: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Port.self) {
-            self = .port(x)
+        if let x = try? container.decode(Raise.self) {
+            self = .raise(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionPort.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPort"))
+        throw DecodingError.typeMismatch(UnionRaise.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRaise"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10263,14 +13125,14 @@ enum UnionPort: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .port(let x):
+        case .raise(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Port
-struct Port: Codable {
+// MARK: - Raise
+struct Raise: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10279,11 +13141,11 @@ struct Port: Codable {
     }
 }
 
-// MARK: Port convenience initializers and mutators
+// MARK: Raise convenience initializers and mutators
 
-extension Port {
+extension Raise {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Port.self, from: data)
+        self = try newJSONDecoder().decode(Raise.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10298,8 +13160,8 @@ extension Port {
     }
 
     func with(
-    ) -> Port {
-        return Port(
+    ) -> Raise {
+        return Raise(
         )
     }
 
@@ -10312,9 +13174,9 @@ extension Port {
     }
 }
 
-enum UnionPrint: Codable {
+enum UnionRange: Codable {
     case double(Double)
-    case print(Print)
+    case range(Range)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10322,11 +13184,11 @@ enum UnionPrint: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Print.self) {
-            self = .print(x)
+        if let x = try? container.decode(Range.self) {
+            self = .range(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionPrint.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPrint"))
+        throw DecodingError.typeMismatch(UnionRange.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRange"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10334,14 +13196,14 @@ enum UnionPrint: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .print(let x):
+        case .range(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Print
-struct Print: Codable {
+// MARK: - Range
+struct Range: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10350,11 +13212,11 @@ struct Print: Codable {
     }
 }
 
-// MARK: Print convenience initializers and mutators
+// MARK: Range convenience initializers and mutators
 
-extension Print {
+extension Range {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Print.self, from: data)
+        self = try newJSONDecoder().decode(Range.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10369,8 +13231,8 @@ extension Print {
     }
 
     func with(
-    ) -> Print {
-        return Print(
+    ) -> Range {
+        return Range(
         )
     }
 
@@ -10383,9 +13245,9 @@ extension Print {
     }
 }
 
-enum UnionPrintf: Codable {
+enum UnionReadonly: Codable {
     case double(Double)
-    case printf(Printf)
+    case readonly(Readonly)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10393,11 +13255,11 @@ enum UnionPrintf: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Printf.self) {
-            self = .printf(x)
+        if let x = try? container.decode(Readonly.self) {
+            self = .readonly(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionPrintf.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionPrintf"))
+        throw DecodingError.typeMismatch(UnionReadonly.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionReadonly"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10405,14 +13267,14 @@ enum UnionPrintf: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .printf(let x):
+        case .readonly(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Printf
-struct Printf: Codable {
+// MARK: - Readonly
+struct Readonly: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10421,11 +13283,11 @@ struct Printf: Codable {
     }
 }
 
-// MARK: Printf convenience initializers and mutators
+// MARK: Readonly convenience initializers and mutators
 
-extension Printf {
+extension Readonly {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Printf.self, from: data)
+        self = try newJSONDecoder().decode(Readonly.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10440,8 +13302,8 @@ extension Printf {
     }
 
     func with(
-    ) -> Printf {
-        return Printf(
+    ) -> Readonly {
+        return Readonly(
         )
     }
 
@@ -10454,9 +13316,9 @@ extension Printf {
     }
 }
 
-enum UnionProtected: Codable {
+enum UnionRef: Codable {
     case double(Double)
-    case protected(Protected)
+    case ref(Ref)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10464,11 +13326,11 @@ enum UnionProtected: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Protected.self) {
-            self = .protected(x)
+        if let x = try? container.decode(Ref.self) {
+            self = .ref(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionProtected.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionProtected"))
+        throw DecodingError.typeMismatch(UnionRef.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRef"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10476,14 +13338,14 @@ enum UnionProtected: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .protected(let x):
+        case .ref(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Protected
-struct Protected: Codable {
+// MARK: - Ref
+struct Ref: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10492,11 +13354,11 @@ struct Protected: Codable {
     }
 }
 
-// MARK: Protected convenience initializers and mutators
+// MARK: Ref convenience initializers and mutators
 
-extension Protected {
+extension Ref {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Protected.self, from: data)
+        self = try newJSONDecoder().decode(Ref.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10511,8 +13373,8 @@ extension Protected {
     }
 
     func with(
-    ) -> Protected {
-        return Protected(
+    ) -> Ref {
+        return Ref(
         )
     }
 
@@ -10525,9 +13387,9 @@ extension Protected {
     }
 }
 
-enum UnionBoolUnion: Codable {
+enum UnionRegExp: Codable {
     case double(Double)
-    case unionBoolBool(UnionBoolBool)
+    case regExp(RegExp)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10535,11 +13397,11 @@ enum UnionBoolUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(UnionBoolBool.self) {
-            self = .unionBoolBool(x)
+        if let x = try? container.decode(RegExp.self) {
+            self = .regExp(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionBoolUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionBoolUnion"))
+        throw DecodingError.typeMismatch(UnionRegExp.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRegExp"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10547,14 +13409,14 @@ enum UnionBoolUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .unionBoolBool(let x):
+        case .regExp(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - UnionBoolBool
-struct UnionBoolBool: Codable {
+// MARK: - RegExp
+struct RegExp: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10563,11 +13425,11 @@ struct UnionBoolBool: Codable {
     }
 }
 
-// MARK: UnionBoolBool convenience initializers and mutators
+// MARK: RegExp convenience initializers and mutators
 
-extension UnionBoolBool {
+extension RegExp {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(UnionBoolBool.self, from: data)
+        self = try newJSONDecoder().decode(RegExp.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10582,8 +13444,8 @@ extension UnionBoolBool {
     }
 
     func with(
-    ) -> UnionBoolBool {
-        return UnionBoolBool(
+    ) -> RegExp {
+        return RegExp(
         )
     }
 
@@ -10596,9 +13458,9 @@ extension UnionBoolBool {
     }
 }
 
-enum UnionClassUnion: Codable {
-    case classClass(ClassClass)
+enum UnionRegister: Codable {
     case double(Double)
+    case register(Register)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10606,26 +13468,26 @@ enum UnionClassUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(ClassClass.self) {
-            self = .classClass(x)
+        if let x = try? container.decode(Register.self) {
+            self = .register(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionClassUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionClassUnion"))
+        throw DecodingError.typeMismatch(UnionRegister.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRegister"))
     }
 
     func encode(to encoder: Encoder) throws {
         var container = encoder.singleValueContainer()
         switch self {
-        case .classClass(let x):
-            try container.encode(x)
         case .double(let x):
             try container.encode(x)
+        case .register(let x):
+            try container.encode(x)
         }
     }
 }
 
-// MARK: - ClassClass
-struct ClassClass: Codable {
+// MARK: - Register
+struct Register: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10634,11 +13496,11 @@ struct ClassClass: Codable {
     }
 }
 
-// MARK: ClassClass convenience initializers and mutators
+// MARK: Register convenience initializers and mutators
 
-extension ClassClass {
+extension Register {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ClassClass.self, from: data)
+        self = try newJSONDecoder().decode(Register.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10653,8 +13515,8 @@ extension ClassClass {
     }
 
     func with(
-    ) -> ClassClass {
-        return ClassClass(
+    ) -> Register {
+        return Register(
         )
     }
 
@@ -10667,9 +13529,9 @@ extension ClassClass {
     }
 }
 
-enum UnionFalseUnion: Codable {
+enum UnionReinterpretCast: Codable {
     case double(Double)
-    case falseClass(FalseClass)
+    case reinterpretCast(ReinterpretCast)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10677,11 +13539,11 @@ enum UnionFalseUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(FalseClass.self) {
-            self = .falseClass(x)
+        if let x = try? container.decode(ReinterpretCast.self) {
+            self = .reinterpretCast(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionFalseUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionFalseUnion"))
+        throw DecodingError.typeMismatch(UnionReinterpretCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionReinterpretCast"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10689,14 +13551,14 @@ enum UnionFalseUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .falseClass(let x):
+        case .reinterpretCast(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - FalseClass
-struct FalseClass: Codable {
+// MARK: - ReinterpretCast
+struct ReinterpretCast: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10705,11 +13567,11 @@ struct FalseClass: Codable {
     }
 }
 
-// MARK: FalseClass convenience initializers and mutators
+// MARK: ReinterpretCast convenience initializers and mutators
 
-extension FalseClass {
+extension ReinterpretCast {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(FalseClass.self, from: data)
+        self = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10724,8 +13586,8 @@ extension FalseClass {
     }
 
     func with(
-    ) -> FalseClass {
-        return FalseClass(
+    ) -> ReinterpretCast {
+        return ReinterpretCast(
         )
     }
 
@@ -10738,9 +13600,9 @@ extension FalseClass {
     }
 }
 
-enum UnionProtocolUnion: Codable {
+enum UnionRequire: Codable {
     case double(Double)
-    case unionProtocolProtocol(UnionProtocolProtocol)
+    case require(Require)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10748,11 +13610,11 @@ enum UnionProtocolUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(UnionProtocolProtocol.self) {
-            self = .unionProtocolProtocol(x)
+        if let x = try? container.decode(Require.self) {
+            self = .require(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionProtocolUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionProtocolUnion"))
+        throw DecodingError.typeMismatch(UnionRequire.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRequire"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10760,14 +13622,14 @@ enum UnionProtocolUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .unionProtocolProtocol(let x):
+        case .require(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - UnionProtocolProtocol
-struct UnionProtocolProtocol: Codable {
+// MARK: - Require
+struct Require: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10776,11 +13638,11 @@ struct UnionProtocolProtocol: Codable {
     }
 }
 
-// MARK: UnionProtocolProtocol convenience initializers and mutators
+// MARK: Require convenience initializers and mutators
 
-extension UnionProtocolProtocol {
+extension Require {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(UnionProtocolProtocol.self, from: data)
+        self = try newJSONDecoder().decode(Require.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10795,8 +13657,8 @@ extension UnionProtocolProtocol {
     }
 
     func with(
-    ) -> UnionProtocolProtocol {
-        return UnionProtocolProtocol(
+    ) -> Require {
+        return Require(
         )
     }
 
@@ -10809,9 +13671,9 @@ extension UnionProtocolProtocol {
     }
 }
 
-enum UnionSelfUnion: Codable {
+enum UnionRequires: Codable {
     case double(Double)
-    case unionSelfSelf(UnionSelfSelf)
+    case requires(Requires)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10819,11 +13681,11 @@ enum UnionSelfUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(UnionSelfSelf.self) {
-            self = .unionSelfSelf(x)
+        if let x = try? container.decode(Requires.self) {
+            self = .requires(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSelfUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSelfUnion"))
+        throw DecodingError.typeMismatch(UnionRequires.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRequires"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10831,14 +13693,14 @@ enum UnionSelfUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .unionSelfSelf(let x):
+        case .requires(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - UnionSelfSelf
-struct UnionSelfSelf: Codable {
+// MARK: - Requires
+struct Requires: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10847,11 +13709,11 @@ struct UnionSelfSelf: Codable {
     }
 }
 
-// MARK: UnionSelfSelf convenience initializers and mutators
+// MARK: Requires convenience initializers and mutators
 
-extension UnionSelfSelf {
+extension Requires {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(UnionSelfSelf.self, from: data)
+        self = try newJSONDecoder().decode(Requires.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10866,8 +13728,8 @@ extension UnionSelfSelf {
     }
 
     func with(
-    ) -> UnionSelfSelf {
-        return UnionSelfSelf(
+    ) -> Requires {
+        return Requires(
         )
     }
 
@@ -10880,9 +13742,9 @@ extension UnionSelfSelf {
     }
 }
 
-enum UnionTrueUnion: Codable {
+enum UnionRestrict: Codable {
     case double(Double)
-    case trueClass(TrueClass)
+    case restrict(Restrict)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10890,11 +13752,11 @@ enum UnionTrueUnion: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(TrueClass.self) {
-            self = .trueClass(x)
+        if let x = try? container.decode(Restrict.self) {
+            self = .restrict(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionTrueUnion.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTrueUnion"))
+        throw DecodingError.typeMismatch(UnionRestrict.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRestrict"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10902,14 +13764,14 @@ enum UnionTrueUnion: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .trueClass(let x):
+        case .restrict(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - TrueClass
-struct TrueClass: Codable {
+// MARK: - Restrict
+struct Restrict: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10918,11 +13780,11 @@ struct TrueClass: Codable {
     }
 }
 
-// MARK: TrueClass convenience initializers and mutators
+// MARK: Restrict convenience initializers and mutators
 
-extension TrueClass {
+extension Restrict {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TrueClass.self, from: data)
+        self = try newJSONDecoder().decode(Restrict.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10937,8 +13799,8 @@ extension TrueClass {
     }
 
     func with(
-    ) -> TrueClass {
-        return TrueClass(
+    ) -> Restrict {
+        return Restrict(
         )
     }
 
@@ -10951,9 +13813,9 @@ extension TrueClass {
     }
 }
 
-enum UnionQuicktype: Codable {
+enum UnionRetain: Codable {
     case double(Double)
-    case quicktype(Quicktype)
+    case retain(Retain)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -10961,11 +13823,11 @@ enum UnionQuicktype: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Quicktype.self) {
-            self = .quicktype(x)
+        if let x = try? container.decode(Retain.self) {
+            self = .retain(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionQuicktype.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionQuicktype"))
+        throw DecodingError.typeMismatch(UnionRetain.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRetain"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -10973,14 +13835,14 @@ enum UnionQuicktype: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .quicktype(let x):
+        case .retain(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Quicktype
-struct Quicktype: Codable {
+// MARK: - Retain
+struct Retain: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -10989,11 +13851,11 @@ struct Quicktype: Codable {
     }
 }
 
-// MARK: Quicktype convenience initializers and mutators
+// MARK: Retain convenience initializers and mutators
 
-extension Quicktype {
+extension Retain {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Quicktype.self, from: data)
+        self = try newJSONDecoder().decode(Retain.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11008,8 +13870,8 @@ extension Quicktype {
     }
 
     func with(
-    ) -> Quicktype {
-        return Quicktype(
+    ) -> Retain {
+        return Retain(
         )
     }
 
@@ -11022,9 +13884,9 @@ extension Quicktype {
     }
 }
 
-enum UnionRaise: Codable {
+enum UnionRuntimeType: Codable {
     case double(Double)
-    case raise(Raise)
+    case runtimeType(RuntimeType)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11032,11 +13894,11 @@ enum UnionRaise: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Raise.self) {
-            self = .raise(x)
+        if let x = try? container.decode(RuntimeType.self) {
+            self = .runtimeType(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRaise.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRaise"))
+        throw DecodingError.typeMismatch(UnionRuntimeType.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRuntimeType"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11044,14 +13906,14 @@ enum UnionRaise: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .raise(let x):
+        case .runtimeType(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Raise
-struct Raise: Codable {
+// MARK: - RuntimeType
+struct RuntimeType: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11060,11 +13922,11 @@ struct Raise: Codable {
     }
 }
 
-// MARK: Raise convenience initializers and mutators
+// MARK: RuntimeType convenience initializers and mutators
 
-extension Raise {
+extension RuntimeType {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Raise.self, from: data)
+        self = try newJSONDecoder().decode(RuntimeType.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11079,8 +13941,8 @@ extension Raise {
     }
 
     func with(
-    ) -> Raise {
-        return Raise(
+    ) -> RuntimeType {
+        return RuntimeType(
         )
     }
 
@@ -11093,9 +13955,9 @@ extension Raise {
     }
 }
 
-enum UnionRange: Codable {
+enum UnionS: Codable {
     case double(Double)
-    case range(Range)
+    case s(S)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11103,11 +13965,11 @@ enum UnionRange: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Range.self) {
-            self = .range(x)
+        if let x = try? container.decode(S.self) {
+            self = .s(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRange.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRange"))
+        throw DecodingError.typeMismatch(UnionS.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionS"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11115,14 +13977,14 @@ enum UnionRange: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .range(let x):
+        case .s(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Range
-struct Range: Codable {
+// MARK: - S
+struct S: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11131,11 +13993,11 @@ struct Range: Codable {
     }
 }
 
-// MARK: Range convenience initializers and mutators
+// MARK: S convenience initializers and mutators
 
-extension Range {
+extension S {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Range.self, from: data)
+        self = try newJSONDecoder().decode(S.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11150,8 +14012,8 @@ extension Range {
     }
 
     func with(
-    ) -> Range {
-        return Range(
+    ) -> S {
+        return S(
         )
     }
 
@@ -11164,9 +14026,9 @@ extension Range {
     }
 }
 
-enum UnionReadonly: Codable {
+enum UnionSbyte: Codable {
     case double(Double)
-    case readonly(Readonly)
+    case sbyte(Sbyte)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11174,11 +14036,11 @@ enum UnionReadonly: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Readonly.self) {
-            self = .readonly(x)
+        if let x = try? container.decode(Sbyte.self) {
+            self = .sbyte(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionReadonly.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionReadonly"))
+        throw DecodingError.typeMismatch(UnionSbyte.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSbyte"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11186,14 +14048,14 @@ enum UnionReadonly: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .readonly(let x):
+        case .sbyte(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Readonly
-struct Readonly: Codable {
+// MARK: - Sbyte
+struct Sbyte: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11202,11 +14064,11 @@ struct Readonly: Codable {
     }
 }
 
-// MARK: Readonly convenience initializers and mutators
+// MARK: Sbyte convenience initializers and mutators
 
-extension Readonly {
+extension Sbyte {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Readonly.self, from: data)
+        self = try newJSONDecoder().decode(Sbyte.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11221,8 +14083,8 @@ extension Readonly {
     }
 
     func with(
-    ) -> Readonly {
-        return Readonly(
+    ) -> Sbyte {
+        return Sbyte(
         )
     }
 
@@ -11235,9 +14097,9 @@ extension Readonly {
     }
 }
 
-enum UnionRef: Codable {
+enum UnionSealed: Codable {
     case double(Double)
-    case ref(Ref)
+    case sealed(Sealed)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11245,11 +14107,11 @@ enum UnionRef: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Ref.self) {
-            self = .ref(x)
+        if let x = try? container.decode(Sealed.self) {
+            self = .sealed(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRef.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRef"))
+        throw DecodingError.typeMismatch(UnionSealed.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSealed"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11257,14 +14119,14 @@ enum UnionRef: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .ref(let x):
+        case .sealed(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Ref
-struct Ref: Codable {
+// MARK: - Sealed
+struct Sealed: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11273,11 +14135,11 @@ struct Ref: Codable {
     }
 }
 
-// MARK: Ref convenience initializers and mutators
+// MARK: Sealed convenience initializers and mutators
 
-extension Ref {
+extension Sealed {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Ref.self, from: data)
+        self = try newJSONDecoder().decode(Sealed.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11292,8 +14154,8 @@ extension Ref {
     }
 
     func with(
-    ) -> Ref {
-        return Ref(
+    ) -> Sealed {
+        return Sealed(
         )
     }
 
@@ -11306,9 +14168,9 @@ extension Ref {
     }
 }
 
-enum UnionRegister: Codable {
+enum UnionSEL: Codable {
     case double(Double)
-    case register(Register)
+    case sel(Sel)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11316,11 +14178,11 @@ enum UnionRegister: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Register.self) {
-            self = .register(x)
+        if let x = try? container.decode(Sel.self) {
+            self = .sel(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRegister.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRegister"))
+        throw DecodingError.typeMismatch(UnionSEL.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSEL"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11328,14 +14190,14 @@ enum UnionRegister: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .register(let x):
+        case .sel(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Register
-struct Register: Codable {
+// MARK: - Sel
+struct Sel: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11344,11 +14206,11 @@ struct Register: Codable {
     }
 }
 
-// MARK: Register convenience initializers and mutators
+// MARK: Sel convenience initializers and mutators
 
-extension Register {
+extension Sel {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Register.self, from: data)
+        self = try newJSONDecoder().decode(Sel.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11363,8 +14225,8 @@ extension Register {
     }
 
     func with(
-    ) -> Register {
-        return Register(
+    ) -> Sel {
+        return Sel(
         )
     }
 
@@ -11377,9 +14239,9 @@ extension Register {
     }
 }
 
-enum UnionReinterpretCast: Codable {
+enum UnionSelect: Codable {
     case double(Double)
-    case reinterpretCast(ReinterpretCast)
+    case select(Select)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11387,11 +14249,11 @@ enum UnionReinterpretCast: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(ReinterpretCast.self) {
-            self = .reinterpretCast(x)
+        if let x = try? container.decode(Select.self) {
+            self = .select(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionReinterpretCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionReinterpretCast"))
+        throw DecodingError.typeMismatch(UnionSelect.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSelect"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11399,14 +14261,14 @@ enum UnionReinterpretCast: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .reinterpretCast(let x):
+        case .select(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - ReinterpretCast
-struct ReinterpretCast: Codable {
+// MARK: - Select
+struct Select: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11415,11 +14277,11 @@ struct ReinterpretCast: Codable {
     }
 }
 
-// MARK: ReinterpretCast convenience initializers and mutators
+// MARK: Select convenience initializers and mutators
 
-extension ReinterpretCast {
+extension Select {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
+        self = try newJSONDecoder().decode(Select.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11434,8 +14296,8 @@ extension ReinterpretCast {
     }
 
     func with(
-    ) -> ReinterpretCast {
-        return ReinterpretCast(
+    ) -> Select {
+        return Select(
         )
     }
 
@@ -11448,9 +14310,9 @@ extension ReinterpretCast {
     }
 }
 
-enum UnionRequire: Codable {
+enum UnionSerialize: Codable {
     case double(Double)
-    case require(Require)
+    case serialize(Serialize)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11458,11 +14320,11 @@ enum UnionRequire: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Require.self) {
-            self = .require(x)
+        if let x = try? container.decode(Serialize.self) {
+            self = .serialize(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRequire.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRequire"))
+        throw DecodingError.typeMismatch(UnionSerialize.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSerialize"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11470,14 +14332,14 @@ enum UnionRequire: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .require(let x):
+        case .serialize(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Require
-struct Require: Codable {
+// MARK: - Serialize
+struct Serialize: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11486,11 +14348,11 @@ struct Require: Codable {
     }
 }
 
-// MARK: Require convenience initializers and mutators
+// MARK: Serialize convenience initializers and mutators
 
-extension Require {
+extension Serialize {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Require.self, from: data)
+        self = try newJSONDecoder().decode(Serialize.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11505,8 +14367,8 @@ extension Require {
     }
 
     func with(
-    ) -> Require {
-        return Require(
+    ) -> Serialize {
+        return Serialize(
         )
     }
 
@@ -11519,9 +14381,9 @@ extension Require {
     }
 }
 
-enum UnionRequires: Codable {
+enum UnionSerializerProvider: Codable {
     case double(Double)
-    case requires(Requires)
+    case serializerProvider(SerializerProvider)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11529,11 +14391,11 @@ enum UnionRequires: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Requires.self) {
-            self = .requires(x)
+        if let x = try? container.decode(SerializerProvider.self) {
+            self = .serializerProvider(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRequires.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRequires"))
+        throw DecodingError.typeMismatch(UnionSerializerProvider.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSerializerProvider"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11541,14 +14403,14 @@ enum UnionRequires: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .requires(let x):
+        case .serializerProvider(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Requires
-struct Requires: Codable {
+// MARK: - SerializerProvider
+struct SerializerProvider: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11557,11 +14419,11 @@ struct Requires: Codable {
     }
 }
 
-// MARK: Requires convenience initializers and mutators
+// MARK: SerializerProvider convenience initializers and mutators
 
-extension Requires {
+extension SerializerProvider {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Requires.self, from: data)
+        self = try newJSONDecoder().decode(SerializerProvider.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11576,8 +14438,8 @@ extension Requires {
     }
 
     func with(
-    ) -> Requires {
-        return Requires(
+    ) -> SerializerProvider {
+        return SerializerProvider(
         )
     }
 
@@ -11590,9 +14452,9 @@ extension Requires {
     }
 }
 
-enum UnionRestrict: Codable {
+enum UnionShort: Codable {
     case double(Double)
-    case restrict(Restrict)
+    case short(Short)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11600,11 +14462,11 @@ enum UnionRestrict: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Restrict.self) {
-            self = .restrict(x)
+        if let x = try? container.decode(Short.self) {
+            self = .short(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRestrict.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRestrict"))
+        throw DecodingError.typeMismatch(UnionShort.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionShort"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11612,14 +14474,14 @@ enum UnionRestrict: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .restrict(let x):
+        case .short(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Restrict
-struct Restrict: Codable {
+// MARK: - Short
+struct Short: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11628,11 +14490,11 @@ struct Restrict: Codable {
     }
 }
 
-// MARK: Restrict convenience initializers and mutators
+// MARK: Short convenience initializers and mutators
 
-extension Restrict {
+extension Short {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Restrict.self, from: data)
+        self = try newJSONDecoder().decode(Short.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11647,8 +14509,8 @@ extension Restrict {
     }
 
     func with(
-    ) -> Restrict {
-        return Restrict(
+    ) -> Short {
+        return Short(
         )
     }
 
@@ -11661,9 +14523,9 @@ extension Restrict {
     }
 }
 
-enum UnionRetain: Codable {
+enum UnionSigned: Codable {
     case double(Double)
-    case retain(Retain)
+    case signed(Signed)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11671,11 +14533,11 @@ enum UnionRetain: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Retain.self) {
-            self = .retain(x)
+        if let x = try? container.decode(Signed.self) {
+            self = .signed(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionRetain.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionRetain"))
+        throw DecodingError.typeMismatch(UnionSigned.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSigned"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11683,14 +14545,14 @@ enum UnionRetain: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .retain(let x):
+        case .signed(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Retain
-struct Retain: Codable {
+// MARK: - Signed
+struct Signed: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11699,11 +14561,11 @@ struct Retain: Codable {
     }
 }
 
-// MARK: Retain convenience initializers and mutators
+// MARK: Signed convenience initializers and mutators
 
-extension Retain {
+extension Signed {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Retain.self, from: data)
+        self = try newJSONDecoder().decode(Signed.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11718,8 +14580,8 @@ extension Retain {
     }
 
     func with(
-    ) -> Retain {
-        return Retain(
+    ) -> Signed {
+        return Signed(
         )
     }
 
@@ -11732,9 +14594,9 @@ extension Retain {
     }
 }
 
-enum UnionSbyte: Codable {
+enum UnionSimpleModule: Codable {
     case double(Double)
-    case sbyte(Sbyte)
+    case simpleModule(SimpleModule)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11742,11 +14604,11 @@ enum UnionSbyte: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Sbyte.self) {
-            self = .sbyte(x)
+        if let x = try? container.decode(SimpleModule.self) {
+            self = .simpleModule(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSbyte.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSbyte"))
+        throw DecodingError.typeMismatch(UnionSimpleModule.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSimpleModule"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11754,14 +14616,14 @@ enum UnionSbyte: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .sbyte(let x):
+        case .simpleModule(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Sbyte
-struct Sbyte: Codable {
+// MARK: - SimpleModule
+struct SimpleModule: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11770,11 +14632,11 @@ struct Sbyte: Codable {
     }
 }
 
-// MARK: Sbyte convenience initializers and mutators
+// MARK: SimpleModule convenience initializers and mutators
 
-extension Sbyte {
+extension SimpleModule {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sbyte.self, from: data)
+        self = try newJSONDecoder().decode(SimpleModule.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11789,8 +14651,8 @@ extension Sbyte {
     }
 
     func with(
-    ) -> Sbyte {
-        return Sbyte(
+    ) -> SimpleModule {
+        return SimpleModule(
         )
     }
 
@@ -11803,9 +14665,9 @@ extension Sbyte {
     }
 }
 
-enum UnionSealed: Codable {
+enum UnionSizeof: Codable {
     case double(Double)
-    case sealed(Sealed)
+    case sizeof(Sizeof)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11813,11 +14675,11 @@ enum UnionSealed: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Sealed.self) {
-            self = .sealed(x)
+        if let x = try? container.decode(Sizeof.self) {
+            self = .sizeof(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSealed.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSealed"))
+        throw DecodingError.typeMismatch(UnionSizeof.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSizeof"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11825,14 +14687,14 @@ enum UnionSealed: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .sealed(let x):
+        case .sizeof(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Sealed
-struct Sealed: Codable {
+// MARK: - Sizeof
+struct Sizeof: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11841,11 +14703,11 @@ struct Sealed: Codable {
     }
 }
 
-// MARK: Sealed convenience initializers and mutators
+// MARK: Sizeof convenience initializers and mutators
 
-extension Sealed {
+extension Sizeof {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sealed.self, from: data)
+        self = try newJSONDecoder().decode(Sizeof.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11860,8 +14722,8 @@ extension Sealed {
     }
 
     func with(
-    ) -> Sealed {
-        return Sealed(
+    ) -> Sizeof {
+        return Sizeof(
         )
     }
 
@@ -11874,9 +14736,9 @@ extension Sealed {
     }
 }
 
-enum UnionSEL: Codable {
+enum UnionStackalloc: Codable {
     case double(Double)
-    case sel(Sel)
+    case stackalloc(Stackalloc)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11884,11 +14746,11 @@ enum UnionSEL: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Sel.self) {
-            self = .sel(x)
+        if let x = try? container.decode(Stackalloc.self) {
+            self = .stackalloc(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSEL.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSEL"))
+        throw DecodingError.typeMismatch(UnionStackalloc.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStackalloc"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11896,14 +14758,14 @@ enum UnionSEL: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .sel(let x):
+        case .stackalloc(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Sel
-struct Sel: Codable {
+// MARK: - Stackalloc
+struct Stackalloc: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11912,11 +14774,11 @@ struct Sel: Codable {
     }
 }
 
-// MARK: Sel convenience initializers and mutators
+// MARK: Stackalloc convenience initializers and mutators
 
-extension Sel {
+extension Stackalloc {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sel.self, from: data)
+        self = try newJSONDecoder().decode(Stackalloc.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11931,8 +14793,8 @@ extension Sel {
     }
 
     func with(
-    ) -> Sel {
-        return Sel(
+    ) -> Stackalloc {
+        return Stackalloc(
         )
     }
 
@@ -11945,9 +14807,9 @@ extension Sel {
     }
 }
 
-enum UnionSelect: Codable {
+enum UnionStandards: Codable {
     case double(Double)
-    case select(Select)
+    case standards(Standards)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -11955,11 +14817,11 @@ enum UnionSelect: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Select.self) {
-            self = .select(x)
+        if let x = try? container.decode(Standards.self) {
+            self = .standards(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSelect.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSelect"))
+        throw DecodingError.typeMismatch(UnionStandards.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStandards"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -11967,14 +14829,14 @@ enum UnionSelect: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .select(let x):
+        case .standards(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Select
-struct Select: Codable {
+// MARK: - Standards
+struct Standards: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -11983,11 +14845,11 @@ struct Select: Codable {
     }
 }
 
-// MARK: Select convenience initializers and mutators
+// MARK: Standards convenience initializers and mutators
 
-extension Select {
+extension Standards {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Select.self, from: data)
+        self = try newJSONDecoder().decode(Standards.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12002,8 +14864,8 @@ extension Select {
     }
 
     func with(
-    ) -> Select {
-        return Select(
+    ) -> Standards {
+        return Standards(
         )
     }
 
@@ -12016,9 +14878,9 @@ extension Select {
     }
 }
 
-enum UnionSerialize: Codable {
+enum UnionStaticAssert: Codable {
     case double(Double)
-    case serialize(Serialize)
+    case staticAssert(StaticAssert)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12026,11 +14888,11 @@ enum UnionSerialize: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Serialize.self) {
-            self = .serialize(x)
+        if let x = try? container.decode(StaticAssert.self) {
+            self = .staticAssert(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSerialize.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSerialize"))
+        throw DecodingError.typeMismatch(UnionStaticAssert.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStaticAssert"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12038,14 +14900,14 @@ enum UnionSerialize: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .serialize(let x):
+        case .staticAssert(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Serialize
-struct Serialize: Codable {
+// MARK: - StaticAssert
+struct StaticAssert: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12054,11 +14916,11 @@ struct Serialize: Codable {
     }
 }
 
-// MARK: Serialize convenience initializers and mutators
+// MARK: StaticAssert convenience initializers and mutators
 
-extension Serialize {
+extension StaticAssert {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Serialize.self, from: data)
+        self = try newJSONDecoder().decode(StaticAssert.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12073,8 +14935,8 @@ extension Serialize {
     }
 
     func with(
-    ) -> Serialize {
-        return Serialize(
+    ) -> StaticAssert {
+        return StaticAssert(
         )
     }
 
@@ -12087,9 +14949,9 @@ extension Serialize {
     }
 }
 
-enum UnionShort: Codable {
+enum UnionStaticCast: Codable {
     case double(Double)
-    case short(Short)
+    case staticCast(StaticCast)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12097,11 +14959,11 @@ enum UnionShort: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Short.self) {
-            self = .short(x)
+        if let x = try? container.decode(StaticCast.self) {
+            self = .staticCast(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionShort.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionShort"))
+        throw DecodingError.typeMismatch(UnionStaticCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStaticCast"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12109,14 +14971,14 @@ enum UnionShort: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .short(let x):
+        case .staticCast(let x):
             try container.encode(x)
         }
     }
 }
-
-// MARK: - Short
-struct Short: Codable {
+
+// MARK: - StaticCast
+struct StaticCast: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12125,11 +14987,11 @@ struct Short: Codable {
     }
 }
 
-// MARK: Short convenience initializers and mutators
+// MARK: StaticCast convenience initializers and mutators
 
-extension Short {
+extension StaticCast {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Short.self, from: data)
+        self = try newJSONDecoder().decode(StaticCast.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12144,8 +15006,8 @@ extension Short {
     }
 
     func with(
-    ) -> Short {
-        return Short(
+    ) -> StaticCast {
+        return StaticCast(
         )
     }
 
@@ -12158,9 +15020,9 @@ extension Short {
     }
 }
 
-enum UnionSigned: Codable {
+enum UnionStdDeserializer: Codable {
     case double(Double)
-    case signed(Signed)
+    case stdDeserializer(StdDeserializer)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12168,11 +15030,11 @@ enum UnionSigned: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Signed.self) {
-            self = .signed(x)
+        if let x = try? container.decode(StdDeserializer.self) {
+            self = .stdDeserializer(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSigned.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSigned"))
+        throw DecodingError.typeMismatch(UnionStdDeserializer.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStdDeserializer"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12180,14 +15042,14 @@ enum UnionSigned: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .signed(let x):
+        case .stdDeserializer(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Signed
-struct Signed: Codable {
+// MARK: - StdDeserializer
+struct StdDeserializer: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12196,11 +15058,11 @@ struct Signed: Codable {
     }
 }
 
-// MARK: Signed convenience initializers and mutators
+// MARK: StdDeserializer convenience initializers and mutators
 
-extension Signed {
+extension StdDeserializer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Signed.self, from: data)
+        self = try newJSONDecoder().decode(StdDeserializer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12215,8 +15077,8 @@ extension Signed {
     }
 
     func with(
-    ) -> Signed {
-        return Signed(
+    ) -> StdDeserializer {
+        return StdDeserializer(
         )
     }
 
@@ -12229,9 +15091,9 @@ extension Signed {
     }
 }
 
-enum UnionSizeof: Codable {
+enum UnionStdSerializer: Codable {
     case double(Double)
-    case sizeof(Sizeof)
+    case stdSerializer(StdSerializer)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12239,11 +15101,11 @@ enum UnionSizeof: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Sizeof.self) {
-            self = .sizeof(x)
+        if let x = try? container.decode(StdSerializer.self) {
+            self = .stdSerializer(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSizeof.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSizeof"))
+        throw DecodingError.typeMismatch(UnionStdSerializer.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStdSerializer"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12251,14 +15113,14 @@ enum UnionSizeof: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .sizeof(let x):
+        case .stdSerializer(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Sizeof
-struct Sizeof: Codable {
+// MARK: - StdSerializer
+struct StdSerializer: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12267,11 +15129,11 @@ struct Sizeof: Codable {
     }
 }
 
-// MARK: Sizeof convenience initializers and mutators
+// MARK: StdSerializer convenience initializers and mutators
 
-extension Sizeof {
+extension StdSerializer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sizeof.self, from: data)
+        self = try newJSONDecoder().decode(StdSerializer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12286,8 +15148,8 @@ extension Sizeof {
     }
 
     func with(
-    ) -> Sizeof {
-        return Sizeof(
+    ) -> StdSerializer {
+        return StdSerializer(
         )
     }
 
@@ -12300,9 +15162,9 @@ extension Sizeof {
     }
 }
 
-enum UnionStackalloc: Codable {
+enum UnionStrictfp: Codable {
     case double(Double)
-    case stackalloc(Stackalloc)
+    case strictfp(Strictfp)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12310,11 +15172,11 @@ enum UnionStackalloc: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Stackalloc.self) {
-            self = .stackalloc(x)
+        if let x = try? container.decode(Strictfp.self) {
+            self = .strictfp(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionStackalloc.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStackalloc"))
+        throw DecodingError.typeMismatch(UnionStrictfp.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStrictfp"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12322,14 +15184,14 @@ enum UnionStackalloc: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .stackalloc(let x):
+        case .strictfp(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Stackalloc
-struct Stackalloc: Codable {
+// MARK: - Strictfp
+struct Strictfp: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12338,11 +15200,11 @@ struct Stackalloc: Codable {
     }
 }
 
-// MARK: Stackalloc convenience initializers and mutators
+// MARK: Strictfp convenience initializers and mutators
 
-extension Stackalloc {
+extension Strictfp {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Stackalloc.self, from: data)
+        self = try newJSONDecoder().decode(Strictfp.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12357,8 +15219,8 @@ extension Stackalloc {
     }
 
     func with(
-    ) -> Stackalloc {
-        return Stackalloc(
+    ) -> Strictfp {
+        return Strictfp(
         )
     }
 
@@ -12371,9 +15233,9 @@ extension Stackalloc {
     }
 }
 
-enum UnionStaticAssert: Codable {
+enum UnionString: Codable {
     case double(Double)
-    case staticAssert(StaticAssert)
+    case stringClass(StringClass)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12381,11 +15243,11 @@ enum UnionStaticAssert: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(StaticAssert.self) {
-            self = .staticAssert(x)
+        if let x = try? container.decode(StringClass.self) {
+            self = .stringClass(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionStaticAssert.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStaticAssert"))
+        throw DecodingError.typeMismatch(UnionString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionString"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12393,14 +15255,14 @@ enum UnionStaticAssert: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .staticAssert(let x):
+        case .stringClass(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - StaticAssert
-struct StaticAssert: Codable {
+// MARK: - StringClass
+struct StringClass: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12409,11 +15271,11 @@ struct StaticAssert: Codable {
     }
 }
 
-// MARK: StaticAssert convenience initializers and mutators
+// MARK: StringClass convenience initializers and mutators
 
-extension StaticAssert {
+extension StringClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StaticAssert.self, from: data)
+        self = try newJSONDecoder().decode(StringClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12428,8 +15290,8 @@ extension StaticAssert {
     }
 
     func with(
-    ) -> StaticAssert {
-        return StaticAssert(
+    ) -> StringClass {
+        return StringClass(
         )
     }
 
@@ -12442,9 +15304,9 @@ extension StaticAssert {
     }
 }
 
-enum UnionStaticCast: Codable {
+enum UnionSymbol: Codable {
     case double(Double)
-    case staticCast(StaticCast)
+    case symbol(Symbol)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12452,11 +15314,11 @@ enum UnionStaticCast: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(StaticCast.self) {
-            self = .staticCast(x)
+        if let x = try? container.decode(Symbol.self) {
+            self = .symbol(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionStaticCast.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStaticCast"))
+        throw DecodingError.typeMismatch(UnionSymbol.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSymbol"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12464,14 +15326,14 @@ enum UnionStaticCast: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .staticCast(let x):
+        case .symbol(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - StaticCast
-struct StaticCast: Codable {
+// MARK: - Symbol
+struct Symbol: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12480,11 +15342,11 @@ struct StaticCast: Codable {
     }
 }
 
-// MARK: StaticCast convenience initializers and mutators
+// MARK: Symbol convenience initializers and mutators
 
-extension StaticCast {
+extension Symbol {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StaticCast.self, from: data)
+        self = try newJSONDecoder().decode(Symbol.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12499,8 +15361,8 @@ extension StaticCast {
     }
 
     func with(
-    ) -> StaticCast {
-        return StaticCast(
+    ) -> Symbol {
+        return Symbol(
         )
     }
 
@@ -12513,9 +15375,9 @@ extension StaticCast {
     }
 }
 
-enum UnionStrictfp: Codable {
+enum UnionSynchronized: Codable {
     case double(Double)
-    case strictfp(Strictfp)
+    case synchronized(Synchronized)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12523,11 +15385,11 @@ enum UnionStrictfp: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Strictfp.self) {
-            self = .strictfp(x)
+        if let x = try? container.decode(Synchronized.self) {
+            self = .synchronized(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionStrictfp.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionStrictfp"))
+        throw DecodingError.typeMismatch(UnionSynchronized.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSynchronized"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12535,14 +15397,14 @@ enum UnionStrictfp: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .strictfp(let x):
+        case .synchronized(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Strictfp
-struct Strictfp: Codable {
+// MARK: - Synchronized
+struct Synchronized: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12551,11 +15413,11 @@ struct Strictfp: Codable {
     }
 }
 
-// MARK: Strictfp convenience initializers and mutators
+// MARK: Synchronized convenience initializers and mutators
 
-extension Strictfp {
+extension Synchronized {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Strictfp.self, from: data)
+        self = try newJSONDecoder().decode(Synchronized.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12570,8 +15432,8 @@ extension Strictfp {
     }
 
     func with(
-    ) -> Strictfp {
-        return Strictfp(
+    ) -> Synchronized {
+        return Synchronized(
         )
     }
 
@@ -12584,9 +15446,9 @@ extension Strictfp {
     }
 }
 
-enum UnionString: Codable {
+enum UnionSystem: Codable {
     case double(Double)
-    case stringClass(StringClass)
+    case system(System)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12594,11 +15456,11 @@ enum UnionString: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(StringClass.self) {
-            self = .stringClass(x)
+        if let x = try? container.decode(System.self) {
+            self = .system(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionString"))
+        throw DecodingError.typeMismatch(UnionSystem.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSystem"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12606,14 +15468,14 @@ enum UnionString: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .stringClass(let x):
+        case .system(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - StringClass
-struct StringClass: Codable {
+// MARK: - System
+struct System: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12622,11 +15484,11 @@ struct StringClass: Codable {
     }
 }
 
-// MARK: StringClass convenience initializers and mutators
+// MARK: System convenience initializers and mutators
 
-extension StringClass {
+extension System {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StringClass.self, from: data)
+        self = try newJSONDecoder().decode(System.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12641,8 +15503,8 @@ extension StringClass {
     }
 
     func with(
-    ) -> StringClass {
-        return StringClass(
+    ) -> System {
+        return System(
         )
     }
 
@@ -12655,9 +15517,9 @@ extension StringClass {
     }
 }
 
-enum UnionSymbol: Codable {
+enum UnionTemplate: Codable {
     case double(Double)
-    case symbol(Symbol)
+    case template(Template)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12665,11 +15527,11 @@ enum UnionSymbol: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Symbol.self) {
-            self = .symbol(x)
+        if let x = try? container.decode(Template.self) {
+            self = .template(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSymbol.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSymbol"))
+        throw DecodingError.typeMismatch(UnionTemplate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTemplate"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12677,14 +15539,14 @@ enum UnionSymbol: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .symbol(let x):
+        case .template(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Symbol
-struct Symbol: Codable {
+// MARK: - Template
+struct Template: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12693,11 +15555,11 @@ struct Symbol: Codable {
     }
 }
 
-// MARK: Symbol convenience initializers and mutators
+// MARK: Template convenience initializers and mutators
 
-extension Symbol {
+extension Template {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Symbol.self, from: data)
+        self = try newJSONDecoder().decode(Template.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12712,8 +15574,8 @@ extension Symbol {
     }
 
     func with(
-    ) -> Symbol {
-        return Symbol(
+    ) -> Template {
+        return Template(
         )
     }
 
@@ -12726,9 +15588,9 @@ extension Symbol {
     }
 }
 
-enum UnionSynchronized: Codable {
+enum UnionThen: Codable {
     case double(Double)
-    case synchronized(Synchronized)
+    case then(Then)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12736,11 +15598,11 @@ enum UnionSynchronized: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Synchronized.self) {
-            self = .synchronized(x)
+        if let x = try? container.decode(Then.self) {
+            self = .then(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSynchronized.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSynchronized"))
+        throw DecodingError.typeMismatch(UnionThen.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThen"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12748,14 +15610,14 @@ enum UnionSynchronized: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .synchronized(let x):
+        case .then(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Synchronized
-struct Synchronized: Codable {
+// MARK: - Then
+struct Then: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12764,11 +15626,11 @@ struct Synchronized: Codable {
     }
 }
 
-// MARK: Synchronized convenience initializers and mutators
+// MARK: Then convenience initializers and mutators
 
-extension Synchronized {
+extension Then {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Synchronized.self, from: data)
+        self = try newJSONDecoder().decode(Then.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12783,8 +15645,8 @@ extension Synchronized {
     }
 
     func with(
-    ) -> Synchronized {
-        return Synchronized(
+    ) -> Then {
+        return Then(
         )
     }
 
@@ -12797,9 +15659,9 @@ extension Synchronized {
     }
 }
 
-enum UnionSystem: Codable {
+enum UnionThis: Codable {
     case double(Double)
-    case system(System)
+    case this(This)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12807,11 +15669,11 @@ enum UnionSystem: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(System.self) {
-            self = .system(x)
+        if let x = try? container.decode(This.self) {
+            self = .this(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionSystem.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionSystem"))
+        throw DecodingError.typeMismatch(UnionThis.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThis"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12819,14 +15681,14 @@ enum UnionSystem: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .system(let x):
+        case .this(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - System
-struct System: Codable {
+// MARK: - This
+struct This: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12835,11 +15697,11 @@ struct System: Codable {
     }
 }
 
-// MARK: System convenience initializers and mutators
+// MARK: This convenience initializers and mutators
 
-extension System {
+extension This {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(System.self, from: data)
+        self = try newJSONDecoder().decode(This.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12854,8 +15716,8 @@ extension System {
     }
 
     func with(
-    ) -> System {
-        return System(
+    ) -> This {
+        return This(
         )
     }
 
@@ -12868,9 +15730,9 @@ extension System {
     }
 }
 
-enum UnionTemplate: Codable {
+enum UnionThreadLocal: Codable {
     case double(Double)
-    case template(Template)
+    case threadLocal(ThreadLocal)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12878,11 +15740,11 @@ enum UnionTemplate: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Template.self) {
-            self = .template(x)
+        if let x = try? container.decode(ThreadLocal.self) {
+            self = .threadLocal(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionTemplate.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTemplate"))
+        throw DecodingError.typeMismatch(UnionThreadLocal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThreadLocal"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12890,14 +15752,14 @@ enum UnionTemplate: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .template(let x):
+        case .threadLocal(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Template
-struct Template: Codable {
+// MARK: - ThreadLocal
+struct ThreadLocal: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12906,11 +15768,11 @@ struct Template: Codable {
     }
 }
 
-// MARK: Template convenience initializers and mutators
+// MARK: ThreadLocal convenience initializers and mutators
 
-extension Template {
+extension ThreadLocal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Template.self, from: data)
+        self = try newJSONDecoder().decode(ThreadLocal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12925,8 +15787,8 @@ extension Template {
     }
 
     func with(
-    ) -> Template {
-        return Template(
+    ) -> ThreadLocal {
+        return ThreadLocal(
         )
     }
 
@@ -12939,9 +15801,9 @@ extension Template {
     }
 }
 
-enum UnionThen: Codable {
+enum UnionTimeOnly: Codable {
     case double(Double)
-    case then(Then)
+    case timeOnly(TimeOnly)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -12949,11 +15811,11 @@ enum UnionThen: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(Then.self) {
-            self = .then(x)
+        if let x = try? container.decode(TimeOnly.self) {
+            self = .timeOnly(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionThen.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThen"))
+        throw DecodingError.typeMismatch(UnionTimeOnly.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTimeOnly"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -12961,14 +15823,14 @@ enum UnionThen: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .then(let x):
+        case .timeOnly(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - Then
-struct Then: Codable {
+// MARK: - TimeOnly
+struct TimeOnly: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -12977,11 +15839,11 @@ struct Then: Codable {
     }
 }
 
-// MARK: Then convenience initializers and mutators
+// MARK: TimeOnly convenience initializers and mutators
 
-extension Then {
+extension TimeOnly {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Then.self, from: data)
+        self = try newJSONDecoder().decode(TimeOnly.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12996,8 +15858,8 @@ extension Then {
     }
 
     func with(
-    ) -> Then {
-        return Then(
+    ) -> TimeOnly {
+        return TimeOnly(
         )
     }
 
@@ -13010,9 +15872,9 @@ extension Then {
     }
 }
 
-enum UnionThis: Codable {
+enum UnionTimeOnlyConverter: Codable {
     case double(Double)
-    case this(This)
+    case timeOnlyConverter(TimeOnlyConverter)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -13020,11 +15882,11 @@ enum UnionThis: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(This.self) {
-            self = .this(x)
+        if let x = try? container.decode(TimeOnlyConverter.self) {
+            self = .timeOnlyConverter(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionThis.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThis"))
+        throw DecodingError.typeMismatch(UnionTimeOnlyConverter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionTimeOnlyConverter"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -13032,14 +15894,14 @@ enum UnionThis: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .this(let x):
+        case .timeOnlyConverter(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - This
-struct This: Codable {
+// MARK: - TimeOnlyConverter
+struct TimeOnlyConverter: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -13048,11 +15910,11 @@ struct This: Codable {
     }
 }
 
-// MARK: This convenience initializers and mutators
+// MARK: TimeOnlyConverter convenience initializers and mutators
 
-extension This {
+extension TimeOnlyConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(This.self, from: data)
+        self = try newJSONDecoder().decode(TimeOnlyConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13067,8 +15929,8 @@ extension This {
     }
 
     func with(
-    ) -> This {
-        return This(
+    ) -> TimeOnlyConverter {
+        return TimeOnlyConverter(
         )
     }
 
@@ -13081,9 +15943,9 @@ extension This {
     }
 }
 
-enum UnionThreadLocal: Codable {
+enum UnionToJSON: Codable {
     case double(Double)
-    case threadLocal(ThreadLocal)
+    case toJSON(ToJSON)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -13091,11 +15953,11 @@ enum UnionThreadLocal: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(ThreadLocal.self) {
-            self = .threadLocal(x)
+        if let x = try? container.decode(ToJSON.self) {
+            self = .toJSON(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionThreadLocal.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionThreadLocal"))
+        throw DecodingError.typeMismatch(UnionToJSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionToJSON"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -13103,14 +15965,14 @@ enum UnionThreadLocal: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .threadLocal(let x):
+        case .toJSON(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - ThreadLocal
-struct ThreadLocal: Codable {
+// MARK: - ToJSON
+struct ToJSON: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -13119,11 +15981,11 @@ struct ThreadLocal: Codable {
     }
 }
 
-// MARK: ThreadLocal convenience initializers and mutators
+// MARK: ToJSON convenience initializers and mutators
 
-extension ThreadLocal {
+extension ToJSON {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ThreadLocal.self, from: data)
+        self = try newJSONDecoder().decode(ToJSON.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13138,8 +16000,8 @@ extension ThreadLocal {
     }
 
     func with(
-    ) -> ThreadLocal {
-        return ThreadLocal(
+    ) -> ToJSON {
+        return ToJSON(
         )
     }
 
@@ -13152,9 +16014,9 @@ extension ThreadLocal {
     }
 }
 
-enum UnionToJSON: Codable {
+enum UnionToString: Codable {
     case double(Double)
-    case toJSON(ToJSON)
+    case toString(ToString)
 
     init(from decoder: Decoder) throws {
         let container = try decoder.singleValueContainer()
@@ -13162,11 +16024,11 @@ enum UnionToJSON: Codable {
             self = .double(x)
             return
         }
-        if let x = try? container.decode(ToJSON.self) {
-            self = .toJSON(x)
+        if let x = try? container.decode(ToString.self) {
+            self = .toString(x)
             return
         }
-        throw DecodingError.typeMismatch(UnionToJSON.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionToJSON"))
+        throw DecodingError.typeMismatch(UnionToString.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionToString"))
     }
 
     func encode(to encoder: Encoder) throws {
@@ -13174,14 +16036,14 @@ enum UnionToJSON: Codable {
         switch self {
         case .double(let x):
             try container.encode(x)
-        case .toJSON(let x):
+        case .toString(let x):
             try container.encode(x)
         }
     }
 }
 
-// MARK: - ToJSON
-struct ToJSON: Codable {
+// MARK: - ToString
+struct ToString: Codable {
     private enum K: String, CodingKey { case unused }
     init(from decoder: Decoder) throws {
         _ = try decoder.container(keyedBy: K.self)
@@ -13190,11 +16052,11 @@ struct ToJSON: Codable {
     }
 }
 
-// MARK: ToJSON convenience initializers and mutators
+// MARK: ToString convenience initializers and mutators
 
-extension ToJSON {
+extension ToString {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ToJSON.self, from: data)
+        self = try newJSONDecoder().decode(ToString.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13209,8 +16071,8 @@ extension ToJSON {
     }
 
     func with(
-    ) -> ToJSON {
-        return ToJSON(
+    ) -> ToString {
+        return ToString(
         )
     }
 
@@ -20110,6 +22972,219 @@ extension Using {
     }
 }
 
+enum UnionUtf8JSONReader: Codable {
+    case double(Double)
+    case utf8JSONReader(Utf8JSONReader)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Utf8JSONReader.self) {
+            self = .utf8JSONReader(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionUtf8JSONReader.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionUtf8JSONReader"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .utf8JSONReader(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Utf8JSONReader
+struct Utf8JSONReader: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Utf8JSONReader convenience initializers and mutators
+
+extension Utf8JSONReader {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Utf8JSONReader.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Utf8JSONReader {
+        return Utf8JSONReader(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionUtf8JSONWriter: Codable {
+    case double(Double)
+    case utf8JSONWriter(Utf8JSONWriter)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(Utf8JSONWriter.self) {
+            self = .utf8JSONWriter(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionUtf8JSONWriter.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionUtf8JSONWriter"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .utf8JSONWriter(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - Utf8JSONWriter
+struct Utf8JSONWriter: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: Utf8JSONWriter convenience initializers and mutators
+
+extension Utf8JSONWriter {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Utf8JSONWriter.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> Utf8JSONWriter {
+        return Utf8JSONWriter(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+enum UnionUUID: Codable {
+    case double(Double)
+    case uuidClass(UUIDClass)
+
+    init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if let x = try? container.decode(Double.self) {
+            self = .double(x)
+            return
+        }
+        if let x = try? container.decode(UUIDClass.self) {
+            self = .uuidClass(x)
+            return
+        }
+        throw DecodingError.typeMismatch(UnionUUID.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for UnionUUID"))
+    }
+
+    func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        switch self {
+        case .double(let x):
+            try container.encode(x)
+        case .uuidClass(let x):
+            try container.encode(x)
+        }
+    }
+}
+
+// MARK: - UUIDClass
+struct UUIDClass: Codable {
+    private enum K: String, CodingKey { case unused }
+    init(from decoder: Decoder) throws {
+        _ = try decoder.container(keyedBy: K.self)
+    }
+    init() {
+    }
+}
+
+// MARK: UUIDClass convenience initializers and mutators
+
+extension UUIDClass {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(UUIDClass.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+    ) -> UUIDClass {
+        return UUIDClass(
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
 enum UnionVirtual: Codable {
     case double(Double)
     case virtual(Virtual)
diff --git a/base/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
index 2dd0706..cfa7754 100644
--- a/base/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
@@ -12,7 +12,7 @@ export interface TopLevel {
     [property: string]: unknown | Enum;
 }
 
-export type Enum = "_" | "_Bool" | "_Complex" | "_Imaginery" | "abstract" | "alignas" | "alignof" | "and" | "and_eq" | "any" | "Any" | "array" | "as" | "asm" | "assert" | "associatedtype" | "associativity" | "async" | "atomic" | "atomic_cancel" | "atomic_commit" | "atomic_noexcept" | "auto" | "await" | "base" | "bitand" | "bitor" | "BOOL" | "bool" | "boolean" | "break" | "bycopy" | "byref" | "byte" | "case" | "catch" | "chan" | "char" | "char16_t" | "char32_t" | "checked" | "class" | "Class" | "co_await" | "co_return" | "co_yield" | "compl" | "concept" | "console" | "const" | "const_cast" | "constexpr" | "constructor" | "continue" | "convenience" | "convert" | "converter" | "date" | "date_parse_handling" | "debugger" | "decimal" | "declare" | "decltype" | "decode_string" | "def" | "default" | "defer" | "deinit" | "del" | "delegate" | "delete" | "dict" | "dictionary" | "didSet" | "do" | "double" | "dynamic" | "dynamic_cast" | "elif" | "else" | "encode_quick_type" | "enum" | "event" | "except" | "exception" | "explicit" | "export" | "exposing" | "extends" | "extension" | "extern" | "fallthrough" | "false" | "False" | "fileprivate" | "final" | "finally" | "fixed" | "float" | "for" | "foreach" | "friend" | "from" | "from_json" | "func" | "function" | "get" | "global" | "go" | "goto" | "guard" | "hasOwnProperty" | "id" | "if" | "IMP" | "implements" | "implicit" | "import" | "in" | "indirect" | "infix" | "init" | "inline" | "inout" | "instanceof" | "int" | "interface" | "internal" | "iterable" | "is" | "jdec" | "jenc" | "jpipe" | "json" | "json_converter" | "json_serializer" | "json_token" | "json_writer" | "lambda" | "lazy" | "left" | "let" | "list" | "lock" | "long" | "map" | "metadata_property_handling" | "module" | "mutable" | "mutating" | "namespace" | "native" | "new" | "newtonsoft" | "nil" | "NO" | "noexcept" | "nonatomic" | "none" | "None" | "nonlocal" | "nonmutating" | "not" | "not_eq" | "NSString" | "NULL" | "null" | "nullptr" | "number" | "object" | "of" | "oneway" | "open" | "operator" | "optional" | "or" | "or_eq" | "out" | "override" | "package" | "params" | "pass" | "port" | "postfix" | "precedence" | "prefix" | "print" | "printf" | "private" | "protected" | "Protocol" | "protocol" | "public" | "quicktype" | "raise" | "range" | "readonly" | "ref" | "register" | "reinterpret_cast" | "repeat" | "require" | "required" | "requires" | "restrict" | "retain" | "rethrows" | "return" | "right" | "sbyte" | "sealed" | "SEL" | "select" | "Self" | "self" | "serialize" | "set" | "short" | "signed" | "sizeof" | "stackalloc" | "static" | "static_assert" | "static_cast" | "strictfp" | "string" | "struct" | "subscript" | "super" | "switch" | "symbol" | "synchronized" | "system" | "template" | "then" | "this" | "thread_local" | "throw" | "throws" | "to_json" | "top_level" | "transient" | "True" | "true" | "try" | "Type" | "type" | "typealias" | "typedef" | "typeid" | "typename" | "typeof" | "uint" | "ulong" | "unchecked" | "undefined" | "union" | "unowned" | "unsafe" | "unsigned" | "ushort" | "using" | "var" | "virtual" | "void" | "volatile" | "wchar_t" | "weak" | "where" | "while" | "willSet" | "with" | "xor" | "xor_eq" | "YES" | "yield" | "dummy";
+export type Enum = "_" | "_Bool" | "_Complex" | "_Imaginery" | "abstract" | "alignas" | "alignof" | "and" | "and_eq" | "any" | "Any" | "array" | "as" | "asm" | "assert" | "associatedtype" | "associativity" | "async" | "atomic" | "atomic_cancel" | "atomic_commit" | "atomic_noexcept" | "auto" | "await" | "base" | "bitand" | "bitor" | "BOOL" | "bool" | "boolean" | "break" | "bycopy" | "byref" | "byte" | "case" | "catch" | "chan" | "char" | "char16_t" | "char32_t" | "checked" | "class" | "Class" | "clone" | "co_await" | "co_return" | "co_yield" | "compl" | "concept" | "console" | "const" | "const_cast" | "constexpr" | "constructor" | "continue" | "convenience" | "convert" | "converter" | "CultureInfo" | "date" | "date_parse_handling" | "DateFormatter" | "DateOnly" | "DateOnlyConverter" | "DateTime" | "DateTimeStyles" | "debugger" | "decimal" | "declare" | "decltype" | "decode_string" | "def" | "default" | "defer" | "deinit" | "del" | "delegate" | "delete" | "dict" | "dictionary" | "didSet" | "do" | "double" | "dynamic" | "dynamic_cast" | "elif" | "else" | "encode_quick_type" | "enum" | "EnumValues" | "equalityContract" | "event" | "except" | "exception" | "explicit" | "export" | "exposing" | "extends" | "extension" | "extern" | "fallthrough" | "false" | "False" | "fileprivate" | "final" | "finally" | "fixed" | "float" | "for" | "foreach" | "FormatException" | "friend" | "from" | "from_json" | "func" | "function" | "get" | "global" | "go" | "goto" | "guard" | "hashCode" | "hasOwnProperty" | "id" | "if" | "IMP" | "implements" | "implicit" | "import" | "in" | "indirect" | "infix" | "init" | "inline" | "inout" | "instanceof" | "int" | "interface" | "internal" | "IsoDateTimeOffsetConverter" | "iterable" | "is" | "jdec" | "jenc" | "jpipe" | "json" | "json_converter" | "json_serializer" | "json_token" | "json_writer" | "JSONAny" | "JSONCodingKey" | "JSONDecoder" | "JSONEncoder" | "JsonException" | "JsonGenerator" | "JsonNode" | "JSONNull" | "JsonParser" | "JsonReader" | "JsonTokenType" | "lambda" | "lazy" | "left" | "let" | "list" | "lock" | "long" | "map" | "metadata_property_handling" | "module" | "mutable" | "mutating" | "namespace" | "native" | "new" | "newtonsoft" | "nil" | "NO" | "noexcept" | "nonatomic" | "none" | "None" | "nonlocal" | "nonmutating" | "noSuchMethod" | "not" | "not_eq" | "NSError" | "NSString" | "NULL" | "null" | "nullptr" | "number" | "object" | "ObjectMapper" | "of" | "oneway" | "open" | "operator" | "optional" | "or" | "or_eq" | "out" | "override" | "package" | "params" | "pass" | "port" | "postfix" | "precedence" | "prefix" | "print" | "printf" | "printMembers" | "private" | "protected" | "Protocol" | "protocol" | "public" | "quicktype" | "raise" | "range" | "readonly" | "ref" | "RegExp" | "register" | "reinterpret_cast" | "repeat" | "require" | "required" | "requires" | "restrict" | "retain" | "rethrows" | "return" | "right" | "runtimeType" | "s" | "sbyte" | "sealed" | "SEL" | "select" | "Self" | "self" | "serialize" | "SerializerProvider" | "set" | "short" | "signed" | "SimpleModule" | "sizeof" | "stackalloc" | "Standards" | "static" | "static_assert" | "static_cast" | "StdDeserializer" | "StdSerializer" | "strictfp" | "string" | "struct" | "subscript" | "super" | "switch" | "symbol" | "synchronized" | "system" | "template" | "then" | "this" | "thread_local" | "throw" | "throws" | "TimeOnly" | "TimeOnlyConverter" | "to_json" | "top_level" | "toString" | "transient" | "True" | "true" | "try" | "Type" | "type" | "typealias" | "typedef" | "typeid" | "typename" | "typeof" | "uint" | "ulong" | "unchecked" | "undefined" | "union" | "unowned" | "unsafe" | "unsigned" | "ushort" | "using" | "Utf8JsonReader" | "Utf8JsonWriter" | "UUID" | "var" | "virtual" | "void" | "volatile" | "wchar_t" | "weak" | "where" | "while" | "willSet" | "with" | "xor" | "xor_eq" | "YES" | "yield" | "dummy";
 
 // Converts JSON strings to/from your types
 // and asserts the results of JSON.parse at runtime
@@ -248,6 +248,7 @@ const typeMap: any = {
         "checked",
         "class",
         "Class",
+        "clone",
         "co_await",
         "co_return",
         "co_yield",
@@ -262,8 +263,14 @@ const typeMap: any = {
         "convenience",
         "convert",
         "converter",
+        "CultureInfo",
         "date",
         "date_parse_handling",
+        "DateFormatter",
+        "DateOnly",
+        "DateOnlyConverter",
+        "DateTime",
+        "DateTimeStyles",
         "debugger",
         "decimal",
         "declare",
@@ -287,6 +294,8 @@ const typeMap: any = {
         "else",
         "encode_quick_type",
         "enum",
+        "EnumValues",
+        "equalityContract",
         "event",
         "except",
         "exception",
@@ -306,6 +315,7 @@ const typeMap: any = {
         "float",
         "for",
         "foreach",
+        "FormatException",
         "friend",
         "from",
         "from_json",
@@ -316,6 +326,7 @@ const typeMap: any = {
         "go",
         "goto",
         "guard",
+        "hashCode",
         "hasOwnProperty",
         "id",
         "if",
@@ -333,6 +344,7 @@ const typeMap: any = {
         "int",
         "interface",
         "internal",
+        "IsoDateTimeOffsetConverter",
         "iterable",
         "is",
         "jdec",
@@ -343,6 +355,17 @@ const typeMap: any = {
         "json_serializer",
         "json_token",
         "json_writer",
+        "JSONAny",
+        "JSONCodingKey",
+        "JSONDecoder",
+        "JSONEncoder",
+        "JsonException",
+        "JsonGenerator",
+        "JsonNode",
+        "JSONNull",
+        "JsonParser",
+        "JsonReader",
+        "JsonTokenType",
         "lambda",
         "lazy",
         "left",
@@ -367,14 +390,17 @@ const typeMap: any = {
         "None",
         "nonlocal",
         "nonmutating",
+        "noSuchMethod",
         "not",
         "not_eq",
+        "NSError",
         "NSString",
         "NULL",
         "null",
         "nullptr",
         "number",
         "object",
+        "ObjectMapper",
         "of",
         "oneway",
         "open",
@@ -393,6 +419,7 @@ const typeMap: any = {
         "prefix",
         "print",
         "printf",
+        "printMembers",
         "private",
         "protected",
         "Protocol",
@@ -403,6 +430,7 @@ const typeMap: any = {
         "range",
         "readonly",
         "ref",
+        "RegExp",
         "register",
         "reinterpret_cast",
         "repeat",
@@ -414,6 +442,8 @@ const typeMap: any = {
         "rethrows",
         "return",
         "right",
+        "runtimeType",
+        "s",
         "sbyte",
         "sealed",
         "SEL",
@@ -421,14 +451,19 @@ const typeMap: any = {
         "Self",
         "self",
         "serialize",
+        "SerializerProvider",
         "set",
         "short",
         "signed",
+        "SimpleModule",
         "sizeof",
         "stackalloc",
+        "Standards",
         "static",
         "static_assert",
         "static_cast",
+        "StdDeserializer",
+        "StdSerializer",
         "strictfp",
         "string",
         "struct",
@@ -444,8 +479,11 @@ const typeMap: any = {
         "thread_local",
         "throw",
         "throws",
+        "TimeOnly",
+        "TimeOnlyConverter",
         "to_json",
         "top_level",
+        "toString",
         "transient",
         "True",
         "true",
@@ -467,6 +505,9 @@ const typeMap: any = {
         "unsigned",
         "ushort",
         "using",
+        "Utf8JsonReader",
+        "Utf8JsonWriter",
+        "UUID",
         "var",
         "virtual",
         "void",
diff --git a/base/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
index eb29aa2..1d43c25 100644
--- a/base/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
@@ -51,6 +51,7 @@ export interface TopLevel {
     checked?:                    UnionChecked;
     class?:                      UnionClassUnion;
     Class?:                      UnionClass;
+    clone?:                      UnionClone;
     co_await?:                   UnionCoAwait;
     co_return?:                  UnionCoReturn;
     co_yield?:                   UnionCoYield;
@@ -65,8 +66,14 @@ export interface TopLevel {
     convenience?:                UnionConvenience;
     convert?:                    UnionConvert;
     converter?:                  UnionConverter;
+    CultureInfo?:                UnionCultureInfo;
     date?:                       UnionDate;
     date_parse_handling?:        UnionDateParseHandling;
+    DateFormatter?:              UnionDateFormatter;
+    DateOnly?:                   UnionDateOnly;
+    DateOnlyConverter?:          UnionDateOnlyConverter;
+    DateTime?:                   UnionDateTime;
+    DateTimeStyles?:             UnionDateTimeStyles;
     debugger?:                   UnionDebugger;
     decimal?:                    UnionDecimal;
     declare?:                    UnionDeclare;
@@ -91,6 +98,8 @@ export interface TopLevel {
     else?:                       UnionElse;
     encode_quick_type?:          UnionEncodeQuickType;
     enum?:                       UnionEnum;
+    EnumValues?:                 UnionEnumValues;
+    equalityContract?:           UnionEqualityContract;
     event?:                      UnionEvent;
     except?:                     UnionExcept;
     exception?:                  UnionException;
@@ -110,6 +119,7 @@ export interface TopLevel {
     float?:                      UnionFloat;
     for?:                        UnionFor;
     foreach?:                    UnionForeach;
+    FormatException?:            UnionFormatException;
     friend?:                     UnionFriend;
     from?:                       UnionFrom;
     from_json?:                  UnionFromJSON;
@@ -120,6 +130,7 @@ export interface TopLevel {
     go?:                         UnionGo;
     goto?:                       UnionGoto;
     guard?:                      UnionGuard;
+    hashCode?:                   UnionHashCode;
     hasOwnProperty?:             UnionHasOwnProperty;
     id?:                         UnionID;
     if?:                         UnionIf;
@@ -138,6 +149,7 @@ export interface TopLevel {
     interface?:                  UnionInterface;
     internal?:                   UnionInternal;
     is?:                         UnionIs;
+    IsoDateTimeOffsetConverter?: UnionISODateTimeOffsetConverter;
     iterable?:                   UnionIterable;
     jdec?:                       UnionJdec;
     jenc?:                       UnionJenc;
@@ -147,6 +159,17 @@ export interface TopLevel {
     json_serializer?:            UnionJSONSerializer;
     json_token?:                 UnionJSONToken;
     json_writer?:                UnionJSONWriter;
+    JSONAny?:                    UnionJSONAny;
+    JSONCodingKey?:              UnionJSONCodingKey;
+    JSONDecoder?:                UnionJSONDecoder;
+    JSONEncoder?:                UnionJSONEncoder;
+    JsonException?:              UnionJSONException;
+    JsonGenerator?:              UnionJSONGenerator;
+    JsonNode?:                   UnionJSONNode;
+    JSONNull?:                   UnionJSONNull;
+    JsonParser?:                 UnionJSONParser;
+    JsonReader?:                 UnionJSONReader;
+    JsonTokenType?:              UnionJSONTokenType;
     lambda?:                     UnionLambda;
     lazy?:                       UnionLazy;
     left?:                       UnionLeft;
@@ -171,14 +194,17 @@ export interface TopLevel {
     None?:                       UnionNone;
     nonlocal?:                   UnionNonlocal;
     nonmutating?:                UnionNonmutating;
+    noSuchMethod?:               UnionNoSuchMethod;
     not?:                        UnionNot;
     not_eq?:                     UnionNotEq;
+    NSError?:                    UnionNSError;
     NSString?:                   UnionNSString;
     NULL?:                       UnionNULL;
     null?:                       UnionNull;
     nullptr?:                    UnionNullptr;
     number?:                     UnionNumber;
     object?:                     UnionObject;
+    ObjectMapper?:               UnionObjectMapper;
     of?:                         UnionOf;
     oneway?:                     UnionOneway;
     open?:                       UnionOpen;
@@ -197,6 +223,7 @@ export interface TopLevel {
     prefix?:                     UnionPrefix;
     print?:                      UnionPrint;
     printf?:                     UnionPrintf;
+    printMembers?:               UnionPrintMembers;
     private?:                    UnionPrivate;
     protected?:                  UnionProtected;
     Protocol?:                   UnionProtocol;
@@ -207,6 +234,7 @@ export interface TopLevel {
     range?:                      UnionRange;
     readonly?:                   UnionReadonly;
     ref?:                        UnionRef;
+    RegExp?:                     UnionRegExp;
     register?:                   UnionRegister;
     reinterpret_cast?:           UnionReinterpretCast;
     repeat?:                     UnionRepeat;
@@ -218,6 +246,8 @@ export interface TopLevel {
     rethrows?:                   UnionRethrows;
     return?:                     UnionReturn;
     right?:                      UnionRight;
+    runtimeType?:                UnionRuntimeType;
+    s?:                          UnionS;
     sbyte?:                      UnionSbyte;
     sealed?:                     UnionSealed;
     SEL?:                        UnionSEL;
@@ -225,14 +255,19 @@ export interface TopLevel {
     Self?:                       UnionSelf;
     self?:                       UnionSelfUnion;
     serialize?:                  UnionSerialize;
+    SerializerProvider?:         UnionSerializerProvider;
     set?:                        UnionSet;
     short?:                      UnionShort;
     signed?:                     UnionSigned;
+    SimpleModule?:               UnionSimpleModule;
     sizeof?:                     UnionSizeof;
     stackalloc?:                 UnionStackalloc;
+    Standards?:                  UnionStandards;
     static?:                     UnionStatic;
     static_assert?:              UnionStaticAssert;
     static_cast?:                UnionStaticCast;
+    StdDeserializer?:            UnionStdDeserializer;
+    StdSerializer?:              UnionStdSerializer;
     strictfp?:                   UnionStrictfp;
     string?:                     UnionString;
     struct?:                     UnionStruct;
@@ -248,8 +283,11 @@ export interface TopLevel {
     thread_local?:               UnionThreadLocal;
     throw?:                      UnionThrow;
     throws?:                     UnionThrows;
+    TimeOnly?:                   UnionTimeOnly;
+    TimeOnlyConverter?:          UnionTimeOnlyConverter;
     to_json?:                    UnionToJSON;
     top_level?:                  UnionTopLevel;
+    toString?:                   UnionToString;
     transient?:                  UnionTransient;
     True?:                       UnionTrue;
     true?:                       UnionTrueUnion;
@@ -271,6 +309,9 @@ export interface TopLevel {
     unsigned?:                   UnionUnsigned;
     ushort?:                     UnionUshort;
     using?:                      UnionUsing;
+    Utf8JsonReader?:             UnionUtf8JSONReader;
+    Utf8JsonWriter?:             UnionUtf8JSONWriter;
+    UUID?:                       UnionUUID;
     var?:                        UnionVar;
     virtual?:                    UnionVirtual;
     void?:                       UnionVoid;
@@ -285,7 +326,7 @@ export interface TopLevel {
     xor_eq?:                     UnionXorEq;
     YES?:                        UnionYES;
     yield?:                      UnionYield;
-    [property: string]: unknown | UnionUnion | UnionBool | UnionComplex | UnionImaginery | UnionAbstract | UnionAlignas | UnionAlignof | UnionAnd | UnionAndEq | UnionAnyUnion | UnionAny | UnionArray | UnionAs | UnionASM | UnionAssert | UnionAssociatedtype | UnionAssociativity | UnionAsync | UnionAtomic | UnionAtomicCancel | UnionAtomicCommit | UnionAtomicNoexcept | UnionAuto | UnionAwait | UnionBase | UnionBitand | UnionBitor | UnionBOOL | UnionBoolUnion | UnionBoolean | UnionBreak | UnionBycopy | UnionByref | UnionByte | UnionCase | UnionCatch | UnionChan | UnionChar | UnionChar16T | UnionChar32T | UnionChecked | UnionClassUnion | UnionClass | UnionCoAwait | UnionCoReturn | UnionCoYield | UnionCompl | UnionConcept | UnionConsole | UnionConst | UnionConstCast | UnionConstexpr | UnionConstructor | UnionContinue | UnionConvenience | UnionConvert | UnionConverter | UnionDate | UnionDateParseHandling | UnionDebugger | UnionDecimal | UnionDeclare | UnionDecltype | UnionDecodeString | UnionDef | UnionDefault | UnionDefer | UnionDeinit | UnionDel | UnionDelegate | UnionDelete | UnionDict | UnionDictionary | UnionDidSet | UnionDo | UnionDouble | number | UnionDynamic | UnionDynamicCast | UnionElif | UnionElse | UnionEncodeQuickType | UnionEnum | UnionEvent | UnionExcept | UnionException | UnionExplicit | UnionExport | UnionExposing | UnionExtends | UnionExtension | UnionExtern | UnionFallthrough | UnionFalseUnion | UnionFalse | UnionFileprivate | UnionFinal | UnionFinally | UnionFixed | UnionFloat | UnionFor | UnionForeach | UnionFriend | UnionFrom | UnionFromJSON | UnionFunc | UnionFunction | UnionGet | UnionGlobal | UnionGo | UnionGoto | UnionGuard | UnionHasOwnProperty | UnionID | UnionIf | UnionIMP | UnionImplements | UnionImplicit | UnionImport | UnionIn | UnionIndirect | UnionInfix | UnionInit | UnionInline | UnionInout | UnionInstanceof | UnionInt | UnionInterface | UnionInternal | UnionIs | UnionIterable | UnionJdec | UnionJenc | UnionJpipe | UnionJSON | UnionJSONConverter | UnionJSONSerializer | UnionJSONToken | UnionJSONWriter | UnionLambda | UnionLazy | UnionLeft | UnionLet | UnionList | UnionLock | UnionLong | UnionMap | UnionMetadataPropertyHandling | UnionModule | UnionMutable | UnionMutating | UnionNamespace | UnionNative | UnionNew | UnionNewtonsoft | UnionNil | UnionNO | UnionNoexcept | UnionNonatomic | UnionNoneUnion | UnionNone | UnionNonlocal | UnionNonmutating | UnionNot | UnionNotEq | UnionNSString | UnionNULL | UnionNull | UnionNullptr | UnionNumber | UnionObject | UnionOf | UnionOneway | UnionOpen | UnionOperator | UnionOptional | UnionOr | UnionOrEq | UnionOut | UnionOverride | UnionPackage | UnionParams | UnionPass | UnionPort | UnionPostfix | UnionPrecedence | UnionPrefix | UnionPrint | UnionPrintf | UnionPrivate | UnionProtected | UnionProtocol | UnionProtocolUnion | UnionPublic | UnionQuicktype | UnionRaise | UnionRange | UnionReadonly | UnionRef | UnionRegister | UnionReinterpretCast | UnionRepeat | UnionRequire | UnionRequired | UnionRequires | UnionRestrict | UnionRetain | UnionRethrows | UnionReturn | UnionRight | UnionSbyte | UnionSealed | UnionSEL | UnionSelect | UnionSelf | UnionSelfUnion | UnionSerialize | UnionSet | UnionShort | UnionSigned | UnionSizeof | UnionStackalloc | UnionStatic | UnionStaticAssert | UnionStaticCast | UnionStrictfp | UnionString | UnionStruct | UnionSubscript | UnionSuper | UnionSwitch | UnionSymbol | UnionSynchronized | UnionSystem | UnionTemplate | UnionThen | UnionThis | UnionThreadLocal | UnionThrow | UnionThrows | UnionToJSON | UnionTopLevel | UnionTransient | UnionTrue | UnionTrueUnion | UnionTry | UnionType | UnionTypeUnion | UnionTypealias | UnionTypedef | UnionTypeid | UnionTypename | UnionTypeof | UnionUint | UnionUlong | UnionUnchecked | UnionUndefined | UnionUnionUnion | UnionUnowned | UnionUnsafe | UnionUnsigned | UnionUshort | UnionUsing | UnionVar | UnionVirtual | UnionVoid | UnionVolatile | UnionWcharT | UnionWeak | UnionWhere | UnionWhile | UnionWillSet | UnionWith | UnionXor | UnionXorEq | UnionYES | UnionYield;
+    [property: string]: unknown | UnionUnion | UnionBool | UnionComplex | UnionImaginery | UnionAbstract | UnionAlignas | UnionAlignof | UnionAnd | UnionAndEq | UnionAnyUnion | UnionAny | UnionArray | UnionAs | UnionASM | UnionAssert | UnionAssociatedtype | UnionAssociativity | UnionAsync | UnionAtomic | UnionAtomicCancel | UnionAtomicCommit | UnionAtomicNoexcept | UnionAuto | UnionAwait | UnionBase | UnionBitand | UnionBitor | UnionBOOL | UnionBoolUnion | UnionBoolean | UnionBreak | UnionBycopy | UnionByref | UnionByte | UnionCase | UnionCatch | UnionChan | UnionChar | UnionChar16T | UnionChar32T | UnionChecked | UnionClassUnion | UnionClass | UnionClone | UnionCoAwait | UnionCoReturn | UnionCoYield | UnionCompl | UnionConcept | UnionConsole | UnionConst | UnionConstCast | UnionConstexpr | UnionConstructor | UnionContinue | UnionConvenience | UnionConvert | UnionConverter | UnionCultureInfo | UnionDate | UnionDateParseHandling | UnionDateFormatter | UnionDateOnly | UnionDateOnlyConverter | UnionDateTime | UnionDateTimeStyles | UnionDebugger | UnionDecimal | UnionDeclare | UnionDecltype | UnionDecodeString | UnionDef | UnionDefault | UnionDefer | UnionDeinit | UnionDel | UnionDelegate | UnionDelete | UnionDict | UnionDictionary | UnionDidSet | UnionDo | UnionDouble | number | UnionDynamic | UnionDynamicCast | UnionElif | UnionElse | UnionEncodeQuickType | UnionEnum | UnionEnumValues | UnionEqualityContract | UnionEvent | UnionExcept | UnionException | UnionExplicit | UnionExport | UnionExposing | UnionExtends | UnionExtension | UnionExtern | UnionFallthrough | UnionFalseUnion | UnionFalse | UnionFileprivate | UnionFinal | UnionFinally | UnionFixed | UnionFloat | UnionFor | UnionForeach | UnionFormatException | UnionFriend | UnionFrom | UnionFromJSON | UnionFunc | UnionFunction | UnionGet | UnionGlobal | UnionGo | UnionGoto | UnionGuard | UnionHashCode | UnionHasOwnProperty | UnionID | UnionIf | UnionIMP | UnionImplements | UnionImplicit | UnionImport | UnionIn | UnionIndirect | UnionInfix | UnionInit | UnionInline | UnionInout | UnionInstanceof | UnionInt | UnionInterface | UnionInternal | UnionIs | UnionISODateTimeOffsetConverter | UnionIterable | UnionJdec | UnionJenc | UnionJpipe | UnionJSON | UnionJSONConverter | UnionJSONSerializer | UnionJSONToken | UnionJSONWriter | UnionJSONAny | UnionJSONCodingKey | UnionJSONDecoder | UnionJSONEncoder | UnionJSONException | UnionJSONGenerator | UnionJSONNode | UnionJSONNull | UnionJSONParser | UnionJSONReader | UnionJSONTokenType | UnionLambda | UnionLazy | UnionLeft | UnionLet | UnionList | UnionLock | UnionLong | UnionMap | UnionMetadataPropertyHandling | UnionModule | UnionMutable | UnionMutating | UnionNamespace | UnionNative | UnionNew | UnionNewtonsoft | UnionNil | UnionNO | UnionNoexcept | UnionNonatomic | UnionNoneUnion | UnionNone | UnionNonlocal | UnionNonmutating | UnionNoSuchMethod | UnionNot | UnionNotEq | UnionNSError | UnionNSString | UnionNULL | UnionNull | UnionNullptr | UnionNumber | UnionObject | UnionObjectMapper | UnionOf | UnionOneway | UnionOpen | UnionOperator | UnionOptional | UnionOr | UnionOrEq | UnionOut | UnionOverride | UnionPackage | UnionParams | UnionPass | UnionPort | UnionPostfix | UnionPrecedence | UnionPrefix | UnionPrint | UnionPrintf | UnionPrintMembers | UnionPrivate | UnionProtected | UnionProtocol | UnionProtocolUnion | UnionPublic | UnionQuicktype | UnionRaise | UnionRange | UnionReadonly | UnionRef | UnionRegExp | UnionRegister | UnionReinterpretCast | UnionRepeat | UnionRequire | UnionRequired | UnionRequires | UnionRestrict | UnionRetain | UnionRethrows | UnionReturn | UnionRight | UnionRuntimeType | UnionS | UnionSbyte | UnionSealed | UnionSEL | UnionSelect | UnionSelf | UnionSelfUnion | UnionSerialize | UnionSerializerProvider | UnionSet | UnionShort | UnionSigned | UnionSimpleModule | UnionSizeof | UnionStackalloc | UnionStandards | UnionStatic | UnionStaticAssert | UnionStaticCast | UnionStdDeserializer | UnionStdSerializer | UnionStrictfp | UnionString | UnionStruct | UnionSubscript | UnionSuper | UnionSwitch | UnionSymbol | UnionSynchronized | UnionSystem | UnionTemplate | UnionThen | UnionThis | UnionThreadLocal | UnionThrow | UnionThrows | UnionTimeOnly | UnionTimeOnlyConverter | UnionToJSON | UnionTopLevel | UnionToString | UnionTransient | UnionTrue | UnionTrueUnion | UnionTry | UnionType | UnionTypeUnion | UnionTypealias | UnionTypedef | UnionTypeid | UnionTypename | UnionTypeof | UnionUint | UnionUlong | UnionUnchecked | UnionUndefined | UnionUnionUnion | UnionUnowned | UnionUnsafe | UnionUnsigned | UnionUshort | UnionUsing | UnionUtf8JSONReader | UnionUtf8JSONWriter | UnionUUID | UnionVar | UnionVirtual | UnionVoid | UnionVolatile | UnionWcharT | UnionWeak | UnionWhere | UnionWhile | UnionWillSet | UnionWith | UnionXor | UnionXorEq | UnionYES | UnionYield;
 }
 
 export type UnionAny = object | number;
@@ -294,28 +335,94 @@ export type UnionBOOL = object | number;
 
 export type UnionClass = object | number;
 
+export type UnionCultureInfo = object | number;
+
+export type UnionDateFormatter = object | number;
+
+export type UnionDateOnly = object | number;
+
+export type UnionDateOnlyConverter = object | number;
+
+export type UnionDateTime = object | number;
+
+export type UnionDateTimeStyles = object | number;
+
+export type UnionEnumValues = object | number;
+
 export type UnionFalse = object | number;
 
+export type UnionFormatException = object | number;
+
 export type UnionIMP = object | number;
 
+export type UnionISODateTimeOffsetConverter = object | number;
+
+export type UnionJSONAny = object | number;
+
+export type UnionJSONCodingKey = object | number;
+
+export type UnionJSONDecoder = object | number;
+
+export type UnionJSONEncoder = object | number;
+
+export type UnionJSONNull = object | number;
+
+export type UnionJSONException = object | number;
+
+export type UnionJSONGenerator = object | number;
+
+export type UnionJSONNode = object | number;
+
+export type UnionJSONParser = object | number;
+
+export type UnionJSONReader = object | number;
+
+export type UnionJSONTokenType = object | number;
+
 export type UnionNO = object | number;
 
+export type UnionNSError = object | number;
+
 export type UnionNSString = object | number;
 
 export type UnionNULL = object | number;
 
 export type UnionNone = object | number;
 
+export type UnionObjectMapper = object | number;
+
 export type UnionProtocol = object | number;
 
+export type UnionRegExp = object | number;
+
 export type UnionSEL = object | number;
 
 export type UnionSelf = object | number;
 
+export type UnionSerializerProvider = object | number;
+
+export type UnionSimpleModule = object | number;
+
+export type UnionStandards = object | number;
+
+export type UnionStdDeserializer = object | number;
+
+export type UnionStdSerializer = object | number;
+
+export type UnionTimeOnly = object | number;
+
+export type UnionTimeOnlyConverter = object | number;
+
 export type UnionTrue = object | number;
 
 export type UnionType = object | number;
 
+export type UnionUUID = object | number;
+
+export type UnionUtf8JSONReader = object | number;
+
+export type UnionUtf8JSONWriter = object | number;
+
 export type UnionYES = object | number;
 
 export type UnionUnion = object | number;
@@ -398,6 +505,8 @@ export type UnionChecked = object | number;
 
 export type UnionClassUnion = object | number;
 
+export type UnionClone = object | number;
+
 export type UnionCoAwait = object | number;
 
 export type UnionCoReturn = object | number;
@@ -476,6 +585,8 @@ export type UnionEncodeQuickType = object | number;
 
 export type UnionEnum = object | number;
 
+export type UnionEqualityContract = object | number;
+
 export type UnionEvent = object | number;
 
 export type UnionExcept = object | number;
@@ -534,6 +645,8 @@ export type UnionGuard = object | number;
 
 export type UnionHasOwnProperty = object | number;
 
+export type UnionHashCode = object | number;
+
 export type UnionID = object | number;
 
 export type UnionIf = object | number;
@@ -618,6 +731,8 @@ export type UnionNewtonsoft = object | number;
 
 export type UnionNil = object | number;
 
+export type UnionNoSuchMethod = object | number;
+
 export type UnionNoexcept = object | number;
 
 export type UnionNonatomic = object | number;
@@ -674,6 +789,8 @@ export type UnionPrefix = object | number;
 
 export type UnionPrint = object | number;
 
+export type UnionPrintMembers = object | number;
+
 export type UnionPrintf = object | number;
 
 export type UnionPrivate = object | number;
@@ -716,6 +833,10 @@ export type UnionReturn = object | number;
 
 export type UnionRight = object | number;
 
+export type UnionRuntimeType = object | number;
+
+export type UnionS = object | number;
+
 export type UnionSbyte = object | number;
 
 export type UnionSealed = object | number;
@@ -772,6 +893,8 @@ export type UnionThrow = object | number;
 
 export type UnionThrows = object | number;
 
+export type UnionToString = object | number;
+
 export type UnionToJSON = object | number;
 
 export type UnionTopLevel = object | number;
@@ -1071,6 +1194,7 @@ const typeMap: any = {
         { json: "checked", js: "checked", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "class", js: "class", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "Class", js: "Class", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "clone", js: "clone", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "co_await", js: "co_await", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "co_return", js: "co_return", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "co_yield", js: "co_yield", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1085,8 +1209,14 @@ const typeMap: any = {
         { json: "convenience", js: "convenience", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "convert", js: "convert", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "converter", js: "converter", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "CultureInfo", js: "CultureInfo", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "date", js: "date", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "date_parse_handling", js: "date_parse_handling", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "DateFormatter", js: "DateFormatter", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "DateOnly", js: "DateOnly", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "DateTime", js: "DateTime", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "debugger", js: "debugger", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "decimal", js: "decimal", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "declare", js: "declare", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1111,6 +1241,8 @@ const typeMap: any = {
         { json: "else", js: "else", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "encode_quick_type", js: "encode_quick_type", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "enum", js: "enum", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "EnumValues", js: "EnumValues", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "equalityContract", js: "equalityContract", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "event", js: "event", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "except", js: "except", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "exception", js: "exception", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1130,6 +1262,7 @@ const typeMap: any = {
         { json: "float", js: "float", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "for", js: "for", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "foreach", js: "foreach", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "FormatException", js: "FormatException", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "friend", js: "friend", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "from", js: "from", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "from_json", js: "from_json", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1140,6 +1273,7 @@ const typeMap: any = {
         { json: "go", js: "go", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "goto", js: "goto", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "guard", js: "guard", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "hashCode", js: "hashCode", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "hasOwnProperty", js: "hasOwnProperty", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "id", js: "id", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "if", js: "if", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1158,6 +1292,7 @@ const typeMap: any = {
         { json: "interface", js: "interface", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "internal", js: "internal", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "is", js: "is", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "iterable", js: "iterable", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "jdec", js: "jdec", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "jenc", js: "jenc", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1167,6 +1302,17 @@ const typeMap: any = {
         { json: "json_serializer", js: "json_serializer", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "json_token", js: "json_token", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "json_writer", js: "json_writer", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JSONAny", js: "JSONAny", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JSONCodingKey", js: "JSONCodingKey", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JSONDecoder", js: "JSONDecoder", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JSONEncoder", js: "JSONEncoder", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonException", js: "JsonException", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonGenerator", js: "JsonGenerator", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonNode", js: "JsonNode", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JSONNull", js: "JSONNull", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonParser", js: "JsonParser", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonReader", js: "JsonReader", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "JsonTokenType", js: "JsonTokenType", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "lambda", js: "lambda", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "lazy", js: "lazy", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "left", js: "left", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1191,14 +1337,17 @@ const typeMap: any = {
         { json: "None", js: "None", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "nonlocal", js: "nonlocal", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "nonmutating", js: "nonmutating", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "noSuchMethod", js: "noSuchMethod", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "not", js: "not", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "not_eq", js: "not_eq", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "NSError", js: "NSError", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "NSString", js: "NSString", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "NULL", js: "NULL", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "null", js: "null", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "nullptr", js: "nullptr", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "number", js: "number", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "object", js: "object", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "ObjectMapper", js: "ObjectMapper", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "of", js: "of", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "oneway", js: "oneway", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "open", js: "open", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1217,6 +1366,7 @@ const typeMap: any = {
         { json: "prefix", js: "prefix", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "print", js: "print", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "printf", js: "printf", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "printMembers", js: "printMembers", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "private", js: "private", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "protected", js: "protected", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "Protocol", js: "Protocol", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1227,6 +1377,7 @@ const typeMap: any = {
         { json: "range", js: "range", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "readonly", js: "readonly", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "ref", js: "ref", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "RegExp", js: "RegExp", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "register", js: "register", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "reinterpret_cast", js: "reinterpret_cast", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "repeat", js: "repeat", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1238,6 +1389,8 @@ const typeMap: any = {
         { json: "rethrows", js: "rethrows", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "return", js: "return", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "right", js: "right", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "runtimeType", js: "runtimeType", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "s", js: "s", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "sbyte", js: "sbyte", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "sealed", js: "sealed", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "SEL", js: "SEL", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1245,14 +1398,19 @@ const typeMap: any = {
         { json: "Self", js: "Self", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "self", js: "self", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "serialize", js: "serialize", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "set", js: "set", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "short", js: "short", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "signed", js: "signed", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "SimpleModule", js: "SimpleModule", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "sizeof", js: "sizeof", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "stackalloc", js: "stackalloc", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "Standards", js: "Standards", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "static", js: "static", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "static_assert", js: "static_assert", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "static_cast", js: "static_cast", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "StdDeserializer", js: "StdDeserializer", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "StdSerializer", js: "StdSerializer", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "strictfp", js: "strictfp", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "string", js: "string", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "struct", js: "struct", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1268,8 +1426,11 @@ const typeMap: any = {
         { json: "thread_local", js: "thread_local", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "throw", js: "throw", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "throws", js: "throws", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "TimeOnly", js: "TimeOnly", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "to_json", js: "to_json", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "top_level", js: "top_level", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "toString", js: "toString", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "transient", js: "transient", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "True", js: "True", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "true", js: "true", typ: u(undefined, u(m("any"), 3.14)) },
@@ -1291,6 +1452,9 @@ const typeMap: any = {
         { json: "unsigned", js: "unsigned", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "ushort", js: "ushort", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "using", js: "using", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: u(undefined, u(m("any"), 3.14)) },
+        { json: "UUID", js: "UUID", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "var", js: "var", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "virtual", js: "virtual", typ: u(undefined, u(m("any"), 3.14)) },
         { json: "void", js: "void", typ: u(undefined, u(m("any"), 3.14)) },
diff --git a/base/schema-typescript-effect-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts b/head/schema-typescript-effect-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
index 2ca6565..1ab5650 100644
--- a/base/schema-typescript-effect-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript-effect-schema/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
@@ -45,6 +45,7 @@ export const Enum = S.Literal(
     "checked",
     "class",
     "Class",
+    "clone",
     "co_await",
     "co_return",
     "co_yield",
@@ -59,8 +60,14 @@ export const Enum = S.Literal(
     "convenience",
     "convert",
     "converter",
+    "CultureInfo",
     "date",
     "date_parse_handling",
+    "DateFormatter",
+    "DateOnly",
+    "DateOnlyConverter",
+    "DateTime",
+    "DateTimeStyles",
     "debugger",
     "decimal",
     "declare",
@@ -84,6 +91,8 @@ export const Enum = S.Literal(
     "else",
     "encode_quick_type",
     "enum",
+    "EnumValues",
+    "equalityContract",
     "event",
     "except",
     "exception",
@@ -103,6 +112,7 @@ export const Enum = S.Literal(
     "float",
     "for",
     "foreach",
+    "FormatException",
     "friend",
     "from",
     "from_json",
@@ -113,6 +123,7 @@ export const Enum = S.Literal(
     "go",
     "goto",
     "guard",
+    "hashCode",
     "hasOwnProperty",
     "id",
     "if",
@@ -130,6 +141,7 @@ export const Enum = S.Literal(
     "int",
     "interface",
     "internal",
+    "IsoDateTimeOffsetConverter",
     "iterable",
     "is",
     "jdec",
@@ -140,6 +152,17 @@ export const Enum = S.Literal(
     "json_serializer",
     "json_token",
     "json_writer",
+    "JSONAny",
+    "JSONCodingKey",
+    "JSONDecoder",
+    "JSONEncoder",
+    "JsonException",
+    "JsonGenerator",
+    "JsonNode",
+    "JSONNull",
+    "JsonParser",
+    "JsonReader",
+    "JsonTokenType",
     "lambda",
     "lazy",
     "left",
@@ -164,14 +187,17 @@ export const Enum = S.Literal(
     "None",
     "nonlocal",
     "nonmutating",
+    "noSuchMethod",
     "not",
     "not_eq",
+    "NSError",
     "NSString",
     "NULL",
     "null",
     "nullptr",
     "number",
     "object",
+    "ObjectMapper",
     "of",
     "oneway",
     "open",
@@ -190,6 +216,7 @@ export const Enum = S.Literal(
     "prefix",
     "print",
     "printf",
+    "printMembers",
     "private",
     "protected",
     "Protocol",
@@ -200,6 +227,7 @@ export const Enum = S.Literal(
     "range",
     "readonly",
     "ref",
+    "RegExp",
     "register",
     "reinterpret_cast",
     "repeat",
@@ -211,6 +239,8 @@ export const Enum = S.Literal(
     "rethrows",
     "return",
     "right",
+    "runtimeType",
+    "s",
     "sbyte",
     "sealed",
     "SEL",
@@ -218,14 +248,19 @@ export const Enum = S.Literal(
     "Self",
     "self",
     "serialize",
+    "SerializerProvider",
     "set",
     "short",
     "signed",
+    "SimpleModule",
     "sizeof",
     "stackalloc",
+    "Standards",
     "static",
     "static_assert",
     "static_cast",
+    "StdDeserializer",
+    "StdSerializer",
     "strictfp",
     "string",
     "struct",
@@ -241,8 +276,11 @@ export const Enum = S.Literal(
     "thread_local",
     "throw",
     "throws",
+    "TimeOnly",
+    "TimeOnlyConverter",
     "to_json",
     "top_level",
+    "toString",
     "transient",
     "True",
     "true",
@@ -264,6 +302,9 @@ export const Enum = S.Literal(
     "unsigned",
     "ushort",
     "using",
+    "Utf8JsonReader",
+    "Utf8JsonWriter",
+    "UUID",
     "var",
     "virtual",
     "void",
diff --git a/base/schema-typescript-effect-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts b/head/schema-typescript-effect-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
index f07a002..e634d3c 100644
--- a/base/schema-typescript-effect-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
+++ b/head/schema-typescript-effect-schema/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
@@ -43,6 +43,15 @@ export class Virtual extends S.Class<Virtual>("Virtual")(S.Struct({}).pipe(S.fil
 export class Var extends S.Class<Var>("Var")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class Uuid extends S.Class<Uuid>("Uuid")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class Utf8JsonWriter extends S.Class<Utf8JsonWriter>("Utf8JsonWriter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class Utf8JsonReader extends S.Class<Utf8JsonReader>("Utf8JsonReader")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Using extends S.Class<Using>("Using")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -133,9 +142,18 @@ export class AnyClass extends S.Class<AnyClass>("AnyClass")(S.Struct({}).pipe(S.
 export class TopLevelClass extends S.Class<TopLevelClass>("TopLevelClass")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class ToString extends S.Class<ToString>("ToString")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class ToJson extends S.Class<ToJson>("ToJson")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class TimeOnlyConverter extends S.Class<TimeOnlyConverter>("TimeOnlyConverter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class TimeOnly extends S.Class<TimeOnly>("TimeOnly")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Throws extends S.Class<Throws>("Throws")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -181,6 +199,12 @@ export class StringClass extends S.Class<StringClass>("StringClass")(S.Struct({}
 export class Strictfp extends S.Class<Strictfp>("Strictfp")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class StdSerializer extends S.Class<StdSerializer>("StdSerializer")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class StdDeserializer extends S.Class<StdDeserializer>("StdDeserializer")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class StaticCast extends S.Class<StaticCast>("StaticCast")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -190,12 +214,18 @@ export class StaticAssert extends S.Class<StaticAssert>("StaticAssert")(S.Struct
 export class Static extends S.Class<Static>("Static")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class Standards extends S.Class<Standards>("Standards")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Stackalloc extends S.Class<Stackalloc>("Stackalloc")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
 export class Sizeof extends S.Class<Sizeof>("Sizeof")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class SimpleModule extends S.Class<SimpleModule>("SimpleModule")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Signed extends S.Class<Signed>("Signed")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -205,6 +235,9 @@ export class Short extends S.Class<Short>("Short")(S.Struct({}).pipe(S.filter(va
 export class Set extends S.Class<Set>("Set")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class SerializerProvider extends S.Class<SerializerProvider>("SerializerProvider")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Serialize extends S.Class<Serialize>("Serialize")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -223,6 +256,12 @@ export class Sealed extends S.Class<Sealed>("Sealed")(S.Struct({}).pipe(S.filter
 export class Sbyte extends S.Class<Sbyte>("Sbyte")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class SClass extends S.Class<SClass>("SClass")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class RuntimeType extends S.Class<RuntimeType>("RuntimeType")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Right extends S.Class<Right>("Right")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -256,6 +295,9 @@ export class ReinterpretCast extends S.Class<ReinterpretCast>("ReinterpretCast")
 export class Register extends S.Class<Register>("Register")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class RegExp extends S.Class<RegExp>("RegExp")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Ref extends S.Class<Ref>("Ref")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -289,6 +331,9 @@ export class Private extends S.Class<Private>("Private")(S.Struct({}).pipe(S.fil
 export class Printf extends S.Class<Printf>("Printf")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class PrintMembers extends S.Class<PrintMembers>("PrintMembers")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Print extends S.Class<Print>("Print")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -340,6 +385,9 @@ export class Oneway extends S.Class<Oneway>("Oneway")(S.Struct({}).pipe(S.filter
 export class Of extends S.Class<Of>("Of")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class ObjectMapper extends S.Class<ObjectMapper>("ObjectMapper")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class ObjectClass extends S.Class<ObjectClass>("ObjectClass")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -355,6 +403,9 @@ export class Null extends S.Class<Null>("Null")(S.Struct({}).pipe(S.filter(value
 export class NsString extends S.Class<NsString>("NsString")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class NsError extends S.Class<NsError>("NsError")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class NotEq extends S.Class<NotEq>("NotEq")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -376,6 +427,9 @@ export class Nonatomic extends S.Class<Nonatomic>("Nonatomic")(S.Struct({}).pipe
 export class Noexcept extends S.Class<Noexcept>("Noexcept")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class NoSuchMethod extends S.Class<NoSuchMethod>("NoSuchMethod")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class No extends S.Class<No>("No")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -433,15 +487,48 @@ export class Lambda extends S.Class<Lambda>("Lambda")(S.Struct({}).pipe(S.filter
 export class JsonWriter extends S.Class<JsonWriter>("JsonWriter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class JsonTokenType extends S.Class<JsonTokenType>("JsonTokenType")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class JsonToken extends S.Class<JsonToken>("JsonToken")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
 export class JsonSerializer extends S.Class<JsonSerializer>("JsonSerializer")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class JsonReader extends S.Class<JsonReader>("JsonReader")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonParser extends S.Class<JsonParser>("JsonParser")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonNull extends S.Class<JsonNull>("JsonNull")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonNode extends S.Class<JsonNode>("JsonNode")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonGenerator extends S.Class<JsonGenerator>("JsonGenerator")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonException extends S.Class<JsonException>("JsonException")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonEncoder extends S.Class<JsonEncoder>("JsonEncoder")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonDecoder extends S.Class<JsonDecoder>("JsonDecoder")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class JsonConverter extends S.Class<JsonConverter>("JsonConverter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class JsonCodingKey extends S.Class<JsonCodingKey>("JsonCodingKey")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class JsonAny extends S.Class<JsonAny>("JsonAny")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Json extends S.Class<Json>("Json")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -457,6 +544,9 @@ export class Jdec extends S.Class<Jdec>("Jdec")(S.Struct({}).pipe(S.filter(value
 export class Iterable extends S.Class<Iterable>("Iterable")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class IsoDateTimeOffsetConverter extends S.Class<IsoDateTimeOffsetConverter>("IsoDateTimeOffsetConverter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Is extends S.Class<Is>("Is")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -511,6 +601,9 @@ export class If extends S.Class<If>("If")(S.Struct({}).pipe(S.filter(value => ty
 export class Id extends S.Class<Id>("Id")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class HashCode extends S.Class<HashCode>("HashCode")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class HasOwnProperty extends S.Class<HasOwnProperty>("HasOwnProperty")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -544,6 +637,9 @@ export class From extends S.Class<From>("From")(S.Struct({}).pipe(S.filter(value
 export class Friend extends S.Class<Friend>("Friend")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class FormatException extends S.Class<FormatException>("FormatException")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Foreach extends S.Class<Foreach>("Foreach")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -598,6 +694,12 @@ export class Except extends S.Class<Except>("Except")(S.Struct({}).pipe(S.filter
 export class Event extends S.Class<Event>("Event")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class EqualityContract extends S.Class<EqualityContract>("EqualityContract")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class EnumValues extends S.Class<EnumValues>("EnumValues")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Enum extends S.Class<Enum>("Enum")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -670,12 +772,30 @@ export class Decimal extends S.Class<Decimal>("Decimal")(S.Struct({}).pipe(S.fil
 export class Debugger extends S.Class<Debugger>("Debugger")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class DateTimeStyles extends S.Class<DateTimeStyles>("DateTimeStyles")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class DateTime extends S.Class<DateTime>("DateTime")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class DateParseHandling extends S.Class<DateParseHandling>("DateParseHandling")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class DateOnlyConverter extends S.Class<DateOnlyConverter>("DateOnlyConverter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class DateOnly extends S.Class<DateOnly>("DateOnly")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
+export class DateFormatter extends S.Class<DateFormatter>("DateFormatter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class DateClass extends S.Class<DateClass>("DateClass")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class CultureInfo extends S.Class<CultureInfo>("CultureInfo")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class Converter extends S.Class<Converter>("Converter")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -721,6 +841,9 @@ export class CoReturn extends S.Class<CoReturn>("CoReturn")(S.Struct({}).pipe(S.
 export class CoAwait extends S.Class<CoAwait>("CoAwait")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
+export class Clone extends S.Class<Clone>("Clone")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
+) {}
+
 export class ClassClass extends S.Class<ClassClass>("ClassClass")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
 ) {}
 
@@ -873,6 +996,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "checked": S.optional(S.Union(S.Number, Checked)),
     "class": S.optional(S.Union(S.Number, UnionClassClass)),
     "Class": S.optional(S.Union(S.Number, ClassClass)),
+    "clone": S.optional(S.Union(S.Number, Clone)),
     "co_await": S.optional(S.Union(S.Number, CoAwait)),
     "co_return": S.optional(S.Union(S.Number, CoReturn)),
     "co_yield": S.optional(S.Union(S.Number, CoYield)),
@@ -887,8 +1011,14 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "convenience": S.optional(S.Union(S.Number, Convenience)),
     "convert": S.optional(S.Union(S.Number, Convert)),
     "converter": S.optional(S.Union(S.Number, Converter)),
+    "CultureInfo": S.optional(S.Union(S.Number, CultureInfo)),
     "date": S.optional(S.Union(S.Number, DateClass)),
     "date_parse_handling": S.optional(S.Union(S.Number, DateParseHandling)),
+    "DateFormatter": S.optional(S.Union(S.Number, DateFormatter)),
+    "DateOnly": S.optional(S.Union(S.Number, DateOnly)),
+    "DateOnlyConverter": S.optional(S.Union(S.Number, DateOnlyConverter)),
+    "DateTime": S.optional(S.Union(S.Number, DateTime)),
+    "DateTimeStyles": S.optional(S.Union(S.Number, DateTimeStyles)),
     "debugger": S.optional(S.Union(S.Number, Debugger)),
     "decimal": S.optional(S.Union(S.Number, Decimal)),
     "declare": S.optional(S.Union(S.Number, Declare)),
@@ -913,6 +1043,8 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "else": S.optional(S.Union(S.Number, Else)),
     "encode_quick_type": S.optional(S.Union(S.Number, EncodeQuickType)),
     "enum": S.optional(S.Union(S.Number, Enum)),
+    "EnumValues": S.optional(S.Union(S.Number, EnumValues)),
+    "equalityContract": S.optional(S.Union(S.Number, EqualityContract)),
     "event": S.optional(S.Union(S.Number, Event)),
     "except": S.optional(S.Union(S.Number, Except)),
     "exception": S.optional(S.Union(S.Number, Exception)),
@@ -932,6 +1064,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "float": S.optional(S.Union(S.Number, Float)),
     "for": S.optional(S.Union(S.Number, For)),
     "foreach": S.optional(S.Union(S.Number, Foreach)),
+    "FormatException": S.optional(S.Union(S.Number, FormatException)),
     "friend": S.optional(S.Union(S.Number, Friend)),
     "from": S.optional(S.Union(S.Number, From)),
     "from_json": S.optional(S.Union(S.Number, FromJson)),
@@ -942,6 +1075,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "go": S.optional(S.Union(S.Number, Go)),
     "goto": S.optional(S.Union(S.Number, Goto)),
     "guard": S.optional(S.Union(S.Number, Guard)),
+    "hashCode": S.optional(S.Union(S.Number, HashCode)),
     "hasOwnProperty": S.optional(S.Union(S.Number, HasOwnProperty)),
     "id": S.optional(S.Union(S.Number, Id)),
     "if": S.optional(S.Union(S.Number, If)),
@@ -960,6 +1094,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "interface": S.optional(S.Union(S.Number, Interface)),
     "internal": S.optional(S.Union(S.Number, Internal)),
     "is": S.optional(S.Union(S.Number, Is)),
+    "IsoDateTimeOffsetConverter": S.optional(S.Union(S.Number, IsoDateTimeOffsetConverter)),
     "iterable": S.optional(S.Union(S.Number, Iterable)),
     "jdec": S.optional(S.Union(S.Number, Jdec)),
     "jenc": S.optional(S.Union(S.Number, Jenc)),
@@ -969,6 +1104,17 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "json_serializer": S.optional(S.Union(S.Number, JsonSerializer)),
     "json_token": S.optional(S.Union(S.Number, JsonToken)),
     "json_writer": S.optional(S.Union(S.Number, JsonWriter)),
+    "JSONAny": S.optional(S.Union(S.Number, JsonAny)),
+    "JSONCodingKey": S.optional(S.Union(S.Number, JsonCodingKey)),
+    "JSONDecoder": S.optional(S.Union(S.Number, JsonDecoder)),
+    "JSONEncoder": S.optional(S.Union(S.Number, JsonEncoder)),
+    "JsonException": S.optional(S.Union(S.Number, JsonException)),
+    "JsonGenerator": S.optional(S.Union(S.Number, JsonGenerator)),
+    "JsonNode": S.optional(S.Union(S.Number, JsonNode)),
+    "JSONNull": S.optional(S.Union(S.Number, JsonNull)),
+    "JsonParser": S.optional(S.Union(S.Number, JsonParser)),
+    "JsonReader": S.optional(S.Union(S.Number, JsonReader)),
+    "JsonTokenType": S.optional(S.Union(S.Number, JsonTokenType)),
     "lambda": S.optional(S.Union(S.Number, Lambda)),
     "lazy": S.optional(S.Union(S.Number, Lazy)),
     "left": S.optional(S.Union(S.Number, Left)),
@@ -993,14 +1139,17 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "None": S.optional(S.Union(S.Number, None)),
     "nonlocal": S.optional(S.Union(S.Number, Nonlocal)),
     "nonmutating": S.optional(S.Union(S.Number, Nonmutating)),
+    "noSuchMethod": S.optional(S.Union(S.Number, NoSuchMethod)),
     "not": S.optional(S.Union(S.Number, Not)),
     "not_eq": S.optional(S.Union(S.Number, NotEq)),
+    "NSError": S.optional(S.Union(S.Number, NsError)),
     "NSString": S.optional(S.Union(S.Number, NsString)),
     "NULL": S.optional(S.Union(S.Number, Null)),
     "null": S.optional(S.Union(S.Number, NullClass)),
     "nullptr": S.optional(S.Union(S.Number, Nullptr)),
     "number": S.optional(S.Union(S.Number, Number)),
     "object": S.optional(S.Union(S.Number, ObjectClass)),
+    "ObjectMapper": S.optional(S.Union(S.Number, ObjectMapper)),
     "of": S.optional(S.Union(S.Number, Of)),
     "oneway": S.optional(S.Union(S.Number, Oneway)),
     "open": S.optional(S.Union(S.Number, Open)),
@@ -1019,6 +1168,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "prefix": S.optional(S.Union(S.Number, Prefix)),
     "print": S.optional(S.Union(S.Number, Print)),
     "printf": S.optional(S.Union(S.Number, Printf)),
+    "printMembers": S.optional(S.Union(S.Number, PrintMembers)),
     "private": S.optional(S.Union(S.Number, Private)),
     "protected": S.optional(S.Union(S.Number, Protected)),
     "Protocol": S.optional(S.Union(S.Number, Protocol)),
@@ -1029,6 +1179,7 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "range": S.optional(S.Union(S.Number, Range)),
     "readonly": S.optional(S.Union(S.Number, Readonly)),
     "ref": S.optional(S.Union(S.Number, Ref)),
+    "RegExp": S.optional(S.Union(S.Number, RegExp)),
     "register": S.optional(S.Union(S.Number, Register)),
     "reinterpret_cast": S.optional(S.Union(S.Number, ReinterpretCast)),
     "repeat": S.optional(S.Union(S.Number, Repeat)),
@@ -1040,6 +1191,8 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "rethrows": S.optional(S.Union(S.Number, Rethrows)),
     "return": S.optional(S.Union(S.Number, Return)),
     "right": S.optional(S.Union(S.Number, Right)),
+    "runtimeType": S.optional(S.Union(S.Number, RuntimeType)),
+    "s": S.optional(S.Union(S.Number, SClass)),
     "sbyte": S.optional(S.Union(S.Number, Sbyte)),
     "sealed": S.optional(S.Union(S.Number, Sealed)),
     "SEL": S.optional(S.Union(S.Number, Sel)),
@@ -1047,14 +1200,19 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "Self": S.optional(S.Union(S.Number, Self)),
     "self": S.optional(S.Union(S.Number, SelfClass)),
     "serialize": S.optional(S.Union(S.Number, Serialize)),
+    "SerializerProvider": S.optional(S.Union(S.Number, SerializerProvider)),
     "set": S.optional(S.Union(S.Number, Set)),
     "short": S.optional(S.Union(S.Number, Short)),
     "signed": S.optional(S.Union(S.Number, Signed)),
+    "SimpleModule": S.optional(S.Union(S.Number, SimpleModule)),
     "sizeof": S.optional(S.Union(S.Number, Sizeof)),
     "stackalloc": S.optional(S.Union(S.Number, Stackalloc)),
+    "Standards": S.optional(S.Union(S.Number, Standards)),
     "static": S.optional(S.Union(S.Number, Static)),
     "static_assert": S.optional(S.Union(S.Number, StaticAssert)),
     "static_cast": S.optional(S.Union(S.Number, StaticCast)),
+    "StdDeserializer": S.optional(S.Union(S.Number, StdDeserializer)),
+    "StdSerializer": S.optional(S.Union(S.Number, StdSerializer)),
     "strictfp": S.optional(S.Union(S.Number, Strictfp)),
     "string": S.optional(S.Union(S.Number, StringClass)),
     "struct": S.optional(S.Union(S.Number, Struct)),
@@ -1070,8 +1228,11 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "thread_local": S.optional(S.Union(S.Number, ThreadLocal)),
     "throw": S.optional(S.Union(S.Number, Throw)),
     "throws": S.optional(S.Union(S.Number, Throws)),
+    "TimeOnly": S.optional(S.Union(S.Number, TimeOnly)),
+    "TimeOnlyConverter": S.optional(S.Union(S.Number, TimeOnlyConverter)),
     "to_json": S.optional(S.Union(S.Number, ToJson)),
     "top_level": S.optional(S.Union(S.Number, TopLevelClass)),
+    "toString": S.optional(S.Union(S.Number, ToString)),
     "transient": S.optional(S.Union(S.Number, Transient)),
     "True": S.optional(S.Union(S.Number, True)),
     "true": S.optional(S.Union(S.Number, TrueClass)),
@@ -1093,6 +1254,9 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "unsigned": S.optional(S.Union(S.Number, Unsigned)),
     "ushort": S.optional(S.Union(S.Number, Ushort)),
     "using": S.optional(S.Union(S.Number, Using)),
+    "Utf8JsonReader": S.optional(S.Union(S.Number, Utf8JsonReader)),
+    "Utf8JsonWriter": S.optional(S.Union(S.Number, Utf8JsonWriter)),
+    "UUID": S.optional(S.Union(S.Number, Uuid)),
     "var": S.optional(S.Union(S.Number, Var)),
     "virtual": S.optional(S.Union(S.Number, Virtual)),
     "void": S.optional(S.Union(S.Number, Void)),
@@ -1108,3 +1272,4 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
     "YES": S.optional(S.Union(S.Number, Yes)),
     "yield": S.optional(S.Union(S.Number, Yield)),
 }) {}
+Object.defineProperty(TopLevel.prototype, "toString", { writable: true });
diff --git a/base/schema-typescript-zod/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
index 0a953db..62587dc 100644
--- a/base/schema-typescript-zod/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
@@ -45,6 +45,7 @@ export const EnumSchema = z.enum([
     "checked",
     "class",
     "Class",
+    "clone",
     "co_await",
     "co_return",
     "co_yield",
@@ -59,8 +60,14 @@ export const EnumSchema = z.enum([
     "convenience",
     "convert",
     "converter",
+    "CultureInfo",
     "date",
     "date_parse_handling",
+    "DateFormatter",
+    "DateOnly",
+    "DateOnlyConverter",
+    "DateTime",
+    "DateTimeStyles",
     "debugger",
     "decimal",
     "declare",
@@ -84,6 +91,8 @@ export const EnumSchema = z.enum([
     "else",
     "encode_quick_type",
     "enum",
+    "EnumValues",
+    "equalityContract",
     "event",
     "except",
     "exception",
@@ -103,6 +112,7 @@ export const EnumSchema = z.enum([
     "float",
     "for",
     "foreach",
+    "FormatException",
     "friend",
     "from",
     "from_json",
@@ -113,6 +123,7 @@ export const EnumSchema = z.enum([
     "go",
     "goto",
     "guard",
+    "hashCode",
     "hasOwnProperty",
     "id",
     "if",
@@ -130,6 +141,7 @@ export const EnumSchema = z.enum([
     "int",
     "interface",
     "internal",
+    "IsoDateTimeOffsetConverter",
     "iterable",
     "is",
     "jdec",
@@ -140,6 +152,17 @@ export const EnumSchema = z.enum([
     "json_serializer",
     "json_token",
     "json_writer",
+    "JSONAny",
+    "JSONCodingKey",
+    "JSONDecoder",
+    "JSONEncoder",
+    "JsonException",
+    "JsonGenerator",
+    "JsonNode",
+    "JSONNull",
+    "JsonParser",
+    "JsonReader",
+    "JsonTokenType",
     "lambda",
     "lazy",
     "left",
@@ -164,14 +187,17 @@ export const EnumSchema = z.enum([
     "None",
     "nonlocal",
     "nonmutating",
+    "noSuchMethod",
     "not",
     "not_eq",
+    "NSError",
     "NSString",
     "NULL",
     "null",
     "nullptr",
     "number",
     "object",
+    "ObjectMapper",
     "of",
     "oneway",
     "open",
@@ -190,6 +216,7 @@ export const EnumSchema = z.enum([
     "prefix",
     "print",
     "printf",
+    "printMembers",
     "private",
     "protected",
     "Protocol",
@@ -200,6 +227,7 @@ export const EnumSchema = z.enum([
     "range",
     "readonly",
     "ref",
+    "RegExp",
     "register",
     "reinterpret_cast",
     "repeat",
@@ -211,6 +239,8 @@ export const EnumSchema = z.enum([
     "rethrows",
     "return",
     "right",
+    "runtimeType",
+    "s",
     "sbyte",
     "sealed",
     "SEL",
@@ -218,14 +248,19 @@ export const EnumSchema = z.enum([
     "Self",
     "self",
     "serialize",
+    "SerializerProvider",
     "set",
     "short",
     "signed",
+    "SimpleModule",
     "sizeof",
     "stackalloc",
+    "Standards",
     "static",
     "static_assert",
     "static_cast",
+    "StdDeserializer",
+    "StdSerializer",
     "strictfp",
     "string",
     "struct",
@@ -241,8 +276,11 @@ export const EnumSchema = z.enum([
     "thread_local",
     "throw",
     "throws",
+    "TimeOnly",
+    "TimeOnlyConverter",
     "to_json",
     "top_level",
+    "toString",
     "transient",
     "True",
     "true",
@@ -264,6 +302,9 @@ export const EnumSchema = z.enum([
     "unsigned",
     "ushort",
     "using",
+    "Utf8JsonReader",
+    "Utf8JsonWriter",
+    "UUID",
     "var",
     "virtual",
     "void",
diff --git a/base/schema-typescript-zod/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
index 8d21332..829eb17 100644
--- a/base/schema-typescript-zod/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
@@ -145,6 +145,10 @@ export const ClassClassSchema = z.object({
 });
 export type ClassClass = z.infer<typeof ClassClassSchema>;
 
+export const CloneSchema = z.object({
+});
+export type Clone = z.infer<typeof CloneSchema>;
+
 export const CoAwaitSchema = z.object({
 });
 export type CoAwait = z.infer<typeof CoAwaitSchema>;
@@ -205,14 +209,38 @@ export const ConverterSchema = z.object({
 });
 export type Converter = z.infer<typeof ConverterSchema>;
 
+export const CultureInfoSchema = z.object({
+});
+export type CultureInfo = z.infer<typeof CultureInfoSchema>;
+
 export const DateClassSchema = z.object({
 });
 export type DateClass = z.infer<typeof DateClassSchema>;
 
+export const DateFormatterSchema = z.object({
+});
+export type DateFormatter = z.infer<typeof DateFormatterSchema>;
+
+export const DateOnlySchema = z.object({
+});
+export type DateOnly = z.infer<typeof DateOnlySchema>;
+
+export const DateOnlyConverterSchema = z.object({
+});
+export type DateOnlyConverter = z.infer<typeof DateOnlyConverterSchema>;
+
 export const DateParseHandlingSchema = z.object({
 });
 export type DateParseHandling = z.infer<typeof DateParseHandlingSchema>;
 
+export const DateTimeSchema = z.object({
+});
+export type DateTime = z.infer<typeof DateTimeSchema>;
+
+export const DateTimeStylesSchema = z.object({
+});
+export type DateTimeStyles = z.infer<typeof DateTimeStylesSchema>;
+
 export const DebuggerSchema = z.object({
 });
 export type Debugger = z.infer<typeof DebuggerSchema>;
@@ -309,6 +337,14 @@ export const EnumSchema = z.object({
 });
 export type Enum = z.infer<typeof EnumSchema>;
 
+export const EnumValuesSchema = z.object({
+});
+export type EnumValues = z.infer<typeof EnumValuesSchema>;
+
+export const EqualityContractSchema = z.object({
+});
+export type EqualityContract = z.infer<typeof EqualityContractSchema>;
+
 export const EventSchema = z.object({
 });
 export type Event = z.infer<typeof EventSchema>;
@@ -381,6 +417,10 @@ export const ForeachSchema = z.object({
 });
 export type Foreach = z.infer<typeof ForeachSchema>;
 
+export const FormatExceptionSchema = z.object({
+});
+export type FormatException = z.infer<typeof FormatExceptionSchema>;
+
 export const FriendSchema = z.object({
 });
 export type Friend = z.infer<typeof FriendSchema>;
@@ -425,6 +465,10 @@ export const HasOwnPropertySchema = z.object({
 });
 export type HasOwnProperty = z.infer<typeof HasOwnPropertySchema>;
 
+export const HashCodeSchema = z.object({
+});
+export type HashCode = z.infer<typeof HashCodeSchema>;
+
 export const IdSchema = z.object({
 });
 export type Id = z.infer<typeof IdSchema>;
@@ -497,6 +541,10 @@ export const IsSchema = z.object({
 });
 export type Is = z.infer<typeof IsSchema>;
 
+export const IsoDateTimeOffsetConverterSchema = z.object({
+});
+export type IsoDateTimeOffsetConverter = z.infer<typeof IsoDateTimeOffsetConverterSchema>;
+
 export const IterableSchema = z.object({
 });
 export type Iterable = z.infer<typeof IterableSchema>;
@@ -517,10 +565,50 @@ export const JsonSchema = z.object({
 });
 export type Json = z.infer<typeof JsonSchema>;
 
+export const JsonAnySchema = z.object({
+});
+export type JsonAny = z.infer<typeof JsonAnySchema>;
+
+export const JsonCodingKeySchema = z.object({
+});
+export type JsonCodingKey = z.infer<typeof JsonCodingKeySchema>;
+
 export const JsonConverterSchema = z.object({
 });
 export type JsonConverter = z.infer<typeof JsonConverterSchema>;
 
+export const JsonDecoderSchema = z.object({
+});
+export type JsonDecoder = z.infer<typeof JsonDecoderSchema>;
+
+export const JsonEncoderSchema = z.object({
+});
+export type JsonEncoder = z.infer<typeof JsonEncoderSchema>;
+
+export const JsonExceptionSchema = z.object({
+});
+export type JsonException = z.infer<typeof JsonExceptionSchema>;
+
+export const JsonGeneratorSchema = z.object({
+});
+export type JsonGenerator = z.infer<typeof JsonGeneratorSchema>;
+
+export const JsonNodeSchema = z.object({
+});
+export type JsonNode = z.infer<typeof JsonNodeSchema>;
+
+export const JsonNullSchema = z.object({
+});
+export type JsonNull = z.infer<typeof JsonNullSchema>;
+
+export const JsonParserSchema = z.object({
+});
+export type JsonParser = z.infer<typeof JsonParserSchema>;
+
+export const JsonReaderSchema = z.object({
+});
+export type JsonReader = z.infer<typeof JsonReaderSchema>;
+
 export const JsonSerializerSchema = z.object({
 });
 export type JsonSerializer = z.infer<typeof JsonSerializerSchema>;
@@ -529,6 +617,10 @@ export const JsonTokenSchema = z.object({
 });
 export type JsonToken = z.infer<typeof JsonTokenSchema>;
 
+export const JsonTokenTypeSchema = z.object({
+});
+export type JsonTokenType = z.infer<typeof JsonTokenTypeSchema>;
+
 export const JsonWriterSchema = z.object({
 });
 export type JsonWriter = z.infer<typeof JsonWriterSchema>;
@@ -605,6 +697,10 @@ export const NoSchema = z.object({
 });
 export type No = z.infer<typeof NoSchema>;
 
+export const NoSuchMethodSchema = z.object({
+});
+export type NoSuchMethod = z.infer<typeof NoSuchMethodSchema>;
+
 export const NoexceptSchema = z.object({
 });
 export type Noexcept = z.infer<typeof NoexceptSchema>;
@@ -633,6 +729,10 @@ export const NotEqSchema = z.object({
 });
 export type NotEq = z.infer<typeof NotEqSchema>;
 
+export const NsErrorSchema = z.object({
+});
+export type NsError = z.infer<typeof NsErrorSchema>;
+
 export const NsStringSchema = z.object({
 });
 export type NsString = z.infer<typeof NsStringSchema>;
@@ -653,6 +753,10 @@ export const ObjectClassSchema = z.object({
 });
 export type ObjectClass = z.infer<typeof ObjectClassSchema>;
 
+export const ObjectMapperSchema = z.object({
+});
+export type ObjectMapper = z.infer<typeof ObjectMapperSchema>;
+
 export const OfSchema = z.object({
 });
 export type Of = z.infer<typeof OfSchema>;
@@ -721,6 +825,10 @@ export const PrintSchema = z.object({
 });
 export type Print = z.infer<typeof PrintSchema>;
 
+export const PrintMembersSchema = z.object({
+});
+export type PrintMembers = z.infer<typeof PrintMembersSchema>;
+
 export const PrintfSchema = z.object({
 });
 export type Printf = z.infer<typeof PrintfSchema>;
@@ -765,6 +873,10 @@ export const RefSchema = z.object({
 });
 export type Ref = z.infer<typeof RefSchema>;
 
+export const RegExpSchema = z.object({
+});
+export type RegExp = z.infer<typeof RegExpSchema>;
+
 export const RegisterSchema = z.object({
 });
 export type Register = z.infer<typeof RegisterSchema>;
@@ -809,6 +921,14 @@ export const RightSchema = z.object({
 });
 export type Right = z.infer<typeof RightSchema>;
 
+export const RuntimeTypeSchema = z.object({
+});
+export type RuntimeType = z.infer<typeof RuntimeTypeSchema>;
+
+export const SSchema = z.object({
+});
+export type S = z.infer<typeof SSchema>;
+
 export const SbyteSchema = z.object({
 });
 export type Sbyte = z.infer<typeof SbyteSchema>;
@@ -833,6 +953,10 @@ export const SerializeSchema = z.object({
 });
 export type Serialize = z.infer<typeof SerializeSchema>;
 
+export const SerializerProviderSchema = z.object({
+});
+export type SerializerProvider = z.infer<typeof SerializerProviderSchema>;
+
 export const SetSchema = z.object({
 });
 export type Set = z.infer<typeof SetSchema>;
@@ -845,6 +969,10 @@ export const SignedSchema = z.object({
 });
 export type Signed = z.infer<typeof SignedSchema>;
 
+export const SimpleModuleSchema = z.object({
+});
+export type SimpleModule = z.infer<typeof SimpleModuleSchema>;
+
 export const SizeofSchema = z.object({
 });
 export type Sizeof = z.infer<typeof SizeofSchema>;
@@ -853,6 +981,10 @@ export const StackallocSchema = z.object({
 });
 export type Stackalloc = z.infer<typeof StackallocSchema>;
 
+export const StandardsSchema = z.object({
+});
+export type Standards = z.infer<typeof StandardsSchema>;
+
 export const StaticSchema = z.object({
 });
 export type Static = z.infer<typeof StaticSchema>;
@@ -865,6 +997,14 @@ export const StaticCastSchema = z.object({
 });
 export type StaticCast = z.infer<typeof StaticCastSchema>;
 
+export const StdDeserializerSchema = z.object({
+});
+export type StdDeserializer = z.infer<typeof StdDeserializerSchema>;
+
+export const StdSerializerSchema = z.object({
+});
+export type StdSerializer = z.infer<typeof StdSerializerSchema>;
+
 export const StrictfpSchema = z.object({
 });
 export type Strictfp = z.infer<typeof StrictfpSchema>;
@@ -925,10 +1065,22 @@ export const ThrowsSchema = z.object({
 });
 export type Throws = z.infer<typeof ThrowsSchema>;
 
+export const TimeOnlySchema = z.object({
+});
+export type TimeOnly = z.infer<typeof TimeOnlySchema>;
+
+export const TimeOnlyConverterSchema = z.object({
+});
+export type TimeOnlyConverter = z.infer<typeof TimeOnlyConverterSchema>;
+
 export const ToJsonSchema = z.object({
 });
 export type ToJson = z.infer<typeof ToJsonSchema>;
 
+export const ToStringSchema = z.object({
+});
+export type ToString = z.infer<typeof ToStringSchema>;
+
 export const TopLevelClassSchema = z.object({
 });
 export type TopLevelClass = z.infer<typeof TopLevelClassSchema>;
@@ -1049,6 +1201,18 @@ export const UsingSchema = z.object({
 });
 export type Using = z.infer<typeof UsingSchema>;
 
+export const Utf8JsonReaderSchema = z.object({
+});
+export type Utf8JsonReader = z.infer<typeof Utf8JsonReaderSchema>;
+
+export const Utf8JsonWriterSchema = z.object({
+});
+export type Utf8JsonWriter = z.infer<typeof Utf8JsonWriterSchema>;
+
+export const UuidSchema = z.object({
+});
+export type Uuid = z.infer<typeof UuidSchema>;
+
 export const VarSchema = z.object({
 });
 export type Var = z.infer<typeof VarSchema>;
@@ -1149,6 +1313,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "checked": z.union([CheckedSchema, z.number()]).optional(),
     "class": z.union([UnionClassClassSchema, z.number()]).optional(),
     "Class": z.union([ClassClassSchema, z.number()]).optional(),
+    "clone": z.union([CloneSchema, z.number()]).optional(),
     "co_await": z.union([CoAwaitSchema, z.number()]).optional(),
     "co_return": z.union([CoReturnSchema, z.number()]).optional(),
     "co_yield": z.union([CoYieldSchema, z.number()]).optional(),
@@ -1163,8 +1328,14 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "convenience": z.union([ConvenienceSchema, z.number()]).optional(),
     "convert": z.union([ConvertSchema, z.number()]).optional(),
     "converter": z.union([ConverterSchema, z.number()]).optional(),
+    "CultureInfo": z.union([CultureInfoSchema, z.number()]).optional(),
     "date": z.union([DateClassSchema, z.number()]).optional(),
     "date_parse_handling": z.union([DateParseHandlingSchema, z.number()]).optional(),
+    "DateFormatter": z.union([DateFormatterSchema, z.number()]).optional(),
+    "DateOnly": z.union([DateOnlySchema, z.number()]).optional(),
+    "DateOnlyConverter": z.union([DateOnlyConverterSchema, z.number()]).optional(),
+    "DateTime": z.union([DateTimeSchema, z.number()]).optional(),
+    "DateTimeStyles": z.union([DateTimeStylesSchema, z.number()]).optional(),
     "debugger": z.union([DebuggerSchema, z.number()]).optional(),
     "decimal": z.union([DecimalSchema, z.number()]).optional(),
     "declare": z.union([DeclareSchema, z.number()]).optional(),
@@ -1189,6 +1360,8 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "else": z.union([ElseSchema, z.number()]).optional(),
     "encode_quick_type": z.union([EncodeQuickTypeSchema, z.number()]).optional(),
     "enum": z.union([EnumSchema, z.number()]).optional(),
+    "EnumValues": z.union([EnumValuesSchema, z.number()]).optional(),
+    "equalityContract": z.union([EqualityContractSchema, z.number()]).optional(),
     "event": z.union([EventSchema, z.number()]).optional(),
     "except": z.union([ExceptSchema, z.number()]).optional(),
     "exception": z.union([ExceptionSchema, z.number()]).optional(),
@@ -1208,6 +1381,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "float": z.union([FloatSchema, z.number()]).optional(),
     "for": z.union([ForSchema, z.number()]).optional(),
     "foreach": z.union([ForeachSchema, z.number()]).optional(),
+    "FormatException": z.union([FormatExceptionSchema, z.number()]).optional(),
     "friend": z.union([FriendSchema, z.number()]).optional(),
     "from": z.union([FromSchema, z.number()]).optional(),
     "from_json": z.union([FromJsonSchema, z.number()]).optional(),
@@ -1218,6 +1392,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "go": z.union([GoSchema, z.number()]).optional(),
     "goto": z.union([GotoSchema, z.number()]).optional(),
     "guard": z.union([GuardSchema, z.number()]).optional(),
+    "hashCode": z.union([HashCodeSchema, z.number()]).optional(),
     "hasOwnProperty": z.union([HasOwnPropertySchema, z.number()]).optional(),
     "id": z.union([IdSchema, z.number()]).optional(),
     "if": z.union([IfSchema, z.number()]).optional(),
@@ -1236,6 +1411,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "interface": z.union([InterfaceSchema, z.number()]).optional(),
     "internal": z.union([InternalSchema, z.number()]).optional(),
     "is": z.union([IsSchema, z.number()]).optional(),
+    "IsoDateTimeOffsetConverter": z.union([IsoDateTimeOffsetConverterSchema, z.number()]).optional(),
     "iterable": z.union([IterableSchema, z.number()]).optional(),
     "jdec": z.union([JdecSchema, z.number()]).optional(),
     "jenc": z.union([JencSchema, z.number()]).optional(),
@@ -1245,6 +1421,17 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "json_serializer": z.union([JsonSerializerSchema, z.number()]).optional(),
     "json_token": z.union([JsonTokenSchema, z.number()]).optional(),
     "json_writer": z.union([JsonWriterSchema, z.number()]).optional(),
+    "JSONAny": z.union([JsonAnySchema, z.number()]).optional(),
+    "JSONCodingKey": z.union([JsonCodingKeySchema, z.number()]).optional(),
+    "JSONDecoder": z.union([JsonDecoderSchema, z.number()]).optional(),
+    "JSONEncoder": z.union([JsonEncoderSchema, z.number()]).optional(),
+    "JsonException": z.union([JsonExceptionSchema, z.number()]).optional(),
+    "JsonGenerator": z.union([JsonGeneratorSchema, z.number()]).optional(),
+    "JsonNode": z.union([JsonNodeSchema, z.number()]).optional(),
+    "JSONNull": z.union([JsonNullSchema, z.number()]).optional(),
+    "JsonParser": z.union([JsonParserSchema, z.number()]).optional(),
+    "JsonReader": z.union([JsonReaderSchema, z.number()]).optional(),
+    "JsonTokenType": z.union([JsonTokenTypeSchema, z.number()]).optional(),
     "lambda": z.union([LambdaSchema, z.number()]).optional(),
     "lazy": z.union([LazySchema, z.number()]).optional(),
     "left": z.union([LeftSchema, z.number()]).optional(),
@@ -1269,14 +1456,17 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "None": z.union([NoneSchema, z.number()]).optional(),
     "nonlocal": z.union([NonlocalSchema, z.number()]).optional(),
     "nonmutating": z.union([NonmutatingSchema, z.number()]).optional(),
+    "noSuchMethod": z.union([NoSuchMethodSchema, z.number()]).optional(),
     "not": z.union([NotSchema, z.number()]).optional(),
     "not_eq": z.union([NotEqSchema, z.number()]).optional(),
+    "NSError": z.union([NsErrorSchema, z.number()]).optional(),
     "NSString": z.union([NsStringSchema, z.number()]).optional(),
     "NULL": z.union([NullSchema, z.number()]).optional(),
     "null": z.union([NullClassSchema, z.number()]).optional(),
     "nullptr": z.union([NullptrSchema, z.number()]).optional(),
     "number": z.union([NumberSchema, z.number()]).optional(),
     "object": z.union([ObjectClassSchema, z.number()]).optional(),
+    "ObjectMapper": z.union([ObjectMapperSchema, z.number()]).optional(),
     "of": z.union([OfSchema, z.number()]).optional(),
     "oneway": z.union([OnewaySchema, z.number()]).optional(),
     "open": z.union([OpenSchema, z.number()]).optional(),
@@ -1295,6 +1485,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "prefix": z.union([PrefixSchema, z.number()]).optional(),
     "print": z.union([PrintSchema, z.number()]).optional(),
     "printf": z.union([PrintfSchema, z.number()]).optional(),
+    "printMembers": z.union([PrintMembersSchema, z.number()]).optional(),
     "private": z.union([PrivateSchema, z.number()]).optional(),
     "protected": z.union([ProtectedSchema, z.number()]).optional(),
     "Protocol": z.union([ProtocolSchema, z.number()]).optional(),
@@ -1305,6 +1496,7 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "range": z.union([RangeSchema, z.number()]).optional(),
     "readonly": z.union([ReadonlySchema, z.number()]).optional(),
     "ref": z.union([RefSchema, z.number()]).optional(),
+    "RegExp": z.union([RegExpSchema, z.number()]).optional(),
     "register": z.union([RegisterSchema, z.number()]).optional(),
     "reinterpret_cast": z.union([ReinterpretCastSchema, z.number()]).optional(),
     "repeat": z.union([RepeatSchema, z.number()]).optional(),
@@ -1316,6 +1508,8 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "rethrows": z.union([RethrowsSchema, z.number()]).optional(),
     "return": z.union([ReturnSchema, z.number()]).optional(),
     "right": z.union([RightSchema, z.number()]).optional(),
+    "runtimeType": z.union([RuntimeTypeSchema, z.number()]).optional(),
+    "s": z.union([SSchema, z.number()]).optional(),
     "sbyte": z.union([SbyteSchema, z.number()]).optional(),
     "sealed": z.union([SealedSchema, z.number()]).optional(),
     "SEL": z.union([SelSchema, z.number()]).optional(),
@@ -1323,14 +1517,19 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "Self": z.union([SelfSchema, z.number()]).optional(),
     "self": z.union([SelfClassSchema, z.number()]).optional(),
     "serialize": z.union([SerializeSchema, z.number()]).optional(),
+    "SerializerProvider": z.union([SerializerProviderSchema, z.number()]).optional(),
     "set": z.union([SetSchema, z.number()]).optional(),
     "short": z.union([ShortSchema, z.number()]).optional(),
     "signed": z.union([SignedSchema, z.number()]).optional(),
+    "SimpleModule": z.union([SimpleModuleSchema, z.number()]).optional(),
     "sizeof": z.union([SizeofSchema, z.number()]).optional(),
     "stackalloc": z.union([StackallocSchema, z.number()]).optional(),
+    "Standards": z.union([StandardsSchema, z.number()]).optional(),
     "static": z.union([StaticSchema, z.number()]).optional(),
     "static_assert": z.union([StaticAssertSchema, z.number()]).optional(),
     "static_cast": z.union([StaticCastSchema, z.number()]).optional(),
+    "StdDeserializer": z.union([StdDeserializerSchema, z.number()]).optional(),
+    "StdSerializer": z.union([StdSerializerSchema, z.number()]).optional(),
     "strictfp": z.union([StrictfpSchema, z.number()]).optional(),
     "string": z.union([StringClassSchema, z.number()]).optional(),
     "struct": z.union([StructSchema, z.number()]).optional(),
@@ -1346,8 +1545,11 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "thread_local": z.union([ThreadLocalSchema, z.number()]).optional(),
     "throw": z.union([ThrowSchema, z.number()]).optional(),
     "throws": z.union([ThrowsSchema, z.number()]).optional(),
+    "TimeOnly": z.union([TimeOnlySchema, z.number()]).optional(),
+    "TimeOnlyConverter": z.union([TimeOnlyConverterSchema, z.number()]).optional(),
     "to_json": z.union([ToJsonSchema, z.number()]).optional(),
     "top_level": z.union([TopLevelClassSchema, z.number()]).optional(),
+    "toString": z.union([ToStringSchema, z.number()]).optional(),
     "transient": z.union([TransientSchema, z.number()]).optional(),
     "True": z.union([TrueSchema, z.number()]).optional(),
     "true": z.union([TrueClassSchema, z.number()]).optional(),
@@ -1369,6 +1571,9 @@ export const TopLevelSchema = z.preprocess(value => typeof value === "object" &&
     "unsigned": z.union([UnsignedSchema, z.number()]).optional(),
     "ushort": z.union([UshortSchema, z.number()]).optional(),
     "using": z.union([UsingSchema, z.number()]).optional(),
+    "Utf8JsonReader": z.union([Utf8JsonReaderSchema, z.number()]).optional(),
+    "Utf8JsonWriter": z.union([Utf8JsonWriterSchema, z.number()]).optional(),
+    "UUID": z.union([UuidSchema, z.number()]).optional(),
     "var": z.union([VarSchema, z.number()]).optional(),
     "virtual": z.union([VirtualSchema, z.number()]).optional(),
     "void": z.union([VoidSchema, z.number()]).optional(),
diff --git a/base/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
index ee8c8cd..64ff629 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
@@ -119,13 +119,6 @@ struct Obj1: Codable {
     let dateOnly: DateOnly
     let dateOnlyConverter: DateOnlyConverter
     let dateParseHandling: DateParseHandling
-    let dateTime: DateTime
-    let dateTimeStyles: DateTimeStyles
-    let debugger: Debugger
-    let decimal: Decimal
-    let declare: Declare
-    let decltype: Decltype
-    let decodeString: DecodeString
     let dummy: Int
     let empty: Empty
     let imaginery: Imaginery
@@ -193,13 +186,6 @@ struct Obj1: Codable {
         case dateOnly = "DateOnly"
         case dateOnlyConverter = "DateOnlyConverter"
         case dateParseHandling = "date_parse_handling"
-        case dateTime = "DateTime"
-        case dateTimeStyles = "DateTimeStyles"
-        case debugger = "debugger"
-        case decimal = "decimal"
-        case declare = "declare"
-        case decltype = "decltype"
-        case decodeString = "decode_string"
         case dummy = "dummy"
         case empty = "_"
         case imaginery = "_Imaginery"
@@ -287,13 +273,6 @@ extension Obj1 {
         dateOnly: DateOnly? = nil,
         dateOnlyConverter: DateOnlyConverter? = nil,
         dateParseHandling: DateParseHandling? = nil,
-        dateTime: DateTime? = nil,
-        dateTimeStyles: DateTimeStyles? = nil,
-        debugger: Debugger? = nil,
-        decimal: Decimal? = nil,
-        declare: Declare? = nil,
-        decltype: Decltype? = nil,
-        decodeString: DecodeString? = nil,
         dummy: Int? = nil,
         empty: Empty? = nil,
         imaginery: Imaginery? = nil,
@@ -361,13 +340,6 @@ extension Obj1 {
             dateOnly: dateOnly ?? self.dateOnly,
             dateOnlyConverter: dateOnlyConverter ?? self.dateOnlyConverter,
             dateParseHandling: dateParseHandling ?? self.dateParseHandling,
-            dateTime: dateTime ?? self.dateTime,
-            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles,
-            debugger: debugger ?? self.debugger,
-            decimal: decimal ?? self.decimal,
-            declare: declare ?? self.declare,
-            decltype: decltype ?? self.decltype,
-            decodeString: decodeString ?? self.decodeString,
             dummy: dummy ?? self.dummy,
             empty: empty ?? self.empty,
             imaginery: imaginery ?? self.imaginery,
@@ -2509,20 +2481,20 @@ extension DateParseHandling {
     }
 }
 
-// MARK: - DateTime
-struct DateTime: Codable {
-    let dateTime: Date
+// MARK: - Empty
+struct Empty: Codable {
+    let empty: Int
 
     enum CodingKeys: String, CodingKey {
-        case dateTime = "DateTime"
+        case empty = "_"
     }
 }
 
-// MARK: DateTime convenience initializers and mutators
+// MARK: Empty convenience initializers and mutators
 
-extension DateTime {
+extension Empty {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DateTime.self, from: data)
+        self = try newJSONDecoder().decode(Empty.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2537,10 +2509,10 @@ extension DateTime {
     }
 
     func with(
-        dateTime: Date? = nil
-    ) -> DateTime {
-        return DateTime(
-            dateTime: dateTime ?? self.dateTime
+        empty: Int? = nil
+    ) -> Empty {
+        return Empty(
+            empty: empty ?? self.empty
         )
     }
 
@@ -2553,20 +2525,20 @@ extension DateTime {
     }
 }
 
-// MARK: - DateTimeStyles
-struct DateTimeStyles: Codable {
-    let dateTimeStyles: Int
+// MARK: - Imaginery
+struct Imaginery: Codable {
+    let imaginery: Int
 
     enum CodingKeys: String, CodingKey {
-        case dateTimeStyles = "DateTimeStyles"
+        case imaginery = "_Imaginery"
     }
 }
 
-// MARK: DateTimeStyles convenience initializers and mutators
+// MARK: Imaginery convenience initializers and mutators
 
-extension DateTimeStyles {
+extension Imaginery {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DateTimeStyles.self, from: data)
+        self = try newJSONDecoder().decode(Imaginery.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2581,10 +2553,10 @@ extension DateTimeStyles {
     }
 
     func with(
-        dateTimeStyles: Int? = nil
-    ) -> DateTimeStyles {
-        return DateTimeStyles(
-            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles
+        imaginery: Int? = nil
+    ) -> Imaginery {
+        return Imaginery(
+            imaginery: imaginery ?? self.imaginery
         )
     }
 
@@ -2597,20 +2569,20 @@ extension DateTimeStyles {
     }
 }
 
-// MARK: - Debugger
-struct Debugger: Codable {
-    let debugger: Int
+// MARK: - Obj1Any
+struct Obj1Any: Codable {
+    let any: Int
 
     enum CodingKeys: String, CodingKey {
-        case debugger = "debugger"
+        case any = "any"
     }
 }
 
-// MARK: Debugger convenience initializers and mutators
+// MARK: Obj1Any convenience initializers and mutators
 
-extension Debugger {
+extension Obj1Any {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Debugger.self, from: data)
+        self = try newJSONDecoder().decode(Obj1Any.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2625,10 +2597,10 @@ extension Debugger {
     }
 
     func with(
-        debugger: Int? = nil
-    ) -> Debugger {
-        return Debugger(
-            debugger: debugger ?? self.debugger
+        any: Int? = nil
+    ) -> Obj1Any {
+        return Obj1Any(
+            any: any ?? self.any
         )
     }
 
@@ -2641,20 +2613,20 @@ extension Debugger {
     }
 }
 
-// MARK: - Decimal
-struct Decimal: Codable {
-    let decimal: Int
+// MARK: - As
+struct As: Codable {
+    let asAs: Int
 
     enum CodingKeys: String, CodingKey {
-        case decimal = "decimal"
+        case asAs = "as"
     }
 }
 
-// MARK: Decimal convenience initializers and mutators
+// MARK: As convenience initializers and mutators
 
-extension Decimal {
+extension As {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Decimal.self, from: data)
+        self = try newJSONDecoder().decode(As.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2669,10 +2641,10 @@ extension Decimal {
     }
 
     func with(
-        decimal: Int? = nil
-    ) -> Decimal {
-        return Decimal(
-            decimal: decimal ?? self.decimal
+        asAs: Int? = nil
+    ) -> As {
+        return As(
+            asAs: asAs ?? self.asAs
         )
     }
 
@@ -2685,20 +2657,20 @@ extension Decimal {
     }
 }
 
-// MARK: - Declare
-struct Declare: Codable {
-    let declare: Int
+// MARK: - Associatedtype
+struct Associatedtype: Codable {
+    let associatedtypeAssociatedtype: Int
 
     enum CodingKeys: String, CodingKey {
-        case declare = "declare"
+        case associatedtypeAssociatedtype = "associatedtype"
     }
 }
 
-// MARK: Declare convenience initializers and mutators
+// MARK: Associatedtype convenience initializers and mutators
 
-extension Declare {
+extension Associatedtype {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Declare.self, from: data)
+        self = try newJSONDecoder().decode(Associatedtype.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2713,10 +2685,10 @@ extension Declare {
     }
 
     func with(
-        declare: Int? = nil
-    ) -> Declare {
-        return Declare(
-            declare: declare ?? self.declare
+        associatedtypeAssociatedtype: Int? = nil
+    ) -> Associatedtype {
+        return Associatedtype(
+            associatedtypeAssociatedtype: associatedtypeAssociatedtype ?? self.associatedtypeAssociatedtype
         )
     }
 
@@ -2729,20 +2701,20 @@ extension Declare {
     }
 }
 
-// MARK: - Decltype
-struct Decltype: Codable {
-    let decltype: Int
+// MARK: - Associativity
+struct Associativity: Codable {
+    let associativityAssociativity: Int
 
     enum CodingKeys: String, CodingKey {
-        case decltype = "decltype"
+        case associativityAssociativity = "associativity"
     }
 }
 
-// MARK: Decltype convenience initializers and mutators
+// MARK: Associativity convenience initializers and mutators
 
-extension Decltype {
+extension Associativity {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Decltype.self, from: data)
+        self = try newJSONDecoder().decode(Associativity.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2757,10 +2729,10 @@ extension Decltype {
     }
 
     func with(
-        decltype: Int? = nil
-    ) -> Decltype {
-        return Decltype(
-            decltype: decltype ?? self.decltype
+        associativityAssociativity: Int? = nil
+    ) -> Associativity {
+        return Associativity(
+            associativityAssociativity: associativityAssociativity ?? self.associativityAssociativity
         )
     }
 
@@ -2773,20 +2745,20 @@ extension Decltype {
     }
 }
 
-// MARK: - DecodeString
-struct DecodeString: Codable {
-    let decodeString: Int
+// MARK: - Await
+struct Await: Codable {
+    let awaitAwait: Int
 
     enum CodingKeys: String, CodingKey {
-        case decodeString = "decode_string"
+        case awaitAwait = "await"
     }
 }
 
-// MARK: DecodeString convenience initializers and mutators
+// MARK: Await convenience initializers and mutators
 
-extension DecodeString {
+extension Await {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(DecodeString.self, from: data)
+        self = try newJSONDecoder().decode(Await.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2801,10 +2773,10 @@ extension DecodeString {
     }
 
     func with(
-        decodeString: Int? = nil
-    ) -> DecodeString {
-        return DecodeString(
-            decodeString: decodeString ?? self.decodeString
+        awaitAwait: Int? = nil
+    ) -> Await {
+        return Await(
+            awaitAwait: awaitAwait ?? self.awaitAwait
         )
     }
 
@@ -2817,20 +2789,20 @@ extension DecodeString {
     }
 }
 
-// MARK: - Empty
-struct Empty: Codable {
-    let empty: Int
+// MARK: - BoolClass
+struct BoolClass: Codable {
+    let bool: Int
 
     enum CodingKeys: String, CodingKey {
-        case empty = "_"
+        case bool = "_Bool"
     }
 }
 
-// MARK: Empty convenience initializers and mutators
+// MARK: BoolClass convenience initializers and mutators
 
-extension Empty {
+extension BoolClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Empty.self, from: data)
+        self = try newJSONDecoder().decode(BoolClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2845,10 +2817,10 @@ extension Empty {
     }
 
     func with(
-        empty: Int? = nil
-    ) -> Empty {
-        return Empty(
-            empty: empty ?? self.empty
+        bool: Int? = nil
+    ) -> BoolClass {
+        return BoolClass(
+            bool: bool ?? self.bool
         )
     }
 
@@ -2861,20 +2833,20 @@ extension Empty {
     }
 }
 
-// MARK: - Imaginery
-struct Imaginery: Codable {
-    let imaginery: Int
+// MARK: - Break
+struct Break: Codable {
+    let breakBreak: Int
 
     enum CodingKeys: String, CodingKey {
-        case imaginery = "_Imaginery"
+        case breakBreak = "break"
     }
 }
 
-// MARK: Imaginery convenience initializers and mutators
+// MARK: Break convenience initializers and mutators
 
-extension Imaginery {
+extension Break {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Imaginery.self, from: data)
+        self = try newJSONDecoder().decode(Break.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2889,10 +2861,10 @@ extension Imaginery {
     }
 
     func with(
-        imaginery: Int? = nil
-    ) -> Imaginery {
-        return Imaginery(
-            imaginery: imaginery ?? self.imaginery
+        breakBreak: Int? = nil
+    ) -> Break {
+        return Break(
+            breakBreak: breakBreak ?? self.breakBreak
         )
     }
 
@@ -2905,20 +2877,20 @@ extension Imaginery {
     }
 }
 
-// MARK: - Obj1Any
-struct Obj1Any: Codable {
-    let any: Int
+// MARK: - Case
+struct Case: Codable {
+    let caseCase: Int
 
     enum CodingKeys: String, CodingKey {
-        case any = "any"
+        case caseCase = "case"
     }
 }
 
-// MARK: Obj1Any convenience initializers and mutators
+// MARK: Case convenience initializers and mutators
 
-extension Obj1Any {
+extension Case {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj1Any.self, from: data)
+        self = try newJSONDecoder().decode(Case.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2933,10 +2905,10 @@ extension Obj1Any {
     }
 
     func with(
-        any: Int? = nil
-    ) -> Obj1Any {
-        return Obj1Any(
-            any: any ?? self.any
+        caseCase: Int? = nil
+    ) -> Case {
+        return Case(
+            caseCase: caseCase ?? self.caseCase
         )
     }
 
@@ -2949,20 +2921,20 @@ extension Obj1Any {
     }
 }
 
-// MARK: - As
-struct As: Codable {
-    let asAs: Int
+// MARK: - Catch
+struct Catch: Codable {
+    let catchCatch: Int
 
     enum CodingKeys: String, CodingKey {
-        case asAs = "as"
+        case catchCatch = "catch"
     }
 }
 
-// MARK: As convenience initializers and mutators
+// MARK: Catch convenience initializers and mutators
 
-extension As {
+extension Catch {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(As.self, from: data)
+        self = try newJSONDecoder().decode(Catch.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2977,10 +2949,10 @@ extension As {
     }
 
     func with(
-        asAs: Int? = nil
-    ) -> As {
-        return As(
-            asAs: asAs ?? self.asAs
+        catchCatch: Int? = nil
+    ) -> Catch {
+        return Catch(
+            catchCatch: catchCatch ?? self.catchCatch
         )
     }
 
@@ -2993,20 +2965,20 @@ extension As {
     }
 }
 
-// MARK: - Associatedtype
-struct Associatedtype: Codable {
-    let associatedtypeAssociatedtype: Int
+// MARK: - Class
+struct Class: Codable {
+    let classClass: Int
 
     enum CodingKeys: String, CodingKey {
-        case associatedtypeAssociatedtype = "associatedtype"
+        case classClass = "Class"
     }
 }
 
-// MARK: Associatedtype convenience initializers and mutators
+// MARK: Class convenience initializers and mutators
 
-extension Associatedtype {
+extension Class {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Associatedtype.self, from: data)
+        self = try newJSONDecoder().decode(Class.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3021,10 +2993,10 @@ extension Associatedtype {
     }
 
     func with(
-        associatedtypeAssociatedtype: Int? = nil
-    ) -> Associatedtype {
-        return Associatedtype(
-            associatedtypeAssociatedtype: associatedtypeAssociatedtype ?? self.associatedtypeAssociatedtype
+        classClass: Int? = nil
+    ) -> Class {
+        return Class(
+            classClass: classClass ?? self.classClass
         )
     }
 
@@ -3037,20 +3009,20 @@ extension Associatedtype {
     }
 }
 
-// MARK: - Associativity
-struct Associativity: Codable {
-    let associativityAssociativity: Int
+// MARK: - Continue
+struct Continue: Codable {
+    let continueContinue: Int
 
     enum CodingKeys: String, CodingKey {
-        case associativityAssociativity = "associativity"
+        case continueContinue = "continue"
     }
 }
 
-// MARK: Associativity convenience initializers and mutators
+// MARK: Continue convenience initializers and mutators
 
-extension Associativity {
+extension Continue {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Associativity.self, from: data)
+        self = try newJSONDecoder().decode(Continue.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3065,10 +3037,10 @@ extension Associativity {
     }
 
     func with(
-        associativityAssociativity: Int? = nil
-    ) -> Associativity {
-        return Associativity(
-            associativityAssociativity: associativityAssociativity ?? self.associativityAssociativity
+        continueContinue: Int? = nil
+    ) -> Continue {
+        return Continue(
+            continueContinue: continueContinue ?? self.continueContinue
         )
     }
 
@@ -3081,20 +3053,20 @@ extension Associativity {
     }
 }
 
-// MARK: - Await
-struct Await: Codable {
-    let awaitAwait: Int
+// MARK: - Convenience
+struct Convenience: Codable {
+    let convenienceConvenience: Int
 
     enum CodingKeys: String, CodingKey {
-        case awaitAwait = "await"
+        case convenienceConvenience = "convenience"
     }
 }
 
-// MARK: Await convenience initializers and mutators
+// MARK: Convenience convenience initializers and mutators
 
-extension Await {
+extension Convenience {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Await.self, from: data)
+        self = try newJSONDecoder().decode(Convenience.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3109,10 +3081,10 @@ extension Await {
     }
 
     func with(
-        awaitAwait: Int? = nil
-    ) -> Await {
-        return Await(
-            awaitAwait: awaitAwait ?? self.awaitAwait
+        convenienceConvenience: Int? = nil
+    ) -> Convenience {
+        return Convenience(
+            convenienceConvenience: convenienceConvenience ?? self.convenienceConvenience
         )
     }
 
@@ -3125,20 +3097,20 @@ extension Await {
     }
 }
 
-// MARK: - BoolClass
-struct BoolClass: Codable {
+// MARK: - Obj1Bool
+struct Obj1Bool: Codable {
     let bool: Int
 
     enum CodingKeys: String, CodingKey {
-        case bool = "_Bool"
+        case bool = "bool"
     }
 }
 
-// MARK: BoolClass convenience initializers and mutators
+// MARK: Obj1Bool convenience initializers and mutators
 
-extension BoolClass {
+extension Obj1Bool {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(BoolClass.self, from: data)
+        self = try newJSONDecoder().decode(Obj1Bool.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3154,8 +3126,8 @@ extension BoolClass {
 
     func with(
         bool: Int? = nil
-    ) -> BoolClass {
-        return BoolClass(
+    ) -> Obj1Bool {
+        return Obj1Bool(
             bool: bool ?? self.bool
         )
     }
@@ -3169,20 +3141,20 @@ extension BoolClass {
     }
 }
 
-// MARK: - Break
-struct Break: Codable {
-    let breakBreak: Int
+// MARK: - ClassClass
+struct ClassClass: Codable {
+    let classClass: Int
 
     enum CodingKeys: String, CodingKey {
-        case breakBreak = "break"
+        case classClass = "class"
     }
 }
 
-// MARK: Break convenience initializers and mutators
+// MARK: ClassClass convenience initializers and mutators
 
-extension Break {
+extension ClassClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Break.self, from: data)
+        self = try newJSONDecoder().decode(ClassClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3197,10 +3169,10 @@ extension Break {
     }
 
     func with(
-        breakBreak: Int? = nil
-    ) -> Break {
-        return Break(
-            breakBreak: breakBreak ?? self.breakBreak
+        classClass: Int? = nil
+    ) -> ClassClass {
+        return ClassClass(
+            classClass: classClass ?? self.classClass
         )
     }
 
@@ -3213,20 +3185,148 @@ extension Break {
     }
 }
 
-// MARK: - Case
-struct Case: Codable {
-    let caseCase: Int
+// MARK: - Obj2
+struct Obj2: Codable {
+    let dateTime: DateTime
+    let dateTimeStyles: DateTimeStyles
+    let debugger: Debugger
+    let decimal: Decimal
+    let declare: Declare
+    let decltype: Decltype
+    let decodeString: DecodeString
+    let def: Def
+    let del: Del
+    let delegate: Delegate
+    let delete: Delete
+    let dict: Dict
+    let dictionary: Dictionary
+    let double: DoubleClass
+    let dummy: Int
+    let dynamicCast: DynamicCast
+    let elif: Elif
+    let encodeQuickType: EncodeQuickType
+    let enumValues: EnumValues
+    let equalityContract: EqualityContract
+    let event: Event
+    let except: Except
+    let exception: Exception
+    let explicit: Explicit
+    let export: Export
+    let exposing: Exposing
+    let extends: Extends
+    let extern: Extern
+    let finally: Finally
+    let fixed: Fixed
+    let float: Float
+    let foreach: Foreach
+    let formatException: FormatException
+    let friend: Friend
+    let from: From
+    let fromJSON: FromJSON
+    let function: Function
+    let global: Global
+    let go: Go
+    let goto: Goto
+    let hasOwnProperty: HasOwnProperty
+    let hashCode: HashCode
+    let id: ID
+    let imp: Imp
+    let implements: Implements
+    let implicit: Implicit
+    let obj2Default: Default
+    let obj2Defer: Defer
+    let obj2Deinit: Deinit
+    let obj2DidSet: DidSet
+    let obj2Do: Do
+    let obj2Dynamic: Dynamic
+    let obj2Else: Else
+    let obj2Enum: Enum
+    let obj2Extension: Extension
+    let obj2Fallthrough: Fallthrough
+    let obj2False: False
+    let obj2Fileprivate: Fileprivate
+    let obj2Final: Final
+    let obj2For: For
+    let obj2Func: Func
+    let obj2Get: Get
+    let obj2Guard: Guard
+    let obj2If: If
+    let purpleFalse: FalseClass
 
     enum CodingKeys: String, CodingKey {
-        case caseCase = "case"
+        case dateTime = "DateTime"
+        case dateTimeStyles = "DateTimeStyles"
+        case debugger = "debugger"
+        case decimal = "decimal"
+        case declare = "declare"
+        case decltype = "decltype"
+        case decodeString = "decode_string"
+        case def = "def"
+        case del = "del"
+        case delegate = "delegate"
+        case delete = "delete"
+        case dict = "dict"
+        case dictionary = "dictionary"
+        case double = "double"
+        case dummy = "dummy"
+        case dynamicCast = "dynamic_cast"
+        case elif = "elif"
+        case encodeQuickType = "encode_quick_type"
+        case enumValues = "EnumValues"
+        case equalityContract = "equalityContract"
+        case event = "event"
+        case except = "except"
+        case exception = "exception"
+        case explicit = "explicit"
+        case export = "export"
+        case exposing = "exposing"
+        case extends = "extends"
+        case extern = "extern"
+        case finally = "finally"
+        case fixed = "fixed"
+        case float = "float"
+        case foreach = "foreach"
+        case formatException = "FormatException"
+        case friend = "friend"
+        case from = "from"
+        case fromJSON = "from_json"
+        case function = "function"
+        case global = "global"
+        case go = "go"
+        case goto = "goto"
+        case hasOwnProperty = "hasOwnProperty"
+        case hashCode = "hashCode"
+        case id = "id"
+        case imp = "IMP"
+        case implements = "implements"
+        case implicit = "implicit"
+        case obj2Default = "default"
+        case obj2Defer = "defer"
+        case obj2Deinit = "deinit"
+        case obj2DidSet = "didSet"
+        case obj2Do = "do"
+        case obj2Dynamic = "dynamic"
+        case obj2Else = "else"
+        case obj2Enum = "enum"
+        case obj2Extension = "extension"
+        case obj2Fallthrough = "fallthrough"
+        case obj2False = "False"
+        case obj2Fileprivate = "fileprivate"
+        case obj2Final = "final"
+        case obj2For = "for"
+        case obj2Func = "func"
+        case obj2Get = "get"
+        case obj2Guard = "guard"
+        case obj2If = "if"
+        case purpleFalse = "false"
     }
 }
 
-// MARK: Case convenience initializers and mutators
+// MARK: Obj2 convenience initializers and mutators
 
-extension Case {
+extension Obj2 {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Case.self, from: data)
+        self = try newJSONDecoder().decode(Obj2.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3241,10 +3341,138 @@ extension Case {
     }
 
     func with(
-        caseCase: Int? = nil
-    ) -> Case {
-        return Case(
-            caseCase: caseCase ?? self.caseCase
+        dateTime: DateTime? = nil,
+        dateTimeStyles: DateTimeStyles? = nil,
+        debugger: Debugger? = nil,
+        decimal: Decimal? = nil,
+        declare: Declare? = nil,
+        decltype: Decltype? = nil,
+        decodeString: DecodeString? = nil,
+        def: Def? = nil,
+        del: Del? = nil,
+        delegate: Delegate? = nil,
+        delete: Delete? = nil,
+        dict: Dict? = nil,
+        dictionary: Dictionary? = nil,
+        double: DoubleClass? = nil,
+        dummy: Int? = nil,
+        dynamicCast: DynamicCast? = nil,
+        elif: Elif? = nil,
+        encodeQuickType: EncodeQuickType? = nil,
+        enumValues: EnumValues? = nil,
+        equalityContract: EqualityContract? = nil,
+        event: Event? = nil,
+        except: Except? = nil,
+        exception: Exception? = nil,
+        explicit: Explicit? = nil,
+        export: Export? = nil,
+        exposing: Exposing? = nil,
+        extends: Extends? = nil,
+        extern: Extern? = nil,
+        finally: Finally? = nil,
+        fixed: Fixed? = nil,
+        float: Float? = nil,
+        foreach: Foreach? = nil,
+        formatException: FormatException? = nil,
+        friend: Friend? = nil,
+        from: From? = nil,
+        fromJSON: FromJSON? = nil,
+        function: Function? = nil,
+        global: Global? = nil,
+        go: Go? = nil,
+        goto: Goto? = nil,
+        hasOwnProperty: HasOwnProperty? = nil,
+        hashCode: HashCode? = nil,
+        id: ID? = nil,
+        imp: Imp? = nil,
+        implements: Implements? = nil,
+        implicit: Implicit? = nil,
+        obj2Default: Default? = nil,
+        obj2Defer: Defer? = nil,
+        obj2Deinit: Deinit? = nil,
+        obj2DidSet: DidSet? = nil,
+        obj2Do: Do? = nil,
+        obj2Dynamic: Dynamic? = nil,
+        obj2Else: Else? = nil,
+        obj2Enum: Enum? = nil,
+        obj2Extension: Extension? = nil,
+        obj2Fallthrough: Fallthrough? = nil,
+        obj2False: False? = nil,
+        obj2Fileprivate: Fileprivate? = nil,
+        obj2Final: Final? = nil,
+        obj2For: For? = nil,
+        obj2Func: Func? = nil,
+        obj2Get: Get? = nil,
+        obj2Guard: Guard? = nil,
+        obj2If: If? = nil,
+        purpleFalse: FalseClass? = nil
+    ) -> Obj2 {
+        return Obj2(
+            dateTime: dateTime ?? self.dateTime,
+            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles,
+            debugger: debugger ?? self.debugger,
+            decimal: decimal ?? self.decimal,
+            declare: declare ?? self.declare,
+            decltype: decltype ?? self.decltype,
+            decodeString: decodeString ?? self.decodeString,
+            def: def ?? self.def,
+            del: del ?? self.del,
+            delegate: delegate ?? self.delegate,
+            delete: delete ?? self.delete,
+            dict: dict ?? self.dict,
+            dictionary: dictionary ?? self.dictionary,
+            double: double ?? self.double,
+            dummy: dummy ?? self.dummy,
+            dynamicCast: dynamicCast ?? self.dynamicCast,
+            elif: elif ?? self.elif,
+            encodeQuickType: encodeQuickType ?? self.encodeQuickType,
+            enumValues: enumValues ?? self.enumValues,
+            equalityContract: equalityContract ?? self.equalityContract,
+            event: event ?? self.event,
+            except: except ?? self.except,
+            exception: exception ?? self.exception,
+            explicit: explicit ?? self.explicit,
+            export: export ?? self.export,
+            exposing: exposing ?? self.exposing,
+            extends: extends ?? self.extends,
+            extern: extern ?? self.extern,
+            finally: finally ?? self.finally,
+            fixed: fixed ?? self.fixed,
+            float: float ?? self.float,
+            foreach: foreach ?? self.foreach,
+            formatException: formatException ?? self.formatException,
+            friend: friend ?? self.friend,
+            from: from ?? self.from,
+            fromJSON: fromJSON ?? self.fromJSON,
+            function: function ?? self.function,
+            global: global ?? self.global,
+            go: go ?? self.go,
+            goto: goto ?? self.goto,
+            hasOwnProperty: hasOwnProperty ?? self.hasOwnProperty,
+            hashCode: hashCode ?? self.hashCode,
+            id: id ?? self.id,
+            imp: imp ?? self.imp,
+            implements: implements ?? self.implements,
+            implicit: implicit ?? self.implicit,
+            obj2Default: obj2Default ?? self.obj2Default,
+            obj2Defer: obj2Defer ?? self.obj2Defer,
+            obj2Deinit: obj2Deinit ?? self.obj2Deinit,
+            obj2DidSet: obj2DidSet ?? self.obj2DidSet,
+            obj2Do: obj2Do ?? self.obj2Do,
+            obj2Dynamic: obj2Dynamic ?? self.obj2Dynamic,
+            obj2Else: obj2Else ?? self.obj2Else,
+            obj2Enum: obj2Enum ?? self.obj2Enum,
+            obj2Extension: obj2Extension ?? self.obj2Extension,
+            obj2Fallthrough: obj2Fallthrough ?? self.obj2Fallthrough,
+            obj2False: obj2False ?? self.obj2False,
+            obj2Fileprivate: obj2Fileprivate ?? self.obj2Fileprivate,
+            obj2Final: obj2Final ?? self.obj2Final,
+            obj2For: obj2For ?? self.obj2For,
+            obj2Func: obj2Func ?? self.obj2Func,
+            obj2Get: obj2Get ?? self.obj2Get,
+            obj2Guard: obj2Guard ?? self.obj2Guard,
+            obj2If: obj2If ?? self.obj2If,
+            purpleFalse: purpleFalse ?? self.purpleFalse
         )
     }
 
@@ -3257,20 +3485,20 @@ extension Case {
     }
 }
 
-// MARK: - Catch
-struct Catch: Codable {
-    let catchCatch: Int
+// MARK: - DateTime
+struct DateTime: Codable {
+    let dateTime: Date
 
     enum CodingKeys: String, CodingKey {
-        case catchCatch = "catch"
+        case dateTime = "DateTime"
     }
 }
 
-// MARK: Catch convenience initializers and mutators
+// MARK: DateTime convenience initializers and mutators
 
-extension Catch {
+extension DateTime {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Catch.self, from: data)
+        self = try newJSONDecoder().decode(DateTime.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3285,10 +3513,10 @@ extension Catch {
     }
 
     func with(
-        catchCatch: Int? = nil
-    ) -> Catch {
-        return Catch(
-            catchCatch: catchCatch ?? self.catchCatch
+        dateTime: Date? = nil
+    ) -> DateTime {
+        return DateTime(
+            dateTime: dateTime ?? self.dateTime
         )
     }
 
@@ -3301,20 +3529,20 @@ extension Catch {
     }
 }
 
-// MARK: - Class
-struct Class: Codable {
-    let classClass: Int
+// MARK: - DateTimeStyles
+struct DateTimeStyles: Codable {
+    let dateTimeStyles: Int
 
     enum CodingKeys: String, CodingKey {
-        case classClass = "Class"
+        case dateTimeStyles = "DateTimeStyles"
     }
 }
 
-// MARK: Class convenience initializers and mutators
+// MARK: DateTimeStyles convenience initializers and mutators
 
-extension Class {
+extension DateTimeStyles {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Class.self, from: data)
+        self = try newJSONDecoder().decode(DateTimeStyles.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3329,10 +3557,10 @@ extension Class {
     }
 
     func with(
-        classClass: Int? = nil
-    ) -> Class {
-        return Class(
-            classClass: classClass ?? self.classClass
+        dateTimeStyles: Int? = nil
+    ) -> DateTimeStyles {
+        return DateTimeStyles(
+            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles
         )
     }
 
@@ -3345,20 +3573,20 @@ extension Class {
     }
 }
 
-// MARK: - Continue
-struct Continue: Codable {
-    let continueContinue: Int
+// MARK: - Debugger
+struct Debugger: Codable {
+    let debugger: Int
 
     enum CodingKeys: String, CodingKey {
-        case continueContinue = "continue"
+        case debugger = "debugger"
     }
 }
 
-// MARK: Continue convenience initializers and mutators
+// MARK: Debugger convenience initializers and mutators
 
-extension Continue {
+extension Debugger {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Continue.self, from: data)
+        self = try newJSONDecoder().decode(Debugger.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3373,10 +3601,10 @@ extension Continue {
     }
 
     func with(
-        continueContinue: Int? = nil
-    ) -> Continue {
-        return Continue(
-            continueContinue: continueContinue ?? self.continueContinue
+        debugger: Int? = nil
+    ) -> Debugger {
+        return Debugger(
+            debugger: debugger ?? self.debugger
         )
     }
 
@@ -3389,20 +3617,20 @@ extension Continue {
     }
 }
 
-// MARK: - Convenience
-struct Convenience: Codable {
-    let convenienceConvenience: Int
+// MARK: - Decimal
+struct Decimal: Codable {
+    let decimal: Int
 
     enum CodingKeys: String, CodingKey {
-        case convenienceConvenience = "convenience"
+        case decimal = "decimal"
     }
 }
 
-// MARK: Convenience convenience initializers and mutators
+// MARK: Decimal convenience initializers and mutators
 
-extension Convenience {
+extension Decimal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Convenience.self, from: data)
+        self = try newJSONDecoder().decode(Decimal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3417,10 +3645,10 @@ extension Convenience {
     }
 
     func with(
-        convenienceConvenience: Int? = nil
-    ) -> Convenience {
-        return Convenience(
-            convenienceConvenience: convenienceConvenience ?? self.convenienceConvenience
+        decimal: Int? = nil
+    ) -> Decimal {
+        return Decimal(
+            decimal: decimal ?? self.decimal
         )
     }
 
@@ -3433,20 +3661,20 @@ extension Convenience {
     }
 }
 
-// MARK: - Obj1Bool
-struct Obj1Bool: Codable {
-    let bool: Int
+// MARK: - Declare
+struct Declare: Codable {
+    let declare: Int
 
     enum CodingKeys: String, CodingKey {
-        case bool = "bool"
+        case declare = "declare"
     }
 }
 
-// MARK: Obj1Bool convenience initializers and mutators
+// MARK: Declare convenience initializers and mutators
 
-extension Obj1Bool {
+extension Declare {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj1Bool.self, from: data)
+        self = try newJSONDecoder().decode(Declare.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3461,10 +3689,10 @@ extension Obj1Bool {
     }
 
     func with(
-        bool: Int? = nil
-    ) -> Obj1Bool {
-        return Obj1Bool(
-            bool: bool ?? self.bool
+        declare: Int? = nil
+    ) -> Declare {
+        return Declare(
+            declare: declare ?? self.declare
         )
     }
 
@@ -3477,20 +3705,20 @@ extension Obj1Bool {
     }
 }
 
-// MARK: - ClassClass
-struct ClassClass: Codable {
-    let classClass: Int
+// MARK: - Decltype
+struct Decltype: Codable {
+    let decltype: Int
 
     enum CodingKeys: String, CodingKey {
-        case classClass = "class"
+        case decltype = "decltype"
     }
 }
 
-// MARK: ClassClass convenience initializers and mutators
+// MARK: Decltype convenience initializers and mutators
 
-extension ClassClass {
+extension Decltype {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ClassClass.self, from: data)
+        self = try newJSONDecoder().decode(Decltype.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3505,10 +3733,10 @@ extension ClassClass {
     }
 
     func with(
-        classClass: Int? = nil
-    ) -> ClassClass {
-        return ClassClass(
-            classClass: classClass ?? self.classClass
+        decltype: Int? = nil
+    ) -> Decltype {
+        return Decltype(
+            decltype: decltype ?? self.decltype
         )
     }
 
@@ -3521,380 +3749,108 @@ extension ClassClass {
     }
 }
 
-// MARK: - Obj2
-struct Obj2: Codable {
-    let def: Def
-    let del: Del
-    let delegate: Delegate
-    let delete: Delete
-    let dict: Dict
-    let dictionary: Dictionary
-    let double: DoubleClass
-    let dummy: Int
-    let dynamicCast: DynamicCast
-    let elif: Elif
-    let encodeQuickType: EncodeQuickType
-    let enumValues: EnumValues
-    let equalityContract: EqualityContract
-    let event: Event
-    let except: Except
-    let exception: Exception
-    let explicit: Explicit
-    let export: Export
-    let exposing: Exposing
-    let extends: Extends
-    let extern: Extern
-    let finally: Finally
-    let fixed: Fixed
-    let float: Float
-    let foreach: Foreach
-    let formatException: FormatException
-    let friend: Friend
-    let from: From
-    let fromJSON: FromJSON
-    let function: Function
-    let global: Global
-    let go: Go
-    let goto: Goto
-    let hasOwnProperty: HasOwnProperty
-    let hashCode: HashCode
-    let id: ID
-    let imp: Imp
-    let implements: Implements
-    let implicit: Implicit
-    let inline: Inline
-    let instanceof: Instanceof
-    let int: IntClass
-    let interface: Interface
-    let obj2Default: Default
-    let obj2Defer: Defer
-    let obj2Deinit: Deinit
-    let obj2DidSet: DidSet
-    let obj2Do: Do
-    let obj2Dynamic: Dynamic
-    let obj2Else: Else
-    let obj2Enum: Enum
-    let obj2Extension: Extension
-    let obj2Fallthrough: Fallthrough
-    let obj2False: False
-    let obj2Fileprivate: Fileprivate
-    let obj2Final: Final
-    let obj2For: For
-    let obj2Func: Func
-    let obj2Get: Get
-    let obj2Guard: Guard
-    let obj2If: If
-    let obj2Import: Import
-    let obj2In: In
-    let obj2Indirect: Indirect
-    let obj2Infix: Infix
-    let obj2Init: Init
-    let obj2Inout: Inout
-    let obj2Internal: Internal
-    let purpleFalse: FalseClass
+// MARK: - DecodeString
+struct DecodeString: Codable {
+    let decodeString: Int
+
+    enum CodingKeys: String, CodingKey {
+        case decodeString = "decode_string"
+    }
+}
+
+// MARK: DecodeString convenience initializers and mutators
+
+extension DecodeString {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(DecodeString.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        decodeString: Int? = nil
+    ) -> DecodeString {
+        return DecodeString(
+            decodeString: decodeString ?? self.decodeString
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Def
+struct Def: Codable {
+    let def: Int
 
     enum CodingKeys: String, CodingKey {
         case def = "def"
+    }
+}
+
+// MARK: Def convenience initializers and mutators
+
+extension Def {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Def.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        def: Int? = nil
+    ) -> Def {
+        return Def(
+            def: def ?? self.def
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Del
+struct Del: Codable {
+    let del: Int
+
+    enum CodingKeys: String, CodingKey {
         case del = "del"
-        case delegate = "delegate"
-        case delete = "delete"
-        case dict = "dict"
-        case dictionary = "dictionary"
-        case double = "double"
-        case dummy = "dummy"
-        case dynamicCast = "dynamic_cast"
-        case elif = "elif"
-        case encodeQuickType = "encode_quick_type"
-        case enumValues = "EnumValues"
-        case equalityContract = "equalityContract"
-        case event = "event"
-        case except = "except"
-        case exception = "exception"
-        case explicit = "explicit"
-        case export = "export"
-        case exposing = "exposing"
-        case extends = "extends"
-        case extern = "extern"
-        case finally = "finally"
-        case fixed = "fixed"
-        case float = "float"
-        case foreach = "foreach"
-        case formatException = "FormatException"
-        case friend = "friend"
-        case from = "from"
-        case fromJSON = "from_json"
-        case function = "function"
-        case global = "global"
-        case go = "go"
-        case goto = "goto"
-        case hasOwnProperty = "hasOwnProperty"
-        case hashCode = "hashCode"
-        case id = "id"
-        case imp = "IMP"
-        case implements = "implements"
-        case implicit = "implicit"
-        case inline = "inline"
-        case instanceof = "instanceof"
-        case int = "int"
-        case interface = "interface"
-        case obj2Default = "default"
-        case obj2Defer = "defer"
-        case obj2Deinit = "deinit"
-        case obj2DidSet = "didSet"
-        case obj2Do = "do"
-        case obj2Dynamic = "dynamic"
-        case obj2Else = "else"
-        case obj2Enum = "enum"
-        case obj2Extension = "extension"
-        case obj2Fallthrough = "fallthrough"
-        case obj2False = "False"
-        case obj2Fileprivate = "fileprivate"
-        case obj2Final = "final"
-        case obj2For = "for"
-        case obj2Func = "func"
-        case obj2Get = "get"
-        case obj2Guard = "guard"
-        case obj2If = "if"
-        case obj2Import = "import"
-        case obj2In = "in"
-        case obj2Indirect = "indirect"
-        case obj2Infix = "infix"
-        case obj2Init = "init"
-        case obj2Inout = "inout"
-        case obj2Internal = "internal"
-        case purpleFalse = "false"
     }
 }
 
-// MARK: Obj2 convenience initializers and mutators
+// MARK: Del convenience initializers and mutators
 
-extension Obj2 {
+extension Del {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj2.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        def: Def? = nil,
-        del: Del? = nil,
-        delegate: Delegate? = nil,
-        delete: Delete? = nil,
-        dict: Dict? = nil,
-        dictionary: Dictionary? = nil,
-        double: DoubleClass? = nil,
-        dummy: Int? = nil,
-        dynamicCast: DynamicCast? = nil,
-        elif: Elif? = nil,
-        encodeQuickType: EncodeQuickType? = nil,
-        enumValues: EnumValues? = nil,
-        equalityContract: EqualityContract? = nil,
-        event: Event? = nil,
-        except: Except? = nil,
-        exception: Exception? = nil,
-        explicit: Explicit? = nil,
-        export: Export? = nil,
-        exposing: Exposing? = nil,
-        extends: Extends? = nil,
-        extern: Extern? = nil,
-        finally: Finally? = nil,
-        fixed: Fixed? = nil,
-        float: Float? = nil,
-        foreach: Foreach? = nil,
-        formatException: FormatException? = nil,
-        friend: Friend? = nil,
-        from: From? = nil,
-        fromJSON: FromJSON? = nil,
-        function: Function? = nil,
-        global: Global? = nil,
-        go: Go? = nil,
-        goto: Goto? = nil,
-        hasOwnProperty: HasOwnProperty? = nil,
-        hashCode: HashCode? = nil,
-        id: ID? = nil,
-        imp: Imp? = nil,
-        implements: Implements? = nil,
-        implicit: Implicit? = nil,
-        inline: Inline? = nil,
-        instanceof: Instanceof? = nil,
-        int: IntClass? = nil,
-        interface: Interface? = nil,
-        obj2Default: Default? = nil,
-        obj2Defer: Defer? = nil,
-        obj2Deinit: Deinit? = nil,
-        obj2DidSet: DidSet? = nil,
-        obj2Do: Do? = nil,
-        obj2Dynamic: Dynamic? = nil,
-        obj2Else: Else? = nil,
-        obj2Enum: Enum? = nil,
-        obj2Extension: Extension? = nil,
-        obj2Fallthrough: Fallthrough? = nil,
-        obj2False: False? = nil,
-        obj2Fileprivate: Fileprivate? = nil,
-        obj2Final: Final? = nil,
-        obj2For: For? = nil,
-        obj2Func: Func? = nil,
-        obj2Get: Get? = nil,
-        obj2Guard: Guard? = nil,
-        obj2If: If? = nil,
-        obj2Import: Import? = nil,
-        obj2In: In? = nil,
-        obj2Indirect: Indirect? = nil,
-        obj2Infix: Infix? = nil,
-        obj2Init: Init? = nil,
-        obj2Inout: Inout? = nil,
-        obj2Internal: Internal? = nil,
-        purpleFalse: FalseClass? = nil
-    ) -> Obj2 {
-        return Obj2(
-            def: def ?? self.def,
-            del: del ?? self.del,
-            delegate: delegate ?? self.delegate,
-            delete: delete ?? self.delete,
-            dict: dict ?? self.dict,
-            dictionary: dictionary ?? self.dictionary,
-            double: double ?? self.double,
-            dummy: dummy ?? self.dummy,
-            dynamicCast: dynamicCast ?? self.dynamicCast,
-            elif: elif ?? self.elif,
-            encodeQuickType: encodeQuickType ?? self.encodeQuickType,
-            enumValues: enumValues ?? self.enumValues,
-            equalityContract: equalityContract ?? self.equalityContract,
-            event: event ?? self.event,
-            except: except ?? self.except,
-            exception: exception ?? self.exception,
-            explicit: explicit ?? self.explicit,
-            export: export ?? self.export,
-            exposing: exposing ?? self.exposing,
-            extends: extends ?? self.extends,
-            extern: extern ?? self.extern,
-            finally: finally ?? self.finally,
-            fixed: fixed ?? self.fixed,
-            float: float ?? self.float,
-            foreach: foreach ?? self.foreach,
-            formatException: formatException ?? self.formatException,
-            friend: friend ?? self.friend,
-            from: from ?? self.from,
-            fromJSON: fromJSON ?? self.fromJSON,
-            function: function ?? self.function,
-            global: global ?? self.global,
-            go: go ?? self.go,
-            goto: goto ?? self.goto,
-            hasOwnProperty: hasOwnProperty ?? self.hasOwnProperty,
-            hashCode: hashCode ?? self.hashCode,
-            id: id ?? self.id,
-            imp: imp ?? self.imp,
-            implements: implements ?? self.implements,
-            implicit: implicit ?? self.implicit,
-            inline: inline ?? self.inline,
-            instanceof: instanceof ?? self.instanceof,
-            int: int ?? self.int,
-            interface: interface ?? self.interface,
-            obj2Default: obj2Default ?? self.obj2Default,
-            obj2Defer: obj2Defer ?? self.obj2Defer,
-            obj2Deinit: obj2Deinit ?? self.obj2Deinit,
-            obj2DidSet: obj2DidSet ?? self.obj2DidSet,
-            obj2Do: obj2Do ?? self.obj2Do,
-            obj2Dynamic: obj2Dynamic ?? self.obj2Dynamic,
-            obj2Else: obj2Else ?? self.obj2Else,
-            obj2Enum: obj2Enum ?? self.obj2Enum,
-            obj2Extension: obj2Extension ?? self.obj2Extension,
-            obj2Fallthrough: obj2Fallthrough ?? self.obj2Fallthrough,
-            obj2False: obj2False ?? self.obj2False,
-            obj2Fileprivate: obj2Fileprivate ?? self.obj2Fileprivate,
-            obj2Final: obj2Final ?? self.obj2Final,
-            obj2For: obj2For ?? self.obj2For,
-            obj2Func: obj2Func ?? self.obj2Func,
-            obj2Get: obj2Get ?? self.obj2Get,
-            obj2Guard: obj2Guard ?? self.obj2Guard,
-            obj2If: obj2If ?? self.obj2If,
-            obj2Import: obj2Import ?? self.obj2Import,
-            obj2In: obj2In ?? self.obj2In,
-            obj2Indirect: obj2Indirect ?? self.obj2Indirect,
-            obj2Infix: obj2Infix ?? self.obj2Infix,
-            obj2Init: obj2Init ?? self.obj2Init,
-            obj2Inout: obj2Inout ?? self.obj2Inout,
-            obj2Internal: obj2Internal ?? self.obj2Internal,
-            purpleFalse: purpleFalse ?? self.purpleFalse
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Def
-struct Def: Codable {
-    let def: Int
-
-    enum CodingKeys: String, CodingKey {
-        case def = "def"
-    }
-}
-
-// MARK: Def convenience initializers and mutators
-
-extension Def {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Def.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        def: Int? = nil
-    ) -> Def {
-        return Def(
-            def: def ?? self.def
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Del
-struct Del: Codable {
-    let del: Int
-
-    enum CodingKeys: String, CodingKey {
-        case del = "del"
-    }
-}
-
-// MARK: Del convenience initializers and mutators
-
-extension Del {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Del.self, from: data)
+        self = try newJSONDecoder().decode(Del.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5514,20 +5470,20 @@ extension Implicit {
     }
 }
 
-// MARK: - Inline
-struct Inline: Codable {
-    let inline: Int
+// MARK: - Default
+struct Default: Codable {
+    let defaultDefault: Int
 
     enum CodingKeys: String, CodingKey {
-        case inline = "inline"
+        case defaultDefault = "default"
     }
 }
 
-// MARK: Inline convenience initializers and mutators
+// MARK: Default convenience initializers and mutators
 
-extension Inline {
+extension Default {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Inline.self, from: data)
+        self = try newJSONDecoder().decode(Default.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5542,10 +5498,10 @@ extension Inline {
     }
 
     func with(
-        inline: Int? = nil
-    ) -> Inline {
-        return Inline(
-            inline: inline ?? self.inline
+        defaultDefault: Int? = nil
+    ) -> Default {
+        return Default(
+            defaultDefault: defaultDefault ?? self.defaultDefault
         )
     }
 
@@ -5558,20 +5514,20 @@ extension Inline {
     }
 }
 
-// MARK: - Instanceof
-struct Instanceof: Codable {
-    let instanceof: Int
+// MARK: - Defer
+struct Defer: Codable {
+    let deferDefer: Int
 
     enum CodingKeys: String, CodingKey {
-        case instanceof = "instanceof"
+        case deferDefer = "defer"
     }
 }
 
-// MARK: Instanceof convenience initializers and mutators
+// MARK: Defer convenience initializers and mutators
 
-extension Instanceof {
+extension Defer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Instanceof.self, from: data)
+        self = try newJSONDecoder().decode(Defer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5586,10 +5542,10 @@ extension Instanceof {
     }
 
     func with(
-        instanceof: Int? = nil
-    ) -> Instanceof {
-        return Instanceof(
-            instanceof: instanceof ?? self.instanceof
+        deferDefer: Int? = nil
+    ) -> Defer {
+        return Defer(
+            deferDefer: deferDefer ?? self.deferDefer
         )
     }
 
@@ -5602,20 +5558,20 @@ extension Instanceof {
     }
 }
 
-// MARK: - IntClass
-struct IntClass: Codable {
-    let int: Int
+// MARK: - Deinit
+struct Deinit: Codable {
+    let deinitDeinit: Int
 
     enum CodingKeys: String, CodingKey {
-        case int = "int"
+        case deinitDeinit = "deinit"
     }
 }
 
-// MARK: IntClass convenience initializers and mutators
+// MARK: Deinit convenience initializers and mutators
 
-extension IntClass {
+extension Deinit {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(IntClass.self, from: data)
+        self = try newJSONDecoder().decode(Deinit.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -5630,186 +5586,10 @@ extension IntClass {
     }
 
     func with(
-        int: Int? = nil
-    ) -> IntClass {
-        return IntClass(
-            int: int ?? self.int
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Interface
-struct Interface: Codable {
-    let interface: Int
-
-    enum CodingKeys: String, CodingKey {
-        case interface = "interface"
-    }
-}
-
-// MARK: Interface convenience initializers and mutators
-
-extension Interface {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Interface.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        interface: Int? = nil
-    ) -> Interface {
-        return Interface(
-            interface: interface ?? self.interface
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Default
-struct Default: Codable {
-    let defaultDefault: Int
-
-    enum CodingKeys: String, CodingKey {
-        case defaultDefault = "default"
-    }
-}
-
-// MARK: Default convenience initializers and mutators
-
-extension Default {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Default.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        defaultDefault: Int? = nil
-    ) -> Default {
-        return Default(
-            defaultDefault: defaultDefault ?? self.defaultDefault
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Defer
-struct Defer: Codable {
-    let deferDefer: Int
-
-    enum CodingKeys: String, CodingKey {
-        case deferDefer = "defer"
-    }
-}
-
-// MARK: Defer convenience initializers and mutators
-
-extension Defer {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Defer.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        deferDefer: Int? = nil
-    ) -> Defer {
-        return Defer(
-            deferDefer: deferDefer ?? self.deferDefer
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Deinit
-struct Deinit: Codable {
-    let deinitDeinit: Int
-
-    enum CodingKeys: String, CodingKey {
-        case deinitDeinit = "deinit"
-    }
-}
-
-// MARK: Deinit convenience initializers and mutators
-
-extension Deinit {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Deinit.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        deinitDeinit: Int? = nil
-    ) -> Deinit {
-        return Deinit(
-            deinitDeinit: deinitDeinit ?? self.deinitDeinit
+        deinitDeinit: Int? = nil
+    ) -> Deinit {
+        return Deinit(
+            deinitDeinit: deinitDeinit ?? self.deinitDeinit
         )
     }
 
@@ -6482,64 +6262,20 @@ extension If {
     }
 }
 
-// MARK: - Import
-struct Import: Codable {
-    let importImport: Int
-
-    enum CodingKeys: String, CodingKey {
-        case importImport = "import"
-    }
-}
-
-// MARK: Import convenience initializers and mutators
-
-extension Import {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Import.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        importImport: Int? = nil
-    ) -> Import {
-        return Import(
-            importImport: importImport ?? self.importImport
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - In
-struct In: Codable {
-    let inIn: Int
+// MARK: - FalseClass
+struct FalseClass: Codable {
+    let falseFalse: Int
 
     enum CodingKeys: String, CodingKey {
-        case inIn = "in"
+        case falseFalse = "false"
     }
 }
 
-// MARK: In convenience initializers and mutators
+// MARK: FalseClass convenience initializers and mutators
 
-extension In {
+extension FalseClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(In.self, from: data)
+        self = try newJSONDecoder().decode(FalseClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6554,274 +6290,10 @@ extension In {
     }
 
     func with(
-        inIn: Int? = nil
-    ) -> In {
-        return In(
-            inIn: inIn ?? self.inIn
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Indirect
-struct Indirect: Codable {
-    let indirectIndirect: Int
-
-    enum CodingKeys: String, CodingKey {
-        case indirectIndirect = "indirect"
-    }
-}
-
-// MARK: Indirect convenience initializers and mutators
-
-extension Indirect {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Indirect.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        indirectIndirect: Int? = nil
-    ) -> Indirect {
-        return Indirect(
-            indirectIndirect: indirectIndirect ?? self.indirectIndirect
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Infix
-struct Infix: Codable {
-    let infixInfix: Int
-
-    enum CodingKeys: String, CodingKey {
-        case infixInfix = "infix"
-    }
-}
-
-// MARK: Infix convenience initializers and mutators
-
-extension Infix {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Infix.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        infixInfix: Int? = nil
-    ) -> Infix {
-        return Infix(
-            infixInfix: infixInfix ?? self.infixInfix
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Init
-struct Init: Codable {
-    let initInit: Int
-
-    enum CodingKeys: String, CodingKey {
-        case initInit = "init"
-    }
-}
-
-// MARK: Init convenience initializers and mutators
-
-extension Init {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Init.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        initInit: Int? = nil
-    ) -> Init {
-        return Init(
-            initInit: initInit ?? self.initInit
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Inout
-struct Inout: Codable {
-    let inoutInout: Int
-
-    enum CodingKeys: String, CodingKey {
-        case inoutInout = "inout"
-    }
-}
-
-// MARK: Inout convenience initializers and mutators
-
-extension Inout {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Inout.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        inoutInout: Int? = nil
-    ) -> Inout {
-        return Inout(
-            inoutInout: inoutInout ?? self.inoutInout
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Internal
-struct Internal: Codable {
-    let internalInternal: Int
-
-    enum CodingKeys: String, CodingKey {
-        case internalInternal = "internal"
-    }
-}
-
-// MARK: Internal convenience initializers and mutators
-
-extension Internal {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Internal.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        internalInternal: Int? = nil
-    ) -> Internal {
-        return Internal(
-            internalInternal: internalInternal ?? self.internalInternal
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - FalseClass
-struct FalseClass: Codable {
-    let falseFalse: Int
-
-    enum CodingKeys: String, CodingKey {
-        case falseFalse = "false"
-    }
-}
-
-// MARK: FalseClass convenience initializers and mutators
-
-extension FalseClass {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(FalseClass.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        falseFalse: Int? = nil
-    ) -> FalseClass {
-        return FalseClass(
-            falseFalse: falseFalse ?? self.falseFalse
+        falseFalse: Int? = nil
+    ) -> FalseClass {
+        return FalseClass(
+            falseFalse: falseFalse ?? self.falseFalse
         )
     }
 
@@ -6837,6 +6309,10 @@ extension FalseClass {
 // MARK: - Obj3
 struct Obj3: Codable {
     let dummy: Int
+    let inline: Inline
+    let instanceof: Instanceof
+    let int: IntClass
+    let interface: Interface
     let isoDateTimeOffsetConverter: ISODateTimeOffsetConverter
     let iterable: Iterable
     let jdec: Jdec
@@ -6880,8 +6356,13 @@ struct Obj3: Codable {
     let nsError: NSErrorClass
     let nsString: NSString
     let null: Null
-    let nullptr: Nullptr
-    let number: Number
+    let obj3Import: Import
+    let obj3In: In
+    let obj3Indirect: Indirect
+    let obj3Infix: Infix
+    let obj3Init: Init
+    let obj3Inout: Inout
+    let obj3Internal: Internal
     let obj3Is: Is
     let obj3JSON: JSON
     let obj3Lazy: Lazy
@@ -6892,38 +6373,13 @@ struct Obj3: Codable {
     let obj3None: NoneClass
     let obj3Nonmutating: Nonmutating
     let obj3Null: NullClass
-    let obj3Open: Open
-    let obj3Operator: Operator
-    let obj3Optional: Optional
-    let obj3Override: Override
-    let obj3Postfix: Postfix
-    let obj3Precedence: Precedence
-    let obj3Prefix: Prefix
-    let obj3Private: Private
-    let obj3Protocol: ProtocolClass
-    let object: Object
-    let objectMapper: ObjectMapper
-    let of: Of
-    let oneway: Oneway
-    let or: Or
-    let orEq: OrEq
-    let out: Out
-    let package: Package
-    let params: Params
-    let pass: Pass
-    let port: Port
-    let print: Print
-    let printMembers: PrintMembers
-    let printf: Printf
-    let protected: Protected
-    let purpleProtocol: Obj3Protocol
-    let serializerProvider: SerializerProvider
-    let simpleModule: SimpleModule
-    let stdDeserializer: StdDeserializer
-    let stdSerializer: StdSerializer
 
     enum CodingKeys: String, CodingKey {
         case dummy = "dummy"
+        case inline = "inline"
+        case instanceof = "instanceof"
+        case int = "int"
+        case interface = "interface"
         case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
         case iterable = "iterable"
         case jdec = "jdec"
@@ -6967,8 +6423,13 @@ struct Obj3: Codable {
         case nsError = "NSError"
         case nsString = "NSString"
         case null = "NULL"
-        case nullptr = "nullptr"
-        case number = "number"
+        case obj3Import = "import"
+        case obj3In = "in"
+        case obj3Indirect = "indirect"
+        case obj3Infix = "infix"
+        case obj3Init = "init"
+        case obj3Inout = "inout"
+        case obj3Internal = "internal"
         case obj3Is = "is"
         case obj3JSON = "json"
         case obj3Lazy = "lazy"
@@ -6979,35 +6440,6 @@ struct Obj3: Codable {
         case obj3None = "none"
         case obj3Nonmutating = "nonmutating"
         case obj3Null = "null"
-        case obj3Open = "open"
-        case obj3Operator = "operator"
-        case obj3Optional = "optional"
-        case obj3Override = "override"
-        case obj3Postfix = "postfix"
-        case obj3Precedence = "precedence"
-        case obj3Prefix = "prefix"
-        case obj3Private = "private"
-        case obj3Protocol = "Protocol"
-        case object = "object"
-        case objectMapper = "ObjectMapper"
-        case of = "of"
-        case oneway = "oneway"
-        case or = "or"
-        case orEq = "or_eq"
-        case out = "out"
-        case package = "package"
-        case params = "params"
-        case pass = "pass"
-        case port = "port"
-        case print = "print"
-        case printMembers = "printMembers"
-        case printf = "printf"
-        case protected = "protected"
-        case purpleProtocol = "protocol"
-        case serializerProvider = "SerializerProvider"
-        case simpleModule = "SimpleModule"
-        case stdDeserializer = "StdDeserializer"
-        case stdSerializer = "StdSerializer"
     }
 }
 
@@ -7031,6 +6463,10 @@ extension Obj3 {
 
     func with(
         dummy: Int? = nil,
+        inline: Inline? = nil,
+        instanceof: Instanceof? = nil,
+        int: IntClass? = nil,
+        interface: Interface? = nil,
         isoDateTimeOffsetConverter: ISODateTimeOffsetConverter? = nil,
         iterable: Iterable? = nil,
         jdec: Jdec? = nil,
@@ -7074,8 +6510,13 @@ extension Obj3 {
         nsError: NSErrorClass? = nil,
         nsString: NSString? = nil,
         null: Null? = nil,
-        nullptr: Nullptr? = nil,
-        number: Number? = nil,
+        obj3Import: Import? = nil,
+        obj3In: In? = nil,
+        obj3Indirect: Indirect? = nil,
+        obj3Infix: Infix? = nil,
+        obj3Init: Init? = nil,
+        obj3Inout: Inout? = nil,
+        obj3Internal: Internal? = nil,
         obj3Is: Is? = nil,
         obj3JSON: JSON? = nil,
         obj3Lazy: Lazy? = nil,
@@ -7085,39 +6526,14 @@ extension Obj3 {
         obj3Nil: Nil? = nil,
         obj3None: NoneClass? = nil,
         obj3Nonmutating: Nonmutating? = nil,
-        obj3Null: NullClass? = nil,
-        obj3Open: Open? = nil,
-        obj3Operator: Operator? = nil,
-        obj3Optional: Optional? = nil,
-        obj3Override: Override? = nil,
-        obj3Postfix: Postfix? = nil,
-        obj3Precedence: Precedence? = nil,
-        obj3Prefix: Prefix? = nil,
-        obj3Private: Private? = nil,
-        obj3Protocol: ProtocolClass? = nil,
-        object: Object? = nil,
-        objectMapper: ObjectMapper? = nil,
-        of: Of? = nil,
-        oneway: Oneway? = nil,
-        or: Or? = nil,
-        orEq: OrEq? = nil,
-        out: Out? = nil,
-        package: Package? = nil,
-        params: Params? = nil,
-        pass: Pass? = nil,
-        port: Port? = nil,
-        print: Print? = nil,
-        printMembers: PrintMembers? = nil,
-        printf: Printf? = nil,
-        protected: Protected? = nil,
-        purpleProtocol: Obj3Protocol? = nil,
-        serializerProvider: SerializerProvider? = nil,
-        simpleModule: SimpleModule? = nil,
-        stdDeserializer: StdDeserializer? = nil,
-        stdSerializer: StdSerializer? = nil
+        obj3Null: NullClass? = nil
     ) -> Obj3 {
         return Obj3(
             dummy: dummy ?? self.dummy,
+            inline: inline ?? self.inline,
+            instanceof: instanceof ?? self.instanceof,
+            int: int ?? self.int,
+            interface: interface ?? self.interface,
             isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter,
             iterable: iterable ?? self.iterable,
             jdec: jdec ?? self.jdec,
@@ -7161,8 +6577,13 @@ extension Obj3 {
             nsError: nsError ?? self.nsError,
             nsString: nsString ?? self.nsString,
             null: null ?? self.null,
-            nullptr: nullptr ?? self.nullptr,
-            number: number ?? self.number,
+            obj3Import: obj3Import ?? self.obj3Import,
+            obj3In: obj3In ?? self.obj3In,
+            obj3Indirect: obj3Indirect ?? self.obj3Indirect,
+            obj3Infix: obj3Infix ?? self.obj3Infix,
+            obj3Init: obj3Init ?? self.obj3Init,
+            obj3Inout: obj3Inout ?? self.obj3Inout,
+            obj3Internal: obj3Internal ?? self.obj3Internal,
             obj3Is: obj3Is ?? self.obj3Is,
             obj3JSON: obj3JSON ?? self.obj3JSON,
             obj3Lazy: obj3Lazy ?? self.obj3Lazy,
@@ -7172,36 +6593,7 @@ extension Obj3 {
             obj3Nil: obj3Nil ?? self.obj3Nil,
             obj3None: obj3None ?? self.obj3None,
             obj3Nonmutating: obj3Nonmutating ?? self.obj3Nonmutating,
-            obj3Null: obj3Null ?? self.obj3Null,
-            obj3Open: obj3Open ?? self.obj3Open,
-            obj3Operator: obj3Operator ?? self.obj3Operator,
-            obj3Optional: obj3Optional ?? self.obj3Optional,
-            obj3Override: obj3Override ?? self.obj3Override,
-            obj3Postfix: obj3Postfix ?? self.obj3Postfix,
-            obj3Precedence: obj3Precedence ?? self.obj3Precedence,
-            obj3Prefix: obj3Prefix ?? self.obj3Prefix,
-            obj3Private: obj3Private ?? self.obj3Private,
-            obj3Protocol: obj3Protocol ?? self.obj3Protocol,
-            object: object ?? self.object,
-            objectMapper: objectMapper ?? self.objectMapper,
-            of: of ?? self.of,
-            oneway: oneway ?? self.oneway,
-            or: or ?? self.or,
-            orEq: orEq ?? self.orEq,
-            out: out ?? self.out,
-            package: package ?? self.package,
-            params: params ?? self.params,
-            pass: pass ?? self.pass,
-            port: port ?? self.port,
-            print: print ?? self.print,
-            printMembers: printMembers ?? self.printMembers,
-            printf: printf ?? self.printf,
-            protected: protected ?? self.protected,
-            purpleProtocol: purpleProtocol ?? self.purpleProtocol,
-            serializerProvider: serializerProvider ?? self.serializerProvider,
-            simpleModule: simpleModule ?? self.simpleModule,
-            stdDeserializer: stdDeserializer ?? self.stdDeserializer,
-            stdSerializer: stdSerializer ?? self.stdSerializer
+            obj3Null: obj3Null ?? self.obj3Null
         )
     }
 
@@ -7214,20 +6606,20 @@ extension Obj3 {
     }
 }
 
-// MARK: - ISODateTimeOffsetConverter
-struct ISODateTimeOffsetConverter: Codable {
-    let isoDateTimeOffsetConverter: Int
+// MARK: - Inline
+struct Inline: Codable {
+    let inline: Int
 
     enum CodingKeys: String, CodingKey {
-        case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
+        case inline = "inline"
     }
 }
 
-// MARK: ISODateTimeOffsetConverter convenience initializers and mutators
+// MARK: Inline convenience initializers and mutators
 
-extension ISODateTimeOffsetConverter {
+extension Inline {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ISODateTimeOffsetConverter.self, from: data)
+        self = try newJSONDecoder().decode(Inline.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7242,10 +6634,10 @@ extension ISODateTimeOffsetConverter {
     }
 
     func with(
-        isoDateTimeOffsetConverter: Int? = nil
-    ) -> ISODateTimeOffsetConverter {
-        return ISODateTimeOffsetConverter(
-            isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter
+        inline: Int? = nil
+    ) -> Inline {
+        return Inline(
+            inline: inline ?? self.inline
         )
     }
 
@@ -7258,20 +6650,20 @@ extension ISODateTimeOffsetConverter {
     }
 }
 
-// MARK: - Iterable
-struct Iterable: Codable {
-    let iterable: Int
+// MARK: - Instanceof
+struct Instanceof: Codable {
+    let instanceof: Int
 
     enum CodingKeys: String, CodingKey {
-        case iterable = "iterable"
+        case instanceof = "instanceof"
     }
 }
 
-// MARK: Iterable convenience initializers and mutators
+// MARK: Instanceof convenience initializers and mutators
 
-extension Iterable {
+extension Instanceof {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Iterable.self, from: data)
+        self = try newJSONDecoder().decode(Instanceof.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7286,10 +6678,10 @@ extension Iterable {
     }
 
     func with(
-        iterable: Int? = nil
-    ) -> Iterable {
-        return Iterable(
-            iterable: iterable ?? self.iterable
+        instanceof: Int? = nil
+    ) -> Instanceof {
+        return Instanceof(
+            instanceof: instanceof ?? self.instanceof
         )
     }
 
@@ -7302,20 +6694,20 @@ extension Iterable {
     }
 }
 
-// MARK: - Jdec
-struct Jdec: Codable {
-    let jdec: Int
+// MARK: - IntClass
+struct IntClass: Codable {
+    let int: Int
 
     enum CodingKeys: String, CodingKey {
-        case jdec = "jdec"
+        case int = "int"
     }
 }
 
-// MARK: Jdec convenience initializers and mutators
+// MARK: IntClass convenience initializers and mutators
 
-extension Jdec {
+extension IntClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jdec.self, from: data)
+        self = try newJSONDecoder().decode(IntClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7330,10 +6722,10 @@ extension Jdec {
     }
 
     func with(
-        jdec: Int? = nil
-    ) -> Jdec {
-        return Jdec(
-            jdec: jdec ?? self.jdec
+        int: Int? = nil
+    ) -> IntClass {
+        return IntClass(
+            int: int ?? self.int
         )
     }
 
@@ -7346,20 +6738,20 @@ extension Jdec {
     }
 }
 
-// MARK: - Jenc
-struct Jenc: Codable {
-    let jenc: Int
+// MARK: - Interface
+struct Interface: Codable {
+    let interface: Int
 
     enum CodingKeys: String, CodingKey {
-        case jenc = "jenc"
+        case interface = "interface"
     }
 }
 
-// MARK: Jenc convenience initializers and mutators
+// MARK: Interface convenience initializers and mutators
 
-extension Jenc {
+extension Interface {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jenc.self, from: data)
+        self = try newJSONDecoder().decode(Interface.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7374,10 +6766,10 @@ extension Jenc {
     }
 
     func with(
-        jenc: Int? = nil
-    ) -> Jenc {
-        return Jenc(
-            jenc: jenc ?? self.jenc
+        interface: Int? = nil
+    ) -> Interface {
+        return Interface(
+            interface: interface ?? self.interface
         )
     }
 
@@ -7390,20 +6782,20 @@ extension Jenc {
     }
 }
 
-// MARK: - Jpipe
-struct Jpipe: Codable {
-    let jpipe: Int
+// MARK: - ISODateTimeOffsetConverter
+struct ISODateTimeOffsetConverter: Codable {
+    let isoDateTimeOffsetConverter: Int
 
     enum CodingKeys: String, CodingKey {
-        case jpipe = "jpipe"
+        case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
     }
 }
 
-// MARK: Jpipe convenience initializers and mutators
+// MARK: ISODateTimeOffsetConverter convenience initializers and mutators
 
-extension Jpipe {
+extension ISODateTimeOffsetConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Jpipe.self, from: data)
+        self = try newJSONDecoder().decode(ISODateTimeOffsetConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7418,10 +6810,10 @@ extension Jpipe {
     }
 
     func with(
-        jpipe: Int? = nil
-    ) -> Jpipe {
-        return Jpipe(
-            jpipe: jpipe ?? self.jpipe
+        isoDateTimeOffsetConverter: Int? = nil
+    ) -> ISODateTimeOffsetConverter {
+        return ISODateTimeOffsetConverter(
+            isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter
         )
     }
 
@@ -7434,20 +6826,20 @@ extension Jpipe {
     }
 }
 
-// MARK: - JSONAnyClass
-struct JSONAnyClass: Codable {
-    let jsonAny: JSONNull?
+// MARK: - Iterable
+struct Iterable: Codable {
+    let iterable: Int
 
     enum CodingKeys: String, CodingKey {
-        case jsonAny = "JSONAny"
+        case iterable = "iterable"
     }
 }
 
-// MARK: JSONAnyClass convenience initializers and mutators
+// MARK: Iterable convenience initializers and mutators
 
-extension JSONAnyClass {
+extension Iterable {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONAnyClass.self, from: data)
+        self = try newJSONDecoder().decode(Iterable.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7462,10 +6854,10 @@ extension JSONAnyClass {
     }
 
     func with(
-        jsonAny: JSONNull?? = nil
-    ) -> JSONAnyClass {
-        return JSONAnyClass(
-            jsonAny: jsonAny ?? self.jsonAny
+        iterable: Int? = nil
+    ) -> Iterable {
+        return Iterable(
+            iterable: iterable ?? self.iterable
         )
     }
 
@@ -7478,20 +6870,20 @@ extension JSONAnyClass {
     }
 }
 
-// MARK: - JSONCodingKeyClass
-struct JSONCodingKeyClass: Codable {
-    let jsonCodingKey: Int
+// MARK: - Jdec
+struct Jdec: Codable {
+    let jdec: Int
 
     enum CodingKeys: String, CodingKey {
-        case jsonCodingKey = "JSONCodingKey"
+        case jdec = "jdec"
     }
 }
 
-// MARK: JSONCodingKeyClass convenience initializers and mutators
+// MARK: Jdec convenience initializers and mutators
 
-extension JSONCodingKeyClass {
+extension Jdec {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSONCodingKeyClass.self, from: data)
+        self = try newJSONDecoder().decode(Jdec.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7506,10 +6898,10 @@ extension JSONCodingKeyClass {
     }
 
     func with(
-        jsonCodingKey: Int? = nil
-    ) -> JSONCodingKeyClass {
-        return JSONCodingKeyClass(
-            jsonCodingKey: jsonCodingKey ?? self.jsonCodingKey
+        jdec: Int? = nil
+    ) -> Jdec {
+        return Jdec(
+            jdec: jdec ?? self.jdec
         )
     }
 
@@ -7522,12 +6914,188 @@ extension JSONCodingKeyClass {
     }
 }
 
-// MARK: - JSONConverter
-struct JSONConverter: Codable {
-    let jsonConverter: Int
+// MARK: - Jenc
+struct Jenc: Codable {
+    let jenc: Int
 
     enum CodingKeys: String, CodingKey {
-        case jsonConverter = "json_converter"
+        case jenc = "jenc"
+    }
+}
+
+// MARK: Jenc convenience initializers and mutators
+
+extension Jenc {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Jenc.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        jenc: Int? = nil
+    ) -> Jenc {
+        return Jenc(
+            jenc: jenc ?? self.jenc
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Jpipe
+struct Jpipe: Codable {
+    let jpipe: Int
+
+    enum CodingKeys: String, CodingKey {
+        case jpipe = "jpipe"
+    }
+}
+
+// MARK: Jpipe convenience initializers and mutators
+
+extension Jpipe {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Jpipe.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        jpipe: Int? = nil
+    ) -> Jpipe {
+        return Jpipe(
+            jpipe: jpipe ?? self.jpipe
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - JSONAnyClass
+struct JSONAnyClass: Codable {
+    let jsonAny: JSONNull?
+
+    enum CodingKeys: String, CodingKey {
+        case jsonAny = "JSONAny"
+    }
+}
+
+// MARK: JSONAnyClass convenience initializers and mutators
+
+extension JSONAnyClass {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(JSONAnyClass.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        jsonAny: JSONNull?? = nil
+    ) -> JSONAnyClass {
+        return JSONAnyClass(
+            jsonAny: jsonAny ?? self.jsonAny
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - JSONCodingKeyClass
+struct JSONCodingKeyClass: Codable {
+    let jsonCodingKey: Int
+
+    enum CodingKeys: String, CodingKey {
+        case jsonCodingKey = "JSONCodingKey"
+    }
+}
+
+// MARK: JSONCodingKeyClass convenience initializers and mutators
+
+extension JSONCodingKeyClass {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(JSONCodingKeyClass.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        jsonCodingKey: Int? = nil
+    ) -> JSONCodingKeyClass {
+        return JSONCodingKeyClass(
+            jsonCodingKey: jsonCodingKey ?? self.jsonCodingKey
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - JSONConverter
+struct JSONConverter: Codable {
+    let jsonConverter: Int
+
+    enum CodingKeys: String, CodingKey {
+        case jsonConverter = "json_converter"
     }
 }
 
@@ -9106,20 +8674,20 @@ extension Null {
     }
 }
 
-// MARK: - Nullptr
-struct Nullptr: Codable {
-    let nullptr: Int
+// MARK: - Import
+struct Import: Codable {
+    let importImport: Int
 
     enum CodingKeys: String, CodingKey {
-        case nullptr = "nullptr"
+        case importImport = "import"
     }
 }
 
-// MARK: Nullptr convenience initializers and mutators
+// MARK: Import convenience initializers and mutators
 
-extension Nullptr {
+extension Import {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nullptr.self, from: data)
+        self = try newJSONDecoder().decode(Import.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9134,10 +8702,10 @@ extension Nullptr {
     }
 
     func with(
-        nullptr: Int? = nil
-    ) -> Nullptr {
-        return Nullptr(
-            nullptr: nullptr ?? self.nullptr
+        importImport: Int? = nil
+    ) -> Import {
+        return Import(
+            importImport: importImport ?? self.importImport
         )
     }
 
@@ -9150,20 +8718,20 @@ extension Nullptr {
     }
 }
 
-// MARK: - Number
-struct Number: Codable {
-    let number: Int
+// MARK: - In
+struct In: Codable {
+    let inIn: Int
 
     enum CodingKeys: String, CodingKey {
-        case number = "number"
+        case inIn = "in"
     }
 }
 
-// MARK: Number convenience initializers and mutators
+// MARK: In convenience initializers and mutators
 
-extension Number {
+extension In {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Number.self, from: data)
+        self = try newJSONDecoder().decode(In.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9178,10 +8746,10 @@ extension Number {
     }
 
     func with(
-        number: Int? = nil
-    ) -> Number {
-        return Number(
-            number: number ?? self.number
+        inIn: Int? = nil
+    ) -> In {
+        return In(
+            inIn: inIn ?? self.inIn
         )
     }
 
@@ -9194,20 +8762,20 @@ extension Number {
     }
 }
 
-// MARK: - Is
-struct Is: Codable {
-    let isIs: Int
+// MARK: - Indirect
+struct Indirect: Codable {
+    let indirectIndirect: Int
 
     enum CodingKeys: String, CodingKey {
-        case isIs = "is"
+        case indirectIndirect = "indirect"
     }
 }
 
-// MARK: Is convenience initializers and mutators
+// MARK: Indirect convenience initializers and mutators
 
-extension Is {
+extension Indirect {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Is.self, from: data)
+        self = try newJSONDecoder().decode(Indirect.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9222,10 +8790,10 @@ extension Is {
     }
 
     func with(
-        isIs: Int? = nil
-    ) -> Is {
-        return Is(
-            isIs: isIs ?? self.isIs
+        indirectIndirect: Int? = nil
+    ) -> Indirect {
+        return Indirect(
+            indirectIndirect: indirectIndirect ?? self.indirectIndirect
         )
     }
 
@@ -9238,20 +8806,20 @@ extension Is {
     }
 }
 
-// MARK: - JSON
-struct JSON: Codable {
-    let jsonJSON: Int
+// MARK: - Infix
+struct Infix: Codable {
+    let infixInfix: Int
 
     enum CodingKeys: String, CodingKey {
-        case jsonJSON = "json"
+        case infixInfix = "infix"
     }
 }
 
-// MARK: JSON convenience initializers and mutators
+// MARK: Infix convenience initializers and mutators
 
-extension JSON {
+extension Infix {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(JSON.self, from: data)
+        self = try newJSONDecoder().decode(Infix.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9266,10 +8834,10 @@ extension JSON {
     }
 
     func with(
-        jsonJSON: Int? = nil
-    ) -> JSON {
-        return JSON(
-            jsonJSON: jsonJSON ?? self.jsonJSON
+        infixInfix: Int? = nil
+    ) -> Infix {
+        return Infix(
+            infixInfix: infixInfix ?? self.infixInfix
         )
     }
 
@@ -9282,20 +8850,20 @@ extension JSON {
     }
 }
 
-// MARK: - Lazy
-struct Lazy: Codable {
-    let lazyLazy: Int
+// MARK: - Init
+struct Init: Codable {
+    let initInit: Int
 
     enum CodingKeys: String, CodingKey {
-        case lazyLazy = "lazy"
+        case initInit = "init"
     }
 }
 
-// MARK: Lazy convenience initializers and mutators
+// MARK: Init convenience initializers and mutators
 
-extension Lazy {
+extension Init {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Lazy.self, from: data)
+        self = try newJSONDecoder().decode(Init.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9310,10 +8878,10 @@ extension Lazy {
     }
 
     func with(
-        lazyLazy: Int? = nil
-    ) -> Lazy {
-        return Lazy(
-            lazyLazy: lazyLazy ?? self.lazyLazy
+        initInit: Int? = nil
+    ) -> Init {
+        return Init(
+            initInit: initInit ?? self.initInit
         )
     }
 
@@ -9326,20 +8894,20 @@ extension Lazy {
     }
 }
 
-// MARK: - Left
-struct Left: Codable {
-    let leftLeft: Int
+// MARK: - Inout
+struct Inout: Codable {
+    let inoutInout: Int
 
     enum CodingKeys: String, CodingKey {
-        case leftLeft = "left"
+        case inoutInout = "inout"
     }
 }
 
-// MARK: Left convenience initializers and mutators
+// MARK: Inout convenience initializers and mutators
 
-extension Left {
+extension Inout {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Left.self, from: data)
+        self = try newJSONDecoder().decode(Inout.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9354,10 +8922,10 @@ extension Left {
     }
 
     func with(
-        leftLeft: Int? = nil
-    ) -> Left {
-        return Left(
-            leftLeft: leftLeft ?? self.leftLeft
+        inoutInout: Int? = nil
+    ) -> Inout {
+        return Inout(
+            inoutInout: inoutInout ?? self.inoutInout
         )
     }
 
@@ -9370,20 +8938,20 @@ extension Left {
     }
 }
 
-// MARK: - Let
-struct Let: Codable {
-    let letLet: Int
+// MARK: - Internal
+struct Internal: Codable {
+    let internalInternal: Int
 
     enum CodingKeys: String, CodingKey {
-        case letLet = "let"
+        case internalInternal = "internal"
     }
 }
 
-// MARK: Let convenience initializers and mutators
+// MARK: Internal convenience initializers and mutators
 
-extension Let {
+extension Internal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Let.self, from: data)
+        self = try newJSONDecoder().decode(Internal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9398,10 +8966,10 @@ extension Let {
     }
 
     func with(
-        letLet: Int? = nil
-    ) -> Let {
-        return Let(
-            letLet: letLet ?? self.letLet
+        internalInternal: Int? = nil
+    ) -> Internal {
+        return Internal(
+            internalInternal: internalInternal ?? self.internalInternal
         )
     }
 
@@ -9414,20 +8982,20 @@ extension Let {
     }
 }
 
-// MARK: - Mutating
-struct Mutating: Codable {
-    let mutatingMutating: Int
+// MARK: - Is
+struct Is: Codable {
+    let isIs: Int
 
     enum CodingKeys: String, CodingKey {
-        case mutatingMutating = "mutating"
+        case isIs = "is"
     }
 }
 
-// MARK: Mutating convenience initializers and mutators
+// MARK: Is convenience initializers and mutators
 
-extension Mutating {
+extension Is {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Mutating.self, from: data)
+        self = try newJSONDecoder().decode(Is.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9442,10 +9010,10 @@ extension Mutating {
     }
 
     func with(
-        mutatingMutating: Int? = nil
-    ) -> Mutating {
-        return Mutating(
-            mutatingMutating: mutatingMutating ?? self.mutatingMutating
+        isIs: Int? = nil
+    ) -> Is {
+        return Is(
+            isIs: isIs ?? self.isIs
         )
     }
 
@@ -9458,20 +9026,20 @@ extension Mutating {
     }
 }
 
-// MARK: - Nil
-struct Nil: Codable {
-    let nilNil: Int
+// MARK: - JSON
+struct JSON: Codable {
+    let jsonJSON: Int
 
     enum CodingKeys: String, CodingKey {
-        case nilNil = "nil"
+        case jsonJSON = "json"
     }
 }
 
-// MARK: Nil convenience initializers and mutators
+// MARK: JSON convenience initializers and mutators
 
-extension Nil {
+extension JSON {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nil.self, from: data)
+        self = try newJSONDecoder().decode(JSON.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9486,10 +9054,10 @@ extension Nil {
     }
 
     func with(
-        nilNil: Int? = nil
-    ) -> Nil {
-        return Nil(
-            nilNil: nilNil ?? self.nilNil
+        jsonJSON: Int? = nil
+    ) -> JSON {
+        return JSON(
+            jsonJSON: jsonJSON ?? self.jsonJSON
         )
     }
 
@@ -9502,20 +9070,20 @@ extension Nil {
     }
 }
 
-// MARK: - NoneClass
-struct NoneClass: Codable {
-    let none: Int
+// MARK: - Lazy
+struct Lazy: Codable {
+    let lazyLazy: Int
 
     enum CodingKeys: String, CodingKey {
-        case none = "none"
+        case lazyLazy = "lazy"
     }
 }
 
-// MARK: NoneClass convenience initializers and mutators
+// MARK: Lazy convenience initializers and mutators
 
-extension NoneClass {
+extension Lazy {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(NoneClass.self, from: data)
+        self = try newJSONDecoder().decode(Lazy.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9530,10 +9098,10 @@ extension NoneClass {
     }
 
     func with(
-        none: Int? = nil
-    ) -> NoneClass {
-        return NoneClass(
-            none: none ?? self.none
+        lazyLazy: Int? = nil
+    ) -> Lazy {
+        return Lazy(
+            lazyLazy: lazyLazy ?? self.lazyLazy
         )
     }
 
@@ -9546,20 +9114,20 @@ extension NoneClass {
     }
 }
 
-// MARK: - Nonmutating
-struct Nonmutating: Codable {
-    let nonmutatingNonmutating: Int
+// MARK: - Left
+struct Left: Codable {
+    let leftLeft: Int
 
     enum CodingKeys: String, CodingKey {
-        case nonmutatingNonmutating = "nonmutating"
+        case leftLeft = "left"
     }
 }
 
-// MARK: Nonmutating convenience initializers and mutators
+// MARK: Left convenience initializers and mutators
 
-extension Nonmutating {
+extension Left {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Nonmutating.self, from: data)
+        self = try newJSONDecoder().decode(Left.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9574,10 +9142,10 @@ extension Nonmutating {
     }
 
     func with(
-        nonmutatingNonmutating: Int? = nil
-    ) -> Nonmutating {
-        return Nonmutating(
-            nonmutatingNonmutating: nonmutatingNonmutating ?? self.nonmutatingNonmutating
+        leftLeft: Int? = nil
+    ) -> Left {
+        return Left(
+            leftLeft: leftLeft ?? self.leftLeft
         )
     }
 
@@ -9590,20 +9158,20 @@ extension Nonmutating {
     }
 }
 
-// MARK: - NullClass
-struct NullClass: Codable {
-    let null: Int
+// MARK: - Let
+struct Let: Codable {
+    let letLet: Int
 
     enum CodingKeys: String, CodingKey {
-        case null = "null"
+        case letLet = "let"
     }
 }
 
-// MARK: NullClass convenience initializers and mutators
+// MARK: Let convenience initializers and mutators
 
-extension NullClass {
+extension Let {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(NullClass.self, from: data)
+        self = try newJSONDecoder().decode(Let.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9618,10 +9186,10 @@ extension NullClass {
     }
 
     func with(
-        null: Int? = nil
-    ) -> NullClass {
-        return NullClass(
-            null: null ?? self.null
+        letLet: Int? = nil
+    ) -> Let {
+        return Let(
+            letLet: letLet ?? self.letLet
         )
     }
 
@@ -9634,20 +9202,20 @@ extension NullClass {
     }
 }
 
-// MARK: - Open
-struct Open: Codable {
-    let openOpen: Int
+// MARK: - Mutating
+struct Mutating: Codable {
+    let mutatingMutating: Int
 
     enum CodingKeys: String, CodingKey {
-        case openOpen = "open"
+        case mutatingMutating = "mutating"
     }
 }
 
-// MARK: Open convenience initializers and mutators
+// MARK: Mutating convenience initializers and mutators
 
-extension Open {
+extension Mutating {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Open.self, from: data)
+        self = try newJSONDecoder().decode(Mutating.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9662,10 +9230,10 @@ extension Open {
     }
 
     func with(
-        openOpen: Int? = nil
-    ) -> Open {
-        return Open(
-            openOpen: openOpen ?? self.openOpen
+        mutatingMutating: Int? = nil
+    ) -> Mutating {
+        return Mutating(
+            mutatingMutating: mutatingMutating ?? self.mutatingMutating
         )
     }
 
@@ -9678,20 +9246,20 @@ extension Open {
     }
 }
 
-// MARK: - Operator
-struct Operator: Codable {
-    let operatorOperator: Int
+// MARK: - Nil
+struct Nil: Codable {
+    let nilNil: Int
 
     enum CodingKeys: String, CodingKey {
-        case operatorOperator = "operator"
+        case nilNil = "nil"
     }
 }
 
-// MARK: Operator convenience initializers and mutators
+// MARK: Nil convenience initializers and mutators
 
-extension Operator {
+extension Nil {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Operator.self, from: data)
+        self = try newJSONDecoder().decode(Nil.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9706,10 +9274,10 @@ extension Operator {
     }
 
     func with(
-        operatorOperator: Int? = nil
-    ) -> Operator {
-        return Operator(
-            operatorOperator: operatorOperator ?? self.operatorOperator
+        nilNil: Int? = nil
+    ) -> Nil {
+        return Nil(
+            nilNil: nilNil ?? self.nilNil
         )
     }
 
@@ -9722,20 +9290,20 @@ extension Operator {
     }
 }
 
-// MARK: - Optional
-struct Optional: Codable {
-    let optionalOptional: Int
+// MARK: - NoneClass
+struct NoneClass: Codable {
+    let none: Int
 
     enum CodingKeys: String, CodingKey {
-        case optionalOptional = "optional"
+        case none = "none"
     }
 }
 
-// MARK: Optional convenience initializers and mutators
+// MARK: NoneClass convenience initializers and mutators
 
-extension Optional {
+extension NoneClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Optional.self, from: data)
+        self = try newJSONDecoder().decode(NoneClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9750,10 +9318,10 @@ extension Optional {
     }
 
     func with(
-        optionalOptional: Int? = nil
-    ) -> Optional {
-        return Optional(
-            optionalOptional: optionalOptional ?? self.optionalOptional
+        none: Int? = nil
+    ) -> NoneClass {
+        return NoneClass(
+            none: none ?? self.none
         )
     }
 
@@ -9766,108 +9334,20 @@ extension Optional {
     }
 }
 
-// MARK: - Override
-struct Override: Codable {
-    let overrideOverride: Int
-
-    enum CodingKeys: String, CodingKey {
-        case overrideOverride = "override"
-    }
-}
-
-// MARK: Override convenience initializers and mutators
-
-extension Override {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Override.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        overrideOverride: Int? = nil
-    ) -> Override {
-        return Override(
-            overrideOverride: overrideOverride ?? self.overrideOverride
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Postfix
-struct Postfix: Codable {
-    let postfixPostfix: Int
-
-    enum CodingKeys: String, CodingKey {
-        case postfixPostfix = "postfix"
-    }
-}
-
-// MARK: Postfix convenience initializers and mutators
-
-extension Postfix {
-    init(data: Data) throws {
-        self = try newJSONDecoder().decode(Postfix.self, from: data)
-    }
-
-    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        postfixPostfix: Int? = nil
-    ) -> Postfix {
-        return Postfix(
-            postfixPostfix: postfixPostfix ?? self.postfixPostfix
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Precedence
-struct Precedence: Codable {
-    let precedencePrecedence: Int
+// MARK: - Nonmutating
+struct Nonmutating: Codable {
+    let nonmutatingNonmutating: Int
 
     enum CodingKeys: String, CodingKey {
-        case precedencePrecedence = "precedence"
+        case nonmutatingNonmutating = "nonmutating"
     }
 }
 
-// MARK: Precedence convenience initializers and mutators
+// MARK: Nonmutating convenience initializers and mutators
 
-extension Precedence {
+extension Nonmutating {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Precedence.self, from: data)
+        self = try newJSONDecoder().decode(Nonmutating.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9882,10 +9362,10 @@ extension Precedence {
     }
 
     func with(
-        precedencePrecedence: Int? = nil
-    ) -> Precedence {
-        return Precedence(
-            precedencePrecedence: precedencePrecedence ?? self.precedencePrecedence
+        nonmutatingNonmutating: Int? = nil
+    ) -> Nonmutating {
+        return Nonmutating(
+            nonmutatingNonmutating: nonmutatingNonmutating ?? self.nonmutatingNonmutating
         )
     }
 
@@ -9898,20 +9378,20 @@ extension Precedence {
     }
 }
 
-// MARK: - Prefix
-struct Prefix: Codable {
-    let prefixPrefix: Int
+// MARK: - NullClass
+struct NullClass: Codable {
+    let null: Int
 
     enum CodingKeys: String, CodingKey {
-        case prefixPrefix = "prefix"
+        case null = "null"
     }
 }
 
-// MARK: Prefix convenience initializers and mutators
+// MARK: NullClass convenience initializers and mutators
 
-extension Prefix {
+extension NullClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Prefix.self, from: data)
+        self = try newJSONDecoder().decode(NullClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9926,10 +9406,10 @@ extension Prefix {
     }
 
     func with(
-        prefixPrefix: Int? = nil
-    ) -> Prefix {
-        return Prefix(
-            prefixPrefix: prefixPrefix ?? self.prefixPrefix
+        null: Int? = nil
+    ) -> NullClass {
+        return NullClass(
+            null: null ?? self.null
         )
     }
 
@@ -9942,20 +9422,148 @@ extension Prefix {
     }
 }
 
-// MARK: - Private
-struct Private: Codable {
-    let privatePrivate: Int
+// MARK: - Obj4
+struct Obj4: Codable {
+    let dummy: Int
+    let nullptr: Nullptr
+    let number: Number
+    let obj4Open: Open
+    let obj4Operator: Operator
+    let obj4Optional: Optional
+    let obj4Override: Override
+    let obj4Postfix: Postfix
+    let obj4Precedence: Precedence
+    let obj4Prefix: Prefix
+    let obj4Private: Private
+    let obj4Protocol: ProtocolClass
+    let obj4Public: Public
+    let obj4Repeat: Repeat
+    let obj4Required: Required
+    let obj4Rethrows: Rethrows
+    let obj4Return: Return
+    let obj4Right: Right
+    let obj4Self: SelfClass
+    let obj4Set: Set
+    let obj4Static: Static
+    let object: Object
+    let objectMapper: ObjectMapper
+    let of: Of
+    let oneway: Oneway
+    let or: Or
+    let orEq: OrEq
+    let out: Out
+    let package: Package
+    let params: Params
+    let pass: Pass
+    let port: Port
+    let print: Print
+    let printMembers: PrintMembers
+    let printf: Printf
+    let protected: Protected
+    let purpleProtocol: Obj4Protocol
+    let purpleSelf: Obj4Self
+    let quicktype: Quicktype
+    let raise: Raise
+    let range: Range
+    let readonly: Readonly
+    let ref: Ref
+    let regExp: RegExp
+    let register: Register
+    let reinterpretCast: ReinterpretCast
+    let require: Require
+    let requires: Requires
+    let restrict: Restrict
+    let retain: Retain
+    let runtimeType: RuntimeType
+    let s: S
+    let sbyte: Sbyte
+    let sealed: Sealed
+    let sel: Sel
+    let select: Select
+    let serialize: Serialize
+    let serializerProvider: SerializerProvider
+    let short: Short
+    let signed: Signed
+    let simpleModule: SimpleModule
+    let sizeof: Sizeof
+    let stackalloc: Stackalloc
+    let standards: Standards
+    let staticAssert: StaticAssert
 
     enum CodingKeys: String, CodingKey {
-        case privatePrivate = "private"
+        case dummy = "dummy"
+        case nullptr = "nullptr"
+        case number = "number"
+        case obj4Open = "open"
+        case obj4Operator = "operator"
+        case obj4Optional = "optional"
+        case obj4Override = "override"
+        case obj4Postfix = "postfix"
+        case obj4Precedence = "precedence"
+        case obj4Prefix = "prefix"
+        case obj4Private = "private"
+        case obj4Protocol = "Protocol"
+        case obj4Public = "public"
+        case obj4Repeat = "repeat"
+        case obj4Required = "required"
+        case obj4Rethrows = "rethrows"
+        case obj4Return = "return"
+        case obj4Right = "right"
+        case obj4Self = "Self"
+        case obj4Set = "set"
+        case obj4Static = "static"
+        case object = "object"
+        case objectMapper = "ObjectMapper"
+        case of = "of"
+        case oneway = "oneway"
+        case or = "or"
+        case orEq = "or_eq"
+        case out = "out"
+        case package = "package"
+        case params = "params"
+        case pass = "pass"
+        case port = "port"
+        case print = "print"
+        case printMembers = "printMembers"
+        case printf = "printf"
+        case protected = "protected"
+        case purpleProtocol = "protocol"
+        case purpleSelf = "self"
+        case quicktype = "quicktype"
+        case raise = "raise"
+        case range = "range"
+        case readonly = "readonly"
+        case ref = "ref"
+        case regExp = "RegExp"
+        case register = "register"
+        case reinterpretCast = "reinterpret_cast"
+        case require = "require"
+        case requires = "requires"
+        case restrict = "restrict"
+        case retain = "retain"
+        case runtimeType = "runtimeType"
+        case s = "s"
+        case sbyte = "sbyte"
+        case sealed = "sealed"
+        case sel = "SEL"
+        case select = "select"
+        case serialize = "serialize"
+        case serializerProvider = "SerializerProvider"
+        case short = "short"
+        case signed = "signed"
+        case simpleModule = "SimpleModule"
+        case sizeof = "sizeof"
+        case stackalloc = "stackalloc"
+        case standards = "Standards"
+        case staticAssert = "static_assert"
     }
 }
 
-// MARK: Private convenience initializers and mutators
+// MARK: Obj4 convenience initializers and mutators
 
-extension Private {
+extension Obj4 {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Private.self, from: data)
+        self = try newJSONDecoder().decode(Obj4.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -9970,12 +9578,140 @@ extension Private {
     }
 
     func with(
-        privatePrivate: Int? = nil
-    ) -> Private {
-        return Private(
-            privatePrivate: privatePrivate ?? self.privatePrivate
-        )
-    }
+        dummy: Int? = nil,
+        nullptr: Nullptr? = nil,
+        number: Number? = nil,
+        obj4Open: Open? = nil,
+        obj4Operator: Operator? = nil,
+        obj4Optional: Optional? = nil,
+        obj4Override: Override? = nil,
+        obj4Postfix: Postfix? = nil,
+        obj4Precedence: Precedence? = nil,
+        obj4Prefix: Prefix? = nil,
+        obj4Private: Private? = nil,
+        obj4Protocol: ProtocolClass? = nil,
+        obj4Public: Public? = nil,
+        obj4Repeat: Repeat? = nil,
+        obj4Required: Required? = nil,
+        obj4Rethrows: Rethrows? = nil,
+        obj4Return: Return? = nil,
+        obj4Right: Right? = nil,
+        obj4Self: SelfClass? = nil,
+        obj4Set: Set? = nil,
+        obj4Static: Static? = nil,
+        object: Object? = nil,
+        objectMapper: ObjectMapper? = nil,
+        of: Of? = nil,
+        oneway: Oneway? = nil,
+        or: Or? = nil,
+        orEq: OrEq? = nil,
+        out: Out? = nil,
+        package: Package? = nil,
+        params: Params? = nil,
+        pass: Pass? = nil,
+        port: Port? = nil,
+        print: Print? = nil,
+        printMembers: PrintMembers? = nil,
+        printf: Printf? = nil,
+        protected: Protected? = nil,
+        purpleProtocol: Obj4Protocol? = nil,
+        purpleSelf: Obj4Self? = nil,
+        quicktype: Quicktype? = nil,
+        raise: Raise? = nil,
+        range: Range? = nil,
+        readonly: Readonly? = nil,
+        ref: Ref? = nil,
+        regExp: RegExp? = nil,
+        register: Register? = nil,
+        reinterpretCast: ReinterpretCast? = nil,
+        require: Require? = nil,
+        requires: Requires? = nil,
+        restrict: Restrict? = nil,
+        retain: Retain? = nil,
+        runtimeType: RuntimeType? = nil,
+        s: S? = nil,
+        sbyte: Sbyte? = nil,
+        sealed: Sealed? = nil,
+        sel: Sel? = nil,
+        select: Select? = nil,
+        serialize: Serialize? = nil,
+        serializerProvider: SerializerProvider? = nil,
+        short: Short? = nil,
+        signed: Signed? = nil,
+        simpleModule: SimpleModule? = nil,
+        sizeof: Sizeof? = nil,
+        stackalloc: Stackalloc? = nil,
+        standards: Standards? = nil,
+        staticAssert: StaticAssert? = nil
+    ) -> Obj4 {
+        return Obj4(
+            dummy: dummy ?? self.dummy,
+            nullptr: nullptr ?? self.nullptr,
+            number: number ?? self.number,
+            obj4Open: obj4Open ?? self.obj4Open,
+            obj4Operator: obj4Operator ?? self.obj4Operator,
+            obj4Optional: obj4Optional ?? self.obj4Optional,
+            obj4Override: obj4Override ?? self.obj4Override,
+            obj4Postfix: obj4Postfix ?? self.obj4Postfix,
+            obj4Precedence: obj4Precedence ?? self.obj4Precedence,
+            obj4Prefix: obj4Prefix ?? self.obj4Prefix,
+            obj4Private: obj4Private ?? self.obj4Private,
+            obj4Protocol: obj4Protocol ?? self.obj4Protocol,
+            obj4Public: obj4Public ?? self.obj4Public,
+            obj4Repeat: obj4Repeat ?? self.obj4Repeat,
+            obj4Required: obj4Required ?? self.obj4Required,
+            obj4Rethrows: obj4Rethrows ?? self.obj4Rethrows,
+            obj4Return: obj4Return ?? self.obj4Return,
+            obj4Right: obj4Right ?? self.obj4Right,
+            obj4Self: obj4Self ?? self.obj4Self,
+            obj4Set: obj4Set ?? self.obj4Set,
+            obj4Static: obj4Static ?? self.obj4Static,
+            object: object ?? self.object,
+            objectMapper: objectMapper ?? self.objectMapper,
+            of: of ?? self.of,
+            oneway: oneway ?? self.oneway,
+            or: or ?? self.or,
+            orEq: orEq ?? self.orEq,
+            out: out ?? self.out,
+            package: package ?? self.package,
+            params: params ?? self.params,
+            pass: pass ?? self.pass,
+            port: port ?? self.port,
+            print: print ?? self.print,
+            printMembers: printMembers ?? self.printMembers,
+            printf: printf ?? self.printf,
+            protected: protected ?? self.protected,
+            purpleProtocol: purpleProtocol ?? self.purpleProtocol,
+            purpleSelf: purpleSelf ?? self.purpleSelf,
+            quicktype: quicktype ?? self.quicktype,
+            raise: raise ?? self.raise,
+            range: range ?? self.range,
+            readonly: readonly ?? self.readonly,
+            ref: ref ?? self.ref,
+            regExp: regExp ?? self.regExp,
+            register: register ?? self.register,
+            reinterpretCast: reinterpretCast ?? self.reinterpretCast,
+            require: require ?? self.require,
+            requires: requires ?? self.requires,
+            restrict: restrict ?? self.restrict,
+            retain: retain ?? self.retain,
+            runtimeType: runtimeType ?? self.runtimeType,
+            s: s ?? self.s,
+            sbyte: sbyte ?? self.sbyte,
+            sealed: sealed ?? self.sealed,
+            sel: sel ?? self.sel,
+            select: select ?? self.select,
+            serialize: serialize ?? self.serialize,
+            serializerProvider: serializerProvider ?? self.serializerProvider,
+            short: short ?? self.short,
+            signed: signed ?? self.signed,
+            simpleModule: simpleModule ?? self.simpleModule,
+            sizeof: sizeof ?? self.sizeof,
+            stackalloc: stackalloc ?? self.stackalloc,
+            standards: standards ?? self.standards,
+            staticAssert: staticAssert ?? self.staticAssert
+        )
+    }
 
     func jsonData() throws -> Data {
         return try newJSONEncoder().encode(self)
@@ -9986,20 +9722,20 @@ extension Private {
     }
 }
 
-// MARK: - ProtocolClass
-struct ProtocolClass: Codable {
-    let protocolProtocol: Int
+// MARK: - Nullptr
+struct Nullptr: Codable {
+    let nullptr: Int
 
     enum CodingKeys: String, CodingKey {
-        case protocolProtocol = "Protocol"
+        case nullptr = "nullptr"
     }
 }
 
-// MARK: ProtocolClass convenience initializers and mutators
+// MARK: Nullptr convenience initializers and mutators
 
-extension ProtocolClass {
+extension Nullptr {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ProtocolClass.self, from: data)
+        self = try newJSONDecoder().decode(Nullptr.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10014,10 +9750,10 @@ extension ProtocolClass {
     }
 
     func with(
-        protocolProtocol: Int? = nil
-    ) -> ProtocolClass {
-        return ProtocolClass(
-            protocolProtocol: protocolProtocol ?? self.protocolProtocol
+        nullptr: Int? = nil
+    ) -> Nullptr {
+        return Nullptr(
+            nullptr: nullptr ?? self.nullptr
         )
     }
 
@@ -10030,20 +9766,20 @@ extension ProtocolClass {
     }
 }
 
-// MARK: - Object
-struct Object: Codable {
-    let object: Int
+// MARK: - Number
+struct Number: Codable {
+    let number: Int
 
     enum CodingKeys: String, CodingKey {
-        case object = "object"
+        case number = "number"
     }
 }
 
-// MARK: Object convenience initializers and mutators
+// MARK: Number convenience initializers and mutators
 
-extension Object {
+extension Number {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Object.self, from: data)
+        self = try newJSONDecoder().decode(Number.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10058,10 +9794,10 @@ extension Object {
     }
 
     func with(
-        object: Int? = nil
-    ) -> Object {
-        return Object(
-            object: object ?? self.object
+        number: Int? = nil
+    ) -> Number {
+        return Number(
+            number: number ?? self.number
         )
     }
 
@@ -10074,20 +9810,20 @@ extension Object {
     }
 }
 
-// MARK: - ObjectMapper
-struct ObjectMapper: Codable {
-    let objectMapper: Int
+// MARK: - Open
+struct Open: Codable {
+    let openOpen: Int
 
     enum CodingKeys: String, CodingKey {
-        case objectMapper = "ObjectMapper"
+        case openOpen = "open"
     }
 }
 
-// MARK: ObjectMapper convenience initializers and mutators
+// MARK: Open convenience initializers and mutators
 
-extension ObjectMapper {
+extension Open {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ObjectMapper.self, from: data)
+        self = try newJSONDecoder().decode(Open.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10102,10 +9838,10 @@ extension ObjectMapper {
     }
 
     func with(
-        objectMapper: Int? = nil
-    ) -> ObjectMapper {
-        return ObjectMapper(
-            objectMapper: objectMapper ?? self.objectMapper
+        openOpen: Int? = nil
+    ) -> Open {
+        return Open(
+            openOpen: openOpen ?? self.openOpen
         )
     }
 
@@ -10118,20 +9854,20 @@ extension ObjectMapper {
     }
 }
 
-// MARK: - Of
-struct Of: Codable {
-    let of: Int
+// MARK: - Operator
+struct Operator: Codable {
+    let operatorOperator: Int
 
     enum CodingKeys: String, CodingKey {
-        case of = "of"
+        case operatorOperator = "operator"
     }
 }
 
-// MARK: Of convenience initializers and mutators
+// MARK: Operator convenience initializers and mutators
 
-extension Of {
+extension Operator {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Of.self, from: data)
+        self = try newJSONDecoder().decode(Operator.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10146,10 +9882,10 @@ extension Of {
     }
 
     func with(
-        of: Int? = nil
-    ) -> Of {
-        return Of(
-            of: of ?? self.of
+        operatorOperator: Int? = nil
+    ) -> Operator {
+        return Operator(
+            operatorOperator: operatorOperator ?? self.operatorOperator
         )
     }
 
@@ -10162,20 +9898,20 @@ extension Of {
     }
 }
 
-// MARK: - Oneway
-struct Oneway: Codable {
-    let oneway: Int
+// MARK: - Optional
+struct Optional: Codable {
+    let optionalOptional: Int
 
     enum CodingKeys: String, CodingKey {
-        case oneway = "oneway"
+        case optionalOptional = "optional"
     }
 }
 
-// MARK: Oneway convenience initializers and mutators
+// MARK: Optional convenience initializers and mutators
 
-extension Oneway {
+extension Optional {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Oneway.self, from: data)
+        self = try newJSONDecoder().decode(Optional.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10190,10 +9926,10 @@ extension Oneway {
     }
 
     func with(
-        oneway: Int? = nil
-    ) -> Oneway {
-        return Oneway(
-            oneway: oneway ?? self.oneway
+        optionalOptional: Int? = nil
+    ) -> Optional {
+        return Optional(
+            optionalOptional: optionalOptional ?? self.optionalOptional
         )
     }
 
@@ -10206,20 +9942,20 @@ extension Oneway {
     }
 }
 
-// MARK: - Or
-struct Or: Codable {
-    let or: Int
+// MARK: - Override
+struct Override: Codable {
+    let overrideOverride: Int
 
     enum CodingKeys: String, CodingKey {
-        case or = "or"
+        case overrideOverride = "override"
     }
 }
 
-// MARK: Or convenience initializers and mutators
+// MARK: Override convenience initializers and mutators
 
-extension Or {
+extension Override {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Or.self, from: data)
+        self = try newJSONDecoder().decode(Override.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10234,10 +9970,10 @@ extension Or {
     }
 
     func with(
-        or: Int? = nil
-    ) -> Or {
-        return Or(
-            or: or ?? self.or
+        overrideOverride: Int? = nil
+    ) -> Override {
+        return Override(
+            overrideOverride: overrideOverride ?? self.overrideOverride
         )
     }
 
@@ -10250,20 +9986,20 @@ extension Or {
     }
 }
 
-// MARK: - OrEq
-struct OrEq: Codable {
-    let orEq: Int
+// MARK: - Postfix
+struct Postfix: Codable {
+    let postfixPostfix: Int
 
     enum CodingKeys: String, CodingKey {
-        case orEq = "or_eq"
+        case postfixPostfix = "postfix"
     }
 }
 
-// MARK: OrEq convenience initializers and mutators
+// MARK: Postfix convenience initializers and mutators
 
-extension OrEq {
+extension Postfix {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(OrEq.self, from: data)
+        self = try newJSONDecoder().decode(Postfix.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10278,10 +10014,10 @@ extension OrEq {
     }
 
     func with(
-        orEq: Int? = nil
-    ) -> OrEq {
-        return OrEq(
-            orEq: orEq ?? self.orEq
+        postfixPostfix: Int? = nil
+    ) -> Postfix {
+        return Postfix(
+            postfixPostfix: postfixPostfix ?? self.postfixPostfix
         )
     }
 
@@ -10294,20 +10030,20 @@ extension OrEq {
     }
 }
 
-// MARK: - Out
-struct Out: Codable {
-    let out: Int
+// MARK: - Precedence
+struct Precedence: Codable {
+    let precedencePrecedence: Int
 
     enum CodingKeys: String, CodingKey {
-        case out = "out"
+        case precedencePrecedence = "precedence"
     }
 }
 
-// MARK: Out convenience initializers and mutators
+// MARK: Precedence convenience initializers and mutators
 
-extension Out {
+extension Precedence {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Out.self, from: data)
+        self = try newJSONDecoder().decode(Precedence.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10322,10 +10058,10 @@ extension Out {
     }
 
     func with(
-        out: Int? = nil
-    ) -> Out {
-        return Out(
-            out: out ?? self.out
+        precedencePrecedence: Int? = nil
+    ) -> Precedence {
+        return Precedence(
+            precedencePrecedence: precedencePrecedence ?? self.precedencePrecedence
         )
     }
 
@@ -10338,20 +10074,20 @@ extension Out {
     }
 }
 
-// MARK: - Package
-struct Package: Codable {
-    let package: Int
+// MARK: - Prefix
+struct Prefix: Codable {
+    let prefixPrefix: Int
 
     enum CodingKeys: String, CodingKey {
-        case package = "package"
+        case prefixPrefix = "prefix"
     }
 }
 
-// MARK: Package convenience initializers and mutators
+// MARK: Prefix convenience initializers and mutators
 
-extension Package {
+extension Prefix {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Package.self, from: data)
+        self = try newJSONDecoder().decode(Prefix.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10366,10 +10102,10 @@ extension Package {
     }
 
     func with(
-        package: Int? = nil
-    ) -> Package {
-        return Package(
-            package: package ?? self.package
+        prefixPrefix: Int? = nil
+    ) -> Prefix {
+        return Prefix(
+            prefixPrefix: prefixPrefix ?? self.prefixPrefix
         )
     }
 
@@ -10382,20 +10118,20 @@ extension Package {
     }
 }
 
-// MARK: - Params
-struct Params: Codable {
-    let params: Int
+// MARK: - Private
+struct Private: Codable {
+    let privatePrivate: Int
 
     enum CodingKeys: String, CodingKey {
-        case params = "params"
+        case privatePrivate = "private"
     }
 }
 
-// MARK: Params convenience initializers and mutators
+// MARK: Private convenience initializers and mutators
 
-extension Params {
+extension Private {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Params.self, from: data)
+        self = try newJSONDecoder().decode(Private.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10410,10 +10146,10 @@ extension Params {
     }
 
     func with(
-        params: Int? = nil
-    ) -> Params {
-        return Params(
-            params: params ?? self.params
+        privatePrivate: Int? = nil
+    ) -> Private {
+        return Private(
+            privatePrivate: privatePrivate ?? self.privatePrivate
         )
     }
 
@@ -10426,20 +10162,20 @@ extension Params {
     }
 }
 
-// MARK: - Pass
-struct Pass: Codable {
-    let pass: Int
+// MARK: - ProtocolClass
+struct ProtocolClass: Codable {
+    let protocolProtocol: Int
 
     enum CodingKeys: String, CodingKey {
-        case pass = "pass"
+        case protocolProtocol = "Protocol"
     }
 }
 
-// MARK: Pass convenience initializers and mutators
+// MARK: ProtocolClass convenience initializers and mutators
 
-extension Pass {
+extension ProtocolClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Pass.self, from: data)
+        self = try newJSONDecoder().decode(ProtocolClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10454,10 +10190,10 @@ extension Pass {
     }
 
     func with(
-        pass: Int? = nil
-    ) -> Pass {
-        return Pass(
-            pass: pass ?? self.pass
+        protocolProtocol: Int? = nil
+    ) -> ProtocolClass {
+        return ProtocolClass(
+            protocolProtocol: protocolProtocol ?? self.protocolProtocol
         )
     }
 
@@ -10470,20 +10206,20 @@ extension Pass {
     }
 }
 
-// MARK: - Port
-struct Port: Codable {
-    let port: Int
+// MARK: - Public
+struct Public: Codable {
+    let publicPublic: Int
 
     enum CodingKeys: String, CodingKey {
-        case port = "port"
+        case publicPublic = "public"
     }
 }
 
-// MARK: Port convenience initializers and mutators
+// MARK: Public convenience initializers and mutators
 
-extension Port {
+extension Public {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Port.self, from: data)
+        self = try newJSONDecoder().decode(Public.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10498,10 +10234,10 @@ extension Port {
     }
 
     func with(
-        port: Int? = nil
-    ) -> Port {
-        return Port(
-            port: port ?? self.port
+        publicPublic: Int? = nil
+    ) -> Public {
+        return Public(
+            publicPublic: publicPublic ?? self.publicPublic
         )
     }
 
@@ -10514,20 +10250,20 @@ extension Port {
     }
 }
 
-// MARK: - Print
-struct Print: Codable {
-    let print: Int
+// MARK: - Repeat
+struct Repeat: Codable {
+    let repeatRepeat: Int
 
     enum CodingKeys: String, CodingKey {
-        case print = "print"
+        case repeatRepeat = "repeat"
     }
 }
 
-// MARK: Print convenience initializers and mutators
+// MARK: Repeat convenience initializers and mutators
 
-extension Print {
+extension Repeat {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Print.self, from: data)
+        self = try newJSONDecoder().decode(Repeat.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10542,10 +10278,10 @@ extension Print {
     }
 
     func with(
-        print: Int? = nil
-    ) -> Print {
-        return Print(
-            print: print ?? self.print
+        repeatRepeat: Int? = nil
+    ) -> Repeat {
+        return Repeat(
+            repeatRepeat: repeatRepeat ?? self.repeatRepeat
         )
     }
 
@@ -10558,20 +10294,20 @@ extension Print {
     }
 }
 
-// MARK: - PrintMembers
-struct PrintMembers: Codable {
-    let printMembers: Int
+// MARK: - Required
+struct Required: Codable {
+    let requiredRequired: Int
 
     enum CodingKeys: String, CodingKey {
-        case printMembers = "printMembers"
+        case requiredRequired = "required"
     }
 }
 
-// MARK: PrintMembers convenience initializers and mutators
+// MARK: Required convenience initializers and mutators
 
-extension PrintMembers {
+extension Required {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(PrintMembers.self, from: data)
+        self = try newJSONDecoder().decode(Required.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10586,10 +10322,10 @@ extension PrintMembers {
     }
 
     func with(
-        printMembers: Int? = nil
-    ) -> PrintMembers {
-        return PrintMembers(
-            printMembers: printMembers ?? self.printMembers
+        requiredRequired: Int? = nil
+    ) -> Required {
+        return Required(
+            requiredRequired: requiredRequired ?? self.requiredRequired
         )
     }
 
@@ -10602,20 +10338,20 @@ extension PrintMembers {
     }
 }
 
-// MARK: - Printf
-struct Printf: Codable {
-    let printf: Int
+// MARK: - Rethrows
+struct Rethrows: Codable {
+    let rethrowsRethrows: Int
 
     enum CodingKeys: String, CodingKey {
-        case printf = "printf"
+        case rethrowsRethrows = "rethrows"
     }
 }
 
-// MARK: Printf convenience initializers and mutators
+// MARK: Rethrows convenience initializers and mutators
 
-extension Printf {
+extension Rethrows {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Printf.self, from: data)
+        self = try newJSONDecoder().decode(Rethrows.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10630,10 +10366,10 @@ extension Printf {
     }
 
     func with(
-        printf: Int? = nil
-    ) -> Printf {
-        return Printf(
-            printf: printf ?? self.printf
+        rethrowsRethrows: Int? = nil
+    ) -> Rethrows {
+        return Rethrows(
+            rethrowsRethrows: rethrowsRethrows ?? self.rethrowsRethrows
         )
     }
 
@@ -10646,20 +10382,20 @@ extension Printf {
     }
 }
 
-// MARK: - Protected
-struct Protected: Codable {
-    let protected: Int
+// MARK: - Return
+struct Return: Codable {
+    let returnReturn: Int
 
     enum CodingKeys: String, CodingKey {
-        case protected = "protected"
+        case returnReturn = "return"
     }
 }
 
-// MARK: Protected convenience initializers and mutators
+// MARK: Return convenience initializers and mutators
 
-extension Protected {
+extension Return {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Protected.self, from: data)
+        self = try newJSONDecoder().decode(Return.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10674,10 +10410,10 @@ extension Protected {
     }
 
     func with(
-        protected: Int? = nil
-    ) -> Protected {
-        return Protected(
-            protected: protected ?? self.protected
+        returnReturn: Int? = nil
+    ) -> Return {
+        return Return(
+            returnReturn: returnReturn ?? self.returnReturn
         )
     }
 
@@ -10690,20 +10426,20 @@ extension Protected {
     }
 }
 
-// MARK: - Obj3Protocol
-struct Obj3Protocol: Codable {
-    let protocolProtocol: Int
+// MARK: - Right
+struct Right: Codable {
+    let rightRight: Int
 
     enum CodingKeys: String, CodingKey {
-        case protocolProtocol = "protocol"
+        case rightRight = "right"
     }
 }
 
-// MARK: Obj3Protocol convenience initializers and mutators
+// MARK: Right convenience initializers and mutators
 
-extension Obj3Protocol {
+extension Right {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj3Protocol.self, from: data)
+        self = try newJSONDecoder().decode(Right.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10718,10 +10454,10 @@ extension Obj3Protocol {
     }
 
     func with(
-        protocolProtocol: Int? = nil
-    ) -> Obj3Protocol {
-        return Obj3Protocol(
-            protocolProtocol: protocolProtocol ?? self.protocolProtocol
+        rightRight: Int? = nil
+    ) -> Right {
+        return Right(
+            rightRight: rightRight ?? self.rightRight
         )
     }
 
@@ -10734,20 +10470,20 @@ extension Obj3Protocol {
     }
 }
 
-// MARK: - SerializerProvider
-struct SerializerProvider: Codable {
-    let serializerProvider: Int
+// MARK: - SelfClass
+struct SelfClass: Codable {
+    let selfSelf: Int
 
     enum CodingKeys: String, CodingKey {
-        case serializerProvider = "SerializerProvider"
+        case selfSelf = "Self"
     }
 }
 
-// MARK: SerializerProvider convenience initializers and mutators
+// MARK: SelfClass convenience initializers and mutators
 
-extension SerializerProvider {
+extension SelfClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(SerializerProvider.self, from: data)
+        self = try newJSONDecoder().decode(SelfClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10762,10 +10498,10 @@ extension SerializerProvider {
     }
 
     func with(
-        serializerProvider: Int? = nil
-    ) -> SerializerProvider {
-        return SerializerProvider(
-            serializerProvider: serializerProvider ?? self.serializerProvider
+        selfSelf: Int? = nil
+    ) -> SelfClass {
+        return SelfClass(
+            selfSelf: selfSelf ?? self.selfSelf
         )
     }
 
@@ -10778,20 +10514,20 @@ extension SerializerProvider {
     }
 }
 
-// MARK: - SimpleModule
-struct SimpleModule: Codable {
-    let simpleModule: Int
+// MARK: - Set
+struct Set: Codable {
+    let setSet: Int
 
     enum CodingKeys: String, CodingKey {
-        case simpleModule = "SimpleModule"
+        case setSet = "set"
     }
 }
 
-// MARK: SimpleModule convenience initializers and mutators
+// MARK: Set convenience initializers and mutators
 
-extension SimpleModule {
+extension Set {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(SimpleModule.self, from: data)
+        self = try newJSONDecoder().decode(Set.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10806,10 +10542,10 @@ extension SimpleModule {
     }
 
     func with(
-        simpleModule: Int? = nil
-    ) -> SimpleModule {
-        return SimpleModule(
-            simpleModule: simpleModule ?? self.simpleModule
+        setSet: Int? = nil
+    ) -> Set {
+        return Set(
+            setSet: setSet ?? self.setSet
         )
     }
 
@@ -10822,20 +10558,20 @@ extension SimpleModule {
     }
 }
 
-// MARK: - StdDeserializer
-struct StdDeserializer: Codable {
-    let stdDeserializer: Int
+// MARK: - Static
+struct Static: Codable {
+    let staticStatic: Int
 
     enum CodingKeys: String, CodingKey {
-        case stdDeserializer = "StdDeserializer"
+        case staticStatic = "static"
     }
 }
 
-// MARK: StdDeserializer convenience initializers and mutators
+// MARK: Static convenience initializers and mutators
 
-extension StdDeserializer {
+extension Static {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StdDeserializer.self, from: data)
+        self = try newJSONDecoder().decode(Static.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10850,10 +10586,10 @@ extension StdDeserializer {
     }
 
     func with(
-        stdDeserializer: Int? = nil
-    ) -> StdDeserializer {
-        return StdDeserializer(
-            stdDeserializer: stdDeserializer ?? self.stdDeserializer
+        staticStatic: Int? = nil
+    ) -> Static {
+        return Static(
+            staticStatic: staticStatic ?? self.staticStatic
         )
     }
 
@@ -10866,20 +10602,20 @@ extension StdDeserializer {
     }
 }
 
-// MARK: - StdSerializer
-struct StdSerializer: Codable {
-    let stdSerializer: Int
+// MARK: - Object
+struct Object: Codable {
+    let object: Int
 
     enum CodingKeys: String, CodingKey {
-        case stdSerializer = "StdSerializer"
+        case object = "object"
     }
 }
 
-// MARK: StdSerializer convenience initializers and mutators
+// MARK: Object convenience initializers and mutators
 
-extension StdSerializer {
+extension Object {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StdSerializer.self, from: data)
+        self = try newJSONDecoder().decode(Object.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10894,10 +10630,10 @@ extension StdSerializer {
     }
 
     func with(
-        stdSerializer: Int? = nil
-    ) -> StdSerializer {
-        return StdSerializer(
-            stdSerializer: stdSerializer ?? self.stdSerializer
+        object: Int? = nil
+    ) -> Object {
+        return Object(
+            object: object ?? self.object
         )
     }
 
@@ -10910,162 +10646,20 @@ extension StdSerializer {
     }
 }
 
-// MARK: - Obj4
-struct Obj4: Codable {
-    let dummy: Int
-    let obj4Public: Public
-    let obj4Repeat: Repeat
-    let obj4Required: Required
-    let obj4Rethrows: Rethrows
-    let obj4Return: Return
-    let obj4Right: Right
-    let obj4Self: SelfClass
-    let obj4Set: Set
-    let obj4Static: Static
-    let obj4Struct: Struct
-    let obj4Subscript: Subscript
-    let obj4Super: Super
-    let obj4Switch: Switch
-    let obj4Throw: Throw
-    let obj4Throws: Throws
-    let obj4True: True
-    let obj4Try: Try
-    let obj4Type: Obj4Type
-    let obj4Typealias: Typealias
-    let purpleSelf: Obj4Self
-    let purpleTrue: TrueClass
-    let quicktype: Quicktype
-    let raise: Raise
-    let range: Range
-    let readonly: Readonly
-    let ref: Ref
-    let regExp: RegExp
-    let register: Register
-    let reinterpretCast: ReinterpretCast
-    let require: Require
-    let requires: Requires
-    let restrict: Restrict
-    let retain: Retain
-    let runtimeType: RuntimeType
-    let s: S
-    let sbyte: Sbyte
-    let sealed: Sealed
-    let sel: Sel
-    let select: Select
-    let serialize: Serialize
-    let short: Short
-    let signed: Signed
-    let sizeof: Sizeof
-    let stackalloc: Stackalloc
-    let standards: Standards
-    let staticAssert: StaticAssert
-    let staticCast: StaticCast
-    let strictfp: Strictfp
-    let string: StringClass
-    let symbol: Symbol
-    let synchronized: Synchronized
-    let system: System
-    let template: Template
-    let then: Then
-    let this: This
-    let threadLocal: ThreadLocal
-    let timeOnly: TimeOnly
-    let timeOnlyConverter: TimeOnlyConverter
-    let toJSON: ToJSON
-    let toString: ToString
-    let topLevel: TopLevelClass
-    let transient: Transient
-    let type: TypeClass
-    let typedef: Typedef
-    let typeid: Typeid
-    let typename: Typename
-    let typeof: Typeof
-    let uint: Uint
-    let ulong: Ulong
-    let unchecked: Unchecked
-    let undefined: Undefined
+// MARK: - ObjectMapper
+struct ObjectMapper: Codable {
+    let objectMapper: Int
 
     enum CodingKeys: String, CodingKey {
-        case dummy = "dummy"
-        case obj4Public = "public"
-        case obj4Repeat = "repeat"
-        case obj4Required = "required"
-        case obj4Rethrows = "rethrows"
-        case obj4Return = "return"
-        case obj4Right = "right"
-        case obj4Self = "Self"
-        case obj4Set = "set"
-        case obj4Static = "static"
-        case obj4Struct = "struct"
-        case obj4Subscript = "subscript"
-        case obj4Super = "super"
-        case obj4Switch = "switch"
-        case obj4Throw = "throw"
-        case obj4Throws = "throws"
-        case obj4True = "True"
-        case obj4Try = "try"
-        case obj4Type = "type"
-        case obj4Typealias = "typealias"
-        case purpleSelf = "self"
-        case purpleTrue = "true"
-        case quicktype = "quicktype"
-        case raise = "raise"
-        case range = "range"
-        case readonly = "readonly"
-        case ref = "ref"
-        case regExp = "RegExp"
-        case register = "register"
-        case reinterpretCast = "reinterpret_cast"
-        case require = "require"
-        case requires = "requires"
-        case restrict = "restrict"
-        case retain = "retain"
-        case runtimeType = "runtimeType"
-        case s = "s"
-        case sbyte = "sbyte"
-        case sealed = "sealed"
-        case sel = "SEL"
-        case select = "select"
-        case serialize = "serialize"
-        case short = "short"
-        case signed = "signed"
-        case sizeof = "sizeof"
-        case stackalloc = "stackalloc"
-        case standards = "Standards"
-        case staticAssert = "static_assert"
-        case staticCast = "static_cast"
-        case strictfp = "strictfp"
-        case string = "string"
-        case symbol = "symbol"
-        case synchronized = "synchronized"
-        case system = "system"
-        case template = "template"
-        case then = "then"
-        case this = "this"
-        case threadLocal = "thread_local"
-        case timeOnly = "TimeOnly"
-        case timeOnlyConverter = "TimeOnlyConverter"
-        case toJSON = "to_json"
-        case toString = "toString"
-        case topLevel = "top_level"
-        case transient = "transient"
-        case type = "Type"
-        case typedef = "typedef"
-        case typeid = "typeid"
-        case typename = "typename"
-        case typeof = "typeof"
-        case uint = "uint"
-        case ulong = "ulong"
-        case unchecked = "unchecked"
-        case undefined = "undefined"
+        case objectMapper = "ObjectMapper"
     }
 }
 
-// MARK: Obj4 convenience initializers and mutators
+// MARK: ObjectMapper convenience initializers and mutators
 
-extension Obj4 {
+extension ObjectMapper {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj4.self, from: data)
+        self = try newJSONDecoder().decode(ObjectMapper.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11080,152 +10674,362 @@ extension Obj4 {
     }
 
     func with(
-        dummy: Int? = nil,
-        obj4Public: Public? = nil,
-        obj4Repeat: Repeat? = nil,
-        obj4Required: Required? = nil,
-        obj4Rethrows: Rethrows? = nil,
-        obj4Return: Return? = nil,
-        obj4Right: Right? = nil,
-        obj4Self: SelfClass? = nil,
-        obj4Set: Set? = nil,
-        obj4Static: Static? = nil,
-        obj4Struct: Struct? = nil,
-        obj4Subscript: Subscript? = nil,
-        obj4Super: Super? = nil,
-        obj4Switch: Switch? = nil,
-        obj4Throw: Throw? = nil,
-        obj4Throws: Throws? = nil,
-        obj4True: True? = nil,
-        obj4Try: Try? = nil,
-        obj4Type: Obj4Type? = nil,
-        obj4Typealias: Typealias? = nil,
-        purpleSelf: Obj4Self? = nil,
-        purpleTrue: TrueClass? = nil,
-        quicktype: Quicktype? = nil,
-        raise: Raise? = nil,
-        range: Range? = nil,
-        readonly: Readonly? = nil,
-        ref: Ref? = nil,
-        regExp: RegExp? = nil,
-        register: Register? = nil,
-        reinterpretCast: ReinterpretCast? = nil,
-        require: Require? = nil,
-        requires: Requires? = nil,
-        restrict: Restrict? = nil,
-        retain: Retain? = nil,
-        runtimeType: RuntimeType? = nil,
-        s: S? = nil,
-        sbyte: Sbyte? = nil,
-        sealed: Sealed? = nil,
-        sel: Sel? = nil,
-        select: Select? = nil,
-        serialize: Serialize? = nil,
-        short: Short? = nil,
-        signed: Signed? = nil,
-        sizeof: Sizeof? = nil,
-        stackalloc: Stackalloc? = nil,
-        standards: Standards? = nil,
-        staticAssert: StaticAssert? = nil,
-        staticCast: StaticCast? = nil,
-        strictfp: Strictfp? = nil,
-        string: StringClass? = nil,
-        symbol: Symbol? = nil,
-        synchronized: Synchronized? = nil,
-        system: System? = nil,
-        template: Template? = nil,
-        then: Then? = nil,
-        this: This? = nil,
-        threadLocal: ThreadLocal? = nil,
-        timeOnly: TimeOnly? = nil,
-        timeOnlyConverter: TimeOnlyConverter? = nil,
-        toJSON: ToJSON? = nil,
-        toString: ToString? = nil,
-        topLevel: TopLevelClass? = nil,
-        transient: Transient? = nil,
-        type: TypeClass? = nil,
-        typedef: Typedef? = nil,
-        typeid: Typeid? = nil,
-        typename: Typename? = nil,
-        typeof: Typeof? = nil,
-        uint: Uint? = nil,
-        ulong: Ulong? = nil,
-        unchecked: Unchecked? = nil,
-        undefined: Undefined? = nil
-    ) -> Obj4 {
-        return Obj4(
-            dummy: dummy ?? self.dummy,
-            obj4Public: obj4Public ?? self.obj4Public,
-            obj4Repeat: obj4Repeat ?? self.obj4Repeat,
-            obj4Required: obj4Required ?? self.obj4Required,
-            obj4Rethrows: obj4Rethrows ?? self.obj4Rethrows,
-            obj4Return: obj4Return ?? self.obj4Return,
-            obj4Right: obj4Right ?? self.obj4Right,
-            obj4Self: obj4Self ?? self.obj4Self,
-            obj4Set: obj4Set ?? self.obj4Set,
-            obj4Static: obj4Static ?? self.obj4Static,
-            obj4Struct: obj4Struct ?? self.obj4Struct,
-            obj4Subscript: obj4Subscript ?? self.obj4Subscript,
-            obj4Super: obj4Super ?? self.obj4Super,
-            obj4Switch: obj4Switch ?? self.obj4Switch,
-            obj4Throw: obj4Throw ?? self.obj4Throw,
-            obj4Throws: obj4Throws ?? self.obj4Throws,
-            obj4True: obj4True ?? self.obj4True,
-            obj4Try: obj4Try ?? self.obj4Try,
-            obj4Type: obj4Type ?? self.obj4Type,
-            obj4Typealias: obj4Typealias ?? self.obj4Typealias,
-            purpleSelf: purpleSelf ?? self.purpleSelf,
-            purpleTrue: purpleTrue ?? self.purpleTrue,
-            quicktype: quicktype ?? self.quicktype,
-            raise: raise ?? self.raise,
-            range: range ?? self.range,
-            readonly: readonly ?? self.readonly,
-            ref: ref ?? self.ref,
-            regExp: regExp ?? self.regExp,
-            register: register ?? self.register,
-            reinterpretCast: reinterpretCast ?? self.reinterpretCast,
-            require: require ?? self.require,
-            requires: requires ?? self.requires,
-            restrict: restrict ?? self.restrict,
-            retain: retain ?? self.retain,
-            runtimeType: runtimeType ?? self.runtimeType,
-            s: s ?? self.s,
-            sbyte: sbyte ?? self.sbyte,
-            sealed: sealed ?? self.sealed,
-            sel: sel ?? self.sel,
-            select: select ?? self.select,
-            serialize: serialize ?? self.serialize,
-            short: short ?? self.short,
-            signed: signed ?? self.signed,
-            sizeof: sizeof ?? self.sizeof,
-            stackalloc: stackalloc ?? self.stackalloc,
-            standards: standards ?? self.standards,
-            staticAssert: staticAssert ?? self.staticAssert,
-            staticCast: staticCast ?? self.staticCast,
-            strictfp: strictfp ?? self.strictfp,
-            string: string ?? self.string,
-            symbol: symbol ?? self.symbol,
-            synchronized: synchronized ?? self.synchronized,
-            system: system ?? self.system,
-            template: template ?? self.template,
-            then: then ?? self.then,
-            this: this ?? self.this,
-            threadLocal: threadLocal ?? self.threadLocal,
-            timeOnly: timeOnly ?? self.timeOnly,
-            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter,
-            toJSON: toJSON ?? self.toJSON,
-            toString: toString ?? self.toString,
-            topLevel: topLevel ?? self.topLevel,
-            transient: transient ?? self.transient,
-            type: type ?? self.type,
-            typedef: typedef ?? self.typedef,
-            typeid: typeid ?? self.typeid,
-            typename: typename ?? self.typename,
-            typeof: typeof ?? self.typeof,
-            uint: uint ?? self.uint,
-            ulong: ulong ?? self.ulong,
-            unchecked: unchecked ?? self.unchecked,
-            undefined: undefined ?? self.undefined
+        objectMapper: Int? = nil
+    ) -> ObjectMapper {
+        return ObjectMapper(
+            objectMapper: objectMapper ?? self.objectMapper
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Of
+struct Of: Codable {
+    let of: Int
+
+    enum CodingKeys: String, CodingKey {
+        case of = "of"
+    }
+}
+
+// MARK: Of convenience initializers and mutators
+
+extension Of {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Of.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        of: Int? = nil
+    ) -> Of {
+        return Of(
+            of: of ?? self.of
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Oneway
+struct Oneway: Codable {
+    let oneway: Int
+
+    enum CodingKeys: String, CodingKey {
+        case oneway = "oneway"
+    }
+}
+
+// MARK: Oneway convenience initializers and mutators
+
+extension Oneway {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Oneway.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        oneway: Int? = nil
+    ) -> Oneway {
+        return Oneway(
+            oneway: oneway ?? self.oneway
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Or
+struct Or: Codable {
+    let or: Int
+
+    enum CodingKeys: String, CodingKey {
+        case or = "or"
+    }
+}
+
+// MARK: Or convenience initializers and mutators
+
+extension Or {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Or.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        or: Int? = nil
+    ) -> Or {
+        return Or(
+            or: or ?? self.or
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - OrEq
+struct OrEq: Codable {
+    let orEq: Int
+
+    enum CodingKeys: String, CodingKey {
+        case orEq = "or_eq"
+    }
+}
+
+// MARK: OrEq convenience initializers and mutators
+
+extension OrEq {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(OrEq.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        orEq: Int? = nil
+    ) -> OrEq {
+        return OrEq(
+            orEq: orEq ?? self.orEq
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Out
+struct Out: Codable {
+    let out: Int
+
+    enum CodingKeys: String, CodingKey {
+        case out = "out"
+    }
+}
+
+// MARK: Out convenience initializers and mutators
+
+extension Out {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Out.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        out: Int? = nil
+    ) -> Out {
+        return Out(
+            out: out ?? self.out
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Package
+struct Package: Codable {
+    let package: Int
+
+    enum CodingKeys: String, CodingKey {
+        case package = "package"
+    }
+}
+
+// MARK: Package convenience initializers and mutators
+
+extension Package {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Package.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        package: Int? = nil
+    ) -> Package {
+        return Package(
+            package: package ?? self.package
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Params
+struct Params: Codable {
+    let params: Int
+
+    enum CodingKeys: String, CodingKey {
+        case params = "params"
+    }
+}
+
+// MARK: Params convenience initializers and mutators
+
+extension Params {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Params.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        params: Int? = nil
+    ) -> Params {
+        return Params(
+            params: params ?? self.params
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Pass
+struct Pass: Codable {
+    let pass: Int
+
+    enum CodingKeys: String, CodingKey {
+        case pass = "pass"
+    }
+}
+
+// MARK: Pass convenience initializers and mutators
+
+extension Pass {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Pass.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        pass: Int? = nil
+    ) -> Pass {
+        return Pass(
+            pass: pass ?? self.pass
         )
     }
 
@@ -11238,20 +11042,20 @@ extension Obj4 {
     }
 }
 
-// MARK: - Public
-struct Public: Codable {
-    let publicPublic: Int
+// MARK: - Port
+struct Port: Codable {
+    let port: Int
 
     enum CodingKeys: String, CodingKey {
-        case publicPublic = "public"
+        case port = "port"
     }
 }
 
-// MARK: Public convenience initializers and mutators
+// MARK: Port convenience initializers and mutators
 
-extension Public {
+extension Port {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Public.self, from: data)
+        self = try newJSONDecoder().decode(Port.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11266,10 +11070,10 @@ extension Public {
     }
 
     func with(
-        publicPublic: Int? = nil
-    ) -> Public {
-        return Public(
-            publicPublic: publicPublic ?? self.publicPublic
+        port: Int? = nil
+    ) -> Port {
+        return Port(
+            port: port ?? self.port
         )
     }
 
@@ -11282,20 +11086,20 @@ extension Public {
     }
 }
 
-// MARK: - Repeat
-struct Repeat: Codable {
-    let repeatRepeat: Int
+// MARK: - Print
+struct Print: Codable {
+    let print: Int
 
     enum CodingKeys: String, CodingKey {
-        case repeatRepeat = "repeat"
+        case print = "print"
     }
 }
 
-// MARK: Repeat convenience initializers and mutators
+// MARK: Print convenience initializers and mutators
 
-extension Repeat {
+extension Print {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Repeat.self, from: data)
+        self = try newJSONDecoder().decode(Print.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11310,10 +11114,10 @@ extension Repeat {
     }
 
     func with(
-        repeatRepeat: Int? = nil
-    ) -> Repeat {
-        return Repeat(
-            repeatRepeat: repeatRepeat ?? self.repeatRepeat
+        print: Int? = nil
+    ) -> Print {
+        return Print(
+            print: print ?? self.print
         )
     }
 
@@ -11326,20 +11130,20 @@ extension Repeat {
     }
 }
 
-// MARK: - Required
-struct Required: Codable {
-    let requiredRequired: Int
+// MARK: - PrintMembers
+struct PrintMembers: Codable {
+    let printMembers: Int
 
     enum CodingKeys: String, CodingKey {
-        case requiredRequired = "required"
+        case printMembers = "printMembers"
     }
 }
 
-// MARK: Required convenience initializers and mutators
+// MARK: PrintMembers convenience initializers and mutators
 
-extension Required {
+extension PrintMembers {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Required.self, from: data)
+        self = try newJSONDecoder().decode(PrintMembers.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11354,10 +11158,10 @@ extension Required {
     }
 
     func with(
-        requiredRequired: Int? = nil
-    ) -> Required {
-        return Required(
-            requiredRequired: requiredRequired ?? self.requiredRequired
+        printMembers: Int? = nil
+    ) -> PrintMembers {
+        return PrintMembers(
+            printMembers: printMembers ?? self.printMembers
         )
     }
 
@@ -11370,20 +11174,20 @@ extension Required {
     }
 }
 
-// MARK: - Rethrows
-struct Rethrows: Codable {
-    let rethrowsRethrows: Int
+// MARK: - Printf
+struct Printf: Codable {
+    let printf: Int
 
     enum CodingKeys: String, CodingKey {
-        case rethrowsRethrows = "rethrows"
+        case printf = "printf"
     }
 }
 
-// MARK: Rethrows convenience initializers and mutators
+// MARK: Printf convenience initializers and mutators
 
-extension Rethrows {
+extension Printf {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Rethrows.self, from: data)
+        self = try newJSONDecoder().decode(Printf.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11398,10 +11202,10 @@ extension Rethrows {
     }
 
     func with(
-        rethrowsRethrows: Int? = nil
-    ) -> Rethrows {
-        return Rethrows(
-            rethrowsRethrows: rethrowsRethrows ?? self.rethrowsRethrows
+        printf: Int? = nil
+    ) -> Printf {
+        return Printf(
+            printf: printf ?? self.printf
         )
     }
 
@@ -11414,20 +11218,20 @@ extension Rethrows {
     }
 }
 
-// MARK: - Return
-struct Return: Codable {
-    let returnReturn: Int
+// MARK: - Protected
+struct Protected: Codable {
+    let protected: Int
 
     enum CodingKeys: String, CodingKey {
-        case returnReturn = "return"
+        case protected = "protected"
     }
 }
 
-// MARK: Return convenience initializers and mutators
+// MARK: Protected convenience initializers and mutators
 
-extension Return {
+extension Protected {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Return.self, from: data)
+        self = try newJSONDecoder().decode(Protected.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11442,10 +11246,10 @@ extension Return {
     }
 
     func with(
-        returnReturn: Int? = nil
-    ) -> Return {
-        return Return(
-            returnReturn: returnReturn ?? self.returnReturn
+        protected: Int? = nil
+    ) -> Protected {
+        return Protected(
+            protected: protected ?? self.protected
         )
     }
 
@@ -11458,20 +11262,20 @@ extension Return {
     }
 }
 
-// MARK: - Right
-struct Right: Codable {
-    let rightRight: Int
+// MARK: - Obj4Protocol
+struct Obj4Protocol: Codable {
+    let protocolProtocol: Int
 
     enum CodingKeys: String, CodingKey {
-        case rightRight = "right"
+        case protocolProtocol = "protocol"
     }
 }
 
-// MARK: Right convenience initializers and mutators
+// MARK: Obj4Protocol convenience initializers and mutators
 
-extension Right {
+extension Obj4Protocol {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Right.self, from: data)
+        self = try newJSONDecoder().decode(Obj4Protocol.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11486,10 +11290,10 @@ extension Right {
     }
 
     func with(
-        rightRight: Int? = nil
-    ) -> Right {
-        return Right(
-            rightRight: rightRight ?? self.rightRight
+        protocolProtocol: Int? = nil
+    ) -> Obj4Protocol {
+        return Obj4Protocol(
+            protocolProtocol: protocolProtocol ?? self.protocolProtocol
         )
     }
 
@@ -11502,20 +11306,20 @@ extension Right {
     }
 }
 
-// MARK: - SelfClass
-struct SelfClass: Codable {
+// MARK: - Obj4Self
+struct Obj4Self: Codable {
     let selfSelf: Int
 
     enum CodingKeys: String, CodingKey {
-        case selfSelf = "Self"
+        case selfSelf = "self"
     }
 }
 
-// MARK: SelfClass convenience initializers and mutators
+// MARK: Obj4Self convenience initializers and mutators
 
-extension SelfClass {
+extension Obj4Self {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(SelfClass.self, from: data)
+        self = try newJSONDecoder().decode(Obj4Self.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11531,8 +11335,8 @@ extension SelfClass {
 
     func with(
         selfSelf: Int? = nil
-    ) -> SelfClass {
-        return SelfClass(
+    ) -> Obj4Self {
+        return Obj4Self(
             selfSelf: selfSelf ?? self.selfSelf
         )
     }
@@ -11546,20 +11350,20 @@ extension SelfClass {
     }
 }
 
-// MARK: - Set
-struct Set: Codable {
-    let setSet: Int
+// MARK: - Quicktype
+struct Quicktype: Codable {
+    let quicktype: Int
 
     enum CodingKeys: String, CodingKey {
-        case setSet = "set"
+        case quicktype = "quicktype"
     }
 }
 
-// MARK: Set convenience initializers and mutators
+// MARK: Quicktype convenience initializers and mutators
 
-extension Set {
+extension Quicktype {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Set.self, from: data)
+        self = try newJSONDecoder().decode(Quicktype.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11574,10 +11378,10 @@ extension Set {
     }
 
     func with(
-        setSet: Int? = nil
-    ) -> Set {
-        return Set(
-            setSet: setSet ?? self.setSet
+        quicktype: Int? = nil
+    ) -> Quicktype {
+        return Quicktype(
+            quicktype: quicktype ?? self.quicktype
         )
     }
 
@@ -11590,20 +11394,20 @@ extension Set {
     }
 }
 
-// MARK: - Static
-struct Static: Codable {
-    let staticStatic: Int
+// MARK: - Raise
+struct Raise: Codable {
+    let raise: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticStatic = "static"
+        case raise = "raise"
     }
 }
 
-// MARK: Static convenience initializers and mutators
+// MARK: Raise convenience initializers and mutators
 
-extension Static {
+extension Raise {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Static.self, from: data)
+        self = try newJSONDecoder().decode(Raise.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11618,10 +11422,10 @@ extension Static {
     }
 
     func with(
-        staticStatic: Int? = nil
-    ) -> Static {
-        return Static(
-            staticStatic: staticStatic ?? self.staticStatic
+        raise: Int? = nil
+    ) -> Raise {
+        return Raise(
+            raise: raise ?? self.raise
         )
     }
 
@@ -11634,20 +11438,64 @@ extension Static {
     }
 }
 
-// MARK: - Struct
-struct Struct: Codable {
-    let structStruct: Int
+// MARK: - Range
+struct Range: Codable {
+    let range: Int
+
+    enum CodingKeys: String, CodingKey {
+        case range = "range"
+    }
+}
+
+// MARK: Range convenience initializers and mutators
+
+extension Range {
+    init(data: Data) throws {
+        self = try newJSONDecoder().decode(Range.self, from: data)
+    }
+
+    init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        range: Int? = nil
+    ) -> Range {
+        return Range(
+            range: range ?? self.range
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Readonly
+struct Readonly: Codable {
+    let readonly: Int
 
     enum CodingKeys: String, CodingKey {
-        case structStruct = "struct"
+        case readonly = "readonly"
     }
 }
 
-// MARK: Struct convenience initializers and mutators
+// MARK: Readonly convenience initializers and mutators
 
-extension Struct {
+extension Readonly {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Struct.self, from: data)
+        self = try newJSONDecoder().decode(Readonly.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11662,10 +11510,10 @@ extension Struct {
     }
 
     func with(
-        structStruct: Int? = nil
-    ) -> Struct {
-        return Struct(
-            structStruct: structStruct ?? self.structStruct
+        readonly: Int? = nil
+    ) -> Readonly {
+        return Readonly(
+            readonly: readonly ?? self.readonly
         )
     }
 
@@ -11678,20 +11526,20 @@ extension Struct {
     }
 }
 
-// MARK: - Subscript
-struct Subscript: Codable {
-    let subscriptSubscript: Int
+// MARK: - Ref
+struct Ref: Codable {
+    let ref: Int
 
     enum CodingKeys: String, CodingKey {
-        case subscriptSubscript = "subscript"
+        case ref = "ref"
     }
 }
 
-// MARK: Subscript convenience initializers and mutators
+// MARK: Ref convenience initializers and mutators
 
-extension Subscript {
+extension Ref {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Subscript.self, from: data)
+        self = try newJSONDecoder().decode(Ref.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11706,10 +11554,10 @@ extension Subscript {
     }
 
     func with(
-        subscriptSubscript: Int? = nil
-    ) -> Subscript {
-        return Subscript(
-            subscriptSubscript: subscriptSubscript ?? self.subscriptSubscript
+        ref: Int? = nil
+    ) -> Ref {
+        return Ref(
+            ref: ref ?? self.ref
         )
     }
 
@@ -11722,20 +11570,20 @@ extension Subscript {
     }
 }
 
-// MARK: - Super
-struct Super: Codable {
-    let superSuper: Int
+// MARK: - RegExp
+struct RegExp: Codable {
+    let regExp: UUID
 
     enum CodingKeys: String, CodingKey {
-        case superSuper = "super"
+        case regExp = "RegExp"
     }
 }
 
-// MARK: Super convenience initializers and mutators
+// MARK: RegExp convenience initializers and mutators
 
-extension Super {
+extension RegExp {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Super.self, from: data)
+        self = try newJSONDecoder().decode(RegExp.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11750,10 +11598,10 @@ extension Super {
     }
 
     func with(
-        superSuper: Int? = nil
-    ) -> Super {
-        return Super(
-            superSuper: superSuper ?? self.superSuper
+        regExp: UUID? = nil
+    ) -> RegExp {
+        return RegExp(
+            regExp: regExp ?? self.regExp
         )
     }
 
@@ -11766,20 +11614,20 @@ extension Super {
     }
 }
 
-// MARK: - Switch
-struct Switch: Codable {
-    let switchSwitch: Int
+// MARK: - Register
+struct Register: Codable {
+    let register: Int
 
     enum CodingKeys: String, CodingKey {
-        case switchSwitch = "switch"
+        case register = "register"
     }
 }
 
-// MARK: Switch convenience initializers and mutators
+// MARK: Register convenience initializers and mutators
 
-extension Switch {
+extension Register {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Switch.self, from: data)
+        self = try newJSONDecoder().decode(Register.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11794,10 +11642,10 @@ extension Switch {
     }
 
     func with(
-        switchSwitch: Int? = nil
-    ) -> Switch {
-        return Switch(
-            switchSwitch: switchSwitch ?? self.switchSwitch
+        register: Int? = nil
+    ) -> Register {
+        return Register(
+            register: register ?? self.register
         )
     }
 
@@ -11810,20 +11658,20 @@ extension Switch {
     }
 }
 
-// MARK: - Throw
-struct Throw: Codable {
-    let throwThrow: Int
+// MARK: - ReinterpretCast
+struct ReinterpretCast: Codable {
+    let reinterpretCast: Int
 
     enum CodingKeys: String, CodingKey {
-        case throwThrow = "throw"
+        case reinterpretCast = "reinterpret_cast"
     }
 }
 
-// MARK: Throw convenience initializers and mutators
+// MARK: ReinterpretCast convenience initializers and mutators
 
-extension Throw {
+extension ReinterpretCast {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Throw.self, from: data)
+        self = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11838,10 +11686,10 @@ extension Throw {
     }
 
     func with(
-        throwThrow: Int? = nil
-    ) -> Throw {
-        return Throw(
-            throwThrow: throwThrow ?? self.throwThrow
+        reinterpretCast: Int? = nil
+    ) -> ReinterpretCast {
+        return ReinterpretCast(
+            reinterpretCast: reinterpretCast ?? self.reinterpretCast
         )
     }
 
@@ -11854,20 +11702,20 @@ extension Throw {
     }
 }
 
-// MARK: - Throws
-struct Throws: Codable {
-    let throwsThrows: Int
+// MARK: - Require
+struct Require: Codable {
+    let require: Int
 
     enum CodingKeys: String, CodingKey {
-        case throwsThrows = "throws"
+        case require = "require"
     }
 }
 
-// MARK: Throws convenience initializers and mutators
+// MARK: Require convenience initializers and mutators
 
-extension Throws {
+extension Require {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Throws.self, from: data)
+        self = try newJSONDecoder().decode(Require.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11882,10 +11730,10 @@ extension Throws {
     }
 
     func with(
-        throwsThrows: Int? = nil
-    ) -> Throws {
-        return Throws(
-            throwsThrows: throwsThrows ?? self.throwsThrows
+        require: Int? = nil
+    ) -> Require {
+        return Require(
+            require: require ?? self.require
         )
     }
 
@@ -11898,20 +11746,20 @@ extension Throws {
     }
 }
 
-// MARK: - True
-struct True: Codable {
-    let trueTrue: Int
+// MARK: - Requires
+struct Requires: Codable {
+    let requires: Int
 
     enum CodingKeys: String, CodingKey {
-        case trueTrue = "True"
+        case requires = "requires"
     }
 }
 
-// MARK: True convenience initializers and mutators
+// MARK: Requires convenience initializers and mutators
 
-extension True {
+extension Requires {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(True.self, from: data)
+        self = try newJSONDecoder().decode(Requires.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11926,10 +11774,10 @@ extension True {
     }
 
     func with(
-        trueTrue: Int? = nil
-    ) -> True {
-        return True(
-            trueTrue: trueTrue ?? self.trueTrue
+        requires: Int? = nil
+    ) -> Requires {
+        return Requires(
+            requires: requires ?? self.requires
         )
     }
 
@@ -11942,20 +11790,20 @@ extension True {
     }
 }
 
-// MARK: - Try
-struct Try: Codable {
-    let tryTry: Int
+// MARK: - Restrict
+struct Restrict: Codable {
+    let restrict: Int
 
     enum CodingKeys: String, CodingKey {
-        case tryTry = "try"
+        case restrict = "restrict"
     }
 }
 
-// MARK: Try convenience initializers and mutators
+// MARK: Restrict convenience initializers and mutators
 
-extension Try {
+extension Restrict {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Try.self, from: data)
+        self = try newJSONDecoder().decode(Restrict.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11970,10 +11818,10 @@ extension Try {
     }
 
     func with(
-        tryTry: Int? = nil
-    ) -> Try {
-        return Try(
-            tryTry: tryTry ?? self.tryTry
+        restrict: Int? = nil
+    ) -> Restrict {
+        return Restrict(
+            restrict: restrict ?? self.restrict
         )
     }
 
@@ -11986,20 +11834,20 @@ extension Try {
     }
 }
 
-// MARK: - Obj4Type
-struct Obj4Type: Codable {
-    let type: Int
+// MARK: - Retain
+struct Retain: Codable {
+    let retain: Int
 
     enum CodingKeys: String, CodingKey {
-        case type = "type"
+        case retain = "retain"
     }
 }
 
-// MARK: Obj4Type convenience initializers and mutators
+// MARK: Retain convenience initializers and mutators
 
-extension Obj4Type {
+extension Retain {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj4Type.self, from: data)
+        self = try newJSONDecoder().decode(Retain.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12014,10 +11862,10 @@ extension Obj4Type {
     }
 
     func with(
-        type: Int? = nil
-    ) -> Obj4Type {
-        return Obj4Type(
-            type: type ?? self.type
+        retain: Int? = nil
+    ) -> Retain {
+        return Retain(
+            retain: retain ?? self.retain
         )
     }
 
@@ -12030,20 +11878,20 @@ extension Obj4Type {
     }
 }
 
-// MARK: - Typealias
-struct Typealias: Codable {
-    let typealiasTypealias: Int
+// MARK: - RuntimeType
+struct RuntimeType: Codable {
+    let runtimeType: Int
 
     enum CodingKeys: String, CodingKey {
-        case typealiasTypealias = "typealias"
+        case runtimeType = "runtimeType"
     }
 }
 
-// MARK: Typealias convenience initializers and mutators
+// MARK: RuntimeType convenience initializers and mutators
 
-extension Typealias {
+extension RuntimeType {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Typealias.self, from: data)
+        self = try newJSONDecoder().decode(RuntimeType.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12058,10 +11906,10 @@ extension Typealias {
     }
 
     func with(
-        typealiasTypealias: Int? = nil
-    ) -> Typealias {
-        return Typealias(
-            typealiasTypealias: typealiasTypealias ?? self.typealiasTypealias
+        runtimeType: Int? = nil
+    ) -> RuntimeType {
+        return RuntimeType(
+            runtimeType: runtimeType ?? self.runtimeType
         )
     }
 
@@ -12074,20 +11922,20 @@ extension Typealias {
     }
 }
 
-// MARK: - Obj4Self
-struct Obj4Self: Codable {
-    let selfSelf: Int
+// MARK: - S
+struct S: Codable {
+    let s: Int
 
     enum CodingKeys: String, CodingKey {
-        case selfSelf = "self"
+        case s = "s"
     }
 }
 
-// MARK: Obj4Self convenience initializers and mutators
+// MARK: S convenience initializers and mutators
 
-extension Obj4Self {
+extension S {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj4Self.self, from: data)
+        self = try newJSONDecoder().decode(S.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12102,10 +11950,10 @@ extension Obj4Self {
     }
 
     func with(
-        selfSelf: Int? = nil
-    ) -> Obj4Self {
-        return Obj4Self(
-            selfSelf: selfSelf ?? self.selfSelf
+        s: Int? = nil
+    ) -> S {
+        return S(
+            s: s ?? self.s
         )
     }
 
@@ -12118,20 +11966,20 @@ extension Obj4Self {
     }
 }
 
-// MARK: - TrueClass
-struct TrueClass: Codable {
-    let trueTrue: Int
+// MARK: - Sbyte
+struct Sbyte: Codable {
+    let sbyte: Int
 
     enum CodingKeys: String, CodingKey {
-        case trueTrue = "true"
+        case sbyte = "sbyte"
     }
 }
 
-// MARK: TrueClass convenience initializers and mutators
+// MARK: Sbyte convenience initializers and mutators
 
-extension TrueClass {
+extension Sbyte {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TrueClass.self, from: data)
+        self = try newJSONDecoder().decode(Sbyte.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12146,10 +11994,10 @@ extension TrueClass {
     }
 
     func with(
-        trueTrue: Int? = nil
-    ) -> TrueClass {
-        return TrueClass(
-            trueTrue: trueTrue ?? self.trueTrue
+        sbyte: Int? = nil
+    ) -> Sbyte {
+        return Sbyte(
+            sbyte: sbyte ?? self.sbyte
         )
     }
 
@@ -12162,20 +12010,20 @@ extension TrueClass {
     }
 }
 
-// MARK: - Quicktype
-struct Quicktype: Codable {
-    let quicktype: Int
+// MARK: - Sealed
+struct Sealed: Codable {
+    let sealed: Int
 
     enum CodingKeys: String, CodingKey {
-        case quicktype = "quicktype"
+        case sealed = "sealed"
     }
 }
 
-// MARK: Quicktype convenience initializers and mutators
+// MARK: Sealed convenience initializers and mutators
 
-extension Quicktype {
+extension Sealed {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Quicktype.self, from: data)
+        self = try newJSONDecoder().decode(Sealed.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12190,10 +12038,10 @@ extension Quicktype {
     }
 
     func with(
-        quicktype: Int? = nil
-    ) -> Quicktype {
-        return Quicktype(
-            quicktype: quicktype ?? self.quicktype
+        sealed: Int? = nil
+    ) -> Sealed {
+        return Sealed(
+            sealed: sealed ?? self.sealed
         )
     }
 
@@ -12206,20 +12054,20 @@ extension Quicktype {
     }
 }
 
-// MARK: - Raise
-struct Raise: Codable {
-    let raise: Int
+// MARK: - Sel
+struct Sel: Codable {
+    let sel: Int
 
     enum CodingKeys: String, CodingKey {
-        case raise = "raise"
+        case sel = "SEL"
     }
 }
 
-// MARK: Raise convenience initializers and mutators
+// MARK: Sel convenience initializers and mutators
 
-extension Raise {
+extension Sel {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Raise.self, from: data)
+        self = try newJSONDecoder().decode(Sel.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12234,10 +12082,10 @@ extension Raise {
     }
 
     func with(
-        raise: Int? = nil
-    ) -> Raise {
-        return Raise(
-            raise: raise ?? self.raise
+        sel: Int? = nil
+    ) -> Sel {
+        return Sel(
+            sel: sel ?? self.sel
         )
     }
 
@@ -12250,20 +12098,20 @@ extension Raise {
     }
 }
 
-// MARK: - Range
-struct Range: Codable {
-    let range: Int
+// MARK: - Select
+struct Select: Codable {
+    let select: Int
 
     enum CodingKeys: String, CodingKey {
-        case range = "range"
+        case select = "select"
     }
 }
 
-// MARK: Range convenience initializers and mutators
+// MARK: Select convenience initializers and mutators
 
-extension Range {
+extension Select {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Range.self, from: data)
+        self = try newJSONDecoder().decode(Select.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12278,10 +12126,10 @@ extension Range {
     }
 
     func with(
-        range: Int? = nil
-    ) -> Range {
-        return Range(
-            range: range ?? self.range
+        select: Int? = nil
+    ) -> Select {
+        return Select(
+            select: select ?? self.select
         )
     }
 
@@ -12294,20 +12142,20 @@ extension Range {
     }
 }
 
-// MARK: - Readonly
-struct Readonly: Codable {
-    let readonly: Int
+// MARK: - Serialize
+struct Serialize: Codable {
+    let serialize: Int
 
     enum CodingKeys: String, CodingKey {
-        case readonly = "readonly"
+        case serialize = "serialize"
     }
 }
 
-// MARK: Readonly convenience initializers and mutators
+// MARK: Serialize convenience initializers and mutators
 
-extension Readonly {
+extension Serialize {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Readonly.self, from: data)
+        self = try newJSONDecoder().decode(Serialize.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12322,10 +12170,10 @@ extension Readonly {
     }
 
     func with(
-        readonly: Int? = nil
-    ) -> Readonly {
-        return Readonly(
-            readonly: readonly ?? self.readonly
+        serialize: Int? = nil
+    ) -> Serialize {
+        return Serialize(
+            serialize: serialize ?? self.serialize
         )
     }
 
@@ -12338,20 +12186,20 @@ extension Readonly {
     }
 }
 
-// MARK: - Ref
-struct Ref: Codable {
-    let ref: Int
+// MARK: - SerializerProvider
+struct SerializerProvider: Codable {
+    let serializerProvider: Int
 
     enum CodingKeys: String, CodingKey {
-        case ref = "ref"
+        case serializerProvider = "SerializerProvider"
     }
 }
 
-// MARK: Ref convenience initializers and mutators
+// MARK: SerializerProvider convenience initializers and mutators
 
-extension Ref {
+extension SerializerProvider {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Ref.self, from: data)
+        self = try newJSONDecoder().decode(SerializerProvider.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12366,10 +12214,10 @@ extension Ref {
     }
 
     func with(
-        ref: Int? = nil
-    ) -> Ref {
-        return Ref(
-            ref: ref ?? self.ref
+        serializerProvider: Int? = nil
+    ) -> SerializerProvider {
+        return SerializerProvider(
+            serializerProvider: serializerProvider ?? self.serializerProvider
         )
     }
 
@@ -12382,20 +12230,20 @@ extension Ref {
     }
 }
 
-// MARK: - RegExp
-struct RegExp: Codable {
-    let regExp: UUID
+// MARK: - Short
+struct Short: Codable {
+    let short: Int
 
     enum CodingKeys: String, CodingKey {
-        case regExp = "RegExp"
+        case short = "short"
     }
 }
 
-// MARK: RegExp convenience initializers and mutators
+// MARK: Short convenience initializers and mutators
 
-extension RegExp {
+extension Short {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(RegExp.self, from: data)
+        self = try newJSONDecoder().decode(Short.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12410,10 +12258,10 @@ extension RegExp {
     }
 
     func with(
-        regExp: UUID? = nil
-    ) -> RegExp {
-        return RegExp(
-            regExp: regExp ?? self.regExp
+        short: Int? = nil
+    ) -> Short {
+        return Short(
+            short: short ?? self.short
         )
     }
 
@@ -12426,20 +12274,20 @@ extension RegExp {
     }
 }
 
-// MARK: - Register
-struct Register: Codable {
-    let register: Int
+// MARK: - Signed
+struct Signed: Codable {
+    let signed: Int
 
     enum CodingKeys: String, CodingKey {
-        case register = "register"
+        case signed = "signed"
     }
 }
 
-// MARK: Register convenience initializers and mutators
+// MARK: Signed convenience initializers and mutators
 
-extension Register {
+extension Signed {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Register.self, from: data)
+        self = try newJSONDecoder().decode(Signed.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12454,10 +12302,10 @@ extension Register {
     }
 
     func with(
-        register: Int? = nil
-    ) -> Register {
-        return Register(
-            register: register ?? self.register
+        signed: Int? = nil
+    ) -> Signed {
+        return Signed(
+            signed: signed ?? self.signed
         )
     }
 
@@ -12470,20 +12318,20 @@ extension Register {
     }
 }
 
-// MARK: - ReinterpretCast
-struct ReinterpretCast: Codable {
-    let reinterpretCast: Int
+// MARK: - SimpleModule
+struct SimpleModule: Codable {
+    let simpleModule: Int
 
     enum CodingKeys: String, CodingKey {
-        case reinterpretCast = "reinterpret_cast"
+        case simpleModule = "SimpleModule"
     }
 }
 
-// MARK: ReinterpretCast convenience initializers and mutators
+// MARK: SimpleModule convenience initializers and mutators
 
-extension ReinterpretCast {
+extension SimpleModule {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
+        self = try newJSONDecoder().decode(SimpleModule.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12498,10 +12346,10 @@ extension ReinterpretCast {
     }
 
     func with(
-        reinterpretCast: Int? = nil
-    ) -> ReinterpretCast {
-        return ReinterpretCast(
-            reinterpretCast: reinterpretCast ?? self.reinterpretCast
+        simpleModule: Int? = nil
+    ) -> SimpleModule {
+        return SimpleModule(
+            simpleModule: simpleModule ?? self.simpleModule
         )
     }
 
@@ -12514,20 +12362,20 @@ extension ReinterpretCast {
     }
 }
 
-// MARK: - Require
-struct Require: Codable {
-    let require: Int
+// MARK: - Sizeof
+struct Sizeof: Codable {
+    let sizeof: Int
 
     enum CodingKeys: String, CodingKey {
-        case require = "require"
+        case sizeof = "sizeof"
     }
 }
 
-// MARK: Require convenience initializers and mutators
+// MARK: Sizeof convenience initializers and mutators
 
-extension Require {
+extension Sizeof {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Require.self, from: data)
+        self = try newJSONDecoder().decode(Sizeof.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12542,10 +12390,10 @@ extension Require {
     }
 
     func with(
-        require: Int? = nil
-    ) -> Require {
-        return Require(
-            require: require ?? self.require
+        sizeof: Int? = nil
+    ) -> Sizeof {
+        return Sizeof(
+            sizeof: sizeof ?? self.sizeof
         )
     }
 
@@ -12558,20 +12406,20 @@ extension Require {
     }
 }
 
-// MARK: - Requires
-struct Requires: Codable {
-    let requires: Int
+// MARK: - Stackalloc
+struct Stackalloc: Codable {
+    let stackalloc: Int
 
     enum CodingKeys: String, CodingKey {
-        case requires = "requires"
+        case stackalloc = "stackalloc"
     }
 }
 
-// MARK: Requires convenience initializers and mutators
+// MARK: Stackalloc convenience initializers and mutators
 
-extension Requires {
+extension Stackalloc {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Requires.self, from: data)
+        self = try newJSONDecoder().decode(Stackalloc.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12586,10 +12434,10 @@ extension Requires {
     }
 
     func with(
-        requires: Int? = nil
-    ) -> Requires {
-        return Requires(
-            requires: requires ?? self.requires
+        stackalloc: Int? = nil
+    ) -> Stackalloc {
+        return Stackalloc(
+            stackalloc: stackalloc ?? self.stackalloc
         )
     }
 
@@ -12602,20 +12450,20 @@ extension Requires {
     }
 }
 
-// MARK: - Restrict
-struct Restrict: Codable {
-    let restrict: Int
+// MARK: - Standards
+struct Standards: Codable {
+    let standards: Int
 
     enum CodingKeys: String, CodingKey {
-        case restrict = "restrict"
+        case standards = "Standards"
     }
 }
 
-// MARK: Restrict convenience initializers and mutators
+// MARK: Standards convenience initializers and mutators
 
-extension Restrict {
+extension Standards {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Restrict.self, from: data)
+        self = try newJSONDecoder().decode(Standards.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12630,10 +12478,10 @@ extension Restrict {
     }
 
     func with(
-        restrict: Int? = nil
-    ) -> Restrict {
-        return Restrict(
-            restrict: restrict ?? self.restrict
+        standards: Int? = nil
+    ) -> Standards {
+        return Standards(
+            standards: standards ?? self.standards
         )
     }
 
@@ -12646,20 +12494,20 @@ extension Restrict {
     }
 }
 
-// MARK: - Retain
-struct Retain: Codable {
-    let retain: Int
+// MARK: - StaticAssert
+struct StaticAssert: Codable {
+    let staticAssert: Int
 
     enum CodingKeys: String, CodingKey {
-        case retain = "retain"
+        case staticAssert = "static_assert"
     }
 }
 
-// MARK: Retain convenience initializers and mutators
+// MARK: StaticAssert convenience initializers and mutators
 
-extension Retain {
+extension StaticAssert {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Retain.self, from: data)
+        self = try newJSONDecoder().decode(StaticAssert.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12673,11 +12521,11 @@ extension Retain {
         try self.init(data: try Data(contentsOf: url))
     }
 
-    func with(
-        retain: Int? = nil
-    ) -> Retain {
-        return Retain(
-            retain: retain ?? self.retain
+    func with(
+        staticAssert: Int? = nil
+    ) -> StaticAssert {
+        return StaticAssert(
+            staticAssert: staticAssert ?? self.staticAssert
         )
     }
 
@@ -12690,20 +12538,142 @@ extension Retain {
     }
 }
 
-// MARK: - RuntimeType
-struct RuntimeType: Codable {
-    let runtimeType: Int
+// MARK: - Obj5
+struct Obj5: Codable {
+    let dummy: Int
+    let obj5Struct: Struct
+    let obj5Subscript: Subscript
+    let obj5Super: Super
+    let obj5Switch: Switch
+    let obj5Throw: Throw
+    let obj5Throws: Throws
+    let obj5True: True
+    let obj5Try: Try
+    let obj5Type: Obj5Type
+    let obj5Typealias: Typealias
+    let obj5Unowned: Unowned
+    let obj5Var: Var
+    let obj5Weak: Weak
+    let obj5Where: Where
+    let obj5While: While
+    let obj5WillSet: WillSet
+    let purpleTrue: TrueClass
+    let staticCast: StaticCast
+    let stdDeserializer: StdDeserializer
+    let stdSerializer: StdSerializer
+    let strictfp: Strictfp
+    let string: StringClass
+    let symbol: Symbol
+    let synchronized: Synchronized
+    let system: System
+    let template: Template
+    let then: Then
+    let this: This
+    let threadLocal: ThreadLocal
+    let timeOnly: TimeOnly
+    let timeOnlyConverter: TimeOnlyConverter
+    let toJSON: ToJSON
+    let toString: ToString
+    let topLevel: TopLevelClass
+    let transient: Transient
+    let type: TypeClass
+    let typedef: Typedef
+    let typeid: Typeid
+    let typename: Typename
+    let typeof: Typeof
+    let uint: Uint
+    let ulong: Ulong
+    let unchecked: Unchecked
+    let undefined: Undefined
+    let union: Union
+    let unsafe: Unsafe
+    let unsigned: Unsigned
+    let ushort: Ushort
+    let using: Using
+    let utf8JSONReader: Utf8JSONReader
+    let utf8JSONWriter: Utf8JSONWriter
+    let uuid: UUIDClass
+    let virtual: Virtual
+    let void: Void
+    let volatile: Volatile
+    let wcharT: WcharT
+    let with: With
+    let xor: Xor
+    let xorEq: XorEq
+    let yes: Yes
+    let yield: Yield
 
     enum CodingKeys: String, CodingKey {
-        case runtimeType = "runtimeType"
+        case dummy = "dummy"
+        case obj5Struct = "struct"
+        case obj5Subscript = "subscript"
+        case obj5Super = "super"
+        case obj5Switch = "switch"
+        case obj5Throw = "throw"
+        case obj5Throws = "throws"
+        case obj5True = "True"
+        case obj5Try = "try"
+        case obj5Type = "type"
+        case obj5Typealias = "typealias"
+        case obj5Unowned = "unowned"
+        case obj5Var = "var"
+        case obj5Weak = "weak"
+        case obj5Where = "where"
+        case obj5While = "while"
+        case obj5WillSet = "willSet"
+        case purpleTrue = "true"
+        case staticCast = "static_cast"
+        case stdDeserializer = "StdDeserializer"
+        case stdSerializer = "StdSerializer"
+        case strictfp = "strictfp"
+        case string = "string"
+        case symbol = "symbol"
+        case synchronized = "synchronized"
+        case system = "system"
+        case template = "template"
+        case then = "then"
+        case this = "this"
+        case threadLocal = "thread_local"
+        case timeOnly = "TimeOnly"
+        case timeOnlyConverter = "TimeOnlyConverter"
+        case toJSON = "to_json"
+        case toString = "toString"
+        case topLevel = "top_level"
+        case transient = "transient"
+        case type = "Type"
+        case typedef = "typedef"
+        case typeid = "typeid"
+        case typename = "typename"
+        case typeof = "typeof"
+        case uint = "uint"
+        case ulong = "ulong"
+        case unchecked = "unchecked"
+        case undefined = "undefined"
+        case union = "union"
+        case unsafe = "unsafe"
+        case unsigned = "unsigned"
+        case ushort = "ushort"
+        case using = "using"
+        case utf8JSONReader = "Utf8JsonReader"
+        case utf8JSONWriter = "Utf8JsonWriter"
+        case uuid = "UUID"
+        case virtual = "virtual"
+        case void = "void"
+        case volatile = "volatile"
+        case wcharT = "wchar_t"
+        case with = "with"
+        case xor = "xor"
+        case xorEq = "xor_eq"
+        case yes = "YES"
+        case yield = "yield"
     }
 }
 
-// MARK: RuntimeType convenience initializers and mutators
+// MARK: Obj5 convenience initializers and mutators
 
-extension RuntimeType {
+extension Obj5 {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(RuntimeType.self, from: data)
+        self = try newJSONDecoder().decode(Obj5.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12718,10 +12688,132 @@ extension RuntimeType {
     }
 
     func with(
-        runtimeType: Int? = nil
-    ) -> RuntimeType {
-        return RuntimeType(
-            runtimeType: runtimeType ?? self.runtimeType
+        dummy: Int? = nil,
+        obj5Struct: Struct? = nil,
+        obj5Subscript: Subscript? = nil,
+        obj5Super: Super? = nil,
+        obj5Switch: Switch? = nil,
+        obj5Throw: Throw? = nil,
+        obj5Throws: Throws? = nil,
+        obj5True: True? = nil,
+        obj5Try: Try? = nil,
+        obj5Type: Obj5Type? = nil,
+        obj5Typealias: Typealias? = nil,
+        obj5Unowned: Unowned? = nil,
+        obj5Var: Var? = nil,
+        obj5Weak: Weak? = nil,
+        obj5Where: Where? = nil,
+        obj5While: While? = nil,
+        obj5WillSet: WillSet? = nil,
+        purpleTrue: TrueClass? = nil,
+        staticCast: StaticCast? = nil,
+        stdDeserializer: StdDeserializer? = nil,
+        stdSerializer: StdSerializer? = nil,
+        strictfp: Strictfp? = nil,
+        string: StringClass? = nil,
+        symbol: Symbol? = nil,
+        synchronized: Synchronized? = nil,
+        system: System? = nil,
+        template: Template? = nil,
+        then: Then? = nil,
+        this: This? = nil,
+        threadLocal: ThreadLocal? = nil,
+        timeOnly: TimeOnly? = nil,
+        timeOnlyConverter: TimeOnlyConverter? = nil,
+        toJSON: ToJSON? = nil,
+        toString: ToString? = nil,
+        topLevel: TopLevelClass? = nil,
+        transient: Transient? = nil,
+        type: TypeClass? = nil,
+        typedef: Typedef? = nil,
+        typeid: Typeid? = nil,
+        typename: Typename? = nil,
+        typeof: Typeof? = nil,
+        uint: Uint? = nil,
+        ulong: Ulong? = nil,
+        unchecked: Unchecked? = nil,
+        undefined: Undefined? = nil,
+        union: Union? = nil,
+        unsafe: Unsafe? = nil,
+        unsigned: Unsigned? = nil,
+        ushort: Ushort? = nil,
+        using: Using? = nil,
+        utf8JSONReader: Utf8JSONReader? = nil,
+        utf8JSONWriter: Utf8JSONWriter? = nil,
+        uuid: UUIDClass? = nil,
+        virtual: Virtual? = nil,
+        void: Void? = nil,
+        volatile: Volatile? = nil,
+        wcharT: WcharT? = nil,
+        with: With? = nil,
+        xor: Xor? = nil,
+        xorEq: XorEq? = nil,
+        yes: Yes? = nil,
+        yield: Yield? = nil
+    ) -> Obj5 {
+        return Obj5(
+            dummy: dummy ?? self.dummy,
+            obj5Struct: obj5Struct ?? self.obj5Struct,
+            obj5Subscript: obj5Subscript ?? self.obj5Subscript,
+            obj5Super: obj5Super ?? self.obj5Super,
+            obj5Switch: obj5Switch ?? self.obj5Switch,
+            obj5Throw: obj5Throw ?? self.obj5Throw,
+            obj5Throws: obj5Throws ?? self.obj5Throws,
+            obj5True: obj5True ?? self.obj5True,
+            obj5Try: obj5Try ?? self.obj5Try,
+            obj5Type: obj5Type ?? self.obj5Type,
+            obj5Typealias: obj5Typealias ?? self.obj5Typealias,
+            obj5Unowned: obj5Unowned ?? self.obj5Unowned,
+            obj5Var: obj5Var ?? self.obj5Var,
+            obj5Weak: obj5Weak ?? self.obj5Weak,
+            obj5Where: obj5Where ?? self.obj5Where,
+            obj5While: obj5While ?? self.obj5While,
+            obj5WillSet: obj5WillSet ?? self.obj5WillSet,
+            purpleTrue: purpleTrue ?? self.purpleTrue,
+            staticCast: staticCast ?? self.staticCast,
+            stdDeserializer: stdDeserializer ?? self.stdDeserializer,
+            stdSerializer: stdSerializer ?? self.stdSerializer,
+            strictfp: strictfp ?? self.strictfp,
+            string: string ?? self.string,
+            symbol: symbol ?? self.symbol,
+            synchronized: synchronized ?? self.synchronized,
+            system: system ?? self.system,
+            template: template ?? self.template,
+            then: then ?? self.then,
+            this: this ?? self.this,
+            threadLocal: threadLocal ?? self.threadLocal,
+            timeOnly: timeOnly ?? self.timeOnly,
+            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter,
+            toJSON: toJSON ?? self.toJSON,
+            toString: toString ?? self.toString,
+            topLevel: topLevel ?? self.topLevel,
+            transient: transient ?? self.transient,
+            type: type ?? self.type,
+            typedef: typedef ?? self.typedef,
+            typeid: typeid ?? self.typeid,
+            typename: typename ?? self.typename,
+            typeof: typeof ?? self.typeof,
+            uint: uint ?? self.uint,
+            ulong: ulong ?? self.ulong,
+            unchecked: unchecked ?? self.unchecked,
+            undefined: undefined ?? self.undefined,
+            union: union ?? self.union,
+            unsafe: unsafe ?? self.unsafe,
+            unsigned: unsigned ?? self.unsigned,
+            ushort: ushort ?? self.ushort,
+            using: using ?? self.using,
+            utf8JSONReader: utf8JSONReader ?? self.utf8JSONReader,
+            utf8JSONWriter: utf8JSONWriter ?? self.utf8JSONWriter,
+            uuid: uuid ?? self.uuid,
+            virtual: virtual ?? self.virtual,
+            void: void ?? self.void,
+            volatile: volatile ?? self.volatile,
+            wcharT: wcharT ?? self.wcharT,
+            with: with ?? self.with,
+            xor: xor ?? self.xor,
+            xorEq: xorEq ?? self.xorEq,
+            yes: yes ?? self.yes,
+            yield: yield ?? self.yield
         )
     }
 
@@ -12734,20 +12826,20 @@ extension RuntimeType {
     }
 }
 
-// MARK: - S
-struct S: Codable {
-    let s: Int
+// MARK: - Struct
+struct Struct: Codable {
+    let structStruct: Int
 
     enum CodingKeys: String, CodingKey {
-        case s = "s"
+        case structStruct = "struct"
     }
 }
 
-// MARK: S convenience initializers and mutators
+// MARK: Struct convenience initializers and mutators
 
-extension S {
+extension Struct {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(S.self, from: data)
+        self = try newJSONDecoder().decode(Struct.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12762,10 +12854,10 @@ extension S {
     }
 
     func with(
-        s: Int? = nil
-    ) -> S {
-        return S(
-            s: s ?? self.s
+        structStruct: Int? = nil
+    ) -> Struct {
+        return Struct(
+            structStruct: structStruct ?? self.structStruct
         )
     }
 
@@ -12778,20 +12870,20 @@ extension S {
     }
 }
 
-// MARK: - Sbyte
-struct Sbyte: Codable {
-    let sbyte: Int
+// MARK: - Subscript
+struct Subscript: Codable {
+    let subscriptSubscript: Int
 
     enum CodingKeys: String, CodingKey {
-        case sbyte = "sbyte"
+        case subscriptSubscript = "subscript"
     }
 }
 
-// MARK: Sbyte convenience initializers and mutators
+// MARK: Subscript convenience initializers and mutators
 
-extension Sbyte {
+extension Subscript {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sbyte.self, from: data)
+        self = try newJSONDecoder().decode(Subscript.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12806,10 +12898,10 @@ extension Sbyte {
     }
 
     func with(
-        sbyte: Int? = nil
-    ) -> Sbyte {
-        return Sbyte(
-            sbyte: sbyte ?? self.sbyte
+        subscriptSubscript: Int? = nil
+    ) -> Subscript {
+        return Subscript(
+            subscriptSubscript: subscriptSubscript ?? self.subscriptSubscript
         )
     }
 
@@ -12822,20 +12914,20 @@ extension Sbyte {
     }
 }
 
-// MARK: - Sealed
-struct Sealed: Codable {
-    let sealed: Int
+// MARK: - Super
+struct Super: Codable {
+    let superSuper: Int
 
     enum CodingKeys: String, CodingKey {
-        case sealed = "sealed"
+        case superSuper = "super"
     }
 }
 
-// MARK: Sealed convenience initializers and mutators
+// MARK: Super convenience initializers and mutators
 
-extension Sealed {
+extension Super {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sealed.self, from: data)
+        self = try newJSONDecoder().decode(Super.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12850,10 +12942,10 @@ extension Sealed {
     }
 
     func with(
-        sealed: Int? = nil
-    ) -> Sealed {
-        return Sealed(
-            sealed: sealed ?? self.sealed
+        superSuper: Int? = nil
+    ) -> Super {
+        return Super(
+            superSuper: superSuper ?? self.superSuper
         )
     }
 
@@ -12866,20 +12958,20 @@ extension Sealed {
     }
 }
 
-// MARK: - Sel
-struct Sel: Codable {
-    let sel: Int
+// MARK: - Switch
+struct Switch: Codable {
+    let switchSwitch: Int
 
     enum CodingKeys: String, CodingKey {
-        case sel = "SEL"
+        case switchSwitch = "switch"
     }
 }
 
-// MARK: Sel convenience initializers and mutators
+// MARK: Switch convenience initializers and mutators
 
-extension Sel {
+extension Switch {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sel.self, from: data)
+        self = try newJSONDecoder().decode(Switch.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12894,10 +12986,10 @@ extension Sel {
     }
 
     func with(
-        sel: Int? = nil
-    ) -> Sel {
-        return Sel(
-            sel: sel ?? self.sel
+        switchSwitch: Int? = nil
+    ) -> Switch {
+        return Switch(
+            switchSwitch: switchSwitch ?? self.switchSwitch
         )
     }
 
@@ -12910,20 +13002,20 @@ extension Sel {
     }
 }
 
-// MARK: - Select
-struct Select: Codable {
-    let select: Int
+// MARK: - Throw
+struct Throw: Codable {
+    let throwThrow: Int
 
     enum CodingKeys: String, CodingKey {
-        case select = "select"
+        case throwThrow = "throw"
     }
 }
 
-// MARK: Select convenience initializers and mutators
+// MARK: Throw convenience initializers and mutators
 
-extension Select {
+extension Throw {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Select.self, from: data)
+        self = try newJSONDecoder().decode(Throw.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12938,10 +13030,10 @@ extension Select {
     }
 
     func with(
-        select: Int? = nil
-    ) -> Select {
-        return Select(
-            select: select ?? self.select
+        throwThrow: Int? = nil
+    ) -> Throw {
+        return Throw(
+            throwThrow: throwThrow ?? self.throwThrow
         )
     }
 
@@ -12954,20 +13046,20 @@ extension Select {
     }
 }
 
-// MARK: - Serialize
-struct Serialize: Codable {
-    let serialize: Int
+// MARK: - Throws
+struct Throws: Codable {
+    let throwsThrows: Int
 
     enum CodingKeys: String, CodingKey {
-        case serialize = "serialize"
+        case throwsThrows = "throws"
     }
 }
 
-// MARK: Serialize convenience initializers and mutators
+// MARK: Throws convenience initializers and mutators
 
-extension Serialize {
+extension Throws {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Serialize.self, from: data)
+        self = try newJSONDecoder().decode(Throws.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12982,10 +13074,10 @@ extension Serialize {
     }
 
     func with(
-        serialize: Int? = nil
-    ) -> Serialize {
-        return Serialize(
-            serialize: serialize ?? self.serialize
+        throwsThrows: Int? = nil
+    ) -> Throws {
+        return Throws(
+            throwsThrows: throwsThrows ?? self.throwsThrows
         )
     }
 
@@ -12998,20 +13090,20 @@ extension Serialize {
     }
 }
 
-// MARK: - Short
-struct Short: Codable {
-    let short: Int
+// MARK: - True
+struct True: Codable {
+    let trueTrue: Int
 
     enum CodingKeys: String, CodingKey {
-        case short = "short"
+        case trueTrue = "True"
     }
 }
 
-// MARK: Short convenience initializers and mutators
+// MARK: True convenience initializers and mutators
 
-extension Short {
+extension True {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Short.self, from: data)
+        self = try newJSONDecoder().decode(True.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13026,10 +13118,10 @@ extension Short {
     }
 
     func with(
-        short: Int? = nil
-    ) -> Short {
-        return Short(
-            short: short ?? self.short
+        trueTrue: Int? = nil
+    ) -> True {
+        return True(
+            trueTrue: trueTrue ?? self.trueTrue
         )
     }
 
@@ -13042,20 +13134,20 @@ extension Short {
     }
 }
 
-// MARK: - Signed
-struct Signed: Codable {
-    let signed: Int
+// MARK: - Try
+struct Try: Codable {
+    let tryTry: Int
 
     enum CodingKeys: String, CodingKey {
-        case signed = "signed"
+        case tryTry = "try"
     }
 }
 
-// MARK: Signed convenience initializers and mutators
+// MARK: Try convenience initializers and mutators
 
-extension Signed {
+extension Try {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Signed.self, from: data)
+        self = try newJSONDecoder().decode(Try.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13070,10 +13162,10 @@ extension Signed {
     }
 
     func with(
-        signed: Int? = nil
-    ) -> Signed {
-        return Signed(
-            signed: signed ?? self.signed
+        tryTry: Int? = nil
+    ) -> Try {
+        return Try(
+            tryTry: tryTry ?? self.tryTry
         )
     }
 
@@ -13086,20 +13178,20 @@ extension Signed {
     }
 }
 
-// MARK: - Sizeof
-struct Sizeof: Codable {
-    let sizeof: Int
+// MARK: - Obj5Type
+struct Obj5Type: Codable {
+    let type: Int
 
     enum CodingKeys: String, CodingKey {
-        case sizeof = "sizeof"
+        case type = "type"
     }
 }
 
-// MARK: Sizeof convenience initializers and mutators
+// MARK: Obj5Type convenience initializers and mutators
 
-extension Sizeof {
+extension Obj5Type {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Sizeof.self, from: data)
+        self = try newJSONDecoder().decode(Obj5Type.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13114,10 +13206,10 @@ extension Sizeof {
     }
 
     func with(
-        sizeof: Int? = nil
-    ) -> Sizeof {
-        return Sizeof(
-            sizeof: sizeof ?? self.sizeof
+        type: Int? = nil
+    ) -> Obj5Type {
+        return Obj5Type(
+            type: type ?? self.type
         )
     }
 
@@ -13130,20 +13222,20 @@ extension Sizeof {
     }
 }
 
-// MARK: - Stackalloc
-struct Stackalloc: Codable {
-    let stackalloc: Int
+// MARK: - Typealias
+struct Typealias: Codable {
+    let typealiasTypealias: Int
 
     enum CodingKeys: String, CodingKey {
-        case stackalloc = "stackalloc"
+        case typealiasTypealias = "typealias"
     }
 }
 
-// MARK: Stackalloc convenience initializers and mutators
+// MARK: Typealias convenience initializers and mutators
 
-extension Stackalloc {
+extension Typealias {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Stackalloc.self, from: data)
+        self = try newJSONDecoder().decode(Typealias.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13158,10 +13250,10 @@ extension Stackalloc {
     }
 
     func with(
-        stackalloc: Int? = nil
-    ) -> Stackalloc {
-        return Stackalloc(
-            stackalloc: stackalloc ?? self.stackalloc
+        typealiasTypealias: Int? = nil
+    ) -> Typealias {
+        return Typealias(
+            typealiasTypealias: typealiasTypealias ?? self.typealiasTypealias
         )
     }
 
@@ -13174,20 +13266,20 @@ extension Stackalloc {
     }
 }
 
-// MARK: - Standards
-struct Standards: Codable {
-    let standards: Int
+// MARK: - Unowned
+struct Unowned: Codable {
+    let unownedUnowned: Int
 
     enum CodingKeys: String, CodingKey {
-        case standards = "Standards"
+        case unownedUnowned = "unowned"
     }
 }
 
-// MARK: Standards convenience initializers and mutators
+// MARK: Unowned convenience initializers and mutators
 
-extension Standards {
+extension Unowned {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Standards.self, from: data)
+        self = try newJSONDecoder().decode(Unowned.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13202,10 +13294,10 @@ extension Standards {
     }
 
     func with(
-        standards: Int? = nil
-    ) -> Standards {
-        return Standards(
-            standards: standards ?? self.standards
+        unownedUnowned: Int? = nil
+    ) -> Unowned {
+        return Unowned(
+            unownedUnowned: unownedUnowned ?? self.unownedUnowned
         )
     }
 
@@ -13218,20 +13310,20 @@ extension Standards {
     }
 }
 
-// MARK: - StaticAssert
-struct StaticAssert: Codable {
-    let staticAssert: Int
+// MARK: - Var
+struct Var: Codable {
+    let varVar: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticAssert = "static_assert"
+        case varVar = "var"
     }
 }
 
-// MARK: StaticAssert convenience initializers and mutators
+// MARK: Var convenience initializers and mutators
 
-extension StaticAssert {
+extension Var {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StaticAssert.self, from: data)
+        self = try newJSONDecoder().decode(Var.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13246,10 +13338,10 @@ extension StaticAssert {
     }
 
     func with(
-        staticAssert: Int? = nil
-    ) -> StaticAssert {
-        return StaticAssert(
-            staticAssert: staticAssert ?? self.staticAssert
+        varVar: Int? = nil
+    ) -> Var {
+        return Var(
+            varVar: varVar ?? self.varVar
         )
     }
 
@@ -13262,20 +13354,20 @@ extension StaticAssert {
     }
 }
 
-// MARK: - StaticCast
-struct StaticCast: Codable {
-    let staticCast: Int
+// MARK: - Weak
+struct Weak: Codable {
+    let weakWeak: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticCast = "static_cast"
+        case weakWeak = "weak"
     }
 }
 
-// MARK: StaticCast convenience initializers and mutators
+// MARK: Weak convenience initializers and mutators
 
-extension StaticCast {
+extension Weak {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StaticCast.self, from: data)
+        self = try newJSONDecoder().decode(Weak.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13290,10 +13382,10 @@ extension StaticCast {
     }
 
     func with(
-        staticCast: Int? = nil
-    ) -> StaticCast {
-        return StaticCast(
-            staticCast: staticCast ?? self.staticCast
+        weakWeak: Int? = nil
+    ) -> Weak {
+        return Weak(
+            weakWeak: weakWeak ?? self.weakWeak
         )
     }
 
@@ -13306,20 +13398,20 @@ extension StaticCast {
     }
 }
 
-// MARK: - Strictfp
-struct Strictfp: Codable {
-    let strictfp: Int
+// MARK: - Where
+struct Where: Codable {
+    let whereWhere: Int
 
     enum CodingKeys: String, CodingKey {
-        case strictfp = "strictfp"
+        case whereWhere = "where"
     }
 }
 
-// MARK: Strictfp convenience initializers and mutators
+// MARK: Where convenience initializers and mutators
 
-extension Strictfp {
+extension Where {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Strictfp.self, from: data)
+        self = try newJSONDecoder().decode(Where.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13334,10 +13426,10 @@ extension Strictfp {
     }
 
     func with(
-        strictfp: Int? = nil
-    ) -> Strictfp {
-        return Strictfp(
-            strictfp: strictfp ?? self.strictfp
+        whereWhere: Int? = nil
+    ) -> Where {
+        return Where(
+            whereWhere: whereWhere ?? self.whereWhere
         )
     }
 
@@ -13350,20 +13442,20 @@ extension Strictfp {
     }
 }
 
-// MARK: - StringClass
-struct StringClass: Codable {
-    let string: Int
+// MARK: - While
+struct While: Codable {
+    let whileWhile: Int
 
     enum CodingKeys: String, CodingKey {
-        case string = "string"
+        case whileWhile = "while"
     }
 }
 
-// MARK: StringClass convenience initializers and mutators
+// MARK: While convenience initializers and mutators
 
-extension StringClass {
+extension While {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(StringClass.self, from: data)
+        self = try newJSONDecoder().decode(While.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13378,10 +13470,10 @@ extension StringClass {
     }
 
     func with(
-        string: Int? = nil
-    ) -> StringClass {
-        return StringClass(
-            string: string ?? self.string
+        whileWhile: Int? = nil
+    ) -> While {
+        return While(
+            whileWhile: whileWhile ?? self.whileWhile
         )
     }
 
@@ -13394,20 +13486,20 @@ extension StringClass {
     }
 }
 
-// MARK: - Symbol
-struct Symbol: Codable {
-    let symbol: Int
+// MARK: - WillSet
+struct WillSet: Codable {
+    let willSetWillSet: Int
 
     enum CodingKeys: String, CodingKey {
-        case symbol = "symbol"
+        case willSetWillSet = "willSet"
     }
 }
 
-// MARK: Symbol convenience initializers and mutators
+// MARK: WillSet convenience initializers and mutators
 
-extension Symbol {
+extension WillSet {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Symbol.self, from: data)
+        self = try newJSONDecoder().decode(WillSet.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13422,10 +13514,10 @@ extension Symbol {
     }
 
     func with(
-        symbol: Int? = nil
-    ) -> Symbol {
-        return Symbol(
-            symbol: symbol ?? self.symbol
+        willSetWillSet: Int? = nil
+    ) -> WillSet {
+        return WillSet(
+            willSetWillSet: willSetWillSet ?? self.willSetWillSet
         )
     }
 
@@ -13438,20 +13530,20 @@ extension Symbol {
     }
 }
 
-// MARK: - Synchronized
-struct Synchronized: Codable {
-    let synchronized: Int
+// MARK: - TrueClass
+struct TrueClass: Codable {
+    let trueTrue: Int
 
     enum CodingKeys: String, CodingKey {
-        case synchronized = "synchronized"
+        case trueTrue = "true"
     }
 }
 
-// MARK: Synchronized convenience initializers and mutators
+// MARK: TrueClass convenience initializers and mutators
 
-extension Synchronized {
+extension TrueClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Synchronized.self, from: data)
+        self = try newJSONDecoder().decode(TrueClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13466,10 +13558,10 @@ extension Synchronized {
     }
 
     func with(
-        synchronized: Int? = nil
-    ) -> Synchronized {
-        return Synchronized(
-            synchronized: synchronized ?? self.synchronized
+        trueTrue: Int? = nil
+    ) -> TrueClass {
+        return TrueClass(
+            trueTrue: trueTrue ?? self.trueTrue
         )
     }
 
@@ -13482,20 +13574,20 @@ extension Synchronized {
     }
 }
 
-// MARK: - System
-struct System: Codable {
-    let system: Int
+// MARK: - StaticCast
+struct StaticCast: Codable {
+    let staticCast: Int
 
     enum CodingKeys: String, CodingKey {
-        case system = "system"
+        case staticCast = "static_cast"
     }
 }
 
-// MARK: System convenience initializers and mutators
+// MARK: StaticCast convenience initializers and mutators
 
-extension System {
+extension StaticCast {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(System.self, from: data)
+        self = try newJSONDecoder().decode(StaticCast.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13510,10 +13602,10 @@ extension System {
     }
 
     func with(
-        system: Int? = nil
-    ) -> System {
-        return System(
-            system: system ?? self.system
+        staticCast: Int? = nil
+    ) -> StaticCast {
+        return StaticCast(
+            staticCast: staticCast ?? self.staticCast
         )
     }
 
@@ -13526,20 +13618,20 @@ extension System {
     }
 }
 
-// MARK: - Template
-struct Template: Codable {
-    let template: Int
+// MARK: - StdDeserializer
+struct StdDeserializer: Codable {
+    let stdDeserializer: Int
 
     enum CodingKeys: String, CodingKey {
-        case template = "template"
+        case stdDeserializer = "StdDeserializer"
     }
 }
 
-// MARK: Template convenience initializers and mutators
+// MARK: StdDeserializer convenience initializers and mutators
 
-extension Template {
+extension StdDeserializer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Template.self, from: data)
+        self = try newJSONDecoder().decode(StdDeserializer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13554,10 +13646,10 @@ extension Template {
     }
 
     func with(
-        template: Int? = nil
-    ) -> Template {
-        return Template(
-            template: template ?? self.template
+        stdDeserializer: Int? = nil
+    ) -> StdDeserializer {
+        return StdDeserializer(
+            stdDeserializer: stdDeserializer ?? self.stdDeserializer
         )
     }
 
@@ -13570,20 +13662,20 @@ extension Template {
     }
 }
 
-// MARK: - Then
-struct Then: Codable {
-    let then: Int
+// MARK: - StdSerializer
+struct StdSerializer: Codable {
+    let stdSerializer: Int
 
     enum CodingKeys: String, CodingKey {
-        case then = "then"
+        case stdSerializer = "StdSerializer"
     }
 }
 
-// MARK: Then convenience initializers and mutators
+// MARK: StdSerializer convenience initializers and mutators
 
-extension Then {
+extension StdSerializer {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Then.self, from: data)
+        self = try newJSONDecoder().decode(StdSerializer.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13598,10 +13690,10 @@ extension Then {
     }
 
     func with(
-        then: Int? = nil
-    ) -> Then {
-        return Then(
-            then: then ?? self.then
+        stdSerializer: Int? = nil
+    ) -> StdSerializer {
+        return StdSerializer(
+            stdSerializer: stdSerializer ?? self.stdSerializer
         )
     }
 
@@ -13614,20 +13706,20 @@ extension Then {
     }
 }
 
-// MARK: - This
-struct This: Codable {
-    let this: Int
+// MARK: - Strictfp
+struct Strictfp: Codable {
+    let strictfp: Int
 
     enum CodingKeys: String, CodingKey {
-        case this = "this"
+        case strictfp = "strictfp"
     }
 }
 
-// MARK: This convenience initializers and mutators
+// MARK: Strictfp convenience initializers and mutators
 
-extension This {
+extension Strictfp {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(This.self, from: data)
+        self = try newJSONDecoder().decode(Strictfp.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13642,10 +13734,10 @@ extension This {
     }
 
     func with(
-        this: Int? = nil
-    ) -> This {
-        return This(
-            this: this ?? self.this
+        strictfp: Int? = nil
+    ) -> Strictfp {
+        return Strictfp(
+            strictfp: strictfp ?? self.strictfp
         )
     }
 
@@ -13658,20 +13750,20 @@ extension This {
     }
 }
 
-// MARK: - ThreadLocal
-struct ThreadLocal: Codable {
-    let threadLocal: Int
+// MARK: - StringClass
+struct StringClass: Codable {
+    let string: Int
 
     enum CodingKeys: String, CodingKey {
-        case threadLocal = "thread_local"
+        case string = "string"
     }
 }
 
-// MARK: ThreadLocal convenience initializers and mutators
+// MARK: StringClass convenience initializers and mutators
 
-extension ThreadLocal {
+extension StringClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ThreadLocal.self, from: data)
+        self = try newJSONDecoder().decode(StringClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13686,10 +13778,10 @@ extension ThreadLocal {
     }
 
     func with(
-        threadLocal: Int? = nil
-    ) -> ThreadLocal {
-        return ThreadLocal(
-            threadLocal: threadLocal ?? self.threadLocal
+        string: Int? = nil
+    ) -> StringClass {
+        return StringClass(
+            string: string ?? self.string
         )
     }
 
@@ -13702,20 +13794,20 @@ extension ThreadLocal {
     }
 }
 
-// MARK: - TimeOnly
-struct TimeOnly: Codable {
-    let timeOnly: Int
+// MARK: - Symbol
+struct Symbol: Codable {
+    let symbol: Int
 
     enum CodingKeys: String, CodingKey {
-        case timeOnly = "TimeOnly"
+        case symbol = "symbol"
     }
 }
 
-// MARK: TimeOnly convenience initializers and mutators
+// MARK: Symbol convenience initializers and mutators
 
-extension TimeOnly {
+extension Symbol {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TimeOnly.self, from: data)
+        self = try newJSONDecoder().decode(Symbol.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13730,10 +13822,10 @@ extension TimeOnly {
     }
 
     func with(
-        timeOnly: Int? = nil
-    ) -> TimeOnly {
-        return TimeOnly(
-            timeOnly: timeOnly ?? self.timeOnly
+        symbol: Int? = nil
+    ) -> Symbol {
+        return Symbol(
+            symbol: symbol ?? self.symbol
         )
     }
 
@@ -13746,20 +13838,20 @@ extension TimeOnly {
     }
 }
 
-// MARK: - TimeOnlyConverter
-struct TimeOnlyConverter: Codable {
-    let timeOnlyConverter: Int
+// MARK: - Synchronized
+struct Synchronized: Codable {
+    let synchronized: Int
 
     enum CodingKeys: String, CodingKey {
-        case timeOnlyConverter = "TimeOnlyConverter"
+        case synchronized = "synchronized"
     }
 }
 
-// MARK: TimeOnlyConverter convenience initializers and mutators
+// MARK: Synchronized convenience initializers and mutators
 
-extension TimeOnlyConverter {
+extension Synchronized {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TimeOnlyConverter.self, from: data)
+        self = try newJSONDecoder().decode(Synchronized.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13774,10 +13866,10 @@ extension TimeOnlyConverter {
     }
 
     func with(
-        timeOnlyConverter: Int? = nil
-    ) -> TimeOnlyConverter {
-        return TimeOnlyConverter(
-            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter
+        synchronized: Int? = nil
+    ) -> Synchronized {
+        return Synchronized(
+            synchronized: synchronized ?? self.synchronized
         )
     }
 
@@ -13790,20 +13882,20 @@ extension TimeOnlyConverter {
     }
 }
 
-// MARK: - ToJSON
-struct ToJSON: Codable {
-    let toJSON: Int
+// MARK: - System
+struct System: Codable {
+    let system: Int
 
     enum CodingKeys: String, CodingKey {
-        case toJSON = "to_json"
+        case system = "system"
     }
 }
 
-// MARK: ToJSON convenience initializers and mutators
+// MARK: System convenience initializers and mutators
 
-extension ToJSON {
+extension System {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ToJSON.self, from: data)
+        self = try newJSONDecoder().decode(System.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13818,10 +13910,10 @@ extension ToJSON {
     }
 
     func with(
-        toJSON: Int? = nil
-    ) -> ToJSON {
-        return ToJSON(
-            toJSON: toJSON ?? self.toJSON
+        system: Int? = nil
+    ) -> System {
+        return System(
+            system: system ?? self.system
         )
     }
 
@@ -13834,20 +13926,20 @@ extension ToJSON {
     }
 }
 
-// MARK: - ToString
-struct ToString: Codable {
-    let toString: Int
+// MARK: - Template
+struct Template: Codable {
+    let template: Int
 
     enum CodingKeys: String, CodingKey {
-        case toString = "toString"
+        case template = "template"
     }
 }
 
-// MARK: ToString convenience initializers and mutators
+// MARK: Template convenience initializers and mutators
 
-extension ToString {
+extension Template {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(ToString.self, from: data)
+        self = try newJSONDecoder().decode(Template.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13862,10 +13954,10 @@ extension ToString {
     }
 
     func with(
-        toString: Int? = nil
-    ) -> ToString {
-        return ToString(
-            toString: toString ?? self.toString
+        template: Int? = nil
+    ) -> Template {
+        return Template(
+            template: template ?? self.template
         )
     }
 
@@ -13878,20 +13970,20 @@ extension ToString {
     }
 }
 
-// MARK: - TopLevelClass
-struct TopLevelClass: Codable {
-    let topLevel: Int
+// MARK: - Then
+struct Then: Codable {
+    let then: Int
 
     enum CodingKeys: String, CodingKey {
-        case topLevel = "top_level"
+        case then = "then"
     }
 }
 
-// MARK: TopLevelClass convenience initializers and mutators
+// MARK: Then convenience initializers and mutators
 
-extension TopLevelClass {
+extension Then {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TopLevelClass.self, from: data)
+        self = try newJSONDecoder().decode(Then.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13906,10 +13998,10 @@ extension TopLevelClass {
     }
 
     func with(
-        topLevel: Int? = nil
-    ) -> TopLevelClass {
-        return TopLevelClass(
-            topLevel: topLevel ?? self.topLevel
+        then: Int? = nil
+    ) -> Then {
+        return Then(
+            then: then ?? self.then
         )
     }
 
@@ -13922,20 +14014,20 @@ extension TopLevelClass {
     }
 }
 
-// MARK: - Transient
-struct Transient: Codable {
-    let transient: Int
+// MARK: - This
+struct This: Codable {
+    let this: Int
 
     enum CodingKeys: String, CodingKey {
-        case transient = "transient"
+        case this = "this"
     }
 }
 
-// MARK: Transient convenience initializers and mutators
+// MARK: This convenience initializers and mutators
 
-extension Transient {
+extension This {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Transient.self, from: data)
+        self = try newJSONDecoder().decode(This.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13950,10 +14042,10 @@ extension Transient {
     }
 
     func with(
-        transient: Int? = nil
-    ) -> Transient {
-        return Transient(
-            transient: transient ?? self.transient
+        this: Int? = nil
+    ) -> This {
+        return This(
+            this: this ?? self.this
         )
     }
 
@@ -13966,20 +14058,20 @@ extension Transient {
     }
 }
 
-// MARK: - TypeClass
-struct TypeClass: Codable {
-    let type: Int
+// MARK: - ThreadLocal
+struct ThreadLocal: Codable {
+    let threadLocal: Int
 
     enum CodingKeys: String, CodingKey {
-        case type = "Type"
+        case threadLocal = "thread_local"
     }
 }
 
-// MARK: TypeClass convenience initializers and mutators
+// MARK: ThreadLocal convenience initializers and mutators
 
-extension TypeClass {
+extension ThreadLocal {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(TypeClass.self, from: data)
+        self = try newJSONDecoder().decode(ThreadLocal.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13994,10 +14086,10 @@ extension TypeClass {
     }
 
     func with(
-        type: Int? = nil
-    ) -> TypeClass {
-        return TypeClass(
-            type: type ?? self.type
+        threadLocal: Int? = nil
+    ) -> ThreadLocal {
+        return ThreadLocal(
+            threadLocal: threadLocal ?? self.threadLocal
         )
     }
 
@@ -14010,20 +14102,20 @@ extension TypeClass {
     }
 }
 
-// MARK: - Typedef
-struct Typedef: Codable {
-    let typedef: Int
+// MARK: - TimeOnly
+struct TimeOnly: Codable {
+    let timeOnly: Int
 
     enum CodingKeys: String, CodingKey {
-        case typedef = "typedef"
+        case timeOnly = "TimeOnly"
     }
 }
 
-// MARK: Typedef convenience initializers and mutators
+// MARK: TimeOnly convenience initializers and mutators
 
-extension Typedef {
+extension TimeOnly {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Typedef.self, from: data)
+        self = try newJSONDecoder().decode(TimeOnly.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14038,10 +14130,10 @@ extension Typedef {
     }
 
     func with(
-        typedef: Int? = nil
-    ) -> Typedef {
-        return Typedef(
-            typedef: typedef ?? self.typedef
+        timeOnly: Int? = nil
+    ) -> TimeOnly {
+        return TimeOnly(
+            timeOnly: timeOnly ?? self.timeOnly
         )
     }
 
@@ -14054,20 +14146,20 @@ extension Typedef {
     }
 }
 
-// MARK: - Typeid
-struct Typeid: Codable {
-    let typeid: Int
+// MARK: - TimeOnlyConverter
+struct TimeOnlyConverter: Codable {
+    let timeOnlyConverter: Int
 
     enum CodingKeys: String, CodingKey {
-        case typeid = "typeid"
+        case timeOnlyConverter = "TimeOnlyConverter"
     }
 }
 
-// MARK: Typeid convenience initializers and mutators
+// MARK: TimeOnlyConverter convenience initializers and mutators
 
-extension Typeid {
+extension TimeOnlyConverter {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Typeid.self, from: data)
+        self = try newJSONDecoder().decode(TimeOnlyConverter.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14082,10 +14174,10 @@ extension Typeid {
     }
 
     func with(
-        typeid: Int? = nil
-    ) -> Typeid {
-        return Typeid(
-            typeid: typeid ?? self.typeid
+        timeOnlyConverter: Int? = nil
+    ) -> TimeOnlyConverter {
+        return TimeOnlyConverter(
+            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter
         )
     }
 
@@ -14098,20 +14190,20 @@ extension Typeid {
     }
 }
 
-// MARK: - Typename
-struct Typename: Codable {
-    let typename: Int
+// MARK: - ToJSON
+struct ToJSON: Codable {
+    let toJSON: Int
 
     enum CodingKeys: String, CodingKey {
-        case typename = "typename"
+        case toJSON = "to_json"
     }
 }
 
-// MARK: Typename convenience initializers and mutators
+// MARK: ToJSON convenience initializers and mutators
 
-extension Typename {
+extension ToJSON {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Typename.self, from: data)
+        self = try newJSONDecoder().decode(ToJSON.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14126,10 +14218,10 @@ extension Typename {
     }
 
     func with(
-        typename: Int? = nil
-    ) -> Typename {
-        return Typename(
-            typename: typename ?? self.typename
+        toJSON: Int? = nil
+    ) -> ToJSON {
+        return ToJSON(
+            toJSON: toJSON ?? self.toJSON
         )
     }
 
@@ -14142,20 +14234,20 @@ extension Typename {
     }
 }
 
-// MARK: - Typeof
-struct Typeof: Codable {
-    let typeof: Int
+// MARK: - ToString
+struct ToString: Codable {
+    let toString: Int
 
     enum CodingKeys: String, CodingKey {
-        case typeof = "typeof"
+        case toString = "toString"
     }
 }
 
-// MARK: Typeof convenience initializers and mutators
+// MARK: ToString convenience initializers and mutators
 
-extension Typeof {
+extension ToString {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Typeof.self, from: data)
+        self = try newJSONDecoder().decode(ToString.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14170,10 +14262,10 @@ extension Typeof {
     }
 
     func with(
-        typeof: Int? = nil
-    ) -> Typeof {
-        return Typeof(
-            typeof: typeof ?? self.typeof
+        toString: Int? = nil
+    ) -> ToString {
+        return ToString(
+            toString: toString ?? self.toString
         )
     }
 
@@ -14186,20 +14278,20 @@ extension Typeof {
     }
 }
 
-// MARK: - Uint
-struct Uint: Codable {
-    let uint: Int
+// MARK: - TopLevelClass
+struct TopLevelClass: Codable {
+    let topLevel: Int
 
     enum CodingKeys: String, CodingKey {
-        case uint = "uint"
+        case topLevel = "top_level"
     }
 }
 
-// MARK: Uint convenience initializers and mutators
+// MARK: TopLevelClass convenience initializers and mutators
 
-extension Uint {
+extension TopLevelClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Uint.self, from: data)
+        self = try newJSONDecoder().decode(TopLevelClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14214,10 +14306,10 @@ extension Uint {
     }
 
     func with(
-        uint: Int? = nil
-    ) -> Uint {
-        return Uint(
-            uint: uint ?? self.uint
+        topLevel: Int? = nil
+    ) -> TopLevelClass {
+        return TopLevelClass(
+            topLevel: topLevel ?? self.topLevel
         )
     }
 
@@ -14230,20 +14322,20 @@ extension Uint {
     }
 }
 
-// MARK: - Ulong
-struct Ulong: Codable {
-    let ulong: Int
+// MARK: - Transient
+struct Transient: Codable {
+    let transient: Int
 
     enum CodingKeys: String, CodingKey {
-        case ulong = "ulong"
+        case transient = "transient"
     }
 }
 
-// MARK: Ulong convenience initializers and mutators
+// MARK: Transient convenience initializers and mutators
 
-extension Ulong {
+extension Transient {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Ulong.self, from: data)
+        self = try newJSONDecoder().decode(Transient.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14258,10 +14350,10 @@ extension Ulong {
     }
 
     func with(
-        ulong: Int? = nil
-    ) -> Ulong {
-        return Ulong(
-            ulong: ulong ?? self.ulong
+        transient: Int? = nil
+    ) -> Transient {
+        return Transient(
+            transient: transient ?? self.transient
         )
     }
 
@@ -14274,20 +14366,20 @@ extension Ulong {
     }
 }
 
-// MARK: - Unchecked
-struct Unchecked: Codable {
-    let unchecked: Int
+// MARK: - TypeClass
+struct TypeClass: Codable {
+    let type: Int
 
     enum CodingKeys: String, CodingKey {
-        case unchecked = "unchecked"
+        case type = "Type"
     }
 }
 
-// MARK: Unchecked convenience initializers and mutators
+// MARK: TypeClass convenience initializers and mutators
 
-extension Unchecked {
+extension TypeClass {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Unchecked.self, from: data)
+        self = try newJSONDecoder().decode(TypeClass.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14302,10 +14394,10 @@ extension Unchecked {
     }
 
     func with(
-        unchecked: Int? = nil
-    ) -> Unchecked {
-        return Unchecked(
-            unchecked: unchecked ?? self.unchecked
+        type: Int? = nil
+    ) -> TypeClass {
+        return TypeClass(
+            type: type ?? self.type
         )
     }
 
@@ -14318,20 +14410,20 @@ extension Unchecked {
     }
 }
 
-// MARK: - Undefined
-struct Undefined: Codable {
-    let undefined: Int
+// MARK: - Typedef
+struct Typedef: Codable {
+    let typedef: Int
 
     enum CodingKeys: String, CodingKey {
-        case undefined = "undefined"
+        case typedef = "typedef"
     }
 }
 
-// MARK: Undefined convenience initializers and mutators
+// MARK: Typedef convenience initializers and mutators
 
-extension Undefined {
+extension Typedef {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Undefined.self, from: data)
+        self = try newJSONDecoder().decode(Typedef.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14346,10 +14438,10 @@ extension Undefined {
     }
 
     func with(
-        undefined: Int? = nil
-    ) -> Undefined {
-        return Undefined(
-            undefined: undefined ?? self.undefined
+        typedef: Int? = nil
+    ) -> Typedef {
+        return Typedef(
+            typedef: typedef ?? self.typedef
         )
     }
 
@@ -14362,66 +14454,20 @@ extension Undefined {
     }
 }
 
-// MARK: - Obj5
-struct Obj5: Codable {
-    let dummy: Int
-    let obj5Unowned: Unowned
-    let obj5Var: Var
-    let obj5Weak: Weak
-    let obj5Where: Where
-    let obj5While: While
-    let obj5WillSet: WillSet
-    let union: Union
-    let unsafe: Unsafe
-    let unsigned: Unsigned
-    let ushort: Ushort
-    let using: Using
-    let utf8JSONReader: Utf8JSONReader
-    let utf8JSONWriter: Utf8JSONWriter
-    let uuid: UUIDClass
-    let virtual: Virtual
-    let void: Void
-    let volatile: Volatile
-    let wcharT: WcharT
-    let with: With
-    let xor: Xor
-    let xorEq: XorEq
-    let yes: Yes
-    let yield: Yield
+// MARK: - Typeid
+struct Typeid: Codable {
+    let typeid: Int
 
     enum CodingKeys: String, CodingKey {
-        case dummy = "dummy"
-        case obj5Unowned = "unowned"
-        case obj5Var = "var"
-        case obj5Weak = "weak"
-        case obj5Where = "where"
-        case obj5While = "while"
-        case obj5WillSet = "willSet"
-        case union = "union"
-        case unsafe = "unsafe"
-        case unsigned = "unsigned"
-        case ushort = "ushort"
-        case using = "using"
-        case utf8JSONReader = "Utf8JsonReader"
-        case utf8JSONWriter = "Utf8JsonWriter"
-        case uuid = "UUID"
-        case virtual = "virtual"
-        case void = "void"
-        case volatile = "volatile"
-        case wcharT = "wchar_t"
-        case with = "with"
-        case xor = "xor"
-        case xorEq = "xor_eq"
-        case yes = "YES"
-        case yield = "yield"
+        case typeid = "typeid"
     }
 }
 
-// MARK: Obj5 convenience initializers and mutators
+// MARK: Typeid convenience initializers and mutators
 
-extension Obj5 {
+extension Typeid {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Obj5.self, from: data)
+        self = try newJSONDecoder().decode(Typeid.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14436,56 +14482,10 @@ extension Obj5 {
     }
 
     func with(
-        dummy: Int? = nil,
-        obj5Unowned: Unowned? = nil,
-        obj5Var: Var? = nil,
-        obj5Weak: Weak? = nil,
-        obj5Where: Where? = nil,
-        obj5While: While? = nil,
-        obj5WillSet: WillSet? = nil,
-        union: Union? = nil,
-        unsafe: Unsafe? = nil,
-        unsigned: Unsigned? = nil,
-        ushort: Ushort? = nil,
-        using: Using? = nil,
-        utf8JSONReader: Utf8JSONReader? = nil,
-        utf8JSONWriter: Utf8JSONWriter? = nil,
-        uuid: UUIDClass? = nil,
-        virtual: Virtual? = nil,
-        void: Void? = nil,
-        volatile: Volatile? = nil,
-        wcharT: WcharT? = nil,
-        with: With? = nil,
-        xor: Xor? = nil,
-        xorEq: XorEq? = nil,
-        yes: Yes? = nil,
-        yield: Yield? = nil
-    ) -> Obj5 {
-        return Obj5(
-            dummy: dummy ?? self.dummy,
-            obj5Unowned: obj5Unowned ?? self.obj5Unowned,
-            obj5Var: obj5Var ?? self.obj5Var,
-            obj5Weak: obj5Weak ?? self.obj5Weak,
-            obj5Where: obj5Where ?? self.obj5Where,
-            obj5While: obj5While ?? self.obj5While,
-            obj5WillSet: obj5WillSet ?? self.obj5WillSet,
-            union: union ?? self.union,
-            unsafe: unsafe ?? self.unsafe,
-            unsigned: unsigned ?? self.unsigned,
-            ushort: ushort ?? self.ushort,
-            using: using ?? self.using,
-            utf8JSONReader: utf8JSONReader ?? self.utf8JSONReader,
-            utf8JSONWriter: utf8JSONWriter ?? self.utf8JSONWriter,
-            uuid: uuid ?? self.uuid,
-            virtual: virtual ?? self.virtual,
-            void: void ?? self.void,
-            volatile: volatile ?? self.volatile,
-            wcharT: wcharT ?? self.wcharT,
-            with: with ?? self.with,
-            xor: xor ?? self.xor,
-            xorEq: xorEq ?? self.xorEq,
-            yes: yes ?? self.yes,
-            yield: yield ?? self.yield
+        typeid: Int? = nil
+    ) -> Typeid {
+        return Typeid(
+            typeid: typeid ?? self.typeid
         )
     }
 
@@ -14498,20 +14498,20 @@ extension Obj5 {
     }
 }
 
-// MARK: - Unowned
-struct Unowned: Codable {
-    let unownedUnowned: Int
+// MARK: - Typename
+struct Typename: Codable {
+    let typename: Int
 
     enum CodingKeys: String, CodingKey {
-        case unownedUnowned = "unowned"
+        case typename = "typename"
     }
 }
 
-// MARK: Unowned convenience initializers and mutators
+// MARK: Typename convenience initializers and mutators
 
-extension Unowned {
+extension Typename {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Unowned.self, from: data)
+        self = try newJSONDecoder().decode(Typename.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14526,10 +14526,10 @@ extension Unowned {
     }
 
     func with(
-        unownedUnowned: Int? = nil
-    ) -> Unowned {
-        return Unowned(
-            unownedUnowned: unownedUnowned ?? self.unownedUnowned
+        typename: Int? = nil
+    ) -> Typename {
+        return Typename(
+            typename: typename ?? self.typename
         )
     }
 
@@ -14542,20 +14542,20 @@ extension Unowned {
     }
 }
 
-// MARK: - Var
-struct Var: Codable {
-    let varVar: Int
+// MARK: - Typeof
+struct Typeof: Codable {
+    let typeof: Int
 
     enum CodingKeys: String, CodingKey {
-        case varVar = "var"
+        case typeof = "typeof"
     }
 }
 
-// MARK: Var convenience initializers and mutators
+// MARK: Typeof convenience initializers and mutators
 
-extension Var {
+extension Typeof {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Var.self, from: data)
+        self = try newJSONDecoder().decode(Typeof.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14570,10 +14570,10 @@ extension Var {
     }
 
     func with(
-        varVar: Int? = nil
-    ) -> Var {
-        return Var(
-            varVar: varVar ?? self.varVar
+        typeof: Int? = nil
+    ) -> Typeof {
+        return Typeof(
+            typeof: typeof ?? self.typeof
         )
     }
 
@@ -14586,20 +14586,20 @@ extension Var {
     }
 }
 
-// MARK: - Weak
-struct Weak: Codable {
-    let weakWeak: Int
+// MARK: - Uint
+struct Uint: Codable {
+    let uint: Int
 
     enum CodingKeys: String, CodingKey {
-        case weakWeak = "weak"
+        case uint = "uint"
     }
 }
 
-// MARK: Weak convenience initializers and mutators
+// MARK: Uint convenience initializers and mutators
 
-extension Weak {
+extension Uint {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Weak.self, from: data)
+        self = try newJSONDecoder().decode(Uint.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14614,10 +14614,10 @@ extension Weak {
     }
 
     func with(
-        weakWeak: Int? = nil
-    ) -> Weak {
-        return Weak(
-            weakWeak: weakWeak ?? self.weakWeak
+        uint: Int? = nil
+    ) -> Uint {
+        return Uint(
+            uint: uint ?? self.uint
         )
     }
 
@@ -14630,20 +14630,20 @@ extension Weak {
     }
 }
 
-// MARK: - Where
-struct Where: Codable {
-    let whereWhere: Int
+// MARK: - Ulong
+struct Ulong: Codable {
+    let ulong: Int
 
     enum CodingKeys: String, CodingKey {
-        case whereWhere = "where"
+        case ulong = "ulong"
     }
 }
 
-// MARK: Where convenience initializers and mutators
+// MARK: Ulong convenience initializers and mutators
 
-extension Where {
+extension Ulong {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(Where.self, from: data)
+        self = try newJSONDecoder().decode(Ulong.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14658,10 +14658,10 @@ extension Where {
     }
 
     func with(
-        whereWhere: Int? = nil
-    ) -> Where {
-        return Where(
-            whereWhere: whereWhere ?? self.whereWhere
+        ulong: Int? = nil
+    ) -> Ulong {
+        return Ulong(
+            ulong: ulong ?? self.ulong
         )
     }
 
@@ -14674,20 +14674,20 @@ extension Where {
     }
 }
 
-// MARK: - While
-struct While: Codable {
-    let whileWhile: Int
+// MARK: - Unchecked
+struct Unchecked: Codable {
+    let unchecked: Int
 
     enum CodingKeys: String, CodingKey {
-        case whileWhile = "while"
+        case unchecked = "unchecked"
     }
 }
 
-// MARK: While convenience initializers and mutators
+// MARK: Unchecked convenience initializers and mutators
 
-extension While {
+extension Unchecked {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(While.self, from: data)
+        self = try newJSONDecoder().decode(Unchecked.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14702,10 +14702,10 @@ extension While {
     }
 
     func with(
-        whileWhile: Int? = nil
-    ) -> While {
-        return While(
-            whileWhile: whileWhile ?? self.whileWhile
+        unchecked: Int? = nil
+    ) -> Unchecked {
+        return Unchecked(
+            unchecked: unchecked ?? self.unchecked
         )
     }
 
@@ -14718,20 +14718,20 @@ extension While {
     }
 }
 
-// MARK: - WillSet
-struct WillSet: Codable {
-    let willSetWillSet: Int
+// MARK: - Undefined
+struct Undefined: Codable {
+    let undefined: Int
 
     enum CodingKeys: String, CodingKey {
-        case willSetWillSet = "willSet"
+        case undefined = "undefined"
     }
 }
 
-// MARK: WillSet convenience initializers and mutators
+// MARK: Undefined convenience initializers and mutators
 
-extension WillSet {
+extension Undefined {
     init(data: Data) throws {
-        self = try newJSONDecoder().decode(WillSet.self, from: data)
+        self = try newJSONDecoder().decode(Undefined.self, from: data)
     }
 
     init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14746,10 +14746,10 @@ extension WillSet {
     }
 
     func with(
-        willSetWillSet: Int? = nil
-    ) -> WillSet {
-        return WillSet(
-            willSetWillSet: willSetWillSet ?? self.willSetWillSet
+        undefined: Int? = nil
+    ) -> Undefined {
+        return Undefined(
+            undefined: undefined ?? self.undefined
         )
     }
 
diff --git a/base/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
index 22900b6..afe97f6 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
@@ -129,13 +129,6 @@ extension TopLevel {
     let dateOnly: DateOnly
     let dateOnlyConverter: DateOnlyConverter
     let dateParseHandling: DateParseHandling
-    let dateTime: DateTime
-    let dateTimeStyles: DateTimeStyles
-    let debugger: Debugger
-    let decimal: Decimal
-    let declare: Declare
-    let decltype: Decltype
-    let decodeString: DecodeString
     let dummy: Int
     let empty: Empty
     let imaginery: Imaginery
@@ -203,13 +196,6 @@ extension TopLevel {
         case dateOnly = "DateOnly"
         case dateOnlyConverter = "DateOnlyConverter"
         case dateParseHandling = "date_parse_handling"
-        case dateTime = "DateTime"
-        case dateTimeStyles = "DateTimeStyles"
-        case debugger = "debugger"
-        case decimal = "decimal"
-        case declare = "declare"
-        case decltype = "decltype"
-        case decodeString = "decode_string"
         case dummy = "dummy"
         case empty = "_"
         case imaginery = "_Imaginery"
@@ -229,7 +215,7 @@ extension TopLevel {
         case purpleClass = "class"
     }
 
-    init(abstract: Abstract, alignas: Alignas, alignof: Alignof, and: And, andEq: AndEq, any: AnyClass, array: Array, asm: ASM, assert: Assert, async: Async, atomic: Atomic, atomicCancel: AtomicCancel, atomicCommit: AtomicCommit, atomicNoexcept: AtomicNoexcept, auto: Auto, base: Base, bitand: Bitand, bitor: Bitor, bool: BOOLClass, boolean: Boolean, bycopy: Bycopy, byref: Byref, byte: Byte, chan: Chan, char: Char, char16T: Char16T, char32T: Char32T, checked: Checked, clone: Clone, coAwait: CoAwait, coReturn: CoReturn, coYield: CoYield, compl: Compl, complex: Complex, concept: Concept, console: Console, const: Const, constCast: ConstCast, constexpr: Constexpr, constructor: Constructor, convert: Convert, converter: Converter, cultureInfo: CultureInfo, date: DateClass, dateFormatter: DateFormatterClass, dateOnly: DateOnly, dateOnlyConverter: DateOnlyConverter, dateParseHandling: DateParseHandling, dateTime: DateTime, dateTimeStyles: DateTimeStyles, debugger: Debugger, decimal: Decimal, declare: Declare, decltype: Decltype, decodeString: DecodeString, dummy: Int, empty: Empty, imaginery: Imaginery, obj1Any: Obj1Any, obj1As: As, obj1Associatedtype: Associatedtype, obj1Associativity: Associativity, obj1Await: Await, obj1Bool: BoolClass, obj1Break: Break, obj1Case: Case, obj1Catch: Catch, obj1Class: Class, obj1Continue: Continue, obj1Convenience: Convenience, purpleBool: Obj1Bool, purpleClass: ClassClass) {
+    init(abstract: Abstract, alignas: Alignas, alignof: Alignof, and: And, andEq: AndEq, any: AnyClass, array: Array, asm: ASM, assert: Assert, async: Async, atomic: Atomic, atomicCancel: AtomicCancel, atomicCommit: AtomicCommit, atomicNoexcept: AtomicNoexcept, auto: Auto, base: Base, bitand: Bitand, bitor: Bitor, bool: BOOLClass, boolean: Boolean, bycopy: Bycopy, byref: Byref, byte: Byte, chan: Chan, char: Char, char16T: Char16T, char32T: Char32T, checked: Checked, clone: Clone, coAwait: CoAwait, coReturn: CoReturn, coYield: CoYield, compl: Compl, complex: Complex, concept: Concept, console: Console, const: Const, constCast: ConstCast, constexpr: Constexpr, constructor: Constructor, convert: Convert, converter: Converter, cultureInfo: CultureInfo, date: DateClass, dateFormatter: DateFormatterClass, dateOnly: DateOnly, dateOnlyConverter: DateOnlyConverter, dateParseHandling: DateParseHandling, dummy: Int, empty: Empty, imaginery: Imaginery, obj1Any: Obj1Any, obj1As: As, obj1Associatedtype: Associatedtype, obj1Associativity: Associativity, obj1Await: Await, obj1Bool: BoolClass, obj1Break: Break, obj1Case: Case, obj1Catch: Catch, obj1Class: Class, obj1Continue: Continue, obj1Convenience: Convenience, purpleBool: Obj1Bool, purpleClass: ClassClass) {
         self.abstract = abstract
         self.alignas = alignas
         self.alignof = alignof
@@ -278,13 +264,6 @@ extension TopLevel {
         self.dateOnly = dateOnly
         self.dateOnlyConverter = dateOnlyConverter
         self.dateParseHandling = dateParseHandling
-        self.dateTime = dateTime
-        self.dateTimeStyles = dateTimeStyles
-        self.debugger = debugger
-        self.decimal = decimal
-        self.declare = declare
-        self.decltype = decltype
-        self.decodeString = decodeString
         self.dummy = dummy
         self.empty = empty
         self.imaginery = imaginery
@@ -310,7 +289,7 @@ extension TopLevel {
 extension Obj1 {
     convenience init(data: Data) throws {
         let me = try newJSONDecoder().decode(Obj1.self, from: data)
-        self.init(abstract: me.abstract, alignas: me.alignas, alignof: me.alignof, and: me.and, andEq: me.andEq, any: me.any, array: me.array, asm: me.asm, assert: me.assert, async: me.async, atomic: me.atomic, atomicCancel: me.atomicCancel, atomicCommit: me.atomicCommit, atomicNoexcept: me.atomicNoexcept, auto: me.auto, base: me.base, bitand: me.bitand, bitor: me.bitor, bool: me.bool, boolean: me.boolean, bycopy: me.bycopy, byref: me.byref, byte: me.byte, chan: me.chan, char: me.char, char16T: me.char16T, char32T: me.char32T, checked: me.checked, clone: me.clone, coAwait: me.coAwait, coReturn: me.coReturn, coYield: me.coYield, compl: me.compl, complex: me.complex, concept: me.concept, console: me.console, const: me.const, constCast: me.constCast, constexpr: me.constexpr, constructor: me.constructor, convert: me.convert, converter: me.converter, cultureInfo: me.cultureInfo, date: me.date, dateFormatter: me.dateFormatter, dateOnly: me.dateOnly, dateOnlyConverter: me.dateOnlyConverter, dateParseHandling: me.dateParseHandling, dateTime: me.dateTime, dateTimeStyles: me.dateTimeStyles, debugger: me.debugger, decimal: me.decimal, declare: me.declare, decltype: me.decltype, decodeString: me.decodeString, dummy: me.dummy, empty: me.empty, imaginery: me.imaginery, obj1Any: me.obj1Any, obj1As: me.obj1As, obj1Associatedtype: me.obj1Associatedtype, obj1Associativity: me.obj1Associativity, obj1Await: me.obj1Await, obj1Bool: me.obj1Bool, obj1Break: me.obj1Break, obj1Case: me.obj1Case, obj1Catch: me.obj1Catch, obj1Class: me.obj1Class, obj1Continue: me.obj1Continue, obj1Convenience: me.obj1Convenience, purpleBool: me.purpleBool, purpleClass: me.purpleClass)
+        self.init(abstract: me.abstract, alignas: me.alignas, alignof: me.alignof, and: me.and, andEq: me.andEq, any: me.any, array: me.array, asm: me.asm, assert: me.assert, async: me.async, atomic: me.atomic, atomicCancel: me.atomicCancel, atomicCommit: me.atomicCommit, atomicNoexcept: me.atomicNoexcept, auto: me.auto, base: me.base, bitand: me.bitand, bitor: me.bitor, bool: me.bool, boolean: me.boolean, bycopy: me.bycopy, byref: me.byref, byte: me.byte, chan: me.chan, char: me.char, char16T: me.char16T, char32T: me.char32T, checked: me.checked, clone: me.clone, coAwait: me.coAwait, coReturn: me.coReturn, coYield: me.coYield, compl: me.compl, complex: me.complex, concept: me.concept, console: me.console, const: me.const, constCast: me.constCast, constexpr: me.constexpr, constructor: me.constructor, convert: me.convert, converter: me.converter, cultureInfo: me.cultureInfo, date: me.date, dateFormatter: me.dateFormatter, dateOnly: me.dateOnly, dateOnlyConverter: me.dateOnlyConverter, dateParseHandling: me.dateParseHandling, dummy: me.dummy, empty: me.empty, imaginery: me.imaginery, obj1Any: me.obj1Any, obj1As: me.obj1As, obj1Associatedtype: me.obj1Associatedtype, obj1Associativity: me.obj1Associativity, obj1Await: me.obj1Await, obj1Bool: me.obj1Bool, obj1Break: me.obj1Break, obj1Case: me.obj1Case, obj1Catch: me.obj1Catch, obj1Class: me.obj1Class, obj1Continue: me.obj1Continue, obj1Convenience: me.obj1Convenience, purpleBool: me.purpleBool, purpleClass: me.purpleClass)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -373,13 +352,6 @@ extension Obj1 {
         dateOnly: DateOnly? = nil,
         dateOnlyConverter: DateOnlyConverter? = nil,
         dateParseHandling: DateParseHandling? = nil,
-        dateTime: DateTime? = nil,
-        dateTimeStyles: DateTimeStyles? = nil,
-        debugger: Debugger? = nil,
-        decimal: Decimal? = nil,
-        declare: Declare? = nil,
-        decltype: Decltype? = nil,
-        decodeString: DecodeString? = nil,
         dummy: Int? = nil,
         empty: Empty? = nil,
         imaginery: Imaginery? = nil,
@@ -447,13 +419,6 @@ extension Obj1 {
             dateOnly: dateOnly ?? self.dateOnly,
             dateOnlyConverter: dateOnlyConverter ?? self.dateOnlyConverter,
             dateParseHandling: dateParseHandling ?? self.dateParseHandling,
-            dateTime: dateTime ?? self.dateTime,
-            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles,
-            debugger: debugger ?? self.debugger,
-            decimal: decimal ?? self.decimal,
-            declare: declare ?? self.declare,
-            decltype: decltype ?? self.decltype,
-            decodeString: decodeString ?? self.decodeString,
             dummy: dummy ?? self.dummy,
             empty: empty ?? self.empty,
             imaginery: imaginery ?? self.imaginery,
@@ -2835,25 +2800,25 @@ extension DateParseHandling {
     }
 }
 
-// MARK: - DateTime
-@objcMembers class DateTime: NSObject, Codable {
-    let dateTime: Date
+// MARK: - Empty
+@objcMembers class Empty: NSObject, Codable {
+    let empty: Int
 
     enum CodingKeys: String, CodingKey {
-        case dateTime = "DateTime"
+        case empty = "_"
     }
 
-    init(dateTime: Date) {
-        self.dateTime = dateTime
+    init(empty: Int) {
+        self.empty = empty
     }
 }
 
-// MARK: DateTime convenience initializers and mutators
+// MARK: Empty convenience initializers and mutators
 
-extension DateTime {
+extension Empty {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(DateTime.self, from: data)
-        self.init(dateTime: me.dateTime)
+        let me = try newJSONDecoder().decode(Empty.self, from: data)
+        self.init(empty: me.empty)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2868,10 +2833,10 @@ extension DateTime {
     }
 
     func with(
-        dateTime: Date? = nil
-    ) -> DateTime {
-        return DateTime(
-            dateTime: dateTime ?? self.dateTime
+        empty: Int? = nil
+    ) -> Empty {
+        return Empty(
+            empty: empty ?? self.empty
         )
     }
 
@@ -2884,25 +2849,25 @@ extension DateTime {
     }
 }
 
-// MARK: - DateTimeStyles
-@objcMembers class DateTimeStyles: NSObject, Codable {
-    let dateTimeStyles: Int
+// MARK: - Imaginery
+@objcMembers class Imaginery: NSObject, Codable {
+    let imaginery: Int
 
     enum CodingKeys: String, CodingKey {
-        case dateTimeStyles = "DateTimeStyles"
+        case imaginery = "_Imaginery"
     }
 
-    init(dateTimeStyles: Int) {
-        self.dateTimeStyles = dateTimeStyles
+    init(imaginery: Int) {
+        self.imaginery = imaginery
     }
 }
 
-// MARK: DateTimeStyles convenience initializers and mutators
+// MARK: Imaginery convenience initializers and mutators
 
-extension DateTimeStyles {
+extension Imaginery {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(DateTimeStyles.self, from: data)
-        self.init(dateTimeStyles: me.dateTimeStyles)
+        let me = try newJSONDecoder().decode(Imaginery.self, from: data)
+        self.init(imaginery: me.imaginery)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2917,10 +2882,10 @@ extension DateTimeStyles {
     }
 
     func with(
-        dateTimeStyles: Int? = nil
-    ) -> DateTimeStyles {
-        return DateTimeStyles(
-            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles
+        imaginery: Int? = nil
+    ) -> Imaginery {
+        return Imaginery(
+            imaginery: imaginery ?? self.imaginery
         )
     }
 
@@ -2933,25 +2898,25 @@ extension DateTimeStyles {
     }
 }
 
-// MARK: - Debugger
-@objcMembers class Debugger: NSObject, Codable {
-    let debugger: Int
+// MARK: - Obj1Any
+@objcMembers class Obj1Any: NSObject, Codable {
+    let any: Int
 
     enum CodingKeys: String, CodingKey {
-        case debugger = "debugger"
+        case any = "any"
     }
 
-    init(debugger: Int) {
-        self.debugger = debugger
+    init(any: Int) {
+        self.any = any
     }
 }
 
-// MARK: Debugger convenience initializers and mutators
+// MARK: Obj1Any convenience initializers and mutators
 
-extension Debugger {
+extension Obj1Any {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Debugger.self, from: data)
-        self.init(debugger: me.debugger)
+        let me = try newJSONDecoder().decode(Obj1Any.self, from: data)
+        self.init(any: me.any)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -2966,10 +2931,10 @@ extension Debugger {
     }
 
     func with(
-        debugger: Int? = nil
-    ) -> Debugger {
-        return Debugger(
-            debugger: debugger ?? self.debugger
+        any: Int? = nil
+    ) -> Obj1Any {
+        return Obj1Any(
+            any: any ?? self.any
         )
     }
 
@@ -2982,25 +2947,25 @@ extension Debugger {
     }
 }
 
-// MARK: - Decimal
-@objcMembers class Decimal: NSObject, Codable {
-    let decimal: Int
+// MARK: - As
+@objcMembers class As: NSObject, Codable {
+    let asAs: Int
 
     enum CodingKeys: String, CodingKey {
-        case decimal = "decimal"
+        case asAs = "as"
     }
 
-    init(decimal: Int) {
-        self.decimal = decimal
+    init(asAs: Int) {
+        self.asAs = asAs
     }
 }
 
-// MARK: Decimal convenience initializers and mutators
+// MARK: As convenience initializers and mutators
 
-extension Decimal {
+extension As {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Decimal.self, from: data)
-        self.init(decimal: me.decimal)
+        let me = try newJSONDecoder().decode(As.self, from: data)
+        self.init(asAs: me.asAs)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3015,10 +2980,10 @@ extension Decimal {
     }
 
     func with(
-        decimal: Int? = nil
-    ) -> Decimal {
-        return Decimal(
-            decimal: decimal ?? self.decimal
+        asAs: Int? = nil
+    ) -> As {
+        return As(
+            asAs: asAs ?? self.asAs
         )
     }
 
@@ -3031,25 +2996,25 @@ extension Decimal {
     }
 }
 
-// MARK: - Declare
-@objcMembers class Declare: NSObject, Codable {
-    let declare: Int
+// MARK: - Associatedtype
+@objcMembers class Associatedtype: NSObject, Codable {
+    let associatedtypeAssociatedtype: Int
 
     enum CodingKeys: String, CodingKey {
-        case declare = "declare"
+        case associatedtypeAssociatedtype = "associatedtype"
     }
 
-    init(declare: Int) {
-        self.declare = declare
+    init(associatedtypeAssociatedtype: Int) {
+        self.associatedtypeAssociatedtype = associatedtypeAssociatedtype
     }
 }
 
-// MARK: Declare convenience initializers and mutators
+// MARK: Associatedtype convenience initializers and mutators
 
-extension Declare {
+extension Associatedtype {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Declare.self, from: data)
-        self.init(declare: me.declare)
+        let me = try newJSONDecoder().decode(Associatedtype.self, from: data)
+        self.init(associatedtypeAssociatedtype: me.associatedtypeAssociatedtype)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3064,10 +3029,10 @@ extension Declare {
     }
 
     func with(
-        declare: Int? = nil
-    ) -> Declare {
-        return Declare(
-            declare: declare ?? self.declare
+        associatedtypeAssociatedtype: Int? = nil
+    ) -> Associatedtype {
+        return Associatedtype(
+            associatedtypeAssociatedtype: associatedtypeAssociatedtype ?? self.associatedtypeAssociatedtype
         )
     }
 
@@ -3080,25 +3045,25 @@ extension Declare {
     }
 }
 
-// MARK: - Decltype
-@objcMembers class Decltype: NSObject, Codable {
-    let decltype: Int
+// MARK: - Associativity
+@objcMembers class Associativity: NSObject, Codable {
+    let associativityAssociativity: Int
 
     enum CodingKeys: String, CodingKey {
-        case decltype = "decltype"
+        case associativityAssociativity = "associativity"
     }
 
-    init(decltype: Int) {
-        self.decltype = decltype
+    init(associativityAssociativity: Int) {
+        self.associativityAssociativity = associativityAssociativity
     }
 }
 
-// MARK: Decltype convenience initializers and mutators
+// MARK: Associativity convenience initializers and mutators
 
-extension Decltype {
+extension Associativity {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Decltype.self, from: data)
-        self.init(decltype: me.decltype)
+        let me = try newJSONDecoder().decode(Associativity.self, from: data)
+        self.init(associativityAssociativity: me.associativityAssociativity)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3113,10 +3078,10 @@ extension Decltype {
     }
 
     func with(
-        decltype: Int? = nil
-    ) -> Decltype {
-        return Decltype(
-            decltype: decltype ?? self.decltype
+        associativityAssociativity: Int? = nil
+    ) -> Associativity {
+        return Associativity(
+            associativityAssociativity: associativityAssociativity ?? self.associativityAssociativity
         )
     }
 
@@ -3129,25 +3094,25 @@ extension Decltype {
     }
 }
 
-// MARK: - DecodeString
-@objcMembers class DecodeString: NSObject, Codable {
-    let decodeString: Int
+// MARK: - Await
+@objcMembers class Await: NSObject, Codable {
+    let awaitAwait: Int
 
     enum CodingKeys: String, CodingKey {
-        case decodeString = "decode_string"
+        case awaitAwait = "await"
     }
 
-    init(decodeString: Int) {
-        self.decodeString = decodeString
+    init(awaitAwait: Int) {
+        self.awaitAwait = awaitAwait
     }
 }
 
-// MARK: DecodeString convenience initializers and mutators
+// MARK: Await convenience initializers and mutators
 
-extension DecodeString {
+extension Await {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(DecodeString.self, from: data)
-        self.init(decodeString: me.decodeString)
+        let me = try newJSONDecoder().decode(Await.self, from: data)
+        self.init(awaitAwait: me.awaitAwait)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3162,10 +3127,10 @@ extension DecodeString {
     }
 
     func with(
-        decodeString: Int? = nil
-    ) -> DecodeString {
-        return DecodeString(
-            decodeString: decodeString ?? self.decodeString
+        awaitAwait: Int? = nil
+    ) -> Await {
+        return Await(
+            awaitAwait: awaitAwait ?? self.awaitAwait
         )
     }
 
@@ -3178,25 +3143,25 @@ extension DecodeString {
     }
 }
 
-// MARK: - Empty
-@objcMembers class Empty: NSObject, Codable {
-    let empty: Int
+// MARK: - BoolClass
+@objcMembers class BoolClass: NSObject, Codable {
+    let bool: Int
 
     enum CodingKeys: String, CodingKey {
-        case empty = "_"
+        case bool = "_Bool"
     }
 
-    init(empty: Int) {
-        self.empty = empty
+    init(bool: Int) {
+        self.bool = bool
     }
 }
 
-// MARK: Empty convenience initializers and mutators
+// MARK: BoolClass convenience initializers and mutators
 
-extension Empty {
+extension BoolClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Empty.self, from: data)
-        self.init(empty: me.empty)
+        let me = try newJSONDecoder().decode(BoolClass.self, from: data)
+        self.init(bool: me.bool)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3211,11 +3176,11 @@ extension Empty {
     }
 
     func with(
-        empty: Int? = nil
-    ) -> Empty {
-        return Empty(
-            empty: empty ?? self.empty
-        )
+        bool: Int? = nil
+    ) -> BoolClass {
+        return BoolClass(
+            bool: bool ?? self.bool
+        )
     }
 
     func jsonData() throws -> Data {
@@ -3227,25 +3192,25 @@ extension Empty {
     }
 }
 
-// MARK: - Imaginery
-@objcMembers class Imaginery: NSObject, Codable {
-    let imaginery: Int
+// MARK: - Break
+@objcMembers class Break: NSObject, Codable {
+    let breakBreak: Int
 
     enum CodingKeys: String, CodingKey {
-        case imaginery = "_Imaginery"
+        case breakBreak = "break"
     }
 
-    init(imaginery: Int) {
-        self.imaginery = imaginery
+    init(breakBreak: Int) {
+        self.breakBreak = breakBreak
     }
 }
 
-// MARK: Imaginery convenience initializers and mutators
+// MARK: Break convenience initializers and mutators
 
-extension Imaginery {
+extension Break {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Imaginery.self, from: data)
-        self.init(imaginery: me.imaginery)
+        let me = try newJSONDecoder().decode(Break.self, from: data)
+        self.init(breakBreak: me.breakBreak)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3260,10 +3225,10 @@ extension Imaginery {
     }
 
     func with(
-        imaginery: Int? = nil
-    ) -> Imaginery {
-        return Imaginery(
-            imaginery: imaginery ?? self.imaginery
+        breakBreak: Int? = nil
+    ) -> Break {
+        return Break(
+            breakBreak: breakBreak ?? self.breakBreak
         )
     }
 
@@ -3276,25 +3241,25 @@ extension Imaginery {
     }
 }
 
-// MARK: - Obj1Any
-@objcMembers class Obj1Any: NSObject, Codable {
-    let any: Int
+// MARK: - Case
+@objcMembers class Case: NSObject, Codable {
+    let caseCase: Int
 
     enum CodingKeys: String, CodingKey {
-        case any = "any"
+        case caseCase = "case"
     }
 
-    init(any: Int) {
-        self.any = any
+    init(caseCase: Int) {
+        self.caseCase = caseCase
     }
 }
 
-// MARK: Obj1Any convenience initializers and mutators
+// MARK: Case convenience initializers and mutators
 
-extension Obj1Any {
+extension Case {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj1Any.self, from: data)
-        self.init(any: me.any)
+        let me = try newJSONDecoder().decode(Case.self, from: data)
+        self.init(caseCase: me.caseCase)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3309,10 +3274,10 @@ extension Obj1Any {
     }
 
     func with(
-        any: Int? = nil
-    ) -> Obj1Any {
-        return Obj1Any(
-            any: any ?? self.any
+        caseCase: Int? = nil
+    ) -> Case {
+        return Case(
+            caseCase: caseCase ?? self.caseCase
         )
     }
 
@@ -3325,25 +3290,25 @@ extension Obj1Any {
     }
 }
 
-// MARK: - As
-@objcMembers class As: NSObject, Codable {
-    let asAs: Int
+// MARK: - Catch
+@objcMembers class Catch: NSObject, Codable {
+    let catchCatch: Int
 
     enum CodingKeys: String, CodingKey {
-        case asAs = "as"
+        case catchCatch = "catch"
     }
 
-    init(asAs: Int) {
-        self.asAs = asAs
+    init(catchCatch: Int) {
+        self.catchCatch = catchCatch
     }
 }
 
-// MARK: As convenience initializers and mutators
+// MARK: Catch convenience initializers and mutators
 
-extension As {
+extension Catch {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(As.self, from: data)
-        self.init(asAs: me.asAs)
+        let me = try newJSONDecoder().decode(Catch.self, from: data)
+        self.init(catchCatch: me.catchCatch)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3358,10 +3323,10 @@ extension As {
     }
 
     func with(
-        asAs: Int? = nil
-    ) -> As {
-        return As(
-            asAs: asAs ?? self.asAs
+        catchCatch: Int? = nil
+    ) -> Catch {
+        return Catch(
+            catchCatch: catchCatch ?? self.catchCatch
         )
     }
 
@@ -3374,25 +3339,25 @@ extension As {
     }
 }
 
-// MARK: - Associatedtype
-@objcMembers class Associatedtype: NSObject, Codable {
-    let associatedtypeAssociatedtype: Int
+// MARK: - Class
+@objcMembers class Class: NSObject, Codable {
+    let classClass: Int
 
     enum CodingKeys: String, CodingKey {
-        case associatedtypeAssociatedtype = "associatedtype"
+        case classClass = "Class"
     }
 
-    init(associatedtypeAssociatedtype: Int) {
-        self.associatedtypeAssociatedtype = associatedtypeAssociatedtype
+    init(classClass: Int) {
+        self.classClass = classClass
     }
 }
 
-// MARK: Associatedtype convenience initializers and mutators
+// MARK: Class convenience initializers and mutators
 
-extension Associatedtype {
+extension Class {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Associatedtype.self, from: data)
-        self.init(associatedtypeAssociatedtype: me.associatedtypeAssociatedtype)
+        let me = try newJSONDecoder().decode(Class.self, from: data)
+        self.init(classClass: me.classClass)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3407,10 +3372,10 @@ extension Associatedtype {
     }
 
     func with(
-        associatedtypeAssociatedtype: Int? = nil
-    ) -> Associatedtype {
-        return Associatedtype(
-            associatedtypeAssociatedtype: associatedtypeAssociatedtype ?? self.associatedtypeAssociatedtype
+        classClass: Int? = nil
+    ) -> Class {
+        return Class(
+            classClass: classClass ?? self.classClass
         )
     }
 
@@ -3423,25 +3388,25 @@ extension Associatedtype {
     }
 }
 
-// MARK: - Associativity
-@objcMembers class Associativity: NSObject, Codable {
-    let associativityAssociativity: Int
+// MARK: - Continue
+@objcMembers class Continue: NSObject, Codable {
+    let continueContinue: Int
 
     enum CodingKeys: String, CodingKey {
-        case associativityAssociativity = "associativity"
+        case continueContinue = "continue"
     }
 
-    init(associativityAssociativity: Int) {
-        self.associativityAssociativity = associativityAssociativity
+    init(continueContinue: Int) {
+        self.continueContinue = continueContinue
     }
 }
 
-// MARK: Associativity convenience initializers and mutators
+// MARK: Continue convenience initializers and mutators
 
-extension Associativity {
+extension Continue {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Associativity.self, from: data)
-        self.init(associativityAssociativity: me.associativityAssociativity)
+        let me = try newJSONDecoder().decode(Continue.self, from: data)
+        self.init(continueContinue: me.continueContinue)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3456,10 +3421,10 @@ extension Associativity {
     }
 
     func with(
-        associativityAssociativity: Int? = nil
-    ) -> Associativity {
-        return Associativity(
-            associativityAssociativity: associativityAssociativity ?? self.associativityAssociativity
+        continueContinue: Int? = nil
+    ) -> Continue {
+        return Continue(
+            continueContinue: continueContinue ?? self.continueContinue
         )
     }
 
@@ -3472,25 +3437,25 @@ extension Associativity {
     }
 }
 
-// MARK: - Await
-@objcMembers class Await: NSObject, Codable {
-    let awaitAwait: Int
+// MARK: - Convenience
+@objcMembers class Convenience: NSObject, Codable {
+    let convenienceConvenience: Int
 
     enum CodingKeys: String, CodingKey {
-        case awaitAwait = "await"
+        case convenienceConvenience = "convenience"
     }
 
-    init(awaitAwait: Int) {
-        self.awaitAwait = awaitAwait
+    init(convenienceConvenience: Int) {
+        self.convenienceConvenience = convenienceConvenience
     }
 }
 
-// MARK: Await convenience initializers and mutators
+// MARK: Convenience convenience initializers and mutators
 
-extension Await {
+extension Convenience {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Await.self, from: data)
-        self.init(awaitAwait: me.awaitAwait)
+        let me = try newJSONDecoder().decode(Convenience.self, from: data)
+        self.init(convenienceConvenience: me.convenienceConvenience)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3505,10 +3470,10 @@ extension Await {
     }
 
     func with(
-        awaitAwait: Int? = nil
-    ) -> Await {
-        return Await(
-            awaitAwait: awaitAwait ?? self.awaitAwait
+        convenienceConvenience: Int? = nil
+    ) -> Convenience {
+        return Convenience(
+            convenienceConvenience: convenienceConvenience ?? self.convenienceConvenience
         )
     }
 
@@ -3521,12 +3486,12 @@ extension Await {
     }
 }
 
-// MARK: - BoolClass
-@objcMembers class BoolClass: NSObject, Codable {
+// MARK: - Obj1Bool
+@objcMembers class Obj1Bool: NSObject, Codable {
     let bool: Int
 
     enum CodingKeys: String, CodingKey {
-        case bool = "_Bool"
+        case bool = "bool"
     }
 
     init(bool: Int) {
@@ -3534,11 +3499,11 @@ extension Await {
     }
 }
 
-// MARK: BoolClass convenience initializers and mutators
+// MARK: Obj1Bool convenience initializers and mutators
 
-extension BoolClass {
+extension Obj1Bool {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(BoolClass.self, from: data)
+        let me = try newJSONDecoder().decode(Obj1Bool.self, from: data)
         self.init(bool: me.bool)
     }
 
@@ -3555,8 +3520,8 @@ extension BoolClass {
 
     func with(
         bool: Int? = nil
-    ) -> BoolClass {
-        return BoolClass(
+    ) -> Obj1Bool {
+        return Obj1Bool(
             bool: bool ?? self.bool
         )
     }
@@ -3570,25 +3535,25 @@ extension BoolClass {
     }
 }
 
-// MARK: - Break
-@objcMembers class Break: NSObject, Codable {
-    let breakBreak: Int
+// MARK: - ClassClass
+@objcMembers class ClassClass: NSObject, Codable {
+    let classClass: Int
 
     enum CodingKeys: String, CodingKey {
-        case breakBreak = "break"
+        case classClass = "class"
     }
 
-    init(breakBreak: Int) {
-        self.breakBreak = breakBreak
+    init(classClass: Int) {
+        self.classClass = classClass
     }
 }
 
-// MARK: Break convenience initializers and mutators
+// MARK: ClassClass convenience initializers and mutators
 
-extension Break {
+extension ClassClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Break.self, from: data)
-        self.init(breakBreak: me.breakBreak)
+        let me = try newJSONDecoder().decode(ClassClass.self, from: data)
+        self.init(classClass: me.classClass)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3603,10 +3568,10 @@ extension Break {
     }
 
     func with(
-        breakBreak: Int? = nil
-    ) -> Break {
-        return Break(
-            breakBreak: breakBreak ?? self.breakBreak
+        classClass: Int? = nil
+    ) -> ClassClass {
+        return ClassClass(
+            classClass: classClass ?? self.classClass
         )
     }
 
@@ -3619,74 +3584,217 @@ extension Break {
     }
 }
 
-// MARK: - Case
-@objcMembers class Case: NSObject, Codable {
-    let caseCase: Int
-
-    enum CodingKeys: String, CodingKey {
-        case caseCase = "case"
-    }
-
-    init(caseCase: Int) {
-        self.caseCase = caseCase
-    }
-}
-
-// MARK: Case convenience initializers and mutators
-
-extension Case {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Case.self, from: data)
-        self.init(caseCase: me.caseCase)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        caseCase: Int? = nil
-    ) -> Case {
-        return Case(
-            caseCase: caseCase ?? self.caseCase
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Catch
-@objcMembers class Catch: NSObject, Codable {
-    let catchCatch: Int
+// MARK: - Obj2
+@objcMembers class Obj2: NSObject, Codable {
+    let dateTime: DateTime
+    let dateTimeStyles: DateTimeStyles
+    let debugger: Debugger
+    let decimal: Decimal
+    let declare: Declare
+    let decltype: Decltype
+    let decodeString: DecodeString
+    let def: Def
+    let del: Del
+    let delegate: Delegate
+    let delete: Delete
+    let dict: Dict
+    let dictionary: Dictionary
+    let double: DoubleClass
+    let dummy: Int
+    let dynamicCast: DynamicCast
+    let elif: Elif
+    let encodeQuickType: EncodeQuickType
+    let enumValues: EnumValues
+    let equalityContract: EqualityContract
+    let event: Event
+    let except: Except
+    let exception: Exception
+    let explicit: Explicit
+    let export: Export
+    let exposing: Exposing
+    let extends: Extends
+    let extern: Extern
+    let finally: Finally
+    let fixed: Fixed
+    let float: Float
+    let foreach: Foreach
+    let formatException: FormatException
+    let friend: Friend
+    let from: From
+    let fromJSON: FromJSON
+    let function: Function
+    let global: Global
+    let go: Go
+    let goto: Goto
+    let hasOwnProperty: HasOwnProperty
+    let hashCode: HashCode
+    let id: ID
+    let imp: Imp
+    let implements: Implements
+    let implicit: Implicit
+    let obj2Default: Default
+    let obj2Defer: Defer
+    let obj2Deinit: Deinit
+    let obj2DidSet: DidSet
+    let obj2Do: Do
+    let obj2Dynamic: Dynamic
+    let obj2Else: Else
+    let obj2Enum: Enum
+    let obj2Extension: Extension
+    let obj2Fallthrough: Fallthrough
+    let obj2False: False
+    let obj2Fileprivate: Fileprivate
+    let obj2Final: Final
+    let obj2For: For
+    let obj2Func: Func
+    let obj2Get: Get
+    let obj2Guard: Guard
+    let obj2If: If
+    let purpleFalse: FalseClass
 
     enum CodingKeys: String, CodingKey {
-        case catchCatch = "catch"
+        case dateTime = "DateTime"
+        case dateTimeStyles = "DateTimeStyles"
+        case debugger = "debugger"
+        case decimal = "decimal"
+        case declare = "declare"
+        case decltype = "decltype"
+        case decodeString = "decode_string"
+        case def = "def"
+        case del = "del"
+        case delegate = "delegate"
+        case delete = "delete"
+        case dict = "dict"
+        case dictionary = "dictionary"
+        case double = "double"
+        case dummy = "dummy"
+        case dynamicCast = "dynamic_cast"
+        case elif = "elif"
+        case encodeQuickType = "encode_quick_type"
+        case enumValues = "EnumValues"
+        case equalityContract = "equalityContract"
+        case event = "event"
+        case except = "except"
+        case exception = "exception"
+        case explicit = "explicit"
+        case export = "export"
+        case exposing = "exposing"
+        case extends = "extends"
+        case extern = "extern"
+        case finally = "finally"
+        case fixed = "fixed"
+        case float = "float"
+        case foreach = "foreach"
+        case formatException = "FormatException"
+        case friend = "friend"
+        case from = "from"
+        case fromJSON = "from_json"
+        case function = "function"
+        case global = "global"
+        case go = "go"
+        case goto = "goto"
+        case hasOwnProperty = "hasOwnProperty"
+        case hashCode = "hashCode"
+        case id = "id"
+        case imp = "IMP"
+        case implements = "implements"
+        case implicit = "implicit"
+        case obj2Default = "default"
+        case obj2Defer = "defer"
+        case obj2Deinit = "deinit"
+        case obj2DidSet = "didSet"
+        case obj2Do = "do"
+        case obj2Dynamic = "dynamic"
+        case obj2Else = "else"
+        case obj2Enum = "enum"
+        case obj2Extension = "extension"
+        case obj2Fallthrough = "fallthrough"
+        case obj2False = "False"
+        case obj2Fileprivate = "fileprivate"
+        case obj2Final = "final"
+        case obj2For = "for"
+        case obj2Func = "func"
+        case obj2Get = "get"
+        case obj2Guard = "guard"
+        case obj2If = "if"
+        case purpleFalse = "false"
     }
 
-    init(catchCatch: Int) {
-        self.catchCatch = catchCatch
+    init(dateTime: DateTime, dateTimeStyles: DateTimeStyles, debugger: Debugger, decimal: Decimal, declare: Declare, decltype: Decltype, decodeString: DecodeString, def: Def, del: Del, delegate: Delegate, delete: Delete, dict: Dict, dictionary: Dictionary, double: DoubleClass, dummy: Int, dynamicCast: DynamicCast, elif: Elif, encodeQuickType: EncodeQuickType, enumValues: EnumValues, equalityContract: EqualityContract, event: Event, except: Except, exception: Exception, explicit: Explicit, export: Export, exposing: Exposing, extends: Extends, extern: Extern, finally: Finally, fixed: Fixed, float: Float, foreach: Foreach, formatException: FormatException, friend: Friend, from: From, fromJSON: FromJSON, function: Function, global: Global, go: Go, goto: Goto, hasOwnProperty: HasOwnProperty, hashCode: HashCode, id: ID, imp: Imp, implements: Implements, implicit: Implicit, obj2Default: Default, obj2Defer: Defer, obj2Deinit: Deinit, obj2DidSet: DidSet, obj2Do: Do, obj2Dynamic: Dynamic, obj2Else: Else, obj2Enum: Enum, obj2Extension: Extension, obj2Fallthrough: Fallthrough, obj2False: False, obj2Fileprivate: Fileprivate, obj2Final: Final, obj2For: For, obj2Func: Func, obj2Get: Get, obj2Guard: Guard, obj2If: If, purpleFalse: FalseClass) {
+        self.dateTime = dateTime
+        self.dateTimeStyles = dateTimeStyles
+        self.debugger = debugger
+        self.decimal = decimal
+        self.declare = declare
+        self.decltype = decltype
+        self.decodeString = decodeString
+        self.def = def
+        self.del = del
+        self.delegate = delegate
+        self.delete = delete
+        self.dict = dict
+        self.dictionary = dictionary
+        self.double = double
+        self.dummy = dummy
+        self.dynamicCast = dynamicCast
+        self.elif = elif
+        self.encodeQuickType = encodeQuickType
+        self.enumValues = enumValues
+        self.equalityContract = equalityContract
+        self.event = event
+        self.except = except
+        self.exception = exception
+        self.explicit = explicit
+        self.export = export
+        self.exposing = exposing
+        self.extends = extends
+        self.extern = extern
+        self.finally = finally
+        self.fixed = fixed
+        self.float = float
+        self.foreach = foreach
+        self.formatException = formatException
+        self.friend = friend
+        self.from = from
+        self.fromJSON = fromJSON
+        self.function = function
+        self.global = global
+        self.go = go
+        self.goto = goto
+        self.hasOwnProperty = hasOwnProperty
+        self.hashCode = hashCode
+        self.id = id
+        self.imp = imp
+        self.implements = implements
+        self.implicit = implicit
+        self.obj2Default = obj2Default
+        self.obj2Defer = obj2Defer
+        self.obj2Deinit = obj2Deinit
+        self.obj2DidSet = obj2DidSet
+        self.obj2Do = obj2Do
+        self.obj2Dynamic = obj2Dynamic
+        self.obj2Else = obj2Else
+        self.obj2Enum = obj2Enum
+        self.obj2Extension = obj2Extension
+        self.obj2Fallthrough = obj2Fallthrough
+        self.obj2False = obj2False
+        self.obj2Fileprivate = obj2Fileprivate
+        self.obj2Final = obj2Final
+        self.obj2For = obj2For
+        self.obj2Func = obj2Func
+        self.obj2Get = obj2Get
+        self.obj2Guard = obj2Guard
+        self.obj2If = obj2If
+        self.purpleFalse = purpleFalse
     }
 }
 
-// MARK: Catch convenience initializers and mutators
+// MARK: Obj2 convenience initializers and mutators
 
-extension Catch {
+extension Obj2 {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Catch.self, from: data)
-        self.init(catchCatch: me.catchCatch)
+        let me = try newJSONDecoder().decode(Obj2.self, from: data)
+        self.init(dateTime: me.dateTime, dateTimeStyles: me.dateTimeStyles, debugger: me.debugger, decimal: me.decimal, declare: me.declare, decltype: me.decltype, decodeString: me.decodeString, def: me.def, del: me.del, delegate: me.delegate, delete: me.delete, dict: me.dict, dictionary: me.dictionary, double: me.double, dummy: me.dummy, dynamicCast: me.dynamicCast, elif: me.elif, encodeQuickType: me.encodeQuickType, enumValues: me.enumValues, equalityContract: me.equalityContract, event: me.event, except: me.except, exception: me.exception, explicit: me.explicit, export: me.export, exposing: me.exposing, extends: me.extends, extern: me.extern, finally: me.finally, fixed: me.fixed, float: me.float, foreach: me.foreach, formatException: me.formatException, friend: me.friend, from: me.from, fromJSON: me.fromJSON, function: me.function, global: me.global, go: me.go, goto: me.goto, hasOwnProperty: me.hasOwnProperty, hashCode: me.hashCode, id: me.id, imp: me.imp, implements: me.implements, implicit: me.implicit, obj2Default: me.obj2Default, obj2Defer: me.obj2Defer, obj2Deinit: me.obj2Deinit, obj2DidSet: me.obj2DidSet, obj2Do: me.obj2Do, obj2Dynamic: me.obj2Dynamic, obj2Else: me.obj2Else, obj2Enum: me.obj2Enum, obj2Extension: me.obj2Extension, obj2Fallthrough: me.obj2Fallthrough, obj2False: me.obj2False, obj2Fileprivate: me.obj2Fileprivate, obj2Final: me.obj2Final, obj2For: me.obj2For, obj2Func: me.obj2Func, obj2Get: me.obj2Get, obj2Guard: me.obj2Guard, obj2If: me.obj2If, purpleFalse: me.purpleFalse)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3701,59 +3809,138 @@ extension Catch {
     }
 
     func with(
-        catchCatch: Int? = nil
-    ) -> Catch {
-        return Catch(
-            catchCatch: catchCatch ?? self.catchCatch
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Class
-@objcMembers class Class: NSObject, Codable {
-    let classClass: Int
-
-    enum CodingKeys: String, CodingKey {
-        case classClass = "Class"
-    }
-
-    init(classClass: Int) {
-        self.classClass = classClass
-    }
-}
-
-// MARK: Class convenience initializers and mutators
-
-extension Class {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Class.self, from: data)
-        self.init(classClass: me.classClass)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        classClass: Int? = nil
-    ) -> Class {
-        return Class(
-            classClass: classClass ?? self.classClass
+        dateTime: DateTime? = nil,
+        dateTimeStyles: DateTimeStyles? = nil,
+        debugger: Debugger? = nil,
+        decimal: Decimal? = nil,
+        declare: Declare? = nil,
+        decltype: Decltype? = nil,
+        decodeString: DecodeString? = nil,
+        def: Def? = nil,
+        del: Del? = nil,
+        delegate: Delegate? = nil,
+        delete: Delete? = nil,
+        dict: Dict? = nil,
+        dictionary: Dictionary? = nil,
+        double: DoubleClass? = nil,
+        dummy: Int? = nil,
+        dynamicCast: DynamicCast? = nil,
+        elif: Elif? = nil,
+        encodeQuickType: EncodeQuickType? = nil,
+        enumValues: EnumValues? = nil,
+        equalityContract: EqualityContract? = nil,
+        event: Event? = nil,
+        except: Except? = nil,
+        exception: Exception? = nil,
+        explicit: Explicit? = nil,
+        export: Export? = nil,
+        exposing: Exposing? = nil,
+        extends: Extends? = nil,
+        extern: Extern? = nil,
+        finally: Finally? = nil,
+        fixed: Fixed? = nil,
+        float: Float? = nil,
+        foreach: Foreach? = nil,
+        formatException: FormatException? = nil,
+        friend: Friend? = nil,
+        from: From? = nil,
+        fromJSON: FromJSON? = nil,
+        function: Function? = nil,
+        global: Global? = nil,
+        go: Go? = nil,
+        goto: Goto? = nil,
+        hasOwnProperty: HasOwnProperty? = nil,
+        hashCode: HashCode? = nil,
+        id: ID? = nil,
+        imp: Imp? = nil,
+        implements: Implements? = nil,
+        implicit: Implicit? = nil,
+        obj2Default: Default? = nil,
+        obj2Defer: Defer? = nil,
+        obj2Deinit: Deinit? = nil,
+        obj2DidSet: DidSet? = nil,
+        obj2Do: Do? = nil,
+        obj2Dynamic: Dynamic? = nil,
+        obj2Else: Else? = nil,
+        obj2Enum: Enum? = nil,
+        obj2Extension: Extension? = nil,
+        obj2Fallthrough: Fallthrough? = nil,
+        obj2False: False? = nil,
+        obj2Fileprivate: Fileprivate? = nil,
+        obj2Final: Final? = nil,
+        obj2For: For? = nil,
+        obj2Func: Func? = nil,
+        obj2Get: Get? = nil,
+        obj2Guard: Guard? = nil,
+        obj2If: If? = nil,
+        purpleFalse: FalseClass? = nil
+    ) -> Obj2 {
+        return Obj2(
+            dateTime: dateTime ?? self.dateTime,
+            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles,
+            debugger: debugger ?? self.debugger,
+            decimal: decimal ?? self.decimal,
+            declare: declare ?? self.declare,
+            decltype: decltype ?? self.decltype,
+            decodeString: decodeString ?? self.decodeString,
+            def: def ?? self.def,
+            del: del ?? self.del,
+            delegate: delegate ?? self.delegate,
+            delete: delete ?? self.delete,
+            dict: dict ?? self.dict,
+            dictionary: dictionary ?? self.dictionary,
+            double: double ?? self.double,
+            dummy: dummy ?? self.dummy,
+            dynamicCast: dynamicCast ?? self.dynamicCast,
+            elif: elif ?? self.elif,
+            encodeQuickType: encodeQuickType ?? self.encodeQuickType,
+            enumValues: enumValues ?? self.enumValues,
+            equalityContract: equalityContract ?? self.equalityContract,
+            event: event ?? self.event,
+            except: except ?? self.except,
+            exception: exception ?? self.exception,
+            explicit: explicit ?? self.explicit,
+            export: export ?? self.export,
+            exposing: exposing ?? self.exposing,
+            extends: extends ?? self.extends,
+            extern: extern ?? self.extern,
+            finally: finally ?? self.finally,
+            fixed: fixed ?? self.fixed,
+            float: float ?? self.float,
+            foreach: foreach ?? self.foreach,
+            formatException: formatException ?? self.formatException,
+            friend: friend ?? self.friend,
+            from: from ?? self.from,
+            fromJSON: fromJSON ?? self.fromJSON,
+            function: function ?? self.function,
+            global: global ?? self.global,
+            go: go ?? self.go,
+            goto: goto ?? self.goto,
+            hasOwnProperty: hasOwnProperty ?? self.hasOwnProperty,
+            hashCode: hashCode ?? self.hashCode,
+            id: id ?? self.id,
+            imp: imp ?? self.imp,
+            implements: implements ?? self.implements,
+            implicit: implicit ?? self.implicit,
+            obj2Default: obj2Default ?? self.obj2Default,
+            obj2Defer: obj2Defer ?? self.obj2Defer,
+            obj2Deinit: obj2Deinit ?? self.obj2Deinit,
+            obj2DidSet: obj2DidSet ?? self.obj2DidSet,
+            obj2Do: obj2Do ?? self.obj2Do,
+            obj2Dynamic: obj2Dynamic ?? self.obj2Dynamic,
+            obj2Else: obj2Else ?? self.obj2Else,
+            obj2Enum: obj2Enum ?? self.obj2Enum,
+            obj2Extension: obj2Extension ?? self.obj2Extension,
+            obj2Fallthrough: obj2Fallthrough ?? self.obj2Fallthrough,
+            obj2False: obj2False ?? self.obj2False,
+            obj2Fileprivate: obj2Fileprivate ?? self.obj2Fileprivate,
+            obj2Final: obj2Final ?? self.obj2Final,
+            obj2For: obj2For ?? self.obj2For,
+            obj2Func: obj2Func ?? self.obj2Func,
+            obj2Get: obj2Get ?? self.obj2Get,
+            obj2Guard: obj2Guard ?? self.obj2Guard,
+            obj2If: obj2If ?? self.obj2If,
+            purpleFalse: purpleFalse ?? self.purpleFalse
         )
     }
 
@@ -3766,25 +3953,25 @@ extension Class {
     }
 }
 
-// MARK: - Continue
-@objcMembers class Continue: NSObject, Codable {
-    let continueContinue: Int
+// MARK: - DateTime
+@objcMembers class DateTime: NSObject, Codable {
+    let dateTime: Date
 
     enum CodingKeys: String, CodingKey {
-        case continueContinue = "continue"
+        case dateTime = "DateTime"
     }
 
-    init(continueContinue: Int) {
-        self.continueContinue = continueContinue
+    init(dateTime: Date) {
+        self.dateTime = dateTime
     }
 }
 
-// MARK: Continue convenience initializers and mutators
+// MARK: DateTime convenience initializers and mutators
 
-extension Continue {
+extension DateTime {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Continue.self, from: data)
-        self.init(continueContinue: me.continueContinue)
+        let me = try newJSONDecoder().decode(DateTime.self, from: data)
+        self.init(dateTime: me.dateTime)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3799,10 +3986,10 @@ extension Continue {
     }
 
     func with(
-        continueContinue: Int? = nil
-    ) -> Continue {
-        return Continue(
-            continueContinue: continueContinue ?? self.continueContinue
+        dateTime: Date? = nil
+    ) -> DateTime {
+        return DateTime(
+            dateTime: dateTime ?? self.dateTime
         )
     }
 
@@ -3815,25 +4002,25 @@ extension Continue {
     }
 }
 
-// MARK: - Convenience
-@objcMembers class Convenience: NSObject, Codable {
-    let convenienceConvenience: Int
+// MARK: - DateTimeStyles
+@objcMembers class DateTimeStyles: NSObject, Codable {
+    let dateTimeStyles: Int
 
     enum CodingKeys: String, CodingKey {
-        case convenienceConvenience = "convenience"
+        case dateTimeStyles = "DateTimeStyles"
     }
 
-    init(convenienceConvenience: Int) {
-        self.convenienceConvenience = convenienceConvenience
+    init(dateTimeStyles: Int) {
+        self.dateTimeStyles = dateTimeStyles
     }
 }
 
-// MARK: Convenience convenience initializers and mutators
+// MARK: DateTimeStyles convenience initializers and mutators
 
-extension Convenience {
+extension DateTimeStyles {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Convenience.self, from: data)
-        self.init(convenienceConvenience: me.convenienceConvenience)
+        let me = try newJSONDecoder().decode(DateTimeStyles.self, from: data)
+        self.init(dateTimeStyles: me.dateTimeStyles)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3848,10 +4035,10 @@ extension Convenience {
     }
 
     func with(
-        convenienceConvenience: Int? = nil
-    ) -> Convenience {
-        return Convenience(
-            convenienceConvenience: convenienceConvenience ?? self.convenienceConvenience
+        dateTimeStyles: Int? = nil
+    ) -> DateTimeStyles {
+        return DateTimeStyles(
+            dateTimeStyles: dateTimeStyles ?? self.dateTimeStyles
         )
     }
 
@@ -3864,25 +4051,25 @@ extension Convenience {
     }
 }
 
-// MARK: - Obj1Bool
-@objcMembers class Obj1Bool: NSObject, Codable {
-    let bool: Int
+// MARK: - Debugger
+@objcMembers class Debugger: NSObject, Codable {
+    let debugger: Int
 
     enum CodingKeys: String, CodingKey {
-        case bool = "bool"
+        case debugger = "debugger"
     }
 
-    init(bool: Int) {
-        self.bool = bool
+    init(debugger: Int) {
+        self.debugger = debugger
     }
 }
 
-// MARK: Obj1Bool convenience initializers and mutators
+// MARK: Debugger convenience initializers and mutators
 
-extension Obj1Bool {
+extension Debugger {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj1Bool.self, from: data)
-        self.init(bool: me.bool)
+        let me = try newJSONDecoder().decode(Debugger.self, from: data)
+        self.init(debugger: me.debugger)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3897,10 +4084,10 @@ extension Obj1Bool {
     }
 
     func with(
-        bool: Int? = nil
-    ) -> Obj1Bool {
-        return Obj1Bool(
-            bool: bool ?? self.bool
+        debugger: Int? = nil
+    ) -> Debugger {
+        return Debugger(
+            debugger: debugger ?? self.debugger
         )
     }
 
@@ -3913,25 +4100,25 @@ extension Obj1Bool {
     }
 }
 
-// MARK: - ClassClass
-@objcMembers class ClassClass: NSObject, Codable {
-    let classClass: Int
+// MARK: - Decimal
+@objcMembers class Decimal: NSObject, Codable {
+    let decimal: Int
 
     enum CodingKeys: String, CodingKey {
-        case classClass = "class"
+        case decimal = "decimal"
     }
 
-    init(classClass: Int) {
-        self.classClass = classClass
+    init(decimal: Int) {
+        self.decimal = decimal
     }
 }
 
-// MARK: ClassClass convenience initializers and mutators
+// MARK: Decimal convenience initializers and mutators
 
-extension ClassClass {
+extension Decimal {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ClassClass.self, from: data)
-        self.init(classClass: me.classClass)
+        let me = try newJSONDecoder().decode(Decimal.self, from: data)
+        self.init(decimal: me.decimal)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -3946,10 +4133,10 @@ extension ClassClass {
     }
 
     func with(
-        classClass: Int? = nil
-    ) -> ClassClass {
-        return ClassClass(
-            classClass: classClass ?? self.classClass
+        decimal: Int? = nil
+    ) -> Decimal {
+        return Decimal(
+            decimal: decimal ?? self.decimal
         )
     }
 
@@ -3962,229 +4149,25 @@ extension ClassClass {
     }
 }
 
-// MARK: - Obj2
-@objcMembers class Obj2: NSObject, Codable {
-    let def: Def
-    let del: Del
-    let delegate: Delegate
-    let delete: Delete
-    let dict: Dict
-    let dictionary: Dictionary
-    let double: DoubleClass
-    let dummy: Int
-    let dynamicCast: DynamicCast
-    let elif: Elif
-    let encodeQuickType: EncodeQuickType
-    let enumValues: EnumValues
-    let equalityContract: EqualityContract
-    let event: Event
-    let except: Except
-    let exception: Exception
-    let explicit: Explicit
-    let export: Export
-    let exposing: Exposing
-    let extends: Extends
-    let extern: Extern
-    let finally: Finally
-    let fixed: Fixed
-    let float: Float
-    let foreach: Foreach
-    let formatException: FormatException
-    let friend: Friend
-    let from: From
-    let fromJSON: FromJSON
-    let function: Function
-    let global: Global
-    let go: Go
-    let goto: Goto
-    let hasOwnProperty: HasOwnProperty
-    let hashCode: HashCode
-    let id: ID
-    let imp: Imp
-    let implements: Implements
-    let implicit: Implicit
-    let inline: Inline
-    let instanceof: Instanceof
-    let int: IntClass
-    let interface: Interface
-    let obj2Default: Default
-    let obj2Defer: Defer
-    let obj2Deinit: Deinit
-    let obj2DidSet: DidSet
-    let obj2Do: Do
-    let obj2Dynamic: Dynamic
-    let obj2Else: Else
-    let obj2Enum: Enum
-    let obj2Extension: Extension
-    let obj2Fallthrough: Fallthrough
-    let obj2False: False
-    let obj2Fileprivate: Fileprivate
-    let obj2Final: Final
-    let obj2For: For
-    let obj2Func: Func
-    let obj2Get: Get
-    let obj2Guard: Guard
-    let obj2If: If
-    let obj2Import: Import
-    let obj2In: In
-    let obj2Indirect: Indirect
-    let obj2Infix: Infix
-    let obj2Init: Init
-    let obj2Inout: Inout
-    let obj2Internal: Internal
-    let purpleFalse: FalseClass
+// MARK: - Declare
+@objcMembers class Declare: NSObject, Codable {
+    let declare: Int
 
     enum CodingKeys: String, CodingKey {
-        case def = "def"
-        case del = "del"
-        case delegate = "delegate"
-        case delete = "delete"
-        case dict = "dict"
-        case dictionary = "dictionary"
-        case double = "double"
-        case dummy = "dummy"
-        case dynamicCast = "dynamic_cast"
-        case elif = "elif"
-        case encodeQuickType = "encode_quick_type"
-        case enumValues = "EnumValues"
-        case equalityContract = "equalityContract"
-        case event = "event"
-        case except = "except"
-        case exception = "exception"
-        case explicit = "explicit"
-        case export = "export"
-        case exposing = "exposing"
-        case extends = "extends"
-        case extern = "extern"
-        case finally = "finally"
-        case fixed = "fixed"
-        case float = "float"
-        case foreach = "foreach"
-        case formatException = "FormatException"
-        case friend = "friend"
-        case from = "from"
-        case fromJSON = "from_json"
-        case function = "function"
-        case global = "global"
-        case go = "go"
-        case goto = "goto"
-        case hasOwnProperty = "hasOwnProperty"
-        case hashCode = "hashCode"
-        case id = "id"
-        case imp = "IMP"
-        case implements = "implements"
-        case implicit = "implicit"
-        case inline = "inline"
-        case instanceof = "instanceof"
-        case int = "int"
-        case interface = "interface"
-        case obj2Default = "default"
-        case obj2Defer = "defer"
-        case obj2Deinit = "deinit"
-        case obj2DidSet = "didSet"
-        case obj2Do = "do"
-        case obj2Dynamic = "dynamic"
-        case obj2Else = "else"
-        case obj2Enum = "enum"
-        case obj2Extension = "extension"
-        case obj2Fallthrough = "fallthrough"
-        case obj2False = "False"
-        case obj2Fileprivate = "fileprivate"
-        case obj2Final = "final"
-        case obj2For = "for"
-        case obj2Func = "func"
-        case obj2Get = "get"
-        case obj2Guard = "guard"
-        case obj2If = "if"
-        case obj2Import = "import"
-        case obj2In = "in"
-        case obj2Indirect = "indirect"
-        case obj2Infix = "infix"
-        case obj2Init = "init"
-        case obj2Inout = "inout"
-        case obj2Internal = "internal"
-        case purpleFalse = "false"
+        case declare = "declare"
     }
 
-    init(def: Def, del: Del, delegate: Delegate, delete: Delete, dict: Dict, dictionary: Dictionary, double: DoubleClass, dummy: Int, dynamicCast: DynamicCast, elif: Elif, encodeQuickType: EncodeQuickType, enumValues: EnumValues, equalityContract: EqualityContract, event: Event, except: Except, exception: Exception, explicit: Explicit, export: Export, exposing: Exposing, extends: Extends, extern: Extern, finally: Finally, fixed: Fixed, float: Float, foreach: Foreach, formatException: FormatException, friend: Friend, from: From, fromJSON: FromJSON, function: Function, global: Global, go: Go, goto: Goto, hasOwnProperty: HasOwnProperty, hashCode: HashCode, id: ID, imp: Imp, implements: Implements, implicit: Implicit, inline: Inline, instanceof: Instanceof, int: IntClass, interface: Interface, obj2Default: Default, obj2Defer: Defer, obj2Deinit: Deinit, obj2DidSet: DidSet, obj2Do: Do, obj2Dynamic: Dynamic, obj2Else: Else, obj2Enum: Enum, obj2Extension: Extension, obj2Fallthrough: Fallthrough, obj2False: False, obj2Fileprivate: Fileprivate, obj2Final: Final, obj2For: For, obj2Func: Func, obj2Get: Get, obj2Guard: Guard, obj2If: If, obj2Import: Import, obj2In: In, obj2Indirect: Indirect, obj2Infix: Infix, obj2Init: Init, obj2Inout: Inout, obj2Internal: Internal, purpleFalse: FalseClass) {
-        self.def = def
-        self.del = del
-        self.delegate = delegate
-        self.delete = delete
-        self.dict = dict
-        self.dictionary = dictionary
-        self.double = double
-        self.dummy = dummy
-        self.dynamicCast = dynamicCast
-        self.elif = elif
-        self.encodeQuickType = encodeQuickType
-        self.enumValues = enumValues
-        self.equalityContract = equalityContract
-        self.event = event
-        self.except = except
-        self.exception = exception
-        self.explicit = explicit
-        self.export = export
-        self.exposing = exposing
-        self.extends = extends
-        self.extern = extern
-        self.finally = finally
-        self.fixed = fixed
-        self.float = float
-        self.foreach = foreach
-        self.formatException = formatException
-        self.friend = friend
-        self.from = from
-        self.fromJSON = fromJSON
-        self.function = function
-        self.global = global
-        self.go = go
-        self.goto = goto
-        self.hasOwnProperty = hasOwnProperty
-        self.hashCode = hashCode
-        self.id = id
-        self.imp = imp
-        self.implements = implements
-        self.implicit = implicit
-        self.inline = inline
-        self.instanceof = instanceof
-        self.int = int
-        self.interface = interface
-        self.obj2Default = obj2Default
-        self.obj2Defer = obj2Defer
-        self.obj2Deinit = obj2Deinit
-        self.obj2DidSet = obj2DidSet
-        self.obj2Do = obj2Do
-        self.obj2Dynamic = obj2Dynamic
-        self.obj2Else = obj2Else
-        self.obj2Enum = obj2Enum
-        self.obj2Extension = obj2Extension
-        self.obj2Fallthrough = obj2Fallthrough
-        self.obj2False = obj2False
-        self.obj2Fileprivate = obj2Fileprivate
-        self.obj2Final = obj2Final
-        self.obj2For = obj2For
-        self.obj2Func = obj2Func
-        self.obj2Get = obj2Get
-        self.obj2Guard = obj2Guard
-        self.obj2If = obj2If
-        self.obj2Import = obj2Import
-        self.obj2In = obj2In
-        self.obj2Indirect = obj2Indirect
-        self.obj2Infix = obj2Infix
-        self.obj2Init = obj2Init
-        self.obj2Inout = obj2Inout
-        self.obj2Internal = obj2Internal
-        self.purpleFalse = purpleFalse
+    init(declare: Int) {
+        self.declare = declare
     }
 }
 
-// MARK: Obj2 convenience initializers and mutators
+// MARK: Declare convenience initializers and mutators
 
-extension Obj2 {
+extension Declare {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj2.self, from: data)
-        self.init(def: me.def, del: me.del, delegate: me.delegate, delete: me.delete, dict: me.dict, dictionary: me.dictionary, double: me.double, dummy: me.dummy, dynamicCast: me.dynamicCast, elif: me.elif, encodeQuickType: me.encodeQuickType, enumValues: me.enumValues, equalityContract: me.equalityContract, event: me.event, except: me.except, exception: me.exception, explicit: me.explicit, export: me.export, exposing: me.exposing, extends: me.extends, extern: me.extern, finally: me.finally, fixed: me.fixed, float: me.float, foreach: me.foreach, formatException: me.formatException, friend: me.friend, from: me.from, fromJSON: me.fromJSON, function: me.function, global: me.global, go: me.go, goto: me.goto, hasOwnProperty: me.hasOwnProperty, hashCode: me.hashCode, id: me.id, imp: me.imp, implements: me.implements, implicit: me.implicit, inline: me.inline, instanceof: me.instanceof, int: me.int, interface: me.interface, obj2Default: me.obj2Default, obj2Defer: me.obj2Defer, obj2Deinit: me.obj2Deinit, obj2DidSet: me.obj2DidSet, obj2Do: me.obj2Do, obj2Dynamic: me.obj2Dynamic, obj2Else: me.obj2Else, obj2Enum: me.obj2Enum, obj2Extension: me.obj2Extension, obj2Fallthrough: me.obj2Fallthrough, obj2False: me.obj2False, obj2Fileprivate: me.obj2Fileprivate, obj2Final: me.obj2Final, obj2For: me.obj2For, obj2Func: me.obj2Func, obj2Get: me.obj2Get, obj2Guard: me.obj2Guard, obj2If: me.obj2If, obj2Import: me.obj2Import, obj2In: me.obj2In, obj2Indirect: me.obj2Indirect, obj2Infix: me.obj2Infix, obj2Init: me.obj2Init, obj2Inout: me.obj2Inout, obj2Internal: me.obj2Internal, purpleFalse: me.purpleFalse)
+        let me = try newJSONDecoder().decode(Declare.self, from: data)
+        self.init(declare: me.declare)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -4199,146 +4182,108 @@ extension Obj2 {
     }
 
     func with(
-        def: Def? = nil,
-        del: Del? = nil,
-        delegate: Delegate? = nil,
-        delete: Delete? = nil,
-        dict: Dict? = nil,
-        dictionary: Dictionary? = nil,
-        double: DoubleClass? = nil,
-        dummy: Int? = nil,
-        dynamicCast: DynamicCast? = nil,
-        elif: Elif? = nil,
-        encodeQuickType: EncodeQuickType? = nil,
-        enumValues: EnumValues? = nil,
-        equalityContract: EqualityContract? = nil,
-        event: Event? = nil,
-        except: Except? = nil,
-        exception: Exception? = nil,
-        explicit: Explicit? = nil,
-        export: Export? = nil,
-        exposing: Exposing? = nil,
-        extends: Extends? = nil,
-        extern: Extern? = nil,
-        finally: Finally? = nil,
-        fixed: Fixed? = nil,
-        float: Float? = nil,
-        foreach: Foreach? = nil,
-        formatException: FormatException? = nil,
-        friend: Friend? = nil,
-        from: From? = nil,
-        fromJSON: FromJSON? = nil,
-        function: Function? = nil,
-        global: Global? = nil,
-        go: Go? = nil,
-        goto: Goto? = nil,
-        hasOwnProperty: HasOwnProperty? = nil,
-        hashCode: HashCode? = nil,
-        id: ID? = nil,
-        imp: Imp? = nil,
-        implements: Implements? = nil,
-        implicit: Implicit? = nil,
-        inline: Inline? = nil,
-        instanceof: Instanceof? = nil,
-        int: IntClass? = nil,
-        interface: Interface? = nil,
-        obj2Default: Default? = nil,
-        obj2Defer: Defer? = nil,
-        obj2Deinit: Deinit? = nil,
-        obj2DidSet: DidSet? = nil,
-        obj2Do: Do? = nil,
-        obj2Dynamic: Dynamic? = nil,
-        obj2Else: Else? = nil,
-        obj2Enum: Enum? = nil,
-        obj2Extension: Extension? = nil,
-        obj2Fallthrough: Fallthrough? = nil,
-        obj2False: False? = nil,
-        obj2Fileprivate: Fileprivate? = nil,
-        obj2Final: Final? = nil,
-        obj2For: For? = nil,
-        obj2Func: Func? = nil,
-        obj2Get: Get? = nil,
-        obj2Guard: Guard? = nil,
-        obj2If: If? = nil,
-        obj2Import: Import? = nil,
-        obj2In: In? = nil,
-        obj2Indirect: Indirect? = nil,
-        obj2Infix: Infix? = nil,
-        obj2Init: Init? = nil,
-        obj2Inout: Inout? = nil,
-        obj2Internal: Internal? = nil,
-        purpleFalse: FalseClass? = nil
-    ) -> Obj2 {
-        return Obj2(
-            def: def ?? self.def,
-            del: del ?? self.del,
-            delegate: delegate ?? self.delegate,
-            delete: delete ?? self.delete,
-            dict: dict ?? self.dict,
-            dictionary: dictionary ?? self.dictionary,
-            double: double ?? self.double,
-            dummy: dummy ?? self.dummy,
-            dynamicCast: dynamicCast ?? self.dynamicCast,
-            elif: elif ?? self.elif,
-            encodeQuickType: encodeQuickType ?? self.encodeQuickType,
-            enumValues: enumValues ?? self.enumValues,
-            equalityContract: equalityContract ?? self.equalityContract,
-            event: event ?? self.event,
-            except: except ?? self.except,
-            exception: exception ?? self.exception,
-            explicit: explicit ?? self.explicit,
-            export: export ?? self.export,
-            exposing: exposing ?? self.exposing,
-            extends: extends ?? self.extends,
-            extern: extern ?? self.extern,
-            finally: finally ?? self.finally,
-            fixed: fixed ?? self.fixed,
-            float: float ?? self.float,
-            foreach: foreach ?? self.foreach,
-            formatException: formatException ?? self.formatException,
-            friend: friend ?? self.friend,
-            from: from ?? self.from,
-            fromJSON: fromJSON ?? self.fromJSON,
-            function: function ?? self.function,
-            global: global ?? self.global,
-            go: go ?? self.go,
-            goto: goto ?? self.goto,
-            hasOwnProperty: hasOwnProperty ?? self.hasOwnProperty,
-            hashCode: hashCode ?? self.hashCode,
-            id: id ?? self.id,
-            imp: imp ?? self.imp,
-            implements: implements ?? self.implements,
-            implicit: implicit ?? self.implicit,
-            inline: inline ?? self.inline,
-            instanceof: instanceof ?? self.instanceof,
-            int: int ?? self.int,
-            interface: interface ?? self.interface,
-            obj2Default: obj2Default ?? self.obj2Default,
-            obj2Defer: obj2Defer ?? self.obj2Defer,
-            obj2Deinit: obj2Deinit ?? self.obj2Deinit,
-            obj2DidSet: obj2DidSet ?? self.obj2DidSet,
-            obj2Do: obj2Do ?? self.obj2Do,
-            obj2Dynamic: obj2Dynamic ?? self.obj2Dynamic,
-            obj2Else: obj2Else ?? self.obj2Else,
-            obj2Enum: obj2Enum ?? self.obj2Enum,
-            obj2Extension: obj2Extension ?? self.obj2Extension,
-            obj2Fallthrough: obj2Fallthrough ?? self.obj2Fallthrough,
-            obj2False: obj2False ?? self.obj2False,
-            obj2Fileprivate: obj2Fileprivate ?? self.obj2Fileprivate,
-            obj2Final: obj2Final ?? self.obj2Final,
-            obj2For: obj2For ?? self.obj2For,
-            obj2Func: obj2Func ?? self.obj2Func,
-            obj2Get: obj2Get ?? self.obj2Get,
-            obj2Guard: obj2Guard ?? self.obj2Guard,
-            obj2If: obj2If ?? self.obj2If,
-            obj2Import: obj2Import ?? self.obj2Import,
-            obj2In: obj2In ?? self.obj2In,
-            obj2Indirect: obj2Indirect ?? self.obj2Indirect,
-            obj2Infix: obj2Infix ?? self.obj2Infix,
-            obj2Init: obj2Init ?? self.obj2Init,
-            obj2Inout: obj2Inout ?? self.obj2Inout,
-            obj2Internal: obj2Internal ?? self.obj2Internal,
-            purpleFalse: purpleFalse ?? self.purpleFalse
+        declare: Int? = nil
+    ) -> Declare {
+        return Declare(
+            declare: declare ?? self.declare
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Decltype
+@objcMembers class Decltype: NSObject, Codable {
+    let decltype: Int
+
+    enum CodingKeys: String, CodingKey {
+        case decltype = "decltype"
+    }
+
+    init(decltype: Int) {
+        self.decltype = decltype
+    }
+}
+
+// MARK: Decltype convenience initializers and mutators
+
+extension Decltype {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Decltype.self, from: data)
+        self.init(decltype: me.decltype)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        decltype: Int? = nil
+    ) -> Decltype {
+        return Decltype(
+            decltype: decltype ?? self.decltype
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - DecodeString
+@objcMembers class DecodeString: NSObject, Codable {
+    let decodeString: Int
+
+    enum CodingKeys: String, CodingKey {
+        case decodeString = "decode_string"
+    }
+
+    init(decodeString: Int) {
+        self.decodeString = decodeString
+    }
+}
+
+// MARK: DecodeString convenience initializers and mutators
+
+extension DecodeString {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(DecodeString.self, from: data)
+        self.init(decodeString: me.decodeString)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        decodeString: Int? = nil
+    ) -> DecodeString {
+        return DecodeString(
+            decodeString: decodeString ?? self.decodeString
         )
     }
 
@@ -6218,25 +6163,25 @@ extension Implicit {
     }
 }
 
-// MARK: - Inline
-@objcMembers class Inline: NSObject, Codable {
-    let inline: Int
+// MARK: - Default
+@objcMembers class Default: NSObject, Codable {
+    let defaultDefault: Int
 
     enum CodingKeys: String, CodingKey {
-        case inline = "inline"
+        case defaultDefault = "default"
     }
 
-    init(inline: Int) {
-        self.inline = inline
+    init(defaultDefault: Int) {
+        self.defaultDefault = defaultDefault
     }
 }
 
-// MARK: Inline convenience initializers and mutators
+// MARK: Default convenience initializers and mutators
 
-extension Inline {
+extension Default {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Inline.self, from: data)
-        self.init(inline: me.inline)
+        let me = try newJSONDecoder().decode(Default.self, from: data)
+        self.init(defaultDefault: me.defaultDefault)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6251,10 +6196,10 @@ extension Inline {
     }
 
     func with(
-        inline: Int? = nil
-    ) -> Inline {
-        return Inline(
-            inline: inline ?? self.inline
+        defaultDefault: Int? = nil
+    ) -> Default {
+        return Default(
+            defaultDefault: defaultDefault ?? self.defaultDefault
         )
     }
 
@@ -6267,25 +6212,25 @@ extension Inline {
     }
 }
 
-// MARK: - Instanceof
-@objcMembers class Instanceof: NSObject, Codable {
-    let instanceof: Int
+// MARK: - Defer
+@objcMembers class Defer: NSObject, Codable {
+    let deferDefer: Int
 
     enum CodingKeys: String, CodingKey {
-        case instanceof = "instanceof"
+        case deferDefer = "defer"
     }
 
-    init(instanceof: Int) {
-        self.instanceof = instanceof
+    init(deferDefer: Int) {
+        self.deferDefer = deferDefer
     }
 }
 
-// MARK: Instanceof convenience initializers and mutators
+// MARK: Defer convenience initializers and mutators
 
-extension Instanceof {
+extension Defer {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Instanceof.self, from: data)
-        self.init(instanceof: me.instanceof)
+        let me = try newJSONDecoder().decode(Defer.self, from: data)
+        self.init(deferDefer: me.deferDefer)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -6300,10 +6245,10 @@ extension Instanceof {
     }
 
     func with(
-        instanceof: Int? = nil
-    ) -> Instanceof {
-        return Instanceof(
-            instanceof: instanceof ?? self.instanceof
+        deferDefer: Int? = nil
+    ) -> Defer {
+        return Defer(
+            deferDefer: deferDefer ?? self.deferDefer
         )
     }
 
@@ -6316,221 +6261,25 @@ extension Instanceof {
     }
 }
 
-// MARK: - IntClass
-@objcMembers class IntClass: NSObject, Codable {
-    let int: Int
+// MARK: - Deinit
+@objcMembers class Deinit: NSObject, Codable {
+    let deinitDeinit: Int
 
     enum CodingKeys: String, CodingKey {
-        case int = "int"
+        case deinitDeinit = "deinit"
     }
 
-    init(int: Int) {
-        self.int = int
+    init(deinitDeinit: Int) {
+        self.deinitDeinit = deinitDeinit
     }
 }
 
-// MARK: IntClass convenience initializers and mutators
+// MARK: Deinit convenience initializers and mutators
 
-extension IntClass {
+extension Deinit {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(IntClass.self, from: data)
-        self.init(int: me.int)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        int: Int? = nil
-    ) -> IntClass {
-        return IntClass(
-            int: int ?? self.int
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Interface
-@objcMembers class Interface: NSObject, Codable {
-    let interface: Int
-
-    enum CodingKeys: String, CodingKey {
-        case interface = "interface"
-    }
-
-    init(interface: Int) {
-        self.interface = interface
-    }
-}
-
-// MARK: Interface convenience initializers and mutators
-
-extension Interface {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Interface.self, from: data)
-        self.init(interface: me.interface)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        interface: Int? = nil
-    ) -> Interface {
-        return Interface(
-            interface: interface ?? self.interface
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Default
-@objcMembers class Default: NSObject, Codable {
-    let defaultDefault: Int
-
-    enum CodingKeys: String, CodingKey {
-        case defaultDefault = "default"
-    }
-
-    init(defaultDefault: Int) {
-        self.defaultDefault = defaultDefault
-    }
-}
-
-// MARK: Default convenience initializers and mutators
-
-extension Default {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Default.self, from: data)
-        self.init(defaultDefault: me.defaultDefault)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        defaultDefault: Int? = nil
-    ) -> Default {
-        return Default(
-            defaultDefault: defaultDefault ?? self.defaultDefault
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Defer
-@objcMembers class Defer: NSObject, Codable {
-    let deferDefer: Int
-
-    enum CodingKeys: String, CodingKey {
-        case deferDefer = "defer"
-    }
-
-    init(deferDefer: Int) {
-        self.deferDefer = deferDefer
-    }
-}
-
-// MARK: Defer convenience initializers and mutators
-
-extension Defer {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Defer.self, from: data)
-        self.init(deferDefer: me.deferDefer)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        deferDefer: Int? = nil
-    ) -> Defer {
-        return Defer(
-            deferDefer: deferDefer ?? self.deferDefer
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Deinit
-@objcMembers class Deinit: NSObject, Codable {
-    let deinitDeinit: Int
-
-    enum CodingKeys: String, CodingKey {
-        case deinitDeinit = "deinit"
-    }
-
-    init(deinitDeinit: Int) {
-        self.deinitDeinit = deinitDeinit
-    }
-}
-
-// MARK: Deinit convenience initializers and mutators
-
-extension Deinit {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Deinit.self, from: data)
-        self.init(deinitDeinit: me.deinitDeinit)
+        let me = try newJSONDecoder().decode(Deinit.self, from: data)
+        self.init(deinitDeinit: me.deinitDeinit)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7296,25 +7045,25 @@ extension If {
     }
 }
 
-// MARK: - Import
-@objcMembers class Import: NSObject, Codable {
-    let importImport: Int
+// MARK: - FalseClass
+@objcMembers class FalseClass: NSObject, Codable {
+    let falseFalse: Int
 
     enum CodingKeys: String, CodingKey {
-        case importImport = "import"
+        case falseFalse = "false"
     }
 
-    init(importImport: Int) {
-        self.importImport = importImport
+    init(falseFalse: Int) {
+        self.falseFalse = falseFalse
     }
 }
 
-// MARK: Import convenience initializers and mutators
+// MARK: FalseClass convenience initializers and mutators
 
-extension Import {
+extension FalseClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Import.self, from: data)
-        self.init(importImport: me.importImport)
+        let me = try newJSONDecoder().decode(FalseClass.self, from: data)
+        self.init(falseFalse: me.falseFalse)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7329,10 +7078,10 @@ extension Import {
     }
 
     func with(
-        importImport: Int? = nil
-    ) -> Import {
-        return Import(
-            importImport: importImport ?? self.importImport
+        falseFalse: Int? = nil
+    ) -> FalseClass {
+        return FalseClass(
+            falseFalse: falseFalse ?? self.falseFalse
         )
     }
 
@@ -7345,123 +7094,217 @@ extension Import {
     }
 }
 
-// MARK: - In
-@objcMembers class In: NSObject, Codable {
-    let inIn: Int
-
-    enum CodingKeys: String, CodingKey {
-        case inIn = "in"
-    }
-
-    init(inIn: Int) {
-        self.inIn = inIn
-    }
-}
-
-// MARK: In convenience initializers and mutators
-
-extension In {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(In.self, from: data)
-        self.init(inIn: me.inIn)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        inIn: Int? = nil
-    ) -> In {
-        return In(
-            inIn: inIn ?? self.inIn
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Indirect
-@objcMembers class Indirect: NSObject, Codable {
-    let indirectIndirect: Int
-
-    enum CodingKeys: String, CodingKey {
-        case indirectIndirect = "indirect"
-    }
-
-    init(indirectIndirect: Int) {
-        self.indirectIndirect = indirectIndirect
-    }
-}
-
-// MARK: Indirect convenience initializers and mutators
-
-extension Indirect {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Indirect.self, from: data)
-        self.init(indirectIndirect: me.indirectIndirect)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        indirectIndirect: Int? = nil
-    ) -> Indirect {
-        return Indirect(
-            indirectIndirect: indirectIndirect ?? self.indirectIndirect
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Infix
-@objcMembers class Infix: NSObject, Codable {
-    let infixInfix: Int
+// MARK: - Obj3
+@objcMembers class Obj3: NSObject, Codable {
+    let dummy: Int
+    let inline: Inline
+    let instanceof: Instanceof
+    let int: IntClass
+    let interface: Interface
+    let isoDateTimeOffsetConverter: ISODateTimeOffsetConverter
+    let iterable: Iterable
+    let jdec: Jdec
+    let jenc: Jenc
+    let jpipe: Jpipe
+    let jsonAny: JSONAnyClass
+    let jsonCodingKey: JSONCodingKeyClass
+    let jsonConverter: JSONConverter
+    let jsonDecoder: JSONDecoderClass
+    let jsonEncoder: JSONEncoderClass
+    let jsonException: JSONException
+    let jsonGenerator: JSONGenerator
+    let jsonNode: JSONNode
+    let jsonNull: JSONNullClass
+    let jsonParser: JSONParser
+    let jsonReader: JSONReader
+    let jsonSerializer: JSONSerializer
+    let jsonToken: JSONToken
+    let jsonTokenType: JSONTokenType
+    let jsonWriter: JSONWriter
+    let lambda: Lambda
+    let list: List
+    let lock: Lock
+    let long: Long
+    let map: Map
+    let metadataPropertyHandling: MetadataPropertyHandling
+    let module: Module
+    let mutable: Mutable
+    let namespace: Namespace
+    let native: Native
+    let new: New
+    let newtonsoft: Newtonsoft
+    let no: No
+    let noSuchMethod: NoSuchMethod
+    let noexcept: Noexcept
+    let nonatomic: Nonatomic
+    let none: None
+    let nonlocal: Nonlocal
+    let not: Not
+    let notEq: NotEq
+    let nsError: NSErrorClass
+    let nsString: NSString
+    let null: Null
+    let obj3Import: Import
+    let obj3In: In
+    let obj3Indirect: Indirect
+    let obj3Infix: Infix
+    let obj3Init: Init
+    let obj3Inout: Inout
+    let obj3Internal: Internal
+    let obj3Is: Is
+    let obj3JSON: JSON
+    let obj3Lazy: Lazy
+    let obj3Left: Left
+    let obj3Let: Let
+    let obj3Mutating: Mutating
+    let obj3Nil: Nil
+    let obj3None: NoneClass
+    let obj3Nonmutating: Nonmutating
+    let obj3Null: NullClass
 
     enum CodingKeys: String, CodingKey {
-        case infixInfix = "infix"
+        case dummy = "dummy"
+        case inline = "inline"
+        case instanceof = "instanceof"
+        case int = "int"
+        case interface = "interface"
+        case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
+        case iterable = "iterable"
+        case jdec = "jdec"
+        case jenc = "jenc"
+        case jpipe = "jpipe"
+        case jsonAny = "JSONAny"
+        case jsonCodingKey = "JSONCodingKey"
+        case jsonConverter = "json_converter"
+        case jsonDecoder = "JSONDecoder"
+        case jsonEncoder = "JSONEncoder"
+        case jsonException = "JsonException"
+        case jsonGenerator = "JsonGenerator"
+        case jsonNode = "JsonNode"
+        case jsonNull = "JSONNull"
+        case jsonParser = "JsonParser"
+        case jsonReader = "JsonReader"
+        case jsonSerializer = "json_serializer"
+        case jsonToken = "json_token"
+        case jsonTokenType = "JsonTokenType"
+        case jsonWriter = "json_writer"
+        case lambda = "lambda"
+        case list = "list"
+        case lock = "lock"
+        case long = "long"
+        case map = "map"
+        case metadataPropertyHandling = "metadata_property_handling"
+        case module = "module"
+        case mutable = "mutable"
+        case namespace = "namespace"
+        case native = "native"
+        case new = "new"
+        case newtonsoft = "newtonsoft"
+        case no = "NO"
+        case noSuchMethod = "noSuchMethod"
+        case noexcept = "noexcept"
+        case nonatomic = "nonatomic"
+        case none = "None"
+        case nonlocal = "nonlocal"
+        case not = "not"
+        case notEq = "not_eq"
+        case nsError = "NSError"
+        case nsString = "NSString"
+        case null = "NULL"
+        case obj3Import = "import"
+        case obj3In = "in"
+        case obj3Indirect = "indirect"
+        case obj3Infix = "infix"
+        case obj3Init = "init"
+        case obj3Inout = "inout"
+        case obj3Internal = "internal"
+        case obj3Is = "is"
+        case obj3JSON = "json"
+        case obj3Lazy = "lazy"
+        case obj3Left = "left"
+        case obj3Let = "let"
+        case obj3Mutating = "mutating"
+        case obj3Nil = "nil"
+        case obj3None = "none"
+        case obj3Nonmutating = "nonmutating"
+        case obj3Null = "null"
     }
 
-    init(infixInfix: Int) {
-        self.infixInfix = infixInfix
+    init(dummy: Int, inline: Inline, instanceof: Instanceof, int: IntClass, interface: Interface, isoDateTimeOffsetConverter: ISODateTimeOffsetConverter, iterable: Iterable, jdec: Jdec, jenc: Jenc, jpipe: Jpipe, jsonAny: JSONAnyClass, jsonCodingKey: JSONCodingKeyClass, jsonConverter: JSONConverter, jsonDecoder: JSONDecoderClass, jsonEncoder: JSONEncoderClass, jsonException: JSONException, jsonGenerator: JSONGenerator, jsonNode: JSONNode, jsonNull: JSONNullClass, jsonParser: JSONParser, jsonReader: JSONReader, jsonSerializer: JSONSerializer, jsonToken: JSONToken, jsonTokenType: JSONTokenType, jsonWriter: JSONWriter, lambda: Lambda, list: List, lock: Lock, long: Long, map: Map, metadataPropertyHandling: MetadataPropertyHandling, module: Module, mutable: Mutable, namespace: Namespace, native: Native, new: New, newtonsoft: Newtonsoft, no: No, noSuchMethod: NoSuchMethod, noexcept: Noexcept, nonatomic: Nonatomic, none: None, nonlocal: Nonlocal, not: Not, notEq: NotEq, nsError: NSErrorClass, nsString: NSString, null: Null, obj3Import: Import, obj3In: In, obj3Indirect: Indirect, obj3Infix: Infix, obj3Init: Init, obj3Inout: Inout, obj3Internal: Internal, obj3Is: Is, obj3JSON: JSON, obj3Lazy: Lazy, obj3Left: Left, obj3Let: Let, obj3Mutating: Mutating, obj3Nil: Nil, obj3None: NoneClass, obj3Nonmutating: Nonmutating, obj3Null: NullClass) {
+        self.dummy = dummy
+        self.inline = inline
+        self.instanceof = instanceof
+        self.int = int
+        self.interface = interface
+        self.isoDateTimeOffsetConverter = isoDateTimeOffsetConverter
+        self.iterable = iterable
+        self.jdec = jdec
+        self.jenc = jenc
+        self.jpipe = jpipe
+        self.jsonAny = jsonAny
+        self.jsonCodingKey = jsonCodingKey
+        self.jsonConverter = jsonConverter
+        self.jsonDecoder = jsonDecoder
+        self.jsonEncoder = jsonEncoder
+        self.jsonException = jsonException
+        self.jsonGenerator = jsonGenerator
+        self.jsonNode = jsonNode
+        self.jsonNull = jsonNull
+        self.jsonParser = jsonParser
+        self.jsonReader = jsonReader
+        self.jsonSerializer = jsonSerializer
+        self.jsonToken = jsonToken
+        self.jsonTokenType = jsonTokenType
+        self.jsonWriter = jsonWriter
+        self.lambda = lambda
+        self.list = list
+        self.lock = lock
+        self.long = long
+        self.map = map
+        self.metadataPropertyHandling = metadataPropertyHandling
+        self.module = module
+        self.mutable = mutable
+        self.namespace = namespace
+        self.native = native
+        self.new = new
+        self.newtonsoft = newtonsoft
+        self.no = no
+        self.noSuchMethod = noSuchMethod
+        self.noexcept = noexcept
+        self.nonatomic = nonatomic
+        self.none = none
+        self.nonlocal = nonlocal
+        self.not = not
+        self.notEq = notEq
+        self.nsError = nsError
+        self.nsString = nsString
+        self.null = null
+        self.obj3Import = obj3Import
+        self.obj3In = obj3In
+        self.obj3Indirect = obj3Indirect
+        self.obj3Infix = obj3Infix
+        self.obj3Init = obj3Init
+        self.obj3Inout = obj3Inout
+        self.obj3Internal = obj3Internal
+        self.obj3Is = obj3Is
+        self.obj3JSON = obj3JSON
+        self.obj3Lazy = obj3Lazy
+        self.obj3Left = obj3Left
+        self.obj3Let = obj3Let
+        self.obj3Mutating = obj3Mutating
+        self.obj3Nil = obj3Nil
+        self.obj3None = obj3None
+        self.obj3Nonmutating = obj3Nonmutating
+        self.obj3Null = obj3Null
     }
 }
 
-// MARK: Infix convenience initializers and mutators
+// MARK: Obj3 convenience initializers and mutators
 
-extension Infix {
+extension Obj3 {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Infix.self, from: data)
-        self.init(infixInfix: me.infixInfix)
+        let me = try newJSONDecoder().decode(Obj3.self, from: data)
+        self.init(dummy: me.dummy, inline: me.inline, instanceof: me.instanceof, int: me.int, interface: me.interface, isoDateTimeOffsetConverter: me.isoDateTimeOffsetConverter, iterable: me.iterable, jdec: me.jdec, jenc: me.jenc, jpipe: me.jpipe, jsonAny: me.jsonAny, jsonCodingKey: me.jsonCodingKey, jsonConverter: me.jsonConverter, jsonDecoder: me.jsonDecoder, jsonEncoder: me.jsonEncoder, jsonException: me.jsonException, jsonGenerator: me.jsonGenerator, jsonNode: me.jsonNode, jsonNull: me.jsonNull, jsonParser: me.jsonParser, jsonReader: me.jsonReader, jsonSerializer: me.jsonSerializer, jsonToken: me.jsonToken, jsonTokenType: me.jsonTokenType, jsonWriter: me.jsonWriter, lambda: me.lambda, list: me.list, lock: me.lock, long: me.long, map: me.map, metadataPropertyHandling: me.metadataPropertyHandling, module: me.module, mutable: me.mutable, namespace: me.namespace, native: me.native, new: me.new, newtonsoft: me.newtonsoft, no: me.no, noSuchMethod: me.noSuchMethod, noexcept: me.noexcept, nonatomic: me.nonatomic, none: me.none, nonlocal: me.nonlocal, not: me.not, notEq: me.notEq, nsError: me.nsError, nsString: me.nsString, null: me.null, obj3Import: me.obj3Import, obj3In: me.obj3In, obj3Indirect: me.obj3Indirect, obj3Infix: me.obj3Infix, obj3Init: me.obj3Init, obj3Inout: me.obj3Inout, obj3Internal: me.obj3Internal, obj3Is: me.obj3Is, obj3JSON: me.obj3JSON, obj3Lazy: me.obj3Lazy, obj3Left: me.obj3Left, obj3Let: me.obj3Let, obj3Mutating: me.obj3Mutating, obj3Nil: me.obj3Nil, obj3None: me.obj3None, obj3Nonmutating: me.obj3Nonmutating, obj3Null: me.obj3Null)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7476,10 +7319,138 @@ extension Infix {
     }
 
     func with(
-        infixInfix: Int? = nil
-    ) -> Infix {
-        return Infix(
-            infixInfix: infixInfix ?? self.infixInfix
+        dummy: Int? = nil,
+        inline: Inline? = nil,
+        instanceof: Instanceof? = nil,
+        int: IntClass? = nil,
+        interface: Interface? = nil,
+        isoDateTimeOffsetConverter: ISODateTimeOffsetConverter? = nil,
+        iterable: Iterable? = nil,
+        jdec: Jdec? = nil,
+        jenc: Jenc? = nil,
+        jpipe: Jpipe? = nil,
+        jsonAny: JSONAnyClass? = nil,
+        jsonCodingKey: JSONCodingKeyClass? = nil,
+        jsonConverter: JSONConverter? = nil,
+        jsonDecoder: JSONDecoderClass? = nil,
+        jsonEncoder: JSONEncoderClass? = nil,
+        jsonException: JSONException? = nil,
+        jsonGenerator: JSONGenerator? = nil,
+        jsonNode: JSONNode? = nil,
+        jsonNull: JSONNullClass? = nil,
+        jsonParser: JSONParser? = nil,
+        jsonReader: JSONReader? = nil,
+        jsonSerializer: JSONSerializer? = nil,
+        jsonToken: JSONToken? = nil,
+        jsonTokenType: JSONTokenType? = nil,
+        jsonWriter: JSONWriter? = nil,
+        lambda: Lambda? = nil,
+        list: List? = nil,
+        lock: Lock? = nil,
+        long: Long? = nil,
+        map: Map? = nil,
+        metadataPropertyHandling: MetadataPropertyHandling? = nil,
+        module: Module? = nil,
+        mutable: Mutable? = nil,
+        namespace: Namespace? = nil,
+        native: Native? = nil,
+        new: New? = nil,
+        newtonsoft: Newtonsoft? = nil,
+        no: No? = nil,
+        noSuchMethod: NoSuchMethod? = nil,
+        noexcept: Noexcept? = nil,
+        nonatomic: Nonatomic? = nil,
+        none: None? = nil,
+        nonlocal: Nonlocal? = nil,
+        not: Not? = nil,
+        notEq: NotEq? = nil,
+        nsError: NSErrorClass? = nil,
+        nsString: NSString? = nil,
+        null: Null? = nil,
+        obj3Import: Import? = nil,
+        obj3In: In? = nil,
+        obj3Indirect: Indirect? = nil,
+        obj3Infix: Infix? = nil,
+        obj3Init: Init? = nil,
+        obj3Inout: Inout? = nil,
+        obj3Internal: Internal? = nil,
+        obj3Is: Is? = nil,
+        obj3JSON: JSON? = nil,
+        obj3Lazy: Lazy? = nil,
+        obj3Left: Left? = nil,
+        obj3Let: Let? = nil,
+        obj3Mutating: Mutating? = nil,
+        obj3Nil: Nil? = nil,
+        obj3None: NoneClass? = nil,
+        obj3Nonmutating: Nonmutating? = nil,
+        obj3Null: NullClass? = nil
+    ) -> Obj3 {
+        return Obj3(
+            dummy: dummy ?? self.dummy,
+            inline: inline ?? self.inline,
+            instanceof: instanceof ?? self.instanceof,
+            int: int ?? self.int,
+            interface: interface ?? self.interface,
+            isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter,
+            iterable: iterable ?? self.iterable,
+            jdec: jdec ?? self.jdec,
+            jenc: jenc ?? self.jenc,
+            jpipe: jpipe ?? self.jpipe,
+            jsonAny: jsonAny ?? self.jsonAny,
+            jsonCodingKey: jsonCodingKey ?? self.jsonCodingKey,
+            jsonConverter: jsonConverter ?? self.jsonConverter,
+            jsonDecoder: jsonDecoder ?? self.jsonDecoder,
+            jsonEncoder: jsonEncoder ?? self.jsonEncoder,
+            jsonException: jsonException ?? self.jsonException,
+            jsonGenerator: jsonGenerator ?? self.jsonGenerator,
+            jsonNode: jsonNode ?? self.jsonNode,
+            jsonNull: jsonNull ?? self.jsonNull,
+            jsonParser: jsonParser ?? self.jsonParser,
+            jsonReader: jsonReader ?? self.jsonReader,
+            jsonSerializer: jsonSerializer ?? self.jsonSerializer,
+            jsonToken: jsonToken ?? self.jsonToken,
+            jsonTokenType: jsonTokenType ?? self.jsonTokenType,
+            jsonWriter: jsonWriter ?? self.jsonWriter,
+            lambda: lambda ?? self.lambda,
+            list: list ?? self.list,
+            lock: lock ?? self.lock,
+            long: long ?? self.long,
+            map: map ?? self.map,
+            metadataPropertyHandling: metadataPropertyHandling ?? self.metadataPropertyHandling,
+            module: module ?? self.module,
+            mutable: mutable ?? self.mutable,
+            namespace: namespace ?? self.namespace,
+            native: native ?? self.native,
+            new: new ?? self.new,
+            newtonsoft: newtonsoft ?? self.newtonsoft,
+            no: no ?? self.no,
+            noSuchMethod: noSuchMethod ?? self.noSuchMethod,
+            noexcept: noexcept ?? self.noexcept,
+            nonatomic: nonatomic ?? self.nonatomic,
+            none: none ?? self.none,
+            nonlocal: nonlocal ?? self.nonlocal,
+            not: not ?? self.not,
+            notEq: notEq ?? self.notEq,
+            nsError: nsError ?? self.nsError,
+            nsString: nsString ?? self.nsString,
+            null: null ?? self.null,
+            obj3Import: obj3Import ?? self.obj3Import,
+            obj3In: obj3In ?? self.obj3In,
+            obj3Indirect: obj3Indirect ?? self.obj3Indirect,
+            obj3Infix: obj3Infix ?? self.obj3Infix,
+            obj3Init: obj3Init ?? self.obj3Init,
+            obj3Inout: obj3Inout ?? self.obj3Inout,
+            obj3Internal: obj3Internal ?? self.obj3Internal,
+            obj3Is: obj3Is ?? self.obj3Is,
+            obj3JSON: obj3JSON ?? self.obj3JSON,
+            obj3Lazy: obj3Lazy ?? self.obj3Lazy,
+            obj3Left: obj3Left ?? self.obj3Left,
+            obj3Let: obj3Let ?? self.obj3Let,
+            obj3Mutating: obj3Mutating ?? self.obj3Mutating,
+            obj3Nil: obj3Nil ?? self.obj3Nil,
+            obj3None: obj3None ?? self.obj3None,
+            obj3Nonmutating: obj3Nonmutating ?? self.obj3Nonmutating,
+            obj3Null: obj3Null ?? self.obj3Null
         )
     }
 
@@ -7492,25 +7463,25 @@ extension Infix {
     }
 }
 
-// MARK: - Init
-@objcMembers class Init: NSObject, Codable {
-    let initInit: Int
+// MARK: - Inline
+@objcMembers class Inline: NSObject, Codable {
+    let inline: Int
 
     enum CodingKeys: String, CodingKey {
-        case initInit = "init"
+        case inline = "inline"
     }
 
-    init(initInit: Int) {
-        self.initInit = initInit
+    init(inline: Int) {
+        self.inline = inline
     }
 }
 
-// MARK: Init convenience initializers and mutators
+// MARK: Inline convenience initializers and mutators
 
-extension Init {
+extension Inline {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Init.self, from: data)
-        self.init(initInit: me.initInit)
+        let me = try newJSONDecoder().decode(Inline.self, from: data)
+        self.init(inline: me.inline)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7525,10 +7496,10 @@ extension Init {
     }
 
     func with(
-        initInit: Int? = nil
-    ) -> Init {
-        return Init(
-            initInit: initInit ?? self.initInit
+        inline: Int? = nil
+    ) -> Inline {
+        return Inline(
+            inline: inline ?? self.inline
         )
     }
 
@@ -7541,25 +7512,25 @@ extension Init {
     }
 }
 
-// MARK: - Inout
-@objcMembers class Inout: NSObject, Codable {
-    let inoutInout: Int
+// MARK: - Instanceof
+@objcMembers class Instanceof: NSObject, Codable {
+    let instanceof: Int
 
     enum CodingKeys: String, CodingKey {
-        case inoutInout = "inout"
+        case instanceof = "instanceof"
     }
 
-    init(inoutInout: Int) {
-        self.inoutInout = inoutInout
+    init(instanceof: Int) {
+        self.instanceof = instanceof
     }
 }
 
-// MARK: Inout convenience initializers and mutators
+// MARK: Instanceof convenience initializers and mutators
 
-extension Inout {
+extension Instanceof {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Inout.self, from: data)
-        self.init(inoutInout: me.inoutInout)
+        let me = try newJSONDecoder().decode(Instanceof.self, from: data)
+        self.init(instanceof: me.instanceof)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7574,10 +7545,10 @@ extension Inout {
     }
 
     func with(
-        inoutInout: Int? = nil
-    ) -> Inout {
-        return Inout(
-            inoutInout: inoutInout ?? self.inoutInout
+        instanceof: Int? = nil
+    ) -> Instanceof {
+        return Instanceof(
+            instanceof: instanceof ?? self.instanceof
         )
     }
 
@@ -7590,25 +7561,25 @@ extension Inout {
     }
 }
 
-// MARK: - Internal
-@objcMembers class Internal: NSObject, Codable {
-    let internalInternal: Int
+// MARK: - IntClass
+@objcMembers class IntClass: NSObject, Codable {
+    let int: Int
 
     enum CodingKeys: String, CodingKey {
-        case internalInternal = "internal"
+        case int = "int"
     }
 
-    init(internalInternal: Int) {
-        self.internalInternal = internalInternal
+    init(int: Int) {
+        self.int = int
     }
 }
 
-// MARK: Internal convenience initializers and mutators
+// MARK: IntClass convenience initializers and mutators
 
-extension Internal {
+extension IntClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Internal.self, from: data)
-        self.init(internalInternal: me.internalInternal)
+        let me = try newJSONDecoder().decode(IntClass.self, from: data)
+        self.init(int: me.int)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7623,10 +7594,10 @@ extension Internal {
     }
 
     func with(
-        internalInternal: Int? = nil
-    ) -> Internal {
-        return Internal(
-            internalInternal: internalInternal ?? self.internalInternal
+        int: Int? = nil
+    ) -> IntClass {
+        return IntClass(
+            int: int ?? self.int
         )
     }
 
@@ -7639,25 +7610,25 @@ extension Internal {
     }
 }
 
-// MARK: - FalseClass
-@objcMembers class FalseClass: NSObject, Codable {
-    let falseFalse: Int
+// MARK: - Interface
+@objcMembers class Interface: NSObject, Codable {
+    let interface: Int
 
     enum CodingKeys: String, CodingKey {
-        case falseFalse = "false"
+        case interface = "interface"
     }
 
-    init(falseFalse: Int) {
-        self.falseFalse = falseFalse
+    init(interface: Int) {
+        self.interface = interface
     }
 }
 
-// MARK: FalseClass convenience initializers and mutators
+// MARK: Interface convenience initializers and mutators
 
-extension FalseClass {
+extension Interface {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(FalseClass.self, from: data)
-        self.init(falseFalse: me.falseFalse)
+        let me = try newJSONDecoder().decode(Interface.self, from: data)
+        self.init(interface: me.interface)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -7672,10 +7643,10 @@ extension FalseClass {
     }
 
     func with(
-        falseFalse: Int? = nil
-    ) -> FalseClass {
-        return FalseClass(
-            falseFalse: falseFalse ?? self.falseFalse
+        interface: Int? = nil
+    ) -> Interface {
+        return Interface(
+            interface: interface ?? self.interface
         )
     }
 
@@ -7688,494 +7659,25 @@ extension FalseClass {
     }
 }
 
-// MARK: - Obj3
-@objcMembers class Obj3: NSObject, Codable {
-    let dummy: Int
-    let isoDateTimeOffsetConverter: ISODateTimeOffsetConverter
-    let iterable: Iterable
-    let jdec: Jdec
-    let jenc: Jenc
-    let jpipe: Jpipe
-    let jsonAny: JSONAnyClass
-    let jsonCodingKey: JSONCodingKeyClass
-    let jsonConverter: JSONConverter
-    let jsonDecoder: JSONDecoderClass
-    let jsonEncoder: JSONEncoderClass
-    let jsonException: JSONException
-    let jsonGenerator: JSONGenerator
-    let jsonNode: JSONNode
-    let jsonNull: JSONNullClass
-    let jsonParser: JSONParser
-    let jsonReader: JSONReader
-    let jsonSerializer: JSONSerializer
-    let jsonToken: JSONToken
-    let jsonTokenType: JSONTokenType
-    let jsonWriter: JSONWriter
-    let lambda: Lambda
-    let list: List
-    let lock: Lock
-    let long: Long
-    let map: Map
-    let metadataPropertyHandling: MetadataPropertyHandling
-    let module: Module
-    let mutable: Mutable
-    let namespace: Namespace
-    let native: Native
-    let new: New
-    let newtonsoft: Newtonsoft
-    let no: No
-    let noSuchMethod: NoSuchMethod
-    let noexcept: Noexcept
-    let nonatomic: Nonatomic
-    let none: None
-    let nonlocal: Nonlocal
-    let not: Not
-    let notEq: NotEq
-    let nsError: NSErrorClass
-    let nsString: NSString
-    let null: Null
-    let nullptr: Nullptr
-    let number: Number
-    let obj3Is: Is
-    let obj3JSON: JSON
-    let obj3Lazy: Lazy
-    let obj3Left: Left
-    let obj3Let: Let
-    let obj3Mutating: Mutating
-    let obj3Nil: Nil
-    let obj3None: NoneClass
-    let obj3Nonmutating: Nonmutating
-    let obj3Null: NullClass
-    let obj3Open: Open
-    let obj3Operator: Operator
-    let obj3Optional: Optional
-    let obj3Override: Override
-    let obj3Postfix: Postfix
-    let obj3Precedence: Precedence
-    let obj3Prefix: Prefix
-    let obj3Private: Private
-    let obj3Protocol: ProtocolClass
-    let object: Object
-    let objectMapper: ObjectMapper
-    let of: Of
-    let oneway: Oneway
-    let or: Or
-    let orEq: OrEq
-    let out: Out
-    let package: Package
-    let params: Params
-    let pass: Pass
-    let port: Port
-    let print: Print
-    let printMembers: PrintMembers
-    let printf: Printf
-    let protected: Protected
-    let purpleProtocol: Obj3Protocol
-    let serializerProvider: SerializerProvider
-    let simpleModule: SimpleModule
-    let stdDeserializer: StdDeserializer
-    let stdSerializer: StdSerializer
+// MARK: - ISODateTimeOffsetConverter
+@objcMembers class ISODateTimeOffsetConverter: NSObject, Codable {
+    let isoDateTimeOffsetConverter: Int
 
     enum CodingKeys: String, CodingKey {
-        case dummy = "dummy"
         case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
-        case iterable = "iterable"
-        case jdec = "jdec"
-        case jenc = "jenc"
-        case jpipe = "jpipe"
-        case jsonAny = "JSONAny"
-        case jsonCodingKey = "JSONCodingKey"
-        case jsonConverter = "json_converter"
-        case jsonDecoder = "JSONDecoder"
-        case jsonEncoder = "JSONEncoder"
-        case jsonException = "JsonException"
-        case jsonGenerator = "JsonGenerator"
-        case jsonNode = "JsonNode"
-        case jsonNull = "JSONNull"
-        case jsonParser = "JsonParser"
-        case jsonReader = "JsonReader"
-        case jsonSerializer = "json_serializer"
-        case jsonToken = "json_token"
-        case jsonTokenType = "JsonTokenType"
-        case jsonWriter = "json_writer"
-        case lambda = "lambda"
-        case list = "list"
-        case lock = "lock"
-        case long = "long"
-        case map = "map"
-        case metadataPropertyHandling = "metadata_property_handling"
-        case module = "module"
-        case mutable = "mutable"
-        case namespace = "namespace"
-        case native = "native"
-        case new = "new"
-        case newtonsoft = "newtonsoft"
-        case no = "NO"
-        case noSuchMethod = "noSuchMethod"
-        case noexcept = "noexcept"
-        case nonatomic = "nonatomic"
-        case none = "None"
-        case nonlocal = "nonlocal"
-        case not = "not"
-        case notEq = "not_eq"
-        case nsError = "NSError"
-        case nsString = "NSString"
-        case null = "NULL"
-        case nullptr = "nullptr"
-        case number = "number"
-        case obj3Is = "is"
-        case obj3JSON = "json"
-        case obj3Lazy = "lazy"
-        case obj3Left = "left"
-        case obj3Let = "let"
-        case obj3Mutating = "mutating"
-        case obj3Nil = "nil"
-        case obj3None = "none"
-        case obj3Nonmutating = "nonmutating"
-        case obj3Null = "null"
-        case obj3Open = "open"
-        case obj3Operator = "operator"
-        case obj3Optional = "optional"
-        case obj3Override = "override"
-        case obj3Postfix = "postfix"
-        case obj3Precedence = "precedence"
-        case obj3Prefix = "prefix"
-        case obj3Private = "private"
-        case obj3Protocol = "Protocol"
-        case object = "object"
-        case objectMapper = "ObjectMapper"
-        case of = "of"
-        case oneway = "oneway"
-        case or = "or"
-        case orEq = "or_eq"
-        case out = "out"
-        case package = "package"
-        case params = "params"
-        case pass = "pass"
-        case port = "port"
-        case print = "print"
-        case printMembers = "printMembers"
-        case printf = "printf"
-        case protected = "protected"
-        case purpleProtocol = "protocol"
-        case serializerProvider = "SerializerProvider"
-        case simpleModule = "SimpleModule"
-        case stdDeserializer = "StdDeserializer"
-        case stdSerializer = "StdSerializer"
     }
 
-    init(dummy: Int, isoDateTimeOffsetConverter: ISODateTimeOffsetConverter, iterable: Iterable, jdec: Jdec, jenc: Jenc, jpipe: Jpipe, jsonAny: JSONAnyClass, jsonCodingKey: JSONCodingKeyClass, jsonConverter: JSONConverter, jsonDecoder: JSONDecoderClass, jsonEncoder: JSONEncoderClass, jsonException: JSONException, jsonGenerator: JSONGenerator, jsonNode: JSONNode, jsonNull: JSONNullClass, jsonParser: JSONParser, jsonReader: JSONReader, jsonSerializer: JSONSerializer, jsonToken: JSONToken, jsonTokenType: JSONTokenType, jsonWriter: JSONWriter, lambda: Lambda, list: List, lock: Lock, long: Long, map: Map, metadataPropertyHandling: MetadataPropertyHandling, module: Module, mutable: Mutable, namespace: Namespace, native: Native, new: New, newtonsoft: Newtonsoft, no: No, noSuchMethod: NoSuchMethod, noexcept: Noexcept, nonatomic: Nonatomic, none: None, nonlocal: Nonlocal, not: Not, notEq: NotEq, nsError: NSErrorClass, nsString: NSString, null: Null, nullptr: Nullptr, number: Number, obj3Is: Is, obj3JSON: JSON, obj3Lazy: Lazy, obj3Left: Left, obj3Let: Let, obj3Mutating: Mutating, obj3Nil: Nil, obj3None: NoneClass, obj3Nonmutating: Nonmutating, obj3Null: NullClass, obj3Open: Open, obj3Operator: Operator, obj3Optional: Optional, obj3Override: Override, obj3Postfix: Postfix, obj3Precedence: Precedence, obj3Prefix: Prefix, obj3Private: Private, obj3Protocol: ProtocolClass, object: Object, objectMapper: ObjectMapper, of: Of, oneway: Oneway, or: Or, orEq: OrEq, out: Out, package: Package, params: Params, pass: Pass, port: Port, print: Print, printMembers: PrintMembers, printf: Printf, protected: Protected, purpleProtocol: Obj3Protocol, serializerProvider: SerializerProvider, simpleModule: SimpleModule, stdDeserializer: StdDeserializer, stdSerializer: StdSerializer) {
-        self.dummy = dummy
+    init(isoDateTimeOffsetConverter: Int) {
         self.isoDateTimeOffsetConverter = isoDateTimeOffsetConverter
-        self.iterable = iterable
-        self.jdec = jdec
-        self.jenc = jenc
-        self.jpipe = jpipe
-        self.jsonAny = jsonAny
-        self.jsonCodingKey = jsonCodingKey
-        self.jsonConverter = jsonConverter
-        self.jsonDecoder = jsonDecoder
-        self.jsonEncoder = jsonEncoder
-        self.jsonException = jsonException
-        self.jsonGenerator = jsonGenerator
-        self.jsonNode = jsonNode
-        self.jsonNull = jsonNull
-        self.jsonParser = jsonParser
-        self.jsonReader = jsonReader
-        self.jsonSerializer = jsonSerializer
-        self.jsonToken = jsonToken
-        self.jsonTokenType = jsonTokenType
-        self.jsonWriter = jsonWriter
-        self.lambda = lambda
-        self.list = list
-        self.lock = lock
-        self.long = long
-        self.map = map
-        self.metadataPropertyHandling = metadataPropertyHandling
-        self.module = module
-        self.mutable = mutable
-        self.namespace = namespace
-        self.native = native
-        self.new = new
-        self.newtonsoft = newtonsoft
-        self.no = no
-        self.noSuchMethod = noSuchMethod
-        self.noexcept = noexcept
-        self.nonatomic = nonatomic
-        self.none = none
-        self.nonlocal = nonlocal
-        self.not = not
-        self.notEq = notEq
-        self.nsError = nsError
-        self.nsString = nsString
-        self.null = null
-        self.nullptr = nullptr
-        self.number = number
-        self.obj3Is = obj3Is
-        self.obj3JSON = obj3JSON
-        self.obj3Lazy = obj3Lazy
-        self.obj3Left = obj3Left
-        self.obj3Let = obj3Let
-        self.obj3Mutating = obj3Mutating
-        self.obj3Nil = obj3Nil
-        self.obj3None = obj3None
-        self.obj3Nonmutating = obj3Nonmutating
-        self.obj3Null = obj3Null
-        self.obj3Open = obj3Open
-        self.obj3Operator = obj3Operator
-        self.obj3Optional = obj3Optional
-        self.obj3Override = obj3Override
-        self.obj3Postfix = obj3Postfix
-        self.obj3Precedence = obj3Precedence
-        self.obj3Prefix = obj3Prefix
-        self.obj3Private = obj3Private
-        self.obj3Protocol = obj3Protocol
-        self.object = object
-        self.objectMapper = objectMapper
-        self.of = of
-        self.oneway = oneway
-        self.or = or
-        self.orEq = orEq
-        self.out = out
-        self.package = package
-        self.params = params
-        self.pass = pass
-        self.port = port
-        self.print = print
-        self.printMembers = printMembers
-        self.printf = printf
-        self.protected = protected
-        self.purpleProtocol = purpleProtocol
-        self.serializerProvider = serializerProvider
-        self.simpleModule = simpleModule
-        self.stdDeserializer = stdDeserializer
-        self.stdSerializer = stdSerializer
     }
 }
 
-// MARK: Obj3 convenience initializers and mutators
+// MARK: ISODateTimeOffsetConverter convenience initializers and mutators
 
-extension Obj3 {
+extension ISODateTimeOffsetConverter {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj3.self, from: data)
-        self.init(dummy: me.dummy, isoDateTimeOffsetConverter: me.isoDateTimeOffsetConverter, iterable: me.iterable, jdec: me.jdec, jenc: me.jenc, jpipe: me.jpipe, jsonAny: me.jsonAny, jsonCodingKey: me.jsonCodingKey, jsonConverter: me.jsonConverter, jsonDecoder: me.jsonDecoder, jsonEncoder: me.jsonEncoder, jsonException: me.jsonException, jsonGenerator: me.jsonGenerator, jsonNode: me.jsonNode, jsonNull: me.jsonNull, jsonParser: me.jsonParser, jsonReader: me.jsonReader, jsonSerializer: me.jsonSerializer, jsonToken: me.jsonToken, jsonTokenType: me.jsonTokenType, jsonWriter: me.jsonWriter, lambda: me.lambda, list: me.list, lock: me.lock, long: me.long, map: me.map, metadataPropertyHandling: me.metadataPropertyHandling, module: me.module, mutable: me.mutable, namespace: me.namespace, native: me.native, new: me.new, newtonsoft: me.newtonsoft, no: me.no, noSuchMethod: me.noSuchMethod, noexcept: me.noexcept, nonatomic: me.nonatomic, none: me.none, nonlocal: me.nonlocal, not: me.not, notEq: me.notEq, nsError: me.nsError, nsString: me.nsString, null: me.null, nullptr: me.nullptr, number: me.number, obj3Is: me.obj3Is, obj3JSON: me.obj3JSON, obj3Lazy: me.obj3Lazy, obj3Left: me.obj3Left, obj3Let: me.obj3Let, obj3Mutating: me.obj3Mutating, obj3Nil: me.obj3Nil, obj3None: me.obj3None, obj3Nonmutating: me.obj3Nonmutating, obj3Null: me.obj3Null, obj3Open: me.obj3Open, obj3Operator: me.obj3Operator, obj3Optional: me.obj3Optional, obj3Override: me.obj3Override, obj3Postfix: me.obj3Postfix, obj3Precedence: me.obj3Precedence, obj3Prefix: me.obj3Prefix, obj3Private: me.obj3Private, obj3Protocol: me.obj3Protocol, object: me.object, objectMapper: me.objectMapper, of: me.of, oneway: me.oneway, or: me.or, orEq: me.orEq, out: me.out, package: me.package, params: me.params, pass: me.pass, port: me.port, print: me.print, printMembers: me.printMembers, printf: me.printf, protected: me.protected, purpleProtocol: me.purpleProtocol, serializerProvider: me.serializerProvider, simpleModule: me.simpleModule, stdDeserializer: me.stdDeserializer, stdSerializer: me.stdSerializer)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        dummy: Int? = nil,
-        isoDateTimeOffsetConverter: ISODateTimeOffsetConverter? = nil,
-        iterable: Iterable? = nil,
-        jdec: Jdec? = nil,
-        jenc: Jenc? = nil,
-        jpipe: Jpipe? = nil,
-        jsonAny: JSONAnyClass? = nil,
-        jsonCodingKey: JSONCodingKeyClass? = nil,
-        jsonConverter: JSONConverter? = nil,
-        jsonDecoder: JSONDecoderClass? = nil,
-        jsonEncoder: JSONEncoderClass? = nil,
-        jsonException: JSONException? = nil,
-        jsonGenerator: JSONGenerator? = nil,
-        jsonNode: JSONNode? = nil,
-        jsonNull: JSONNullClass? = nil,
-        jsonParser: JSONParser? = nil,
-        jsonReader: JSONReader? = nil,
-        jsonSerializer: JSONSerializer? = nil,
-        jsonToken: JSONToken? = nil,
-        jsonTokenType: JSONTokenType? = nil,
-        jsonWriter: JSONWriter? = nil,
-        lambda: Lambda? = nil,
-        list: List? = nil,
-        lock: Lock? = nil,
-        long: Long? = nil,
-        map: Map? = nil,
-        metadataPropertyHandling: MetadataPropertyHandling? = nil,
-        module: Module? = nil,
-        mutable: Mutable? = nil,
-        namespace: Namespace? = nil,
-        native: Native? = nil,
-        new: New? = nil,
-        newtonsoft: Newtonsoft? = nil,
-        no: No? = nil,
-        noSuchMethod: NoSuchMethod? = nil,
-        noexcept: Noexcept? = nil,
-        nonatomic: Nonatomic? = nil,
-        none: None? = nil,
-        nonlocal: Nonlocal? = nil,
-        not: Not? = nil,
-        notEq: NotEq? = nil,
-        nsError: NSErrorClass? = nil,
-        nsString: NSString? = nil,
-        null: Null? = nil,
-        nullptr: Nullptr? = nil,
-        number: Number? = nil,
-        obj3Is: Is? = nil,
-        obj3JSON: JSON? = nil,
-        obj3Lazy: Lazy? = nil,
-        obj3Left: Left? = nil,
-        obj3Let: Let? = nil,
-        obj3Mutating: Mutating? = nil,
-        obj3Nil: Nil? = nil,
-        obj3None: NoneClass? = nil,
-        obj3Nonmutating: Nonmutating? = nil,
-        obj3Null: NullClass? = nil,
-        obj3Open: Open? = nil,
-        obj3Operator: Operator? = nil,
-        obj3Optional: Optional? = nil,
-        obj3Override: Override? = nil,
-        obj3Postfix: Postfix? = nil,
-        obj3Precedence: Precedence? = nil,
-        obj3Prefix: Prefix? = nil,
-        obj3Private: Private? = nil,
-        obj3Protocol: ProtocolClass? = nil,
-        object: Object? = nil,
-        objectMapper: ObjectMapper? = nil,
-        of: Of? = nil,
-        oneway: Oneway? = nil,
-        or: Or? = nil,
-        orEq: OrEq? = nil,
-        out: Out? = nil,
-        package: Package? = nil,
-        params: Params? = nil,
-        pass: Pass? = nil,
-        port: Port? = nil,
-        print: Print? = nil,
-        printMembers: PrintMembers? = nil,
-        printf: Printf? = nil,
-        protected: Protected? = nil,
-        purpleProtocol: Obj3Protocol? = nil,
-        serializerProvider: SerializerProvider? = nil,
-        simpleModule: SimpleModule? = nil,
-        stdDeserializer: StdDeserializer? = nil,
-        stdSerializer: StdSerializer? = nil
-    ) -> Obj3 {
-        return Obj3(
-            dummy: dummy ?? self.dummy,
-            isoDateTimeOffsetConverter: isoDateTimeOffsetConverter ?? self.isoDateTimeOffsetConverter,
-            iterable: iterable ?? self.iterable,
-            jdec: jdec ?? self.jdec,
-            jenc: jenc ?? self.jenc,
-            jpipe: jpipe ?? self.jpipe,
-            jsonAny: jsonAny ?? self.jsonAny,
-            jsonCodingKey: jsonCodingKey ?? self.jsonCodingKey,
-            jsonConverter: jsonConverter ?? self.jsonConverter,
-            jsonDecoder: jsonDecoder ?? self.jsonDecoder,
-            jsonEncoder: jsonEncoder ?? self.jsonEncoder,
-            jsonException: jsonException ?? self.jsonException,
-            jsonGenerator: jsonGenerator ?? self.jsonGenerator,
-            jsonNode: jsonNode ?? self.jsonNode,
-            jsonNull: jsonNull ?? self.jsonNull,
-            jsonParser: jsonParser ?? self.jsonParser,
-            jsonReader: jsonReader ?? self.jsonReader,
-            jsonSerializer: jsonSerializer ?? self.jsonSerializer,
-            jsonToken: jsonToken ?? self.jsonToken,
-            jsonTokenType: jsonTokenType ?? self.jsonTokenType,
-            jsonWriter: jsonWriter ?? self.jsonWriter,
-            lambda: lambda ?? self.lambda,
-            list: list ?? self.list,
-            lock: lock ?? self.lock,
-            long: long ?? self.long,
-            map: map ?? self.map,
-            metadataPropertyHandling: metadataPropertyHandling ?? self.metadataPropertyHandling,
-            module: module ?? self.module,
-            mutable: mutable ?? self.mutable,
-            namespace: namespace ?? self.namespace,
-            native: native ?? self.native,
-            new: new ?? self.new,
-            newtonsoft: newtonsoft ?? self.newtonsoft,
-            no: no ?? self.no,
-            noSuchMethod: noSuchMethod ?? self.noSuchMethod,
-            noexcept: noexcept ?? self.noexcept,
-            nonatomic: nonatomic ?? self.nonatomic,
-            none: none ?? self.none,
-            nonlocal: nonlocal ?? self.nonlocal,
-            not: not ?? self.not,
-            notEq: notEq ?? self.notEq,
-            nsError: nsError ?? self.nsError,
-            nsString: nsString ?? self.nsString,
-            null: null ?? self.null,
-            nullptr: nullptr ?? self.nullptr,
-            number: number ?? self.number,
-            obj3Is: obj3Is ?? self.obj3Is,
-            obj3JSON: obj3JSON ?? self.obj3JSON,
-            obj3Lazy: obj3Lazy ?? self.obj3Lazy,
-            obj3Left: obj3Left ?? self.obj3Left,
-            obj3Let: obj3Let ?? self.obj3Let,
-            obj3Mutating: obj3Mutating ?? self.obj3Mutating,
-            obj3Nil: obj3Nil ?? self.obj3Nil,
-            obj3None: obj3None ?? self.obj3None,
-            obj3Nonmutating: obj3Nonmutating ?? self.obj3Nonmutating,
-            obj3Null: obj3Null ?? self.obj3Null,
-            obj3Open: obj3Open ?? self.obj3Open,
-            obj3Operator: obj3Operator ?? self.obj3Operator,
-            obj3Optional: obj3Optional ?? self.obj3Optional,
-            obj3Override: obj3Override ?? self.obj3Override,
-            obj3Postfix: obj3Postfix ?? self.obj3Postfix,
-            obj3Precedence: obj3Precedence ?? self.obj3Precedence,
-            obj3Prefix: obj3Prefix ?? self.obj3Prefix,
-            obj3Private: obj3Private ?? self.obj3Private,
-            obj3Protocol: obj3Protocol ?? self.obj3Protocol,
-            object: object ?? self.object,
-            objectMapper: objectMapper ?? self.objectMapper,
-            of: of ?? self.of,
-            oneway: oneway ?? self.oneway,
-            or: or ?? self.or,
-            orEq: orEq ?? self.orEq,
-            out: out ?? self.out,
-            package: package ?? self.package,
-            params: params ?? self.params,
-            pass: pass ?? self.pass,
-            port: port ?? self.port,
-            print: print ?? self.print,
-            printMembers: printMembers ?? self.printMembers,
-            printf: printf ?? self.printf,
-            protected: protected ?? self.protected,
-            purpleProtocol: purpleProtocol ?? self.purpleProtocol,
-            serializerProvider: serializerProvider ?? self.serializerProvider,
-            simpleModule: simpleModule ?? self.simpleModule,
-            stdDeserializer: stdDeserializer ?? self.stdDeserializer,
-            stdSerializer: stdSerializer ?? self.stdSerializer
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - ISODateTimeOffsetConverter
-@objcMembers class ISODateTimeOffsetConverter: NSObject, Codable {
-    let isoDateTimeOffsetConverter: Int
-
-    enum CodingKeys: String, CodingKey {
-        case isoDateTimeOffsetConverter = "IsoDateTimeOffsetConverter"
-    }
-
-    init(isoDateTimeOffsetConverter: Int) {
-        self.isoDateTimeOffsetConverter = isoDateTimeOffsetConverter
-    }
-}
-
-// MARK: ISODateTimeOffsetConverter convenience initializers and mutators
-
-extension ISODateTimeOffsetConverter {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ISODateTimeOffsetConverter.self, from: data)
-        self.init(isoDateTimeOffsetConverter: me.isoDateTimeOffsetConverter)
+        let me = try newJSONDecoder().decode(ISODateTimeOffsetConverter.self, from: data)
+        self.init(isoDateTimeOffsetConverter: me.isoDateTimeOffsetConverter)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10264,25 +9766,25 @@ extension Null {
     }
 }
 
-// MARK: - Nullptr
-@objcMembers class Nullptr: NSObject, Codable {
-    let nullptr: Int
+// MARK: - Import
+@objcMembers class Import: NSObject, Codable {
+    let importImport: Int
 
     enum CodingKeys: String, CodingKey {
-        case nullptr = "nullptr"
+        case importImport = "import"
     }
 
-    init(nullptr: Int) {
-        self.nullptr = nullptr
+    init(importImport: Int) {
+        self.importImport = importImport
     }
 }
 
-// MARK: Nullptr convenience initializers and mutators
+// MARK: Import convenience initializers and mutators
 
-extension Nullptr {
+extension Import {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Nullptr.self, from: data)
-        self.init(nullptr: me.nullptr)
+        let me = try newJSONDecoder().decode(Import.self, from: data)
+        self.init(importImport: me.importImport)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10297,10 +9799,10 @@ extension Nullptr {
     }
 
     func with(
-        nullptr: Int? = nil
-    ) -> Nullptr {
-        return Nullptr(
-            nullptr: nullptr ?? self.nullptr
+        importImport: Int? = nil
+    ) -> Import {
+        return Import(
+            importImport: importImport ?? self.importImport
         )
     }
 
@@ -10313,25 +9815,25 @@ extension Nullptr {
     }
 }
 
-// MARK: - Number
-@objcMembers class Number: NSObject, Codable {
-    let number: Int
+// MARK: - In
+@objcMembers class In: NSObject, Codable {
+    let inIn: Int
 
     enum CodingKeys: String, CodingKey {
-        case number = "number"
+        case inIn = "in"
     }
 
-    init(number: Int) {
-        self.number = number
+    init(inIn: Int) {
+        self.inIn = inIn
     }
 }
 
-// MARK: Number convenience initializers and mutators
+// MARK: In convenience initializers and mutators
 
-extension Number {
+extension In {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Number.self, from: data)
-        self.init(number: me.number)
+        let me = try newJSONDecoder().decode(In.self, from: data)
+        self.init(inIn: me.inIn)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10346,10 +9848,10 @@ extension Number {
     }
 
     func with(
-        number: Int? = nil
-    ) -> Number {
-        return Number(
-            number: number ?? self.number
+        inIn: Int? = nil
+    ) -> In {
+        return In(
+            inIn: inIn ?? self.inIn
         )
     }
 
@@ -10362,25 +9864,25 @@ extension Number {
     }
 }
 
-// MARK: - Is
-@objcMembers class Is: NSObject, Codable {
-    let isIs: Int
+// MARK: - Indirect
+@objcMembers class Indirect: NSObject, Codable {
+    let indirectIndirect: Int
 
     enum CodingKeys: String, CodingKey {
-        case isIs = "is"
+        case indirectIndirect = "indirect"
     }
 
-    init(isIs: Int) {
-        self.isIs = isIs
+    init(indirectIndirect: Int) {
+        self.indirectIndirect = indirectIndirect
     }
 }
 
-// MARK: Is convenience initializers and mutators
+// MARK: Indirect convenience initializers and mutators
 
-extension Is {
+extension Indirect {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Is.self, from: data)
-        self.init(isIs: me.isIs)
+        let me = try newJSONDecoder().decode(Indirect.self, from: data)
+        self.init(indirectIndirect: me.indirectIndirect)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10395,10 +9897,10 @@ extension Is {
     }
 
     func with(
-        isIs: Int? = nil
-    ) -> Is {
-        return Is(
-            isIs: isIs ?? self.isIs
+        indirectIndirect: Int? = nil
+    ) -> Indirect {
+        return Indirect(
+            indirectIndirect: indirectIndirect ?? self.indirectIndirect
         )
     }
 
@@ -10411,25 +9913,25 @@ extension Is {
     }
 }
 
-// MARK: - JSON
-@objcMembers class JSON: NSObject, Codable {
-    let jsonJSON: Int
+// MARK: - Infix
+@objcMembers class Infix: NSObject, Codable {
+    let infixInfix: Int
 
     enum CodingKeys: String, CodingKey {
-        case jsonJSON = "json"
+        case infixInfix = "infix"
     }
 
-    init(jsonJSON: Int) {
-        self.jsonJSON = jsonJSON
+    init(infixInfix: Int) {
+        self.infixInfix = infixInfix
     }
 }
 
-// MARK: JSON convenience initializers and mutators
+// MARK: Infix convenience initializers and mutators
 
-extension JSON {
+extension Infix {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(JSON.self, from: data)
-        self.init(jsonJSON: me.jsonJSON)
+        let me = try newJSONDecoder().decode(Infix.self, from: data)
+        self.init(infixInfix: me.infixInfix)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10444,8 +9946,253 @@ extension JSON {
     }
 
     func with(
-        jsonJSON: Int? = nil
-    ) -> JSON {
+        infixInfix: Int? = nil
+    ) -> Infix {
+        return Infix(
+            infixInfix: infixInfix ?? self.infixInfix
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Init
+@objcMembers class Init: NSObject, Codable {
+    let initInit: Int
+
+    enum CodingKeys: String, CodingKey {
+        case initInit = "init"
+    }
+
+    init(initInit: Int) {
+        self.initInit = initInit
+    }
+}
+
+// MARK: Init convenience initializers and mutators
+
+extension Init {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Init.self, from: data)
+        self.init(initInit: me.initInit)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        initInit: Int? = nil
+    ) -> Init {
+        return Init(
+            initInit: initInit ?? self.initInit
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Inout
+@objcMembers class Inout: NSObject, Codable {
+    let inoutInout: Int
+
+    enum CodingKeys: String, CodingKey {
+        case inoutInout = "inout"
+    }
+
+    init(inoutInout: Int) {
+        self.inoutInout = inoutInout
+    }
+}
+
+// MARK: Inout convenience initializers and mutators
+
+extension Inout {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Inout.self, from: data)
+        self.init(inoutInout: me.inoutInout)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        inoutInout: Int? = nil
+    ) -> Inout {
+        return Inout(
+            inoutInout: inoutInout ?? self.inoutInout
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Internal
+@objcMembers class Internal: NSObject, Codable {
+    let internalInternal: Int
+
+    enum CodingKeys: String, CodingKey {
+        case internalInternal = "internal"
+    }
+
+    init(internalInternal: Int) {
+        self.internalInternal = internalInternal
+    }
+}
+
+// MARK: Internal convenience initializers and mutators
+
+extension Internal {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Internal.self, from: data)
+        self.init(internalInternal: me.internalInternal)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        internalInternal: Int? = nil
+    ) -> Internal {
+        return Internal(
+            internalInternal: internalInternal ?? self.internalInternal
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Is
+@objcMembers class Is: NSObject, Codable {
+    let isIs: Int
+
+    enum CodingKeys: String, CodingKey {
+        case isIs = "is"
+    }
+
+    init(isIs: Int) {
+        self.isIs = isIs
+    }
+}
+
+// MARK: Is convenience initializers and mutators
+
+extension Is {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Is.self, from: data)
+        self.init(isIs: me.isIs)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        isIs: Int? = nil
+    ) -> Is {
+        return Is(
+            isIs: isIs ?? self.isIs
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - JSON
+@objcMembers class JSON: NSObject, Codable {
+    let jsonJSON: Int
+
+    enum CodingKeys: String, CodingKey {
+        case jsonJSON = "json"
+    }
+
+    init(jsonJSON: Int) {
+        self.jsonJSON = jsonJSON
+    }
+}
+
+// MARK: JSON convenience initializers and mutators
+
+extension JSON {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(JSON.self, from: data)
+        self.init(jsonJSON: me.jsonJSON)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        jsonJSON: Int? = nil
+    ) -> JSON {
         return JSON(
             jsonJSON: jsonJSON ?? self.jsonJSON
         )
@@ -10852,74 +10599,217 @@ extension NullClass {
     }
 }
 
-// MARK: - Open
-@objcMembers class Open: NSObject, Codable {
-    let openOpen: Int
-
-    enum CodingKeys: String, CodingKey {
-        case openOpen = "open"
-    }
-
-    init(openOpen: Int) {
-        self.openOpen = openOpen
-    }
-}
-
-// MARK: Open convenience initializers and mutators
-
-extension Open {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Open.self, from: data)
-        self.init(openOpen: me.openOpen)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        openOpen: Int? = nil
-    ) -> Open {
-        return Open(
-            openOpen: openOpen ?? self.openOpen
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Operator
-@objcMembers class Operator: NSObject, Codable {
-    let operatorOperator: Int
+// MARK: - Obj4
+@objcMembers class Obj4: NSObject, Codable {
+    let dummy: Int
+    let nullptr: Nullptr
+    let number: Number
+    let obj4Open: Open
+    let obj4Operator: Operator
+    let obj4Optional: Optional
+    let obj4Override: Override
+    let obj4Postfix: Postfix
+    let obj4Precedence: Precedence
+    let obj4Prefix: Prefix
+    let obj4Private: Private
+    let obj4Protocol: ProtocolClass
+    let obj4Public: Public
+    let obj4Repeat: Repeat
+    let obj4Required: Required
+    let obj4Retain: Retain
+    let obj4Rethrows: Rethrows
+    let obj4Return: Return
+    let obj4Right: Right
+    let obj4Self: SelfClass
+    let obj4Set: Set
+    let obj4Static: Static
+    let object: Object
+    let objectMapper: ObjectMapper
+    let of: Of
+    let oneway: Oneway
+    let or: Or
+    let orEq: OrEq
+    let out: Out
+    let package: Package
+    let params: Params
+    let pass: Pass
+    let port: Port
+    let print: Print
+    let printMembers: PrintMembers
+    let printf: Printf
+    let protected: Protected
+    let purpleProtocol: Obj4Protocol
+    let purpleSelf: Obj4Self
+    let quicktype: Quicktype
+    let raise: Raise
+    let range: Range
+    let readonly: Readonly
+    let ref: Ref
+    let regExp: RegExp
+    let register: Register
+    let reinterpretCast: ReinterpretCast
+    let require: Require
+    let requires: Requires
+    let restrict: Restrict
+    let runtimeType: RuntimeType
+    let s: S
+    let sbyte: Sbyte
+    let sealed: Sealed
+    let sel: Sel
+    let select: Select
+    let serialize: Serialize
+    let serializerProvider: SerializerProvider
+    let short: Short
+    let signed: Signed
+    let simpleModule: SimpleModule
+    let sizeof: Sizeof
+    let stackalloc: Stackalloc
+    let standards: Standards
+    let staticAssert: StaticAssert
 
     enum CodingKeys: String, CodingKey {
-        case operatorOperator = "operator"
+        case dummy = "dummy"
+        case nullptr = "nullptr"
+        case number = "number"
+        case obj4Open = "open"
+        case obj4Operator = "operator"
+        case obj4Optional = "optional"
+        case obj4Override = "override"
+        case obj4Postfix = "postfix"
+        case obj4Precedence = "precedence"
+        case obj4Prefix = "prefix"
+        case obj4Private = "private"
+        case obj4Protocol = "Protocol"
+        case obj4Public = "public"
+        case obj4Repeat = "repeat"
+        case obj4Required = "required"
+        case obj4Retain = "retain"
+        case obj4Rethrows = "rethrows"
+        case obj4Return = "return"
+        case obj4Right = "right"
+        case obj4Self = "Self"
+        case obj4Set = "set"
+        case obj4Static = "static"
+        case object = "object"
+        case objectMapper = "ObjectMapper"
+        case of = "of"
+        case oneway = "oneway"
+        case or = "or"
+        case orEq = "or_eq"
+        case out = "out"
+        case package = "package"
+        case params = "params"
+        case pass = "pass"
+        case port = "port"
+        case print = "print"
+        case printMembers = "printMembers"
+        case printf = "printf"
+        case protected = "protected"
+        case purpleProtocol = "protocol"
+        case purpleSelf = "self"
+        case quicktype = "quicktype"
+        case raise = "raise"
+        case range = "range"
+        case readonly = "readonly"
+        case ref = "ref"
+        case regExp = "RegExp"
+        case register = "register"
+        case reinterpretCast = "reinterpret_cast"
+        case require = "require"
+        case requires = "requires"
+        case restrict = "restrict"
+        case runtimeType = "runtimeType"
+        case s = "s"
+        case sbyte = "sbyte"
+        case sealed = "sealed"
+        case sel = "SEL"
+        case select = "select"
+        case serialize = "serialize"
+        case serializerProvider = "SerializerProvider"
+        case short = "short"
+        case signed = "signed"
+        case simpleModule = "SimpleModule"
+        case sizeof = "sizeof"
+        case stackalloc = "stackalloc"
+        case standards = "Standards"
+        case staticAssert = "static_assert"
     }
 
-    init(operatorOperator: Int) {
-        self.operatorOperator = operatorOperator
+    init(dummy: Int, nullptr: Nullptr, number: Number, obj4Open: Open, obj4Operator: Operator, obj4Optional: Optional, obj4Override: Override, obj4Postfix: Postfix, obj4Precedence: Precedence, obj4Prefix: Prefix, obj4Private: Private, obj4Protocol: ProtocolClass, obj4Public: Public, obj4Repeat: Repeat, obj4Required: Required, obj4Retain: Retain, obj4Rethrows: Rethrows, obj4Return: Return, obj4Right: Right, obj4Self: SelfClass, obj4Set: Set, obj4Static: Static, object: Object, objectMapper: ObjectMapper, of: Of, oneway: Oneway, or: Or, orEq: OrEq, out: Out, package: Package, params: Params, pass: Pass, port: Port, print: Print, printMembers: PrintMembers, printf: Printf, protected: Protected, purpleProtocol: Obj4Protocol, purpleSelf: Obj4Self, quicktype: Quicktype, raise: Raise, range: Range, readonly: Readonly, ref: Ref, regExp: RegExp, register: Register, reinterpretCast: ReinterpretCast, require: Require, requires: Requires, restrict: Restrict, runtimeType: RuntimeType, s: S, sbyte: Sbyte, sealed: Sealed, sel: Sel, select: Select, serialize: Serialize, serializerProvider: SerializerProvider, short: Short, signed: Signed, simpleModule: SimpleModule, sizeof: Sizeof, stackalloc: Stackalloc, standards: Standards, staticAssert: StaticAssert) {
+        self.dummy = dummy
+        self.nullptr = nullptr
+        self.number = number
+        self.obj4Open = obj4Open
+        self.obj4Operator = obj4Operator
+        self.obj4Optional = obj4Optional
+        self.obj4Override = obj4Override
+        self.obj4Postfix = obj4Postfix
+        self.obj4Precedence = obj4Precedence
+        self.obj4Prefix = obj4Prefix
+        self.obj4Private = obj4Private
+        self.obj4Protocol = obj4Protocol
+        self.obj4Public = obj4Public
+        self.obj4Repeat = obj4Repeat
+        self.obj4Required = obj4Required
+        self.obj4Retain = obj4Retain
+        self.obj4Rethrows = obj4Rethrows
+        self.obj4Return = obj4Return
+        self.obj4Right = obj4Right
+        self.obj4Self = obj4Self
+        self.obj4Set = obj4Set
+        self.obj4Static = obj4Static
+        self.object = object
+        self.objectMapper = objectMapper
+        self.of = of
+        self.oneway = oneway
+        self.or = or
+        self.orEq = orEq
+        self.out = out
+        self.package = package
+        self.params = params
+        self.pass = pass
+        self.port = port
+        self.print = print
+        self.printMembers = printMembers
+        self.printf = printf
+        self.protected = protected
+        self.purpleProtocol = purpleProtocol
+        self.purpleSelf = purpleSelf
+        self.quicktype = quicktype
+        self.raise = raise
+        self.range = range
+        self.readonly = readonly
+        self.ref = ref
+        self.regExp = regExp
+        self.register = register
+        self.reinterpretCast = reinterpretCast
+        self.require = require
+        self.requires = requires
+        self.restrict = restrict
+        self.runtimeType = runtimeType
+        self.s = s
+        self.sbyte = sbyte
+        self.sealed = sealed
+        self.sel = sel
+        self.select = select
+        self.serialize = serialize
+        self.serializerProvider = serializerProvider
+        self.short = short
+        self.signed = signed
+        self.simpleModule = simpleModule
+        self.sizeof = sizeof
+        self.stackalloc = stackalloc
+        self.standards = standards
+        self.staticAssert = staticAssert
     }
 }
 
-// MARK: Operator convenience initializers and mutators
+// MARK: Obj4 convenience initializers and mutators
 
-extension Operator {
+extension Obj4 {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Operator.self, from: data)
-        self.init(operatorOperator: me.operatorOperator)
+        let me = try newJSONDecoder().decode(Obj4.self, from: data)
+        self.init(dummy: me.dummy, nullptr: me.nullptr, number: me.number, obj4Open: me.obj4Open, obj4Operator: me.obj4Operator, obj4Optional: me.obj4Optional, obj4Override: me.obj4Override, obj4Postfix: me.obj4Postfix, obj4Precedence: me.obj4Precedence, obj4Prefix: me.obj4Prefix, obj4Private: me.obj4Private, obj4Protocol: me.obj4Protocol, obj4Public: me.obj4Public, obj4Repeat: me.obj4Repeat, obj4Required: me.obj4Required, obj4Retain: me.obj4Retain, obj4Rethrows: me.obj4Rethrows, obj4Return: me.obj4Return, obj4Right: me.obj4Right, obj4Self: me.obj4Self, obj4Set: me.obj4Set, obj4Static: me.obj4Static, object: me.object, objectMapper: me.objectMapper, of: me.of, oneway: me.oneway, or: me.or, orEq: me.orEq, out: me.out, package: me.package, params: me.params, pass: me.pass, port: me.port, print: me.print, printMembers: me.printMembers, printf: me.printf, protected: me.protected, purpleProtocol: me.purpleProtocol, purpleSelf: me.purpleSelf, quicktype: me.quicktype, raise: me.raise, range: me.range, readonly: me.readonly, ref: me.ref, regExp: me.regExp, register: me.register, reinterpretCast: me.reinterpretCast, require: me.require, requires: me.requires, restrict: me.restrict, runtimeType: me.runtimeType, s: me.s, sbyte: me.sbyte, sealed: me.sealed, sel: me.sel, select: me.select, serialize: me.serialize, serializerProvider: me.serializerProvider, short: me.short, signed: me.signed, simpleModule: me.simpleModule, sizeof: me.sizeof, stackalloc: me.stackalloc, standards: me.standards, staticAssert: me.staticAssert)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -10934,59 +10824,138 @@ extension Operator {
     }
 
     func with(
-        operatorOperator: Int? = nil
-    ) -> Operator {
-        return Operator(
-            operatorOperator: operatorOperator ?? self.operatorOperator
-        )
-    }
-
-    func jsonData() throws -> Data {
-        return try newJSONEncoder().encode(self)
-    }
-
-    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
-        return String(data: try self.jsonData(), encoding: encoding)
-    }
-}
-
-// MARK: - Optional
-@objcMembers class Optional: NSObject, Codable {
-    let optionalOptional: Int
-
-    enum CodingKeys: String, CodingKey {
-        case optionalOptional = "optional"
-    }
-
-    init(optionalOptional: Int) {
-        self.optionalOptional = optionalOptional
-    }
-}
-
-// MARK: Optional convenience initializers and mutators
-
-extension Optional {
-    convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Optional.self, from: data)
-        self.init(optionalOptional: me.optionalOptional)
-    }
-
-    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
-        guard let data = json.data(using: encoding) else {
-            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
-        }
-        try self.init(data: data)
-    }
-
-    convenience init(fromURL url: URL) throws {
-        try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        optionalOptional: Int? = nil
-    ) -> Optional {
-        return Optional(
-            optionalOptional: optionalOptional ?? self.optionalOptional
+        dummy: Int? = nil,
+        nullptr: Nullptr? = nil,
+        number: Number? = nil,
+        obj4Open: Open? = nil,
+        obj4Operator: Operator? = nil,
+        obj4Optional: Optional? = nil,
+        obj4Override: Override? = nil,
+        obj4Postfix: Postfix? = nil,
+        obj4Precedence: Precedence? = nil,
+        obj4Prefix: Prefix? = nil,
+        obj4Private: Private? = nil,
+        obj4Protocol: ProtocolClass? = nil,
+        obj4Public: Public? = nil,
+        obj4Repeat: Repeat? = nil,
+        obj4Required: Required? = nil,
+        obj4Retain: Retain? = nil,
+        obj4Rethrows: Rethrows? = nil,
+        obj4Return: Return? = nil,
+        obj4Right: Right? = nil,
+        obj4Self: SelfClass? = nil,
+        obj4Set: Set? = nil,
+        obj4Static: Static? = nil,
+        object: Object? = nil,
+        objectMapper: ObjectMapper? = nil,
+        of: Of? = nil,
+        oneway: Oneway? = nil,
+        or: Or? = nil,
+        orEq: OrEq? = nil,
+        out: Out? = nil,
+        package: Package? = nil,
+        params: Params? = nil,
+        pass: Pass? = nil,
+        port: Port? = nil,
+        print: Print? = nil,
+        printMembers: PrintMembers? = nil,
+        printf: Printf? = nil,
+        protected: Protected? = nil,
+        purpleProtocol: Obj4Protocol? = nil,
+        purpleSelf: Obj4Self? = nil,
+        quicktype: Quicktype? = nil,
+        raise: Raise? = nil,
+        range: Range? = nil,
+        readonly: Readonly? = nil,
+        ref: Ref? = nil,
+        regExp: RegExp? = nil,
+        register: Register? = nil,
+        reinterpretCast: ReinterpretCast? = nil,
+        require: Require? = nil,
+        requires: Requires? = nil,
+        restrict: Restrict? = nil,
+        runtimeType: RuntimeType? = nil,
+        s: S? = nil,
+        sbyte: Sbyte? = nil,
+        sealed: Sealed? = nil,
+        sel: Sel? = nil,
+        select: Select? = nil,
+        serialize: Serialize? = nil,
+        serializerProvider: SerializerProvider? = nil,
+        short: Short? = nil,
+        signed: Signed? = nil,
+        simpleModule: SimpleModule? = nil,
+        sizeof: Sizeof? = nil,
+        stackalloc: Stackalloc? = nil,
+        standards: Standards? = nil,
+        staticAssert: StaticAssert? = nil
+    ) -> Obj4 {
+        return Obj4(
+            dummy: dummy ?? self.dummy,
+            nullptr: nullptr ?? self.nullptr,
+            number: number ?? self.number,
+            obj4Open: obj4Open ?? self.obj4Open,
+            obj4Operator: obj4Operator ?? self.obj4Operator,
+            obj4Optional: obj4Optional ?? self.obj4Optional,
+            obj4Override: obj4Override ?? self.obj4Override,
+            obj4Postfix: obj4Postfix ?? self.obj4Postfix,
+            obj4Precedence: obj4Precedence ?? self.obj4Precedence,
+            obj4Prefix: obj4Prefix ?? self.obj4Prefix,
+            obj4Private: obj4Private ?? self.obj4Private,
+            obj4Protocol: obj4Protocol ?? self.obj4Protocol,
+            obj4Public: obj4Public ?? self.obj4Public,
+            obj4Repeat: obj4Repeat ?? self.obj4Repeat,
+            obj4Required: obj4Required ?? self.obj4Required,
+            obj4Retain: obj4Retain ?? self.obj4Retain,
+            obj4Rethrows: obj4Rethrows ?? self.obj4Rethrows,
+            obj4Return: obj4Return ?? self.obj4Return,
+            obj4Right: obj4Right ?? self.obj4Right,
+            obj4Self: obj4Self ?? self.obj4Self,
+            obj4Set: obj4Set ?? self.obj4Set,
+            obj4Static: obj4Static ?? self.obj4Static,
+            object: object ?? self.object,
+            objectMapper: objectMapper ?? self.objectMapper,
+            of: of ?? self.of,
+            oneway: oneway ?? self.oneway,
+            or: or ?? self.or,
+            orEq: orEq ?? self.orEq,
+            out: out ?? self.out,
+            package: package ?? self.package,
+            params: params ?? self.params,
+            pass: pass ?? self.pass,
+            port: port ?? self.port,
+            print: print ?? self.print,
+            printMembers: printMembers ?? self.printMembers,
+            printf: printf ?? self.printf,
+            protected: protected ?? self.protected,
+            purpleProtocol: purpleProtocol ?? self.purpleProtocol,
+            purpleSelf: purpleSelf ?? self.purpleSelf,
+            quicktype: quicktype ?? self.quicktype,
+            raise: raise ?? self.raise,
+            range: range ?? self.range,
+            readonly: readonly ?? self.readonly,
+            ref: ref ?? self.ref,
+            regExp: regExp ?? self.regExp,
+            register: register ?? self.register,
+            reinterpretCast: reinterpretCast ?? self.reinterpretCast,
+            require: require ?? self.require,
+            requires: requires ?? self.requires,
+            restrict: restrict ?? self.restrict,
+            runtimeType: runtimeType ?? self.runtimeType,
+            s: s ?? self.s,
+            sbyte: sbyte ?? self.sbyte,
+            sealed: sealed ?? self.sealed,
+            sel: sel ?? self.sel,
+            select: select ?? self.select,
+            serialize: serialize ?? self.serialize,
+            serializerProvider: serializerProvider ?? self.serializerProvider,
+            short: short ?? self.short,
+            signed: signed ?? self.signed,
+            simpleModule: simpleModule ?? self.simpleModule,
+            sizeof: sizeof ?? self.sizeof,
+            stackalloc: stackalloc ?? self.stackalloc,
+            standards: standards ?? self.standards,
+            staticAssert: staticAssert ?? self.staticAssert
         )
     }
 
@@ -10999,25 +10968,25 @@ extension Optional {
     }
 }
 
-// MARK: - Override
-@objcMembers class Override: NSObject, Codable {
-    let overrideOverride: Int
+// MARK: - Nullptr
+@objcMembers class Nullptr: NSObject, Codable {
+    let nullptr: Int
 
     enum CodingKeys: String, CodingKey {
-        case overrideOverride = "override"
+        case nullptr = "nullptr"
     }
 
-    init(overrideOverride: Int) {
-        self.overrideOverride = overrideOverride
+    init(nullptr: Int) {
+        self.nullptr = nullptr
     }
 }
 
-// MARK: Override convenience initializers and mutators
+// MARK: Nullptr convenience initializers and mutators
 
-extension Override {
+extension Nullptr {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Override.self, from: data)
-        self.init(overrideOverride: me.overrideOverride)
+        let me = try newJSONDecoder().decode(Nullptr.self, from: data)
+        self.init(nullptr: me.nullptr)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11032,10 +11001,10 @@ extension Override {
     }
 
     func with(
-        overrideOverride: Int? = nil
-    ) -> Override {
-        return Override(
-            overrideOverride: overrideOverride ?? self.overrideOverride
+        nullptr: Int? = nil
+    ) -> Nullptr {
+        return Nullptr(
+            nullptr: nullptr ?? self.nullptr
         )
     }
 
@@ -11048,25 +11017,25 @@ extension Override {
     }
 }
 
-// MARK: - Postfix
-@objcMembers class Postfix: NSObject, Codable {
-    let postfixPostfix: Int
+// MARK: - Number
+@objcMembers class Number: NSObject, Codable {
+    let number: Int
 
     enum CodingKeys: String, CodingKey {
-        case postfixPostfix = "postfix"
+        case number = "number"
     }
 
-    init(postfixPostfix: Int) {
-        self.postfixPostfix = postfixPostfix
+    init(number: Int) {
+        self.number = number
     }
 }
 
-// MARK: Postfix convenience initializers and mutators
+// MARK: Number convenience initializers and mutators
 
-extension Postfix {
+extension Number {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Postfix.self, from: data)
-        self.init(postfixPostfix: me.postfixPostfix)
+        let me = try newJSONDecoder().decode(Number.self, from: data)
+        self.init(number: me.number)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11081,10 +11050,10 @@ extension Postfix {
     }
 
     func with(
-        postfixPostfix: Int? = nil
-    ) -> Postfix {
-        return Postfix(
-            postfixPostfix: postfixPostfix ?? self.postfixPostfix
+        number: Int? = nil
+    ) -> Number {
+        return Number(
+            number: number ?? self.number
         )
     }
 
@@ -11097,25 +11066,25 @@ extension Postfix {
     }
 }
 
-// MARK: - Precedence
-@objcMembers class Precedence: NSObject, Codable {
-    let precedencePrecedence: Int
+// MARK: - Open
+@objcMembers class Open: NSObject, Codable {
+    let openOpen: Int
 
     enum CodingKeys: String, CodingKey {
-        case precedencePrecedence = "precedence"
+        case openOpen = "open"
     }
 
-    init(precedencePrecedence: Int) {
-        self.precedencePrecedence = precedencePrecedence
+    init(openOpen: Int) {
+        self.openOpen = openOpen
     }
 }
 
-// MARK: Precedence convenience initializers and mutators
+// MARK: Open convenience initializers and mutators
 
-extension Precedence {
+extension Open {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Precedence.self, from: data)
-        self.init(precedencePrecedence: me.precedencePrecedence)
+        let me = try newJSONDecoder().decode(Open.self, from: data)
+        self.init(openOpen: me.openOpen)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11130,10 +11099,10 @@ extension Precedence {
     }
 
     func with(
-        precedencePrecedence: Int? = nil
-    ) -> Precedence {
-        return Precedence(
-            precedencePrecedence: precedencePrecedence ?? self.precedencePrecedence
+        openOpen: Int? = nil
+    ) -> Open {
+        return Open(
+            openOpen: openOpen ?? self.openOpen
         )
     }
 
@@ -11146,25 +11115,25 @@ extension Precedence {
     }
 }
 
-// MARK: - Prefix
-@objcMembers class Prefix: NSObject, Codable {
-    let prefixPrefix: Int
+// MARK: - Operator
+@objcMembers class Operator: NSObject, Codable {
+    let operatorOperator: Int
 
     enum CodingKeys: String, CodingKey {
-        case prefixPrefix = "prefix"
+        case operatorOperator = "operator"
     }
 
-    init(prefixPrefix: Int) {
-        self.prefixPrefix = prefixPrefix
+    init(operatorOperator: Int) {
+        self.operatorOperator = operatorOperator
     }
 }
 
-// MARK: Prefix convenience initializers and mutators
+// MARK: Operator convenience initializers and mutators
 
-extension Prefix {
+extension Operator {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Prefix.self, from: data)
-        self.init(prefixPrefix: me.prefixPrefix)
+        let me = try newJSONDecoder().decode(Operator.self, from: data)
+        self.init(operatorOperator: me.operatorOperator)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11179,10 +11148,10 @@ extension Prefix {
     }
 
     func with(
-        prefixPrefix: Int? = nil
-    ) -> Prefix {
-        return Prefix(
-            prefixPrefix: prefixPrefix ?? self.prefixPrefix
+        operatorOperator: Int? = nil
+    ) -> Operator {
+        return Operator(
+            operatorOperator: operatorOperator ?? self.operatorOperator
         )
     }
 
@@ -11195,25 +11164,25 @@ extension Prefix {
     }
 }
 
-// MARK: - Private
-@objcMembers class Private: NSObject, Codable {
-    let privatePrivate: Int
+// MARK: - Optional
+@objcMembers class Optional: NSObject, Codable {
+    let optionalOptional: Int
 
     enum CodingKeys: String, CodingKey {
-        case privatePrivate = "private"
+        case optionalOptional = "optional"
     }
 
-    init(privatePrivate: Int) {
-        self.privatePrivate = privatePrivate
+    init(optionalOptional: Int) {
+        self.optionalOptional = optionalOptional
     }
 }
 
-// MARK: Private convenience initializers and mutators
+// MARK: Optional convenience initializers and mutators
 
-extension Private {
+extension Optional {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Private.self, from: data)
-        self.init(privatePrivate: me.privatePrivate)
+        let me = try newJSONDecoder().decode(Optional.self, from: data)
+        self.init(optionalOptional: me.optionalOptional)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11228,10 +11197,10 @@ extension Private {
     }
 
     func with(
-        privatePrivate: Int? = nil
-    ) -> Private {
-        return Private(
-            privatePrivate: privatePrivate ?? self.privatePrivate
+        optionalOptional: Int? = nil
+    ) -> Optional {
+        return Optional(
+            optionalOptional: optionalOptional ?? self.optionalOptional
         )
     }
 
@@ -11244,25 +11213,25 @@ extension Private {
     }
 }
 
-// MARK: - ProtocolClass
-@objcMembers class ProtocolClass: NSObject, Codable {
-    let protocolProtocol: Int
+// MARK: - Override
+@objcMembers class Override: NSObject, Codable {
+    let overrideOverride: Int
 
     enum CodingKeys: String, CodingKey {
-        case protocolProtocol = "Protocol"
+        case overrideOverride = "override"
     }
 
-    init(protocolProtocol: Int) {
-        self.protocolProtocol = protocolProtocol
+    init(overrideOverride: Int) {
+        self.overrideOverride = overrideOverride
     }
 }
 
-// MARK: ProtocolClass convenience initializers and mutators
+// MARK: Override convenience initializers and mutators
 
-extension ProtocolClass {
+extension Override {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ProtocolClass.self, from: data)
-        self.init(protocolProtocol: me.protocolProtocol)
+        let me = try newJSONDecoder().decode(Override.self, from: data)
+        self.init(overrideOverride: me.overrideOverride)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11277,10 +11246,10 @@ extension ProtocolClass {
     }
 
     func with(
-        protocolProtocol: Int? = nil
-    ) -> ProtocolClass {
-        return ProtocolClass(
-            protocolProtocol: protocolProtocol ?? self.protocolProtocol
+        overrideOverride: Int? = nil
+    ) -> Override {
+        return Override(
+            overrideOverride: overrideOverride ?? self.overrideOverride
         )
     }
 
@@ -11293,25 +11262,25 @@ extension ProtocolClass {
     }
 }
 
-// MARK: - Object
-@objcMembers class Object: NSObject, Codable {
-    let object: Int
+// MARK: - Postfix
+@objcMembers class Postfix: NSObject, Codable {
+    let postfixPostfix: Int
 
     enum CodingKeys: String, CodingKey {
-        case object = "object"
+        case postfixPostfix = "postfix"
     }
 
-    init(object: Int) {
-        self.object = object
+    init(postfixPostfix: Int) {
+        self.postfixPostfix = postfixPostfix
     }
 }
 
-// MARK: Object convenience initializers and mutators
+// MARK: Postfix convenience initializers and mutators
 
-extension Object {
+extension Postfix {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Object.self, from: data)
-        self.init(object: me.object)
+        let me = try newJSONDecoder().decode(Postfix.self, from: data)
+        self.init(postfixPostfix: me.postfixPostfix)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11326,10 +11295,10 @@ extension Object {
     }
 
     func with(
-        object: Int? = nil
-    ) -> Object {
-        return Object(
-            object: object ?? self.object
+        postfixPostfix: Int? = nil
+    ) -> Postfix {
+        return Postfix(
+            postfixPostfix: postfixPostfix ?? self.postfixPostfix
         )
     }
 
@@ -11342,25 +11311,25 @@ extension Object {
     }
 }
 
-// MARK: - ObjectMapper
-@objcMembers class ObjectMapper: NSObject, Codable {
-    let objectMapper: Int
+// MARK: - Precedence
+@objcMembers class Precedence: NSObject, Codable {
+    let precedencePrecedence: Int
 
     enum CodingKeys: String, CodingKey {
-        case objectMapper = "ObjectMapper"
+        case precedencePrecedence = "precedence"
     }
 
-    init(objectMapper: Int) {
-        self.objectMapper = objectMapper
+    init(precedencePrecedence: Int) {
+        self.precedencePrecedence = precedencePrecedence
     }
 }
 
-// MARK: ObjectMapper convenience initializers and mutators
+// MARK: Precedence convenience initializers and mutators
 
-extension ObjectMapper {
+extension Precedence {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ObjectMapper.self, from: data)
-        self.init(objectMapper: me.objectMapper)
+        let me = try newJSONDecoder().decode(Precedence.self, from: data)
+        self.init(precedencePrecedence: me.precedencePrecedence)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11375,10 +11344,10 @@ extension ObjectMapper {
     }
 
     func with(
-        objectMapper: Int? = nil
-    ) -> ObjectMapper {
-        return ObjectMapper(
-            objectMapper: objectMapper ?? self.objectMapper
+        precedencePrecedence: Int? = nil
+    ) -> Precedence {
+        return Precedence(
+            precedencePrecedence: precedencePrecedence ?? self.precedencePrecedence
         )
     }
 
@@ -11391,25 +11360,25 @@ extension ObjectMapper {
     }
 }
 
-// MARK: - Of
-@objcMembers class Of: NSObject, Codable {
-    let of: Int
+// MARK: - Prefix
+@objcMembers class Prefix: NSObject, Codable {
+    let prefixPrefix: Int
 
     enum CodingKeys: String, CodingKey {
-        case of = "of"
+        case prefixPrefix = "prefix"
     }
 
-    init(of: Int) {
-        self.of = of
+    init(prefixPrefix: Int) {
+        self.prefixPrefix = prefixPrefix
     }
 }
 
-// MARK: Of convenience initializers and mutators
+// MARK: Prefix convenience initializers and mutators
 
-extension Of {
+extension Prefix {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Of.self, from: data)
-        self.init(of: me.of)
+        let me = try newJSONDecoder().decode(Prefix.self, from: data)
+        self.init(prefixPrefix: me.prefixPrefix)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11424,10 +11393,10 @@ extension Of {
     }
 
     func with(
-        of: Int? = nil
-    ) -> Of {
-        return Of(
-            of: of ?? self.of
+        prefixPrefix: Int? = nil
+    ) -> Prefix {
+        return Prefix(
+            prefixPrefix: prefixPrefix ?? self.prefixPrefix
         )
     }
 
@@ -11440,25 +11409,25 @@ extension Of {
     }
 }
 
-// MARK: - Oneway
-@objcMembers class Oneway: NSObject, Codable {
-    let oneway: Int
+// MARK: - Private
+@objcMembers class Private: NSObject, Codable {
+    let privatePrivate: Int
 
     enum CodingKeys: String, CodingKey {
-        case oneway = "oneway"
+        case privatePrivate = "private"
     }
 
-    init(oneway: Int) {
-        self.oneway = oneway
+    init(privatePrivate: Int) {
+        self.privatePrivate = privatePrivate
     }
 }
 
-// MARK: Oneway convenience initializers and mutators
+// MARK: Private convenience initializers and mutators
 
-extension Oneway {
+extension Private {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Oneway.self, from: data)
-        self.init(oneway: me.oneway)
+        let me = try newJSONDecoder().decode(Private.self, from: data)
+        self.init(privatePrivate: me.privatePrivate)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11473,10 +11442,10 @@ extension Oneway {
     }
 
     func with(
-        oneway: Int? = nil
-    ) -> Oneway {
-        return Oneway(
-            oneway: oneway ?? self.oneway
+        privatePrivate: Int? = nil
+    ) -> Private {
+        return Private(
+            privatePrivate: privatePrivate ?? self.privatePrivate
         )
     }
 
@@ -11489,25 +11458,25 @@ extension Oneway {
     }
 }
 
-// MARK: - Or
-@objcMembers class Or: NSObject, Codable {
-    let or: Int
+// MARK: - ProtocolClass
+@objcMembers class ProtocolClass: NSObject, Codable {
+    let protocolProtocol: Int
 
     enum CodingKeys: String, CodingKey {
-        case or = "or"
+        case protocolProtocol = "Protocol"
     }
 
-    init(or: Int) {
-        self.or = or
+    init(protocolProtocol: Int) {
+        self.protocolProtocol = protocolProtocol
     }
 }
 
-// MARK: Or convenience initializers and mutators
+// MARK: ProtocolClass convenience initializers and mutators
 
-extension Or {
+extension ProtocolClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Or.self, from: data)
-        self.init(or: me.or)
+        let me = try newJSONDecoder().decode(ProtocolClass.self, from: data)
+        self.init(protocolProtocol: me.protocolProtocol)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11522,10 +11491,10 @@ extension Or {
     }
 
     func with(
-        or: Int? = nil
-    ) -> Or {
-        return Or(
-            or: or ?? self.or
+        protocolProtocol: Int? = nil
+    ) -> ProtocolClass {
+        return ProtocolClass(
+            protocolProtocol: protocolProtocol ?? self.protocolProtocol
         )
     }
 
@@ -11538,25 +11507,25 @@ extension Or {
     }
 }
 
-// MARK: - OrEq
-@objcMembers class OrEq: NSObject, Codable {
-    let orEq: Int
+// MARK: - Public
+@objcMembers class Public: NSObject, Codable {
+    let publicPublic: Int
 
     enum CodingKeys: String, CodingKey {
-        case orEq = "or_eq"
+        case publicPublic = "public"
     }
 
-    init(orEq: Int) {
-        self.orEq = orEq
+    init(publicPublic: Int) {
+        self.publicPublic = publicPublic
     }
 }
 
-// MARK: OrEq convenience initializers and mutators
+// MARK: Public convenience initializers and mutators
 
-extension OrEq {
+extension Public {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(OrEq.self, from: data)
-        self.init(orEq: me.orEq)
+        let me = try newJSONDecoder().decode(Public.self, from: data)
+        self.init(publicPublic: me.publicPublic)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11571,10 +11540,10 @@ extension OrEq {
     }
 
     func with(
-        orEq: Int? = nil
-    ) -> OrEq {
-        return OrEq(
-            orEq: orEq ?? self.orEq
+        publicPublic: Int? = nil
+    ) -> Public {
+        return Public(
+            publicPublic: publicPublic ?? self.publicPublic
         )
     }
 
@@ -11587,25 +11556,25 @@ extension OrEq {
     }
 }
 
-// MARK: - Out
-@objcMembers class Out: NSObject, Codable {
-    let out: Int
+// MARK: - Repeat
+@objcMembers class Repeat: NSObject, Codable {
+    let repeatRepeat: Int
 
     enum CodingKeys: String, CodingKey {
-        case out = "out"
+        case repeatRepeat = "repeat"
     }
 
-    init(out: Int) {
-        self.out = out
+    init(repeatRepeat: Int) {
+        self.repeatRepeat = repeatRepeat
     }
 }
 
-// MARK: Out convenience initializers and mutators
+// MARK: Repeat convenience initializers and mutators
 
-extension Out {
+extension Repeat {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Out.self, from: data)
-        self.init(out: me.out)
+        let me = try newJSONDecoder().decode(Repeat.self, from: data)
+        self.init(repeatRepeat: me.repeatRepeat)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11620,10 +11589,10 @@ extension Out {
     }
 
     func with(
-        out: Int? = nil
-    ) -> Out {
-        return Out(
-            out: out ?? self.out
+        repeatRepeat: Int? = nil
+    ) -> Repeat {
+        return Repeat(
+            repeatRepeat: repeatRepeat ?? self.repeatRepeat
         )
     }
 
@@ -11636,25 +11605,25 @@ extension Out {
     }
 }
 
-// MARK: - Package
-@objcMembers class Package: NSObject, Codable {
-    let package: Int
+// MARK: - Required
+@objcMembers class Required: NSObject, Codable {
+    let requiredRequired: Int
 
     enum CodingKeys: String, CodingKey {
-        case package = "package"
+        case requiredRequired = "required"
     }
 
-    init(package: Int) {
-        self.package = package
+    init(requiredRequired: Int) {
+        self.requiredRequired = requiredRequired
     }
 }
 
-// MARK: Package convenience initializers and mutators
+// MARK: Required convenience initializers and mutators
 
-extension Package {
+extension Required {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Package.self, from: data)
-        self.init(package: me.package)
+        let me = try newJSONDecoder().decode(Required.self, from: data)
+        self.init(requiredRequired: me.requiredRequired)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11669,10 +11638,10 @@ extension Package {
     }
 
     func with(
-        package: Int? = nil
-    ) -> Package {
-        return Package(
-            package: package ?? self.package
+        requiredRequired: Int? = nil
+    ) -> Required {
+        return Required(
+            requiredRequired: requiredRequired ?? self.requiredRequired
         )
     }
 
@@ -11685,25 +11654,25 @@ extension Package {
     }
 }
 
-// MARK: - Params
-@objcMembers class Params: NSObject, Codable {
-    let params: Int
+// MARK: - Retain
+@objcMembers class Retain: NSObject, Codable {
+    let retainRetain: Int
 
     enum CodingKeys: String, CodingKey {
-        case params = "params"
+        case retainRetain = "retain"
     }
 
-    init(params: Int) {
-        self.params = params
+    init(retainRetain: Int) {
+        self.retainRetain = retainRetain
     }
 }
 
-// MARK: Params convenience initializers and mutators
+// MARK: Retain convenience initializers and mutators
 
-extension Params {
+extension Retain {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Params.self, from: data)
-        self.init(params: me.params)
+        let me = try newJSONDecoder().decode(Retain.self, from: data)
+        self.init(retainRetain: me.retainRetain)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11718,10 +11687,10 @@ extension Params {
     }
 
     func with(
-        params: Int? = nil
-    ) -> Params {
-        return Params(
-            params: params ?? self.params
+        retainRetain: Int? = nil
+    ) -> Retain {
+        return Retain(
+            retainRetain: retainRetain ?? self.retainRetain
         )
     }
 
@@ -11734,25 +11703,25 @@ extension Params {
     }
 }
 
-// MARK: - Pass
-@objcMembers class Pass: NSObject, Codable {
-    let pass: Int
+// MARK: - Rethrows
+@objcMembers class Rethrows: NSObject, Codable {
+    let rethrowsRethrows: Int
 
     enum CodingKeys: String, CodingKey {
-        case pass = "pass"
+        case rethrowsRethrows = "rethrows"
     }
 
-    init(pass: Int) {
-        self.pass = pass
+    init(rethrowsRethrows: Int) {
+        self.rethrowsRethrows = rethrowsRethrows
     }
 }
 
-// MARK: Pass convenience initializers and mutators
+// MARK: Rethrows convenience initializers and mutators
 
-extension Pass {
+extension Rethrows {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Pass.self, from: data)
-        self.init(pass: me.pass)
+        let me = try newJSONDecoder().decode(Rethrows.self, from: data)
+        self.init(rethrowsRethrows: me.rethrowsRethrows)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11767,10 +11736,10 @@ extension Pass {
     }
 
     func with(
-        pass: Int? = nil
-    ) -> Pass {
-        return Pass(
-            pass: pass ?? self.pass
+        rethrowsRethrows: Int? = nil
+    ) -> Rethrows {
+        return Rethrows(
+            rethrowsRethrows: rethrowsRethrows ?? self.rethrowsRethrows
         )
     }
 
@@ -11783,25 +11752,25 @@ extension Pass {
     }
 }
 
-// MARK: - Port
-@objcMembers class Port: NSObject, Codable {
-    let port: Int
+// MARK: - Return
+@objcMembers class Return: NSObject, Codable {
+    let returnReturn: Int
 
     enum CodingKeys: String, CodingKey {
-        case port = "port"
+        case returnReturn = "return"
     }
 
-    init(port: Int) {
-        self.port = port
+    init(returnReturn: Int) {
+        self.returnReturn = returnReturn
     }
 }
 
-// MARK: Port convenience initializers and mutators
+// MARK: Return convenience initializers and mutators
 
-extension Port {
+extension Return {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Port.self, from: data)
-        self.init(port: me.port)
+        let me = try newJSONDecoder().decode(Return.self, from: data)
+        self.init(returnReturn: me.returnReturn)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11816,10 +11785,10 @@ extension Port {
     }
 
     func with(
-        port: Int? = nil
-    ) -> Port {
-        return Port(
-            port: port ?? self.port
+        returnReturn: Int? = nil
+    ) -> Return {
+        return Return(
+            returnReturn: returnReturn ?? self.returnReturn
         )
     }
 
@@ -11832,25 +11801,25 @@ extension Port {
     }
 }
 
-// MARK: - Print
-@objcMembers class Print: NSObject, Codable {
-    let print: Int
+// MARK: - Right
+@objcMembers class Right: NSObject, Codable {
+    let rightRight: Int
 
     enum CodingKeys: String, CodingKey {
-        case print = "print"
+        case rightRight = "right"
     }
 
-    init(print: Int) {
-        self.print = print
+    init(rightRight: Int) {
+        self.rightRight = rightRight
     }
 }
 
-// MARK: Print convenience initializers and mutators
+// MARK: Right convenience initializers and mutators
 
-extension Print {
+extension Right {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Print.self, from: data)
-        self.init(print: me.print)
+        let me = try newJSONDecoder().decode(Right.self, from: data)
+        self.init(rightRight: me.rightRight)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11865,10 +11834,10 @@ extension Print {
     }
 
     func with(
-        print: Int? = nil
-    ) -> Print {
-        return Print(
-            print: print ?? self.print
+        rightRight: Int? = nil
+    ) -> Right {
+        return Right(
+            rightRight: rightRight ?? self.rightRight
         )
     }
 
@@ -11881,25 +11850,25 @@ extension Print {
     }
 }
 
-// MARK: - PrintMembers
-@objcMembers class PrintMembers: NSObject, Codable {
-    let printMembers: Int
+// MARK: - SelfClass
+@objcMembers class SelfClass: NSObject, Codable {
+    let selfSelf: Int
 
     enum CodingKeys: String, CodingKey {
-        case printMembers = "printMembers"
+        case selfSelf = "Self"
     }
 
-    init(printMembers: Int) {
-        self.printMembers = printMembers
+    init(selfSelf: Int) {
+        self.selfSelf = selfSelf
     }
 }
 
-// MARK: PrintMembers convenience initializers and mutators
+// MARK: SelfClass convenience initializers and mutators
 
-extension PrintMembers {
+extension SelfClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(PrintMembers.self, from: data)
-        self.init(printMembers: me.printMembers)
+        let me = try newJSONDecoder().decode(SelfClass.self, from: data)
+        self.init(selfSelf: me.selfSelf)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11914,10 +11883,10 @@ extension PrintMembers {
     }
 
     func with(
-        printMembers: Int? = nil
-    ) -> PrintMembers {
-        return PrintMembers(
-            printMembers: printMembers ?? self.printMembers
+        selfSelf: Int? = nil
+    ) -> SelfClass {
+        return SelfClass(
+            selfSelf: selfSelf ?? self.selfSelf
         )
     }
 
@@ -11930,25 +11899,25 @@ extension PrintMembers {
     }
 }
 
-// MARK: - Printf
-@objcMembers class Printf: NSObject, Codable {
-    let printf: Int
+// MARK: - Set
+@objcMembers class Set: NSObject, Codable {
+    let setSet: Int
 
     enum CodingKeys: String, CodingKey {
-        case printf = "printf"
+        case setSet = "set"
     }
 
-    init(printf: Int) {
-        self.printf = printf
+    init(setSet: Int) {
+        self.setSet = setSet
     }
 }
 
-// MARK: Printf convenience initializers and mutators
+// MARK: Set convenience initializers and mutators
 
-extension Printf {
+extension Set {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Printf.self, from: data)
-        self.init(printf: me.printf)
+        let me = try newJSONDecoder().decode(Set.self, from: data)
+        self.init(setSet: me.setSet)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -11963,10 +11932,10 @@ extension Printf {
     }
 
     func with(
-        printf: Int? = nil
-    ) -> Printf {
-        return Printf(
-            printf: printf ?? self.printf
+        setSet: Int? = nil
+    ) -> Set {
+        return Set(
+            setSet: setSet ?? self.setSet
         )
     }
 
@@ -11979,25 +11948,25 @@ extension Printf {
     }
 }
 
-// MARK: - Protected
-@objcMembers class Protected: NSObject, Codable {
-    let protected: Int
+// MARK: - Static
+@objcMembers class Static: NSObject, Codable {
+    let staticStatic: Int
 
     enum CodingKeys: String, CodingKey {
-        case protected = "protected"
+        case staticStatic = "static"
     }
 
-    init(protected: Int) {
-        self.protected = protected
+    init(staticStatic: Int) {
+        self.staticStatic = staticStatic
     }
 }
 
-// MARK: Protected convenience initializers and mutators
+// MARK: Static convenience initializers and mutators
 
-extension Protected {
+extension Static {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Protected.self, from: data)
-        self.init(protected: me.protected)
+        let me = try newJSONDecoder().decode(Static.self, from: data)
+        self.init(staticStatic: me.staticStatic)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12012,10 +11981,10 @@ extension Protected {
     }
 
     func with(
-        protected: Int? = nil
-    ) -> Protected {
-        return Protected(
-            protected: protected ?? self.protected
+        staticStatic: Int? = nil
+    ) -> Static {
+        return Static(
+            staticStatic: staticStatic ?? self.staticStatic
         )
     }
 
@@ -12028,25 +11997,25 @@ extension Protected {
     }
 }
 
-// MARK: - Obj3Protocol
-@objcMembers class Obj3Protocol: NSObject, Codable {
-    let protocolProtocol: Int
+// MARK: - Object
+@objcMembers class Object: NSObject, Codable {
+    let object: Int
 
     enum CodingKeys: String, CodingKey {
-        case protocolProtocol = "protocol"
+        case object = "object"
     }
 
-    init(protocolProtocol: Int) {
-        self.protocolProtocol = protocolProtocol
+    init(object: Int) {
+        self.object = object
     }
 }
 
-// MARK: Obj3Protocol convenience initializers and mutators
+// MARK: Object convenience initializers and mutators
 
-extension Obj3Protocol {
+extension Object {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj3Protocol.self, from: data)
-        self.init(protocolProtocol: me.protocolProtocol)
+        let me = try newJSONDecoder().decode(Object.self, from: data)
+        self.init(object: me.object)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12061,10 +12030,10 @@ extension Obj3Protocol {
     }
 
     func with(
-        protocolProtocol: Int? = nil
-    ) -> Obj3Protocol {
-        return Obj3Protocol(
-            protocolProtocol: protocolProtocol ?? self.protocolProtocol
+        object: Int? = nil
+    ) -> Object {
+        return Object(
+            object: object ?? self.object
         )
     }
 
@@ -12077,25 +12046,25 @@ extension Obj3Protocol {
     }
 }
 
-// MARK: - SerializerProvider
-@objcMembers class SerializerProvider: NSObject, Codable {
-    let serializerProvider: Int
+// MARK: - ObjectMapper
+@objcMembers class ObjectMapper: NSObject, Codable {
+    let objectMapper: Int
 
     enum CodingKeys: String, CodingKey {
-        case serializerProvider = "SerializerProvider"
+        case objectMapper = "ObjectMapper"
     }
 
-    init(serializerProvider: Int) {
-        self.serializerProvider = serializerProvider
+    init(objectMapper: Int) {
+        self.objectMapper = objectMapper
     }
 }
 
-// MARK: SerializerProvider convenience initializers and mutators
+// MARK: ObjectMapper convenience initializers and mutators
 
-extension SerializerProvider {
+extension ObjectMapper {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(SerializerProvider.self, from: data)
-        self.init(serializerProvider: me.serializerProvider)
+        let me = try newJSONDecoder().decode(ObjectMapper.self, from: data)
+        self.init(objectMapper: me.objectMapper)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12110,10 +12079,10 @@ extension SerializerProvider {
     }
 
     func with(
-        serializerProvider: Int? = nil
-    ) -> SerializerProvider {
-        return SerializerProvider(
-            serializerProvider: serializerProvider ?? self.serializerProvider
+        objectMapper: Int? = nil
+    ) -> ObjectMapper {
+        return ObjectMapper(
+            objectMapper: objectMapper ?? self.objectMapper
         )
     }
 
@@ -12126,25 +12095,25 @@ extension SerializerProvider {
     }
 }
 
-// MARK: - SimpleModule
-@objcMembers class SimpleModule: NSObject, Codable {
-    let simpleModule: Int
+// MARK: - Of
+@objcMembers class Of: NSObject, Codable {
+    let of: Int
 
     enum CodingKeys: String, CodingKey {
-        case simpleModule = "SimpleModule"
+        case of = "of"
     }
 
-    init(simpleModule: Int) {
-        self.simpleModule = simpleModule
+    init(of: Int) {
+        self.of = of
     }
 }
 
-// MARK: SimpleModule convenience initializers and mutators
+// MARK: Of convenience initializers and mutators
 
-extension SimpleModule {
+extension Of {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(SimpleModule.self, from: data)
-        self.init(simpleModule: me.simpleModule)
+        let me = try newJSONDecoder().decode(Of.self, from: data)
+        self.init(of: me.of)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12159,10 +12128,10 @@ extension SimpleModule {
     }
 
     func with(
-        simpleModule: Int? = nil
-    ) -> SimpleModule {
-        return SimpleModule(
-            simpleModule: simpleModule ?? self.simpleModule
+        of: Int? = nil
+    ) -> Of {
+        return Of(
+            of: of ?? self.of
         )
     }
 
@@ -12175,25 +12144,25 @@ extension SimpleModule {
     }
 }
 
-// MARK: - StdDeserializer
-@objcMembers class StdDeserializer: NSObject, Codable {
-    let stdDeserializer: Int
+// MARK: - Oneway
+@objcMembers class Oneway: NSObject, Codable {
+    let oneway: Int
 
     enum CodingKeys: String, CodingKey {
-        case stdDeserializer = "StdDeserializer"
+        case oneway = "oneway"
     }
 
-    init(stdDeserializer: Int) {
-        self.stdDeserializer = stdDeserializer
+    init(oneway: Int) {
+        self.oneway = oneway
     }
 }
 
-// MARK: StdDeserializer convenience initializers and mutators
+// MARK: Oneway convenience initializers and mutators
 
-extension StdDeserializer {
+extension Oneway {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(StdDeserializer.self, from: data)
-        self.init(stdDeserializer: me.stdDeserializer)
+        let me = try newJSONDecoder().decode(Oneway.self, from: data)
+        self.init(oneway: me.oneway)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12208,10 +12177,10 @@ extension StdDeserializer {
     }
 
     func with(
-        stdDeserializer: Int? = nil
-    ) -> StdDeserializer {
-        return StdDeserializer(
-            stdDeserializer: stdDeserializer ?? self.stdDeserializer
+        oneway: Int? = nil
+    ) -> Oneway {
+        return Oneway(
+            oneway: oneway ?? self.oneway
         )
     }
 
@@ -12224,25 +12193,25 @@ extension StdDeserializer {
     }
 }
 
-// MARK: - StdSerializer
-@objcMembers class StdSerializer: NSObject, Codable {
-    let stdSerializer: Int
+// MARK: - Or
+@objcMembers class Or: NSObject, Codable {
+    let or: Int
 
     enum CodingKeys: String, CodingKey {
-        case stdSerializer = "StdSerializer"
+        case or = "or"
     }
 
-    init(stdSerializer: Int) {
-        self.stdSerializer = stdSerializer
+    init(or: Int) {
+        self.or = or
     }
 }
 
-// MARK: StdSerializer convenience initializers and mutators
+// MARK: Or convenience initializers and mutators
 
-extension StdSerializer {
+extension Or {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(StdSerializer.self, from: data)
-        self.init(stdSerializer: me.stdSerializer)
+        let me = try newJSONDecoder().decode(Or.self, from: data)
+        self.init(or: me.or)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12257,10 +12226,10 @@ extension StdSerializer {
     }
 
     func with(
-        stdSerializer: Int? = nil
-    ) -> StdSerializer {
-        return StdSerializer(
-            stdSerializer: stdSerializer ?? self.stdSerializer
+        or: Int? = nil
+    ) -> Or {
+        return Or(
+            or: or ?? self.or
         )
     }
 
@@ -12273,238 +12242,25 @@ extension StdSerializer {
     }
 }
 
-// MARK: - Obj4
-@objcMembers class Obj4: NSObject, Codable {
-    let dummy: Int
-    let obj4Public: Public
-    let obj4Repeat: Repeat
-    let obj4Required: Required
-    let obj4Retain: Retain
-    let obj4Rethrows: Rethrows
-    let obj4Return: Return
-    let obj4Right: Right
-    let obj4Self: SelfClass
-    let obj4Set: Set
-    let obj4Static: Static
-    let obj4Struct: Struct
-    let obj4Subscript: Subscript
-    let obj4Super: Super
-    let obj4Switch: Switch
-    let obj4Throw: Throw
-    let obj4Throws: Throws
-    let obj4True: True
-    let obj4Try: Try
-    let obj4Type: Obj4Type
-    let obj4Typealias: Typealias
-    let purpleSelf: Obj4Self
-    let purpleTrue: TrueClass
-    let quicktype: Quicktype
-    let raise: Raise
-    let range: Range
-    let readonly: Readonly
-    let ref: Ref
-    let regExp: RegExp
-    let register: Register
-    let reinterpretCast: ReinterpretCast
-    let require: Require
-    let requires: Requires
-    let restrict: Restrict
-    let runtimeType: RuntimeType
-    let s: S
-    let sbyte: Sbyte
-    let sealed: Sealed
-    let sel: Sel
-    let select: Select
-    let serialize: Serialize
-    let short: Short
-    let signed: Signed
-    let sizeof: Sizeof
-    let stackalloc: Stackalloc
-    let standards: Standards
-    let staticAssert: StaticAssert
-    let staticCast: StaticCast
-    let strictfp: Strictfp
-    let string: StringClass
-    let symbol: Symbol
-    let synchronized: Synchronized
-    let system: System
-    let template: Template
-    let then: Then
-    let this: This
-    let threadLocal: ThreadLocal
-    let timeOnly: TimeOnly
-    let timeOnlyConverter: TimeOnlyConverter
-    let toJSON: ToJSON
-    let toString: ToString
-    let topLevel: TopLevelClass
-    let transient: Transient
-    let type: TypeClass
-    let typedef: Typedef
-    let typeid: Typeid
-    let typename: Typename
-    let typeof: Typeof
-    let uint: Uint
-    let ulong: Ulong
-    let unchecked: Unchecked
-    let undefined: Undefined
+// MARK: - OrEq
+@objcMembers class OrEq: NSObject, Codable {
+    let orEq: Int
 
     enum CodingKeys: String, CodingKey {
-        case dummy = "dummy"
-        case obj4Public = "public"
-        case obj4Repeat = "repeat"
-        case obj4Required = "required"
-        case obj4Retain = "retain"
-        case obj4Rethrows = "rethrows"
-        case obj4Return = "return"
-        case obj4Right = "right"
-        case obj4Self = "Self"
-        case obj4Set = "set"
-        case obj4Static = "static"
-        case obj4Struct = "struct"
-        case obj4Subscript = "subscript"
-        case obj4Super = "super"
-        case obj4Switch = "switch"
-        case obj4Throw = "throw"
-        case obj4Throws = "throws"
-        case obj4True = "True"
-        case obj4Try = "try"
-        case obj4Type = "type"
-        case obj4Typealias = "typealias"
-        case purpleSelf = "self"
-        case purpleTrue = "true"
-        case quicktype = "quicktype"
-        case raise = "raise"
-        case range = "range"
-        case readonly = "readonly"
-        case ref = "ref"
-        case regExp = "RegExp"
-        case register = "register"
-        case reinterpretCast = "reinterpret_cast"
-        case require = "require"
-        case requires = "requires"
-        case restrict = "restrict"
-        case runtimeType = "runtimeType"
-        case s = "s"
-        case sbyte = "sbyte"
-        case sealed = "sealed"
-        case sel = "SEL"
-        case select = "select"
-        case serialize = "serialize"
-        case short = "short"
-        case signed = "signed"
-        case sizeof = "sizeof"
-        case stackalloc = "stackalloc"
-        case standards = "Standards"
-        case staticAssert = "static_assert"
-        case staticCast = "static_cast"
-        case strictfp = "strictfp"
-        case string = "string"
-        case symbol = "symbol"
-        case synchronized = "synchronized"
-        case system = "system"
-        case template = "template"
-        case then = "then"
-        case this = "this"
-        case threadLocal = "thread_local"
-        case timeOnly = "TimeOnly"
-        case timeOnlyConverter = "TimeOnlyConverter"
-        case toJSON = "to_json"
-        case toString = "toString"
-        case topLevel = "top_level"
-        case transient = "transient"
-        case type = "Type"
-        case typedef = "typedef"
-        case typeid = "typeid"
-        case typename = "typename"
-        case typeof = "typeof"
-        case uint = "uint"
-        case ulong = "ulong"
-        case unchecked = "unchecked"
-        case undefined = "undefined"
+        case orEq = "or_eq"
     }
 
-    init(dummy: Int, obj4Public: Public, obj4Repeat: Repeat, obj4Required: Required, obj4Retain: Retain, obj4Rethrows: Rethrows, obj4Return: Return, obj4Right: Right, obj4Self: SelfClass, obj4Set: Set, obj4Static: Static, obj4Struct: Struct, obj4Subscript: Subscript, obj4Super: Super, obj4Switch: Switch, obj4Throw: Throw, obj4Throws: Throws, obj4True: True, obj4Try: Try, obj4Type: Obj4Type, obj4Typealias: Typealias, purpleSelf: Obj4Self, purpleTrue: TrueClass, quicktype: Quicktype, raise: Raise, range: Range, readonly: Readonly, ref: Ref, regExp: RegExp, register: Register, reinterpretCast: ReinterpretCast, require: Require, requires: Requires, restrict: Restrict, runtimeType: RuntimeType, s: S, sbyte: Sbyte, sealed: Sealed, sel: Sel, select: Select, serialize: Serialize, short: Short, signed: Signed, sizeof: Sizeof, stackalloc: Stackalloc, standards: Standards, staticAssert: StaticAssert, staticCast: StaticCast, strictfp: Strictfp, string: StringClass, symbol: Symbol, synchronized: Synchronized, system: System, template: Template, then: Then, this: This, threadLocal: ThreadLocal, timeOnly: TimeOnly, timeOnlyConverter: TimeOnlyConverter, toJSON: ToJSON, toString: ToString, topLevel: TopLevelClass, transient: Transient, type: TypeClass, typedef: Typedef, typeid: Typeid, typename: Typename, typeof: Typeof, uint: Uint, ulong: Ulong, unchecked: Unchecked, undefined: Undefined) {
-        self.dummy = dummy
-        self.obj4Public = obj4Public
-        self.obj4Repeat = obj4Repeat
-        self.obj4Required = obj4Required
-        self.obj4Retain = obj4Retain
-        self.obj4Rethrows = obj4Rethrows
-        self.obj4Return = obj4Return
-        self.obj4Right = obj4Right
-        self.obj4Self = obj4Self
-        self.obj4Set = obj4Set
-        self.obj4Static = obj4Static
-        self.obj4Struct = obj4Struct
-        self.obj4Subscript = obj4Subscript
-        self.obj4Super = obj4Super
-        self.obj4Switch = obj4Switch
-        self.obj4Throw = obj4Throw
-        self.obj4Throws = obj4Throws
-        self.obj4True = obj4True
-        self.obj4Try = obj4Try
-        self.obj4Type = obj4Type
-        self.obj4Typealias = obj4Typealias
-        self.purpleSelf = purpleSelf
-        self.purpleTrue = purpleTrue
-        self.quicktype = quicktype
-        self.raise = raise
-        self.range = range
-        self.readonly = readonly
-        self.ref = ref
-        self.regExp = regExp
-        self.register = register
-        self.reinterpretCast = reinterpretCast
-        self.require = require
-        self.requires = requires
-        self.restrict = restrict
-        self.runtimeType = runtimeType
-        self.s = s
-        self.sbyte = sbyte
-        self.sealed = sealed
-        self.sel = sel
-        self.select = select
-        self.serialize = serialize
-        self.short = short
-        self.signed = signed
-        self.sizeof = sizeof
-        self.stackalloc = stackalloc
-        self.standards = standards
-        self.staticAssert = staticAssert
-        self.staticCast = staticCast
-        self.strictfp = strictfp
-        self.string = string
-        self.symbol = symbol
-        self.synchronized = synchronized
-        self.system = system
-        self.template = template
-        self.then = then
-        self.this = this
-        self.threadLocal = threadLocal
-        self.timeOnly = timeOnly
-        self.timeOnlyConverter = timeOnlyConverter
-        self.toJSON = toJSON
-        self.toString = toString
-        self.topLevel = topLevel
-        self.transient = transient
-        self.type = type
-        self.typedef = typedef
-        self.typeid = typeid
-        self.typename = typename
-        self.typeof = typeof
-        self.uint = uint
-        self.ulong = ulong
-        self.unchecked = unchecked
-        self.undefined = undefined
+    init(orEq: Int) {
+        self.orEq = orEq
     }
 }
 
-// MARK: Obj4 convenience initializers and mutators
+// MARK: OrEq convenience initializers and mutators
 
-extension Obj4 {
+extension OrEq {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj4.self, from: data)
-        self.init(dummy: me.dummy, obj4Public: me.obj4Public, obj4Repeat: me.obj4Repeat, obj4Required: me.obj4Required, obj4Retain: me.obj4Retain, obj4Rethrows: me.obj4Rethrows, obj4Return: me.obj4Return, obj4Right: me.obj4Right, obj4Self: me.obj4Self, obj4Set: me.obj4Set, obj4Static: me.obj4Static, obj4Struct: me.obj4Struct, obj4Subscript: me.obj4Subscript, obj4Super: me.obj4Super, obj4Switch: me.obj4Switch, obj4Throw: me.obj4Throw, obj4Throws: me.obj4Throws, obj4True: me.obj4True, obj4Try: me.obj4Try, obj4Type: me.obj4Type, obj4Typealias: me.obj4Typealias, purpleSelf: me.purpleSelf, purpleTrue: me.purpleTrue, quicktype: me.quicktype, raise: me.raise, range: me.range, readonly: me.readonly, ref: me.ref, regExp: me.regExp, register: me.register, reinterpretCast: me.reinterpretCast, require: me.require, requires: me.requires, restrict: me.restrict, runtimeType: me.runtimeType, s: me.s, sbyte: me.sbyte, sealed: me.sealed, sel: me.sel, select: me.select, serialize: me.serialize, short: me.short, signed: me.signed, sizeof: me.sizeof, stackalloc: me.stackalloc, standards: me.standards, staticAssert: me.staticAssert, staticCast: me.staticCast, strictfp: me.strictfp, string: me.string, symbol: me.symbol, synchronized: me.synchronized, system: me.system, template: me.template, then: me.then, this: me.this, threadLocal: me.threadLocal, timeOnly: me.timeOnly, timeOnlyConverter: me.timeOnlyConverter, toJSON: me.toJSON, toString: me.toString, topLevel: me.topLevel, transient: me.transient, type: me.type, typedef: me.typedef, typeid: me.typeid, typename: me.typename, typeof: me.typeof, uint: me.uint, ulong: me.ulong, unchecked: me.unchecked, undefined: me.undefined)
+        let me = try newJSONDecoder().decode(OrEq.self, from: data)
+        self.init(orEq: me.orEq)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12519,152 +12275,206 @@ extension Obj4 {
     }
 
     func with(
-        dummy: Int? = nil,
-        obj4Public: Public? = nil,
-        obj4Repeat: Repeat? = nil,
-        obj4Required: Required? = nil,
-        obj4Retain: Retain? = nil,
-        obj4Rethrows: Rethrows? = nil,
-        obj4Return: Return? = nil,
-        obj4Right: Right? = nil,
-        obj4Self: SelfClass? = nil,
-        obj4Set: Set? = nil,
-        obj4Static: Static? = nil,
-        obj4Struct: Struct? = nil,
-        obj4Subscript: Subscript? = nil,
-        obj4Super: Super? = nil,
-        obj4Switch: Switch? = nil,
-        obj4Throw: Throw? = nil,
-        obj4Throws: Throws? = nil,
-        obj4True: True? = nil,
-        obj4Try: Try? = nil,
-        obj4Type: Obj4Type? = nil,
-        obj4Typealias: Typealias? = nil,
-        purpleSelf: Obj4Self? = nil,
-        purpleTrue: TrueClass? = nil,
-        quicktype: Quicktype? = nil,
-        raise: Raise? = nil,
-        range: Range? = nil,
-        readonly: Readonly? = nil,
-        ref: Ref? = nil,
-        regExp: RegExp? = nil,
-        register: Register? = nil,
-        reinterpretCast: ReinterpretCast? = nil,
-        require: Require? = nil,
-        requires: Requires? = nil,
-        restrict: Restrict? = nil,
-        runtimeType: RuntimeType? = nil,
-        s: S? = nil,
-        sbyte: Sbyte? = nil,
-        sealed: Sealed? = nil,
-        sel: Sel? = nil,
-        select: Select? = nil,
-        serialize: Serialize? = nil,
-        short: Short? = nil,
-        signed: Signed? = nil,
-        sizeof: Sizeof? = nil,
-        stackalloc: Stackalloc? = nil,
-        standards: Standards? = nil,
-        staticAssert: StaticAssert? = nil,
-        staticCast: StaticCast? = nil,
-        strictfp: Strictfp? = nil,
-        string: StringClass? = nil,
-        symbol: Symbol? = nil,
-        synchronized: Synchronized? = nil,
-        system: System? = nil,
-        template: Template? = nil,
-        then: Then? = nil,
-        this: This? = nil,
-        threadLocal: ThreadLocal? = nil,
-        timeOnly: TimeOnly? = nil,
-        timeOnlyConverter: TimeOnlyConverter? = nil,
-        toJSON: ToJSON? = nil,
-        toString: ToString? = nil,
-        topLevel: TopLevelClass? = nil,
-        transient: Transient? = nil,
-        type: TypeClass? = nil,
-        typedef: Typedef? = nil,
-        typeid: Typeid? = nil,
-        typename: Typename? = nil,
-        typeof: Typeof? = nil,
-        uint: Uint? = nil,
-        ulong: Ulong? = nil,
-        unchecked: Unchecked? = nil,
-        undefined: Undefined? = nil
-    ) -> Obj4 {
-        return Obj4(
-            dummy: dummy ?? self.dummy,
-            obj4Public: obj4Public ?? self.obj4Public,
-            obj4Repeat: obj4Repeat ?? self.obj4Repeat,
-            obj4Required: obj4Required ?? self.obj4Required,
-            obj4Retain: obj4Retain ?? self.obj4Retain,
-            obj4Rethrows: obj4Rethrows ?? self.obj4Rethrows,
-            obj4Return: obj4Return ?? self.obj4Return,
-            obj4Right: obj4Right ?? self.obj4Right,
-            obj4Self: obj4Self ?? self.obj4Self,
-            obj4Set: obj4Set ?? self.obj4Set,
-            obj4Static: obj4Static ?? self.obj4Static,
-            obj4Struct: obj4Struct ?? self.obj4Struct,
-            obj4Subscript: obj4Subscript ?? self.obj4Subscript,
-            obj4Super: obj4Super ?? self.obj4Super,
-            obj4Switch: obj4Switch ?? self.obj4Switch,
-            obj4Throw: obj4Throw ?? self.obj4Throw,
-            obj4Throws: obj4Throws ?? self.obj4Throws,
-            obj4True: obj4True ?? self.obj4True,
-            obj4Try: obj4Try ?? self.obj4Try,
-            obj4Type: obj4Type ?? self.obj4Type,
-            obj4Typealias: obj4Typealias ?? self.obj4Typealias,
-            purpleSelf: purpleSelf ?? self.purpleSelf,
-            purpleTrue: purpleTrue ?? self.purpleTrue,
-            quicktype: quicktype ?? self.quicktype,
-            raise: raise ?? self.raise,
-            range: range ?? self.range,
-            readonly: readonly ?? self.readonly,
-            ref: ref ?? self.ref,
-            regExp: regExp ?? self.regExp,
-            register: register ?? self.register,
-            reinterpretCast: reinterpretCast ?? self.reinterpretCast,
-            require: require ?? self.require,
-            requires: requires ?? self.requires,
-            restrict: restrict ?? self.restrict,
-            runtimeType: runtimeType ?? self.runtimeType,
-            s: s ?? self.s,
-            sbyte: sbyte ?? self.sbyte,
-            sealed: sealed ?? self.sealed,
-            sel: sel ?? self.sel,
-            select: select ?? self.select,
-            serialize: serialize ?? self.serialize,
-            short: short ?? self.short,
-            signed: signed ?? self.signed,
-            sizeof: sizeof ?? self.sizeof,
-            stackalloc: stackalloc ?? self.stackalloc,
-            standards: standards ?? self.standards,
-            staticAssert: staticAssert ?? self.staticAssert,
-            staticCast: staticCast ?? self.staticCast,
-            strictfp: strictfp ?? self.strictfp,
-            string: string ?? self.string,
-            symbol: symbol ?? self.symbol,
-            synchronized: synchronized ?? self.synchronized,
-            system: system ?? self.system,
-            template: template ?? self.template,
-            then: then ?? self.then,
-            this: this ?? self.this,
-            threadLocal: threadLocal ?? self.threadLocal,
-            timeOnly: timeOnly ?? self.timeOnly,
-            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter,
-            toJSON: toJSON ?? self.toJSON,
-            toString: toString ?? self.toString,
-            topLevel: topLevel ?? self.topLevel,
-            transient: transient ?? self.transient,
-            type: type ?? self.type,
-            typedef: typedef ?? self.typedef,
-            typeid: typeid ?? self.typeid,
-            typename: typename ?? self.typename,
-            typeof: typeof ?? self.typeof,
-            uint: uint ?? self.uint,
-            ulong: ulong ?? self.ulong,
-            unchecked: unchecked ?? self.unchecked,
-            undefined: undefined ?? self.undefined
+        orEq: Int? = nil
+    ) -> OrEq {
+        return OrEq(
+            orEq: orEq ?? self.orEq
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Out
+@objcMembers class Out: NSObject, Codable {
+    let out: Int
+
+    enum CodingKeys: String, CodingKey {
+        case out = "out"
+    }
+
+    init(out: Int) {
+        self.out = out
+    }
+}
+
+// MARK: Out convenience initializers and mutators
+
+extension Out {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Out.self, from: data)
+        self.init(out: me.out)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        out: Int? = nil
+    ) -> Out {
+        return Out(
+            out: out ?? self.out
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Package
+@objcMembers class Package: NSObject, Codable {
+    let package: Int
+
+    enum CodingKeys: String, CodingKey {
+        case package = "package"
+    }
+
+    init(package: Int) {
+        self.package = package
+    }
+}
+
+// MARK: Package convenience initializers and mutators
+
+extension Package {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Package.self, from: data)
+        self.init(package: me.package)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        package: Int? = nil
+    ) -> Package {
+        return Package(
+            package: package ?? self.package
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Params
+@objcMembers class Params: NSObject, Codable {
+    let params: Int
+
+    enum CodingKeys: String, CodingKey {
+        case params = "params"
+    }
+
+    init(params: Int) {
+        self.params = params
+    }
+}
+
+// MARK: Params convenience initializers and mutators
+
+extension Params {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Params.self, from: data)
+        self.init(params: me.params)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        params: Int? = nil
+    ) -> Params {
+        return Params(
+            params: params ?? self.params
+        )
+    }
+
+    func jsonData() throws -> Data {
+        return try newJSONEncoder().encode(self)
+    }
+
+    func jsonString(encoding: String.Encoding = .utf8) throws -> String? {
+        return String(data: try self.jsonData(), encoding: encoding)
+    }
+}
+
+// MARK: - Pass
+@objcMembers class Pass: NSObject, Codable {
+    let pass: Int
+
+    enum CodingKeys: String, CodingKey {
+        case pass = "pass"
+    }
+
+    init(pass: Int) {
+        self.pass = pass
+    }
+}
+
+// MARK: Pass convenience initializers and mutators
+
+extension Pass {
+    convenience init(data: Data) throws {
+        let me = try newJSONDecoder().decode(Pass.self, from: data)
+        self.init(pass: me.pass)
+    }
+
+    convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
+        guard let data = json.data(using: encoding) else {
+            throw NSError(domain: "JSONDecoding", code: 0, userInfo: nil)
+        }
+        try self.init(data: data)
+    }
+
+    convenience init(fromURL url: URL) throws {
+        try self.init(data: try Data(contentsOf: url))
+    }
+
+    func with(
+        pass: Int? = nil
+    ) -> Pass {
+        return Pass(
+            pass: pass ?? self.pass
         )
     }
 
@@ -12677,25 +12487,25 @@ extension Obj4 {
     }
 }
 
-// MARK: - Public
-@objcMembers class Public: NSObject, Codable {
-    let publicPublic: Int
+// MARK: - Port
+@objcMembers class Port: NSObject, Codable {
+    let port: Int
 
     enum CodingKeys: String, CodingKey {
-        case publicPublic = "public"
+        case port = "port"
     }
 
-    init(publicPublic: Int) {
-        self.publicPublic = publicPublic
+    init(port: Int) {
+        self.port = port
     }
 }
 
-// MARK: Public convenience initializers and mutators
+// MARK: Port convenience initializers and mutators
 
-extension Public {
+extension Port {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Public.self, from: data)
-        self.init(publicPublic: me.publicPublic)
+        let me = try newJSONDecoder().decode(Port.self, from: data)
+        self.init(port: me.port)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12710,10 +12520,10 @@ extension Public {
     }
 
     func with(
-        publicPublic: Int? = nil
-    ) -> Public {
-        return Public(
-            publicPublic: publicPublic ?? self.publicPublic
+        port: Int? = nil
+    ) -> Port {
+        return Port(
+            port: port ?? self.port
         )
     }
 
@@ -12726,25 +12536,25 @@ extension Public {
     }
 }
 
-// MARK: - Repeat
-@objcMembers class Repeat: NSObject, Codable {
-    let repeatRepeat: Int
+// MARK: - Print
+@objcMembers class Print: NSObject, Codable {
+    let print: Int
 
     enum CodingKeys: String, CodingKey {
-        case repeatRepeat = "repeat"
+        case print = "print"
     }
 
-    init(repeatRepeat: Int) {
-        self.repeatRepeat = repeatRepeat
+    init(print: Int) {
+        self.print = print
     }
 }
 
-// MARK: Repeat convenience initializers and mutators
+// MARK: Print convenience initializers and mutators
 
-extension Repeat {
+extension Print {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Repeat.self, from: data)
-        self.init(repeatRepeat: me.repeatRepeat)
+        let me = try newJSONDecoder().decode(Print.self, from: data)
+        self.init(print: me.print)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12759,10 +12569,10 @@ extension Repeat {
     }
 
     func with(
-        repeatRepeat: Int? = nil
-    ) -> Repeat {
-        return Repeat(
-            repeatRepeat: repeatRepeat ?? self.repeatRepeat
+        print: Int? = nil
+    ) -> Print {
+        return Print(
+            print: print ?? self.print
         )
     }
 
@@ -12775,25 +12585,25 @@ extension Repeat {
     }
 }
 
-// MARK: - Required
-@objcMembers class Required: NSObject, Codable {
-    let requiredRequired: Int
+// MARK: - PrintMembers
+@objcMembers class PrintMembers: NSObject, Codable {
+    let printMembers: Int
 
     enum CodingKeys: String, CodingKey {
-        case requiredRequired = "required"
+        case printMembers = "printMembers"
     }
 
-    init(requiredRequired: Int) {
-        self.requiredRequired = requiredRequired
+    init(printMembers: Int) {
+        self.printMembers = printMembers
     }
 }
 
-// MARK: Required convenience initializers and mutators
+// MARK: PrintMembers convenience initializers and mutators
 
-extension Required {
+extension PrintMembers {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Required.self, from: data)
-        self.init(requiredRequired: me.requiredRequired)
+        let me = try newJSONDecoder().decode(PrintMembers.self, from: data)
+        self.init(printMembers: me.printMembers)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12808,10 +12618,10 @@ extension Required {
     }
 
     func with(
-        requiredRequired: Int? = nil
-    ) -> Required {
-        return Required(
-            requiredRequired: requiredRequired ?? self.requiredRequired
+        printMembers: Int? = nil
+    ) -> PrintMembers {
+        return PrintMembers(
+            printMembers: printMembers ?? self.printMembers
         )
     }
 
@@ -12824,25 +12634,25 @@ extension Required {
     }
 }
 
-// MARK: - Retain
-@objcMembers class Retain: NSObject, Codable {
-    let retainRetain: Int
+// MARK: - Printf
+@objcMembers class Printf: NSObject, Codable {
+    let printf: Int
 
     enum CodingKeys: String, CodingKey {
-        case retainRetain = "retain"
+        case printf = "printf"
     }
 
-    init(retainRetain: Int) {
-        self.retainRetain = retainRetain
+    init(printf: Int) {
+        self.printf = printf
     }
 }
 
-// MARK: Retain convenience initializers and mutators
+// MARK: Printf convenience initializers and mutators
 
-extension Retain {
+extension Printf {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Retain.self, from: data)
-        self.init(retainRetain: me.retainRetain)
+        let me = try newJSONDecoder().decode(Printf.self, from: data)
+        self.init(printf: me.printf)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12857,10 +12667,10 @@ extension Retain {
     }
 
     func with(
-        retainRetain: Int? = nil
-    ) -> Retain {
-        return Retain(
-            retainRetain: retainRetain ?? self.retainRetain
+        printf: Int? = nil
+    ) -> Printf {
+        return Printf(
+            printf: printf ?? self.printf
         )
     }
 
@@ -12873,25 +12683,25 @@ extension Retain {
     }
 }
 
-// MARK: - Rethrows
-@objcMembers class Rethrows: NSObject, Codable {
-    let rethrowsRethrows: Int
+// MARK: - Protected
+@objcMembers class Protected: NSObject, Codable {
+    let protected: Int
 
     enum CodingKeys: String, CodingKey {
-        case rethrowsRethrows = "rethrows"
+        case protected = "protected"
     }
 
-    init(rethrowsRethrows: Int) {
-        self.rethrowsRethrows = rethrowsRethrows
+    init(protected: Int) {
+        self.protected = protected
     }
 }
 
-// MARK: Rethrows convenience initializers and mutators
+// MARK: Protected convenience initializers and mutators
 
-extension Rethrows {
+extension Protected {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Rethrows.self, from: data)
-        self.init(rethrowsRethrows: me.rethrowsRethrows)
+        let me = try newJSONDecoder().decode(Protected.self, from: data)
+        self.init(protected: me.protected)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12906,10 +12716,10 @@ extension Rethrows {
     }
 
     func with(
-        rethrowsRethrows: Int? = nil
-    ) -> Rethrows {
-        return Rethrows(
-            rethrowsRethrows: rethrowsRethrows ?? self.rethrowsRethrows
+        protected: Int? = nil
+    ) -> Protected {
+        return Protected(
+            protected: protected ?? self.protected
         )
     }
 
@@ -12922,25 +12732,25 @@ extension Rethrows {
     }
 }
 
-// MARK: - Return
-@objcMembers class Return: NSObject, Codable {
-    let returnReturn: Int
+// MARK: - Obj4Protocol
+@objcMembers class Obj4Protocol: NSObject, Codable {
+    let protocolProtocol: Int
 
     enum CodingKeys: String, CodingKey {
-        case returnReturn = "return"
+        case protocolProtocol = "protocol"
     }
 
-    init(returnReturn: Int) {
-        self.returnReturn = returnReturn
+    init(protocolProtocol: Int) {
+        self.protocolProtocol = protocolProtocol
     }
 }
 
-// MARK: Return convenience initializers and mutators
+// MARK: Obj4Protocol convenience initializers and mutators
 
-extension Return {
+extension Obj4Protocol {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Return.self, from: data)
-        self.init(returnReturn: me.returnReturn)
+        let me = try newJSONDecoder().decode(Obj4Protocol.self, from: data)
+        self.init(protocolProtocol: me.protocolProtocol)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -12955,10 +12765,10 @@ extension Return {
     }
 
     func with(
-        returnReturn: Int? = nil
-    ) -> Return {
-        return Return(
-            returnReturn: returnReturn ?? self.returnReturn
+        protocolProtocol: Int? = nil
+    ) -> Obj4Protocol {
+        return Obj4Protocol(
+            protocolProtocol: protocolProtocol ?? self.protocolProtocol
         )
     }
 
@@ -12971,25 +12781,25 @@ extension Return {
     }
 }
 
-// MARK: - Right
-@objcMembers class Right: NSObject, Codable {
-    let rightRight: Int
+// MARK: - Obj4Self
+@objcMembers class Obj4Self: NSObject, Codable {
+    let selfSelf: Int
 
     enum CodingKeys: String, CodingKey {
-        case rightRight = "right"
+        case selfSelf = "self"
     }
 
-    init(rightRight: Int) {
-        self.rightRight = rightRight
+    init(selfSelf: Int) {
+        self.selfSelf = selfSelf
     }
 }
 
-// MARK: Right convenience initializers and mutators
+// MARK: Obj4Self convenience initializers and mutators
 
-extension Right {
+extension Obj4Self {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Right.self, from: data)
-        self.init(rightRight: me.rightRight)
+        let me = try newJSONDecoder().decode(Obj4Self.self, from: data)
+        self.init(selfSelf: me.selfSelf)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13004,10 +12814,10 @@ extension Right {
     }
 
     func with(
-        rightRight: Int? = nil
-    ) -> Right {
-        return Right(
-            rightRight: rightRight ?? self.rightRight
+        selfSelf: Int? = nil
+    ) -> Obj4Self {
+        return Obj4Self(
+            selfSelf: selfSelf ?? self.selfSelf
         )
     }
 
@@ -13020,25 +12830,25 @@ extension Right {
     }
 }
 
-// MARK: - SelfClass
-@objcMembers class SelfClass: NSObject, Codable {
-    let selfSelf: Int
+// MARK: - Quicktype
+@objcMembers class Quicktype: NSObject, Codable {
+    let quicktype: Int
 
     enum CodingKeys: String, CodingKey {
-        case selfSelf = "Self"
+        case quicktype = "quicktype"
     }
 
-    init(selfSelf: Int) {
-        self.selfSelf = selfSelf
+    init(quicktype: Int) {
+        self.quicktype = quicktype
     }
 }
 
-// MARK: SelfClass convenience initializers and mutators
+// MARK: Quicktype convenience initializers and mutators
 
-extension SelfClass {
+extension Quicktype {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(SelfClass.self, from: data)
-        self.init(selfSelf: me.selfSelf)
+        let me = try newJSONDecoder().decode(Quicktype.self, from: data)
+        self.init(quicktype: me.quicktype)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13053,10 +12863,10 @@ extension SelfClass {
     }
 
     func with(
-        selfSelf: Int? = nil
-    ) -> SelfClass {
-        return SelfClass(
-            selfSelf: selfSelf ?? self.selfSelf
+        quicktype: Int? = nil
+    ) -> Quicktype {
+        return Quicktype(
+            quicktype: quicktype ?? self.quicktype
         )
     }
 
@@ -13069,25 +12879,25 @@ extension SelfClass {
     }
 }
 
-// MARK: - Set
-@objcMembers class Set: NSObject, Codable {
-    let setSet: Int
+// MARK: - Raise
+@objcMembers class Raise: NSObject, Codable {
+    let raise: Int
 
     enum CodingKeys: String, CodingKey {
-        case setSet = "set"
+        case raise = "raise"
     }
 
-    init(setSet: Int) {
-        self.setSet = setSet
+    init(raise: Int) {
+        self.raise = raise
     }
 }
 
-// MARK: Set convenience initializers and mutators
+// MARK: Raise convenience initializers and mutators
 
-extension Set {
+extension Raise {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Set.self, from: data)
-        self.init(setSet: me.setSet)
+        let me = try newJSONDecoder().decode(Raise.self, from: data)
+        self.init(raise: me.raise)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13100,12 +12910,12 @@ extension Set {
     convenience init(fromURL url: URL) throws {
         try self.init(data: try Data(contentsOf: url))
     }
-
-    func with(
-        setSet: Int? = nil
-    ) -> Set {
-        return Set(
-            setSet: setSet ?? self.setSet
+
+    func with(
+        raise: Int? = nil
+    ) -> Raise {
+        return Raise(
+            raise: raise ?? self.raise
         )
     }
 
@@ -13118,25 +12928,25 @@ extension Set {
     }
 }
 
-// MARK: - Static
-@objcMembers class Static: NSObject, Codable {
-    let staticStatic: Int
+// MARK: - Range
+@objcMembers class Range: NSObject, Codable {
+    let range: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticStatic = "static"
+        case range = "range"
     }
 
-    init(staticStatic: Int) {
-        self.staticStatic = staticStatic
+    init(range: Int) {
+        self.range = range
     }
 }
 
-// MARK: Static convenience initializers and mutators
+// MARK: Range convenience initializers and mutators
 
-extension Static {
+extension Range {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Static.self, from: data)
-        self.init(staticStatic: me.staticStatic)
+        let me = try newJSONDecoder().decode(Range.self, from: data)
+        self.init(range: me.range)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13151,10 +12961,10 @@ extension Static {
     }
 
     func with(
-        staticStatic: Int? = nil
-    ) -> Static {
-        return Static(
-            staticStatic: staticStatic ?? self.staticStatic
+        range: Int? = nil
+    ) -> Range {
+        return Range(
+            range: range ?? self.range
         )
     }
 
@@ -13167,25 +12977,25 @@ extension Static {
     }
 }
 
-// MARK: - Struct
-@objcMembers class Struct: NSObject, Codable {
-    let structStruct: Int
+// MARK: - Readonly
+@objcMembers class Readonly: NSObject, Codable {
+    let readonly: Int
 
     enum CodingKeys: String, CodingKey {
-        case structStruct = "struct"
+        case readonly = "readonly"
     }
 
-    init(structStruct: Int) {
-        self.structStruct = structStruct
+    init(readonly: Int) {
+        self.readonly = readonly
     }
 }
 
-// MARK: Struct convenience initializers and mutators
+// MARK: Readonly convenience initializers and mutators
 
-extension Struct {
+extension Readonly {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Struct.self, from: data)
-        self.init(structStruct: me.structStruct)
+        let me = try newJSONDecoder().decode(Readonly.self, from: data)
+        self.init(readonly: me.readonly)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13200,10 +13010,10 @@ extension Struct {
     }
 
     func with(
-        structStruct: Int? = nil
-    ) -> Struct {
-        return Struct(
-            structStruct: structStruct ?? self.structStruct
+        readonly: Int? = nil
+    ) -> Readonly {
+        return Readonly(
+            readonly: readonly ?? self.readonly
         )
     }
 
@@ -13216,25 +13026,25 @@ extension Struct {
     }
 }
 
-// MARK: - Subscript
-@objcMembers class Subscript: NSObject, Codable {
-    let subscriptSubscript: Int
+// MARK: - Ref
+@objcMembers class Ref: NSObject, Codable {
+    let ref: Int
 
     enum CodingKeys: String, CodingKey {
-        case subscriptSubscript = "subscript"
+        case ref = "ref"
     }
 
-    init(subscriptSubscript: Int) {
-        self.subscriptSubscript = subscriptSubscript
+    init(ref: Int) {
+        self.ref = ref
     }
 }
 
-// MARK: Subscript convenience initializers and mutators
+// MARK: Ref convenience initializers and mutators
 
-extension Subscript {
+extension Ref {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Subscript.self, from: data)
-        self.init(subscriptSubscript: me.subscriptSubscript)
+        let me = try newJSONDecoder().decode(Ref.self, from: data)
+        self.init(ref: me.ref)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13249,10 +13059,10 @@ extension Subscript {
     }
 
     func with(
-        subscriptSubscript: Int? = nil
-    ) -> Subscript {
-        return Subscript(
-            subscriptSubscript: subscriptSubscript ?? self.subscriptSubscript
+        ref: Int? = nil
+    ) -> Ref {
+        return Ref(
+            ref: ref ?? self.ref
         )
     }
 
@@ -13265,25 +13075,25 @@ extension Subscript {
     }
 }
 
-// MARK: - Super
-@objcMembers class Super: NSObject, Codable {
-    let superSuper: Int
+// MARK: - RegExp
+@objcMembers class RegExp: NSObject, Codable {
+    let regExp: UUID
 
     enum CodingKeys: String, CodingKey {
-        case superSuper = "super"
+        case regExp = "RegExp"
     }
 
-    init(superSuper: Int) {
-        self.superSuper = superSuper
+    init(regExp: UUID) {
+        self.regExp = regExp
     }
 }
 
-// MARK: Super convenience initializers and mutators
+// MARK: RegExp convenience initializers and mutators
 
-extension Super {
+extension RegExp {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Super.self, from: data)
-        self.init(superSuper: me.superSuper)
+        let me = try newJSONDecoder().decode(RegExp.self, from: data)
+        self.init(regExp: me.regExp)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13298,10 +13108,10 @@ extension Super {
     }
 
     func with(
-        superSuper: Int? = nil
-    ) -> Super {
-        return Super(
-            superSuper: superSuper ?? self.superSuper
+        regExp: UUID? = nil
+    ) -> RegExp {
+        return RegExp(
+            regExp: regExp ?? self.regExp
         )
     }
 
@@ -13314,25 +13124,25 @@ extension Super {
     }
 }
 
-// MARK: - Switch
-@objcMembers class Switch: NSObject, Codable {
-    let switchSwitch: Int
+// MARK: - Register
+@objcMembers class Register: NSObject, Codable {
+    let register: Int
 
     enum CodingKeys: String, CodingKey {
-        case switchSwitch = "switch"
+        case register = "register"
     }
 
-    init(switchSwitch: Int) {
-        self.switchSwitch = switchSwitch
+    init(register: Int) {
+        self.register = register
     }
 }
 
-// MARK: Switch convenience initializers and mutators
+// MARK: Register convenience initializers and mutators
 
-extension Switch {
+extension Register {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Switch.self, from: data)
-        self.init(switchSwitch: me.switchSwitch)
+        let me = try newJSONDecoder().decode(Register.self, from: data)
+        self.init(register: me.register)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13347,10 +13157,10 @@ extension Switch {
     }
 
     func with(
-        switchSwitch: Int? = nil
-    ) -> Switch {
-        return Switch(
-            switchSwitch: switchSwitch ?? self.switchSwitch
+        register: Int? = nil
+    ) -> Register {
+        return Register(
+            register: register ?? self.register
         )
     }
 
@@ -13363,25 +13173,25 @@ extension Switch {
     }
 }
 
-// MARK: - Throw
-@objcMembers class Throw: NSObject, Codable {
-    let throwThrow: Int
+// MARK: - ReinterpretCast
+@objcMembers class ReinterpretCast: NSObject, Codable {
+    let reinterpretCast: Int
 
     enum CodingKeys: String, CodingKey {
-        case throwThrow = "throw"
+        case reinterpretCast = "reinterpret_cast"
     }
 
-    init(throwThrow: Int) {
-        self.throwThrow = throwThrow
+    init(reinterpretCast: Int) {
+        self.reinterpretCast = reinterpretCast
     }
 }
 
-// MARK: Throw convenience initializers and mutators
+// MARK: ReinterpretCast convenience initializers and mutators
 
-extension Throw {
+extension ReinterpretCast {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Throw.self, from: data)
-        self.init(throwThrow: me.throwThrow)
+        let me = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
+        self.init(reinterpretCast: me.reinterpretCast)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13396,10 +13206,10 @@ extension Throw {
     }
 
     func with(
-        throwThrow: Int? = nil
-    ) -> Throw {
-        return Throw(
-            throwThrow: throwThrow ?? self.throwThrow
+        reinterpretCast: Int? = nil
+    ) -> ReinterpretCast {
+        return ReinterpretCast(
+            reinterpretCast: reinterpretCast ?? self.reinterpretCast
         )
     }
 
@@ -13412,25 +13222,25 @@ extension Throw {
     }
 }
 
-// MARK: - Throws
-@objcMembers class Throws: NSObject, Codable {
-    let throwsThrows: Int
+// MARK: - Require
+@objcMembers class Require: NSObject, Codable {
+    let require: Int
 
     enum CodingKeys: String, CodingKey {
-        case throwsThrows = "throws"
+        case require = "require"
     }
 
-    init(throwsThrows: Int) {
-        self.throwsThrows = throwsThrows
+    init(require: Int) {
+        self.require = require
     }
 }
 
-// MARK: Throws convenience initializers and mutators
+// MARK: Require convenience initializers and mutators
 
-extension Throws {
+extension Require {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Throws.self, from: data)
-        self.init(throwsThrows: me.throwsThrows)
+        let me = try newJSONDecoder().decode(Require.self, from: data)
+        self.init(require: me.require)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13445,10 +13255,10 @@ extension Throws {
     }
 
     func with(
-        throwsThrows: Int? = nil
-    ) -> Throws {
-        return Throws(
-            throwsThrows: throwsThrows ?? self.throwsThrows
+        require: Int? = nil
+    ) -> Require {
+        return Require(
+            require: require ?? self.require
         )
     }
 
@@ -13461,25 +13271,25 @@ extension Throws {
     }
 }
 
-// MARK: - True
-@objcMembers class True: NSObject, Codable {
-    let trueTrue: Int
+// MARK: - Requires
+@objcMembers class Requires: NSObject, Codable {
+    let requires: Int
 
     enum CodingKeys: String, CodingKey {
-        case trueTrue = "True"
+        case requires = "requires"
     }
 
-    init(trueTrue: Int) {
-        self.trueTrue = trueTrue
+    init(requires: Int) {
+        self.requires = requires
     }
 }
 
-// MARK: True convenience initializers and mutators
+// MARK: Requires convenience initializers and mutators
 
-extension True {
+extension Requires {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(True.self, from: data)
-        self.init(trueTrue: me.trueTrue)
+        let me = try newJSONDecoder().decode(Requires.self, from: data)
+        self.init(requires: me.requires)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13494,10 +13304,10 @@ extension True {
     }
 
     func with(
-        trueTrue: Int? = nil
-    ) -> True {
-        return True(
-            trueTrue: trueTrue ?? self.trueTrue
+        requires: Int? = nil
+    ) -> Requires {
+        return Requires(
+            requires: requires ?? self.requires
         )
     }
 
@@ -13510,25 +13320,25 @@ extension True {
     }
 }
 
-// MARK: - Try
-@objcMembers class Try: NSObject, Codable {
-    let tryTry: Int
+// MARK: - Restrict
+@objcMembers class Restrict: NSObject, Codable {
+    let restrict: Int
 
     enum CodingKeys: String, CodingKey {
-        case tryTry = "try"
+        case restrict = "restrict"
     }
 
-    init(tryTry: Int) {
-        self.tryTry = tryTry
+    init(restrict: Int) {
+        self.restrict = restrict
     }
 }
 
-// MARK: Try convenience initializers and mutators
+// MARK: Restrict convenience initializers and mutators
 
-extension Try {
+extension Restrict {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Try.self, from: data)
-        self.init(tryTry: me.tryTry)
+        let me = try newJSONDecoder().decode(Restrict.self, from: data)
+        self.init(restrict: me.restrict)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13541,12 +13351,12 @@ extension Try {
     convenience init(fromURL url: URL) throws {
         try self.init(data: try Data(contentsOf: url))
     }
-
-    func with(
-        tryTry: Int? = nil
-    ) -> Try {
-        return Try(
-            tryTry: tryTry ?? self.tryTry
+
+    func with(
+        restrict: Int? = nil
+    ) -> Restrict {
+        return Restrict(
+            restrict: restrict ?? self.restrict
         )
     }
 
@@ -13559,25 +13369,25 @@ extension Try {
     }
 }
 
-// MARK: - Obj4Type
-@objcMembers class Obj4Type: NSObject, Codable {
-    let type: Int
+// MARK: - RuntimeType
+@objcMembers class RuntimeType: NSObject, Codable {
+    let runtimeType: Int
 
     enum CodingKeys: String, CodingKey {
-        case type = "type"
+        case runtimeType = "runtimeType"
     }
 
-    init(type: Int) {
-        self.type = type
+    init(runtimeType: Int) {
+        self.runtimeType = runtimeType
     }
 }
 
-// MARK: Obj4Type convenience initializers and mutators
+// MARK: RuntimeType convenience initializers and mutators
 
-extension Obj4Type {
+extension RuntimeType {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj4Type.self, from: data)
-        self.init(type: me.type)
+        let me = try newJSONDecoder().decode(RuntimeType.self, from: data)
+        self.init(runtimeType: me.runtimeType)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13592,10 +13402,10 @@ extension Obj4Type {
     }
 
     func with(
-        type: Int? = nil
-    ) -> Obj4Type {
-        return Obj4Type(
-            type: type ?? self.type
+        runtimeType: Int? = nil
+    ) -> RuntimeType {
+        return RuntimeType(
+            runtimeType: runtimeType ?? self.runtimeType
         )
     }
 
@@ -13608,25 +13418,25 @@ extension Obj4Type {
     }
 }
 
-// MARK: - Typealias
-@objcMembers class Typealias: NSObject, Codable {
-    let typealiasTypealias: Int
+// MARK: - S
+@objcMembers class S: NSObject, Codable {
+    let s: Int
 
     enum CodingKeys: String, CodingKey {
-        case typealiasTypealias = "typealias"
+        case s = "s"
     }
 
-    init(typealiasTypealias: Int) {
-        self.typealiasTypealias = typealiasTypealias
+    init(s: Int) {
+        self.s = s
     }
 }
 
-// MARK: Typealias convenience initializers and mutators
+// MARK: S convenience initializers and mutators
 
-extension Typealias {
+extension S {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Typealias.self, from: data)
-        self.init(typealiasTypealias: me.typealiasTypealias)
+        let me = try newJSONDecoder().decode(S.self, from: data)
+        self.init(s: me.s)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13641,10 +13451,10 @@ extension Typealias {
     }
 
     func with(
-        typealiasTypealias: Int? = nil
-    ) -> Typealias {
-        return Typealias(
-            typealiasTypealias: typealiasTypealias ?? self.typealiasTypealias
+        s: Int? = nil
+    ) -> S {
+        return S(
+            s: s ?? self.s
         )
     }
 
@@ -13657,25 +13467,25 @@ extension Typealias {
     }
 }
 
-// MARK: - Obj4Self
-@objcMembers class Obj4Self: NSObject, Codable {
-    let selfSelf: Int
+// MARK: - Sbyte
+@objcMembers class Sbyte: NSObject, Codable {
+    let sbyte: Int
 
     enum CodingKeys: String, CodingKey {
-        case selfSelf = "self"
+        case sbyte = "sbyte"
     }
 
-    init(selfSelf: Int) {
-        self.selfSelf = selfSelf
+    init(sbyte: Int) {
+        self.sbyte = sbyte
     }
 }
 
-// MARK: Obj4Self convenience initializers and mutators
+// MARK: Sbyte convenience initializers and mutators
 
-extension Obj4Self {
+extension Sbyte {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj4Self.self, from: data)
-        self.init(selfSelf: me.selfSelf)
+        let me = try newJSONDecoder().decode(Sbyte.self, from: data)
+        self.init(sbyte: me.sbyte)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13690,10 +13500,10 @@ extension Obj4Self {
     }
 
     func with(
-        selfSelf: Int? = nil
-    ) -> Obj4Self {
-        return Obj4Self(
-            selfSelf: selfSelf ?? self.selfSelf
+        sbyte: Int? = nil
+    ) -> Sbyte {
+        return Sbyte(
+            sbyte: sbyte ?? self.sbyte
         )
     }
 
@@ -13706,25 +13516,25 @@ extension Obj4Self {
     }
 }
 
-// MARK: - TrueClass
-@objcMembers class TrueClass: NSObject, Codable {
-    let trueTrue: Int
+// MARK: - Sealed
+@objcMembers class Sealed: NSObject, Codable {
+    let sealed: Int
 
     enum CodingKeys: String, CodingKey {
-        case trueTrue = "true"
+        case sealed = "sealed"
     }
 
-    init(trueTrue: Int) {
-        self.trueTrue = trueTrue
+    init(sealed: Int) {
+        self.sealed = sealed
     }
 }
 
-// MARK: TrueClass convenience initializers and mutators
+// MARK: Sealed convenience initializers and mutators
 
-extension TrueClass {
+extension Sealed {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(TrueClass.self, from: data)
-        self.init(trueTrue: me.trueTrue)
+        let me = try newJSONDecoder().decode(Sealed.self, from: data)
+        self.init(sealed: me.sealed)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13739,10 +13549,10 @@ extension TrueClass {
     }
 
     func with(
-        trueTrue: Int? = nil
-    ) -> TrueClass {
-        return TrueClass(
-            trueTrue: trueTrue ?? self.trueTrue
+        sealed: Int? = nil
+    ) -> Sealed {
+        return Sealed(
+            sealed: sealed ?? self.sealed
         )
     }
 
@@ -13755,25 +13565,25 @@ extension TrueClass {
     }
 }
 
-// MARK: - Quicktype
-@objcMembers class Quicktype: NSObject, Codable {
-    let quicktype: Int
+// MARK: - Sel
+@objcMembers class Sel: NSObject, Codable {
+    let sel: Int
 
     enum CodingKeys: String, CodingKey {
-        case quicktype = "quicktype"
+        case sel = "SEL"
     }
 
-    init(quicktype: Int) {
-        self.quicktype = quicktype
+    init(sel: Int) {
+        self.sel = sel
     }
 }
 
-// MARK: Quicktype convenience initializers and mutators
+// MARK: Sel convenience initializers and mutators
 
-extension Quicktype {
+extension Sel {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Quicktype.self, from: data)
-        self.init(quicktype: me.quicktype)
+        let me = try newJSONDecoder().decode(Sel.self, from: data)
+        self.init(sel: me.sel)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13788,10 +13598,10 @@ extension Quicktype {
     }
 
     func with(
-        quicktype: Int? = nil
-    ) -> Quicktype {
-        return Quicktype(
-            quicktype: quicktype ?? self.quicktype
+        sel: Int? = nil
+    ) -> Sel {
+        return Sel(
+            sel: sel ?? self.sel
         )
     }
 
@@ -13804,25 +13614,25 @@ extension Quicktype {
     }
 }
 
-// MARK: - Raise
-@objcMembers class Raise: NSObject, Codable {
-    let raise: Int
+// MARK: - Select
+@objcMembers class Select: NSObject, Codable {
+    let select: Int
 
     enum CodingKeys: String, CodingKey {
-        case raise = "raise"
+        case select = "select"
     }
 
-    init(raise: Int) {
-        self.raise = raise
+    init(select: Int) {
+        self.select = select
     }
 }
 
-// MARK: Raise convenience initializers and mutators
+// MARK: Select convenience initializers and mutators
 
-extension Raise {
+extension Select {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Raise.self, from: data)
-        self.init(raise: me.raise)
+        let me = try newJSONDecoder().decode(Select.self, from: data)
+        self.init(select: me.select)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13837,10 +13647,10 @@ extension Raise {
     }
 
     func with(
-        raise: Int? = nil
-    ) -> Raise {
-        return Raise(
-            raise: raise ?? self.raise
+        select: Int? = nil
+    ) -> Select {
+        return Select(
+            select: select ?? self.select
         )
     }
 
@@ -13853,25 +13663,25 @@ extension Raise {
     }
 }
 
-// MARK: - Range
-@objcMembers class Range: NSObject, Codable {
-    let range: Int
+// MARK: - Serialize
+@objcMembers class Serialize: NSObject, Codable {
+    let serialize: Int
 
     enum CodingKeys: String, CodingKey {
-        case range = "range"
+        case serialize = "serialize"
     }
 
-    init(range: Int) {
-        self.range = range
+    init(serialize: Int) {
+        self.serialize = serialize
     }
 }
 
-// MARK: Range convenience initializers and mutators
+// MARK: Serialize convenience initializers and mutators
 
-extension Range {
+extension Serialize {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Range.self, from: data)
-        self.init(range: me.range)
+        let me = try newJSONDecoder().decode(Serialize.self, from: data)
+        self.init(serialize: me.serialize)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13886,10 +13696,10 @@ extension Range {
     }
 
     func with(
-        range: Int? = nil
-    ) -> Range {
-        return Range(
-            range: range ?? self.range
+        serialize: Int? = nil
+    ) -> Serialize {
+        return Serialize(
+            serialize: serialize ?? self.serialize
         )
     }
 
@@ -13902,25 +13712,25 @@ extension Range {
     }
 }
 
-// MARK: - Readonly
-@objcMembers class Readonly: NSObject, Codable {
-    let readonly: Int
+// MARK: - SerializerProvider
+@objcMembers class SerializerProvider: NSObject, Codable {
+    let serializerProvider: Int
 
     enum CodingKeys: String, CodingKey {
-        case readonly = "readonly"
+        case serializerProvider = "SerializerProvider"
     }
 
-    init(readonly: Int) {
-        self.readonly = readonly
+    init(serializerProvider: Int) {
+        self.serializerProvider = serializerProvider
     }
 }
 
-// MARK: Readonly convenience initializers and mutators
+// MARK: SerializerProvider convenience initializers and mutators
 
-extension Readonly {
+extension SerializerProvider {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Readonly.self, from: data)
-        self.init(readonly: me.readonly)
+        let me = try newJSONDecoder().decode(SerializerProvider.self, from: data)
+        self.init(serializerProvider: me.serializerProvider)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13935,10 +13745,10 @@ extension Readonly {
     }
 
     func with(
-        readonly: Int? = nil
-    ) -> Readonly {
-        return Readonly(
-            readonly: readonly ?? self.readonly
+        serializerProvider: Int? = nil
+    ) -> SerializerProvider {
+        return SerializerProvider(
+            serializerProvider: serializerProvider ?? self.serializerProvider
         )
     }
 
@@ -13951,25 +13761,25 @@ extension Readonly {
     }
 }
 
-// MARK: - Ref
-@objcMembers class Ref: NSObject, Codable {
-    let ref: Int
+// MARK: - Short
+@objcMembers class Short: NSObject, Codable {
+    let short: Int
 
     enum CodingKeys: String, CodingKey {
-        case ref = "ref"
+        case short = "short"
     }
 
-    init(ref: Int) {
-        self.ref = ref
+    init(short: Int) {
+        self.short = short
     }
 }
 
-// MARK: Ref convenience initializers and mutators
+// MARK: Short convenience initializers and mutators
 
-extension Ref {
+extension Short {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Ref.self, from: data)
-        self.init(ref: me.ref)
+        let me = try newJSONDecoder().decode(Short.self, from: data)
+        self.init(short: me.short)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -13984,10 +13794,10 @@ extension Ref {
     }
 
     func with(
-        ref: Int? = nil
-    ) -> Ref {
-        return Ref(
-            ref: ref ?? self.ref
+        short: Int? = nil
+    ) -> Short {
+        return Short(
+            short: short ?? self.short
         )
     }
 
@@ -14000,25 +13810,25 @@ extension Ref {
     }
 }
 
-// MARK: - RegExp
-@objcMembers class RegExp: NSObject, Codable {
-    let regExp: UUID
+// MARK: - Signed
+@objcMembers class Signed: NSObject, Codable {
+    let signed: Int
 
     enum CodingKeys: String, CodingKey {
-        case regExp = "RegExp"
+        case signed = "signed"
     }
 
-    init(regExp: UUID) {
-        self.regExp = regExp
+    init(signed: Int) {
+        self.signed = signed
     }
 }
 
-// MARK: RegExp convenience initializers and mutators
+// MARK: Signed convenience initializers and mutators
 
-extension RegExp {
+extension Signed {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(RegExp.self, from: data)
-        self.init(regExp: me.regExp)
+        let me = try newJSONDecoder().decode(Signed.self, from: data)
+        self.init(signed: me.signed)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14033,10 +13843,10 @@ extension RegExp {
     }
 
     func with(
-        regExp: UUID? = nil
-    ) -> RegExp {
-        return RegExp(
-            regExp: regExp ?? self.regExp
+        signed: Int? = nil
+    ) -> Signed {
+        return Signed(
+            signed: signed ?? self.signed
         )
     }
 
@@ -14049,25 +13859,25 @@ extension RegExp {
     }
 }
 
-// MARK: - Register
-@objcMembers class Register: NSObject, Codable {
-    let register: Int
+// MARK: - SimpleModule
+@objcMembers class SimpleModule: NSObject, Codable {
+    let simpleModule: Int
 
     enum CodingKeys: String, CodingKey {
-        case register = "register"
+        case simpleModule = "SimpleModule"
     }
 
-    init(register: Int) {
-        self.register = register
+    init(simpleModule: Int) {
+        self.simpleModule = simpleModule
     }
 }
 
-// MARK: Register convenience initializers and mutators
+// MARK: SimpleModule convenience initializers and mutators
 
-extension Register {
+extension SimpleModule {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Register.self, from: data)
-        self.init(register: me.register)
+        let me = try newJSONDecoder().decode(SimpleModule.self, from: data)
+        self.init(simpleModule: me.simpleModule)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14082,10 +13892,10 @@ extension Register {
     }
 
     func with(
-        register: Int? = nil
-    ) -> Register {
-        return Register(
-            register: register ?? self.register
+        simpleModule: Int? = nil
+    ) -> SimpleModule {
+        return SimpleModule(
+            simpleModule: simpleModule ?? self.simpleModule
         )
     }
 
@@ -14098,25 +13908,25 @@ extension Register {
     }
 }
 
-// MARK: - ReinterpretCast
-@objcMembers class ReinterpretCast: NSObject, Codable {
-    let reinterpretCast: Int
+// MARK: - Sizeof
+@objcMembers class Sizeof: NSObject, Codable {
+    let sizeof: Int
 
     enum CodingKeys: String, CodingKey {
-        case reinterpretCast = "reinterpret_cast"
+        case sizeof = "sizeof"
     }
 
-    init(reinterpretCast: Int) {
-        self.reinterpretCast = reinterpretCast
+    init(sizeof: Int) {
+        self.sizeof = sizeof
     }
 }
 
-// MARK: ReinterpretCast convenience initializers and mutators
+// MARK: Sizeof convenience initializers and mutators
 
-extension ReinterpretCast {
+extension Sizeof {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ReinterpretCast.self, from: data)
-        self.init(reinterpretCast: me.reinterpretCast)
+        let me = try newJSONDecoder().decode(Sizeof.self, from: data)
+        self.init(sizeof: me.sizeof)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14131,10 +13941,10 @@ extension ReinterpretCast {
     }
 
     func with(
-        reinterpretCast: Int? = nil
-    ) -> ReinterpretCast {
-        return ReinterpretCast(
-            reinterpretCast: reinterpretCast ?? self.reinterpretCast
+        sizeof: Int? = nil
+    ) -> Sizeof {
+        return Sizeof(
+            sizeof: sizeof ?? self.sizeof
         )
     }
 
@@ -14147,25 +13957,25 @@ extension ReinterpretCast {
     }
 }
 
-// MARK: - Require
-@objcMembers class Require: NSObject, Codable {
-    let require: Int
+// MARK: - Stackalloc
+@objcMembers class Stackalloc: NSObject, Codable {
+    let stackalloc: Int
 
     enum CodingKeys: String, CodingKey {
-        case require = "require"
+        case stackalloc = "stackalloc"
     }
 
-    init(require: Int) {
-        self.require = require
+    init(stackalloc: Int) {
+        self.stackalloc = stackalloc
     }
 }
 
-// MARK: Require convenience initializers and mutators
+// MARK: Stackalloc convenience initializers and mutators
 
-extension Require {
+extension Stackalloc {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Require.self, from: data)
-        self.init(require: me.require)
+        let me = try newJSONDecoder().decode(Stackalloc.self, from: data)
+        self.init(stackalloc: me.stackalloc)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14180,10 +13990,10 @@ extension Require {
     }
 
     func with(
-        require: Int? = nil
-    ) -> Require {
-        return Require(
-            require: require ?? self.require
+        stackalloc: Int? = nil
+    ) -> Stackalloc {
+        return Stackalloc(
+            stackalloc: stackalloc ?? self.stackalloc
         )
     }
 
@@ -14196,25 +14006,25 @@ extension Require {
     }
 }
 
-// MARK: - Requires
-@objcMembers class Requires: NSObject, Codable {
-    let requires: Int
+// MARK: - Standards
+@objcMembers class Standards: NSObject, Codable {
+    let standards: Int
 
     enum CodingKeys: String, CodingKey {
-        case requires = "requires"
+        case standards = "Standards"
     }
 
-    init(requires: Int) {
-        self.requires = requires
+    init(standards: Int) {
+        self.standards = standards
     }
 }
 
-// MARK: Requires convenience initializers and mutators
+// MARK: Standards convenience initializers and mutators
 
-extension Requires {
+extension Standards {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Requires.self, from: data)
-        self.init(requires: me.requires)
+        let me = try newJSONDecoder().decode(Standards.self, from: data)
+        self.init(standards: me.standards)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14229,10 +14039,10 @@ extension Requires {
     }
 
     func with(
-        requires: Int? = nil
-    ) -> Requires {
-        return Requires(
-            requires: requires ?? self.requires
+        standards: Int? = nil
+    ) -> Standards {
+        return Standards(
+            standards: standards ?? self.standards
         )
     }
 
@@ -14245,25 +14055,25 @@ extension Requires {
     }
 }
 
-// MARK: - Restrict
-@objcMembers class Restrict: NSObject, Codable {
-    let restrict: Int
+// MARK: - StaticAssert
+@objcMembers class StaticAssert: NSObject, Codable {
+    let staticAssert: Int
 
     enum CodingKeys: String, CodingKey {
-        case restrict = "restrict"
+        case staticAssert = "static_assert"
     }
 
-    init(restrict: Int) {
-        self.restrict = restrict
+    init(staticAssert: Int) {
+        self.staticAssert = staticAssert
     }
 }
 
-// MARK: Restrict convenience initializers and mutators
+// MARK: StaticAssert convenience initializers and mutators
 
-extension Restrict {
+extension StaticAssert {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Restrict.self, from: data)
-        self.init(restrict: me.restrict)
+        let me = try newJSONDecoder().decode(StaticAssert.self, from: data)
+        self.init(staticAssert: me.staticAssert)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14278,10 +14088,10 @@ extension Restrict {
     }
 
     func with(
-        restrict: Int? = nil
-    ) -> Restrict {
-        return Restrict(
-            restrict: restrict ?? self.restrict
+        staticAssert: Int? = nil
+    ) -> StaticAssert {
+        return StaticAssert(
+            staticAssert: staticAssert ?? self.staticAssert
         )
     }
 
@@ -14294,25 +14104,208 @@ extension Restrict {
     }
 }
 
-// MARK: - RuntimeType
-@objcMembers class RuntimeType: NSObject, Codable {
-    let runtimeType: Int
+// MARK: - Obj5
+@objcMembers class Obj5: NSObject, Codable {
+    let dummy: Int
+    let obj5Struct: Struct
+    let obj5Subscript: Subscript
+    let obj5Super: Super
+    let obj5Switch: Switch
+    let obj5Throw: Throw
+    let obj5Throws: Throws
+    let obj5True: True
+    let obj5Try: Try
+    let obj5Type: Obj5Type
+    let obj5Typealias: Typealias
+    let obj5Unowned: Unowned
+    let obj5Var: Var
+    let obj5Weak: Weak
+    let obj5Where: Where
+    let obj5While: While
+    let obj5WillSet: WillSet
+    let purpleTrue: TrueClass
+    let staticCast: StaticCast
+    let stdDeserializer: StdDeserializer
+    let stdSerializer: StdSerializer
+    let strictfp: Strictfp
+    let string: StringClass
+    let symbol: Symbol
+    let synchronized: Synchronized
+    let system: System
+    let template: Template
+    let then: Then
+    let this: This
+    let threadLocal: ThreadLocal
+    let timeOnly: TimeOnly
+    let timeOnlyConverter: TimeOnlyConverter
+    let toJSON: ToJSON
+    let toString: ToString
+    let topLevel: TopLevelClass
+    let transient: Transient
+    let type: TypeClass
+    let typedef: Typedef
+    let typeid: Typeid
+    let typename: Typename
+    let typeof: Typeof
+    let uint: Uint
+    let ulong: Ulong
+    let unchecked: Unchecked
+    let undefined: Undefined
+    let union: Union
+    let unsafe: Unsafe
+    let unsigned: Unsigned
+    let ushort: Ushort
+    let using: Using
+    let utf8JSONReader: Utf8JSONReader
+    let utf8JSONWriter: Utf8JSONWriter
+    let uuid: UUIDClass
+    let virtual: Virtual
+    let void: Void
+    let volatile: Volatile
+    let wcharT: WcharT
+    let with: With
+    let xor: Xor
+    let xorEq: XorEq
+    let yes: Yes
+    let yield: Yield
 
     enum CodingKeys: String, CodingKey {
-        case runtimeType = "runtimeType"
+        case dummy = "dummy"
+        case obj5Struct = "struct"
+        case obj5Subscript = "subscript"
+        case obj5Super = "super"
+        case obj5Switch = "switch"
+        case obj5Throw = "throw"
+        case obj5Throws = "throws"
+        case obj5True = "True"
+        case obj5Try = "try"
+        case obj5Type = "type"
+        case obj5Typealias = "typealias"
+        case obj5Unowned = "unowned"
+        case obj5Var = "var"
+        case obj5Weak = "weak"
+        case obj5Where = "where"
+        case obj5While = "while"
+        case obj5WillSet = "willSet"
+        case purpleTrue = "true"
+        case staticCast = "static_cast"
+        case stdDeserializer = "StdDeserializer"
+        case stdSerializer = "StdSerializer"
+        case strictfp = "strictfp"
+        case string = "string"
+        case symbol = "symbol"
+        case synchronized = "synchronized"
+        case system = "system"
+        case template = "template"
+        case then = "then"
+        case this = "this"
+        case threadLocal = "thread_local"
+        case timeOnly = "TimeOnly"
+        case timeOnlyConverter = "TimeOnlyConverter"
+        case toJSON = "to_json"
+        case toString = "toString"
+        case topLevel = "top_level"
+        case transient = "transient"
+        case type = "Type"
+        case typedef = "typedef"
+        case typeid = "typeid"
+        case typename = "typename"
+        case typeof = "typeof"
+        case uint = "uint"
+        case ulong = "ulong"
+        case unchecked = "unchecked"
+        case undefined = "undefined"
+        case union = "union"
+        case unsafe = "unsafe"
+        case unsigned = "unsigned"
+        case ushort = "ushort"
+        case using = "using"
+        case utf8JSONReader = "Utf8JsonReader"
+        case utf8JSONWriter = "Utf8JsonWriter"
+        case uuid = "UUID"
+        case virtual = "virtual"
+        case void = "void"
+        case volatile = "volatile"
+        case wcharT = "wchar_t"
+        case with = "with"
+        case xor = "xor"
+        case xorEq = "xor_eq"
+        case yes = "YES"
+        case yield = "yield"
     }
 
-    init(runtimeType: Int) {
-        self.runtimeType = runtimeType
+    init(dummy: Int, obj5Struct: Struct, obj5Subscript: Subscript, obj5Super: Super, obj5Switch: Switch, obj5Throw: Throw, obj5Throws: Throws, obj5True: True, obj5Try: Try, obj5Type: Obj5Type, obj5Typealias: Typealias, obj5Unowned: Unowned, obj5Var: Var, obj5Weak: Weak, obj5Where: Where, obj5While: While, obj5WillSet: WillSet, purpleTrue: TrueClass, staticCast: StaticCast, stdDeserializer: StdDeserializer, stdSerializer: StdSerializer, strictfp: Strictfp, string: StringClass, symbol: Symbol, synchronized: Synchronized, system: System, template: Template, then: Then, this: This, threadLocal: ThreadLocal, timeOnly: TimeOnly, timeOnlyConverter: TimeOnlyConverter, toJSON: ToJSON, toString: ToString, topLevel: TopLevelClass, transient: Transient, type: TypeClass, typedef: Typedef, typeid: Typeid, typename: Typename, typeof: Typeof, uint: Uint, ulong: Ulong, unchecked: Unchecked, undefined: Undefined, union: Union, unsafe: Unsafe, unsigned: Unsigned, ushort: Ushort, using: Using, utf8JSONReader: Utf8JSONReader, utf8JSONWriter: Utf8JSONWriter, uuid: UUIDClass, virtual: Virtual, void: Void, volatile: Volatile, wcharT: WcharT, with: With, xor: Xor, xorEq: XorEq, yes: Yes, yield: Yield) {
+        self.dummy = dummy
+        self.obj5Struct = obj5Struct
+        self.obj5Subscript = obj5Subscript
+        self.obj5Super = obj5Super
+        self.obj5Switch = obj5Switch
+        self.obj5Throw = obj5Throw
+        self.obj5Throws = obj5Throws
+        self.obj5True = obj5True
+        self.obj5Try = obj5Try
+        self.obj5Type = obj5Type
+        self.obj5Typealias = obj5Typealias
+        self.obj5Unowned = obj5Unowned
+        self.obj5Var = obj5Var
+        self.obj5Weak = obj5Weak
+        self.obj5Where = obj5Where
+        self.obj5While = obj5While
+        self.obj5WillSet = obj5WillSet
+        self.purpleTrue = purpleTrue
+        self.staticCast = staticCast
+        self.stdDeserializer = stdDeserializer
+        self.stdSerializer = stdSerializer
+        self.strictfp = strictfp
+        self.string = string
+        self.symbol = symbol
+        self.synchronized = synchronized
+        self.system = system
+        self.template = template
+        self.then = then
+        self.this = this
+        self.threadLocal = threadLocal
+        self.timeOnly = timeOnly
+        self.timeOnlyConverter = timeOnlyConverter
+        self.toJSON = toJSON
+        self.toString = toString
+        self.topLevel = topLevel
+        self.transient = transient
+        self.type = type
+        self.typedef = typedef
+        self.typeid = typeid
+        self.typename = typename
+        self.typeof = typeof
+        self.uint = uint
+        self.ulong = ulong
+        self.unchecked = unchecked
+        self.undefined = undefined
+        self.union = union
+        self.unsafe = unsafe
+        self.unsigned = unsigned
+        self.ushort = ushort
+        self.using = using
+        self.utf8JSONReader = utf8JSONReader
+        self.utf8JSONWriter = utf8JSONWriter
+        self.uuid = uuid
+        self.virtual = virtual
+        self.void = void
+        self.volatile = volatile
+        self.wcharT = wcharT
+        self.with = with
+        self.xor = xor
+        self.xorEq = xorEq
+        self.yes = yes
+        self.yield = yield
     }
 }
 
-// MARK: RuntimeType convenience initializers and mutators
+// MARK: Obj5 convenience initializers and mutators
 
-extension RuntimeType {
+extension Obj5 {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(RuntimeType.self, from: data)
-        self.init(runtimeType: me.runtimeType)
+        let me = try newJSONDecoder().decode(Obj5.self, from: data)
+        self.init(dummy: me.dummy, obj5Struct: me.obj5Struct, obj5Subscript: me.obj5Subscript, obj5Super: me.obj5Super, obj5Switch: me.obj5Switch, obj5Throw: me.obj5Throw, obj5Throws: me.obj5Throws, obj5True: me.obj5True, obj5Try: me.obj5Try, obj5Type: me.obj5Type, obj5Typealias: me.obj5Typealias, obj5Unowned: me.obj5Unowned, obj5Var: me.obj5Var, obj5Weak: me.obj5Weak, obj5Where: me.obj5Where, obj5While: me.obj5While, obj5WillSet: me.obj5WillSet, purpleTrue: me.purpleTrue, staticCast: me.staticCast, stdDeserializer: me.stdDeserializer, stdSerializer: me.stdSerializer, strictfp: me.strictfp, string: me.string, symbol: me.symbol, synchronized: me.synchronized, system: me.system, template: me.template, then: me.then, this: me.this, threadLocal: me.threadLocal, timeOnly: me.timeOnly, timeOnlyConverter: me.timeOnlyConverter, toJSON: me.toJSON, toString: me.toString, topLevel: me.topLevel, transient: me.transient, type: me.type, typedef: me.typedef, typeid: me.typeid, typename: me.typename, typeof: me.typeof, uint: me.uint, ulong: me.ulong, unchecked: me.unchecked, undefined: me.undefined, union: me.union, unsafe: me.unsafe, unsigned: me.unsigned, ushort: me.ushort, using: me.using, utf8JSONReader: me.utf8JSONReader, utf8JSONWriter: me.utf8JSONWriter, uuid: me.uuid, virtual: me.virtual, void: me.void, volatile: me.volatile, wcharT: me.wcharT, with: me.with, xor: me.xor, xorEq: me.xorEq, yes: me.yes, yield: me.yield)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14327,10 +14320,132 @@ extension RuntimeType {
     }
 
     func with(
-        runtimeType: Int? = nil
-    ) -> RuntimeType {
-        return RuntimeType(
-            runtimeType: runtimeType ?? self.runtimeType
+        dummy: Int? = nil,
+        obj5Struct: Struct? = nil,
+        obj5Subscript: Subscript? = nil,
+        obj5Super: Super? = nil,
+        obj5Switch: Switch? = nil,
+        obj5Throw: Throw? = nil,
+        obj5Throws: Throws? = nil,
+        obj5True: True? = nil,
+        obj5Try: Try? = nil,
+        obj5Type: Obj5Type? = nil,
+        obj5Typealias: Typealias? = nil,
+        obj5Unowned: Unowned? = nil,
+        obj5Var: Var? = nil,
+        obj5Weak: Weak? = nil,
+        obj5Where: Where? = nil,
+        obj5While: While? = nil,
+        obj5WillSet: WillSet? = nil,
+        purpleTrue: TrueClass? = nil,
+        staticCast: StaticCast? = nil,
+        stdDeserializer: StdDeserializer? = nil,
+        stdSerializer: StdSerializer? = nil,
+        strictfp: Strictfp? = nil,
+        string: StringClass? = nil,
+        symbol: Symbol? = nil,
+        synchronized: Synchronized? = nil,
+        system: System? = nil,
+        template: Template? = nil,
+        then: Then? = nil,
+        this: This? = nil,
+        threadLocal: ThreadLocal? = nil,
+        timeOnly: TimeOnly? = nil,
+        timeOnlyConverter: TimeOnlyConverter? = nil,
+        toJSON: ToJSON? = nil,
+        toString: ToString? = nil,
+        topLevel: TopLevelClass? = nil,
+        transient: Transient? = nil,
+        type: TypeClass? = nil,
+        typedef: Typedef? = nil,
+        typeid: Typeid? = nil,
+        typename: Typename? = nil,
+        typeof: Typeof? = nil,
+        uint: Uint? = nil,
+        ulong: Ulong? = nil,
+        unchecked: Unchecked? = nil,
+        undefined: Undefined? = nil,
+        union: Union? = nil,
+        unsafe: Unsafe? = nil,
+        unsigned: Unsigned? = nil,
+        ushort: Ushort? = nil,
+        using: Using? = nil,
+        utf8JSONReader: Utf8JSONReader? = nil,
+        utf8JSONWriter: Utf8JSONWriter? = nil,
+        uuid: UUIDClass? = nil,
+        virtual: Virtual? = nil,
+        void: Void? = nil,
+        volatile: Volatile? = nil,
+        wcharT: WcharT? = nil,
+        with: With? = nil,
+        xor: Xor? = nil,
+        xorEq: XorEq? = nil,
+        yes: Yes? = nil,
+        yield: Yield? = nil
+    ) -> Obj5 {
+        return Obj5(
+            dummy: dummy ?? self.dummy,
+            obj5Struct: obj5Struct ?? self.obj5Struct,
+            obj5Subscript: obj5Subscript ?? self.obj5Subscript,
+            obj5Super: obj5Super ?? self.obj5Super,
+            obj5Switch: obj5Switch ?? self.obj5Switch,
+            obj5Throw: obj5Throw ?? self.obj5Throw,
+            obj5Throws: obj5Throws ?? self.obj5Throws,
+            obj5True: obj5True ?? self.obj5True,
+            obj5Try: obj5Try ?? self.obj5Try,
+            obj5Type: obj5Type ?? self.obj5Type,
+            obj5Typealias: obj5Typealias ?? self.obj5Typealias,
+            obj5Unowned: obj5Unowned ?? self.obj5Unowned,
+            obj5Var: obj5Var ?? self.obj5Var,
+            obj5Weak: obj5Weak ?? self.obj5Weak,
+            obj5Where: obj5Where ?? self.obj5Where,
+            obj5While: obj5While ?? self.obj5While,
+            obj5WillSet: obj5WillSet ?? self.obj5WillSet,
+            purpleTrue: purpleTrue ?? self.purpleTrue,
+            staticCast: staticCast ?? self.staticCast,
+            stdDeserializer: stdDeserializer ?? self.stdDeserializer,
+            stdSerializer: stdSerializer ?? self.stdSerializer,
+            strictfp: strictfp ?? self.strictfp,
+            string: string ?? self.string,
+            symbol: symbol ?? self.symbol,
+            synchronized: synchronized ?? self.synchronized,
+            system: system ?? self.system,
+            template: template ?? self.template,
+            then: then ?? self.then,
+            this: this ?? self.this,
+            threadLocal: threadLocal ?? self.threadLocal,
+            timeOnly: timeOnly ?? self.timeOnly,
+            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter,
+            toJSON: toJSON ?? self.toJSON,
+            toString: toString ?? self.toString,
+            topLevel: topLevel ?? self.topLevel,
+            transient: transient ?? self.transient,
+            type: type ?? self.type,
+            typedef: typedef ?? self.typedef,
+            typeid: typeid ?? self.typeid,
+            typename: typename ?? self.typename,
+            typeof: typeof ?? self.typeof,
+            uint: uint ?? self.uint,
+            ulong: ulong ?? self.ulong,
+            unchecked: unchecked ?? self.unchecked,
+            undefined: undefined ?? self.undefined,
+            union: union ?? self.union,
+            unsafe: unsafe ?? self.unsafe,
+            unsigned: unsigned ?? self.unsigned,
+            ushort: ushort ?? self.ushort,
+            using: using ?? self.using,
+            utf8JSONReader: utf8JSONReader ?? self.utf8JSONReader,
+            utf8JSONWriter: utf8JSONWriter ?? self.utf8JSONWriter,
+            uuid: uuid ?? self.uuid,
+            virtual: virtual ?? self.virtual,
+            void: void ?? self.void,
+            volatile: volatile ?? self.volatile,
+            wcharT: wcharT ?? self.wcharT,
+            with: with ?? self.with,
+            xor: xor ?? self.xor,
+            xorEq: xorEq ?? self.xorEq,
+            yes: yes ?? self.yes,
+            yield: yield ?? self.yield
         )
     }
 
@@ -14343,25 +14458,25 @@ extension RuntimeType {
     }
 }
 
-// MARK: - S
-@objcMembers class S: NSObject, Codable {
-    let s: Int
+// MARK: - Struct
+@objcMembers class Struct: NSObject, Codable {
+    let structStruct: Int
 
     enum CodingKeys: String, CodingKey {
-        case s = "s"
+        case structStruct = "struct"
     }
 
-    init(s: Int) {
-        self.s = s
+    init(structStruct: Int) {
+        self.structStruct = structStruct
     }
 }
 
-// MARK: S convenience initializers and mutators
+// MARK: Struct convenience initializers and mutators
 
-extension S {
+extension Struct {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(S.self, from: data)
-        self.init(s: me.s)
+        let me = try newJSONDecoder().decode(Struct.self, from: data)
+        self.init(structStruct: me.structStruct)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14376,10 +14491,10 @@ extension S {
     }
 
     func with(
-        s: Int? = nil
-    ) -> S {
-        return S(
-            s: s ?? self.s
+        structStruct: Int? = nil
+    ) -> Struct {
+        return Struct(
+            structStruct: structStruct ?? self.structStruct
         )
     }
 
@@ -14392,25 +14507,25 @@ extension S {
     }
 }
 
-// MARK: - Sbyte
-@objcMembers class Sbyte: NSObject, Codable {
-    let sbyte: Int
+// MARK: - Subscript
+@objcMembers class Subscript: NSObject, Codable {
+    let subscriptSubscript: Int
 
     enum CodingKeys: String, CodingKey {
-        case sbyte = "sbyte"
+        case subscriptSubscript = "subscript"
     }
 
-    init(sbyte: Int) {
-        self.sbyte = sbyte
+    init(subscriptSubscript: Int) {
+        self.subscriptSubscript = subscriptSubscript
     }
 }
 
-// MARK: Sbyte convenience initializers and mutators
+// MARK: Subscript convenience initializers and mutators
 
-extension Sbyte {
+extension Subscript {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Sbyte.self, from: data)
-        self.init(sbyte: me.sbyte)
+        let me = try newJSONDecoder().decode(Subscript.self, from: data)
+        self.init(subscriptSubscript: me.subscriptSubscript)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14425,10 +14540,10 @@ extension Sbyte {
     }
 
     func with(
-        sbyte: Int? = nil
-    ) -> Sbyte {
-        return Sbyte(
-            sbyte: sbyte ?? self.sbyte
+        subscriptSubscript: Int? = nil
+    ) -> Subscript {
+        return Subscript(
+            subscriptSubscript: subscriptSubscript ?? self.subscriptSubscript
         )
     }
 
@@ -14441,25 +14556,25 @@ extension Sbyte {
     }
 }
 
-// MARK: - Sealed
-@objcMembers class Sealed: NSObject, Codable {
-    let sealed: Int
+// MARK: - Super
+@objcMembers class Super: NSObject, Codable {
+    let superSuper: Int
 
     enum CodingKeys: String, CodingKey {
-        case sealed = "sealed"
+        case superSuper = "super"
     }
 
-    init(sealed: Int) {
-        self.sealed = sealed
+    init(superSuper: Int) {
+        self.superSuper = superSuper
     }
 }
 
-// MARK: Sealed convenience initializers and mutators
+// MARK: Super convenience initializers and mutators
 
-extension Sealed {
+extension Super {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Sealed.self, from: data)
-        self.init(sealed: me.sealed)
+        let me = try newJSONDecoder().decode(Super.self, from: data)
+        self.init(superSuper: me.superSuper)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14474,10 +14589,10 @@ extension Sealed {
     }
 
     func with(
-        sealed: Int? = nil
-    ) -> Sealed {
-        return Sealed(
-            sealed: sealed ?? self.sealed
+        superSuper: Int? = nil
+    ) -> Super {
+        return Super(
+            superSuper: superSuper ?? self.superSuper
         )
     }
 
@@ -14490,25 +14605,25 @@ extension Sealed {
     }
 }
 
-// MARK: - Sel
-@objcMembers class Sel: NSObject, Codable {
-    let sel: Int
+// MARK: - Switch
+@objcMembers class Switch: NSObject, Codable {
+    let switchSwitch: Int
 
     enum CodingKeys: String, CodingKey {
-        case sel = "SEL"
+        case switchSwitch = "switch"
     }
 
-    init(sel: Int) {
-        self.sel = sel
+    init(switchSwitch: Int) {
+        self.switchSwitch = switchSwitch
     }
 }
 
-// MARK: Sel convenience initializers and mutators
+// MARK: Switch convenience initializers and mutators
 
-extension Sel {
+extension Switch {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Sel.self, from: data)
-        self.init(sel: me.sel)
+        let me = try newJSONDecoder().decode(Switch.self, from: data)
+        self.init(switchSwitch: me.switchSwitch)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14523,10 +14638,10 @@ extension Sel {
     }
 
     func with(
-        sel: Int? = nil
-    ) -> Sel {
-        return Sel(
-            sel: sel ?? self.sel
+        switchSwitch: Int? = nil
+    ) -> Switch {
+        return Switch(
+            switchSwitch: switchSwitch ?? self.switchSwitch
         )
     }
 
@@ -14539,25 +14654,25 @@ extension Sel {
     }
 }
 
-// MARK: - Select
-@objcMembers class Select: NSObject, Codable {
-    let select: Int
+// MARK: - Throw
+@objcMembers class Throw: NSObject, Codable {
+    let throwThrow: Int
 
     enum CodingKeys: String, CodingKey {
-        case select = "select"
+        case throwThrow = "throw"
     }
 
-    init(select: Int) {
-        self.select = select
+    init(throwThrow: Int) {
+        self.throwThrow = throwThrow
     }
 }
 
-// MARK: Select convenience initializers and mutators
+// MARK: Throw convenience initializers and mutators
 
-extension Select {
+extension Throw {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Select.self, from: data)
-        self.init(select: me.select)
+        let me = try newJSONDecoder().decode(Throw.self, from: data)
+        self.init(throwThrow: me.throwThrow)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14572,10 +14687,10 @@ extension Select {
     }
 
     func with(
-        select: Int? = nil
-    ) -> Select {
-        return Select(
-            select: select ?? self.select
+        throwThrow: Int? = nil
+    ) -> Throw {
+        return Throw(
+            throwThrow: throwThrow ?? self.throwThrow
         )
     }
 
@@ -14588,25 +14703,25 @@ extension Select {
     }
 }
 
-// MARK: - Serialize
-@objcMembers class Serialize: NSObject, Codable {
-    let serialize: Int
+// MARK: - Throws
+@objcMembers class Throws: NSObject, Codable {
+    let throwsThrows: Int
 
     enum CodingKeys: String, CodingKey {
-        case serialize = "serialize"
+        case throwsThrows = "throws"
     }
 
-    init(serialize: Int) {
-        self.serialize = serialize
+    init(throwsThrows: Int) {
+        self.throwsThrows = throwsThrows
     }
 }
 
-// MARK: Serialize convenience initializers and mutators
+// MARK: Throws convenience initializers and mutators
 
-extension Serialize {
+extension Throws {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Serialize.self, from: data)
-        self.init(serialize: me.serialize)
+        let me = try newJSONDecoder().decode(Throws.self, from: data)
+        self.init(throwsThrows: me.throwsThrows)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14621,10 +14736,10 @@ extension Serialize {
     }
 
     func with(
-        serialize: Int? = nil
-    ) -> Serialize {
-        return Serialize(
-            serialize: serialize ?? self.serialize
+        throwsThrows: Int? = nil
+    ) -> Throws {
+        return Throws(
+            throwsThrows: throwsThrows ?? self.throwsThrows
         )
     }
 
@@ -14637,25 +14752,25 @@ extension Serialize {
     }
 }
 
-// MARK: - Short
-@objcMembers class Short: NSObject, Codable {
-    let short: Int
+// MARK: - True
+@objcMembers class True: NSObject, Codable {
+    let trueTrue: Int
 
     enum CodingKeys: String, CodingKey {
-        case short = "short"
+        case trueTrue = "True"
     }
 
-    init(short: Int) {
-        self.short = short
+    init(trueTrue: Int) {
+        self.trueTrue = trueTrue
     }
 }
 
-// MARK: Short convenience initializers and mutators
+// MARK: True convenience initializers and mutators
 
-extension Short {
+extension True {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Short.self, from: data)
-        self.init(short: me.short)
+        let me = try newJSONDecoder().decode(True.self, from: data)
+        self.init(trueTrue: me.trueTrue)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14670,10 +14785,10 @@ extension Short {
     }
 
     func with(
-        short: Int? = nil
-    ) -> Short {
-        return Short(
-            short: short ?? self.short
+        trueTrue: Int? = nil
+    ) -> True {
+        return True(
+            trueTrue: trueTrue ?? self.trueTrue
         )
     }
 
@@ -14686,25 +14801,25 @@ extension Short {
     }
 }
 
-// MARK: - Signed
-@objcMembers class Signed: NSObject, Codable {
-    let signed: Int
+// MARK: - Try
+@objcMembers class Try: NSObject, Codable {
+    let tryTry: Int
 
     enum CodingKeys: String, CodingKey {
-        case signed = "signed"
+        case tryTry = "try"
     }
 
-    init(signed: Int) {
-        self.signed = signed
+    init(tryTry: Int) {
+        self.tryTry = tryTry
     }
 }
 
-// MARK: Signed convenience initializers and mutators
+// MARK: Try convenience initializers and mutators
 
-extension Signed {
+extension Try {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Signed.self, from: data)
-        self.init(signed: me.signed)
+        let me = try newJSONDecoder().decode(Try.self, from: data)
+        self.init(tryTry: me.tryTry)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14719,10 +14834,10 @@ extension Signed {
     }
 
     func with(
-        signed: Int? = nil
-    ) -> Signed {
-        return Signed(
-            signed: signed ?? self.signed
+        tryTry: Int? = nil
+    ) -> Try {
+        return Try(
+            tryTry: tryTry ?? self.tryTry
         )
     }
 
@@ -14735,25 +14850,25 @@ extension Signed {
     }
 }
 
-// MARK: - Sizeof
-@objcMembers class Sizeof: NSObject, Codable {
-    let sizeof: Int
+// MARK: - Obj5Type
+@objcMembers class Obj5Type: NSObject, Codable {
+    let type: Int
 
     enum CodingKeys: String, CodingKey {
-        case sizeof = "sizeof"
+        case type = "type"
     }
 
-    init(sizeof: Int) {
-        self.sizeof = sizeof
+    init(type: Int) {
+        self.type = type
     }
 }
 
-// MARK: Sizeof convenience initializers and mutators
+// MARK: Obj5Type convenience initializers and mutators
 
-extension Sizeof {
+extension Obj5Type {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Sizeof.self, from: data)
-        self.init(sizeof: me.sizeof)
+        let me = try newJSONDecoder().decode(Obj5Type.self, from: data)
+        self.init(type: me.type)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14768,10 +14883,10 @@ extension Sizeof {
     }
 
     func with(
-        sizeof: Int? = nil
-    ) -> Sizeof {
-        return Sizeof(
-            sizeof: sizeof ?? self.sizeof
+        type: Int? = nil
+    ) -> Obj5Type {
+        return Obj5Type(
+            type: type ?? self.type
         )
     }
 
@@ -14784,25 +14899,25 @@ extension Sizeof {
     }
 }
 
-// MARK: - Stackalloc
-@objcMembers class Stackalloc: NSObject, Codable {
-    let stackalloc: Int
+// MARK: - Typealias
+@objcMembers class Typealias: NSObject, Codable {
+    let typealiasTypealias: Int
 
     enum CodingKeys: String, CodingKey {
-        case stackalloc = "stackalloc"
+        case typealiasTypealias = "typealias"
     }
 
-    init(stackalloc: Int) {
-        self.stackalloc = stackalloc
+    init(typealiasTypealias: Int) {
+        self.typealiasTypealias = typealiasTypealias
     }
 }
 
-// MARK: Stackalloc convenience initializers and mutators
+// MARK: Typealias convenience initializers and mutators
 
-extension Stackalloc {
+extension Typealias {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Stackalloc.self, from: data)
-        self.init(stackalloc: me.stackalloc)
+        let me = try newJSONDecoder().decode(Typealias.self, from: data)
+        self.init(typealiasTypealias: me.typealiasTypealias)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14817,10 +14932,10 @@ extension Stackalloc {
     }
 
     func with(
-        stackalloc: Int? = nil
-    ) -> Stackalloc {
-        return Stackalloc(
-            stackalloc: stackalloc ?? self.stackalloc
+        typealiasTypealias: Int? = nil
+    ) -> Typealias {
+        return Typealias(
+            typealiasTypealias: typealiasTypealias ?? self.typealiasTypealias
         )
     }
 
@@ -14833,25 +14948,25 @@ extension Stackalloc {
     }
 }
 
-// MARK: - Standards
-@objcMembers class Standards: NSObject, Codable {
-    let standards: Int
+// MARK: - Unowned
+@objcMembers class Unowned: NSObject, Codable {
+    let unownedUnowned: Int
 
     enum CodingKeys: String, CodingKey {
-        case standards = "Standards"
+        case unownedUnowned = "unowned"
     }
 
-    init(standards: Int) {
-        self.standards = standards
+    init(unownedUnowned: Int) {
+        self.unownedUnowned = unownedUnowned
     }
 }
 
-// MARK: Standards convenience initializers and mutators
+// MARK: Unowned convenience initializers and mutators
 
-extension Standards {
+extension Unowned {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Standards.self, from: data)
-        self.init(standards: me.standards)
+        let me = try newJSONDecoder().decode(Unowned.self, from: data)
+        self.init(unownedUnowned: me.unownedUnowned)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14866,10 +14981,10 @@ extension Standards {
     }
 
     func with(
-        standards: Int? = nil
-    ) -> Standards {
-        return Standards(
-            standards: standards ?? self.standards
+        unownedUnowned: Int? = nil
+    ) -> Unowned {
+        return Unowned(
+            unownedUnowned: unownedUnowned ?? self.unownedUnowned
         )
     }
 
@@ -14882,25 +14997,25 @@ extension Standards {
     }
 }
 
-// MARK: - StaticAssert
-@objcMembers class StaticAssert: NSObject, Codable {
-    let staticAssert: Int
+// MARK: - Var
+@objcMembers class Var: NSObject, Codable {
+    let varVar: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticAssert = "static_assert"
+        case varVar = "var"
     }
 
-    init(staticAssert: Int) {
-        self.staticAssert = staticAssert
+    init(varVar: Int) {
+        self.varVar = varVar
     }
 }
 
-// MARK: StaticAssert convenience initializers and mutators
+// MARK: Var convenience initializers and mutators
 
-extension StaticAssert {
+extension Var {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(StaticAssert.self, from: data)
-        self.init(staticAssert: me.staticAssert)
+        let me = try newJSONDecoder().decode(Var.self, from: data)
+        self.init(varVar: me.varVar)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14912,13 +15027,13 @@ extension StaticAssert {
 
     convenience init(fromURL url: URL) throws {
         try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        staticAssert: Int? = nil
-    ) -> StaticAssert {
-        return StaticAssert(
-            staticAssert: staticAssert ?? self.staticAssert
+    }
+
+    func with(
+        varVar: Int? = nil
+    ) -> Var {
+        return Var(
+            varVar: varVar ?? self.varVar
         )
     }
 
@@ -14931,25 +15046,25 @@ extension StaticAssert {
     }
 }
 
-// MARK: - StaticCast
-@objcMembers class StaticCast: NSObject, Codable {
-    let staticCast: Int
+// MARK: - Weak
+@objcMembers class Weak: NSObject, Codable {
+    let weakWeak: Int
 
     enum CodingKeys: String, CodingKey {
-        case staticCast = "static_cast"
+        case weakWeak = "weak"
     }
 
-    init(staticCast: Int) {
-        self.staticCast = staticCast
+    init(weakWeak: Int) {
+        self.weakWeak = weakWeak
     }
 }
 
-// MARK: StaticCast convenience initializers and mutators
+// MARK: Weak convenience initializers and mutators
 
-extension StaticCast {
+extension Weak {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(StaticCast.self, from: data)
-        self.init(staticCast: me.staticCast)
+        let me = try newJSONDecoder().decode(Weak.self, from: data)
+        self.init(weakWeak: me.weakWeak)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -14964,10 +15079,10 @@ extension StaticCast {
     }
 
     func with(
-        staticCast: Int? = nil
-    ) -> StaticCast {
-        return StaticCast(
-            staticCast: staticCast ?? self.staticCast
+        weakWeak: Int? = nil
+    ) -> Weak {
+        return Weak(
+            weakWeak: weakWeak ?? self.weakWeak
         )
     }
 
@@ -14980,25 +15095,25 @@ extension StaticCast {
     }
 }
 
-// MARK: - Strictfp
-@objcMembers class Strictfp: NSObject, Codable {
-    let strictfp: Int
+// MARK: - Where
+@objcMembers class Where: NSObject, Codable {
+    let whereWhere: Int
 
     enum CodingKeys: String, CodingKey {
-        case strictfp = "strictfp"
+        case whereWhere = "where"
     }
 
-    init(strictfp: Int) {
-        self.strictfp = strictfp
+    init(whereWhere: Int) {
+        self.whereWhere = whereWhere
     }
 }
 
-// MARK: Strictfp convenience initializers and mutators
+// MARK: Where convenience initializers and mutators
 
-extension Strictfp {
+extension Where {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Strictfp.self, from: data)
-        self.init(strictfp: me.strictfp)
+        let me = try newJSONDecoder().decode(Where.self, from: data)
+        self.init(whereWhere: me.whereWhere)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15013,10 +15128,10 @@ extension Strictfp {
     }
 
     func with(
-        strictfp: Int? = nil
-    ) -> Strictfp {
-        return Strictfp(
-            strictfp: strictfp ?? self.strictfp
+        whereWhere: Int? = nil
+    ) -> Where {
+        return Where(
+            whereWhere: whereWhere ?? self.whereWhere
         )
     }
 
@@ -15029,25 +15144,25 @@ extension Strictfp {
     }
 }
 
-// MARK: - StringClass
-@objcMembers class StringClass: NSObject, Codable {
-    let string: Int
+// MARK: - While
+@objcMembers class While: NSObject, Codable {
+    let whileWhile: Int
 
     enum CodingKeys: String, CodingKey {
-        case string = "string"
+        case whileWhile = "while"
     }
 
-    init(string: Int) {
-        self.string = string
+    init(whileWhile: Int) {
+        self.whileWhile = whileWhile
     }
 }
 
-// MARK: StringClass convenience initializers and mutators
+// MARK: While convenience initializers and mutators
 
-extension StringClass {
+extension While {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(StringClass.self, from: data)
-        self.init(string: me.string)
+        let me = try newJSONDecoder().decode(While.self, from: data)
+        self.init(whileWhile: me.whileWhile)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15062,10 +15177,10 @@ extension StringClass {
     }
 
     func with(
-        string: Int? = nil
-    ) -> StringClass {
-        return StringClass(
-            string: string ?? self.string
+        whileWhile: Int? = nil
+    ) -> While {
+        return While(
+            whileWhile: whileWhile ?? self.whileWhile
         )
     }
 
@@ -15078,25 +15193,25 @@ extension StringClass {
     }
 }
 
-// MARK: - Symbol
-@objcMembers class Symbol: NSObject, Codable {
-    let symbol: Int
+// MARK: - WillSet
+@objcMembers class WillSet: NSObject, Codable {
+    let willSetWillSet: Int
 
     enum CodingKeys: String, CodingKey {
-        case symbol = "symbol"
+        case willSetWillSet = "willSet"
     }
 
-    init(symbol: Int) {
-        self.symbol = symbol
+    init(willSetWillSet: Int) {
+        self.willSetWillSet = willSetWillSet
     }
 }
 
-// MARK: Symbol convenience initializers and mutators
+// MARK: WillSet convenience initializers and mutators
 
-extension Symbol {
+extension WillSet {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Symbol.self, from: data)
-        self.init(symbol: me.symbol)
+        let me = try newJSONDecoder().decode(WillSet.self, from: data)
+        self.init(willSetWillSet: me.willSetWillSet)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15111,10 +15226,10 @@ extension Symbol {
     }
 
     func with(
-        symbol: Int? = nil
-    ) -> Symbol {
-        return Symbol(
-            symbol: symbol ?? self.symbol
+        willSetWillSet: Int? = nil
+    ) -> WillSet {
+        return WillSet(
+            willSetWillSet: willSetWillSet ?? self.willSetWillSet
         )
     }
 
@@ -15127,25 +15242,25 @@ extension Symbol {
     }
 }
 
-// MARK: - Synchronized
-@objcMembers class Synchronized: NSObject, Codable {
-    let synchronized: Int
+// MARK: - TrueClass
+@objcMembers class TrueClass: NSObject, Codable {
+    let trueTrue: Int
 
     enum CodingKeys: String, CodingKey {
-        case synchronized = "synchronized"
+        case trueTrue = "true"
     }
 
-    init(synchronized: Int) {
-        self.synchronized = synchronized
+    init(trueTrue: Int) {
+        self.trueTrue = trueTrue
     }
 }
 
-// MARK: Synchronized convenience initializers and mutators
+// MARK: TrueClass convenience initializers and mutators
 
-extension Synchronized {
+extension TrueClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Synchronized.self, from: data)
-        self.init(synchronized: me.synchronized)
+        let me = try newJSONDecoder().decode(TrueClass.self, from: data)
+        self.init(trueTrue: me.trueTrue)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15160,10 +15275,10 @@ extension Synchronized {
     }
 
     func with(
-        synchronized: Int? = nil
-    ) -> Synchronized {
-        return Synchronized(
-            synchronized: synchronized ?? self.synchronized
+        trueTrue: Int? = nil
+    ) -> TrueClass {
+        return TrueClass(
+            trueTrue: trueTrue ?? self.trueTrue
         )
     }
 
@@ -15176,25 +15291,25 @@ extension Synchronized {
     }
 }
 
-// MARK: - System
-@objcMembers class System: NSObject, Codable {
-    let system: Int
+// MARK: - StaticCast
+@objcMembers class StaticCast: NSObject, Codable {
+    let staticCast: Int
 
     enum CodingKeys: String, CodingKey {
-        case system = "system"
+        case staticCast = "static_cast"
     }
 
-    init(system: Int) {
-        self.system = system
+    init(staticCast: Int) {
+        self.staticCast = staticCast
     }
 }
 
-// MARK: System convenience initializers and mutators
+// MARK: StaticCast convenience initializers and mutators
 
-extension System {
+extension StaticCast {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(System.self, from: data)
-        self.init(system: me.system)
+        let me = try newJSONDecoder().decode(StaticCast.self, from: data)
+        self.init(staticCast: me.staticCast)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15209,10 +15324,10 @@ extension System {
     }
 
     func with(
-        system: Int? = nil
-    ) -> System {
-        return System(
-            system: system ?? self.system
+        staticCast: Int? = nil
+    ) -> StaticCast {
+        return StaticCast(
+            staticCast: staticCast ?? self.staticCast
         )
     }
 
@@ -15225,25 +15340,25 @@ extension System {
     }
 }
 
-// MARK: - Template
-@objcMembers class Template: NSObject, Codable {
-    let template: Int
+// MARK: - StdDeserializer
+@objcMembers class StdDeserializer: NSObject, Codable {
+    let stdDeserializer: Int
 
     enum CodingKeys: String, CodingKey {
-        case template = "template"
+        case stdDeserializer = "StdDeserializer"
     }
 
-    init(template: Int) {
-        self.template = template
+    init(stdDeserializer: Int) {
+        self.stdDeserializer = stdDeserializer
     }
 }
 
-// MARK: Template convenience initializers and mutators
+// MARK: StdDeserializer convenience initializers and mutators
 
-extension Template {
+extension StdDeserializer {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Template.self, from: data)
-        self.init(template: me.template)
+        let me = try newJSONDecoder().decode(StdDeserializer.self, from: data)
+        self.init(stdDeserializer: me.stdDeserializer)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15258,10 +15373,10 @@ extension Template {
     }
 
     func with(
-        template: Int? = nil
-    ) -> Template {
-        return Template(
-            template: template ?? self.template
+        stdDeserializer: Int? = nil
+    ) -> StdDeserializer {
+        return StdDeserializer(
+            stdDeserializer: stdDeserializer ?? self.stdDeserializer
         )
     }
 
@@ -15274,25 +15389,25 @@ extension Template {
     }
 }
 
-// MARK: - Then
-@objcMembers class Then: NSObject, Codable {
-    let then: Int
+// MARK: - StdSerializer
+@objcMembers class StdSerializer: NSObject, Codable {
+    let stdSerializer: Int
 
     enum CodingKeys: String, CodingKey {
-        case then = "then"
+        case stdSerializer = "StdSerializer"
     }
 
-    init(then: Int) {
-        self.then = then
+    init(stdSerializer: Int) {
+        self.stdSerializer = stdSerializer
     }
 }
 
-// MARK: Then convenience initializers and mutators
+// MARK: StdSerializer convenience initializers and mutators
 
-extension Then {
+extension StdSerializer {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Then.self, from: data)
-        self.init(then: me.then)
+        let me = try newJSONDecoder().decode(StdSerializer.self, from: data)
+        self.init(stdSerializer: me.stdSerializer)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15307,10 +15422,10 @@ extension Then {
     }
 
     func with(
-        then: Int? = nil
-    ) -> Then {
-        return Then(
-            then: then ?? self.then
+        stdSerializer: Int? = nil
+    ) -> StdSerializer {
+        return StdSerializer(
+            stdSerializer: stdSerializer ?? self.stdSerializer
         )
     }
 
@@ -15323,25 +15438,25 @@ extension Then {
     }
 }
 
-// MARK: - This
-@objcMembers class This: NSObject, Codable {
-    let this: Int
+// MARK: - Strictfp
+@objcMembers class Strictfp: NSObject, Codable {
+    let strictfp: Int
 
     enum CodingKeys: String, CodingKey {
-        case this = "this"
+        case strictfp = "strictfp"
     }
 
-    init(this: Int) {
-        self.this = this
+    init(strictfp: Int) {
+        self.strictfp = strictfp
     }
 }
 
-// MARK: This convenience initializers and mutators
+// MARK: Strictfp convenience initializers and mutators
 
-extension This {
+extension Strictfp {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(This.self, from: data)
-        self.init(this: me.this)
+        let me = try newJSONDecoder().decode(Strictfp.self, from: data)
+        self.init(strictfp: me.strictfp)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15355,11 +15470,11 @@ extension This {
         try self.init(data: try Data(contentsOf: url))
     }
 
-    func with(
-        this: Int? = nil
-    ) -> This {
-        return This(
-            this: this ?? self.this
+    func with(
+        strictfp: Int? = nil
+    ) -> Strictfp {
+        return Strictfp(
+            strictfp: strictfp ?? self.strictfp
         )
     }
 
@@ -15372,25 +15487,25 @@ extension This {
     }
 }
 
-// MARK: - ThreadLocal
-@objcMembers class ThreadLocal: NSObject, Codable {
-    let threadLocal: Int
+// MARK: - StringClass
+@objcMembers class StringClass: NSObject, Codable {
+    let string: Int
 
     enum CodingKeys: String, CodingKey {
-        case threadLocal = "thread_local"
+        case string = "string"
     }
 
-    init(threadLocal: Int) {
-        self.threadLocal = threadLocal
+    init(string: Int) {
+        self.string = string
     }
 }
 
-// MARK: ThreadLocal convenience initializers and mutators
+// MARK: StringClass convenience initializers and mutators
 
-extension ThreadLocal {
+extension StringClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ThreadLocal.self, from: data)
-        self.init(threadLocal: me.threadLocal)
+        let me = try newJSONDecoder().decode(StringClass.self, from: data)
+        self.init(string: me.string)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15405,10 +15520,10 @@ extension ThreadLocal {
     }
 
     func with(
-        threadLocal: Int? = nil
-    ) -> ThreadLocal {
-        return ThreadLocal(
-            threadLocal: threadLocal ?? self.threadLocal
+        string: Int? = nil
+    ) -> StringClass {
+        return StringClass(
+            string: string ?? self.string
         )
     }
 
@@ -15421,25 +15536,25 @@ extension ThreadLocal {
     }
 }
 
-// MARK: - TimeOnly
-@objcMembers class TimeOnly: NSObject, Codable {
-    let timeOnly: Int
+// MARK: - Symbol
+@objcMembers class Symbol: NSObject, Codable {
+    let symbol: Int
 
     enum CodingKeys: String, CodingKey {
-        case timeOnly = "TimeOnly"
+        case symbol = "symbol"
     }
 
-    init(timeOnly: Int) {
-        self.timeOnly = timeOnly
+    init(symbol: Int) {
+        self.symbol = symbol
     }
 }
 
-// MARK: TimeOnly convenience initializers and mutators
+// MARK: Symbol convenience initializers and mutators
 
-extension TimeOnly {
+extension Symbol {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(TimeOnly.self, from: data)
-        self.init(timeOnly: me.timeOnly)
+        let me = try newJSONDecoder().decode(Symbol.self, from: data)
+        self.init(symbol: me.symbol)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15454,10 +15569,10 @@ extension TimeOnly {
     }
 
     func with(
-        timeOnly: Int? = nil
-    ) -> TimeOnly {
-        return TimeOnly(
-            timeOnly: timeOnly ?? self.timeOnly
+        symbol: Int? = nil
+    ) -> Symbol {
+        return Symbol(
+            symbol: symbol ?? self.symbol
         )
     }
 
@@ -15470,25 +15585,25 @@ extension TimeOnly {
     }
 }
 
-// MARK: - TimeOnlyConverter
-@objcMembers class TimeOnlyConverter: NSObject, Codable {
-    let timeOnlyConverter: Int
+// MARK: - Synchronized
+@objcMembers class Synchronized: NSObject, Codable {
+    let synchronized: Int
 
     enum CodingKeys: String, CodingKey {
-        case timeOnlyConverter = "TimeOnlyConverter"
+        case synchronized = "synchronized"
     }
 
-    init(timeOnlyConverter: Int) {
-        self.timeOnlyConverter = timeOnlyConverter
+    init(synchronized: Int) {
+        self.synchronized = synchronized
     }
 }
 
-// MARK: TimeOnlyConverter convenience initializers and mutators
+// MARK: Synchronized convenience initializers and mutators
 
-extension TimeOnlyConverter {
+extension Synchronized {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(TimeOnlyConverter.self, from: data)
-        self.init(timeOnlyConverter: me.timeOnlyConverter)
+        let me = try newJSONDecoder().decode(Synchronized.self, from: data)
+        self.init(synchronized: me.synchronized)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15503,10 +15618,10 @@ extension TimeOnlyConverter {
     }
 
     func with(
-        timeOnlyConverter: Int? = nil
-    ) -> TimeOnlyConverter {
-        return TimeOnlyConverter(
-            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter
+        synchronized: Int? = nil
+    ) -> Synchronized {
+        return Synchronized(
+            synchronized: synchronized ?? self.synchronized
         )
     }
 
@@ -15519,25 +15634,25 @@ extension TimeOnlyConverter {
     }
 }
 
-// MARK: - ToJSON
-@objcMembers class ToJSON: NSObject, Codable {
-    let toJSON: Int
+// MARK: - System
+@objcMembers class System: NSObject, Codable {
+    let system: Int
 
     enum CodingKeys: String, CodingKey {
-        case toJSON = "to_json"
+        case system = "system"
     }
 
-    init(toJSON: Int) {
-        self.toJSON = toJSON
+    init(system: Int) {
+        self.system = system
     }
 }
 
-// MARK: ToJSON convenience initializers and mutators
+// MARK: System convenience initializers and mutators
 
-extension ToJSON {
+extension System {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ToJSON.self, from: data)
-        self.init(toJSON: me.toJSON)
+        let me = try newJSONDecoder().decode(System.self, from: data)
+        self.init(system: me.system)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15552,10 +15667,10 @@ extension ToJSON {
     }
 
     func with(
-        toJSON: Int? = nil
-    ) -> ToJSON {
-        return ToJSON(
-            toJSON: toJSON ?? self.toJSON
+        system: Int? = nil
+    ) -> System {
+        return System(
+            system: system ?? self.system
         )
     }
 
@@ -15568,25 +15683,25 @@ extension ToJSON {
     }
 }
 
-// MARK: - ToString
-@objcMembers class ToString: NSObject, Codable {
-    let toString: Int
+// MARK: - Template
+@objcMembers class Template: NSObject, Codable {
+    let template: Int
 
     enum CodingKeys: String, CodingKey {
-        case toString = "toString"
+        case template = "template"
     }
 
-    init(toString: Int) {
-        self.toString = toString
+    init(template: Int) {
+        self.template = template
     }
 }
 
-// MARK: ToString convenience initializers and mutators
+// MARK: Template convenience initializers and mutators
 
-extension ToString {
+extension Template {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(ToString.self, from: data)
-        self.init(toString: me.toString)
+        let me = try newJSONDecoder().decode(Template.self, from: data)
+        self.init(template: me.template)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15601,10 +15716,10 @@ extension ToString {
     }
 
     func with(
-        toString: Int? = nil
-    ) -> ToString {
-        return ToString(
-            toString: toString ?? self.toString
+        template: Int? = nil
+    ) -> Template {
+        return Template(
+            template: template ?? self.template
         )
     }
 
@@ -15617,25 +15732,25 @@ extension ToString {
     }
 }
 
-// MARK: - TopLevelClass
-@objcMembers class TopLevelClass: NSObject, Codable {
-    let topLevel: Int
+// MARK: - Then
+@objcMembers class Then: NSObject, Codable {
+    let then: Int
 
     enum CodingKeys: String, CodingKey {
-        case topLevel = "top_level"
+        case then = "then"
     }
 
-    init(topLevel: Int) {
-        self.topLevel = topLevel
+    init(then: Int) {
+        self.then = then
     }
 }
 
-// MARK: TopLevelClass convenience initializers and mutators
+// MARK: Then convenience initializers and mutators
 
-extension TopLevelClass {
+extension Then {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(TopLevelClass.self, from: data)
-        self.init(topLevel: me.topLevel)
+        let me = try newJSONDecoder().decode(Then.self, from: data)
+        self.init(then: me.then)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15650,10 +15765,10 @@ extension TopLevelClass {
     }
 
     func with(
-        topLevel: Int? = nil
-    ) -> TopLevelClass {
-        return TopLevelClass(
-            topLevel: topLevel ?? self.topLevel
+        then: Int? = nil
+    ) -> Then {
+        return Then(
+            then: then ?? self.then
         )
     }
 
@@ -15666,25 +15781,25 @@ extension TopLevelClass {
     }
 }
 
-// MARK: - Transient
-@objcMembers class Transient: NSObject, Codable {
-    let transient: Int
+// MARK: - This
+@objcMembers class This: NSObject, Codable {
+    let this: Int
 
     enum CodingKeys: String, CodingKey {
-        case transient = "transient"
+        case this = "this"
     }
 
-    init(transient: Int) {
-        self.transient = transient
+    init(this: Int) {
+        self.this = this
     }
 }
 
-// MARK: Transient convenience initializers and mutators
+// MARK: This convenience initializers and mutators
 
-extension Transient {
+extension This {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Transient.self, from: data)
-        self.init(transient: me.transient)
+        let me = try newJSONDecoder().decode(This.self, from: data)
+        self.init(this: me.this)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15699,10 +15814,10 @@ extension Transient {
     }
 
     func with(
-        transient: Int? = nil
-    ) -> Transient {
-        return Transient(
-            transient: transient ?? self.transient
+        this: Int? = nil
+    ) -> This {
+        return This(
+            this: this ?? self.this
         )
     }
 
@@ -15715,25 +15830,25 @@ extension Transient {
     }
 }
 
-// MARK: - TypeClass
-@objcMembers class TypeClass: NSObject, Codable {
-    let type: Int
+// MARK: - ThreadLocal
+@objcMembers class ThreadLocal: NSObject, Codable {
+    let threadLocal: Int
 
     enum CodingKeys: String, CodingKey {
-        case type = "Type"
+        case threadLocal = "thread_local"
     }
 
-    init(type: Int) {
-        self.type = type
+    init(threadLocal: Int) {
+        self.threadLocal = threadLocal
     }
 }
 
-// MARK: TypeClass convenience initializers and mutators
+// MARK: ThreadLocal convenience initializers and mutators
 
-extension TypeClass {
+extension ThreadLocal {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(TypeClass.self, from: data)
-        self.init(type: me.type)
+        let me = try newJSONDecoder().decode(ThreadLocal.self, from: data)
+        self.init(threadLocal: me.threadLocal)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15748,10 +15863,10 @@ extension TypeClass {
     }
 
     func with(
-        type: Int? = nil
-    ) -> TypeClass {
-        return TypeClass(
-            type: type ?? self.type
+        threadLocal: Int? = nil
+    ) -> ThreadLocal {
+        return ThreadLocal(
+            threadLocal: threadLocal ?? self.threadLocal
         )
     }
 
@@ -15764,25 +15879,25 @@ extension TypeClass {
     }
 }
 
-// MARK: - Typedef
-@objcMembers class Typedef: NSObject, Codable {
-    let typedef: Int
+// MARK: - TimeOnly
+@objcMembers class TimeOnly: NSObject, Codable {
+    let timeOnly: Int
 
     enum CodingKeys: String, CodingKey {
-        case typedef = "typedef"
+        case timeOnly = "TimeOnly"
     }
 
-    init(typedef: Int) {
-        self.typedef = typedef
+    init(timeOnly: Int) {
+        self.timeOnly = timeOnly
     }
 }
 
-// MARK: Typedef convenience initializers and mutators
+// MARK: TimeOnly convenience initializers and mutators
 
-extension Typedef {
+extension TimeOnly {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Typedef.self, from: data)
-        self.init(typedef: me.typedef)
+        let me = try newJSONDecoder().decode(TimeOnly.self, from: data)
+        self.init(timeOnly: me.timeOnly)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15794,13 +15909,13 @@ extension Typedef {
 
     convenience init(fromURL url: URL) throws {
         try self.init(data: try Data(contentsOf: url))
-    }
-
-    func with(
-        typedef: Int? = nil
-    ) -> Typedef {
-        return Typedef(
-            typedef: typedef ?? self.typedef
+    }
+
+    func with(
+        timeOnly: Int? = nil
+    ) -> TimeOnly {
+        return TimeOnly(
+            timeOnly: timeOnly ?? self.timeOnly
         )
     }
 
@@ -15813,25 +15928,25 @@ extension Typedef {
     }
 }
 
-// MARK: - Typeid
-@objcMembers class Typeid: NSObject, Codable {
-    let typeid: Int
+// MARK: - TimeOnlyConverter
+@objcMembers class TimeOnlyConverter: NSObject, Codable {
+    let timeOnlyConverter: Int
 
     enum CodingKeys: String, CodingKey {
-        case typeid = "typeid"
+        case timeOnlyConverter = "TimeOnlyConverter"
     }
 
-    init(typeid: Int) {
-        self.typeid = typeid
+    init(timeOnlyConverter: Int) {
+        self.timeOnlyConverter = timeOnlyConverter
     }
 }
 
-// MARK: Typeid convenience initializers and mutators
+// MARK: TimeOnlyConverter convenience initializers and mutators
 
-extension Typeid {
+extension TimeOnlyConverter {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Typeid.self, from: data)
-        self.init(typeid: me.typeid)
+        let me = try newJSONDecoder().decode(TimeOnlyConverter.self, from: data)
+        self.init(timeOnlyConverter: me.timeOnlyConverter)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15846,10 +15961,10 @@ extension Typeid {
     }
 
     func with(
-        typeid: Int? = nil
-    ) -> Typeid {
-        return Typeid(
-            typeid: typeid ?? self.typeid
+        timeOnlyConverter: Int? = nil
+    ) -> TimeOnlyConverter {
+        return TimeOnlyConverter(
+            timeOnlyConverter: timeOnlyConverter ?? self.timeOnlyConverter
         )
     }
 
@@ -15862,25 +15977,25 @@ extension Typeid {
     }
 }
 
-// MARK: - Typename
-@objcMembers class Typename: NSObject, Codable {
-    let typename: Int
+// MARK: - ToJSON
+@objcMembers class ToJSON: NSObject, Codable {
+    let toJSON: Int
 
     enum CodingKeys: String, CodingKey {
-        case typename = "typename"
+        case toJSON = "to_json"
     }
 
-    init(typename: Int) {
-        self.typename = typename
+    init(toJSON: Int) {
+        self.toJSON = toJSON
     }
 }
 
-// MARK: Typename convenience initializers and mutators
+// MARK: ToJSON convenience initializers and mutators
 
-extension Typename {
+extension ToJSON {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Typename.self, from: data)
-        self.init(typename: me.typename)
+        let me = try newJSONDecoder().decode(ToJSON.self, from: data)
+        self.init(toJSON: me.toJSON)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15895,10 +16010,10 @@ extension Typename {
     }
 
     func with(
-        typename: Int? = nil
-    ) -> Typename {
-        return Typename(
-            typename: typename ?? self.typename
+        toJSON: Int? = nil
+    ) -> ToJSON {
+        return ToJSON(
+            toJSON: toJSON ?? self.toJSON
         )
     }
 
@@ -15911,25 +16026,25 @@ extension Typename {
     }
 }
 
-// MARK: - Typeof
-@objcMembers class Typeof: NSObject, Codable {
-    let typeof: Int
+// MARK: - ToString
+@objcMembers class ToString: NSObject, Codable {
+    let toString: Int
 
     enum CodingKeys: String, CodingKey {
-        case typeof = "typeof"
+        case toString = "toString"
     }
 
-    init(typeof: Int) {
-        self.typeof = typeof
+    init(toString: Int) {
+        self.toString = toString
     }
 }
 
-// MARK: Typeof convenience initializers and mutators
+// MARK: ToString convenience initializers and mutators
 
-extension Typeof {
+extension ToString {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Typeof.self, from: data)
-        self.init(typeof: me.typeof)
+        let me = try newJSONDecoder().decode(ToString.self, from: data)
+        self.init(toString: me.toString)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15944,10 +16059,10 @@ extension Typeof {
     }
 
     func with(
-        typeof: Int? = nil
-    ) -> Typeof {
-        return Typeof(
-            typeof: typeof ?? self.typeof
+        toString: Int? = nil
+    ) -> ToString {
+        return ToString(
+            toString: toString ?? self.toString
         )
     }
 
@@ -15960,25 +16075,25 @@ extension Typeof {
     }
 }
 
-// MARK: - Uint
-@objcMembers class Uint: NSObject, Codable {
-    let uint: Int
+// MARK: - TopLevelClass
+@objcMembers class TopLevelClass: NSObject, Codable {
+    let topLevel: Int
 
     enum CodingKeys: String, CodingKey {
-        case uint = "uint"
+        case topLevel = "top_level"
     }
 
-    init(uint: Int) {
-        self.uint = uint
+    init(topLevel: Int) {
+        self.topLevel = topLevel
     }
 }
 
-// MARK: Uint convenience initializers and mutators
+// MARK: TopLevelClass convenience initializers and mutators
 
-extension Uint {
+extension TopLevelClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Uint.self, from: data)
-        self.init(uint: me.uint)
+        let me = try newJSONDecoder().decode(TopLevelClass.self, from: data)
+        self.init(topLevel: me.topLevel)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -15993,10 +16108,10 @@ extension Uint {
     }
 
     func with(
-        uint: Int? = nil
-    ) -> Uint {
-        return Uint(
-            uint: uint ?? self.uint
+        topLevel: Int? = nil
+    ) -> TopLevelClass {
+        return TopLevelClass(
+            topLevel: topLevel ?? self.topLevel
         )
     }
 
@@ -16009,25 +16124,25 @@ extension Uint {
     }
 }
 
-// MARK: - Ulong
-@objcMembers class Ulong: NSObject, Codable {
-    let ulong: Int
+// MARK: - Transient
+@objcMembers class Transient: NSObject, Codable {
+    let transient: Int
 
     enum CodingKeys: String, CodingKey {
-        case ulong = "ulong"
+        case transient = "transient"
     }
 
-    init(ulong: Int) {
-        self.ulong = ulong
+    init(transient: Int) {
+        self.transient = transient
     }
 }
 
-// MARK: Ulong convenience initializers and mutators
+// MARK: Transient convenience initializers and mutators
 
-extension Ulong {
+extension Transient {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Ulong.self, from: data)
-        self.init(ulong: me.ulong)
+        let me = try newJSONDecoder().decode(Transient.self, from: data)
+        self.init(transient: me.transient)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16042,10 +16157,10 @@ extension Ulong {
     }
 
     func with(
-        ulong: Int? = nil
-    ) -> Ulong {
-        return Ulong(
-            ulong: ulong ?? self.ulong
+        transient: Int? = nil
+    ) -> Transient {
+        return Transient(
+            transient: transient ?? self.transient
         )
     }
 
@@ -16058,25 +16173,25 @@ extension Ulong {
     }
 }
 
-// MARK: - Unchecked
-@objcMembers class Unchecked: NSObject, Codable {
-    let unchecked: Int
+// MARK: - TypeClass
+@objcMembers class TypeClass: NSObject, Codable {
+    let type: Int
 
     enum CodingKeys: String, CodingKey {
-        case unchecked = "unchecked"
+        case type = "Type"
     }
 
-    init(unchecked: Int) {
-        self.unchecked = unchecked
+    init(type: Int) {
+        self.type = type
     }
 }
 
-// MARK: Unchecked convenience initializers and mutators
+// MARK: TypeClass convenience initializers and mutators
 
-extension Unchecked {
+extension TypeClass {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Unchecked.self, from: data)
-        self.init(unchecked: me.unchecked)
+        let me = try newJSONDecoder().decode(TypeClass.self, from: data)
+        self.init(type: me.type)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16091,10 +16206,10 @@ extension Unchecked {
     }
 
     func with(
-        unchecked: Int? = nil
-    ) -> Unchecked {
-        return Unchecked(
-            unchecked: unchecked ?? self.unchecked
+        type: Int? = nil
+    ) -> TypeClass {
+        return TypeClass(
+            type: type ?? self.type
         )
     }
 
@@ -16107,25 +16222,25 @@ extension Unchecked {
     }
 }
 
-// MARK: - Undefined
-@objcMembers class Undefined: NSObject, Codable {
-    let undefined: Int
+// MARK: - Typedef
+@objcMembers class Typedef: NSObject, Codable {
+    let typedef: Int
 
     enum CodingKeys: String, CodingKey {
-        case undefined = "undefined"
+        case typedef = "typedef"
     }
 
-    init(undefined: Int) {
-        self.undefined = undefined
+    init(typedef: Int) {
+        self.typedef = typedef
     }
 }
 
-// MARK: Undefined convenience initializers and mutators
+// MARK: Typedef convenience initializers and mutators
 
-extension Undefined {
+extension Typedef {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Undefined.self, from: data)
-        self.init(undefined: me.undefined)
+        let me = try newJSONDecoder().decode(Typedef.self, from: data)
+        self.init(typedef: me.typedef)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16140,10 +16255,10 @@ extension Undefined {
     }
 
     func with(
-        undefined: Int? = nil
-    ) -> Undefined {
-        return Undefined(
-            undefined: undefined ?? self.undefined
+        typedef: Int? = nil
+    ) -> Typedef {
+        return Typedef(
+            typedef: typedef ?? self.typedef
         )
     }
 
@@ -16156,94 +16271,25 @@ extension Undefined {
     }
 }
 
-// MARK: - Obj5
-@objcMembers class Obj5: NSObject, Codable {
-    let dummy: Int
-    let obj5Unowned: Unowned
-    let obj5Var: Var
-    let obj5Weak: Weak
-    let obj5Where: Where
-    let obj5While: While
-    let obj5WillSet: WillSet
-    let union: Union
-    let unsafe: Unsafe
-    let unsigned: Unsigned
-    let ushort: Ushort
-    let using: Using
-    let utf8JSONReader: Utf8JSONReader
-    let utf8JSONWriter: Utf8JSONWriter
-    let uuid: UUIDClass
-    let virtual: Virtual
-    let void: Void
-    let volatile: Volatile
-    let wcharT: WcharT
-    let with: With
-    let xor: Xor
-    let xorEq: XorEq
-    let yes: Yes
-    let yield: Yield
+// MARK: - Typeid
+@objcMembers class Typeid: NSObject, Codable {
+    let typeid: Int
 
     enum CodingKeys: String, CodingKey {
-        case dummy = "dummy"
-        case obj5Unowned = "unowned"
-        case obj5Var = "var"
-        case obj5Weak = "weak"
-        case obj5Where = "where"
-        case obj5While = "while"
-        case obj5WillSet = "willSet"
-        case union = "union"
-        case unsafe = "unsafe"
-        case unsigned = "unsigned"
-        case ushort = "ushort"
-        case using = "using"
-        case utf8JSONReader = "Utf8JsonReader"
-        case utf8JSONWriter = "Utf8JsonWriter"
-        case uuid = "UUID"
-        case virtual = "virtual"
-        case void = "void"
-        case volatile = "volatile"
-        case wcharT = "wchar_t"
-        case with = "with"
-        case xor = "xor"
-        case xorEq = "xor_eq"
-        case yes = "YES"
-        case yield = "yield"
+        case typeid = "typeid"
     }
 
-    init(dummy: Int, obj5Unowned: Unowned, obj5Var: Var, obj5Weak: Weak, obj5Where: Where, obj5While: While, obj5WillSet: WillSet, union: Union, unsafe: Unsafe, unsigned: Unsigned, ushort: Ushort, using: Using, utf8JSONReader: Utf8JSONReader, utf8JSONWriter: Utf8JSONWriter, uuid: UUIDClass, virtual: Virtual, void: Void, volatile: Volatile, wcharT: WcharT, with: With, xor: Xor, xorEq: XorEq, yes: Yes, yield: Yield) {
-        self.dummy = dummy
-        self.obj5Unowned = obj5Unowned
-        self.obj5Var = obj5Var
-        self.obj5Weak = obj5Weak
-        self.obj5Where = obj5Where
-        self.obj5While = obj5While
-        self.obj5WillSet = obj5WillSet
-        self.union = union
-        self.unsafe = unsafe
-        self.unsigned = unsigned
-        self.ushort = ushort
-        self.using = using
-        self.utf8JSONReader = utf8JSONReader
-        self.utf8JSONWriter = utf8JSONWriter
-        self.uuid = uuid
-        self.virtual = virtual
-        self.void = void
-        self.volatile = volatile
-        self.wcharT = wcharT
-        self.with = with
-        self.xor = xor
-        self.xorEq = xorEq
-        self.yes = yes
-        self.yield = yield
+    init(typeid: Int) {
+        self.typeid = typeid
     }
 }
 
-// MARK: Obj5 convenience initializers and mutators
+// MARK: Typeid convenience initializers and mutators
 
-extension Obj5 {
+extension Typeid {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Obj5.self, from: data)
-        self.init(dummy: me.dummy, obj5Unowned: me.obj5Unowned, obj5Var: me.obj5Var, obj5Weak: me.obj5Weak, obj5Where: me.obj5Where, obj5While: me.obj5While, obj5WillSet: me.obj5WillSet, union: me.union, unsafe: me.unsafe, unsigned: me.unsigned, ushort: me.ushort, using: me.using, utf8JSONReader: me.utf8JSONReader, utf8JSONWriter: me.utf8JSONWriter, uuid: me.uuid, virtual: me.virtual, void: me.void, volatile: me.volatile, wcharT: me.wcharT, with: me.with, xor: me.xor, xorEq: me.xorEq, yes: me.yes, yield: me.yield)
+        let me = try newJSONDecoder().decode(Typeid.self, from: data)
+        self.init(typeid: me.typeid)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16258,56 +16304,10 @@ extension Obj5 {
     }
 
     func with(
-        dummy: Int? = nil,
-        obj5Unowned: Unowned? = nil,
-        obj5Var: Var? = nil,
-        obj5Weak: Weak? = nil,
-        obj5Where: Where? = nil,
-        obj5While: While? = nil,
-        obj5WillSet: WillSet? = nil,
-        union: Union? = nil,
-        unsafe: Unsafe? = nil,
-        unsigned: Unsigned? = nil,
-        ushort: Ushort? = nil,
-        using: Using? = nil,
-        utf8JSONReader: Utf8JSONReader? = nil,
-        utf8JSONWriter: Utf8JSONWriter? = nil,
-        uuid: UUIDClass? = nil,
-        virtual: Virtual? = nil,
-        void: Void? = nil,
-        volatile: Volatile? = nil,
-        wcharT: WcharT? = nil,
-        with: With? = nil,
-        xor: Xor? = nil,
-        xorEq: XorEq? = nil,
-        yes: Yes? = nil,
-        yield: Yield? = nil
-    ) -> Obj5 {
-        return Obj5(
-            dummy: dummy ?? self.dummy,
-            obj5Unowned: obj5Unowned ?? self.obj5Unowned,
-            obj5Var: obj5Var ?? self.obj5Var,
-            obj5Weak: obj5Weak ?? self.obj5Weak,
-            obj5Where: obj5Where ?? self.obj5Where,
-            obj5While: obj5While ?? self.obj5While,
-            obj5WillSet: obj5WillSet ?? self.obj5WillSet,
-            union: union ?? self.union,
-            unsafe: unsafe ?? self.unsafe,
-            unsigned: unsigned ?? self.unsigned,
-            ushort: ushort ?? self.ushort,
-            using: using ?? self.using,
-            utf8JSONReader: utf8JSONReader ?? self.utf8JSONReader,
-            utf8JSONWriter: utf8JSONWriter ?? self.utf8JSONWriter,
-            uuid: uuid ?? self.uuid,
-            virtual: virtual ?? self.virtual,
-            void: void ?? self.void,
-            volatile: volatile ?? self.volatile,
-            wcharT: wcharT ?? self.wcharT,
-            with: with ?? self.with,
-            xor: xor ?? self.xor,
-            xorEq: xorEq ?? self.xorEq,
-            yes: yes ?? self.yes,
-            yield: yield ?? self.yield
+        typeid: Int? = nil
+    ) -> Typeid {
+        return Typeid(
+            typeid: typeid ?? self.typeid
         )
     }
 
@@ -16320,25 +16320,25 @@ extension Obj5 {
     }
 }
 
-// MARK: - Unowned
-@objcMembers class Unowned: NSObject, Codable {
-    let unownedUnowned: Int
+// MARK: - Typename
+@objcMembers class Typename: NSObject, Codable {
+    let typename: Int
 
     enum CodingKeys: String, CodingKey {
-        case unownedUnowned = "unowned"
+        case typename = "typename"
     }
 
-    init(unownedUnowned: Int) {
-        self.unownedUnowned = unownedUnowned
+    init(typename: Int) {
+        self.typename = typename
     }
 }
 
-// MARK: Unowned convenience initializers and mutators
+// MARK: Typename convenience initializers and mutators
 
-extension Unowned {
+extension Typename {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Unowned.self, from: data)
-        self.init(unownedUnowned: me.unownedUnowned)
+        let me = try newJSONDecoder().decode(Typename.self, from: data)
+        self.init(typename: me.typename)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16353,10 +16353,10 @@ extension Unowned {
     }
 
     func with(
-        unownedUnowned: Int? = nil
-    ) -> Unowned {
-        return Unowned(
-            unownedUnowned: unownedUnowned ?? self.unownedUnowned
+        typename: Int? = nil
+    ) -> Typename {
+        return Typename(
+            typename: typename ?? self.typename
         )
     }
 
@@ -16369,25 +16369,25 @@ extension Unowned {
     }
 }
 
-// MARK: - Var
-@objcMembers class Var: NSObject, Codable {
-    let varVar: Int
+// MARK: - Typeof
+@objcMembers class Typeof: NSObject, Codable {
+    let typeof: Int
 
     enum CodingKeys: String, CodingKey {
-        case varVar = "var"
+        case typeof = "typeof"
     }
 
-    init(varVar: Int) {
-        self.varVar = varVar
+    init(typeof: Int) {
+        self.typeof = typeof
     }
 }
 
-// MARK: Var convenience initializers and mutators
+// MARK: Typeof convenience initializers and mutators
 
-extension Var {
+extension Typeof {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Var.self, from: data)
-        self.init(varVar: me.varVar)
+        let me = try newJSONDecoder().decode(Typeof.self, from: data)
+        self.init(typeof: me.typeof)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16402,10 +16402,10 @@ extension Var {
     }
 
     func with(
-        varVar: Int? = nil
-    ) -> Var {
-        return Var(
-            varVar: varVar ?? self.varVar
+        typeof: Int? = nil
+    ) -> Typeof {
+        return Typeof(
+            typeof: typeof ?? self.typeof
         )
     }
 
@@ -16418,25 +16418,25 @@ extension Var {
     }
 }
 
-// MARK: - Weak
-@objcMembers class Weak: NSObject, Codable {
-    let weakWeak: Int
+// MARK: - Uint
+@objcMembers class Uint: NSObject, Codable {
+    let uint: Int
 
     enum CodingKeys: String, CodingKey {
-        case weakWeak = "weak"
+        case uint = "uint"
     }
 
-    init(weakWeak: Int) {
-        self.weakWeak = weakWeak
+    init(uint: Int) {
+        self.uint = uint
     }
 }
 
-// MARK: Weak convenience initializers and mutators
+// MARK: Uint convenience initializers and mutators
 
-extension Weak {
+extension Uint {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Weak.self, from: data)
-        self.init(weakWeak: me.weakWeak)
+        let me = try newJSONDecoder().decode(Uint.self, from: data)
+        self.init(uint: me.uint)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16451,10 +16451,10 @@ extension Weak {
     }
 
     func with(
-        weakWeak: Int? = nil
-    ) -> Weak {
-        return Weak(
-            weakWeak: weakWeak ?? self.weakWeak
+        uint: Int? = nil
+    ) -> Uint {
+        return Uint(
+            uint: uint ?? self.uint
         )
     }
 
@@ -16467,25 +16467,25 @@ extension Weak {
     }
 }
 
-// MARK: - Where
-@objcMembers class Where: NSObject, Codable {
-    let whereWhere: Int
+// MARK: - Ulong
+@objcMembers class Ulong: NSObject, Codable {
+    let ulong: Int
 
     enum CodingKeys: String, CodingKey {
-        case whereWhere = "where"
+        case ulong = "ulong"
     }
 
-    init(whereWhere: Int) {
-        self.whereWhere = whereWhere
+    init(ulong: Int) {
+        self.ulong = ulong
     }
 }
 
-// MARK: Where convenience initializers and mutators
+// MARK: Ulong convenience initializers and mutators
 
-extension Where {
+extension Ulong {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(Where.self, from: data)
-        self.init(whereWhere: me.whereWhere)
+        let me = try newJSONDecoder().decode(Ulong.self, from: data)
+        self.init(ulong: me.ulong)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16500,10 +16500,10 @@ extension Where {
     }
 
     func with(
-        whereWhere: Int? = nil
-    ) -> Where {
-        return Where(
-            whereWhere: whereWhere ?? self.whereWhere
+        ulong: Int? = nil
+    ) -> Ulong {
+        return Ulong(
+            ulong: ulong ?? self.ulong
         )
     }
 
@@ -16516,25 +16516,25 @@ extension Where {
     }
 }
 
-// MARK: - While
-@objcMembers class While: NSObject, Codable {
-    let whileWhile: Int
+// MARK: - Unchecked
+@objcMembers class Unchecked: NSObject, Codable {
+    let unchecked: Int
 
     enum CodingKeys: String, CodingKey {
-        case whileWhile = "while"
+        case unchecked = "unchecked"
     }
 
-    init(whileWhile: Int) {
-        self.whileWhile = whileWhile
+    init(unchecked: Int) {
+        self.unchecked = unchecked
     }
 }
 
-// MARK: While convenience initializers and mutators
+// MARK: Unchecked convenience initializers and mutators
 
-extension While {
+extension Unchecked {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(While.self, from: data)
-        self.init(whileWhile: me.whileWhile)
+        let me = try newJSONDecoder().decode(Unchecked.self, from: data)
+        self.init(unchecked: me.unchecked)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16549,10 +16549,10 @@ extension While {
     }
 
     func with(
-        whileWhile: Int? = nil
-    ) -> While {
-        return While(
-            whileWhile: whileWhile ?? self.whileWhile
+        unchecked: Int? = nil
+    ) -> Unchecked {
+        return Unchecked(
+            unchecked: unchecked ?? self.unchecked
         )
     }
 
@@ -16565,25 +16565,25 @@ extension While {
     }
 }
 
-// MARK: - WillSet
-@objcMembers class WillSet: NSObject, Codable {
-    let willSetWillSet: Int
+// MARK: - Undefined
+@objcMembers class Undefined: NSObject, Codable {
+    let undefined: Int
 
     enum CodingKeys: String, CodingKey {
-        case willSetWillSet = "willSet"
+        case undefined = "undefined"
     }
 
-    init(willSetWillSet: Int) {
-        self.willSetWillSet = willSetWillSet
+    init(undefined: Int) {
+        self.undefined = undefined
     }
 }
 
-// MARK: WillSet convenience initializers and mutators
+// MARK: Undefined convenience initializers and mutators
 
-extension WillSet {
+extension Undefined {
     convenience init(data: Data) throws {
-        let me = try newJSONDecoder().decode(WillSet.self, from: data)
-        self.init(willSetWillSet: me.willSetWillSet)
+        let me = try newJSONDecoder().decode(Undefined.self, from: data)
+        self.init(undefined: me.undefined)
     }
 
     convenience init(_ json: String, using encoding: String.Encoding = .utf8) throws {
@@ -16598,10 +16598,10 @@ extension WillSet {
     }
 
     func with(
-        willSetWillSet: Int? = nil
-    ) -> WillSet {
-        return WillSet(
-            willSetWillSet: willSetWillSet ?? self.willSetWillSet
+        undefined: Int? = nil
+    ) -> Undefined {
+        return Undefined(
+            undefined: undefined ?? self.undefined
         )
     }
 
diff --git a/base/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
index 29fbfa4..94c8287 100644
--- a/base/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
@@ -24,8 +24,6 @@ export interface Obj1 {
     DateFormatter:       DateFormatter;
     DateOnly:            DateOnly;
     DateOnlyConverter:   DateOnlyConverter;
-    DateTime:            DateTime;
-    DateTimeStyles:      DateTimeStyles;
     _:                   Empty;
     _Bool:               BoolClass;
     _Complex:            Complex;
@@ -83,11 +81,6 @@ export interface Obj1 {
     converter:           Converter;
     date:                DateClass;
     date_parse_handling: DateParseHandling;
-    debugger:            Debugger;
-    decimal:             Decimal;
-    declare:             Declare;
-    decltype:            Decltype;
-    decode_string:       DecodeString;
     dummy:               number;
 }
 
@@ -119,14 +112,6 @@ export interface DateOnlyConverter {
     DateOnlyConverter: number;
 }
 
-export interface DateTime {
-    DateTime: Date;
-}
-
-export interface DateTimeStyles {
-    DateTimeStyles: number;
-}
-
 export interface Empty {
     _: number;
 }
@@ -355,31 +340,18 @@ export interface DateParseHandling {
     date_parse_handling: number;
 }
 
-export interface Debugger {
-    debugger: number;
-}
-
-export interface Decimal {
-    decimal: number;
-}
-
-export interface Declare {
-    declare: number;
-}
-
-export interface Decltype {
-    decltype: number;
-}
-
-export interface DecodeString {
-    decode_string: number;
-}
-
 export interface Obj2 {
+    DateTime:          DateTime;
+    DateTimeStyles:    DateTimeStyles;
     EnumValues:        EnumValues;
     False:             False;
     FormatException:   FormatException;
     IMP:               Imp;
+    debugger:          Debugger;
+    decimal:           Decimal;
+    declare:           Declare;
+    decltype:          Decltype;
+    decode_string:     DecodeString;
     def:               Def;
     default:           Default;
     defer:             Defer;
@@ -434,17 +406,14 @@ export interface Obj2 {
     if:                If;
     implements:        Implements;
     implicit:          Implicit;
-    import:            Import;
-    in:                In;
-    indirect:          Indirect;
-    infix:             Infix;
-    init:              Init;
-    inline:            Inline;
-    inout:             Inout;
-    instanceof:        Instanceof;
-    int:               Int;
-    interface:         Interface;
-    internal:          Internal;
+}
+
+export interface DateTime {
+    DateTime: Date;
+}
+
+export interface DateTimeStyles {
+    DateTimeStyles: number;
 }
 
 export interface EnumValues {
@@ -465,6 +434,26 @@ export interface Imp {
     IMP: number;
 }
 
+export interface Debugger {
+    debugger: number;
+}
+
+export interface Decimal {
+    decimal: number;
+}
+
+export interface Declare {
+    declare: number;
+}
+
+export interface Decltype {
+    decltype: number;
+}
+
+export interface DecodeString {
+    decode_string: number;
+}
+
 export interface Def {
     def: number;
 }
@@ -677,50 +666,6 @@ export interface Implicit {
     implicit: number;
 }
 
-export interface Import {
-    import: number;
-}
-
-export interface In {
-    in: number;
-}
-
-export interface Indirect {
-    indirect: number;
-}
-
-export interface Infix {
-    infix: number;
-}
-
-export interface Init {
-    init: number;
-}
-
-export interface Inline {
-    inline: number;
-}
-
-export interface Inout {
-    inout: number;
-}
-
-export interface Instanceof {
-    instanceof: number;
-}
-
-export interface Int {
-    int: number;
-}
-
-export interface Interface {
-    interface: number;
-}
-
-export interface Internal {
-    internal: number;
-}
-
 export interface Obj3 {
     IsoDateTimeOffsetConverter: ISODateTimeOffsetConverter;
     JSONAny:                    JSONAny;
@@ -739,13 +684,18 @@ export interface Obj3 {
     NSString:                   NSString;
     NULL:                       Null;
     None:                       None;
-    ObjectMapper:               ObjectMapper;
-    Protocol:                   Protocol;
-    SerializerProvider:         SerializerProvider;
-    SimpleModule:               SimpleModule;
-    StdDeserializer:            StdDeserializer;
-    StdSerializer:              StdSerializer;
     dummy:                      number;
+    import:                     Import;
+    in:                         In;
+    indirect:                   Indirect;
+    infix:                      Infix;
+    init:                       Init;
+    inline:                     Inline;
+    inout:                      Inout;
+    instanceof:                 Instanceof;
+    int:                        Int;
+    interface:                  Interface;
+    internal:                   Internal;
     is:                         Is;
     iterable:                   Iterable;
     jdec:                       Jdec;
@@ -782,31 +732,6 @@ export interface Obj3 {
     not:                        Not;
     not_eq:                     NotEq;
     null:                       NullClass;
-    nullptr:                    Nullptr;
-    number:                     Number;
-    object:                     Object;
-    of:                         Of;
-    oneway:                     Oneway;
-    open:                       Open;
-    operator:                   Operator;
-    optional:                   Optional;
-    or:                         Or;
-    or_eq:                      OrEq;
-    out:                        Out;
-    override:                   Override;
-    package:                    Package;
-    params:                     Params;
-    pass:                       Pass;
-    port:                       Port;
-    postfix:                    Postfix;
-    precedence:                 Precedence;
-    prefix:                     Prefix;
-    print:                      Print;
-    printMembers:               PrintMembers;
-    printf:                     Printf;
-    private:                    Private;
-    protected:                  Protected;
-    protocol:                   ProtocolClass;
 }
 
 export interface ISODateTimeOffsetConverter {
@@ -877,28 +802,48 @@ export interface None {
     None: number;
 }
 
-export interface ObjectMapper {
-    ObjectMapper: number;
+export interface Import {
+    import: number;
 }
 
-export interface Protocol {
-    Protocol: number;
+export interface In {
+    in: number;
 }
 
-export interface SerializerProvider {
-    SerializerProvider: number;
+export interface Indirect {
+    indirect: number;
 }
 
-export interface SimpleModule {
-    SimpleModule: number;
+export interface Infix {
+    infix: number;
 }
 
-export interface StdDeserializer {
-    StdDeserializer: number;
+export interface Init {
+    init: number;
 }
 
-export interface StdSerializer {
-    StdSerializer: number;
+export interface Inline {
+    inline: number;
+}
+
+export interface Inout {
+    inout: number;
+}
+
+export interface Instanceof {
+    instanceof: number;
+}
+
+export interface Int {
+    int: number;
+}
+
+export interface Interface {
+    interface: number;
+}
+
+export interface Internal {
+    internal: number;
 }
 
 export interface Is {
@@ -1045,6 +990,106 @@ export interface NullClass {
     null: number;
 }
 
+export interface Obj4 {
+    ObjectMapper:       ObjectMapper;
+    Protocol:           Protocol;
+    RegExp:             RegExp;
+    SEL:                Sel;
+    Self:               Self;
+    SerializerProvider: SerializerProvider;
+    SimpleModule:       SimpleModule;
+    Standards:          Standards;
+    dummy:              number;
+    nullptr:            Nullptr;
+    number:             Number;
+    object:             Object;
+    of:                 Of;
+    oneway:             Oneway;
+    open:               Open;
+    operator:           Operator;
+    optional:           Optional;
+    or:                 Or;
+    or_eq:              OrEq;
+    out:                Out;
+    override:           Override;
+    package:            Package;
+    params:             Params;
+    pass:               Pass;
+    port:               Port;
+    postfix:            Postfix;
+    precedence:         Precedence;
+    prefix:             Prefix;
+    print:              Print;
+    printMembers:       PrintMembers;
+    printf:             Printf;
+    private:            Private;
+    protected:          Protected;
+    protocol:           ProtocolClass;
+    public:             Public;
+    quicktype:          Quicktype;
+    raise:              Raise;
+    range:              Range;
+    readonly:           Readonly;
+    ref:                Ref;
+    register:           Register;
+    reinterpret_cast:   ReinterpretCast;
+    repeat:             Repeat;
+    require:            Require;
+    required:           Required;
+    requires:           Requires;
+    restrict:           Restrict;
+    retain:             Retain;
+    rethrows:           Rethrows;
+    return:             Return;
+    right:              Right;
+    runtimeType:        RuntimeType;
+    s:                  S;
+    sbyte:              Sbyte;
+    sealed:             Sealed;
+    select:             Select;
+    self:               SelfClass;
+    serialize:          Serialize;
+    set:                Set;
+    short:              Short;
+    signed:             Signed;
+    sizeof:             Sizeof;
+    stackalloc:         Stackalloc;
+    static:             Static;
+    static_assert:      StaticAssert;
+}
+
+export interface ObjectMapper {
+    ObjectMapper: number;
+}
+
+export interface Protocol {
+    Protocol: number;
+}
+
+export interface RegExp {
+    RegExp: string;
+}
+
+export interface Sel {
+    SEL: number;
+}
+
+export interface Self {
+    Self: number;
+}
+
+export interface SerializerProvider {
+    SerializerProvider: number;
+}
+
+export interface SimpleModule {
+    SimpleModule: number;
+}
+
+export interface Standards {
+    Standards: number;
+}
+
 export interface Nullptr {
     nullptr: number;
 }
@@ -1145,113 +1190,6 @@ export interface ProtocolClass {
     protocol: number;
 }
 
-export interface Obj4 {
-    RegExp:            RegExp;
-    SEL:               Sel;
-    Self:              Self;
-    Standards:         Standards;
-    TimeOnly:          TimeOnly;
-    TimeOnlyConverter: TimeOnlyConverter;
-    True:              True;
-    Type:              Type;
-    dummy:             number;
-    public:            Public;
-    quicktype:         Quicktype;
-    raise:             Raise;
-    range:             Range;
-    readonly:          Readonly;
-    ref:               Ref;
-    register:          Register;
-    reinterpret_cast:  ReinterpretCast;
-    repeat:            Repeat;
-    require:           Require;
-    required:          Required;
-    requires:          Requires;
-    restrict:          Restrict;
-    retain:            Retain;
-    rethrows:          Rethrows;
-    return:            Return;
-    right:             Right;
-    runtimeType:       RuntimeType;
-    s:                 S;
-    sbyte:             Sbyte;
-    sealed:            Sealed;
-    select:            Select;
-    self:              SelfClass;
-    serialize:         Serialize;
-    set:               Set;
-    short:             Short;
-    signed:            Signed;
-    sizeof:            Sizeof;
-    stackalloc:        Stackalloc;
-    static:            Static;
-    static_assert:     StaticAssert;
-    static_cast:       StaticCast;
-    strictfp:          Strictfp;
-    string:            String;
-    struct:            Struct;
-    subscript:         Subscript;
-    super:             Super;
-    switch:            Switch;
-    symbol:            Symbol;
-    synchronized:      Synchronized;
-    system:            System;
-    template:          Template;
-    then:              Then;
-    this:              This;
-    thread_local:      ThreadLocal;
-    throw:             Throw;
-    throws:            Throws;
-    toString:          ToString;
-    to_json:           ToJSON;
-    top_level:         TopLevelClass;
-    transient:         Transient;
-    true:              TrueClass;
-    try:               Try;
-    type:              TypeClass;
-    typealias:         Typealias;
-    typedef:           Typedef;
-    typeid:            Typeid;
-    typename:          Typename;
-    typeof:            Typeof;
-    uint:              Uint;
-    ulong:             Ulong;
-    unchecked:         Unchecked;
-    undefined:         Undefined;
-}
-
-export interface RegExp {
-    RegExp: string;
-}
-
-export interface Sel {
-    SEL: number;
-}
-
-export interface Self {
-    Self: number;
-}
-
-export interface Standards {
-    Standards: number;
-}
-
-export interface TimeOnly {
-    TimeOnly: number;
-}
-
-export interface TimeOnlyConverter {
-    TimeOnlyConverter: number;
-}
-
-export interface True {
-    True: number;
-}
-
-export interface Type {
-    Type: number;
-}
-
 export interface Public {
     public: number;
 }
@@ -1376,11 +1314,116 @@ export interface StaticAssert {
     static_assert: number;
 }
 
-export interface StaticCast {
-    static_cast: number;
-}
-
-export interface Strictfp {
+export interface Obj5 {
+    StdDeserializer:   StdDeserializer;
+    StdSerializer:     StdSerializer;
+    TimeOnly:          TimeOnly;
+    TimeOnlyConverter: TimeOnlyConverter;
+    True:              True;
+    Type:              Type;
+    UUID:              UUID;
+    Utf8JsonReader:    Utf8JSONReader;
+    Utf8JsonWriter:    Utf8JSONWriter;
+    YES:               Yes;
+    dummy:             number;
+    static_cast:       StaticCast;
+    strictfp:          Strictfp;
+    string:            String;
+    struct:            Struct;
+    subscript:         Subscript;
+    super:             Super;
+    switch:            Switch;
+    symbol:            Symbol;
+    synchronized:      Synchronized;
+    system:            System;
+    template:          Template;
+    then:              Then;
+    this:              This;
+    thread_local:      ThreadLocal;
+    throw:             Throw;
+    throws:            Throws;
+    toString:          ToString;
+    to_json:           ToJSON;
+    top_level:         TopLevelClass;
+    transient:         Transient;
+    true:              TrueClass;
+    try:               Try;
+    type:              TypeClass;
+    typealias:         Typealias;
+    typedef:           Typedef;
+    typeid:            Typeid;
+    typename:          Typename;
+    typeof:            Typeof;
+    uint:              Uint;
+    ulong:             Ulong;
+    unchecked:         Unchecked;
+    undefined:         Undefined;
+    union:             Union;
+    unowned:           Unowned;
+    unsafe:            Unsafe;
+    unsigned:          Unsigned;
+    ushort:            Ushort;
+    using:             Using;
+    var:               Var;
+    virtual:           Virtual;
+    void:              Void;
+    volatile:          Volatile;
+    wchar_t:           WcharT;
+    weak:              Weak;
+    where:             Where;
+    while:             While;
+    willSet:           WillSet;
+    with:              With;
+    xor:               Xor;
+    xor_eq:            XorEq;
+    yield:             Yield;
+}
+
+export interface StdDeserializer {
+    StdDeserializer: number;
+}
+
+export interface StdSerializer {
+    StdSerializer: number;
+}
+
+export interface TimeOnly {
+    TimeOnly: number;
+}
+
+export interface TimeOnlyConverter {
+    TimeOnlyConverter: number;
+}
+
+export interface True {
+    True: number;
+}
+
+export interface Type {
+    Type: number;
+}
+
+export interface UUID {
+    UUID: number;
+}
+
+export interface Utf8JSONReader {
+    Utf8JsonReader: number;
+}
+
+export interface Utf8JSONWriter {
+    Utf8JsonWriter: number;
+}
+
+export interface Yes {
+    YES: number;
+}
+
+export interface StaticCast {
+    static_cast: number;
+}
+
+export interface Strictfp {
     strictfp: number;
 }
 
@@ -1504,49 +1547,6 @@ export interface Undefined {
     undefined: number;
 }
 
-export interface Obj5 {
-    UUID:           UUID;
-    Utf8JsonReader: Utf8JSONReader;
-    Utf8JsonWriter: Utf8JSONWriter;
-    YES:            Yes;
-    dummy:          number;
-    union:          Union;
-    unowned:        Unowned;
-    unsafe:         Unsafe;
-    unsigned:       Unsigned;
-    ushort:         Ushort;
-    using:          Using;
-    var:            Var;
-    virtual:        Virtual;
-    void:           Void;
-    volatile:       Volatile;
-    wchar_t:        WcharT;
-    weak:           Weak;
-    where:          Where;
-    while:          While;
-    willSet:        WillSet;
-    with:           With;
-    xor:            Xor;
-    xor_eq:         XorEq;
-    yield:          Yield;
-}
-
-export interface UUID {
-    UUID: number;
-}
-
-export interface Utf8JSONReader {
-    Utf8JsonReader: number;
-}
-
-export interface Utf8JSONWriter {
-    Utf8JsonWriter: number;
-}
-
-export interface Yes {
-    YES: number;
-}
-
 export interface Union {
     union: number;
 }
@@ -1827,8 +1827,6 @@ const typeMap: any = {
         { json: "DateFormatter", js: "DateFormatter", typ: r("DateFormatter") },
         { json: "DateOnly", js: "DateOnly", typ: r("DateOnly") },
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: r("DateOnlyConverter") },
-        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "_", js: "_", typ: r("Empty") },
         { json: "_Bool", js: "_Bool", typ: r("BoolClass") },
         { json: "_Complex", js: "_Complex", typ: r("Complex") },
@@ -1886,11 +1884,6 @@ const typeMap: any = {
         { json: "converter", js: "converter", typ: r("Converter") },
         { json: "date", js: "date", typ: r("DateClass") },
         { json: "date_parse_handling", js: "date_parse_handling", typ: r("DateParseHandling") },
-        { json: "debugger", js: "debugger", typ: r("Debugger") },
-        { json: "decimal", js: "decimal", typ: r("Decimal") },
-        { json: "declare", js: "declare", typ: r("Declare") },
-        { json: "decltype", js: "decltype", typ: r("Decltype") },
-        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "dummy", js: "dummy", typ: i(0) },
     ], false),
     "Any": o([
@@ -1914,12 +1907,6 @@ const typeMap: any = {
     "DateOnlyConverter": o([
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: i(0) },
     ], false),
-    "DateTime": o([
-        { json: "DateTime", js: "DateTime", typ: Date },
-    ], false),
-    "DateTimeStyles": o([
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
-    ], false),
     "Empty": o([
         { json: "_", js: "_", typ: i(0) },
     ], false),
@@ -2091,26 +2078,18 @@ const typeMap: any = {
     "DateParseHandling": o([
         { json: "date_parse_handling", js: "date_parse_handling", typ: i(0) },
     ], false),
-    "Debugger": o([
-        { json: "debugger", js: "debugger", typ: i(0) },
-    ], false),
-    "Decimal": o([
-        { json: "decimal", js: "decimal", typ: i(0) },
-    ], false),
-    "Declare": o([
-        { json: "declare", js: "declare", typ: i(0) },
-    ], false),
-    "Decltype": o([
-        { json: "decltype", js: "decltype", typ: i(0) },
-    ], false),
-    "DecodeString": o([
-        { json: "decode_string", js: "decode_string", typ: i(0) },
-    ], false),
     "Obj2": o([
+        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "EnumValues", js: "EnumValues", typ: r("EnumValues") },
         { json: "False", js: "False", typ: r("False") },
         { json: "FormatException", js: "FormatException", typ: r("FormatException") },
         { json: "IMP", js: "IMP", typ: r("Imp") },
+        { json: "debugger", js: "debugger", typ: r("Debugger") },
+        { json: "decimal", js: "decimal", typ: r("Decimal") },
+        { json: "declare", js: "declare", typ: r("Declare") },
+        { json: "decltype", js: "decltype", typ: r("Decltype") },
+        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "def", js: "def", typ: r("Def") },
         { json: "default", js: "default", typ: r("Default") },
         { json: "defer", js: "defer", typ: r("Defer") },
@@ -2165,17 +2144,12 @@ const typeMap: any = {
         { json: "if", js: "if", typ: r("If") },
         { json: "implements", js: "implements", typ: r("Implements") },
         { json: "implicit", js: "implicit", typ: r("Implicit") },
-        { json: "import", js: "import", typ: r("Import") },
-        { json: "in", js: "in", typ: r("In") },
-        { json: "indirect", js: "indirect", typ: r("Indirect") },
-        { json: "infix", js: "infix", typ: r("Infix") },
-        { json: "init", js: "init", typ: r("Init") },
-        { json: "inline", js: "inline", typ: r("Inline") },
-        { json: "inout", js: "inout", typ: r("Inout") },
-        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
-        { json: "int", js: "int", typ: r("Int") },
-        { json: "interface", js: "interface", typ: r("Interface") },
-        { json: "internal", js: "internal", typ: r("Internal") },
+    ], false),
+    "DateTime": o([
+        { json: "DateTime", js: "DateTime", typ: Date },
+    ], false),
+    "DateTimeStyles": o([
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
     ], false),
     "EnumValues": o([
         { json: "EnumValues", js: "EnumValues", typ: a(r("EnumValue")) },
@@ -2189,6 +2163,21 @@ const typeMap: any = {
     "Imp": o([
         { json: "IMP", js: "IMP", typ: i(0) },
     ], false),
+    "Debugger": o([
+        { json: "debugger", js: "debugger", typ: i(0) },
+    ], false),
+    "Decimal": o([
+        { json: "decimal", js: "decimal", typ: i(0) },
+    ], false),
+    "Declare": o([
+        { json: "declare", js: "declare", typ: i(0) },
+    ], false),
+    "Decltype": o([
+        { json: "decltype", js: "decltype", typ: i(0) },
+    ], false),
+    "DecodeString": o([
+        { json: "decode_string", js: "decode_string", typ: i(0) },
+    ], false),
     "Def": o([
         { json: "def", js: "def", typ: i(0) },
     ], false),
@@ -2348,39 +2337,6 @@ const typeMap: any = {
     "Implicit": o([
         { json: "implicit", js: "implicit", typ: i(0) },
     ], false),
-    "Import": o([
-        { json: "import", js: "import", typ: i(0) },
-    ], false),
-    "In": o([
-        { json: "in", js: "in", typ: i(0) },
-    ], false),
-    "Indirect": o([
-        { json: "indirect", js: "indirect", typ: i(0) },
-    ], false),
-    "Infix": o([
-        { json: "infix", js: "infix", typ: i(0) },
-    ], false),
-    "Init": o([
-        { json: "init", js: "init", typ: i(0) },
-    ], false),
-    "Inline": o([
-        { json: "inline", js: "inline", typ: i(0) },
-    ], false),
-    "Inout": o([
-        { json: "inout", js: "inout", typ: i(0) },
-    ], false),
-    "Instanceof": o([
-        { json: "instanceof", js: "instanceof", typ: i(0) },
-    ], false),
-    "Int": o([
-        { json: "int", js: "int", typ: i(0) },
-    ], false),
-    "Interface": o([
-        { json: "interface", js: "interface", typ: i(0) },
-    ], false),
-    "Internal": o([
-        { json: "internal", js: "internal", typ: i(0) },
-    ], false),
     "Obj3": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: r("ISODateTimeOffsetConverter") },
         { json: "JSONAny", js: "JSONAny", typ: r("JSONAny") },
@@ -2399,13 +2355,18 @@ const typeMap: any = {
         { json: "NSString", js: "NSString", typ: r("NSString") },
         { json: "NULL", js: "NULL", typ: r("Null") },
         { json: "None", js: "None", typ: r("None") },
-        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
-        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
-        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
-        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
-        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
-        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
         { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "import", js: "import", typ: r("Import") },
+        { json: "in", js: "in", typ: r("In") },
+        { json: "indirect", js: "indirect", typ: r("Indirect") },
+        { json: "infix", js: "infix", typ: r("Infix") },
+        { json: "init", js: "init", typ: r("Init") },
+        { json: "inline", js: "inline", typ: r("Inline") },
+        { json: "inout", js: "inout", typ: r("Inout") },
+        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
+        { json: "int", js: "int", typ: r("Int") },
+        { json: "interface", js: "interface", typ: r("Interface") },
+        { json: "internal", js: "internal", typ: r("Internal") },
         { json: "is", js: "is", typ: r("Is") },
         { json: "iterable", js: "iterable", typ: r("Iterable") },
         { json: "jdec", js: "jdec", typ: r("Jdec") },
@@ -2442,31 +2403,6 @@ const typeMap: any = {
         { json: "not", js: "not", typ: r("Not") },
         { json: "not_eq", js: "not_eq", typ: r("NotEq") },
         { json: "null", js: "null", typ: r("NullClass") },
-        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
-        { json: "number", js: "number", typ: r("Number") },
-        { json: "object", js: "object", typ: r("Object") },
-        { json: "of", js: "of", typ: r("Of") },
-        { json: "oneway", js: "oneway", typ: r("Oneway") },
-        { json: "open", js: "open", typ: r("Open") },
-        { json: "operator", js: "operator", typ: r("Operator") },
-        { json: "optional", js: "optional", typ: r("Optional") },
-        { json: "or", js: "or", typ: r("Or") },
-        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
-        { json: "out", js: "out", typ: r("Out") },
-        { json: "override", js: "override", typ: r("Override") },
-        { json: "package", js: "package", typ: r("Package") },
-        { json: "params", js: "params", typ: r("Params") },
-        { json: "pass", js: "pass", typ: r("Pass") },
-        { json: "port", js: "port", typ: r("Port") },
-        { json: "postfix", js: "postfix", typ: r("Postfix") },
-        { json: "precedence", js: "precedence", typ: r("Precedence") },
-        { json: "prefix", js: "prefix", typ: r("Prefix") },
-        { json: "print", js: "print", typ: r("Print") },
-        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
-        { json: "printf", js: "printf", typ: r("Printf") },
-        { json: "private", js: "private", typ: r("Private") },
-        { json: "protected", js: "protected", typ: r("Protected") },
-        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
     ], false),
     "ISODateTimeOffsetConverter": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: i(0) },
@@ -2519,23 +2455,38 @@ const typeMap: any = {
     "None": o([
         { json: "None", js: "None", typ: i(0) },
     ], false),
-    "ObjectMapper": o([
-        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    "Import": o([
+        { json: "import", js: "import", typ: i(0) },
     ], false),
-    "Protocol": o([
-        { json: "Protocol", js: "Protocol", typ: i(0) },
+    "In": o([
+        { json: "in", js: "in", typ: i(0) },
     ], false),
-    "SerializerProvider": o([
-        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    "Indirect": o([
+        { json: "indirect", js: "indirect", typ: i(0) },
     ], false),
-    "SimpleModule": o([
-        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    "Infix": o([
+        { json: "infix", js: "infix", typ: i(0) },
     ], false),
-    "StdDeserializer": o([
-        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    "Init": o([
+        { json: "init", js: "init", typ: i(0) },
     ], false),
-    "StdSerializer": o([
-        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    "Inline": o([
+        { json: "inline", js: "inline", typ: i(0) },
+    ], false),
+    "Inout": o([
+        { json: "inout", js: "inout", typ: i(0) },
+    ], false),
+    "Instanceof": o([
+        { json: "instanceof", js: "instanceof", typ: i(0) },
+    ], false),
+    "Int": o([
+        { json: "int", js: "int", typ: i(0) },
+    ], false),
+    "Interface": o([
+        { json: "interface", js: "interface", typ: i(0) },
+    ], false),
+    "Internal": o([
+        { json: "internal", js: "internal", typ: i(0) },
     ], false),
     "Is": o([
         { json: "is", js: "is", typ: i(0) },
@@ -2645,6 +2596,97 @@ const typeMap: any = {
     "NullClass": o([
         { json: "null", js: "null", typ: i(0) },
     ], false),
+    "Obj4": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
+        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
+        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
+        { json: "SEL", js: "SEL", typ: r("Sel") },
+        { json: "Self", js: "Self", typ: r("Self") },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
+        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
+        { json: "Standards", js: "Standards", typ: r("Standards") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
+        { json: "number", js: "number", typ: r("Number") },
+        { json: "object", js: "object", typ: r("Object") },
+        { json: "of", js: "of", typ: r("Of") },
+        { json: "oneway", js: "oneway", typ: r("Oneway") },
+        { json: "open", js: "open", typ: r("Open") },
+        { json: "operator", js: "operator", typ: r("Operator") },
+        { json: "optional", js: "optional", typ: r("Optional") },
+        { json: "or", js: "or", typ: r("Or") },
+        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
+        { json: "out", js: "out", typ: r("Out") },
+        { json: "override", js: "override", typ: r("Override") },
+        { json: "package", js: "package", typ: r("Package") },
+        { json: "params", js: "params", typ: r("Params") },
+        { json: "pass", js: "pass", typ: r("Pass") },
+        { json: "port", js: "port", typ: r("Port") },
+        { json: "postfix", js: "postfix", typ: r("Postfix") },
+        { json: "precedence", js: "precedence", typ: r("Precedence") },
+        { json: "prefix", js: "prefix", typ: r("Prefix") },
+        { json: "print", js: "print", typ: r("Print") },
+        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
+        { json: "printf", js: "printf", typ: r("Printf") },
+        { json: "private", js: "private", typ: r("Private") },
+        { json: "protected", js: "protected", typ: r("Protected") },
+        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
+        { json: "public", js: "public", typ: r("Public") },
+        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
+        { json: "raise", js: "raise", typ: r("Raise") },
+        { json: "range", js: "range", typ: r("Range") },
+        { json: "readonly", js: "readonly", typ: r("Readonly") },
+        { json: "ref", js: "ref", typ: r("Ref") },
+        { json: "register", js: "register", typ: r("Register") },
+        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
+        { json: "repeat", js: "repeat", typ: r("Repeat") },
+        { json: "require", js: "require", typ: r("Require") },
+        { json: "required", js: "required", typ: r("Required") },
+        { json: "requires", js: "requires", typ: r("Requires") },
+        { json: "restrict", js: "restrict", typ: r("Restrict") },
+        { json: "retain", js: "retain", typ: r("Retain") },
+        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
+        { json: "return", js: "return", typ: r("Return") },
+        { json: "right", js: "right", typ: r("Right") },
+        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
+        { json: "s", js: "s", typ: r("S") },
+        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
+        { json: "sealed", js: "sealed", typ: r("Sealed") },
+        { json: "select", js: "select", typ: r("Select") },
+        { json: "self", js: "self", typ: r("SelfClass") },
+        { json: "serialize", js: "serialize", typ: r("Serialize") },
+        { json: "set", js: "set", typ: r("Set") },
+        { json: "short", js: "short", typ: r("Short") },
+        { json: "signed", js: "signed", typ: r("Signed") },
+        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
+        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
+        { json: "static", js: "static", typ: r("Static") },
+        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
+    ], false),
+    "ObjectMapper": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    ], false),
+    "Protocol": o([
+        { json: "Protocol", js: "Protocol", typ: i(0) },
+    ], false),
+    "RegExp": o([
+        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
+    ], false),
+    "Sel": o([
+        { json: "SEL", js: "SEL", typ: i(0) },
+    ], false),
+    "Self": o([
+        { json: "Self", js: "Self", typ: i(0) },
+    ], false),
+    "SerializerProvider": o([
+        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    ], false),
+    "SimpleModule": o([
+        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    ], false),
+    "Standards": o([
+        { json: "Standards", js: "Standards", typ: i(0) },
+    ], false),
     "Nullptr": o([
         { json: "nullptr", js: "nullptr", typ: i(0) },
     ], false),
@@ -2720,104 +2762,6 @@ const typeMap: any = {
     "ProtocolClass": o([
         { json: "protocol", js: "protocol", typ: i(0) },
     ], false),
-    "Obj4": o([
-        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
-        { json: "SEL", js: "SEL", typ: r("Sel") },
-        { json: "Self", js: "Self", typ: r("Self") },
-        { json: "Standards", js: "Standards", typ: r("Standards") },
-        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
-        { json: "True", js: "True", typ: r("True") },
-        { json: "Type", js: "Type", typ: r("Type") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "public", js: "public", typ: r("Public") },
-        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
-        { json: "raise", js: "raise", typ: r("Raise") },
-        { json: "range", js: "range", typ: r("Range") },
-        { json: "readonly", js: "readonly", typ: r("Readonly") },
-        { json: "ref", js: "ref", typ: r("Ref") },
-        { json: "register", js: "register", typ: r("Register") },
-        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
-        { json: "repeat", js: "repeat", typ: r("Repeat") },
-        { json: "require", js: "require", typ: r("Require") },
-        { json: "required", js: "required", typ: r("Required") },
-        { json: "requires", js: "requires", typ: r("Requires") },
-        { json: "restrict", js: "restrict", typ: r("Restrict") },
-        { json: "retain", js: "retain", typ: r("Retain") },
-        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
-        { json: "return", js: "return", typ: r("Return") },
-        { json: "right", js: "right", typ: r("Right") },
-        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
-        { json: "s", js: "s", typ: r("S") },
-        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
-        { json: "sealed", js: "sealed", typ: r("Sealed") },
-        { json: "select", js: "select", typ: r("Select") },
-        { json: "self", js: "self", typ: r("SelfClass") },
-        { json: "serialize", js: "serialize", typ: r("Serialize") },
-        { json: "set", js: "set", typ: r("Set") },
-        { json: "short", js: "short", typ: r("Short") },
-        { json: "signed", js: "signed", typ: r("Signed") },
-        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
-        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
-        { json: "static", js: "static", typ: r("Static") },
-        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
-        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
-        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
-        { json: "string", js: "string", typ: r("String") },
-        { json: "struct", js: "struct", typ: r("Struct") },
-        { json: "subscript", js: "subscript", typ: r("Subscript") },
-        { json: "super", js: "super", typ: r("Super") },
-        { json: "switch", js: "switch", typ: r("Switch") },
-        { json: "symbol", js: "symbol", typ: r("Symbol") },
-        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
-        { json: "system", js: "system", typ: r("System") },
-        { json: "template", js: "template", typ: r("Template") },
-        { json: "then", js: "then", typ: r("Then") },
-        { json: "this", js: "this", typ: r("This") },
-        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
-        { json: "throw", js: "throw", typ: r("Throw") },
-        { json: "throws", js: "throws", typ: r("Throws") },
-        { json: "toString", js: "toString", typ: r("ToString") },
-        { json: "to_json", js: "to_json", typ: r("ToJSON") },
-        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
-        { json: "transient", js: "transient", typ: r("Transient") },
-        { json: "true", js: "true", typ: r("TrueClass") },
-        { json: "try", js: "try", typ: r("Try") },
-        { json: "type", js: "type", typ: r("TypeClass") },
-        { json: "typealias", js: "typealias", typ: r("Typealias") },
-        { json: "typedef", js: "typedef", typ: r("Typedef") },
-        { json: "typeid", js: "typeid", typ: r("Typeid") },
-        { json: "typename", js: "typename", typ: r("Typename") },
-        { json: "typeof", js: "typeof", typ: r("Typeof") },
-        { json: "uint", js: "uint", typ: r("Uint") },
-        { json: "ulong", js: "ulong", typ: r("Ulong") },
-        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
-        { json: "undefined", js: "undefined", typ: r("Undefined") },
-    ], false),
-    "RegExp": o([
-        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
-    ], false),
-    "Sel": o([
-        { json: "SEL", js: "SEL", typ: i(0) },
-    ], false),
-    "Self": o([
-        { json: "Self", js: "Self", typ: i(0) },
-    ], false),
-    "Standards": o([
-        { json: "Standards", js: "Standards", typ: i(0) },
-    ], false),
-    "TimeOnly": o([
-        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
-    ], false),
-    "TimeOnlyConverter": o([
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
-    ], false),
-    "True": o([
-        { json: "True", js: "True", typ: i(0) },
-    ], false),
-    "Type": o([
-        { json: "Type", js: "Type", typ: i(0) },
-    ], false),
     "Public": o([
         { json: "public", js: "public", typ: i(0) },
     ], false),
@@ -2911,6 +2855,100 @@ const typeMap: any = {
     "StaticAssert": o([
         { json: "static_assert", js: "static_assert", typ: i(0) },
     ], false),
+    "Obj5": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
+        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
+        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
+        { json: "True", js: "True", typ: r("True") },
+        { json: "Type", js: "Type", typ: r("Type") },
+        { json: "UUID", js: "UUID", typ: r("UUID") },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
+        { json: "YES", js: "YES", typ: r("Yes") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
+        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
+        { json: "string", js: "string", typ: r("String") },
+        { json: "struct", js: "struct", typ: r("Struct") },
+        { json: "subscript", js: "subscript", typ: r("Subscript") },
+        { json: "super", js: "super", typ: r("Super") },
+        { json: "switch", js: "switch", typ: r("Switch") },
+        { json: "symbol", js: "symbol", typ: r("Symbol") },
+        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
+        { json: "system", js: "system", typ: r("System") },
+        { json: "template", js: "template", typ: r("Template") },
+        { json: "then", js: "then", typ: r("Then") },
+        { json: "this", js: "this", typ: r("This") },
+        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
+        { json: "throw", js: "throw", typ: r("Throw") },
+        { json: "throws", js: "throws", typ: r("Throws") },
+        { json: "toString", js: "toString", typ: r("ToString") },
+        { json: "to_json", js: "to_json", typ: r("ToJSON") },
+        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
+        { json: "transient", js: "transient", typ: r("Transient") },
+        { json: "true", js: "true", typ: r("TrueClass") },
+        { json: "try", js: "try", typ: r("Try") },
+        { json: "type", js: "type", typ: r("TypeClass") },
+        { json: "typealias", js: "typealias", typ: r("Typealias") },
+        { json: "typedef", js: "typedef", typ: r("Typedef") },
+        { json: "typeid", js: "typeid", typ: r("Typeid") },
+        { json: "typename", js: "typename", typ: r("Typename") },
+        { json: "typeof", js: "typeof", typ: r("Typeof") },
+        { json: "uint", js: "uint", typ: r("Uint") },
+        { json: "ulong", js: "ulong", typ: r("Ulong") },
+        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
+        { json: "undefined", js: "undefined", typ: r("Undefined") },
+        { json: "union", js: "union", typ: r("Union") },
+        { json: "unowned", js: "unowned", typ: r("Unowned") },
+        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
+        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
+        { json: "ushort", js: "ushort", typ: r("Ushort") },
+        { json: "using", js: "using", typ: r("Using") },
+        { json: "var", js: "var", typ: r("Var") },
+        { json: "virtual", js: "virtual", typ: r("Virtual") },
+        { json: "void", js: "void", typ: r("Void") },
+        { json: "volatile", js: "volatile", typ: r("Volatile") },
+        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
+        { json: "weak", js: "weak", typ: r("Weak") },
+        { json: "where", js: "where", typ: r("Where") },
+        { json: "while", js: "while", typ: r("While") },
+        { json: "willSet", js: "willSet", typ: r("WillSet") },
+        { json: "with", js: "with", typ: r("With") },
+        { json: "xor", js: "xor", typ: r("Xor") },
+        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
+        { json: "yield", js: "yield", typ: r("Yield") },
+    ], false),
+    "StdDeserializer": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    ], false),
+    "StdSerializer": o([
+        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    ], false),
+    "TimeOnly": o([
+        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
+    ], false),
+    "TimeOnlyConverter": o([
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
+    ], false),
+    "True": o([
+        { json: "True", js: "True", typ: i(0) },
+    ], false),
+    "Type": o([
+        { json: "Type", js: "Type", typ: i(0) },
+    ], false),
+    "UUID": o([
+        { json: "UUID", js: "UUID", typ: i(0) },
+    ], false),
+    "Utf8JSONReader": o([
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
+    ], false),
+    "Utf8JSONWriter": o([
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
+    ], false),
+    "Yes": o([
+        { json: "YES", js: "YES", typ: i(0) },
+    ], false),
     "StaticCast": o([
         { json: "static_cast", js: "static_cast", typ: i(0) },
     ], false),
@@ -3007,44 +3045,6 @@ const typeMap: any = {
     "Undefined": o([
         { json: "undefined", js: "undefined", typ: i(0) },
     ], false),
-    "Obj5": o([
-        { json: "UUID", js: "UUID", typ: r("UUID") },
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
-        { json: "YES", js: "YES", typ: r("Yes") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "union", js: "union", typ: r("Union") },
-        { json: "unowned", js: "unowned", typ: r("Unowned") },
-        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
-        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
-        { json: "ushort", js: "ushort", typ: r("Ushort") },
-        { json: "using", js: "using", typ: r("Using") },
-        { json: "var", js: "var", typ: r("Var") },
-        { json: "virtual", js: "virtual", typ: r("Virtual") },
-        { json: "void", js: "void", typ: r("Void") },
-        { json: "volatile", js: "volatile", typ: r("Volatile") },
-        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
-        { json: "weak", js: "weak", typ: r("Weak") },
-        { json: "where", js: "where", typ: r("Where") },
-        { json: "while", js: "while", typ: r("While") },
-        { json: "willSet", js: "willSet", typ: r("WillSet") },
-        { json: "with", js: "with", typ: r("With") },
-        { json: "xor", js: "xor", typ: r("Xor") },
-        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
-        { json: "yield", js: "yield", typ: r("Yield") },
-    ], false),
-    "UUID": o([
-        { json: "UUID", js: "UUID", typ: i(0) },
-    ], false),
-    "Utf8JSONReader": o([
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
-    ], false),
-    "Utf8JSONWriter": o([
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
-    ], false),
-    "Yes": o([
-        { json: "YES", js: "YES", typ: i(0) },
-    ], false),
     "Union": o([
         { json: "union", js: "union", typ: i(0) },
     ], false),
diff --git a/base/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
index 58a5100..8504416 100644
--- a/base/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -24,8 +24,6 @@ export type Obj1 = {
     DateFormatter:       DateFormatter;
     DateOnly:            DateOnly;
     DateOnlyConverter:   DateOnlyConverter;
-    DateTime:            DateTime;
-    DateTimeStyles:      DateTimeStyles;
     _:                   Empty;
     _Bool:               BoolClass;
     _Complex:            Complex;
@@ -83,11 +81,6 @@ export type Obj1 = {
     converter:           Converter;
     date:                DateClass;
     date_parse_handling: DateParseHandling;
-    debugger:            Debugger;
-    decimal:             Decimal;
-    declare:             Declare;
-    decltype:            Decltype;
-    decode_string:       DecodeString;
     dummy:               number;
 }
 
@@ -119,14 +112,6 @@ export type DateOnlyConverter = {
     DateOnlyConverter: number;
 }
 
-export type DateTime = {
-    DateTime: Date;
-}
-
-export type DateTimeStyles = {
-    DateTimeStyles: number;
-}
-
 export type Empty = {
     _: number;
 }
@@ -355,31 +340,18 @@ export type DateParseHandling = {
     date_parse_handling: number;
 }
 
-export type Debugger = {
-    debugger: number;
-}
-
-export type Decimal = {
-    decimal: number;
-}
-
-export type Declare = {
-    declare: number;
-}
-
-export type Decltype = {
-    decltype: number;
-}
-
-export type DecodeString = {
-    decode_string: number;
-}
-
 export type Obj2 = {
+    DateTime:          DateTime;
+    DateTimeStyles:    DateTimeStyles;
     EnumValues:        EnumValues;
     False:             False;
     FormatException:   FormatException;
     IMP:               Imp;
+    debugger:          Debugger;
+    decimal:           Decimal;
+    declare:           Declare;
+    decltype:          Decltype;
+    decode_string:     DecodeString;
     def:               Def;
     default:           Default;
     defer:             Defer;
@@ -434,17 +406,14 @@ export type Obj2 = {
     if:                If;
     implements:        Implements;
     implicit:          Implicit;
-    import:            Import;
-    in:                In;
-    indirect:          Indirect;
-    infix:             Infix;
-    init:              Init;
-    inline:            Inline;
-    inout:             Inout;
-    instanceof:        Instanceof;
-    int:               Int;
-    interface:         Interface;
-    internal:          Internal;
+}
+
+export type DateTime = {
+    DateTime: Date;
+}
+
+export type DateTimeStyles = {
+    DateTimeStyles: number;
 }
 
 export type EnumValues = {
@@ -465,6 +434,26 @@ export type Imp = {
     IMP: number;
 }
 
+export type Debugger = {
+    debugger: number;
+}
+
+export type Decimal = {
+    decimal: number;
+}
+
+export type Declare = {
+    declare: number;
+}
+
+export type Decltype = {
+    decltype: number;
+}
+
+export type DecodeString = {
+    decode_string: number;
+}
+
 export type Def = {
     def: number;
 }
@@ -677,50 +666,6 @@ export type Implicit = {
     implicit: number;
 }
 
-export type Import = {
-    import: number;
-}
-
-export type In = {
-    in: number;
-}
-
-export type Indirect = {
-    indirect: number;
-}
-
-export type Infix = {
-    infix: number;
-}
-
-export type Init = {
-    init: number;
-}
-
-export type Inline = {
-    inline: number;
-}
-
-export type Inout = {
-    inout: number;
-}
-
-export type Instanceof = {
-    instanceof: number;
-}
-
-export type Int = {
-    int: number;
-}
-
-export type Interface = {
-    interface: number;
-}
-
-export type Internal = {
-    internal: number;
-}
-
 export type Obj3 = {
     IsoDateTimeOffsetConverter: ISODateTimeOffsetConverter;
     JSONAny:                    JSONAny;
@@ -739,13 +684,18 @@ export type Obj3 = {
     NSString:                   NSString;
     NULL:                       Null;
     None:                       None;
-    ObjectMapper:               ObjectMapper;
-    Protocol:                   Protocol;
-    SerializerProvider:         SerializerProvider;
-    SimpleModule:               SimpleModule;
-    StdDeserializer:            StdDeserializer;
-    StdSerializer:              StdSerializer;
     dummy:                      number;
+    import:                     Import;
+    in:                         In;
+    indirect:                   Indirect;
+    infix:                      Infix;
+    init:                       Init;
+    inline:                     Inline;
+    inout:                      Inout;
+    instanceof:                 Instanceof;
+    int:                        Int;
+    interface:                  Interface;
+    internal:                   Internal;
     is:                         Is;
     iterable:                   Iterable;
     jdec:                       Jdec;
@@ -782,31 +732,6 @@ export type Obj3 = {
     not:                        Not;
     not_eq:                     NotEq;
     null:                       NullClass;
-    nullptr:                    Nullptr;
-    number:                     Number;
-    object:                     Object;
-    of:                         Of;
-    oneway:                     Oneway;
-    open:                       Open;
-    operator:                   Operator;
-    optional:                   Optional;
-    or:                         Or;
-    or_eq:                      OrEq;
-    out:                        Out;
-    override:                   Override;
-    package:                    Package;
-    params:                     Params;
-    pass:                       Pass;
-    port:                       Port;
-    postfix:                    Postfix;
-    precedence:                 Precedence;
-    prefix:                     Prefix;
-    print:                      Print;
-    printMembers:               PrintMembers;
-    printf:                     Printf;
-    private:                    Private;
-    protected:                  Protected;
-    protocol:                   ProtocolClass;
 }
 
 export type ISODateTimeOffsetConverter = {
@@ -877,28 +802,48 @@ export type None = {
     None: number;
 }
 
-export type ObjectMapper = {
-    ObjectMapper: number;
+export type Import = {
+    import: number;
 }
 
-export type Protocol = {
-    Protocol: number;
+export type In = {
+    in: number;
 }
 
-export type SerializerProvider = {
-    SerializerProvider: number;
+export type Indirect = {
+    indirect: number;
 }
 
-export type SimpleModule = {
-    SimpleModule: number;
+export type Infix = {
+    infix: number;
 }
 
-export type StdDeserializer = {
-    StdDeserializer: number;
+export type Init = {
+    init: number;
 }
 
-export type StdSerializer = {
-    StdSerializer: number;
+export type Inline = {
+    inline: number;
+}
+
+export type Inout = {
+    inout: number;
+}
+
+export type Instanceof = {
+    instanceof: number;
+}
+
+export type Int = {
+    int: number;
+}
+
+export type Interface = {
+    interface: number;
+}
+
+export type Internal = {
+    internal: number;
 }
 
 export type Is = {
@@ -1045,6 +990,106 @@ export type NullClass = {
     null: number;
 }
 
+export type Obj4 = {
+    ObjectMapper:       ObjectMapper;
+    Protocol:           Protocol;
+    RegExp:             RegExp;
+    SEL:                Sel;
+    Self:               Self;
+    SerializerProvider: SerializerProvider;
+    SimpleModule:       SimpleModule;
+    Standards:          Standards;
+    dummy:              number;
+    nullptr:            Nullptr;
+    number:             Number;
+    object:             Object;
+    of:                 Of;
+    oneway:             Oneway;
+    open:               Open;
+    operator:           Operator;
+    optional:           Optional;
+    or:                 Or;
+    or_eq:              OrEq;
+    out:                Out;
+    override:           Override;
+    package:            Package;
+    params:             Params;
+    pass:               Pass;
+    port:               Port;
+    postfix:            Postfix;
+    precedence:         Precedence;
+    prefix:             Prefix;
+    print:              Print;
+    printMembers:       PrintMembers;
+    printf:             Printf;
+    private:            Private;
+    protected:          Protected;
+    protocol:           ProtocolClass;
+    public:             Public;
+    quicktype:          Quicktype;
+    raise:              Raise;
+    range:              Range;
+    readonly:           Readonly;
+    ref:                Ref;
+    register:           Register;
+    reinterpret_cast:   ReinterpretCast;
+    repeat:             Repeat;
+    require:            Require;
+    required:           Required;
+    requires:           Requires;
+    restrict:           Restrict;
+    retain:             Retain;
+    rethrows:           Rethrows;
+    return:             Return;
+    right:              Right;
+    runtimeType:        RuntimeType;
+    s:                  S;
+    sbyte:              Sbyte;
+    sealed:             Sealed;
+    select:             Select;
+    self:               SelfClass;
+    serialize:          Serialize;
+    set:                Set;
+    short:              Short;
+    signed:             Signed;
+    sizeof:             Sizeof;
+    stackalloc:         Stackalloc;
+    static:             Static;
+    static_assert:      StaticAssert;
+}
+
+export type ObjectMapper = {
+    ObjectMapper: number;
+}
+
+export type Protocol = {
+    Protocol: number;
+}
+
+export type RegExp = {
+    RegExp: string;
+}
+
+export type Sel = {
+    SEL: number;
+}
+
+export type Self = {
+    Self: number;
+}
+
+export type SerializerProvider = {
+    SerializerProvider: number;
+}
+
+export type SimpleModule = {
+    SimpleModule: number;
+}
+
+export type Standards = {
+    Standards: number;
+}
+
 export type Nullptr = {
     nullptr: number;
 }
@@ -1145,113 +1190,6 @@ export type ProtocolClass = {
     protocol: number;
 }
 
-export type Obj4 = {
-    RegExp:            RegExp;
-    SEL:               Sel;
-    Self:              Self;
-    Standards:         Standards;
-    TimeOnly:          TimeOnly;
-    TimeOnlyConverter: TimeOnlyConverter;
-    True:              True;
-    Type:              Type;
-    dummy:             number;
-    public:            Public;
-    quicktype:         Quicktype;
-    raise:             Raise;
-    range:             Range;
-    readonly:          Readonly;
-    ref:               Ref;
-    register:          Register;
-    reinterpret_cast:  ReinterpretCast;
-    repeat:            Repeat;
-    require:           Require;
-    required:          Required;
-    requires:          Requires;
-    restrict:          Restrict;
-    retain:            Retain;
-    rethrows:          Rethrows;
-    return:            Return;
-    right:             Right;
-    runtimeType:       RuntimeType;
-    s:                 S;
-    sbyte:             Sbyte;
-    sealed:            Sealed;
-    select:            Select;
-    self:              SelfClass;
-    serialize:         Serialize;
-    set:               Set;
-    short:             Short;
-    signed:            Signed;
-    sizeof:            Sizeof;
-    stackalloc:        Stackalloc;
-    static:            Static;
-    static_assert:     StaticAssert;
-    static_cast:       StaticCast;
-    strictfp:          Strictfp;
-    string:            String;
-    struct:            Struct;
-    subscript:         Subscript;
-    super:             Super;
-    switch:            Switch;
-    symbol:            Symbol;
-    synchronized:      Synchronized;
-    system:            System;
-    template:          Template;
-    then:              Then;
-    this:              This;
-    thread_local:      ThreadLocal;
-    throw:             Throw;
-    throws:            Throws;
-    toString:          ToString;
-    to_json:           ToJSON;
-    top_level:         TopLevelClass;
-    transient:         Transient;
-    true:              TrueClass;
-    try:               Try;
-    type:              TypeClass;
-    typealias:         Typealias;
-    typedef:           Typedef;
-    typeid:            Typeid;
-    typename:          Typename;
-    typeof:            Typeof;
-    uint:              Uint;
-    ulong:             Ulong;
-    unchecked:         Unchecked;
-    undefined:         Undefined;
-}
-
-export type RegExp = {
-    RegExp: string;
-}
-
-export type Sel = {
-    SEL: number;
-}
-
-export type Self = {
-    Self: number;
-}
-
-export type Standards = {
-    Standards: number;
-}
-
-export type TimeOnly = {
-    TimeOnly: number;
-}
-
-export type TimeOnlyConverter = {
-    TimeOnlyConverter: number;
-}
-
-export type True = {
-    True: number;
-}
-
-export type Type = {
-    Type: number;
-}
-
 export type Public = {
     public: number;
 }
@@ -1376,11 +1314,116 @@ export type StaticAssert = {
     static_assert: number;
 }
 
-export type StaticCast = {
-    static_cast: number;
-}
-
-export type Strictfp = {
+export type Obj5 = {
+    StdDeserializer:   StdDeserializer;
+    StdSerializer:     StdSerializer;
+    TimeOnly:          TimeOnly;
+    TimeOnlyConverter: TimeOnlyConverter;
+    True:              True;
+    Type:              Type;
+    UUID:              UUID;
+    Utf8JsonReader:    Utf8JSONReader;
+    Utf8JsonWriter:    Utf8JSONWriter;
+    YES:               Yes;
+    dummy:             number;
+    static_cast:       StaticCast;
+    strictfp:          Strictfp;
+    string:            String;
+    struct:            Struct;
+    subscript:         Subscript;
+    super:             Super;
+    switch:            Switch;
+    symbol:            Symbol;
+    synchronized:      Synchronized;
+    system:            System;
+    template:          Template;
+    then:              Then;
+    this:              This;
+    thread_local:      ThreadLocal;
+    throw:             Throw;
+    throws:            Throws;
+    toString:          ToString;
+    to_json:           ToJSON;
+    top_level:         TopLevelClass;
+    transient:         Transient;
+    true:              TrueClass;
+    try:               Try;
+    type:              TypeClass;
+    typealias:         Typealias;
+    typedef:           Typedef;
+    typeid:            Typeid;
+    typename:          Typename;
+    typeof:            Typeof;
+    uint:              Uint;
+    ulong:             Ulong;
+    unchecked:         Unchecked;
+    undefined:         Undefined;
+    union:             Union;
+    unowned:           Unowned;
+    unsafe:            Unsafe;
+    unsigned:          Unsigned;
+    ushort:            Ushort;
+    using:             Using;
+    var:               Var;
+    virtual:           Virtual;
+    void:              Void;
+    volatile:          Volatile;
+    wchar_t:           WcharT;
+    weak:              Weak;
+    where:             Where;
+    while:             While;
+    willSet:           WillSet;
+    with:              With;
+    xor:               Xor;
+    xor_eq:            XorEq;
+    yield:             Yield;
+}
+
+export type StdDeserializer = {
+    StdDeserializer: number;
+}
+
+export type StdSerializer = {
+    StdSerializer: number;
+}
+
+export type TimeOnly = {
+    TimeOnly: number;
+}
+
+export type TimeOnlyConverter = {
+    TimeOnlyConverter: number;
+}
+
+export type True = {
+    True: number;
+}
+
+export type Type = {
+    Type: number;
+}
+
+export type UUID = {
+    UUID: number;
+}
+
+export type Utf8JSONReader = {
+    Utf8JsonReader: number;
+}
+
+export type Utf8JSONWriter = {
+    Utf8JsonWriter: number;
+}
+
+export type Yes = {
+    YES: number;
+}
+
+export type StaticCast = {
+    static_cast: number;
+}
+
+export type Strictfp = {
     strictfp: number;
 }
 
@@ -1504,49 +1547,6 @@ export type Undefined = {
     undefined: number;
 }
 
-export type Obj5 = {
-    UUID:           UUID;
-    Utf8JsonReader: Utf8JSONReader;
-    Utf8JsonWriter: Utf8JSONWriter;
-    YES:            Yes;
-    dummy:          number;
-    union:          Union;
-    unowned:        Unowned;
-    unsafe:         Unsafe;
-    unsigned:       Unsigned;
-    ushort:         Ushort;
-    using:          Using;
-    var:            Var;
-    virtual:        Virtual;
-    void:           Void;
-    volatile:       Volatile;
-    wchar_t:        WcharT;
-    weak:           Weak;
-    where:          Where;
-    while:          While;
-    willSet:        WillSet;
-    with:           With;
-    xor:            Xor;
-    xor_eq:         XorEq;
-    yield:          Yield;
-}
-
-export type UUID = {
-    UUID: number;
-}
-
-export type Utf8JSONReader = {
-    Utf8JsonReader: number;
-}
-
-export type Utf8JSONWriter = {
-    Utf8JsonWriter: number;
-}
-
-export type Yes = {
-    YES: number;
-}
-
 export type Union = {
     union: number;
 }
@@ -1827,8 +1827,6 @@ const typeMap: any = {
         { json: "DateFormatter", js: "DateFormatter", typ: r("DateFormatter") },
         { json: "DateOnly", js: "DateOnly", typ: r("DateOnly") },
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: r("DateOnlyConverter") },
-        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "_", js: "_", typ: r("Empty") },
         { json: "_Bool", js: "_Bool", typ: r("BoolClass") },
         { json: "_Complex", js: "_Complex", typ: r("Complex") },
@@ -1886,11 +1884,6 @@ const typeMap: any = {
         { json: "converter", js: "converter", typ: r("Converter") },
         { json: "date", js: "date", typ: r("DateClass") },
         { json: "date_parse_handling", js: "date_parse_handling", typ: r("DateParseHandling") },
-        { json: "debugger", js: "debugger", typ: r("Debugger") },
-        { json: "decimal", js: "decimal", typ: r("Decimal") },
-        { json: "declare", js: "declare", typ: r("Declare") },
-        { json: "decltype", js: "decltype", typ: r("Decltype") },
-        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "dummy", js: "dummy", typ: i(0) },
     ], false),
     "Any": o([
@@ -1914,12 +1907,6 @@ const typeMap: any = {
     "DateOnlyConverter": o([
         { json: "DateOnlyConverter", js: "DateOnlyConverter", typ: i(0) },
     ], false),
-    "DateTime": o([
-        { json: "DateTime", js: "DateTime", typ: Date },
-    ], false),
-    "DateTimeStyles": o([
-        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
-    ], false),
     "Empty": o([
         { json: "_", js: "_", typ: i(0) },
     ], false),
@@ -2091,26 +2078,18 @@ const typeMap: any = {
     "DateParseHandling": o([
         { json: "date_parse_handling", js: "date_parse_handling", typ: i(0) },
     ], false),
-    "Debugger": o([
-        { json: "debugger", js: "debugger", typ: i(0) },
-    ], false),
-    "Decimal": o([
-        { json: "decimal", js: "decimal", typ: i(0) },
-    ], false),
-    "Declare": o([
-        { json: "declare", js: "declare", typ: i(0) },
-    ], false),
-    "Decltype": o([
-        { json: "decltype", js: "decltype", typ: i(0) },
-    ], false),
-    "DecodeString": o([
-        { json: "decode_string", js: "decode_string", typ: i(0) },
-    ], false),
     "Obj2": o([
+        { json: "DateTime", js: "DateTime", typ: r("DateTime") },
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: r("DateTimeStyles") },
         { json: "EnumValues", js: "EnumValues", typ: r("EnumValues") },
         { json: "False", js: "False", typ: r("False") },
         { json: "FormatException", js: "FormatException", typ: r("FormatException") },
         { json: "IMP", js: "IMP", typ: r("Imp") },
+        { json: "debugger", js: "debugger", typ: r("Debugger") },
+        { json: "decimal", js: "decimal", typ: r("Decimal") },
+        { json: "declare", js: "declare", typ: r("Declare") },
+        { json: "decltype", js: "decltype", typ: r("Decltype") },
+        { json: "decode_string", js: "decode_string", typ: r("DecodeString") },
         { json: "def", js: "def", typ: r("Def") },
         { json: "default", js: "default", typ: r("Default") },
         { json: "defer", js: "defer", typ: r("Defer") },
@@ -2165,17 +2144,12 @@ const typeMap: any = {
         { json: "if", js: "if", typ: r("If") },
         { json: "implements", js: "implements", typ: r("Implements") },
         { json: "implicit", js: "implicit", typ: r("Implicit") },
-        { json: "import", js: "import", typ: r("Import") },
-        { json: "in", js: "in", typ: r("In") },
-        { json: "indirect", js: "indirect", typ: r("Indirect") },
-        { json: "infix", js: "infix", typ: r("Infix") },
-        { json: "init", js: "init", typ: r("Init") },
-        { json: "inline", js: "inline", typ: r("Inline") },
-        { json: "inout", js: "inout", typ: r("Inout") },
-        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
-        { json: "int", js: "int", typ: r("Int") },
-        { json: "interface", js: "interface", typ: r("Interface") },
-        { json: "internal", js: "internal", typ: r("Internal") },
+    ], false),
+    "DateTime": o([
+        { json: "DateTime", js: "DateTime", typ: Date },
+    ], false),
+    "DateTimeStyles": o([
+        { json: "DateTimeStyles", js: "DateTimeStyles", typ: i(0) },
     ], false),
     "EnumValues": o([
         { json: "EnumValues", js: "EnumValues", typ: a(r("EnumValue")) },
@@ -2189,6 +2163,21 @@ const typeMap: any = {
     "Imp": o([
         { json: "IMP", js: "IMP", typ: i(0) },
     ], false),
+    "Debugger": o([
+        { json: "debugger", js: "debugger", typ: i(0) },
+    ], false),
+    "Decimal": o([
+        { json: "decimal", js: "decimal", typ: i(0) },
+    ], false),
+    "Declare": o([
+        { json: "declare", js: "declare", typ: i(0) },
+    ], false),
+    "Decltype": o([
+        { json: "decltype", js: "decltype", typ: i(0) },
+    ], false),
+    "DecodeString": o([
+        { json: "decode_string", js: "decode_string", typ: i(0) },
+    ], false),
     "Def": o([
         { json: "def", js: "def", typ: i(0) },
     ], false),
@@ -2348,39 +2337,6 @@ const typeMap: any = {
     "Implicit": o([
         { json: "implicit", js: "implicit", typ: i(0) },
     ], false),
-    "Import": o([
-        { json: "import", js: "import", typ: i(0) },
-    ], false),
-    "In": o([
-        { json: "in", js: "in", typ: i(0) },
-    ], false),
-    "Indirect": o([
-        { json: "indirect", js: "indirect", typ: i(0) },
-    ], false),
-    "Infix": o([
-        { json: "infix", js: "infix", typ: i(0) },
-    ], false),
-    "Init": o([
-        { json: "init", js: "init", typ: i(0) },
-    ], false),
-    "Inline": o([
-        { json: "inline", js: "inline", typ: i(0) },
-    ], false),
-    "Inout": o([
-        { json: "inout", js: "inout", typ: i(0) },
-    ], false),
-    "Instanceof": o([
-        { json: "instanceof", js: "instanceof", typ: i(0) },
-    ], false),
-    "Int": o([
-        { json: "int", js: "int", typ: i(0) },
-    ], false),
-    "Interface": o([
-        { json: "interface", js: "interface", typ: i(0) },
-    ], false),
-    "Internal": o([
-        { json: "internal", js: "internal", typ: i(0) },
-    ], false),
     "Obj3": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: r("ISODateTimeOffsetConverter") },
         { json: "JSONAny", js: "JSONAny", typ: r("JSONAny") },
@@ -2399,13 +2355,18 @@ const typeMap: any = {
         { json: "NSString", js: "NSString", typ: r("NSString") },
         { json: "NULL", js: "NULL", typ: r("Null") },
         { json: "None", js: "None", typ: r("None") },
-        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
-        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
-        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
-        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
-        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
-        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
         { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "import", js: "import", typ: r("Import") },
+        { json: "in", js: "in", typ: r("In") },
+        { json: "indirect", js: "indirect", typ: r("Indirect") },
+        { json: "infix", js: "infix", typ: r("Infix") },
+        { json: "init", js: "init", typ: r("Init") },
+        { json: "inline", js: "inline", typ: r("Inline") },
+        { json: "inout", js: "inout", typ: r("Inout") },
+        { json: "instanceof", js: "instanceof", typ: r("Instanceof") },
+        { json: "int", js: "int", typ: r("Int") },
+        { json: "interface", js: "interface", typ: r("Interface") },
+        { json: "internal", js: "internal", typ: r("Internal") },
         { json: "is", js: "is", typ: r("Is") },
         { json: "iterable", js: "iterable", typ: r("Iterable") },
         { json: "jdec", js: "jdec", typ: r("Jdec") },
@@ -2442,31 +2403,6 @@ const typeMap: any = {
         { json: "not", js: "not", typ: r("Not") },
         { json: "not_eq", js: "not_eq", typ: r("NotEq") },
         { json: "null", js: "null", typ: r("NullClass") },
-        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
-        { json: "number", js: "number", typ: r("Number") },
-        { json: "object", js: "object", typ: r("Object") },
-        { json: "of", js: "of", typ: r("Of") },
-        { json: "oneway", js: "oneway", typ: r("Oneway") },
-        { json: "open", js: "open", typ: r("Open") },
-        { json: "operator", js: "operator", typ: r("Operator") },
-        { json: "optional", js: "optional", typ: r("Optional") },
-        { json: "or", js: "or", typ: r("Or") },
-        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
-        { json: "out", js: "out", typ: r("Out") },
-        { json: "override", js: "override", typ: r("Override") },
-        { json: "package", js: "package", typ: r("Package") },
-        { json: "params", js: "params", typ: r("Params") },
-        { json: "pass", js: "pass", typ: r("Pass") },
-        { json: "port", js: "port", typ: r("Port") },
-        { json: "postfix", js: "postfix", typ: r("Postfix") },
-        { json: "precedence", js: "precedence", typ: r("Precedence") },
-        { json: "prefix", js: "prefix", typ: r("Prefix") },
-        { json: "print", js: "print", typ: r("Print") },
-        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
-        { json: "printf", js: "printf", typ: r("Printf") },
-        { json: "private", js: "private", typ: r("Private") },
-        { json: "protected", js: "protected", typ: r("Protected") },
-        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
     ], false),
     "ISODateTimeOffsetConverter": o([
         { json: "IsoDateTimeOffsetConverter", js: "IsoDateTimeOffsetConverter", typ: i(0) },
@@ -2519,23 +2455,38 @@ const typeMap: any = {
     "None": o([
         { json: "None", js: "None", typ: i(0) },
     ], false),
-    "ObjectMapper": o([
-        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    "Import": o([
+        { json: "import", js: "import", typ: i(0) },
     ], false),
-    "Protocol": o([
-        { json: "Protocol", js: "Protocol", typ: i(0) },
+    "In": o([
+        { json: "in", js: "in", typ: i(0) },
     ], false),
-    "SerializerProvider": o([
-        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    "Indirect": o([
+        { json: "indirect", js: "indirect", typ: i(0) },
     ], false),
-    "SimpleModule": o([
-        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    "Infix": o([
+        { json: "infix", js: "infix", typ: i(0) },
     ], false),
-    "StdDeserializer": o([
-        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    "Init": o([
+        { json: "init", js: "init", typ: i(0) },
     ], false),
-    "StdSerializer": o([
-        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    "Inline": o([
+        { json: "inline", js: "inline", typ: i(0) },
+    ], false),
+    "Inout": o([
+        { json: "inout", js: "inout", typ: i(0) },
+    ], false),
+    "Instanceof": o([
+        { json: "instanceof", js: "instanceof", typ: i(0) },
+    ], false),
+    "Int": o([
+        { json: "int", js: "int", typ: i(0) },
+    ], false),
+    "Interface": o([
+        { json: "interface", js: "interface", typ: i(0) },
+    ], false),
+    "Internal": o([
+        { json: "internal", js: "internal", typ: i(0) },
     ], false),
     "Is": o([
         { json: "is", js: "is", typ: i(0) },
@@ -2645,6 +2596,97 @@ const typeMap: any = {
     "NullClass": o([
         { json: "null", js: "null", typ: i(0) },
     ], false),
+    "Obj4": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: r("ObjectMapper") },
+        { json: "Protocol", js: "Protocol", typ: r("Protocol") },
+        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
+        { json: "SEL", js: "SEL", typ: r("Sel") },
+        { json: "Self", js: "Self", typ: r("Self") },
+        { json: "SerializerProvider", js: "SerializerProvider", typ: r("SerializerProvider") },
+        { json: "SimpleModule", js: "SimpleModule", typ: r("SimpleModule") },
+        { json: "Standards", js: "Standards", typ: r("Standards") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "nullptr", js: "nullptr", typ: r("Nullptr") },
+        { json: "number", js: "number", typ: r("Number") },
+        { json: "object", js: "object", typ: r("Object") },
+        { json: "of", js: "of", typ: r("Of") },
+        { json: "oneway", js: "oneway", typ: r("Oneway") },
+        { json: "open", js: "open", typ: r("Open") },
+        { json: "operator", js: "operator", typ: r("Operator") },
+        { json: "optional", js: "optional", typ: r("Optional") },
+        { json: "or", js: "or", typ: r("Or") },
+        { json: "or_eq", js: "or_eq", typ: r("OrEq") },
+        { json: "out", js: "out", typ: r("Out") },
+        { json: "override", js: "override", typ: r("Override") },
+        { json: "package", js: "package", typ: r("Package") },
+        { json: "params", js: "params", typ: r("Params") },
+        { json: "pass", js: "pass", typ: r("Pass") },
+        { json: "port", js: "port", typ: r("Port") },
+        { json: "postfix", js: "postfix", typ: r("Postfix") },
+        { json: "precedence", js: "precedence", typ: r("Precedence") },
+        { json: "prefix", js: "prefix", typ: r("Prefix") },
+        { json: "print", js: "print", typ: r("Print") },
+        { json: "printMembers", js: "printMembers", typ: r("PrintMembers") },
+        { json: "printf", js: "printf", typ: r("Printf") },
+        { json: "private", js: "private", typ: r("Private") },
+        { json: "protected", js: "protected", typ: r("Protected") },
+        { json: "protocol", js: "protocol", typ: r("ProtocolClass") },
+        { json: "public", js: "public", typ: r("Public") },
+        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
+        { json: "raise", js: "raise", typ: r("Raise") },
+        { json: "range", js: "range", typ: r("Range") },
+        { json: "readonly", js: "readonly", typ: r("Readonly") },
+        { json: "ref", js: "ref", typ: r("Ref") },
+        { json: "register", js: "register", typ: r("Register") },
+        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
+        { json: "repeat", js: "repeat", typ: r("Repeat") },
+        { json: "require", js: "require", typ: r("Require") },
+        { json: "required", js: "required", typ: r("Required") },
+        { json: "requires", js: "requires", typ: r("Requires") },
+        { json: "restrict", js: "restrict", typ: r("Restrict") },
+        { json: "retain", js: "retain", typ: r("Retain") },
+        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
+        { json: "return", js: "return", typ: r("Return") },
+        { json: "right", js: "right", typ: r("Right") },
+        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
+        { json: "s", js: "s", typ: r("S") },
+        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
+        { json: "sealed", js: "sealed", typ: r("Sealed") },
+        { json: "select", js: "select", typ: r("Select") },
+        { json: "self", js: "self", typ: r("SelfClass") },
+        { json: "serialize", js: "serialize", typ: r("Serialize") },
+        { json: "set", js: "set", typ: r("Set") },
+        { json: "short", js: "short", typ: r("Short") },
+        { json: "signed", js: "signed", typ: r("Signed") },
+        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
+        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
+        { json: "static", js: "static", typ: r("Static") },
+        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
+    ], false),
+    "ObjectMapper": o([
+        { json: "ObjectMapper", js: "ObjectMapper", typ: i(0) },
+    ], false),
+    "Protocol": o([
+        { json: "Protocol", js: "Protocol", typ: i(0) },
+    ], false),
+    "RegExp": o([
+        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
+    ], false),
+    "Sel": o([
+        { json: "SEL", js: "SEL", typ: i(0) },
+    ], false),
+    "Self": o([
+        { json: "Self", js: "Self", typ: i(0) },
+    ], false),
+    "SerializerProvider": o([
+        { json: "SerializerProvider", js: "SerializerProvider", typ: i(0) },
+    ], false),
+    "SimpleModule": o([
+        { json: "SimpleModule", js: "SimpleModule", typ: i(0) },
+    ], false),
+    "Standards": o([
+        { json: "Standards", js: "Standards", typ: i(0) },
+    ], false),
     "Nullptr": o([
         { json: "nullptr", js: "nullptr", typ: i(0) },
     ], false),
@@ -2720,104 +2762,6 @@ const typeMap: any = {
     "ProtocolClass": o([
         { json: "protocol", js: "protocol", typ: i(0) },
     ], false),
-    "Obj4": o([
-        { json: "RegExp", js: "RegExp", typ: r("RegExp") },
-        { json: "SEL", js: "SEL", typ: r("Sel") },
-        { json: "Self", js: "Self", typ: r("Self") },
-        { json: "Standards", js: "Standards", typ: r("Standards") },
-        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
-        { json: "True", js: "True", typ: r("True") },
-        { json: "Type", js: "Type", typ: r("Type") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "public", js: "public", typ: r("Public") },
-        { json: "quicktype", js: "quicktype", typ: r("Quicktype") },
-        { json: "raise", js: "raise", typ: r("Raise") },
-        { json: "range", js: "range", typ: r("Range") },
-        { json: "readonly", js: "readonly", typ: r("Readonly") },
-        { json: "ref", js: "ref", typ: r("Ref") },
-        { json: "register", js: "register", typ: r("Register") },
-        { json: "reinterpret_cast", js: "reinterpret_cast", typ: r("ReinterpretCast") },
-        { json: "repeat", js: "repeat", typ: r("Repeat") },
-        { json: "require", js: "require", typ: r("Require") },
-        { json: "required", js: "required", typ: r("Required") },
-        { json: "requires", js: "requires", typ: r("Requires") },
-        { json: "restrict", js: "restrict", typ: r("Restrict") },
-        { json: "retain", js: "retain", typ: r("Retain") },
-        { json: "rethrows", js: "rethrows", typ: r("Rethrows") },
-        { json: "return", js: "return", typ: r("Return") },
-        { json: "right", js: "right", typ: r("Right") },
-        { json: "runtimeType", js: "runtimeType", typ: r("RuntimeType") },
-        { json: "s", js: "s", typ: r("S") },
-        { json: "sbyte", js: "sbyte", typ: r("Sbyte") },
-        { json: "sealed", js: "sealed", typ: r("Sealed") },
-        { json: "select", js: "select", typ: r("Select") },
-        { json: "self", js: "self", typ: r("SelfClass") },
-        { json: "serialize", js: "serialize", typ: r("Serialize") },
-        { json: "set", js: "set", typ: r("Set") },
-        { json: "short", js: "short", typ: r("Short") },
-        { json: "signed", js: "signed", typ: r("Signed") },
-        { json: "sizeof", js: "sizeof", typ: r("Sizeof") },
-        { json: "stackalloc", js: "stackalloc", typ: r("Stackalloc") },
-        { json: "static", js: "static", typ: r("Static") },
-        { json: "static_assert", js: "static_assert", typ: r("StaticAssert") },
-        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
-        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
-        { json: "string", js: "string", typ: r("String") },
-        { json: "struct", js: "struct", typ: r("Struct") },
-        { json: "subscript", js: "subscript", typ: r("Subscript") },
-        { json: "super", js: "super", typ: r("Super") },
-        { json: "switch", js: "switch", typ: r("Switch") },
-        { json: "symbol", js: "symbol", typ: r("Symbol") },
-        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
-        { json: "system", js: "system", typ: r("System") },
-        { json: "template", js: "template", typ: r("Template") },
-        { json: "then", js: "then", typ: r("Then") },
-        { json: "this", js: "this", typ: r("This") },
-        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
-        { json: "throw", js: "throw", typ: r("Throw") },
-        { json: "throws", js: "throws", typ: r("Throws") },
-        { json: "toString", js: "toString", typ: r("ToString") },
-        { json: "to_json", js: "to_json", typ: r("ToJSON") },
-        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
-        { json: "transient", js: "transient", typ: r("Transient") },
-        { json: "true", js: "true", typ: r("TrueClass") },
-        { json: "try", js: "try", typ: r("Try") },
-        { json: "type", js: "type", typ: r("TypeClass") },
-        { json: "typealias", js: "typealias", typ: r("Typealias") },
-        { json: "typedef", js: "typedef", typ: r("Typedef") },
-        { json: "typeid", js: "typeid", typ: r("Typeid") },
-        { json: "typename", js: "typename", typ: r("Typename") },
-        { json: "typeof", js: "typeof", typ: r("Typeof") },
-        { json: "uint", js: "uint", typ: r("Uint") },
-        { json: "ulong", js: "ulong", typ: r("Ulong") },
-        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
-        { json: "undefined", js: "undefined", typ: r("Undefined") },
-    ], false),
-    "RegExp": o([
-        { json: "RegExp", js: "RegExp", typ: { uuid: "" } },
-    ], false),
-    "Sel": o([
-        { json: "SEL", js: "SEL", typ: i(0) },
-    ], false),
-    "Self": o([
-        { json: "Self", js: "Self", typ: i(0) },
-    ], false),
-    "Standards": o([
-        { json: "Standards", js: "Standards", typ: i(0) },
-    ], false),
-    "TimeOnly": o([
-        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
-    ], false),
-    "TimeOnlyConverter": o([
-        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
-    ], false),
-    "True": o([
-        { json: "True", js: "True", typ: i(0) },
-    ], false),
-    "Type": o([
-        { json: "Type", js: "Type", typ: i(0) },
-    ], false),
     "Public": o([
         { json: "public", js: "public", typ: i(0) },
     ], false),
@@ -2911,6 +2855,100 @@ const typeMap: any = {
     "StaticAssert": o([
         { json: "static_assert", js: "static_assert", typ: i(0) },
     ], false),
+    "Obj5": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: r("StdDeserializer") },
+        { json: "StdSerializer", js: "StdSerializer", typ: r("StdSerializer") },
+        { json: "TimeOnly", js: "TimeOnly", typ: r("TimeOnly") },
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: r("TimeOnlyConverter") },
+        { json: "True", js: "True", typ: r("True") },
+        { json: "Type", js: "Type", typ: r("Type") },
+        { json: "UUID", js: "UUID", typ: r("UUID") },
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
+        { json: "YES", js: "YES", typ: r("Yes") },
+        { json: "dummy", js: "dummy", typ: i(0) },
+        { json: "static_cast", js: "static_cast", typ: r("StaticCast") },
+        { json: "strictfp", js: "strictfp", typ: r("Strictfp") },
+        { json: "string", js: "string", typ: r("String") },
+        { json: "struct", js: "struct", typ: r("Struct") },
+        { json: "subscript", js: "subscript", typ: r("Subscript") },
+        { json: "super", js: "super", typ: r("Super") },
+        { json: "switch", js: "switch", typ: r("Switch") },
+        { json: "symbol", js: "symbol", typ: r("Symbol") },
+        { json: "synchronized", js: "synchronized", typ: r("Synchronized") },
+        { json: "system", js: "system", typ: r("System") },
+        { json: "template", js: "template", typ: r("Template") },
+        { json: "then", js: "then", typ: r("Then") },
+        { json: "this", js: "this", typ: r("This") },
+        { json: "thread_local", js: "thread_local", typ: r("ThreadLocal") },
+        { json: "throw", js: "throw", typ: r("Throw") },
+        { json: "throws", js: "throws", typ: r("Throws") },
+        { json: "toString", js: "toString", typ: r("ToString") },
+        { json: "to_json", js: "to_json", typ: r("ToJSON") },
+        { json: "top_level", js: "top_level", typ: r("TopLevelClass") },
+        { json: "transient", js: "transient", typ: r("Transient") },
+        { json: "true", js: "true", typ: r("TrueClass") },
+        { json: "try", js: "try", typ: r("Try") },
+        { json: "type", js: "type", typ: r("TypeClass") },
+        { json: "typealias", js: "typealias", typ: r("Typealias") },
+        { json: "typedef", js: "typedef", typ: r("Typedef") },
+        { json: "typeid", js: "typeid", typ: r("Typeid") },
+        { json: "typename", js: "typename", typ: r("Typename") },
+        { json: "typeof", js: "typeof", typ: r("Typeof") },
+        { json: "uint", js: "uint", typ: r("Uint") },
+        { json: "ulong", js: "ulong", typ: r("Ulong") },
+        { json: "unchecked", js: "unchecked", typ: r("Unchecked") },
+        { json: "undefined", js: "undefined", typ: r("Undefined") },
+        { json: "union", js: "union", typ: r("Union") },
+        { json: "unowned", js: "unowned", typ: r("Unowned") },
+        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
+        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
+        { json: "ushort", js: "ushort", typ: r("Ushort") },
+        { json: "using", js: "using", typ: r("Using") },
+        { json: "var", js: "var", typ: r("Var") },
+        { json: "virtual", js: "virtual", typ: r("Virtual") },
+        { json: "void", js: "void", typ: r("Void") },
+        { json: "volatile", js: "volatile", typ: r("Volatile") },
+        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
+        { json: "weak", js: "weak", typ: r("Weak") },
+        { json: "where", js: "where", typ: r("Where") },
+        { json: "while", js: "while", typ: r("While") },
+        { json: "willSet", js: "willSet", typ: r("WillSet") },
+        { json: "with", js: "with", typ: r("With") },
+        { json: "xor", js: "xor", typ: r("Xor") },
+        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
+        { json: "yield", js: "yield", typ: r("Yield") },
+    ], false),
+    "StdDeserializer": o([
+        { json: "StdDeserializer", js: "StdDeserializer", typ: i(0) },
+    ], false),
+    "StdSerializer": o([
+        { json: "StdSerializer", js: "StdSerializer", typ: i(0) },
+    ], false),
+    "TimeOnly": o([
+        { json: "TimeOnly", js: "TimeOnly", typ: i(0) },
+    ], false),
+    "TimeOnlyConverter": o([
+        { json: "TimeOnlyConverter", js: "TimeOnlyConverter", typ: i(0) },
+    ], false),
+    "True": o([
+        { json: "True", js: "True", typ: i(0) },
+    ], false),
+    "Type": o([
+        { json: "Type", js: "Type", typ: i(0) },
+    ], false),
+    "UUID": o([
+        { json: "UUID", js: "UUID", typ: i(0) },
+    ], false),
+    "Utf8JSONReader": o([
+        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
+    ], false),
+    "Utf8JSONWriter": o([
+        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
+    ], false),
+    "Yes": o([
+        { json: "YES", js: "YES", typ: i(0) },
+    ], false),
     "StaticCast": o([
         { json: "static_cast", js: "static_cast", typ: i(0) },
     ], false),
@@ -3007,44 +3045,6 @@ const typeMap: any = {
     "Undefined": o([
         { json: "undefined", js: "undefined", typ: i(0) },
     ], false),
-    "Obj5": o([
-        { json: "UUID", js: "UUID", typ: r("UUID") },
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: r("Utf8JSONReader") },
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: r("Utf8JSONWriter") },
-        { json: "YES", js: "YES", typ: r("Yes") },
-        { json: "dummy", js: "dummy", typ: i(0) },
-        { json: "union", js: "union", typ: r("Union") },
-        { json: "unowned", js: "unowned", typ: r("Unowned") },
-        { json: "unsafe", js: "unsafe", typ: r("Unsafe") },
-        { json: "unsigned", js: "unsigned", typ: r("Unsigned") },
-        { json: "ushort", js: "ushort", typ: r("Ushort") },
-        { json: "using", js: "using", typ: r("Using") },
-        { json: "var", js: "var", typ: r("Var") },
-        { json: "virtual", js: "virtual", typ: r("Virtual") },
-        { json: "void", js: "void", typ: r("Void") },
-        { json: "volatile", js: "volatile", typ: r("Volatile") },
-        { json: "wchar_t", js: "wchar_t", typ: r("WcharT") },
-        { json: "weak", js: "weak", typ: r("Weak") },
-        { json: "where", js: "where", typ: r("Where") },
-        { json: "while", js: "while", typ: r("While") },
-        { json: "willSet", js: "willSet", typ: r("WillSet") },
-        { json: "with", js: "with", typ: r("With") },
-        { json: "xor", js: "xor", typ: r("Xor") },
-        { json: "xor_eq", js: "xor_eq", typ: r("XorEq") },
-        { json: "yield", js: "yield", typ: r("Yield") },
-    ], false),
-    "UUID": o([
-        { json: "UUID", js: "UUID", typ: i(0) },
-    ], false),
-    "Utf8JSONReader": o([
-        { json: "Utf8JsonReader", js: "Utf8JsonReader", typ: i(0) },
-    ], false),
-    "Utf8JSONWriter": o([
-        { json: "Utf8JsonWriter", js: "Utf8JsonWriter", typ: i(0) },
-    ], false),
-    "Yes": o([
-        { json: "YES", js: "YES", typ: i(0) },
-    ], false),
     "Union": o([
         { json: "union", js: "union", typ: i(0) },
     ], false),
diff --git a/base/typescript-effect-schema/test/inputs/json/priority/keywords.json/default/TopLevel.ts b/head/typescript-effect-schema/test/inputs/json/priority/keywords.json/default/TopLevel.ts
index 40b8719..b768c46 100644
--- a/base/typescript-effect-schema/test/inputs/json/priority/keywords.json/default/TopLevel.ts
+++ b/head/typescript-effect-schema/test/inputs/json/priority/keywords.json/default/TopLevel.ts
@@ -99,33 +99,6 @@ export class Union extends S.Class<Union>("Union")({
     "union": S.Int,
 }) {}
 
-export class Obj5 extends S.Class<Obj5>("Obj5")({
-    "dummy": S.Int,
-    "union": Union,
-    "unowned": Unowned,
-    "unsafe": Unsafe,
-    "unsigned": Unsigned,
-    "ushort": Ushort,
-    "using": Using,
-    "Utf8JsonReader": Utf8JsonReader,
-    "Utf8JsonWriter": Utf8JsonWriter,
-    "UUID": Uuid,
-    "var": Var,
-    "virtual": Virtual,
-    "void": Void,
-    "volatile": Volatile,
-    "wchar_t": WcharT,
-    "weak": Weak,
-    "where": Where,
-    "while": While,
-    "willSet": WillSet,
-    "with": With,
-    "xor": Xor,
-    "xor_eq": XorEq,
-    "YES": Yes,
-    "yield": Yield,
-}) {}
-
 export class Undefined extends S.Class<Undefined>("Undefined")({
     "undefined": S.Int,
 }) {}
@@ -259,10 +232,92 @@ export class Strictfp extends S.Class<Strictfp>("Strictfp")({
     "strictfp": S.Int,
 }) {}
 
+export class StdSerializer extends S.Class<StdSerializer>("StdSerializer")({
+    "StdSerializer": S.Int,
+}) {}
+
+export class StdDeserializer extends S.Class<StdDeserializer>("StdDeserializer")({
+    "StdDeserializer": S.Int,
+}) {}
+
 export class StaticCast extends S.Class<StaticCast>("StaticCast")({
     "static_cast": S.Int,
 }) {}
 
+export class TypeClass extends S.Class<TypeClass>("TypeClass")({
+    "type": S.Int,
+}) {}
+
+export class TrueClass extends S.Class<TrueClass>("TrueClass")({
+    "true": S.Int,
+}) {}
+
+export class Obj5 extends S.Class<Obj5>("Obj5")({
+    "dummy": S.Int,
+    "true": TrueClass,
+    "type": TypeClass,
+    "static_cast": StaticCast,
+    "StdDeserializer": StdDeserializer,
+    "StdSerializer": StdSerializer,
+    "strictfp": Strictfp,
+    "string": StringClass,
+    "struct": Struct,
+    "subscript": Subscript,
+    "super": Super,
+    "switch": Switch,
+    "symbol": Symbol,
+    "synchronized": Synchronized,
+    "system": System,
+    "template": Template,
+    "then": Then,
+    "this": This,
+    "thread_local": ThreadLocal,
+    "throw": Throw,
+    "throws": Throws,
+    "TimeOnly": TimeOnly,
+    "TimeOnlyConverter": TimeOnlyConverter,
+    "to_json": ToJson,
+    "toString": ToString,
+    "top_level": TopLevelClass,
+    "transient": Transient,
+    "True": True,
+    "try": Try,
+    "Type": Type,
+    "typealias": Typealias,
+    "typedef": Typedef,
+    "typeid": Typeid,
+    "typename": Typename,
+    "typeof": Typeof,
+    "uint": Uint,
+    "ulong": Ulong,
+    "unchecked": Unchecked,
+    "undefined": Undefined,
+    "union": Union,
+    "unowned": Unowned,
+    "unsafe": Unsafe,
+    "unsigned": Unsigned,
+    "ushort": Ushort,
+    "using": Using,
+    "Utf8JsonReader": Utf8JsonReader,
+    "Utf8JsonWriter": Utf8JsonWriter,
+    "UUID": Uuid,
+    "var": Var,
+    "virtual": Virtual,
+    "void": Void,
+    "volatile": Volatile,
+    "wchar_t": WcharT,
+    "weak": Weak,
+    "where": Where,
+    "while": While,
+    "willSet": WillSet,
+    "with": With,
+    "xor": Xor,
+    "xor_eq": XorEq,
+    "YES": Yes,
+    "yield": Yield,
+}) {}
+Object.defineProperty(Obj5.prototype, "toString", { writable: true });
+
 export class StaticAssert extends S.Class<StaticAssert>("StaticAssert")({
     "static_assert": S.Int,
 }) {}
@@ -283,6 +338,10 @@ export class Sizeof extends S.Class<Sizeof>("Sizeof")({
     "sizeof": S.Int,
 }) {}
 
+export class SimpleModule extends S.Class<SimpleModule>("SimpleModule")({
+    "SimpleModule": S.Int,
+}) {}
+
 export class Signed extends S.Class<Signed>("Signed")({
     "signed": S.Int,
 }) {}
@@ -295,6 +354,10 @@ export class Set extends S.Class<Set>("Set")({
     "set": S.Int,
 }) {}
 
+export class SerializerProvider extends S.Class<SerializerProvider>("SerializerProvider")({
+    "SerializerProvider": S.Int,
+}) {}
+
 export class Serialize extends S.Class<Serialize>("Serialize")({
     "serialize": S.Int,
 }) {}
@@ -399,110 +462,6 @@ export class Public extends S.Class<Public>("Public")({
     "public": S.Int,
 }) {}
 
-export class TypeClass extends S.Class<TypeClass>("TypeClass")({
-    "type": S.Int,
-}) {}
-
-export class TrueClass extends S.Class<TrueClass>("TrueClass")({
-    "true": S.Int,
-}) {}
-
-export class SelfClass extends S.Class<SelfClass>("SelfClass")({
-    "self": S.Int,
-}) {}
-
-export class Obj4 extends S.Class<Obj4>("Obj4")({
-    "dummy": S.Int,
-    "self": SelfClass,
-    "true": TrueClass,
-    "type": TypeClass,
-    "public": Public,
-    "quicktype": Quicktype,
-    "raise": Raise,
-    "range": Range,
-    "readonly": Readonly,
-    "ref": Ref,
-    "RegExp": RegExp,
-    "register": Register,
-    "reinterpret_cast": ReinterpretCast,
-    "repeat": Repeat,
-    "require": Require,
-    "required": Required,
-    "requires": Requires,
-    "restrict": Restrict,
-    "retain": Retain,
-    "rethrows": Rethrows,
-    "return": Return,
-    "right": Right,
-    "runtimeType": RuntimeType,
-    "s": SClass,
-    "sbyte": Sbyte,
-    "sealed": Sealed,
-    "SEL": Sel,
-    "select": Select,
-    "Self": Self,
-    "serialize": Serialize,
-    "set": Set,
-    "short": Short,
-    "signed": Signed,
-    "sizeof": Sizeof,
-    "stackalloc": Stackalloc,
-    "Standards": Standards,
-    "static": Static,
-    "static_assert": StaticAssert,
-    "static_cast": StaticCast,
-    "strictfp": Strictfp,
-    "string": StringClass,
-    "struct": Struct,
-    "subscript": Subscript,
-    "super": Super,
-    "switch": Switch,
-    "symbol": Symbol,
-    "synchronized": Synchronized,
-    "system": System,
-    "template": Template,
-    "then": Then,
-    "this": This,
-    "thread_local": ThreadLocal,
-    "throw": Throw,
-    "throws": Throws,
-    "TimeOnly": TimeOnly,
-    "TimeOnlyConverter": TimeOnlyConverter,
-    "to_json": ToJson,
-    "toString": ToString,
-    "top_level": TopLevelClass,
-    "transient": Transient,
-    "True": True,
-    "try": Try,
-    "Type": Type,
-    "typealias": Typealias,
-    "typedef": Typedef,
-    "typeid": Typeid,
-    "typename": Typename,
-    "typeof": Typeof,
-    "uint": Uint,
-    "ulong": Ulong,
-    "unchecked": Unchecked,
-    "undefined": Undefined,
-}) {}
-Object.defineProperty(Obj4.prototype, "toString", { writable: true });
-
-export class StdSerializer extends S.Class<StdSerializer>("StdSerializer")({
-    "StdSerializer": S.Int,
-}) {}
-
-export class StdDeserializer extends S.Class<StdDeserializer>("StdDeserializer")({
-    "StdDeserializer": S.Int,
-}) {}
-
-export class SimpleModule extends S.Class<SimpleModule>("SimpleModule")({
-    "SimpleModule": S.Int,
-}) {}
-
-export class SerializerProvider extends S.Class<SerializerProvider>("SerializerProvider")({
-    "SerializerProvider": S.Int,
-}) {}
-
 export class Protocol extends S.Class<Protocol>("Protocol")({
     "Protocol": S.Int,
 }) {}
@@ -599,10 +558,90 @@ export class ObjectClass extends S.Class<ObjectClass>("ObjectClass")({
     "object": S.Int,
 }) {}
 
+export class SelfClass extends S.Class<SelfClass>("SelfClass")({
+    "self": S.Int,
+}) {}
+
 export class ProtocolClass extends S.Class<ProtocolClass>("ProtocolClass")({
     "protocol": S.Int,
 }) {}
 
+export class Number extends S.Class<Number>("Number")({
+    "number": S.Int,
+}) {}
+
+export class Nullptr extends S.Class<Nullptr>("Nullptr")({
+    "nullptr": S.Int,
+}) {}
+
+export class Obj4 extends S.Class<Obj4>("Obj4")({
+    "dummy": S.Int,
+    "nullptr": Nullptr,
+    "number": Number,
+    "protocol": ProtocolClass,
+    "self": SelfClass,
+    "object": ObjectClass,
+    "ObjectMapper": ObjectMapper,
+    "of": Of,
+    "oneway": Oneway,
+    "open": Open,
+    "operator": Operator,
+    "optional": Optional,
+    "or": Or,
+    "or_eq": OrEq,
+    "out": Out,
+    "override": Override,
+    "package": Package,
+    "params": Params,
+    "pass": Pass,
+    "port": Port,
+    "postfix": Postfix,
+    "precedence": Precedence,
+    "prefix": Prefix,
+    "print": Print,
+    "printMembers": PrintMembers,
+    "printf": Printf,
+    "private": Private,
+    "protected": Protected,
+    "Protocol": Protocol,
+    "public": Public,
+    "quicktype": Quicktype,
+    "raise": Raise,
+    "range": Range,
+    "readonly": Readonly,
+    "ref": Ref,
+    "RegExp": RegExp,
+    "register": Register,
+    "reinterpret_cast": ReinterpretCast,
+    "repeat": Repeat,
+    "require": Require,
+    "required": Required,
+    "requires": Requires,
+    "restrict": Restrict,
+    "retain": Retain,
+    "rethrows": Rethrows,
+    "return": Return,
+    "right": Right,
+    "runtimeType": RuntimeType,
+    "s": SClass,
+    "sbyte": Sbyte,
+    "sealed": Sealed,
+    "SEL": Sel,
+    "select": Select,
+    "Self": Self,
+    "serialize": Serialize,
+    "SerializerProvider": SerializerProvider,
+    "set": Set,
+    "short": Short,
+    "signed": Signed,
+    "SimpleModule": SimpleModule,
+    "sizeof": Sizeof,
+    "stackalloc": Stackalloc,
+    "Standards": Standards,
+    "static": Static,
+    "static_assert": StaticAssert,
+}) {}
+
 export class NullClass extends S.Class<NullClass>("NullClass")({
     "null": S.Int,
 }) {}
@@ -611,14 +650,6 @@ export class NoneClass extends S.Class<NoneClass>("NoneClass")({
     "none": S.Int,
 }) {}
 
-export class Number extends S.Class<Number>("Number")({
-    "number": S.Int,
-}) {}
-
-export class Nullptr extends S.Class<Nullptr>("Nullptr")({
-    "nullptr": S.Int,
-}) {}
-
 export class Null extends S.Class<Null>("Null")({
     "NULL": S.Int,
 }) {}
@@ -823,8 +854,63 @@ export class Is extends S.Class<Is>("Is")({
     "is": S.Int,
 }) {}
 
+export class Internal extends S.Class<Internal>("Internal")({
+    "internal": S.Int,
+}) {}
+
+export class Interface extends S.Class<Interface>("Interface")({
+    "interface": S.Int,
+}) {}
+
+export class Int extends S.Class<Int>("Int")({
+    "int": S.Int,
+}) {}
+
+export class Instanceof extends S.Class<Instanceof>("Instanceof")({
+    "instanceof": S.Int,
+}) {}
+
+export class Inout extends S.Class<Inout>("Inout")({
+    "inout": S.Int,
+}) {}
+
+export class Inline extends S.Class<Inline>("Inline")({
+    "inline": S.Int,
+}) {}
+
+export class Init extends S.Class<Init>("Init")({
+    "init": S.Int,
+}) {}
+
+export class Infix extends S.Class<Infix>("Infix")({
+    "infix": S.Int,
+}) {}
+
+export class Indirect extends S.Class<Indirect>("Indirect")({
+    "indirect": S.Int,
+}) {}
+
+export class In extends S.Class<In>("In")({
+    "in": S.Int,
+}) {}
+
+export class Import extends S.Class<Import>("Import")({
+    "import": S.Int,
+}) {}
+
 export class Obj3 extends S.Class<Obj3>("Obj3")({
     "dummy": S.Int,
+    "import": Import,
+    "in": In,
+    "indirect": Indirect,
+    "infix": Infix,
+    "init": Init,
+    "inline": Inline,
+    "inout": Inout,
+    "instanceof": Instanceof,
+    "int": Int,
+    "interface": Interface,
+    "internal": Internal,
     "is": Is,
     "IsoDateTimeOffsetConverter": IsoDateTimeOffsetConverter,
     "iterable": Iterable,
@@ -876,89 +962,14 @@ export class Obj3 extends S.Class<Obj3>("Obj3")({
     "NSError": NsError,
     "NSString": NsString,
     "NULL": Null,
-    "nullptr": Nullptr,
-    "number": Number,
     "none": NoneClass,
     "null": NullClass,
-    "protocol": ProtocolClass,
-    "object": ObjectClass,
-    "ObjectMapper": ObjectMapper,
-    "of": Of,
-    "oneway": Oneway,
-    "open": Open,
-    "operator": Operator,
-    "optional": Optional,
-    "or": Or,
-    "or_eq": OrEq,
-    "out": Out,
-    "override": Override,
-    "package": Package,
-    "params": Params,
-    "pass": Pass,
-    "port": Port,
-    "postfix": Postfix,
-    "precedence": Precedence,
-    "prefix": Prefix,
-    "print": Print,
-    "printMembers": PrintMembers,
-    "printf": Printf,
-    "private": Private,
-    "protected": Protected,
-    "Protocol": Protocol,
-    "SerializerProvider": SerializerProvider,
-    "SimpleModule": SimpleModule,
-    "StdDeserializer": StdDeserializer,
-    "StdSerializer": StdSerializer,
 }) {}
 
 export class FalseClass extends S.Class<FalseClass>("FalseClass")({
     "false": S.Int,
 }) {}
 
-export class Internal extends S.Class<Internal>("Internal")({
-    "internal": S.Int,
-}) {}
-
-export class Interface extends S.Class<Interface>("Interface")({
-    "interface": S.Int,
-}) {}
-
-export class Int extends S.Class<Int>("Int")({
-    "int": S.Int,
-}) {}
-
-export class Instanceof extends S.Class<Instanceof>("Instanceof")({
-    "instanceof": S.Int,
-}) {}
-
-export class Inout extends S.Class<Inout>("Inout")({
-    "inout": S.Int,
-}) {}
-
-export class Inline extends S.Class<Inline>("Inline")({
-    "inline": S.Int,
-}) {}
-
-export class Init extends S.Class<Init>("Init")({
-    "init": S.Int,
-}) {}
-
-export class Infix extends S.Class<Infix>("Infix")({
-    "infix": S.Int,
-}) {}
-
-export class Indirect extends S.Class<Indirect>("Indirect")({
-    "indirect": S.Int,
-}) {}
-
-export class In extends S.Class<In>("In")({
-    "in": S.Int,
-}) {}
-
-export class Import extends S.Class<Import>("Import")({
-    "import": S.Int,
-}) {}
-
 export class Implicit extends S.Class<Implicit>("Implicit")({
     "implicit": S.Int,
 }) {}
@@ -1183,7 +1194,42 @@ export class Def extends S.Class<Def>("Def")({
     "def": S.Int,
 }) {}
 
+export class DecodeString extends S.Class<DecodeString>("DecodeString")({
+    "decode_string": S.Int,
+}) {}
+
+export class Decltype extends S.Class<Decltype>("Decltype")({
+    "decltype": S.Int,
+}) {}
+
+export class Declare extends S.Class<Declare>("Declare")({
+    "declare": S.Int,
+}) {}
+
+export class Decimal extends S.Class<Decimal>("Decimal")({
+    "decimal": S.Int,
+}) {}
+
+export class Debugger extends S.Class<Debugger>("Debugger")({
+    "debugger": S.Int,
+}) {}
+
+export class DateTimeStyles extends S.Class<DateTimeStyles>("DateTimeStyles")({
+    "DateTimeStyles": S.Int,
+}) {}
+
+export class DateTime extends S.Class<DateTime>("DateTime")({
+    "DateTime": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
+}) {}
+
 export class Obj2 extends S.Class<Obj2>("Obj2")({
+    "DateTime": DateTime,
+    "DateTimeStyles": DateTimeStyles,
+    "debugger": Debugger,
+    "decimal": Decimal,
+    "declare": Declare,
+    "decltype": Decltype,
+    "decode_string": DecodeString,
     "def": Def,
     "default": Default,
     "defer": Defer,
@@ -1241,17 +1287,6 @@ export class Obj2 extends S.Class<Obj2>("Obj2")({
     "IMP": Imp,
     "implements": Implements,
     "implicit": Implicit,
-    "import": Import,
-    "in": In,
-    "indirect": Indirect,
-    "infix": Infix,
-    "init": Init,
-    "inline": Inline,
-    "inout": Inout,
-    "instanceof": Instanceof,
-    "int": Int,
-    "interface": Interface,
-    "internal": Internal,
     "false": FalseClass,
 }) {}
 
@@ -1279,34 +1314,6 @@ export class Empty extends S.Class<Empty>("Empty")({
     "_": S.Int,
 }) {}
 
-export class DecodeString extends S.Class<DecodeString>("DecodeString")({
-    "decode_string": S.Int,
-}) {}
-
-export class Decltype extends S.Class<Decltype>("Decltype")({
-    "decltype": S.Int,
-}) {}
-
-export class Declare extends S.Class<Declare>("Declare")({
-    "declare": S.Int,
-}) {}
-
-export class Decimal extends S.Class<Decimal>("Decimal")({
-    "decimal": S.Int,
-}) {}
-
-export class Debugger extends S.Class<Debugger>("Debugger")({
-    "debugger": S.Int,
-}) {}
-
-export class DateTimeStyles extends S.Class<DateTimeStyles>("DateTimeStyles")({
-    "DateTimeStyles": S.Int,
-}) {}
-
-export class DateTime extends S.Class<DateTime>("DateTime")({
-    "DateTime": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
-}) {}
-
 export class DateParseHandling extends S.Class<DateParseHandling>("DateParseHandling")({
     "date_parse_handling": S.Int,
 }) {}
@@ -1598,13 +1605,6 @@ export class Obj1 extends S.Class<Obj1>("Obj1")({
     "DateOnly": DateOnly,
     "DateOnlyConverter": DateOnlyConverter,
     "date_parse_handling": DateParseHandling,
-    "DateTime": DateTime,
-    "DateTimeStyles": DateTimeStyles,
-    "debugger": Debugger,
-    "decimal": Decimal,
-    "declare": Declare,
-    "decltype": Decltype,
-    "decode_string": DecodeString,
     "dummy": S.Int,
     "_": Empty,
     "_Imaginery": Imaginery,
diff --git a/base/typescript-zod/test/inputs/json/priority/keywords.json/default/TopLevel.ts b/head/typescript-zod/test/inputs/json/priority/keywords.json/default/TopLevel.ts
index db58eaf..7616a0d 100644
--- a/base/typescript-zod/test/inputs/json/priority/keywords.json/default/TopLevel.ts
+++ b/head/typescript-zod/test/inputs/json/priority/keywords.json/default/TopLevel.ts
@@ -297,6 +297,36 @@ export const DateParseHandlingSchema = z.object({
 });
 export type DateParseHandling = z.infer<typeof DateParseHandlingSchema>;
 
+export const EmptySchema = z.object({
+    "_": z.number().int(),
+});
+export type Empty = z.infer<typeof EmptySchema>;
+
+export const ImaginerySchema = z.object({
+    "_Imaginery": z.number().int(),
+});
+export type Imaginery = z.infer<typeof ImaginerySchema>;
+
+export const AnyClassSchema = z.object({
+    "any": z.number().int(),
+});
+export type AnyClass = z.infer<typeof AnyClassSchema>;
+
+export const BoolClassSchema = z.object({
+    "_Bool": z.number().int(),
+});
+export type BoolClass = z.infer<typeof BoolClassSchema>;
+
+export const Obj1ClassSchema = z.object({
+    "class": z.number().int(),
+});
+export type Obj1Class = z.infer<typeof Obj1ClassSchema>;
+
+export const Obj1BoolSchema = z.object({
+    "bool": z.number().int(),
+});
+export type Obj1Bool = z.infer<typeof Obj1BoolSchema>;
+
 export const DateTimeSchema = z.object({
     "DateTime": z.string().pipe(z.coerce.date()),
 });
@@ -332,36 +362,6 @@ export const DecodeStringSchema = z.object({
 });
 export type DecodeString = z.infer<typeof DecodeStringSchema>;
 
-export const EmptySchema = z.object({
-    "_": z.number().int(),
-});
-export type Empty = z.infer<typeof EmptySchema>;
-
-export const ImaginerySchema = z.object({
-    "_Imaginery": z.number().int(),
-});
-export type Imaginery = z.infer<typeof ImaginerySchema>;
-
-export const AnyClassSchema = z.object({
-    "any": z.number().int(),
-});
-export type AnyClass = z.infer<typeof AnyClassSchema>;
-
-export const BoolClassSchema = z.object({
-    "_Bool": z.number().int(),
-});
-export type BoolClass = z.infer<typeof BoolClassSchema>;
-
-export const Obj1ClassSchema = z.object({
-    "class": z.number().int(),
-});
-export type Obj1Class = z.infer<typeof Obj1ClassSchema>;
-
-export const Obj1BoolSchema = z.object({
-    "bool": z.number().int(),
-});
-export type Obj1Bool = z.infer<typeof Obj1BoolSchema>;
-
 export const DefSchema = z.object({
     "def": z.number().int(),
 });
@@ -642,6 +642,11 @@ export const ImplicitSchema = z.object({
 });
 export type Implicit = z.infer<typeof ImplicitSchema>;
 
+export const FalseClassSchema = z.object({
+    "false": z.number().int(),
+});
+export type FalseClass = z.infer<typeof FalseClassSchema>;
+
 export const ImportSchema = z.object({
     "import": z.number().int(),
 });
@@ -697,11 +702,6 @@ export const InternalSchema = z.object({
 });
 export type Internal = z.infer<typeof InternalSchema>;
 
-export const FalseClassSchema = z.object({
-    "false": z.number().int(),
-});
-export type FalseClass = z.infer<typeof FalseClassSchema>;
-
 export const IsSchema = z.object({
     "is": z.number().int(),
 });
@@ -957,16 +957,6 @@ export const NullSchema = z.object({
 });
 export type Null = z.infer<typeof NullSchema>;
 
-export const NullptrSchema = z.object({
-    "nullptr": z.number().int(),
-});
-export type Nullptr = z.infer<typeof NullptrSchema>;
-
-export const NumberSchema = z.object({
-    "number": z.number().int(),
-});
-export type Number = z.infer<typeof NumberSchema>;
-
 export const NoneClassSchema = z.object({
     "none": z.number().int(),
 });
@@ -977,11 +967,26 @@ export const NullClassSchema = z.object({
 });
 export type NullClass = z.infer<typeof NullClassSchema>;
 
+export const NullptrSchema = z.object({
+    "nullptr": z.number().int(),
+});
+export type Nullptr = z.infer<typeof NullptrSchema>;
+
+export const NumberSchema = z.object({
+    "number": z.number().int(),
+});
+export type Number = z.infer<typeof NumberSchema>;
+
 export const ProtocolClassSchema = z.object({
     "protocol": z.number().int(),
 });
 export type ProtocolClass = z.infer<typeof ProtocolClassSchema>;
 
+export const SelfClassSchema = z.object({
+    "self": z.number().int(),
+});
+export type SelfClass = z.infer<typeof SelfClassSchema>;
+
 export const ObjectClassSchema = z.object({
     "object": z.number().int(),
 });
@@ -1102,41 +1107,6 @@ export const ProtocolSchema = z.object({
 });
 export type Protocol = z.infer<typeof ProtocolSchema>;
 
-export const SerializerProviderSchema = z.object({
-    "SerializerProvider": z.number().int(),
-});
-export type SerializerProvider = z.infer<typeof SerializerProviderSchema>;
-
-export const SimpleModuleSchema = z.object({
-    "SimpleModule": z.number().int(),
-});
-export type SimpleModule = z.infer<typeof SimpleModuleSchema>;
-
-export const StdDeserializerSchema = z.object({
-    "StdDeserializer": z.number().int(),
-});
-export type StdDeserializer = z.infer<typeof StdDeserializerSchema>;
-
-export const StdSerializerSchema = z.object({
-    "StdSerializer": z.number().int(),
-});
-export type StdSerializer = z.infer<typeof StdSerializerSchema>;
-
-export const SelfClassSchema = z.object({
-    "self": z.number().int(),
-});
-export type SelfClass = z.infer<typeof SelfClassSchema>;
-
-export const TrueClassSchema = z.object({
-    "true": z.number().int(),
-});
-export type TrueClass = z.infer<typeof TrueClassSchema>;
-
-export const TypeClassSchema = z.object({
-    "type": z.number().int(),
-});
-export type TypeClass = z.infer<typeof TypeClassSchema>;
-
 export const PublicSchema = z.object({
     "public": z.number().int(),
 });
@@ -1267,6 +1237,11 @@ export const SerializeSchema = z.object({
 });
 export type Serialize = z.infer<typeof SerializeSchema>;
 
+export const SerializerProviderSchema = z.object({
+    "SerializerProvider": z.number().int(),
+});
+export type SerializerProvider = z.infer<typeof SerializerProviderSchema>;
+
 export const SetSchema = z.object({
     "set": z.number().int(),
 });
@@ -1282,6 +1257,11 @@ export const SignedSchema = z.object({
 });
 export type Signed = z.infer<typeof SignedSchema>;
 
+export const SimpleModuleSchema = z.object({
+    "SimpleModule": z.number().int(),
+});
+export type SimpleModule = z.infer<typeof SimpleModuleSchema>;
+
 export const SizeofSchema = z.object({
     "sizeof": z.number().int(),
 });
@@ -1307,11 +1287,31 @@ export const StaticAssertSchema = z.object({
 });
 export type StaticAssert = z.infer<typeof StaticAssertSchema>;
 
+export const TrueClassSchema = z.object({
+    "true": z.number().int(),
+});
+export type TrueClass = z.infer<typeof TrueClassSchema>;
+
+export const TypeClassSchema = z.object({
+    "type": z.number().int(),
+});
+export type TypeClass = z.infer<typeof TypeClassSchema>;
+
 export const StaticCastSchema = z.object({
     "static_cast": z.number().int(),
 });
 export type StaticCast = z.infer<typeof StaticCastSchema>;
 
+export const StdDeserializerSchema = z.object({
+    "StdDeserializer": z.number().int(),
+});
+export type StdDeserializer = z.infer<typeof StdDeserializerSchema>;
+
+export const StdSerializerSchema = z.object({
+    "StdSerializer": z.number().int(),
+});
+export type StdSerializer = z.infer<typeof StdSerializerSchema>;
+
 export const StrictfpSchema = z.object({
     "strictfp": z.number().int(),
 });
@@ -1651,13 +1651,6 @@ export const Obj1Schema = z.object({
     "DateOnly": DateOnlySchema,
     "DateOnlyConverter": DateOnlyConverterSchema,
     "date_parse_handling": DateParseHandlingSchema,
-    "DateTime": DateTimeSchema,
-    "DateTimeStyles": DateTimeStylesSchema,
-    "debugger": DebuggerSchema,
-    "decimal": DecimalSchema,
-    "declare": DeclareSchema,
-    "decltype": DecltypeSchema,
-    "decode_string": DecodeStringSchema,
     "dummy": z.number().int(),
     "_": EmptySchema,
     "_Imaginery": ImaginerySchema,
@@ -1669,6 +1662,13 @@ export const Obj1Schema = z.object({
 export type Obj1 = z.infer<typeof Obj1Schema>;
 
 export const Obj2Schema = z.object({
+    "DateTime": DateTimeSchema,
+    "DateTimeStyles": DateTimeStylesSchema,
+    "debugger": DebuggerSchema,
+    "decimal": DecimalSchema,
+    "declare": DeclareSchema,
+    "decltype": DecltypeSchema,
+    "decode_string": DecodeStringSchema,
     "def": DefSchema,
     "default": DefaultSchema,
     "defer": DeferSchema,
@@ -1726,6 +1726,12 @@ export const Obj2Schema = z.object({
     "IMP": ImpSchema,
     "implements": ImplementsSchema,
     "implicit": ImplicitSchema,
+    "false": FalseClassSchema,
+});
+export type Obj2 = z.infer<typeof Obj2Schema>;
+
+export const Obj3Schema = z.object({
+    "dummy": z.number().int(),
     "import": ImportSchema,
     "in": InSchema,
     "indirect": IndirectSchema,
@@ -1737,12 +1743,6 @@ export const Obj2Schema = z.object({
     "int": IntSchema,
     "interface": InterfaceSchema,
     "internal": InternalSchema,
-    "false": FalseClassSchema,
-});
-export type Obj2 = z.infer<typeof Obj2Schema>;
-
-export const Obj3Schema = z.object({
-    "dummy": z.number().int(),
     "is": IsSchema,
     "IsoDateTimeOffsetConverter": IsoDateTimeOffsetConverterSchema,
     "iterable": IterableSchema,
@@ -1794,11 +1794,17 @@ export const Obj3Schema = z.object({
     "NSError": NsErrorSchema,
     "NSString": NsStringSchema,
     "NULL": NullSchema,
-    "nullptr": NullptrSchema,
-    "number": NumberSchema,
     "none": NoneClassSchema,
     "null": NullClassSchema,
+});
+export type Obj3 = z.infer<typeof Obj3Schema>;
+
+export const Obj4Schema = z.object({
+    "dummy": z.number().int(),
+    "nullptr": NullptrSchema,
+    "number": NumberSchema,
     "protocol": ProtocolClassSchema,
+    "self": SelfClassSchema,
     "object": ObjectClassSchema,
     "ObjectMapper": ObjectMapperSchema,
     "of": OfSchema,
@@ -1823,18 +1829,6 @@ export const Obj3Schema = z.object({
     "private": PrivateSchema,
     "protected": ProtectedSchema,
     "Protocol": ProtocolSchema,
-    "SerializerProvider": SerializerProviderSchema,
-    "SimpleModule": SimpleModuleSchema,
-    "StdDeserializer": StdDeserializerSchema,
-    "StdSerializer": StdSerializerSchema,
-});
-export type Obj3 = z.infer<typeof Obj3Schema>;
-
-export const Obj4Schema = z.object({
-    "dummy": z.number().int(),
-    "self": SelfClassSchema,
-    "true": TrueClassSchema,
-    "type": TypeClassSchema,
     "public": PublicSchema,
     "quicktype": QuicktypeSchema,
     "raise": RaiseSchema,
@@ -1861,15 +1855,26 @@ export const Obj4Schema = z.object({
     "select": SelectSchema,
     "Self": SelfSchema,
     "serialize": SerializeSchema,
+    "SerializerProvider": SerializerProviderSchema,
     "set": SetSchema,
     "short": ShortSchema,
     "signed": SignedSchema,
+    "SimpleModule": SimpleModuleSchema,
     "sizeof": SizeofSchema,
     "stackalloc": StackallocSchema,
     "Standards": StandardsSchema,
     "static": StaticSchema,
     "static_assert": StaticAssertSchema,
+});
+export type Obj4 = z.infer<typeof Obj4Schema>;
+
+export const Obj5Schema = z.object({
+    "dummy": z.number().int(),
+    "true": TrueClassSchema,
+    "type": TypeClassSchema,
     "static_cast": StaticCastSchema,
+    "StdDeserializer": StdDeserializerSchema,
+    "StdSerializer": StdSerializerSchema,
     "strictfp": StrictfpSchema,
     "string": StringClassSchema,
     "struct": StructSchema,
@@ -1903,11 +1908,6 @@ export const Obj4Schema = z.object({
     "ulong": UlongSchema,
     "unchecked": UncheckedSchema,
     "undefined": UndefinedSchema,
-});
-export type Obj4 = z.infer<typeof Obj4Schema>;
-
-export const Obj5Schema = z.object({
-    "dummy": z.number().int(),
     "union": UnionSchema,
     "unowned": UnownedSchema,
     "unsafe": UnsafeSchema,
